文件导入设置

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

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

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

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

重要

标记相关的问题是导出错误的常见原因。在导出文件之前,始终通过运行质量保证检查确保标记和格式正确。

文件类型

  • .JSON

导入选项

  • 解析 ICU 信息

    ICU 信息会自动转换为标签。当一个句段包含内联元素时,该句段的 ICU 解析将被跳过。没有内联元素的句段会正常解析。

  • 使用 HTML 子过滤器 

    导入文件中包含的 HTML 标签。在这种情况下,标签可用于.HTML文件导入设置。

    若启用,HTML 字符&<将被转换为已完成文件中的实体&amp;&lt;

  • 转换为 Phrase TMS 标签 

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

  • 仅导入特定的键(使用正则表达式

  • 排除特定的键(使用正则表达式

  • 上下文注释

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

  • 译文长度最大值

    导入元素或每个元素的最大译文长度。每个句段的字符限制显示在编辑器内的上下文注释窗口中。所有超出限制的字符都会被标红。

  • 上下文键

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

简单 JSON

JSON 是 JavaScript 对象表示法的简称。虽然最初仅为 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

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

    • boolean_key 等 JSON 键不能设置为上下文键。

示例:

{
  "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": [
    "第一个条目",
    "第二个条目",
    "第三个条目"
  ] ,
  "simple_key": "只是一个简单的键,带有简单的信息。","
  "unverified_key": "此翻译尚未验证,正在等待。"(在某些格式中,我们也导出此状态)"
}

嵌套 JSON

嵌套 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

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

    • boolean_key 等 JSON 键不能设置为上下文键。

示例:

{
  "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": [
    "第一个条目",
    "第二个条目",
    "第三个条目"
  ] ,
  "simple_key": "只是一个简单的键,带有简单的信息。","
  "unverified_key": "此翻译尚未验证,正在等待。"(在某些格式中,我们也导出此状态)"
}

React-Intl 简单 JSON

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

推荐的导入设置

JSON 数组是方括号 [] 内的名称-值对列表。

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

    • 导入 sample_collection 键后数组所有的值:(^|.*/)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": "此翻译包含\n换行。\
  "nested.deeply.key": "我是一把深度嵌套的键。","
  "nested.key": "这个键嵌套在一个命名空间中。\
  "null_translation": null,
  "pluralized_key.one": "只找到一只小猫。","
  "pluralized_key.other": "哇,你有 %s 只小猫!","
  "pluralized_key.zero": "你没有小猫。","
  "sample_collection": [
    "第一个条目",
    "第二个条目",
    "第三个条目"
  ] ,
  "simple_key": "简单的键,简单的信息,太简单了。","
  "unverified_key": "此翻译尚未验证,正在等待。"(在某些格式中,我们也导出此状态)"
}

React-Intl 嵌套 JSON

React-Intl 是一个专为简化国际化(i18n)和本地化而设计的 JavaScript 库,主要适用于在 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

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

    • boolean_key 等 JSON 键不能设置为上下文键。

示例:

{
  "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": [
    "第一个条目",
    "第二个条目",
    "第三个条目"
  ] ,
  "simple_key": "一个简单的键,带有简单的信息。","
  "unverified_key": "翻译尚未验证,等待验证。"(在某些格式中,我们也导出此状态)"
}

Chrome JSON 国际化

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

推荐的导入设置

JSON 对象是大括号 {} 内的名称-值对列表。

  • 仅导入特定的键(使用正则表达式):.*/message|.*/content

    • 仅导入 message 键的第一个值:prompt_for_name/message

    • 导入 user 键后对象的所有值:.*/user/.*

  • 仅排除特定的键(使用正则表达式):.*/example

  • 上下文注释:

    • 对于具有 description 键的值:../description

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

    • prompt_for_name 等 JSON 键不能设置为上下文注释。

  • 转换为 Phrase 标签:\$[^\$]+\$

示例:

{
  "prompt_for_name": {
    "message": "你叫什么名字?"
    "description": "询问用户的名字"
  },
  "hello": {
    "message": "Hello, $USER$",
    "description": "向用户问好,"
    "placeholders": {
      "user": {
        "content": "$1",
        "example": "Cira"
      }
    }
  },
  "bye": {
    "message": "Goodbye, $USER$.请尽快回到 $OUR_SITE$!
    "description": "向用户道别,"
    "placeholders": {
      "our_site": {
        "content": "Example.com"
      },
      "user": {
        "content": "$1",
        "example": "Cira"
      }
    }
  }
}

Go-i18n JSON

Go-i18n 是一个专为 Golang 设计的国际化库。支持的本地化文件格式包括 JSON、YAML、TOML 等。Go-i18n 使用的 JSON 文件与其他本地化/国际化平台的文件不同,因为 Go-i18n JSON 通常作为一个 JSON 数组存在,由一系列 JSON 对象组成。每个 JSON 对象代表需要翻译的字符串,由 ID 等键表示。

推荐的导入设置

JSON 对象是大括号 {} 内的名称-值对列表。

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

    • 导入 translation 键后对象所有的值:.*/translation/.*

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

    • 导入 translation 键后对象中的一个键的值:.*/translation/one

    • 导入 5th translation 键中一个键的值:.*\[5\]/translation/one

    • 导入 translation 键后对象中其他键的值:(^|.*/)translation/other

    • 导入 translation 键后第二个对象中其他键的值:.*\[2\]/translation/other

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

  • 上下文键:

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

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

    • one 等 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": {
      "one": "{{.Person}} has {{.Count}} unread email.",
      "other": "{{.Person}} 有 {{.Count}} 封未读邮件。"
    }
  },
  {
    "id": "person_unread_email_count_timeframe",
    "translation": {
      "one": "{{.Person}} 在过去 {{.Timeframe}} 有 {{.Count}} 封未读邮件。","
      "other": "{{.Person}} 在过去 {{.Timeframe}} 有 {{.Count}} 封未读邮件。"
    }
  },
  {
    "id": "program_greeting",
    "translation": "你好,世界"
  },
  {
    "id": "your_unread_email_count",
    "translation": {
      "one": "您有 {{.Count}} 封未读电子邮件。","translation_2":""other": "您有  封未读电子邮件。","translation_3":"i18n-node-2 是基于 Node.js 的库,可与 Express.js 一起使用。","translation_4":"i18n-node-2 通过立即提取字符串与应用程序集成。i18n-node-2 是将待翻译的字符串包装起来所需的所有必要工具。","translation_5":"在运行时,i18n-node-2 会根据预定义的区域自动生成多个 JSON 文件。","translation_6":"i18n-node-2 使用自动生成的 JSON 格式存储可译的数据。","translation_7":"在翻译之前,对文件进行健全性检查。","translation_8":"由于 i18n-node-2 支持复数,因此在翻译过程中确保所有变量保持不变。","translation_9":""simple_key": "简单的键,简单的消息,如此简单。"}}]}
      "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 键后数组所有的值:(^|.*/)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": "此翻译包含\n换行。\
  "nested.deeply.key": "我是一把深度嵌套的键。","
  "nested.key": "这个键嵌套在一个命名空间中。\
  "null_translation": null,
  "pluralized_key": {
    "one": "只找到一个复数形式。\
    "other": "哇,你有 %s 个复数形式!\
    "zero": "你没有复数形式。"
  },
  "sample_collection": [
    "第一个条目",
    "第二个条目",
    "第三个条目"
  ] ,
  "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.