Crowdin In-Context tool allows to translate texts directly within the actual web application. In such a way, the best translation quality is maintained.
Контекстная локализация связана с фактическим проектом, созданным в Crowdin, где хранятся переводимые файлы.
Этот инструмент делает все тексты в веб-приложении редактируемыми. Более того процесс перевода можно видеть в реальном времени. Таким образом можно переводить даже динамическую часть приложения и заполнители.
Crowdin In-Context работает с помощью однострочного фрагмента Javascript и пакета псевдо-языка. Он создает пакет псевдоязыка на основе файлов локализации, загруженных в ваш проект, которые позже будут интегрированы в ваше приложение как язык дополнительной локализации.
Интегрированный псевдо-язык содержит некоторые специальные идентификаторы вместо исходных текстов, поэтому при переключении приложения на этот язык все метки преобразуются в специальные идентификаторы. Javascript ищет эти идентификаторы и заменяет их редактируемыми метками. Таким образом, переводчик не видит никакой разницы между живым приложением и приложением с встроенным инструментом Crowdin In-Context. Однако инструмент определяет, какая часть приложения является переводимой, и предоставляет все средства, чтобы переводчик мог локализовать с использованием контекста.
Перевод выполняется в свернутом обычном редакторе Crowdin со всеми функциями (TM, машинный перевод, опция одобрения / голосования, комментарии, термины). Таким образом, легче просматривать переводы для редакторов и обеспечивать качество.
There are two common approaches to integrate Crowdin In-Context with your application:
Следуйте пошаговой инструкции настройки интеграции, которую вы можете найти во вкладке In-Context пункта Настройки проекта.
После успешной интеграции и обновления вашего приложения вы должны увидеть диалоговое окно приглашения и окно входа в Crowdin.
Вы можете добавить эти параметры в _jipt
массив в фрагменте конфигурации.
_jipt.push(['preload_texts', true]);
Speeds up dynamic content displaying within the In-Context tool by preloading all source strings. Automatically disabled for the large projects (5000+ strings). Acceptable values: true, false.
_jipt.push(['touch_optimized', true]);
This option is enabled on touchscreens by default and makes the translation button next to each translatable string permanently visible, as opposed to showing on hover. Acceptable values: true, false.
_jipt.push(['before_commit', function(source, translation, context, language_code) { return status_obj; }]);
Функция для проверки предложения перед коммитом.
Параметры | |
source | Исходный текст |
translation | Текст перевода |
context | Контекст исходной строки |
language_code | Код языка перевода (коды языка) |
Возвращаемые значения | |
status_obj | Объект. status_obj.status может быть "ок", "ошибка" или "исправлено". В случае ошибки, status_obj.message содержит описание ошибки. Когда статус «исправлен», status_obj.correction содержит исправленный перевод |
_jipt.push(['before_dom_insert', function(text, node, attribute) { return 'text'; }]);
Функция для преобразования строки перед ее подставлением в DOM.
Параметры | |
text | Строка для вставки |
node необязательный | DOM element in which the text must be inserted. May be omitted if text does not have target element (text inside browser's pop-ups) |
attribute необязательный | Атрибут элемента DOM, если текст является частью атрибута |
Возвращаемые значения | |
text | Строка для вставки |
false | Если функция возвращает false, то DOM не будет обновляться |
_jipt.push(['escape', function() { window.location.href = "http://app_domain.com"; }]);
Определяет, могут ли пользователи закрыть In-Context оверлей, если они не хотят переводить. Реализуйте эту функцию на вашей стороне. Он должен изменить язык приложения или перенаправить из среды перевода в производственное приложение, зависимости от подхода интеграции In-Context.