Page 1 of 1

gettext für Übersetzungen in KH möglich?

Posted: Sat 15. Jan 2022, 04:18
by PadMan
Hallo,
ich wollte zur Sprachübersetzung gettext verwenden, das Modul ist aktiviert (PHP 8), aber mit den vielen Beispielen aus dem Netz wird keine Sprache aus den Sprachdateien übersetzt bzw. verarbeitet und es erscheint lediglich nur der Text aus der PHP-Datei, der aber eigentlich durch die Sprachdatei ersetzt sein müsste und die Angaben stimmen laut der Anleitung für die Übersetzung überein.

Auch mit der Sucherei im Netz konnte ich nichts finden und bei einigen Beispielvideos klappt aber das gezeigte Beispiel :roll:

Ich weiß nicht mehr weiter, oder ist gettext inzwischen veraltet oder gab es in PHP viele Änderungen, dass gettext mit dem PHP-Code nicht mehr funktioniert, wobei keine Fehlermeldung auftritt, nicht mal in den Logs?

Oder hätte eventuell jemand einen funktionierenden PHP-Code, der wohl in KeyHelp funktionieren könnte?

Ich würde sehr gerne Übersetzungen mit gettext machen, bisher waren es nur PHP-Dateien...

Verwendetes Beispiel aus youtu.be/ggvFQdX2qGE aber auch andere die ähnlich sind...

Ein Neustart brachten ebenfalls keine Änderungen...

Zum System:
  • aktuelles KH, Debian 11, PHP 8.1.1 (Hoster, produktiv)
  • aktuelles KH, Debian 11, PHP 8.1.1 (lokal und frisch installiert, Test)

Re: gettext für Übersetzungen in KH möglich?

Posted: Mon 17. Jan 2022, 09:32
by Alexander
Hallo,

damit die PHP-Erweiterung gettext funktioniert...

1) ... müssen die Locales zunächst auf dem Server vorhanden sein

Code: Select all

locales -a
2) ... weiterhin muss im Code die gewünschte locale explizit gesetzt sein

Code: Select all

setlocale(LC_ALL, 'en_US.utf8');
putenv('LANGUAGE=en_US');
3) ... sollte in der .po Datei dann oben bei den Meta-Daten auch die die Zeile mit der Sprache auftauchen, z.B.:

Code: Select all

"Language: en_US\n"

Re: gettext für Übersetzungen in KH möglich?  [GELÖST]

Posted: Fri 21. Jan 2022, 02:47
by PadMan
Vielen Dank für die Hilfe :)

Einen Riesen großen Dank auch an space2place 8-) weil er mir auch einen großen Denkanstoß gab, denn auf dem Betriebssystem (Debian) müssen auch die Sprachpakete installiert sein, fehlen diese, klappt es mit gettext auch nicht.

Sprachpakete installieren
Im Netz fand ich folgende Abhilfe, hierdurch werden alle verfügbaren Sprachen auf einmal installiert 8-)

Natürlich könnte man jedes Sprachpaket einzeln installierten, aber wenn zum Beispiel ein Kunde in einer Sprache übersetzen möchte, die im System nicht installiert ist, müsste diese nachinstalliert werden. Mit einer vollständigen Installation der Sprachen erspart man sich das Nachinstallieren und hat genug "Reserven" für eine Übersetzung ;)

Code: Select all

apt install locales-all
Alle installierten Sprachen anzeigen (Debian 11)

Code: Select all

localectl list-locales
Beispielausgabe (gekürzt)

Code: Select all

aa_DJ.UTF-8
af_ZA.UTF-8
an_ES.UTF-8
[...]
cy_GB.UTF-8
da_DK.UTF-8
de_AT.UTF-8
de_BE.UTF-8
de_CH.UTF-8
de_DE.UTF-8
de_IT.UTF-8
de_LI.UTF-8
de_LU.UTF-8
el_CY.UTF-8
[...]
zh_SG.UTF-8
zh_TW.UTF-8
zu_ZA.UTF-8
Anzahl der installierten Sprachen anzeigen

Code: Select all

localectl list-locales | wc -l
Beispielausgabe

Code: Select all

151

Re: gettext für Übersetzungen in KH möglich?

Posted: Mon 24. Jan 2022, 08:34
by Alexander
Jap, das meinte ich mit meinem Punkt 1 ;).