2009-05-22 37 views
22

我正在构建一个C#应用程序,该应用程序可能会包含一对资源文件来存储用于语言翻译的字符串。我试图在资源文件中为Keys创建一个命名约定。有没有人在我面前解决这个问题?资源(.resx)文件密钥命名约定?

回答

11

只需使用Pascal命名约定。不要将该键赋予模块或类。将其推广以便可以重复使用。

如:ReadWriteWarningMessage

点分隔约定正常工作的菜单项。但是动态生成的字符串或用户消息又如何呢?

0

如果你有一个名称值对资源像

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)); 

希望这会有所帮助。

+1

这不是关于密钥的命名约定,而更多是关于如何访问资源文件中的消息的策略。 – Juri 2009-05-22 05:11:25

4

您是否考虑过下划线,如Menu_File_Open或类似Place_StringDescription? 我目前采用一种方案,其中常见的东西去Common_ like Common_PressHereTo并查看特定的去MainMenu_FileOpen各自的地方。一般来说,在下划线之前,我键入资源出现的位置,并在下划线后面加上描述性文字。

2

我尝试组织它,类似于我用来布局程序结构的名称空间。所以如果你有MyCompany.MyProduct.MyModule,那么那个模块中的字符串就是MyModule_Blah_Blah。这样它们在整个产品中是独一无二的。