Hi,<p>I am mainly interested in solutions aimed at web-development.<p>How do different frameworks perform on that matter? What are some best-practices?
I'm a fan of the following architecture:<p>DB <==> Business Logic <==> API <==> JS Services Layer (common functionality + api handling) <==> JS display logic <==> html/css<p>It forms a communication pipeline with very distinct layers, as opposed to a backend that mixes business logic with display logic instead of using an API. Many Frameworks implement this paradigm, and its fairly easy to roll by hand.<p>Model View View-Model works will on the frontend- your JS code can consider anything coming from the API to be a model, the services layer can transform it into the View Model, and the display logic updates the view.
W3C has good basic info on what internationalization and localization each mean:
<a href="http://www.w3.org/International/questions/qa-i18n.en" rel="nofollow">http://www.w3.org/International/questions/qa-i18n.en</a><p>Many developers will make a start by:<p>- Internationalizing their strings. In the case of Android, this is typically achieved by moving hard coded strings from the code to a separate strings.xml file<p>- Localizing those strings: Having one or more professional or volunteer translators create localized versions.<p>Different platforms use different file formats for localized strings. For example, a lot of web frameworks use .po files: <a href="https://www.drupal.org/node/1814954" rel="nofollow">https://www.drupal.org/node/1814954</a><p>Best practices:<p>- Don't re-invent the wheel. Use libraries provided by others, e.g. <a href="https://developers.google.com/international/i18n" rel="nofollow">https://developers.google.com/international/i18n</a><p>- Decide which languages you will want to support over the long term, and think about what it will take for you to be successful (e.g. local support staff, marketing effort, ...)<p>- Don't stop at translation. Do all the other stuff (number/date formats, support for right-to-left languages)<p>- Of course, use UTF-8 or UTF-16<p>- Choose the right platforms/partners for translation. Google offers a service targeted at Android apps[0] and there are crowdsourcing platforms which may work if your users are willing to translate for you [1][2]. These work for web apps as well as native.<p>- Get a native speaker to do QA on the output (on the app itself, not just by looking at the strings file)<p>[0] <a href="http://android-developers.blogspot.com/2013/11/app-translation-service-now-available.html" rel="nofollow">http://android-developers.blogspot.com/2013/11/app-translati...</a><p>[1] <a href="https://www.transifex.com/" rel="nofollow">https://www.transifex.com/</a><p>[2] <a href="https://crowdin.com/" rel="nofollow">https://crowdin.com/</a><p>FYI - I work for Google