dojo/i18 n将“root”的值放入一个单独的文件(例如:根:真)

v7pvogib  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(176)

**背景:**最初,我将其用于messages.js

define({
  root:{
    EXAMPLE:"Example for stackoverflow"
  },
  "pl":true,
  "ru":true
});

在一个类似于

nls
  pl
    messages.js
  ru
    messages.js
  messages.js (where the contents are the code shown above)

非常标准,已经工作了十年或更长时间。

**问题:**我们的翻译团队希望我们更改文件结构,以便与他们的翻译工具兼容,从而在名为“root”的目录下的文件中定义默认键

我想在nls下得到这样的东西:

define({
  root:true,
  "pl":true,
  "ru":true
});

这里我们不再有默认的键/字符串对。默认的键.字符串对现在必须放在nls\root下。它看起来像任何其他语言的文件:

define({
   EXAMPLE:"Example for stackoverflow"
});

所需的总体目录结构如下所示

nls
  pl
    messages.js
  root
    messages.js (that is the default version of the key/string pairs)
  ru
    messages.js
  messages.js (that only includes the "lang":true parts)

问题概述是否可以将默认字符串从原始文件的root属性中移出,并将root的内容放入一个名为root的目录下的新文件中?如果可以,我遗漏了什么?

不起作用的事情:

define({
  root:true,
  "pl":true,
  "ru":true
});

以及

define({
  "root":true,
  "pl":true,
  "ru":true
});

在这两种情况下,我都看到没有找到键,所以我们默认地转储出键(我们处理丢失资源的方式)。
我已经阅读了大量的Dojo文档,并且觉得我们这样做是违反标准的。

dohp0rv5

dohp0rv51#

你真的需要回退到root吗?你的回退是什么,英语?保持root对象为空,并为你的默认/回退语言添加额外的文件怎么样

define({
  root:{
    // nothing here
  },
  "en":true,
  "pl":true,
  "ru":true
});

相关问题