Skip to content

Commit 494085e

Browse files
author
杨利兵
committed
优化properties生成功能
1 parent 5524de6 commit 494085e

File tree

7 files changed

+63
-32
lines changed

7 files changed

+63
-32
lines changed

message.xlsx

72 Bytes
Binary file not shown.

pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
<artifactId>commons-cli</artifactId>
1717
<version>1.4</version>
1818
</dependency>
19+
<dependency>
20+
<groupId>org.apache.commons</groupId>
21+
<artifactId>commons-text</artifactId>
22+
<version>1.8</version>
23+
</dependency>
1924
<dependency>
2025
<groupId>org.apache.poi</groupId>
2126
<artifactId>poi-excelant</artifactId>

src/main/java/com/yanglb/codegen/core/translator/impl/MsgJavaTranslatorImpl.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import com.yanglb.codegen.core.translator.BaseMsgTranslator;
2222
import com.yanglb.codegen.exceptions.CodeGenException;
2323
import com.yanglb.codegen.utils.StringUtil;
24+
import org.apache.commons.text.StringEscapeUtils;
2425

2526
public class MsgJavaTranslatorImpl extends BaseMsgTranslator {
2627
@Override
@@ -46,10 +47,18 @@ protected void onTranslate() throws CodeGenException {
4647
for(Map<String, String> itm : tblModel.toList()) {
4748
String id = itm.get("id");
4849
if(StringUtil.isNullOrEmpty(id)) continue;
49-
// TODO: 对字符串进行编码转换
50-
String value = itm.get(this.msgLang);
51-
sb.append(String.format("%s=%s\r\n", id, value));
50+
51+
id = escape(id);
52+
String value = this.escape(itm.get(this.msgLang));
53+
sb.append(String.format("%s=%s\n", id, value));
5254
}
5355
}
5456
}
57+
58+
private String escape(String value) {
59+
if(value == null) return null;
60+
61+
value = StringEscapeUtils.escapeJava(value);
62+
return value;
63+
}
5564
}

src/main/java/com/yanglb/codegen/shell/CGShell.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ public class CGShell {
2626
public boolean invoke(String[] args) {
2727

2828
// test data
29-
args = new String[] {"msg.resx", "/Users/yanglibing/Work/cg/tests/msg.xlsx"};
29+
args = new String[] {"msg.prop", "/Users/yanglibing/Work/cg/tests/msg.xlsx"};
3030
// args = new String[] {"ddl.sqlite", "/Users/yanglibing/Work/cg/tests/ddl.xlsx"};
3131
// args = new String[] {"dml", "/Users/yanglibing/Work/cg/tests/dml.xlsx"};
32-
// args = new String[] {"ddl.mssql", "-v"};
33-
// args = new String[] {"msg.prop", "src/main/resources/message.xlsx", "-fn", "message"};
32+
// args = new String[] {"", "-h"};
33+
// args = new String[] {"msg.prop", "message.xlsx", "-out", "src/main/resources"};
3434

3535
IParser parser = IParser.parserByArgs(args);
3636
ParamaModel model;

src/main/java/com/yanglb/codegen/utils/StringUtil.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,4 +60,19 @@ public static List<String> findFlags(String data) {
6060
}
6161
return listKey;
6262
}
63+
64+
/**
65+
* 字符串转换unicode
66+
* @param string
67+
* @return
68+
*/
69+
public static String string2Unicode(String string) {
70+
StringBuffer unicode = new StringBuffer();
71+
for (int i = 0; i < string.length(); i++) {
72+
char c = string.charAt(i);
73+
unicode.append("\\u" + Integer.toHexString(c));
74+
}
75+
76+
return unicode.toString();
77+
}
6378
}

