mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Scribunto.Lang: Return 1st three letters of unknown language codes, not blank
This commit is contained in:
parent
83c40c8771
commit
8cda46bef9
@ -133,7 +133,19 @@ public class Scrib_lib_language implements Scrib_lib {
|
|||||||
byte[] lang_code = args.Pull_bry(0);
|
byte[] lang_code = args.Pull_bry(0);
|
||||||
// byte[] trans_code = args.Get_bry_or_null(1); // TODO_OLD: FetchLanguageName("en", "fr") -> Anglais; WHEN: needs global database of languages; cldr
|
// byte[] trans_code = args.Get_bry_or_null(1); // TODO_OLD: FetchLanguageName("en", "fr") -> Anglais; WHEN: needs global database of languages; cldr
|
||||||
Xol_lang_stub lang_itm = Xol_lang_stub_.Get_by_key_or_null(lang_code);
|
Xol_lang_stub lang_itm = Xol_lang_stub_.Get_by_key_or_null(lang_code);
|
||||||
return rslt.Init_obj(lang_itm == null ? String_.Empty : String_.new_u8(lang_itm.Canonical_name()));
|
String rv = null;
|
||||||
|
|
||||||
|
// unknown item; return 1st three letters; DATE:2017-04-01
|
||||||
|
if (lang_itm == null) {
|
||||||
|
int lang_code_len = lang_code.length;
|
||||||
|
int rv_len = lang_code_len < 3 ? lang_code_len : 3;
|
||||||
|
rv = String_.new_u8(Bry_.Mid(lang_code, 0, rv_len));
|
||||||
|
}
|
||||||
|
// known item; return canonical name
|
||||||
|
else {
|
||||||
|
rv = String_.new_u8(lang_itm.Canonical_name());
|
||||||
|
}
|
||||||
|
return rslt.Init_obj(rv);
|
||||||
}
|
}
|
||||||
public boolean FetchLanguageNames(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
public boolean FetchLanguageNames(Scrib_proc_args args, Scrib_proc_rslt rslt) {
|
||||||
// byte[] lang_code = args.Cast_bry_or_null(0);
|
// byte[] lang_code = args.Cast_bry_or_null(0);
|
||||||
|
@ -44,7 +44,8 @@ public class Scrib_lib_language_tst {
|
|||||||
@Test public void FetchLanguageName() {
|
@Test public void FetchLanguageName() {
|
||||||
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("en"), "English");
|
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("en"), "English");
|
||||||
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("fr"), "Français");
|
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("fr"), "Français");
|
||||||
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("enx"), "");
|
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("enx"), "enx");
|
||||||
|
fxt.Test_scrib_proc_str(lib, Scrib_lib_language.Invk_fetchLanguageName, Object_.Ary("qz"), "qz");
|
||||||
}
|
}
|
||||||
@Test public void GetFallbacksFor() {
|
@Test public void GetFallbacksFor() {
|
||||||
Xol_lang_itm other_lang = fxt.Core().App().Lang_mgr().Get_by_or_new(Bry_.new_a7("zh"));
|
Xol_lang_itm other_lang = fxt.Core().App().Lang_mgr().Get_by_or_new(Bry_.new_a7("zh"));
|
||||||
|
@ -23,7 +23,7 @@ public class Wdata_pf_property extends Pf_func_base {
|
|||||||
@Override public int Id() {return Xol_kwd_grp_.Id_property;}
|
@Override public int Id() {return Xol_kwd_grp_.Id_property;}
|
||||||
@Override public Pf_func New(int id, byte[] name) {return new Wdata_pf_property().Name_(name);}
|
@Override public Pf_func New(int id, byte[] name) {return new Wdata_pf_property().Name_(name);}
|
||||||
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {// EX: {{#property:p123|}}
|
@Override public void Func_evaluate(Bry_bfr bfr, Xop_ctx ctx, Xot_invk caller, Xot_invk self, byte[] src) {// EX: {{#property:p123|}}
|
||||||
synchronized (this) { // LOCK: must synchronized b/c bfr will later be set as member variable; DATE:2016-07-06
|
synchronized (this) { // LOCK: must synchronized b/c bfr will later be set as member variable in .Resolve_to_bfr; DATE:2016-07-06
|
||||||
// init
|
// init
|
||||||
byte[] pid_ttl = Eval_argx(ctx, src, caller, self);
|
byte[] pid_ttl = Eval_argx(ctx, src, caller, self);
|
||||||
Xop_log_property_wkr property_wkr = ctx.Xtn__wikidata__property_wkr();
|
Xop_log_property_wkr property_wkr = ctx.Xtn__wikidata__property_wkr();
|
||||||
|
Loading…
Reference in New Issue
Block a user