Ressourcen-DLLs erstellen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Ressourcen-DLLs verwenden


Das Auslagern der Ressourcen Ihrer Anwendung in Ressourcendateien und deren Verwendung in den Codestrings, die der Anwender zu sehen bekommt (wie z.B. Fehlermeldungen), vereinfacht den Übersetzungsprozess. Eine fortgeschrittene Stufe der Auslagerung besteht im Erstellen von Ressourcen-DLLs. Eine Ressourcen-DLL ist eine DLL, die alle Ressourcen eines Programms – und nur diese – enthält. Eine Anwendung, die Ressourcen-DLLs verwendet, unterstützt Übersetzungen in mehrere Sprachen, indem einfach die entsprechende Ressourcen-DLL ausgetauscht wird.

Mit dem Ressourcen-DLL-Experten können Sie für Ihre Anwendung Ressourcen-DLLs erstellen. Zuerst fügen Sie mit dem Ressourcen-DLL-Experten Ihrem Projekt Sprachen hinzu. Für jede hinzugefügte Sprache erzeugt der Ressourcen-DLL-Experte das Ressourcen-DLL-Projekt. Jedes Ressourcen-DLL-Projekt wird in einem Unterverzeichnis mit einem auf dem Gebietsschema der Sprache basierenden Namen erstellt. Für jedes Ressourcen-DLL-Projekt erstellt der Ressourcen-DLL-Experte:

  • die RC-Datei, in der die String-Tabellen der verwendeten RC-Dateien (.drc) und die im resourcestring-Abschnitt des Projekts deklarierten Strings enthalten sind.
  • die .dfm-Formulardatei, in der Formulare und andere GUI-Ressourcen enthalten sind.

Anhand des erstellten Ressource-DLL-Projekts kann RAD Studio die Ressourcen-DLL erstellen, die Ressourcen aus der relevanten Formulardatei und der RC-Datei enthält.

Sie sollten den Ressourcen-DLL-Expertenverwenden, um eine Ressourcen-DLL für jede Übersetzung, die Sie unterstützen wollen, zu erstellen. Aus der Dateinamenserweiterung der Ressourcen-DLL sollte das jeweilige Gebietsschema hervorgehen. Der Ressourcen-DLL-Experte führt dies für Sie aus. Ansonsten verwenden Sie die drei Zeichen langen ISO 639x-Werte aus der Tabelle unter ""Sprach- und Regionsnamen, Codes und ISO-Werte", um eine entsprechende Dateinamenserweiterung festzulegen.

/* This callback fills a listbox with the strings and their associated languages and
 countries */
BOOL __stdcall EnumLocalesProc(char* lpLocaleString) {
        AnsiString LocaleName, LanguageName, CountryName;
        LCID lcid;
        lcid = StrToInt("$" + AnsiString(lpLocaleString));
        LocaleName = GetLocaleStr(lcid, LOCALE_SABBREVLANGNAME, "");
        LanguageName = GetLocaleStr(lcid, LOCALE_SNATIVELANGNAME, "");
        CountryName = GetLocaleStr(lcid, LOCALE_SNATIVECTRYNAME, "");
        if (lstrlen(LocaleName.c_str()) > 0)
                Form1->ListBox1->Items->Add(LocaleName + ":" + LanguageName + "-" +
                CountryName);
        return TRUE;
}
/* This call causes the callback to execute for every locale */
EnumSystemLocales((LOCALE_ENUMPROC)EnumLocalesProc, LCID_SUPPORTED);

Siehe auch