This page explains how translations on fsfe.org become outdated, where you can detect it, and how to prevent a translation to become outdated although it isn't different from the English version.
Please read it carefully as your understanding and action may heavily influence the correct display of translations and their status for our visitors.
Why is a translation outdated?
When browsing fsfe.org in a language other than English, you can find a yellow box near the top of the page telling you that a translation is no longer in sync with the original English text. The English version of a page/news item/event is always the reference point for the FSFE website.
This warning appears if the English version is newer than its respective translation. Usually, this happens if an editor changed something on the English file and not on the translation.
The problem is that even the tinyiest change can cause the translation to become outdated: a new paragraph, an updated link, but also an additional or removed space, line break or fixed typo. This is why editors are asked to make sure that they do not outdate translations although the English file did not change content-wise (see below for tipps how to prevent that).
How to check translation status?
If you are a translator and would like to find outdated translations, you can check the translation status page (see translation guide). But because this is not complete (it excludes news and events), you can also make use of a tool which you can find in the website repository.
In your terminal, navigate to the Git repository and run the following command to check the status of the page of the FSFE's mission statement:
./tools/check-translation-status.sh -a -f about/mission.en.xhtml
The -a parameter makes the tool check all available translations. After -f parameter you have to provide the path to the file. You don't have to select the English version but can also choose another translation – the tool will detect it automatically.
The output of this command looks like the following at the time of writing:
Basefile: about/mission.en.xhtml ( 2017-05-16 ) STATUS LANG DATE -------- ---- ---------- OUTDATED de 2016-07-01 OUTDATED el 2015-03-25 OUTDATED fi 2015-05-18 OUTDATED it 2016-12-06 OUTDATED pt 2015-02-07 Up-to-date fr 2017-07-30 Up-to-date nl 2018-01-28 Up-to-date sq 2017-12-29 Up-to-date tr 2018-08-31
It shows you that the French, Dutch, Albanian and Turkish translations are up-to-date while the rest is outdated.
It does this by comparing the dates the translations have seen their last change via a git commit. With git log <filename> you can see the last commits which have affected a file, e.g. the English reference file. With git show <long_commit_hash> you can see what exactly has been changed in a commit.
Prevent wrongly outdating translations
If you change an English file and none of its translations, you will outdate all existing, previously up-to-date translations. In the example above, you will outdate the FR, NL, SQ, and TR translations if you just edited about/mission.en.xhtml.
If you change significant parts of this page – e.g. adding new text or changing links –, that is fine because the translations now lack important information. Consider informing the translators' mailing list about that and ask them for updated translations.
However, if you just fixed a typo or improved the English grammar – something which does not change any content-wise information – you should also make sure that the once up-to-date translations will not become outdated. You can do this via fake commits or dummy commits. That means, you make a trivial change to these files without touching their content. For example:
- Add or remove a space in an empty line
- Add a new blank line at the end of the file
- Add a new comment stating that you fake-updated the file at a certain date
Do this for all previously up-to-date translations and you will be safe. This can also happen in a later commit if it's not happening more than 1 hour after the change of the English version, since our tool for checking the translation status adds some grace period.
Recommendation: Enable client-side git hooks to make this and other checks automatically when making a commit. It warns you if you outdate previously up-to-date translations. You can then decide whether you want to make a dummy commit or ignore it, based on the dimension of the edit you have done.