Avait une question de base WinForm: Par défaut, un fichier resx est créé pour chaque formulaire ou contrôle utilisateur (avec le designer.cs). Cette resx fonctionne bien pour tous les contrôles et le texte ajouté aux contrôles via l'interface utilisateur. Je me demandais si je pouvais utiliser le même resx pour ajouter des chaînes qui doivent être utilisées par programme et en fonction des conditions, attachées aux contrôles? Le resx sera-t-il remplacé dans tous les cas et ces chaînes personnalisées seront supprimées? Quelle est la meilleure pratique à suivre dans ce cas?Utilisation des ressources de formulaire pour les chaînes programmatiques?
Répondre
Les fichiers auto-générés sont remplacés (j'utilise 2005), donc non je n'utiliserais pas le même fichier. Je suggère de créer une zone séparée dans votre projet pour les fichiers .resx comme celui-ci. Habituellement, je crée un .resx par formulaire, correspondant au nom, bien sûr.
Modifier: Here est une réponse plus détaillée que j'ai donnée récemment pour organiser la structure de fichier/dossier lors de la localisation de votre application avec des fichiers .resx.
Il existe un problème étrange avec les ressources de chaîne dans le fichier Resources.resx. Il n'y a aucune manière évidente que j'ai jamais découvert comment créer une nouvelle table de ressource pour un autre langage avec l'IDE. Cela peut être fait à la main si. Procédez comme suit:
- projet + Propriétés, onglet ressources, ajouter les chaînes que vous souhaitez utiliser dans votre programme
- Démarrez l'Explorateur Windows et naviguez dans le dossier de votre Propriétés de projet
- Copiez et collez le Resources.resx fichier
- Renommez-le à la culture que vous voulez utiliser. Par exemple: Resources.fr-FR.resx
- Retour à VS, cliquez sur Afficher tous les fichiers icône dans la fenêtre Explorateur de solutions
- Développez le nœud Propriétés, le nouveau fichier de ressources doit être visible
- droit -cliquez et sélectionnez « Inclure dans le projet »
- sélectionner, dans la fenêtre Propriétés PREF outil = « ResXFileCodeGenerator »
- Vérifiez que Build action est réglé sur « ressource incorporée »
Construisez votre programme. Vous devriez obtenir un nouveau dossier dans le répertoire bin \ Debug de votre projet avec l'assembly satellite, nommé projectname.resources.dll. Cet ensemble de satellites contient à la fois les chaînes localisées et toute ressource localisée des formulaires. Vérifiez que cela fonctionne avec le code comme ceci:
public Form1() {
System.Threading.Thread.CurrentThread.CurrentUICulture =
System.Globalization.CultureInfo.GetCultureInfo("fr-FR");
InitializeComponent();
textBox1.Text = Properties.Resources.String1;
}
Dans votre formulaire, définissez 'Localizable' sur' true', puis modifiez la propriété 'Language'. –
En effet, je n'ai pas trouvé aussi. Le projet ASP.NET a un menu Outils -> Générer un fichier de ressources, mais pas WinForms. Ai-je raison? – abatishchev
btw, est-ce que 'ResXFileCodeGenerator' est vraiment requis? Default .resx a BuildAction = EmbeddedResource, mais a CustomTool vide. – abatishchev
Ou vous pouvez essayer ceci:
Ajouter ce code dans main();
en utilisant System.Resources;
ResXResourceWriter rw = new ResXResourceWriter("Resources.de-DE.resx");
rw.AddResource("String1", "de");
rw.Close();
...
répétition pour plusieurs fichiers
Allez dans le répertoire bin et déplacer le fichier XML (resx) (s) à peut-être le dossier de la propriété.
Passez à l'étape 5-9 ci-dessus dans le post nobugz.
Pete, quel est le poste nobugz dont vous parlez? – bschandramohan
- 1. Gestion des ressources de chaînes Java
- 2. Utilisation des ressources MySQL
- 3. Utilisation des ressources pour la réflexion et les attributs
- 4. Envoyer des messages électroniques programmatiques
- 5. Doit-on stocker des chaînes de format dans les ressources?
- 6. Lire les chaînes de ressources par programme
- 7. Bloquer les sites Web programmatiques
- 8. Utilisation des ressources dans WPF
- 9. Utilisation des images de ressources dans WPF
- 10. Android: Utilisation des ressources de l'application
- 11. Pool d'applications IIS: modification des paramètres programmatiques
- 12. Apparences programmatiques dans Flex
- 13. Localisation ASP.NET - où sont les chaînes de ressources internationales?
- 14. Android: Comment réutiliser les chaînes dans les ressources multilingues
- 15. Utilisation de Firebug pour envoyer des données de formulaire
- 16. FxCop contestant mon utilisation des chaînes de format dans les ressources avec NON-Team System Visual Studio
- 17. Ajout dynamique de chaînes de ressources
- 18. Utilisation des ressources dans Google MapActivity pour Android
- 19. Utilisation de ressources externes protégées
- 20. Python: Echapper des chaînes pour une utilisation en XML
- 21. Utilisation de XML pour stocker des structures de formulaire complexes?
- 22. Où se trouvent les chaînes de ressources SharePoint
- 23. Peut-on combiner des chaînes de ressources android dans de nouvelles chaînes?
- 24. Utilisation des options HTTP pour récupérer des informations sur les ressources REST
- 25. Recherche complète et remplacement des chaînes dans les fichiers source lors de la copie des ressources
- 26. SWFLoaders déclaratifs et programmatiques
- 27. Utilisation de Regex pour générer des chaînes plutôt que de les faire correspondre
- 28. GAE: Utilisation des propriétés pour keys() dans les boîtes ModelChoiceProperty
- 29. Utilisation de Javascript pour soumettre un formulaire
- 30. Emplacement de la chaîne de ressources
Pour ne pas vous décourager, mais vous pourriez être intéressé par ce "hate-rave" (basé sur VS 2003) sur les fichiers ResX: http://www.windojitsu.com/blog/resxsucks.html Espérons que la situation est meilleure maintenant, mais je suis toujours timide de les utiliser directement. – BillW
Pour la "tasse est à moitié plein" vue (?) Peut-être envisager: http://stackoverflow.com/questions/676312/modifying-resx-file-in-c – BillW
Liens intéressants .. Merci de souligner ces BillW – bschandramohan