angular / angular/angular-cli

[i18n] ability to dynamically load translations for the app

オープン
#18,331 コメント 8 件 リアクション 1 件 担当者 0 名 GitHub で見る
area: @angular-devkit/build-angular devkit/build-angular:i18n needs: investigation
主要言語
TypeScript
スター
27k
フォーク
11.8k
平均マージ
14時間 23分
マージ済み PR(30日)
162

説明

# 🐞 bug report

### Affected Package
@angular/localize

### Is this a regression?
Yes, it's a regression from v8

### Description
In v8 was a very handy solution to load your translation data for development.
It's described on this documentation page https://v8.angular.io/guide/i18n#merge-with-the-jit-compiler

With the migration to v9 there's no corresponding solution that will allow to quickly switch locales during runtime for development. As far as I understand, the suggested replacement is to run `ng serve` with the desired locale every time.

A little bit background here. We have 2 applications, every with 4 languages. For production, we build it with AOT as suggested. For development we use JIT and load corresponding translation depending on the browser URL (German for `/de/` for example), this mimics prod behavior. So, to switch translation and check how the interface looks in a different language, you just need to pick up another item in the language menu. The page reloads at the same URL but with a different language. Starting from v9 it's not supported, so we would have to run `ng serve` every time for a new language and start from the home page for every language again.

What would be a suggested way repeat v8 behavior? I checked `loadTranslatios` but it accepts a key-value object, not a XLIFF data. Is any function that can transform from XLIFF to a format understandable for `loadTranslations`

## 🌍 Your Environment

**Angular Version:**



Angular CLI: 9.1.9
Node: 12.4.0
OS: darwin x64

Angular: 9.1.11
... animations, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, router
Ivy Workspace: Yes

Package Version
------------------------------------------------------------
@angular-devkit/architect 0.901.9
@angular-devkit/build-angular 0.901.9
@angular-devkit/build-ng-packagr 0.901.9
@angular-devkit/build-optimizer 0.901.9
@angular-devkit/build-webpack 0.901.9
@angular-devkit/core 9.1.9
@angular-devkit/schematics 9.1.9
@angular/cdk 9.2.4
@angular/cli 9.1.9
@angular/material 9.2.4
@angular/material-moment-adapter 9.2.4
@ngtools/webpack 9.1.9
@schematics/angular 9.1.9
@schematics/update 0.901.9
ng-packagr 9.1.5
rxjs 6.5.5
typescript 3.8.3
webpack 4.42.0

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

@angular/localize とリンクされている v8 JIT i18n ドキュメントから始め、v9 loadTranslations API と、要求されている XLIFF および runtime-locale のワークフローを比較します。開発中にロケールを切り替えるためのサポートされている方法があり、XLIFF データの扱い方も含まれていれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
angular, typescript
領域
localization
issue の種類
バグ
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。