Umgang mit den verschiedenen Sprachsystemen in den einzelnen Versionen¶
Im Laufe der Zeit haben sich über die Versionsreihen unserer Shopsoftware verschiedene Sprachsysteme gebildet. Die auch verschiedener Arten der Pflege bedürfen. In diesem Artikel soll der Umgang mit allen aktuell vorhandenen Sprachsystemen kurz erklärt werden.
Sprachsystem in der Versionsreihe 2.0¶
In dieser Versionsreihe werden Textphrasen aus verschiedenen Quellen bezogen. Die meisten Texte werden als Konstante zur Verfügung gestellt.
Quell-DB-Tabellen:
- gm_lang_files
- gm_lang_files_content
Quell-Ordner:
- lang/<Sprache>/ (mit Unterordnern) für Sprachdateien im alten Format (mit defines)
- lang/<Sprache>/sections/ für Section-Dateien (mit assoziativem Array)
Wo befinden sich die Texte?
- Englische Texte liegen größtenteils in Sprachdateien im alten Format vor
- Einige (neuere) englische Frontend-Texte befinden sich in der DB
- Deutsche Frontend-Texte befinden sich in der DB
- Deutsche Backend-Texte liegen größtenteils in Sprachdateien im alten Format vor
- Einige (neuere) deutsche Backend-Texte befinden sich in der DB
Textänderungen müssen an folgenden Stellen vorgenommen werden:
- Änderungen an Texten in der DB müssen in folgenden Dateien angepasst werden gambio_installer/sql/gm_lang.sql und/oder gambio_installer/sql/gm_lang2.sql
- Änderungen an Texten in der DB müssen außerdem in der Datei gambio_updater/update_2-0-x.php mittels der enthaltenen Klasse LangImporter vorgenommen werden
- Änderungen an Texten in der DB, die einen file_path in der gm_lang_files-Tabelle ohne Dateipfad haben (also nicht "lang/german/modules/payment/cc.php", sondern z.B. "specials"), müssen außerdem in der entsprechenden Section-Datei in lang/<sSrache>/sections/_samples/<Section>.lang.inc.php vorgenommen werden
- Änderungen an Texten in der DB, müssen in einer neuen Datei mit dem Namen __db_updates/<Jahr>-<Monat>-<Tag>_<Stunde>-<Minute>.sql eingetragen werden
- Änderungen an Sprachdateien im alten Format müssen in den Sprachdateien selbst geändert werden
Sprachsystem in der Versionsreihe 2.1¶
In dieser Versionsreihe wurden alle Texte in die Datenbank verlegt. Überladungen sind jedoch dateibasiert möglich. Sprach-Sections im alten Format können nun auch mit Hilfe von Section-Dateien überladen werden. Da die alten Sectionnamen einen Dateipfad beinhalten (z.B. lang/german/modules/payment/cc.php), müssen die Sonderzeichen beim Anlegen einer solchen Sectiondatei ersetzt werden. Dabei müssen alle Slashes ('/') durch zwei Underscores ('__') und der Punkt ('.') durch drei Underscores ('___') ersetzt werden. Jede Sectiondatei benötigt die Dateiendung '.lang.inc.php'. Eine Sectiondatei, die eine Section mit dem Namen 'lang/german/modules/payment/cc.php' überladen soll, muss also den Namen 'lang__german__modules__payment__cc___php.lang.inc.php' haben. Auch der in 2.1 neu erschienene Updater arbeitet mit diesem Dateiformat.
Sprachdateien im alten Format werden aus Gründen der Abwärtskompatibiilität nach wie vor unterstützt. Sections im alten Format, die aus der Datenbank geladen werden, erzeugen auch Konstanten, für jede ihrer Sprachphrasen, wie es in den alten Sprachdateien der Fall war.
Quell-DB-Tabellen:
- language_sections
- language_section_phrases
Wo befinden sich die Texte?
- Alle Texte befinden sich in der DB
Textänderungen müssen an folgenden Stellen vorgenommen werden:
- Änderungen an Texten müssen in folgenden Dateien angepasst werden gambio_installer/sql/gm_lang.sql und/oder gambio_installer/sql/gm_lang[2-6].sql
- Änderungen an Texten müssen in einem neuen Ordner mit dem Namen sections/<Sprache>/<Jahr>-<Monat>-<Tag>_<Stunde>-<Minute>/ im Section-Format hinterlegt werden
- Änderungen an Texten müssen in den Sectiondateien im Ordner lang/<Sprache>/sections/_samples/<Section>.lang.inc.php hinterlegt werden
- Änderungen an Texten müssen im Ordner gambio_updater/updates/<Versionsnummer>/sections/<Sprache>/ im Section-Format hinterlegt werden
Sprachsystem in der Versionsreihe 2.3¶
In dieser Versionsreihe werden alle Textphrasen von der Core-Entwicklung dateibasiert und nur an einer Stelle gepflegt. Es gibt zudem einige Überladungsmöglichkeiten: Sectiondateien im Ordner /lang/<Sprache>/user_sections/ und in der Tabelle language_phrases_edited (erreichbar über "Texte anpassen"). Aus diesen verschiedenen Quellen wird eine Cache-Tabelle language_phrases_cache befüllt, die alle Texte im Shop beinhaltet.
Quell-DB-Tabellen:
- language_phrases_edited
Quell-Ordner:
- lang/<Sprache>/original_sections/ (mit Unterordnern) für alle Sprachdateien im Secion-Format
- lang/<Sprache>/user_sections/ für Überladungen im Section-Format
Wo befinden sich die Texte?
- Alle Original-Texte befinden sich in den Sectiondateien unter lang/<Sprache>/original_sections/
Textänderungen müssen an folgenden Stellen vorgenommen werden:
- Textänderungen müssen von der Entwicklung ausschließlich in den Sectiondateien vorgenommen werden