User:Elgaton/Draft:Translate FlightGear
Work in progress This article or section will be worked on in the upcoming hours or days. See history for the latest developments. |
FlightGear supports localization, that is, showing the user interface in the user's native language rather than in English. At the time of writing (August 2018), not all parts of the simulator are localized, but efforts are underway to make it so.
This page will help you translate FlightGear to a new language or improve the existing translations.
What can be translated
The following parts of the simulator can be translated:
- the menus, splash screens, startup tips and the text shown when the
--help
command-line option is used (FlightGear 2.7.0 and later); - the shortcut file on Linux systems (FlightGear 2017.1 and later);
- the man pages (FlightGear 2017.3 and later).
How to translate the interface
Each language in the world has an associated two-letter code (the ISO 639-1 language code). You can find their list on the Library of Congress Web site.
Interface language files are saved in the Translations directory in the FGDATA repository; each language is stored inside a directory having the corresponding ISO 639-1 code as its name.
There is also a set of translation helper scripts which help you create a new translation or update an existing one.
Preparing the translation environment
On the machine you are going to use to translate FlightGear, install:
- Python 3: on Microsoft Windows and Mac OS X systems, download the latest 3.x build from the official site; on Linux, install it from your distribution's package manager;
- Git: on Microsoft Windows, download it from the official site; on Mac OS X, run
git --help
from a terminal to have it downloaded and installed if needed; on Linux, install it from your distribution's package manager; - an editor for XLIFF files, like QT Linguist.
Open a terminal, go into the directory you would like to clone the repositories into and type the following command to clone the FGMeta repository:
$ git clone git://git.code.sf.net/p/flightgear/fgmeta/ fgmeta
Then, follow the instructions in FlightGear Git: data developers#Preparations to clone FGData inside the fgmeta
directory.
Translating the interface into a new language
If there is no translation for your language:
- Check the
PLURAL_FORMS
variable inside python3-flightgear/flightgear/meta/i18n.py to make sure that your language is listed. If it is not, add a new entry for it - it should have the following form:"LANGUAGE_CODE": ["singular", "plural"],
whereLANGUAGE_CODE
is the language code and what follows is an array of plural forms for the language (in the same order as they are displayed in the Qt Linguist tool). - Open a terminal and change into the
python3-flightgear
directory inside your FGData clone. - Run
./fg-new-translations --transl-dir="FGDATA_CLONE_PATH/Translations" LANGUAGE_CODE
to create the new files. ReplaceFGDATA_CLONE_PATH
with the path of the directory you cloned FGData into andLANGUAGE_CODE
with the language code.
Updating an existing translation
If a translation for your language already exists:
- Open a terminal and change into the
python3-flightgear
directory inside your FGData clone. - Run
./fg-update-translation-files --transl-dir="FGDATA_CLONE_PATH/Translations" merge-new-master LANGUAGE_CODE
to update the translation files. ReplaceFGDATA_CLONE_PATH
with the path of the directory you cloned FGData into andLANGUAGE_CODE
with the language code.
Translating the files
- Open the XLF files inside
FGDATA_CLONE_PATH/Translations/LANGUAGE_CODE
with the XLIFF file editor and translate them. - If you want to test your translation, you will need to build the latest FlightGear version from source. After you have built it, start FlightGear to test your translation, passing the
--fg-root=FGDATA_CLONE_PATH
option to have it read the translations from your FGData clone. By default, the simulator will select the locale of your operating system as the language to use; you can explicitly select a language using the command-line option--language=LANGUAGE_CODE
.
Note that the user interface might have not full Unicode support (some special/accented characters might not be shown): should you encounter such a location, please write to the flightgear-devel mailing list at flightgear-devel@lists.sourceforge.net.
How to translate the shortcut file
Open the FlightGear .desktop
file and translate the GenericName, Comment and Keywords keys (add the GenericName[LANGUAGE_CODE]
, Comment[LANGUAGE_CODE]
and Keywords[LANGUAGE_CODE]
keys, where LANGUAGE_CODE
is the two letter ISO 639-1 code of the language).
How to translate the man pages
- Determine the two letter ISO 639-1 language code for the language you want to translate the man pages to.
- Check whether your language already has a subdirectory below the man pages directory. If it does not, create an empty directory in it named after the language code, then copy
man1
andman5
from the man pages directory to the directory of your language. - Edit man/CMakeLists.txt and add the instruction
add_subdirectory(LANGUAGE_CODE)
in theif(NOT WIN32)
block (where LANGUAGE_CODE is the language code). - Edit
man/LANGUAGE_CODE/man1/CMakeLists.txt
andman/LANGUAGE_CODE/man5/CMakeLists.txt
: on the last row, set the installation directory (DESTINATION
), respectively, to${CMAKE_INSTALL_MANDIR}/LANGUAGE_CODE/man1
and${CMAKE_INSTALL_MANDIR}/LANGUAGE_CODE/man5
. - Open the man pages in the subdirectory of your language and translate them.