Brugerdefineret oversættelse
From LimeSurvey Manual
Introduktion
Siden LimeSurvey 5.4.0 kan du have din egen oversættelse af alle tekststrenge på alle inkluderede sprog med direkte adgang til din database.
Dette system kan bruges, hvis en eksisterende oversættelse ikke passer til dine forretningsmæssige behov.
Det bør forbeholdes specifikke tilfælde, da tekstændringer i kernen af LimeSurvey igen vil kræve en ændring af din database.
Du kan desuden bruge denne metode til at oversætte tekststrenge, der er specifikke for et undersøgelsestema.
Sådan fungerer databaseoversættelser
Til databaseoversættelser bruger LimeSurvey en metode inspireret af CDbMessageSource fra Yii-frameworket.
- find tekststrengen i tabellen SourceMessage lime_source_message->message, og hent id'et : lime_source_message->id
- hvis den findes, find den tilhørende oversættelse i tabellen Message lime_message->translation for det aktuelle sprog lime_message->language med det aktuelle id lime_message->id
LimeSurvey opretter matrixen med oversættelser fra po-filen (se Translating LimeSurvey/da for information om, hvordan du opdaterer denne fil) og fletter den derefter med alle oversættelser fra databasen.
Oversættelserne fra databasen returneres derefter altid, hvis de findes.
Eksempel på knappen “Send” på engelsk og fransk
Du vil gerne vise _Validate_ og ikke _Submit_ på send-knappen i alle dine undersøgelser (med et bestemt tema). Hvis du blot opdaterer temaet og erstatter gT('Submit') med gT('Validate'), vises _Validate_ altid på alle sprog.
For alle undersøgelser med alle temaer
- Opret kildebeskeden
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit'); - Kontrollér ID'et (hvis det er den første, er ID 1) og brug det i næste instruktion
- Opret den tilhørende oversættelse :
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');
Erstat ikke tekststrengen med en tom streng, da oversættelsen ellers falder tilbage til den oprindelige engelske sætning. Du skal som minimum indsætte et mellemrum.
Brug af dit eget tema (anbefalet løsning)
Denne metode bruger en løsning med din egen skabelon og opdaterer også standardteksten for alle andre sprog.
- Vælg delen Navigation i Tema editor
- Søg efter
Template:GT("Submit")(i navigator.twig) - Erstat med
Template:GT("Validate") - Opret kildebeskeden
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate'); - Kontrollér ID'et (hvis det er den første, er ID 1) og brug det i næste instruktion
- Opret den tilhørende oversættelse :
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');
Bemærk
Feltet category i lime_source_message skal være en tom streng (''), ikke NULL. Hvis kategorien ikke matcher præcist, vil gT() ikke finde kildebeskeden, og din oversættelse bliver ikke anvendt. Dette er især vigtigt, når du tilføjer oversættelser af tekststrenge, der er specifikke for et tema.