Перейти к основному содержимому
Nodary

Таблицы перевода для локализации игр, проверенные до релиза.

Строка на ключ, с контекстом и максимальной длиной для ваших переводчиков, и столбец на язык. У каждого перевода свой статус, слишком длинные строки и строки с потерянным плейсхолдером отмечаются прямо при вводе, а таблица экспортируется в CSV, JSON, .po и XLIFF для Unity, Unreal и Godot.

Таблица перевода Saltmarrow в Nodary: ключи, контекст и максимальная длина рядом со столбцами английского, французского, немецкого, японского и бразильского португальского, цветная полоса статуса у каждого перевода, а над сеткой прогресс каждого языка и строки, которые осталось исправить в немецком и бразильском португальском.
Saltmarrow это демонстрационный проект: его студия, команда и игра вымышлены.

Таблица перевода живёт в проекте

Превратите любую таблицу в таблицу перевода или начните с готовой. Nodary определяет роли столбцов по заголовкам, например Key, Context, Max length, English или keys, en, fr у Godot, и добавляет язык новым столбцом в один клик. Таблица это документ на той же карте, что и диалоги, персонажи и системы, откуда пришёл её текст, и она связана с ними, как любой другой документ.

  • Наберите / и выберите «Таблица перевода» или превратите в неё существующий лист
  • Роли столбцов угадываются по заголовкам, а затем вы их проверяете
  • Совместная правка по ячейкам: два рецензента в разных ячейках никогда не перезапишут друг друга
  • Языки с письмом справа налево, такие как арабский и иврит, пишутся справа налево

Чего это не делает Реплики диалогов сами в таблицу не попадают: ключи вводят вручную, вставляют, импортируют из таблицы или добавляет агент. Таблица вмещает до 50 000 ячеек, поэтому большая игра делит свой текст на несколько таблиц.

Проект Saltmarrow на карте констелляции Nodary: документы вокруг хабов Видение, Мир и история, Персонажи, Системы, Продакшен, Локализация, Аудио и Арт-дирекшн, соединённые линиями иерархии, с курсорами двух коллег и списком тех, кто сейчас онлайн.
Таблица перевода лежит под хабом «Локализация», в одной связи от документов, откуда пришёл её текст.

У каждого перевода есть статус и проверка

Перевод находится в статусе «Нет перевода», «Черновик», «Проверено», «Утверждено» или «Источник изменён», если исходный текст поменялся после того, как перевод был написан. При изменении источника ничего не переписывается: каждый перевод помнит текст, для которого он сделан. Прямо при вводе Nodary отмечает строку длиннее своего лимита в видимых игроку символах, потерянный или лишний плейсхолдер, текст, оставшийся на исходном языке, и лишние пробелы по краям.

  • Прогресс по каждому языку с фильтром по тому, что требует работы или содержит проблемы
  • Панель переводчика: источник, контекст, число символов и плейсхолдеры, которые нужно сохранить
  • Отметьте выделенное как проверенное или утверждённое либо сохраните статусы после незначительной правки источника
  • Плейсхолдеры распознаются в формах ICU, i18next, Unity, Unreal и printf, а также теги разметки

Чего это не делает Нет памяти переводов, терминологической базы и встроенного машинного перевода. Переводы приходят от ваших переводчиков или от ИИ-агента по вашей просьбе, и работа агента поступает как черновики.

Контекст
Banner when a storm forms. {seconds} counts down
Источник (Английский)
Storm in {seconds} s. Get to the stilts.Сохранить {seconds}

38 из 44 символов

  • Переменные: нет {seconds}
Псевдолокализация (для проверки интерфейса)[Šţóŕɱ íñ {seconds} š. Ĝéţ ţó ţĥé šţíĺţš. ~~~~~~~~~~~~]

Файлы для движков и переводчиков и поток для вашей сборки

Экспортируйте CSV со всеми языками для Godot и Unity, JSON для i18next и движков, gettext .po с ключом в качестве контекста для Unreal и Godot и XLIFF 1.2 для инструментов перевода, где у каждой строки передаются статус, лимит и контекст. Псевдолокализованный язык показывает непереведённый или обрезанный текст в вашем интерфейсе ещё до появления перевода. А когда сборка не должна никого ждать, она сама забирает таблицу с постоянного адреса по ключу данных только для чтения.

  • Импорт XLIFF 1.2 или 2.0, .po, JSON или CSV с сопоставлением по ключу и предпросмотром
  • Пустой перевод в файле никогда не стирает перевод в таблице
  • Один язык в JSON, .po или XLIFF или все языки в CSV; final=1 оставляет только утверждённые строки
  • Неизменённая таблица отвечает 304, до 120 запросов в минуту на ключ

