diff --git a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java index 06caf4c56..adb5b99ae 100644 --- a/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java +++ b/400_xowa/src/gplx/xowa/langs/msgs/Xol_msg_itm_.java @@ -252,8 +252,10 @@ public static final int , Id_xowa_wikidata_links_special = 231 , Id_xowa_window_allpages_box_tooltip = 232 , Id_xowa_window_allpages_btn_tooltip = 233 +, Id_wikibase_snakview_variations_novalue_label = 234 +, Id_wikibase_snakview_variations_somevalue_label = 235 ; - public static final int Id__max = 234; + public static final int Id__max = 236; public static Xol_msg_itm new_(int id, String key, String val) {return new_(id, Bry_.new_u8(key), Bry_.new_u8(val));} public static Xol_msg_itm new_(int id, byte[] key, byte[] val) { Xol_msg_itm rv = new Xol_msg_itm(id, key); @@ -465,8 +467,8 @@ case Xol_msg_itm_.Id_symbol_ellipsis: return new_(Xol_msg_itm_.Id_symbol_ellipsi case Xol_msg_itm_.Id_symbol_percent: return new_(Xol_msg_itm_.Id_symbol_percent, "percent", "~{0}%"); case Xol_msg_itm_.Id_symbol_parentheses: return new_(Xol_msg_itm_.Id_symbol_parentheses, "parentheses", "(~{0})"); case Xol_msg_itm_.Id_duration_ago: return new_(Xol_msg_itm_.Id_duration_ago, "ago", "~{0} ago"); -case Xol_msg_itm_.Id_xowa_wikidata_novalue: return new_(Xol_msg_itm_.Id_xowa_wikidata_novalue, "xowa-wikidata-novalue", "—"); -case Xol_msg_itm_.Id_xowa_wikidata_somevalue: return new_(Xol_msg_itm_.Id_xowa_wikidata_somevalue, "xowa-wikidata-somevalue", "?"); +case Xol_msg_itm_.Id_xowa_wikidata_novalue: return new_(Xol_msg_itm_.Id_xowa_wikidata_novalue, "wikibase-snakview-variations-novalue-label", "no value"); +case Xol_msg_itm_.Id_xowa_wikidata_somevalue: return new_(Xol_msg_itm_.Id_xowa_wikidata_somevalue, "wikibase-snakview-variations-somevalue-label", "unknown value"); case Xol_msg_itm_.Id_xowa_wikidata_links_wiki: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wiki, "xowa-wikidata-links-wiki", "Links (Wikipedia)"); case Xol_msg_itm_.Id_xowa_wikidata_links_wiktionary: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wiktionary, "xowa-wikidata-links-wiktionary", "Links (Wiktionary)"); case Xol_msg_itm_.Id_xowa_wikidata_links_wikisource: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wikisource, "xowa-wikidata-links-wikisource", "Links (Wikisource)"); @@ -512,6 +514,8 @@ case Xol_msg_itm_.Id_xowa_wikidata_deprecated: return new_(Xol_msg_itm_.Id_xowa_ case Xol_msg_itm_.Id_xowa_wikidata_normal: return new_(Xol_msg_itm_.Id_xowa_wikidata_normal, "xowa-wikidata-normal", "normal"); case Xol_msg_itm_.Id_xowa_wikidata_preferred: return new_(Xol_msg_itm_.Id_xowa_wikidata_preferred, "xowa-wikidata-preferred", "preferred"); case Xol_msg_itm_.Id_xowa_wikidata_links_special: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_special, "xowa-wikidata-links-special", "Links (special wikis)"); +case Xol_msg_itm_.Id_wikibase_snakview_variations_novalue_label: return new_(Xol_msg_itm_.Id_wikibase_snakview_variations_novalue_label, "wikibase-snakview-variations-novalue-label", "no value"); +case Xol_msg_itm_.Id_wikibase_snakview_variations_somevalue_label: return new_(Xol_msg_itm_.Id_wikibase_snakview_variations_somevalue_label, "wikibase-snakview-variations-somevalue-label", "unknown value"); default: throw Err_.new_unhandled(id); } } diff --git a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java index 578f0f39e..dcfe48fc5 100644 --- a/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java +++ b/400_xowa/src/gplx/xowa/xtns/scribunto/libs/Scrib_lib_wikibase_entity.java @@ -93,7 +93,7 @@ public class Scrib_lib_wikibase_entity implements Scrib_lib { // REF.MW:https:// // print it Bry_bfr bfr = wiki.Utl__bfr_mkr().Get_b512(); - wdata_mgr.Resolve_to_bfr(bfr, prop_grp, lang, Bool_.N); + wdata_mgr.Resolve_to_bfr(bfr, core.Wiki(), prop_grp, lang, Bool_.N); return rslt.Init_obj(bfr.To_bry_and_rls()); } public boolean AddStatementUsage(Scrib_proc_args args, Scrib_proc_rslt rslt) { diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java index 2a4660627..878bb56a0 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/Wdata_wiki_mgr.java @@ -15,7 +15,7 @@ Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt */ package gplx.xowa.xtns.wbases; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.core.primitives.*; -import gplx.langs.jsons.*; +import gplx.xowa.langs.msgs.*; import gplx.langs.jsons.*; import gplx.xowa.wikis.nss.*; import gplx.xowa.langs.*; import gplx.xowa.parsers.*; @@ -101,7 +101,7 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { claim_itm.Welcome(prop_val_visitor); } } - public void Resolve_to_bfr(Bry_bfr bfr, Wbase_claim_grp prop_grp, byte[] lang_key, boolean mode_is_statements) { + public void Resolve_to_bfr(Bry_bfr bfr, Xowe_wiki wiki, Wbase_claim_grp prop_grp, byte[] lang_key, boolean mode_is_statements) { synchronized (thread_lock) { // LOCK:must synchronized b/c prop_val_visitor has member bfr which can get overwritten; DATE:2016-07-06 if (hwtr_mgr == null) Hwtr_mgr_assert(); int len = prop_grp.Len(); @@ -113,10 +113,14 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { selected = prop; break; } - } - switch (selected.Snak_tid()) { - case Wbase_claim_value_type_.Tid__novalue : bfr.Add(Wbase_claim_value_type_.Itm__novalue.Key_bry()); break; - case Wbase_claim_value_type_.Tid__somevalue : bfr.Add(Wbase_claim_value_type_.Itm__somevalue.Key_bry()); break; + } + switch (selected.Snak_tid()) { // SEE:NOTE:novalue/somevalue + case Wbase_claim_value_type_.Tid__novalue: + bfr.Add(wiki.Msg_mgr().Val_by_id(Xol_msg_itm_.Id_wikibase_snakview_variations_novalue_label)); + break; + case Wbase_claim_value_type_.Tid__somevalue: + bfr.Add(wiki.Msg_mgr().Val_by_id(Xol_msg_itm_.Id_wikibase_snakview_variations_somevalue_label)); + break; default: { prop_val_visitor.Init(bfr, hwtr_mgr.Msgs(), lang_key, mode_is_statements); selected.Welcome(prop_val_visitor); @@ -204,3 +208,10 @@ public class Wdata_wiki_mgr implements Gfo_evt_itm, Gfo_invk { ctx.Wiki().Appe().Usr_dlg().Log_many("", "", "Unknown id in wikidata; type=~{0} id=~{1} page=~{2}", type, id, ctx.Page().Url_bry_safe()); } } +/* +NOTE:novalue/somevalue +Rough approximation of wikibase logic which is more involved with its different SnakFormatters +* https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/lib/includes/Formatters/OutputFormatSnakFormatterFactory.php: formatter factory; note lines for somevalue / novalue +* https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/lib/includes/Formatters/MessageSnakFormatter.php: formatter definition +* https://github.com/wikimedia/mediawiki-extensions-Wikibase/blob/master/repo/i18n/en.json: message definitions +*/ diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_msgs.java b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_msgs.java index 582a53513..07c5f74a2 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_msgs.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/hwtrs/Wdata_hwtr_msgs.java @@ -205,7 +205,7 @@ public class Wdata_hwtr_msgs { , "comma-separator", "word-separator", "xowa-wikidata-time-spr" , "xowa-wikidata-plus", "xowa-wikidata-minus", "xowa-wikidata-plusminus" , "parentheses" - , "xowa-wikidata-novalue", "xowa-wikidata-somevalue" + , "wikibase-snakview-variations-novalue-label", "wikibase-snakview-variations-somevalue-label" , "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec" , "xowa-wikidata-year", "xowa-wikidata-decade", "xowa-wikidata-century", "xowa-wikidata-millenium", "xowa-wikidata-years1e4", "xowa-wikidata-years1e5", "xowa-wikidata-years1e6", "xowa-wikidata-years1e7", "xowa-wikidata-years1e8", "xowa-wikidata-years1e9" , "ago", "xowa-wikidata-bc", "xowa-wikidata-inTime" diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wbase_statement_mgr_.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wbase_statement_mgr_.java index 8bfe97ff8..e92c8b7d7 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wbase_statement_mgr_.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wbase_statement_mgr_.java @@ -52,7 +52,7 @@ public class Wbase_statement_mgr_ { // get val based on pid and doc; EX: {{#property:p123|of=Earth}} -> doc=Q2; pid=123 -> "value of p123 in Q2" Wbase_claim_grp claim_grp = doc.Get_claim_grp_or_null(pid_int); if (claim_grp == null) return;// NOTE: some props may not exist; EX: "Some_known_page" has a qid of 123 but does not have pid 345 required by {{#property:P345|q=123}} - wdata_mgr.Resolve_to_bfr(bfr, claim_grp, wiki.Wdata_wiki_lang(), mode_is_statements); // NOTE: was ctx.Page().Lang().Key_bry(), but fails in simplewiki; DATE:2013-12-02 + wdata_mgr.Resolve_to_bfr(bfr, ctx.Wiki(), claim_grp, wiki.Wdata_wiki_lang(), mode_is_statements); // NOTE: was ctx.Page().Lang().Key_bry(), but fails in simplewiki; DATE:2013-12-02 if (property_wkr != null) property_wkr.Eval_end(ctx.Page(), pid_ttl, log_time_bgn); } public static int Parse_pid(Gfo_number_parser num_parser, byte[] bry) { diff --git a/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__basic__tst.java b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__basic__tst.java index 3cfb08125..3da038339 100644 --- a/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__basic__tst.java +++ b/400_xowa/src/gplx/xowa/xtns/wbases/pfuncs/Wdata_pf_property__basic__tst.java @@ -143,7 +143,7 @@ public class Wdata_pf_property__basic__tst { .Add_sitelink("enwiki", "Test_page") ); - fxt.Test_parse("{{#property:p1}}", "novalue"); + fxt.Test_parse("{{#property:p1}}", "no value"); } @Test public void Somevalue() { fxt.Init__docs__add(fxt.Wdoc("Q1") @@ -151,7 +151,7 @@ public class Wdata_pf_property__basic__tst { .Add_sitelink("enwiki", "Test_page") ); - fxt.Test_parse("{{#property:p1}}", "somevalue"); + fxt.Test_parse("{{#property:p1}}", "unknown value"); } @Test public void Multiple() { fxt.Init__docs__add(fxt.Wdoc("Q1")