1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00

'v3.6.3.1'

This commit is contained in:
gnosygnu
2016-06-19 23:58:10 -04:00
parent 96636f3161
commit d4e8590345
1960 changed files with 20790 additions and 9272 deletions

View File

@@ -17,21 +17,21 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.langs.vnts; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
import gplx.xowa.langs.vnts.converts.*;
public class Xol_vnt_itm implements GfoInvkAble {
public class Xol_vnt_itm implements Gfo_invk {
public Xol_vnt_itm(int idx, byte[] key, byte[] name, int mask__vnt) {
this.idx = idx; this.key = key; this.name = name; this.mask__vnt = mask__vnt;
this.convert_wkr = new Xol_convert_wkr(key);
}
public int Idx() {return idx;} private final int idx; // EX: 2
public byte[] Key() {return key;} private final byte[] key; // EX: zh-cn
public byte[] Name() {return name;} private final byte[] name; // EX: 大陆简体
public int Idx() {return idx;} private final int idx; // EX: 2
public byte[] Key() {return key;} private final byte[] key; // EX: zh-cn
public byte[] Name() {return name;} private final byte[] name; // EX: 大陆简体
public boolean Visible() {return visible;} private boolean visible = true; // visible in menu
public int Mask__vnt() {return mask__vnt;} private final int mask__vnt; // EX: 8
public int Mask__vnt() {return mask__vnt;} private final int mask__vnt; // EX: 8
public int Mask__fallbacks() {return mask_fallbacks;} private int mask_fallbacks; // EX: 11 for zh,zh-hans,zh-cn
public int Dir() {return dir;} private int dir = Xol_vnt_dir_.Tid__bi; // EX: "bidirectional"
public byte[][] Fallback_ary() {return fallback_ary;} private byte[][] fallback_ary = Bry_.Ary_empty; // EX: zh-hans|zh
public byte[][] Convert_ary() {return convert_ary;} private byte[][] convert_ary = Bry_.Ary_empty; // EX: zh-hans|zh-cn
public Xol_convert_wkr Convert_wkr() {return convert_wkr;} private final Xol_convert_wkr convert_wkr;
public Xol_convert_wkr Convert_wkr() {return convert_wkr;} private final Xol_convert_wkr convert_wkr;
public void Visible_(boolean v) {this.visible = v;}
public void Convert_ary_(byte[][] v) {convert_ary = v;}
public void Init(int dir, byte[][] fallback_ary) {
@@ -44,7 +44,7 @@ public class Xol_vnt_itm implements GfoInvkAble {
if (ctx.Match(k, Invk_fallbacks_)) fallback_ary = Bry_split_.Split(m.ReadBry("v"), Byte_ascii.Pipe);
else if (ctx.Match(k, Invk_converts_)) Convert_ary_(Bry_split_.Split(m.ReadBry("v"), Byte_ascii.Pipe));
else if (ctx.Match(k, Invk_dir_)) dir = Xol_vnt_dir_.Parse(m.ReadBry("v"));
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_fallbacks_ = "fallbacks_", Invk_converts_ = "converts_", Invk_dir_ = "dir_";
}

View File

@@ -17,15 +17,15 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.langs.vnts; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*;
import gplx.xowa.langs.vnts.converts.*; import gplx.xowa.parsers.vnts.*;
public class Xol_vnt_mgr implements GfoInvkAble {
public class Xol_vnt_mgr implements Gfo_invk {
public Xol_vnt_mgr(Xol_lang_itm lang) {
this.lang = lang;
this.convert_lang = new Vnt_convert_lang(convert_mgr, regy);
}
public Xol_lang_itm Lang() {return lang;} private final Xol_lang_itm lang;
public Xol_convert_mgr Convert_mgr() {return convert_mgr;} private final Xol_convert_mgr convert_mgr = new Xol_convert_mgr();
public Vnt_convert_lang Convert_lang() {return convert_lang;} private final Vnt_convert_lang convert_lang;
public Xol_vnt_regy Regy() {return regy;} private final Xol_vnt_regy regy = new Xol_vnt_regy(); // EX:zh;zh-hans;zh-hant;zh-cn;zh-hk;zh-mo;zh-sg;zh-tw
public Xol_lang_itm Lang() {return lang;} private final Xol_lang_itm lang;
public Xol_convert_mgr Convert_mgr() {return convert_mgr;} private final Xol_convert_mgr convert_mgr = new Xol_convert_mgr();
public Vnt_convert_lang Convert_lang() {return convert_lang;} private final Vnt_convert_lang convert_lang;
public Xol_vnt_regy Regy() {return regy;} private final Xol_vnt_regy regy = new Xol_vnt_regy(); // EX:zh;zh-hans;zh-hant;zh-cn;zh-hk;zh-mo;zh-sg;zh-tw
public Xol_vnt_itm Cur_itm() {return cur_itm;} private Xol_vnt_itm cur_itm; // EX:zh-cn
public boolean Enabled() {return enabled;} private boolean enabled = false;
public String Html__lnki_style() {return html__lnki_style;} private String html__lnki_style = ""; // style for showing vnt lnkis in different colors
@@ -65,8 +65,8 @@ public class Xol_vnt_mgr implements GfoInvkAble {
else if (ctx.Match(k, Invk_vnt_grp_)) Limit_visibility(m.ReadBryAry("v", Byte_ascii.Pipe));
else if (ctx.Match(k, Invk_cur_vnt_)) Cur_itm_(m.ReadBry("v"));
else if (ctx.Match(k, Invk_html_style_)) html__lnki_style = m.ReadStr("v");
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_get = "get", Invk_init_end = "init_end", Invk_cur_vnt_ = "cur_vnt_", Invk_vnt_grp_ = "vnt_grp_", Invk_html_style_ = "html_style_";
private static final byte[] Msg_variantname = Bry_.new_a7("variantname-");
private static final byte[] Msg_variantname = Bry_.new_a7("variantname-");
}

View File

@@ -19,9 +19,9 @@ package gplx.xowa.langs.vnts; import gplx.*; import gplx.xowa.*; import gplx.xow
import gplx.core.btries.*; import gplx.core.bits.*;
import gplx.xowa.parsers.vnts.*;
public class Xol_vnt_regy {
private final Hash_adp_bry hash = Hash_adp_bry.ci_a7(); private int hash_len;
private final List_adp list = List_adp_.new_();
public Btrie_slim_mgr Trie() {return trie;} private final Btrie_slim_mgr trie = Btrie_slim_mgr.ci_a7();
private final Hash_adp_bry hash = Hash_adp_bry.ci_a7(); private int hash_len;
private final List_adp list = List_adp_.New();
public Btrie_slim_mgr Trie() {return trie;} private final Btrie_slim_mgr trie = Btrie_slim_mgr.ci_a7();
public int Len() {return hash.Count();}
public boolean Has(byte[] k) {return hash.Has(k);}
public Xol_vnt_itm Get_at(int i) {return (Xol_vnt_itm)list.Get_at(i);}

View File

@@ -17,16 +17,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.langs.vnts.converts; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*; import gplx.xowa.langs.vnts.*;
import gplx.xowa.langs.parsers.*;
public class Xol_convert_grp implements GfoInvkAble {// group of convert_itm by vnt; EX: zh-hant {A -> A1; B -> B1}
private final Ordered_hash hash = Ordered_hash_.New_bry();
public class Xol_convert_grp implements Gfo_invk {// group of convert_itm by vnt; EX: zh-hant {A -> A1; B -> B1}
private final Ordered_hash hash = Ordered_hash_.New_bry();
public Xol_convert_grp(byte[] key) {this.key = key;}
public byte[] Key() {return key;} private final byte[] key;
public byte[] Key() {return key;} private final byte[] key;
public int Len() {return hash.Count();}
public Xol_convert_itm Get_at(int i) {return (Xol_convert_itm)hash.Get_at(i);}
public void Add(byte[] src, byte[] trg) {hash.Add_if_dupe_use_nth(src, new Xol_convert_itm(src, trg));}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_add_bulk)) Add_bulk(this, m.ReadBry("v"));
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
return this;
} private static final String Invk_add_bulk = "add_bulk";
private static void Add_bulk(Xol_convert_grp grp, byte[] raw) {

View File

@@ -18,8 +18,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.langs.vnts.converts; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*; import gplx.xowa.langs.vnts.*;
import gplx.xowa.wikis.nss.*; import gplx.xowa.wikis.data.tbls.*;
public class Xol_convert_mgr {
private final Ordered_hash tmp_page_list = Ordered_hash_.New_bry();
public Xol_convert_regy Converter_regy() {return converter_regy;} private final Xol_convert_regy converter_regy = new Xol_convert_regy();
private final Ordered_hash tmp_page_list = Ordered_hash_.New_bry();
public Xol_convert_regy Converter_regy() {return converter_regy;} private final Xol_convert_regy converter_regy = new Xol_convert_regy();
public Xol_convert_wkr[] Converter_ary() {return wkr_ary;} private Xol_convert_wkr[] wkr_ary; private int wkr_ary_len;
public void Init(Xol_vnt_regy regy) {
int len = regy.Len();
@@ -48,7 +48,7 @@ public class Xol_convert_mgr {
synchronized (tmp_page_list) { // THREAD:
int converted = Convert_ttl__convert_each_vnt(wiki, tmp_bfr, ns, ttl_bry); // convert ttl for each vnt
if (converted == 0) return Xowd_page_itm.Null; // ttl_bry has no conversions; exit;
// wiki.Data__core_mgr().Tbl__page().Select_in__ns_ttl(Cancelable_.Never, tmp_page_list, wiki.Ns_mgr(), true, 0, converted); // TODO: use this call; when defaulting test to use db_mgr, not txt_mgr
// wiki.Data__core_mgr().Tbl__page().Select_in__ns_ttl(Cancelable_.Never, tmp_page_list, wiki.Ns_mgr(), true, 0, converted); // TODO_OLD: use this call; when defaulting test to use db_mgr, not txt_mgr
wiki.Db_mgr().Load_mgr().Load_by_ttls(Cancelable_.Never, tmp_page_list, Bool_.Y, 0, converted);
for (int i = 0; i < converted; i++) {
Xowd_page_itm page = (Xowd_page_itm)tmp_page_list.Get_at(i);

View File

@@ -17,8 +17,8 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.xowa.langs.vnts.converts; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*; import gplx.xowa.langs.vnts.*;
import gplx.xowa.apps.fsys.*;
public class Xol_convert_regy implements GfoInvkAble { // registry of convert_grp; EX: zh-hans;zh-hant;
private final Ordered_hash hash = Ordered_hash_.New_bry();
public class Xol_convert_regy implements Gfo_invk { // registry of convert_grp; EX: zh-hans;zh-hant;
private final Ordered_hash hash = Ordered_hash_.New_bry();
public Xol_convert_grp Get_or_null(byte[] key) {return (Xol_convert_grp)hash.Get_by(key);}
public Xol_convert_grp Get_or_make(byte[] key) {
Xol_convert_grp rv = (Xol_convert_grp)hash.Get_by(key);
@@ -30,7 +30,7 @@ public class Xol_convert_regy implements GfoInvkAble { // registry of convert_gr
}
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
if (ctx.Match(k, Invk_get)) return Get_or_make(m.ReadBry("v"));
else return GfoInvkAble_.Rv_unhandled;
else return Gfo_invk_.Rv_unhandled;
} private static final String Invk_get = "get";
public static Io_url Bld_url(Xoa_fsys_mgr app_fsys_mgr, String lang) {return Bld_url(app_fsys_mgr.Cfg_lang_core_dir(), lang);}
public static Io_url Bld_url(Io_url dir, String lang) {return dir.GenSubFil_nest("variants", lang + ".gfs");}

View File

@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
package gplx.xowa.langs.vnts.converts; import gplx.*; import gplx.xowa.*; import gplx.xowa.langs.*; import gplx.xowa.langs.vnts.*;
import org.junit.*; import gplx.core.log_msgs.*; import gplx.langs.phps.*;
public class Xol_mw_parse_tst {
private final Xol_mw_parse_fxt fxt = new Xol_mw_parse_fxt();
private final Xol_mw_parse_fxt fxt = new Xol_mw_parse_fxt();
// @Test public void Basic() {
// fxt.Test_convert("$zh2Hant = array('a' => 'A', 'b' => 'B',);", String_.Concat_lines_nl
// ( "// zh_zh-hant"
@@ -80,12 +80,12 @@ class Xol_mw_parse_itm {
class Xol_mw_parse_fxt {
public void Test_convert(String mw, String expd) {
Xol_mw_parse_grp[] actl_ary = Parse(Bry_.new_u8(mw));
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
actl_ary[0].Write_as_gfs(bfr);
Tfds.Eq_str_lines(expd, bfr.To_str());
}
public void Test_run(Io_url src_dir, Io_url trg_dir) {
Bry_bfr bfr = Bry_bfr.new_();
Bry_bfr bfr = Bry_bfr_.New();
Io_url[] fils = Io_mgr.Instance.QueryDir_fils(src_dir);
int fils_len = fils.length;
for (int i = 0; i < fils_len; i++) {
@@ -103,7 +103,7 @@ class Xol_mw_parse_fxt {
}
}
public Xol_mw_parse_grp[] Parse(byte[] src) {
List_adp list = List_adp_.new_();
List_adp list = List_adp_.New();
Php_parser parser = new Php_parser();
Gfo_msg_log msg_log = new Gfo_msg_log("xowa");
Php_evaluator evaluator = new Php_evaluator(msg_log);
@@ -117,7 +117,7 @@ class Xol_mw_parse_fxt {
}
return (Xol_mw_parse_grp[])list.To_ary(Xol_mw_parse_grp.class);
}
private List_adp tmp_itm_list = List_adp_.new_();
private List_adp tmp_itm_list = List_adp_.New();
private Xol_mw_parse_grp Parse_grp(Php_line_assign line) {
Xol_mw_parse_grp grp = new Xol_mw_parse_grp();
byte[] key = line.Key().Val_obj_bry(); // EX: "zh2Hant"