言語翻訳で使用する文字列を格納するためのいくつかのリソース ファイルを含む可能性が高い C# アプリを構築しています。リソース ファイル内のキーの命名規則を考え出そうとしています。私の前に誰かがこれに取り組んだことがありますか?
5 に答える
パスカルの命名規則を使用してください。キーをモジュールまたはクラスに帰属させないでください。再利用できるように一般化します。
例: ReadWriteWarningMessage
ドットで区切られた規則は、メニュー項目に対して適切に機能します。しかし、動的に生成される文字列やユーザー メッセージはどうでしょうか。
Menu_File_Open や Place_StringDescription などのアンダースコアを検討しましたか? 私は現在、一般的なものが Common_PressHereTo のような Common_ に移動し、特定のビューが MainMenu_FileOpen のようなそれぞれの場所に移動するスキームを採用しています。一般に、アンダースコアの前にリソースが表示される場所を入力し、アンダースコアの後に説明テキストを入力します。
プログラム構造のレイアウトに使用している名前空間と同様に整理しようとしています。したがって、MyCompany.MyProduct.MyModule がある場合、そのモジュールの文字列は MyModule_Blah_Blah になります。そうすれば、それらは製品全体の中でユニークになります。
次のようなリソースに名前と値のペアがある場合
CloseConfirmation - 保存せずにウィンドウを閉じますか?
Messages という新しいクラスを追加します。
public static class Messages
{
public const String CloseConfirmation = "CloseConfirmation";
public static String GetMessage( String messageId )
{
return //your namespace//.Properties.Resources.ResourceManager.GetString( messageId );
}}
そしてそれにアクセスするには
MessageBox.Show( Messages.GetMessage(Messages.CloseConfirmation));
これが役立つことを願っています。