2010-04-06 2 views
6

Abbiamo bisogno che le nostre app siano tradotte in altre lingue. Ciò comporta la ridenominazione delle proprietà .text dei nostri controlli visibili e di altri valori letterali che si trovano nelle nostre app in qualsiasi lingua sia necessario tradurre.Esiste un approccio best-practice per l'internazionalizzazione di un'applicazione?

È qualcosa che può essere facilmente realizzato con i file .resx? Stavo pensando di creare una chiave/lista valori resx master in cui la chiave sarebbe il nome completo del controllo/variabile/costante ecc. E quindi refactoring le nostre app per cercare in questo file per ottenere i loro valori basati sul cultureinfo trovato a tempo di esecuzione?

Esiste un approccio standard o più semplice a questo problema?

+0

Qual è la struttura della tua app? Modulo web, windows form, wpf, silverlight? –

+0

3.5 winform app –

risposta

1

C'è un bel po 'di risorse per questo:

MSDN guide per le applicazioni ASP.NET.
Code Project example per applicazioni WPF.

Si ha ragione nel ritenere che ciò possa essere ottenuto mediante l'uso di file .resx. Fondamentalmente si crea il file .resx per ogni lingua che si desidera supportare e se si assegna un nome basato sul locale (EN-US, DE-DE, ecc.), Esso viene prelevato automaticamente.

3

Dai un'occhiata a FairlyLocal quando ne hai la possibilità. È una libreria che ti permette di usare i18n usando GetText, permettendoti così di seguire le best practice del resto del settore piuttosto che le cose .resx che MS cerca di imporre.

+0

Cura da elaborare? Non sono sicuro di cosa non funzioni con il formato .resx. –

+1

Non è buono come l'alternativa. Ogni altra tecnologia utilizza GetText, per una buona ragione. È semplice e diretto. .resx è tutto tranne. Maggiori informazioni qui: http://expatsoftware.com/articles/2010/03/why-internationalization-is-throplyly.html –

+0

Grazie per il collegamento. Il mio negozio precedente usava uno schema personalizzato e non ho mai capito perché. Off a leggere ... –