簡體   English   中英

資源 (.resx) 文件 密鑰命名約定?

[英]Resource (.resx) file Key naming conventions?

我正在構建一個 C# 應用程序,它可能包含幾個資源文件來存儲用於語言翻譯的字符串。 我正在嘗試為我的資源文件中的鍵提出一個命名約定。 有沒有人在我之前解決過這個問題?

只需使用 Pascal 命名約定。 不要將密鑰歸因於模塊或類。 概括它以便它可以被重用。

例如:ReadWriteWarningMessage

點分隔約定適用於菜單項。 但是動態生成的字符串或用戶消息呢?

你有沒有考慮過像 Menu_File_Open 或 Place_StringDescription 這樣的下划線? 我目前采用一種方案,其中常見的東西去 Common_ 像 Common_PressHereTo 和查看特定去他們各自的地方像 MainMenu_FileOpen。 通常,我在下划線之前輸入資源出現的位置,在下划線之后輸入描述性文本。

我嘗試將其組織為類似於我用來布局程序結構的命名空間。 因此,如果您有 MyCompany.MyProduct.MyModule,那么該模塊中的字符串將是 MyModule_Blah_Blah。 這樣,它們在整個產品中都是獨一無二的。

請參閱https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/naming-resources 正如@bobbyalex 所說,這包括使用 PascalCasing,因為生成的資源設計器文件確實將資源實現為屬性。

✔️ 務必在資源鍵中使用 PascalCasing。

✔️ 務必提供描述性而非簡短的標識符。

❌ 不要使用主要 CLR 語言的特定於語言的關鍵字。

✔️ 務必在命名資源時僅使用字母數字字符和下划線。

✔️ 務必對異常消息資源使用以下命名約定。

資源標識符應該是異常類型名稱加上異常的短標識符:

ArgumentExceptionIllegalCharacters ArgumentExceptionInvalidName ArgumentExceptionFileNameIsMalformed

如果您在資源中具有名稱值對,例如

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

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM