On translating Kagiru Sudoku

Table of Contents

How can I translate Kagiru Sudoku in another language?

  1. Check if Kagiru Sudoku isn't translated in this language yet. Other than this constraint, all languages are welcome!
  2. Translate the right hand side labels in kagiru.i18n.en. E.g. mnuExtraSound=Sound in English would become mnuExtraSound=Son for the French kagiru.i18n.fr.
  3. Save it as kagiru.i18n.xy, where xy is the ISO-2 code for your language.
  4. Submit it via the Translation updates tracker.

Any extra language is welcome.

My language has rather unusual signs. Can we include these?

We should try to get all of these signs in. Be it diacritics, cyrillic alphabet signs, ... if they're part of your language, they deserve to be part of Kagiru Sudoku, too.

E.g. the Russian, Romanian and Turkish translation in the current version of Kagiru, show signs unused in English or other Western languages.

All of this to maximise the familiarity of the game's interface.

How to include these signs, practically?

If you mail me your translation, preferably both copy/paste it all into the mail body as well as attach the file. The file itself is best UTF-16 encoded, if possible. All of this to minimise codepage problems.

What languages is Kagiru Sudoku already available in?

Kagiru Sudoku is currently available in 11 languages in total:

  • German
  • English
  • Spain
  • French
  • Dutch
  • Polish
  • Romanian
  • Russian
  • Swedish
  • Turkish
  • Ukranian

What's with the Mnemonic keys to translate? What are they?

E.g. mnuPuzzleSaveAs-Mnemonic=A means A will be they shortkey for the Save as command in the menu.

Note the principle is to have all functions in Kagiru Sudoku available via shortkey.

This is crucial for both disabled and expert users of the software, and requires individual translations to strictly use mnemonics.

When to use a Mnemonic?

To avoid conflicting short keys.

Standard, Java chooses the first character as a shortkey. E.g. for the Save command, the S would be used. All of this works without applying Mnemonics in the translation file.

However, the Save As... command would standard get an S, too. Hence, a conflict: what to do when S is typed as a shortkey? By using a Mnemonic like mnuPuzzleSaveAs-Mnemonic=A, the letter A is used as a shortkey, and S is reserved for Save.


Goal is to avoid conflicting short keys at all times.

Note that since the labels differ by language, so will the places where you want to put a Mnemonic!

E.g. Affichage and Aidez both start with an A and standard have conflicting short keys in French, the labels View and Help for the same menus in English don't.

On completeness of your translation...

How do I know when new labels come available? Do I have to check periodically if updates are available?

No need for manual checks.

As a translator, you're invited to the kagiru i18n mailing list.

You'll receive (low volume) triggers when extra labels are available for translation.

And how do I know which keys are new or missing?

There is an online comparison.

As Kagiru is quite new, more labels will be created.

However, with the online comparison, there is really no need to manually check your file for completeness.

Does the sequence of the keys matter?


Only the exact syntax of the left hand side keys in your kagiru.i18n.xy does, e.g. mnuExtraSound. These keys are used by Kagiru to do the lookup of the labels, irrelevant of their position in the file.

So it's no problem to add the new labels at the end of the file, if you want to.

If I miss a label, will Kagiru crash?

Of course it won't.

If a label is missing, its English variant is used as a fallback. These cases are highlighted in the application via the asterisk (*) at the end of the label.

Can I test a language before submitting it?

You can.

Put your updated kagiru.i18n.xy file alongside your JAR in the same directory: Kagiru Sudoku will then use this file to override whatever translation info is in the JAR.

You can do the same for the locales.xml configuration file, if you want to update this for test purposes.

No need to unpack or repack the JAR.