x

Основные главы

  1. LimeSurvey Cloud и LimeSurvey CE: сравнение
  2. Краткое руководство по началу работы - LimeSurvey 3.0+
  3. Установка - LimeSurvey CE
  4. Как разработать хороший опрос (руководство)
  5. Начиная
  6. Администрирование LimeSurvey
  7. Опросы - Вступление
  8. Настройки опроса
  9. Меню опроса
  10. Структура опроса
  11. Вопросы — введение
  12. Группы вопросов - введение
  13. Опросы - управление
  14. Параметры панели инструментов опроса
  15. Многоязычный опрос
  16. Движок ExpressionScript — краткое руководство
  17. Не классифицированы и расширенные функции
  18. ЧаВо
  19. Устранение неполадок
  20. Обходные пути
  21. Лицензия
  22. Журнал изменений версий
  23. Плагины
 Actions

Пользовательский перевод

From LimeSurvey Manual

Эта страница, возможно, переведена машинным способом и может содержать ошибки. Показать английский оригинал · Улучшить этот перевод
This page is a translated version of the page Custom translation and the translation is 100% complete.

Введение

Начиная с LimeSurvey 5.4.0 вы можете использовать собственный перевод для всех строк на всех доступных языках, напрямую обращаясь к своей базе данных.

Эту систему можно использовать, если существующий перевод не соответствует требованиям вашего бизнеса.

Её следует применять только в особых случаях, поскольку при изменении текстов в ядре LimeSurvey вам снова потребуется изменять базу данных.

Кроме того, этот метод можно использовать для перевода строк, относящихся к теме опроса.

Как работают переводы в базе данных

Для переводов в базе данных LimeSurvey использует метод, основанный на CDbMessageSource из фреймворка Yii.

  1. найти строку в таблице SourceMessage lime_source_message->message и получить идентификатор: lime_source_message->id
  2. если строка существует, найти связанный перевод в таблице Message lime_message->translation для текущего языка lime_message->language с текущим идентификатором lime_message->id

LimeSurvey создаёт массив переводов из po-файла (информацию о том, как обновить этот файл, см. в разделе Перевод LimeSurvey), а затем объединяет его со всеми переводами из базы данных.

После этого переводы из базы данных всегда возвращаются в первую очередь, если они существуют.

Пример для кнопки «Отправить» на английском и французском языках

Вы хотите, чтобы на кнопке отправки во всех ваших опросах (с определённой темой) отображалось _Validate_, а не _Submit_. Если просто изменить тему и заменить gT('Submit') на gT('Validate'), то _Validate_ будет отображаться на всех языках.

Для всех опросов со всеми темами

  1. Создайте исходное сообщение INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Submit');
  2. Проверьте ID (если это первая запись, ID равен 1) и используйте его в следующей инструкции
  3. Создайте связанный перевод: INSERT INTO lime_message (id, language, translation) VALUES ('1', 'en', 'Validate'), ('1', 'fr', 'Valider');

Не заменяйте строку пустой строкой, иначе перевод вернётся к исходной английской фразе. Необходимо указать как минимум один пробел.

Использование собственной темы (рекомендуемое решение)

Этот метод использует собственный шаблон и также обновляет строку по умолчанию для всех остальных языков.

  1. В Редакторе темы выберите раздел «Навигация»
  2. Найдите Template:GT("Submit") (в navigator.twig)
  3. Замените на Template:GT("Validate")
  4. Создайте исходное сообщение INSERT INTO lime_source_message (id, category, message) VALUES (NULL, '', 'Validate');
  5. Проверьте ID (если это первая запись, ID равен 1) и используйте его в следующей инструкции
  6. Создайте связанный перевод: INSERT INTO lime_message (id, language, translation) VALUES ('1', 'fr', 'Valider');

Обратите внимание

Поле category в lime_source_message должно быть пустой строкой (''), а не NULL. Если категория не совпадает точно, gT() не найдёт исходное сообщение, и ваш перевод не будет применён. Это особенно важно при добавлении переводов для строк, относящихся к конкретной теме.