Skip to content

Commit

Permalink
Manual merge of main to live
Browse files Browse the repository at this point in the history
  • Loading branch information
jowilco committed Oct 25, 2024
2 parents 226e0ea + 987f039 commit 080bb3a
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 29 deletions.
10 changes: 5 additions & 5 deletions globalization/localization/localization-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,14 @@ Localization is not the same thing as translation, even though people often use

The above example is greatly simplified. Localization affects your entire deliverable, not just its textual content. To make localization as smooth as possible, you should design your product to be adaptable to different audiences with as few engineering changes or rework as possible. This advance planning and preparation is known as internationalization.

When localization and internationalization are done correctly, the following things and more are considered:
To perform localization and internationalization correctly, at a minimum, the following items should be considered:

- Cultural differences such as cultural references, idioms, symbolic meanings, taboos; for example, ground floor vs. first floor, or football vs. soccer
- Different calendars, date, time, and currency formats
- Metric vs. imperial measurements
- Text length: text translated from English into many other languages can be considerably longer, which might create layout issues
- Orthography, including punctuation and capitalization
- Direction of writing: languages such as Arabic and Hebrew are written from right to left
- Direction of writing: Some languages, such as Arabic and Hebrew, are written from right to left
- Different keyboard layouts
- Legal requirements such as compliance with Europe’s General Data Protection Regulation (GDPR)
- Visual elements such as images, videos, icons, and UI elements
Expand All @@ -40,7 +40,7 @@ It is important to verify that the source materials are ready for translation. T

You need to isolate the materials you've identified as needing to be translated. All your deliverables—[software](localize-software.md), [documentation](localize-content.md), [marketing materials](transcreation.md), videos (dubbing, [subtitling](../media/captioning.md), even [re-creation](../media/re-creation.md)), websites, and sample data—have components that are translatable. This translatable content usually needs to be extracted from the source files so that translators can focus solely on the textual content. Any non-translatable content should be the responsibility of [engineers and desktop publishers](#identifying-translation-vendors). After translation the textual content is then reinserted into the source files. In some cases your translation vendor can perform the extraction for you.

This approach also lets you use the same source materials to support multiple languages. The source might need some modification to make this possible, but this is still much better than having separate software binaries for each language, or creating a new layout from scratch for every localized version of your documentation or marketing materials. The separation of translatable content from code is discussed under "Separating your code from your translatable strings" in [Localize software](localize-software.md).
This approach also lets you use the same source materials to support multiple languages. The source might need some modification to make this possible, but this is still much better than having separate software binaries for each language or creating a new layout from scratch for every localized version of your documentation or marketing materials. The separation of translatable content from code is discussed under "Separating your code from your translatable strings" in [Localize software](localize-software.md).

## Sequencing of materials to be translated

Expand All @@ -65,7 +65,7 @@ Your organization might have some of these capabilities available internally. Wh

## Preparing and delivering materials to translation vendors

You should provide the localization vendor more than just the strings, multimedia files, and any other materials that need to be translated and localized. Sharing any reference material you have helps to ensure the quality of the localized product. This includes style guides, [translation memories](translation-memories.md) (TMs), and [terminology lists](managing-terminology.md). If the vendor is responsible for recreating screenshots in the languages of the translated deliverables, you should provide steps for recreating the screenshot, so that matching screenshots can be taken when the translated UI is available.
You should provide the localization vendor more than just the strings, multimedia files, and any other materials that need to be translated and localized. Sharing any reference material you have helps to ensure the quality of the localized product. This includes style guides, [translation memories](translation-memories.md) (TMs), and [terminology lists](managing-terminology.md). If the vendor is responsible for recreating screenshots in the languages of the translated deliverables, you should provide steps for recreating the screenshots, so that matching screenshots can be taken when the translated UI is available.

You should also establish the expected format for interchanging the data (such as the widely used [XLIFF format](localization-file-formats.md)). The vendor should have access to the English (or other source language) software and product documentation for reference. They should know the purpose, context, and scope of the project, along with the expected translation quality criteria.

Expand Down Expand Up @@ -97,7 +97,7 @@ Your terminology lists should be developed by both internal teams such as market

## Linguistic validation

