
In dieser Situation befinde ich mich fast. Hierbei fällt sehr schnell auf dass das Backend über 5 verschiedene Sprachen verfügt, die beim Login ausgewählt werden können.
So wird ganz Contenido dann automatisch in die entsprechende Sprache Übersetzt.
Probleme bei Modulen:
Module habe für Ihre Übersetzung die eigene Funktion mi18n() die auf gesonderte Daten zurückgreift. Diese werden im Bereich Style->Module->Modul->Übersetzung gepflegt.
Beispiele Franzose pflegt im deutschen Bereich Referenzen ein:
1. Der Franzose wählt die Sprache "French" und loggt sich ins Backend ein
2. Er öffnet die Sprache Deutsch
( 3. Er deativiert und aktiviert div. Beiträge (alles kein Problem) )
4. Er muss aus gegebenen Anlass einpaar Artikel-Konfigurationen ändern und öffnet unter Content->Artikel die Konfigurationen
5. ... Alle Modul-Inputs sind auf deutsch, da er sich in dem deutschen Bereich der Website befindet / obwohl er beim Login "French" ausgewählt hat. So ist es ihm nicht möglich die Konfigurationen zu ändern.
Lösung bei Modulen:
Ausschließlich für den Input-Bereich kann man anstelle der mi18n()-Funktion auch die i18n()-Funktion verwenden. So können diverse Titel übersetzt werden.
(Template, Title, Action, Actions, Article, Categories, Category, Colorpicker, Content, Description, Details, Note, Notification, Options, Property, Range, Settings, Type, Warning)
Erweiterung der i18n()-Übersetzungstabelle:
Nur wenn i18n nicht via gettext übersetzt.
Was aber wenn diverse Übersetzungen in der Master-PO fehlen?
Grundlegende Infos
- Contenido verwendet mit i18n("Article") die Contenido-Masster-PO-Datei
- Plugins verwendet mit i18n("Article", "Plugin-Ordner") die Plugin-PO-Datei
- Module verwendet mit mi18n("Article") die Modul-Übersetzung
Mann könnte für alle Input-Übersetzungen i18n("Article") verwenden.
+ Für alle noch nicht vorhandenen i18n("Article", "Plugin-Ordner") und in diesen Plugin-Ordner nur eine PO-Datei ablegen.
In meinen Augen doof.
Ich will ...
+ nicht ständig aufpassen das der Name des Plugin stimmt
+ nicht so einen langen Funktionsaufruf haben
+ das es voll Update fähig ist
Darum habe ich mir dieses Plugin geschrieben.
Struktur: in contenido/plugins/
translation_pluse/ <- Plugin-Name
- includes/
- - config.plugin.php <- Quelltext weiter unten
- locale/
- - de_DE/
- - - LC_MESSAGES/
- - - - translation_plus.po <- Fehlende Übersetzungen für die Master-PO
File: config.plugin.php
Code: Alles auswählen
<?php
if(!defined('CON_FRAMEWORK')) die('Illegal call');
if( $contenido ) {
/* Sollte die Master-PO nicht geladen sein wird sie es hier */
$temp = i18n("Start");
/* Plugin-PO laden */
$temp = i18n("show", "translation_plus");
/* Daten der Master-PO und Plugin-PO zusammenführen */
$transFile['contenido'].= "\n\n\n".$transFile['translation_plus'];
/* entfernen des Plugin-Datensatz (ordnungshalber) */
unset($transFile['translation_plus']);
}
?>
Mit dem ganzen habe ich die Möglichkeit die Modul-Inputs je nach BE-Sprache auszugeben.
mfg OliverL
PS: Bei der Articel-List-Advance von HerrB musste ich lediglich mi18n() in i18n() ersetzen und ganz wenige Übersetzungen anpassen bzw in meiner PO ergänzen.
GEILES Modul hast du da gemacht HerrB! Respekt!