User:Kebap/translation infrastructure
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
History
- https://github.com/Mudlet/Mudlet/issues/856 - Setup a web-based translation service for Mudlet
- https://github.com/Mudlet/Mudlet/issues/1664 - Translation infrastructure of Mudlet web-presences
Main sources of text
- Mudlet client itself
- Mudlet website
- Mudlet wiki
- "other" spontaneus texts need to be included manually
Processes for each
- Find out a way to tell outdated texts from relevant current texts which need translation.
- Get texts out of sources (see above). Can this be automated with any tool? Who should be responsible?
- Get texts in to translation tool.
- Translating inside tool (ok this is to be expected, but also needs good interface and workflows)
- Translators report confusing strings back to Mudlet team with information how they need to be adjusted.
- Mudlet team updates text in source. Either because of reports, or because of natural evolution.
- Updated texts from source need updates in translation tool. Export and import again, plus diff.
- Translated texts will be finished. Export them from translation tool. Automation again?
- Import translated text to source.
- Display of translations in source. Here we will need some sort of language toggle switch in each source.
References
- Another great in-depth look at several alternatives and the process in general in this master study thesis about “Translations in libre software”: https://larjona.wordpress.com/translations-in-libre-software/
- multilingual plugins for Wordpress: https://wordpress.org/plugins/search/multilingual
- Polylang: https://wordpress.org/plugins/polylang/
- Wordpress internationalisation workflow
- integration to Crowdin
- Mediawiki
- Github
- Notes from other translation efforts
- Instructions from other project's translations:
Decisions
- We want to use US English in the source. Sometimes it is still en/GB - e.g. "licence/license", "color/colour", etc. SlySven will provide a dedicated en/GB translation, but origin will be en/US
- When a language offers multiple choices on how to address the reader, we will choose the less formal, more friendly way
- Some texts can't be translated easily in Crowdin, as they are surrounded by < and > for example. This needs to be adjusted in source. See PR #1804 for example and possible solution.
- Some IRC texts start with ! or alike symbols which must not be translated. Compare above solution.
Updating input strings for translation
- Using Qt Linguist: http://doc.qt.io/qt-5/qtlinguist-index.html
- command will pull strings from Mudlet client's sources and put into mudlet.ts
- command is: lupdate.exe -recursive .\src\ -ts .\translations\mudlet.ts
- lupdate is available during Windows compilation in this folder: C:\Qt\5.11.0\mingw53_32\bin\
Review progress on each language
- Crowdin offers statistics in settings, counting translation percentage of words
- Whereas Mudlet counts percentage of strings and languages >95% receive a gold star
- How to review the progress of current Crowdin translations:
Example progress snapshot from 2019-04:
Project MESSAGE: Building translations
lang trnsl utrnsl finish unfin total percentage
de_DE 1863 28 1863 0 1891 98
el_GR 0 1891 0 0 1891 0
en_GB 403 1488 403 0 1891 21
es_ES 735 1156 735 0 1891 38
fr_FR 150 1741 150 0 1891 7
it_IT 809 1082 809 0 1891 42
nl_NL 45 1846 45 0 1891 2
pl_PL 514 1377 514 0 1891 27
pt_PT 260 1631 260 0 1891 13
ru_RU 1686 205 1684 2 1891 89
zh_CN 961 930 961 0 1891 50
zh_TW 0 1891 0 0 1891 0
en_US 11 0 11 0 11 100
How to exclude text from translation
- In .cpp files, do not use tr() function. Easy.
- In .ui files, change the opening
<string>
tags of the elements to<string notr="true">
- Or click in QtDesigner like this: https://github.com/Mudlet/Mudlet/pull/2481#pullrequestreview-221930644