文件导入设置

.JSON - JavaScript Object Notation (TMS)

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

对于超过 10 MB 的文件,不会处理上下文注释, 、上下文键和最大译文长度。

至过程 .ARB 文件,请在创建新建 工作时选择 JSON 文件类型。

文件类型

  • .JSON

导入选项

Simple JSON

JSON是JavaScript Object Notation的缩写。虽然最初只为 JavaScript 设计,但它成为与 .XML 并行的标准交换文件格式。亚姆, .属性等JSON 由括在大括号中的键值对组成。值可以是字符串、数字或对象(即用大括号括起来的一个或多个键值对)。简单的 JSON 只是一个 .JSON 文件,除复数目的外,其大部分值都是纯字符串。在这种情况下,作为值放置字符串将是最终被翻译的值。

推荐导入设置

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

  • 仅导入具体 密钥(使用 正则表达式): simple_key|nested.deeply.key

    • 至 导入数组的所有值都跟在sample_collection 键后面 : (^|.*/)sample_collection\[.*\]

    • 至 导入 pluralized_key 键后面 的对象的所有值: (^|.*/)pluralized_key/.*

  • 仅排除具体 密钥(使用 正则表达式): 未验证_key

  • 上下文键:

    • 要获得key_with_description 键的值 ,请使用: ../key_with_description

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

    • 不能将 JSON 密钥(如 boolean_key )设置为上下文键。

例:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":“看看吧!此密钥有描述!(至少在某些格式中)“,
  "key_with_line-break":"This translations contains\na line-break.",
  "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中断|simple_key

    • 至 导入数组的值跟在sample_collection 键后面  :(^|.*/)sample_collection\[.*\]

    • 至 导入 pluralized_key 键后面 的对象的所有值: (^|.*/)pluralized_key/.*

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

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

    • 至 导入键 的值 ,而不考虑级别: (^|。*/)键

  • 仅排除具体 密钥(使用 正则表达式): 未验证_key

  • 上下文键:

    • 要获得键 key_with_description, 的值,请使用: ../key_with_description

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

    • 不能将 JSON 密钥(如 boolean_key )设置为上下文键。

例:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":“看看吧!此密钥有描述!(至少在某些格式中)“,
  "key_with_line-break":"This translations contains\na line-break.",
  "nested": {
    "deeply": {
      "key":“哇,这把钥匙嵌套得更深了。”
    },
    "key":“此密钥嵌套在命名空间中。”
  },
  "null_translation": null,
  "pluralized_key": {
    "one":“只找到一个复数。”
    "other":“哇,你有%s复数!”
    "zero":“你没有复数。”
  },
  "sample_collection": [
    “第一项目”,
    “第二项目”,
    “第三项目”
  ],
  "simple_key":“只是一个带有简单消息的简单密钥。”
  "unverified_key":“这个翻译还没有已验证,等待它。(在某些格式中,我们也导出此状态)”
}

React-Intl Simple JSON

React-Intl 是一个 JavaScript 库,旨在简化国际化 (i18n) 和 (本地化),主要用于使用 React 开发的应用程序。到默认,React-Intl 使用.js文件来存储其本地化内容。

建议的导入设置

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

  • 仅导入具体 密钥(使用 正则表达式): key_with_line-break|nested.deeply.key

    • 至 导入数组的所有值都跟在sample_collection 键后面 : (^|.*/)sample_collection\[.*\]

  • 仅排除具体 密钥(使用 正则表达式): 未验证_key

  • 上下文键:

    • 要获得key_with_description 键的值 ,请使用: ../key_with_description

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

    • 不能将 JSON 密钥(如 boolean_key )设置为上下文键。

例:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":“看看吧!此密钥有描述!(至少在某些格式中)“,
  "key_with_line-break":"This translations contains\na line-break.",
  "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 Nested JSON

React-Intl 是一个 JavaScript 库,旨在简化国际化 (i18n) 和 (本地化),主要用于使用 React 开发的应用程序。到默认,React-Intl 使用.js文件来存储其本地化内容。

