文件导入设置

.JSON - JavaScript 对象标记 (TMS)

文本由 Phrase Language AI 从英语机器翻译而得。

不处理大于10MB的文件的上下文注释上下文键和译文长度上限

要处理.ARB文件,在创建新工作时选择JSON文件类型。

文件类型

  • .JSON

导入选项

  • 解析 ICU 消息

    ICU 信息会自动转换为标记。带有ICU消息的句段不能包含任何行内元素。

  • 使用 HTML 子过滤器 

    导入该文件中包含的 HTML 标记。标记可用于.HTML文件导入设置。

    如果启用,HTML 字符 & 将被转换为已完成文件中的实体 &<

  • 转换为 Phrase TMS 标签 

    应用正则表达式将特定文本转换为标记。

  • 只导入特定的密钥(使用正则表达式

  • 排除特定字符串(使用正则表达式

  • 上下文注释

    匹配的内容在上下文注释中显示。

  • 译文长度最大值

    导入元素或每个元素译文的最大长度。每个句段的字符限制显示在编辑器内的上下文注释窗格上。任何超出限制的字符都会以红色突出显示。

  • 上下文键

    如果适用,构成翻译记忆库上下文(101%匹配)。

简单 JSON

JSON 是 JavaScript 对象标记的缩写。虽然最初仅为 JavaScript 设计,但它已成为与 .XML、.YAML、.Properties 等并行的标准交换文件格式。JSON 由用方括号括起来的键值对组成。值可以是字符串、数字或对象(即一个或多个用大括号括起来的键-值对)。Simple JSON 只是一个 .JSON 文件,除了复数,其大多数值都是普通 Strings。在这种情况下,作为值放置的 Strings 将是最终被翻译的字符串。

推荐导入设置

JSON 数组是包含在方括号 [] 中的名称-值对列表。JSON 对象是包含在大括号{}中的名称-值对列表

  • 只导入特定的键(使用正则表达式): ⁇ simple_key|nested.deeply.key

    • 要导入 sample_collection 键之后的所有数组值: ⁇ (^|.*/)sample_collection\[.*\]

    • 要导入复数_键之后的对象的所有值: ⁇ (^|.*/)复数_键/.*

  • 只排除特定的键(使用正则表达式): ⁇ 未验证_键

  • 上下文键:

    • 对于具有键_with_description键的值,使用: ⁇ ../键_with_description

    • 如果未指定或缺失,则由父键/子键形成

    • boolean_key等JSON键无法设置为上下文键。

例如:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":快去看看 ! ”这个字键有说明!(至少某些格式)",
  "key_with_line-break":“这些翻译包含\na 换行符。”,
  "nested.deeply.key":“哇,这个字键嵌套的更深。”,
  "nested.key":"此字键嵌套在名称空间中。",
  "null_translation": null,
  "pluralized_key": {
    "one":“仅找到一个复数。”,
    "other":“哇,您有 %s 个复数!”,
    "zero":“你没有复数。”
  },
  "sample_collection": [
    “第一项”,
    "second item",
    “第三个项目”
  ],
  "simple_key":"只是一个带有简单信息的简单键。",
  "unverified_key":"译文尚未已验证,请等待。(某些格式我们也会导出这种状态)"
}

嵌套 JSON

嵌套 JSON 只是一个 JSON 文件,其值的很大一部分是其他 JSON 对象。与 Simple JSON 相比,嵌套 JSON 的清晰度更高,因为它将对象解耦到不同的层中,因此更容易维护。

推荐导入设置

JSON 数组是包含在方括号 [] 中的名称-值对列表。JSON 对象是包含在大括号{}中的名称-值对列表

  • 只导入特定的键(使用正则表达式): ⁇ 键_with_line-break|simple_键

    • 要导入 example_collection 键之后的数组值: ⁇ (^|.*/)example_collection\[.*\]

    • 要导入复数_键之后的对象的所有值: ⁇ (^|.*/)复数_键/.*

    • 要导入第一个的值: ⁇ 嵌套/深度/键

    • 要导入第二个的值: ⁇ 嵌套/键

    • 导入的值不分级别: ⁇ (^|.*/)键

  • 只排除特定的键(使用正则表达式): ⁇ 未验证_键

  • 上下文键:

    • 对于具有该键值的键_with_description,使用: ⁇ ../键_with_description

    • 如果未指定或缺失,则由父键/子键形成

    • boolean_key等JSON键无法设置为上下文键。

例如:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":快去看看 ! ”这个字键有说明!(至少某些格式)",
  "key_with_line-break":“这些翻译包含\na 换行符。”,
  "nested": {
    "deeply": {
      "key":“哇,这个键套得更深。”
    },
    "key":"这个字键嵌套在一个名字空间中。"
  },
  "null_translation": null,
  "pluralized_key": {
    "one":“仅找到一个复数。”,
    "other":“哇,您有 %s 个复数!”,
    "zero":“你没有复数。”
  },
  "sample_collection": [
    “第一项”,
    "second item",
    “第三个项目”
  ],
  "simple_key":"只是一个带有简单信息的简单键。",
  "unverified_key":"译文尚未已验证,请等待。(某些格式我们也会导出这种状态)"
}

