Файл ресурса (.resx) Соглашения об именах ключей? - PullRequest
27 голосов
/ 22 мая 2009

Я создаю приложение на C #, которое, вероятно, будет содержать пару файлов ресурсов для хранения строк для использования в переводе на другие языки. Я пытаюсь придумать соглашение по именованию ключей в моих ресурсных файлах. Кто-нибудь занимался этим до меня?

Ответы [ 4 ]

14 голосов
/ 04 июня 2009

Просто используйте соглашение об именах Паскаля. Не приписывайте ключ к модулю или классу. Обобщите его так, чтобы его можно было использовать повторно.

Например: ReadWriteWarningMessage

Соглашение, разделенное точками, прекрасно работает для пунктов меню. Но как насчет строк, которые генерируются динамически или пользовательских сообщений.

4 голосов
/ 28 мая 2009

Вы рассматривали подчеркивания, такие как Menu_File_Open или что-то вроде Place_StringDescription? В настоящее время я использую схему, где обычные вещи идут к Common_, как Common_PressHereTo, и просматривают конкретные переходы в их соответствующие места, такие как MainMenu_FileOpen В общем, перед подчеркиванием i введите место появления ресурса, а после подчеркивания - текст описания.

4 голосов
/ 28 мая 2009

Я пытаюсь организовать его аналогично пространствам имен, которые я использую для разметки структуры программы. Так что, если у вас есть MyCompany.MyProduct.MyModule, то строки в этом модуле будут MyModule_Blah_Blah. Таким образом, они уникальны для всего продукта.

0 голосов
/ 22 мая 2009

Если у вас есть пара имя-значение в таких ресурсах, как

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

Надеюсь, это поможет.

...