ローカライズ化の確認

ローカライズ化の確認は、国際対応アプリケーション開発の中間段階です。 グローバル化されたアプリケーションがローカライズの準備ができていることを確認し、特別な処理が必要なコードやユーザー インターフェイスの側面を特定します。 この手順は、ローカライズ プロセスでアプリケーションに機能上の欠陥が持ち込まれないようにするためにも役立ちます。 ローカライズ化の確認で生じた問題がすべて解決されたら、アプリケーションのローカライズの準備は完了です。 ローカライズ化の確認が徹底していれば、ローカライズ プロセス中にソース コードを変更する必要はありません。

ローカライズ化の確認は、次の 3 つの確認で構成されます。

グローバリゼーションの推奨事項を実装する

ローカライズを考慮してアプリケーションの設計と開発を行い、グローバリゼーションに関する記事で説明されている推奨事項に従っている場合、ローカライズ化の確認は品質保証の点でほぼ合格です。 それ以外の場合は、この段階でグローバリゼーションの推奨事項を確認して実装し、ローカライズを妨げるソース コードのエラーを修正する必要があります。

カルチャに依存した機能を処理する

.NET では、カルチャによって大きく異なるさまざまな領域のプログラムによるサポートは提供されていません。 ほとんどの場合、次のような機能領域を処理するカスタム コードを作成する必要があります。

  • アドレス

  • 電話番号

  • 用紙サイズ

  • 長さ、重量、面積、体積、および温度に使用される測定単位

    .NET には測定単位の変換のサポートが組み込まれていませんが、次の例に示すように、RegionInfo.IsMetric プロパティを使用して特定の国または地域でメートル法が使用されているかどうかを判断できます。

    using System;
    using System.Globalization;
    
    public class Example
    {
       public static void Main()
       {
          string[] cultureNames = { "en-US", "en-GB", "fr-FR",
                                    "ne-NP", "es-BO", "ig-NG" };
          foreach (var cultureName in cultureNames) {
             RegionInfo region = new RegionInfo(cultureName);
             Console.WriteLine("{0} {1} the metric system.", region.EnglishName,
                               region.IsMetric ? "uses" : "does not use");
          }
       }
    }
    // The example displays the following output:
    //       United States does not use the metric system.
    //       United Kingdom uses the metric system.
    //       France uses the metric system.
    //       Nepal uses the metric system.
    //       Bolivia uses the metric system.
    //       Nigeria uses the metric system.
    
    Imports System.Globalization
    
    Module Example
        Public Sub Main()
            Dim cultureNames() As String = {"en-US", "en-GB", "fr-FR",
                                             "ne-NP", "es-BO", "ig-NG"}
            For Each cultureName In cultureNames
                Dim region As New RegionInfo(cultureName)
                Console.WriteLine("{0} {1} the metric system.", region.EnglishName,
                                  If(region.IsMetric, "uses", "does not use"))
            Next
        End Sub
    End Module
    ' The example displays the following output:
    '       United States does not use the metric system.
    '       United Kingdom uses the metric system.
    '       France uses the metric system.
    '       Nepal uses the metric system.
    '       Bolivia uses the metric system.
    '       Nigeria uses the metric system.
    

アプリケーションのテスト

アプリケーションをローカライズする前に、各言語版のオペレーティング システム上で各種言語データを使用してアプリケーションをテストする必要があります。 この時点では、ほとんどのユーザー インターフェイスはローカライズされていませんが、次のような問題を検出できます。

  • シリアル化されたデータが、オペレーティング システムのバージョン間で正しく逆シリアル化されない場合。

  • 現在のカルチャの規則を反映していない数値データ。 たとえば、不適切なグループ区切り記号、小数点区切り記号、または通貨記号で数値が表示されることがあります。

  • 現在のカルチャの規則を反映していない日時データ。 たとえば、月と日を表す数値が不適切な順序で表示される場合、日付の区切りが正しくない場合、タイム ゾーン情報が正しくない場合があります。

  • アプリケーションの既定のカルチャを指定していないために見つからないリソース。

  • 特定のカルチャでは通常とは異なる順序で表示される文字列。

  • 予期しない結果が返される文字列の比較または等価比較。

アプリケーションの開発時にグローバリゼーションの推奨事項に従い、カルチャに依存した機能を正しく処理し、テスト中に発生したローカライズの問題を特定して対処した場合は、次の手順であるローカライズに進むことができます。

関連項目