src/main/resources/message.properties

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,12 @@ E_002=There is no%s field, please check whether the Excel template is correct.
1515
E_003=There is no code to be generated in the specified Excel.
1616
E_004=%s does not exist.
1717
E_005=Excel failed to read, please check whether the Excel format is correct.
18-
E_006=Cannot access the value of the%s.%S property: \n%s
18+
E_006=Cannot access the value of the%s.%S property: %s
1919
E_007=Failed to write file:%s
20-
E_008=The output file already exists, and a directory cannot be generated. \n%s
21-
E_009=Unable to create output file directory. \n%s
20+
E_008=The output file already exists, and a directory cannot be generated. %s
21+
E_009=Unable to create output file directory. %s
2222
E_010=This type of code generation is currently not supported.
2323
E_011=Unable to create (%s):%s
24-
E_012=-Foreign key name is too long and has been truncated (%s) \n
24+
E_012=-- Foreign key name is too long and has been truncated (%s)
2525
E_013=Resource ID [%s] is duplicated, please check.
26+
E_014=\u65E0\u6CD5\u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6\uFF08%s\uFF09
Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
# App Message
2-
ddl.mssql=\u751f\u6210SqlServer\u6570\u636e\u5e93\u7ed3\u6784SQL\u811a\u672c\uff08.ddl\uff09\u3002
3-
ddl.mysql=\u751f\u6210MySql\u6570\u636e\u5e93\u7ed3\u6784SQL\u811a\u672c\uff08.ddl\uff09\u3002
4-
ddl.sqlite=\u751f\u6210SQLite\u6570\u636e\u5e93\u7ed3\u6784SQL\u811a\u672c\uff08.ddl\uff09\u3002
5-
dml=\u751f\u6210\u6570\u636e\u5e93\u521d\u59cb \u6570\u636eSQL\u811a\u672c\uff08.dml\uff09\u3002
6-
msg.resx=\u751f\u6210.NET\u56fd\u9645\u5316\u8d44\u6e90\u6587\u4ef6\uff08.resx\uff09\u3002
7-
msg.json=\u751f\u6210JSON\u56fd\u9645\u5316\u8d44\u6e90\u6587\u4ef6\uff08.json\uff09\u3002
8-
msg.ios=\u751f\u6210IOS\u56fd\u9645\u5316\u8d44\u6e90\u6587\u4ef6\uff08.strings\uff09\u3002
9-
msg.android=\u751f\u6210Android\u56fd\u9645\u5316\u8d44\u6e90\u6587\u4ef6\uff08strings.xml\uff09\u3002
10-
msg.prop=\u751f\u6210Java\u56fd\u9645\u5316\u8d44\u6e90\u6587\u4ef6\uff08.properties\uff09\u3002
2+
ddl.mssql=\u751F\u6210SqlServer\u6570\u636E\u5E93\u7ED3\u6784SQL\u811A\u672C\uFF08.ddl\uFF09\u3002
3+
ddl.mysql=\u751F\u6210MySql\u6570\u636E\u5E93\u7ED3\u6784SQL\u811A\u672C\uFF08.ddl\uFF09\u3002
4+
ddl.sqlite=\u751F\u6210SQLite\u6570\u636E\u5E93\u7ED3\u6784SQL\u811A\u672C\uFF08.ddl\uFF09\u3002
5+
dml=\u751F\u6210\u6570\u636E\u5E93\u521D\u59CB \u6570\u636ESQL\u811A\u672C\uFF08.dml\uFF09\u3002
6+
msg.resx=\u751F\u6210.NET\u56FD\u9645\u5316\u8D44\u6E90\u6587\u4EF6\uFF08.resx\uFF09\u3002
7+
msg.json=\u751F\u6210JSON\u56FD\u9645\u5316\u8D44\u6E90\u6587\u4EF6\uFF08.json\uFF09\u3002
8+
msg.ios=\u751F\u6210IOS\u56FD\u9645\u5316\u8D44\u6E90\u6587\u4EF6\uFF08.strings\uFF09\u3002
9+
msg.android=\u751F\u6210Android\u56FD\u9645\u5316\u8D44\u6E90\u6587\u4EF6\uFF08strings.xml\uFF09\u3002
10+
msg.prop=\u751F\u6210Java\u56FD\u9645\u5316\u8D44\u6E90\u6587\u4EF6\uFF08.properties\uFF09\u3002
1111

