Localization/Localizability

Resource localizability

 * Separation of code and localizable resources

Translatability

 * Avoiding concatenations, commenting placeholder names, providing context, etc.

User interface readiness

 * Layout considerations, avoiding truncations and clippings
 * Mirroring

Common Localizability Issues
Here is some information on what strings concatenation is: http://www.pythonforbeginners.com/concatenation/string-concatenation-and-formatting-in-python When translating concatenated strings, the translator does not necessarily have the information that two (or more) strings go together. This can lead to mistranslation as some words are translated differently depending on the context. In addition, the translated text does not necessarily follow the source text in terms of word order. So, in English, you might find “Hello World !” (been two strings “Hello” and “World” in that order) but in another language “World !” might have to be placed before “Hello”.
 * Hardcoded text: Hardcoding is the practice of embedding data directly into the source code. In SW localization, hardcoded text is the content that cannot be modified without changing the source code.
 * Overlocalization: When some text has been translated where it should not have been. For example, in one instance the name of a button has been translated and it has been left in English in another instance.
 * String dependencies: When the functionality of an application depends on identical strings placed in different parts of the app. These strings must match or the application will not work.
 * Resource constraints: Elements in localizable strings that can influence product functionality, such as special characters.
 * Strings concatenation: When two or more character strings are joined directly to form one string, usually at run time.
 * Usage of variables: As for the concatenated strings, the usage of variables (or placeholders) are usually not a good idea to use if the text will need to be translated as word order and grammatical rules are different depending on the language. Badly designed placeholders do not provide enough information to the translators, so it is suggested to use unique placeholders and describe the values of each one.
 * UI layout: Text expansion during translation poses a design challenge in localization. UI strings in English can expand up to 300% when translated into some languages, in many cases increasing in the number of words used in sentences. If the UI layout is not flexible and does not allow for text expansion, it could cause string truncations, and information is lost.