7
votes

Former des ressources Utilisation pour les chaînes programmatiques?

avait une question de base Winform: Par défaut, un fichier RESX est créé pour chaque formulaire ou contrôle utilisateur (ainsi que le concepteur.cs). Ce résex fonctionne bien pour toutes les commandes et le texte ajouté aux commandes via l'interface utilisateur.

Je me demandais si je pouvais utiliser le même résex pour ajouter des chaînes qui doivent être utilisées de manière programmatique et basée sur des conditions, attachées aux contrôles? Le RESX sera-t-il remplacé dans tous les cas et ces chaînes personnalisées seront-elles supprimées? Quelle est la meilleure pratique à suivre dans ce cas?


3 commentaires

Ne pas vous décourager, mais vous pourriez être intéressé par cette "rave haine" (basée sur VS 2003) sur les fichiers RESX: Windojitsu.com/blog/resxsucks.html Espérons que la situation est meilleure maintenant, mais je suis toujours timide de les utiliser directement.


Pour la vue "Coupe est à moitié plein" (?) On considère peut-être: Stackoverflow.com/questions/676312/Modification-Resx-file-in-c


Liens intéressants .. Merci d'avoir souligné ces factures


3 Réponses :


3
votes

Il y a un problème étrange avec les ressources de chaîne dans le fichier RESOURSE.RESX. Il n'y a pas de moyen évident que j'ai jamais découvert comment créer une nouvelle table de ressources pour une autre langue avec l'IDE. Cela peut être fait à la main cependant. Suivez ces étapes:

  1. Projet + Propriétés, onglet Ressources, Ajouter les cordes que vous voulez utiliser dans Votre programme
  2. Démarrer l'Explorateur Windows et naviguer au dossier Propriétés de votre projet
  3. copier et coller les ressources.RESX Fichier
  4. renommez-le à la culture que vous voulez utiliser. Par example: Ressources.fr-fr.resx
  5. Retour à VS, cliquez sur l'afficher tous les fichiers icône dans la fenêtre de la solution exploratrice
  6. Développez le nœud de propriétés, le nouveau Le fichier de ressources doit être visible
  7. cliquez avec le bouton droit de la souris et sélectionnez "Inclure dans le projet "
  8. Sélectionnez-le, dans la fenêtre Propriétés Définir l'outil personnalisé = "RESXFILECODEGENERATOR"
  9. Vérifiez que la construction d'action est définie sur "Ressource intégrée"

    Construisez votre programme. Vous devriez obtenir un nouveau dossier dans le répertoire bin \ debug de votre projet avec l'assemblage satellite, nommé projetName.resources.dll. Cet ensemble satellite contient à la fois les chaînes localisées et toute ressource localisée des formulaires. Test du fait que cela fonctionne avec le code comme celui-ci: xxx


3 commentaires

Sur votre formulaire, définissez localisable sur true , puis modifier la propriété langue .


En effet je n'ai pas encore trouvé aussi. Le projet ASP.NET contient des outils de menu -> Générez un fichier de ressources, mais WinForms ne le fait pas. Ai-je raison?


BTW, est resxfilecodeGenerator vraiment requis? Par défaut .resx a une buildaction = intégréeResource, mais a CustomTool vide.



1
votes

ou vous pouvez essayer ceci:

Ajouter ce code en Main (); p>

Utilisation de System.Resources; P>

ResXResourceWriter rw = new ResXResourceWriter("Resources.de-DE.resx");
rw.AddResource("String1", "de");
rw.Close();
...


1 commentaires

Pete, quel est le message Nobugz vous parlez de?



2
votes

Les personnes générées automatiquement sont écrasées (j'utilise 2005), donc non je n'utiliserais pas le même fichier. Je suggérerais de créer une zone distincte dans votre projet pour des fichiers .resx comme celui-ci. Habituellement, je crée un .resx par forme, correspondant au nom, bien sûr.

éditer: ici est une réponse plus détaillée que j'ai donnée récemment pour organiser le fichier / Structure de dossiers lors de la localisation de votre application avec des fichiers .resx.


0 commentaires