[FEATURE] Translation of labels into Italian
KernelPanic92 opened this issue · 2 comments
I would like to propose the addition of Italian label translations to make the user experience more accessible for Italian speakers. I am willing to personally take care of the translation and implementation of these changes. This issue serves as a starting point to discuss the best approach and gain the consensus of the community and project maintainers. It would be a pleasure to contribute to making "Dungeon Paper" more inclusive for the Italian community.
Hi @KernelPanic92, thanks for opening the issue!
I appreciate your willingness to help.
Note that this is no small undertaking, so if you get help it will make things easier. I myself don't know Italian so I can't help unfortunately. I will also have to trust you to have good translations and not joke/harmful ones. Please be kind :)
If you want to get started translating, there are 2 main areas to focus on.
- The app itself needs translation
- All the DW data needs translation
Here are some instructions to get started:
Translating the app
For translating the app, you will want to:
- Fork this repository
- If you want to actually run the app, it will be an involved process. Let me know and I will update some documentation and provide some more info.
- Find the file lib/l10n/intl_en.arb
- Copy it to the same directory and name it something like
intl_it.arb
. - Go over the values of each key in the JSON file (not the keys!) and translate them. Here is official documentation to read. TLDR:
- There are programs to help you do that if you want
- ARB files have tokens inside them. The following should not be translated:
-
Variable tokens like
{coins}
-
SELECT statements have the following format, the number labels are to easily reference them when I explain here:
1 2 3 4 3 4 3 4 {var, select, opt1 {opt 1 label} op2 {opt 2 label} ... other {unmatched label}}`
Example:
{alignment, select, chaotic {Chaotic} evil {Evil} good {Good} lawful {Lawful} neutral {Neutral} other {{alignment}}}
1, 2 and 3 should not be translated. Only 4.
-
PLURAL statements are similar to SELECT statements -
{count, plural, =0 {No coins} one {One coin} other {{fmtCount} coins}}
-
Translating the DW data
- Fork the repository https://github.com/DungeonPaper/dungeon_world_data
- Find the directory lib/data/en-US
- Copy the directory and add the language code as the dir name, e.g.
it-IT
- Start translating all the values of the game data. Again, keys should not be updated (in:
"name": "Divine Protection"
, only the "Divine Protection" part should be translated, not"name"
What then?
You can open a PR for each repo and once I make sure it looks good we can merge it in.
I will have to also work on some small updates to the mechanisms involving changing the language on the app, so that will probably also take a bit.
See translation section at the README file