グローバリゼーションのガイドラインGuidelines for globalization

言語とカルチャの構成が異なるシステムで適切に機能するようにアプリを設計して開発します。Design and develop your app in such a way that it functions appropriately on systems with different language and culture configurations. グローバリゼーション API を使用してデータの書式を設定します。言語、地域、文字の分類、書記体系、日付や時刻の書式設定、数値、通貨、重さ、並べ替えのルールに関する前提条件をコードに記述することを回避します。Use Globalization APIs to format data; and avoid assumptions in your code about language, region, character classification, writing system, date/time formatting, numbers, currencies, weights, and sorting rules.

推奨Recommendation 説明Description
文字列を操作して比較するときには、カルチャを考慮する。Take culture into account when manipulating and comparing strings. たとえば、文字列を比較する前に、文字列の大文字と小文字を変更しないでください。For example, don't change the case of strings before comparing them. 文字列の使用に関する推奨事項」を参照してください。See Recommendations for String Usage.
文字列やその他のデータの照合 (並べ替え) を行うときは、常にアルファベット順に行われると想定しない。When collating (sorting) strings and other data, don't assume that it's is always done alphabetically. ラテン文字を使わない言語の場合、照合は発音またはペン ストロークの数などの要素に基づいて行われます。For languages that don't use Latin script, collation is based on factors such as pronunciation, or number of pen strokes. ラテン文字を使う言語でも、常にアルファベット順の並べ替えを行うわけではありません。Even languages that do use Latin script don't always use alphabetic sorting. たとえば、一部のカルチャでは電話帳はアルファベット順では並んでいない場合があります。For example, in some cultures, a phone book might not be sorted alphabetically. Windows によって並べ替えが自動的に行われますが、自分で独自の並べ替えアルゴリズムを作る場合は、必ず、アプリの対象市場で使われている並べ替え方法を考慮してください。Windows can handle sorting for you, but if you create your own sorting algorithm then be sure to take into account the sorting methods used in your target markets.
数値、日付、時刻、住所、電話番号を適切に書式設定する。Appropriately format numbers, dates, times, addresses, and phone numbers. これらの形式は、カルチャ、地域、言語、市場によって異なります。These formats vary between cultures, regions, languages, and markets. これらのデータを表示する場合は、 グローバリゼーション API を使って特定のユーザーに適した形式を取得します。If you're displaying these data then use Globalization APIs to get the format appropriate for a particular audience. 日付、時刻、数値の形式のグローバル化」を参照してください。See Globalize your date/time/number formats. 姓名の表示順序と住所の形式も異なる場合があります。The order in which family and given names are displayed, and the format of addresses, can differ as well. 標準の日付、時刻の表示と数値の表示を使います。Use standard date, time, and number displays. 標準の DatePicker と TimePicker コントロールを使います。Use standard date and time picker controls. 標準のアドレス情報を使います。Use standard address information.
国際的な計測単位と通貨をサポートする。Support international units of measurement and currency. 使われる単位と尺度は国によって異なりますが、最も使われているのはメートル法とヤード ポンド法です。Different units and scales are used in different countries, although the most popular are the metric system and the imperial system. 長さ、温度、範囲などの計測を扱う場合は、正しいシステム計測をサポートしてください。Be sure to support the correct system measurement if you deal with measurements such as length, temperature, and area. GeographicRegion.CurrenciesInUse プロパティを使って、地域で使用されている通貨のセットを取得します。Use the GeographicRegion.CurrenciesInUse property to get the set of currencies in use in a region.
文字エンコードに Unicode を使う。Use Unicode for character encoding. 既定では、Microsoft Visual Studio は、すべてのドキュメントに Unicode 文字エンコードを使います。By default, Microsoft Visual Studio uses Unicode character encoding for all documents. 別のエディターを使っている場合は、適切な Unicode 文字エンコードでソース ファイルが保存されるようにしてください。If you're using a different editor, be sure to save source files in the appropriate Unicode character encodings. UWP API はどれも、UTF-16 エンコードの文字列を返します。All UWP APIs return UTF-16 encoded strings.
国際的な用紙サイズをサポートする。Support international paper sizes. 最も一般的な用紙サイズは国によって異なるため、用紙サイズによって変化する機能 (印刷など) を含める場合には、必ず一般的な国際サイズをサポートし、テストしてください。The most common paper sizes differ between countries, so if you include features that depend on paper size, such as printing, be sure to support and test common international sizes.
キーボードまたは IME の言語を記録する。Record the language of the keyboard or IME. アプリがユーザーにテキスト入力を求めるときに、現在有効なキーボード レイアウトまたは入力方式エディター (IME) の言語タグが記録されるようにします。When your app asks the user for text input, record the language tag for the currently enabled keyboard layout or Input Method Editor (IME). こうすると、その入力が後で表示されるときに適切な書式設定でユーザーに提示されます。This ensures that when the input is displayed later it's presented to the user with the appropriate formatting. 現在の入力言語の取得には、Language.CurrentInputMethodLanguageTag プロパティを使います。Use the Language.CurrentInputMethodLanguageTag property to get the current input language.
言語からユーザーの地域を想定する、または地域からユーザーの言語を想定することはしない。Don't use language to assume a user's region; and don't use region to assume a user's language. 言語と地域は別の概念です。Language and region are separate concepts. 特定の地理的な言語バリアント (en-GB (英国で話される英語) など) を話しても、住んでいる国または地域はまったく異なる場合があります。A user can speak a particular regional variant of a language, like en-GB for English as spoken in the UK, but the user might be in an entirely different country or region. UI テキストなどのためにアプリがユーザーの言語について認識する必要があるか、ライセンスなどのためにアプリがユーザーの地域について認識する必要があるかを検討してください。Consider whether your app requires knowledge about the user's language (for UI text, for example), or region (for licensing, for example). 詳細については、「ユーザー プロファイルの言語とアプリ マニフェストの言語について」を参照してください。For more info, see Understand user profile languages and app manifest languages.
言語タグを比較するためのルールは重要となる。The rules for comparing language tags are non-trivial. BCP-47 言語タグは複雑です。BCP-47 language tags are complex. 言語タグの比較では、スクリプト情報、前のタグ、複数の地域バリアントの対応付けに伴う問題など、多数の問題が発生します。There are a number of issues when comparing language tags, including issues with matching script information, legacy tags, and multiple regional variants. Windows のリソース管理システムでは、対応付けが自動的に行われます。The Resource Management System in Windows takes care of matching for you. 開発者はどの言語で作られたリソース セットでも指定でき、システムがユーザーとアプリのために適切なものを選びます。You can specify a set of resources in any languages, and the system chooses the appropriate one for the user and the app. アプリ リソースとリソース管理システム」および「リソース管理システムでの言語タグの照合の仕組み」を参照してください。See App resources and the Resource Management System and How the Resource Management System matches language tags.
異なるテキストの長さとフォント サイズがラベルとテキストの入力コントロールに対応するように UI を設計する。Design your UI to accommodate different text lengths and font sizes for labels and text input controls. 異なる言語に翻訳された文字列は、長さが大きく異なる場合があるため、コンテンツに合わせて UI コントロールのサイズを動的に変更する必要があります。Strings translated into different languages can vary greatly in length, so you'll need your UI controls to dynamically size to their content. 他の言語には、通常のアルファベットの上や下に記号が付いている文字 (Å、Ņ など) があります。Common characters in other languages include marks above or below what is typically used in English (such as Å or Ņ). 標準的なフォント サイズと行の高さを使って、縦方向に十分なスペースを確保します。Use the standard font sizes and line heights to provide adequate vertical space. 言語のフォントによっては、フォントの最小サイズを大きくして読みやすさを維持する必要がある場合があります。Be aware that fonts for other languages may require larger minimum font sizes to remain legible. Windows.Globalization.Fonts 名前空間のクラスを参照してください。See the classes in the Windows.Globalization.Fonts namespace.
読み取り順序のミラーリングをサポートする。Support the mirroring of reading order. テキストの配置と読み取りは、英語のように左から右の順にも、アラビア語やヘブライ語のように右から左の順 (RTL) にも行うことができます。Text alignment and reading order can be left to right (as in English, for example), or right to left (RTL) (as in Arabic or Hebrew, for example). 読み取り順が自国語とは異なる言語に製品をローカライズする場合は、UI 要素のレイアウトが左右反転をサポートする必要があります。If you are localizing your product into languages that use a different reading order than your own, then be sure that the layout of your UI elements supports mirroring. 戻るボタン、UI 切り替え効果、画像などのアイテムですら、左右反転が必要になることがあります。Even items such as back buttons, UI transition effects, and images might need to be mirrored. 詳細については、「レイアウトやフォントの調整と RTL のサポート」を参照してください。For more info, see Adjust layout and fonts, and support RTL.
テキストとフォントを正しく表示する。Display text and fonts correctly. テキストに適したフォント、フォント サイズ、方向は、市場によって異なります。The ideal font, font size, and direction of text varies between different markets. 詳細については、「レイアウトやフォントの調整と RTL のサポート」および「国際フォント」を参照してください。For more info, see Adjust layout and fonts, and support RTL and International fonts.

重要な APIImportant APIs