Internationalization and localization
|Part of |
Internationalization is the process of designing a software application so that it can be adapted to various languages and regions without engineering changes. Localization is the process of adapting internationalized software for a specific region or language by translating text and adding locale-specific components.
Localization (which is potentially performed multiple times, for different locales) uses the infrastructure or flexibility provided by internationalization (which is ideally performed only once before localization, or as an integral part of ongoing development).
The terms are frequently abbreviated to the numeronyms i18n (where 18 stands for the number of letters between the first i and the last n in the word internationalization, a usage coined at Digital Equipment Corporation in the 1970s or 1980s) and L10n for localization, due to the length of the words. Some writers have the latter acronym capitalized to help distinguish the two.
Some companies, like IBM and Oracle, use the term globalization, g11n, for the combination of internationalization and localization.
Microsoft defines internationalization as a combination of world-readiness and localization. World-readiness is a developer task, which enables a product to be used with multiple scripts and cultures (globalization) and separating user interface resources in a localizable format (localizability, abbreviated to L12y).
Hewlett-Packard and HP-UX created a system called "National Language Support" or "Native Language Support" (NLS) to produce localizable software.
According to Software without frontiers, the design aspects to consider when internationalizing a product are "data encoding, data and documentation, software construction, hardware device support, user interaction"; while the key design areas to consider when making a fully internationalized product from scratch are "user interaction, algorithm design and data formats, software services, documentation".
Translation is typically the most time-consuming component of
- For film, video, and audio, translation of spoken words or music lyrics, often using either subtitles
- Text translation for printed materials, digital media (possibly including error messages and documentation)
- Potentially altering images and logos containing text to contain translations or generic icons
- Different translation length and differences in character sizes (e.g. between Latin alphabet letters and Chinese characters) can cause layouts that work well in one language to work poorly in others
- Consideration of differences in dialect, register or variety
- Writing conventions like:
- Formatting of numbers (especially digit grouping)
- Date and time format, possibly including use of different calendars
- Formatting of numbers (especially
Standard locale data
- Different "scripts" in different writing systems use different characters – a different set of letters, syllograms, logograms, or symbols. Modern systems use the Unicode standard to represent many different languages with a single character encoding.
- Writing direction is left to right in most European languages, right-to-left in Hebrew and Arabic, or both in boustrophedon scripts, and optionally vertical in some Asian languages.
- Complex text layout, for languages where characters change shape depending on context
- Capitalization exists in some scripts and not in others
- Different languages and writing systems have different text sorting rules
- Different languages have different Western Arabic numeralsare not used
- Different languages have different pluralization rules, which can complicate programs that dynamically display numerical content.genitive.
- Different languages use different punctuation (e.g. quoting text using double-quotes (" ") as in English, or guillemets (« ») as in French)
- Keyboard shortcuts can only make use of buttons actually on the keyboard layout which is being localized for. If a shortcut corresponds to a word in a particular language (e.g. Ctrl-s stands for "save" in English), it may need to be changed.
Different countries have different economic conventions, including variations in:
- Paper sizes
- storage media
- Telephone number formats
- Postal address formats, postal codes, and choice of delivery services
- Currency (symbols, positions of currency markers, and reasonable amounts due to different inflation histories) – ISO 4217 codes are often used for internationalization
- System of measurement
- Battery sizes
- Voltage and current standards
In particular, the United States and Europe differ in most of these cases. Other areas often follow one of these.
Specific third-party services, such as online maps, weather reports, or payment service providers, might not be available worldwide from the same carriers, or at all.
Time zones vary across the world, and this must be taken into account if a product originally only interacted with people in a single time zone. For internationalization, UTC is often used internally and then converted into a local time zone for display purposes.
Different countries have different legal requirements, meaning for example:
- Regulatory compliancemay require customization for a particular jurisdiction, or a change to the product as a whole, such as:
- Privacy law compliance
- Additional disclaimers on a web site or packaging
- Different consumer labelling requirements
- Compliance with export restrictions and regulations on encryption
- Compliance with an Internet censorship regime or subpoena procedures
- Requirements for accessibility
- Collecting different taxes, such as customs duties
- Sensitivity to different political issues, like
- Government-assigned numbers have different formats (such as passports, Social Security Numbers and other national identification numbers)
Localization also may take into account differences in culture, such as:
- Local holidays
- Personal name and title conventions
- Comprehensibility and cultural appropriateness of images and color symbolism
- Ethnicity, clothing, and socioeconomic status of people and architecture of locations pictured
- Local customs and blood types in Japanese culturevs. astrological signs in other cultures
Business process for internationalizing software
In order to internationalize a product, it is important to look at a variety of markets that the product will foreseeably enter. Details such as field length for street addresses, unique format for the address, ability to make the postal code field optional to address countries that do not have postal codes or the state field for countries that do not have states, plus the introduction of new registration flows that adhere to local laws are just some of the examples that make internationalization a complex project. A broader approach takes into account cultural factors regarding for example the adaptation of the business process logic or the inclusion of individual cultural (behavioral) aspects.
Already in the 1990s, companies such as
Both in re-engineering an existing software or designing a new internationalized software, the first step of internationalization is to split each potentially locale-dependent part (whether code, text or data) into a separate module. Each module can then either rely on a standard library/dependency or be independently replaced as needed for each locale.
The current prevailing practice is for applications to place text in resource files which are loaded during program execution as needed. These strings, stored in resource files, are relatively easy to translate. Programs are often built to reference resource libraries depending on the selected locale data.
The storage for translatable and translated strings is sometimes called a message catalog
Thus to get an application to support multiple languages one would design the application to select the relevant language resource file at runtime. The code required to manage data entry verification and many other locale-sensitive data types also must support differing locale requirements. Modern development systems and operating systems include sophisticated libraries for international support of these types, see also Standard locale data above.
Many localization issues (e.g. writing direction, text sorting) require more profound changes in the software than text translation. For example, OpenOffice.org achieves this with compilation switches.
A globalization method includes, after planning, three implementation steps: internationalization, localization and quality assurance.
To some degree (e.g. for quality assurance), development teams include someone who handles the basic/central stages of the process which then enable all the others. Such persons typically understand foreign languages and cultures and have some technical background. Specialized technical writers are required to construct a culturally appropriate syntax for potentially complicated concepts, coupled with engineering resources to deploy and test the localization elements.
Once properly internationalized, software can rely on more decentralized models for localization:
When translating existing text to other languages, it is difficult to maintain the parallel versions of texts throughout the life of the product. For instance, if a message displayed to the user is modified, all of the translated versions must be changed.
In a commercial setting, the benefit from localization is access to more markets. In the early 1980s,
However, there are considerable costs involved, which go far beyond engineering. Further, business operations must adapt to manage the production, storage and distribution of multiple discrete localized products, which are often being sold in completely different currencies, regulatory environments and tax regimes.
Finally, sales, marketing and technical support must also facilitate their own operations in the new languages, in order to support customers for the localized products. Particularly for relatively small language populations, it may never be economically viable to offer a localized product. Even where large language populations could justify localization for a given product, and a product's internal structure already permits localization, a given software developer or publisher may lack the size and sophistication to manage the ancillary functions associated with operating in multiple locales.
- Subcomponents and standards
- Bidirectional script support
- International Components for Unicode
- Language code
- Language localization
- Website localization
- Related concepts
- Computer accessibility
- Computer Russification, localization into Russian language
- Separation of concerns
- Methods and examples
- Game localization
- Globalization Management System
- Pseudolocalization, a software testing method for testing a software product's readiness for localization.
- Input method editor
- Language industry
- ^ a b "Localization vs. Internationalization". W3C. Archived from the original on 2016-04-03. Retrieved 2016-03-27.
- ^ ISBN 0-471-96974-5.
- ISBN 84-611-1131-1. Archived from the original(PDF) on 7 September 2012.
In a nutshell, localization revolves around combining language and technology to produce a product that can cross cultural and language barriers. No more, no less.
- ^ "Glossary of W3C Jargon". W3C. Archived from the original on 2 September 2011. Retrieved 13 October 2008.
- ^ "Origin of the Abbreviation I18n". I18nGuy. Archived from the original on 27 June 2014. Retrieved 19 February 2022.
- ^ "GNU gettext Utilities: Concepts". gnu.org. Archived from the original on 18 September 2019. Retrieved 29 October 2019.
Two long words appear all the time when we discuss support of native language in programs, and these words have a precise meaning, worth being explained here, once and for all in this document. The words are internationalization and localization. Many people, tired of writing these long words over and over again, took the habit of writing i18n and l10n instead, quoting the first and last letter of each word, and replacing the run of intermediate letters by a number merely telling how many such letters there are.
- ^ a b alan (29 March 2011). "What is Internationalization (i18n), Localization (L10n) and Globalization (g11n)". ccjk.com. Archived from the original on 2 April 2015.
The capital L in L10n helps to distinguish it from the lowercase i in i18n.
- ^ "Globalize Your Business". IBM. Archived from the original on 31 March 2016.
- ^ "Globalization Step-by-Step". Go Global Developer Center. Archived from the original on 12 April 2015.
- ^ "Globalization Step-by-Step: Understanding Internationalization". Go Global Developer Center. Archived from the original on 26 May 2015.
- ^ "GNU gettext Utilities: Plural Forms". gnu.org. Archived from the original on 9 December 2011. Retrieved 19 February 2022.
- ^ "Do We Need to Localize Keyboard Shortcuts?". Human Translation Services – Language to Language Translation. 21 August 2014. Archived from the original on 3 April 2015. Retrieved 19 February 2022.
- ^ Mateen Haider (17 May 2016). "Pakistan Expresses Concern Over India's Controversial 'Maps Bill'". Dawn. Archived from the original on 10 May 2018. Retrieved 9 May 2018.
- ^ Yasser Latif Hamdani (18 May 2016). "Changing Maps Will Not Mean Kashmir Is a Part of You, India". The Express Tribune. Retrieved 19 February 2022.
- ^ "An Overview of the Geospatial Information Regulation Bill". Madras Courier. 24 July 2017. Archived from the original on 29 October 2020. Retrieved 19 February 2022.
- ^ "Appendix V International Address Formats". Microsoft Docs. 2 June 2008. Archived from the original on 19 May 2021. Retrieved 19 February 2022.
- ^ Pawlowski, Jan M. Culture Profiles: Facilitating Global Learning and Knowledge Sharing (PDF) (Draft version). Archived (PDF) from the original on 2011-07-16. Retrieved 2009-10-01.
- ISBN 978-3-642-38927-6.
- ^ For the current list see KDE.org Archived 2007-05-22 at the Wayback Machine
- ^ "Translating:Group Statistics". translatewiki.net. Archived from the original on 2019-03-23. Retrieved 2016-03-27.
- ^ "How to Translate a Game Into 20 Languages and Avoid Going to Hell: Exorcising the Four Devils of Confusion". PocketGamer.biz. 4 April 2014. Archived from the original on 7 December 2017. Retrieved 19 February 2022.
- ^ Schrage, Michael (17 February 1985). "IBM Wins Dominance in European Computer Market". The Washington Post. Archived from the original on 29 August 2018. Retrieved 29 August 2018.
- Smith-Ferrier, Guy (2006). .NET Internationalization: The Developer's Guide to Building Global Windows and Web Applications. Upper Saddle River, New Jersey: Addison Wesley Professional. ISBN 0-321-34138-4.
- Esselink, Bert (2000). A Practical Guide to Localization. Amsterdam: John Benjamins. ISBN 1-58811-006-0.
- Ash, Lydia (2003). The Web Testing Companion: The Insider's Guide to Efficient and Effective Tests. Indianapolis, Indiana: Wiley. ISBN 0-471-43021-8.
- DePalma, Donald A. (2004). Business Without Borders: A Strategic Guide to Global Marketing. Chelmsford, Massachusetts: Globa Vista Press. ISBN 0-9765169-0-X.
- Instantly Learn Localization Testing
- Localization vs. Internationalization by The World Wide Web Consortium
- Media related to Internationalization and localizationat Wikimedia Commons