Angular CLI is a great tool to help you during your daily Angular 2 development work. One of the features that is integrated is an internationalization(i18n) component that extracts XLF (or XMB) files that can be translated and used inside your Angular app.
However first time I tried to to use the ng-xi18n tool, it failed with the following error message
Error: Error encountered resolving symbol values statically. Function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol AnimationDriver in C:/SampleApp/node_modules/@angular/platform-browser/src/dom/animation_driver.d.ts, resolving symbol BrowserTestingModule in C:/SampleApp/node_modules/@angular/platform-browser/testing/browser.d.ts, resolving symbol BrowserTestingModule in C:/SampleApp/node_modules/@angular/platform-browser/testing/browser.d.ts
at simplifyInContext (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:25247:25)
at StaticReflector.simplify (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:25259:15)
at StaticReflector.annotations (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:24598:62)
at NgModuleResolver.resolve (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:17265:84)
at CompileMetadataResolver.getNgModuleMetadata (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:17739:62)
at CompileMetadataResolver.getNgModuleSummary (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:17695:54)
at C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:17785:70
at Array.forEach (native)
at CompileMetadataResolver.getNgModuleMetadata (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:17780:51)
at addNgModule (C:\Users\User\AppData\Roaming\npm\node_modules\@angular\compiler\bundles\compiler.umd.js:24349:60)
Extraction failed
That’s a bummer .
Luckily I found a solution that worked:
- First I made a copy of the tsconfig.json file
- Inside this copy I added an ‘exclude’ section to exclude the test.ts:
- Next I invoked the ng-xi18n tool specifying the altered tsconfig.json as a parameter:
ng-xi18n –p “tsconfig.i18n.json”