簡體   English   中英

Angular 2 i18n:動態反饋

[英]Angular 2 i18n: Dynamic feedback

我有一個Angular 2應用程序,當前使用ng2-translate管理GUI的多種語言。 它正在與使用HTTP狀態代碼和自定義API代碼的組合來響應請求的API通信。

因此,例如,我可以通過HTTP調用將其返回:

{
    success = true,
    code = 'A00001'
}

我有一個解釋“ A00001”含義的文檔,所以我知道要加載什么翻譯。

現在,我想切換到使用Angular自己的i18n解決方案。 主要是因為我想使用盡可能少的第三方庫,但最重要的是因為它在為翻譯提供上下文方面提供了更好的支持。

在angular.io上查看i18n的文檔,看起來很簡單,但是唯一讓我退縮的是如何處理來自API的響應。

由於所有字符串在編譯過程中都會被替換/翻譯,因此如何檢索經過翻譯的字符串並僅在從API中檢測到特定代碼時才顯示它?

這基本上就是我現在要做的:

switch(response.code) {
    case 'A00001':
        feedback = this._translateService.instant('translationKey');
    break;
}

然后,我在GUI中為用戶提供反饋。

如何使用Angulars i18n解決方案解決此問題?

我一直想自己弄清楚這一點。

A)同事所做的只是翻譯DOM上的所有字符串,並讓服務獲取這些元素的html內容,而沒有設置顯示內容。

B)或者,您可以為所有可能的錯誤在DOM上添加一個切換用例,並使用* ngIf進行相應顯示。

C)A和B的組合,您可以將其創建為單獨的組件+服務。 您可以在需要動態錯誤消息的任何地方使用它-這樣,您的已編譯視圖將不會始終包含不必要的轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM