From bf55d38a7b0a5844d980a839554497170e08b230 Mon Sep 17 00:00:00 2001 From: Taskeren Date: Tue, 1 Oct 2019 19:17:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=B9=E6=B3=95=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 将操作方法移动到T18n中 2. 添加 README --- README.md | 82 +++++++++++++++++++ src/main/java/cn/glycol/t18n/I18n.java | 33 +------- src/main/java/cn/glycol/t18n/LanguageMap.java | 33 -------- src/main/java/cn/glycol/t18n/T18n.java | 2 +- src/main/java/cn/glycol/t18n/T18nUtils.java | 6 +- 5 files changed, 90 insertions(+), 66 deletions(-) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..711a8ee --- /dev/null +++ b/README.md @@ -0,0 +1,82 @@ +

+Taskeren's Internationalization +

+ +

+A lightweight, powerful I18n tool for Java. +

+ +## Get T18n + +You can get this project in Jitpack with Maven, Gradle and so on. + +### Maven + +1. Import the Jitpack source. +``` + + + jitpack.io + https://jitpack.io + + +``` + +2. Add the denpendency. +``` + + com.github.nitu2003 + T18n + 1.5 + +``` + +### Gradle + +1. Import the Jitpack source. +``` + repositories { + ... + maven { url 'https://jitpack.io' } + } +``` + +2. Add the dependency. +``` + dependencies { + implementation 'com.github.nitu2003:T18n:1.5' + } +``` + +### For else +[![](https://jitpack.io/v/nitu2003/T18n.svg)](https://jitpack.io/#nitu2003/T18n) + +## Dev with T18n + +1. Get the Language Map. +```java +// from file +LanguageMapBuilder.fromFile(new File("res/i18n/en_us.lang")); +// from jar resource +LanguageMapBuilder.fromJarResource("res/i18n/en_us.lang"); +// from online content (Deprecated) +LanguageMapBuilder.fromURL("https://example.com/i18n/en.lang"); +``` + +2. Push it to the I18n. +```java +// reset the I18n and push it +T18n.set(theMap); +// add the new to the old +T18n.add(theMap); +``` + +3. Use it in the project +_en.lang_ +``` +HelloToUser=Hello %s. +``` +_app.java_ +```java +System.out.println(I18n.format("HelloToUser", "Taskeren")); // It should be "Hello Taskeren" +``` \ No newline at end of file diff --git a/src/main/java/cn/glycol/t18n/I18n.java b/src/main/java/cn/glycol/t18n/I18n.java index 4cdd842..2567443 100644 --- a/src/main/java/cn/glycol/t18n/I18n.java +++ b/src/main/java/cn/glycol/t18n/I18n.java @@ -17,22 +17,6 @@ public class I18n { charset = Charset.forName(System.getProperty("file.encoding")); } - /* ******************************************************* - * - * Settings - * - * *******************************************************/ - - @Deprecated - public static void setLanguageMap(LanguageMap map) { - T18n.set(map); - } - - @Deprecated - public static void setEncoding(String charset) { - I18n.charset = Charset.forName(charset); - } - /* ******************************************************* * * Localization functions @@ -40,8 +24,7 @@ public class I18n { * *******************************************************/ /** 自动从语言文件中提取翻译,空翻译时返回原键值 */ - @Deprecated - public static String translate(String key) { + protected static String translate(String key) { return reEncode(map.get(key), charset); } @@ -56,8 +39,7 @@ public class I18n { * 连续读取翻译(translate)。 * @param keyRegular 翻译键值表达式,需要填入一个“%s”用于替换为行数。行数从0开始。例如“welcome.%s”,则程序会依次向列表中添加“welcome.0”,“welcome.1”...的翻译,直到获取到空值。 */ - @Deprecated - public static List translateList(String keyRegular) { + protected static List translateList(String keyRegular) { List vlist = new ArrayList(); @@ -111,15 +93,4 @@ public class I18n { } } - /* ******************************************************* - * - * For Devlopers - * - * *******************************************************/ - - @Deprecated - public static LanguageMap getLangMap() { - return map; - } - } diff --git a/src/main/java/cn/glycol/t18n/LanguageMap.java b/src/main/java/cn/glycol/t18n/LanguageMap.java index 47c0dec..15ef433 100644 --- a/src/main/java/cn/glycol/t18n/LanguageMap.java +++ b/src/main/java/cn/glycol/t18n/LanguageMap.java @@ -1,8 +1,6 @@ package cn.glycol.t18n; -import java.util.ArrayList; import java.util.HashMap; -import java.util.Set; public class LanguageMap extends HashMap { @@ -12,35 +10,4 @@ public class LanguageMap extends HashMap { return super.getOrDefault(key, key.toString()); } - /** 返回所有键值对 - * @see #entrySet() - */ - public Set> getAllKeyValuePairs() { - return this.entrySet(); - } - - /** 获取所有键值对文字 */ - public ArrayList getAllKeyValuePairsString() { - - ArrayList list = new ArrayList(); - for(Entry set : this.entrySet()) { - String key = set.getKey(); - String val = set.getValue(); - String line; - - if(key != null && !key.equals("")) { - line = key + "=" + val; - list.add(line); - } - } - - return list; - } - - /** 输出键值对 */ - public static void printKVPair(LanguageMap langMap) { - ArrayList lines = langMap.getAllKeyValuePairsString(); - lines.forEach(s->System.out.println(s)); - } - } diff --git a/src/main/java/cn/glycol/t18n/T18n.java b/src/main/java/cn/glycol/t18n/T18n.java index 319d4c1..4c95faa 100644 --- a/src/main/java/cn/glycol/t18n/T18n.java +++ b/src/main/java/cn/glycol/t18n/T18n.java @@ -3,7 +3,7 @@ package cn.glycol.t18n; import java.nio.charset.Charset; import java.util.Objects; -public class T18n { +public class T18n extends I18n { /** * 设置本地化对照表 diff --git a/src/main/java/cn/glycol/t18n/T18nUtils.java b/src/main/java/cn/glycol/t18n/T18nUtils.java index 125ac5b..081aad5 100644 --- a/src/main/java/cn/glycol/t18n/T18nUtils.java +++ b/src/main/java/cn/glycol/t18n/T18nUtils.java @@ -14,6 +14,7 @@ import java.nio.file.Files; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.Map.Entry; import java.util.Objects; public class T18nUtils { @@ -68,7 +69,10 @@ public class T18nUtils { try { - String content = flattenList(map.getAllKeyValuePairsString()); + String content = ""; + for(Entry entries : map.entrySet()) { + content += entries.getKey() + "=" + entries.getValue() + "\n"; + } if(!file.exists()) { file.getParentFile().mkdirs();