问题标签 [angular-i18n]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
602 浏览

spring - 在 Spring Boot 中集成 Angular 5 i18n 模块和国际化

我正在尝试将 Angular i18n 模块集成到我们的 Spring Boot 应用程序中,但我在基本 href 方面遇到了一些问题。我已经为每种语言“de”和“en”构建了我们的应用程序,例如https://medium.com/@feloy/deploying-an-i18n-angular-app-with-angular-cli-fc788f17e358然后复制了我的资源到后端。

Hier 是我在 package.json 中用于 prod 的构建脚本:

}

对于 Spring 配置,我这样做了:

当我尝试在我的浏览器中提供此 url .../myapp/de 时,我将得到 /de/myapp/de 这是基本 href 部分“de”或“en”。

如何从 url 中删除基本 href?我做错了什么?

感谢您的帮助以利

0 投票
1 回答
2041 浏览

javascript - angular-i18n 在属性中选择语法

我试图使用 i18n SELECT 语法来翻译输入字段的占位符:

这将导致以下 xlf 文件条目:

因此,似乎无法识别 SELECT 语法。当我使用语法不翻译属性而是元素的内容时,.xlf 标记如下所示:

0 投票
1 回答
608 浏览

angular - 使用 Angular 进行本地化的服务器端路由

我有一个我正在尝试本地化的 Angular 应用程序。到目前为止,我所有显示的值都位于一个 json 文件(stringResources.json)中。翻译后我将有多个文件,一个用于我想要支持的每种语言(即en.jsonfr.json)。我使用 AOT 编译,所以我的选择似乎是

  • 使用ngx 翻译
  • 遵循文档 并为每种语言预先构建一个单独的应用程序

我所做的是通过使用此为每个语言文件输出不同的构建来生成多个构建,并且这些构建中的每一个都运行良好。我似乎无法弄清楚如何执行服务器端逻辑以根据 url 或语言检测提供正确的包

我有两个问题:

1) 让我的应用支持 l10n(本地化)的最佳方法是什么?看来我不需要进入 Angular 内置的 i18n,因为我已经提取了字符串文件并可用?

2)我可以查看哪些资源来确定服务器端逻辑以及如何组织不同构建的结构?我曾尝试更改 web.config 文件,但这似乎会干扰应用程序的路由逻辑

0 投票
0 回答
1090 浏览

angular - 设置自定义语言环境 ID Angular(当前为 ^5.2.0)应用程序

我在构建我的应用程序时尝试使用区域设置 ID“no-no”,如下所示:

但它报告错误如下:

我对此进行了探索并了解了 Angular 的一些重大变化: https ://github.com/angular/angular/issues/20340

在此之后,我尝试按照 app.module.ts 中的说明设置自定义语言环境

还是面临同样的问题!!如果有任何方法可以设置任何自定义语言环境 ID,请告诉我。

0 投票
0 回答
144 浏览

angular - Angular 国际化的生产使用工作流和工具

Angular 的国际化解决方案似乎仍在开发中。同时,它现在正式列在文档中,因此我认为它现在可以在生产应用程序中使用了。

但我无法弄清楚的是,在商业环境中,这个解决方案可以使用什么样的工作流程和工具。

工作流程对我来说很有意义。开发人员将开发应用程序,生成用于翻译的源字符串,并生成一个文件,翻译人员可以将其加载到程序中,以最少的技术专业知识翻译字符串。要生成文件,使用提取器 (xi18n) 获取未翻译的模板 XLIFF,为每种语言复制此文件,然后翻译器使用 XLIFF 编辑器更新模板中的每种语言,因为后来的提取和源字符串的变化。这将类似于 Gettext 方法。这是否也是 Angular 的合适策略,或者翻译文件是否从模板 XLIFF 以其他方式与 Angular 一起更新?

不过对我来说更大的问题是 Angular 如何将 XLIFF 文件拼凑在一起。不幸的是,Angular 将 XLIFF 1.2 和 ICU 结合在一起的方式看起来相当复杂,我还没有找到可以正确处理这个问题的工具。Angular 似乎在翻译单元中使用了 XLIFF 占位符,仅使用文本“ICU”作为 ID,并在 equiv-text 中使用类似 ICU 的模式。然后以某种方式将其与另一个包含随机 ID 和完整 ICU 表达式的翻译单元匹配。还使用 ID 为“INTERPOLATION”的占位符和等效文本中的变量来处理插值。

