WPFローカリゼーションの紹介
WPFローカリゼーションは、アプリケーションリソースを、そのアプリケーションの特定の地域をサポートするローカライズ版に変換することです。適切な情報を得るためには、データを適切な言語に変換する必要があります。
WPFローカリゼーションの目的は?
- アプリケーションを開発し、アプリケーションが1つの言語しか使用できない場合、多くのユーザーがアプリケーションを使用できないため、顧客ベースとビジネスの規模が制限されます。
- 顧客基盤とビジネスを拡大したいのであれば、製品が利用可能であり、適切な言語で簡単なメッセージで世界中のオーディエンスにリーチできる必要があります。費用対効果の高い製品ローカリゼーションは、より多くの顧客にリーチし、アプリケーションに参加するための最良かつ最も経済的な方法の1つです。
- 私たちが知っているように、世界にはたくさんの人がいて、たくさんの言語がある。この場合、WPFローカリゼーションは大きな影響を与えます。
- 人々はプロジェクトの有用な情報や優れた機能に障害がないことを望むからです。
- 適切なユーザー言語に関するすべての情報を提供できます。
WPFローカリゼーションの種類は?
WPFには2種類のWPFローカリゼーションがある。
- 静的WPFローカリゼーション
- 動的WPFローカリゼーション
静的WPF位置決め
- 静的WPFローカリゼーションは、静的データを別の言語に変換するのに便利です。
- 他の言語に翻訳されるすべての情報として定義できるため、静的プロジェクトに便利です。多くの人がインターネットを利用して情報を得ているので、他国の居住者にとっては簡単に情報にアクセスできるので便利な状況です。
動的WPFローカリゼーション
- 動的データのための動的WPFローカリゼーション。
- このタイプのローカリゼーションは、動的な形式でデータを取得する場合に便利です。
- 動的フォーマットでは取得する情報が多すぎます。この場合、ユーザーのニーズに応じて他の言語に簡単に翻訳できます。そのため、これらの特性は重要な役割を果たす。
- 動的WPFローカリゼーションは、リソース辞書ファイルを使用してデータを取得し、ある言語から別の言語に翻訳します。
** リソースディクショナリ·ファイルの例 **
コードコード。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
>
</ResourceDictionary>
名前空間を追加してリソース辞書を使用します。
** 名前空間 **
xmlns:sys="clr-namespace:System;assembly=mscorlib"
以下のコードにリソース辞書ファイルのデータを追加します。
** コード **
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
>
<sys:String x:Key="ResourceDictionaryName">Loc-en-US</sys:String>
<sys:String x:Key="WindowTitle">Dynamic Localizzation in wpf</sys:String>
<sys:String x:Key="FirstNameLabel">First Name</sys:String>
<sys:String x:Key="LastNameLabel">Last Name</sys:String>
</ResourceDictionary>
プロジェクトでWPFローカリゼーションを使用する方法は?
- ステップ1 **
WPFローカリゼーション用の新規プロジェクトを作成します。
- ステップ2 **
然后安装最新版本的 WPF 本地化扩展包:WPFLocalizeExtension。

** ステップ3 **
リソース·ファイルの追加

インストール後、リソースファイル上の図を追加し、Resource.resxファイルを開きます。
追加されたリソース文書:

- ステップ4 **
我们需要将访问修饰符更改为 public,现在您可以在主页面中使用刚添加的资源了(即右键资源文件属性,将自定义工具(Custom Tool)改为PublicResXFileCodeGenerator即可,否则运行程序报错)
- ステップ5 **
ユーザーのデザインはresource.resxファイルで確認できます。
** ステップ6 **
新しいファイルを作成し、手順に従ってください。
“プロジェクト名を右クリック->追加ボタンをクリックして、新規項目をクリックして、Visual C#プロジェクトをクリックして、リソースファイルを検索します->ファイル名を定義します。“
**
Resource.fr-FR.resxとResource.gr-GRサンプルのファイル名を宣言します。
ファイル名:以下のResource.resxファイル

ファイル名:Resource.fr-FR.resxファイルは以下のとおりです。

