Angular 4 I18N-添加翻译文件后如何继续



我需要翻译我的Angular 4应用程序。基本上,我遵循了官方指南。

  1. 我将i18n属性添加到标签,等等

  2. Angular-CLI创建了一个消息。xlf

  3. 我在src-folder中创建了一个文件夹

  4. 我将messages.xlf复制到此语言环境中...

  5. ...并将其重命名为"消息。 de .xlf"翻译

我更改了一个简单的翻译以测试内容。但是,在将浏览器切换到"德语"之后,没有任何差异(使用NPM启动,因此基本上是'ng服务'(。似乎仍然缺少一些东西。指南还解释了如何"合并"翻译。但是本章非常奇怪,听起来并不令人信服。它的读数就像是为较早版本完成的。

例如,它指出要调整我的启动名字。问题是我什至没有启动标题。我的index.html看起来像这样:

<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>PickUp2</title>
  <base href="/">
  <link href="assets/iconfont/material-icons.css" rel="stylesheet">
  <link href="roboto.css" rel="stylesheet">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="assets/material_supply_icon.ico">
</head>
<body>
  <app-root>Loading...</app-root>
</body>
</html>

我需要在哪里放置此启动名字?我什至不知道我是使用JIT还是AOT编译器。他们以前从未在任何指南中提到过它们。

我已经用食谱中描述的方法翻译了我们的Angular-4应用程序。我认为您缺少的关键信息是您需要分别为每种语言"构建"该应用程序。

我的命令在本地运行该应用程序的命令如下:

>ng serve --i18n-file src/i18n/messages.fr.xlf --locale fr --i18n-format xlf --aot

要构建它,只需用 ng build

替换ng服务

解释:

  • -i18n文件,指定了要使用的翻译
  • - AOT是HTML模板的提前汇编,这将替换标记I18N的文本用您的翻译

因此,在您的情况下,您将用德语构建该应用,然后将其部署 - 假设 - 到A/DE文件夹。该应用程序的另一个版本可以在/en等。

然后,您可以根据他们想要的语言重定向用户。

希望这有帮助

最新更新