Domanda

Comprendo che l'approccio raccomandato alla localizzazione in WPF è utilizzare lo strumento LocBaml per estrarre gli elementi localizzabili in es. un file CSV, tradurre gli elementi nella lingua desiderata e rigenerare un nuovo assieme satellitare da questo file CSV. Tuttavia, dai miei esperimenti questo sembra essere in conflitto con la generazione di assiemi satellitari da file resources.resx poiché nessuno dei due combina le risorse nel singolo file di risorse, ma sostituisce semplicemente qualsiasi assembly satellite esistente.

Esiste un approccio raccomandato (o ancora meglio, uno strumento esistente) per fare un "unire" dell'output da LocBaml / generate e l'output dell'esecuzione di resgen su un file resources.resx (che per impostazione predefinita viene eseguito da VS su build). C'è qualcuno là fuori che affronta gli stessi problemi?

È stato utile?

Soluzione

Devi farlo manualmente generando .resource da LocBaml e quindi unendo le risorse Resx e BAML usando il linker Assembly.

Il processo è simile al seguente:

LocBaml.exe /generate ..\obj\WpfLocalization.g.en-US.resources 
            /trans:Res\de.csv /out:de /culture:de

REM Combine resource files w/ Assembly Linker
al /template:WpfLocalization.exe 
   /embed:de\WpfLocalization.g.de.resources 
   /embed:..\..\obj\WpfLocalization.Properties.Resources.de.resources   
   /culture:de  /out:de\WpfLocalization.resources.dll

(tutto su una riga in un file batch).

Puoi inserire quanto sopra in un file batch personalizzato per il tuo progetto. Ricorda che LocBaml deve trovarsi nella stessa cartella dei tuoi file di output. Puoi aggiungerlo come attività post build.

Altri suggerimenti

Preferisco usare il progetto WPF Localization Extension che puoi trovare su codeplex per localizzare il mio progetto WPF.

Ti consente di utilizzare lo stesso approccio di WinForms ed è molto più facile da usare di LocBaml.

Ho cercato su Google un po 'e ho trovato questa pagina descrivendo alcuni modi per usare LocBaml che esclude una descrizione molto dettagliata su come unire le risorse generate.resx e locbaml in un singolo file (usando al.exe).

Localizzare WPF utilizzando LocBaml

La pagina descrive tre modi per usare LocBaml e stavo cercando l'ultimo passaggio dell'approccio 3. Un sacco di cose buone in quell'articolo tra l'altro

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top