NX Monorepo (14.3.6) no support for $localize (Angular local



我安装了最新版本的nx monorepo (npx create-nx-workspace@latest)。目前最新的nx版本是(14.3.6)。在此之后,我添加了角定位包(npm install @angular/localize)。现在,添加i18n属性(<title i18n>Title</title>)可以正常工作,并且翻译键被提取到消息中。xlf文件。

问题是,如果我尝试在组件内使用$ localalize,在这种情况下,没有错误报告,但当我尝试生成消息时。xlf加ng extract-i18n test-app。一条空留言。生成XLF

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = $localize`my-app`;
}

messages.xlf

<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en-US" datatype="plaintext" original="ng2.template">
<body>
</body>
</file>
</xliff>

那么问题是在NX Monorepo中是否支持$ localalize ?也许在project.json中缺少一些配置?

我在这里添加了一个链接到github (https://github.com/hivaga/nx-localization-support),可以找到当前的nx安装。

PS我已经尝试了最新的香草angular应用程序设置,$ localalize工作如预期的那样,所以很明显问题只在NX端!

我发现了产生空messages.xlf而同时没有报告任何错误的2个原因:

  1. 应用程序polifills.js中缺少import语句

    // polifills.js  
    import '@angular/localize/init';
    
  2. 在组件的*.ts中导入错误。文件。基本上,应该在import语句中不引用$localize。这是相当奇怪的,但它是如何工作的。

    // this import has to be removed    
    import {$localize} from "@angular/localize/init";
    

最新更新