文件导入设置

.JSON - JavaScript 对象表示法 (TMS)

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

超过 10 MB 的文件不会处理上下文注释上下文键译文最大长度

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

文件类型

  • .JSON

导入选项

  • 解析 ICU 信息

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

  • 使用 HTML 子过滤器 

    导入文件中包含的 HTML 标记。然后,标记可以与 .HTML 文件导入设置一起使用。

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

  • 转换为 Phrase TMS 标记 

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

  • 仅导入特定字符串(使用正则表达式

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

  • 上下文注释

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

  • 译文长度最大值

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

  • 上下文键

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

Simple JSON

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

推荐的导入设置

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

  • 仅导入特定字符串(使用正则表达式):'simple_key|nested.deeply.key

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

    • 要导入 pluralized_key 字符串之后的对象的所有值:'%(^|.*/)pluralized_key/.*

  • 仅排除特定字符串(使用正则表达式):'unverified_key'

  • 上下文键:

    • 对于具有 key_with_description 密钥的值,请使用:=%../key_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 对象是包含在大括号{}中的名称-值对列表

  • 仅导入特定字符串(使用正则表达式):key_with_line-break|simple_key

    • 要导入 sample_collection 字符串之后的数组值:'%'(^|.*/)sample_collection\[.*\]

    • 要导入 pluralized_key 字符串之后的对象的所有值:'%(^|.*/)pluralized_key/.*

    • 要导入第一个密钥密钥的值:'嵌套/深度/密钥'

    • 要导入第二个密钥密钥的值:'nested/key'

    • 要导入密钥密钥的值而不考虑级别:(^|.*/)密钥

  • 仅排除特定字符串(使用正则表达式):'unverified_key'

  • 上下文键:

    • 对于具有密钥 key_with_description 的值,请使用:=%../key_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 数组是一个名称-值对列表,用方括号括起来[]

  • 仅导入特定字符串(使用正则表达式):key_with_line-break|nested.deeply.key

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

  • 仅排除特定字符串(使用正则表达式):'unverified_key'

  • 上下文键:

    • 对于具有 key_with_description 密钥的值,请使用:=%../key_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":"此翻译尚未验证,正在等待它。(在某些格式中,我们也导出此状态)"
}

React-Intl Nested JSON

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

推荐的导入设置

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

  • 仅导入特定字符串(使用正则表达式):key_with_line-break|simple_key

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

    • 要导入 pluralized_key 字符串之后的对象的所有值:'%(^|.*/)pluralized_key/.*

    • 要导入第一个密钥密钥的值:'嵌套/深度/密钥'

    • 要导入第二个密钥密钥的值:'nested/key'

    • 要导入密钥密钥的值而不考虑级别:(^|.*/)密钥

  • 仅排除特定字符串(使用正则表达式):'unverified_key'

  • 上下文键:

    • 对于具有 key_with_description 密钥的值,请使用:=%../key_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 扩展的本地化字符串存储在一个 JSON 文件中,该文件通常名为 messages.json。Chrome JSON 文件的结构与其他平台上用于本地化的 JSON 文件略有不同。对于 Chrome JSON,需要翻译的字符串被放置在嵌套在每个单元键值对下的子键信息中。也可以为每个键值对添加说明

推荐的导入设置

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

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

    • 仅导入消息字符串的第一个值:'prompt_for_name/message

    • 要导入用户密钥之后的对象的所有值:''。*/user/.*

  • 仅排除特定字符串(使用正则表达式):'%.*/example

  • 上下文注释:

    • 对于具有描述字符串的值:'%../description

    • 如果未指定或缺失,则由父字符串/子字符串组成

    • prompt_for_name 等 JSON 字符串无法设置为上下文注释。

  • 转换为 Phrase 标记:""%1!\$[^\$]+\$

示例:

{
  "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 是一个专为 Golang 设计的国际化库。支持的本地化文件格式包括 JSON、YAML、TOML 等。go-i18n 使用的 JSON 文件与其他本地化/国际化平台的文件不同,因为 go-18n JSON 通常作为由一系列 JSON 对象组成的 JSON 数组存在。每个 JSON 对象代表一个字符串,需要翻译的字符串由 ID 等字符串标识。

推荐的导入设置

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

  • 仅导入特定密钥(使用正则表达式):%.*/translation

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

    • 仅导入翻译键后第二个对象的值:''。*\[2\]/translation/.*

    • 要在翻译字符串之后导入对象的 '%1' 字符串的值:'%.*/translation/one

    • 要在第 5 个翻译密钥中导入 Orchestratorone Orchestratorkey 的值:'.*\[5\]/translation/one

    • 要在翻译字符串之后的对象中导入""%1!other=""keys""的值:"(^|.*/)translation/other"

    • 翻译字符串之后的第二个对象中导入""%1!other=""key""的值:*\[2\]/translation/other

  • 仅排除特定字符串(使用正则表达式):.*/other

  • 上下文键:

    • 对于具有 id 密钥的值,请使用:=%../id

    • 如果未指定或缺失,则由父字符串/子字符串组成

    • 类 JSON 字符串不能设置为上下文字符串。

  • 转换为 Phrase 标记:=%\{\{[^\}]+\}\}

示例:

[
{
    "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 是使用默认 _(“…”) 方法包装待翻译字符串所需的全部内容。i18n-node-2 在运行时会根据预定义的区域自动生成多个 JSON 文件。I18n-node-2 使用自动生成的 JSON 格式存储可译数据。翻译前,检查文件是否正常。由于 i18n-node-2 支持复数,请确保所有变量在翻译过程中保持不变。

推荐的导入设置

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

  • 仅导入特定字符串(使用正则表达式):'simple_key|nested.deeply.key

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

    • 要导入 pluralized_key 字符串之后的对象的所有值:'%(^|.*/)pluralized_key/.*

  • 仅排除特定字符串(使用正则表达式):'unverified_key'

  • 上下文键:

    • 对于具有 key_with_description 密钥的值,请使用:=%../key_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.