2009-05-22 9 views
22

Estoy construyendo una aplicación C# que probablemente contenga un par de archivos de recursos para almacenar cadenas para su uso en la traducción de idiomas. Estoy tratando de encontrar una convención de nombres para las llaves en mis archivos de recursos. ¿Alguien ha abordado esto antes que yo?Archivo de recursos (.resx) Convenciones de nomenclatura clave?

Respuesta

11

Simplemente use la convención de nomenclatura de Pascal. No atribuya la clave a un módulo o a la clase. Generalízalo para que pueda ser reutilizado.

Ej: ReadWriteWarningMessage

El punto separado convención funciona bien para los elementos de menú. Pero, ¿qué ocurre con las cadenas generadas dinámicamente o los mensajes de los usuarios?

0

Si usted tiene un nombre de valor Pair en recursos como

CloseConfirmation - ¿Quieres cerrar la ventana sin guardar?

Agregue una nueva clase llamada Mensajes.

public static class Messages 
{ 
    public const String CloseConfirmation = "CloseConfirmation"; 
    public static String GetMessage(String messageId) 
    { 
     return //your namespace//.Properties.Resources.ResourceManager.GetString(messageId); 
    }} 

y para acceder a él uso

MessageBox.Show(Messages.GetMessage(Messages.CloseConfirmation)); 

Esperamos que esto ayude.

+1

No se trata de nombrar las convenciones de las claves, sino más acerca de las estrategias sobre cómo acceder a los mensajes en los archivos de recursos. – Juri

+0

Gracias Prajeesh, puedo acceder al recurso sin ningún problema. Sin embargo, mi problema es que puedo tener cientos de claves y quiero una manera fácil de buscarlas. Me encontré con una convención jerárquica como: Menu.File.Open como un ejemplo para un título del menú. Me gusta este enfoque, pero no se permiten decimales cuando uso recursos fuertemente tipados (que yo soy). Gracias aunque ... – Dawsy

4

¿Ha considerado guiones bajos como Menu_File_Open o algo así como Place_StringDescription? Actualmente utilizo un esquema donde las cosas comunes van a Common_ como Common_PressHereTo y las vistas específicas van a su lugar respectivo como MainMenu_FileOpen. En general, antes del guión bajo escribo donde aparece el recurso y después del guión bajo un texto descriptivo.

2

Intento organizarlo de forma similar a los espacios de nombres que estoy usando para diseñar la estructura del programa. Entonces, si tiene MyCompany.MyProduct.MyModule, las cadenas en ese módulo serían MyModule_Blah_Blah. De esa forma son únicos dentro del producto general.

Cuestiones relacionadas