it-swarm.com.de

Hinzufügen von Sprachüberschreibungen zur Vorlage

Version Joomla 3.4.2

In unserer aktuellen Konfiguration möchten wir den Ordner zum Überschreiben von Sprachen zum aktuellen Vorlagenordner hinzufügen und dann drei Dinge erreichen:

  1. Wir könnten die Übersetzungen mit dem Hochladen der neuen Vorlage aktualisieren.
  2. Wir wären in der Lage, die INI-Datei über Template Manager/Customize Template schnell im Batch zu bearbeiten.
  3. Wir könnten die ständigen Aktualisierungen von Übersetzungsüberschreibungen versionieren, indem wir den Überschreibungsordner in der Vorlage belassen

Mir ist bekannt, dass es die Möglichkeit gibt, die INI-Datei manuell über den Sprachmanager zu bearbeiten, aber die Labels können nur einzeln geändert werden, was zu einem sehr langen Aktualisierungsprozess führt, wenn manchmal 800 Labels vom Übersetzungsbüro kommen.

Zusätzlich erlaubt uns unsere aktuelle Implementierung nicht, Dateien auf dem Server (Produktionsserver) auszutauschen. Wir können nur neue Vorlagen hochladen und Dateien innerhalb der Vorlagen ändern (dank der Admin-Vorlagen-Manager-Oberfläche).

Wenn ich den Overrides-Ordner innerhalb der Vorlage hinzufüge, muss ich nur die Funktion __construct innerhalb von\libraries\joomla\language\language.php überschreiben, da hier der Pfad zu den Overrides definiert ist.

Wie kann ich diese Klasse überschreiben, um die Position der Sprachüberschreibungen zu ändern? Können Sie sich einen besseren Weg vorstellen, dies unter den gegenwärtigen Einschränkungen zu erreichen?

3
Mg Gm

Ich denke, Sie machen das zu kompliziert. Erstellen Sie einfach einen Vorlagen-Sprachordner. Sie können beliebig lange Zeichenfolgen einfügen, da sie nicht nur in Ihrer Vorlage verwendet werden müssen und für jede Sprache eine Datei haben. Z.B.

/templates/your-template/language/en-GB/en-GB.tpl_your-template.ini
/templates/your-template/language/de-DE/de-DE.tpl_your-template.ini
2
Seth Warburton

Sie müssen die Vorlagensprachendateien in die Komponente selbst laden, da Joomla die Komponente vor der Vorlage rendert. Daher können Sie in die Vorlage (index.php) keine Überschreibung für eine Komponentensprache laden.

Sie müssen die folgenden Dinge tun:

Erstellen:

templates/your_template/language/de-DE/de-DE.com_yourcomponent.ini

Dann geh zu

/components/your_component/yourcomponent.php

Vorher einfügen

$controller->execute(JRequest::getCmd('task'));

die folgenden Befehle:

$language = JFactory::getLanguage();
$language->load('com_yourcomponent' , JPATH_SITE.'/templates/your_template', $language->getTag(), true);

Dies sollte funktionieren, ich habe dies vor einigen Minuten mit meiner benutzerdefinierten Komponente getestet.

ngetestet:

Sie können die Überschreibungen von html/com_yourcomponent/viewname/default.php verwenden, um Ihre benutzerdefinierte Sprachdatei zu laden. Setzen Sie einfach die Befehle oben in die Datei (nach _JEXEC).

Möglicherweise funktioniert dies auch, ohne die Kernkomponente zu bearbeiten.

1
Dennis Heiden

Da ich nicht genug Ruf habe, um zu kommentieren Dennis Heiden zu antworten, entscheide ich mich, selbst eine Antwort zu geben, nur um festzustellen, dass ich die zweite von Dennis Heiden gegebene Lösung getestet habe = und es funktioniert einwandfrei. Vielen Dank.

Um es klar auszudrücken, ist die gegebene Lösung, die ich beziehe, die folgende:

$language = JFactory::getLanguage();
$language->load('com_eventgallery' , JPATH_SITE . '/templates/your_template', $language->getTag(), true);
0
EnduranceCode