Creating UI translations for eCub

Contributing a translation

If you would like to contribute to a translation of eCub, please download the latest .po file in the Download page, translate the strings, and then compile a .mo file, for example using poEdit. The .mo file should be called ecub.mo and should be placed in a suitably-named directory in the eCub installation (next to the executable). For example, a French translation would go in the fr_FR directory. You should also copy the file wxstd.mo from a directory under locale in the wxWidgets 2.8.8 distribution.

Then when you restart eCub, that language should be available in the General Preferences dialog; change to this language, and restart eCub once more.

If you email me your translation, I can bundle it with the next version of eCub.

Thank you in advance for your translations!

Resources and help files

If a resource file exists in the translation directory, it will be used, otherwise the default file (in the en_GB folder or in the application folder) will be used. The following is a list of the resources that should be translated.

  • ecub.htb: the manual
  • ecub.bin: resources file in zip format, containing images and HTML files under the Resources folder name, including:
    • about.htm: 'About' text
    • welcome.htm: welcome text

If you wish to translate the HTB files, I can supply free registration for Anthemion HelpBlocks to do this and can send the eCub manual sources on request.

More on working with .po files

When starting a translation, take a copy of the .po file downloaded from this site, renamed to ecub.po. For each msgid string there should be an equivalent msgstr, the translation.

When a new version of eCub is released, you will probably find that some strings have been changed. Download the latest .po again, and merge it with your original .po file like this:

  msgmerge --quiet --no-fuzzy-matching ecub.po ecub1.04.po > ecub_new.po
  mv ecub_new.po ecub.po

Redundant translations (where the original string has been changed or removed) are commented out and added to the end of the file. Open the file in poEdit to find the untranslated strings.

If you wish to compile the .po into a .mo for testing purposes, you can use poEdit or you can run the command manually:

  msgfmt -o ecub.mo ecub.po

Windows binaries of the gettext tools, including msgmerge.exe and msgfmt.exe, are available here.

Other tips:

  • To preserve mnemonics in menus, you can add the mnemonic in brackets after the translated string.
  • Ask us if you have questions about the meaning of any of the strings.

More on working with help files

The files ecub.htb is a wxWidgets HTML Help file that must be edited using HelpBlocks.

Here are some guidelines for translating these files:

  • Please request the source files from us, and copy to a new location. When you have finished, please submit all files back to us.
  • The structure must remain identical to the original in all translations. In particular, the name of the topic identifier (shown in
    the page properties dialog) should not be changed and it should be in the same relative position. Otherwise, the identifiers associated
    with each topic name will not be the same, and the wrong pages will be displayed when Help is pressed in the application.
  • Use the _APP macro for referring to eCub. You can redefine it if necessary, in the macro preferences page.
  • The What's New? page does not need to be translated, though you can add a note at the start in the native language.

Table of languages and their canonical (directory) names

