c6eb59eb42
Add the following files: python3-flightgear/README-l10n.txt python3-flightgear/fg-convert-translation-files python3-flightgear/fg-new-translations python3-flightgear/fg-update-translation-files python3-flightgear/flightgear/__init__.py python3-flightgear/flightgear/meta/__init__.py python3-flightgear/flightgear/meta/exceptions.py python3-flightgear/flightgear/meta/i18n.py python3-flightgear/flightgear/meta/logging.py python3-flightgear/flightgear/meta/misc.py They should work on Python 3.4 and later (tested with 3.5.3). The folder structure is chosen so that other FG support modules can insert themselves here, and possibly be used together. I put all of these inside 'flightgear.meta', because I don't expect them to be needed at FG runtime (neither now nor in the future), probably not even by the CMake build system. To declare that a string has plural forms, simply set the attribute 'with-plural' to 'true' on the corresponding element of the default translation (and as in Qt, use %n as a placeholder for the number that determines which singular or plural form to use).
83 lines
3.5 KiB
Text
83 lines
3.5 KiB
Text
Quick start for the localization (l10n) scripts
|
|
===============================================
|
|
|
|
The following assumes that all of these are in present in
|
|
$FG_ROOT/Translations:
|
|
- the default translation (default/*.xml);
|
|
- the legacy FlightGear XML localization files (<language_code>/*.xml);
|
|
- except for 'fg-convert-translation-files' which creates them, existing
|
|
XLIFF 1.2 files (<language_code>/FlightGear-nonQt.xlf).
|
|
|
|
Note: the legacy FlightGear XML localization files are only needed by
|
|
'fg-convert-translation-files' when migrating to the XLIFF format. The
|
|
other scripts only need the default translation and obviously, for
|
|
'fg-update-translation-files', the current XLIFF files.
|
|
|
|
To get the initial XLIFF files (generated from the default translation in
|
|
$FG_ROOT/Translations/default as well as the legacy FlightGear XML
|
|
localization files in $FG_ROOT/Translations/<language_code>):
|
|
|
|
languages="de en_US es fr it nl pl pt zh_CN"
|
|
|
|
# Your shell must expand $languages as several words. POSIX shell does that,
|
|
# but not zsh for instance. Otherwise, don't use a shell variable.
|
|
fg-convert-translation-files --transl-dir="$FG_ROOT/Translations" $languages
|
|
|
|
# Add strings found in the default translation but missing in the legacy FG
|
|
# XML l10n files
|
|
fg-update-translation-files --transl-dir="$FG_ROOT/Translations" \
|
|
merge-new-master $languages
|
|
|
|
When master strings[1] have changed (in a large sense, i.e.: strings added,
|
|
modified or removed, or categories added or removed[2]):
|
|
|
|
fg-update-translation-files --transl-dir="$FG_ROOT/Translations" \
|
|
merge-new-master $languages
|
|
|
|
To remove unused translated strings (not to be done too often in my opinion):
|
|
|
|
fg-update-translation-files --transl-dir="$FG_ROOT/Translations" \
|
|
remove-unused $languages
|
|
|
|
(you may replace 'remove-unused' with 'mark-unused' to just mark the strings
|
|
as not-to-be-translated, however 'merge-new-master' presented above already
|
|
does that)
|
|
|
|
To create skeleton translations for new languages (e.g., for fr_BE, en_AU and
|
|
ca):
|
|
|
|
1) Check (add if necessary) that flightgear/meta/i18n.py knows the plural
|
|
forms used in the new languages. This is done by editing PLURAL_FORMS
|
|
towards the top of this i18n.py file (very easy). If the existing entry
|
|
for, e.g., "zh" is sufficient for zh_TW or zh_HK, just let "zh" handle
|
|
them: it will be tried as fallback if there is no perfect match on
|
|
language and territory.
|
|
|
|
2) Run a command such as:
|
|
|
|
fg-new-translations --transl-dir="$FG_ROOT/Translations" fr_BE en_AU ca
|
|
|
|
(if you do this for only one language at a time, you can use the -o
|
|
option to precisely control where the output goes, otherwise
|
|
fg-new-translations chooses an appropriate place based on the value
|
|
specified for --transl-dir)
|
|
|
|
fg-convert-translation-files, fg-update-translation-files and
|
|
fg-new-translations all support the --help option for more detailed
|
|
information.
|
|
|
|
|
|
Footnotes
|
|
---------
|
|
|
|
[1] Strings in the default translation.
|
|
|
|
[2] Only empty categories are removed by this command. An obsolete category
|
|
can be made empty by manual editing (easy, just locate the right
|
|
<group>) or this way:
|
|
|
|
fg-update-translation-files --transl-dir=... mark-unused
|
|
fg-update-translation-files --transl-dir=... remove-unused
|
|
|
|
(note that this will remove *all* strings marked as unused in the first
|
|
step, not only those in some particular category!)
|