我有一个包含许多Angular (V13)应用程序的NX工作区,所有这些应用程序都非常相似.我使用NGX-Translate(V13)来处理多语言支持,所以目前我 for each 应用程序都有两个json文件(ENG和DE).

这真的很难维护,因为翻译中即使是很小的更改也会导致许多文件被修改.

我的愿望是将翻译文件的公共部分移动到库中,这样每个应用程序仍然有2个文件,但它们只包含特定于应用程序的翻译,其余的都在库中的2个文件中.

实现这一目标的最佳方式是什么?

推荐答案

这就是我所做的:

我在库(文件夹Assets/i18n)中创建了翻译文件,并将其添加到应用程序的第project.json个部分,位于"build.options.assets"

{
  "input": "libs/shared-components/src/lib/assets/i18n",
  "glob": "**/*.json",
  "output": "assets/i18n/core"
}

使用MultiTranslateHttpLoader可以加载多个翻译文件,因此我将此添加到app.module.ts

export function HttpLoaderFactory(http: HttpClient) {
   return new MultiTranslateHttpLoader(http, [
     { prefix: 'assets/i18n/core/', suffix: '.json' },
     { prefix: '/assets/i18n/', suffix: '.json' },
   ]);
}

注意:加载文件的顺序很重要,如果两个文件都包含密钥,则第二个文件中的密钥将覆盖第一个文件中的密钥.

我不确定这是否是实现这一目标的最好方法,但对我来说,它是有效的.

Json相关问答推荐

输入请求中不存在null的条件抖动

时间序列的Vega Lite分组条形图

在Zig中解析JSON失败

使用JQ合并JSON列表中的对象

将 std::可选值存储到 json 文件 C++

如何对未知/变量键的字典进行编码?

如何使用Powershell查找所有包含特定键值对的JSON对象并迭代所有对象?

JOLT - 如果对象内部存在键,则将对象移动到数组

在 PostgreSQL 中 Select 分层 JSON 作为表

如何在 Android Studio 中将 List 字段作为空列表[]返回?

如何在循环中传递列表(会话(字符串属性))以在 Gatling Scala 中创建批量 Json 请求

Vue 3如何将参数作为json发送到axios get

如何判断字符串是否为json格式

jQuery fullcalendar 发送自定义参数并使用 JSON 刷新日历

从 JSON 创建 Hashtable

如何将 mysqli 结果转换为 JSON?

如何对 jq 中的 map 数组中的值求和?

处理 HTTP 请求正文中的可选 JSON 字段

春天:返回@ResponseBodyResponseEntity>

类型是接口或抽象类,不能实例化