.net - risorse - visual studio 2017 resgen



C'è un modo per generare automaticamente i file resx corrispondenti per la localizzazione delle stringhe in.NET? (2)

L'unica cosa che so è creare manualmente il file di risorse, quindi andare al file di risorse originale e copiare le proprietà e i valori per le risorse di testo nel file appena creato. Questo ha anche il vantaggio che il traduttore sa esattamente cosa deve tradurre.

Usando questa risposta , ho creato un'app campione localizzata. La mia domanda è, c'è un modo per fare in modo che Visual Studio generi automaticamente il file strings.fr.resx con le stesse stringhe (lo stesso nome cioè con valori vuoti), quindi qualcuno che conosce il francese può semplicemente riempirli, o io devo effettivamente creare manualmente la risorsa per ogni lingua che voglio supportare?


Answer #1

Puoi farlo con uno strumento di terze parti: Zeta Resource Editor

  1. Una volta aperto Zeta Resource Editor (ZRE), devi creare un nuovo progetto ZRE.
  2. Quindi devi aggiungere i tuoi file di risorse esistenti nel progetto.
    • Per fare ciò automaticamente per tutti i file di risorse:
      1. Fare clic sulla scheda "Gruppi di file e tag"
      2. Fai clic su "Aggiungi automaticamente più gruppi di file al progetto" e segui le istruzioni.
  3. Per aggiungere la nuova lingua:
    1. Evidenzia il nodo appropriato nella struttura "File di progetto".
    2. Fare clic sulla scheda "Gruppi di file e tag"
    3. Clicca su "Crea nuovo file" e segui le istruzioni.
    4. Assicurati di includere il file resex appena creato nel tuo progetto Visual Studio.

La cosa bella dell'utilizzo di questo strumento è che puoi anche usarlo per esportare / importare le tue traduzioni in un foglio di calcolo per le traduzioni. (Puoi farlo dalla scheda "Start")

In alternativa, potresti scrivere il tuo piccolo programma per farlo. Il cuore del programma è questo:

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();
}




localization