Difference between revisions of "Translation:General Information"
m (→Gsicheck Tool) |
|||
(35 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | This page summarizes useful information on the translation work needed to release a localized | + | This page summarizes useful information on the translation work needed to release a localized {{AOo}} version. To get in touch with the translations community please come and ask for some advice on the [mailto:l10n@openoffice.apache.org l10n@openoffice.apache.org] mailing list, or on the <tt>#openoffice</tt> [[IRC|IRC channel]]. |
Line 5: | Line 5: | ||
For every milestone on the DEV300 codeline (future non-branched 3.x releases) the current en-US source strings are extracted and uploaded in SDF file format to:<br> | For every milestone on the DEV300 codeline (future non-branched 3.x releases) the current en-US source strings are extracted and uploaded in SDF file format to:<br> | ||
− | * http://download.services.openoffice.org/files/extended/ooomisc/sdf/ | + | * <s>http://download.services.openoffice.org/files/extended/ooomisc/sdf/</s><font color="red">deprecated</font> |
Diffs of all new and changed strings from each milestone can be found at:<br> | Diffs of all new and changed strings from each milestone can be found at:<br> | ||
− | * http://download.services.openoffice.org/files/extended/ooomisc/sdf/diff/ | + | * <s>http://download.services.openoffice.org/files/extended/ooomisc/sdf/diff/</s><font color="red">deprecated</font> |
Removed strings are not part of those diffs. | Removed strings are not part of those diffs. | ||
Line 18: | Line 18: | ||
Release schedule with translation deadlines specific for the release you are targeting can be found at: | Release schedule with translation deadlines specific for the release you are targeting can be found at: | ||
− | http://wiki.services.openoffice.org/wiki/OOoReleaseXX where XX is OpenOffice.org release version number. You can also browse [ | + | <s>http://wiki.services.openoffice.org/wiki/OOoReleaseXX</s><font color="red">deprecated</font> where XX is OpenOffice.org release version number. You can also browse [https://wiki.openoffice.org/wiki/Template:OOo_Releases complete list]. |
− | Translation handover dates are also announced at the mailto: | + | Translation handover dates are also announced at the [mailto:l10n@openoffice.apache.org l10n@openoffice.apache.org] mailing list. |
== Teams Translating with Pootle == | == Teams Translating with Pootle == | ||
− | More and more teams are using Pootle | + | More and more teams are using Pootle to translate ([https://pootle.translatehouse.org/?id=pootle/index What is Pootle?]). Here is the complete [https://wiki.openoffice.org/wiki/Pootle_Integration_Roadmap list]. |
Pootle provides web interface for translating, managing translation team and reviewing new translations. | Pootle provides web interface for translating, managing translation team and reviewing new translations. | ||
− | As a bonus, when using Pootle for managing translations Pootle administrators will make sure content will be updated with new messages for translation and delivered for integration according to the release schedule. You do not need to prepare SDF | + | As a bonus, when using Pootle for managing translations Pootle administrators will make sure content will be updated with new messages for translation and delivered for integration according to the release schedule. You do not need to prepare SDF files or create an issue if using Pootle. Unfortunately sometimes update is not glitch free and a lot of messages get marked as fuzzy and need translating when messages are relocated inside OpenOffice code base. You should always keep backups of your translations offline. There is no version control support for translations in Pootle. |
− | For adding new languages to Pootle, native language project leads should ask on the mailto: | + | For adding new languages to Pootle, native language project leads should ask on the [mailto:l10n@openoffice.apache.org l10n@openoffice.apache.org] list. Then you need to register, and request to be added as the admin for your team. Then your translators need to register, so you can assign access rights and goals to them in the way that suits your project best. Translators on probation, for example, can be assigned only right to "Suggest", so their input is saved separately as draft translation strings for you to review. |
=== Pootle Translation Process === | === Pootle Translation Process === | ||
− | * | + | * Server: https://translate.apache.org/ |
− | |||
− | |||
* Pootle administrators make sure Pootle content is updated according to translation schedule | * Pootle administrators make sure Pootle content is updated according to translation schedule | ||
* L10n lead give the Go to start translation on Pootle (announcement to the dev@l10n list) | * L10n lead give the Go to start translation on Pootle (announcement to the dev@l10n list) | ||
− | * Native Language leads | + | * Native Language leads or the Translation lead coordinates the translation work [https://wiki.openoffice.org/wiki/Pootle_User_Guide User's Guide] |
* Translation teams work with Language team to make sure the translation is reviewed | * Translation teams work with Language team to make sure the translation is reviewed | ||
* Native Language/translation leads make sure translation is complete within the deadlines | * Native Language/translation leads make sure translation is complete within the deadlines | ||
Line 45: | Line 43: | ||
* Pootle administrator downloads the translated files and provide them to release engineering | * Pootle administrator downloads the translated files and provide them to release engineering | ||
− | '''''It is recommended to use Pootle to manage the translation | + | '''''It is recommended to use Pootle to manage the translation work. For translation it is recommended to download the files and [[Translation:General_Information#Translate_messages | translate]] them with a [[Translation:General_Information#Translation_Editors|translation editor]] which support translation memory functionality. Linguistic review can be then performed right after translation.''''' |
=== Translation Notes for Pootle Users === | === Translation Notes for Pootle Users === | ||
− | Content on Pootle can be edited, fixed at any time. However, please make sure to subscribe the mailto: | + | Content on Pootle can be edited, fixed at any time. However, please make sure to subscribe the [mailto:l10n@openoffice.apache.org l10n@openoffice.apache.org] list and to make sure not to upload all translated files before Pootle content updates are carried out. Pootle downtime, Pootle maintenance or Pootle content updates are announced to this list. |
== Translating using Gettext PO files == | == Translating using Gettext PO files == | ||
Line 55: | Line 53: | ||
Gettext PO file format is popular format for editing translations used widely in free software community. There are many [[Translation:General_Information#Translation Editors|editors]] and other translations management or workflow tools supporting Gettext PO file format. | Gettext PO file format is popular format for editing translations used widely in free software community. There are many [[Translation:General_Information#Translation Editors|editors]] and other translations management or workflow tools supporting Gettext PO file format. | ||
− | The SDF file as used by OpenOffice.org can be converted to Gettext PO files and backconverted using the tools from the [ | + | The SDF file as used by OpenOffice.org can be converted to Gettext PO files and backconverted using the tools from the [https://toolkit.translatehouse.org/?id=toolkit/index Translate Toolkit] package. The Translate Toolkit depends on the Python and Python-devel packages, so you must also have these installed on your system. |
− | Documentation with examples for conversion and backconversion can be found at Translate Toolkit [ | + | Documentation with examples for conversion and backconversion can be found at Translate Toolkit [https://docs.translatehouse.org/projects/translate-toolkit/en/latest/commands/oo2po.html documentation]. PO files provided on the Pootle deployment for {{AOo}} handle duplicate messages using msgctx feature (<tt>oo2po --duplicates=msgctx</tt>) which is a default and recommended settings in recent releases of Translate Toolkit. |
− | + | When translating {{AOo}} using Gettext PO files you start with downloaded SDF file with source messages and generate a set of empty PO templates tree (POT). Then you either initialize empty PO files to be used with new translation project or merge an existing translations with new templates. After the translation is completed you should convert PO files back to GSI/SDF format using downloaded SDF file. | |
− | When translating | ||
=== Generate a fresh set of PO templates === | === Generate a fresh set of PO templates === | ||
Line 66: | Line 63: | ||
To generate a fresh set of PO templates (POT) out of downloaded SDF named en-US.sdf file run: <tt>oo2po -P -i en-US.sdf -o pot</tt>. Don't delete SDF file as you will need it to convert translations back to SDF/GSI file for translations delivery. | To generate a fresh set of PO templates (POT) out of downloaded SDF named en-US.sdf file run: <tt>oo2po -P -i en-US.sdf -o pot</tt>. Don't delete SDF file as you will need it to convert translations back to SDF/GSI file for translations delivery. | ||
− | Sometimes generated POT files will be made ready for download at: http://download.services.openoffice.org/files/extended/ooomisc/POT/ | + | Sometimes generated POT files will be made ready for download at: <s>http://download.services.openoffice.org/files/extended/ooomisc/POT/</s><font color="red">deprecated</font> |
The structure of the generated pot tree is embedded. Files exist inside directories and subdirectories. Do not change this hierarchy in any way. It is also important to remember that most of the strings are represented by the directory helpcontent2, also called the "Help". You may find it useful to separate this directory from the rest (called the "GUI"), when translating, so your efforts on the interface files do not appear to be a tiny proportion. The interface files are essential, and must be translated first, and maintained at 100% if possible. You can submit this translation separately. Then work on the Help, and try and get it done, bit by bit. So don't be discouraged by the size of the tree: it is mostly "Help". | The structure of the generated pot tree is embedded. Files exist inside directories and subdirectories. Do not change this hierarchy in any way. It is also important to remember that most of the strings are represented by the directory helpcontent2, also called the "Help". You may find it useful to separate this directory from the rest (called the "GUI"), when translating, so your efforts on the interface files do not appear to be a tiny proportion. The interface files are essential, and must be translated first, and maintained at 100% if possible. You can submit this translation separately. Then work on the Help, and try and get it done, bit by bit. So don't be discouraged by the size of the tree: it is mostly "Help". | ||
Line 72: | Line 69: | ||
If you are just starting new translation project use <tt>pot2po pot po</tt> to create an empty tree of PO files for translation. | If you are just starting new translation project use <tt>pot2po pot po</tt> to create an empty tree of PO files for translation. | ||
− | {{ | + | {{Tip|This tool can also be used to extract PO translations from a translated SDF file. For example if you have sr.sdf file containing Serbian Cyrillic translations you can create translated PO files tree by using: <tt>oo2po -l sr sr.sdf po</tt>. See official documentation for more details.}} |
=== Merge existing translations with new templates === | === Merge existing translations with new templates === | ||
Line 78: | Line 75: | ||
If you already have already translated PO files located inside po tree you can update them to the new templates preserving all previous work. To merge (migrate) translations to new templates pomigrate2 tool from Translation Toolkit can be used. It is advanced tool trying to reuse as many messages as possible. You should read the documentation available to get the best combination of options working for you. | If you already have already translated PO files located inside po tree you can update them to the new templates preserving all previous work. To merge (migrate) translations to new templates pomigrate2 tool from Translation Toolkit can be used. It is advanced tool trying to reuse as many messages as possible. You should read the documentation available to get the best combination of options working for you. | ||
− | Frequently it is used as <tt>pomigrate2 -C -F po ponew pot</tt> to merge existing translation inside po directory tree with new templates from pot directory tree into new directory tree ponew. This will also do fuzzy matching and use a compendium which will help migrating messages relocated inside | + | Frequently it is used as <tt>pomigrate2 -C -F po ponew pot</tt> to merge existing translation inside po directory tree with new templates from pot directory tree into new directory tree ponew. This will also do fuzzy matching and use a compendium which will help migrating messages relocated inside {{AOo}} source code tree. |
− | {{ | + | {{Tip|This tool will call msgmerge program from Gettext package. It is useful to pass <tt>--previous</tt> argument to the msgmerge program, something pomigrate2 is not doing. With this argument, when merging translations as fuzzy old source message will be preserved as a message comment. This helps when fixing fuzzy translations as old and new source message can be easily compared. Some PO editors provide in-line comparison visualization. |
To pass this argument when using pomigrate2 you could create a new msgmerge script as: | To pass this argument when using pomigrate2 you could create a new msgmerge script as: | ||
Line 98: | Line 95: | ||
Look at the string IDs in the .po files: they are mostly quite informative. At least you can understand which type of GUI element is represented by that string (label, menuitem, radiobutton, pushbutton). | Look at the string IDs in the .po files: they are mostly quite informative. At least you can understand which type of GUI element is represented by that string (label, menuitem, radiobutton, pushbutton). | ||
− | There is no need to keep the ~accelerator marks in the translation, as | + | There is no need to keep the ~accelerator marks in the translation, as {{AOo}} can insert those itself and will move them in case of conflicts. Accelerators are needed in translation only for: |
− | * | + | * top level menus (File, Edit…) |
− | * | + | * general pushbuttons where you would like to select specific accelerators and to make them consistent between releases |
=== Generate GSI/SDF file from translated PO files === | === Generate GSI/SDF file from translated PO files === | ||
Line 118: | Line 115: | ||
* please make sure that the GSI / SDF file format is not violated (format errors like wrong amount of tabs, shifted columns, ... ) by using "[[Gsicheck]]". Please use the latest version. Usage: gsicheck -c myfile.sdf. In case of errors please use the log file to fix them. | * please make sure that the GSI / SDF file format is not violated (format errors like wrong amount of tabs, shifted columns, ... ) by using "[[Gsicheck]]". Please use the latest version. Usage: gsicheck -c myfile.sdf. In case of errors please use the log file to fix them. | ||
− | * go to [ | + | * go to [https://www.openoffice.org/qa/issue_handling/project_issues.html Bugzilla] and file a bug, Target milestone to "AOo XX" , Component "l10n" , Subcomponent "code" , Issue type "ENHANCEMENT". The summary line should describe the type of strings (GUI, Help or both), language and version. For example: '''[VI] GUI Translation for 2.2'''. Please don't attach your file directly to the issue, but provide an URL / link pointing to your file. Please do attach only if you don't have any other webspace available. |
− | |||
== What happens after I submit the issue? == | == What happens after I submit the issue? == | ||
Line 129: | Line 125: | ||
== Getting and distributing localized builds == | == Getting and distributing localized builds == | ||
− | See more information [[NLC:ReleaseChecklist | How to get | + | See more information [[NLC:ReleaseChecklist | How to get {{AOo}} released in your language]]. |
To summarize, here are the basic steps after final localized RC (release candidate) builds are available: | To summarize, here are the basic steps after final localized RC (release candidate) builds are available: | ||
Line 145: | Line 141: | ||
=== Team === | === Team === | ||
− | + | Build a team of translators and 1-2 reviewers to work on the project. It is recommended to keep the number of the reviewers to 1-2 people, since the more translators and reviewers working on the project, the less you can ensure quality and consistency. | |
− | |||
=== Glossary === | === Glossary === | ||
− | [https://translate.sun.com/opencti/ OpenCTI - terminology] | + | <s>[https://translate.sun.com/opencti/ OpenCTI - terminology]</s><font color="red">deprecated</font> was the repository of the latest terminology used in OpenOffice.org. Open CTI replaced SunGloss. No need to log in to lookup terms, but if you want to add or edit terms, you will need to get an account (please register first). A Help button is available and provide instructions on how to use the tool. |
− | |||
=== Translation Memories === | === Translation Memories === | ||
− | If you have translated other software, especially software which performs tasks similar to those of an | + | If you have translated other software, especially software which performs tasks similar to those of an {{AOo}} component (e.g. Gnumeric, AbiWord, Koffice, the GIMP), we recommend you use translation memory, to avoid duplication of work, and to use existing resources as effectively as possible. Translation memories can help reduce inconsistencies in your translations. |
− | You can create, maintain and apply your translation memory (TM) using 'plain Translation Compendia' [ | + | You can create, maintain and apply your translation memory (TM) using 'plain Translation Compendia' [https://www.gnu.org/software/gettext/index.html gettext] (please refer to the [https://www.gnu.org/software/gettext/manual/html_mono/gettext.html gettext manual]) |
− | Latest translation memories in the TMX format can be found at: http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/localization/ under tmxXX directory where XX is | + | Latest translation memories in the TMX format can be found at: <s>http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/localization/</s><font color="red">deprecated</font> under tmxXX directory where XX is {{AOO}} release version number. |
TMX can also be created as follows: | TMX can also be created as follows: | ||
Line 167: | Line 161: | ||
− | For more information on using Translation memories and Glossaries in Pootle please refer to below page: | + | For more information on using Translation memories and Glossaries in Pootle please refer to below page: https://wiki.openoffice.org/wiki/Pootle_Glossary_Guide#Translation_Memory_in_Pootle |
=== Gsicheck Tool === | === Gsicheck Tool === | ||
[[Gsicheck]] tool should be used to make sure the translated .sdf files are not corrupted can be found at: | [[Gsicheck]] tool should be used to make sure the translated .sdf files are not corrupted can be found at: | ||
− | http://ooo.services.openoffice.org/gsicheck/ | + | <s>http://ooo.services.openoffice.org/gsicheck/</s><font color="red">deprecated</font> |
− | |||
=== Translation Editors === | === Translation Editors === | ||
− | + | Various translation editors that support the Gettext PO file format (in alphabetic order): | |
− | * [http:// | + | * [http://entrans.sourceforge.net/ Entrans] |
− | + | * [https://wiki.gnome.org/Apps/Gtranslator GNOME Translator] | |
− | |||
− | * [ | ||
* [http://www.triplespin.com/en/products/locfactoryeditor.html LocFactoryEditor] | * [http://www.triplespin.com/en/products/locfactoryeditor.html LocFactoryEditor] | ||
− | * [ | + | * [https://userbase.kde.org/Lokalize Lokalize] (previously known as Kbabel) |
− | * [http:// | + | * [https://omegat.org OmegaT] |
− | * [http:// | + | * [http://omegatplus.sourceforge.net OmegaT+] |
+ | * [https://poedit.net/ Poedit] | ||
+ | * [https://virtaal.translatehouse.org/?id=virtaal/index Virtaal] (from the creators of Pootle) | ||
+ | * [http://www.khmeros.info/drupal/?q=en/download/Translation_Editor WordForge] (previously known as Pootling) | ||
+ | |||
+ | PoEdit, Lokalize and WordForge run on both Linux and Windows. Lokalize is the KDE4 replacement of the old KBabel, which has long been the most popular PO editor for these platforms, but GNOME Translator and PoEdit have planned improvements which may make them more competitive; WordForge is a new editor which is rapidly becoming popular. | ||
+ | |||
+ | OmegaT+ is a cross-platform Java application that runs on Linux, macOS, Solaris, Windows, and other supported platforms. It supports a number of document formats and TMX for translation memories, along with matching, glossary, and machine translation. Features improved reliability, speed, and user interface. | ||
+ | |||
+ | OmegaT runs on Windows, Linux and macOS. It supports a number of file formats, TMX for translation memories, TBX (beside simple TXT & CSV) for the terminology, and offers dictionary interfacing, on-the-spot spell checking and machine translation. | ||
− | + | GNOME Translator runs on Linux and some BSD platforms. | |
− | + | LocFactoryEditor runs only on macOS. It handles XLIFF natively, and supports Apple formats, gettext formats, SVN submission and submission by email to projects like the TP (TP Robot) and Debian (Debian BTS). It also converts between PO compendia and TMX. | |
− | + | Virtaal runs on Linux and Windows. It supports XLIFF and PO natively, with both of these formats being available to Pootle users this makes it an ideal offline equivalent for Pootle. Virtaal includes Translation Memory, Machine Translation and Terminology support. It supports many other localisation formats and includes other useful features like spell checking, autocorrect and autocomplete. | |
=== Translation QA === | === Translation QA === | ||
Line 198: | Line 198: | ||
Don't forget that spellcheckers like [http://aspell.net/ Aspell] have a wide range of [http://ftp.gnu.org/gnu/aspell/dict/ dictionaries] for well over 70 languages. Spellcheckers not only check your spelling: they are great for catching typos. ;) | Don't forget that spellcheckers like [http://aspell.net/ Aspell] have a wide range of [http://ftp.gnu.org/gnu/aspell/dict/ dictionaries] for well over 70 languages. Spellcheckers not only check your spelling: they are great for catching typos. ;) | ||
− | Another great utility in the Translate Toolkit package is [ | + | Another great utility in the Translate Toolkit package is [https://translate.sourceforge.net/wiki/toolkit/pofilter pofilter] tool that can be used to catch many types of errors like translated variable names, incorrect capitalization, broken XML tags and many more. There is a <tt>--openoffice</tt> set of standard checks to be used with OpenOffice translations, but you may want to exclude some filters to reduce the number of false positives. Learn more on [[Automating_Translation_QA|Automating Translation QA]]. |
− | |||
=== Other tools === | === Other tools === | ||
− | Please make sure you are running the latest version of [ | + | Please make sure you are running the latest version of [https://www.gnu.org/software/gettext/index.html gettext], to benefit from its new features, like contextual handling and comparison with previous original strings. |
Please add further information on these and other tools that may help other translators to perform their job. | Please add further information on these and other tools that may help other translators to perform their job. |
Revision as of 11:31, 22 June 2023
This page summarizes useful information on the translation work needed to release a localized Apache OpenOffice version. To get in touch with the translations community please come and ask for some advice on the l10n@openoffice.apache.org mailing list, or on the #openoffice IRC channel.
en_US Source Strings
For every milestone on the DEV300 codeline (future non-branched 3.x releases) the current en-US source strings are extracted and uploaded in SDF file format to:
Diffs of all new and changed strings from each milestone can be found at:
Removed strings are not part of those diffs.
Release schedule
Keep an eye on the due date for translation submissions.
Release schedule with translation deadlines specific for the release you are targeting can be found at:
http://wiki.services.openoffice.org/wiki/OOoReleaseXXdeprecated where XX is OpenOffice.org release version number. You can also browse complete list.
Translation handover dates are also announced at the l10n@openoffice.apache.org mailing list.
Teams Translating with Pootle
More and more teams are using Pootle to translate (What is Pootle?). Here is the complete list.
Pootle provides web interface for translating, managing translation team and reviewing new translations.
As a bonus, when using Pootle for managing translations Pootle administrators will make sure content will be updated with new messages for translation and delivered for integration according to the release schedule. You do not need to prepare SDF files or create an issue if using Pootle. Unfortunately sometimes update is not glitch free and a lot of messages get marked as fuzzy and need translating when messages are relocated inside OpenOffice code base. You should always keep backups of your translations offline. There is no version control support for translations in Pootle.
For adding new languages to Pootle, native language project leads should ask on the l10n@openoffice.apache.org list. Then you need to register, and request to be added as the admin for your team. Then your translators need to register, so you can assign access rights and goals to them in the way that suits your project best. Translators on probation, for example, can be assigned only right to "Suggest", so their input is saved separately as draft translation strings for you to review.
Pootle Translation Process
- Server: https://translate.apache.org/
- Pootle administrators make sure Pootle content is updated according to translation schedule
- L10n lead give the Go to start translation on Pootle (announcement to the dev@l10n list)
- Native Language leads or the Translation lead coordinates the translation work User's Guide
- Translation teams work with Language team to make sure the translation is reviewed
- Native Language/translation leads make sure translation is complete within the deadlines
- Native Language/translation leads communicate translation completion to l10n lead
- Pootle administrator downloads the translated files and provide them to release engineering
It is recommended to use Pootle to manage the translation work. For translation it is recommended to download the files and translate them with a translation editor which support translation memory functionality. Linguistic review can be then performed right after translation.
Translation Notes for Pootle Users
Content on Pootle can be edited, fixed at any time. However, please make sure to subscribe the l10n@openoffice.apache.org list and to make sure not to upload all translated files before Pootle content updates are carried out. Pootle downtime, Pootle maintenance or Pootle content updates are announced to this list.
Translating using Gettext PO files
Gettext PO file format is popular format for editing translations used widely in free software community. There are many editors and other translations management or workflow tools supporting Gettext PO file format.
The SDF file as used by OpenOffice.org can be converted to Gettext PO files and backconverted using the tools from the Translate Toolkit package. The Translate Toolkit depends on the Python and Python-devel packages, so you must also have these installed on your system.
Documentation with examples for conversion and backconversion can be found at Translate Toolkit documentation. PO files provided on the Pootle deployment for Apache OpenOffice handle duplicate messages using msgctx feature (oo2po --duplicates=msgctx) which is a default and recommended settings in recent releases of Translate Toolkit.
When translating Apache OpenOffice using Gettext PO files you start with downloaded SDF file with source messages and generate a set of empty PO templates tree (POT). Then you either initialize empty PO files to be used with new translation project or merge an existing translations with new templates. After the translation is completed you should convert PO files back to GSI/SDF format using downloaded SDF file.
Generate a fresh set of PO templates
To generate a fresh set of PO templates (POT) out of downloaded SDF named en-US.sdf file run: oo2po -P -i en-US.sdf -o pot. Don't delete SDF file as you will need it to convert translations back to SDF/GSI file for translations delivery.
Sometimes generated POT files will be made ready for download at: http://download.services.openoffice.org/files/extended/ooomisc/POT/deprecated
The structure of the generated pot tree is embedded. Files exist inside directories and subdirectories. Do not change this hierarchy in any way. It is also important to remember that most of the strings are represented by the directory helpcontent2, also called the "Help". You may find it useful to separate this directory from the rest (called the "GUI"), when translating, so your efforts on the interface files do not appear to be a tiny proportion. The interface files are essential, and must be translated first, and maintained at 100% if possible. You can submit this translation separately. Then work on the Help, and try and get it done, bit by bit. So don't be discouraged by the size of the tree: it is mostly "Help".
If you are just starting new translation project use pot2po pot po to create an empty tree of PO files for translation.
Merge existing translations with new templates
If you already have already translated PO files located inside po tree you can update them to the new templates preserving all previous work. To merge (migrate) translations to new templates pomigrate2 tool from Translation Toolkit can be used. It is advanced tool trying to reuse as many messages as possible. You should read the documentation available to get the best combination of options working for you.
Frequently it is used as pomigrate2 -C -F po ponew pot to merge existing translation inside po directory tree with new templates from pot directory tree into new directory tree ponew. This will also do fuzzy matching and use a compendium which will help migrating messages relocated inside Apache OpenOffice source code tree.
Translate messages
All translations must be in UTF-8 encoding (the standard encoding for translations), so make sure the Preferences in your editor are set to UTF-8.
When translating, you must preserve the existing structure of each string (placeholders/variables, escape marks, XML tags, etc.). Only change the translatable text.
Look at the string IDs in the .po files: they are mostly quite informative. At least you can understand which type of GUI element is represented by that string (label, menuitem, radiobutton, pushbutton).
There is no need to keep the ~accelerator marks in the translation, as Apache OpenOffice can insert those itself and will move them in case of conflicts. Accelerators are needed in translation only for:
- top level menus (File, Edit…)
- general pushbuttons where you would like to select specific accelerators and to make them consistent between releases
Generate GSI/SDF file from translated PO files
When you are satisfied with your translations you should use po2oo tool from Translation Toolkit to convertback translated PO files into GSI/SDF file for translations delivery.
You will need downloaded en-US.sdf SDF file which was used for generating POT tree. Having PO tree in po directory, run po2oo -l sr -i po -t en-US.sdf -o GSI_sr.sdf where sr is your locale language code and GSI_sr.sdf is output GSI/SDF file name. Use your locale code.
Check output file with Gsicheck tool (see below), compress it using bzip2 (bzip2 -k GSI_sr.sdf) and upload to some public http or ftp space for submitting in the issue requesting integration.
How to deliver translated files
- provide SDF files that contain translated strings only (please remove non translated strings from the sdf file)
- provide a GSI / SDF file containing both the translated strings and the corresponding en-US source strings. Remove untranslated strings from the sdf file. Please note that the en-US strings have to be the same milestone like your translation.
- please make sure that the GSI / SDF file format is not violated (format errors like wrong amount of tabs, shifted columns, ... ) by using "Gsicheck". Please use the latest version. Usage: gsicheck -c myfile.sdf. In case of errors please use the log file to fix them.
- go to Bugzilla and file a bug, Target milestone to "AOo XX" , Component "l10n" , Subcomponent "code" , Issue type "ENHANCEMENT". The summary line should describe the type of strings (GUI, Help or both), language and version. For example: [VI] GUI Translation for 2.2. Please don't attach your file directly to the issue, but provide an URL / link pointing to your file. Please do attach only if you don't have any other webspace available.
What happens after I submit the issue?
Lots of interesting stuff. :) Once your issue is submitted your translation will be included in the next build targeted to integrate localization. Once announced you can download it from the download server and start testing it.
The release schedule does allow you some time to test your builds and submit language fixes for the translation. It's also important to test how the build works, and to submit issues for any problems.
Getting and distributing localized builds
See more information How to get Apache OpenOffice released in your language.
To summarize, here are the basic steps after final localized RC (release candidate) builds are available:
- run sanity check on RC l10n builds
- update the test status on QATrack
- set the status as APPROVED in QATrack
- get an approved build distributed to the mirror network by filling an issue
Think about joining a Native-Language Confederation and further improve your native language project.
Tips and Tools
Team
Build a team of translators and 1-2 reviewers to work on the project. It is recommended to keep the number of the reviewers to 1-2 people, since the more translators and reviewers working on the project, the less you can ensure quality and consistency.
Glossary
OpenCTI - terminologydeprecated was the repository of the latest terminology used in OpenOffice.org. Open CTI replaced SunGloss. No need to log in to lookup terms, but if you want to add or edit terms, you will need to get an account (please register first). A Help button is available and provide instructions on how to use the tool.
Translation Memories
If you have translated other software, especially software which performs tasks similar to those of an Apache OpenOffice component (e.g. Gnumeric, AbiWord, Koffice, the GIMP), we recommend you use translation memory, to avoid duplication of work, and to use existing resources as effectively as possible. Translation memories can help reduce inconsistencies in your translations.
You can create, maintain and apply your translation memory (TM) using 'plain Translation Compendia' gettext (please refer to the gettext manual)
Latest translation memories in the TMX format can be found at: http://ooo.services.openoffice.org/pub/OpenOffice.org/cws/upload/localization/deprecated under tmxXX directory where XX is Apache OpenOffice release version number.
TMX can also be created as follows:
- download PO files from Pootle or extract from SDF file
- run po2tmx
For more information on using Translation memories and Glossaries in Pootle please refer to below page: https://wiki.openoffice.org/wiki/Pootle_Glossary_Guide#Translation_Memory_in_Pootle
Gsicheck Tool
Gsicheck tool should be used to make sure the translated .sdf files are not corrupted can be found at:
http://ooo.services.openoffice.org/gsicheck/deprecated
Translation Editors
Various translation editors that support the Gettext PO file format (in alphabetic order):
- Entrans
- GNOME Translator
- LocFactoryEditor
- Lokalize (previously known as Kbabel)
- OmegaT
- OmegaT+
- Poedit
- Virtaal (from the creators of Pootle)
- WordForge (previously known as Pootling)
PoEdit, Lokalize and WordForge run on both Linux and Windows. Lokalize is the KDE4 replacement of the old KBabel, which has long been the most popular PO editor for these platforms, but GNOME Translator and PoEdit have planned improvements which may make them more competitive; WordForge is a new editor which is rapidly becoming popular.
OmegaT+ is a cross-platform Java application that runs on Linux, macOS, Solaris, Windows, and other supported platforms. It supports a number of document formats and TMX for translation memories, along with matching, glossary, and machine translation. Features improved reliability, speed, and user interface.
OmegaT runs on Windows, Linux and macOS. It supports a number of file formats, TMX for translation memories, TBX (beside simple TXT & CSV) for the terminology, and offers dictionary interfacing, on-the-spot spell checking and machine translation.
GNOME Translator runs on Linux and some BSD platforms.
LocFactoryEditor runs only on macOS. It handles XLIFF natively, and supports Apple formats, gettext formats, SVN submission and submission by email to projects like the TP (TP Robot) and Debian (Debian BTS). It also converts between PO compendia and TMX.
Virtaal runs on Linux and Windows. It supports XLIFF and PO natively, with both of these formats being available to Pootle users this makes it an ideal offline equivalent for Pootle. Virtaal includes Translation Memory, Machine Translation and Terminology support. It supports many other localisation formats and includes other useful features like spell checking, autocorrect and autocomplete.
Translation QA
Don't forget that spellcheckers like Aspell have a wide range of dictionaries for well over 70 languages. Spellcheckers not only check your spelling: they are great for catching typos. ;)
Another great utility in the Translate Toolkit package is pofilter tool that can be used to catch many types of errors like translated variable names, incorrect capitalization, broken XML tags and many more. There is a --openoffice set of standard checks to be used with OpenOffice translations, but you may want to exclude some filters to reduce the number of false positives. Learn more on Automating Translation QA.
Other tools
Please make sure you are running the latest version of gettext, to benefit from its new features, like contextual handling and comparison with previous original strings.
Please add further information on these and other tools that may help other translators to perform their job.