2010-05-25 1 views
6

Ich habe eine Website, die derzeit alle auf Englisch ist. Es ist ein Online-Spiel, also hat es eine Reihe von verschiedenen Seiten mit statischem Text, sowie eine Menge Inhalt in einer Datenbank.Wie werden dynamische Standortlokalisierungen behandelt?

Ich versuche, global zu erweitern und bin bereit, einige Lokalisierungen der Website freizugeben. Ich bin mir jedoch nicht sicher, wie ich das am besten einrichten soll, damit es für mich am einfachsten zu verwalten und für Benutzer am einfachsten zu verwenden ist.

Soll ich die übersetzten Texte in einer Datenbank speichern, oder sollte dies auf eine völlig andere Art geschehen? Wenn es überhaupt darauf ankommt, ist die Seite in PHP geschrieben und benutzt MySQL.

Antwort

1

In meiner Erfahrung die Übersetzungen alles manuell tun kann ein wahrer Albtraum sein! % -)

ich denke, Sie müssen Ihre Übersetzung auf die Dashboard-Befehls-Website wie das Navigationsmenü und alle anderen Benutzerprofileinstellungen und Schaltflächen um die Website und solche Dinge konzentrieren!

dies tun, indem Sie in Ihren Seiten einschließlich Datei wie folgt aus:

include "./includes/languages/english.php"; 

in einer Datei namens ex .: english.php wie diese ex setzen

define('LAN_USER_LOGIN' , 'User Logged In'); 
define('LAN_USER_LOGOUT' , 'User Logged Out'); 
..... 

und so weiter italian.php, spanisch .php, french.php ect ... und in jeder dieser Dateien haben die gleichen definierten Variablen aber übersetzt!

dann können Sie Benutzer aus einer Liste von Ländern wählen lassen! viele Möglichkeiten, dies zu tun, BTW!

eine Art und Weise kann durch Sitzung

// if the user haven't selected a language before!! 
if (empty($_SESSION['language'])) { 
$_SESSION['language'] = "EN"; 
} else { 
$_SESSION['language'] = YOUR_LANG ; 
} 

für alle anderen Inhalte mit seinem i empfehle Tools zu verwenden, wie

http://code.google.com/intl/it-IT/apis/ajaxlanguage/


HINWEIS: i empfehlen Sie verwenden kein Auto-Erkennungssystem , weil es zu einer sehr nervigen Erfahrung führen kann, besonders wenn Sie die Seite aus einem anderen Land anschauen !! oder nur wollen Sie wählen, lassen Sie den Benutzer kurz die endgültige Wahl! ;-)

Verwenden Sie die automatische Erkennung für die automatische Vervollständigung Registrierung Zweck! ;-)

hoffe diese hilfe!

1

Ich würde vorschlagen, einen zentralisierten Speicher zu verwenden (dies könnte eine MySQL-Datenbanktabelle sein, mit einer Spalte "Sprache", die speichert, in welcher Sprache die Übersetzung ist). Dies können auch XML-Dateien sein, eine Datei pro Sprache.

Wenn Sie noch mehr möglich Dateiformate suchen, in dieser Dokumentation Seite von Zend Framework aussehen: http://framework.zend.com/manual/en/zend.translate.adapter.html

Für die Übersetzung würde ich entweder eine benutzerdefinierte Funktion oder benutzerdefinierte Klasse erstellen, wenn Sie nicht einen Rahmen verwenden das beinhaltet bereits die Übersetzung.

Eine weitere Option ist die Verwendung von Standard-PHP-Funktionen. Suchen Sie einfach nach der Funktion "_()". Ich habe jedoch nicht mit diesen Funktionen gearbeitet und habe sie gerade erst gefunden, nicht sicher, wie gut sie funktionieren.

1

Ich würde empfehlen, gettext mit einem Framework zu verwenden, das integriert (z. B. Zend) und speichern im .po-Dateiformat. Das .po-Format hat Editoren, die die Übersetzung fair machen. Es ist auch ziemlich portabel (daher der Name) und könnte mit dir auf andere Spiele übertragen werden.

1

Wir verwenden einen gemischten Ansatz mit dem Zend-Framework. Der Seiteninhalt (WYSIWYG-Seiten) wird in der DB gespeichert (ein Datensatz pro Sprache, nicht lokalisierte Daten werden von lokalisierten Daten getrennt und in verschiedenen Tabellen gespeichert, die verknüpft sind), Feldbezeichnungen und Standardfehler-/Rückmeldungsnachrichten werden jedoch in XML oder gespeichert gettext-Dateien (eine Datei pro Sprache).

1

Wir verwenden einen gemischten Ansatz:

  • Datenbank für Übersetzungen Seiten CMS
  • XML für Wort/Satz Übersetzungen (statische Texte, Etiketten, Fehlermeldungen, etc.)

Für Datenbank wir Im Allgemeinen verwenden Sie 2 Tabellen: 1 für Hauptinhalt, andere Form Übersetzungen, so dass wir wählen können, was zu tun ist, wenn Übersetzung nicht verfügbar ist: Inhalt in seiner Originalsprache anzeigen oder ausblenden.

Für XML verwenden wir XLIFF Format, das leicht von vielen Frameworks unterstützt werden kann und Software