C++/CLIで国際化文字列リソースを追加

投稿者: | 2015/12/19 土曜日

メインのフォームFormMainがあると仮定

プロジェクトにリソース(*.resx)を追加、ここではStringResource.resxとStringResource.ja-JP.resxを追加する。

FormMainに以下のコードを追加

		static System::Resources::ResourceManager^ theResource_ = 
			gcnew System::Resources::ResourceManager(FormMain::typeid->Namespace + ".StringResource", System::Reflection::Assembly::GetExecutingAssembly());
	internal:
		static String^ getI18NString(String^ sIn);

実装

	String^ FormMain::getI18NString(String^ sIn)
	{
		String^ ret = theResource_->GetString(sIn);
		return String::IsNullOrEmpty(ret) ? sIn : ret;
	}

sInに渡された文字列がリソースにあればそれを返す。なければそのまま返す。
CultureInfoをGetStringの第二引数に渡せるがここではスルー

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です