Rules for writing internationalized software

  • Locale contains country or language specific data like date/time formats, measure units and decimal separators. QLocale class gives access to locale data.

  • Sorting is region/language specific function. QString::localeAwareCompare() compares in a locale- and also platform-dependent manner.

  • Do not hard code any text. Use localization for all text, and locale data for formatting.

  • Images containing text are difficult to localize.

  • Scripts/languages needing special attention:

    • Arabic, Farsi, Urdu and Hebrew are written from right to left.

    • In Arabic, Farsi and Urdu, native ArabicIndic or EasternArabicIndic digits are supported. User can choose preferred digit type from application settings.

    • Thai is written without spaces. To wrap text in Thai, check instructions to wrap Thai.

    • Thai and Vietnamese may contain diacritics tone marks and upper/lower vowels. These combinations may be taller than other characters and cause characters to be cut off from top or bottom.

    • Thai and Chinese may use own calendar.

    • Chinese characters are wider than Latin characters, but one character may correspond to a word. Also full width and half width Latin may be used in Chinese.