React-Intl Simple JSON

React-Intl 是一个专为简化国际化(i18n)和(本地化)设计的 JavaScript 库,主要适用于使用 React 开发的应用程序。默认情况下,React-Intl 使用 .js 文件来存储其本地化内容。

推荐导入设置

JSON 数组是包含在方括号中的名称-值对列表[]

  • 只导入特定的键(使用正则表达式): ⁇ 键_with_line-break|nested.deeply.键

    • 要导入 sample_collection 键之后的所有数组值: ⁇ (^|.*/)sample_collection\[.*\]

  • 只排除特定的键(使用正则表达式): ⁇ 未验证_键

  • 上下文键:

    • 对于具有键_with_description键的值,使用: ⁇ ../键_with_description

    • 如果未指定或缺失,则由父键/子键形成

    • boolean_key等JSON键无法设置为上下文键。

例如:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":快去看看 ! ”这个字键有说明!(至少某些格式)",
  "key_with_line-break":“这些翻译包含\na 换行符。”,
  "nested.deeply.key":“我是深度嵌套的键。”,
  "nested.key":"此字键嵌套在名称空间中。",
  "null_translation": null,
  "pluralized_key.one":“只找到一只小猫。”,
  "pluralized_key.other":“哇,您有 %s 只小猫!”,
  "pluralized_key.zero":「你没有小猫。」
  "sample_collection": [
    “第一项”,
    "second item",
    “第三个项目”
  ],
  "simple_key":“简单的键,简单的信息,那么简单。”,
  "unverified_key":"译文尚未已验证,请等待。(某些格式我们也会导出这种状态)"
}

反应内部嵌套 JSON

React-Intl 是一个专为简化国际化(i18n)和(本地化)设计的 JavaScript 库,主要适用于使用 React 开发的应用程序。默认情况下,React-Intl 使用 .js 文件来存储其本地化内容。

推荐导入设置

JSON 数组是包含在方括号 [] 中的名称-值对列表。JSON 对象是包含在大括号{}中的名称-值对列表

  • 只导入特定的键(使用正则表达式): ⁇ 键_with_line-break|simple_键

    • 要导入 sample_collection 键之后的所有数组值: ⁇ (^|.*/)sample_collection\[.*\]

    • 要导入复数_键之后的对象的所有值: ⁇ (^|.*/)复数_键/.*

    • 要导入第一个的值: ⁇ 嵌套/深度/键

    • 要导入第二个的值: ⁇ 嵌套/键

    • 导入的值不分级别: ⁇ (^|.*/)键

  • 只排除特定的键(使用正则表达式): ⁇ 未验证_键

  • 上下文键:

    • 对于具有键_with_description键的值,使用: ⁇ ../键_with_description

    • 如果未指定或缺失,则由父键/子键形成

    • boolean_key等JSON键无法设置为上下文键。

例如:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":“那好吧!这个字键有说明!(至少在某些格式中是这样)",
  "key_with_line-break":“这些翻译包含\na 换行符。”,
  "nested": {
    "deeply": {
      "key":“嘿,这个键套的更深。”
    },
    "key":"这个字键嵌套在一个名字空间中。"
  },
  "null_translation": null,
  "pluralized_key": {
    "one":“仅找到一个复数。”,
    "other":“哇,您有 %s 个复数!”,
    "zero":“你没有复数。”
  },
  "sample_collection": [
    “第一项”,
    "second item",
    “第三个项目”
  ],
  "simple_key":“一个简单的键与一个简单的信息。”,
  "unverified_key":"翻译尚未已验证,请等待。(某些格式我们也会导出这种状态)"
}

Chrome JSON i18n

本地化的 Chrome 扩展字符串存储在一个通常名为 Messages.json 的 JSON 文件中。Chrome JSON 文件的结构与其他平台上用于本地化的 JSON 文件略有不同。对于 Chrome JSON,需要翻译的 Strings 被放置在嵌套在每个单位键值对下的子键信息中。还可为每个键值对添加说明

推荐导入设置

JSON 对象是包含在大括号{}中的名称-值对列表。

  • 只导入特定的字符串(使用正则表达式): ⁇ .*/ message|.*/content

    • 只导入消息键的第一个值: ⁇ prompt_for_name/ message

    • 要导入用户键之后的对象的所有值: ⁇ .*/用户/.*

  • 只排除特定的字符串(使用正则表达式): ⁇ .*/example

  • 上下文注释:

    • 对于具有说明键值的情况: ⁇ ../说明

    • 如果未指定或缺失,则由父键/子键形成

    • prompt_for_name等JSON键无法设置为上下文注释。

  • 转换为 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"
      }
    }
  }
}

转到 i18n JSON

