各位好,想請教幾個問題,因為問題比較長,所以沒放在標題
a). i18n message 檔如何在html內容新增後進行更新
描述: 透過 ng xi18n --output-path src/i18n 指令之後於i18n folder產生了messages.xlf檔,
複製一份並變更檔名為messages.en.xlf為日後英文版使用 (於target tag進行翻譯),
但後來html又新增了內容, 那要如何做才可以更新 message.xlf 以及 message.en.xlf這兩個檔案而不用重工
b). 如何透過url path指定該跑在哪個語言上 (有參考一個blog, 但不知有沒有其他方法的參考 )
描述: www.mydomain.com/en/ 這樣會基於 message.en.xlf
reference: https://medium.com/@feloy/deploying-an-i18n-angular-app-with-angular-cli-fc788f17e358
感謝
1個讚
還沒仔細研究這塊應該要怎麼做,但是有找到這篇文章
其實在github issue 裡,也有人有同樣的問題
2個讚
那個部落格用的方式是事先編譯好多個語系的網頁
也有另一種作法,是選擇的當下進行編譯
或者是你其實可以考慮改用translate之類的套件來做到相同的事情
當然架構上是有差異的,你就必須考慮一下了
你可以參考ng-conf的這個影片
https://youtu.be/dihyu1a2bPc
1個讚
昨天有看了下ngx-translate, 如果考慮用這類的套件來做的話, 雖然可以做到多語系, 但可能就無法依據url path來決定語系, 不知道我的認知有沒有錯 @@ ?
沒有一定不行,多數route的參數都是observable,是可以根據url的參數(譬如query params)來決定介面語言的
之前兩者都有做過 (i18n and ngx-translate)
先說 i18n,就是預先編譯,所以效能上會好一些,也比較即時
但是每個語系都要處理,目前 merge 也不是太好用
ngx-translate 可以透過 url 來改變語系,需要再裝 plugin - localize-router,應該是這個沒錯
ngx-translate 好處就是可以 runtime 改變語系,但是就會比 i18n 稍微慢那麼一點點
沒特別處理的話,可能在取得語系檔時的很短暫時間畫面上會是原始文字
2個讚
補充一下…昨天發現ng-conf的內容已經進入到官網文件了
可以直接去官網看範例
針對你的第一個問題,你可以一直重複執行ng-xi18n這個指令,會直接覆 蓋掉
原本的檔案
那你就可以針對新增的檔案去做修改
1個讚
Kevin
10
AngularAir#118集: i18n and Translation with Olivier Combe and Victor Berchet
3個讚