To start with you will need to download the latest version of the application (whatever that is) so that you have an up to date resource file. You should also download a copy of LgiRes, the editor for the resource file.
The language data is stored in the .lr8 file that came with the application. You can open this up in a text editor or LgiRes and have a browse through the raw UI information. Worst comes to worst you can edit this directly to add a language but it's probably going to be easier to use LgiRes, the custom application for editing .lr8 files. I'm telling you this so that you to be aware of the second option if you have trouble with LgiRes.After adding the translation to the .lr8 file you can start the application to see your changes. If your computers language is set to whatever language you are adding you should see the new text in the dialogs etc. But if your settings are just english that you can change the language inside the program. For Scribe use Options -> Appearence and then restart the application. For i.Ftp use the Language menu.
Anyway back to the task of adding a translation. The initial strings look something like this:
<string Ref=2 Cid=1112 Define="IDC_SOCKS5" en="Optional SOCKS 5 Proxy Settings" fr="Paramtres Proxy socks5" it="Settaggi Proxy SOCKS5" cs="Voliteln SOCKS 5 proxy nastaven"/>This is standard XML markup, so all the XML formatting rules apply. The line breaks and attributes are not sensitive to whitespace. However you can put a new line character in a string using '\n'. You'll see that some strings have '\n' in them, and you should try and include those in your translation. Ok the initial "String" says that this tag is a string, and the "Ref" is a globally unique value to link this string with an element in the user interface, defined later in the file. The "Define" the value is use in my C++ code to reference the string or user interface element. So changing that won't effect anything. The interesting part is the language attributes. These define the text for different languages, in this example "en" is the code for english and "fr" is the code for french. So this element has 4 languages. To add a translation to spanish for instance you would add an attribute like this:
<string Ref=2 Cid=1112 Define="IDC_SOCKS5" en="Optional SOCKS 5 Proxy Settings" fr="Paramtres Proxy socks5" it="Settaggi Proxy SOCKS5" cs="Voliteln SOCKS 5 proxy nastaven" es="Parmetros opc. Proxy SOCKS5"/>("es" being the language code for spanish)
The language codes are defined below. All text has to be in utf-8 so you must use a utf-8 capable editor otherwise the data will be corrupted.
Language | Id |
Abkhazian | ab |
Afar | aa |
Afrikaans | af |
Albanian | sq |
Amharic | am |
Arabic | ar |
Armenian | hy |
Assamese | as |
Aymara | ay |
Azerbaijani | az |
Belarusian | be |
Bashkir | ba |
Basque | eu |
Bengali | bn |
Bhutani | dz |
Bihari | bh |
Bislama | bi |
Breton | br |
Bosnian | bs |
Brazilian Portuguese | pt_br |
Bulgarian | bg |
Burmese | my |
Cambodian | km |
Catalan | ca |
Chinese | zh |
Chinese Simplified | zh_cn |
Chinese Traditional | zh_tw |
Corsican | co |
Croatian | hr |
Czech | cs |
Danish | da |
Dutch | nl |
English | en |
Esperanto | eo |
Estonian | et |
Faeroese | fo |
Farsi | fa |
Fiji | fj |
Finnish | fi |
French | fr |
Frisian | fy |
Galician | gl |
Gaelic | gd |
Gaelic | gv |
Georgian | ka |
German | de |
Greek | el |
Greenlandic | kl |
Guarani | gn |
Gujarati | gu |
Hausa | ha |
Hebrew | he |
Hindi | hi |
Hungarian | hu |
Icelandic | is |
Indonesian | id |
Interlingua | ia |
Interlingue | ie |
Inuktitut | iu |
Inupiak | ik |
Irish | ga |
Italian | it |
Japanese | ja |
Javanese | jv |
Kannada | kn |
Kashmiri | ks |
Kazakh | kk |
Kinyarwanda | rw |
Kirghiz | ky |
Kirundi | rn |
Korean | ko |
Kurdish | ku |
Laothian | lo |
Latin | la |
Latvian | lv |
Limburgish | li |
Lingala | ln |
Lithuanian | lt |
Luganda | lg |
Macedonian | mk |
Malagasy | mg |
Malay | ms |
Malayalam | ml |
Maltese | mt |
Maori | mi |
Marathi | mr |
Moldavian | mo |
Mongolian | mn |
Nauru | na |
Nepali | ne |
Norwegian | no |
Occitan | oc |
Oriya | or |
Oromo | om |
Pashto | ps |
Polish | pl |
Portuguese | pt |
Punjabi | pa |
Quechua | qu |
Rhaeto-Romance | rm |
Romanian | ro |
Runyakitara | ry |
Russian | ru |
Samoan | sm |
Sangro | sg |
Sanskrit | sa |
Serbian | sr |
Serbo-Croatian | sh |
Sesotho | st |
Setswana | tn |
Shona | sn |
Sindhi | sd |
Sinhalese | si |
Siswati | ss |
Slovak | sk |
Slovenian | sl |
Somali | so |
Spanish | es |
Sundanese | su |
Swahili | sw |
Swedish | sv |
Tagalog | tl |
Tajik | tg |
Tamil | ta |
Tatar | tt |
Telugu | te |
Thai | th |
Tibetan | bo |
Tigrinya | ti |
Tonga | to |
Tsonga | ts |
Turkish | tr |
Turkmen | tk |
Twi | tw |
Uighur | ug |
Ukrainian | uk |
Urdu | ur |
Uzbek | uz |
Vietnamese | vi |
Volap?k | vo |
Welsh | cy |
Wolof | wo |
Xhosa | xh |
Yiddish | yi |
Yoruba | yo |
Zulu | zu |