9
0
mirror of https://github.com/LeavesMC/Leaves.git synced 2025-12-19 14:59:32 +00:00
Files
LeavesMC/leaves-server/minecraft-patches/features/0076-Leaves-I18n.patch
2025-06-05 17:53:18 +08:00

66 lines
3.1 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: violetc <58360096+s-yh-china@users.noreply.github.com>
Date: Tue, 4 Feb 2025 20:01:19 +0800
Subject: [PATCH] Leaves I18n
diff --git a/net/minecraft/locale/Language.java b/net/minecraft/locale/Language.java
index 7b9e2a1a208b46a69c16e6afd8b502259893574f..aa0db0cbbcfa079c43dbed6679abf99979e0abf0 100644
--- a/net/minecraft/locale/Language.java
+++ b/net/minecraft/locale/Language.java
@@ -31,6 +31,42 @@ public abstract class Language {
public static final String DEFAULT = "en_us";
private static volatile Language instance = loadDefault();
+ // Leaves start - i18n
+ public static void loadI18N(String lang) {
+ DeprecatedTranslationsInfo deprecatedTranslationsInfo = DeprecatedTranslationsInfo.loadFromDefaultResource();
+ Map<String, String> map = new HashMap<>();
+ BiConsumer<String, String> biConsumer = map::put;
+ parseTranslations(biConsumer, "/assets/minecraft/lang/" + lang + ".json");
+ deprecatedTranslationsInfo.applyToMap(map);
+ final Map<String, String> map2 = Map.copyOf(map);
+ Language language = new Language() {
+ @Override
+ public String getOrDefault(String key, String fallback) {
+ return map2.getOrDefault(key, fallback);
+ }
+
+ @Override
+ public boolean has(String key) {
+ return map2.containsKey(key);
+ }
+
+ @Override
+ public boolean isDefaultRightToLeft() {
+ return false;
+ }
+
+ @Override
+ public FormattedCharSequence getVisualOrder(FormattedText text) {
+ return visitor -> text.visit(
+ (style, string) -> StringDecomposer.iterateFormatted(string, style, visitor) ? Optional.empty() : FormattedText.STOP_ITERATION,
+ Style.EMPTY
+ ).isPresent();
+ }
+ };
+ inject(language);
+ }
+ // Leaves end - i18n
+
private static Language loadDefault() {
DeprecatedTranslationsInfo deprecatedTranslationsInfo = DeprecatedTranslationsInfo.loadFromDefaultResource();
Map<String, String> map = new HashMap<>();
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index e4946438d0c1fb9d2be616cb95768f890b32f286..8ed391f61b0eb50d26ce8250c652433e896d5ae4 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -186,6 +186,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // Paper - load version history now
org.leavesmc.leaves.LeavesConfig.init((java.io.File) options.valueOf("leaves-settings")); // Leaves - Server Config
+ net.minecraft.locale.Language.loadI18N(org.leavesmc.leaves.LeavesConfig.mics.serverLang); // Leaves - i18n
com.destroystokyo.paper.Metrics.PaperMetrics.startMetrics(); // Paper - start metrics // Leaves - down