1
0
mirror of https://github.com/nitu2003/T18n synced 2024-11-21 23:28:49 +00:00

调整部分方法

将设置和开发相关方法移动到T18n类中
This commit is contained in:
Taskeren 2019-08-30 12:17:48 +08:00
parent 7e91fa3d4c
commit b9d5915cda
8 changed files with 62 additions and 77 deletions

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="bin/main" path="src/main/java">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="bin/main" path="src/main/resources">
<attributes>
<attribute name="gradle_scope" value="main"/>
<attribute name="gradle_used_by_scope" value="main,test"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
<classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
<classpathentry kind="output" path="bin/default"/>
</classpath>

6
.gitignore vendored
View File

@ -3,3 +3,9 @@
# Ignore Gradle build output directory # Ignore Gradle build output directory
build build
# eclipse
bin/
.settings/
.classpath
.project

View File

@ -1,23 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>T18n</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.buildship.core.gradleprojectbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
</natures>
</projectDescription>

View File

@ -1,2 +0,0 @@
connection.project.dir=
eclipse.preferences.version=1

View File

@ -1,13 +0,0 @@
#
#Tue Jun 25 20:09:41 CST 2019
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error

2
bin/.gitignore vendored
View File

@ -1,2 +0,0 @@
/main/
/test/

View File

@ -4,15 +4,16 @@ import java.nio.charset.Charset;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@SuppressWarnings("unused")
public class I18n { public class I18n {
private static LanguageMap map; protected static LanguageMap map;
private static Charset charset; protected static Charset charset;
public static final int LOOP_MAX_COUNT = 1000; protected static final int LOOP_MAX_COUNT = 32767;
static { static {
map = new LanguageMap();
charset = Charset.forName(System.getProperty("file.encoding")); charset = Charset.forName(System.getProperty("file.encoding"));
} }
@ -22,10 +23,12 @@ public class I18n {
* *
* *******************************************************/ * *******************************************************/
@Deprecated
public static void setLanguageMap(LanguageMap map) { public static void setLanguageMap(LanguageMap map) {
I18n.map = map; T18n.set(map);
} }
@Deprecated
public static void setEncoding(String charset) { public static void setEncoding(String charset) {
I18n.charset = Charset.forName(charset); I18n.charset = Charset.forName(charset);
} }
@ -37,8 +40,9 @@ public class I18n {
* *******************************************************/ * *******************************************************/
/** 自动从语言文件中提取翻译,空翻译时返回原键值 */ /** 自动从语言文件中提取翻译,空翻译时返回原键值 */
@Deprecated
public static String translate(String key) { public static String translate(String key) {
return reEncode(getLanguageMapSafe().get(key), charset); return reEncode(map.get(key), charset);
} }
/** 自动翻译translate后再执行格式化format */ /** 自动翻译translate后再执行格式化format */
@ -52,6 +56,7 @@ public class I18n {
* 连续读取翻译translate * 连续读取翻译translate
* @param keyRegular 翻译键值表达式需要填入一个%s用于替换为行数行数从0开始例如welcome.%s则程序会依次向列表中添加welcome.0welcome.1...的翻译直到获取到空值 * @param keyRegular 翻译键值表达式需要填入一个%s用于替换为行数行数从0开始例如welcome.%s则程序会依次向列表中添加welcome.0welcome.1...的翻译直到获取到空值
*/ */
@Deprecated
public static List<String> translateList(String keyRegular) { public static List<String> translateList(String keyRegular) {
List<String> vlist = new ArrayList<String>(); List<String> vlist = new ArrayList<String>();
@ -84,7 +89,7 @@ public class I18n {
} }
public static boolean hasKey(String key) { public static boolean hasKey(String key) {
return getLanguageMapSafe().containsKey(key); return map.containsKey(key);
} }
/* ******************************************************* /* *******************************************************
@ -93,13 +98,6 @@ public class I18n {
* *
* *******************************************************/ * *******************************************************/
/** @see #hasKey(String) */
private static boolean canTranslate(String key) {
return hasKey(key);
}
private static final Charset DEFAULT_CHARSET = Charset.forName("unicode");
private static String reEncode(String bef, Charset charset) { private static String reEncode(String bef, Charset charset) {
byte[] bytes = bef.getBytes(charset); byte[] bytes = bef.getBytes(charset);
return new String(bytes, charset); return new String(bytes, charset);
@ -113,16 +111,13 @@ public class I18n {
} }
} }
private static LanguageMap getLanguageMapSafe() {
return map == null ? new LanguageMap() : map;
}
/* ******************************************************* /* *******************************************************
* *
* For Devlopers * For Devlopers
* *
* *******************************************************/ * *******************************************************/
@Deprecated
public static LanguageMap getLangMap() { public static LanguageMap getLangMap() {
return map; return map;
} }

View File

@ -0,0 +1,42 @@
package cn.glycol.t18n;
import java.nio.charset.Charset;
import java.util.Objects;
public class T18n {
/**
* 设置本地化对照表
* @param map 本地化对照表
*/
public static void set(LanguageMap map) {
Objects.requireNonNull(map, "map cannot be null");
I18n.map = map;
}
/**
* 添加额外的本地化对照表
* @param map 本地化对照表
*/
public static void add(LanguageMap map) {
Objects.requireNonNull(map, "map cannot be null");
I18n.map.putAll(map);
}
/**
* 设置输出的编码
* @param charset 编码
*/
public static void charset(Charset charset) {
Objects.requireNonNull(charset, "charset cannot be null");
I18n.charset = charset;
}
/**
* 获取本地化对照表
*/
public static LanguageMap map() {
return I18n.map;
}
}