Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
孙克
/
smf-core
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 699c2f9e
由
LN
编写于
2021-12-31 17:34:56 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
启动时自动更新资源(只新增不修改)
1 个父辈
8e430511
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
139 行增加
和
54 行删除
src/main/java/com/neotel/smfcore/core/language/util/MessageService.java
src/main/java/com/neotel/smfcore/core/language/util/MessageUtils.java
src/main/java/com/neotel/smfcore/core/language/util/MyMessageSource.java
src/main/java/com/neotel/smfcore/core/language/util/MessageService.java
查看文件 @
699c2f9
...
...
@@ -9,14 +9,12 @@ import com.neotel.smfcore.core.language.service.nanager.ILanguageMsgManager;
import
com.neotel.smfcore.core.language.service.po.LanguageMsg
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.support.ResourceBundleMessageSource
;
import
org.springframework.data.mongodb.core.query.Query
;
import
org.springframework.stereotype.Service
;
import
java.io.*
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
@Slf4j
@Service
...
...
@@ -26,7 +24,19 @@ public class MessageService {
ILanguageMsgManager
languageMsgManager
;
@Autowired
DataCache
dataCache
;
private
static
MyMessageSource
messageSource
;
public
MessageService
(
MyMessageSource
messageSource
)
{
this
.
messageSource
=
messageSource
;
if
(
messageSource
instanceof
ResourceBundleMessageSource
){
Map
<
String
,
String
>
map1
=
messageSource
.
getMessageMap
(
Locale
.
SIMPLIFIED_CHINESE
);
Map
<
String
,
String
>
map2
=
messageSource
.
getMessageMap
(
Locale
.
US
);
Map
<
String
,
String
>
map3
=
messageSource
.
getMessageMap
(
Locale
.
JAPAN
);
Map
<
String
,
String
>
map4
=
messageSource
.
getMessageMap
(
new
Locale
(
"zh"
,
"TW"
));
Map
<
String
,
String
>
map5
=
messageSource
.
getMessageMap
(
new
Locale
(
""
));
}
}
public
Map
<
String
,
Map
<
String
,
LanguageMsg
>>
loadMsgMap
()
{
Map
<
String
,
Map
<
String
,
LanguageMsg
>>
resourceMap
=
new
HashMap
<>();
...
...
@@ -91,64 +101,113 @@ public class MessageService {
}
}
}
public
void
autoImportProperties
()
{
// String filePath = getResourcesPath();
String
filePath
=
"D:\\resources"
;
File
file
=
new
File
(
filePath
);
//需要获取的文件的路径
if
(
file
.
exists
()
&&
file
.
isDirectory
())
{
String
[]
fileNameLists
=
file
.
list
();
//存储文件名的String数组
File
[]
filePathLists
=
file
.
listFiles
();
//存储文件路径的String数组
Map
<
String
,
String
>
defaultLanMap
=
new
HashMap
<>();
Map
<
String
,
Map
<
String
,
String
>>
lanMsgMap
=
new
HashMap
<>();
for
(
int
i
=
0
;
i
<
filePathLists
.
length
;
i
++)
{
if
(
filePathLists
[
i
].
isFile
())
{
String
fileName
=
filePathLists
[
i
].
getName
();
if
(
fileName
.
endsWith
(
".properties"
))
{
String
lanType
=
fileName
.
replace
(
"messages"
,
""
).
replace
(
".properties"
,
""
);
if
(
ObjectUtil
.
isEmpty
(
lanType
))
{
defaultLanMap
=
readPropertiesFile
(
filePathLists
[
i
]);
log
.
info
(
"MessageCache 从文件["
+
fileName
+
"]中读取到"
+
defaultLanMap
.
size
()
+
"]条默认资源"
);
}
else
{
String
lan
=
lanType
.
substring
(
1
);
lan
=
lan
.
replace
(
'_'
,
'-'
);
Map
<
String
,
String
>
map
=
readPropertiesFile
(
filePathLists
[
i
]);
lanMsgMap
.
put
(
lan
,
map
);
log
.
info
(
"MessageCache 从文件["
+
fileName
+
"]中读取到["
+
defaultLanMap
.
size
()
+
"]条["
+
lan
+
"]资源"
);
}
}
}
public
void
autoImportResources
()
{
Map
<
String
,
Map
<
String
,
String
>>
lanMsgMap
=
new
HashMap
<>();
Map
<
String
,
String
>
defaultLanMap
=
new
HashMap
<>();
List
<
String
>
list
=
getAllLanList
();
list
.
add
(
""
);
for
(
String
lan
:
list
)
{
String
[]
array
=
lan
.
split
(
"-"
);
Locale
locale
=
null
;
if
(
array
.
length
==
2
)
{
locale
=
new
Locale
(
array
[
0
],
array
[
1
]);
}
else
{
locale
=
new
Locale
(
lan
);
}
if
(
ObjectUtil
.
isEmpty
(
lan
))
{
defaultLanMap
=
messageSource
.
getMessageMap
(
locale
);
log
.
info
(
"autoImportResources 读取到"
+
defaultLanMap
.
size
()
+
"]条默认资源"
);
}
else
{
Map
<
String
,
String
>
map
=
messageSource
.
getMessageMap
(
locale
);
lanMsgMap
.
put
(
lan
,
map
);
log
.
info
(
"autoImportResources 读取到["
+
map
.
size
()
+
"]条["
+
lan
+
"]资源"
);
}
}
List
<
LanguageMsg
>
languageMsgs
=
new
ArrayList
<>();
for
(
String
code
:
defaultLanMap
.
keySet
())
{
String
defMsg
=
defaultLanMap
.
get
(
code
);
LanguageMsg
msg
=
new
LanguageMsg
(
code
,
defMsg
,
""
);
for
(
String
lan
:
lanMsgMap
.
keySet
())
{
if
(
lanMsgMap
.
get
(
lan
).
containsKey
(
code
))
{
String
lanMsg
=
lanMsgMap
.
get
(
lan
).
get
(
code
);
msg
.
setContent
(
lan
,
lanMsg
);
}
List
<
LanguageMsg
>
languageMsgs
=
new
ArrayList
<>();
for
(
String
code
:
defaultLanMap
.
keySet
())
{
String
defMsg
=
defaultLanMap
.
get
(
code
);
LanguageMsg
msg
=
new
LanguageMsg
(
code
,
defMsg
,
""
);
for
(
String
lan
:
lanMsgMap
.
keySet
(
))
{
if
(
lanMsgMap
.
get
(
lan
).
containsKey
(
code
))
{
String
lanMsg
=
lanMsgMap
.
get
(
lan
).
get
(
code
);
msg
.
setContent
(
lan
,
lanMsg
);
}
languageMsgs
.
add
(
msg
);
}
//只能新增不能修改
msgListUpload
(
".properties"
,
languageMsgs
,
false
);
// languageMsgManager.insertAll(languageMsgs);
languageMsgs
.
add
(
msg
);
}
//只能新增不能修改
msgListUpload
(
".properties"
,
languageMsgs
,
false
);
// languageMsgManager.insertAll(languageMsgs);
}
// public void autoImportProperties() {
//
//// String filePath = getResourcesPath();
//
// String filePath = "D:\\resources";
//
// File file = new File(filePath); //需要获取的文件的路径
// if (file.exists() && file.isDirectory()) {
// String[] fileNameLists = file.list(); //存储文件名的String数组
// File[] filePathLists = file.listFiles(); //存储文件路径的String数组
//
// Map<String, String> defaultLanMap = new HashMap<>();
//
// Map<String, Map<String, String>> lanMsgMap = new HashMap<>();
//
// for (int i = 0; i < filePathLists.length; i++) {
// if (filePathLists[i].isFile()) {
//
// String fileName = filePathLists[i].getName();
// if (fileName.endsWith(".properties")) {
//
// String lanType = fileName.replace("messages", "").replace(".properties", "");
// if (ObjectUtil.isEmpty(lanType)) {
// defaultLanMap = readPropertiesFile(filePathLists[i]);
// log.info("MessageCache 从文件[" + fileName + "]中读取到" + defaultLanMap.size() + "]条默认资源");
// } else {
// String lan = lanType.substring(1);
// lan = lan.replace('_', '-');
// Map<String, String> map = readPropertiesFile(filePathLists[i]);
// lanMsgMap.put(lan, map);
// log.info("MessageCache 从文件[" + fileName + "]中读取到[" + defaultLanMap.size() + "]条[" + lan + "]资源");
// }
// }
//
// }
// }
//
// List<LanguageMsg> languageMsgs = new ArrayList<>();
// for (String code :
// defaultLanMap.keySet()) {
// String defMsg = defaultLanMap.get(code);
// LanguageMsg msg = new LanguageMsg(code, defMsg, "");
// for (String lan :
// lanMsgMap.keySet()) {
// if (lanMsgMap.get(lan).containsKey(code)) {
// String lanMsg = lanMsgMap.get(lan).get(code);
// msg.setContent(lan, lanMsg);
// }
// }
// languageMsgs.add(msg);
// }
// //只能新增不能修改
// msgListUpload(".properties", languageMsgs,false);
//// languageMsgManager.insertAll(languageMsgs);
// }
// }
public
List
<
String
>
getAllLanList
()
{
...
...
src/main/java/com/neotel/smfcore/core/language/util/MessageUtils.java
查看文件 @
699c2f9
...
...
@@ -94,7 +94,7 @@ public class MessageUtils {
//自动导入CSV内容,只新增不修改
messageService
.
autoImportCsvFile
();
//只新增不修改
messageService
.
autoImport
Properti
es
();
messageService
.
autoImport
Resourc
es
();
if
(
msgMap
.
size
()
>
0
)
{
return
;
}
...
...
src/main/java/com/neotel/smfcore/core/language/util/MyMessageSource.java
0 → 100644
查看文件 @
699c2f9
package
com
.
neotel
.
smfcore
.
core
.
language
.
util
;
import
org.springframework.context.support.ResourceBundleMessageSource
;
import
org.springframework.stereotype.Service
;
import
java.util.*
;
@Service
public
class
MyMessageSource
extends
ResourceBundleMessageSource
{
private
final
String
baseName
=
"messages"
;
public
Map
<
String
,
String
>
getMessageMap
(
Locale
locale
){
Map
<
String
,
String
>
messageMap
=
new
HashMap
<>();
ResourceBundle
resourceBundle
=
getResourceBundle
(
baseName
,
locale
);
if
(
resourceBundle
!=
null
){
Set
<
String
>
keySet
=
resourceBundle
.
keySet
();
for
(
String
key
:
keySet
)
{
String
value
=
resourceBundle
.
getString
(
key
);
if
(!
value
.
isEmpty
()){
messageMap
.
put
(
key
,
value
);
}
}
}
return
messageMap
;
}
}
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论