- Support for Unicode, relevant legacy character encodings, and different text directions
- Using predefined localization data and formats from existing libraries, such as options for date and time, calendars, numbers, names and addresses, list sorting, etc
- Keeping code distinct from UI string values, and ensuring that user-localizable elements can easily be loaded (based on identifying user language or location) or selected
- Verification through pseudo-translation or by using machine translation to prepopulate strings to test a UI or function before real translations are available