parent
d4b7b2b830
commit
1a86f88b44
7 changed files with 403 additions and 0 deletions
@ -0,0 +1,31 @@ |
|||||||
|
package net.mingsoft.config; |
||||||
|
|
||||||
|
import com.jagregory.shiro.freemarker.ShiroTags; |
||||||
|
import freemarker.template.TemplateException; |
||||||
|
import org.springframework.beans.factory.annotation.Autowired; |
||||||
|
import org.springframework.beans.factory.annotation.Value; |
||||||
|
import org.springframework.context.annotation.Configuration; |
||||||
|
|
||||||
|
import javax.annotation.PostConstruct; |
||||||
|
import java.io.IOException; |
||||||
|
|
||||||
|
/** |
||||||
|
* 读取国际化配置,传递给freemker |
||||||
|
*/ |
||||||
|
@Configuration |
||||||
|
public class I18NConfig { |
||||||
|
@Autowired |
||||||
|
protected freemarker.template.Configuration configuration; |
||||||
|
|
||||||
|
@Value("${ms.local.default:zh_CN}") |
||||||
|
private String defaultLocal; |
||||||
|
@Value("${ms.local.messages:zh_CN,en_US}") |
||||||
|
private String messages; |
||||||
|
|
||||||
|
@PostConstruct |
||||||
|
public void init() throws IOException, TemplateException { |
||||||
|
configuration.setSharedVariable("localDefault",defaultLocal); |
||||||
|
configuration.setSharedVariable("localMessages",messages.split(",")); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,39 @@ |
|||||||
|
<#list localMessages as item> |
||||||
|
<script src="${base}/static/locale/lang/${modeldir}/${item}.js"></script> |
||||||
|
</#list> |
||||||
|
<script> |
||||||
|
(function(window) { |
||||||
|
var defaultLocal = '${localDefault}' //默认语言 |
||||||
|
|
||||||
|
var localeMessage = [] //添加语言 |
||||||
|
<#list localMessages as item> |
||||||
|
localeMessage.push('${item}') |
||||||
|
</#list> |
||||||
|
window.indexlocale = { |
||||||
|
language:defaultLocal |
||||||
|
} |
||||||
|
//获取后台index的语言 |
||||||
|
if(parent!=null&&parent.indexVue!=undefined&&parent.indexVue.locale!=undefined){ |
||||||
|
window.indexlocale = parent.indexVue.locale |
||||||
|
} |
||||||
|
window.i18n = new VueI18n({ |
||||||
|
locale: window.indexlocale.language, // 设置地区 |
||||||
|
fallbackLocale: defaultLocal, |
||||||
|
|
||||||
|
}) |
||||||
|
//加载语言 |
||||||
|
localeMessage.forEach(function (value) { |
||||||
|
if(window[value]!=undefined){ |
||||||
|
var message = window[value] |
||||||
|
if(window['base_'+value]!=undefined){ |
||||||
|
message = Object.assign({},message,window['base_'+value]) |
||||||
|
} |
||||||
|
i18n.setLocaleMessage(value,message) |
||||||
|
} |
||||||
|
}) |
||||||
|
var localElement = i18n.getLocaleMessage(i18n.locale) |
||||||
|
if(Object.keys(localElement).indexOf("el")!=-1){ |
||||||
|
ELEMENT.locale(localElement) |
||||||
|
} |
||||||
|
})(window); |
||||||
|
</script> |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
var base_en_US={ |
||||||
|
base:{ |
||||||
|
operate:{ |
||||||
|
save:'save', |
||||||
|
back:'back', |
||||||
|
edit:'edit', |
||||||
|
back:'back', |
||||||
|
cancel:'cancel', |
||||||
|
del:'del', |
||||||
|
rest:'rest', |
||||||
|
search:'search', |
||||||
|
filter:'filter', |
||||||
|
action:'action', |
||||||
|
confirm:'confirm' |
||||||
|
}, |
||||||
|
message:{ |
||||||
|
success:'success', |
||||||
|
tip:'tip', |
||||||
|
confirmdel:'This operation will permanently delete the selection. Do you want to continue', |
||||||
|
empty:'empty', |
||||||
|
exist:'exist', |
||||||
|
fail:'fail', |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
Object.assign(base_en_US,ELEMENT.lang.en) |
||||||
@ -0,0 +1,26 @@ |
|||||||
|
var base_zh_CN={ |
||||||
|
base:{ |
||||||
|
operate:{ |
||||||
|
add:'新增', |
||||||
|
save:'保存', |
||||||
|
edit:'编辑', |
||||||
|
back:'返回', |
||||||
|
cancel:'取消', |
||||||
|
del:'删除', |
||||||
|
rest:'重置', |
||||||
|
search:'查询', |
||||||
|
filter:'塞选', |
||||||
|
action:'操作', |
||||||
|
confirm:'确定' |
||||||
|
}, |
||||||
|
message:{ |
||||||
|
success:'成功', |
||||||
|
tip:'提示', |
||||||
|
confirmdel:'此操作将永久删除所选内容, 是否继续', |
||||||
|
empty:'暂无数据', |
||||||
|
exist:'已存在', |
||||||
|
fail:'失败', |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
Object.assign(base_zh_CN,ELEMENT.lang.zhCN) |
||||||
@ -0,0 +1,139 @@ |
|||||||
|
(function (global, factory) { |
||||||
|
if (typeof define === "function" && define.amd) { |
||||||
|
define('element/locale/en', ['module', 'exports'], factory); |
||||||
|
} else if (typeof exports !== "undefined") { |
||||||
|
factory(module, exports); |
||||||
|
} else { |
||||||
|
var mod = { |
||||||
|
exports: {} |
||||||
|
}; |
||||||
|
factory(mod, mod.exports); |
||||||
|
global.ELEMENT.lang = global.ELEMENT.lang || {};
|
||||||
|
global.ELEMENT.lang.en = mod.exports; |
||||||
|
} |
||||||
|
})(this, function (module, exports) { |
||||||
|
'use strict'; |
||||||
|
|
||||||
|
exports.__esModule = true; |
||||||
|
exports.default = { |
||||||
|
el: { |
||||||
|
colorpicker: { |
||||||
|
confirm: 'OK', |
||||||
|
clear: 'Clear' |
||||||
|
}, |
||||||
|
datepicker: { |
||||||
|
now: 'Now', |
||||||
|
today: 'Today', |
||||||
|
cancel: 'Cancel', |
||||||
|
clear: 'Clear', |
||||||
|
confirm: 'OK', |
||||||
|
selectDate: 'Select date', |
||||||
|
selectTime: 'Select time', |
||||||
|
startDate: 'Start Date', |
||||||
|
startTime: 'Start Time', |
||||||
|
endDate: 'End Date', |
||||||
|
endTime: 'End Time', |
||||||
|
prevYear: 'Previous Year', |
||||||
|
nextYear: 'Next Year', |
||||||
|
prevMonth: 'Previous Month', |
||||||
|
nextMonth: 'Next Month', |
||||||
|
year: '', |
||||||
|
month1: 'January', |
||||||
|
month2: 'February', |
||||||
|
month3: 'March', |
||||||
|
month4: 'April', |
||||||
|
month5: 'May', |
||||||
|
month6: 'June', |
||||||
|
month7: 'July', |
||||||
|
month8: 'August', |
||||||
|
month9: 'September', |
||||||
|
month10: 'October', |
||||||
|
month11: 'November', |
||||||
|
month12: 'December', |
||||||
|
week: 'week', |
||||||
|
weeks: { |
||||||
|
sun: 'Sun', |
||||||
|
mon: 'Mon', |
||||||
|
tue: 'Tue', |
||||||
|
wed: 'Wed', |
||||||
|
thu: 'Thu', |
||||||
|
fri: 'Fri', |
||||||
|
sat: 'Sat' |
||||||
|
}, |
||||||
|
months: { |
||||||
|
jan: 'Jan', |
||||||
|
feb: 'Feb', |
||||||
|
mar: 'Mar', |
||||||
|
apr: 'Apr', |
||||||
|
may: 'May', |
||||||
|
jun: 'Jun', |
||||||
|
jul: 'Jul', |
||||||
|
aug: 'Aug', |
||||||
|
sep: 'Sep', |
||||||
|
oct: 'Oct', |
||||||
|
nov: 'Nov', |
||||||
|
dec: 'Dec' |
||||||
|
} |
||||||
|
}, |
||||||
|
select: { |
||||||
|
loading: 'Loading', |
||||||
|
noMatch: 'No matching data', |
||||||
|
noData: 'No data', |
||||||
|
placeholder: 'Select' |
||||||
|
}, |
||||||
|
cascader: { |
||||||
|
noMatch: 'No matching data', |
||||||
|
loading: 'Loading', |
||||||
|
placeholder: 'Select', |
||||||
|
noData: 'No data' |
||||||
|
}, |
||||||
|
pagination: { |
||||||
|
goto: 'Go to', |
||||||
|
pagesize: '/page', |
||||||
|
total: 'Total {total}', |
||||||
|
pageClassifier: '' |
||||||
|
}, |
||||||
|
messagebox: { |
||||||
|
title: 'Message', |
||||||
|
confirm: 'OK', |
||||||
|
cancel: 'Cancel', |
||||||
|
error: 'Illegal input' |
||||||
|
}, |
||||||
|
upload: { |
||||||
|
deleteTip: 'press delete to remove', |
||||||
|
delete: 'Delete', |
||||||
|
preview: 'Preview', |
||||||
|
continue: 'Continue' |
||||||
|
}, |
||||||
|
table: { |
||||||
|
emptyText: 'No Data', |
||||||
|
confirmFilter: 'Confirm', |
||||||
|
resetFilter: 'Reset', |
||||||
|
clearFilter: 'All', |
||||||
|
sumText: 'Sum' |
||||||
|
}, |
||||||
|
tree: { |
||||||
|
emptyText: 'No Data' |
||||||
|
}, |
||||||
|
transfer: { |
||||||
|
noMatch: 'No matching data', |
||||||
|
noData: 'No data', |
||||||
|
titles: ['List 1', 'List 2'], // to be translated
|
||||||
|
filterPlaceholder: 'Enter keyword', // to be translated
|
||||||
|
noCheckedFormat: '{total} items', // to be translated
|
||||||
|
hasCheckedFormat: '{checked}/{total} checked' // to be translated
|
||||||
|
}, |
||||||
|
image: { |
||||||
|
error: 'FAILED' |
||||||
|
}, |
||||||
|
pageHeader: { |
||||||
|
title: 'Back' // to be translated
|
||||||
|
}, |
||||||
|
popconfirm: { |
||||||
|
confirmButtonText: 'Yes', |
||||||
|
cancelButtonText: 'No' |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
module.exports = exports['default']; |
||||||
|
}); |
||||||
@ -0,0 +1,139 @@ |
|||||||
|
(function (global, factory) { |
||||||
|
if (typeof define === "function" && define.amd) { |
||||||
|
define('element/locale/zh-CN', ['module', 'exports'], factory); |
||||||
|
} else if (typeof exports !== "undefined") { |
||||||
|
factory(module, exports); |
||||||
|
} else { |
||||||
|
var mod = { |
||||||
|
exports: {} |
||||||
|
}; |
||||||
|
factory(mod, mod.exports); |
||||||
|
global.ELEMENT.lang = global.ELEMENT.lang || {};
|
||||||
|
global.ELEMENT.lang.zhCN = mod.exports; |
||||||
|
} |
||||||
|
})(this, function (module, exports) { |
||||||
|
'use strict'; |
||||||
|
|
||||||
|
exports.__esModule = true; |
||||||
|
exports.default = { |
||||||
|
el: { |
||||||
|
colorpicker: { |
||||||
|
confirm: '确定', |
||||||
|
clear: '清空' |
||||||
|
}, |
||||||
|
datepicker: { |
||||||
|
now: '此刻', |
||||||
|
today: '今天', |
||||||
|
cancel: '取消', |
||||||
|
clear: '清空', |
||||||
|
confirm: '确定', |
||||||
|
selectDate: '选择日期', |
||||||
|
selectTime: '选择时间', |
||||||
|
startDate: '开始日期', |
||||||
|
startTime: '开始时间', |
||||||
|
endDate: '结束日期', |
||||||
|
endTime: '结束时间', |
||||||
|
prevYear: '前一年', |
||||||
|
nextYear: '后一年', |
||||||
|
prevMonth: '上个月', |
||||||
|
nextMonth: '下个月', |
||||||
|
year: '年', |
||||||
|
month1: '1 月', |
||||||
|
month2: '2 月', |
||||||
|
month3: '3 月', |
||||||
|
month4: '4 月', |
||||||
|
month5: '5 月', |
||||||
|
month6: '6 月', |
||||||
|
month7: '7 月', |
||||||
|
month8: '8 月', |
||||||
|
month9: '9 月', |
||||||
|
month10: '10 月', |
||||||
|
month11: '11 月', |
||||||
|
month12: '12 月', |
||||||
|
// week: '周次',
|
||||||
|
weeks: { |
||||||
|
sun: '日', |
||||||
|
mon: '一', |
||||||
|
tue: '二', |
||||||
|
wed: '三', |
||||||
|
thu: '四', |
||||||
|
fri: '五', |
||||||
|
sat: '六' |
||||||
|
}, |
||||||
|
months: { |
||||||
|
jan: '一月', |
||||||
|
feb: '二月', |
||||||
|
mar: '三月', |
||||||
|
apr: '四月', |
||||||
|
may: '五月', |
||||||
|
jun: '六月', |
||||||
|
jul: '七月', |
||||||
|
aug: '八月', |
||||||
|
sep: '九月', |
||||||
|
oct: '十月', |
||||||
|
nov: '十一月', |
||||||
|
dec: '十二月' |
||||||
|
} |
||||||
|
}, |
||||||
|
select: { |
||||||
|
loading: '加载中', |
||||||
|
noMatch: '无匹配数据', |
||||||
|
noData: '无数据', |
||||||
|
placeholder: '请选择' |
||||||
|
}, |
||||||
|
cascader: { |
||||||
|
noMatch: '无匹配数据', |
||||||
|
loading: '加载中', |
||||||
|
placeholder: '请选择', |
||||||
|
noData: '暂无数据' |
||||||
|
}, |
||||||
|
pagination: { |
||||||
|
goto: '前往', |
||||||
|
pagesize: '条/页', |
||||||
|
total: '共 {total} 条', |
||||||
|
pageClassifier: '页' |
||||||
|
}, |
||||||
|
messagebox: { |
||||||
|
title: '提示', |
||||||
|
confirm: '确定', |
||||||
|
cancel: '取消', |
||||||
|
error: '输入的数据不合法!' |
||||||
|
}, |
||||||
|
upload: { |
||||||
|
deleteTip: '按 delete 键可删除', |
||||||
|
delete: '删除', |
||||||
|
preview: '查看图片', |
||||||
|
continue: '继续上传' |
||||||
|
}, |
||||||
|
table: { |
||||||
|
emptyText: '暂无数据', |
||||||
|
confirmFilter: '筛选', |
||||||
|
resetFilter: '重置', |
||||||
|
clearFilter: '全部', |
||||||
|
sumText: '合计' |
||||||
|
}, |
||||||
|
tree: { |
||||||
|
emptyText: '暂无数据' |
||||||
|
}, |
||||||
|
transfer: { |
||||||
|
noMatch: '无匹配数据', |
||||||
|
noData: '无数据', |
||||||
|
titles: ['列表 1', '列表 2'], |
||||||
|
filterPlaceholder: '请输入搜索内容', |
||||||
|
noCheckedFormat: '共 {total} 项', |
||||||
|
hasCheckedFormat: '已选 {checked}/{total} 项' |
||||||
|
}, |
||||||
|
image: { |
||||||
|
error: '加载失败' |
||||||
|
}, |
||||||
|
pageHeader: { |
||||||
|
title: '返回' |
||||||
|
}, |
||||||
|
popconfirm: { |
||||||
|
confirmButtonText: '确定', |
||||||
|
cancelButtonText: '取消' |
||||||
|
} |
||||||
|
} |
||||||
|
}; |
||||||
|
module.exports = exports['default']; |
||||||
|
}); |
||||||
Loading…
Reference in new issue