私は、MulitlingualAppToolkit 4.0で2つの言語(英語とドイツ語)で自分のアプリケーションをローカライズしました。英語は基本言語であり、ドイツ語は英語による翻訳です。 翻訳はフォルダ "strings.en"と "strings.de"内にresw-fileとして保存されます。 App.xaml.csアプリで私のローカリゼーションは私のDevelopment-Machineでのみ動作しますか?
()私はこのような文化を設定します。私はそれを認識するので(私はこの記事https://www.pedrolamas.com/2015/11/02/cultureinfo-changes-in-uwp/からのWindows 10の地域・文化へのこの静かな奇妙な方法を持って
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = GetCurrentCulture();
CultureInfo.CurrentUICulture = GetCurrentCulture();
private CultureInfo GetCurrentCulture()
{
var cultureName = new DateTimeFormatter("longdate", new[] {"US"}).ResolvedLanguage;
return new CultureInfo(cultureName);
}
CultureInfo.CurrentCultureとCultureInfo.CurrentUICultureは、自分のマシンの地域設定と言語設定で何を設定していても常に "en-EN"です。
PrimaryLanguageOverrideが期待通りに機能するかどうかを確認するために、TextBoxをtbTest私の最初のページとこのイベントへのボタンのリンク:
(Windows10-を がは、デバッグ、または私の開発・マシンからアプリケーションを実行するには、すべてが期待通りに動作しますが、私はAPPX-バンドルを作成し、他にインストールしてください:
private void Button_Click(object sender, RoutedEventArgs e)
{
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = tbTest.Text;
Frame.Navigate(this.GetType(), 0);
System.IO.File.AppendAllText(System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "PrimaryLanguageOverride.txt"),
DateTime.Now + " - Actual PrimaryLanguageOverride:\n " + WIndows.Globalization.ApplicationLanguages.PrimaryLanguageOverride);
}
catch(Exception ex) { Helper.Log.LogUnhandledError(ex); }
}
は今奇妙なものが来ますデスクトップ)デバイスでは、アプリケーションはその言語を認識しません。 私の状況では、デバイスはドイツ語、地域およびその言語に設定されています。また、テストプロシージャを使用する場合、有効なカルチャ名である限り、設定した文字列をdefenetively取得します。たとえば、 "en-EN"、 "en-US"、 "de-DE"、 "de" "en"(これらはすべて私の開発マシン上で正常に動作しています)。無効な文字列の場合は、例外が発生し、処理されていないエラーログにログエントリがあります。 Pageをリフレッシュして、PrimaryLanguageOverride-Logに新しく設定した言語を書きますが、翻訳したテキストは変更されません。
私の質問は、これは共通の問題です(UWP/Win10で認識されているため、カルチャーシステムがちょっと台無しです)か、間違った手順でApp-Cultureを無効にしますか?
回答のためのThx。私たちはすでにこの解決策を見つけましたが、MATについて多くのリソースがないので、これはうまくいけば他のUWP開発者を助けるでしょう。 –
あなたの歓迎:D。では、ソリューションとして、CPUアーキテクチャに複数のパッケージを使用していますか?または、アプリケーションから手動でリソースをロードしますか? – Kishath
マイクロソフトはアプリケーションを多言語化するための選択の手段としてMAT4.0を提示しているので、現時点ではアンバンドルパッケージを使用しています。 –