今天主要要來介紹如何設計REST API可以支援國際化(internationalization),簡稱 i18n(因為 internationalization 有 18 個字母)
今天主要是使用英文和中文來示範
首先準備兩個檔案,分別是RestApplication_en.properties, RestApplication_zh_TW.properties
這兩個檔案是拿來定義i18n的Key和Value, 檔案內容如下
RestApplication_en.properties:
RestApplication_zh_TW.properties:
接著我們就可以來寫一個controller
首先先透過Java內建的ResourceBundle的getBundle去讀取剛剛我們設定的i18n檔案,以及設定對應的語系
接著就可以用getString傳入i18n key去拿到對應的訊息
接下來我們就可以用postman實際下一下API測試一下訊息是否符合我們的預期
重點在於我們要在Header的地方加入Accept-Language,給定語系,接著我們就可以在Response看到英文訊息
那如果在i18n的檔案中,是帶有參數的(如下),那我們該怎麼去替換參數呢?
用Key去取得message的程式都一樣,只是多用了MessageFormat幫我們替換掉參數
結果如下
簡單記錄一下ResourceBundle和MessageFormat的用法
文章標籤
全站熱搜
留言列表