私はここで何かを紛失しているはずです。WPFアプリケーションのローカライズは機能しませんか?
私はVS2015で新しいWPFアプリケーションを作成します。私はリソース 'String1'を作成し、値を 'fksdlfdskfs'に設定します。
コンストラクタを持つように私は、デフォルトのMainWindow.xaml.csを更新:
public MainWindow()
{
InitializeComponent();
this.Title = Properties.Resources.String1;
}
し、アプリケーションを実行し、そしてそれは私のウィンドウのタイトルがfksdlfdskfsで、正常に動作します。
//In order to begin building localizable applications, set
//<UICulture>CultureYouAreCodingWith</UICulture> in your .csproj file
//inside a <PropertyGroup>. For example, if you are using US english
//in your source files, set the <UICulture> to en-US. Then uncomment
//the NeutralResourceLanguage attribute below. Update the "en-US" in
//the line below to match the UICulture setting in the project file.
//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
だから私は私のWpfApplication5.csprojファイルに以下を追加して、VSでプロジェクトを再読み込み:
<UICulture>en-US</UICulture>
AssemblyInfo.csで
は、私は以下のコメントを参照してくださいファイルAssemblyInfo.csで次の行のコメントを外します。
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
私は今、アプリケーションはもはや実行、アプリケーションを実行するために行くと私はリソースを読み込む行に次の例外を取得した場合:
System.Resources.MissingManifestResourceExceptionのを:適切な任意の リソースが見つかりませんでした指定された培養または中性のために 培養物。 「WpfApplication5.Properties.Resources.en-US.resources」を確認してください必要なすべてのサテライトアセンブリが署名したロード可能な、完全に であることを正しく コンパイル時に埋め込まれたまたはアセンブリ「WpfApplication5」にリンク、または ました。
私はAssemblyInfo.csファイルにUltimateResourceFallbackLocation.MainAssembly
にUltimateResourceFallbackLocation.Satellite
を変更した場合、私の代わりに、次の例外を取得:
System.IO.IOException:リソース 'mainwindow.xaml' を見つけることができません
私は何が間違っているのですか、何が欠けていますか?
これは最も簡単で最も基本的なアプローチですが、最大の注意点は、アプリを再起動する必要があることです。これに対処するための代替アプローチがいくつかありますが、それらの方法ではインターフェイス文字列が開発ウィンドウに表示されません(動的なので)。私は物事をより簡単にしたwpflocalizationextensionと呼ばれるライブラリがあったと思う。 – mcy
大丈夫、ガイダンスのおかげで。それでは、Visual Studioの外で各言語のリソースを作成/編集することができますか、それともこのように各言語をコンパイルする必要がありますか?私たちが20カ国以上の言語を持っていて、それぞれの国が異なる時間に翻訳を送っていると、それは痛みになります。 – GoldieLocks
私は自分自身でResXResourceManager(https://github.com/tom-englert/ResXResourceManager)を使用しています。これは、Visual Studio(すべてのファイルとすべての言語を1つのテーブルにリストするなど)で優れたエディション能力を提供するためです。 VSを使わずにresxファイルを編集するための専用のクライアントがあります。また、Excelファイルをエクスポート/インポートすることもできます – Uwy