Approcci di internazionalizzazione del sito

0

Attualmente sto lavorando a un progetto che il cliente vuole consegnare a diversi paesi.

L'applicazione è un sito Web.

Abbiamo iniziato a utilizzare i file di risorse per modificare il testo che l'utente visualizza visitando le pagine in base alle loro posizioni. Ma questo non è abbastanza.

Nella versione inglese del sito abbiamo una pagina che indica "pagina x di y". Nella versione cinese del sito, non è sufficiente fare "x y"

La sintassi per la lingua non corrisponde ai segnaposto creati per la lingua inglese.

L'unica altra opzione a cui posso pensare è di avere un sito completamente separato, con contenuti diversi.

Ci sono altre opzioni per risolvere questo problema?

    
posta Jamez 21.05.2014 - 18:20
fonte

2 risposte

1

Per i18n, hai diverse soluzioni di complessità crescente.

In primo luogo, memorizzare un modello specifico della lingua in un file delle proprietà. Per esempio. messages.en può memorizzare la proprietà. Funziona per un testo breve e semplice.

pagination.text = [X] of [Y]

Ma messages.zh potrebbe memorizzare

pagination.text = [X of Y]

In secondo luogo, almeno nel mondo Java, la modifica di una modifica del file delle proprietà indica una nuova distribuzione. Gli attributi di stringa possono anche essere internazionalizzati nel database.

Supponi di avere un prodotto mappato direttamente su una tabella di prodotto. Diciamo che abbiamo la seguente API per supportare l'internazionalizzazione del nome di un prodotto.

class Product
   def id: Long
   def name(language: Language): String

class Language
   // e.g. 'en' for English, 'zh' for Chinese
   def isocode: String

   def name: String

   // ordered list of isodcode s.t. if the internationalized attribute
   // does not exist for this language, it tries each language in this list in order.
   def fallbackLanguage: List[String] 

   // default language for entire system. Use this language if all else fails
   def isDefault: Boolean

L'attributo name sulla tabella del prodotto richiederebbe una tabella uno-a-molti unita alla tabella delle lingue.

Di solito aiuta a fornire un'interfaccia di amministrazione in modo che gli utenti aziendali possano apportare modifiche a queste entità centrali per conto proprio.

Successivamente, potrebbe essere necessario aggiungere valuta, paese e regione (ad es. California, provincia di Wuhan), come oggetto di prima classe tanto quanto la lingua, in modo che il sistema possa localizzare le regole di business specifiche applicabili a una regione specifica . Per continuare con il mio esempio di prodotto, i prezzi in Cina non saranno gli stessi degli Stati Uniti, semplicemente perché la valuta è diversa. Ci si può aspettare che i clienti cinesi paghino solo in renminbi. E i clienti statunitensi pagano solo in dollari USA.

Infine, un motivo per cui la stessa funzionalità globale potrebbe dover essere un sistema separato è che le regole aziendali in diversi paesi differiscono. Le tasse negli Stati Uniti non sono le stesse delle tasse in Cina. Il catalogo dei prodotti può differire a causa di differenti aspetti di marketing. Pertanto, potrebbe avere senso che il team cinese del cliente abbia la proprietà sul proprio sito, al contrario della squadra di lingua inglese del proprio cliente in un paese di lingua inglese.

    
risposta data 01.08.2014 - 23:23
fonte
0

Dipende dai tuoi strumenti di programmazione, dal momento che alcuni strumenti abilitano la cultura del progetto che ti consente di cambiare design di conseguenza. Se stai usando ASP.NET puoi dare un'occhiata a queste informazioni link

Se stai usando PHP / Phyton, devi preparare tutte le parole, quindi rilevare la lingua dell'utente. Infine, se c'è una richiesta, l'applicazione deve comporre correttamente la pagina.

    
risposta data 21.05.2014 - 18:41
fonte

Leggi altre domande sui tag