在 i18n SSR Angular 19 应用程序中设置 LOCALE_ID 的最佳方法是什么?
我可以通过设置此 DI 令牌在服务器 (app.server.config.ts) 上进行设置:
{
provide: LOCALE_ID,
useFactory: () => {
const req = inject(REQUEST, { optional: true});
return req.path.split('/')[1]; // e.g. /en or /de
},
deps: [REQUEST],
},
这有效!但现在当客户接管(CSR)时怎么办?我认为客户端无法在 app.server.config.ts 中定义访问提供程序,对吗?
这意味着我需要在客户端再次提供它。我可以做到这一点,例如通过将其设置为
navigator.language
或从 window.path
解析它 - 但在客户端和服务器上这样做感觉很脏,这真的是正确的方法吗?这里的最佳做法是什么?