2016-07-14 9 views

答えて

1

実際にアプリケーションの言語を変更するために、多言語App Toolkitは必要ありません。デフォルトでは、アプリケーションはマシンの設定に基づいて設定されますが、CurrentCultureおよび/またはCurrentUICultureを設定することでその設定を上書きすることができます。

「英語」、「スペイン語」、「フランス語」などのコンボボックスを使用していたとします。希望の動作は、ユーザーが選択した値に言語を切り替えることです。あなたがする必要があるのは、SelectionChangedイベントに接続することだけです。ここでは、コードがどのように見えるかです:

private void ChangeLanguage(object sender, SelectionChangedEventArgs e) 
    { 
     var newlySelected = e.AddedItems[0] as ComboBoxItem; 
     string newLanguage = newlySelected.Content.ToString(); 
     switch (newLanguage) 
     { 
      case "English": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("en"); 
        CultureInfo.CurrentUICulture = new CultureInfo("en"); 
        break; 
       } 
      case "Spanish": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("es"); 
        CultureInfo.CurrentUICulture = new CultureInfo("es"); 
        break; 
       } 
      case "French": 
       { 
        CultureInfo.CurrentCulture = new CultureInfo("fr"); 
        CultureInfo.CurrentUICulture = new CultureInfo("fr"); 
        break; 
       } 
      default: 
       { 
        throw new NotImplementedException("Unidentified Language"); 
       } 
     } 
    } 

当然のことながら、私は(...など、ComboBoxItemへのキャストが動作することを確認してください)チェックし、すべての適切なエラーを行うことをお勧めしたいです。

また、DatesとTimesのようなものを適切なロケールに表示する場合は、CurrentCultureを設定し、ResourceLoaderがUIを設定するために使用するリソースを変更する場合はCurrentUulturalを使用する必要があります。

うまくいけば、これはあなたを稼働させてくれるはずです。

- ダンテ

関連する問題