mirror of
https://github.com/Qortal/qortal.git
synced 2025-07-23 04:36:50 +00:00
Translation fixes
Translator class no longer logs warnings for every failed translation. Commented out unused ApiError enum entries. Renamed some ApiError names like "_NO_EXISTS" to "_UNKNOWN". Removed old src/main/resources/globalization/* files. Added CheckTranslations test app. Fixed some extraneous/missing ApiError aspects in some API-related classes. e.g. added NAME_UNKNOWN to GET /names/{name}
This commit is contained in:
@@ -94,7 +94,7 @@ public class AssetsApiTests extends ApiCommon {
|
||||
try {
|
||||
assertNotNull(this.assetsResource.getAssetOrder(FAKE_ORDER_ID_BASE58));
|
||||
} catch (ApiException e) {
|
||||
assertTrue(e.error == ApiError.ORDER_NO_EXISTS.getCode());
|
||||
assertTrue(e.error == ApiError.ORDER_UNKNOWN.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,13 +103,13 @@ public class AssetsApiTests extends ApiCommon {
|
||||
try {
|
||||
assertNotNull(this.assetsResource.getAssetOrderTrades(FAKE_ORDER_ID_BASE58, null, null, null));
|
||||
} catch (ApiException e) {
|
||||
assertTrue(e.error == ApiError.ORDER_NO_EXISTS.getCode());
|
||||
assertTrue(e.error == ApiError.ORDER_UNKNOWN.getCode());
|
||||
}
|
||||
|
||||
try {
|
||||
assertNotNull(this.assetsResource.getAssetOrderTrades(FAKE_ORDER_ID_BASE58, 1, 1, true));
|
||||
} catch (ApiException e) {
|
||||
assertTrue(e.error == ApiError.ORDER_NO_EXISTS.getCode());
|
||||
assertTrue(e.error == ApiError.ORDER_UNKNOWN.getCode());
|
||||
}
|
||||
}
|
||||
|
||||
|
58
src/test/java/org/qortal/test/apps/CheckTranslations.java
Normal file
58
src/test/java/org/qortal/test/apps/CheckTranslations.java
Normal file
@@ -0,0 +1,58 @@
|
||||
package org.qortal.test.apps;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.qortal.api.ApiError;
|
||||
import org.qortal.globalization.Translator;
|
||||
import org.qortal.transaction.Transaction.ValidationResult;
|
||||
|
||||
public class CheckTranslations {
|
||||
|
||||
private static final String[] SUPPORTED_LANGS = new String[] { "en", "de", "zh", "ru" };
|
||||
private static final Set<String> SYSTRAY_KEYS = Set.of("BLOCK_HEIGHT", "CHECK_TIME_ACCURACY", "CONNECTION", "CONNECTIONS",
|
||||
"EXIT", "MINTING_DISABLED", "MINTING_ENABLED", "OPEN_NODE_UI", "SYNCHRONIZE_CLOCK", "SYNCHRONIZING_CLOCK");
|
||||
|
||||
private static String failurePrefix;
|
||||
|
||||
public static void main(String[] args) {
|
||||
for (String lang : SUPPORTED_LANGS) {
|
||||
System.out.println(String.format("\n# Checking '%s' translations", lang));
|
||||
|
||||
Locale.setDefault(Locale.forLanguageTag(lang));
|
||||
failurePrefix = "!!" + lang + ":";
|
||||
|
||||
checkTranslations("TransactionValidity", lang, Arrays.stream(ValidationResult.values()).map(value -> value.name()).collect(Collectors.toSet()));
|
||||
checkTranslations("ApiError", lang, Arrays.stream(ApiError.values()).map(value -> value.name()).collect(Collectors.toSet()));
|
||||
|
||||
checkTranslations("SysTray", lang, SYSTRAY_KEYS);
|
||||
}
|
||||
}
|
||||
|
||||
private static void checkTranslations(String className, String lang, Set<String> keys) {
|
||||
System.out.println(String.format("## Checking '%s' translations for %s", lang, className));
|
||||
|
||||
Set<String> allKeys = Translator.INSTANCE.keySet(className, lang);
|
||||
if (allKeys == null) {
|
||||
System.out.println(String.format("NO '%s' translations for %s!", lang, className));
|
||||
allKeys = Collections.emptySet();
|
||||
}
|
||||
|
||||
for (String key : keys) {
|
||||
allKeys.remove(key);
|
||||
|
||||
String translation = Translator.INSTANCE.translate(className, lang, key);
|
||||
|
||||
if (translation.startsWith(failurePrefix))
|
||||
System.out.println(String.format("Missing key '%s' in %s_%s.properties", key, className, lang));
|
||||
}
|
||||
|
||||
// Any leftover keys?
|
||||
for (String key : allKeys)
|
||||
System.out.println(String.format("Extraneous key '%s' in %s_%s.properties", key, className, lang));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user