不仅很难准确地弄清楚 Angular 在内部做了什么来匹配 ICU 表达式,而且在 XLIFF 编辑器中所有这些的结果即使是我这个开发人员也很难理解,更不用说翻译了。在屏幕截图中,可以看到使用 Virtaal XLIFF 编辑器的 ICU 和插值示例。这是从下面的翻译源字符串中产生的,提取到它下面的 XLIFF。你真的不能用占位符做很多事情,你看不到 VAR_PLURAL ICU 翻译和使用它的翻译之间的联系。我看过其他编辑,他们似乎也有类似的问题。

虚拟

角模板:

XLIFF:

人们通常使用哪些工具与用于生产用途的 Angular 应用程序一起解决这些问题,以便翻译文件对翻译人员真正有意义?我读过很多人手动编辑文件,但我认为这根本不适合翻译。

0 投票
0 回答
226 浏览

angular5 - Angular5 - 翻译 TS 文件中的表达式或文本以进行本地化?

在我的 angular5 应用程序中,我试图将所有内容本地化和翻译。我正在遵循此链接中提到的步骤:https ://angular.io/guide/i18n

问题:

  • 如何为 TS 文件中的文本标记带有 i18n 标签的文本?

例如:

数组名称字段中的文本需要翻译:

该数组在下拉列表中使用:

如何标记要翻译的表达式中显示的文本?例如:

谢谢!

0 投票
2 回答
2679 浏览

angular - 面包屑角的翻译 5

我有以下路线,想为面包屑标签添加翻译。

我四处寻找,没有发现任何东西。我想我可能可以使用i18n en.json文件,但模板的所有示例。有没有办法将面包屑翻译成其他语言?

0 投票
1 回答
1423 浏览

angular - 通用 i18n 服务器端

我正在尝试将 Universal 与 i18n 一起使用。
我已经在构建应用程序并设置服务器配置,这样一旦应用程序进入浏览器端模式,用户就会被重定向到应用程序的正确翻译,这很好。

我遇到的问题是服务器端渲染。
以设置快递服务器的方式,我看不到如何提供通用的服务器端正确翻译,并且只显示默认语言而不是本地语言。
与浏览器端一样,我尝试为服务器端模式使用的 main.bundle 文件使用不同的构建,每种语言一个。问题是,我不能为每个应用设置多个这些文件。

Dist文件夹结构:

server.ts 文件

服务器端应用程序是从第四行的 main.bundle 呈现的。但是,我无法为每个翻译提供一个,我该如何解决?
我的观点是让 Angular Universal 为应用程序提供正确的服务器端翻译。

0 投票
4 回答
10653 浏览

angular - 更新 Angular 中的 i18n 翻译文件

我目前正在将语言环境添加到我们在我公司使用的 Angular 应用程序中。经过一番思考,我们决定使用 Angular 5+ 原生 i18n 支持。

然而,根据我的理解,每次生成翻译文件时都会ng xi18n --outputPath src/locale/ --locale en创建一个新文件。这意味着,每次添加新的 i18n 标记时,之前已经包含旧翻译的 XLF 文件都需要与新翻译合并。

这似乎很麻烦,因此我的问题是:有没有一种方法可以将新的反式单元附加到已经存在的 XLF 文件中?还是已经有可以将这两者合并在一起的工具?

0 投票
3 回答
2172 浏览

angular - 将多个版本的 Angular 应用部署到 Azure 应用服务

我有一个 Angular 应用程序,可以毫无问题地部署到 Azure App Service。

首先,我使用以下命令编译我的应用程序:

然后我将以下内容添加web.configdist文件夹中:

然后我压缩dist文件夹的内容并将其拖到我的 Azure 应用程序 ( https://<site.scm.azurewebsites.net>/ZipDeploy) 中。此时应用程序运行良好。

我的问题是我想为不同的语言环境部署不同版本的应用程序。

我使用以下命令编译我的不同版本:

这将输出文件夹en并包含应用程序的不同版本。我在应用程序的每个版本中添加一个,例如内部和.fr/distweb.config/dist/endist/fr

接下来,我压缩 en & fr 文件夹并使用ZipDeploy上述方法进行部署。

我可以在以下位置看到我的应用程序主页运行良好:

https://<site>.azurewebsites.net/fr/redirect.html#state....但是 - 当我在(我正在使用 Azure B2C 登录)被重定向到我的应用程序时,我收到以下错误:

You do not have permission to view this directory or page.

这感觉就像 iis 试图将我的 url 从字面上解释为一个目录,而不是让 Angular 处理路由,但我不确定。

有人知道如何正确执行此操作吗?