Internationalization

Embed Size (px)

DESCRIPTION

Internationalization

Citation preview

For the term in economics, see Internationalization. For Windows-specified term, see Multilingual User Interface. For other uses, see Localization (disambiguation)."Multilingual software" redirects here. For software that is written in multiple programming languages, see Polyglot (computing). Screenshot of software programs localized to Italian.Part of a series on TranslationTypesLegal Literary Bible Qur'an Linguistic validation Medical Regulatory Technical Interpretation Word-for-word vs. Sense-for-sense TheoryTranslation studies Skopos theory Translation project Translation criticism Dynamic and formal equivalence Contrastive linguistics TechnologiesCAT Machine translation Mobile (machine) translation Dubbing Subtitling Postediting Multimedia translation LocalizationGlocalization Internationalization and localization Language localisation Game localization Dub localization InstitutionalAssociations Awards Organizations Schools Related topicsTranscription Transliteration Video relay service (VRS) Telephone interpreting Language barrier Fan translation Fansub Fandub Books and magazines on translation Bible translations by language Translated books Translators v t e In computing, internationalization and localization (other correct spellings are internationalisation and localisation) are means of adapting computer software to different languages, regional differences and technical requirements of a target market. Internationalization is the process of designing a software application so that it can potentially 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 adding locale-specific components and translating text. Localization (which is potentially performed multiple times, for different locales) uses the infrastructure or flexibility provided by internationalization (which is ideally performed only once, or as an integral part of ongoing development).Contents [hide] 1 Naming2 Scope3 Business process for internationalizing software4 Coding practice5 Difficulties6 Costs and benefits7 See also8 References9 External linksNaming[edit]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 DEC in the 1970s or 80s)[1] and L10n for localization, due to the length of the words.Some companies, like IBM and Sun Microsystems, use the term "globalization", g11n, for the combination of internationalization and localization.[2] Also known as "glocalization" (a portmanteau of globalization and localization).Microsoft[3] 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).[4]This concept is also known as NLS (National Language Support or Native Language Support).Scope[edit] The internationalization and localization process (based on a chart from the LISA website.)The main task of language localization is translation. This may involve:For film, video, and audio, translation of spoken words or music lyrics, often using either dubbing or subtitlesText translation for printed materials, digital media (possibly including error messages and documentation)Potentially altering images and logos containing text to contain translations or generic iconsDifferent 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 varietyWriting conventions like: Formatting of numbers (especially decimal separator and digit grouping)Date and time format, possibly including use of different calendarsComputer software can encounter differences above and beyond straightforward translation of words and phrases, because computer programs can generate content dynamically. These differences may need to be taken into account by the internationalization process in preparation for translation. Examples include:Different "scripts" in different writing systems use different characters - a different set of letters, syllograms, logograms, or symbols. Modern system use the Unicode standard to represent many different languages with a single character encoding.Writing direction is left to right in most European languages (e.g. German), right-to-left in Hebrew and Arabic, 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 rulesDifferent languages have different numeral systems, which might need to be supported if Western Arabic numerals are not usedDifferent languages have different pluralization rules, which can complicate programs that dynamically display numerical content.[5] Other grammar rules might also vary, e.g. 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.[6]Different countries have different economic conventions, including variations in:Paper sizesBroadcast television systems and popular storage mediaTelephone number formatPostal address format, postal codes, and choice of delivery servicesCurrency (symbols, positions of currency markers, and reasonable amounts due to different inflation history) - ISO 4217 codes are often used for internationalizationSystem of measurementBattery sizesVoltage and current standardsSpecific 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 governments, meaning:Regulatory compliance may require customization for a particular jurisdiction, or a change to the product as a whole, such as: Privacy law complianceAdditional disclaimers on a web site or packagingDifferent consumer labelling requirementsCompliance with export restrictions and regulations on encryptionCompliance with an Internet censorship regime or subpoena proceduresRequirements for accessibilityCollecting different taxes, such as sales tax, value added tax, or customs dutiesSensitivity to different political issues, like geographical naming disputes and disputed borders shown on maps (e.g. failing to show Kashmir as Indian is a crime in India)Government assigned numbers have different formats (such as passports, the Social Security number in the US, National Insurance number in the UK, Isikukood in Estonia, and Resident registration number in South Korea)Localization also may take into account differences in culture, such as:Local holidaysPersonal name and title conventionsAestheticsComprehensibility and cultural appropriateness of images and color symbolismEthnicity, clothing, and socioeconomic status of people and architecture of locations picturedLocal customs and conventions, such as social taboos, popular local religions, or superstitions such as blood types in Japanese culture vs. astrological sign in other culturesBusiness process for internationalizing software[edit]In order to internationalize a product, it is important to look at a variety of markets that your product will foreseeably enter. Details such as field length for street addresses, unique format for the address, ability to make the zip code field optional to address countries that do not have zip 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.[7][8]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.[9]Coding practice[edit]The current prevailing practice is for applications to place text in resource strings 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. One software library that aids this is gettext.Thus to get an application to support multiple languages one would design the application to select the relevant language resource file at runtime. Resource files are translated to the required languages. This method tends to be application-specific and, at best, vendor-specific. The code required to manage date 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.Difficulties[edit]While translating existing text to other languages may seem easy, it is more difficult to maintain the parallel versions of texts throughout the life of the product.[10] For instance, if a message displayed to the user is modified, all of the translated versions must be changed. This in turn results in a somewhat longer development cycle.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.To some degree (e.g. for Quality assurance), the development team needs someone who understands foreign languages and cultures and has a technical background. In large societies with one dominant language/culture, it may be difficult to find such a person.One example of the pitfalls of localization is the attempt made by Microsoft to keep some keyboard shortcuts significant in local languages. This has resulted in some (but not all) programs in the Italian version of Microsoft Office using "CTRL + S" (sottolineato) as a replacement for "CTRL + U" (underline), rather than the (almost) universal "Save" function.Costs and benefits[edit]In a commercial setting, the benefit from localization is access to more markets. However, there are considerable costs involved, which go far beyond just engineering. First, software must generally be re-engineered to make it world-ready.Then, providing a localization package for a given language is in itself a non-trivial undertaking, requiring specialized technical writers to construct a culturally appropriate syntax for potentially complicated concepts, coupled with engineering resources to deploy and test the localization elements. 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 thus 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/publisher may lack the size and sophistication to manage the ancillary functions associated with operating in multiple locales. For example, Microsoft Windows 7 has 96 language packs available.[11]One alternative, most often used by open source software communities, is self-localization by teams of end-users and volunteers. The KDE3 project, for example, has been translated into over 100 languages, and KDE4 is available in 68.[12] However, self-localization requires that the underlying product first be engineered to support such activities, which is a non-trivial endeavor.See also[edit]Alchemy CatalystBidirectional script supportCJKComputer accessibilityComputer russification, localization into Russian languageGame localizationGlobal information systemGlobalizationGlobalization Management SystemGlocalizationInput method editorInternational Components for UnicodeLanguage codeLanguage industryLanguage localizationPseudolocalization, a software testing method for testing a software product's readiness for localization.Punycode, translating Unicode into the character sets for network host namesRegion codeSDL PassoloSeparation of concernsTransifexPhraseAppTranslationWebsite localizationReferences[edit]1.Jump up ^ "Glossary of W3C Jargon". World Wide Web Consortium. Retrieved 2008-10-13.2.Jump up ^ IBM Globalization web site3.Jump up ^ Microsoft "Globalization Step-by-Step" guide4.Jump up ^ MSDN.microsoft.com5.Jump up ^ GNU.org6.Jump up ^ languagetranslationsservices.wordpress.com[dead link]7.Jump up ^ Internationalizing a Product: What is Internationalization (i18n), Localization (L10n) and Globalization (g11n)[dead link]8.Jump up ^ "International Address Formats". Microsoft Developer Network. Microsoft. Retrieved 10 December 2013.9.Jump up ^ Pawlowski, J.M. (2008): Culture Profiles: Facilitating Global Learning and Knowledge Sharing. Proc. of ICCE 2008, Taiwan, Nov. 2008. Draft Version10.Jump up ^ How to translate a game into 20 languages and avoid going to hell11.Jump up ^ See12.Jump up ^ For the current list see KDE.org