1. 7

My team at work is about to start doing translation and localisation for our software in full earnest for the first time, and I would like to share some guidelines on how to do this. I remember that the gettext manual had a lot of advice on how to do this properly, covering topics such as

  • the difference between i18n and l10n
  • how and when to provide context to translators
  • how to write strings in a way that translators can work with them
  • things to watch out in other languages that require care when doing i18n (e.g. plurals, duals, and other numerals, forms of address; other context translators might need)

and so forth. Reading the manual impressed upon me that ensuring software gets good localisation is a team effort and requires everyone to be aware of what a good translation requires and what each team member should be doing.

Other than the GNU gettext manual, is there some alternative reading I can recommend that summarises these ideas?


  2. 4

    Project Fluent from Mozilla has some ideas on its wiki… but wow, I hadn’t seen the gettext manual before, it’s huge!

    1. 2

      Gestures are not universal.
      The thumps up and OK hand gestures are considered rude or obscene in some cultures.

      1. 2
        • This isn’t just about text content. Right to left reading style is improved with right to left layouts. On web? Translate float:left to float:right.
        • Any time you make an assumption, it’s probably wrong. Research to find which language breaks it.
        • Design and develop with excessive text content. Many language turn small strings like your “OK” button to a longer works. German is often an example of this.
        • Think about how to handle things like pronouns… Some things are always gendered in some languages. This gets weird fast.
        • Try to bake this content where you can. It can take a lot of processing tp do this in real-time constant’y and on the fly.

        Hope this helps! Excited to hear more from others :)

        1. 2

          I would suggest probably starting with determining what concrete locales you want to support, and focusing on those. Depending on how far from your “mother locale” you plan to go, things may get more and more surprising and breaking various basic assumptions you never knew you held. Trying to make it work perfectly for “every locale around the world” would probably widely exceed your available resources, so I would suggest trying to do it iteratively, or “modeling your target audience”.

          For some canonical eye-opening examples of how stuff differs around the world:

          1. 1

            Many latin languages (Spanish, Italian, etc.) have a formal “you” that you might want to avoid. It’s a sure sign of a bad translation (or of a sofware with a a very formal tone).

            1. 2

              Hm? I speak Spanish and a formal form of address isn’t an indication of a bad translation. I’ve seen software both with and without.

              This doesn’t seem to be something that the i18n team should worry about, seems like that’s more for the l10n team.