Go-i18n 是一个专为 Go 设计的国际化库。支持的本地化文件格式有JSON、YAML、TOML等。go-i18n 使用的 JSON 文件与其他本地化/国际化平台的不同之处在于,go-18n 的 JSON 通常以 JSON 数组的形式存在,数组由一系列 JSON 对象组成。每个JSON对象都代表由 ID 等键识别的需要翻译的字符串。

推荐导入设置

JSON 对象是包含在大括号{}中的名称-值对列表。

  • 只导入特定的字符串(使用正则表达式): ⁇ .*/翻译

    • 要导入翻译键之后的对象的所有值: ⁇ .*/translation/.*

    • 只导入翻译键之后的第二个对象的值: ⁇ .*\[2\]/translation/.*

    • 要在翻译键之后导入对象的 ⁇ one ⁇ 键的值: ⁇ .*/translation/one

    • 要在第5个翻译键中导入 ⁇ 1 ⁇ 键的值: ⁇ 。*\[5\]/translation/one

    • 要在翻译键之后的对象中导入 ⁇ 其他 ⁇ 键的值: ⁇ (^|.*/)translation/other

    • 要在翻译键之后的第二个对象中导入 ⁇ other ⁇ 键的值: ⁇ .*\[2\]/translation/other

  • 只排除特定的字符串(使用正则表达式): ⁇ .*/其他

  • 上下文键:

    • 对于具有 ID 键的值,使用: ⁇ ../id

    • 如果未指定或缺失,则由父键/子键形成

    • 类 JSON 键无法设置为上下文键。

  • 转换为 Phrase TMS 标签: ⁇ \{\{[^\}]+\}\}

例如:

[
{
    "id": "d_days",
    "translation": {
      "one": "{{.Count}} day",
      "other": "{{.Count}} days"
    }
  },
  {
    "id": "my_height_in_meters",
    "translation": {
      "one":“我有{{.Count}}米高。”
      "other":“我有{{.Count}}米高 。 ”
    }
  },
  {
    "id": "person_greeting",
    "translation":“您好{{.Person}}”
  },
  {
    "id": "person_unread_email_count",
    "translation": {
      “一个”:“{{.Person}}有{{.Count}}未读的电子邮件。”,
      “其他”:“{{.Person}}有{{.Count}}封未读的电子邮件。”
    }
  },
  {
    "id": "person_unread_email_count_timeframe",
    "translation": {
      “一个”:“{{.Person}}在过去一{{.Timeframe}}有{{.Count}}未读的电子邮件。”,
      “其他”:“{{.Person}}在过去一{{.Timeframe}}中有{{.Count}}封未读的电子邮件。”
    }
  },
  {
    "id": "program_greeting",
    "translation":“世界,您好”
  },
  {
    "id": "your_unread_email_count",
    "translation": {
      "one":“您有{{.Count}}未读的电子邮件。”,
      "other":“您有{{.Count}}封未读的电子邮件。”
    }
  }
]

i18n-node-2 JSON

I18n-node-2 是一个基于 Node.js 的库,与 Express.js 配合使用。I18n-node-2 通过立即提取字字符串与应用程序集成。 i18n-node-2 是使用默认 _(“...”) 方法包装待翻译Strings所需的一切。在运行时,i18n-node-2根据预先定义的区域自动生成多个JSON文件。I18n-node-2 使用自动生成的 JSON 格式式存储可译的数据。翻译前,检查文件质量。由于 i18n-node-2 支持复数,因此确保在翻译过程中所有变量保持不变。

推荐导入设置

JSON 数组是包含在方括号 [] 中的名称-值对列表。JSON 对象是包含在大括号{}中的名称-值对列表

  • 只导入特定的键(使用正则表达式): ⁇ simple_key|nested.deeply.key

    • 要导入 sample_collection 键之后的所有数组值: ⁇ (^|.*/)sample_collection\[.*\]

    • 要导入复数_键之后的对象的所有值: ⁇ (^|.*/)复数_键/.*

  • 只排除特定的键(使用正则表达式): ⁇ 未验证_键

  • 上下文键:

    • 对于具有键_with_description键的值,使用: ⁇ ../键_with_description

    • 如果未指定或缺失,则由父键/子键形成

    • boolean_key等JSON键无法设置为上下文键。

例如:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":快去看看 ! ”这个字键有说明!(至少某些格式)",
  "key_with_line-break":“这些翻译包含\na 换行符。”,
  "nested.deeply.key":“我是深度嵌套的键。”,
  "nested.key":"此字键嵌套在名称空间中。",
  "null_translation": null,
  "pluralized_key": {
    "one":“仅找到一个复数。”,
    "other":“哇,您有 %s 个复数!”,
    "zero":“你没有复数。”
  },
  "sample_collection": [
    “第一项”,
    "second item",
    “第三个项目”
  ],
  "simple_key": "simple key, simple message, so simple.",
  "unverified_key":"译文尚未已验证,请等待。(某些格式我们也会导出这种状态)"
}
这篇文章有帮助吗?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.