3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ResXManagerを使用して多言語対応を行う

Last updated at Posted at 2021-12-30

0. はじめに

Visual Studioで多言語対応が必要なアプリケーションを開発する際、ResXManagerという拡張機能が便利そうだったので、使用方法などを簡単にまとめてみました。
ResXManagerは、各言語リソースファイルを開かなくとも、専用の画面で言語キー(文字列)を参照/追加/更新/削除できる機能になります。

1. ResXManagerをダウンロードする

Visual Studioメニューの「拡張機能 > 拡張機能の管理」から、ResXManagerをダウンロードします。
※ダウンロード後、変更を反映するため、Visual Studioの再起動が必要かと思います。
1.png

2. 言語リソースファイルを追加する

まずは準備として、ソリューションエクスプローラーコンテキストメニューの「追加 > 新しい項目」からリソースファイルを作成します。
名前は何でもいいですが、私は「Strings.resx」としました。
3.png

3. ResXManagerを使ってみる

Visual Studioメニューの「ツール > ResX Manager」を選択すると、ResX Resource Managerが起動します。

3-1. デフォルトの言語を変更する

Configurtionタブの「Netural Resouces Language」から、デフォルトの言語を変更できます。
元々は英語になっているかと思いますので、日本語に変更しました。
4.png

3-2. 言語を追加する

Mainタブの「Add new language」から、言語を追加できます。
今回は英語・フランス語を追加してみました。
5.png

対応するリソースファイル(Strings.en.resx、Strings.fr.resx)が自動で生成されます!
6.png

3-3. キー(文字列)を追加する

「Add new key」から、キー(文字列)を追加できます。
7.png

文字列を追加しない場合は、赤塗りで表示されます。
8.png

3-4. キー(文字列)を削除する

「Delete selected items」から、キー(文字列)を削除できます。
9.png

4. 出力してみる

class Program
{
	static void Main(string[] args)
	{
		// 日本語
		Console.WriteLine(Strings.HelloWorld);

		// 英語
		Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
		Console.WriteLine(Strings.HelloWorld);

		// フランス語
		Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
		Console.WriteLine(Strings.HelloWorld);
	}
}

w.png

5. おわりに

  • 「〇〇言語に〇〇キーの文字列が設定されていない!」ということにすぐ気づけるのでとても便利ですね:innocent:(今回この拡張機能を使おうと思ったきっかけがコレでした)
  • 私が必要としていた機能は上記に記載した範囲でしたが、他にも「キー(文字列)のコピー/ペースト」「エクセルへのインポート/エクスポート」 といったことが行えるみたいです:innocent:
3
3
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?