DungeonPaper/dungeon-paper-app

[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.

  1. The app itself needs translation
  2. All the DW data needs translation

Here are some instructions to get started:

Translating the app

For translating the app, you will want to:

  1. Fork this repository
  2. 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.
  3. Find the file lib/l10n/intl_en.arb
  4. Copy it to the same directory and name it something like intl_it.arb.
  5. Go over the values of each key in the JSON file (not the keys!) and translate them. Here is official documentation to read. TLDR:
    1. There are programs to help you do that if you want
    2. ARB files have tokens inside them. The following should not be translated:
      1. Variable tokens like {coins}

      2. 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.

      3. PLURAL statements are similar to SELECT statements -
        {count, plural, =0 {No coins} one {One coin} other {{fmtCount} coins}}

Translating the DW data

  1. Fork the repository https://github.com/DungeonPaper/dungeon_world_data
  2. Find the directory lib/data/en-US
  3. Copy the directory and add the language code as the dir name, e.g. it-IT
  4. 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