Traducere personalizată
From LimeSurvey Manual
Introducere
Începând cu LimeSurvey 5.4.0, puteți avea propria traducere pentru toate șirurile de text din toate limbile incluse, cu acces direct la baza de date.
Acest sistem poate fi utilizat dacă o traducere existentă nu este compatibilă cu nevoile organizației dumneavoastră.
Ar trebui rezervat pentru cazuri specifice, deoarece modificările de text din nucleul LimeSurvey vor necesita din nou o modificare a bazei de date.
În plus, puteți folosi această metodă pentru a traduce șirurile specifice unei teme de sondaj.
Cum funcționează traducerile din baza de date
Pentru traducerile din baza de date, LimeSurvey folosește o metodă inspirată de CDbMessageSource din framework-ul Yii.
- găsiți șirul în tabelul SourceMessage lime_source_message->message și obțineți id-ul: lime_source_message->id
- dacă există, găsiți traducerea corespunzătoare în tabelul Message lime_message->translation pentru limba curentă lime_message->language cu id-ul curent lime_message->id
LimeSurvey creează matricea cu traduceri din fișierul po (consultați Traducerea LimeSurvey pentru informații despre actualizarea acestui fișier), iar apoi o îmbină cu toate traducerile din baza de date.
Ulterior, traducerile din baza de date sunt returnate întotdeauna dacă există.
Exemplu pentru butonul „Trimite” în engleză și franceză
Doriți să afișați _Validate_ și nu _Submit_ pentru butonul de trimitere în toate sondajele dumneavoastră (cu o anumită temă). Dacă doar actualizați tema și înlocuiți gT('Submit') cu gT('Validate'), se va afișa întotdeauna _Validate_ în toate limbile.
Pentru Toate sondajele cu Toate temele
- Creați mesajul sursă
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit'); - Verificați codul (dacă este primul: codul este 1) și folosiți-l pentru instrucțiunea următoare
- Creați traducerea corespunzătoare:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');
Nu înlocuiți șirul cu un șir gol, deoarece traducerea va reveni la propoziția originală în engleză. Trebuie să includeți cel puțin un spațiu.
Utilizarea propriei teme (soluția recomandată)
Această metodă folosește propriul șablon și actualizează șirul implicit și pentru toate celelalte limbi.
- În Editorul de teme selectați partea Navigare
- Căutați
Template:GT("Submit")(în navigator.twig) - Înlocuiți cu
Template:GT("Validate") - Creați mesajul sursă
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate'); - Verificați codul (dacă este primul: codul este 1) și folosiți-l pentru instrucțiunea următoare
- Creați traducerea corespunzătoare:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');
Observație
Câmpul category din lime_source_message trebuie să fie un șir gol (''), nu NULL. Dacă categoria nu se potrivește exact, gT() nu va găsi mesajul sursă, iar traducerea dumneavoastră nu va fi aplicată. Acest lucru este deosebit de important la adăugarea traducerilor pentru șirurile specifice temelor.