Глоссарии переводов и последовательность терминологии в WordPress

Откройте немецкую версию магазина WooCommerce и понаблюдайте, как слово «Корзина» перемещается по интерфейсу. Кнопка в заголовке гласит Warenkorb. На странице оформления заказа указано Einkaufswagen. В электронном письме с подтверждением — Korb. Все три слова технически являются допустимыми немецкими эквивалентами для «корзины покупок», и переводчик, работающий с файлами по отдельности, мог бы использовать любое из них. Но покупатель, просматривающий сайт, видит не три синонима. Он видит сайт, который не может определиться со своим собственным словарным запасом, и на сайте электронной коммерции такая непоследовательность воспринимается как небрежность именно в тот момент, когда вы просите данные кредитной карты.
Это проблема, которую решает глоссарий переводов. Глоссарий, иногда называемый терминологической базой, представляет собой авторитетный список того, как конкретные термины должны быть представлены на каждом языке, какие термины никогда не должны переводиться вообще, а какие должны переводиться одинаково каждый раз. Это руководство объясняет концепцию глоссария, две наиболее важные категории терминов, почему разделение больших файлов на фрагменты незаметно разрушает согласованность, и как конвейер перевода, который поддерживает глоссарий для всех фрагментов, решает эту проблему.
Что такое глоссарий переводов
Глоссарий переводов — это структурированное сопоставление исходных терминов с их утвержденными переводами, поддерживаемое для каждого языка. В простейшем виде это таблица: исходный термин, требуемый целевой термин и примечание о том, заблокирован ли он или подлежит переводу. Переводчики и системы перевода обращаются к нему как к единственному источнику истины, чтобы одно и то же понятие никогда не отображалось двумя разными способами.
Небольшой фрагмент глоссария может выглядеть так в JSON:
{
"en": "Cart",
"translations": {
"de": "Warenkorb",
"es": "Carrito",
"fr": "Panier"
},
"translatable": true
},
{
"en": "Acme Pro",
"translations": {},
"translatable": false,
"note": "Brand product name. Never translate."
}
Или, если ваша команда предпочитает плоскую электронную таблицу, те же данные в формате CSV:
source,de,es,fr,translatable
Cart,Warenkorb,Carrito,Panier,yes
Checkout,Kasse,Pagar,Commander,yes
Acme Pro,,,,no
Add to Cart,In den Warenkorb,Añadir al carrito,Ajouter au panier,yes
Глоссарий выполняет две задачи одновременно. Для переводимых терминов он обеспечивает одно утвержденное отображение. Для непереводимых терминов он действует как список «не трогать».
Сам формат едва ли имеет значение. JSON, CSV, электронная таблица или простой файл ключ-значение — все это работает, потому что ценность глоссария не в его расширении файла, а в его роли согласованного справочника. Важно, чтобы он существовал, чтобы он был единственной авторитетной копией и чтобы все, что переводит ваши строки, фактически обращалось к нему. Глоссарий, лежащий на общем диске, который процесс перевода никогда не читает, — это просто документация. Глоссарий, который конвейер применяет к каждой строке, — это гарантия качества.
Большинство команд начинают составлять глоссарий реактивно, после того как первая непоследовательность приводит к неловким ситуациям на производстве. Лучший путь — заполнить его до первого прохода перевода очевидными записями: названиями ваших продуктов, двадцатью основными терминами интерфейса и любой отраслевой лексикой, где неправильный выбор может сбить с толку клиентов. Двадцать хорошо подобранных записей предотвращают подавляющее большинство сбоев согласованности.
Два типа терминов, которые ломаются без глоссария
Какие термины на самом деле нуждаются в контроле со стороны глоссария? Две категории, и они терпят неудачу в противоположных направлениях.
Брендовые термины, которые никогда не должны переводиться
Названия продуктов, брендов, функций и торговые марки должны проходить через перевод полностью без изменений. Когда Acme Pro становится Acme Profesional на испанском языке, или ваша функция доставки QuickShip превращается в EnvíoRápido, вы нарушаете узнаваемость бренда и, часто, ломаете пользовательский интерфейс, где эта точная строка сопоставляется в коде.
Это наиболее распространенный и наиболее разрушительный сбой глоссария. Машинный переводчик, предоставленный самому себе, услужливо переведет Pro, Plus, Cloud и любое другое слово, которое выглядит как обычное существительное, потому что у него нет способа узнать, что эти слова являются частью бренда. Глоссарий — это то, что говорит ему остановиться.
Термины, которые должны переводиться последовательно
Противоположная проблема — это ситуация с Warenkorb против Einkaufswagen. Это реальные слова, которые должны быть переведены, но всегда одинаково. Интерфейсная лексика, такая как Cart, Checkout, Account, Wishlist, Order и Shipping, должна соответствовать одному фиксированному целевому термину на каждом экране, в каждом электронном письме и кнопке. Опасность здесь не в неправильном переводе, а в расхождении: каждый отдельно взятый правильный выбор хорош сам по себе, и только непоследовательность на всем сайте является дефектом.
Это проблема эрозии доверия. Пользователи создают ментальную модель вашего интерфейсного словаря по мере взаимодействия с ним. Когда слово меняется, модель ломается, и когнитивное трение регистрируется как смутное ощущение, что сайт низкого качества, даже если клиент не может объяснить почему.
Согласованность также имеет конкретную стоимость для удобства использования, помимо ощущения. Справочная документация, всплывающие подсказки и приветственные электронные письма — все они ссылаются на термины интерфейса. Если на кнопке написано Warenkorb, а в статье справки — Einkaufswagen, растерянный покупатель не сможет сопоставить инструкцию с экраном. Непоследовательная терминология незаметно нарушает ваш собственный контент поддержки. Глоссарий — это то, что заставляет продукт, документацию и маркетинговые материалы говорить на одном языке, буквально.
Почему разделение больших файлов на фрагменты приводит к непоследовательности
Вот механизм, который превращает одноразовую проблему с глоссарием в системную проблему на крупных сайтах. Большой магазин WordPress или WooCommerce может иметь файл .po с тысячами строк, что намного больше, чем любая модель ИИ может перевести за один запрос. Поэтому файл разбивается на фрагменты, и каждый фрагмент переводится отдельно.
Проблема в том, что когда каждый фрагмент переводится изолированно, у движка нет памяти о том, как он перевел термин три фрагмента назад. Фрагмент 1 может перевести «Cart» как Warenkorb. Фрагмент 7, обработанный как независимый запрос без общего контекста, может с такой же обоснованностью перевести то же «Cart» как Einkaufswagen. Ни один из вариантов сам по себе не является неправильным. Непоследовательность — это артефакт разделения на фрагменты, а не результат какого-либо конкретного ошибочного решения.
# Chunk 1 - header strings
msgid "Cart"
msgstr "Warenkorb"
# Chunk 7 - footer strings, translated in a separate request
msgid "View Cart"
msgstr "Einkaufswagen ansehen"
Чем больше файл, тем больше фрагментов, и тем больше возможностей для расхождения одного и того же термина. Именно поэтому перевод больших файлов сложнее, чем кажется, — эта тема подробно рассматривается в как переводить большие PO-файлы. Наивное разделение на фрагменты жертвует полнотой ради согласованности, и в магазине с тысячами строк такая жертва проявляется повсюду.
Как конвейер, учитывающий глоссарий, решает эту проблему
Решение заключается в конвейере перевода, который выполняет две вещи одновременно: он интеллектуально разделяет большие файлы, чтобы их вообще можно было обрабатывать, и он передает контекст глоссария и терминологии по всем фрагментам, чтобы разделение никогда не приводило к расхождениям.
Именно здесь Smart Batching и Context-Aware AI работают в паре. Smart Batching делит файл размером более 10 МБ на обрабатываемые фрагменты, но эти фрагменты не переводятся как изолированные сущности. Конвейер обеспечивает согласованность глоссария и терминологии по всем фрагментам, так что как только «Cart» установлено как Warenkorb, каждый последующий фрагмент, содержащий «Cart», получает то же самое отображение. Глоссарий заблокированных брендовых терминов также перемещается с каждым фрагментом, поэтому Acme Pro остается нетронутым, независимо от того, появляется ли он в строке номер 5 или в строке номер 5000.
Практический результат заключается в том, что файл магазина из 6000 строк возвращается с одним согласованным словарем вместо лоскутного одеяла. Названия брендов остаются нетронутыми. Термины интерфейса единообразны. И заполнители внутри этих строк, токены %s и {name}, остаются заблокированными на месте одновременно. Вы получаете файл, который читается так, будто один внимательный переводчик с идеальной памятью сделал всю работу за один присест.
Сравните это с альтернативой, к которой прибегает большинство людей: переводить файл по частям, а затем выполнять ручную операцию поиска и замены для нормализации терминов. Этот подход терпит неудачу по двум причинам. Во-первых, вы должны уже знать каждый термин, который отклонился, что означает просмотр тысяч строк для выявления несоответствий в первую очередь. Во-вторых, слепой поиск и замена опасны, потому что одно и то же слово может быть правильным в одном контексте и неправильным в другом. Применение глоссария во время перевода, когда у движка все еще есть полный контекст каждой строки, принципиально безопаснее, чем исправление после факта.
Глоссарии в многосайтовом рабочем процессе
Для агентств, управляющих локализацией на множестве клиентских сайтов, дисциплина глоссария усложняется. У каждого клиента есть свои собственные брендовые термины и свой утвержденный словарный запас, и повторное использование глоссария одного клиента на другом гарантирует неприятности. Повторяемый, ориентированный на глоссарий рабочий процесс — это то, что поддерживает согласованность дюжины многоязычных сайтов без дюжины ручных проверок, что является основой идеального рабочего процесса локализации для агентств, управляющих несколькими клиентскими сайтами. Глоссарий становится активом для каждого клиента, который перемещается с каждым файлом, который вы переводите для них.
Последовательность терминологии — это один из тех сигналов качества, которые никто сознательно не замечает, когда они в порядке, и все чувствуют, когда они не в порядке. Клиент, который видит Warenkorb на каждом экране, никогда не задумывается об этом. Тот, кто видит три разных слова для корзины, также не подает жалобу, он просто немного меньше доверяет сайту и совершает конверсию немного хуже. Глоссарий, применяемый к каждому фрагменту каждого файла, — это то, как вы гарантируете, что им никогда не придется об этом думать.
Готовы поддерживать согласованность каждого термина во всем вашем многоязычном магазине? Попробуйте SimplePoTranslate бесплатно — кредитная карта не требуется. Бесплатный тарифный план обеспечивает согласованность глоссария и терминологии по всем фрагментам, так что «Корзина» остается одним словом, а названия ваших брендов остаются нетронутыми от первой до последней строки.