Інструмент Crowdin In-Context дозволяє перекладати тексти безпосередньо в межах самої веб-програми. Таким чином підтримується найкраща якість перекладу.
Контекстна локалізація пов’язана з фактичним проектом, створеним в Crowdin, де зберігаються перекладні файли.
Більш того процес перекладу можна бачити в реальному часі. Більш того процес перекладу можна бачити в реальному часі. Таким чином можна перекладати навіть динамічну частину додатку і наповнювачі.
Crowdin In-Context працює за допомогою однорядкового фрагменту Javascript і пакета псевдо-мови. Він створює пакет псевдомови на основі файлів локалізації, завантажених в ваш проект, які пізніше будуть інтегровані в ваш додаток як мова додаткової локалізації.
Інтегрована псевдо-мова містить деякі спеціальні ідентифікатори замість вихідних текстів, тому при перемиканні додатка на цю мову всі мітки перетворюються в спеціальні ідентифікатори. Javascript шукає ці ідентифікатори і замінює їх редагованими мітками. Таким чином, перекладач не бачить ніякої різниці між живим додатком і додатком з вбудованим інструментом Crowdin In-Context. Однак інструмент визначає, яка частина додатка є перекладною, і надає всі засоби, щоб перекладач міг локалізувати з використанням контексту.
Переклад виконується в згорнутому звичайному редакторі Crowdin з усіма функціями (ПП, машинний переклад, опція схвалення/голосування, коментарі, терміни). Таким чином, легше переглядати переклади для редакторів і забезпечувати якість.
Є два загальні підходи до інтеграції 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 містить виправлений переклад |
_jipt.push(['before_dom_insert', function(text, node, attribute) { return 'text'; }]);
Функція для перетворення рядка перед його вставкою в DOM.
Параметри | |
text | Рядок для вставки |
node необов'язковий | Елемент DOM, в який слід вставити текст. Можна опустити, якщо в тексті немає цільового елемента (текст у спливаючих вікнах браузера) |
attribute необов'язковий | Атрибут елемента DOM, якщо текст є частиною атрибута |
Значення, що повертаються | |
text | Рядок для вставки |
false | Якщо функція повертає false, то DOM не буде оновлюватися |
_jipt.push(['escape', function() { window.location.href = "http://app_domain.com"; }]);
Визначає, чи можуть користувачі закрити In-Context оверлей, якщо вони не хочуть перекладати. Реалізуйте цю функцію на вашому боці. Він повинен змінити мову додатку або перенаправити з середовища перекладу в виробничий додаток, залежно від підходу інтеграції In-Context.