I'm building a C# app that will likely contain a couple resource files to store strings for use in language translation. I'm trying to come up with a naming convention for the Keys in my resouce files. Has anyone tackled this before me?
问题:
回答1:
Just use Pascal naming convention. Dont attribute the key to a module or the class. Generalize it so that it can be reused.
Eg: ReadWriteWarningMessage
The dot separated convention works fine for menu items. But what about strings that are generated dynamically or user messages.
回答2:
have you considered underscores like Menu_File_Open or something like Place_StringDescription? I currently employ a scheme where common stuff go to Common_ like Common_PressHereTo and view specific go to their respective place like MainMenu_FileOpen. In general, before the underscore i type where the Resource appears and after the underscore a descriptive text.
回答3:
I try to organize it similar to the namespaces I'm using to layout the program structure. So if you have MyCompany.MyProduct.MyModule, then strings in that module would be MyModule_Blah_Blah. That way they're unique within the overall product.
回答4:
If you have a Name Value Pair in resources like
CloseConfirmation - Do you want to close the window without saving ?
Add a new class called Messages.
public static class Messages
{
public const String CloseConfirmation = "CloseConfirmation";
public static String GetMessage( String messageId )
{
return //your namespace//.Properties.Resources.ResourceManager.GetString( messageId );
}}
and to access it use
MessageBox.Show( Messages.GetMessage(Messages.CloseConfirmation));
Hope this will help.