import com.gmail.dpierron.calibre.configuration.GetConfigurationInterface; import com.gmail.dpierron.tools.i18n.Localization; import com.gmail.dpierron.tools.Helper; import org.junit.Test; import java.lang.reflect.Method; import java.util.List; import java.util.Locale; import static org.junit.Assert.assertTrue; public class TestLocalisation { @Test public void test() { System.out.println(Localization.Main.getAvailableLocalizationsAsIso2()); } @Test public void testAllOptions() { List<Locale> languages = Localization.Main.getAvailableLocalizationsAsLocales(); for (Locale language : languages) { Localization.Main.reloadLocalizations(language); for (Method getter : GetConfigurationInterface.class.getMethods()) { String getterName = getter.getName(); String optionName = getterName.substring(3); // skip DeviceMode if ("DeviceMode".equals(optionName)) continue; // skip CustomCatalogs if ("CustomCatalogs".equals(optionName)) continue; String labelKey = "config." + optionName + ".label"; String label = Localization.Main.getText(labelKey); assertTrue(language + "->" + labelKey, Helper.isNotNullOrEmpty(label) && !label.equals(labelKey)); String descriptionKey = "config." + optionName + ".tooltip"; String description = Localization.Main.getText(descriptionKey); assertTrue(language + "->" + descriptionKey, Helper.isNotNullOrEmpty(description) && !description.equals(descriptionKey)); } } } @Test public void testFallbackToEnglish() { Localization.Main.reloadLocalizations(Locale.FRENCH); String key = "title.numberOfPages"; String value = Localization.Main.getText(key); assertTrue(Helper.isNotNullOrEmpty(value)); } }