Персонализиран превод
From LimeSurvey Manual
Въведение
От LimeSurvey 5.4.0 насам можете да имате собствен превод на всички низове на всички включени езици чрез директен достъп до вашата база данни.
Тази система може да се използва, ако съществуващ превод не отговаря на нуждите на вашия бизнес.
Тя трябва да се използва само в специфични случаи, тъй като промените в текстовете в ядрото на LimeSurvey отново ще изискват промяна в базата данни.
Освен това можете да използвате този метод за превод на низове, специфични за темата на проучването.
Как работят преводите чрез базата данни
За преводите чрез базата данни LimeSurvey използва метод, вдъхновен от CDbMessageSource от фреймуърка Yii.
- намира се низът в таблицата SourceMessage lime_source_message->message и се взема id: lime_source_message->id
- ако съществува, се намира съответният превод в таблицата Message lime_message->translation за текущия език lime_message->language с текущото id lime_message->id
LimeSurvey създава масива с преводи от po файла (вижте Превод на LimeSurvey за информация как да актуализирате този файл) и след това го обединява с всички преводи от базата данни.
След това преводите от базата данни винаги се връщат, ако съществуват.
Пример за бутона „Изпрати“ на английски и френски
Искате да се показва _Validate_ вместо _Submit_ на бутона за изпращане във всички ваши проучвания (с определена тема). Ако просто актуализирате темата и замените gT('Submit') с gT('Validate'), ще се показва _Validate_ на всички езици.
За всички проучвания с всички теми
- Създайте изходното съобщение
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit'); - Проверете ID (ако е първото: ID е 1) и го използвайте в следващата инструкция
- Създайте свързания превод:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');
Не заменяйте низа с празен низ, иначе преводът ще се върне към оригиналното английско изречение. Трябва да включите поне един интервал.
Използване на собствена тема (препоръчително решение)
Този метод използва решение със собствен шаблон и актуализира низа по подразбиране и за всички останали езици.
- В редактора на теми изберете частта за навигация
- Потърсете
Template:GT("Submit")(в navigator.twig) - Заменете с
Template:GT("Validate") - Създайте изходното съобщение
INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate'); - Проверете ID (ако е първото: ID е 1) и го използвайте в следващата инструкция
- Създайте свързания превод:
INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');
Моля, обърнете внимание
Полето category в lime_source_message трябва да е празен низ (''), а не NULL. Ако категорията не съвпада точно, gT() няма да намери изходното съобщение и вашият превод няма да бъде приложен. Това е особено важно при добавяне на преводи за низове, специфични за теми.