mirror of
https://github.com/HMCL-dev/HMCL.git
synced 2025-09-23 03:04:07 -04:00
update
This commit is contained in:
parent
5b55e9f74a
commit
22f5a2991c
@ -18,11 +18,13 @@
|
||||
package org.jackhuang.hmcl.util.i18n;
|
||||
|
||||
import org.jackhuang.hmcl.util.StringUtils;
|
||||
import org.jackhuang.hmcl.util.gson.JsonUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.annotations.Unmodifiable;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.*;
|
||||
@ -44,6 +46,22 @@ public final class LocaleUtils {
|
||||
|
||||
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,
|
||||
String variant) {
|
||||
Locale.Builder builder = new Locale.Builder();
|
||||
@ -314,12 +332,9 @@ public final class LocaleUtils {
|
||||
}
|
||||
|
||||
public static @Nullable String getParentLanguage(String language) {
|
||||
return switch (language) {
|
||||
case "cmn", "lzh", "cdo", "cjy", "cpx", "czh",
|
||||
"gan", "hak", "hsn", "mnp", "nan", "wuu", "yue" -> "zh";
|
||||
case "" -> null;
|
||||
default -> "";
|
||||
};
|
||||
return !language.isEmpty()
|
||||
? subLanguageToParent.getOrDefault(language, "")
|
||||
: null;
|
||||
}
|
||||
|
||||
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