1212
# Error Message
13-
E_001=\u8f6c\u6362%s\u5c5e\u6027\u5931\u8d25\uff1a%s
14-
E_002=\u6ca1\u6709%s\u5b57\u6bb5\uff0c\u8bf7\u68c0\u67e5Excel\u6a21\u677f\u662f\u5426\u6b63\u786e\u3002
15-
E_003=\u6240\u6307\u5b9a\u7684Excel\u4e2d\u6ca1\u6709\u8981\u751f\u6210\u7684\u4ee3\u7801\u3002
16-
E_004=%s \u4e0d\u5b58\u5728\u3002
17-
E_005=Excel\u8bfb\u53d6\u5931\u8d25\uff0c\u8bf7\u68c0\u67e5Excel\u683c\u5f0f\u662f\u5426\u6b63\u786e\u3002
18-
E_006=\u65e0\u6cd5\u8bbf\u95ee%s.%s\u5c5e\u6027\u7684\u503c: \r\n%s
19-
E_007=\u5199\u5165\u6587\u4ef6\u5931\u8d25\uff1a%s
20-
E_008=\u8f93\u51fa\u6587\u4ef6\u5df2\u7ecf\u5b58\u5728\uff0c\u4e14\u662f\u4e00\u4e2a\u76ee\u5f55\u4e0d\u53ef\u7ee7\u7eed\u751f\u6210\u3002\r\n%s
21-
E_009=\u65e0\u6cd5\u521b\u5efa\u8f93\u51fa\u6587\u4ef6\u76ee\u5f55\u3002\r\n%s
22-
E_010=\u6682\u4e0d\u652f\u6301\u6b64\u79cd\u7c7b\u578b\u7684\u4ee3\u7801\u751f\u6210\u3002
23-
E_011=\u65e0\u6cd5\u521b\u5efa(%s)\uff1a%s
24-
E_012=-- \u5916\u952e\u540d\u592a\u957f\u5df2\u622a\u65ad\uff08%s\uff09\r\n
25-
E_013=\u8d44\u6e90ID\u3010%s\u3011\u91cd\u590d\uff0c\u8bf7\u68c0\u67e5\u3002
13+
E_001=\u8F6C\u6362%s\u5C5E\u6027\u5931\u8D25\uFF1A%s
14+
E_002=\u6CA1\u6709%s\u5B57\u6BB5\uFF0C\u8BF7\u68C0\u67E5Excel\u6A21\u677F\u662F\u5426\u6B63\u786E\u3002
15+
E_003=\u6240\u6307\u5B9A\u7684Excel\u4E2D\u6CA1\u6709\u8981\u751F\u6210\u7684\u4EE3\u7801\u3002
16+
E_004=%s \u4E0D\u5B58\u5728\u3002
17+
E_005=Excel\u8BFB\u53D6\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5Excel\u683C\u5F0F\u662F\u5426\u6B63\u786E\u3002
18+
E_006=\u65E0\u6CD5\u8BBF\u95EE%s.%s\u5C5E\u6027\u7684\u503C: %s
19+
E_007=\u5199\u5165\u6587\u4EF6\u5931\u8D25\uFF1A%s
20+
E_008=\u8F93\u51FA\u6587\u4EF6\u5DF2\u7ECF\u5B58\u5728\uFF0C\u4E14\u662F\u4E00\u4E2A\u76EE\u5F55\u4E0D\u53EF\u7EE7\u7EED\u751F\u6210\u3002%s
21+
E_009=\u65E0\u6CD5\u521B\u5EFA\u8F93\u51FA\u6587\u4EF6\u76EE\u5F55\u3002%s
22+
E_010=\u6682\u4E0D\u652F\u6301\u6B64\u79CD\u7C7B\u578B\u7684\u4EE3\u7801\u751F\u6210\u3002
23+
E_011=\u65E0\u6CD5\u521B\u5EFA(%s)\uFF1A%s
24+
E_012=-- \u5916\u952E\u540D\u592A\u957F\u5DF2\u622A\u65AD\uFF08%s\uFF09
25+
E_013=\u8D44\u6E90ID\u3010%s\u3011\u91CD\u590D\uFF0C\u8BF7\u68C0\u67E5\u3002
26+
E_014=\u65E0\u6CD5\u8BFB\u53D6\u914D\u7F6E\u6587\u4EF6\uFF08%s\uFF09

0 commit comments

Comments
 (0)