Spartacus框架加入购物车模块中将Qty重命名为Quantity的配置问题
正确实现方案与问题排查
1 先修正明显配置错误
你第二个配置方案的路径拼写错误:你写的src/assets/i18n-assets/en/produkt路径里的produkt是德语拼写,Spartacus默认英文资源对应的产品模块命名空间是product,所以正确路径应为src/assets/i18n-assets/en/product.json,这个拼写错误是配置不生效的最常见原因。
2 代码内注入i18n的正确写法
如果你用在spartacus-configuration.module.ts里注入配置的方式,必须把i18n配置用provideConfig包裹后注册到providers中,正确示例:
import { NgModule } from '@angular/core'; import { provideConfig } from '@spartacus/core'; @NgModule({ providers: [ provideConfig({ i18n: { resources: { en: { product: { addToCart: { quantity: 'Quantity', // 部分低版本Spartacus用的key是qty,两个都配避免版本差异问题 qty: 'Quantity' } } } } } }) ] }) export class SpartacusConfigurationModule { }
3 资源优先级配置
如果你同时开启了远程静态资源加载和代码内资源注入,要确保本地资源优先级更高,不需要远程加载的话可以直接注释掉后端加载配置:
i18n: { backend: { // 不需要加载远程资源就注释本行,优先走代码内注入的资源 // loadPath: 'assets/i18n-assets/{{lng}}/{{ns}}.json' }, // 其余你的i18n配置 }
4 生效验证
配置修改完成后,执行全量编译重新启动项目,打开浏览器硬刷新(Ctrl+Shift+R)清除缓存后即可看到修改生效。
内容的提问来源于stack exchange,提问作者Carnivor
相关产品推荐
相关产品推荐

