diff --git a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java index 30fb9bd51..04fa37a2e 100644 --- a/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java +++ b/400_xowa/src/gplx/xowa/apps/site_cfgs/Xoa_site_cfg_itm__interwikimap.java @@ -83,7 +83,7 @@ class Xoa_site_cfg_itm__interwikimap extends Xoa_site_cfg_itm__base { , "1|species;wikispecies|species.wikimedia.org" , "1|d;wikidata|www.wikidata.org" , "1|mw;mediawikiwiki|www.mediawiki.org" - , "1|wmf;wikimedia;foundation|wikimediafoundation.org" + , "1|wmf;wikimedia;foundation|foundation.wikimedia.org" , "1|incubator|incubator.wikimedia.org" , "0|oldwikisource|https://wikisource.org/wiki/~{0}|Old Wikisoure" , "0|mail|https://lists.wikimedia.org/mailman/listinfo/~{0}|Wikitech Mailing List" diff --git a/400_xowa/src/gplx/xowa/langs/names/Xol_name_mgr.java b/400_xowa/src/gplx/xowa/langs/names/Xol_name_mgr.java index e548cf8bb..c58c83ae6 100644 --- a/400_xowa/src/gplx/xowa/langs/names/Xol_name_mgr.java +++ b/400_xowa/src/gplx/xowa/langs/names/Xol_name_mgr.java @@ -70,7 +70,12 @@ public class Xol_name_mgr { Byte_obj_val include_byte = (Byte_obj_val)fetchLanguageNamesUncachedEnum.Get_by(include_bry); byte include = include_byte == null ? fetchLanguageNamesUncached__all : include_byte.Val(); - Cldr_name_file cldr_file = cldr_loader.Load(String_.new_u8(inLanguage)); + Cldr_name_file cldr_file = cldr_loader.Load_or_null(String_.new_u8(inLanguage)); + if (cldr_file == null) { + ret = Ordered_hash_.New(); + languageNameCache.Add(cacheKey, ret); + return ret; + } if (lang_names_cached == null) lang_names_cached = name_loader.Load_as_hash(); @@ -228,7 +233,7 @@ public class Xol_name_mgr { return namesMwFile; } - returnMw .Sort_by(Hash_kv_sorter.Instance); + returnMw.Sort_by(Hash_kv_sorter.Instance); // # 'mw' option; default if it's not one of the other two options (all/mwfile) return returnMw; } diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java index 4fe455d30..bafe1f3c5 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_itm_.java @@ -33,10 +33,8 @@ public class Xow_domain_itm_ { : new_other(raw); } int dot_1 = Bry_find_.Find_fwd(raw, Byte_ascii.Dot, dot_0 + 1, raw_len); - if (dot_1 == Bry_find_.Not_found) { // 1 dot; check for "wikimediafoundation.org" - return Bry_.Match(raw, 0, dot_0, Xow_domain_tid_.Bry__wmforg) - ? Xow_domain_itm.new_(raw, Xow_domain_tid_.Tid__wmfblog, Xol_lang_stub_.Key__unknown) - : new_other(raw); + if (dot_1 == Bry_find_.Not_found) { // 1 dot; + return new_other(raw); } // 2 dots int seg_1_tid = Xow_domain_tid_.Get_type_as_tid(raw, dot_0 + 1, dot_1); // parse middle; EX: ".wikipedia." @@ -62,6 +60,7 @@ public class Xow_domain_itm_ { } switch (seg_0_tid) { case Xow_domain_tid_.Tid__commons: case Xow_domain_tid_.Tid__species: case Xow_domain_tid_.Tid__meta: case Xow_domain_tid_.Tid__incubator: + case Xow_domain_tid_.Tid__wmfblog: return Xow_domain_itm.new_(raw, seg_0_tid, Xol_lang_stub_.Key__unknown); // NOTE: seg_tids must match wiki_tids; NOTE: lang_key is "en" (really, "multi" but making things easier) default: return new_other(raw); @@ -131,7 +130,7 @@ public class Xow_domain_itm_ { , Str__mediawiki = "www.mediawiki.org" , Str__meta = "meta.wikimedia.org" , Str__incubator = "incubator.wikimedia.org" - , Str__wmforg = "wikimediafoundation.org" + , Str__wmforg = "foundation.wikimedia.org" , Str__home = "home" ; public static final byte[] diff --git a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java index 9b2d0ed37..6d8163ef9 100644 --- a/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java +++ b/400_xowa/src/gplx/xowa/wikis/domains/Xow_domain_regy.java @@ -22,7 +22,7 @@ public class Xow_domain_regy { , "incubator.wikimedia.org" , "www.wikidata.org" , "www.mediawiki.org" -, "wikimediafoundation.org" +, "foundation.wikimedia.org" , "en.wikipedia.org" , "en.wiktionary.org" , "en.wikisource.org" @@ -335,9 +335,6 @@ public class Xow_domain_regy { , "ak.wiktionary.org" , "ak.wikibooks.org" , "als.wikipedia.org" -, "als.wiktionary.org" -, "als.wikibooks.org" -, "als.wikiquote.org" , "am.wikipedia.org" , "am.wiktionary.org" , "am.wikiquote.org" @@ -863,6 +860,9 @@ public class Xow_domain_regy { , "zh.wikiversity.org" }; //, "als.wikisource.org" +//, "als.wiktionary.org" +//, "als.wikibooks.org" +//, "als.wikiquote.org" //, "als.wikinews.org" //, "mo.wikipedia.org" //, "mo.wiktionary.org" diff --git a/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_converter_tst.java b/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_converter_tst.java index 406b7c4e1..61ae98e46 100644 --- a/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_converter_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_converter_tst.java @@ -19,7 +19,6 @@ public class Cldr_name_converter_tst { private final Cldr_name_converter_fxt fxt = new Cldr_name_converter_fxt(); @Test public void Extract_key_or_fail() { fxt.Test__Extract_key_or_fail("CldrNamesEn.php" , "En"); - fxt.Test__Extract_key_or_fail("CldrNamesEn.php" , "en"); fxt.Test__Extract_key_or_fail("CldrNameEn.php" , null); fxt.Test__Extract_key_or_fail("CldrNamesEn.txt" , null); } diff --git a/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader.java b/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader.java index e95151b06..910a49a21 100644 --- a/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader.java +++ b/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader.java @@ -26,7 +26,7 @@ public class Cldr_name_loader { this.cldr_dir = cldr_dir; } - public Cldr_name_file Load(String lang_key) { + public Cldr_name_file Load_or_null(String lang_key) { // normalize to lc; scrib will pass lower_case, but underlying files are Title_case lang_key = String_.Lower(lang_key); @@ -39,12 +39,16 @@ public class Cldr_name_loader { urls_hash = Make_urls_hash(Io_mgr.Instance.QueryDir_fils(cldr_dir)); // get file - Io_url url = (Io_url)urls_hash.Get_by_or_fail(lang_key); - byte[] json = Io_mgr.Instance.LoadFilBry(url); - if (json == null) { + Io_url url = (Io_url)urls_hash.Get_by(lang_key); + if (url == null) { Gfo_usr_dlg_.Instance.Warn_many("", "", "no cldrName file exists for lang; lang=~{lang}", lang_key); return null; } + byte[] json = Io_mgr.Instance.LoadFilBry(url); + if (Bry_.Len_eq_0(json)) { + Gfo_usr_dlg_.Instance.Warn_many("", "", "json is empty; lang=~{lang}", lang_key); + return null; + } // parse, cache and return file = Parse(lang_key, json); diff --git a/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader_tst.java b/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader_tst.java index 8dfa85d2e..7b2e8fb50 100644 --- a/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader_tst.java +++ b/400_xowa/src/gplx/xowa/xtns/cldrs/Cldr_name_loader_tst.java @@ -31,7 +31,7 @@ class Cldr_name_loader_fxt { Io_mgr.Instance.SaveFilStr(Io_url_.new_fil_(Dir_name + fil_name), txt); } public void Test__load_file_is_null(boolean expd, String lang_key) { - Cldr_name_file name_file = name_loader.Load(lang_key); + Cldr_name_file name_file = name_loader.Load_or_null(lang_key); Gftest.Eq__bool(expd, name_file == null); } }