In-context Setup

Общий обзор

Crowdin In-Context works with the help of a one-line Javascript snippet and pseudo-language package. It creates a pseudo-language package based on the localization files uploaded to your project, which later will be integrated into your application as an extra localization language.

Интегрированный псевдо-язык содержит некоторые специальные идентификаторы вместо исходных текстов, поэтому при переключении приложения на этот язык все метки преобразуются в специальные идентификаторы. Javascript searches for those identifiers and replaces them with editable labels. So, the In-context page of your web app will look the same as your application, with the only difference that translatable strings will be editable.

In-Context View

Translations are made directly in the app, with no need to open the Editor. As a simplified version of Crowdin Editor will be displayed, with all the functionality (TM, machine translation, approve/vote option, comments, terms) provided. Thus, it’s easier to make and review translations, as that can be previewed in a real context.

In-Context Editor

Интеграция

There are two common approaches to integrate Crowdin In-Context with your application:

  • Staging or translation environment. If you are not planning to invite your end-users to help with translations or not considering to use a “translation mode” in your production application, integrating Crowdin In-Context to your staging or dedicated translation app environment would be a good solution.
  • Production environment. Crowdin In-Context не требует никаких изменений кода в вашем приложении, поэтому его можно использовать даже на производственном сервере. You decide how to turn it on and which segment of users will use it. The most common use cases are the following:
    • you can create a mirror website, that is a complete copy of your application, but under a different URL (for example, instead of crowdin.com it can be translate.crowdin.com), where translators will make translations like if it was your real application.
    • you can also add In-context as an extra language. So, when translators open your application they will be able to choose one extra language from the list, which will open In-context for them.

Follow the integration setup guide in your Crowdin project to set up In-context. The guide can be found in the left-hand panel in your project, under Resources > Integrations & API.

In-Context Tab

After the integration is successfully set up and you refreshed your application, you should be able to see the invitation dialog and Crowdin login box.

Login Window

Необязательные Параметры

Вы можете добавить эти параметры в _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 содержит исправленный перевод

Вызов функции перед вставкой в DOM

_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 the text does not have a target element (text inside the browser's pop-ups)
attribute
необязательный
The attribute of DOM element, if the text is part of an attribute
Возвращаемые значения
textСтрока для вставки
falseЕсли функция возвращает false, то DOM не будет обновляться

Вызов функции при закрытии наложения In-Context

_jipt.push(['escape', function() { window.location.href = "http://app_domain.com"; }]);

Определяет, могут ли пользователи закрыть In-Context оверлей, если они не хотят переводить. Реализуйте эту функцию на вашей стороне. It must change the app’s language or redirect from translation environment to the production app, depending on the In-Context integration approach.

Close Login Window

Была ли эта статья полезной?