Benutzerdefinierte Übersetzung
From LimeSurvey Manual
Einführung
Seit LimeSurvey 5.4.0 können Sie mit direktem Zugriff auf Ihre Datenbank eine eigene Übersetzung für alle Zeichenketten in allen enthaltenen Sprachen verwenden.
Dieses System kann verwendet werden, wenn eine vorhandene Übersetzung nicht zu Ihren geschäftlichen Anforderungen passt.
Es sollte speziellen Fällen vorbehalten bleiben, da Textänderungen im Kern von LimeSurvey erneut eine Anpassung Ihrer Datenbank erfordern.
Außerdem können Sie diese Methode verwenden, um Zeichenketten zu übersetzen, die spezifisch für eine Designvorlage sind.
Wie Datenbankübersetzungen funktionieren
Für Datenbankübersetzungen verwendet LimeSurvey eine Methode, die von CDbMessageSource aus dem Yii-Framework inspiriert ist.
- Suchen Sie die Zeichenkette in der Tabelle SourceMessage lime_source_message->message und ermitteln Sie die ID: lime_source_message->id
- Falls vorhanden, suchen Sie die zugehörige Übersetzung in der Tabelle Message lime_message->translation für die aktuelle Sprache lime_message->language mit der aktuellen ID lime_message->id
LimeSurvey erstellt das Array mit Übersetzungen aus der po-Datei (Informationen zur Aktualisierung dieser Datei finden Sie unter LimeSurvey übersetzen) und führt es anschließend mit allen Übersetzungen aus der Datenbank zusammen.
Anschließend werden die Übersetzungen aus der Datenbank immer zurückgegeben, sofern sie vorhanden sind.
Beispiel für die Schaltfläche „Absenden“ auf Englisch und Französisch
Sie möchten für die Schaltfläche zum Absenden in allen Ihren Umfragen (mit einer bestimmten Designvorlage) _Validate_ statt _Submit_ anzeigen. Wenn Sie nur die Designvorlage aktualisieren und gT('Submit') durch gT('Validate') ersetzen, wird in allen Sprachen immer _Validate_ angezeigt.
Für Alle Umfragen mit Alle Designvorlagen
- Erstellen Sie die Quellnachricht
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit'); - Prüfen Sie die ID (wenn es die erste ist: ID ist 1) und verwenden Sie sie für die nächste Anweisung
- Erstellen Sie die zugehörige Übersetzung:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');
Ersetzen Sie die Zeichenkette nicht durch eine leere Zeichenkette, sonst wird auf den ursprünglichen englischen Satz zurückgegriffen. Sie müssen mindestens ein Leerzeichen einfügen.
Eigene Designvorlage verwenden (empfohlene Lösung)
Diese Methode verwendet eine eigene Designvorlage und aktualisiert auch die Standardzeichenkette für alle anderen Sprachen.
- Wählen Sie im Designvorlage-Editor den Bereich Navigation aus
- Suchen Sie nach
Template:GT("Submit")(in navigator.twig) - Ersetzen Sie es durch
Template:GT("Validate") - Erstellen Sie die Quellnachricht
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate'); - Prüfen Sie die ID (wenn es die erste ist: ID ist 1) und verwenden Sie sie für die nächste Anweisung
- Erstellen Sie die zugehörige Übersetzung:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');
Bitte beachten
Das Feld category in lime_source_message muss eine leere Zeichenkette ('') sein, nicht NULL. Wenn die Kategorie nicht exakt übereinstimmt, findet gT() die Quellnachricht nicht, und Ihre Übersetzung wird nicht angewendet. Dies ist besonders wichtig, wenn Sie Übersetzungen für Zeichenketten hinzufügen, die spezifisch für eine Designvorlage sind.