Création de DLL de ressources

De RAD Studio
Aller à : navigation, rechercher

Remonter à Utilisation des DLL de ressources


L'isolation, dans les fichiers de ressources, de vos ressources d'applications et des chaînes de code que vous présentez à l'utilisateur (telles que les messages d'erreur) simplifie le processus de traduction. Le niveau suivant d'isolation des ressources consiste à créer une DLL de ressources. Une DLL de ressources contient toutes les ressources et uniquement les ressources d'un programme. Les DLL de ressources vous permettent de créer un programme qui prend en charge plusieurs langues en permutant simplement les DLL de ressources correspondant à ces langues.

Utilisez l'expert DLL de ressources pour créer des DLL de ressources pour votre programme. Utilisez d'abord l'expert DLL de ressources pour ajouter des langues à votre projet. Pour chaque langue ajoutée, l'expert DLL de ressources génère le projet DLL de ressources. Il crée chaque projet DLL de ressources dans le sous-répertoire dont le nom est basé sur la langue. Dans chaque projet DLL de ressources créé, l'expert DLL de ressources crée :

  • le fichier RC qui contient les tables des chaînes issues des fichiers RC (.drc) utilisées et les chaînes déclarées dans les sections resourcestring du projet ;
  • le fichier fiche .dfm qui stocke les fiches et les autres ressources de l'interface utilisateur graphique (GUI).

En utilisant le projet DLL de ressources créé, RAD Studio peut construire seulement la DLL de ressources qui contient les ressources des fichiers fiche et RC appropriés.

Utilisez l'expert DLL de ressources pour créer une DLL de ressources pour chaque traduction que vous voulez prendre en charge. Chaque DLL de ressources doit avoir une extension de nom de fichier spécifique à la localisation cible. Si vous utilisez l'expert DLL de ressources, il gère cela à votre place. Sinon, utilisez les valeurs ISO 639x à trois caractères indiquées dans le tableau de la rubrique "Noms Langue-Culture, codes et valeurs ISO" pour spécifier une extension basée sur la langue.

/* 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);

Voir aussi