Domanda

Come devo conservare (e presente) il testo su un sito web destinato per l'uso in tutto il mondo, con diverse lingue?Il contenuto è in gran parte in forma di articoli 500+ parola, anche se ho bisogno di tradurre minuscoli frammenti di testo su ogni pagina (ad esempio "stampa questo articolo" o "torna al menu").

So che ci sono diversi CMS pacchetti di gestire più lingue, ma devo integrare con il nostro ASP esistenti sistemi di troppo, così sto ignorando tali soluzioni.

Una preoccupazione che ho è che Google dovrebbe essere in grado di trovare le pagine, anche per utenti stranieri.Io sono meno preoccupati per problemi con l'elaborazione di date e valute.

Ho paura che, left to my own devices, se mi invento un modo di fare questo lavoro, ma alla fine portare al disastro!Vorrei sapere che soluzioni professionali che hanno effettivamente utilizzato su progetti concreti, non di intentato idee!Grazie molto.


Ho guardato i file RESX, ma erano inadatti per tutti, ma i più banali soluzioni di traduzione (mi dilungherò se qualcuno vuole sapere).

Google mi aiuterà a tradurre il testo, ma non la memorizzazione/presentazione.

Qualcuno ha lavorato su un multi-lingua del progetto che si basavano su di loro proprio codice per la presentazione?


Ogni pensiero su che servono contenuto nei seguenti modi, e quale è il migliore?

(questi non sono veri e propri Url, stavo solo mostrando esempi)

È stato utile?

Soluzione

In primo luogo mettere tutto il codice per tutte le lingue in un dominio - che aiuterà il vostro google-rank.

Abbiamo una cucina completamente multi-lingue di sistema, con localizzazioni memorizzati in un database, ma in cache con l'applicazione web.

Dove vogliamo una localizzazione apparire usiamo:

<%$ Resources: LanguageProvider, Path/To/Localisation %>

Quindi nel nostro sito web.config:

<globalization resourceProviderFactoryType="FactoryClassName, AssemblyName"/>

FactoryClassName quindi implementa ResourceProviderFactory per fornire la dinamica effettiva funzionalità.Le localizzazioni sono memorizzati nel DB con una stringa chiave "Path/To/Localizzazione"

È importante cache localizzata valori - non si vuole avere un sacco di DB ricerche su ogni pagina, e la cache di migliaia di localizzato stringhe senza problemi di prestazioni.

L'utente corrente del browser localizzazione di scegliere quale lingua di servire.

Altri suggerimenti

Si potrebbe desiderare di controllare GNU Gettext progetto - almeno qualcosa da cui partire.

Edito per aggiungere informazioni su progetti di:

Ho lavorato su diversi progetti multilingue utilizzando Gettext tecnologia in diverse tecnologie, tra cui C++/MFC e J2EE/JSP, e ha funzionato tutto bene.Tuttavia, è necessario per scrivere e trovare il proprio codice per visualizzare i dati localizzati di corso.

Se si utilizza .Net, mi consiglia di andare con una o più file di risorse (.resx).C'è un sacco di documentazione su questo su MSDN.

Come con la maggior parte dei generali di programmazione domande, dipende dalle vostre esigenze.

Per il testo statico, vorrei utilizzare i file RESX.Per me, come .Net programmatore, sono facili da usare e l' .Net Framework è un buon supporto per loro.

Per qualsiasi testo dinamico, tendo a conservare tali informazioni nel database, in particolare se il sito manutentore sta per essere un non-sviluppatori.In passato ho usato due approcci, l'aggiunta di una colonna per la lingua e la creazione di voci diverse per le diverse lingue o la creazione di una tabella separata per memorizzare la lingua di un testo specifico.

La tabella per il primo approccio potrebbe essere qualcosa di simile a questo:

Articolo Id | Id Di Lingua | Linguaggio Specifico Articolo Del Testo | Creato Da | Created Date

Questo funziona per le situazioni in cui è possibile creare diverse voci per un determinato articolo e non hai bisogno di tenere tutti i dati associati con le diverse voci di sincronizzazione (ad esempio, un Aggiornamento di data e ora).

L'altro approccio è quello di avere due tabelle separate, una per i non-linguaggio di un testo specifico (id, data, utente, data di aggiornamento, ecc) e un'altra tabella contenente la lingua del testo specifico.Le tabelle potrebbe essere qualcosa di simile a questo:

Prima Tabella:Articolo Id | Creato Da | Data Di Creazione | Aggiornamento Da | Data Di Aggiornamento

Secondo La Tabella:Articolo Id | Id Di Lingua | Linguaggio Specifico Articolo Del Testo

Per me, il problema si riduce a l'aggiornamento non dipende dalla lingua di dati.Se si sta aggiornando i dati quindi mi sento di propendere per la seconda soluzione, altrimenti sarei andato con il primo approccio l'ho vista come più semplice (non si può dimenticare il principio di BACIO).

Se sei solo preoccupato per il contenuto dell'articolo in corso di traduzione, e non hanno bisogno di un completamente integrato opzione, ho usato traduzione di google in passato e funziona alla grande su una scala più piccola.

Splendida domanda.

Ho risolto questo problema per il sito che ho fatto (link nel mio profilo) con una casalinga Python 3 script che converte il modello generale al volo e inserisce una specifica pagina di contenuto linguistico richiesto (o indovinato da Apache da Accept-Language).

E ' stato divertente da quando ho iniziato a imparare Python e scrivere il mio mini-libreria per la creazione di pagine di contenuto.Un difetto è che il nostro hosting non hanno Python 3, ma ho fatto il mio script per generare HTML statico (l'originale era in esame User-agent) e poi caricare il server.Che funziona così lontano e fare una nuova versione in lingua del sito è ora un gioco da ragazzi :)

Il più grande svantaggio di questo metodo è che richiede molto tempo per scrivere le cose da zero.Quindi, se vuoi, mandami linea e ti aiuterà a usare il mio script :)

Come per il formato dell'URL, io uso site.com/content/example.fr poiché questo consente di Apache per eseguire la negoziazione della lingua nel caso in cui qualcuno chiede /content/example e dotato di un browser dire che non gli piace la lingua francese.Quando si esegue questa operazione Apache aggiunge anche .html o qualunque cosa come un bonus.

Così, quando una richiesta è per example e io ho i file

example.fr
example.en
example.vi

Apache procederà automaticamente con example.vi per una persona con la Vietnamita-browser configurato o example.en per una persona con tedesco-browser configurato.Piuttosto utili.

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