Translating XYplorer using the Interface Translation Tool (ITT)
The Interface Translation Tool (available in the XYplorer BETA versions from v11.70.0107 onwards) lets you translate virtually all interface text bits in XYplorer in a convenient way. Here's a short guide on using it.
How to use the Interface Translation Tool (ITT)
NOTE: I cannot allow more than one official translation per language. So, before you start translating, check in this forum if any other translator is already working at it!
First download this file: http://www.xyplorer.com/download/Language.zip
Unpack archive in App Data Folder: It contains one or more Reference_*.lng files.
Load the latest Reference_*.lng using menu Help | Select Language.... The version number should match the one shown under "Language Support" in Help | Various Information.
NOTE: Translators should always work with the latest BETA version of XYplorer to be up-to-date.
Open the ITT using menu Help | Interface Translation Tool. Note that this command is only enabled when a language file is loaded.
Name your LNG file: First save the file Reference_*.lng under a the English name of the language, e.g. "French". The ITT will automatically append the current MLS version, e.g. "French_8.21.lng". You do this in menu File | Save As... in the ITT.
Upgrading the LNG file: Later you can upgrade the currently loaded LNG file using the command Upgrade Language File (Download) in the File menu of the ITT.
Header Data: Now at the top of the list you can edit some of the header data. Then the actual translation begins with the "OK" button.
Original and translation are WYSIWYG-previewed where applicable. Variables are resolved using "Dummy" values, number variables are resolved using a set of test numbers (0, 1, 2, 5, 21).
Click the Apply & Next button or press <enter> in the Edit box (Ctrl+Enter in a multi-line box) to apply the changes in the current item, set it to "translated" state internally, make it green in the text items list, and move on to the next item.
Tip: Right-click the Apply & Next button to pop the Edit menu as context menu.
Suggestions are given if similar items have already been translated. Click on a suggestion to place its value into the Edit field. Right-click an item in the suggestions list to choose how it is applied to the Edit field. See also Word Lists below.
If you save the changes they will be immediately applied to the application interface after closing the ITT.
Apart from translation you can use this tool to modify the original English, e.g. add helpful remarks to captions or tooltips. In other words, you now have a revolutionary way to personalize the application.
Of course, you can as well work directly in the LNG file using any editor. The ITT is just a GUI for this job.
Word Lists
You can define up to two word lists that will be used for suggestions. The paths to the word lists have to be stated in the file ITT.ini which should be located in app data path. Example for the contents of ITT.ini:
Code: Select all
[Settings]
WordList1=WordList-hr.txt
WordList2=MicrosoftTermCollection-hr_XYstyle.UTF8
Variables
Do not translate <$variables>. Most variables resolve to file or path names and do not inflect morphologically.
Grammatical Number
Code: Select all
Examples:
<#> <file;files> found
<#> <file;~s> found
<#> <file;~s> <has been;have been> found
<#> <file;~s> and <2:#> <2:folder;~s>
<#> <file|~;~s>
Explanation:
<#> = the number itself
<singular form;plural form> = a word (noun/adj/verb) in agreement to this number
~ = placeholder for the first form (practical in many languages with affixing morphology)
<2:#> = a second number itself (agreeing with <2:folder;~s>)
<domin|~us;~i> = optionally you can prefix the stem separated by |. Useful in many languages.
Grammatical number is preset to Western European (English, German, Italian, Portuguese, Spanish) type <one;other>
Note that French (n3) might need <zero/one;other> (ask me for details)
Other number systems are supported (ask me for details), e.g. PortugueseBrazil/French/Hindi (n3) <zero/one;other>, Colognian (n4) <zero;one;other>, Russian/Slavic (n5) <one;few;many;other>, Arabic (n6) <zero;one;two;few;many;other>, Polish (n7) <one;few;many;other>, Czech/Slovak (n8) <one;few;other>.
There is a scripting function for debugging grammatical number:
Code: Select all
::lang_testnum "<#> <n5:файл;файла;файлов;файлов>", 11, 0 //show number 11
::lang_testnum "<#> <n5:файл;файла;файлов;файлов>", 11, 1 //show all numbers from 0 to 11
Accelerators, or Accelerators Keys, are those underscored letters in menu items and button captions, that can be used to trigger that item or button when pressed in combination with Alt, e.g. Alt+F to open the File menu. In the captions the accelerators are marked by a preceding & (ampersand). The problem now is to distribute the accelerators in one menu or one view in such a way that none used more than one time (otherwise they don't work as well, but just flip between the items because it is not clear which to trigger).
Now, the translation of an original item cannot simply take over the orginal accelerator because the letter does not necessarily exist in the translation. So here's a problem for the translators: Which accelerator to take and how to ensure a good distribution without knowing which items form an "accelerator group"? Difficult! But the ITT comes to rescue: The commands Assign Missing Accelerators and Re-Assign All Accelerators will perform the whole job within seconds.
For East-Asian languages that don't use the Latin alphabet at all (like Korean, Chinese, Japanese) there are special commands in menu Tools that can be used to append the Accelerators Keys within parentheses: Append Missing Accelerators in Parentheses and Re-Assign All Accelerators in Parentheses.
External Links
Some helpful pages for translators:
Terminology Search - Microsoft | Language Portal
Microsoft Terminology Collection
Final Remarks
Without "Language.ini" the app will load with the embedded English strings just as all the time before multilingual support.
"TipOfTheDay.htm" contents are NOT included. This file should be translated by itself if desired.
"CatalogDefault.dat" contents are NOT included. This file should be translated by itself if desired. Currently the app will NOT load "CatalogDefault.dat" when a language other than English is loaded.