建议的导入设置

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

  • 仅导入具体 密钥(使用 正则表达式): key_with_line中断|simple_key

    • 至 导入数组的所有值都跟在sample_collection 键后面 : (^|.*/)sample_collection\[.*\]

    • 至 导入 pluralized_key 键后面 的对象的所有值: (^|.*/)pluralized_key/.*

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

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

    • 至 导入键 的值 ,而不考虑级别: (^|。*/)键

  • 仅排除具体 密钥(使用 正则表达式): 未验证_key

  • 上下文键:

    • 要获得key_with_description 键的值 ,请使用: ../key_with_description

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

    • 不能将 JSON 密钥(如 boolean_key )设置为上下文键。

例:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":“检查一下!此密钥有描述!(至少在某些格式中确实如此)“,
  "key_with_line-break":"This translations contains\na line-break.",
  "nested": {
    "deeply": {
      "key":“嘿嘿,这把钥匙窝得更深了。”
    },
    "key":“此密钥嵌套在命名空间中。”
  },
  "null_translation": null,
  "pluralized_key": {
    "one":“只找到一个复数。”
    "other":“哇,你有%s复数!”
    "zero":“你没有复数。”
  },
  "sample_collection": [
    “第一项目”,
    “第二项目”,
    “第三项目”
  ],
  "simple_key":“带有简单消息的简单密钥。”
  "unverified_key":“翻译还没有已验证,等待着它。(在某些格式中,我们也导出此状态)”
}

Chrome JSON i18n

Chrome 扩展程序的本地化字符串存储在通常名为 messages.json的 JSON 文件中。Chrome JSON 文件的结构与其他平台上用于本地化的 JSON 文件略有不同。对于 Chrome JSON,需要翻译的字符串将放置在嵌套在每个单元键值对下的子键 消息 中。还可以为每个键值对已添加描述

建议的导入设置

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

  • 仅导入具体 密钥(使用 正则表达式): .*/message|。*/内容

    • 仅至 导入消息 键的第一个 值: prompt_for_name/消息

    • 至 导入对象的所有值跟在 用户键后面 :.*/用户/ .* 

  • 仅排除具体 密钥(使用 正则表达式): .*/示例

  • 上下文注释:

    • 对于具有描述 键的值 : ../描述

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

    • JSON 键(如 prompt_for_name )不能设置为上下文注释。

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

例:

{
  "prompt_for_name": {
    "message":“你名称什么?”
    "description":“询问用户名”
  },
  "hello": {
    "message":"Hello, $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 JSON

Go-i18n是为Golang设计的国际化库。它支持的本地化文件格式包括JSON,YAML,TOML等。go-i18n 使用的 JSON 文件与其他本地化/国际化平台的 JSON 文件不同,因为 go-18n JSON 通常作为由一系列 JSON 对象组成的 JSON 数组存在。每个 JSON 对象表示一个需要转换字符串,该需要通过 ID密钥标识。

建议的导入设置

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

  • 仅导入具体 密钥(使用 正则表达式): .*/翻译

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

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

    • 至 导入转换键后面 对象的一个键的值: .*/translation/one

    • 至 导入第 5 个翻译 键中 一个键的值: .*\[5\]/translation/one

    • 在转换 键后面 至 导入对象中其他密钥的值: (^|.*/)翻译/其他

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

  • 仅排除具体 密钥(使用 正则表达式): .*/其他

  • 上下文键:

    • 要获得id 键的值 ,请使用: ../id

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

    • JSON 密钥(例如 1) 不能设置为上下文键。

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

例:

[
{
    "id": "d_days",
    "translation": {
      "one": "{{.Count}} day",
      “其他”: “{{.Count}} 天”
    }
  },
  {
    "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 键后面 : (^|.*/)sample_collection\[.*\]

    • 至 导入 pluralized_key 键后面 的对象的所有值: (^|.*/)pluralized_key/.*

  • 仅排除具体 密钥(使用 正则表达式): 未验证_key

  • 上下文键:

    • 要获得key_with_description 键的值 ,请使用: ../key_with_description

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

    • 不能将 JSON 密钥(如 boolean_key )设置为上下文键。

例:

{
  "boolean_key": "--- true\n",
  "empty_string_translation": "",
  "key_with_description":“看看吧!此密钥有描述!(至少在某些格式中)“,
  "key_with_line-break":"This translations contains\na line-break.",
  "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.