Est-il possible de générer automatiquement les fichiers correspondants resx pour la localisation de chaîne dans .NET?

StackOverflow https://stackoverflow.com/questions/2344897

  •  23-09-2019
  •  | 
  •  

Question

En utilisant cette réponse , j'ai créé un échantillon application localisée. Ma question est, est-il un moyen d'avoir Visual Studio généré automatiquement le fichier strings.fr.resx avec les mêmes chaînes (mêmes noms qui, avec des valeurs vides), de sorte que quelqu'un qui connaît le français peut simplement les remplir, ou dois-je ont en fait de créer manuellement la ressource pour chaque langue que je veux soutenir?

Était-ce utile?

La solution

Vous pouvez le faire avec un outil 3ème partie: Zeta Resource Editor

  1. Une fois que vous ouvrez Zeta Resource Editor (ZRE), vous devez créer une nouvelle ZRE projet.
  2. Ensuite, vous devez ajouter votre les fichiers de ressources existantes dans le ce projet.
    • Pour faire cela automatiquement pour tous les fichiers de ressources:
      1. Cliquez sur l'onglet « Groupes de fichiers et balises »
      2. Cliquez sur « Ajouter automatiquement plusieurs groupes de fichiers au projet » et suivez les instructions.
  3. Pour ajouter la nouvelle langue:
    1. Sélectionnez le noeud approprié dans l'arborescence « fichiers de projet ».
    2. Cliquez sur l'onglet « Groupes de fichiers et balises »
    3. Cliquez sur "Créer un nouveau fichier" et suivez les instructions.
    4. Assurez-vous d'inclure le fichier RESEX nouvellement créé dans votre projet Visual Studio.

Ce qui est bien sur l'utilisation de cet outil est que vous pouvez également l'utiliser pour exporter / importer vos traductions vers une feuille de calcul pour les traductions. (Vous pouvez le faire à partir de l'onglet « Démarrer »)


Vous pouvez écrire votre propre petit programme pour le faire. Le cœur du programme est le suivant:

using( ResXResourceReader reader = new ResXResourceReader( resourceFileName ) )
using( ResXResourceWriter writer = new ResXResourceWriter( newResourceFileName ) )
{
    foreach( DictionaryEntry entry in reader )
    {
        writer.AddResource( entry.Key.ToString(), "" );
    }

    writer.Generate();
    writer.Close();
}

Autres conseils

La seule chose que je sais est de créer le fichier de ressources puis manuellement et accéder au fichier de ressources d'origine et copier les propriétés et les valeurs des ressources de texte dans le fichier nouvellement créé. Cela a aussi l'avantage que la traduire sait exactement ce qu'elle doit traduire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top