mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-23 11:14:44 -04:00
update
This commit is contained in:
parent
5b55e9f74a
commit
22f5a2991c
@ -18,11 +18,13 @@
|
|||||||
package org.jackhuang.hmcl.util.i18n;
|
package org.jackhuang.hmcl.util.i18n;
|
||||||
|
|
||||||
import org.jackhuang.hmcl.util.StringUtils;
|
import org.jackhuang.hmcl.util.StringUtils;
|
||||||
|
import org.jackhuang.hmcl.util.gson.JsonUtils;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.annotations.Unmodifiable;
|
import org.jetbrains.annotations.Unmodifiable;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.InputStream;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
@ -44,6 +46,22 @@ public final class LocaleUtils {
|
|||||||
|
|
||||||
public static final String DEFAULT_LANGUAGE_KEY = "default";
|
public static final String DEFAULT_LANGUAGE_KEY = "default";
|
||||||
|
|
||||||
|
private static final Map<String, String> subLanguageToParent = new HashMap<>();
|
||||||
|
|
||||||
|
static {
|
||||||
|
try (InputStream input = LocaleUtils.class.getResourceAsStream("/assets/lang/sublanguages.json")) {
|
||||||
|
if (input != null) {
|
||||||
|
JsonUtils.fromJsonFully(input, JsonUtils.mapTypeOf(String.class, JsonUtils.listTypeOf(String.class))).forEach((parent, subList) -> {
|
||||||
|
for (String subLanguage : subList) {
|
||||||
|
subLanguageToParent.put(subLanguage, parent);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (IOException e) {
|
||||||
|
LOG.warning("Failed to load sublanguages.json file", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static Locale getInstance(String language, String script, String region,
|
private static Locale getInstance(String language, String script, String region,
|
||||||
String variant) {
|
String variant) {
|
||||||
Locale.Builder builder = new Locale.Builder();
|
Locale.Builder builder = new Locale.Builder();
|
||||||
@ -314,12 +332,9 @@ public final class LocaleUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static @Nullable String getParentLanguage(String language) {
|
public static @Nullable String getParentLanguage(String language) {
|
||||||
return switch (language) {
|
return !language.isEmpty()
|
||||||
case "cmn", "lzh", "cdo", "cjy", "cpx", "czh",
|
? subLanguageToParent.getOrDefault(language, "")
|
||||||
"gan", "hak", "hsn", "mnp", "nan", "wuu", "yue" -> "zh";
|
: null;
|
||||||
case "" -> null;
|
|
||||||
default -> "";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean isEnglish(Locale locale) {
|
public static boolean isEnglish(Locale locale) {
|
||||||
|
17
HMCLCore/src/main/resources/assets/lang/sublanguages.json
Normal file
17
HMCLCore/src/main/resources/assets/lang/sublanguages.json
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"zh" : [
|
||||||
|
"cmn",
|
||||||
|
"lzh",
|
||||||
|
"cdo",
|
||||||
|
"cjy",
|
||||||
|
"cpx",
|
||||||
|
"czh",
|
||||||
|
"gan",
|
||||||
|
"hak",
|
||||||
|
"hsn",
|
||||||
|
"mnp",
|
||||||
|
"nan",
|
||||||
|
"wuu",
|
||||||
|
"yue"
|
||||||
|
]
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user