Ankündigung

Einklappen
Keine Ankündigung bisher.

Mehrsprachigkeit

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mehrsprachigkeit

    Hallo,

    ich habe bei einigen CMS System gesehen, daß man dort einfach eine PHP Funktion aufrufen kann ala $cms->ausgabe("Hallo Welt") und man kann dann über eine Backend-Funktion die Übersetzung starten, hat dort dann in einer Spalte "Hallo Welt" stehen und muß z.B. bei English nur noch "Hello World" eintragen und speichern.

    Wie funktioniert sowas? Woher weiss das CMS, an welcher Stelle im Skript "Hallo Welt" ausgegeben wird, so dass eine Übersetzung ins Englische nur an dieser Stelle ersetzt wird?

    Ich möchte nämlich nicht ständig meinen Programmierfluss unterbrechen und erst irgendwo einen Datenbankeintrag/Dateieintrag erstellen, nur um mal eben einen mehrsprachigen Text auszugeben.

    Gibt es sowas als fertiges Framework? Also für den ganzen Mehrsprachigkeit/Unicode Bereich.

    Danke,
    root66

  • #2
    Generell läuft sowas unter dem Begriff i18n (InternationalisatioN).

    PHP hat nur gettext () bzw. _() zu bieten, die Pflege der Sprachdatei ist aber etwas aufwendig.

    Kommentar


    • #3
      @nikosh

      Ist das die Variante, bei der man die Sprachdateien "compilieren" muß, die also dann in einer Binärversion vorliegen?

      Kommentar


      • #4
        Genau. Ist ein sprachübergreifendes Format: GNU gettext – Wikipedia

        Kein Pro-Problem
        [MOD: Verschoben]

        Kommentar


        • #5
          Die Funktion ausgabe() muss in der Datenbank nachschauen, ob eine Uebersetzung fuer den Text im 1. Parameter vorliegt. Wenn ja ausliefern, wenn nein in die Datenbank einfuegen. Dann kannst du ueber dein Backend alle Texte auslesen und uebersetzen. Danach findet die Funktion die Uebersetzung in der Datenbank und sie wird angezeigt.

          Damit nicht fuer jeden Aufruf von ausgabe() eine teure Datenbankverbindung geoffnet werden muss, solltest du die Uebersetzungen kategorisieren und Kategorie-weise aus der Datenbank auslesen.

          Kommentar

          Lädt...
          X