Angular i18n 支持更改语言吗?

问题描述 投票:0回答:1

我的目标是通过按钮将语言从

English (United States)
更改为
Indonesia

源代码

enter image description here

问题是教程没有演示更改语言的功能。

为什么我想使用 Angular i18n 而不是创建自定义助手?

  1. 我相信 Angular i18n 实现了 tree-shaking 吗?因此浏览器只会下载特定语言。
  2. 我相信 Angular i18n 支持 Angular SSR?因此它将使用浏览器的语言进行渲染。

我尝试过的:

  1. localize: ["id"]
    添加到
    build
    文件中的
    angular.json
    键并执行
    ng serve

    在这种情况下,i18n 可以工作。 角度.json

             "development": {
               "localize": ["id"]
               "optimization": false,
               "extractLicenses": false,
               "sourceMap": true,
               "fileReplacements": [
                 {
                   "replace": "projects/common/src/environments/environment.ts",
                   "with": "projects/common/src/environments/environment.development.ts"
                 }
               ]
             }
    
javascript angular
1个回答
0
投票

文档说在运行时更改语言是不可能的。您需要构建并部署它(例如,使用 en.example.com、fr.example.com 等子域名)。然后只需通过路由即可更改语言。

还有另一个 i18n 包,名为 @ngx-translate,它支持此功能。

但是,有一种可能的解决方案,但已被弃用。有一个包@locl/core,它允许您手动加载翻译文件。例如,您可以将首选语言保存在本地存储中,然后基于此加载所需的翻译文件。但您仍然需要刷新页面才能应用更改。

© www.soinside.com 2019 - 2024. All rights reserved.