Чего это не делает Формы множественного числа живут как сообщения ICU внутри одной ячейки: записи множественного числа из файла .po при импорте пропускаются. Поток только читает; через него в Nodary ничего не записывается.

Таблица перевода Saltmarrow в Nodary с открытым меню экспорта: CSV для Godot и Unity со всеми языками, CSV с псевдолокализованным языком, а для выбранного языка JSON для i18next и движков, gettext .po и XLIFF 1.2.
Все форматы есть в меню экспорта таблицы. «Поток данных» на той же панели отдаёт таблицу сборке по её адресу.

Агенты заполняют таблицу, не переписывая её

Подключённый через MCP агент читает таблицу через get_localization: прогресс каждого языка и строки, которые ещё требуют работы, с их контекстом, лимитом и проблемами. set_translations пишет по ключу, черновиками, если вы не попросите утвердить, добавляет ключи или столбец языка и сообщает, какие строки вышли слишком длинными или потеряли плейсхолдер. Люди, которые правят таблицу в это же время, сохраняют свои ячейки.

Подключить агента

Вы проситеЗаполни недостающие немецкие строки в таблице перевода Saltmarrow как черновики. Сохрани каждый плейсхолдер, уложись в максимальную длину и скажи, у каких строк ещё есть проблемы.

Вызываемые инструменты
  • search_documents
  • get_localization
  • set_translations

Вопросы

Как экспортировать игровые строки в Unity, Unreal или Godot?

Откройте меню «Экспорт» таблицы перевода. CSV несёт все языки, столбец ключей и затем по столбцу на язык, как их читают Godot и Unity; gettext .po несёт один язык с ключом в качестве контекста, для Unreal и Godot; JSON отдаёт один язык плоским файлом «ключ: текст» для i18next и движков. Сам импорт происходит в вашем движке, его собственными средствами локализации.

Переводит ли Nodary текст за меня?

Нет. Памяти переводов и встроенного сервиса машинного перевода нет. Ваши переводчики работают в таблице или в своём инструменте через XLIFF, а подключённый вами ИИ-агент тоже может писать переводы, и они приходят черновиками, которые кто-то должен проверить.

Что происходит с переводом, когда меняется исходный текст?

Каждый перевод хранит отпечаток источника, для которого был написан. Когда источник меняется, его переводы получают статус «Источник изменён», и ничего не переписывается. Если правка была незначительной, действие «Незначительное изменение источника» сохраняет их статусы как были.

Может ли наша сборка скачивать строки автоматически?

Да. Любой участник может создать в своём профиле ключ данных только для чтения, для всего рабочего пространства или одного проекта, а кнопка «Поток данных» таблицы показывает его адреса. Сборка забирает один язык в JSON, .po или XLIFF или все языки в CSV, а final=1 исключает всё, что ещё не утверждено.

Какие плейсхолдеры и теги понимает проверка?

Сообщения ICU, включая plural и select, {name} и {0} в том виде, как их пишут Unity и Unreal, {{name}} из i18next, формы printf, такие как %s, %d и %1$s, и теги разметки, такие как <b> или <color=#f00>. Длина считает символы, которые видит игрок: буква с диакритикой или эмодзи считается один раз, а теги не считаются.

Могут ли переводчики прислать свои файлы обратно?

Да. Импортируйте XLIFF 1.2 или 2.0, gettext .po, JSON или CSV размером до 8 МБ. Переводы сопоставляются по ключу, ключи, которых нет в таблице, перечисляются, а не добавляются, предпросмотр показывает каждое изменение до применения, а перевод, сделанный по более старому источнику, приходит со статусом «Источник изменён».

Держите строки рядом со своей игрой.

Начните бесплатно, наберите / и выберите «Таблица перевода», затем вставьте первые ключи. Без карты, без установки.

Бесплатно для двух участников и десяти документов. Без карты.