angular (@angular/localize) 是否可以进行运行时语言翻译?
is runtime language translation possible with angular (@angular/localize)?
我正在尝试学习并在项目中添加 angular 国际化。
我只能从 angular 文档 (https://angular.io/guide/i18n-overview).
中理解编译时翻译
我需要这样的东西 https://stackblitz.com/github/ngx-translate/example 这是第三方库 'ngx-translate'。
我们不能仅使用 angular 库而不使用任何第三方库来实现相同的运行时翻译吗?
如果 angular 库可以进行运行时翻译,请指导我。
angular 框内的 i18n 运行时没有解决方案。只使用 ngx-translate。 Angular 团队仍然只谈论“我们将在下一个版本中做到”,但没有成功。我在大项目下工作,我们使用 angular 版本 4 或 6 的 ngx-translate。你可以信任这个第三方库。
i18n 只能为某些 baseHref 构建应用程序,例如:
当您需要编译大量应用程序以使用 i18n 时。 ngx-translate - 只有 1 个应用程序,翻译可以按需要翻译的模块拆分。
我的建议 - 使用 ngx-translate 并且 angular 团队将重新加载运行时语言 - 重写项目部分以进行翻译
您可能已经看到 Angular 的构建时间转换始终如此,您将根据区域设置构建应用程序(例如,一个“en”构建和一个“fr”构建)。然后您将托管每个应用程序,并且必须重定向到特定的语言环境才能在运行时切换它。不是最好的体验。
有了 Angular Ivy,现在还有一个 @angular/localize 包,它提供了一个 $localize
标记的模板助手,可用于运行时翻译,但它仍然会使用您的语言环境'目前在。当在生产配置中构建时,我相信它可能会优化其他语言环境,因此您仍然不能在运行时切换语言。
const message = $localize`:@@username:Hello {username}`;
对于在运行时切换翻译,您可能会跟踪以下问题并为其投票:
https://github.com/angular/angular/issues/38953
特别是,您可以看到来自 napei and petebacondarwin 的两条评论,这似乎表明 Angular.
将不支持此功能。
dynamic locale switching (of course)
Indeed this will not be supported natively in Angular.
也许如果他们获得更多选票,他们就会意识到对这个功能的需求 :) 在那之前,您将需要使用第 3 方库,例如已经建议的 ngx-translate
。
我正在尝试学习并在项目中添加 angular 国际化。 我只能从 angular 文档 (https://angular.io/guide/i18n-overview).
中理解编译时翻译我需要这样的东西 https://stackblitz.com/github/ngx-translate/example 这是第三方库 'ngx-translate'。
我们不能仅使用 angular 库而不使用任何第三方库来实现相同的运行时翻译吗?
如果 angular 库可以进行运行时翻译,请指导我。
angular 框内的 i18n 运行时没有解决方案。只使用 ngx-translate。 Angular 团队仍然只谈论“我们将在下一个版本中做到”,但没有成功。我在大项目下工作,我们使用 angular 版本 4 或 6 的 ngx-translate。你可以信任这个第三方库。 i18n 只能为某些 baseHref 构建应用程序,例如:
当您需要编译大量应用程序以使用 i18n 时。 ngx-translate - 只有 1 个应用程序,翻译可以按需要翻译的模块拆分。
我的建议 - 使用 ngx-translate 并且 angular 团队将重新加载运行时语言 - 重写项目部分以进行翻译
您可能已经看到 Angular 的构建时间转换始终如此,您将根据区域设置构建应用程序(例如,一个“en”构建和一个“fr”构建)。然后您将托管每个应用程序,并且必须重定向到特定的语言环境才能在运行时切换它。不是最好的体验。
有了 Angular Ivy,现在还有一个 @angular/localize 包,它提供了一个 $localize
标记的模板助手,可用于运行时翻译,但它仍然会使用您的语言环境'目前在。当在生产配置中构建时,我相信它可能会优化其他语言环境,因此您仍然不能在运行时切换语言。
const message = $localize`:@@username:Hello {username}`;
对于在运行时切换翻译,您可能会跟踪以下问题并为其投票:
https://github.com/angular/angular/issues/38953
特别是,您可以看到来自 napei and petebacondarwin 的两条评论,这似乎表明 Angular.
将不支持此功能。dynamic locale switching (of course)
Indeed this will not be supported natively in Angular.
也许如果他们获得更多选票,他们就会意识到对这个功能的需求 :) 在那之前,您将需要使用第 3 方库,例如已经建议的 ngx-translate
。