日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【JEECG技术博文】JEECG国际化介绍

發布時間:2025/3/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【JEECG技术博文】JEECG国际化介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


1、為什么要做國際化??

? 沒有國際化的框架是一個不完整的框架,特別在全球信息化的今天,國際化不再是雞肋,而是在選擇開發平臺時必須首要的考試因素,特別在有些公司平臺是否國際化具有一票否決要素,所以我們要搞國際化,而不是僅僅是簡單的高大尚。

2、國際化的實現原理?

??國際化聽起來簡單,但要框架中要做到與框架的無縫銜接,松耦合還是有一定難度的。有些系統有時不需要做國際化,在做國際化如果快速發現哪些沒有被國際化的字段等,這些問題都開發者在開發過程中實際需要解決的問題,而這一切我們都已經幫你想到了。

? 用戶在登錄頁面選擇語言后點擊登錄后在LoginControler.java中checkuser方法中可以看到下面代碼,當前語言會被放到session中。

if (req.getParameter("langCode")!=null) {req.getSession().setAttribute("lang", req.getParameter("langCode")); }? ? ? ? MutiLangServiceImpl.java 中有三個方法,分別介紹下作用:

? ?1)initAllMutiLang()——TOMCAT啟動時會被自動加載,把國際化的表內容加載到內存中,方便以后快速調用,即加載表t_s_muti_lang中所有記錄并放在Cache中。

? ?2)getLang(String?lang_key)——傳入需要國際化的Lang?Key自動根據用戶當前語言來得到國際化后的值,如在某處調用如:?String?value?=?getLang(“common.status”),如果當前語言為中文則value為狀態,英文為Status? ? ?

? ??3)refleshMutiLangCach()——刷新Cache,在對語言進行維護的時候,比如添加一個語言可以自動把新加的自動加入到Cache里,保證實時生效。?

3、國際化應用的各種場合舉例??

? 我們以國際化維護頁面國際化為例??

? List及Tag國際化?

? ?

? langKey?可以接受輸入多個參數,舉例如:? ??

? lang.?congratulation.edit.success?對應中文是:恭喜你,{0}修改{1}。? ??

? 則在頁面上我們可以傳入的langArg的參數樣式為:? ??

? langArg=”?lang.function.name,?common.success”? ??

? lang.function.name會替代{0},?common.success會替代{1}?

??

? 客戶端label的國際化?

?

? Java后臺國際化

???

?后臺樹的國際化? ? ?

?如果你需要對樹做國際化,只要在表里把樹的名稱換成lang_key的值并且在樹返回的最后一步加代碼:MutiLangUtil.setMutiTree(treeGrids,?mutiLangService);就可以實現,具體可以參考菜單管理:



?Js國際化? ??

?由于Js文件中無法用國際化標簽,所以只能在src\main\webapp\plug-in\mutiLang目錄中添加us.js及zh-cn.js這個文件已經在BaseTag中第一個默認引入了。

4、語言的維護?

?系統管理菜單中語言管理就可以對語言進行維護管理,注意不要添加已經存在的語言內容。若是有重復的內容,系統在添加的時候會自動提示。

5、lang_key的命名規范? ?

?1)系統已經有的國際化的就不用重復添加了,如:?common.status對應?狀態,如果有狀態直接使用即要,不要再添加相同名稱不同lang_key的進去。? ??

?2)如果碰到國際化表中沒有的,則需要自己添加。? ? ? ? ??

? ?lang_keyt_s_mutilang表中命名的格式一定是?xxx.xxx(或者有更多的點)? ??

?3)如果是不常用的,如某個模塊中有個標簽叫“學生”,則命名時可以叫:lang.student? ??

?4)如果是一些公共的,則命名時用common開頭,如“操作”可能在系統各處都有可能用到,則命名可以叫:common.operation ? ?

?5)不用要一個單詞來命名作為lang_key如student. ? ?

?6)如果是一個句子lang_key就寫下這個句子,單詞間用點來分開,如:common.please.select.one.record.to.edit?對應Please?select?one?record?to?edit? ??

?7)如果是一個句子lang_context首字母需要大寫,其他小寫,按正常英文句子的來拼寫,如:? ? ? ? ??

? ?Please?select?one?record?to?edit,?而不是?Please?Select?One?Record?To?Edit.? ??

?8)如果不是句子,如表頭上顯示,則lang_context可以全部首字母大寫,如:?User?Name,?Role?Name? ??

?9)前后命名要一致,比如部門有的人喜歡用簡寫如:depart哪后面注意就全部用簡寫,不要一會出現depart一會出現department很不協調。也不要一會出現desc一會出現description.? ??

?10)單詞不要出現拼寫錯誤。? ??

?11) 翻譯要準確,不要出現無關內容。比如有某個網頁上的標題上中文是:學生添加,你可以用lang.student.add有的人發現這是個標題就可能會寫成 ? ? lang.title.student.addtitle這是這個出現的位置,請不要加這樣的位置信息。? ??

?12)所有List頁面(特例除外)的添加,修改都是用以下風格,對應模塊修改langArg的值?

? ?<t:dgToolBar?title="common.add.param"?langArg="common.language"? ? ? ??

? ?<t:dgToolBar?title="common.edit.param"?langArg="common.language"? ? ? ? ? ??

? ?翻譯過來就是?模塊名+錄入(編輯),比如:語言錄入,用戶錄入等,不要只放“錄入”以保證所有頁面的頁格一致。

6、我只是在國內做項目,不想看到lang_key可以么???

?當然可以,你還是可以按原來一樣寫代碼,比如:?? ??

? ?<t:datagrid?name="departList"?title="common.department.list"?改成? ??

? ?<t:datagrid?name="departList"?title="部門列表"? ??

?再把common.notfind.langkey?對應的?lang_context?會值由??改成空就可以了。?

7、為什么我用了國際化后前面多了個問號?? ??

?那是在提醒你該lang_key沒有做國際化,你只要在語言維護中添加即可,問號的目的就是個提醒,可以讓你一眼就看出哪些沒有做國際化。如果你討厭看到問號同樣把common.notfind.langkey?對應的?lang_context?會值由??改成空


總結

以上是生活随笔為你收集整理的【JEECG技术博文】JEECG国际化介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。