mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Wikibase: Show 'unknown value' / 'no value' instead of 'somevalue' / 'no value' [#529]
This commit is contained in:
parent
d61fd33a87
commit
8f029f479b
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -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"
|
||||
|
@ -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) {
|
||||
|
@ -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")
|
||||
|
Loading…
Reference in New Issue
Block a user