i18n-config.ts 文件里的 loadPath,用于指定 lazy load 的 i18n 翻译 json 资源:
![](https://img.haomeiwen.com/i2085791/6eae550f665db78f.png)
i18next-initializer.ts
里使用过这个 loadPath
字段:
![](https://img.haomeiwen.com/i2085791/67920f7197143bb1.png)
以 My Account 的 old password placeholder 字段为例:
![](https://img.haomeiwen.com/i2085791/0ff9ec0a1980b0eb.png)
上图的效果,通过编辑下图文件的字段实现:
![](https://img.haomeiwen.com/i2085791/55d360b96c5ec7c1.png)
修改成中文后:
![](https://img.haomeiwen.com/i2085791/e6c236ead58bfa17.png)
使用英文作为缺省语言:
![](https://img.haomeiwen.com/i2085791/7dd86bc0e524d0b5.png)
需要把 en 文件夹里的所有内容都拷贝出来,重命名成 zh,然后导出到 zh 里,再导出到 translations 里:
![](https://img.haomeiwen.com/i2085791/2279becc042bd83c.png)
如下图所示:
![](https://img.haomeiwen.com/i2085791/32b8307bb942699f.png)
详细步骤如下:
SAP Spartacus 是一款基于 Angular 框架构建的开源电子商务应用,支持国际化 (i18n) 功能。要为 Spartacus 应用提供中文 i18n 的翻译,需要进行以下步骤:
在 Spartacus 项目中创建一个新的 i18n 文件。可以在 src/assets/i18n 目录下创建一个名为 messages.zh-CN.xlf 的文件,其中 zh-CN 表示中文。
打开 messages.xlf 文件,并将其中的文本复制到 messages.zh-CN.xlf 文件中。注意,必须将文件中的所有 source 标签值翻译成中文。
在 app.module.ts 文件中导入 translations,并在 providers 数组中添加一个 provide 对象来指定要使用的语言和对应的翻译文件。例如,可以添加以下代码:
import { translations } from '@spartacus/assets';
import { ConfigModule, Config } from '@spartacus/core';
ConfigModule.withConfig({
i18n: { resources: translations },
} as Config)
在 Spartacus 应用中使用 cxTranslate 指令来处理文本翻译。例如,在 HTML 文件中,可以使用以下代码:
<div>{{ 'common.back' | cxTranslate }}</div>
其中,common.back 是要翻译的文本的 key 值,cxTranslate 指令会将其翻译成当前语言环境下的文本。
通过以上步骤,就可以为 Spartacus 应用提供中文 i18n 的翻译。如果需要支持其他语言,只需要按照相同的步骤创建对应的翻译文件,并在 app.module.ts 文件中添加对应的配置即可。
网友评论