В контексті локалізації для веб-додатків

Інструмент Crowdin In-Context дозволяє перекладати тексти безпосередньо в межах самої веб-програми. Таким чином підтримується найкраща якість перекладу.

Контекстна локалізація пов’язана з фактичним проектом, створеним в Crowdin, де зберігаються перекладні файли.

Більш того процес перекладу можна бачити в реальному часі. Більш того процес перекладу можна бачити в реальному часі. Таким чином можна перекладати навіть динамічну частину додатку і наповнювачі.

Технічний огляд

Crowdin In-Context працює за допомогою однорядкового фрагменту Javascript і пакета псевдо-мови. Він створює пакет псевдомови на основі файлів локалізації, завантажених в ваш проект, які пізніше будуть інтегровані в ваш додаток як мова додаткової локалізації.

Інтегрована псевдо-мова містить деякі спеціальні ідентифікатори замість вихідних текстів, тому при перемиканні додатка на цю мову всі мітки перетворюються в спеціальні ідентифікатори. Javascript шукає ці ідентифікатори і замінює їх редагованими мітками. Таким чином, перекладач не бачить ніякої різниці між живим додатком і додатком з вбудованим інструментом Crowdin In-Context. Однак інструмент визначає, яка частина додатка є перекладною, і надає всі засоби, щоб перекладач міг локалізувати з використанням контексту.

Переклад виконується в згорнутому звичайному редакторі Crowdin з усіма функціями (ПП, машинний переклад, опція схвалення/голосування, коментарі, терміни). Таким чином, легше переглядати переклади для редакторів і забезпечувати якість.

Інтеграція

Є два загальні підходи до інтеграції Crowdin In-Context у вашу програму:

  • Середовище розробки або перекладу. Якщо ви не вважаєте за потрібне залучати кінцевих користувачів сайту до перекладу і вважаєте за краще не мати “режим перекладу” на продакшн, інтеграція Crowdin In-Context в окрему середу для перекладу буде відмінним рішенням.
  • Виробниче середовище. Crowdin In-Context не вимагає ніяких змін коду у вашому додатку, тому його можна використовувати навіть на виробничому сервері. Ви самі вирішуєте, як включити його і для якого сегмента користувачів його можна активувати. Функція, яка включає режим перекладу, може бути прихована, Були випадки, коли режим перекладу був включений як додаткова мова.

Дотримуйтесь покрокової інструкції налаштування інтеграції, яку ви можете знайти у вкладці In-Context пункту Налаштування проекту.

Після успішної інтеграції та оновлення вашого додатка ви повинні побачити діалогове вікно запрошення і вікно входу в Crowdin.

Необов’язкові Параметри

Ви можете додати ці параметри в _jipt масив у фрагменті конфігурації.

Попереднє завантаження рядків

_jipt.push(['preload_texts', true]);

Прискорює динамічний вміст, що відображається в інструменті In-Context, для попереднього завантаження всіх рядків джерела. Автоматично вимикається для великих проектів (5000+ рядків). Можливі значення: true, false.

Кнопка переклад завжди видно

_jipt.push(['touch_optimized', true]);

Цей параметр увімкнено на сенсорних екранах за замовчуванням і робить кнопку перекладу поруч із кожним перекладеним рядком назавжди видимою, на відміну від показу під час наведення курсору. Можливі значення: 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, в який слід вставити текст. Можна опустити, якщо в тексті немає цільового елемента (текст у спливаючих вікнах браузера)
attribute
необов'язковий
Атрибут елемента DOM, якщо текст є частиною атрибута
Значення, що повертаються
textРядок для вставки
falseЯкщо функція повертає false, то DOM не буде оновлюватися

Виклик функції при закритті накладення In-Context

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

Визначає, чи можуть користувачі закрити In-Context оверлей, якщо вони не хочуть перекладати. Реалізуйте цю функцію на вашому боці. Він повинен змінити мову додатку або перенаправити з середовища перекладу в виробничий додаток, залежно від підходу інтеграції In-Context.

Ця стаття була корисною?