2009-05-22 12 views
22

Ich erstelle eine C# -App, die wahrscheinlich einige Ressourcendateien zum Speichern von Zeichenfolgen für die Verwendung in der Sprachübersetzung enthält. Ich versuche, eine Namenskonvention für die Schlüssel in meinen resouce Dateien zu finden. Hat das jemand vor mir angepackt?Ressourcendatei (.resx) Tastenbenennungskonventionen?

Antwort

11

Verwenden Sie einfach die Pascal-Namenskonvention. Weisen Sie den Schlüssel einem Modul oder der Klasse nicht zu. Verallgemeinern Sie es, damit es wiederverwendet werden kann.

ZB: ReadWriteWarningMessage

Der Punkt getrennt Konvention für Menüpunkte gut funktioniert. Aber was ist mit Strings, die dynamisch generiert werden oder User-Nachrichten?

0

Wenn Sie einen Name Wert Pair in Ressourcen wie

CloseConfirmation - Haben Sie das Fenster schließen möchten, ohne speichern?

Fügen Sie eine neue Klasse namens Nachrichten hinzu.

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

und es

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

Hope this helfen verwenden zugreifen.

+1

Hierbei geht es nicht um Namenskonventionen für Schlüssel, sondern um Strategien zum Zugriff auf Nachrichten in Ressourcendateien. – Juri

+0

Danke Prajeesh, ich kann auf die Ressource ohne ein Problem zugreifen. Mein Problem ist jedoch, dass ich mehrere hundert Schlüssel haben kann und eine einfache Möglichkeit habe, nach ihnen zu suchen. Ich bin auf eine hierarchische Konvention wie: Menu.File.Open als Beispiel für eine Menübeschreibung gestoßen. Ich mag diesen Ansatz, aber Dezimalzahlen sind nicht zulässig, wenn stark typisierte Ressourcen verwendet werden (was ich bin). Trotzdem danke... – Dawsy

4

haben Sie Unterstriche wie Menu_File_Open oder etwas wie Place_StringDescription berücksichtigt? Ich verwende derzeit ein Schema, bei dem gängige Sachen zu Common_ wie Common_PressHereTo gehen und bestimmte zu ihrem jeweiligen Ort wie MainMenu_FileOpen gehen. Im Allgemeinen gebe ich vor dem Unterstrich ein, wo die Ressource erscheint und hinter dem Unterstrich einen beschreibenden Text.

2

Ich versuche, es ähnlich den Namespaces zu organisieren, die ich verwende, um die Programmstruktur zu gestalten. Wenn Sie also MyCompany.MyProduct.MyModule haben, dann wären die Strings in diesem Modul MyModule_Blah_Blah. Auf diese Weise sind sie innerhalb des gesamten Produkts einzigartig.

Verwandte Themen