Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refs #37833 - Fix file timestamp handling when pulling translations #10326

Merged
merged 1 commit into from
Sep 18, 2024

Commits on Sep 17, 2024

  1. Refs #37833 - Fix file timestamp handling when pulling translations

    The Ruby gettext library wants the .po.time_stamp file to be at least as
    new as the .po file. If it doesn't exist or is older, it will remove the
    .edit.po file and then copy the .po file to .edit.po. In practice the
    Makefile doesn't guarantee this, causing translations to be ignored.
    
    A more concrete example what ends up happening:
    
        make -C locale tx-pull # updates $domain.edit.po
    
        # This all assumes $domain.po exists
        if [ ! -f $domain.po.time_stamp ] -o [ $domain.po -nt $domain.po.time_stamp ] ; then
            rm -f $domain.edit.po
        fi
        if [ ! -f $domain.edit.po ] ; then
            cp $domain.po $domain.edit.po
    
            # Merge in the new messages from the template
            msgmerge --update --sort-by-file --no-wrap $domain.edit.po $domain.pot
            if [ -f $domain.po ] -a [ $domain.po -nt $domain.edit.po ] ; then
                msgmerge --output $domain.edit.po --sort-by-file --no-wrap --no-obsolete-entries $domain.po $domain.edit.po
            fi
        fi
    
    This ensures that $domain.po.time_stamp is always the same mtime as
    $domain.po which prevents the gettext library from removing the updated
    $domain.edit.po file.
    
    It means there is no message merging and we rely on Transifex for doing
    that part for us.
    ekohl committed Sep 17, 2024
    Configuration menu
    Copy the full SHA
    3d2317e View commit details
    Browse the repository at this point in the history