Skip to content

Commit 6fc7d2c

Browse files
committed
simple rule translation
1 parent 839d286 commit 6fc7d2c

2 files changed

Lines changed: 38 additions & 6 deletions

File tree

src/main/java/carpet/commands/CarpetCommand.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -85,15 +85,15 @@ private static int displayRuleMenu(CommandSource source, ParsedRule<?> rule)
8585
}
8686
catch (CommandSyntaxException e)
8787
{
88-
Messenger.m(source, "w "+rule.name +" is set to: ","wb "+rule.getAsString());
88+
Messenger.m(source, "w "+rule.translatedName() +" is set to: ","wb "+rule.getAsString());
8989
return 1;
9090
}
9191

9292
Messenger.m(player, "");
93-
Messenger.m(player, "wb "+rule.name,"!/carpet "+rule.name,"^g refresh");
94-
Messenger.m(player, "w "+rule.description);
93+
Messenger.m(player, "wb "+rule.translatedName(),"!/carpet "+rule.name,"^g refresh");
94+
Messenger.m(player, "w "+rule.translatedDescription());
9595

96-
rule.extraInfo.forEach(s -> Messenger.m(player, "g " + s));
96+
rule.translatedExtras().forEach(s -> Messenger.m(player, "g " + s));
9797

9898
List<ITextComponent> tags = new ArrayList<>();
9999
tags.add(Messenger.c("w Tags: "));
@@ -145,9 +145,9 @@ private static int removeDefault(CommandSource source, ParsedRule<?> rule)
145145
private static ITextComponent displayInteractiveSetting(ParsedRule<?> e)
146146
{
147147
List<Object> args = new ArrayList<>();
148-
args.add("w - "+e.name+" ");
148+
args.add("w - "+e.translatedName()+" ");
149149
args.add("!/carpet "+e.name);
150-
args.add("^y "+e.description);
150+
args.add("^y "+e.translatedDescription());
151151
for (String option: e.options)
152152
{
153153
args.add(makeSetRuleButton(e, option, true));

src/main/java/carpet/settings/ParsedRule.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import carpet.CarpetServer;
44
import carpet.utils.Messenger;
5+
import carpet.utils.Translations;
56
import com.google.common.collect.ImmutableList;
67
import net.minecraft.command.CommandSource;
78

@@ -12,6 +13,8 @@
1213
import java.util.List;
1314
import java.util.Locale;
1415

16+
import static carpet.utils.Translations.tr;
17+
1518
public final class ParsedRule<T> implements Comparable<ParsedRule> {
1619
public final Field field;
1720
public final String name;
@@ -216,4 +219,33 @@ public String toString()
216219
{
217220
return this.name + ": " + getAsString();
218221
}
222+
223+
private String translationKey()
224+
{
225+
return String.format("rule.%s.name", name);
226+
}
227+
228+
public String translatedName(){
229+
String key = translationKey();
230+
return Translations.hasTranslation(key) ? tr(key) + String.format(" (%s)", name): name;
231+
}
232+
233+
public String translatedDescription()
234+
{
235+
return tr(String.format("rule.%s.desc", (name)), description);
236+
}
237+
238+
public List<String> translatedExtras()
239+
{
240+
if (!Translations.hasTranslations()) return extraInfo;
241+
String keyBase = String.format("rule.%s.extra.", name);
242+
List<String> extras = new ArrayList<>();
243+
int i = 0;
244+
while (Translations.hasTranslation(keyBase+i))
245+
{
246+
extras.add(Translations.tr(keyBase+i));
247+
i++;
248+
}
249+
return (extras.isEmpty()) ? extraInfo : extras;
250+
}
219251
}

0 commit comments

Comments
 (0)