diff --git a/src/main/java/xyz/atnrch/nicko/anvil/AnvilManager.java b/src/main/java/xyz/atnrch/nicko/anvil/AnvilManager.java index 2e9f13f..aa65338 100644 --- a/src/main/java/xyz/atnrch/nicko/anvil/AnvilManager.java +++ b/src/main/java/xyz/atnrch/nicko/anvil/AnvilManager.java @@ -107,7 +107,7 @@ public class AnvilManager { if (!actionResult.isError()) { player.sendMessage(i18n.translate(I18NDict.Event.Appearance.Set.OK)); } else { - player.sendMessage(i18n.translate(I18NDict.Event.Appearance.Set.ERROR, i18n.translateWithoutPrefix(actionResult.getErrorKey()))); + player.sendMessage(i18n.translate(I18NDict.Event.Appearance.Set.ERROR, i18n.translatePrefixless(actionResult.getErrorKey()))); } return Collections.singletonList(AnvilGUI.ResponseAction.close()); } diff --git a/src/main/java/xyz/atnrch/nicko/command/sub/NickoDebugSubCmd.java b/src/main/java/xyz/atnrch/nicko/command/sub/NickoDebugSubCmd.java index eee712d..3bfa40d 100644 --- a/src/main/java/xyz/atnrch/nicko/command/sub/NickoDebugSubCmd.java +++ b/src/main/java/xyz/atnrch/nicko/command/sub/NickoDebugSubCmd.java @@ -55,7 +55,7 @@ public class NickoDebugSubCmd { target.playSound(target.getLocation(), Sound.ENTITY_ITEM_FRAME_PLACE, 1, 1); } else { final I18N i18n = new I18N(target); - target.sendMessage(prefix + "§cWhoops. Something happened: " + i18n.translateWithoutPrefix(result.getErrorKey())); + target.sendMessage(prefix + "§cWhoops. Something happened: " + i18n.translatePrefixless(result.getErrorKey())); } } } diff --git a/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java b/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java index 02698f5..b4a3a19 100644 --- a/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java +++ b/src/main/java/xyz/atnrch/nicko/event/PlayerJoinListener.java @@ -29,7 +29,7 @@ public class PlayerJoinListener implements Listener { if (!actionResult.isError()) { player.sendMessage(i18n.translate(I18NDict.Event.Appearance.Restore.OK)); } else { - player.sendMessage(i18n.translate(I18NDict.Event.Appearance.Restore.ERROR, i18n.translateWithoutPrefix(actionResult.getErrorKey()))); + player.sendMessage(i18n.translate(I18NDict.Event.Appearance.Restore.ERROR, i18n.translatePrefixless(actionResult.getErrorKey()))); } } }, 20L); diff --git a/src/main/java/xyz/atnrch/nicko/i18n/I18N.java b/src/main/java/xyz/atnrch/nicko/i18n/I18N.java index 18f76bb..0f742fc 100644 --- a/src/main/java/xyz/atnrch/nicko/i18n/I18N.java +++ b/src/main/java/xyz/atnrch/nicko/i18n/I18N.java @@ -7,6 +7,9 @@ import xyz.atnrch.nicko.appearance.AppearanceManager; import java.io.InputStream; import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; public class I18N { private final MessageFormat formatter = new MessageFormat(""); @@ -19,6 +22,21 @@ public class I18N { this.playerLocale = getPlayerLocale(); } + public List translateItem(String key, Object... arguments) { + final ArrayList lines = new ArrayList<>(); + final String itemNameKey = readString(key + ".name"); + final List itemLoreKey = readString(key + ".lore"); + try { + // Item Name + formatter.applyPattern(itemNameKey); + final String itemNameTranslated = formatter.format(arguments); + lines.add(itemNameTranslated); + return lines; + } catch (Exception e) { + return Collections.singletonList(key); + } + } + public String translate(String key, Object... arguments) { final String string = readString(key); @@ -30,7 +48,7 @@ public class I18N { } } - public String translateWithoutPrefix(String key, Object... arguments) { + public String translatePrefixless(String key, Object... arguments) { final String translation = readString(key); try { formatter.applyPattern(translation); @@ -43,7 +61,20 @@ public class I18N { private String readString(String key) { String string; if (playerLocale == Locale.CUSTOM) { - string = instance.getLocaleFileManager().get(key); + string = instance.getLocaleFileManager().getString(key); + } else { + final InputStream resource = instance.getResource(playerLocale.getCode() + ".yml"); + final YamlConfig yamlConfig = YamlConfig.load(resource); + string = yamlConfig.getString(key); + } + + return string; + } + + private List readList(String key) { + String string; + if (playerLocale == Locale.CUSTOM) { + string = instance.getLocaleFileManager().getString(key); } else { final InputStream resource = instance.getResource(playerLocale.getCode() + ".yml"); final YamlConfig yamlConfig = YamlConfig.load(resource); diff --git a/src/main/java/xyz/atnrch/nicko/i18n/LocaleFileManager.java b/src/main/java/xyz/atnrch/nicko/i18n/LocaleFileManager.java index d2ff7e6..b345f88 100644 --- a/src/main/java/xyz/atnrch/nicko/i18n/LocaleFileManager.java +++ b/src/main/java/xyz/atnrch/nicko/i18n/LocaleFileManager.java @@ -11,7 +11,7 @@ public class LocaleFileManager { private final File folder = new File(NickoBukkit.getInstance().getDataFolder() + "/lang/"); private final File file = new File(folder, "lang.yml"); - public String get(String key) { + public String getString(String key) { if (!file.exists()) return key; try (BufferedInputStream inputStream = new BufferedInputStream(Files.newInputStream(file.toPath()))) { final YamlConfig yamlConfig = YamlConfig.load(inputStream); diff --git a/src/main/resources/fr.yml b/src/main/resources/fr.yml index 6904949..7aa0f01 100644 --- a/src/main/resources/fr.yml +++ b/src/main/resources/fr.yml @@ -23,4 +23,34 @@ event: admin: cache: invalidate_cache: "§fCache complet invalidé." - invalidate_entry: "§6{0} §fa été invalidé." \ No newline at end of file + invalidate_entry: "§6{0} §fa été invalidé." + +gui: + exit: "Quitter" + home: + admin: + name: "Panel d'administration" + lore: + - "Configurez et gérez Nicko." + settings: + name: "Paramètres" + lore: + - "Configurez votre expérience." + change_name: + name: "Changer le §6pseudo" + change_skin: + name: "Changer le §6skin" + change_both: + name: "Changer les §6deux" + reset: + name: "Réinitialiser l'apparence" + lore: + - "Supprime complètement votre déguisement." + settings: + language: + name: "Language" + lore: + # The language values will be filled at {0} + - "{0}" + - "§7§oParcourez les valeurs" + - "§7§oavec un clique gauche/droit." \ No newline at end of file