From 31cabb17fdf1c2d4bcc217f59931da84217fd2e1 Mon Sep 17 00:00:00 2001 From: Glavo Date: Sun, 21 Sep 2025 21:59:12 +0800 Subject: [PATCH] update --- .../hmcl/gradle/l10n/CreateLocaleNames.java | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/buildSrc/src/main/java/org/jackhuang/hmcl/gradle/l10n/CreateLocaleNames.java b/buildSrc/src/main/java/org/jackhuang/hmcl/gradle/l10n/CreateLocaleNames.java index fa48c42ce..61e4dc247 100644 --- a/buildSrc/src/main/java/org/jackhuang/hmcl/gradle/l10n/CreateLocaleNames.java +++ b/buildSrc/src/main/java/org/jackhuang/hmcl/gradle/l10n/CreateLocaleNames.java @@ -91,7 +91,9 @@ public abstract class CreateLocaleNames extends DefaultTask { .toList(); } + // For Upside Down English UpsideDownTranslate.Translator upsideDownTranslator = new UpsideDownTranslate.Translator(); + Map englishDisplayNames = new HashMap<>(); SortedSet languages = supportedLanguages.stream() .map(Locale::getLanguage) @@ -144,19 +146,23 @@ public abstract class CreateLocaleNames extends DefaultTask { for (String language : languages) { String displayName = overrideProperties.getProperty(language); if (displayName == null) { - displayName = new Locale.Builder() - .setLanguage(language) - .build() - .getDisplayLanguage(currentLanguage); + if (currentLanguage.equals(UpsideDownTranslate.EN_QABS) && englishDisplayNames.containsKey(language)) { + displayName = upsideDownTranslator.translate(englishDisplayNames.get(language)); + } else { + displayName = new Locale.Builder() + .setLanguage(language) + .build() + .getDisplayLanguage(currentLanguage); - if (displayName.equals(language)) - continue; // Skip + if (displayName.equals(language)) + continue; // Skip - if (currentLanguage.equals(UpsideDownTranslate.EN_QABS)) { - displayName = upsideDownTranslator.translate(displayName); } } + if (currentLanguage.equals(Locale.ENGLISH)) + englishDisplayNames.put(language, displayName); + writer.write(language + "=" + displayName + "\n"); } writer.write('\n'); @@ -165,19 +171,23 @@ public abstract class CreateLocaleNames extends DefaultTask { for (String script : scripts) { String displayName = overrideProperties.getProperty(script); if (displayName == null) { - displayName = new Locale.Builder() - .setScript(script) - .build() - .getDisplayScript(currentLanguage); + if (currentLanguage.equals(UpsideDownTranslate.EN_QABS) && englishDisplayNames.containsKey(script)) { + displayName = upsideDownTranslator.translate(englishDisplayNames.get(script)); + } else { + displayName = new Locale.Builder() + .setScript(script) + .build() + .getDisplayScript(currentLanguage); - if (displayName.equals(script)) - continue; // Skip + if (displayName.equals(script)) + continue; // Skip - if (currentLanguage.equals(UpsideDownTranslate.EN_QABS)) { - displayName = upsideDownTranslator.translate(displayName); } } + if (currentLanguage.equals(Locale.ENGLISH)) + englishDisplayNames.put(script, displayName); + writer.write(script + "=" + displayName + "\n"); } writer.write('\n');