Skip to content

Commit a015adb

Browse files
committed
update: translate
1 parent ea9db48 commit a015adb

File tree

3 files changed

+143
-0
lines changed

3 files changed

+143
-0
lines changed

src/main/java/io/github/optijava/opt_carpet_addition/OptCarpetAddition.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.apache.logging.log4j.Logger;
2525

2626
import java.io.File;
27+
import java.util.Map;
2728
import java.util.Objects;
2829

2930
public class OptCarpetAddition implements CarpetExtension, ModInitializer {
@@ -174,4 +175,9 @@ public void onPlayerLoggedOut(ServerPlayerEntity player) {
174175
public void registerLoggers() {
175176
LoggerRegister.registry();
176177
}
178+
179+
@Override
180+
public Map<String, String> canHasTranslations(String lang) {
181+
return RuleTranslator.getTranslationFromResourcePath(lang);
182+
}
177183
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.github.optijava.opt_carpet_addition;
2+
3+
4+
import com.google.gson.Gson;
5+
import com.google.gson.GsonBuilder;
6+
import com.google.gson.reflect.TypeToken;
7+
import org.apache.commons.io.IOUtils;
8+
9+
import java.io.IOException;
10+
import java.io.InputStream;
11+
import java.nio.charset.StandardCharsets;
12+
import java.util.Collections;
13+
import java.util.Map;
14+
15+
public class RuleTranslator {
16+
public static Map<String, String> getTranslationFromResourcePath(String lang) {
17+
InputStream langFile = RuleTranslator.class.getClassLoader().getResourceAsStream("assets/opt-carpet-addition/lang/%s.json".formatted(lang));
18+
if (langFile == null) {
19+
return Collections.emptyMap();
20+
}
21+
String jsonData;
22+
try {
23+
jsonData = IOUtils.toString(langFile, StandardCharsets.UTF_8);
24+
} catch (IOException e) {
25+
return Collections.emptyMap();
26+
}
27+
Gson gson = new GsonBuilder().setLenient().create();
28+
return gson.fromJson(jsonData, new TypeToken<Map<String, String>>() {}.getType());
29+
}
30+
}
Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
{
2+
"carpet.rule.commandTpToFakePlayer.name": "传送到假人命令",
3+
"carpet.rule.commandTpToFakePlayer.desc": "启用命令 [/player xxx tp] 将玩家传送到假人",
4+
5+
"carpet.rule.allowTpToRealPlayer.name": "传送到真实玩家命令",
6+
"carpet.rule.allowTpToRealPlayer.desc": "启用命令 [/player xxx tp] 将玩家传送到真实玩家",
7+
8+
"carpet.rule.commandTpHereFakePlayer.name": "传送假人到自己命令",
9+
"carpet.rule.commandTpHereFakePlayer.desc": "启用命令 [/player xxx tp] 将假人传送到自己",
10+
11+
"carpet.rule.allowTpHereRealPlayer.name": "传送真实玩家到自己命令",
12+
"carpet.rule.allowTpHereRealPlayer.desc": "启用命令 [/player xxx tp] 将真实玩家传送到自己",
13+
14+
"carpet.rule.forceFakePlayerGameMode.name": "强制假人游戏模式",
15+
"carpet.rule.forceFakePlayerGameMode.desc": "强制设置假人的游戏模式(生存/创造/冒险/关闭)",
16+
17+
"carpet.rule.fixXpLevelBug.name": "刷新经验等级漏洞修复",
18+
"carpet.rule.fixXpLevelBug.desc": "当玩家切换世界时刷新经验等级",
19+
20+
"carpet.rule.enableTpPrefixBlacklist.name": "启用传送前缀黑名单",
21+
"carpet.rule.enableTpPrefixBlacklist.desc": "启用传送命令前缀黑名单",
22+
23+
"carpet.rule.enableTpPrefixWhitelist.name": "启用传送前缀白名单",
24+
"carpet.rule.enableTpPrefixWhitelist.desc": "启用传送命令前缀白名单",
25+
26+
"carpet.rule.enableTpHerePrefixBlacklist.name": "启用传送到自己前缀黑名单",
27+
"carpet.rule.enableTpHerePrefixBlacklist.desc": "启用传送到自己命令前缀黑名单",
28+
29+
"carpet.rule.enableTpHerePrefixWhitelist.name": "启用传送到自己前缀白名单",
30+
"carpet.rule.enableTpHerePrefixWhitelist.desc": "启用传送到自己命令前缀白名单",
31+
32+
"carpet.rule.disabledLayEggs.name": "禁用鸡产蛋",
33+
"carpet.rule.disabledLayEggs.desc": "禁用鸡下蛋",
34+
35+
"carpet.rule.disabledEnderManPickupGoal.name": "禁用末影人拾取方块目标",
36+
"carpet.rule.disabledEnderManPickupGoal.desc": "禁用末影人拾取方块的目标行为",
37+
38+
"carpet.rule.disabledEnderManPlaceBlockGoal.name": "禁用末影人放置方块目标",
39+
"carpet.rule.disabledEnderManPlaceBlockGoal.desc": "禁用末影人放置方块的目标行为",
40+
41+
"carpet.rule.disabledNetherPortalSpawn.name": "禁用下界传送门生成僵尸猪灵",
42+
"carpet.rule.disabledNetherPortalSpawn.desc": "禁用通过下界传送门生成僵尸猪灵",
43+
44+
"carpet.rule.disabledEntityTick.name": "禁用实体与方块实体刷新",
45+
"carpet.rule.disabledEntityTick.desc": "禁用所有实体和方块实体的 tick",
46+
47+
"carpet.rule.disabledUpdateSuppressionErrorStackTrace.name": "禁用更新抑制错误堆栈",
48+
"carpet.rule.disabledUpdateSuppressionErrorStackTrace.desc": "禁用更新抑制时产生的错误堆栈",
49+
50+
"carpet.rule.unescapeChatMessage.name": "解码聊天消息",
51+
"carpet.rule.unescapeChatMessage.desc": "解码聊天消息中的 Unicode 字符,例如 \\u4e2d -> 中",
52+
53+
"carpet.rule.optimizePlayerConnect.name": "优化玩家连接",
54+
"carpet.rule.optimizePlayerConnect.desc": "在新线程处理玩家连接以减少延迟",
55+
56+
"carpet.rule.optimizeTeleport.name": "优化玩家传送",
57+
"carpet.rule.optimizeTeleport.desc": "在新线程处理玩家传送以减少延迟",
58+
59+
"carpet.rule.commandLogger.name": "命令日志记录器",
60+
"carpet.rule.commandLogger.desc": "打印玩家提交的命令信息日志",
61+
62+
"carpet.rule.dropperCrashFix.name": "投掷器崩溃修复",
63+
"carpet.rule.dropperCrashFix.desc": "修复投掷器崩溃问题",
64+
65+
"carpet.rule.optimizeFakePlayerSpawn.name": "优化假人生成",
66+
"carpet.rule.optimizeFakePlayerSpawn.desc": "始终生成离线假人以减少延迟",
67+
68+
"carpet.rule.cceSuppressionCrashFix.name": "修复CCE抑制崩溃",
69+
"carpet.rule.cceSuppressionCrashFix.desc": "修复因方块实体更新导致的 CCE 崩溃",
70+
71+
"carpet.rule.removeAllCurseOfBindingArmorWhenPlayerDeadInWall.name": "死亡时移除所有绑定诅咒盔甲",
72+
"carpet.rule.removeAllCurseOfBindingArmorWhenPlayerDeadInWall.desc": "玩家死于墙内时移除所有带‘绑定诅咒’的盔甲(保留物品需开启 keepInventory)",
73+
74+
"carpet.rule.customItemDiscardTime.name": "自定义物品消失时间",
75+
"carpet.rule.customItemDiscardTime.desc": "修改物品消失时间,默认值 -1(单位:tick)",
76+
77+
"carpet.rule.allowBlockUpdateLogger.name": "允许方块更新记录器",
78+
"carpet.rule.allowBlockUpdateLogger.desc": "不推荐启用此规则,否则可能影响性能。启用后所有人都无法使用方块更新记录器",
79+
80+
"carpet.rule.removeBats.name": "移除蝙蝠",
81+
"carpet.rule.removeBats.desc": "禁用蝙蝠生成",
82+
83+
"carpet.rule.playerTpRateLimitTime.name": "传送命令速率限制",
84+
"carpet.rule.playerTpRateLimitTime.desc": "设置 `/player xxx tp` 命令的速率限制,默认每玩家每 2 秒允许 1 次请求",
85+
86+
"carpet.rule.commandLoggerBroadcastToPlayer.name": "命令日志广播",
87+
"carpet.rule.commandLoggerBroadcastToPlayer.desc": "启用后命令日志将广播给指定玩家",
88+
89+
"carpet.rule.disallowRedstoneWireConnectsToOpenTrapdoor.name": "禁止红石线连接到打开的活板门",
90+
"carpet.rule.disallowRedstoneWireConnectsToOpenTrapdoor.desc": "禁止红石线连接到打开的活板门(适用于 Minecraft 1.20 及以上版本)",
91+
92+
"carpet.rule.allowSpectatorTpToAnyPlayer.name": "允许旁观者传送到任意玩家",
93+
"carpet.rule.allowSpectatorTpToAnyPlayer.desc": "允许旁观者使用传送命令传送到任意玩家",
94+
95+
"carpet.rule.enableLoggerCommand.name": "启用命令日志记录",
96+
"carpet.rule.enableLoggerCommand.desc": "启用命令日志记录功能",
97+
98+
"carpet.rule.enableCrashCommand.name": "启用崩溃命令",
99+
"carpet.rule.enableCrashCommand.desc": "启用可以触发崩溃的命令",
100+
101+
"carpet.rule.enableListAdvanceCommand.name": "启用高级列表命令",
102+
"carpet.rule.enableListAdvanceCommand.desc": "启用高级列表功能命令",
103+
104+
"carpet.rule.enableTpmanagerCommand.name": "启用传送管理命令",
105+
"carpet.rule.enableTpmanagerCommand.desc": "启用传送管理相关命令"
106+
}
107+

0 commit comments

Comments
 (0)