mirror of
https://github.com/gnosygnu/xowa.git
synced 2025-06-02 07:24:19 +00:00
TemplateStyles: Handle empty files
This commit is contained in:
parent
4cadd6b89b
commit
0f89d3aa3a
@ -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"
|
||||
|
@ -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;
|
||||
}
|
||||
|
@ -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[]
|
||||
|
@ -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"
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user