The terms “internationalization” and “localization” are often used interchangeably, which leads to some confusion, especially among software developers. This article explains what internationalization really is, and how to best approach it in your company.Let’s start with quoting Wikipedia:Localization is the process of adapting internationalized software for a specific region or language by translating text and adding locale-specific components.Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes.The key takeaway here is that, unlike localization, internationalization is a developer task, i.e. it should be done well before the product launch. It requires careful planning, as well as development processes and tools tailored for this purpose.Key aspects of internationalizationInternationalization is a complex process that involves many aspects. The most important ones are:1. User Interface (UI) designThe UI should be designed in such a way that it can be easily adapted to various languages and regions. This includes:Fonts: The UI should use fonts that can be easily changed to others if they are not available in other languages.Colors and images: Those should be easily changeable too, because sometimes colors and images can have negative connotations in other cultures.Text-containing elements: Ideally, these should be designed in such a way that they will work with both very long and very short texts, as well as right-to-left scripts.2. Data format and storageStrings should be stored in a way that makes them easy to localize. This includes:Encoding: Strings should be encoded using UTF-8, which is the most widely used encoding for Unicode strings.Grammar forms: Strings should be designed in such a way that they can be easily adapted to different plural and gender forms, e.g. using the ICU format.Dates and times: These should be stored in a format that is easy to localize, e.g. using the ISO 8601 standard.Numbers: These should be stored in a format that is easy to localize, e.g. using the ISO 4217 standard for currencies and the UN M.49 standard for region codes.A common mistake that is to store strings right in the code, e.g. for user interface elements like buttons or fields. This makes localization much harder down the line and can lead to significant delays in product launches.3. Processes and toolsInternationalization is a complex process that requires careful planning and development. It also requires tools to support the process, e.g. for translation memory & terminology management or for automated testing of localized products.There are many tools available for this, but we recommend focusing on those that enable a CI/CD process for translation and localization. This way, you won’t have to manually send content for translation or check the status of the work done by translators.Where to start?Internationalization starts before the product is built and it continues even after it has been launched. Therefore, internationalization should be a part of the top level planning process.1. Find (or become) the internationalization championIronically, the most challenging part is often to convince everyone concerned that internationalization can have a huge impact on the success of the product and should be taken seriously.To do this, you should prepare a clear argumentation about the business benefits of internationalization, e.g. that it can increase your revenue by making your product available to new customers in new markets, or that it can reduce your costs by saving time and money spent on localizing products later on.An anecdotal example you can use here is the story of Lotus 1-2-3, a once market-leading spreadsheet product. However, all their strings were hard-coded, so when they decided to localize the product, they had to spend two years separating the code from the text, ultimately resulting in losing the race to Microsoft.2. Figure out the format(s) and tool(s) you will useOnce the need for i18n is clear to everyone, you can start thinking about the technicalities. For example:What format will you use for storing strings and converting them to actual text within your code?What tools/technologies will you use for translation and localization?What roles and responsibilities will be involved in the process?Ideally, you would draw up a detailed internationalization plan/strategy and design a process that can be followed across all your products, so that it will be easy to adapt to the needs of each new launch once the strategy has been established. This will also help avoid discussing the same things over and over again.3. Execute and monitorOnce the strategy has been established, it is time to execute and monitor the process. Start by introducing the new tools and technologies that will support your process, then gradually introduce new roles, responsibilities and processes (but don’t overdo it).Look for pain points in the process and eliminate them, e.g. by automating something or finding a new tool to make something easier. Continue to collect feedback from localizers and adjust the process accordingly.In the end, it is all about creating a solid process with an efficient and effective workflow. This will also make it easier to start with localizing future products. The more your internationalization process becomes established, the less you will need to think about it.ConclusionInternationalization is a vital part of the product development process, but it can be very challenging to get it going in the right direction, especially when the benefits of doing it aren’t clear to everyone.Hopefully, this short article has helped you get started in the right direction. You might just as well want to check out Smartcat, an all-in-one localization platform that supports a variety of localization approaches, has a built-in marketplace of both freelancers and translation agencies, and has integrations with the most popular version control systems.
术语“国际化”和“本地化”经常互换使用，这会导致一些混淆，特别是在软件开发人员中。本文将解释什么是国际化，以及如何在您的应用程序中最好地实现国际化公司。让我们我们从报价开始吧维基百科：本地化是通过翻译文本和添加特定语言环境，使国际化软件适应特定地区或语言的过程组件.国际化是设计一个软件应用，使其能够适应各种语言和地区，而无需工程改变。改变与本地化不同，国际化是开发人员的任务，也就是说，国际化应该在产品发布之前做好。它需要仔细的规划，以及为此而定制的开发过程和工具目的。关键国际化的方方面面国际化是一个涉及多方面的复杂过程。最重要的是：1。用户界面（UI）设计UI的设计方式应使其易于适应各种语言和地区。这个包括：字体：用户界面应使用字体，如果在其他应用程序中不可用，则可以轻松更改为其他字体语言。颜色还有图像：这些也应该很容易改变，因为有时颜色和图像在其他方面可能有负面的含义文化。文本-包含元素：理想情况下，这些元素的设计应确保他们将处理很长和很短的文本，以及从右到左的脚本。数据格式和存储字符串的存储方式应使其易于本地化。这个包括：编码：字符串应使用UTF-8编码，UTF-8是Unicode中使用最广泛的编码字符串。语法形式：字符串的设计应使其易于适应不同的复数形式和性别形式，e、 g.使用ICU格式.日期和时间：应以易于本地化的格式存储，例如使用ISO 8601标准编号：这些文件应以易于本地化的格式存储，e、 使用ISO 4217货币标准和UN M.49地区代码标准。一个常见的错误是将字符串存储在代码中，例如用于按钮或字段等用户界面元素。这使得本地化更困难，并可能导致产品发布的重大延误。过程和工具国际化是一个复杂的过程，需要仔细规划和开发。它还需要支持该过程的工具，例如用于翻译记忆和术语管理或用于本地化语言的自动测试产品。那里有许多工具可用于此，但我们建议将重点放在那些支持CI/CD过程以进行翻译和本地化的工具上。这样，您就不必手动发送内容进行翻译，也不必检查用户所做工作的状态翻译。哪里开始？国际化在产品制造之前就开始了，甚至在产品发布之后也会继续。因此，国际化应该是顶层规划过程的一部分。1. 找到（或成为）国际化的冠军具有讽刺意味的是，最具挑战性的部分往往是说服所有相关的人，国际化可以对产品的成功产生巨大的影响，应该采取行动说真的。去要做到这一点，你应该准备一份关于国际化的商业利益的清晰论证，e、 g.它可以通过向新市场的新客户提供产品来增加您的收入，或者通过节省以后本地化产品所花费的时间和金钱来降低您的成本开。安您可以在这里使用的轶事示例是lotus1-2-3的故事，它曾经是市场领先的电子表格产品。然而，他们所有的字符串都是硬编码的，所以当他们决定本地化产品时，他们不得不花两年时间将代码和文本分开，最终导致他们输给了微软。弄清楚你将使用的格式和工具一旦每个人都清楚了i18n的需求，你就可以开始考虑技术细节了。为了示例：什么格式你会用它来存储字符串并将它们转换成代码中的实际文本吗？您将使用哪些工具/技术进行翻译和本地化？该过程将涉及哪些角色和职责？理想情况下，您应该制定一个详细的国际化计划/战略，并设计一个可以在所有产品中遵循的流程，以便在制定战略后能够很容易地适应每次新产品发布的需要。这也有助于避免反复讨论同样的事情。执行和监控一旦制定了策略，就是执行和监控流程的时候了。从引入支持您的流程的新工具和技术开始，然后逐步引入新的角色、职责和流程（但不要过分强调）。寻找流程中的痛点并消除它们，例如通过自动化或找到新的工具来简化流程。继续收集本地化人员的反馈并调整流程相应地，在最后，它是所有关于创建一个有效率和有效的工作流的坚实的过程。这也将使我们更容易开始本地化未来的产品。你的国际化进程建立得越多，你需要考虑的就越少it.结论国际化是产品开发过程中至关重要的一部分，但要使其朝着正确的方向发展可能非常具有挑战性，尤其是当人们不清楚这样做的好处时所有人。希望如此，这么短这篇文章帮助你朝着正确的方向开始。你不妨去看看Smartcat，它是一个一体化的本地化平台，支持各种本地化方法，有一个内置的自由职业者和翻译机构的市场，并与最流行的版本控制系统集成。