In a nutshell:
- Use ordered placeholders.
- No “hard” + “string” + “concatenation”.
- Always present translators with full sentences
- Be aware that some translations will need more space on screen. A lot more space.
- Support plural forms
- Add comments to give translators some context. For example, is “Copy” or “View” a verb or a noun?
- Hide code from translators. “%s likes your comment” is bad, “%s likes your comment” is good.
- Use a bilingual file format (e.g. gettext, XLiff, …)
- Research how others have done it and don’t reinvent the wheel