2009-01-19 8 views
2

Je suis, faute d'un meilleur mot, un novice aux fichiers de localisation et de ressources. J'essaie de localiser une application sur laquelle je travaille et je veux le faire en utilisant des fichiers de ressources et des assemblages de satellites, mais je n'arrive pas à comprendre comment le faire correctement. Voici ce que j'ai jusqu'à présent:Fichiers de ressources et assemblages de satellites

Dans mon répertoire du projet: J'ai créé les fichiers LanguageText.resx et LanguageText.nl.resx

Dans mon projet/bin: J'ai créé le dossier « nl »

Dans mon répertoire projet/bin/nl: J'ai utilisé ResGen.exe pour créer le fichier LanguageText.nl.resources à partir du fichier LanguageText.nl.resx, puis j'ai utilisé AL.exe pour créer le fichier project.resources.dll. Ce fichier .dll se trouve dans le dossier bin/nl. Il s'est bien déroulé et maintenant j'ai aussi nl/project.resources.dll dans mon dossier projet/bin/debug.

Mon problème est que je n'ai apparemment pas de fichier ou de ressource de langage neutre intégré dans mon programme, mais je ne trouve aucune information sur la façon de le faire. La seule information que je peux trouver sur l'intégration des ressources de cette manière est liée aux assemblages satellites. Comment intégrer la ressource en langage neutre?

Toute aide ou direction est appréciée.

Merci, Mike

Répondre

0

Les ressources de secours doivent être placés dans LanguageText.dll dans le dossier bin. Vous pouvez également ajouter un attribut System.Resources.NeutralResourcesLanguageAttribute à l'assembly LanguageText.dll, et spécifier une culture par défaut utilisée si la culture est invariante ou s'il n'y a pas de correspondance pour une culture donnée.

Générez l'assembly nl, appelez-le LanguageText.resources.dll, placez-le dans le dossier bin/nl.

Vérifiez que cela fonctionne, en définissant la culture sur votre thread et utilisez un ResourceManager pour extraire des ressources.

2

Vous pouvez le faire avec l'aide de AssemblyInfo. Aller à AssemblyInfo.cs et ajoutez l'attribut

[assembly: NeutralResourcesLanguageAttribute("en-US",UltimateResourceFallbackLocation.Satellite)] 

Assurez-vous d'ajouter using using System.Resources; en haut. La ligne ci-dessus indique que le langage de ressources neutre de votre assembly est 'en-US' et qu'il s'agit d'un assembly Satellite.

Questions connexes