Merge pull request #2060 from OpenRefine/issue-1933-language-codes
Update Wikidata language codes
This commit is contained in:
commit
fb597f7b2f
@ -3,28 +3,45 @@
|
|||||||
* LANGUAGE SUGGEST *
|
* LANGUAGE SUGGEST *
|
||||||
********************/
|
********************/
|
||||||
|
|
||||||
// This list was manually copied from https://www.wikidata.org/w/api.php?action=paraminfo&modules=wbsetlabel on 2017-10-06
|
// This list was manually copied from Wikidata on 2019-05-31. It can be updated with the following command:
|
||||||
|
//
|
||||||
|
// curl "https://www.wikidata.org/w/api.php?action=query&meta=wbcontentlanguages&wbclcontext=monolingualtext&format=json&formatversion=2" | jq ".query.wbcontentlanguages[].code" | tr '\n' ','
|
||||||
|
//
|
||||||
|
// See https://stackoverflow.com/questions/46507037/how-to-get-all-allowed-languages-for-wikidata/46562061#46562061
|
||||||
// I don't think it is worth making every OpenRefine client perform this query at every startup, because it typically does
|
// I don't think it is worth making every OpenRefine client perform this query at every startup, because it typically does
|
||||||
// not change very often.
|
// not change very often.
|
||||||
// See https://stackoverflow.com/questions/46507037/how-to-get-all-allowed-languages-for-wikidata/46562061#46562061
|
//
|
||||||
WIKIDATA_LANGUAGES = [ "aa", "ab", "ace", "ady", "ady-cyrl", "aeb", "aeb-arab", "aeb-latn", "af", "ak", "aln", "als", "am", "an", "ang", "anp", "ar", "arc", "arn", "arq", "ary", "arz",
|
// This is the list of language codes accepted for monolingualtext values. The language codes for terms are more restrictive.
|
||||||
"as", "ase", "ast", "atj", "av", "avk", "awa", "ay", "az", "azb", "ba", "ban", "bar", "bat-smg", "bbc", "bbc-latn", "bcc", "bcl", "be", "be-tarask", "be-x-old", "bg", "bgn", "bh", "bho",
|
// TODO: in the future, store different lists for term languages and monolingual text languages.
|
||||||
"bi", "bjn", "bm", "bn", "bo", "bpy", "bqi", "br", "brh", "bs", "bto", "bug", "bxr", "ca", "cbk-zam", "cdo", "ce", "ceb", "ch", "cho", "chr", "chy", "ckb", "co", "cps", "cr", "crh",
|
WIKIDATA_LANGUAGES = [
|
||||||
"crh-cyrl", "crh-latn", "cs", "csb", "cu", "cv", "cy", "da", "de", "de-at", "de-ch", "de-formal", "din", "diq", "dsb", "dtp", "dty", "dv", "dz", "ee", "egl", "el", "eml", "en", "en-ca",
|
"aa","ab","abs","ace","ady","ady-cyrl","aeb","aeb-arab","aeb-latn","af","ak","aln","als","am","an","ang","anp",
|
||||||
"en-gb", "eo", "es", "et", "eu", "ext", "fa", "ff", "fi", "fit", "fiu-vro", "fj", "fo", "fr", "frc", "frp", "frr", "fur", "fy", "ga", "gag", "gan", "gan-hans", "gan-hant", "gd", "gl",
|
"ar","arc","arn","arq","ary","arz","as","ase","ast","atj","av","avk","awa","ay","az","azb","ba","ban","bar",
|
||||||
"glk", "gn", "gom", "gom-deva", "gom-latn", "gor", "got", "grc", "gsw", "gu", "gv", "ha", "hak", "haw", "he", "hi", "hif", "hif-latn", "hil", "ho", "hr", "hrx", "hsb", "ht", "hu", "hy",
|
"bbc","bbc-latn","bcc","bcl","be","be-tarask","bg","bgn","bh","bho","bi","bjn","bm","bn","bo","bpy","bqi","br",
|
||||||
"hz", "ia", "id", "ie", "ig", "ii", "ik", "ike-cans", "ike-latn", "ilo", "inh", "io", "is", "it", "iu", "ja", "jam", "jbo", "jut", "jv", "ka", "kaa", "kab", "kbd", "kbd-cyrl", "kbp",
|
"brh","bs","btm","bto","bug","bxr","ca","cbk-zam","cdo","ce","ceb","ch","cho","chr","chy","ckb","co","cps","cr",
|
||||||
"kea", "kg", "khw", "ki", "kiu", "kj", "kk", "kk-arab", "kk-cn", "kk-cyrl", "kk-kz", "kk-latn", "kk-tr", "kl", "km", "kn", "ko", "ko-kp", "koi", "kr", "krc", "kri", "krj", "krl", "ks",
|
"crh","crh-cyrl","crh-latn","cs","csb","cu","cv","cy","da","de","de-at","de-ch","din","diq","dsb","dtp","dty",
|
||||||
"ks-arab", "ks-deva", "ksh", "ku", "ku-arab", "ku-latn", "kv", "kw", "ky", "la", "lad", "lb", "lbe", "lez", "lfn", "lg", "li", "lij", "liv", "lki", "lmo", "ln", "lo", "loz", "lrc", "lt",
|
"dv","dz","ee","egl","el","eml","en","en-ca","en-gb","eo","es","es-419","et","eu","ext","fa","ff","fi","fit",
|
||||||
"ltg", "lus", "luz", "lv", "lzh", "lzz", "mai", "map-bms", "mdf", "mg", "mh", "mhr", "mi", "min", "mk", "ml", "mn", "mo", "mr", "mrj", "ms", "mt", "mus", "mwl", "my", "myv", "mzn", "na",
|
"fj","fo","fr","frc","frp","frr","fur","fy","ga","gag","gan","gan-hans","gan-hant","gcr","gd","gl","glk","gn",
|
||||||
"nah", "nan", "nap", "nb", "nds", "nds-nl", "ne", "new", "ng", "niu", "nl", "nl-informal", "nn", "no", "nod", "nov", "nrm", "nso", "nv", "ny", "nys", "oc", "olo", "om", "or", "os", "ota",
|
"gom","gom-deva","gom-latn","gor","got","grc","gsw","gu","gv","ha","hak","haw","he","hi","hif","hif-latn","hil",
|
||||||
"pa", "pag", "pam", "pap", "pcd", "pdc", "pdt", "pfl", "pi", "pih", "pl", "pms", "pnb", "pnt", "prg", "ps", "pt", "pt-br", "qu", "qug", "rgn", "rif", "rm", "rmy", "rn", "ro", "roa-rup",
|
"ho","hr","hrx","hsb","ht","hu","hy","hyw","hz","ia","id","ie","ig","ii","ik","ike-cans","ike-latn","ilo","inh",
|
||||||
"roa-tara", "ru", "rue", "rup", "ruq", "ruq-cyrl", "ruq-latn", "rw", "rwr", "sa", "sah", "sat", "sc", "scn", "sco", "sd", "sdc", "sdh", "se", "sei", "ses", "sg", "sgs", "sh", "shi",
|
"io","is","it","iu","ja","jam","jbo","jut","jv","ka","kaa","kab","kbd","kbd-cyrl","kbp","kea","kg","khw","ki",
|
||||||
"shi-latn", "shi-tfng", "shn", "si", "simple", "sje", "sk", "skr", "skr-arab", "sl", "sli", "sm", "sma", "smj", "sn", "so", "sq", "sr", "sr-ec", "sr-el", "srn", "srq", "ss", "st", "stq",
|
"kiu","kj","kjp","kk","kk-arab","kk-cn","kk-cyrl","kk-kz","kk-latn","kk-tr","kl","km","kn","ko","ko-kp","koi",
|
||||||
"su", "sv", "sw", "szl", "ta", "tay", "tcy", "te", "tet", "tg", "tg-cyrl", "tg-latn", "th", "ti", "tk", "tl", "tly", "tn", "to", "tokipona", "tpi", "tr", "tru", "ts", "tt", "tt-cyrl",
|
"kr","krc","kri","krj","krl","ks","ks-arab","ks-deva","ksh","ku","ku-arab","ku-latn","kum","kv","kw","ky","la",
|
||||||
"tt-latn", "tum", "tw", "ty", "tyv", "tzm", "udm", "ug", "ug-arab", "ug-latn", "uk", "ur", "uz", "uz-cyrl", "uz-latn", "ve", "vec", "vep", "vi", "vls", "vmf", "vo", "vot", "vro", "wa",
|
"lad","lb","lbe","lez","lfn","lg","li","lij","liv","lki","lmo","ln","lo","loz","lrc","lt","ltg","lus","luz","lv",
|
||||||
"war", "wo", "wuu", "xal", "xh", "xmf", "yi", "yo", "yue", "za", "zea", "zh", "zh-classical", "zh-cn", "zh-hans", "zh-hant", "zh-hk", "zh-min-nan", "zh-mo", "zh-my", "zh-sg", "zh-tw",
|
"lzh","lzz","mai","map-bms","mdf","mg","mh","mhr","mi","min","mk","ml","mn","mni","mnw","mo","mr","mrj","ms","mt",
|
||||||
"zh-yue", "zu" ]
|
"mus","mwl","my","myv","mzn","na","nah","nan","nap","nb","nds","nds-nl","ne","new","ng","niu","nl","nn","no","nod",
|
||||||
|
"nov","nqo","nrm","nso","nv","ny","nys","oc","olo","om","or","os","ota","pa","pag","pam","pap","pcd","pdc","pdt",
|
||||||
|
"pfl","pi","pih","pl","pms","pnb","pnt","prg","ps","pt","pt-br","qu","qug","rgn","rif","rm","rmy","rn","ro",
|
||||||
|
"roa-tara","ru","rue","rup","ruq","ruq-cyrl","ruq-latn","rw","rwr","sa","sah","sat","sc","scn","sco","sd","sdc",
|
||||||
|
"sdh","se","sei","ses","sg","sgs","sh","shi","shi-latn","shi-tfng","shn","shy-latn","si","sje","sk","skr","skr-arab",
|
||||||
|
"sl","sli","sm","sma","smj","smn","sms","sn","so","sq","sr","sr-ec","sr-el","srn","srq","ss","st","stq","sty","su",
|
||||||
|
"sv","sw","szl","ta","tay","tcy","te","tet","tg","tg-cyrl","tg-latn","th","ti","tk","tl","tly","tn","to","tpi","tr",
|
||||||
|
"tru","ts","tt","tt-cyrl","tt-latn","tum","tw","ty","tyv","tzm","udm","ug","ug-arab","ug-latn","uk","ur","uz","uz-cyrl",
|
||||||
|
"uz-latn","ve","vec","vep","vi","vls","vmf","vo","vot","vro","wa","war","wo","wuu","xal","xh","xmf","xsy","yi","yo",
|
||||||
|
"yue","za","zea","zgh","zh","zh-cn","zh-hans","zh-hant","zh-hk","zh-mo","zh-my","zh-sg","zh-tw","zu","und","mis",
|
||||||
|
"mul","zxx","abe","abq","ami","bnn","brx","chn","cnr","cop","el-cy","ett","eya","fkv","fos","fr-ca","frm","fro",
|
||||||
|
"fuf","gez","gmy","hai","haz","hbo","kjh","koy","lag","lkt","lld","mid","mnc","moe","non","nr","nxm","ood","otk",
|
||||||
|
"pjt","ppu","pwn","pyu","quc","qya","rar","shy","sia","sjd","sjk","sjn","sjt","sju","ssf","syc","tlb","trv","tzl",
|
||||||
|
"uga","umu","uun","xpu","yap","zun" ]
|
||||||
|
|
||||||
$.suggest("langsuggest", {
|
$.suggest("langsuggest", {
|
||||||
_init: function() {
|
_init: function() {
|
||||||
|
@ -25,6 +25,7 @@ package org.openrefine.wikidata.schema;
|
|||||||
|
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
import org.openrefine.wikidata.schema.exceptions.SkipSchemaExpressionException;
|
import org.openrefine.wikidata.schema.exceptions.SkipSchemaExpressionException;
|
||||||
|
import org.openrefine.wikidata.utils.LanguageCodeStore;
|
||||||
import org.wikidata.wdtk.datamodel.interfaces.WikimediaLanguageCodes;
|
import org.wikidata.wdtk.datamodel.interfaces.WikimediaLanguageCodes;
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonCreator;
|
import com.fasterxml.jackson.annotation.JsonCreator;
|
||||||
@ -59,10 +60,13 @@ public class WbLanguageConstant implements WbExpression<String> {
|
|||||||
*/
|
*/
|
||||||
public static String normalizeLanguageCode(String lang) {
|
public static String normalizeLanguageCode(String lang) {
|
||||||
try {
|
try {
|
||||||
WikimediaLanguageCodes.getLanguageCode(lang);
|
if (LanguageCodeStore.ALLOWED_LANGUAGE_CODES.contains(lang)) {
|
||||||
return WikimediaLanguageCodes.fixLanguageCodeIfDeprecated(lang);
|
return WikimediaLanguageCodes.fixLanguageCodeIfDeprecated(lang);
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,529 @@
|
|||||||
|
package org.openrefine.wikidata.utils;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A store for the allowed language code for terms and monolingual text values
|
||||||
|
* in Wikidata.
|
||||||
|
*
|
||||||
|
* @todo generalize for other Wikibase instances (fetch it dynamically via
|
||||||
|
* https://stackoverflow.com/questions/46507037/how-to-get-all-allowed-languages-for-wikidata/46562061)
|
||||||
|
* @todo separate the languages allowed for terms from the ones allowed for monolingual text.
|
||||||
|
* Currently the list is for monolingual texts (which is larger).
|
||||||
|
*
|
||||||
|
* Query to update this list:
|
||||||
|
* curl "https://www.wikidata.org/w/api.php?action=query&meta=wbcontentlanguages&wbclprop=code&wbclcontext=monolingualtext&format=json" | jq ".query.wbcontentlanguages[].code" | sed -e "s/$/,/"
|
||||||
|
*
|
||||||
|
* @author Antonin Delpeuch
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
public class LanguageCodeStore {
|
||||||
|
public static Set<String> ALLOWED_LANGUAGE_CODES = Arrays.asList(
|
||||||
|
"aa",
|
||||||
|
"ab",
|
||||||
|
"abs",
|
||||||
|
"ace",
|
||||||
|
"ady",
|
||||||
|
"ady-cyrl",
|
||||||
|
"aeb",
|
||||||
|
"aeb-arab",
|
||||||
|
"aeb-latn",
|
||||||
|
"af",
|
||||||
|
"ak",
|
||||||
|
"aln",
|
||||||
|
"als",
|
||||||
|
"am",
|
||||||
|
"an",
|
||||||
|
"ang",
|
||||||
|
"anp",
|
||||||
|
"ar",
|
||||||
|
"arc",
|
||||||
|
"arn",
|
||||||
|
"arq",
|
||||||
|
"ary",
|
||||||
|
"arz",
|
||||||
|
"as",
|
||||||
|
"ase",
|
||||||
|
"ast",
|
||||||
|
"atj",
|
||||||
|
"av",
|
||||||
|
"avk",
|
||||||
|
"awa",
|
||||||
|
"ay",
|
||||||
|
"az",
|
||||||
|
"azb",
|
||||||
|
"ba",
|
||||||
|
"ban",
|
||||||
|
"bar",
|
||||||
|
"bbc",
|
||||||
|
"bbc-latn",
|
||||||
|
"bcc",
|
||||||
|
"bcl",
|
||||||
|
"be",
|
||||||
|
"be-tarask",
|
||||||
|
"bg",
|
||||||
|
"bgn",
|
||||||
|
"bh",
|
||||||
|
"bho",
|
||||||
|
"bi",
|
||||||
|
"bjn",
|
||||||
|
"bm",
|
||||||
|
"bn",
|
||||||
|
"bo",
|
||||||
|
"bpy",
|
||||||
|
"bqi",
|
||||||
|
"br",
|
||||||
|
"brh",
|
||||||
|
"bs",
|
||||||
|
"btm",
|
||||||
|
"bto",
|
||||||
|
"bug",
|
||||||
|
"bxr",
|
||||||
|
"ca",
|
||||||
|
"cbk-zam",
|
||||||
|
"cdo",
|
||||||
|
"ce",
|
||||||
|
"ceb",
|
||||||
|
"ch",
|
||||||
|
"cho",
|
||||||
|
"chr",
|
||||||
|
"chy",
|
||||||
|
"ckb",
|
||||||
|
"co",
|
||||||
|
"cps",
|
||||||
|
"cr",
|
||||||
|
"crh",
|
||||||
|
"crh-cyrl",
|
||||||
|
"crh-latn",
|
||||||
|
"cs",
|
||||||
|
"csb",
|
||||||
|
"cu",
|
||||||
|
"cv",
|
||||||
|
"cy",
|
||||||
|
"da",
|
||||||
|
"de",
|
||||||
|
"de-at",
|
||||||
|
"de-ch",
|
||||||
|
"din",
|
||||||
|
"diq",
|
||||||
|
"dsb",
|
||||||
|
"dtp",
|
||||||
|
"dty",
|
||||||
|
"dv",
|
||||||
|
"dz",
|
||||||
|
"ee",
|
||||||
|
"egl",
|
||||||
|
"el",
|
||||||
|
"eml",
|
||||||
|
"en",
|
||||||
|
"en-ca",
|
||||||
|
"en-gb",
|
||||||
|
"eo",
|
||||||
|
"es",
|
||||||
|
"es-419",
|
||||||
|
"et",
|
||||||
|
"eu",
|
||||||
|
"ext",
|
||||||
|
"fa",
|
||||||
|
"ff",
|
||||||
|
"fi",
|
||||||
|
"fit",
|
||||||
|
"fj",
|
||||||
|
"fo",
|
||||||
|
"fr",
|
||||||
|
"frc",
|
||||||
|
"frp",
|
||||||
|
"frr",
|
||||||
|
"fur",
|
||||||
|
"fy",
|
||||||
|
"ga",
|
||||||
|
"gag",
|
||||||
|
"gan",
|
||||||
|
"gan-hans",
|
||||||
|
"gan-hant",
|
||||||
|
"gcr",
|
||||||
|
"gd",
|
||||||
|
"gl",
|
||||||
|
"glk",
|
||||||
|
"gn",
|
||||||
|
"gom",
|
||||||
|
"gom-deva",
|
||||||
|
"gom-latn",
|
||||||
|
"gor",
|
||||||
|
"got",
|
||||||
|
"grc",
|
||||||
|
"gsw",
|
||||||
|
"gu",
|
||||||
|
"gv",
|
||||||
|
"ha",
|
||||||
|
"hak",
|
||||||
|
"haw",
|
||||||
|
"he",
|
||||||
|
"hi",
|
||||||
|
"hif",
|
||||||
|
"hif-latn",
|
||||||
|
"hil",
|
||||||
|
"ho",
|
||||||
|
"hr",
|
||||||
|
"hrx",
|
||||||
|
"hsb",
|
||||||
|
"ht",
|
||||||
|
"hu",
|
||||||
|
"hy",
|
||||||
|
"hyw",
|
||||||
|
"hz",
|
||||||
|
"ia",
|
||||||
|
"id",
|
||||||
|
"ie",
|
||||||
|
"ig",
|
||||||
|
"ii",
|
||||||
|
"ik",
|
||||||
|
"ike-cans",
|
||||||
|
"ike-latn",
|
||||||
|
"ilo",
|
||||||
|
"inh",
|
||||||
|
"io",
|
||||||
|
"is",
|
||||||
|
"it",
|
||||||
|
"iu",
|
||||||
|
"ja",
|
||||||
|
"jam",
|
||||||
|
"jbo",
|
||||||
|
"jut",
|
||||||
|
"jv",
|
||||||
|
"ka",
|
||||||
|
"kaa",
|
||||||
|
"kab",
|
||||||
|
"kbd",
|
||||||
|
"kbd-cyrl",
|
||||||
|
"kbp",
|
||||||
|
"kea",
|
||||||
|
"kg",
|
||||||
|
"khw",
|
||||||
|
"ki",
|
||||||
|
"kiu",
|
||||||
|
"kj",
|
||||||
|
"kjp",
|
||||||
|
"kk",
|
||||||
|
"kk-arab",
|
||||||
|
"kk-cn",
|
||||||
|
"kk-cyrl",
|
||||||
|
"kk-kz",
|
||||||
|
"kk-latn",
|
||||||
|
"kk-tr",
|
||||||
|
"kl",
|
||||||
|
"km",
|
||||||
|
"kn",
|
||||||
|
"ko",
|
||||||
|
"ko-kp",
|
||||||
|
"koi",
|
||||||
|
"kr",
|
||||||
|
"krc",
|
||||||
|
"kri",
|
||||||
|
"krj",
|
||||||
|
"krl",
|
||||||
|
"ks",
|
||||||
|
"ks-arab",
|
||||||
|
"ks-deva",
|
||||||
|
"ksh",
|
||||||
|
"ku",
|
||||||
|
"ku-arab",
|
||||||
|
"ku-latn",
|
||||||
|
"kum",
|
||||||
|
"kv",
|
||||||
|
"kw",
|
||||||
|
"ky",
|
||||||
|
"la",
|
||||||
|
"lad",
|
||||||
|
"lb",
|
||||||
|
"lbe",
|
||||||
|
"lez",
|
||||||
|
"lfn",
|
||||||
|
"lg",
|
||||||
|
"li",
|
||||||
|
"lij",
|
||||||
|
"liv",
|
||||||
|
"lki",
|
||||||
|
"lmo",
|
||||||
|
"ln",
|
||||||
|
"lo",
|
||||||
|
"loz",
|
||||||
|
"lrc",
|
||||||
|
"lt",
|
||||||
|
"ltg",
|
||||||
|
"lus",
|
||||||
|
"luz",
|
||||||
|
"lv",
|
||||||
|
"lzh",
|
||||||
|
"lzz",
|
||||||
|
"mai",
|
||||||
|
"map-bms",
|
||||||
|
"mdf",
|
||||||
|
"mg",
|
||||||
|
"mh",
|
||||||
|
"mhr",
|
||||||
|
"mi",
|
||||||
|
"min",
|
||||||
|
"mk",
|
||||||
|
"ml",
|
||||||
|
"mn",
|
||||||
|
"mni",
|
||||||
|
"mnw",
|
||||||
|
"mo",
|
||||||
|
"mr",
|
||||||
|
"mrj",
|
||||||
|
"ms",
|
||||||
|
"mt",
|
||||||
|
"mus",
|
||||||
|
"mwl",
|
||||||
|
"my",
|
||||||
|
"myv",
|
||||||
|
"mzn",
|
||||||
|
"na",
|
||||||
|
"nah",
|
||||||
|
"nan",
|
||||||
|
"nap",
|
||||||
|
"nb",
|
||||||
|
"nds",
|
||||||
|
"nds-nl",
|
||||||
|
"ne",
|
||||||
|
"new",
|
||||||
|
"ng",
|
||||||
|
"niu",
|
||||||
|
"nl",
|
||||||
|
"nn",
|
||||||
|
"no",
|
||||||
|
"nod",
|
||||||
|
"nov",
|
||||||
|
"nqo",
|
||||||
|
"nrm",
|
||||||
|
"nso",
|
||||||
|
"nv",
|
||||||
|
"ny",
|
||||||
|
"nys",
|
||||||
|
"oc",
|
||||||
|
"olo",
|
||||||
|
"om",
|
||||||
|
"or",
|
||||||
|
"os",
|
||||||
|
"ota",
|
||||||
|
"pa",
|
||||||
|
"pag",
|
||||||
|
"pam",
|
||||||
|
"pap",
|
||||||
|
"pcd",
|
||||||
|
"pdc",
|
||||||
|
"pdt",
|
||||||
|
"pfl",
|
||||||
|
"pi",
|
||||||
|
"pih",
|
||||||
|
"pl",
|
||||||
|
"pms",
|
||||||
|
"pnb",
|
||||||
|
"pnt",
|
||||||
|
"prg",
|
||||||
|
"ps",
|
||||||
|
"pt",
|
||||||
|
"pt-br",
|
||||||
|
"qu",
|
||||||
|
"qug",
|
||||||
|
"rgn",
|
||||||
|
"rif",
|
||||||
|
"rm",
|
||||||
|
"rmy",
|
||||||
|
"rn",
|
||||||
|
"ro",
|
||||||
|
"roa-tara",
|
||||||
|
"ru",
|
||||||
|
"rue",
|
||||||
|
"rup",
|
||||||
|
"ruq",
|
||||||
|
"ruq-cyrl",
|
||||||
|
"ruq-latn",
|
||||||
|
"rw",
|
||||||
|
"rwr",
|
||||||
|
"sa",
|
||||||
|
"sah",
|
||||||
|
"sat",
|
||||||
|
"sc",
|
||||||
|
"scn",
|
||||||
|
"sco",
|
||||||
|
"sd",
|
||||||
|
"sdc",
|
||||||
|
"sdh",
|
||||||
|
"se",
|
||||||
|
"sei",
|
||||||
|
"ses",
|
||||||
|
"sg",
|
||||||
|
"sgs",
|
||||||
|
"sh",
|
||||||
|
"shi",
|
||||||
|
"shi-latn",
|
||||||
|
"shi-tfng",
|
||||||
|
"shn",
|
||||||
|
"shy-latn",
|
||||||
|
"si",
|
||||||
|
"sje",
|
||||||
|
"sk",
|
||||||
|
"skr",
|
||||||
|
"skr-arab",
|
||||||
|
"sl",
|
||||||
|
"sli",
|
||||||
|
"sm",
|
||||||
|
"sma",
|
||||||
|
"smj",
|
||||||
|
"smn",
|
||||||
|
"sms",
|
||||||
|
"sn",
|
||||||
|
"so",
|
||||||
|
"sq",
|
||||||
|
"sr",
|
||||||
|
"sr-ec",
|
||||||
|
"sr-el",
|
||||||
|
"srn",
|
||||||
|
"srq",
|
||||||
|
"ss",
|
||||||
|
"st",
|
||||||
|
"stq",
|
||||||
|
"sty",
|
||||||
|
"su",
|
||||||
|
"sv",
|
||||||
|
"sw",
|
||||||
|
"szl",
|
||||||
|
"ta",
|
||||||
|
"tay",
|
||||||
|
"tcy",
|
||||||
|
"te",
|
||||||
|
"tet",
|
||||||
|
"tg",
|
||||||
|
"tg-cyrl",
|
||||||
|
"tg-latn",
|
||||||
|
"th",
|
||||||
|
"ti",
|
||||||
|
"tk",
|
||||||
|
"tl",
|
||||||
|
"tly",
|
||||||
|
"tn",
|
||||||
|
"to",
|
||||||
|
"tpi",
|
||||||
|
"tr",
|
||||||
|
"tru",
|
||||||
|
"ts",
|
||||||
|
"tt",
|
||||||
|
"tt-cyrl",
|
||||||
|
"tt-latn",
|
||||||
|
"tum",
|
||||||
|
"tw",
|
||||||
|
"ty",
|
||||||
|
"tyv",
|
||||||
|
"tzm",
|
||||||
|
"udm",
|
||||||
|
"ug",
|
||||||
|
"ug-arab",
|
||||||
|
"ug-latn",
|
||||||
|
"uk",
|
||||||
|
"ur",
|
||||||
|
"uz",
|
||||||
|
"uz-cyrl",
|
||||||
|
"uz-latn",
|
||||||
|
"ve",
|
||||||
|
"vec",
|
||||||
|
"vep",
|
||||||
|
"vi",
|
||||||
|
"vls",
|
||||||
|
"vmf",
|
||||||
|
"vo",
|
||||||
|
"vot",
|
||||||
|
"vro",
|
||||||
|
"wa",
|
||||||
|
"war",
|
||||||
|
"wo",
|
||||||
|
"wuu",
|
||||||
|
"xal",
|
||||||
|
"xh",
|
||||||
|
"xmf",
|
||||||
|
"xsy",
|
||||||
|
"yi",
|
||||||
|
"yo",
|
||||||
|
"yue",
|
||||||
|
"za",
|
||||||
|
"zea",
|
||||||
|
"zgh",
|
||||||
|
"zh",
|
||||||
|
"zh-cn",
|
||||||
|
"zh-hans",
|
||||||
|
"zh-hant",
|
||||||
|
"zh-hk",
|
||||||
|
"zh-mo",
|
||||||
|
"zh-my",
|
||||||
|
"zh-sg",
|
||||||
|
"zh-tw",
|
||||||
|
"zu",
|
||||||
|
"und",
|
||||||
|
"mis",
|
||||||
|
"mul",
|
||||||
|
"zxx",
|
||||||
|
"abe",
|
||||||
|
"abq",
|
||||||
|
"ami",
|
||||||
|
"bnn",
|
||||||
|
"brx",
|
||||||
|
"chn",
|
||||||
|
"cnr",
|
||||||
|
"cop",
|
||||||
|
"el-cy",
|
||||||
|
"ett",
|
||||||
|
"eya",
|
||||||
|
"fkv",
|
||||||
|
"fos",
|
||||||
|
"fr-ca",
|
||||||
|
"frm",
|
||||||
|
"fro",
|
||||||
|
"fuf",
|
||||||
|
"gez",
|
||||||
|
"gmy",
|
||||||
|
"hai",
|
||||||
|
"haz",
|
||||||
|
"hbo",
|
||||||
|
"kjh",
|
||||||
|
"koy",
|
||||||
|
"lag",
|
||||||
|
"lkt",
|
||||||
|
"lld",
|
||||||
|
"mid",
|
||||||
|
"mnc",
|
||||||
|
"moe",
|
||||||
|
"non",
|
||||||
|
"nr",
|
||||||
|
"nxm",
|
||||||
|
"ood",
|
||||||
|
"otk",
|
||||||
|
"pjt",
|
||||||
|
"ppu",
|
||||||
|
"pwn",
|
||||||
|
"pyu",
|
||||||
|
"quc",
|
||||||
|
"qya",
|
||||||
|
"rar",
|
||||||
|
"shy",
|
||||||
|
"sia",
|
||||||
|
"sjd",
|
||||||
|
"sjk",
|
||||||
|
"sjn",
|
||||||
|
"sjt",
|
||||||
|
"sju",
|
||||||
|
"ssf",
|
||||||
|
"syc",
|
||||||
|
"tlb",
|
||||||
|
"trv",
|
||||||
|
"tzl",
|
||||||
|
"uga",
|
||||||
|
"umu",
|
||||||
|
"uun",
|
||||||
|
"xpu",
|
||||||
|
"yap",
|
||||||
|
"zun"
|
||||||
|
).stream().collect(Collectors.toSet());
|
||||||
|
}
|
@ -50,6 +50,7 @@ public class WbLanguageConstantTest extends WbExpressionTest<String> {
|
|||||||
assertEquals("de", WbLanguageConstant.normalizeLanguageCode("de"));
|
assertEquals("de", WbLanguageConstant.normalizeLanguageCode("de"));
|
||||||
assertEquals("nb", WbLanguageConstant.normalizeLanguageCode("no"));
|
assertEquals("nb", WbLanguageConstant.normalizeLanguageCode("no"));
|
||||||
assertEquals("nb", WbLanguageConstant.normalizeLanguageCode("nb"));
|
assertEquals("nb", WbLanguageConstant.normalizeLanguageCode("nb"));
|
||||||
|
assertEquals("mul", WbLanguageConstant.normalizeLanguageCode("mul"));
|
||||||
assertNull(WbLanguageConstant.normalizeLanguageCode("non-existent language code"));
|
assertNull(WbLanguageConstant.normalizeLanguageCode("non-existent language code"));
|
||||||
assertNull(WbLanguageConstant.normalizeLanguageCode(null));
|
assertNull(WbLanguageConstant.normalizeLanguageCode(null));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user