Gibt es eigentlich irgend einen Trick, mit dem man die i18n("String zum Übersetzen"); in der Datenbank speichern kann, so dass dieser vom System auch verwendet werden kann?
Ziel wäre es, dass ich nur die Orginal-Sprachversion direkt in der DB abgelegt habe (z.B. Inhaltsfelder einer DB, die Spaltenüberschriften einer Tabelle nutzen). Die anderen Sprachen sollten dann über das i18n erfolgen.
Die Verwendung sollte vorwiegend für ein Plugin gelten, so dass die Übersetzungen dann auch im Locales Ordner abgelegt sind.
Bin gespannt, ob da schon jemand einen Ansatz hat.
i18n in der DB?
i18n in der DB?
Could I help you... you can help me... buy me a coffee ☕. (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: i18n in der DB?
Hallo,
Ortwin
- i18n benötigt grundsätzlich keine DB, macht IMO auch keinen Sinn
- Der anzuzeigende String wird direkt der i18n-Funktion übergeben. Findet die localize-Funktion keine Übersetzung in der gewünschten Sprache so wird der in der i18n-Funktion angegebene String angezeigt.
- Zum Übersetzen nimmt man Tools wie z.B. Po-Edit und legt die Dateien in entsprechende LC_MESSAGES Ordner.
- Im Plugin kann man eine eigene Sprach-Domain, mit eigenem Pfad zu den Sprachdateien, setzen, so dass ein Plugin unabhängig von den locale-Dateien von Contenido eigene Übersetzungen erhält.
- In Contenido 4.8 gibt/gab es einen "Bug" bei dem die Übersetzungen ausschließlich aus den po-Dateien, und nicht aus den generierten/umgewandelten mo-Dateien, genommen wurde. Ob der inzwischen behoben ist weiß ich nicht.
- Bei mi18n in Modulen verhält es sich ähnlich, es wird der Text der in der Funktion angegeben ist angezeigt solange keine Übersetzung in der aufgerufenen Sprache gefunden wird. Hier werden aber in der 4.8er die Übersetzungen in der DB vorgehalten. In der 4.9er hat sich da (leider) ein wenig was geändert.
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Re: i18n in der DB?
Danke für dein Feedback.
Die Punkte die du erwähnst sind mir alle bekannt. Meine Frage zielt in eine andere Richtung.
Wenn ich z.B. ein dynamisches Modul habe, in dem ich z.B. über eine Art Formular-Generator eine Tabelle generieren kann, möchte ich z.B. gerne, dass die Spaltenköpfe so in der DB gespeichert werden, dass ich diese über ein solches lokales Sprachfile umbenennen kann.
Hintergrund ist dieser: Wenn ich eine solche Spalte erzeuge:
Name | Strasse | Hausnummer |
müsste ich bei Nutzung von Mehrsprachigkeit hier eine korrespondierende Tabelle erzeugen, wo dann die anderen Übersetzungen enthalten sind, die dann auch je nach Sprache ausgegeben werden.
Wäre es jedoch möglich, diese Beschreibungen als i18n so in der DB abzulegen, dass die Übersetzung weiter über locales erfolgt, könnte man es sich sparen die Mehrsprachigkeit in eigenen Tabellen abbilden zu müssen.
Die Punkte die du erwähnst sind mir alle bekannt. Meine Frage zielt in eine andere Richtung.
Wenn ich z.B. ein dynamisches Modul habe, in dem ich z.B. über eine Art Formular-Generator eine Tabelle generieren kann, möchte ich z.B. gerne, dass die Spaltenköpfe so in der DB gespeichert werden, dass ich diese über ein solches lokales Sprachfile umbenennen kann.
Hintergrund ist dieser: Wenn ich eine solche Spalte erzeuge:
Name | Strasse | Hausnummer |
müsste ich bei Nutzung von Mehrsprachigkeit hier eine korrespondierende Tabelle erzeugen, wo dann die anderen Übersetzungen enthalten sind, die dann auch je nach Sprache ausgegeben werden.
Wäre es jedoch möglich, diese Beschreibungen als i18n so in der DB abzulegen, dass die Übersetzung weiter über locales erfolgt, könnte man es sich sparen die Mehrsprachigkeit in eigenen Tabellen abbilden zu müssen.
Could I help you... you can help me... buy me a coffee ☕. (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: i18n in der DB?
Hallo,
nein, müsstest du nicht. Entweder du übergibst die Spaltennamen direkt der Übersetzungsfunktion, dann musst du die Bezeichner aber händisch in der po-/pot-Datei ergänzen, oder du nimmst ein korrespondierendes Array mit den i18n-Strings.
Bei der 2. Variante kannst du gleich die korrekte Übersetzung vorgeben oder, so wie ich es mache, grundsätzlich alles in Englisch angeben.
Gruß aus Franken
Ortwin
nein, müsstest du nicht. Entweder du übergibst die Spaltennamen direkt der Übersetzungsfunktion, dann musst du die Bezeichner aber händisch in der po-/pot-Datei ergänzen, oder du nimmst ein korrespondierendes Array mit den i18n-Strings.
Code: Alles auswählen
$translate = array(
"feldname" => i18n("feldname"),
...
);
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
AW: i18n in der DB?
Danke für dein Feedback. Da hast du mich auf eine Idee gebracht. Ich kann ja einfach ein kleines Script schreiben dass via cron aufgerufen wird und die spaltennamen in eine datei im Pluginordner ablegt. Technisch keine Funktion,praktisch nur damt der .mo parser die findet und erfassen kann.
Gesendet von meinem GT-I9003 mit Tapatalk 2
Gesendet von meinem GT-I9003 mit Tapatalk 2
Could I help you... you can help me... buy me a coffee ☕. (vielen ❤ Dank an: Seelauer, Peanut, fauxxami )
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType
xstable.com: - HighSpeed Hosting, Domains, DomainReselling, Linux-Administration
suther.de: - App-Programierung, High-Performance-Webpages, MicroServices, API-Anbindungen & Erstellung
Software... ein Blick wert: GoogleCalender Eventlist, xst_dynamic_contentType