Difference between revisions of "Translating Mudlet"
m (Fix French plural error for the zero case) |
(Add Arabic plural as example) |
||
Line 89: | Line 89: | ||
Example: The text "You have just destroyed %n room(s)...!" in English needs two plural forms: One for the can of "one" single room, and the other for all "other" quantities (many or no rooms). Therefore this text would require two translations "You have just destroyed a room...!" and "You have just destroyed %n rooms...!". | Example: The text "You have just destroyed %n room(s)...!" in English needs two plural forms: One for the can of "one" single room, and the other for all "other" quantities (many or no rooms). Therefore this text would require two translations "You have just destroyed a room...!" and "You have just destroyed %n rooms...!". | ||
− | Other languages may have more or other cases than the English "one" and "others". For instance Japanese has only one form for all quantities. On the other hand French doesn't use an additional "s" in the "zero" case. In comparison Russian has a more complex system with three cases. See [https://doc.qt.io/qt-5/i18n-plural-rules.html Qt: Translation Rules for Plurals] for more details. | + | Other languages may have more or other cases than the English "one" and "others". For instance Japanese has only one form for all quantities. On the other hand French doesn't use an additional "s" in the "zero" case. In comparison Russian has a more complex system with three cases, and Arabic even differentiates between six different plural cases: Zero, One, Two, Few, Many and Other. See [https://doc.qt.io/qt-5/i18n-plural-rules.html Qt: Translation Rules for Plurals] for more details. |
To add these translations as a ''developer'' when you have added or modified a source string with an ''%n'' and a third, integer, argument to a ''QObject::tr(translatable string, comment string, count)'' method call: | To add these translations as a ''developer'' when you have added or modified a source string with an ''%n'' and a third, integer, argument to a ''QObject::tr(translatable string, comment string, count)'' method call: |
Revision as of 19:23, 25 January 2022
Thanks for helping translate Mudlet to your language! Mudlet is a free, open-source project and helping it speak your language means a lot to us. :)
How to start?
- Go to Mudlet on Crowdin
- Select the language you'd like to translate.
- Log in
- Select development - translations - mudlet.ts
- Start translating!
How to test my translation?
Go here and click on 'New Crowdin updates'. You can then download a test version of Mudlet that has your latest translations.
How to get a gold star?
Translating a language above 95% will earn it a gold star. If a language has a gold start, Mudlet will automatically use it for a new player first time they open it!
Can I translate on my phone?
Yep! Crowdin's translation interface is mobile-friendly. Kill some commute time by helping translate!
Suggested settings in Crowdin
- In options, hide html code, so it will display shortened as <1> and </1> for example.
- Click Context to always display information on where the current string is used exactly. Sometimes you can even see screenshots here for comparison.
Other translations needed?
Below the file mentioned above, you can find more content from Mudlet website and wiki. For example, international users want to read new release notes or documentation for specific Mudlet functionality, at best in their own language.
Translating Mudlet Wiki
- Mudlet Wiki supports making translations locally, within the Wiki software. While this option is enabled to help translation of content that contains Wiki-specific markup, it is not encouraged to make translations using the Wiki.
- All translations made directly on the Wiki are highly likely to be erased when automation imports translation data from the Crowdin project!
- If you make translations using the Mudlet Wiki interface, please copy those translations to the appropriate file in Crowdin.
How to coordinate?
A simple chat functionality exists in Crowdin: You can comment on each text separately. This way, you can also give feedback to Mudlet developers.
However, if you want to coordinate more thoroughly, please feel free to join us on Discord or in Mudlet's international forum. Doing that, you can easily establish a more permanent contact with other translators and continue from there.
Fixing source text
Sometimes you might find a typo or an error in the source text! To fix it, do the following:
- Go to https://github.com/Mudlet/Mudlet and search for the typo you'd like to fix - in this example, extention.
- Click on the file you'd like to edit.
- Select the
development
branch.
- And then click the
Edit this file
button.
- Edit the typo (1), give your fix a name (2), as well as a machine-friendly name (3) and hit Commit changes (4)
- Lastly, open a pull request to integrate your changes - you can re-use the same title (1) as the overview (2), put in the reasion (3) and finally hit the green (4) button to submit your change!
Special notes on separate translations
Plural forms in (American) English
Note: This section is for Mudlet developers only :)
The plural forms in Mudlet's original American English texts need to be handled internally, as the CrowdIn system does not allow for this as a special case where one target locale only contains the plural form whereas the remainder of the source texts are in the required language already. The translation file thus consists only of translations that contain a numerus (quantity-dependent) translation where the source text varies depending on a quantity.
Example: The text "You have just destroyed %n room(s)...!" in English needs two plural forms: One for the can of "one" single room, and the other for all "other" quantities (many or no rooms). Therefore this text would require two translations "You have just destroyed a room...!" and "You have just destroyed %n rooms...!".
Other languages may have more or other cases than the English "one" and "others". For instance Japanese has only one form for all quantities. On the other hand French doesn't use an additional "s" in the "zero" case. In comparison Russian has a more complex system with three cases, and Arabic even differentiates between six different plural cases: Zero, One, Two, Few, Many and Other. See Qt: Translation Rules for Plurals for more details.
To add these translations as a developer when you have added or modified a source string with an %n and a third, integer, argument to a QObject::tr(translatable string, comment string, count) method call:
- Ensure you are using the latest version you can of the following Qt utilities
- Move to the root of Mudlet's source code
- Ensure the translation file is up to date:
lupdate -locations absolute -pluralonly ./src/ ./3rdparty/dblsqd/dblsqd ./3rdparty/edbee-lib/edbee-lib -ts ./translations/translated/mudlet_en_US.ts
- Edit the translation for this locale:
linguist ./translations/translated/mudlet_en_US.ts
- Fill in (and accept!) the translations - you do not have to leave the %n in the translated texts for the singular case, but the tool may moan slightly about it not being there...
The resulting translations will then be converted into the binary file ./translations/translated/mudlet_en_US.qm
to be included into the main Mudlet resources along with the other translations when the project is next compiled.