Egyéni fordítás
From LimeSurvey Manual
Bevezetés
A LimeSurvey 5.4.0 verziója óta lehetősége van arra, hogy az adatbázisához való közvetlen hozzáféréssel saját fordítást adjon meg az összes beépített nyelv minden szövegéhez.
Ez a megoldás akkor használható, ha egy meglévő fordítás nem felel meg az Ön üzleti igényeinek.
Csak különleges esetekben érdemes használni, mivel a LimeSurvey magjában történő szövegmódosítások ismét az adatbázis módosítását teszik szükségessé.
Ezenkívül ezzel a módszerrel a kérdőívtémához tartozó szövegeket is lefordíthatja.
Hogyan működnek az adatbázis-fordítások?
Az adatbázis-fordításokhoz a LimeSurvey a Yii keretrendszer CDbMessageSource osztályától ihletett módszert használ.
- keresse meg a szöveget a SourceMessage táblában (lime_source_message->message), és olvassa ki az azonosítót: lime_source_message->id
- ha létezik, keresse meg a hozzá tartozó fordítást a Message táblában (lime_message->translation) az aktuális nyelvhez (lime_message->language) és az aktuális azonosítóhoz (lime_message->id)
A LimeSurvey a po fájlból létrehozza a fordításokat tartalmazó tömböt (a fájl frissítésével kapcsolatos tudnivalókat lásd: LimeSurvey fordítása), majd egyesíti az adatbázisban található összes fordítással.
Ezt követően az adatbázisból származó fordítások mindig elsőbbséget élveznek, ha léteznek.
Példa az „Elküldöm” gombra angolul és franciául
Az elküldés gombon az összes kérdőívében (egy adott témával) a _Validate_ szöveget szeretné megjeleníteni a _Submit_ helyett. Ha csak a témát módosítja, és a gT('Submit') kifejezést gT('Validate') kifejezésre cseréli, akkor minden nyelven a _Validate_ jelenik meg.
Összes kérdőív és összes téma esetén
- Hozza létre a forrásüzenetet:
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit'); - Ellenőrizze az azonosítót (ha ez az első, az azonosító 1), és használja a következő utasításban
- Hozza létre a hozzá tartozó fordítást:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');
Ne cserélje a szöveget üres karakterláncra, mert ilyenkor a fordítás visszaáll az eredeti angol mondatra. Legalább egy szóközt meg kell adnia.
Saját téma használata (ajánlott megoldás)
Ez a módszer saját sablont használ, és az alapértelmezett szöveget az összes többi nyelven is frissíti.
- A Témaszerkesztő oldalon válassza ki a Navigáció részt
- Keresse meg a következőt:
Template:GT("Submit")(a navigator.twig fájlban) - Cserélje erre:
Template:GT("Validate") - Hozza létre a forrásüzenetet:
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate'); - Ellenőrizze az azonosítót (ha ez az első, az azonosító 1), és használja a következő utasításban
- Hozza létre a hozzá tartozó fordítást:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');
Fontos tudnivaló
A lime_source_message tábla category mezőjének üres karakterláncnak kell lennie (''), nem NULL értéknek. Ha a kategória nem egyezik pontosan, a gT() nem találja meg a forrásüzenetet, és a fordítás nem lesz alkalmazva. Ez különösen fontos a témaspecifikus szövegek fordításának hozzáadásakor.