Part of the maintenance of your linguistic assets is to ensure that each translation is linguistically accurate, culturally appropriate, and validated by an expert. Such linguistic validation is important in all fields, but it is crucial for things like the translation of clinical trials, scientific instructions, and legal documents. In these areas, there are regulatory processes for ensuring linguistic accuracy. Examples include [ISO 13485:2016](https://www.iso.org/standard/59752.html) that covers medical devices and [ISO/IEC 17025:2017](https://www.iso.org/standard/66912.html) that covers requirements for testing and calibration laboratories.
Part of the maintenance of your linguistic assets is to ensure that each translation is linguistically accurate, culturally appropriate, and validated by an expert. Such linguistic validation is important in all fields, but it is crucial for things like the translation of clinical trials, scientific instructions, and legal documents. In these areas, there are regulatory processes for ensuring linguistic accuracy. Examples include [ISO 13485:2016](https://www.iso.org/standard/59752.html), which covers medical devices, and [ISO/IEC 17025:2017](https://www.iso.org/standard/66912.html), which covers requirements for testing and calibration laboratories.

To ensure your TMs and terminology lists are correct, they should be reviewed by linguists, in-country marketing personnel, and subject matter experts. For specialized fields like life sciences and legal services, linguistic validation can be a rigorous process. The validation could require reconciliation of back translation with the original translation, accompanied by a professional review.

Expand Down
2 changes: 1 addition & 1 deletion globalization/localization/localize-software.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Localize software
title: Get started with software localization
description: Software and content localization each have their particular characteristics that drive different localization strategies.
author: m-kauppinen
ms.author: v-mikau
Expand Down
23 changes: 5 additions & 18 deletions globalization/methodology/global-product-delivery.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,6 @@ ms.date: 6/7/2022

# Global product delivery

> If you talk to a man in a language he understands, that goes to his head.
> If you talk to him in his language, that goes to his heart.
>
> — Nelson Mandela
A great global product has an experience that goes beyond the basic function of the product.
As a customer, the product feels like it was created specifically for you, no matter where you live or the language you speak.
It feels like it belongs to your culture, language, and region.
Expand All @@ -32,7 +27,7 @@ We all come with an intuitive sense of what is acceptable and expected based on
The experiences of people elsewhere in the world can be remarkably different.
Stereotypical, inauthentic, or lack of diverse representation can turn customers away.

Consider these aspects, that may vary widely by locale and language:
Consider the following aspects, which may vary widely by locale and language:

* Access to technology and bandwidth.
* Payment methods.
Expand Down Expand Up @@ -79,7 +74,7 @@ Certain features may be regulated or restricted, particularly encryption and ant
## Roles

Delivering software products worldwide can be a complex process that involves many disciplines within an organization.
Global product delivery can require awareness and participation from:
Global product delivery can require awareness and participation from people in these roles:

* Development
* Content creation
Expand All @@ -94,10 +89,7 @@ See [Roles and responsibilities](roles-and-responsibilities.md)

## Start early

When you build global awareness and localizability into your product and process as early as possible, you reduce risk and cost.

In our experience, world-readiness can be quite challenging to retrofit to an existing application.
For a pre-existing application, many components may need to be redesigned, particularly in the user interface.
When you build global awareness and localizability into your product and process as early as possible, you reduce risk and cost. In our experience, world-readiness can be quite challenging to retrofit to an existing application. For a pre-existing application, many components may need to be redesigned, particularly in the user interface.

Even if your initial release is in only one language, a world-ready application can reach more markets because it supports the local formatting conventions for calendar, date, time, numbers, and currency.
When you're ready to localize into to more languages and markets, the cost is lower because your organization and the application are prepared.
Expand All @@ -110,20 +102,15 @@ When starting a project, it's vital to get these fundamentals in place as early

2. Produce and test localized builds.

[Pseudolocalization](pseudolocalization.md) is an excellent strategy to enable build and test without the cost of translation.
[Pseudolocalization](pseudolocalization.md) is an excellent method to enable build and test without incurring the cost of translation.

3. Validate the localization round-trip from development to translator and back.

Perform an early pilot, perhaps with minimal content and only one or a few languages, to minimize surprises later.

4. Implement the ability to choose the language and locale.

Having a means to select the language and locale independently from the language and locale of the platform makes it easy to develop, test, and debug.
Plus, it's a useful feature for multilingual users.

This baseline should be maintained for the entire lifecycle of the product.

Once you've set a strong baseline, you can start iterating.
For each sprint or milestone, evaluate your status and progress by defining [exit criteria](exit-criteria.md).
This baseline should be maintained for the entire lifecycle of the product. Once you've set a strong baseline, you can start iterating. For each sprint or milestone, evaluate your status and progress by defining [exit criteria](exit-criteria.md).

For next steps, see [Global products and rapid development](rapid-development.md).
10 changes: 5 additions & 5 deletions globalization/methodology/software-internationalization.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ ms.custom:

# Software Internationalization

Internationalization (abbreviated as i18n – 18 letters between "I" and "n") is the process of designing and developing your application such that it can support users in different global markets. When working on any software application, it's important to think about internationalization from the very beginning of its design. Your first iteration or release might not be translated into another language; however, it's likely your application will be used by customers all over the world.
Internationalization (abbreviated as _i18n_ – 18 letters between "I" and "n") is the process of designing and developing your application such that it can support users in different global markets. When working on any software application, it's important to think about internationalization from the very beginning of its design. Your first iteration or release might not be translated into another language; however, it's likely your application will be used by customers all over the world.

Coding for world-readiness affects implementation across the entire product. The decisions that you make early in the project can determine your ability to deliver to other markets later. The user interface design is the most affected, but world-readiness must be considered in many other areas.

The following sections discuss key themes for world-readiness. All sections are applicable even for a single-language user interface (UI) or application; however, the final three sections cover ensuring that your application is ready for [localization](../localization/localize-software.md) (abbreviated as l10n – 10 letters between "l" and "n"). Localization is the process of adapting or translating your app's localizable resources to meet the language, cultural, and political requirements of the local markets that the app is intended to support. One component of localization is translating UI text. Even if you aren't planning to create localized versions of your product, it's time-consuming and expensive to update your code to support multiple languages if your plans change in the future. It's therefore best practice to follow the principles in these three sections even for a single-language product.
The following sections discuss key themes for world-readiness. All sections are applicable even for a single-language user interface (UI) or application; however, the final three sections cover ensuring that your application is ready for [localization](../localization/localize-software.md) (abbreviated as _l10n_ – 10 letters between "l" and "n"). Localization is the process of adapting or translating your app's localizable resources to meet the language, cultural, and political requirements of the local markets that the app is intended to support. One component of localization is translating UI text. Even if you aren't planning to create localized versions of your product, it's time-consuming and expensive to update your code to support multiple languages if your plans change in the future. It's therefore best practice to follow the principles in the following sections, even if your product only supports a single language.

## Data encoding

Expand All @@ -25,11 +25,11 @@ Any data that is stored shouldn't be limited to a specific country/region, time

## Text display

You should ensure that your application can display user data and UI text in different [scripts](../fonts-layout/writing-systems.md). You might not have plans to translate your application into East Asian languages like Chinese, or languages that use [bi-directional](../fonts-layout/text-directionality.md) writing systems like Arabic. However, you might have users of these languages, so user data and user input shouldn't be limited by script or [font](../fonts-layout/fonts.md).
You should ensure that your application can display user data and UI text in different [scripts](../fonts-layout/writing-systems.md). You might not have plans to translate your application into East Asian languages, such as Chinese, or languages that use [bi-directional](../fonts-layout/text-directionality.md) writing systems, such as Arabic. However, you might have users of these languages, so user data and user input shouldn't be limited by script or [font](../fonts-layout/fonts.md).

## Locale awareness

You should ensure that your application respects conventions and settings from the operating system, especially [locale](../locale/locale.md)-related [settings](../locale/system-user-settings.md). These locale-related settings include [numeric](../locale/number-formatting.md), [currency](../locale/currency-formats.md), [time, and date](../locale/date-time-formats.md) formats. The choice of locale also affects language related features such as [sort order](../locale/sorting-and-string-comparison.md) and [capitalization](../text/case-mapping.md).
You should ensure that your application respects conventions and settings from the operating system, especially [locale](../locale/locale.md)-related [settings](../locale/system-user-settings.md). These locale-related settings include [numeric](../locale/number-formatting.md), [currency](../locale/currency-formats.md), [time, and date](../locale/date-time-formats.md) formats. The choice of locale also affects language-related features such as [sort order](../locale/sorting-and-string-comparison.md) and [capitalization](../text/case-mapping.md).

You should also ensure that your application responds correctly to changes to features related to the language of the operating system, such as default folder names and registry keys.

Expand All @@ -41,7 +41,7 @@ You should ensure that your application respects the conventions of each target

You should ensure that the UI can be translated correctly. Translations tend to be more accurate when the source material is well-written. Consistent use of terminology and clear source text can help users of a single-language product, especially when those users might not be native speakers of that language.

Strings should be [externalized](../internationalization/externalize-resources.md) and you should avoid [concatenation](../internationalization/concatenation.md). Where supported by the resource file format, consider adding contextual metadata to each string especially when [placeholders/variables](../internationalization/message-formatting.md) are used. You should avoid using text in images as images tend to be expensive to recreate during the translation process.
Strings should be [externalized](../internationalization/externalize-resources.md) and you should avoid [concatenation](../internationalization/concatenation.md). Where supported by the resource file format, consider adding contextual metadata to each string especially when [placeholders/variables](../internationalization/message-formatting.md) are used. You should avoid using text in images because images tend to be expensive to recreate during the translation process.

It's best practice to externalize all strings; however, for strings that aren't intended for end users such as debugging or logging messages, consider using separate resource files. You can then choose whether to translate resource files that only contain debugging or logging messages.

Expand Down

0 comments on commit 080bb3a

Please sign in to comment.