在 Angular 10 (带有 ivy) 库中使用 $localize

3

我使用 angular@10 版本和 ivy 构建了一个本地的 Angular 库,想要使用新的 $localize 字符串模板功能。

public test = $localize `:@@test:Test`;

在普通的应用中,我可以通过将 @import '@angular/loclize/init'; 添加到 polyfill.ts 来启用此功能,但是在库中没有 polyfills。

当我尝试构建该库时,它会失败,所以我尝试将 @angular/localize/src/localize 导入到使用 $localize 的文件中。这样做后,构建成功了。但如果我在应用程序中使用该库,则会显示:

Can't resolve '@angular/localize/src/localize'

有人知道如何解决吗?也许我使用的方法不正确。


该库失败并非因为缺少 @angular/localize/src/localize 的导入。该库失败是由于其他原因造成的。请在尝试构建库时提供错误信息。此外,要使用 $localize 进行动态翻译,您不需要:import {$localize} from "@angular/localize/src/localize" - k.vincent
我会在接下来的几天里尝试复现它。我知道,通常情况下您不需要导入本地化,但正如我在库中写的那样,缺少了声明$localize的polyfill。 - Lukas Bonzelett
1个回答

0
declare function $localize(messageParts: TemplateStringsArray, ...expressions: readonly any[]): string;

将此行添加到库的src文件旁边的文件中,您可以像在应用程序中使用它一样使用它,并且这很好地工作。

“src file”指的是哪个文件,模块还是公共API? - Lukas Bonzelett
在 projects/{name_of_library} 目录下,紧挨着 src 文件夹。 - Eli Porush

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接