Egendefinert oversettelse
From LimeSurvey Manual
Introduksjon
Fra og med LimeSurvey 5.4.0 kan du ha din egen oversettelse av alle tekststrenger i alle inkluderte språk, med direkte tilgang til databasen din.
Dette systemet kan brukes hvis en eksisterende oversettelse ikke passer til virksomhetens behov.
Det bør forbeholdes spesielle tilfeller, siden tekstendringer i kjernen av LimeSurvey igjen vil kreve en endring i databasen din.
Du kan også bruke denne metoden til å oversette tekststrenger som er spesifikke for et undersøkelsestema.
Slik fungerer databaseoversettelser
For databaseoversettelser bruker LimeSurvey en metode inspirert av CDbMessageSource fra Yii-rammeverket.
- Finn tekststrengen i SourceMessage-tabellen lime_source_message->message, og hent id-en: lime_source_message->id
- Hvis den finnes, finn den tilhørende oversettelsen i Message-tabellen lime_message->translation for gjeldende språk lime_message->language med gjeldende id lime_message->id
LimeSurvey oppretter matrisen med oversettelser fra po-filen (se Oversette LimeSurvey for informasjon om hvordan du oppdaterer denne filen), og slår den deretter sammen med alle oversettelsene fra databasen.
Oversettelsene fra databasen returneres alltid hvis de finnes.
Eksempel for knappen «Send inn» på engelsk og fransk
Du vil vise _Validate_ og ikke _Submit_ på knappen for å sende inn i alle undersøkelsene dine (med et bestemt tema). Hvis du bare oppdaterer temaet og erstatter gT('Submit') med gT('Validate'), vises alltid _Validate_ på alle språk.
For alle undersøkelser med alle tema
- Opprett kildemeldingen
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit'); - Sjekk ID-en (hvis det er den første, er ID-en 1) og bruk den i neste instruksjon
- Opprett den tilhørende oversettelsen:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');
Ikke erstatt tekststrengen med en tom streng, ellers faller oversettelsen tilbake til den opprinnelige engelske setningen. Du må ta med minst ett mellomrom.
Bruke ditt eget tema (anbefalt løsning)
Denne metoden bruker en løsning med din egen mal, og oppdaterer standardteksten for alle andre språk også.
- I Malredigering velger du Navigering-delen
- Søk etter
Template:GT("Submit")(i navigator.twig) - Erstatt med
Template:GT("Validate") - Opprett kildemeldingen
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate'); - Sjekk ID-en (hvis det er den første, er ID-en 1) og bruk den i neste instruksjon
- Opprett den tilhørende oversettelsen:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');
Merk
Feltet category i lime_source_message må være en tom streng (''), ikke NULL. Hvis kategorien ikke samsvarer nøyaktig, vil gT() ikke finne kildemeldingen, og oversettelsen din blir ikke brukt. Dette er spesielt viktig når du legger til oversettelser for tekststrenger som er spesifikke for et tema.