, и не обрабатываются для файлов размером более 10 Мб.
Для обработки файлов .ARB выберите тип файла JSON при создании нового задания.
Важно
Проблемы с тегами являются распространенной причиной ошибок экспорта. Всегда убедитесь, что теги и форматирование правильные перед экспортом файлов, запустив проверки контроля качества.
Типы файлов
-
.JSON
Параметры импорта
-
Сообщения ICU автоматически конвертируются в теги. Когда сегмент содержит встроенные элементы, разбор ICU для этого сегмента пропускается. Сегменты без встроенных элементов разбираются нормально.
-
Импортируются HTML теги, содержащиеся в файле. Далее теги можно использовать с настройками импорта файлов .HTML.
Если этот параметр включен, символы HTML
&и<преобразуются в символы сущности&и<в завершенном файле. -
Применить регулярные выражения, чтобы преобразовать указанный текст в теги.
-
Импортировать только определенные ключи (используйте regex)
-
Исключить определенные ключи (используйте regex
-
Подходящий контент отображается в контекстных примечаниях.
-
Импортировать элементы или максимальную длину перевода для каждого элемента. Ограничение количества символов для каждого сегмента отображается на панели в редакторе. Любой символ, превышающий лимит, выделен красным цветом.
-
Составляет контекст памяти переводов (TM) (101% совпадения), если это применимо.
JSON — это сокращение от JavaScript Object Notation. Хотя изначально он был разработан только для JavaScript, он стал стандартным форматом обменных файлов параллельно с .XML, .YAML, .Properties и т. д. JSON состоит из пар «ключ-значение», обернутых фигурными скобками. Значение может быть как строкой, числом, так и объектом (а именно одной или несколькими парами «ключ-значение», обернутыми фигурными скобками). Простой JSON — это просто файл .JSON, большинство значений которого составляют простые строки, за исключением форм множественного числа. В этом случае именно строки, помещенные в качестве значений, в итоге будут переведены.
Рекомендуемые настройки импорта
Массив JSON — это список пар имени-значения, заключенных в квадратные скобки []. Объект JSON — это список пар имени-значения, заключенных в фигурные скобки {}
-
Импортировать только конкретные ключи (используйте регулярное выражение):
simple_key|nested.deeply.key-
Чтобы импортировать все значения массива после ключа sample_collection:
(^|.*/)sample_collection\[.*\] -
Чтобы импортировать все значения объекта после ключа pluralized_key:
(^|.*/)pluralized_key/.*
-
-
Исключить только конкретные ключи (используйте регулярное выражение):
unverified_key -
Контекстный ключ:
-
Чтобы ключ имел значение key_with_description, используйте:
/key_with_description -
Если оно не указано или отсутствует, то формируется ключом родительского элемента/ключом дочернего элемента
-
Ключи JSON, такие как boolean_key, не могут быть заданы в качестве контекстного ключа.
-
Пример:
{
"boolean_key": "--- true\n",
"empty_string_translation": "",
"key_with_description": "Посмотрите на это!" У этого ключа есть описание! (По крайней мере, в некоторых форматах)",
"key_with_line-break": "Это перевод содержит\nперенос строки.",
"nested.deeply.key": "Ого, этот ключ вложен еще глубже.",
"nested.key": "Этот ключ вложен внутри пространства имен.",
"null_translation": null,
"pluralized_key": {
"one": "Найдено только одно множественное число.",
"other": "Ого, у вас %s множественных чисел!","
"zero": "У вас нет множественного числа."
},
"sample_collection": [
"first item",
"second item",
"третий элемент"
],
"simple_key": "Просто простой ключ с простым сообщением.",
"unverified_key": "Этот перевод еще не подтвержден и ждет подтверждения." (В некоторых форматах мы также экспортируем этот статус)"
}
Вложенный JSON — это просто файл JSON, довольно большая часть значений которого приходится на другие объекты JSON. По сравнению с простым JSON, вложенный JSON обеспечивает более высокую четкость, разъединяя объекты на разные слои, что упрощает его обслуживание.
Рекомендуемые настройки импорта
Массив JSON — это список пар имени-значения, заключенных в квадратные скобки []. Объект JSON — это список пар имени-значения, заключенных в фигурные скобки {}
-
Импортировать только конкретные ключи (используйте регулярное выражение):
key_with_line-break|simple_key-
Чтобы импортировать значение массива после ключа sample_collection:
(^|.*/)sample_collection\[.*\] -
Чтобы импортировать все значения объекта после ключа pluralized_key:
(^|.*/)pluralized_key/.* -
Чтобы импортировать значение первого ключа key:
nested/deeply/key -
Чтобы импортировать значение второго ключа key:
nested/key -
Чтобы импортировать значение ключа key независимо от уровня:
(^|.*/)key
-
-
Исключить только конкретные ключи (используйте регулярное выражение):
unverified_key -
Контекстный ключ:
-
Чтобы ключ имел значение key_with_description, используйте:
/key_with_description -
Если оно не указано или отсутствует, то формируется ключом родительского элемента/ключом дочернего элемента
-
Ключи JSON, такие как boolean_key, не могут быть заданы в качестве контекстного ключа.
-
Пример:
{
"boolean_key": "--- true\n",
"empty_string_translation": "",
"key_with_description": "Посмотрите на это!" У этого ключа есть описание! (По крайней мере, в некоторых форматах)",
"key_with_line-break": "Это перевод содержит\nперенос строки.",
"nested": {
"deeply": {
"key": "Ух ты, этот ключ вложен еще глубже."
},
"key": "Этот ключ вложен внутри пространства имен."
},
"null_translation": null,
"pluralized_key": {
"one": "Найдено только одно множественное число.",
"other": "Ого, у вас %s множественных чисел!","
"zero": "У вас нет множественного числа."
},
"sample_collection": [
"first item",
"second item",
"третий элемент"
],
"simple_key": "Просто простой ключ с простым сообщением.",
"unverified_key": "Этот перевод еще не подтвержден и ждет подтверждения." (В некоторых форматах мы также экспортируем этот статус)"
}
React-Intl — это библиотека JavaScript, предназначенная для упрощения интернационализации (i18n) и (локализации) в первую очередь приложений, разработанных в React. По умолчанию React-Intl использует файлы .js для хранения локализованного контента.
Рекомендуемые настройки импорта
Массив JSON — это список пар с именами-значениями, заключенных в квадратные скобки []
-
Импортировать только конкретные ключи (используйте регулярное выражение):
key_with_line-break|nested.deeply.key-
Чтобы импортировать все значения массива после ключа sample_collection:
(^|.*/)sample_collection\[.*\]
-
-
Исключить только конкретные ключи (используйте регулярное выражение):
unverified_key -
Контекстный ключ:
-
Чтобы ключ имел значение key_with_description, используйте:
/key_with_description -
Если оно не указано или отсутствует, то формируется ключом родительского элемента/ключом дочернего элемента
-
Ключи JSON, такие как boolean_key, не могут быть заданы в качестве контекстного ключа.
-
Пример:
{
"boolean_key": "--- true\n",
"empty_string_translation": "",
"key_with_description": "Посмотрите на это!" У этого ключа есть описание! (По крайней мере, в некоторых форматах)",
"key_with_line-break": "Это перевод содержит\nперенос строки.",
"nested.deeply.key": "Я глубоко вложенный ключ.",
"nested.key": "Этот ключ вложен внутри пространства имен.",
"null_translation": null,
"pluralized_key.one": "Найдено только одно котенок.",
"pluralized_key.other": "У вас %s котят!","
"pluralized_key.zero": "У вас нет котят.",
"sample_collection": [
"first item",
"second item",
"третий элемент"
],
"simple_key": "Простой ключ, простое сообщение, так просто.",
"unverified_key": "Этот перевод еще не подтвержден и ждет подтверждения." (В некоторых форматах мы также экспортируем этот статус)"
}
React-Intl — это библиотека JavaScript, предназначенная для упрощения интернационализации (i18n) и (локализации) в первую очередь приложений, разработанных в React. По умолчанию React-Intl использует файлы .js для хранения локализованного контента.
Рекомендуемые настройки импорта
Массив JSON — это список пар имени-значения, заключенных в квадратные скобки []. Объект JSON — это список пар имени-значения, заключенных в фигурные скобки {}
-
Импортировать только конкретные ключи (используйте регулярное выражение):
key_with_line-break|simple_key-
Чтобы импортировать все значения массива после ключа sample_collection:
(^|.*/)sample_collection\[.*\] -
Чтобы импортировать все значения объекта после ключа pluralized_key:
(^|.*/)pluralized_key/.* -
Чтобы импортировать значение первого ключа key:
nested/deeply/key -
Чтобы импортировать значение второго ключа key:
nested/key -
Чтобы импортировать значение ключа key независимо от уровня:
(^|.*/)key
-
-
Исключить только конкретные ключи (используйте регулярное выражение):
unverified_key -
Контекстный ключ:
-
Чтобы ключ имел значение key_with_description, используйте:
/key_with_description -
Если оно не указано или отсутствует, то формируется ключом родительского элемента/ключом дочернего элемента
-
Ключи JSON, такие как boolean_key, не могут быть заданы в качестве контекстного ключа.
-
Пример:
{
"boolean_key": "--- true\n",
"empty_string_translation": "",
"key_with_description": "Проверьте это!" У этого ключа есть описание! (По крайней мере, в некоторых форматах это так)",
"key_with_line-break": "Это перевод содержит\nперенос строки.",
"nested": {
"deeply": {
"key": "Эй, этот ключ вложен еще глубже."
},
"key": "Этот ключ вложен внутри пространства имен."
},
"null_translation": null,
"pluralized_key": {
"one": "Найдено только одно множественное число.",
"other": "Ого, у вас %s множественных чисел!","
"zero": "У вас нет множественного числа."
},
"sample_collection": [
"first item",
"second item",
"третий элемент"
],
"simple_key": "Простой ключ с простым сообщением.",
"unverified_key": "Этот перевод еще не подтвержден и ждет подтверждения." (В некоторых форматах мы также экспортируем этот статус)"
}
Локализованные строки для расширений Chrome хранятся в файле JSON, который часто называют messages.json. Структура файлов Chrome JSON несколько отличается от структуры файлов JSON, используемых для локализации на других платформах. В Chrome JSON строки, требующие перевода, помещаются в под-ключ сообщение, вложенный под каждую пару ключ-значение. К каждой паре ключ-значение может быть добавлено описание.
Рекомендуемые настройки импорта
Объект JSON — это список пар имени-значения, заключенных в фигурные скобки {}.
-
Импортировать только конкретные ключи (используйте регулярное выражение):
.*/message|.*/content-
Чтобы импортировать только первое значение ключа message:
prompt_for_name/message -
Чтобы импортировать все значения объекта после ключа user:
.*/user/.*
-
-
Исключить только конкретные ключи (используйте регулярное выражение):
.*/example -
Контекстное примечание:
-
Чтобы ключ имел значение description:
../description -
Если оно не указано или отсутствует, то формируется ключом родительского элемента/ключом дочернего элемента
-
Ключ JSON, такой как prompt_for_name, не может быть задан в качестве контекстного примечания.
-
-
Преобразовать в теги Phrase:
\$[^\$]+\$
Пример:
{
"prompt_for_name": {
"message": "Как вас зовут?",
"description": "Спросите имя пользователя"
},
"hello": {
"message": "Здравствуйте, $USER$,",
"description": "Поздоровайтесь с пользователем,",
"placeholders": {
"user": {
"content": "$1",
"example": "Cira"
}
}
},
"bye": {
"message": "До свидания, $USER$.", Возвращайтесь на $OUR_SITE$ скоро!"
"description": "Попрощайтесь с пользователем",
"placeholders": {
"our_site": {
"content": "Example.com"
},
"user": {
"content": "$1",
"example": "Cira"
}
}
}
}
Go-i18n — это библиотека интернационализации, разработанная для Golang. Поддерживаемые форматы файлов локализации включают JSON, YAML, TOML и т. д. Файлы JSON, используемые go-i18n, отличаются от файлов других платформ локализации/интернационализации тем, что go-18n JSON часто существует в виде массива JSON, состоящего из последовательных объектов JSON. Каждый объект JSON представляет собой строку, требующую перевода, определяемую такими ключами, как идентификатор.
Рекомендуемые настройки импорта
Объект JSON — это список пар имени-значения, заключенных в фигурные скобки {}.
-
Импортировать только определенные ключи (используйте регулярное выражение):
.*/translation-
Чтобы импортировать все значения объекта после ключа translation:
.*/translation/.* -
Чтобы импортировать только значения второго объекта после ключа translation:
.*\[2\]/translation/.* -
Чтобы импортировать значение одного ключа объекта после ключа translation:
.*/translation/one -
Чтобы импортировать значение одного ключа в 5th translation:
.*\[5\]/translation/one -
Чтобы импортировать значение других ключей в объектах, следующих за ключом translation:
(^|.*/)translation/other -
Чтобы импортировать значение другого ключа во 2-м объекте после ключа translation:
.*\[2\]/translation/other
-
-
Исключить только конкретные ключи (используйте регулярное выражение):
.*/other -
Контекстный ключ:
-
Для получения значения ключа id используйте:
../id -
Если оно не указано или отсутствует, то формируется ключом родительского элемента/ключом дочернего элемента
-
Ключи JSON, такие как один, не могут быть заданы в качестве контекстного ключа.
-
-
Преобразовать в теги Phrase:
\{\{[^\}]+\}\}
Пример:
[
{
"id": "d_days",
"translation": {
"one": "{{.Count}} день",
"other": "{{.Count}} дня"
}
},
{
"id": "my_height_in_meters",
"translation": {
"one": "Я {{.Count}} метр ростом.",
"other": "Я {{.Count}} метра ростом."
}
},
{
"id": "person_greeting",
"translation": "Привет {{.Person}}"
},
{
"id": "person_unread_email_count",
"translation": {
"one": "{{.Person}} имеет {{.Count}} непрочитанное письмо.",
"other": "{{.Person}} имеет {{.Count}} непрочитанных писем."
}
},
{
"id": "person_unread_email_count_timeframe",
"translation": {
"one": "{{.Person}} имеет {{.Count}} непрочитанное письмо за последние {{.Timeframe}}.",
"other": "{{.Person}} имеет {{.Count}} непрочитанных писем за последние {{.Timeframe}}."
}
},
{
"id": "program_greeting",
"translation": "Привет, мир"
},
{
"id": "your_unread_email_count",
"translation": {
"one": "У вас {{.Count}} непрочитанное письмо.",
"other": "У вас {{.Count}} непрочитанных писем."
}
}
]
I18n-node-2 - это библиотека на базе Node.js, которая работает с Express.js. I18n-node-2 интегрируется с приложениями, обеспечивая немедленное извлечение строк. i18n-node-2 - это все, что требуется, чтобы обернуть строки для перевода с помощью метода по умолчанию _(«... »). При работе i18n-node-2 автоматически генерирует несколько JSON-файлов в зависимости от заданных языковых стандартов. I18n-node-2 использует автоматически сгенерированный формат JSON для хранения переводимых данных. Перед переводом выполните проверку файлов на работоспособность. Поскольку i18n-node-2 поддерживает множественное число, убедитесь, что во время перевода все переменные остаются неизменными.
Рекомендуемые настройки импорта
Массив JSON — это список пар имени-значения, заключенных в квадратные скобки []. Объект JSON — это список пар имени-значения, заключенных в фигурные скобки {}
-
Импортировать только конкретные ключи (используйте регулярное выражение):
simple_key|nested.deeply.key-
Чтобы импортировать все значения массива после ключа sample_collection:
(^|.*/)sample_collection\[.*\] -
Чтобы импортировать все значения объекта после ключа pluralized_key:
(^|.*/)pluralized_key/.*
-
-
Исключить только конкретные ключи (используйте регулярное выражение):
unverified_key -
Контекстный ключ:
-
Чтобы ключ имел значение key_with_description, используйте:
/key_with_description -
Если оно не указано или отсутствует, то формируется ключом родительского элемента/ключом дочернего элемента
-
Ключи JSON, такие как boolean_key, не могут быть заданы в качестве контекстного ключа.
-
Пример:
{
"boolean_key": "--- true\n",
"empty_string_translation": "",
"key_with_description": "Посмотрите на это!" У этого ключа есть описание! (По крайней мере, в некоторых форматах)",
"key_with_line-break": "Это перевод содержит\nперенос строки.",
"nested.deeply.key": "Я глубоко вложенный ключ.",
"nested.key": "Этот ключ вложен внутри пространства имен.",
"null_translation": null,
"pluralized_key": {
"one": "Найдено только одно множественное число.",
"other": "Ого, у вас %s множественных чисел!","
"zero": "У вас нет множественного числа."
},
"sample_collection": [
"first item",
"second item",
"третий элемент"
],
"simple_key": "simple key, simple message, so simple."
"unverified_key": "Этот перевод еще не подтвержден и ждет подтверждения." (В некоторых форматах мы также экспортируем этот статус)"
}