English en_GB
Abkhazian ab
Afar aa
Afrikaans af_ZA
Albanian sq_AL
Amharic am
Arabic ar
Arabic (Algeria) ar_DZ
Arabic (Bahrain) ar_BH
Arabic (Egypt) ar_EG
Arabic (Iraq) ar_IQ
Arabic (Jordan) ar_JO
Arabic (Kuwait) ar_KW
Arabic (Lebanon) ar_LB
Arabic (Libya) ar_LY
Arabic (Morocco) ar_MA
Arabic (Oman) ar_OM
Arabic (Qatar) ar_QA
Arabic (Saudi Arabia) ar_SA
Arabic (Sudan) ar_SD
Arabic (Syria) ar_SY
Arabic (Tunisia) ar_TN
Arabic (Uae) ar_AE
Arabic (Yemen) ar_YE
Armenian hy
Assamese as
Aymara ay
Azeri az
Azeri (Cyrillic) az
Azeri (Latin) az
Bashkir ba
Basque eu_ES
Belarusian be_BY
Bengali bn
Bhutani dz
Bihari bh
Bislama bi
Breton br
Bulgarian bg_BG
Burmese my
Cambodian km
Catalan ca_ES
Chinese zh_TW
Chinese (Simplified) zh_CN
Chinese (Traditional) zh_TW
Chinese (Hongkong) zh_HK
Chinese (Macau) zh_MO
Chinese (Singapore) zh_SG
Chinese (Taiwan) zh_TW
Corsican co
Croatian hr_HR
Czech cs_CZ
Danish da_DK
Dutch nl_NL
Dutch (Belgian) nl_BE
English en_GB
English (U.K.) en_GB
English (U.S.) en_US
English (Australia) en_AU
English (Belize) en_BZ
English (Botswana) en_BW
English (Canada) en_CA
English (Caribbean) en_CB
English (Denmark) en_DK
English (Eire) en_IE
English (Jamaica) en_JM
English (New Zealand) en_NZ
English (Philippines) en_PH
English (South Africa) en_ZA
English (Trinidad) en_TT
English (Zimbabwe) en_ZW
Esperanto eo
Estonian et_EE
Faeroese fo_FO
Farsi fa_IR
Fiji fj
Finnish fi_FI
French fr_FR
French (Belgian) fr_BE
French (Canadian) fr_CA
French (Luxembourg) fr_LU
French (Monaco) fr_MC
French (Swiss) fr_CH
Frisian fy
Galician gl_ES
Georgian ka
German de_DE
German (Austrian) de_AT
German (Belgium) de_BE
German (Liechtenstein) de_LI
German (Luxembourg) de_LU
German (Swiss) de_CH
Greek el_GR
Greenlandic kl_GL
Guarani gn
Gujarati gu
Hausa ha
Hebrew he_IL
Hindi hi_IN
Hungarian hu_HU
Icelandic is_IS
Indonesian id_ID
Interlingua ia
Interlingue ie
Inuktitut iu
Inupiak ik
Irish ga_IE
Italian it_IT
Italian (Swiss) it_CH
Japanese ja_JP
Javanese jw
Kannada kn
Kashmiri ks
Kashmiri (India) ks_IN
Kazakh kk
Kernewek kw_GB
Kinyarwanda rw
Kirghiz ky
Kirundi rn
Korean ko_KR
Kurdish ku
Laothian lo
Latin la
Latvian lv_LV
Lingala ln
Lithuanian lt_LT
Macedonian mk_MK
Malagasy mg
Malay ms_MY
Malayalam ml
Malay (Brunei Darussalam) ms_BN
Malay (Malaysia) ms_MY
Maltese mt_MT
Maori mi
Marathi mr_IN
Moldavian mo
Mongolian mn
Nauru na
Nepali ne
Nepali (India) ne_IN
Norwegian (Bokmal) nb_NO
Norwegian (Nynorsk) nn_NO
Occitan oc
Oriya or
(Afan) Oromo om
Pashto, Pushto ps
Polish pl_PL
Portuguese pt_PT
Portuguese (Brazilian) pt_BR
Punjabi pa
Quechua qu
Rhaeto-Romance rm
Romanian ro_RO
Russian ru_RU
Russian (Ukraine) ru_UA
Samoan sm
Sangho sg
Sanskrit sa
Scots Gaelic gd
Serbian sr_YU
Serbian (Cyrillic) sr_YU
Serbian (Latin) sr_YU
Serbo-Croatian sh
Sesotho st
Setswana tn
Shona sn
Sindhi sd
Sinhalese si
Siswati ss
Slovak sk_SK
Slovenian sl_SI
Somali so
Spanish es_ES
Spanish (Argentina) es_AR
Spanish (Bolivia) es_BO
Spanish (Chile) es_CL
Spanish (Colombia) es_CO
Spanish (Costa Rica) es_CR
Spanish (Dominican republic) es_DO
Spanish (Ecuador) es_EC
Spanish (El Salvador) es_SV
Spanish (Guatemala) es_GT
Spanish (Honduras) es_HN
Spanish (Mexican) es_MX
Spanish (Modern) es_ES
Spanish (Nicaragua) es_NI
Spanish (Panama) es_PA
Spanish (Paraguay) es_PY
Spanish (Peru) es_PE
Spanish (Puerto Rico) es_PR
Spanish (Uruguay) es_UY
Spanish (U.S.) es_US
Spanish (Venezuela) es_VE
Sundanese su
Swahili sw_KE
Swedish sv_SE
Swedish (Finland) sv_FI
Tagalog tl_PH
Tajik tg
Tamil ta
Tatar tt
Telugu te
Thai th_TH
Tibetan bo
Tigrinya ti
Tonga to
Tsonga ts
Turkish tr_TR
Turkmen tk
Twi tw
Uighur ug
Ukrainian uk_UA
Urdu ur
Urdu (India) ur_IN
Urdu (Pakistan) ur_PK
Uzbek uz
Uzbek (Cyrillic) uz
Uzbek (Latin) uz
Vietnamese vi_VN
Volapuk vo
Welsh cy
Wolof wo
Xhosa xh
Yiddish yi
Yoruba yo
Zhuang za
Zulu zu