2009-05-22 2 views
22

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

ответ

11

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

Например: ReadWriteWarningMessage

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

0

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

CloseConfirmation - Вы хотите, чтобы закрыть окно без сохранения?

Добавить новый класс, называемый Сообщениями.

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

+0

Спасибо, Prajeesh, я могу получить доступ к ресурсу без проблем. Моя проблема заключается в том, что у меня может быть несколько сотен ключей, и вам нужен простой способ найти их. Я столкнулся с hoerarchical соглашением вроде: Menu.File.Open как пример подписи меню. Мне нравится этот подход, но десятичные знаки не допускаются при использовании сильно типизированных ресурсов (что я и есть). Спасибо хоть... – Dawsy

4

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

2

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

Смежные вопросы