gt-sanity@3.1.0
Обзор
Переведённый контент редко остаётся в исходном виде. Редакторы исправляют термины, сокращают заголовки, адаптируют тон под рынок — и до сих пор при следующем запуске перевода всё генерировалось заново.
gt-sanity v3.1 добавляет функцию Сохранение локальных правок: перед запуском перевода в General Translation загружаются переводы, уже хранящиеся в Sanity, поэтому контент с неизменившимся исходным текстом сохраняет текущие формулировки. По умолчанию эта функция отключена и включается отдельно для каждого сеанса Studio.
В этом релизе также добавлено действие Сохранить локальные правки для загрузки существующих переводов без запуска перевода, а также опция Перевести заново с нуля для намеренного создания всего контента заново.
Что нового
Сохранять локальные правки
Включите переключатель Сохранять локальные правки в инструменте Translations или на вкладке документа General Translation. Когда он включён, каждый запуск перевода начинается с отправки в General Translation переводов, которые сейчас хранятся в Sanity. Они становятся сохранёнными переводами для исходной версии, поэтому при следующем запуске используются повторно, а контент не переводится заново.
Поддерживаются обе стратегии локализации: переводы на уровне документа считываются через translation.metadata (черновики имеют приоритет над опубликованными документами, поэтому учитываются и неопубликованные правки), а значения локалей в интернационализированных массивах считываются из исходного документа. Локали без существующего контента пропускаются, а не загружаются как пустые переводы.
Задайте начальное состояние переключателя в config плагина:
import { defineConfig } from 'sanity';
import { gtPlugin } from 'gt-sanity';
export default defineConfig({
plugins: [
gtPlugin({
sourceLocale: 'en',
locales: ['es', 'fr', 'ja'],
translateDocuments: [{ type: 'post' }],
preserveExistingTranslations: true,
}),
],
});preserveExistingTranslations задаёт начальное состояние переключателя при загрузке Studio. Редакторы могут изменить его для текущего сеанса через UI.
Sanity становится источником истины
При включении переключателя сначала отображается пояснение, поскольку компромисс вполне реален: содержимое Sanity заменяет всё, что General Translation хранит для этой версии документа, включая перевод, который уже готов, но ещё не импортирован. Перед включением импортируйте все ожидающие переводы.
Шаг захвата выполняется перед загрузкой исходного содержимого и работает в режиме best-effort. Если он завершится с ошибкой, запуск перевода всё равно продолжится, а Studio предупредит, что изменения могут быть перезаписаны.
Сохранение локальных правок
Действие Сохранить локальные правки загружает уже имеющиеся в Sanity переводы, не ставя перевод в очередь, и при необходимости добавляет исходные файлы. Используйте его при внедрении плагина в проект, который ранее переводился в другом месте, чтобы General Translation начал работу с уже имеющимся контентом.
Оно доступно в инструменте Translations и на вкладке документа.
Перевести с нуля
В Translate All появился флажок Перевести заново с нуля. Если установить его, существующие переводы будут удалены и созданы заново, включая правки, внесённые в переведённые документы в Studio. Оставьте его снятым, чтобы использовать существующие переводы.
Ранее плагин не позволял принудительно запускать повторный перевод.