From 1c5372d261775855fed234beb7a61e3642f0aeea Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Fri, 23 Apr 2021 20:48:24 +0200 Subject: [PATCH] Complete restructure of language files --- .github/configs/yaml-linter.yml | 2 +- .github/workflows/translator-webhook.yml | 2 +- pom.xml | 5 -- .../core/services/LocalizationService.java | 58 +++++++++------- .../core/services/localization/Language.java | 68 ++++--------------- .../services/localization/LanguageFile.java | 43 ++++++++++++ .../localization/SlimefunLocalization.java | 51 ++++++++------ .../ar/{categories_ar.yml => categories.yml} | 0 .../ar/{messages_ar.yml => messages.yml} | 0 .../ar/{researches_ar.yml => researches.yml} | 0 .../ar/{resources_ar.yml => resources.yml} | 0 .../bg/{categories_bg.yml => categories.yml} | 0 .../bg/{messages_bg.yml => messages.yml} | 0 .../bg/{recipes_bg.yml => recipes.yml} | 0 .../bg/{resources_bg.yml => resources.yml} | 0 .../cs/{categories_cs.yml => categories.yml} | 0 .../cs/{messages_cs.yml => messages.yml} | 0 .../cs/{recipes_cs.yml => recipes.yml} | 0 .../cs/{researches_cs.yml => researches.yml} | 0 .../cs/{resources_cs.yml => resources.yml} | 0 .../da/{categories_da.yml => categories.yml} | 0 .../de/{categories_de.yml => categories.yml} | 0 .../de/{messages_de.yml => messages.yml} | 0 .../de/{recipes_de.yml => recipes.yml} | 0 .../de/{researches_de.yml => researches.yml} | 0 .../de/{resources_de.yml => resources.yml} | 0 .../en/{categories_en.yml => categories.yml} | 0 .../en/{messages_en.yml => messages.yml} | 0 .../en/{recipes_en.yml => recipes.yml} | 0 .../en/{researches_en.yml => researches.yml} | 0 .../en/{resources_en.yml => resources.yml} | 0 .../es/{categories_es.yml => categories.yml} | 0 .../es/{messages_es.yml => messages.yml} | 0 .../es/{recipes_es.yml => recipes.yml} | 0 .../es/{researches_es.yml => researches.yml} | 0 .../es/{resources_es.yml => resources.yml} | 0 .../fi/{categories_fi.yml => categories.yml} | 0 .../fr/{categories_fr.yml => categories.yml} | 0 .../fr/{messages_fr.yml => messages.yml} | 0 .../fr/{recipes_fr.yml => recipes.yml} | 0 .../fr/{researches_fr.yml => researches.yml} | 0 .../fr/{resources_fr.yml => resources.yml} | 0 .../he/{categories_he.yml => categories.yml} | 0 .../he/{messages_he.yml => messages.yml} | 0 .../he/{researches_he.yml => researches.yml} | 0 .../he/{resources_he.yml => resources.yml} | 0 .../hu/{categories_hu.yml => categories.yml} | 0 .../hu/{messages_hu.yml => messages.yml} | 0 .../hu/{recipes_hu.yml => recipes.yml} | 0 .../hu/{researches_hu.yml => researches.yml} | 0 .../hu/{resources_hu.yml => resources.yml} | 0 .../id/{categories_id.yml => categories.yml} | 0 .../id/{messages_id.yml => messages.yml} | 0 .../id/{researches_id.yml => researches.yml} | 0 .../id/{resources_id.yml => resources.yml} | 0 .../it/{categories_it.yml => categories.yml} | 0 .../it/{messages_it.yml => messages.yml} | 0 .../it/{recipes_it.yml => recipes.yml} | 0 .../it/{researches_it.yml => researches.yml} | 0 .../it/{resources_it.yml => resources.yml} | 0 .../ja/{categories_ja.yml => categories.yml} | 0 .../ja/{messages_ja.yml => messages.yml} | 0 .../ja/{recipes_ja.yml => recipes.yml} | 0 .../ja/{researches_ja.yml => researches.yml} | 0 .../ja/{resources_ja.yml => resources.yml} | 0 .../ko/{categories_ko.yml => categories.yml} | 0 .../ko/{messages_ko.yml => messages.yml} | 0 .../ko/{recipes_ko.yml => recipes.yml} | 0 .../ko/{researches_ko.yml => researches.yml} | 0 .../ko/{resources_ko.yml => resources.yml} | 0 .../lv/{messages_lv.yml => messages.yml} | 0 .../mk/{categories_mk.yml => categories.yml} | 0 .../mk/{recipes_mk.yml => recipes.yml} | 0 .../mk/{resources_mk.yml => resources.yml} | 0 .../nl/{categories_nl.yml => categories.yml} | 0 .../nl/{messages_nl.yml => messages.yml} | 0 .../nl/{recipes_nl.yml => recipes.yml} | 0 .../nl/{resources_nl.yml => resources.yml} | 0 .../pl/{categories_pl.yml => categories.yml} | 0 .../pl/{messages_pl.yml => messages.yml} | 0 .../pl/{researches_pl.yml => researches.yml} | 0 .../pl/{resources_pl.yml => resources.yml} | 0 .../categories.yml} | 0 .../messages_pt-BR.yml => pt-BR/messages.yml} | 0 .../researches.yml} | 0 .../resources.yml} | 0 .../pt/{categories_pt.yml => categories.yml} | 0 .../pt/{resources_pt.yml => resources.yml} | 0 .../ru/{categories_ru.yml => categories.yml} | 0 .../ru/{messages_ru.yml => messages.yml} | 0 .../ru/{recipes_ru.yml => recipes.yml} | 0 .../ru/{researches_ru.yml => researches.yml} | 0 .../ru/{resources_ru.yml => resources.yml} | 0 .../sk/{categories_sk.yml => categories.yml} | 0 .../sk/{messages_sk.yml => messages.yml} | 0 .../sk/{recipes_sk.yml => recipes.yml} | 0 .../sk/{researches_sk.yml => researches.yml} | 0 .../sk/{resources_sk.yml => resources.yml} | 0 .../sv/{categories_sv.yml => categories.yml} | 0 .../sv/{messages_sv.yml => messages.yml} | 0 .../sv/{researches_sv.yml => researches.yml} | 0 .../sv/{resources_sv.yml => resources.yml} | 0 .../th/{categories_th.yml => categories.yml} | 0 .../th/{messages_th.yml => messages.yml} | 0 .../th/{recipes_th.yml => recipes.yml} | 0 .../th/{researches_th.yml => researches.yml} | 0 .../th/{resources_th.yml => resources.yml} | 0 .../tl/{categories_tl.yml => categories.yml} | 0 .../tl/{messages_tl.yml => messages.yml} | 0 .../tl/{recipes_tl.yml => recipes.yml} | 0 .../tl/{researches_tl.yml => researches.yml} | 0 .../tl/{resources_tl.yml => resources.yml} | 0 .../tr/{categories_tr.yml => categories.yml} | 0 .../tr/{messages_tr.yml => messages.yml} | 0 .../tr/{recipes_tr.yml => recipes.yml} | 0 .../tr/{researches_tr.yml => researches.yml} | 0 .../tr/{resources_tr.yml => resources.yml} | 0 .../uk/{categories_uk.yml => categories.yml} | 0 .../uk/{messages_uk.yml => messages.yml} | 0 .../uk/{recipes_uk.yml => recipes.yml} | 0 .../uk/{researches_uk.yml => researches.yml} | 0 .../uk/{resources_uk.yml => resources.yml} | 0 .../vi/{categories_vi.yml => categories.yml} | 0 .../vi/{messages_vi.yml => messages.yml} | 0 .../vi/{recipes_vi.yml => recipes.yml} | 0 .../vi/{researches_vi.yml => researches.yml} | 0 .../vi/{resources_vi.yml => resources.yml} | 0 .../categories.yml} | 0 .../messages_zh-CN.yml => zh-CN/messages.yml} | 0 .../recipes_zh-CN.yml => zh-CN/recipes.yml} | 0 .../researches.yml} | 0 .../resources.yml} | 0 .../categories.yml} | 0 .../messages_zh-TW.yml => zh-TW/messages.yml} | 0 .../recipes_zh-TW.yml => zh-TW/recipes.yml} | 0 .../researches.yml} | 0 .../resources.yml} | 0 .../tests/registration/TestItemSetup.java | 2 +- .../tests/researches/TestResearchSetup.java | 2 +- 139 files changed, 123 insertions(+), 110 deletions(-) create mode 100644 src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/LanguageFile.java rename src/main/resources/languages/ar/{categories_ar.yml => categories.yml} (100%) rename src/main/resources/languages/ar/{messages_ar.yml => messages.yml} (100%) rename src/main/resources/languages/ar/{researches_ar.yml => researches.yml} (100%) rename src/main/resources/languages/ar/{resources_ar.yml => resources.yml} (100%) rename src/main/resources/languages/bg/{categories_bg.yml => categories.yml} (100%) rename src/main/resources/languages/bg/{messages_bg.yml => messages.yml} (100%) rename src/main/resources/languages/bg/{recipes_bg.yml => recipes.yml} (100%) rename src/main/resources/languages/bg/{resources_bg.yml => resources.yml} (100%) rename src/main/resources/languages/cs/{categories_cs.yml => categories.yml} (100%) rename src/main/resources/languages/cs/{messages_cs.yml => messages.yml} (100%) rename src/main/resources/languages/cs/{recipes_cs.yml => recipes.yml} (100%) rename src/main/resources/languages/cs/{researches_cs.yml => researches.yml} (100%) rename src/main/resources/languages/cs/{resources_cs.yml => resources.yml} (100%) rename src/main/resources/languages/da/{categories_da.yml => categories.yml} (100%) rename src/main/resources/languages/de/{categories_de.yml => categories.yml} (100%) rename src/main/resources/languages/de/{messages_de.yml => messages.yml} (100%) rename src/main/resources/languages/de/{recipes_de.yml => recipes.yml} (100%) rename src/main/resources/languages/de/{researches_de.yml => researches.yml} (100%) rename src/main/resources/languages/de/{resources_de.yml => resources.yml} (100%) rename src/main/resources/languages/en/{categories_en.yml => categories.yml} (100%) rename src/main/resources/languages/en/{messages_en.yml => messages.yml} (100%) rename src/main/resources/languages/en/{recipes_en.yml => recipes.yml} (100%) rename src/main/resources/languages/en/{researches_en.yml => researches.yml} (100%) rename src/main/resources/languages/en/{resources_en.yml => resources.yml} (100%) rename src/main/resources/languages/es/{categories_es.yml => categories.yml} (100%) rename src/main/resources/languages/es/{messages_es.yml => messages.yml} (100%) rename src/main/resources/languages/es/{recipes_es.yml => recipes.yml} (100%) rename src/main/resources/languages/es/{researches_es.yml => researches.yml} (100%) rename src/main/resources/languages/es/{resources_es.yml => resources.yml} (100%) rename src/main/resources/languages/fi/{categories_fi.yml => categories.yml} (100%) rename src/main/resources/languages/fr/{categories_fr.yml => categories.yml} (100%) rename src/main/resources/languages/fr/{messages_fr.yml => messages.yml} (100%) rename src/main/resources/languages/fr/{recipes_fr.yml => recipes.yml} (100%) rename src/main/resources/languages/fr/{researches_fr.yml => researches.yml} (100%) rename src/main/resources/languages/fr/{resources_fr.yml => resources.yml} (100%) rename src/main/resources/languages/he/{categories_he.yml => categories.yml} (100%) rename src/main/resources/languages/he/{messages_he.yml => messages.yml} (100%) rename src/main/resources/languages/he/{researches_he.yml => researches.yml} (100%) rename src/main/resources/languages/he/{resources_he.yml => resources.yml} (100%) rename src/main/resources/languages/hu/{categories_hu.yml => categories.yml} (100%) rename src/main/resources/languages/hu/{messages_hu.yml => messages.yml} (100%) rename src/main/resources/languages/hu/{recipes_hu.yml => recipes.yml} (100%) rename src/main/resources/languages/hu/{researches_hu.yml => researches.yml} (100%) rename src/main/resources/languages/hu/{resources_hu.yml => resources.yml} (100%) rename src/main/resources/languages/id/{categories_id.yml => categories.yml} (100%) rename src/main/resources/languages/id/{messages_id.yml => messages.yml} (100%) rename src/main/resources/languages/id/{researches_id.yml => researches.yml} (100%) rename src/main/resources/languages/id/{resources_id.yml => resources.yml} (100%) rename src/main/resources/languages/it/{categories_it.yml => categories.yml} (100%) rename src/main/resources/languages/it/{messages_it.yml => messages.yml} (100%) rename src/main/resources/languages/it/{recipes_it.yml => recipes.yml} (100%) rename src/main/resources/languages/it/{researches_it.yml => researches.yml} (100%) rename src/main/resources/languages/it/{resources_it.yml => resources.yml} (100%) rename src/main/resources/languages/ja/{categories_ja.yml => categories.yml} (100%) rename src/main/resources/languages/ja/{messages_ja.yml => messages.yml} (100%) rename src/main/resources/languages/ja/{recipes_ja.yml => recipes.yml} (100%) rename src/main/resources/languages/ja/{researches_ja.yml => researches.yml} (100%) rename src/main/resources/languages/ja/{resources_ja.yml => resources.yml} (100%) rename src/main/resources/languages/ko/{categories_ko.yml => categories.yml} (100%) rename src/main/resources/languages/ko/{messages_ko.yml => messages.yml} (100%) rename src/main/resources/languages/ko/{recipes_ko.yml => recipes.yml} (100%) rename src/main/resources/languages/ko/{researches_ko.yml => researches.yml} (100%) rename src/main/resources/languages/ko/{resources_ko.yml => resources.yml} (100%) rename src/main/resources/languages/lv/{messages_lv.yml => messages.yml} (100%) rename src/main/resources/languages/mk/{categories_mk.yml => categories.yml} (100%) rename src/main/resources/languages/mk/{recipes_mk.yml => recipes.yml} (100%) rename src/main/resources/languages/mk/{resources_mk.yml => resources.yml} (100%) rename src/main/resources/languages/nl/{categories_nl.yml => categories.yml} (100%) rename src/main/resources/languages/nl/{messages_nl.yml => messages.yml} (100%) rename src/main/resources/languages/nl/{recipes_nl.yml => recipes.yml} (100%) rename src/main/resources/languages/nl/{resources_nl.yml => resources.yml} (100%) rename src/main/resources/languages/pl/{categories_pl.yml => categories.yml} (100%) rename src/main/resources/languages/pl/{messages_pl.yml => messages.yml} (100%) rename src/main/resources/languages/pl/{researches_pl.yml => researches.yml} (100%) rename src/main/resources/languages/pl/{resources_pl.yml => resources.yml} (100%) rename src/main/resources/languages/{pt_br/categories_pt-BR.yml => pt-BR/categories.yml} (100%) rename src/main/resources/languages/{pt_br/messages_pt-BR.yml => pt-BR/messages.yml} (100%) rename src/main/resources/languages/{pt_br/researches_pt-BR.yml => pt-BR/researches.yml} (100%) rename src/main/resources/languages/{pt_br/resources_pt-BR.yml => pt-BR/resources.yml} (100%) rename src/main/resources/languages/pt/{categories_pt.yml => categories.yml} (100%) rename src/main/resources/languages/pt/{resources_pt.yml => resources.yml} (100%) rename src/main/resources/languages/ru/{categories_ru.yml => categories.yml} (100%) rename src/main/resources/languages/ru/{messages_ru.yml => messages.yml} (100%) rename src/main/resources/languages/ru/{recipes_ru.yml => recipes.yml} (100%) rename src/main/resources/languages/ru/{researches_ru.yml => researches.yml} (100%) rename src/main/resources/languages/ru/{resources_ru.yml => resources.yml} (100%) rename src/main/resources/languages/sk/{categories_sk.yml => categories.yml} (100%) rename src/main/resources/languages/sk/{messages_sk.yml => messages.yml} (100%) rename src/main/resources/languages/sk/{recipes_sk.yml => recipes.yml} (100%) rename src/main/resources/languages/sk/{researches_sk.yml => researches.yml} (100%) rename src/main/resources/languages/sk/{resources_sk.yml => resources.yml} (100%) rename src/main/resources/languages/sv/{categories_sv.yml => categories.yml} (100%) rename src/main/resources/languages/sv/{messages_sv.yml => messages.yml} (100%) rename src/main/resources/languages/sv/{researches_sv.yml => researches.yml} (100%) rename src/main/resources/languages/sv/{resources_sv.yml => resources.yml} (100%) rename src/main/resources/languages/th/{categories_th.yml => categories.yml} (100%) rename src/main/resources/languages/th/{messages_th.yml => messages.yml} (100%) rename src/main/resources/languages/th/{recipes_th.yml => recipes.yml} (100%) rename src/main/resources/languages/th/{researches_th.yml => researches.yml} (100%) rename src/main/resources/languages/th/{resources_th.yml => resources.yml} (100%) rename src/main/resources/languages/tl/{categories_tl.yml => categories.yml} (100%) rename src/main/resources/languages/tl/{messages_tl.yml => messages.yml} (100%) rename src/main/resources/languages/tl/{recipes_tl.yml => recipes.yml} (100%) rename src/main/resources/languages/tl/{researches_tl.yml => researches.yml} (100%) rename src/main/resources/languages/tl/{resources_tl.yml => resources.yml} (100%) rename src/main/resources/languages/tr/{categories_tr.yml => categories.yml} (100%) rename src/main/resources/languages/tr/{messages_tr.yml => messages.yml} (100%) rename src/main/resources/languages/tr/{recipes_tr.yml => recipes.yml} (100%) rename src/main/resources/languages/tr/{researches_tr.yml => researches.yml} (100%) rename src/main/resources/languages/tr/{resources_tr.yml => resources.yml} (100%) rename src/main/resources/languages/uk/{categories_uk.yml => categories.yml} (100%) rename src/main/resources/languages/uk/{messages_uk.yml => messages.yml} (100%) rename src/main/resources/languages/uk/{recipes_uk.yml => recipes.yml} (100%) rename src/main/resources/languages/uk/{researches_uk.yml => researches.yml} (100%) rename src/main/resources/languages/uk/{resources_uk.yml => resources.yml} (100%) rename src/main/resources/languages/vi/{categories_vi.yml => categories.yml} (100%) rename src/main/resources/languages/vi/{messages_vi.yml => messages.yml} (100%) rename src/main/resources/languages/vi/{recipes_vi.yml => recipes.yml} (100%) rename src/main/resources/languages/vi/{researches_vi.yml => researches.yml} (100%) rename src/main/resources/languages/vi/{resources_vi.yml => resources.yml} (100%) rename src/main/resources/languages/{zh_cn/categories_zh-CN.yml => zh-CN/categories.yml} (100%) rename src/main/resources/languages/{zh_cn/messages_zh-CN.yml => zh-CN/messages.yml} (100%) rename src/main/resources/languages/{zh_cn/recipes_zh-CN.yml => zh-CN/recipes.yml} (100%) rename src/main/resources/languages/{zh_cn/researches_zh-CN.yml => zh-CN/researches.yml} (100%) rename src/main/resources/languages/{zh_cn/resources_zh-CN.yml => zh-CN/resources.yml} (100%) rename src/main/resources/languages/{zh_tw/categories_zh-TW.yml => zh-TW/categories.yml} (100%) rename src/main/resources/languages/{zh_tw/messages_zh-TW.yml => zh-TW/messages.yml} (100%) rename src/main/resources/languages/{zh_tw/recipes_zh-TW.yml => zh-TW/recipes.yml} (100%) rename src/main/resources/languages/{zh_tw/researches_zh-TW.yml => zh-TW/researches.yml} (100%) rename src/main/resources/languages/{zh_tw/resources_zh-TW.yml => zh-TW/resources.yml} (100%) diff --git a/.github/configs/yaml-linter.yml b/.github/configs/yaml-linter.yml index 3f056f2a1..93b337bfc 100644 --- a/.github/configs/yaml-linter.yml +++ b/.github/configs/yaml-linter.yml @@ -23,4 +23,4 @@ rules: ## Trailing Spaces for language files are too common and these files are automated anyway trailing-spaces: ignore: | - /src/main/resources/languages/*.yml + /src/main/resources/languages/**/*.yml diff --git a/.github/workflows/translator-webhook.yml b/.github/workflows/translator-webhook.yml index caaf4004f..fe03a8c59 100644 --- a/.github/workflows/translator-webhook.yml +++ b/.github/workflows/translator-webhook.yml @@ -5,7 +5,7 @@ on: branches: - master paths: - - 'src/main/resources/languages/**_en.yml' + - 'src/main/resources/languages/en/**.yml' jobs: notify: diff --git a/pom.xml b/pom.xml index 09693483f..e31346c18 100644 --- a/pom.xml +++ b/pom.xml @@ -203,11 +203,6 @@ kong.unirest io.github.thebusybiscuit.slimefun4.libraries.unirest - - - org.apache - io.github.thebusybiscuit.slimefun4.libraries.apache - diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java index 6f7206b3a..a7d0fddcb 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/LocalizationService.java @@ -13,6 +13,7 @@ import java.util.logging.Level; import javax.annotation.Nonnull; import javax.annotation.Nullable; +import javax.annotation.ParametersAreNonnullByDefault; import org.apache.commons.lang.Validate; import org.bukkit.NamespacedKey; @@ -24,6 +25,7 @@ import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; import io.github.thebusybiscuit.slimefun4.core.services.localization.Language; +import io.github.thebusybiscuit.slimefun4.core.services.localization.LanguageFile; import io.github.thebusybiscuit.slimefun4.core.services.localization.SlimefunLocalization; import io.github.thebusybiscuit.slimefun4.implementation.SlimefunPlugin; import io.github.thebusybiscuit.slimefun4.utils.NumberUtils; @@ -60,7 +62,7 @@ public class LocalizationService extends SlimefunLocalization { translationsEnabled = SlimefunPlugin.getCfg().getBoolean("options.enable-translations"); defaultLanguage = new Language(serverDefaultLanguage, "11b3188fd44902f72602bd7c2141f5a70673a411adb3d81862c69e536166b"); - defaultLanguage.setMessagesFile(getConfig().getConfiguration()); + defaultLanguage.setFile(LanguageFile.MESSAGES, getConfig().getConfiguration()); loadEmbeddedLanguages(); @@ -122,7 +124,7 @@ public class LocalizationService extends SlimefunLocalization { public boolean hasLanguage(@Nonnull String id) { Validate.notNull(id, "The language id cannot be null"); // Checks if our jar files contains a messages.yml file for that language - return containsResource("messages_" + id); + return containsResource(id, LanguageFile.MESSAGES); } /** @@ -138,9 +140,11 @@ public class LocalizationService extends SlimefunLocalization { return languages.containsKey(id); } - private boolean containsResource(@Nonnull String file) { - Validate.notNull(file, "File name cannot be null!"); - return plugin.getClass().getResource("/languages/" + file + ".yml") != null; + private boolean containsResource(@Nonnull String languageId, @Nonnull LanguageFile file) { + Validate.notNull(languageId, "Language id cannot be null"); + Validate.notNull(file, "Language file cannot be null"); + + return plugin.getClass().getResource(file.getFilePath(languageId)) != null; } @Override @@ -172,16 +176,18 @@ public class LocalizationService extends SlimefunLocalization { getConfig().clear(); } - defaultLanguage.setResearchesFile(streamConfigFile("researches_" + language + ".yml", null)); - defaultLanguage.setResourcesFile(streamConfigFile("resources_" + language + ".yml", null)); - defaultLanguage.setCategoriesFile(streamConfigFile("categories_" + language + ".yml", null)); - defaultLanguage.setRecipeTypesFile(streamConfigFile("recipes_" + language + ".yml", null)); + // Copy defaults + for (LanguageFile file : LanguageFile.values()) { + if (file != LanguageFile.MESSAGES) { + copyToDefaultLanguage(language, file); + } + } SlimefunPlugin.logger().log(Level.INFO, "Loaded language \"{0}\"", language); getConfig().setValue(LANGUAGE_PATH, language); // Loading in the defaults from our resources folder - String path = "/languages/messages_" + language + ".yml"; + String path = "/languages/" + language + "/messages.yml"; try (BufferedReader reader = new BufferedReader(new InputStreamReader(plugin.getClass().getResourceAsStream(path), StandardCharsets.UTF_8))) { FileConfiguration config = YamlConfiguration.loadConfiguration(reader); @@ -193,24 +199,25 @@ public class LocalizationService extends SlimefunLocalization { save(); } + @ParametersAreNonnullByDefault + private void copyToDefaultLanguage(String language, LanguageFile file) { + FileConfiguration config = streamConfigFile(file.getFilePath(language), null); + defaultLanguage.setFile(file, config); + } + @Override protected void addLanguage(@Nonnull String id, @Nonnull String texture) { Validate.notNull(id, "The language id cannot be null!"); Validate.notNull(texture, "The language texture cannot be null"); if (hasLanguage(id)) { - FileConfiguration messages = streamConfigFile("messages_" + id + ".yml", getConfig().getConfiguration()); - FileConfiguration researches = streamConfigFile("researches_" + id + ".yml", null); - FileConfiguration resources = streamConfigFile("resources_" + id + ".yml", null); - FileConfiguration categories = streamConfigFile("categories_" + id + ".yml", null); - FileConfiguration recipes = streamConfigFile("recipes_" + id + ".yml", null); - Language language = new Language(id, texture); - language.setMessagesFile(messages); - language.setResearchesFile(researches); - language.setResourcesFile(resources); - language.setCategoriesFile(categories); - language.setRecipeTypesFile(recipes); + + for (LanguageFile file : LanguageFile.values()) { + FileConfiguration defaults = file == LanguageFile.MESSAGES ? getConfig().getConfiguration() : null; + FileConfiguration config = streamConfigFile(file.getFilePath(language), defaults); + language.setFile(file, config); + } languages.put(id, language); } @@ -263,14 +270,13 @@ public class LocalizationService extends SlimefunLocalization { return keys; } + @Nullable private FileConfiguration streamConfigFile(@Nonnull String file, @Nullable FileConfiguration defaults) { - String path = "/languages/" + file; - - if (plugin.getClass().getResourceAsStream(path) == null) { + if (plugin.getClass().getResourceAsStream(file) == null) { return new YamlConfiguration(); } - try (BufferedReader reader = new BufferedReader(new InputStreamReader(plugin.getClass().getResourceAsStream(path), StandardCharsets.UTF_8))) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(plugin.getClass().getResourceAsStream(file), StandardCharsets.UTF_8))) { FileConfiguration config = YamlConfiguration.loadConfiguration(reader); if (defaults != null) { @@ -279,7 +285,7 @@ public class LocalizationService extends SlimefunLocalization { return config; } catch (IOException e) { - SlimefunPlugin.logger().log(Level.SEVERE, e, () -> "Failed to load language file into memory: \"" + path + "\""); + SlimefunPlugin.logger().log(Level.SEVERE, e, () -> "Failed to load language file into memory: \"" + file + "\""); return null; } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java index 0e4460c3d..438209968 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/Language.java @@ -1,6 +1,9 @@ package io.github.thebusybiscuit.slimefun4.core.services.localization; +import java.util.Arrays; +import java.util.EnumMap; import java.util.Locale; +import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.Nullable; @@ -26,16 +29,12 @@ import io.github.thebusybiscuit.slimefun4.utils.SlimefunUtils; */ public final class Language { + private final Map files = new EnumMap<>(LanguageFile.class); + private final String id; private final ItemStack item; private double progress = -1; - private FileConfiguration messages; - private FileConfiguration researches; - private FileConfiguration resources; - private FileConfiguration categories; - private FileConfiguration recipeTypes; - /** * This instantiates a new {@link Language} with the given language code * and skull texture. @@ -85,58 +84,15 @@ public final class Language { } @Nullable - FileConfiguration getMessagesFile() { - return messages; + FileConfiguration getFile(@Nonnull LanguageFile file) { + return files.get(file); } - @Nullable - FileConfiguration getResearchesFile() { - return researches; - } + public void setFile(@Nonnull LanguageFile file, @Nonnull FileConfiguration config) { + Validate.notNull(file, "The provided file should not be null."); + Validate.notNull(config, "The provided config should not be null."); - @Nullable - FileConfiguration getResourcesFile() { - return resources; - } - - @Nullable - FileConfiguration getCategoriesFile() { - return categories; - } - - @Nullable - FileConfiguration getRecipeTypesFile() { - return recipeTypes; - } - - public void setMessagesFile(@Nonnull FileConfiguration config) { - Validate.notNull(config); - - this.messages = config; - } - - public void setResearchesFile(@Nonnull FileConfiguration config) { - Validate.notNull(config); - - this.researches = config; - } - - public void setResourcesFile(@Nonnull FileConfiguration config) { - Validate.notNull(config); - - this.resources = config; - } - - public void setCategoriesFile(@Nonnull FileConfiguration config) { - Validate.notNull(config); - - this.categories = config; - } - - public void setRecipeTypesFile(@Nonnull FileConfiguration config) { - Validate.notNull(config); - - this.recipeTypes = config; + files.put(file, config); } /** @@ -180,7 +136,7 @@ public final class Language { @Nonnull public FileConfiguration[] getFiles() { - return new FileConfiguration[] { getMessagesFile(), getCategoriesFile(), getResearchesFile(), getResourcesFile() }; + return Arrays.stream(LanguageFile.valuesCached).map(this::getFile).toArray(FileConfiguration[]::new); } } diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/LanguageFile.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/LanguageFile.java new file mode 100644 index 000000000..7669523ea --- /dev/null +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/LanguageFile.java @@ -0,0 +1,43 @@ +package io.github.thebusybiscuit.slimefun4.core.services.localization; + +import javax.annotation.Nonnull; + +import org.apache.commons.lang.Validate; + +/** + * This enum holds the different types of files each {@link Language} holds. + * + * @author TheBusyBiscuit + * + * @see Language + * @see SlimefunLocalization + * + */ +public enum LanguageFile { + + MESSAGES("messages.yml"), + CATEGORIES("categories.yml"), + RECIPES("recipes.yml"), + RESOURCES("resources.yml"), + RESEARCHES("researches.yml"); + + static final LanguageFile[] valuesCached = values(); + + private final String fileName; + + LanguageFile(@Nonnull String fileName) { + this.fileName = fileName; + } + + @Nonnull + public String getFilePath(@Nonnull Language language) { + return getFilePath(language.getId()); + } + + @Nonnull + public String getFilePath(@Nonnull String languageId) { + Validate.notNull(languageId, "Language id must not be null!"); + return "/languages/" + languageId + '/' + fileName; + } + +} diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java index 5943f2a57..dec044ac3 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/localization/SlimefunLocalization.java @@ -121,6 +121,23 @@ public abstract class SlimefunLocalization extends Localization implements Keyed } } + @Nonnull + private final FileConfiguration getFallback(@Nonnull LanguageFile file) { + Language language = getLanguage(SupportedLanguage.ENGLISH.getLanguageId()); + + if (language == null) { + throw new IllegalStateException("Fallback language \"en\" is missing!"); + } + + FileConfiguration fallback = language.getFile(file); + + if (fallback != null) { + return fallback; + } else { + throw new IllegalStateException("Fallback file: \"" + file.getFilePath("en") + "\" is missing!"); + } + } + @Nonnull @Override public String getMessage(@Nonnull String key) { @@ -128,11 +145,10 @@ public abstract class SlimefunLocalization extends Localization implements Keyed Language language = getDefaultLanguage(); - String message = language == null ? null : language.getMessagesFile().getString(key); + String message = language == null ? null : language.getFile(LanguageFile.MESSAGES).getString(key); if (message == null) { - Language fallback = getLanguage(SupportedLanguage.ENGLISH.getLanguageId()); - return fallback.getMessagesFile().getString(key); + return getFallback(LanguageFile.MESSAGES).getString(key); } return message; @@ -149,11 +165,10 @@ public abstract class SlimefunLocalization extends Localization implements Keyed return "NO LANGUAGE FOUND"; } - String message = language.getMessagesFile().getString(key); + String message = language.getFile(LanguageFile.MESSAGES).getString(key); if (message == null) { - Language fallback = getLanguage(SupportedLanguage.ENGLISH.getLanguageId()); - return fallback.getMessagesFile().getString(key); + return getFallback(LanguageFile.MESSAGES).getString(key); } return message; @@ -170,11 +185,10 @@ public abstract class SlimefunLocalization extends Localization implements Keyed return Collections.singletonList("NO LANGUAGE FOUND"); } - List messages = language.getMessagesFile().getStringList(key); + List messages = language.getFile(LanguageFile.MESSAGES).getStringList(key); if (messages.isEmpty()) { - Language fallback = getLanguage(SupportedLanguage.ENGLISH.getLanguageId()); - return fallback.getMessagesFile().getStringList(key); + return getFallback(LanguageFile.MESSAGES).getStringList(key); } return messages; @@ -200,11 +214,11 @@ public abstract class SlimefunLocalization extends Localization implements Keyed Language language = getLanguage(p); - if (language == null || language.getResearchesFile() == null) { + if (language == null || language.getFile(LanguageFile.RESEARCHES) == null) { return null; } - return language.getResearchesFile().getString(key.getNamespace() + '.' + key.getKey()); + return language.getFile(LanguageFile.RESEARCHES).getString(key.getNamespace() + '.' + key.getKey()); } @Nullable @@ -214,11 +228,11 @@ public abstract class SlimefunLocalization extends Localization implements Keyed Language language = getLanguage(p); - if (language == null || language.getCategoriesFile() == null) { + if (language == null || language.getFile(LanguageFile.CATEGORIES) == null) { return null; } - return language.getCategoriesFile().getString(key.getNamespace() + '.' + key.getKey()); + return language.getFile(LanguageFile.CATEGORIES).getString(key.getNamespace() + '.' + key.getKey()); } @Nullable @@ -228,13 +242,12 @@ public abstract class SlimefunLocalization extends Localization implements Keyed Language language = getLanguage(p); - String value = language != null && language.getResourcesFile() != null ? language.getResourcesFile().getString(key) : null; + String value = language != null && language.getFile(LanguageFile.RESOURCES) != null ? language.getFile(LanguageFile.RESOURCES).getString(key) : null; if (value != null) { return value; } else { - Language fallback = getLanguage(SupportedLanguage.ENGLISH.getLanguageId()); - return fallback.getResourcesFile().getString(key); + return getFallback(LanguageFile.RESOURCES).getString(key); } } @@ -247,15 +260,15 @@ public abstract class SlimefunLocalization extends Localization implements Keyed ItemStack item = recipeType.toItem(); NamespacedKey key = recipeType.getKey(); - if (language == null || language.getRecipeTypesFile() == null || !language.getRecipeTypesFile().contains(key.getNamespace() + '.' + key.getKey())) { + if (language == null || language.getFile(LanguageFile.RECIPES) == null || !language.getFile(LanguageFile.RECIPES).contains(key.getNamespace() + '.' + key.getKey())) { language = getLanguage("en"); } - if (!language.getRecipeTypesFile().contains(key.getNamespace() + '.' + key.getKey())) { + if (!language.getFile(LanguageFile.RECIPES).contains(key.getNamespace() + '.' + key.getKey())) { return item; } - FileConfiguration config = language.getRecipeTypesFile(); + FileConfiguration config = language.getFile(LanguageFile.RECIPES); return new CustomItem(item, meta -> { meta.setDisplayName(ChatColor.AQUA + config.getString(key.getNamespace() + "." + key.getKey() + ".name")); diff --git a/src/main/resources/languages/ar/categories_ar.yml b/src/main/resources/languages/ar/categories.yml similarity index 100% rename from src/main/resources/languages/ar/categories_ar.yml rename to src/main/resources/languages/ar/categories.yml diff --git a/src/main/resources/languages/ar/messages_ar.yml b/src/main/resources/languages/ar/messages.yml similarity index 100% rename from src/main/resources/languages/ar/messages_ar.yml rename to src/main/resources/languages/ar/messages.yml diff --git a/src/main/resources/languages/ar/researches_ar.yml b/src/main/resources/languages/ar/researches.yml similarity index 100% rename from src/main/resources/languages/ar/researches_ar.yml rename to src/main/resources/languages/ar/researches.yml diff --git a/src/main/resources/languages/ar/resources_ar.yml b/src/main/resources/languages/ar/resources.yml similarity index 100% rename from src/main/resources/languages/ar/resources_ar.yml rename to src/main/resources/languages/ar/resources.yml diff --git a/src/main/resources/languages/bg/categories_bg.yml b/src/main/resources/languages/bg/categories.yml similarity index 100% rename from src/main/resources/languages/bg/categories_bg.yml rename to src/main/resources/languages/bg/categories.yml diff --git a/src/main/resources/languages/bg/messages_bg.yml b/src/main/resources/languages/bg/messages.yml similarity index 100% rename from src/main/resources/languages/bg/messages_bg.yml rename to src/main/resources/languages/bg/messages.yml diff --git a/src/main/resources/languages/bg/recipes_bg.yml b/src/main/resources/languages/bg/recipes.yml similarity index 100% rename from src/main/resources/languages/bg/recipes_bg.yml rename to src/main/resources/languages/bg/recipes.yml diff --git a/src/main/resources/languages/bg/resources_bg.yml b/src/main/resources/languages/bg/resources.yml similarity index 100% rename from src/main/resources/languages/bg/resources_bg.yml rename to src/main/resources/languages/bg/resources.yml diff --git a/src/main/resources/languages/cs/categories_cs.yml b/src/main/resources/languages/cs/categories.yml similarity index 100% rename from src/main/resources/languages/cs/categories_cs.yml rename to src/main/resources/languages/cs/categories.yml diff --git a/src/main/resources/languages/cs/messages_cs.yml b/src/main/resources/languages/cs/messages.yml similarity index 100% rename from src/main/resources/languages/cs/messages_cs.yml rename to src/main/resources/languages/cs/messages.yml diff --git a/src/main/resources/languages/cs/recipes_cs.yml b/src/main/resources/languages/cs/recipes.yml similarity index 100% rename from src/main/resources/languages/cs/recipes_cs.yml rename to src/main/resources/languages/cs/recipes.yml diff --git a/src/main/resources/languages/cs/researches_cs.yml b/src/main/resources/languages/cs/researches.yml similarity index 100% rename from src/main/resources/languages/cs/researches_cs.yml rename to src/main/resources/languages/cs/researches.yml diff --git a/src/main/resources/languages/cs/resources_cs.yml b/src/main/resources/languages/cs/resources.yml similarity index 100% rename from src/main/resources/languages/cs/resources_cs.yml rename to src/main/resources/languages/cs/resources.yml diff --git a/src/main/resources/languages/da/categories_da.yml b/src/main/resources/languages/da/categories.yml similarity index 100% rename from src/main/resources/languages/da/categories_da.yml rename to src/main/resources/languages/da/categories.yml diff --git a/src/main/resources/languages/de/categories_de.yml b/src/main/resources/languages/de/categories.yml similarity index 100% rename from src/main/resources/languages/de/categories_de.yml rename to src/main/resources/languages/de/categories.yml diff --git a/src/main/resources/languages/de/messages_de.yml b/src/main/resources/languages/de/messages.yml similarity index 100% rename from src/main/resources/languages/de/messages_de.yml rename to src/main/resources/languages/de/messages.yml diff --git a/src/main/resources/languages/de/recipes_de.yml b/src/main/resources/languages/de/recipes.yml similarity index 100% rename from src/main/resources/languages/de/recipes_de.yml rename to src/main/resources/languages/de/recipes.yml diff --git a/src/main/resources/languages/de/researches_de.yml b/src/main/resources/languages/de/researches.yml similarity index 100% rename from src/main/resources/languages/de/researches_de.yml rename to src/main/resources/languages/de/researches.yml diff --git a/src/main/resources/languages/de/resources_de.yml b/src/main/resources/languages/de/resources.yml similarity index 100% rename from src/main/resources/languages/de/resources_de.yml rename to src/main/resources/languages/de/resources.yml diff --git a/src/main/resources/languages/en/categories_en.yml b/src/main/resources/languages/en/categories.yml similarity index 100% rename from src/main/resources/languages/en/categories_en.yml rename to src/main/resources/languages/en/categories.yml diff --git a/src/main/resources/languages/en/messages_en.yml b/src/main/resources/languages/en/messages.yml similarity index 100% rename from src/main/resources/languages/en/messages_en.yml rename to src/main/resources/languages/en/messages.yml diff --git a/src/main/resources/languages/en/recipes_en.yml b/src/main/resources/languages/en/recipes.yml similarity index 100% rename from src/main/resources/languages/en/recipes_en.yml rename to src/main/resources/languages/en/recipes.yml diff --git a/src/main/resources/languages/en/researches_en.yml b/src/main/resources/languages/en/researches.yml similarity index 100% rename from src/main/resources/languages/en/researches_en.yml rename to src/main/resources/languages/en/researches.yml diff --git a/src/main/resources/languages/en/resources_en.yml b/src/main/resources/languages/en/resources.yml similarity index 100% rename from src/main/resources/languages/en/resources_en.yml rename to src/main/resources/languages/en/resources.yml diff --git a/src/main/resources/languages/es/categories_es.yml b/src/main/resources/languages/es/categories.yml similarity index 100% rename from src/main/resources/languages/es/categories_es.yml rename to src/main/resources/languages/es/categories.yml diff --git a/src/main/resources/languages/es/messages_es.yml b/src/main/resources/languages/es/messages.yml similarity index 100% rename from src/main/resources/languages/es/messages_es.yml rename to src/main/resources/languages/es/messages.yml diff --git a/src/main/resources/languages/es/recipes_es.yml b/src/main/resources/languages/es/recipes.yml similarity index 100% rename from src/main/resources/languages/es/recipes_es.yml rename to src/main/resources/languages/es/recipes.yml diff --git a/src/main/resources/languages/es/researches_es.yml b/src/main/resources/languages/es/researches.yml similarity index 100% rename from src/main/resources/languages/es/researches_es.yml rename to src/main/resources/languages/es/researches.yml diff --git a/src/main/resources/languages/es/resources_es.yml b/src/main/resources/languages/es/resources.yml similarity index 100% rename from src/main/resources/languages/es/resources_es.yml rename to src/main/resources/languages/es/resources.yml diff --git a/src/main/resources/languages/fi/categories_fi.yml b/src/main/resources/languages/fi/categories.yml similarity index 100% rename from src/main/resources/languages/fi/categories_fi.yml rename to src/main/resources/languages/fi/categories.yml diff --git a/src/main/resources/languages/fr/categories_fr.yml b/src/main/resources/languages/fr/categories.yml similarity index 100% rename from src/main/resources/languages/fr/categories_fr.yml rename to src/main/resources/languages/fr/categories.yml diff --git a/src/main/resources/languages/fr/messages_fr.yml b/src/main/resources/languages/fr/messages.yml similarity index 100% rename from src/main/resources/languages/fr/messages_fr.yml rename to src/main/resources/languages/fr/messages.yml diff --git a/src/main/resources/languages/fr/recipes_fr.yml b/src/main/resources/languages/fr/recipes.yml similarity index 100% rename from src/main/resources/languages/fr/recipes_fr.yml rename to src/main/resources/languages/fr/recipes.yml diff --git a/src/main/resources/languages/fr/researches_fr.yml b/src/main/resources/languages/fr/researches.yml similarity index 100% rename from src/main/resources/languages/fr/researches_fr.yml rename to src/main/resources/languages/fr/researches.yml diff --git a/src/main/resources/languages/fr/resources_fr.yml b/src/main/resources/languages/fr/resources.yml similarity index 100% rename from src/main/resources/languages/fr/resources_fr.yml rename to src/main/resources/languages/fr/resources.yml diff --git a/src/main/resources/languages/he/categories_he.yml b/src/main/resources/languages/he/categories.yml similarity index 100% rename from src/main/resources/languages/he/categories_he.yml rename to src/main/resources/languages/he/categories.yml diff --git a/src/main/resources/languages/he/messages_he.yml b/src/main/resources/languages/he/messages.yml similarity index 100% rename from src/main/resources/languages/he/messages_he.yml rename to src/main/resources/languages/he/messages.yml diff --git a/src/main/resources/languages/he/researches_he.yml b/src/main/resources/languages/he/researches.yml similarity index 100% rename from src/main/resources/languages/he/researches_he.yml rename to src/main/resources/languages/he/researches.yml diff --git a/src/main/resources/languages/he/resources_he.yml b/src/main/resources/languages/he/resources.yml similarity index 100% rename from src/main/resources/languages/he/resources_he.yml rename to src/main/resources/languages/he/resources.yml diff --git a/src/main/resources/languages/hu/categories_hu.yml b/src/main/resources/languages/hu/categories.yml similarity index 100% rename from src/main/resources/languages/hu/categories_hu.yml rename to src/main/resources/languages/hu/categories.yml diff --git a/src/main/resources/languages/hu/messages_hu.yml b/src/main/resources/languages/hu/messages.yml similarity index 100% rename from src/main/resources/languages/hu/messages_hu.yml rename to src/main/resources/languages/hu/messages.yml diff --git a/src/main/resources/languages/hu/recipes_hu.yml b/src/main/resources/languages/hu/recipes.yml similarity index 100% rename from src/main/resources/languages/hu/recipes_hu.yml rename to src/main/resources/languages/hu/recipes.yml diff --git a/src/main/resources/languages/hu/researches_hu.yml b/src/main/resources/languages/hu/researches.yml similarity index 100% rename from src/main/resources/languages/hu/researches_hu.yml rename to src/main/resources/languages/hu/researches.yml diff --git a/src/main/resources/languages/hu/resources_hu.yml b/src/main/resources/languages/hu/resources.yml similarity index 100% rename from src/main/resources/languages/hu/resources_hu.yml rename to src/main/resources/languages/hu/resources.yml diff --git a/src/main/resources/languages/id/categories_id.yml b/src/main/resources/languages/id/categories.yml similarity index 100% rename from src/main/resources/languages/id/categories_id.yml rename to src/main/resources/languages/id/categories.yml diff --git a/src/main/resources/languages/id/messages_id.yml b/src/main/resources/languages/id/messages.yml similarity index 100% rename from src/main/resources/languages/id/messages_id.yml rename to src/main/resources/languages/id/messages.yml diff --git a/src/main/resources/languages/id/researches_id.yml b/src/main/resources/languages/id/researches.yml similarity index 100% rename from src/main/resources/languages/id/researches_id.yml rename to src/main/resources/languages/id/researches.yml diff --git a/src/main/resources/languages/id/resources_id.yml b/src/main/resources/languages/id/resources.yml similarity index 100% rename from src/main/resources/languages/id/resources_id.yml rename to src/main/resources/languages/id/resources.yml diff --git a/src/main/resources/languages/it/categories_it.yml b/src/main/resources/languages/it/categories.yml similarity index 100% rename from src/main/resources/languages/it/categories_it.yml rename to src/main/resources/languages/it/categories.yml diff --git a/src/main/resources/languages/it/messages_it.yml b/src/main/resources/languages/it/messages.yml similarity index 100% rename from src/main/resources/languages/it/messages_it.yml rename to src/main/resources/languages/it/messages.yml diff --git a/src/main/resources/languages/it/recipes_it.yml b/src/main/resources/languages/it/recipes.yml similarity index 100% rename from src/main/resources/languages/it/recipes_it.yml rename to src/main/resources/languages/it/recipes.yml diff --git a/src/main/resources/languages/it/researches_it.yml b/src/main/resources/languages/it/researches.yml similarity index 100% rename from src/main/resources/languages/it/researches_it.yml rename to src/main/resources/languages/it/researches.yml diff --git a/src/main/resources/languages/it/resources_it.yml b/src/main/resources/languages/it/resources.yml similarity index 100% rename from src/main/resources/languages/it/resources_it.yml rename to src/main/resources/languages/it/resources.yml diff --git a/src/main/resources/languages/ja/categories_ja.yml b/src/main/resources/languages/ja/categories.yml similarity index 100% rename from src/main/resources/languages/ja/categories_ja.yml rename to src/main/resources/languages/ja/categories.yml diff --git a/src/main/resources/languages/ja/messages_ja.yml b/src/main/resources/languages/ja/messages.yml similarity index 100% rename from src/main/resources/languages/ja/messages_ja.yml rename to src/main/resources/languages/ja/messages.yml diff --git a/src/main/resources/languages/ja/recipes_ja.yml b/src/main/resources/languages/ja/recipes.yml similarity index 100% rename from src/main/resources/languages/ja/recipes_ja.yml rename to src/main/resources/languages/ja/recipes.yml diff --git a/src/main/resources/languages/ja/researches_ja.yml b/src/main/resources/languages/ja/researches.yml similarity index 100% rename from src/main/resources/languages/ja/researches_ja.yml rename to src/main/resources/languages/ja/researches.yml diff --git a/src/main/resources/languages/ja/resources_ja.yml b/src/main/resources/languages/ja/resources.yml similarity index 100% rename from src/main/resources/languages/ja/resources_ja.yml rename to src/main/resources/languages/ja/resources.yml diff --git a/src/main/resources/languages/ko/categories_ko.yml b/src/main/resources/languages/ko/categories.yml similarity index 100% rename from src/main/resources/languages/ko/categories_ko.yml rename to src/main/resources/languages/ko/categories.yml diff --git a/src/main/resources/languages/ko/messages_ko.yml b/src/main/resources/languages/ko/messages.yml similarity index 100% rename from src/main/resources/languages/ko/messages_ko.yml rename to src/main/resources/languages/ko/messages.yml diff --git a/src/main/resources/languages/ko/recipes_ko.yml b/src/main/resources/languages/ko/recipes.yml similarity index 100% rename from src/main/resources/languages/ko/recipes_ko.yml rename to src/main/resources/languages/ko/recipes.yml diff --git a/src/main/resources/languages/ko/researches_ko.yml b/src/main/resources/languages/ko/researches.yml similarity index 100% rename from src/main/resources/languages/ko/researches_ko.yml rename to src/main/resources/languages/ko/researches.yml diff --git a/src/main/resources/languages/ko/resources_ko.yml b/src/main/resources/languages/ko/resources.yml similarity index 100% rename from src/main/resources/languages/ko/resources_ko.yml rename to src/main/resources/languages/ko/resources.yml diff --git a/src/main/resources/languages/lv/messages_lv.yml b/src/main/resources/languages/lv/messages.yml similarity index 100% rename from src/main/resources/languages/lv/messages_lv.yml rename to src/main/resources/languages/lv/messages.yml diff --git a/src/main/resources/languages/mk/categories_mk.yml b/src/main/resources/languages/mk/categories.yml similarity index 100% rename from src/main/resources/languages/mk/categories_mk.yml rename to src/main/resources/languages/mk/categories.yml diff --git a/src/main/resources/languages/mk/recipes_mk.yml b/src/main/resources/languages/mk/recipes.yml similarity index 100% rename from src/main/resources/languages/mk/recipes_mk.yml rename to src/main/resources/languages/mk/recipes.yml diff --git a/src/main/resources/languages/mk/resources_mk.yml b/src/main/resources/languages/mk/resources.yml similarity index 100% rename from src/main/resources/languages/mk/resources_mk.yml rename to src/main/resources/languages/mk/resources.yml diff --git a/src/main/resources/languages/nl/categories_nl.yml b/src/main/resources/languages/nl/categories.yml similarity index 100% rename from src/main/resources/languages/nl/categories_nl.yml rename to src/main/resources/languages/nl/categories.yml diff --git a/src/main/resources/languages/nl/messages_nl.yml b/src/main/resources/languages/nl/messages.yml similarity index 100% rename from src/main/resources/languages/nl/messages_nl.yml rename to src/main/resources/languages/nl/messages.yml diff --git a/src/main/resources/languages/nl/recipes_nl.yml b/src/main/resources/languages/nl/recipes.yml similarity index 100% rename from src/main/resources/languages/nl/recipes_nl.yml rename to src/main/resources/languages/nl/recipes.yml diff --git a/src/main/resources/languages/nl/resources_nl.yml b/src/main/resources/languages/nl/resources.yml similarity index 100% rename from src/main/resources/languages/nl/resources_nl.yml rename to src/main/resources/languages/nl/resources.yml diff --git a/src/main/resources/languages/pl/categories_pl.yml b/src/main/resources/languages/pl/categories.yml similarity index 100% rename from src/main/resources/languages/pl/categories_pl.yml rename to src/main/resources/languages/pl/categories.yml diff --git a/src/main/resources/languages/pl/messages_pl.yml b/src/main/resources/languages/pl/messages.yml similarity index 100% rename from src/main/resources/languages/pl/messages_pl.yml rename to src/main/resources/languages/pl/messages.yml diff --git a/src/main/resources/languages/pl/researches_pl.yml b/src/main/resources/languages/pl/researches.yml similarity index 100% rename from src/main/resources/languages/pl/researches_pl.yml rename to src/main/resources/languages/pl/researches.yml diff --git a/src/main/resources/languages/pl/resources_pl.yml b/src/main/resources/languages/pl/resources.yml similarity index 100% rename from src/main/resources/languages/pl/resources_pl.yml rename to src/main/resources/languages/pl/resources.yml diff --git a/src/main/resources/languages/pt_br/categories_pt-BR.yml b/src/main/resources/languages/pt-BR/categories.yml similarity index 100% rename from src/main/resources/languages/pt_br/categories_pt-BR.yml rename to src/main/resources/languages/pt-BR/categories.yml diff --git a/src/main/resources/languages/pt_br/messages_pt-BR.yml b/src/main/resources/languages/pt-BR/messages.yml similarity index 100% rename from src/main/resources/languages/pt_br/messages_pt-BR.yml rename to src/main/resources/languages/pt-BR/messages.yml diff --git a/src/main/resources/languages/pt_br/researches_pt-BR.yml b/src/main/resources/languages/pt-BR/researches.yml similarity index 100% rename from src/main/resources/languages/pt_br/researches_pt-BR.yml rename to src/main/resources/languages/pt-BR/researches.yml diff --git a/src/main/resources/languages/pt_br/resources_pt-BR.yml b/src/main/resources/languages/pt-BR/resources.yml similarity index 100% rename from src/main/resources/languages/pt_br/resources_pt-BR.yml rename to src/main/resources/languages/pt-BR/resources.yml diff --git a/src/main/resources/languages/pt/categories_pt.yml b/src/main/resources/languages/pt/categories.yml similarity index 100% rename from src/main/resources/languages/pt/categories_pt.yml rename to src/main/resources/languages/pt/categories.yml diff --git a/src/main/resources/languages/pt/resources_pt.yml b/src/main/resources/languages/pt/resources.yml similarity index 100% rename from src/main/resources/languages/pt/resources_pt.yml rename to src/main/resources/languages/pt/resources.yml diff --git a/src/main/resources/languages/ru/categories_ru.yml b/src/main/resources/languages/ru/categories.yml similarity index 100% rename from src/main/resources/languages/ru/categories_ru.yml rename to src/main/resources/languages/ru/categories.yml diff --git a/src/main/resources/languages/ru/messages_ru.yml b/src/main/resources/languages/ru/messages.yml similarity index 100% rename from src/main/resources/languages/ru/messages_ru.yml rename to src/main/resources/languages/ru/messages.yml diff --git a/src/main/resources/languages/ru/recipes_ru.yml b/src/main/resources/languages/ru/recipes.yml similarity index 100% rename from src/main/resources/languages/ru/recipes_ru.yml rename to src/main/resources/languages/ru/recipes.yml diff --git a/src/main/resources/languages/ru/researches_ru.yml b/src/main/resources/languages/ru/researches.yml similarity index 100% rename from src/main/resources/languages/ru/researches_ru.yml rename to src/main/resources/languages/ru/researches.yml diff --git a/src/main/resources/languages/ru/resources_ru.yml b/src/main/resources/languages/ru/resources.yml similarity index 100% rename from src/main/resources/languages/ru/resources_ru.yml rename to src/main/resources/languages/ru/resources.yml diff --git a/src/main/resources/languages/sk/categories_sk.yml b/src/main/resources/languages/sk/categories.yml similarity index 100% rename from src/main/resources/languages/sk/categories_sk.yml rename to src/main/resources/languages/sk/categories.yml diff --git a/src/main/resources/languages/sk/messages_sk.yml b/src/main/resources/languages/sk/messages.yml similarity index 100% rename from src/main/resources/languages/sk/messages_sk.yml rename to src/main/resources/languages/sk/messages.yml diff --git a/src/main/resources/languages/sk/recipes_sk.yml b/src/main/resources/languages/sk/recipes.yml similarity index 100% rename from src/main/resources/languages/sk/recipes_sk.yml rename to src/main/resources/languages/sk/recipes.yml diff --git a/src/main/resources/languages/sk/researches_sk.yml b/src/main/resources/languages/sk/researches.yml similarity index 100% rename from src/main/resources/languages/sk/researches_sk.yml rename to src/main/resources/languages/sk/researches.yml diff --git a/src/main/resources/languages/sk/resources_sk.yml b/src/main/resources/languages/sk/resources.yml similarity index 100% rename from src/main/resources/languages/sk/resources_sk.yml rename to src/main/resources/languages/sk/resources.yml diff --git a/src/main/resources/languages/sv/categories_sv.yml b/src/main/resources/languages/sv/categories.yml similarity index 100% rename from src/main/resources/languages/sv/categories_sv.yml rename to src/main/resources/languages/sv/categories.yml diff --git a/src/main/resources/languages/sv/messages_sv.yml b/src/main/resources/languages/sv/messages.yml similarity index 100% rename from src/main/resources/languages/sv/messages_sv.yml rename to src/main/resources/languages/sv/messages.yml diff --git a/src/main/resources/languages/sv/researches_sv.yml b/src/main/resources/languages/sv/researches.yml similarity index 100% rename from src/main/resources/languages/sv/researches_sv.yml rename to src/main/resources/languages/sv/researches.yml diff --git a/src/main/resources/languages/sv/resources_sv.yml b/src/main/resources/languages/sv/resources.yml similarity index 100% rename from src/main/resources/languages/sv/resources_sv.yml rename to src/main/resources/languages/sv/resources.yml diff --git a/src/main/resources/languages/th/categories_th.yml b/src/main/resources/languages/th/categories.yml similarity index 100% rename from src/main/resources/languages/th/categories_th.yml rename to src/main/resources/languages/th/categories.yml diff --git a/src/main/resources/languages/th/messages_th.yml b/src/main/resources/languages/th/messages.yml similarity index 100% rename from src/main/resources/languages/th/messages_th.yml rename to src/main/resources/languages/th/messages.yml diff --git a/src/main/resources/languages/th/recipes_th.yml b/src/main/resources/languages/th/recipes.yml similarity index 100% rename from src/main/resources/languages/th/recipes_th.yml rename to src/main/resources/languages/th/recipes.yml diff --git a/src/main/resources/languages/th/researches_th.yml b/src/main/resources/languages/th/researches.yml similarity index 100% rename from src/main/resources/languages/th/researches_th.yml rename to src/main/resources/languages/th/researches.yml diff --git a/src/main/resources/languages/th/resources_th.yml b/src/main/resources/languages/th/resources.yml similarity index 100% rename from src/main/resources/languages/th/resources_th.yml rename to src/main/resources/languages/th/resources.yml diff --git a/src/main/resources/languages/tl/categories_tl.yml b/src/main/resources/languages/tl/categories.yml similarity index 100% rename from src/main/resources/languages/tl/categories_tl.yml rename to src/main/resources/languages/tl/categories.yml diff --git a/src/main/resources/languages/tl/messages_tl.yml b/src/main/resources/languages/tl/messages.yml similarity index 100% rename from src/main/resources/languages/tl/messages_tl.yml rename to src/main/resources/languages/tl/messages.yml diff --git a/src/main/resources/languages/tl/recipes_tl.yml b/src/main/resources/languages/tl/recipes.yml similarity index 100% rename from src/main/resources/languages/tl/recipes_tl.yml rename to src/main/resources/languages/tl/recipes.yml diff --git a/src/main/resources/languages/tl/researches_tl.yml b/src/main/resources/languages/tl/researches.yml similarity index 100% rename from src/main/resources/languages/tl/researches_tl.yml rename to src/main/resources/languages/tl/researches.yml diff --git a/src/main/resources/languages/tl/resources_tl.yml b/src/main/resources/languages/tl/resources.yml similarity index 100% rename from src/main/resources/languages/tl/resources_tl.yml rename to src/main/resources/languages/tl/resources.yml diff --git a/src/main/resources/languages/tr/categories_tr.yml b/src/main/resources/languages/tr/categories.yml similarity index 100% rename from src/main/resources/languages/tr/categories_tr.yml rename to src/main/resources/languages/tr/categories.yml diff --git a/src/main/resources/languages/tr/messages_tr.yml b/src/main/resources/languages/tr/messages.yml similarity index 100% rename from src/main/resources/languages/tr/messages_tr.yml rename to src/main/resources/languages/tr/messages.yml diff --git a/src/main/resources/languages/tr/recipes_tr.yml b/src/main/resources/languages/tr/recipes.yml similarity index 100% rename from src/main/resources/languages/tr/recipes_tr.yml rename to src/main/resources/languages/tr/recipes.yml diff --git a/src/main/resources/languages/tr/researches_tr.yml b/src/main/resources/languages/tr/researches.yml similarity index 100% rename from src/main/resources/languages/tr/researches_tr.yml rename to src/main/resources/languages/tr/researches.yml diff --git a/src/main/resources/languages/tr/resources_tr.yml b/src/main/resources/languages/tr/resources.yml similarity index 100% rename from src/main/resources/languages/tr/resources_tr.yml rename to src/main/resources/languages/tr/resources.yml diff --git a/src/main/resources/languages/uk/categories_uk.yml b/src/main/resources/languages/uk/categories.yml similarity index 100% rename from src/main/resources/languages/uk/categories_uk.yml rename to src/main/resources/languages/uk/categories.yml diff --git a/src/main/resources/languages/uk/messages_uk.yml b/src/main/resources/languages/uk/messages.yml similarity index 100% rename from src/main/resources/languages/uk/messages_uk.yml rename to src/main/resources/languages/uk/messages.yml diff --git a/src/main/resources/languages/uk/recipes_uk.yml b/src/main/resources/languages/uk/recipes.yml similarity index 100% rename from src/main/resources/languages/uk/recipes_uk.yml rename to src/main/resources/languages/uk/recipes.yml diff --git a/src/main/resources/languages/uk/researches_uk.yml b/src/main/resources/languages/uk/researches.yml similarity index 100% rename from src/main/resources/languages/uk/researches_uk.yml rename to src/main/resources/languages/uk/researches.yml diff --git a/src/main/resources/languages/uk/resources_uk.yml b/src/main/resources/languages/uk/resources.yml similarity index 100% rename from src/main/resources/languages/uk/resources_uk.yml rename to src/main/resources/languages/uk/resources.yml diff --git a/src/main/resources/languages/vi/categories_vi.yml b/src/main/resources/languages/vi/categories.yml similarity index 100% rename from src/main/resources/languages/vi/categories_vi.yml rename to src/main/resources/languages/vi/categories.yml diff --git a/src/main/resources/languages/vi/messages_vi.yml b/src/main/resources/languages/vi/messages.yml similarity index 100% rename from src/main/resources/languages/vi/messages_vi.yml rename to src/main/resources/languages/vi/messages.yml diff --git a/src/main/resources/languages/vi/recipes_vi.yml b/src/main/resources/languages/vi/recipes.yml similarity index 100% rename from src/main/resources/languages/vi/recipes_vi.yml rename to src/main/resources/languages/vi/recipes.yml diff --git a/src/main/resources/languages/vi/researches_vi.yml b/src/main/resources/languages/vi/researches.yml similarity index 100% rename from src/main/resources/languages/vi/researches_vi.yml rename to src/main/resources/languages/vi/researches.yml diff --git a/src/main/resources/languages/vi/resources_vi.yml b/src/main/resources/languages/vi/resources.yml similarity index 100% rename from src/main/resources/languages/vi/resources_vi.yml rename to src/main/resources/languages/vi/resources.yml diff --git a/src/main/resources/languages/zh_cn/categories_zh-CN.yml b/src/main/resources/languages/zh-CN/categories.yml similarity index 100% rename from src/main/resources/languages/zh_cn/categories_zh-CN.yml rename to src/main/resources/languages/zh-CN/categories.yml diff --git a/src/main/resources/languages/zh_cn/messages_zh-CN.yml b/src/main/resources/languages/zh-CN/messages.yml similarity index 100% rename from src/main/resources/languages/zh_cn/messages_zh-CN.yml rename to src/main/resources/languages/zh-CN/messages.yml diff --git a/src/main/resources/languages/zh_cn/recipes_zh-CN.yml b/src/main/resources/languages/zh-CN/recipes.yml similarity index 100% rename from src/main/resources/languages/zh_cn/recipes_zh-CN.yml rename to src/main/resources/languages/zh-CN/recipes.yml diff --git a/src/main/resources/languages/zh_cn/researches_zh-CN.yml b/src/main/resources/languages/zh-CN/researches.yml similarity index 100% rename from src/main/resources/languages/zh_cn/researches_zh-CN.yml rename to src/main/resources/languages/zh-CN/researches.yml diff --git a/src/main/resources/languages/zh_cn/resources_zh-CN.yml b/src/main/resources/languages/zh-CN/resources.yml similarity index 100% rename from src/main/resources/languages/zh_cn/resources_zh-CN.yml rename to src/main/resources/languages/zh-CN/resources.yml diff --git a/src/main/resources/languages/zh_tw/categories_zh-TW.yml b/src/main/resources/languages/zh-TW/categories.yml similarity index 100% rename from src/main/resources/languages/zh_tw/categories_zh-TW.yml rename to src/main/resources/languages/zh-TW/categories.yml diff --git a/src/main/resources/languages/zh_tw/messages_zh-TW.yml b/src/main/resources/languages/zh-TW/messages.yml similarity index 100% rename from src/main/resources/languages/zh_tw/messages_zh-TW.yml rename to src/main/resources/languages/zh-TW/messages.yml diff --git a/src/main/resources/languages/zh_tw/recipes_zh-TW.yml b/src/main/resources/languages/zh-TW/recipes.yml similarity index 100% rename from src/main/resources/languages/zh_tw/recipes_zh-TW.yml rename to src/main/resources/languages/zh-TW/recipes.yml diff --git a/src/main/resources/languages/zh_tw/researches_zh-TW.yml b/src/main/resources/languages/zh-TW/researches.yml similarity index 100% rename from src/main/resources/languages/zh_tw/researches_zh-TW.yml rename to src/main/resources/languages/zh-TW/researches.yml diff --git a/src/main/resources/languages/zh_tw/resources_zh-TW.yml b/src/main/resources/languages/zh-TW/resources.yml similarity index 100% rename from src/main/resources/languages/zh_tw/resources_zh-TW.yml rename to src/main/resources/languages/zh-TW/resources.yml diff --git a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/registration/TestItemSetup.java b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/registration/TestItemSetup.java index 9af935b77..5cfe31ab6 100644 --- a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/registration/TestItemSetup.java +++ b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/registration/TestItemSetup.java @@ -73,7 +73,7 @@ class TestItemSetup { @Order(value = 4) @DisplayName("Test whether every Category is added to the translation files") void testCategoryTranslations() throws IOException { - try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/languages/categories_en.yml"), StandardCharsets.UTF_8))) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/languages/en/categories.yml"), StandardCharsets.UTF_8))) { FileConfiguration config = YamlConfiguration.loadConfiguration(reader); for (Category category : SlimefunPlugin.getRegistry().getCategories()) { diff --git a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearchSetup.java b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearchSetup.java index 1af5501a1..dfc4df625 100644 --- a/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearchSetup.java +++ b/src/test/java/io/github/thebusybiscuit/slimefun4/testing/tests/researches/TestResearchSetup.java @@ -53,7 +53,7 @@ class TestResearchSetup { @Order(value = 2) @DisplayName("Test if Researches have a translation") void testResearchTranslations() throws IOException { - try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/languages/researches_en.yml"), StandardCharsets.UTF_8))) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(getClass().getResourceAsStream("/languages/en/researches.yml"), StandardCharsets.UTF_8))) { FileConfiguration config = YamlConfiguration.loadConfiguration(reader); for (Research research : SlimefunPlugin.getRegistry().getResearches()) {