系統國際化設計方案
在經濟全球化的驅動下,系統的國際化成為了系統各項能力形態中至關重要的一種形態。下面簡單就國際化的業務以及實現提供幾種思路供參考,其中部分已經在產品中進行了驗證。
一、國際化設計要點之業務需求
1、首先描述業務場景:
1.1、使用者通過當前的語言環境自動的選擇介面展示的語種;
1.2、管理人員在錄入相應的基礎資料(包括物料、字典等資訊)時,可以選擇對應的語種進行錄入,但是介面展示還是自動的語種;
1.3、系統提示資訊同樣需要符合當前語種;
1.4、匯出的表單等模板內容也需要做相應的多語言版本。
2、針對基礎資料,需要在錄入介面選擇多語種;針對業務流程,只需要正常顯示當前語種即可。
4、編碼過程中的注釋暫時不用考慮,但是日誌、異常、提示資訊需要考慮國際化。
5、通用的國際化設計需要考慮的點:
多語言:介面多語言、資料多語言
多幣種:公司本位幣、集團本位幣、全球統一幣種
多時區:utc、多時區協同應用、多時區業務處理
多會計制度:多賬簿機制、支援中國、gaap多會計制度
多支援本地化:分層設計機制:客戶級、夥伴級、行業級、本地化級、領域級
6、目前針對多語言的分析,基於文字的多語言主要體現在系統介面、資料庫、輸出等
系統介面:多語言自由切換、或者固化配置(按角色等);
資料庫:多種語言、字符集;
輸出:製作標準的模板,對於頭部需要進行多語言化,具體內容不用調整;
7、制定明確的角色功能清單,示例如下:
二、國際化設計方案
1、採用資源檔案的方式
在*.properties檔案中設定語言字典
在**片段中通過語種資訊獲取資源。
2、當採用的資源檔案較大時,採用快取的形式
通過命名空間以及key值,確定唯一的value;
定義fileutil檔案,遍歷所有的資源檔案,分類定義,分別存放於不同的map物件中。
點評: 方法1、2 的優點在於處理簡單,但是缺點很明顯,如果涉及的多語言的長度不一致,會導致頁面樣式混亂。
3、針對不同的語種對不同的頁面編制多套;從瀏覽器、系統設定等優先順序進行識別,在controller層進行跳轉時對所有的頁面新增語言標識並跳轉。
4、按照微服務的架構,可以採用統一配置的方式,對資源檔案進行統一配置管理,服務可以呼叫後直接渲染前端。
5、前端的靜態內容可以分兩類方式實現: 一種採用資源檔案的方式,一種採用資料字典表儲存的方式。
6、後台涉及的業務資料的國際化,需要採用多表進行儲存??
點評:建議採用單錶儲存所有的國際化字典資料,然後通過id以及語言標識來進行檢索。
mysql國際化儲存方案
之前第一次做國際化專案,前期資料庫是同事設計的,他的想法是,需要多語言的字段,全部用多個字段,如 name 儲存中文姓名,english name儲存英文姓名,如果專案始終固定兩種語言,這種設計完全沒問題,但一旦需要新增語言,所有涉及到國際化的字段,全部要新增乙個字段!後來重新想了個方案,mysql...
Flutter官方國際化方案
file settings plugins 搜尋 flutter intl 安裝該外掛程式,重啟androidstudio dependencies other dependencies.flutter localizations sdk flutter然後package get獲取該依賴 flut...
軟體國際化值頁面國際化
國際化 軟體的國際化 軟體開發時,要使它能同時應對世界不同地區和國家的訪問,並針對不同地區和國家的訪問,提供相應的 符合來訪者閱讀習慣的頁面或資料。國際化又稱為 i18n internationalization 對於軟體中的選單欄 導航條 錯誤提示資訊,狀態資訊等這些固定不變的文字資訊,可以把它們...