Erweiterung des u5CMS auf 5 Sprachen
u5CMS (github → u5cms) basiert auf PHP8.1 und MariaDB und es unterstützt zurzeit 3 Sprachen. Die Sprachabbildung ist nicht normalisiert, in den Tabellen gibt es für jede Sprache eine Spalte. Daran muss zwingend festgehalten werden. Generell gilt, dass die Erweiterung auf 5 Sprachen absolut konservativ zu erfolgen hat und kein Code-Refactoring stattfinden soll.
Es geht somit in einem ersten Schritt darum, alle betroffenen Tabellen um zwei Sprachen zu erweitern. Bei dieser Gelegenheit sollen die bestehenden Sprachen sogleich in den Tabellen zu Generika umbenannt werden, denn die aktuellen drei Sprachen arbeiten mit den Suffixes _d und _e und _f, diese Suffixes sollen generisch zu _1 und _2 und _3 werden ergo zu ergänzen mit _4 und _5.
Wenn dies in den Tabellen vollzogen ist, muss ein Suchen-und-Ersetzen über sämtlichen bestehenden Code gemacht werden, z. B. jede Stringfundstelle im Code content_d wird zu content_1.
Da in u5CMS-Installationen aus der Datenbank ausführbarer Code kommen kann, muss in der Datei runonce.php auch dieses Renaming (SQL’s Replace) gemacht werden und zwar in der Tabelle resources in den Spalten content_... und in der Tabelle formdata in der Spalte datacsv.
Übersicht der Betroffenen Tabellen und Spalten respektive Stringfundstellen:
Tabelle resources, Spalten content…, title…, desc…, key…, search… (… = je _d, _e, _f respective _1, _2, _3 nach einführend dargestellter Vorbehandlung.
Idem Tabelle resources_log.
Tabelle languages (einige Spalten betroffen, ist selbsterklärend)
Idem Tabellen loginglobals und titlefixum.
Es geht im Weiteren nun Darum, jede Codestelle zu finden, welche auf 5 Sprachen zu erweitern ist; man findet diese Stellen am einfachsten mit der Suche nach «_3».
Folgende Dateien haben bezüglich Sprachen eine hohe Komplexität und müssen sehr genau studiert werden:
u5admin/editor.php
und
u5admin/uploada.php
Es wird empfohlen, die Erweiterung von 5 Sprachen nach den oben ausgeführten Umbenennungen in Code und Tabellen und Erweiterungen der Tabellen mit editor.php zu beginnen.
Zu guter letzt darf nicht vergessen werden, die Dateien u5standard.sql und u5conference.sql neu zu generieren und zu publizieren.