Я создаю приложение С#, которое, вероятно, будет содержать пару файлов ресурсов для хранения строк для использования в переводе языка. Я пытаюсь придумать соглашение об именах для ключей в моих файлах resouce. Кто-нибудь решил это передо мной?
Ресурс (.resx) file Соглашения о присвоении имен файлам?
Ответ 1
Просто используйте соглашение об именах Pascal. Не связывайте ключ с модулем или классом. Обобщите его так, чтобы его можно было повторно использовать.
Например: ReadWriteWarningMessage
Соглашение о разделении точек отлично работает для пунктов меню. Но как насчет строк, которые генерируются динамически или пользовательских сообщений.
Ответ 2
Вы считали символы подчеркивания, такие как Menu_File_Open или что-то вроде Place_StringDescription? В настоящее время я использую схему, в которой обычные вещи переходят на Common_, например Common_PressHereTo, и просматривают конкретные данные в соответствующем месте, например MainMenu_FileOpen. В общем случае перед символом подчеркивания я указывается, где появляется ресурс, а после подчеркивания - описательный текст.
Ответ 3
Я пытаюсь организовать его аналогично пространствам имен, которые я использую для компоновки структуры программы. Поэтому, если у вас есть MyCompany.MyProduct.MyModule, то строки в этом модуле будут MyModule_Blah_Blah. Таким образом, они уникальны в общем продукте.
Ответ 4
Если у вас есть пара значений имен в ресурсах, например
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));
Надеюсь, это поможет.