При загрузке файла в проект проект, все новые ресурсы извлекаются из этого файла и сохраняются в проект. Формат загружаемого файла не обязательно должен быть начальным форматом, настроенным для проекта. Если для группировки ресурсов предоставлены теги, к новым ключам будут применены эти теги.
Некоторые форматы, такие как Gettext, предоставляют дополнительную ценную метаинформацию, например комментарии, описания или информацию о формах множественного числа. Эта информация извлекается, когда и где это возможно, и сохраняется вместе с назначенными ресурсами, позволяя сохранить всю ценную информацию, предоставленную в файлах локализации, для дальнейшего использования.
Существует несколько методов загрузки файлов:
-
В приложении, при создании нового проекта или путем выбора Загрузить файл на странице проекта
-
через интерфейс приложений API
-
через CLI
При загрузке через интерфейс приложений API или CLI для форматов файлов, включающих несколько языковых стандартов в одном файле (например, Phrase Strings .JSON, .YAML, многоязычный .XLSX/.CSV, .XLIFF, .TMX, Genesys JSON), идентификатор языкового стандарта каждого перевода в файле сопоставляется с языковым стандартом проекта по названию языка, точно так же, как это настроено на вкладке проекта. Коды языковых стандартов (например, «en-US») не используются для этого совпадения, если только эта точная строка также не является настроенным названием языкового стандарта. Если идентификатор языкового стандарта перевода не совпадает ни с одним названием языкового стандарта в проекте, его переводы не будут импортированы без уведомления.
-
По умолчанию извлекается только новый контент, а существующие ключи в проекте локализации не удаляются и не обновляются; при загрузке файлов данные не могут быть потеряны. Если требуется перезапись существующих данных, Заменить ресурсы проекта контентом из файла локализации, выбрав параметр . Существующие переводы будут перезаписаны контентом загруженного файла локализации.
Этот параметр также доступен в интерфейсе приложений API.
Примечание
Чтобы предотвратить потерю данных, убедитесь, что последние изменения выгружены из Phrase в файл локализации перед его изменением и повторной загрузкой с параметром .
-
Введите уникальный идентификатор (например, путь к файлу), который будет добавлен перед именами загружаемых ключ. Использовать значимый префикс, относящийся к проект или файлу, чтобы поддерживать порядок в именах ключ.
Например, импортированный ключ
hello_worldс префиксомproject_приведет к созданию ключproject_hello_world.Префикс ключ перевода гарантирует, что ключ сопоставляются с существующими во избежание конфликтов в разных проект или файлах.
Этот параметр также доступен в интерфейс приложений API и CLI.
-
Добавить новые ключ и перезаписать существующие контент из загруженного файла.
-
Обновить перевод только в том случае, если существующий оригинал в язык по умолчанию проект совпадает с оригинал в загруженном многоязычный файле.
-
Выберите этот параметр, если требуется обновить все описания ключ из загруженного файла. Пустой контент перезапишет существующий. Описание может содержать любую дополнительную информацию для переводчиков и помочь идентифицировать отдельные ключ в редактор.
-
Чтобы поддерживать порядок в переводах, добавьте несколько тег к ключ с помощью значимых меток. Выберите этот параметр, чтобы предотвратить автоматическое добавление тег загрузки к новым ключ.
-
Выберите этот параметр, чтобы автоматически добавить тег к новым ключ и ключ с обновленными переводами при загрузить. Это поможет различать новые, обновленные и старые Strings, гарантируя, что для дальнейшей обработки будут выбраны только соответствующие ключ.
Этот параметр также доступен в интерфейсе приложений API.
-
Укажите кодировку (например, UTF-8) файла или позвольте выбрать ее автоматически (автоматически выбранная кодировка может привести к неверному результату, и ее можно отменить, отменив загрузить).
-
-
предотвращает необходимость повторного подтвердить переводы на не основных язык при обновлении переводов.
-
рассматривает все загруженные переводы как проверено. Этот параметр доступен, когда активирован расширенный проверено рабочий процесс. Это указывает на то, что ключи готовы к отправке в продакшн.
-
рассматривает все загруженные переводы как подтвержденные.
-
Чтобы загрузить файлы в Strings, выполните следующие действия:
-
Перед загрузкой убедитесь, что файл отформатирован правильно в соответствии с типом.
-
В проекте выбрать Загрузить файл в меню .
Откроется страница .
-
Нажать Выбрать файл, выбрать файл из каталога.
Выбранный файл добавляется в поле .
-
Выбрать для файла.
Рекомендуемые форматы представлены первыми в зависимости от типа файла.
-
Выбрать язык для контента файла из выпадающего списка.
Если этой информации нет в самом файле, создать новый язык для контента или использовать существующий.
-
При необходимости укажите теги, которые будут назначены новым ключам, и любые другие параметры.
-
Нажмите «Сохранить».
Контент импортируется и преобразуется в ключи.
-
Ошибка загрузки
Если файл не удалось обработать должным образом, предоставляются сведения об ошибке, чтобы помочь устранить ее.
-
Успешная загрузка
После успешной обработки файла перевода отображается сводная страница с обзором загрузки и кнопками, ведущими к След. шагам. Нажмите на тег загрузить, чтобы открыть файл в редакторе.
-
Удаление ключей
Чтобы предотвратить случайное удаление ключей при удалении ключей из файла локализации и его повторной загрузке, эти ключи не удаляются автоматически.
Чтобы удалить эти ключи, выполните следующие действия:
Неупомянутые ключи — это ключи, которые не включены в текущую загрузку, но все еще существуют в проекте. При их удалении все ключи и связанные с ними переводы, которые не были включены в загруженный файл, удаляются из проекта.
Лимит для удаления неупомянутых ключей составляет 100,000 ключей. В проектах, превышающих этот лимит, опция недоступна.
-
Отменить загрузку
Каждая загрузка запускает множество действий и может изменить большой объем данных в проектах, поэтому отменить загрузку невозможно.
Чтобы удалить ключи, которые были (ошибочно) добавлены загруженным файлом, выполните следующие действия:
Все ключи и связанные с ними переводы, созданные этой загрузкой, будут удалены. Переводы для ключей, которые существовали до загрузки, удалены не будут. Чтобы удалить отдельные переводы, используйте историю версий для каждого перевода.
На любой странице проекта выберите в меню , чтобы получить доступ к архиву загрузок.
Архив загрузок содержит все исторические загрузки во всех возможных статусах. Нажмите на раскрывающийся список , чтобы фильтровать загрузки по статусу (, и/или ). Чтобы найти конкретную загрузку, используйте поле поиска в верхней части, чтобы выполнить поиск по имени.
Получить доступ к подробным сводкам загрузки затронутых ресурсов можно, нажав на загрузку в списке. Все успешные загрузки также представлены в ленте активности проект.
Файлы язык можно экспортировать из проект в любой момент и в любой поддерживаемый формат.
Файлы можно экспортировать из приложения через интерфейс приложений API или CLI.
Файлы можно скачать с вкладка любого проект, выбрав их и нажав Скачать (несколько файлов) или кнопка Дополнительные параметры /Скачать для язык.
Параметры скачивания отображаются при скачивании файла в окне с вкладками , и .
Выбор различных ов файлов предоставляет различные параметры. Для получения более подробной информации обратитесь к соответствующей статье о конкретном формате файла.
При необходимости используйте поле на вкладке , чтобы указать Пользовательский имя файла для экспорта, или оставьте его пустым, чтобы создать системное имя.
-
Если при загрузке файла был добавлен префикс ключа перевода, выберите этот параметр на вкладке , чтобы удалить префикс из имен экспортируемых ключей перевода:
-
Введите префикс, чтобы скачать все ключи, и по возможности удалить указанный префикс.
Важно
Это может привести к созданию дубликатов имен ключей, если другие ключи имеют то же имя после удаления префикса.
-
При необходимости выберите , чтобы скачать только те ключи перевода, которые содержат указанный префикс, и удалить префикс из скачиваемого файла.
Этот параметр также доступен в интерфейс приложений API и интерфейсе CLI.
-
По умолчанию переводимые ресурсы хранятся в виде ключей и значений, а не в исходной структуре файлов. Это позволяет использовать взаимозаменяемые форматы файлов без привязки к одному формату, а также гибкую группировку с использованием тегов.
Некоторые фреймворки или настройки требуют наличия нескольких файлов оригинала, что также требует дополнительной конфигурации.
Хранение отдельных файлов
Как правило, храните все переводы для каждого языка в одном файле. Это делает загрузку ресурсов быстрее и надежнее. Переводы организованы в проекты, поэтому отдельные небольшие файлы не требуются.
Если файлы локализации должны поддерживаться в отдельных файлах, можно использовать рабочий процесс на основе файлов, помечая ключи тегами при загрузке и используя теги в качестве справочного файла при выгрузке переведенных ключей обратно в оригиналы файлов. Ключи могут содержать несколько тегов и включаться в несколько файлов, обеспечивая повторное использование и согласованность. Рабочий процесс на основе тегов является гибким и позволяет реорганизовывать ресурсы перевода без необходимости их загрузки в проекты.
Присваивайте ключам уникальные имена во всех файлах для обеспечения бесперебойного рабочего процесса. При подходе на основе пар «ключ-значение» ключу должны быть назначены одинаковые значения в каждом контексте. Некоторые фреймворки позволяют использовать неуникальные ключи в нескольких файлах. Некоторые форматы, такие как Symfony, поддерживают отрасли сообщений. Эти отрасли определяются по имени файла. Ключи не ограничиваются автоматически отраслями на основе имени файла, но это можно решить, используя уникальный префикс отрасли для ключей внутри файла.
Пример конфигурации CLI
При работе с CLI или подключении проекта к хранилищу (например, GitHub, GitLab или Bitbucket) настройте файл конфигурации для управления загрузкой и выгрузкой.
Для примера, в проекте есть несколько семантически именованных файлов перевода для оригинала языкового стандарта. Например: accounts.en.yml, emails.en.yml и т. д. Эти семантические имена управляются с помощью тегов.
Настройте .phrase.yml, чтобы отразить организацию файлов в проект локализации и связать их с тегами в проект Strings, включив заполнитель тега в путь к файлу:
phrase:
access_token: "3d7e6598d955bfcab104c45c40af1b9459df5692ac4c28a17793"
project_id: "23485c9c5dfb15d85b32d9c5f3d2hl54"
file_format: yml
push:
sources:
- file: ./path/to/locales/<tag>.en.yml
params:
locale_id: \"abcd1234cdef1234abcd1234cdef1234\"
pull:
targets:
# accounts
- file: ./path/to/locales/accounts.<языковой стандарт_name>.yml
params:
tags: accounts
# emails
- file: ./path/to/locales/emails.<языковой стандарт_name>.yml
params:
tags: emails
Важно
Хотя это поддерживается, по соображениям безопасности не рекомендуется хранить токен для получения доступа внутри файла.
Установка переменной окружения PHRASE_ACCESS_TOKEN является более безопасной.
Параметр tags также можно использовать в разделе push вместо использования заполнителя <tag>.
Конфигурация создает ключи с тегами на основе файла, из которого они были получены, при выполнении push или запуске синхронизации из хранилища. При выполнении pull или запуске экспортировать в хранилище ключи группируются в файлы на основе их тегов.
Продукт, веб-сайт или приложение переводятся на ряд разных языков, но в некоторых случаях локализация — это не только выбранный язык, но и разные версии в рамках одного языка.
Дальнейшее разграничение требуется, если:
-
Продукт имеет разный брендинг в регионах, где говорят на одном и том же языке.
-
Продукт используется разными клиентами, которые хотят использовать решение white label.
-
Требуются языковые варианты, такие как простой, формальный или неформальный.
Локализация статического продукта
Если продукт полностью разработан и редко обновляется, отдельная версия продукта может существовать в рамках проекта.
-
Если это единый результат или краткосрочный проект:
Создать ветвь, работать исключительно над этой ветвью в течение всего срока работы над проектом и Удалить ветвь, когда работа будет Завершить.
-
Если это долгосрочный проект:
Поддерживать Дублировать существующего проекта. Это позволяет приглашать и работать с клиентами в одной организации, предоставляя доступ только к их проекту (проектам), оставляя другие проекты скрытыми для них.
Локализация проекта с постоянными обновлениями
Если продукт постоянно обновляется новым контентом (ключи), применять эти обновления к нескольким проектам и поддерживать их синхронизацию сложно. Использовать выделенные языки в рамках проекта для их поддержки.
Языковые коды, соответствующие стандарту ISO (например, en-US), не обязательно должны быть уникальными, поэтому можно создать внутри проекта множество версий одного и того же языка. Различайте регионы, клиентов или аудитории, используя уникальное название языка.
После настройки любой новый ключ, добавленный в языковой стандарт по умолчанию, будет отображаться как не переведено в других языках и будет локализован соответствующим образом. При работе с клиентом и его собственным переводчиком (переводчиками) назначьте их так, чтобы они могли редактировать только свои языковые версии, обновив доступ к языку в их профиль пользователя или в управлении пользователями проекта.
Настроить параллельные процессы локализации с помощью заданий и рабочих процессов проверки в рамках одного проекта. Эта гибкость также распространяется на выгрузку и загрузку языковых файлов или автоматизированные процессы через интерфейс приложений API.