- ステップ7 **
これで、以下の名前空間を使用してMainWindows.xamlファイルにファイルを追加できます。
**** 例 **
“xmlns:CC="clr-namespace:WpfApp1Localization.Properties"”
** ステップ8 **
App.xaml.csファイルを使用してリソースファイルを呼び出すことができるようになりました。つまり、プロジェクトを起動するときにローカル言語を読み込み、言語を切り替えることができます。
コードコード。
namespace WpfApp1Localization {
public partial class App: Application {
App() {
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("gr-GR");
//System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
}
}
}
** ステップ9 **
プロジェクトのすべてのファイルを保存して、プロジェクトを実行します。
** ステップ10 **
WPFローカリゼーションでのWPFでの静的WPFローカリゼーション出力プロジェクトの使用
輸出する。

WPFローカライズサンプルプロジェクト
- 次に、WPF LocalizationDemoという新しいプロジェクトを作成します。
- 次に、Resource.en.resxとResource.gr-GR.resxの2つのファイルを作成します。
- データフィールドを両方のファイルに追加します。
Resources.en.resx

Resources.gr-Gr.resx

** リソースファイル内の表データの **
ボタンを作成1送信テキストが送信されます。
ボタンの作成2ユーザーを登録します。
ボタンの作成3ログインフォームのデータをキャンセルまたはリセットします。
ラベルの作成1-ログインフォームのタイトルとヒント。
Create a label 2-ユーザー名を入力するためのラベルヒント。
ラベルの作成3-パスワードを入力するためのラベルプロンプト。
- 次のXAMLファイルに名前空間を追加してリソースファイルを追加します。
コードコード。
<Window
x:Class="WpfApp1Localization.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApp1Localization"
xmlns:CC="clr-namespace:WpfApp1Localization.Properties"
mc:Ignorable="d"
Title="{x:Static CC:Resources.Log_In}"
Height="450"
Width="800"
Background="Chocolate"
>
<Grid>
<TextBox
HorizontalAlignment="Left"
Height="23"
FontSize="12"
Margin="412,152,0,0"
TextWrapping="Wrap"
VerticalAlignment="Top"
Width="120"
/>
<TextBox
HorizontalAlignment="Left"
Height="23"
FontSize="12"
Margin="412,233,0,0"
TextWrapping="Wrap"
VerticalAlignment="Top"
Width="120"
/>
<label
x:Name="label1"
Content="{x:Static CC:Resources.Log_In}"
HorizontalAlignment="Left"
FontSize="18"
Margin="338,72,0,0"
VerticalAlignment="Top"
RenderTransformOrigin="0.526,2.491"
/>
<label
x:Name="label2"
Content="{x:Static CC:Resources.User_Name}"
HorizontalAlignment="Left"
FontSize="12"
Margin="245,152,0,0"
VerticalAlignment="Top"
/>
<label
x:Name="label3"
Content="{x:Static CC:Resources.Password}"
HorizontalAlignment="Left"
FontSize="12"
Margin="245,233,0,0"
VerticalAlignment="Top"
/>
<button
x:Name="button1"
Content="{x:Static CC:Resources.Submit}"
HorizontalAlignment="Left"
Margin="338,330,0,0"
VerticalAlignment="Top"
Width="75"
/>
<button
x:Name="Button2"
Content="{x:Static CC:Resources.Registration}"
HorizontalAlignment="Left"
Margin="245,340,0,0"
VerticalAlignment="Top"
Width="75"
/>
<button
x:Name="Button3"
Content="{x:Static CC:Resources.Cancel}"
HorizontalAlignment="Left"
Margin="532,335,0,0"
VerticalAlignment="Top"
Width="75"
/>
</Grid>
</Window>
app.xaml.csファイルを使用したリソースファイルの呼び出し
コードコード。
namespace WpfApp1Localization {
public partial class App: Application {
App() {
System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("gr-GR");
//System.Threading.Thread.CurrentThread.CurrentUICulture =
new System.Globalization.CultureInfo("en");
}
}
}
** プログラムまたはプロジェクトの出力 **
出力設計に関しては、以下のようになります。
英語のログイン·フォームは以下の通りです。

ドイツ語のログインフォームは次のとおりです。

結論:結論
このブログでは、WPFローカリゼーション、その重要性、その種類、そして実際の仕組みについて学びました。これはWPFの概要を理解するための主要な概念の1つであり、アプリケーションが言語の壁を解決するのに役立ちます。
原文へのリンク:https//www.c-sharpcorner.com/blogs/an-overview-of-wpf-localization-extension-with-an-example