mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v1.6.5.1
This commit is contained in:
28
400_xowa/src_140_lang/gplx/xowa/Xobcl_kwd_row.java
Normal file
28
400_xowa/src_140_lang/gplx/xowa/Xobcl_kwd_row.java
Normal file
@@ -0,0 +1,28 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xobcl_kwd_row {
|
||||
public Xobcl_kwd_row(byte[] key, byte[][] itms) {
|
||||
this.key = key; this.itms = itms;
|
||||
for (byte[] itm : itms)
|
||||
itms_hash.Add(itm, itm);
|
||||
}
|
||||
public byte[] Key() {return key;} private byte[] key;
|
||||
public byte[][] Itms() {return itms;} private byte[][] itms;
|
||||
public boolean Itms_has(byte[] key) {return itms_hash.Has(key);} private OrderedHash itms_hash = OrderedHash_.new_bry_();
|
||||
}
|
||||
83
400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser.java
Normal file
83
400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser.java
Normal file
@@ -0,0 +1,83 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_csv_parser {
|
||||
public void Save(Bry_bfr bfr, byte[] src) {
|
||||
int len = src.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
byte b = src[i];
|
||||
switch (b) {
|
||||
case Byte_ascii.CarriageReturn: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_r); break;
|
||||
case Byte_ascii.NewLine: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_n); break;
|
||||
case Byte_ascii.Tab: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Ltr_t); break;
|
||||
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash); bfr.Add_byte(Byte_ascii.Backslash); break;
|
||||
case Byte_ascii.Pipe: bfr.Add(Bry_pipe); break;
|
||||
default: bfr.Add_byte(b); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
public byte[] Load(byte[] src, int bgn, int end) {Load(tmp_bfr, src, bgn, end); return tmp_bfr.XtoAryAndClear();}
|
||||
public void Load(Bry_bfr bfr, byte[] src) {Load(bfr, src, 0, src.length);}
|
||||
public void Load(Bry_bfr bfr, byte[] src, int bgn, int end) {
|
||||
for (int i = bgn; i < end; i++) {
|
||||
byte b = src[i];
|
||||
switch (b) {
|
||||
case Byte_ascii.Backslash: {
|
||||
int nxt_pos = i + 1; if (nxt_pos == end) throw Err_mgr._.fmt_(GRP_KEY, "parse_backslash_is_last", "backslash cannot be last character");
|
||||
byte nxt_byte = src[nxt_pos];
|
||||
switch (nxt_byte) {
|
||||
case Byte_ascii.Backslash: bfr.Add_byte(Byte_ascii.Backslash); break;
|
||||
case Byte_ascii.Ltr_r: bfr.Add_byte(Byte_ascii.CarriageReturn); break;
|
||||
case Byte_ascii.Ltr_n: bfr.Add_byte(Byte_ascii.NewLine); break;
|
||||
case Byte_ascii.Ltr_t: bfr.Add_byte(Byte_ascii.Tab); break;
|
||||
case Byte_ascii.Ltr_u:
|
||||
int utf_len = 1;
|
||||
for (int j = i + 6; j < end; j += 6) { // iterate over rest of String; EX: \u0123
|
||||
if (j + 1 < end && src[j] == Byte_ascii.Backslash && src[j + 1] == Byte_ascii.Ltr_u)
|
||||
++utf_len;
|
||||
else
|
||||
break;
|
||||
}
|
||||
byte[] utf_bytes = new byte[utf_len]; int utf_idx = 0;
|
||||
int utf_pos = i + 2;
|
||||
for (int j = 0; j < utf_len; j++) {
|
||||
int utf_int = Int_.Xto_int_hex(src, utf_pos, utf_pos + 4);
|
||||
if (utf_int == -1) throw Err_mgr._.fmt_(GRP_KEY, "parse_invalid_escape_u", "invalid value for \\u: ~{0}", String_.new_utf8_(src, bgn, end));
|
||||
utf_bytes[utf_idx++] = (byte)utf_int;
|
||||
utf_pos += 6;
|
||||
}
|
||||
int utf_int_decoded = gplx.intl.Utf16_.Decode_to_int(utf_bytes, 0);
|
||||
bfr.Add(gplx.intl.Utf16_.Encode_int_to_bry(utf_int_decoded));
|
||||
nxt_pos = i + (utf_len * 6) - 1; // -1 b/c "for" will ++
|
||||
break;
|
||||
default:
|
||||
bfr.Add_byte(b).Add_byte(nxt_byte);
|
||||
break;
|
||||
}
|
||||
i = nxt_pos;
|
||||
break;
|
||||
}
|
||||
default: bfr.Add_byte(b); break;
|
||||
}
|
||||
}
|
||||
}
|
||||
private static final String GRP_KEY = "Xol_csv_parser";
|
||||
private static final byte[] Bry_pipe = Bry_.new_ascii_("\\u007C");
|
||||
private static final Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
|
||||
public static final Xol_csv_parser _ = new Xol_csv_parser(); Xol_csv_parser() {}
|
||||
}
|
||||
41
400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser_tst.java
Normal file
41
400_xowa/src_140_lang/gplx/xowa/Xol_csv_parser_tst.java
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import org.junit.*;
|
||||
public class Xol_csv_parser_tst {
|
||||
Xol_csv_parser_fxt fxt = new Xol_csv_parser_fxt();
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@Test public void Save() {fxt.Tst_save("a\r\n\t|d", "a\\r\\n\\t\\u007Cd");}
|
||||
@Test public void Load() {fxt.Tst_load("a\r\n\t|d", "a\\r\\n\\t\\u007Cd");}
|
||||
@Test public void Save_backslash() {fxt.Tst_save("a\\\\n", "a\\\\\\\\n");}
|
||||
@Test public void Load_backslash() {fxt.Tst_load("a\\\\n", "a\\\\\\\\n");}
|
||||
@Test public void Utf() {fxt.Tst_load(" ", "\\u00c2\\u00a0");} // NOTE: 1st String is nbsp;
|
||||
}
|
||||
class Xol_csv_parser_fxt {
|
||||
Xol_csv_parser parser = Xol_csv_parser._; Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
|
||||
public void Clear() {}
|
||||
public void Tst_save(String raw, String expd) {
|
||||
parser.Save(tmp_bfr, Bry_.new_utf8_(raw));
|
||||
Tfds.Eq(expd, tmp_bfr.XtoStrAndClear());
|
||||
}
|
||||
public void Tst_load(String expd, String raw_str) {
|
||||
byte[] raw = Bry_.new_utf8_(raw_str);
|
||||
parser.Load(tmp_bfr, raw, 0, raw.length);
|
||||
Tfds.Eq(expd, tmp_bfr.XtoStrAndClear());
|
||||
}
|
||||
}
|
||||
41
400_xowa/src_140_lang/gplx/xowa/Xol_font_info.java
Normal file
41
400_xowa/src_140_lang/gplx/xowa/Xol_font_info.java
Normal file
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.gfui.*;
|
||||
public class Xol_font_info implements GfoInvkAble, GfoEvMgrOwner {
|
||||
public Xol_font_info(String name, float size, FontStyleAdp style) {this.name = name; this.size = size; this.style = style;}
|
||||
public GfoEvMgr EvMgr() {if (evMgr == null) evMgr = GfoEvMgr.new_(this); return evMgr;} GfoEvMgr evMgr;
|
||||
public String Name() {return name;} public Xol_font_info Name_(String v) {name = v; Font_changed_pub(); return this;} private String name;
|
||||
public float Size() {return size;} public Xol_font_info Size_(float v) {size = v; Font_changed_pub(); return this;} private float size;
|
||||
public FontStyleAdp Style() {return style;} public Xol_font_info Style_(FontStyleAdp v) {style = v; Font_changed_pub(); return this;} private FontStyleAdp style;
|
||||
public Xol_font_info CloneNew() {return new Xol_font_info(name, size, style);}
|
||||
public FontAdp XtoFontAdp() {return FontAdp.new_(name, size, style);}
|
||||
public boolean Eq(FontAdp font) {return String_.Eq(name, font.Name()) && size == font.Size() && style.Val() == font.Style().Val();}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_name)) return name;
|
||||
else if (ctx.Match(k, Invk_name_)) Name_(m.ReadStr("v"));
|
||||
else if (ctx.Match(k, Invk_size)) return size;
|
||||
else if (ctx.Match(k, Invk_size_)) Size_(m.ReadFloat("v"));
|
||||
else if (ctx.Match(k, Invk_style_)) Style_(FontStyleAdp_.parse_(m.ReadStr("v")));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
private static final String Invk_name = "name", Invk_name_ = "name_", Invk_size = "size", Invk_size_ = "size_", Invk_style_ = "style_";
|
||||
public static final String Font_changed = "font_changed";
|
||||
private void Font_changed_pub() {GfoEvMgr_.PubObj(this, Font_changed, "font", this);}
|
||||
}
|
||||
204
400_xowa/src_140_lang/gplx/xowa/Xol_fragment_mgr.java
Normal file
204
400_xowa/src_140_lang/gplx/xowa/Xol_fragment_mgr.java
Normal file
@@ -0,0 +1,204 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_fragment_mgr implements GfoInvkAble {
|
||||
public Xol_fragment_mgr(Xol_lang lang) {this.lang = lang;} private Xol_lang lang;
|
||||
public byte[] Html_js_wikidata() {if (html_js_wikidata == null) html_js_wikidata = Html_js_wikidata_init(); return html_js_wikidata;} private byte[] html_js_wikidata;
|
||||
private byte[] Html_js_wikidata_init() {
|
||||
Xow_wiki wdata_wiki = lang.App().Wiki_mgr().Wdata_mgr().Wdata_wiki();
|
||||
if (wdata_wiki != null) wdata_wiki.Init_assert();
|
||||
Bry_bfr bfr = lang.App().Utl_bry_bfr_mkr().Get_b512();
|
||||
html_js_wikidata_fmtr.Bld_bfr_many(bfr
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_languages)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_toc)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_labels)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_aliasesHead)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_descriptions)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_claims)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_json)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_language)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_wiki)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_label)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_aliases)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_description)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_link)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_property)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_value)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_references)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_qualifiers)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_symbol_comma_separator)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_symbol_word_separator)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_symbol_parentheses)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_jan)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_feb)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_mar)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_apr)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_may)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_jun)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_jul)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_aug)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_sep)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_oct)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_nov)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_dte_month_abrv_dec)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_duration_ago)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_novalue)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_somevalue)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wiki)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wiktionary)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wikisource)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wikivoyage)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wikiquote)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wikibooks)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wikiversity)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_wikinews)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_links_special)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_plus)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_minus)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_plusminus)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_degree)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_minute)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_second)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_north)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_south)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_west)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_east)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_meters)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_julian)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_decade)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_century)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_millenium)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_years1e4)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_years1e5)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_years1e6)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_years1e7)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_years1e8)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_years1e9)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_bc)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_inTime)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_wikibase_diffview_rank)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_preferred)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_normal)
|
||||
, Html_js_wikidata_val(wdata_wiki, Xol_msg_itm_.Id_xowa_wikidata_deprecated)
|
||||
, lang.App().Fsys_mgr().Root_dir().To_http_file_str()
|
||||
);
|
||||
return bfr.Mkr_rls().XtoAryAndClear();
|
||||
}
|
||||
private byte[] Html_js_wikidata_val(Xow_wiki wdata_wiki, int id) {
|
||||
Xol_msg_itm msg = lang.Msg_mgr().Itm_by_id_or_null(id);
|
||||
byte[] rv = wdata_wiki == null ? msg.Val() : Pf_msg_mgr.Get_msg_val(wdata_wiki, lang, msg.Key(), Bry_.Ary_empty);
|
||||
if (Bry_finder.Find_fwd(rv, Byte_ascii.Apos) != Bry_.NotFound)
|
||||
rv = Bry_.Replace(rv, Bry_find, Bry_repl);
|
||||
return rv;
|
||||
} private static final byte[] Bry_find = new byte[] {Byte_ascii.Apos}, Bry_repl = new byte[] {Byte_ascii.Backslash, Byte_ascii.Apos};
|
||||
private Bry_fmtr html_js_wikidata_fmtr = Bry_fmtr.new_(String_.Concat_lines_nl
|
||||
( " <script>"
|
||||
, " var xowa_wikidata_i18n = {"
|
||||
, " 'languages' : '~{languages}',"
|
||||
, " 'toc' : '~{toc}',"
|
||||
, " 'labels' : '~{labels}',"
|
||||
, " 'aliasesHead' : '~{aliasesHead}',"
|
||||
, " 'descriptions' : '~{descriptions}',"
|
||||
, " 'links' : '~{links}',"
|
||||
, " 'claims' : '~{claims}',"
|
||||
, " 'json' : '~{json}',"
|
||||
, " 'language' : '~{language}',"
|
||||
, " 'wiki' : '~{wiki}',"
|
||||
, " 'label' : '~{label}',"
|
||||
, " 'aliases' : '~{aliases}',"
|
||||
, " 'description' : '~{description}',"
|
||||
, " 'link' : '~{link}',"
|
||||
, " 'property' : '~{property}',"
|
||||
, " 'value' : '~{value}',"
|
||||
, " 'references' : '~{references}',"
|
||||
, " 'qualifiers' : '~{qualifiers}',"
|
||||
, " 'comma-separator' : '~{comma_separator}',"
|
||||
, " 'word-separator' : '~{word_separator}',"
|
||||
, " 'parentheses' : '~{parentheses}',"
|
||||
, " 'jan' : '~{jan}',"
|
||||
, " 'feb' : '~{feb}',"
|
||||
, " 'mar' : '~{mar}',"
|
||||
, " 'apr' : '~{apr}',"
|
||||
, " 'may' : '~{may}',"
|
||||
, " 'jun' : '~{jun}',"
|
||||
, " 'jul' : '~{jul}',"
|
||||
, " 'aug' : '~{aug}',"
|
||||
, " 'sep' : '~{sep}',"
|
||||
, " 'oct' : '~{oct}',"
|
||||
, " 'nov' : '~{nov}',"
|
||||
, " 'dec' : '~{dec}',"
|
||||
, " 'ago' : '~{ago}',"
|
||||
, " 'novalue' : '~{novalue}',"
|
||||
, " 'somevalue' : '~{somevalue}',"
|
||||
, " 'links-wiki' : '~{links_wiki}',"
|
||||
, " 'links-wiktionary' : '~{links_wiktionary}',"
|
||||
, " 'links-wikisource' : '~{links_wikisource}',"
|
||||
, " 'links-wikivoyage' : '~{links_wikivoyage}',"
|
||||
, " 'links-wikiquote' : '~{links_wikiquote}',"
|
||||
, " 'links-wikibooks' : '~{links_wikibooks}',"
|
||||
, " 'links-wikiversity' : '~{links_wikiversity}',"
|
||||
, " 'links-wikinews' : '~{links_wikinews}',"
|
||||
, " 'links-special' : '~{links_special}',"
|
||||
, " 'plus' : '~{plus}',"
|
||||
, " 'minus' : '~{minus}',"
|
||||
, " 'plusminus' : '~{plusminus}',"
|
||||
, " 'degree' : '~{degree}',"
|
||||
, " 'minute' : '~{minute}',"
|
||||
, " 'second' : '~{second}',"
|
||||
, " 'north' : '~{north}',"
|
||||
, " 'south' : '~{south}',"
|
||||
, " 'west' : '~{west}',"
|
||||
, " 'east' : '~{east}',"
|
||||
, " 'meters' : '~{meters}',"
|
||||
, " 'julian' : '~{julian}',"
|
||||
, " 'decade' : '~{decade}',"
|
||||
, " 'century' : '~{century}',"
|
||||
, " 'millenium' : '~{millenium}',"
|
||||
, " 'years1e4' : '~{years1e4}',"
|
||||
, " 'years1e5' : '~{years1e5}',"
|
||||
, " 'years1e6' : '~{years1e6}',"
|
||||
, " 'years1e7' : '~{years1e7}',"
|
||||
, " 'years1e8' : '~{years1e8}',"
|
||||
, " 'years1e9' : '~{years1e9}',"
|
||||
, " 'bc' : '~{bc}',"
|
||||
, " 'inTime' : '~{inTime}',"
|
||||
, " 'rank' : '~{rank}',"
|
||||
, " 'preferred' : '~{preferred}',"
|
||||
, " 'normal' : '~{normal}',"
|
||||
, " 'deprecated' : '~{deprecated}'"
|
||||
, " };"
|
||||
, " </script>"
|
||||
, " <script src=\"~{app_root_dir}bin/any/javascript/xowa/wikidata/wikidata.js\" type='text/javascript'></script>"
|
||||
)
|
||||
, "languages", "toc", "labels", "aliasesHead", "descriptions", "links", "claims", "json", "language", "wiki", "label", "aliases", "description", "link", "property", "value", "references", "qualifiers"
|
||||
, "comma_separator", "word_separator", "parentheses", "jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec", "ago", "novalue", "somevalue"
|
||||
, "links_wiki", "links_wiktionary", "links_wikisource", "links_wikivoyage", "links_wikiquote", "links_wikibooks", "links_wikiversity", "links_wikinews", "links_special"
|
||||
, "plus", "minus", "plusminus", "degree", "minute", "second", "north", "south", "west", "east", "meters", "julian"
|
||||
, "decade", "century", "millenium", "years1e4", "years1e5", "years1e6", "years1e7", "years1e8", "years1e9", "bc", "inTime"
|
||||
, "rank", "preferred", "normal", "deprecated"
|
||||
, "app_root_dir"
|
||||
);
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_html_js_wikidata_fmt_)) html_js_wikidata_fmtr.Fmt_(m.ReadBry("v"));
|
||||
else if (ctx.Match(k, Invk_html_js_wikidata)) return this.Html_js_wikidata();
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_html_js_wikidata_fmt_ = "html_js_wikidata_fmt_", Invk_html_js_wikidata = "html_js_wikidata";
|
||||
}
|
||||
117
400_xowa/src_140_lang/gplx/xowa/Xol_fragment_mgr_tst.java
Normal file
117
400_xowa/src_140_lang/gplx/xowa/Xol_fragment_mgr_tst.java
Normal file
@@ -0,0 +1,117 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import org.junit.*;
|
||||
public class Xol_fragment_mgr_tst {
|
||||
private Xol_fragment_mgr_fxt fxt = new Xol_fragment_mgr_fxt();
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@Test public void Html_wikidata() {
|
||||
fxt.Test_fragment(Xol_fragment_mgr.Invk_html_js_wikidata, String_.Concat_lines_nl
|
||||
( " <script>"
|
||||
, " var xowa_wikidata_i18n = {"
|
||||
, " 'languages' : 'en',"
|
||||
, " 'toc' : 'Contents',"
|
||||
, " 'labels' : 'Labels',"
|
||||
, " 'aliasesHead' : 'Aliases',"
|
||||
, " 'descriptions' : 'Descriptions',"
|
||||
, " 'links' : 'Links',"
|
||||
, " 'claims' : 'Claims',"
|
||||
, " 'json' : 'JSON',"
|
||||
, " 'language' : 'language',"
|
||||
, " 'wiki' : 'wiki',"
|
||||
, " 'label' : 'label',"
|
||||
, " 'aliases' : 'aliases',"
|
||||
, " 'description' : 'description',"
|
||||
, " 'link' : 'link',"
|
||||
, " 'property' : 'property',"
|
||||
, " 'value' : 'value',"
|
||||
, " 'references' : 'references',"
|
||||
, " 'qualifiers' : 'qualifiers',"
|
||||
, " 'comma-separator' : ', ',"
|
||||
, " 'word-separator' : ' ',"
|
||||
, " 'parentheses' : '($1)',"
|
||||
, " 'jan' : 'Jan',"
|
||||
, " 'feb' : 'Feb',"
|
||||
, " 'mar' : 'Mar',"
|
||||
, " 'apr' : 'Apr',"
|
||||
, " 'may' : 'May',"
|
||||
, " 'jun' : 'Jun',"
|
||||
, " 'jul' : 'Jul',"
|
||||
, " 'aug' : 'Aug',"
|
||||
, " 'sep' : 'Sep',"
|
||||
, " 'oct' : 'Oct',"
|
||||
, " 'nov' : 'Nov',"
|
||||
, " 'dec' : 'Dec',"
|
||||
, " 'ago' : '$1 ago',"
|
||||
, " 'novalue' : '—',"
|
||||
, " 'somevalue' : '?',"
|
||||
, " 'links-wiki' : 'Links (Wikipedia)',"
|
||||
, " 'links-wiktionary' : 'Links (Wiktionary)',"
|
||||
, " 'links-wikisource' : 'Links (Wikisource)',"
|
||||
, " 'links-wikivoyage' : 'Links (Wikivoyage)',"
|
||||
, " 'links-wikiquote' : 'Links (Wikiquote)',"
|
||||
, " 'links-wikibooks' : 'Links (Wikibooks)',"
|
||||
, " 'links-wikiversity' : 'Links (Wikiversity)',"
|
||||
, " 'links-wikinews' : 'Links (Wikinews)',"
|
||||
, " 'links-special' : 'Links (special wikis)',"
|
||||
, " 'plus' : '+',"
|
||||
, " 'minus' : '−',"
|
||||
, " 'plusminus' : '±',"
|
||||
, " 'degree' : '°',"
|
||||
, " 'minute' : '′',"
|
||||
, " 'second' : '″',"
|
||||
, " 'north' : 'N',"
|
||||
, " 'south' : 'S',"
|
||||
, " 'west' : 'W',"
|
||||
, " 'east' : 'E',"
|
||||
, " 'meters' : '" + String_.new_utf8_(Xol_msg_itm_.Bry_nbsp) + "m',"
|
||||
, " 'julian' : '<sup>jul</sup>',"
|
||||
, " 'decade' : '$10s',"
|
||||
, " 'century' : '$1. century',"
|
||||
, " 'millenium' : '$1. millenium',"
|
||||
, " 'years1e4' : '$10,000 years',"
|
||||
, " 'years1e5' : '$100,000 years',"
|
||||
, " 'years1e6' : '$1 million years',"
|
||||
, " 'years1e7' : '$10 million years',"
|
||||
, " 'years1e8' : '$100 million years',"
|
||||
, " 'years1e9' : '$1 billion years',"
|
||||
, " 'bc' : '$1 BC',"
|
||||
, " 'inTime' : 'in $1',"
|
||||
, " 'rank' : 'rank',"
|
||||
, " 'preferred' : 'preferred',"
|
||||
, " 'normal' : 'normal',"
|
||||
, " 'deprecated' : 'deprecated'"
|
||||
, " };"
|
||||
, " </script>"
|
||||
, " <script src=\"file:///mem/xowa/bin/any/javascript/xowa/wikidata/wikidata.js\" type='text/javascript'></script>"
|
||||
));
|
||||
}
|
||||
}
|
||||
class Xol_fragment_mgr_fxt {
|
||||
public void Clear() {
|
||||
if (lang == null) {
|
||||
Xoa_app app = Xoa_app_fxt.app_();
|
||||
lang = app.User().Lang();
|
||||
// wiki = Xoa_app_fxt.wiki_tst_(app);
|
||||
}
|
||||
} private Xol_lang lang;
|
||||
public void Test_fragment(String key, String expd) {
|
||||
byte[] actl = (byte[])GfoInvkAble_.InvkCmd(lang.Fragment_mgr(), key);
|
||||
Tfds.Eq_str_lines(expd, String_.new_utf8_(actl));
|
||||
}
|
||||
}
|
||||
34
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp.java
Normal file
34
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp.java
Normal file
@@ -0,0 +1,34 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_kwd_grp {// REF.MW: Messages_en.php; EX: 'redirect' => array( 0, '#REDIRECT' )
|
||||
public Xol_kwd_grp(byte[] key) {this.key = key;}
|
||||
public byte[] Key() {return key;} private byte[] key;
|
||||
public boolean Case_match() {return case_match;} private boolean case_match;
|
||||
public Xol_kwd_itm[] Itms() {return itms;} private Xol_kwd_itm[] itms;
|
||||
public void Srl_load(boolean case_match, byte[][] words) {
|
||||
this.case_match = case_match;
|
||||
int words_len = words.length;
|
||||
itms = new Xol_kwd_itm[words_len];
|
||||
for (int i = 0; i < words_len; i++) {
|
||||
byte[] word = words[i];
|
||||
Xol_kwd_itm itm = new Xol_kwd_itm(word);
|
||||
itms[i] = itm;
|
||||
}
|
||||
}
|
||||
}
|
||||
430
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp_.java
Normal file
430
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_grp_.java
Normal file
@@ -0,0 +1,430 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_kwd_grp_ {
|
||||
public static final int
|
||||
Id_redirect = 0
|
||||
, Id_notoc = 1
|
||||
, Id_nogallery = 2
|
||||
, Id_forcetoc = 3
|
||||
, Id_toc = 4
|
||||
, Id_noeditsection = 5
|
||||
, Id_noheader = 6
|
||||
, Id_utc_month_int_len2 = 7
|
||||
, Id_utc_month_int = 8
|
||||
, Id_utc_month_name = 9
|
||||
, Id_utc_month_gen = 10
|
||||
, Id_utc_month_abrv = 11
|
||||
, Id_utc_day_int = 12
|
||||
, Id_utc_day_int_len2 = 13
|
||||
, Id_utc_day_name = 14
|
||||
, Id_utc_year = 15
|
||||
, Id_utc_time = 16
|
||||
, Id_utc_hour = 17
|
||||
, Id_lcl_month_int_len2 = 18
|
||||
, Id_lcl_month_int = 19
|
||||
, Id_lcl_month_name = 20
|
||||
, Id_lcl_month_gen = 21
|
||||
, Id_lcl_month_abrv = 22
|
||||
, Id_lcl_day_int = 23
|
||||
, Id_lcl_day_int_len2 = 24
|
||||
, Id_lcl_day_name = 25
|
||||
, Id_lcl_year = 26
|
||||
, Id_lcl_time = 27
|
||||
, Id_lcl_hour = 28
|
||||
, Id_num_pages = 29
|
||||
, Id_num_articles = 30
|
||||
, Id_num_files = 31
|
||||
, Id_num_users = 32
|
||||
, Id_num_users_active = 33
|
||||
, Id_num_edits = 34
|
||||
, Id_num_views = 35
|
||||
, Id_ttl_page_txt = 36
|
||||
, Id_ttl_page_url = 37
|
||||
, Id_ns_txt = 38
|
||||
, Id_ns_url = 39
|
||||
, Id_ns_talk_txt = 40
|
||||
, Id_ns_talk_url = 41
|
||||
, Id_ns_subj_txt = 42
|
||||
, Id_ns_subj_url = 43
|
||||
, Id_ttl_full_txt = 44
|
||||
, Id_ttl_full_url = 45
|
||||
, Id_ttl_leaf_txt = 46
|
||||
, Id_ttl_leaf_url = 47
|
||||
, Id_ttl_base_txt = 48
|
||||
, Id_ttl_base_url = 49
|
||||
, Id_ttl_talk_txt = 50
|
||||
, Id_ttl_talk_url = 51
|
||||
, Id_ttl_subj_txt = 52
|
||||
, Id_ttl_subj_url = 53
|
||||
, Id_msg = 54
|
||||
, Id_subst = 55
|
||||
, Id_safesubst = 56
|
||||
, Id_msgnw = 57
|
||||
, Id_img_thumbnail = 58
|
||||
, Id_img_manualthumb = 59
|
||||
, Id_img_right = 60
|
||||
, Id_img_left = 61
|
||||
, Id_img_none = 62
|
||||
, Id_img_width = 63
|
||||
, Id_img_center = 64
|
||||
, Id_img_framed = 65
|
||||
, Id_img_frameless = 66
|
||||
, Id_img_page = 67
|
||||
, Id_img_upright = 68
|
||||
, Id_img_border = 69
|
||||
, Id_img_baseline = 70
|
||||
, Id_img_sub = 71
|
||||
, Id_img_super = 72
|
||||
, Id_img_top = 73
|
||||
, Id_img_text_top = 74
|
||||
, Id_img_middle = 75
|
||||
, Id_img_bottom = 76
|
||||
, Id_img_text_bottom = 77
|
||||
, Id_img_link = 78
|
||||
, Id_img_alt = 79
|
||||
, Id_i18n_int = 80
|
||||
, Id_site_sitename = 81
|
||||
, Id_url_ns = 82
|
||||
, Id_url_nse = 83
|
||||
, Id_url_localurl = 84
|
||||
, Id_url_localurle = 85
|
||||
, Id_site_articlepath = 86
|
||||
, Id_site_server = 87
|
||||
, Id_site_servername = 88
|
||||
, Id_site_scriptpath = 89
|
||||
, Id_site_stylepath = 90
|
||||
, Id_i18n_grammar = 91
|
||||
, Id_i18n_gender = 92
|
||||
, Id_notitleconvert = 93
|
||||
, Id_nocontentconvert = 94
|
||||
, Id_utc_week = 95
|
||||
, Id_utc_dow = 96
|
||||
, Id_lcl_week = 97
|
||||
, Id_lcl_dow = 98
|
||||
, Id_rev_id = 99
|
||||
, Id_rev_day_int = 100
|
||||
, Id_rev_day_int_len2 = 101
|
||||
, Id_rev_month_int_len2 = 102
|
||||
, Id_rev_month_int = 103
|
||||
, Id_rev_year = 104
|
||||
, Id_rev_timestamp = 105
|
||||
, Id_rev_user = 106
|
||||
, Id_i18n_plural = 107
|
||||
, Id_url_fullurl = 108
|
||||
, Id_url_fullurle = 109
|
||||
, Id_str_lcfirst = 110
|
||||
, Id_str_ucfirst = 111
|
||||
, Id_str_lc = 112
|
||||
, Id_str_uc = 113
|
||||
, Id_raw = 114
|
||||
, Id_page_displaytitle = 115
|
||||
, Id_str_rawsuffix = 116
|
||||
, Id_newsectionlink = 117
|
||||
, Id_nonewsectionlink = 118
|
||||
, Id_site_currentversion = 119
|
||||
, Id_url_urlencode = 120
|
||||
, Id_url_anchorencode = 121
|
||||
, Id_utc_timestamp = 122
|
||||
, Id_lcl_timestamp = 123
|
||||
, Id_site_directionmark = 124
|
||||
, Id_i18n_language = 125
|
||||
, Id_site_contentlanguage = 126
|
||||
, Id_site_pagesinnamespace = 127
|
||||
, Id_num_admins = 128
|
||||
, Id_str_formatnum = 129
|
||||
, Id_str_padleft = 130
|
||||
, Id_str_padright = 131
|
||||
, Id_misc_special = 132
|
||||
, Id_page_defaultsort = 133
|
||||
, Id_url_filepath = 134
|
||||
, Id_misc_tag = 135
|
||||
, Id_hiddencat = 136
|
||||
, Id_site_pagesincategory = 137
|
||||
, Id_rev_pagesize = 138
|
||||
, Id_index = 139
|
||||
, Id_noindex = 140
|
||||
, Id_site_numberingroup = 141
|
||||
, Id_staticredirect = 142
|
||||
, Id_rev_protectionlevel = 143
|
||||
, Id_str_formatdate = 144
|
||||
, Id_url_path = 145
|
||||
, Id_url_wiki = 146
|
||||
, Id_url_query = 147
|
||||
, Id_xtn_expr = 148
|
||||
, Id_xtn_if = 149
|
||||
, Id_xtn_ifeq = 150
|
||||
, Id_xtn_ifexpr = 151
|
||||
, Id_xtn_iferror = 152
|
||||
, Id_xtn_switch = 153
|
||||
, Id_xtn_default = 154
|
||||
, Id_xtn_ifexist = 155
|
||||
, Id_xtn_time = 156
|
||||
, Id_xtn_timel = 157
|
||||
, Id_xtn_rel2abs = 158
|
||||
, Id_xtn_titleparts = 159
|
||||
, Id_xowa_dbg = 160
|
||||
, Id_ogg_noplayer = 161
|
||||
, Id_ogg_noicon = 162
|
||||
, Id_ogg_thumbtime = 163
|
||||
, Id_xtn_geodata_coordinates = 164
|
||||
, Id_url_canonicalurl = 165
|
||||
, Id_url_canonicalurle = 166
|
||||
, Id_lst = 167
|
||||
, Id_lstx = 168
|
||||
, Id_lst_begin = 169
|
||||
, Id_lst_end = 170
|
||||
, Id_section_name = 171
|
||||
, Id_invoke = 172
|
||||
, Id_property = 173
|
||||
, Id_noexternallanglinks = 174
|
||||
, Id_ns_num = 175
|
||||
, Id_page_id = 176
|
||||
, Id_disambig = 177
|
||||
, Id_nocommafysuffix = 178
|
||||
, Id_xowa = 179
|
||||
, Id_mapSources_deg2dd = 180
|
||||
, Id_mapSources_dd2dms = 181
|
||||
, Id_mapSources_geoLink = 182
|
||||
, Id_geoCrumbs_isin = 183
|
||||
, Id_relatedArticles = 184
|
||||
, Id_relatedSites = 185
|
||||
, Id_massMessage_target = 186
|
||||
, Id_cascadingSources = 187
|
||||
, Id_pendingChangesLevel = 188
|
||||
;
|
||||
public static final int Id__max = 189;
|
||||
|
||||
private static byte[] ary_itm_(int id) {
|
||||
switch (id) {
|
||||
case Xol_kwd_grp_.Id_redirect: return Bry_.new_utf8_("redirect");
|
||||
case Xol_kwd_grp_.Id_notoc: return Bry_.new_utf8_("notoc");
|
||||
case Xol_kwd_grp_.Id_nogallery: return Bry_.new_utf8_("nogallery");
|
||||
case Xol_kwd_grp_.Id_forcetoc: return Bry_.new_utf8_("forcetoc");
|
||||
case Xol_kwd_grp_.Id_toc: return Bry_.new_utf8_("toc");
|
||||
case Xol_kwd_grp_.Id_noeditsection: return Bry_.new_utf8_("noeditsection");
|
||||
case Xol_kwd_grp_.Id_noheader: return Bry_.new_utf8_("noheader");
|
||||
case Xol_kwd_grp_.Id_utc_month_int_len2: return Bry_.new_utf8_("currentmonth");
|
||||
case Xol_kwd_grp_.Id_utc_month_int: return Bry_.new_utf8_("currentmonth1");
|
||||
case Xol_kwd_grp_.Id_utc_month_name: return Bry_.new_utf8_("currentmonthname");
|
||||
case Xol_kwd_grp_.Id_utc_month_gen: return Bry_.new_utf8_("currentmonthnamegen");
|
||||
case Xol_kwd_grp_.Id_utc_month_abrv: return Bry_.new_utf8_("currentmonthabbrev");
|
||||
case Xol_kwd_grp_.Id_utc_day_int: return Bry_.new_utf8_("currentday");
|
||||
case Xol_kwd_grp_.Id_utc_day_int_len2: return Bry_.new_utf8_("currentday2");
|
||||
case Xol_kwd_grp_.Id_utc_day_name: return Bry_.new_utf8_("currentdayname");
|
||||
case Xol_kwd_grp_.Id_utc_year: return Bry_.new_utf8_("currentyear");
|
||||
case Xol_kwd_grp_.Id_utc_time: return Bry_.new_utf8_("currenttime");
|
||||
case Xol_kwd_grp_.Id_utc_hour: return Bry_.new_utf8_("currenthour");
|
||||
case Xol_kwd_grp_.Id_lcl_month_int_len2: return Bry_.new_utf8_("localmonth");
|
||||
case Xol_kwd_grp_.Id_lcl_month_int: return Bry_.new_utf8_("localmonth1");
|
||||
case Xol_kwd_grp_.Id_lcl_month_name: return Bry_.new_utf8_("localmonthname");
|
||||
case Xol_kwd_grp_.Id_lcl_month_gen: return Bry_.new_utf8_("localmonthnamegen");
|
||||
case Xol_kwd_grp_.Id_lcl_month_abrv: return Bry_.new_utf8_("localmonthabbrev");
|
||||
case Xol_kwd_grp_.Id_lcl_day_int: return Bry_.new_utf8_("localday");
|
||||
case Xol_kwd_grp_.Id_lcl_day_int_len2: return Bry_.new_utf8_("localday2");
|
||||
case Xol_kwd_grp_.Id_lcl_day_name: return Bry_.new_utf8_("localdayname");
|
||||
case Xol_kwd_grp_.Id_lcl_year: return Bry_.new_utf8_("localyear");
|
||||
case Xol_kwd_grp_.Id_lcl_time: return Bry_.new_utf8_("localtime");
|
||||
case Xol_kwd_grp_.Id_lcl_hour: return Bry_.new_utf8_("localhour");
|
||||
case Xol_kwd_grp_.Id_num_pages: return Bry_.new_utf8_("numberofpages");
|
||||
case Xol_kwd_grp_.Id_num_articles: return Bry_.new_utf8_("numberofarticles");
|
||||
case Xol_kwd_grp_.Id_num_files: return Bry_.new_utf8_("numberoffiles");
|
||||
case Xol_kwd_grp_.Id_num_users: return Bry_.new_utf8_("numberofusers");
|
||||
case Xol_kwd_grp_.Id_num_users_active: return Bry_.new_utf8_("numberofactiveusers");
|
||||
case Xol_kwd_grp_.Id_num_edits: return Bry_.new_utf8_("numberofedits");
|
||||
case Xol_kwd_grp_.Id_num_views: return Bry_.new_utf8_("numberofviews");
|
||||
case Xol_kwd_grp_.Id_ttl_page_txt: return Bry_.new_utf8_("pagename");
|
||||
case Xol_kwd_grp_.Id_ttl_page_url: return Bry_.new_utf8_("pagenamee");
|
||||
case Xol_kwd_grp_.Id_ns_txt: return Bry_.new_utf8_("namespace");
|
||||
case Xol_kwd_grp_.Id_ns_url: return Bry_.new_utf8_("namespacee");
|
||||
case Xol_kwd_grp_.Id_ns_talk_txt: return Bry_.new_utf8_("talkspace");
|
||||
case Xol_kwd_grp_.Id_ns_talk_url: return Bry_.new_utf8_("talkspacee");
|
||||
case Xol_kwd_grp_.Id_ns_subj_txt: return Bry_.new_utf8_("subjectspace");
|
||||
case Xol_kwd_grp_.Id_ns_subj_url: return Bry_.new_utf8_("subjectspacee");
|
||||
case Xol_kwd_grp_.Id_ttl_full_txt: return Bry_.new_utf8_("fullpagename");
|
||||
case Xol_kwd_grp_.Id_ttl_full_url: return Bry_.new_utf8_("fullpagenamee");
|
||||
case Xol_kwd_grp_.Id_ttl_leaf_txt: return Bry_.new_utf8_("subpagename");
|
||||
case Xol_kwd_grp_.Id_ttl_leaf_url: return Bry_.new_utf8_("subpagenamee");
|
||||
case Xol_kwd_grp_.Id_ttl_base_txt: return Bry_.new_utf8_("basepagename");
|
||||
case Xol_kwd_grp_.Id_ttl_base_url: return Bry_.new_utf8_("basepagenamee");
|
||||
case Xol_kwd_grp_.Id_ttl_talk_txt: return Bry_.new_utf8_("talkpagename");
|
||||
case Xol_kwd_grp_.Id_ttl_talk_url: return Bry_.new_utf8_("talkpagenamee");
|
||||
case Xol_kwd_grp_.Id_ttl_subj_txt: return Bry_.new_utf8_("subjectpagename");
|
||||
case Xol_kwd_grp_.Id_ttl_subj_url: return Bry_.new_utf8_("subjectpagenamee");
|
||||
case Xol_kwd_grp_.Id_msg: return Bry_.new_utf8_("msg");
|
||||
case Xol_kwd_grp_.Id_subst: return Bry_.new_utf8_("subst");
|
||||
case Xol_kwd_grp_.Id_safesubst: return Bry_.new_utf8_("safesubst");
|
||||
case Xol_kwd_grp_.Id_msgnw: return Bry_.new_utf8_("msgnw");
|
||||
case Xol_kwd_grp_.Id_img_thumbnail: return Bry_.new_utf8_("img_thumbnail");
|
||||
case Xol_kwd_grp_.Id_img_manualthumb: return Bry_.new_utf8_("img_manualthumb");
|
||||
case Xol_kwd_grp_.Id_img_right: return Bry_.new_utf8_("img_right");
|
||||
case Xol_kwd_grp_.Id_img_left: return Bry_.new_utf8_("img_left");
|
||||
case Xol_kwd_grp_.Id_img_none: return Bry_.new_utf8_("img_none");
|
||||
case Xol_kwd_grp_.Id_img_width: return Bry_.new_utf8_("img_width");
|
||||
case Xol_kwd_grp_.Id_img_center: return Bry_.new_utf8_("img_center");
|
||||
case Xol_kwd_grp_.Id_img_framed: return Bry_.new_utf8_("img_framed");
|
||||
case Xol_kwd_grp_.Id_img_frameless: return Bry_.new_utf8_("img_frameless");
|
||||
case Xol_kwd_grp_.Id_img_page: return Bry_.new_utf8_("img_page");
|
||||
case Xol_kwd_grp_.Id_img_upright: return Bry_.new_utf8_("img_upright");
|
||||
case Xol_kwd_grp_.Id_img_border: return Bry_.new_utf8_("img_border");
|
||||
case Xol_kwd_grp_.Id_img_baseline: return Bry_.new_utf8_("img_baseline");
|
||||
case Xol_kwd_grp_.Id_img_sub: return Bry_.new_utf8_("img_sub");
|
||||
case Xol_kwd_grp_.Id_img_super: return Bry_.new_utf8_("img_super");
|
||||
case Xol_kwd_grp_.Id_img_top: return Bry_.new_utf8_("img_top");
|
||||
case Xol_kwd_grp_.Id_img_text_top: return Bry_.new_utf8_("img_text_top");
|
||||
case Xol_kwd_grp_.Id_img_middle: return Bry_.new_utf8_("img_middle");
|
||||
case Xol_kwd_grp_.Id_img_bottom: return Bry_.new_utf8_("img_bottom");
|
||||
case Xol_kwd_grp_.Id_img_text_bottom: return Bry_.new_utf8_("img_text_bottom");
|
||||
case Xol_kwd_grp_.Id_img_link: return Bry_.new_utf8_("img_link");
|
||||
case Xol_kwd_grp_.Id_img_alt: return Bry_.new_utf8_("img_alt");
|
||||
case Xol_kwd_grp_.Id_i18n_int: return Bry_.new_utf8_("int");
|
||||
case Xol_kwd_grp_.Id_site_sitename: return Bry_.new_utf8_("sitename");
|
||||
case Xol_kwd_grp_.Id_url_ns: return Bry_.new_utf8_("ns");
|
||||
case Xol_kwd_grp_.Id_url_nse: return Bry_.new_utf8_("nse");
|
||||
case Xol_kwd_grp_.Id_url_localurl: return Bry_.new_utf8_("localurl");
|
||||
case Xol_kwd_grp_.Id_url_localurle: return Bry_.new_utf8_("localurle");
|
||||
case Xol_kwd_grp_.Id_site_articlepath: return Bry_.new_utf8_("articlepath");
|
||||
case Xol_kwd_grp_.Id_site_server: return Bry_.new_utf8_("server");
|
||||
case Xol_kwd_grp_.Id_site_servername: return Bry_.new_utf8_("servername");
|
||||
case Xol_kwd_grp_.Id_site_scriptpath: return Bry_.new_utf8_("scriptpath");
|
||||
case Xol_kwd_grp_.Id_site_stylepath: return Bry_.new_utf8_("stylepath");
|
||||
case Xol_kwd_grp_.Id_i18n_grammar: return Bry_.new_utf8_("grammar");
|
||||
case Xol_kwd_grp_.Id_i18n_gender: return Bry_.new_utf8_("gender");
|
||||
case Xol_kwd_grp_.Id_notitleconvert: return Bry_.new_utf8_("notitleconvert");
|
||||
case Xol_kwd_grp_.Id_nocontentconvert: return Bry_.new_utf8_("nocontentconvert");
|
||||
case Xol_kwd_grp_.Id_utc_week: return Bry_.new_utf8_("currentweek");
|
||||
case Xol_kwd_grp_.Id_utc_dow: return Bry_.new_utf8_("currentdow");
|
||||
case Xol_kwd_grp_.Id_lcl_week: return Bry_.new_utf8_("localweek");
|
||||
case Xol_kwd_grp_.Id_lcl_dow: return Bry_.new_utf8_("localdow");
|
||||
case Xol_kwd_grp_.Id_rev_id: return Bry_.new_utf8_("revisionid");
|
||||
case Xol_kwd_grp_.Id_rev_day_int: return Bry_.new_utf8_("revisionday");
|
||||
case Xol_kwd_grp_.Id_rev_day_int_len2: return Bry_.new_utf8_("revisionday2");
|
||||
case Xol_kwd_grp_.Id_rev_month_int_len2: return Bry_.new_utf8_("revisionmonth");
|
||||
case Xol_kwd_grp_.Id_rev_month_int: return Bry_.new_utf8_("revisionmonth1");
|
||||
case Xol_kwd_grp_.Id_rev_year: return Bry_.new_utf8_("revisionyear");
|
||||
case Xol_kwd_grp_.Id_rev_timestamp: return Bry_.new_utf8_("revisiontimestamp");
|
||||
case Xol_kwd_grp_.Id_rev_user: return Bry_.new_utf8_("revisionuser");
|
||||
case Xol_kwd_grp_.Id_i18n_plural: return Bry_.new_utf8_("plural");
|
||||
case Xol_kwd_grp_.Id_url_fullurl: return Bry_.new_utf8_("fullurl");
|
||||
case Xol_kwd_grp_.Id_url_fullurle: return Bry_.new_utf8_("fullurle");
|
||||
case Xol_kwd_grp_.Id_str_lcfirst: return Bry_.new_utf8_("lcfirst");
|
||||
case Xol_kwd_grp_.Id_str_ucfirst: return Bry_.new_utf8_("ucfirst");
|
||||
case Xol_kwd_grp_.Id_str_lc: return Bry_.new_utf8_("lc");
|
||||
case Xol_kwd_grp_.Id_str_uc: return Bry_.new_utf8_("uc");
|
||||
case Xol_kwd_grp_.Id_raw: return Bry_.new_utf8_("raw");
|
||||
case Xol_kwd_grp_.Id_page_displaytitle: return Bry_.new_utf8_("displaytitle");
|
||||
case Xol_kwd_grp_.Id_str_rawsuffix: return Bry_.new_utf8_("rawsuffix");
|
||||
case Xol_kwd_grp_.Id_newsectionlink: return Bry_.new_utf8_("newsectionlink");
|
||||
case Xol_kwd_grp_.Id_nonewsectionlink: return Bry_.new_utf8_("nonewsectionlink");
|
||||
case Xol_kwd_grp_.Id_site_currentversion: return Bry_.new_utf8_("currentversion");
|
||||
case Xol_kwd_grp_.Id_url_urlencode: return Bry_.new_utf8_("urlencode");
|
||||
case Xol_kwd_grp_.Id_url_anchorencode: return Bry_.new_utf8_("anchorencode");
|
||||
case Xol_kwd_grp_.Id_utc_timestamp: return Bry_.new_utf8_("currenttimestamp");
|
||||
case Xol_kwd_grp_.Id_lcl_timestamp: return Bry_.new_utf8_("localtimestamp");
|
||||
case Xol_kwd_grp_.Id_site_directionmark: return Bry_.new_utf8_("directionmark");
|
||||
case Xol_kwd_grp_.Id_i18n_language: return Bry_.new_utf8_("language");
|
||||
case Xol_kwd_grp_.Id_site_contentlanguage: return Bry_.new_utf8_("contentlanguage");
|
||||
case Xol_kwd_grp_.Id_site_pagesinnamespace: return Bry_.new_utf8_("pagesinnamespace");
|
||||
case Xol_kwd_grp_.Id_num_admins: return Bry_.new_utf8_("numberofadmins");
|
||||
case Xol_kwd_grp_.Id_str_formatnum: return Bry_.new_utf8_("formatnum");
|
||||
case Xol_kwd_grp_.Id_str_padleft: return Bry_.new_utf8_("padleft");
|
||||
case Xol_kwd_grp_.Id_str_padright: return Bry_.new_utf8_("padright");
|
||||
case Xol_kwd_grp_.Id_misc_special: return Bry_.new_utf8_("special");
|
||||
case Xol_kwd_grp_.Id_page_defaultsort: return Bry_.new_utf8_("defaultsort");
|
||||
case Xol_kwd_grp_.Id_url_filepath: return Bry_.new_utf8_("filepath");
|
||||
case Xol_kwd_grp_.Id_misc_tag: return Bry_.new_utf8_("tag");
|
||||
case Xol_kwd_grp_.Id_hiddencat: return Bry_.new_utf8_("hiddencat");
|
||||
case Xol_kwd_grp_.Id_site_pagesincategory: return Bry_.new_utf8_("pagesincategory");
|
||||
case Xol_kwd_grp_.Id_rev_pagesize: return Bry_.new_utf8_("pagesize");
|
||||
case Xol_kwd_grp_.Id_index: return Bry_.new_utf8_("index");
|
||||
case Xol_kwd_grp_.Id_noindex: return Bry_.new_utf8_("noindex");
|
||||
case Xol_kwd_grp_.Id_site_numberingroup: return Bry_.new_utf8_("numberingroup");
|
||||
case Xol_kwd_grp_.Id_staticredirect: return Bry_.new_utf8_("staticredirect");
|
||||
case Xol_kwd_grp_.Id_rev_protectionlevel: return Bry_.new_utf8_("protectionlevel");
|
||||
case Xol_kwd_grp_.Id_str_formatdate: return Bry_.new_utf8_("formatdate");
|
||||
case Xol_kwd_grp_.Id_url_path: return Bry_.new_utf8_("url_path");
|
||||
case Xol_kwd_grp_.Id_url_wiki: return Bry_.new_utf8_("url_wiki");
|
||||
case Xol_kwd_grp_.Id_url_query: return Bry_.new_utf8_("url_query");
|
||||
case Xol_kwd_grp_.Id_xtn_expr: return Bry_.new_utf8_("expr");
|
||||
case Xol_kwd_grp_.Id_xtn_if: return Bry_.new_utf8_("if");
|
||||
case Xol_kwd_grp_.Id_xtn_ifeq: return Bry_.new_utf8_("ifeq");
|
||||
case Xol_kwd_grp_.Id_xtn_ifexpr: return Bry_.new_utf8_("ifexpr");
|
||||
case Xol_kwd_grp_.Id_xtn_iferror: return Bry_.new_utf8_("iferror");
|
||||
case Xol_kwd_grp_.Id_xtn_switch: return Bry_.new_utf8_("switch");
|
||||
case Xol_kwd_grp_.Id_xtn_default: return Bry_.new_utf8_("default");
|
||||
case Xol_kwd_grp_.Id_xtn_ifexist: return Bry_.new_utf8_("ifexist");
|
||||
case Xol_kwd_grp_.Id_xtn_time: return Bry_.new_utf8_("time");
|
||||
case Xol_kwd_grp_.Id_xtn_timel: return Bry_.new_utf8_("timel");
|
||||
case Xol_kwd_grp_.Id_xtn_rel2abs: return Bry_.new_utf8_("rel2abs");
|
||||
case Xol_kwd_grp_.Id_xtn_titleparts: return Bry_.new_utf8_("titleparts");
|
||||
case Xol_kwd_grp_.Id_xowa_dbg: return Bry_.new_utf8_("xowa_dbg");
|
||||
case Xol_kwd_grp_.Id_ogg_noplayer: return Bry_.new_utf8_("noplayer");
|
||||
case Xol_kwd_grp_.Id_ogg_noicon: return Bry_.new_utf8_("noicon");
|
||||
case Xol_kwd_grp_.Id_ogg_thumbtime: return Bry_.new_utf8_("thumbtime");
|
||||
case Xol_kwd_grp_.Id_xtn_geodata_coordinates: return Bry_.new_utf8_("coordinates");
|
||||
case Xol_kwd_grp_.Id_url_canonicalurl: return Bry_.new_utf8_("canonicalurl");
|
||||
case Xol_kwd_grp_.Id_url_canonicalurle: return Bry_.new_utf8_("canonicalurle");
|
||||
case Xol_kwd_grp_.Id_lst: return Bry_.new_utf8_("lst");
|
||||
case Xol_kwd_grp_.Id_lstx: return Bry_.new_utf8_("lstx");
|
||||
case Xol_kwd_grp_.Id_lst_begin: return Bry_.new_utf8_("lst_begin");
|
||||
case Xol_kwd_grp_.Id_lst_end: return Bry_.new_utf8_("lst_end");
|
||||
case Xol_kwd_grp_.Id_section_name: return Bry_.new_utf8_("name");
|
||||
case Xol_kwd_grp_.Id_invoke: return Bry_.new_utf8_("invoke");
|
||||
case Xol_kwd_grp_.Id_property: return Bry_.new_utf8_("property");
|
||||
case Xol_kwd_grp_.Id_noexternallanglinks: return Bry_.new_utf8_("noexternallanglinks");
|
||||
case Xol_kwd_grp_.Id_ns_num: return Bry_.new_utf8_("namespacenumber");
|
||||
case Xol_kwd_grp_.Id_page_id: return Bry_.new_utf8_("pageid");
|
||||
case Xol_kwd_grp_.Id_disambig: return Bry_.new_utf8_("disambiguation");
|
||||
case Xol_kwd_grp_.Id_nocommafysuffix: return Bry_.new_utf8_("nosep");
|
||||
case Xol_kwd_grp_.Id_xowa: return Bry_.new_utf8_("xowa");
|
||||
case Xol_kwd_grp_.Id_mapSources_deg2dd: return Bry_.new_utf8_("deg2dd");
|
||||
case Xol_kwd_grp_.Id_mapSources_dd2dms: return Bry_.new_utf8_("dd2dms");
|
||||
case Xol_kwd_grp_.Id_mapSources_geoLink: return Bry_.new_utf8_("geolink");
|
||||
case Xol_kwd_grp_.Id_geoCrumbs_isin: return Bry_.new_utf8_("isin");
|
||||
case Xol_kwd_grp_.Id_relatedArticles: return Bry_.new_utf8_("relatedArticles");
|
||||
case Xol_kwd_grp_.Id_relatedSites: return Bry_.new_utf8_("relatedSites");
|
||||
case Xol_kwd_grp_.Id_massMessage_target: return Bry_.new_utf8_("target");
|
||||
case Xol_kwd_grp_.Id_cascadingSources: return Bry_.new_utf8_("cascadingSources");
|
||||
case Xol_kwd_grp_.Id_pendingChangesLevel: return Bry_.new_utf8_("pendingChangesLevel");
|
||||
default: throw Err_mgr._.unhandled_(id);
|
||||
}
|
||||
}
|
||||
public static byte[] Bry_by_id(int id) {
|
||||
if (Bry__ == null) Bry_init();
|
||||
return Bry__[id];
|
||||
} static byte[][] Bry__;
|
||||
public static int Id_by_bry(byte[] find) {
|
||||
if (hash == null) {
|
||||
hash = Hash_adp_bry.ci_();
|
||||
if (Bry__ == null) Bry_init();
|
||||
int len = Bry__.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
byte[] bry = Bry__[i];
|
||||
hash.Add(bry, Int_obj_val.new_(i));
|
||||
}
|
||||
}
|
||||
Object o = hash.Get_by_bry(find);
|
||||
return o == null? Int_.Neg1 : ((Int_obj_val)o).Val();
|
||||
} static Hash_adp_bry hash;
|
||||
private static void Bry_init() {
|
||||
Bry__ = new byte[Id__max][];
|
||||
for (int i = 0; i < Id__max; i++)
|
||||
Bry__[i] = ary_itm_(i);
|
||||
}
|
||||
}
|
||||
|
||||
23
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_itm.java
Normal file
23
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_itm.java
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_kwd_itm {// NOTE: keeping as separate class b/c may include fmt props later; EX: thumbnail=$1
|
||||
public Xol_kwd_itm(byte[] val) {this.val = val;}
|
||||
public byte[] Val() {return val;} private byte[] val;
|
||||
public void Val_(byte[] v) {val = v;} // should only be called by lang
|
||||
}
|
||||
54
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_mgr.java
Normal file
54
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_mgr.java
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_kwd_mgr implements GfoInvkAble {
|
||||
public Xol_kwd_mgr(Xol_lang lang) {this.lang = lang;} private Xol_lang lang; Xol_kwd_grp[] grps = new Xol_kwd_grp[Xol_kwd_grp_.Id__max];
|
||||
public int Len() {return grps.length;}
|
||||
public ByteTrieMgr_slim Trie_raw() {if (trie_raw == null) trie_raw = Xol_kwd_mgr.trie_(this, Xol_kwd_grp_.Id_str_rawsuffix); return trie_raw;} private ByteTrieMgr_slim trie_raw;
|
||||
public ByteTrieMgr_slim Trie_nosep() {if (trie_nosep == null) trie_nosep = Xol_kwd_mgr.trie_(this, Xol_kwd_grp_.Id_nocommafysuffix); return trie_nosep;} private ByteTrieMgr_slim trie_nosep;
|
||||
public Xol_kwd_grp Get_at(int id) {return grps[id];}
|
||||
public Xol_kwd_grp Get_or_new(int id) {
|
||||
Xol_kwd_grp rv = grps[id];
|
||||
if (rv == null) {
|
||||
rv = new Xol_kwd_grp(Xol_kwd_grp_.Bry_by_id(id));
|
||||
grps[id] = rv;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
public Xol_kwd_grp New(boolean case_match, int id, String... words_str) {
|
||||
Xol_kwd_grp rv = Get_or_new(id);
|
||||
rv.Srl_load(case_match, Bry_.Ary(words_str));
|
||||
return rv;
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_lang)) return lang;
|
||||
else if (ctx.Match(k, Invk_load_text)) Xol_lang_srl.Load_keywords(this, m.ReadBry("v"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_lang = Xol_lang_srl.Invk_lang, Invk_load_text = Xol_lang_srl.Invk_load_text;
|
||||
public static ByteTrieMgr_slim trie_(Xol_kwd_mgr mgr, int id) {
|
||||
Xol_kwd_grp grp = mgr.Get_at(id);
|
||||
ByteTrieMgr_slim rv = ByteTrieMgr_slim.new_(grp.Case_match());
|
||||
int words_len = grp.Itms().length;
|
||||
for (int i = 0; i < words_len; i++) {
|
||||
Xol_kwd_itm itm = grp.Itms()[i];
|
||||
rv.Add(itm.Val(), itm);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
79
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_parse_data.java
Normal file
79
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_parse_data.java
Normal file
@@ -0,0 +1,79 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_kwd_parse_data {
|
||||
public static byte[] Strip(Bry_bfr tmp, byte[] raw, Byte_obj_ref rslt) {
|
||||
int raw_len = raw.length;
|
||||
boolean dirty = false;
|
||||
for (int i = 0; i < raw_len; i++) {
|
||||
byte b = raw[i];
|
||||
switch (b) {
|
||||
case Byte_ascii.Dollar:
|
||||
byte prv = i == 0 ? Byte_ascii.Nil : raw[i - 1];
|
||||
switch (prv) {
|
||||
case Byte_ascii.Backslash: { // ignore \$
|
||||
if (dirty) tmp.Add_byte(b);
|
||||
else {tmp.Add_mid(raw, 0, i - 1); dirty = true;} // i - 1 to ignore backslash
|
||||
break;
|
||||
}
|
||||
case Byte_ascii.Eq: { // assume end; EX: link=$1
|
||||
dirty = true;
|
||||
tmp.Add_mid(raw, 0, i - 1); // - 1 to ignore =
|
||||
rslt.Val_(Strip_end);
|
||||
i = raw_len;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
if (i == 0) {
|
||||
rslt.Val_(Strip_bgn);
|
||||
dirty = true;
|
||||
int txt_bgn = 1;
|
||||
for (int j = 1; j < raw_len; j++) {
|
||||
b = raw[j];
|
||||
switch (b) {
|
||||
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
|
||||
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
|
||||
break;
|
||||
default:
|
||||
txt_bgn = j;
|
||||
j = raw_len;
|
||||
break;
|
||||
}
|
||||
}
|
||||
tmp.Add_mid(raw, txt_bgn, raw_len);
|
||||
}
|
||||
else {
|
||||
dirty = true;
|
||||
tmp.Add_mid(raw, 0, i);
|
||||
rslt.Val_(Strip_end);
|
||||
i = raw_len;
|
||||
}
|
||||
i = raw_len;
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (dirty) tmp.Add_byte(b);
|
||||
break;
|
||||
}
|
||||
}
|
||||
return dirty ? tmp.XtoAryAndClear() : raw;
|
||||
}
|
||||
public static final byte Strip_none = 0, Strip_bgn = 1, Strip_end = 2;
|
||||
}
|
||||
38
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_parse_data_tst.java
Normal file
38
400_xowa/src_140_lang/gplx/xowa/Xol_kwd_parse_data_tst.java
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import org.junit.*;
|
||||
public class Xol_kwd_parse_data_tst {
|
||||
@Before public void init() {Clear();}
|
||||
@Test public void Basic() {Key_("upright" ).Tst_strip("upright");}
|
||||
@Test public void Eq_arg() {Key_("upright" ).Tst_strip("upright=$1");}
|
||||
@Test public void Space() {Key_("upright ").Tst_strip("upright $1");}
|
||||
@Test public void Px() {Key_("px").Tst_strip("$1px");}
|
||||
|
||||
private void Clear() {
|
||||
key = null;
|
||||
}
|
||||
Xol_kwd_parse_data_tst Key_(String v) {this.key = v; return this;} private String key;
|
||||
Xol_kwd_parse_data_tst Tst_strip(String v) {
|
||||
Bry_bfr tmp = Bry_bfr.new_();
|
||||
Byte_obj_ref rslt = Byte_obj_ref.zero_();
|
||||
byte[] actl = Xol_kwd_parse_data.Strip(tmp, Bry_.new_ascii_(v), rslt);
|
||||
Tfds.Eq(key, String_.new_ascii_(actl));
|
||||
return this;
|
||||
}
|
||||
}
|
||||
175
400_xowa/src_140_lang/gplx/xowa/Xol_lang.java
Normal file
175
400_xowa/src_140_lang/gplx/xowa/Xol_lang.java
Normal file
@@ -0,0 +1,175 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.xowa.apps.*; import gplx.xowa.langs.*; import gplx.intl.*; import gplx.xowa.xtns.lst.*; import gplx.xowa.wikis.caches.*;
|
||||
import gplx.xowa.langs.cases.*; import gplx.xowa.langs.cnvs.*; import gplx.xowa.langs.grammars.*; import gplx.xowa.langs.plurals.*; import gplx.xowa.langs.vnts.*; import gplx.xowa.langs.numbers.*; import gplx.xowa.langs.durations.*;
|
||||
import gplx.xowa.parsers.lnkis.*;
|
||||
public class Xol_lang implements GfoInvkAble {
|
||||
public Xol_lang(Xoa_app app, byte[] key_bry) {
|
||||
this.app = app; this.key_bry = key_bry; this.key_str = String_.new_utf8_(key_bry);
|
||||
Xol_lang_itm lang_itm = Xol_lang_itm_.Get_by_key(key_bry); if (lang_itm == null) throw Err_.new_fmt_("unknown lang_key: {0}", String_.new_utf8_(key_bry));
|
||||
lang_id = lang_itm.Id();
|
||||
func_regy = new Xol_func_name_regy(this);
|
||||
ns_names = new Xol_ns_grp(this); ns_aliases = new Xol_ns_grp(this);
|
||||
keyword_mgr = new Xol_kwd_mgr(this);
|
||||
message_mgr = new Xol_msg_mgr(this, true);
|
||||
fragment_mgr = new Xol_fragment_mgr(this);
|
||||
specials_mgr = new Xol_specials_mgr(this);
|
||||
if (lang_id == Xol_lang_itm_.Id_en) { // NOTE: if test (and english) load case_mgr; NOTE: placed here b/c tests do not call load; NOTE: using English b/c Universal is large
|
||||
if (Env_.Mode_testing())
|
||||
case_mgr.Add_bulk(Xol_case_itm_.English);
|
||||
}
|
||||
else
|
||||
fallback_bry_ary = Fallback_bry_ary__en;
|
||||
grammar = Xol_grammar_.new_by_lang_id(lang_id);
|
||||
plural = Xol_plural_.new_by_lang_id(lang_id);
|
||||
num_mgr = Xol_num_mgr_.new_by_lang_id(lang_id);
|
||||
duration_mgr = new Xol_duration_mgr(this);
|
||||
lnki_trail_mgr = new Xol_lnki_trail_mgr(this);
|
||||
vnt_mgr = new Xol_vnt_mgr(this);
|
||||
cnv_mgr = new Xol_cnv_mgr(this);
|
||||
}
|
||||
public Xoa_app App() {return app;} private Xoa_app app;
|
||||
public byte[] Key_bry() {return key_bry;} private byte[] key_bry; public String Key_str() {return key_str;} private String key_str;
|
||||
public int Lang_id() {return lang_id;} private int lang_id;
|
||||
public boolean Dir_ltr() {return dir_ltr;}
|
||||
public void Dir_ltr_(boolean v) {
|
||||
dir_ltr = v;
|
||||
img_thumb_halign_default = dir_ltr ? Xop_lnki_align_h.Right : Xop_lnki_align_h.Left;
|
||||
} private boolean dir_ltr = true;
|
||||
public byte[] Dir_bry() {return dir_ltr ? Dir_bry_ltr : Dir_bry_rtl;}
|
||||
public byte[] X_axis_end() {return dir_ltr ? X_axis_end_right : X_axis_end_left;}
|
||||
public Xol_ns_grp Ns_names() {return ns_names;} private Xol_ns_grp ns_names;
|
||||
public Xol_ns_grp Ns_aliases() {return ns_aliases;} private Xol_ns_grp ns_aliases;
|
||||
public Xol_kwd_mgr Kwd_mgr() {return keyword_mgr;} private Xol_kwd_mgr keyword_mgr;
|
||||
public Xol_msg_mgr Msg_mgr() {return message_mgr;} private Xol_msg_mgr message_mgr;
|
||||
public Xol_case_mgr Case_mgr() {return case_mgr;} private Xol_case_mgr case_mgr = new Xol_case_mgr();
|
||||
public Xol_font_info Gui_font() {return gui_font;} private Xol_font_info gui_font = new Xol_font_info(null, 0, gplx.gfui.FontStyleAdp_.Plain);
|
||||
public byte[] Fallback_bry() {return fallback_bry;}
|
||||
public Xol_lang Fallback_bry_(byte[] v) {
|
||||
fallback_bry = v;
|
||||
fallback_bry_ary = Fallbacy_bry_ary__bld(v);
|
||||
return this;
|
||||
} private byte[] fallback_bry;
|
||||
public byte[][] Fallback_bry_ary() {return fallback_bry_ary;} private byte[][] fallback_bry_ary = Bry_.Ary_empty;
|
||||
public Xol_vnt_mgr Vnt_mgr() {return vnt_mgr;} private Xol_vnt_mgr vnt_mgr;
|
||||
public Xol_cnv_mgr Cnv_mgr() {return cnv_mgr;} private Xol_cnv_mgr cnv_mgr;
|
||||
public Xol_fragment_mgr Fragment_mgr() {return fragment_mgr;} private Xol_fragment_mgr fragment_mgr;
|
||||
public Xol_num_mgr Num_mgr() {return num_mgr;} private Xol_num_mgr num_mgr;
|
||||
public Xol_grammar Grammar() {return grammar;} private Xol_grammar grammar;
|
||||
public Xol_plural Plural() {return plural;} private Xol_plural plural;
|
||||
public Xol_duration_mgr Duration_mgr() {return duration_mgr;} private Xol_duration_mgr duration_mgr;
|
||||
public Xol_lnki_trail_mgr Lnki_trail_mgr() {return lnki_trail_mgr;} private Xol_lnki_trail_mgr lnki_trail_mgr;
|
||||
public Xol_specials_mgr Specials_mgr() {return specials_mgr;} private Xol_specials_mgr specials_mgr;
|
||||
|
||||
public Xop_lnki_arg_parser Lnki_arg_parser() {return lnki_arg_parser;} private Xop_lnki_arg_parser lnki_arg_parser = new Xop_lnki_arg_parser();
|
||||
public Xol_func_name_regy Func_regy() {return func_regy;} private Xol_func_name_regy func_regy;
|
||||
|
||||
// public Xol_num_fmtr_base Num_fmt_mgr() {return num_fmt_mgr;} public Xol_lang Num_fmt_mgr_(Xol_num_fmtr_base v) {num_fmt_mgr = v; return this;} private Xol_num_fmtr_base num_fmt_mgr = new Xol_num_fmtr_base();
|
||||
public byte Img_thumb_halign_default() {return img_thumb_halign_default;} private byte img_thumb_halign_default = Xop_lnki_align_h.Right;
|
||||
|
||||
public Hash_adp_bry Xatrs_ref() {return xatrs_ref;} private Hash_adp_bry xatrs_ref = Hash_adp_bry.ci_();
|
||||
public Hash_adp_bry Xatrs_references() {return xatrs_references;} private Hash_adp_bry xatrs_references = Hash_adp_bry.ci_();
|
||||
public Hash_adp_bry Xatrs_pages() {return xatrs_pages;} private Hash_adp_bry xatrs_pages = Hash_adp_bry.ci_();
|
||||
public Hash_adp_bry Xatrs_section() {if (xatrs_section == null) xatrs_section = Lst_pfunc_lst.new_xatrs_(this); return xatrs_section;} private Hash_adp_bry xatrs_section;
|
||||
public void Evt_lang_changed() {
|
||||
lnki_arg_parser.Evt_lang_changed(this);
|
||||
func_regy.Evt_lang_changed(this);
|
||||
} private boolean loaded = false;
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_ns_names)) return ns_names;
|
||||
else if (ctx.Match(k, Invk_ns_aliases)) return ns_aliases;
|
||||
else if (ctx.Match(k, Invk_keywords)) return keyword_mgr;
|
||||
else if (ctx.Match(k, Invk_messages)) return message_mgr;
|
||||
else if (ctx.Match(k, Invk_specials)) return specials_mgr;
|
||||
else if (ctx.Match(k, Invk_casings)) return case_mgr;
|
||||
else if (ctx.Match(k, Invk_converts)) return cnv_mgr;
|
||||
else if (ctx.Match(k, Invk_variants)) return vnt_mgr;
|
||||
else if (ctx.Match(k, Invk_dir_rtl_)) Dir_ltr_(!m.ReadYn("v"));
|
||||
else if (ctx.Match(k, Invk_dir_str)) return Dir_bry();
|
||||
else if (ctx.Match(k, Invk_gui_font_)) gui_font.Name_(m.ReadStr("name")).Size_(m.ReadFloatOr("size", 8));
|
||||
else if (ctx.Match(k, Invk_fallback_load)) Exec_fallback_load(m.ReadBry("v"));
|
||||
else if (ctx.Match(k, Invk_numbers)) return num_mgr;
|
||||
else if (ctx.Match(k, Invk_link_trail)) return lnki_trail_mgr;
|
||||
else if (ctx.Match(k, Invk_x_axis_end)) return String_.new_utf8_(X_axis_end());
|
||||
else if (ctx.Match(k, Invk_this)) return this;
|
||||
else if (ctx.Match(k, Xoa_app.Invk_app)) return app;
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_ns_names = "ns_names", Invk_ns_aliases = "ns_aliases"
|
||||
, Invk_keywords = "keywords", Invk_messages = "messages", Invk_specials = "specials", Invk_casings = "casings", Invk_converts = "converts", Invk_variants = "variants"
|
||||
, Invk_numbers = "numbers"
|
||||
, Invk_dir_rtl_ = "dir_rtl_", Invk_gui_font_ = "gui_font_"
|
||||
, Invk_fallback_load = "fallback_load", Invk_this = "this", Invk_dir_str = "dir_str", Invk_link_trail = "link_trail"
|
||||
, Invk_x_axis_end = "x_axis_end"
|
||||
;
|
||||
public Xol_lang Init_by_load_assert() {if (!loaded) Init_by_load(); return this;}
|
||||
public boolean Init_by_load() {
|
||||
if (this.loaded) return false;
|
||||
app.Lang_mgr().Fallback_regy().Clear();
|
||||
this.loaded = true;
|
||||
boolean lang_is_en = lang_id == Xol_lang_itm_.Id_en;
|
||||
if (!lang_is_en) Xol_lang_.Lang_init(this);
|
||||
case_mgr.Add_bulk(lang_is_en && Env_.Mode_testing() ? Xol_case_itm_.English : Xol_case_itm_.Universal);
|
||||
message_mgr.Itm_by_key_or_new(Bry_.new_utf8_("Lang")).Atrs_set(key_bry, false, false); // set "Lang" keyword; EX: for "fr", "{{int:Lang}}" -> "fr"
|
||||
Load_lang(key_bry);
|
||||
ns_aliases.Ary_add_(Xow_ns_.Canonical); // NOTE: always add English canonical as aliases to all languages
|
||||
this.Evt_lang_changed();
|
||||
return true;
|
||||
}
|
||||
private void Exec_fallback_load(byte[] fallback_lang) {
|
||||
Fallback_bry_(fallback_lang);
|
||||
if (app.Lang_mgr().Fallback_regy().Has(fallback_lang)) return; // fallback_lang loaded; avoid recursive loop; EX: zh with fallback of zh-hans which has fallback of zh
|
||||
if (Bry_.Eq(fallback_lang, Xoa_lang_mgr.Fallback_false)) return; // fallback_lang is "none" exit
|
||||
app.Lang_mgr().Fallback_regy().Add(fallback_lang, fallback_lang);
|
||||
Load_lang(fallback_lang);
|
||||
app.Lang_mgr().Fallback_regy().Del(fallback_lang);
|
||||
}
|
||||
private void Load_lang(byte[] v) {
|
||||
app.Gfs_mgr().Run_url_for(this, Xol_lang_.xo_lang_fil_(app, String_.new_ascii_(v)));
|
||||
app.Gfs_mgr().Run_url_for(app, Xol_cnv_mgr.Bld_url(app, key_str));
|
||||
}
|
||||
private static final byte[]
|
||||
Dir_bry_ltr = Bry_.new_ascii_("ltr"), Dir_bry_rtl = Bry_.new_ascii_("rtl")
|
||||
, X_axis_end_right = Bry_.new_ascii_("right"), X_axis_end_left = Bry_.new_ascii_("left")
|
||||
;
|
||||
public static final int Tid_lower = 1, Tid_upper = 2;
|
||||
private static byte[][] Fallbacy_bry_ary__bld(byte[] v) {
|
||||
byte[][] rv = Bry_.Split(v, Byte_ascii.Comma, true); // gan -> 'gan-hant, zh-hant, zh-hans'
|
||||
boolean en_needed = true;
|
||||
int rv_len = rv.length;
|
||||
for (int i = 0; i < rv_len; i++) {
|
||||
byte[] itm = rv[i];
|
||||
if (Bry_.Eq(itm, Xol_lang_.Key_en)) {
|
||||
en_needed = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (en_needed) {
|
||||
int new_len = rv_len + 1;
|
||||
byte[][] new_ary = new byte[new_len][];
|
||||
for (int i = 0; i < rv_len; i++)
|
||||
new_ary[i] = rv[i];
|
||||
new_ary[rv_len] = Xol_lang_.Key_en;
|
||||
rv = new_ary;
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
private static final byte[][] Fallback_bry_ary__en = new byte[][] {Xol_lang_.Key_en};
|
||||
}
|
||||
243
400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
Normal file
243
400_xowa/src_140_lang/gplx/xowa/Xol_lang_.java
Normal file
@@ -0,0 +1,243 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.intl.*; import gplx.xowa.xtns.refs.*; import gplx.xowa.xtns.gallery.*; import gplx.xowa.bldrs.langs.*; import gplx.xowa.langs.numbers.*;
|
||||
public class Xol_lang_ {
|
||||
public static Io_url xo_lang_fil_(Xoa_app app, String lang_key) {return app.User().Fsys_mgr().Root_dir().GenSubFil_nest("lang", Xol_mw_lang_parser.Dir_name_xowa, lang_key + ".gfs");}
|
||||
public static final byte Char_tid_ltr_l = 0, Char_tid_ltr_u = 1, Char_tid_num = 2, Char_tid_ws = 3, Char_tid_sym = 4, Char_tid_misc = 5;
|
||||
public static byte Char_tid(byte b) {
|
||||
switch (b) {
|
||||
case Byte_ascii.Ltr_A: case Byte_ascii.Ltr_B: case Byte_ascii.Ltr_C: case Byte_ascii.Ltr_D: case Byte_ascii.Ltr_E:
|
||||
case Byte_ascii.Ltr_F: case Byte_ascii.Ltr_G: case Byte_ascii.Ltr_H: case Byte_ascii.Ltr_I: case Byte_ascii.Ltr_J:
|
||||
case Byte_ascii.Ltr_K: case Byte_ascii.Ltr_L: case Byte_ascii.Ltr_M: case Byte_ascii.Ltr_N: case Byte_ascii.Ltr_O:
|
||||
case Byte_ascii.Ltr_P: case Byte_ascii.Ltr_Q: case Byte_ascii.Ltr_R: case Byte_ascii.Ltr_S: case Byte_ascii.Ltr_T:
|
||||
case Byte_ascii.Ltr_U: case Byte_ascii.Ltr_V: case Byte_ascii.Ltr_W: case Byte_ascii.Ltr_X: case Byte_ascii.Ltr_Y: case Byte_ascii.Ltr_Z:
|
||||
return Char_tid_ltr_u;
|
||||
case Byte_ascii.Ltr_a: case Byte_ascii.Ltr_b: case Byte_ascii.Ltr_c: case Byte_ascii.Ltr_d: case Byte_ascii.Ltr_e:
|
||||
case Byte_ascii.Ltr_f: case Byte_ascii.Ltr_g: case Byte_ascii.Ltr_h: case Byte_ascii.Ltr_i: case Byte_ascii.Ltr_j:
|
||||
case Byte_ascii.Ltr_k: case Byte_ascii.Ltr_l: case Byte_ascii.Ltr_m: case Byte_ascii.Ltr_n: case Byte_ascii.Ltr_o:
|
||||
case Byte_ascii.Ltr_p: case Byte_ascii.Ltr_q: case Byte_ascii.Ltr_r: case Byte_ascii.Ltr_s: case Byte_ascii.Ltr_t:
|
||||
case Byte_ascii.Ltr_u: case Byte_ascii.Ltr_v: case Byte_ascii.Ltr_w: case Byte_ascii.Ltr_x: case Byte_ascii.Ltr_y: case Byte_ascii.Ltr_z:
|
||||
return Char_tid_ltr_l;
|
||||
case Byte_ascii.Num_0: case Byte_ascii.Num_1: case Byte_ascii.Num_2: case Byte_ascii.Num_3: case Byte_ascii.Num_4:
|
||||
case Byte_ascii.Num_5: case Byte_ascii.Num_6: case Byte_ascii.Num_7: case Byte_ascii.Num_8: case Byte_ascii.Num_9:
|
||||
return Char_tid_num;
|
||||
case Byte_ascii.Space: case Byte_ascii.NewLine: case Byte_ascii.Tab: case Byte_ascii.CarriageReturn:
|
||||
return Char_tid_ws;
|
||||
default:
|
||||
return Char_tid_misc;
|
||||
}
|
||||
}
|
||||
public static final byte[] Key_en = Bry_.new_ascii_("en");
|
||||
public static void Lang_init(Xol_lang lang) {
|
||||
lang.Num_mgr().Separators_mgr().Set(Xol_num_mgr.Separators_key__grp, Xol_num_mgr.Separators_key__grp);
|
||||
lang.Num_mgr().Separators_mgr().Set(Xol_num_mgr.Separators_key__dec, Xol_num_mgr.Separators_key__dec);
|
||||
lang.Lnki_trail_mgr().Add_range(Byte_ascii.Ltr_a, Byte_ascii.Ltr_z);// REF.MW:MessagesEn.php|$linkTrail = '/^([a-z]+)(.*)$/sD';
|
||||
lang.Xatrs_ref().Add_str_obj("name", Byte_obj_val.new_(Ref_nde.Xatr_id_name));
|
||||
lang.Xatrs_ref().Add_str_obj("group", Byte_obj_val.new_(Ref_nde.Xatr_id_group));
|
||||
lang.Xatrs_ref().Add_str_obj("follow", Byte_obj_val.new_(Ref_nde.Xatr_id_follow));
|
||||
lang.Xatrs_references().Add_str_obj("group", Byte_obj_val.new_(References_nde.Xatr_id_group));
|
||||
Xol_kwd_mgr kwd_mgr = lang.Kwd_mgr();
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_year , "CURRENTYEAR");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_month_int_len2 , "CURRENTMONTH", "CURRENTMONTH2");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_month_int , "CURRENTMONTH1");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_month_abrv , "CURRENTMONTHABBREV");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_month_name , "CURRENTMONTHNAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_month_gen , "CURRENTMONTHNAMEGEN");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_day_int_len2 , "CURRENTDAY2");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_day_int , "CURRENTDAY");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_day_name , "CURRENTDAYNAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_hour , "CURRENTHOUR");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_time , "CURRENTTIME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_timestamp , "CURRENTTIMESTAMP");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_week , "CURRENTWEEK");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_utc_dow , "CURRENTDOW");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_year , "LOCALYEAR");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_month_int_len2 , "LOCALMONTH", "LOCALMONTH2");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_month_int , "LOCALMONTH1");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_month_abrv , "LOCALMONTHABBREV");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_month_name , "LOCALMONTHNAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_month_gen , "LOCALMONTHNAMEGEN");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_day_int_len2 , "LOCALDAY2");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_day_int , "LOCALDAY");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_day_name , "LOCALDAYNAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_hour , "LOCALHOUR");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_time , "LOCALTIME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_timestamp , "LOCALTIMESTAMP");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_week , "LOCALWEEK");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_lcl_dow , "LOCALDOW");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ns_txt , "NAME"+"SPACE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ns_url , "NAME"+"SPACEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ns_subj_txt , "SUBJECTSPACE", "ARTICLESPACE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ns_subj_url , "SUBJECTSPACEE", "ARTICLESPACEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ns_talk_txt , "TALKSPACE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ns_talk_url , "TALKSPACEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_full_txt , "FULLPAGENAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_full_url , "FULLPAGENAMEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_page_txt , "PAGENAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_page_url , "PAGENAMEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_base_txt , "BASEPAGENAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_base_url , "BASEPAGENAMEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_leaf_txt , "SUBPAGENAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_leaf_url , "SUBPAGENAMEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_subj_txt , "SUBJECTPAGENAME", "ARTICLEPAGENAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_subj_url , "SUBJECTPAGENAMEE", "ARTICLEPAGENAMEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_talk_txt , "TALKPAGENAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ttl_talk_url , "TALKPAGENAMEE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_sitename , "SITENAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_servername , "SERVERNAME");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_server , "SERVER");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_articlepath , "ARTICLEPATH");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_scriptpath , "SCRIPTPATH");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_stylepath , "STYLEPATH");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_contentlanguage , "CONTENTLANGUAGE", "CONTENTLANG");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_directionmark , "DIRECTIONMARK", "DIRMARK");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_currentversion , "CURRENTVERSION");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_year , "REVISIONYEAR");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_month_int_len2 , "REVISIONMONTH");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_month_int , "REVISIONMONTH1");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_day_int_len2 , "REVISIONDAY2");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_day_int , "REVISIONDAY");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_timestamp , "REVISIONTIMESTAMP");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_id , "REVISIONID");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_user , "REVISIONUSER");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_pagesize , "PAGESIZE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_rev_protectionlevel , "PROTECTIONLEVEL");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_page_displaytitle , "DISPLAYTITLE");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_page_defaultsort , "DEFAULTSORT", "DEFAULTSORTKEY", "DEFAULTCATEGORYSORT");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_pages , "NUMBEROFPAGES");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_articles , "NUMBEROFARTICLES");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_files , "NUMBEROFFILES");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_edits , "NUMBEROFEDITS");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_views , "NUMBEROFVIEWS");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_users , "NUMBEROFUSERS");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_users_active , "NUMBEROFACTIVEUSERS");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_num_admins , "NUMBEROFADMINS");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_pagesincategory , "PAGESINCATEGORY", "PAGESINCAT");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_numberingroup , "NUMBERINGROUP", "NUMINGROUP");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_site_pagesinnamespace , "PAGESINNAMESPACE", "PAGESINNS");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_localurl , "localurl");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_localurle , "localurle");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_fullurl , "fullurl");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_fullurle , "fullurle");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_filepath , "filepath");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_urlencode , "urlencode");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_anchorencode , "anchorencode");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_ns , "ns");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_nse , "nse");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_lc , "lc");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_lcfirst , "lcfirst");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_uc , "uc");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_ucfirst , "ucfirst");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_padleft , "padleft");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_padright , "padright");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_formatnum , "formatnum");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_str_rawsuffix , "R");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_str_formatdate , "#formatdate", "#dateformat");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_i18n_plural , "plural");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_i18n_grammar , "grammar");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_i18n_gender , "gender");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_i18n_int , "int");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_i18n_language , "#language");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_misc_special , "special");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_misc_tag , "#tag");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_expr , "#expr");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_if , "#if");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_ifeq , "#ifeq");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_iferror , "#iferror");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_ifexpr , "#ifexpr");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_ifexist , "#ifexist");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_rel2abs , "#rel2abs");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_switch , "#switch");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_default , "#default");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_time , "#time");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_timel , "#timel");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_titleparts , "#titleparts");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_thumbnail , "thumbnail", "thumb");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_manualthumb , "thumbnail", "thumb");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_right , "right");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_left , "left");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_none , "none");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_width , "px");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_center , "center", "centre");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_framed , "framed", "enframed", "frame");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_frameless , "frameless");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_page , "page");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_upright , "upright");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_border , "border");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_baseline , "baseline");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_sub , "sub");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_super , "super", "sup");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_top , "top");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_text_top , "text-top");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_middle , "middle");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_bottom , "bottom");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_text_bottom , "text-bottom");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_link , "link");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_img_alt , "alt");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ogg_noplayer , "noplayer");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ogg_noicon , "noicon");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_ogg_thumbtime , "thumbtime");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_toc , "__TOC__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_notoc , "__NOTOC__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_forcetoc , "__FORCETOC__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_noeditsection , "__NOEDITSECTION__");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_newsectionlink , "__NEWSECTIONLINK__");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_nonewsectionlink , "__NONEWSECTIONLINK__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_nogallery , "__NOGALLERY__");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_hiddencat , "__HIDDENCAT__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_nocontentconvert , "__NOCONTENTCONVERT__", "__NOCC__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_notitleconvert , "__NOTITLECONVERT__", "__NOTC__");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_index , "__INDEX__");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_noindex , "__NOINDEX__");
|
||||
kwd_mgr.New(Bool_.Y, Xol_kwd_grp_.Id_staticredirect , "__STATICREDIRECT__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_subst , "subst:");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_safesubst , "safesubst:");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_msg , "msg");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_msgnw , "msgnw");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_raw , "raw");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_redirect , "#REDIRECT");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_noheader , "__NOHEADER__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_path , "path");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_wiki , "wiki");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_query , "query");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xowa_dbg , "#xowa_dbg");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xtn_geodata_coordinates , "#coordinates");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_canonicalurl , "canonicalurl");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_url_canonicalurle , "canonicalurle");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_lst , "#lst", "#section");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_lstx , "#lstx", "#section-x");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_invoke , "#invoke");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_property , "#property");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_noexternallanglinks , "noexternallanglinks");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_ns_num , "namespacenumber");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_page_id , "pageid");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_disambig , "__DISAMBIG__");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_nocommafysuffix , "NOSEP");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_xowa , "#xowa");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_mapSources_deg2dd , "#deg2dd");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_mapSources_dd2dms , "#dd2dms");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_mapSources_geoLink , "#geolink");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_geoCrumbs_isin , "#isin");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_relatedArticles , "#related");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_relatedSites , "#relatedSites");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_massMessage_target , "#target");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_cascadingSources , "CASCADINGSOURCES");
|
||||
kwd_mgr.New(Bool_.N, Xol_kwd_grp_.Id_pendingChangesLevel , "PENDINGCHANGESLEVEL");
|
||||
}
|
||||
}
|
||||
32
400_xowa/src_140_lang/gplx/xowa/Xol_lang_itm.java
Normal file
32
400_xowa/src_140_lang/gplx/xowa/Xol_lang_itm.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_lang_itm {
|
||||
public Xol_lang_itm(int id, byte[] key, byte[] canonical_name) {this.id = id; this.key = key; this.canonical_name = canonical_name; this.local_name = canonical_name;}
|
||||
public int Id() {return id;} private int id;
|
||||
public byte[] Key() {return key;} private byte[] key;
|
||||
public byte[] Canonical_name() {return canonical_name;} private byte[] canonical_name;
|
||||
public byte[] Local_name() {return local_name;} private byte[] local_name;
|
||||
public byte[] Local_grp() {return local_grp;} private byte[] local_grp = Bry_.Empty;
|
||||
public Xol_lang_itm Local_atrs_load(byte[] local_name, byte[] local_grp) {
|
||||
if (Bry_.Len_gt_0(local_name)) this.local_name = local_name;
|
||||
if (Bry_.Len_gt_0(local_grp)) this.local_grp = local_grp;
|
||||
return this;
|
||||
}
|
||||
public Xol_lang_itm Local_atrs_reset() {local_name = canonical_name; local_grp = Bry_.Empty; return this;}
|
||||
}
|
||||
878
400_xowa/src_140_lang/gplx/xowa/Xol_lang_itm_.java
Normal file
878
400_xowa/src_140_lang/gplx/xowa/Xol_lang_itm_.java
Normal file
@@ -0,0 +1,878 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.lists.*;
|
||||
public class Xol_lang_itm_ {
|
||||
public static final byte[] Key__unknown = Bry_.Empty;
|
||||
public static final ComparerAble Comparer_code = new Comparer_lang_code();
|
||||
public static final int
|
||||
Id__intl = -2
|
||||
, Id__unknown = -1
|
||||
, Id_en = 0
|
||||
, Id_aa = 1
|
||||
, Id_ab = 2
|
||||
, Id_ace = 3
|
||||
, Id_aeb = 4
|
||||
, Id_af = 5
|
||||
, Id_ak = 6
|
||||
, Id_akz = 7
|
||||
, Id_aln = 8
|
||||
, Id_als = 9
|
||||
, Id_am = 10
|
||||
, Id_an = 11
|
||||
, Id_ang = 12
|
||||
, Id_anp = 13
|
||||
, Id_ar = 14
|
||||
, Id_arc = 15
|
||||
, Id_arn = 16
|
||||
, Id_ary = 17
|
||||
, Id_arz = 18
|
||||
, Id_as = 19
|
||||
, Id_ast = 20
|
||||
, Id_av = 21
|
||||
, Id_avk = 22
|
||||
, Id_ay = 23
|
||||
, Id_az = 24
|
||||
, Id_azb = 25
|
||||
, Id_ba = 26
|
||||
, Id_ban = 27
|
||||
, Id_bar = 28
|
||||
, Id_bat_smg = 29
|
||||
, Id_bbc = 30
|
||||
, Id_bbc_latn = 31
|
||||
, Id_bcc = 32
|
||||
, Id_bcl = 33
|
||||
, Id_be = 34
|
||||
, Id_be_tarask = 35
|
||||
, Id_be_x_old = 36
|
||||
, Id_bg = 37
|
||||
, Id_bh = 38
|
||||
, Id_bho = 39
|
||||
, Id_bi = 40
|
||||
, Id_bjn = 41
|
||||
, Id_bm = 42
|
||||
, Id_bn = 43
|
||||
, Id_bo = 44
|
||||
, Id_bpy = 45
|
||||
, Id_bqi = 46
|
||||
, Id_br = 47
|
||||
, Id_brh = 48
|
||||
, Id_bs = 49
|
||||
, Id_bug = 50
|
||||
, Id_bxr = 51
|
||||
, Id_ca = 52
|
||||
, Id_cbk_zam = 53
|
||||
, Id_cdo = 54
|
||||
, Id_ce = 55
|
||||
, Id_ceb = 56
|
||||
, Id_ch = 57
|
||||
, Id_cho = 58
|
||||
, Id_chr = 59
|
||||
, Id_chy = 60
|
||||
, Id_ckb = 61
|
||||
, Id_co = 62
|
||||
, Id_cps = 63
|
||||
, Id_cr = 64
|
||||
, Id_crh = 65
|
||||
, Id_crh_cyrl = 66
|
||||
, Id_crh_latn = 67
|
||||
, Id_cs = 68
|
||||
, Id_csb = 69
|
||||
, Id_cu = 70
|
||||
, Id_cv = 71
|
||||
, Id_cy = 72
|
||||
, Id_da = 73
|
||||
, Id_de = 74
|
||||
, Id_de_at = 75
|
||||
, Id_de_ch = 76
|
||||
, Id_de_formal = 77
|
||||
, Id_diq = 78
|
||||
, Id_dsb = 79
|
||||
, Id_dtp = 80
|
||||
, Id_dv = 81
|
||||
, Id_dz = 82
|
||||
, Id_ee = 83
|
||||
, Id_egl = 84
|
||||
, Id_el = 85
|
||||
, Id_eml = 86
|
||||
, Id_en_ca = 87
|
||||
, Id_en_rtl = 88
|
||||
, Id_en_gb = 89
|
||||
, Id_enrtl = 90
|
||||
, Id_eo = 91
|
||||
, Id_es = 92
|
||||
, Id_et = 93
|
||||
, Id_eu = 94
|
||||
, Id_ext = 95
|
||||
, Id_fa = 96
|
||||
, Id_ff = 97
|
||||
, Id_fi = 98
|
||||
, Id_fit = 99
|
||||
, Id_fiu_vro = 100
|
||||
, Id_fj = 101
|
||||
, Id_fo = 102
|
||||
, Id_fr = 103
|
||||
, Id_frc = 104
|
||||
, Id_frp = 105
|
||||
, Id_frr = 106
|
||||
, Id_fur = 107
|
||||
, Id_fy = 108
|
||||
, Id_ga = 109
|
||||
, Id_gag = 110
|
||||
, Id_gan = 111
|
||||
, Id_gan_hans = 112
|
||||
, Id_gan_hant = 113
|
||||
, Id_gd = 114
|
||||
, Id_gl = 115
|
||||
, Id_glk = 116
|
||||
, Id_gn = 117
|
||||
, Id_gom = 118
|
||||
, Id_gom_latn = 119
|
||||
, Id_got = 120
|
||||
, Id_grc = 121
|
||||
, Id_gsw = 122
|
||||
, Id_gu = 123
|
||||
, Id_gv = 124
|
||||
, Id_ha = 125
|
||||
, Id_hak = 126
|
||||
, Id_haw = 127
|
||||
, Id_he = 128
|
||||
, Id_hi = 129
|
||||
, Id_hif = 130
|
||||
, Id_hif_latn = 131
|
||||
, Id_hil = 132
|
||||
, Id_ho = 133
|
||||
, Id_hr = 134
|
||||
, Id_hsb = 135
|
||||
, Id_ht = 136
|
||||
, Id_hu = 137
|
||||
, Id_hu_formal = 138
|
||||
, Id_hy = 139
|
||||
, Id_hz = 140
|
||||
, Id_ia = 141
|
||||
, Id_id = 142
|
||||
, Id_ie = 143
|
||||
, Id_ig = 144
|
||||
, Id_ii = 145
|
||||
, Id_ik = 146
|
||||
, Id_ike_cans = 147
|
||||
, Id_ike_latn = 148
|
||||
, Id_ilo = 149
|
||||
, Id_inh = 150
|
||||
, Id_io = 151
|
||||
, Id_is = 152
|
||||
, Id_it = 153
|
||||
, Id_iu = 154
|
||||
, Id_ja = 155
|
||||
, Id_jam = 156
|
||||
, Id_jbo = 157
|
||||
, Id_jut = 158
|
||||
, Id_jv = 159
|
||||
, Id_ka = 160
|
||||
, Id_kaa = 161
|
||||
, Id_kab = 162
|
||||
, Id_kbd = 163
|
||||
, Id_kbd_cyrl = 164
|
||||
, Id_kg = 165
|
||||
, Id_khw = 166
|
||||
, Id_ki = 167
|
||||
, Id_kiu = 168
|
||||
, Id_kj = 169
|
||||
, Id_kk = 170
|
||||
, Id_kk_arab = 171
|
||||
, Id_kk_cn = 172
|
||||
, Id_kk_cyrl = 173
|
||||
, Id_kk_kz = 174
|
||||
, Id_kk_latn = 175
|
||||
, Id_kk_tr = 176
|
||||
, Id_kl = 177
|
||||
, Id_km = 178
|
||||
, Id_kn = 179
|
||||
, Id_ko = 180
|
||||
, Id_ko_kp = 181
|
||||
, Id_koi = 182
|
||||
, Id_kr = 183
|
||||
, Id_krc = 184
|
||||
, Id_kri = 185
|
||||
, Id_krj = 186
|
||||
, Id_ks = 187
|
||||
, Id_ks_arab = 188
|
||||
, Id_ks_deva = 189
|
||||
, Id_ksh = 190
|
||||
, Id_ku = 191
|
||||
, Id_ku_arab = 192
|
||||
, Id_ku_latn = 193
|
||||
, Id_kv = 194
|
||||
, Id_kw = 195
|
||||
, Id_ky = 196
|
||||
, Id_la = 197
|
||||
, Id_lad = 198
|
||||
, Id_lb = 199
|
||||
, Id_lbe = 200
|
||||
, Id_lez = 201
|
||||
, Id_lfn = 202
|
||||
, Id_lg = 203
|
||||
, Id_li = 204
|
||||
, Id_lij = 205
|
||||
, Id_liv = 206
|
||||
, Id_lmo = 207
|
||||
, Id_ln = 208
|
||||
, Id_lo = 209
|
||||
, Id_loz = 210
|
||||
, Id_lrc = 211
|
||||
, Id_lt = 212
|
||||
, Id_ltg = 213
|
||||
, Id_lus = 214
|
||||
, Id_lv = 215
|
||||
, Id_lzh = 216
|
||||
, Id_lzz = 217
|
||||
, Id_mai = 218
|
||||
, Id_map_bms = 219
|
||||
, Id_mdf = 220
|
||||
, Id_mg = 221
|
||||
, Id_mh = 222
|
||||
, Id_mhr = 223
|
||||
, Id_mi = 224
|
||||
, Id_min = 225
|
||||
, Id_mk = 226
|
||||
, Id_ml = 227
|
||||
, Id_mn = 228
|
||||
, Id_mo = 229
|
||||
, Id_mr = 230
|
||||
, Id_mrj = 231
|
||||
, Id_ms = 232
|
||||
, Id_mt = 233
|
||||
, Id_mus = 234
|
||||
, Id_mwl = 235
|
||||
, Id_mwv = 236
|
||||
, Id_my = 237
|
||||
, Id_myv = 238
|
||||
, Id_mzn = 239
|
||||
, Id_na = 240
|
||||
, Id_nah = 241
|
||||
, Id_nan = 242
|
||||
, Id_nap = 243
|
||||
, Id_nb = 244
|
||||
, Id_nds = 245
|
||||
, Id_nds_nl = 246
|
||||
, Id_ne = 247
|
||||
, Id_new = 248
|
||||
, Id_ng = 249
|
||||
, Id_niu = 250
|
||||
, Id_nl = 251
|
||||
, Id_nl_informal = 252
|
||||
, Id_nn = 253
|
||||
, Id_no = 254
|
||||
, Id_nov = 255
|
||||
, Id_nrm = 256
|
||||
, Id_nso = 257
|
||||
, Id_nv = 258
|
||||
, Id_ny = 259
|
||||
, Id_oc = 260
|
||||
, Id_om = 261
|
||||
, Id_or = 262
|
||||
, Id_os = 263
|
||||
, Id_pa = 264
|
||||
, Id_pag = 265
|
||||
, Id_pam = 266
|
||||
, Id_pap = 267
|
||||
, Id_pcd = 268
|
||||
, Id_pdc = 269
|
||||
, Id_pdt = 270
|
||||
, Id_pfl = 271
|
||||
, Id_pi = 272
|
||||
, Id_pih = 273
|
||||
, Id_pl = 274
|
||||
, Id_pms = 275
|
||||
, Id_pnb = 276
|
||||
, Id_pnt = 277
|
||||
, Id_prg = 278
|
||||
, Id_ps = 279
|
||||
, Id_pt = 280
|
||||
, Id_pt_br = 281
|
||||
, Id_qqq = 282
|
||||
, Id_qu = 283
|
||||
, Id_qug = 284
|
||||
, Id_rgn = 285
|
||||
, Id_rif = 286
|
||||
, Id_rm = 287
|
||||
, Id_rmy = 288
|
||||
, Id_rn = 289
|
||||
, Id_ro = 290
|
||||
, Id_roa_rup = 291
|
||||
, Id_roa_tara = 292
|
||||
, Id_ru = 293
|
||||
, Id_rue = 294
|
||||
, Id_rup = 295
|
||||
, Id_ruq = 296
|
||||
, Id_ruq_cyrl = 297
|
||||
, Id_ruq_latn = 298
|
||||
, Id_rw = 299
|
||||
, Id_sa = 300
|
||||
, Id_sah = 301
|
||||
, Id_sat = 302
|
||||
, Id_sc = 303
|
||||
, Id_scn = 304
|
||||
, Id_sco = 305
|
||||
, Id_sd = 306
|
||||
, Id_sdc = 307
|
||||
, Id_se = 308
|
||||
, Id_sei = 309
|
||||
, Id_sg = 310
|
||||
, Id_sgs = 311
|
||||
, Id_sh = 312
|
||||
, Id_shi = 313
|
||||
, Id_si = 314
|
||||
, Id_simple = 315
|
||||
, Id_sk = 316
|
||||
, Id_sl = 317
|
||||
, Id_sli = 318
|
||||
, Id_sm = 319
|
||||
, Id_sma = 320
|
||||
, Id_sn = 321
|
||||
, Id_so = 322
|
||||
, Id_sq = 323
|
||||
, Id_sr = 324
|
||||
, Id_sr_ec = 325
|
||||
, Id_sr_el = 326
|
||||
, Id_srn = 327
|
||||
, Id_ss = 328
|
||||
, Id_st = 329
|
||||
, Id_stq = 330
|
||||
, Id_su = 331
|
||||
, Id_sv = 332
|
||||
, Id_sw = 333
|
||||
, Id_sxu = 334
|
||||
, Id_szl = 335
|
||||
, Id_ta = 336
|
||||
, Id_tcy = 337
|
||||
, Id_te = 338
|
||||
, Id_test = 339
|
||||
, Id_tet = 340
|
||||
, Id_tg = 341
|
||||
, Id_tg_cyrl = 342
|
||||
, Id_tg_latn = 343
|
||||
, Id_th = 344
|
||||
, Id_ti = 345
|
||||
, Id_tk = 346
|
||||
, Id_tl = 347
|
||||
, Id_tly = 348
|
||||
, Id_tn = 349
|
||||
, Id_to = 350
|
||||
, Id_tokipona = 351
|
||||
, Id_tp = 352
|
||||
, Id_tpi = 353
|
||||
, Id_tr = 354
|
||||
, Id_tru = 355
|
||||
, Id_ts = 356
|
||||
, Id_tt = 357
|
||||
, Id_tt_cyrl = 358
|
||||
, Id_tt_latn = 359
|
||||
, Id_ttt = 360
|
||||
, Id_tum = 361
|
||||
, Id_tw = 362
|
||||
, Id_ty = 363
|
||||
, Id_tyv = 364
|
||||
, Id_tzm = 365
|
||||
, Id_udm = 366
|
||||
, Id_ug = 367
|
||||
, Id_ug_arab = 368
|
||||
, Id_ug_latn = 369
|
||||
, Id_uk = 370
|
||||
, Id_ur = 371
|
||||
, Id_uz = 372
|
||||
, Id_ve = 373
|
||||
, Id_vec = 374
|
||||
, Id_vep = 375
|
||||
, Id_vi = 376
|
||||
, Id_vls = 377
|
||||
, Id_vmf = 378
|
||||
, Id_vo = 379
|
||||
, Id_vot = 380
|
||||
, Id_vro = 381
|
||||
, Id_wa = 382
|
||||
, Id_war = 383
|
||||
, Id_wo = 384
|
||||
, Id_wuu = 385
|
||||
, Id_xal = 386
|
||||
, Id_xh = 387
|
||||
, Id_xmf = 388
|
||||
, Id_yi = 389
|
||||
, Id_yo = 390
|
||||
, Id_yue = 391
|
||||
, Id_za = 392
|
||||
, Id_zea = 393
|
||||
, Id_zh = 394
|
||||
, Id_zh_classical = 395
|
||||
, Id_zh_cn = 396
|
||||
, Id_zh_hans = 397
|
||||
, Id_zh_hant = 398
|
||||
, Id_zh_hk = 399
|
||||
, Id_zh_min_nan = 400
|
||||
, Id_zh_mo = 401
|
||||
, Id_zh_my = 402
|
||||
, Id_zh_sg = 403
|
||||
, Id_zh_tw = 404
|
||||
, Id_zh_yue = 405
|
||||
, Id_zu = 406
|
||||
;
|
||||
public static final int Id__max = 407;
|
||||
public static Hash_adp_bry Regy() {
|
||||
if (regy == null) {
|
||||
// NOTE: any parenthetical String below will have an "unseen" character of "\xE2\x80\xAA" at the begining and "\xE2\x80\xAC" at the end. They are responsible for parentheses-orientation in RTL langs.
|
||||
regy = Hash_adp_bry.ci_(); // NOTE: must be ci; EX: {{#languages:FR}}
|
||||
Regy_add(regy, Id_aa, "aa", "Qafár af");
|
||||
Regy_add(regy, Id_ab, "ab", "Аҧсуа");
|
||||
Regy_add(regy, Id_ace, "ace", "Acèh");
|
||||
Regy_add(regy, Id_aeb, "aeb", "زَوُن");
|
||||
Regy_add(regy, Id_af, "af", "Afrikaans");
|
||||
Regy_add(regy, Id_ak, "ak", "Akan");
|
||||
Regy_add(regy, Id_akz, "akz", "Alibamu");
|
||||
Regy_add(regy, Id_aln, "aln", "Gegë");
|
||||
Regy_add(regy, Id_als, "als", "Alemannisch");
|
||||
Regy_add(regy, Id_am, "am", "አማርኛ");
|
||||
Regy_add(regy, Id_an, "an", "Aragonés");
|
||||
Regy_add(regy, Id_ang, "ang", "Ænglisc");
|
||||
Regy_add(regy, Id_anp, "anp", "अङ्गिका");
|
||||
Regy_add(regy, Id_ar, "ar", "العربية");
|
||||
Regy_add(regy, Id_arc, "arc", "ܐܪܡܝܐ");
|
||||
Regy_add(regy, Id_arn, "arn", "Mapudungun");
|
||||
Regy_add(regy, Id_ary, "ary", "Maġribi");
|
||||
Regy_add(regy, Id_arz, "arz", "مصرى");
|
||||
Regy_add(regy, Id_as, "as", "অসমীয়া");
|
||||
Regy_add(regy, Id_ast, "ast", "Asturianu");
|
||||
Regy_add(regy, Id_av, "av", "Авар");
|
||||
Regy_add(regy, Id_avk, "avk", "Kotava");
|
||||
Regy_add(regy, Id_ay, "ay", "Aymar aru");
|
||||
Regy_add(regy, Id_az, "az", "Azərbaycanca");
|
||||
Regy_add(regy, Id_azb, "azb", "South Azerbaijani");
|
||||
Regy_add(regy, Id_ba, "ba", "Башҡортса");
|
||||
Regy_add(regy, Id_ban, "ban", "ᬩᬲᬩᬮᬶ");
|
||||
Regy_add(regy, Id_bar, "bar", "Boarisch");
|
||||
Regy_add(regy, Id_bat_smg, "bat-smg", "Žemaitėška");
|
||||
Regy_add(regy, Id_bbc, "bbc", "Batak Toba");
|
||||
Regy_add(regy, Id_bbc_latn, "bbc-latn", "Batak Toba (Latin)");
|
||||
Regy_add(regy, Id_bcc, "bcc", "بلوچی مکرانی");
|
||||
Regy_add(regy, Id_bcl, "bcl", "Bikol Central");
|
||||
Regy_add(regy, Id_be, "be", "Беларуская");
|
||||
Regy_add(regy, Id_be_tarask, "be-tarask", "Беларуская (тарашкевіца)");
|
||||
Regy_add(regy, Id_be_x_old, "be-x-old", "Беларуская (тарашкевіца)");
|
||||
Regy_add(regy, Id_bg, "bg", "Български");
|
||||
Regy_add(regy, Id_bh, "bh", "भोजपुरी");
|
||||
Regy_add(regy, Id_bho, "bho", "भोजपुरी");
|
||||
Regy_add(regy, Id_bi, "bi", "Bislama");
|
||||
Regy_add(regy, Id_bjn, "bjn", "Bahasa Banjar");
|
||||
Regy_add(regy, Id_bm, "bm", "Bamanankan");
|
||||
Regy_add(regy, Id_bn, "bn", "বাংলা");
|
||||
Regy_add(regy, Id_bo, "bo", "བོད་ཡིག");
|
||||
Regy_add(regy, Id_bpy, "bpy", "ইমার ঠার/বিষ্ণুপ্রিয়া মণিপুরী");
|
||||
Regy_add(regy, Id_bqi, "bqi", "بختياري");
|
||||
Regy_add(regy, Id_br, "br", "Brezhoneg");
|
||||
Regy_add(regy, Id_brh, "brh", "Bráhuí");
|
||||
Regy_add(regy, Id_bs, "bs", "Bosanski");
|
||||
Regy_add(regy, Id_bug, "bug", "ᨅᨔ ᨕᨘᨁᨗ");
|
||||
Regy_add(regy, Id_bxr, "bxr", "Буряад");
|
||||
Regy_add(regy, Id_ca, "ca", "Català");
|
||||
Regy_add(regy, Id_cbk_zam, "cbk-zam", "Chavacano de Zamboanga");
|
||||
Regy_add(regy, Id_cdo, "cdo", "Mìng-dĕ̤ng-ngṳ̄");
|
||||
Regy_add(regy, Id_ce, "ce", "Нохчийн");
|
||||
Regy_add(regy, Id_ceb, "ceb", "Cebuano");
|
||||
Regy_add(regy, Id_ch, "ch", "Chamoru");
|
||||
Regy_add(regy, Id_cho, "cho", "Choctaw");
|
||||
Regy_add(regy, Id_chr, "chr", "ᏣᎳᎩ");
|
||||
Regy_add(regy, Id_chy, "chy", "Tsetsêhestâhese");
|
||||
Regy_add(regy, Id_ckb, "ckb", "کوردی");
|
||||
Regy_add(regy, Id_co, "co", "Corsu");
|
||||
Regy_add(regy, Id_cps, "cps", "Capiceño");
|
||||
Regy_add(regy, Id_cr, "cr", "Nēhiyawēwin / ᓀᐦᐃᔭᐍᐏᐣ");
|
||||
Regy_add(regy, Id_crh, "crh", "Qırımtatarca");
|
||||
Regy_add(regy, Id_crh_cyrl, "crh-cyrl", "Къырымтатарджа (Кирилл)");
|
||||
Regy_add(regy, Id_crh_latn, "crh-latn", "Qırımtatarca (Latin)");
|
||||
Regy_add(regy, Id_cs, "cs", "Česky");
|
||||
Regy_add(regy, Id_csb, "csb", "Kaszëbsczi");
|
||||
Regy_add(regy, Id_cu, "cu", "Словѣ́ньскъ / ⰔⰎⰑⰂⰡⰐⰠⰔⰍⰟ");
|
||||
Regy_add(regy, Id_cv, "cv", "Чӑвашла");
|
||||
Regy_add(regy, Id_cy, "cy", "Cymraeg");
|
||||
Regy_add(regy, Id_da, "da", "Dansk");
|
||||
Regy_add(regy, Id_de, "de", "Deutsch");
|
||||
Regy_add(regy, Id_de_at, "de-at", "Österreichisches Deutsch");
|
||||
Regy_add(regy, Id_de_ch, "de-ch", "Schweizer Hochdeutsch");
|
||||
Regy_add(regy, Id_de_formal, "de-formal", "Deutsch (Sie-Form)");
|
||||
Regy_add(regy, Id_diq, "diq", "Zazaki");
|
||||
Regy_add(regy, Id_dsb, "dsb", "Dolnoserbski");
|
||||
Regy_add(regy, Id_dtp, "dtp", "Dusun Bundu-liwan");
|
||||
Regy_add(regy, Id_dv, "dv", "ދިވެހިބަސް");
|
||||
Regy_add(regy, Id_dz, "dz", "ཇོང་ཁ");
|
||||
Regy_add(regy, Id_ee, "ee", "Eʋegbe");
|
||||
Regy_add(regy, Id_egl, "egl", "Emiliàn");
|
||||
Regy_add(regy, Id_el, "el", "Ελληνικά");
|
||||
Regy_add(regy, Id_eml, "eml", "Emiliàn e rumagnòl");
|
||||
Regy_add(regy, Id_en, "en", "English");
|
||||
Regy_add(regy, Id_en_ca, "en-ca", "Canadian English");
|
||||
Regy_add(regy, Id_en_gb, "en-gb", "British English");
|
||||
Regy_add(regy, Id_en_rtl, "en-rtl", "English rtl");
|
||||
Regy_add(regy, Id_enrtl, "enrtl", "English (right to left)");
|
||||
Regy_add(regy, Id_eo, "eo", "Esperanto");
|
||||
Regy_add(regy, Id_es, "es", "Español");
|
||||
Regy_add(regy, Id_et, "et", "Eesti");
|
||||
Regy_add(regy, Id_eu, "eu", "Euskara");
|
||||
Regy_add(regy, Id_ext, "ext", "Estremeñu");
|
||||
Regy_add(regy, Id_fa, "fa", "فارسی");
|
||||
Regy_add(regy, Id_ff, "ff", "Fulfulde");
|
||||
Regy_add(regy, Id_fi, "fi", "Suomi");
|
||||
Regy_add(regy, Id_fit, "fit", "meänkieli");
|
||||
Regy_add(regy, Id_fiu_vro, "fiu-vro", "Võro");
|
||||
Regy_add(regy, Id_fj, "fj", "Na Vosa Vakaviti");
|
||||
Regy_add(regy, Id_fo, "fo", "Føroyskt");
|
||||
Regy_add(regy, Id_fr, "fr", "Français");
|
||||
Regy_add(regy, Id_frc, "frc", "Français cadien");
|
||||
Regy_add(regy, Id_frp, "frp", "Arpetan");
|
||||
Regy_add(regy, Id_frr, "frr", "Nordfriisk");
|
||||
Regy_add(regy, Id_fur, "fur", "Furlan");
|
||||
Regy_add(regy, Id_fy, "fy", "Frysk");
|
||||
Regy_add(regy, Id_ga, "ga", "Gaeilge");
|
||||
Regy_add(regy, Id_gag, "gag", "Gagauz");
|
||||
Regy_add(regy, Id_gan, "gan", "贛語");
|
||||
Regy_add(regy, Id_gan_hans, "gan-hans", "赣语(简体)");
|
||||
Regy_add(regy, Id_gan_hant, "gan-hant", "贛語(繁體)");
|
||||
Regy_add(regy, Id_gd, "gd", "Gàidhlig");
|
||||
Regy_add(regy, Id_gl, "gl", "Galego");
|
||||
Regy_add(regy, Id_glk, "glk", "گیلکی");
|
||||
Regy_add(regy, Id_gn, "gn", "Avañe'ẽ");
|
||||
Regy_add(regy, Id_gom, "gom", "कोंकणी");
|
||||
Regy_add(regy, Id_gom_latn, "gom-latn", "कोंकणी (Latin)");
|
||||
Regy_add(regy, Id_got, "got", "𐌲𐌿𐍄𐌹𐍃𐌺");
|
||||
Regy_add(regy, Id_grc, "grc", "Ἀρχαία ἑλληνικὴ");
|
||||
Regy_add(regy, Id_gsw, "gsw", "Alemannisch");
|
||||
Regy_add(regy, Id_gu, "gu", "ગુજરાતી");
|
||||
Regy_add(regy, Id_gv, "gv", "Gaelg");
|
||||
Regy_add(regy, Id_ha, "ha", "هَوُسَ");
|
||||
Regy_add(regy, Id_hak, "hak", "Hak-kâ-fa");
|
||||
Regy_add(regy, Id_haw, "haw", "Hawai`i");
|
||||
Regy_add(regy, Id_he, "he", "עברית");
|
||||
Regy_add(regy, Id_hi, "hi", "हिन्दी");
|
||||
Regy_add(regy, Id_hif, "hif", "Fiji Hindi");
|
||||
Regy_add(regy, Id_hif_latn, "hif-latn", "Fiji Hindi");
|
||||
Regy_add(regy, Id_hil, "hil", "Ilonggo");
|
||||
Regy_add(regy, Id_ho, "ho", "Hiri Motu");
|
||||
Regy_add(regy, Id_hr, "hr", "Hrvatski");
|
||||
Regy_add(regy, Id_hsb, "hsb", "Hornjoserbsce");
|
||||
Regy_add(regy, Id_ht, "ht", "Kreyòl ayisyen");
|
||||
Regy_add(regy, Id_hu, "hu", "Magyar");
|
||||
Regy_add(regy, Id_hu_formal, "hu-formal", "Magyar (formal)");
|
||||
Regy_add(regy, Id_hy, "hy", "Հայերեն");
|
||||
Regy_add(regy, Id_hz, "hz", "Otsiherero");
|
||||
Regy_add(regy, Id_ia, "ia", "Interlingua");
|
||||
Regy_add(regy, Id_id, "id", "Bahasa Indonesia");
|
||||
Regy_add(regy, Id_ie, "ie", "Interlingue");
|
||||
Regy_add(regy, Id_ig, "ig", "Igbo");
|
||||
Regy_add(regy, Id_ii, "ii", "ꆇꉙ");
|
||||
Regy_add(regy, Id_ik, "ik", "Iñupiak");
|
||||
Regy_add(regy, Id_ike_cans, "ike-cans", "ᐃᓄᒃᑎᑐᑦ");
|
||||
Regy_add(regy, Id_ike_latn, "ike-latn", "inuktitut");
|
||||
Regy_add(regy, Id_ilo, "ilo", "Ilokano");
|
||||
Regy_add(regy, Id_inh, "inh", "ГІалгІай Ğalğaj");
|
||||
Regy_add(regy, Id_io, "io", "Ido");
|
||||
Regy_add(regy, Id_is, "is", "Íslenska");
|
||||
Regy_add(regy, Id_it, "it", "Italiano");
|
||||
Regy_add(regy, Id_iu, "iu", "ᐃᓄᒃᑎᑐᑦ/inuktitut");
|
||||
Regy_add(regy, Id_ja, "ja", "日本語");
|
||||
Regy_add(regy, Id_jam, "jam", "Patois");
|
||||
Regy_add(regy, Id_jbo, "jbo", "Lojban");
|
||||
Regy_add(regy, Id_jut, "jut", "Jysk");
|
||||
Regy_add(regy, Id_jv, "jv", "Basa Jawa");
|
||||
Regy_add(regy, Id_ka, "ka", "ქართული");
|
||||
Regy_add(regy, Id_kaa, "kaa", "Qaraqalpaqsha");
|
||||
Regy_add(regy, Id_kab, "kab", "Taqbaylit");
|
||||
Regy_add(regy, Id_kbd, "kbd", "Къэбэрдеибзэ / Qabardjajəbza");
|
||||
Regy_add(regy, Id_kbd_cyrl, "kbd-cyrl", "къэбэрдеибзэ");
|
||||
Regy_add(regy, Id_kg, "kg", "Kongo");
|
||||
Regy_add(regy, Id_khw, "khw", "کھوار");
|
||||
Regy_add(regy, Id_ki, "ki", "Gĩkũyũ");
|
||||
Regy_add(regy, Id_kiu, "kiu", "Kırmancki");
|
||||
Regy_add(regy, Id_kj, "kj", "Kwanyama");
|
||||
Regy_add(regy, Id_kk, "kk", "Қазақша");
|
||||
Regy_add(regy, Id_kk_arab, "kk-arab", "قازاقشا (تٴوتە)");
|
||||
Regy_add(regy, Id_kk_cn, "kk-cn", "قازاقشا (جۇنگو)");
|
||||
Regy_add(regy, Id_kk_cyrl, "kk-cyrl", "Қазақша (кирил)");
|
||||
Regy_add(regy, Id_kk_kz, "kk-kz", "Қазақша (Қазақстан)");
|
||||
Regy_add(regy, Id_kk_latn, "kk-latn", "Qazaqşa (latın)");
|
||||
Regy_add(regy, Id_kk_tr, "kk-tr", "Qazaqşa (Türkïya)");
|
||||
Regy_add(regy, Id_kl, "kl", "Kalaallisut");
|
||||
Regy_add(regy, Id_km, "km", "ភាសាខ្មែរ");
|
||||
Regy_add(regy, Id_kn, "kn", "ಕನ್ನಡ");
|
||||
Regy_add(regy, Id_ko, "ko", "한국어");
|
||||
Regy_add(regy, Id_ko_kp, "ko-kp", "한국어 (조선)");
|
||||
Regy_add(regy, Id_koi, "koi", "Перем Коми");
|
||||
Regy_add(regy, Id_kr, "kr", "Kanuri");
|
||||
Regy_add(regy, Id_krc, "krc", "Къарачай-Малкъар");
|
||||
Regy_add(regy, Id_kri, "kri", "Krio");
|
||||
Regy_add(regy, Id_krj, "krj", "Kinaray-a");
|
||||
Regy_add(regy, Id_ks, "ks", "कश्मीरी - (كشميري)");
|
||||
Regy_add(regy, Id_ks_arab, "ks-arab", "کٲشُر");
|
||||
Regy_add(regy, Id_ks_deva, "ks-deva", "कॉशुर");
|
||||
Regy_add(regy, Id_ksh, "ksh", "Ripoarisch");
|
||||
Regy_add(regy, Id_ku, "ku", "Kurdî");
|
||||
Regy_add(regy, Id_ku_arab, "ku-arab", "كوردي (عەرەبی)");
|
||||
Regy_add(regy, Id_ku_latn, "ku-latn", "Kurdî (latînî)");
|
||||
Regy_add(regy, Id_kv, "kv", "Коми");
|
||||
Regy_add(regy, Id_kw, "kw", "Kernowek");
|
||||
Regy_add(regy, Id_ky, "ky", "Кыргызча");
|
||||
Regy_add(regy, Id_la, "la", "Latina");
|
||||
Regy_add(regy, Id_lad, "lad", "Ladino");
|
||||
Regy_add(regy, Id_lb, "lb", "Lëtzebuergesch");
|
||||
Regy_add(regy, Id_lbe, "lbe", "Лакку");
|
||||
Regy_add(regy, Id_lez, "lez", "Лезги");
|
||||
Regy_add(regy, Id_lfn, "lfn", "Lingua Franca Nova");
|
||||
Regy_add(regy, Id_lg, "lg", "Luganda");
|
||||
Regy_add(regy, Id_li, "li", "Limburgs");
|
||||
Regy_add(regy, Id_lij, "lij", "Líguru");
|
||||
Regy_add(regy, Id_liv, "liv", "Līvõ kēļ");
|
||||
Regy_add(regy, Id_lmo, "lmo", "Lumbaart");
|
||||
Regy_add(regy, Id_ln, "ln", "Lingála");
|
||||
Regy_add(regy, Id_lo, "lo", "ລາວ");
|
||||
Regy_add(regy, Id_loz, "loz", "Silozi");
|
||||
Regy_add(regy, Id_lrc, "lrc", "لوری");
|
||||
Regy_add(regy, Id_lt, "lt", "Lietuvių");
|
||||
Regy_add(regy, Id_ltg, "ltg", "Latgaļu");
|
||||
Regy_add(regy, Id_lus, "lus", "Mizo ţawng");
|
||||
Regy_add(regy, Id_lv, "lv", "Latviešu");
|
||||
Regy_add(regy, Id_lzh, "lzh", "文言");
|
||||
Regy_add(regy, Id_lzz, "lzz", "Lazuri");
|
||||
Regy_add(regy, Id_mai, "mai", "मैथिली");
|
||||
Regy_add(regy, Id_map_bms, "map-bms", "Basa Banyumasan");
|
||||
Regy_add(regy, Id_mdf, "mdf", "Мокшень");
|
||||
Regy_add(regy, Id_mg, "mg", "Malagasy");
|
||||
Regy_add(regy, Id_mh, "mh", "Ebon");
|
||||
Regy_add(regy, Id_mhr, "mhr", "Олык Марий");
|
||||
Regy_add(regy, Id_mi, "mi", "Māori");
|
||||
Regy_add(regy, Id_min, "min", "Baso Minangkabau");
|
||||
Regy_add(regy, Id_mk, "mk", "Македонски");
|
||||
Regy_add(regy, Id_ml, "ml", "മലയാളം");
|
||||
Regy_add(regy, Id_mn, "mn", "Монгол");
|
||||
Regy_add(regy, Id_mo, "mo", "Молдовеняскэ");
|
||||
Regy_add(regy, Id_mr, "mr", "मराठी");
|
||||
Regy_add(regy, Id_mrj, "mrj", "Кырык мары");
|
||||
Regy_add(regy, Id_ms, "ms", "Bahasa Melayu");
|
||||
Regy_add(regy, Id_mt, "mt", "Malti");
|
||||
Regy_add(regy, Id_mus, "mus", "Mvskoke");
|
||||
Regy_add(regy, Id_mwl, "mwl", "Mirandés");
|
||||
Regy_add(regy, Id_mwv, "mwv", "Behase Mentawei");
|
||||
Regy_add(regy, Id_my, "my", "Burmese");
|
||||
Regy_add(regy, Id_myv, "myv", "Эрзянь");
|
||||
Regy_add(regy, Id_mzn, "mzn", "مازِرونی");
|
||||
Regy_add(regy, Id_na, "na", "Dorerin Naoero");
|
||||
Regy_add(regy, Id_nah, "nah", "Nāhuatl");
|
||||
Regy_add(regy, Id_nan, "nan", "Bân-lâm-gú");
|
||||
Regy_add(regy, Id_nap, "nap", "Nnapulitano");
|
||||
Regy_add(regy, Id_nb, "nb", "Norsk (bokmål)");
|
||||
Regy_add(regy, Id_nds, "nds", "Plattdüütsch");
|
||||
Regy_add(regy, Id_nds_nl, "nds-nl", "Nedersaksisch");
|
||||
Regy_add(regy, Id_ne, "ne", "नेपाली");
|
||||
Regy_add(regy, Id_new, "new", "नेपाल भाषा");
|
||||
Regy_add(regy, Id_ng, "ng", "Oshiwambo");
|
||||
Regy_add(regy, Id_niu, "niu", "Niuē");
|
||||
Regy_add(regy, Id_nl, "nl", "Nederlands");
|
||||
Regy_add(regy, Id_nl_informal, "nl-informal", "Nederlands (informeel)");
|
||||
Regy_add(regy, Id_nn, "nn", "Norsk (nynorsk)");
|
||||
Regy_add(regy, Id_no, "no", "Norsk (bokmål)");
|
||||
Regy_add(regy, Id_nov, "nov", "Novial");
|
||||
Regy_add(regy, Id_nrm, "nrm", "Nouormand");
|
||||
Regy_add(regy, Id_nso, "nso", "Sesotho sa Leboa");
|
||||
Regy_add(regy, Id_nv, "nv", "Diné bizaad");
|
||||
Regy_add(regy, Id_ny, "ny", "Chi-Chewa");
|
||||
Regy_add(regy, Id_oc, "oc", "Occitan");
|
||||
Regy_add(regy, Id_om, "om", "Oromoo");
|
||||
Regy_add(regy, Id_or, "or", "ଓଡ଼ିଆ");
|
||||
Regy_add(regy, Id_os, "os", "Иронау");
|
||||
Regy_add(regy, Id_pa, "pa", "ਪੰਜਾਬੀ");
|
||||
Regy_add(regy, Id_pag, "pag", "Pangasinan");
|
||||
Regy_add(regy, Id_pam, "pam", "Kapampangan");
|
||||
Regy_add(regy, Id_pap, "pap", "Papiamentu");
|
||||
Regy_add(regy, Id_pcd, "pcd", "Picard");
|
||||
Regy_add(regy, Id_pdc, "pdc", "Deitsch");
|
||||
Regy_add(regy, Id_pdt, "pdt", "Plautdietsch");
|
||||
Regy_add(regy, Id_pfl, "pfl", "Pälzisch");
|
||||
Regy_add(regy, Id_pi, "pi", "पािऴ");
|
||||
Regy_add(regy, Id_pih, "pih", "Norfuk / Pitkern");
|
||||
Regy_add(regy, Id_pl, "pl", "Polski");
|
||||
Regy_add(regy, Id_pms, "pms", "Piemontèis");
|
||||
Regy_add(regy, Id_pnb, "pnb", "پنجابی");
|
||||
Regy_add(regy, Id_pnt, "pnt", "Ποντιακά");
|
||||
Regy_add(regy, Id_prg, "prg", "Prūsiskan");
|
||||
Regy_add(regy, Id_ps, "ps", "پښتو");
|
||||
Regy_add(regy, Id_pt, "pt", "Português");
|
||||
Regy_add(regy, Id_pt_br, "pt-br", "Português do Brasil");
|
||||
Regy_add(regy, Id_qqq, "qqq", "MediaWiki sample");
|
||||
Regy_add(regy, Id_qu, "qu", "Runa Simi");
|
||||
Regy_add(regy, Id_qug, "qug", "Runa shimi");
|
||||
Regy_add(regy, Id_rgn, "rgn", "Rumagnôl");
|
||||
Regy_add(regy, Id_rif, "rif", "Tarifit");
|
||||
Regy_add(regy, Id_rm, "rm", "Rumantsch");
|
||||
Regy_add(regy, Id_rmy, "rmy", "Romani");
|
||||
Regy_add(regy, Id_rn, "rn", "Kirundi");
|
||||
Regy_add(regy, Id_ro, "ro", "Română");
|
||||
Regy_add(regy, Id_roa_rup, "roa-rup", "Armãneashce");
|
||||
Regy_add(regy, Id_roa_tara, "roa-tara", "Tarandíne");
|
||||
Regy_add(regy, Id_ru, "ru", "Русский");
|
||||
Regy_add(regy, Id_rue, "rue", "Русиньскый");
|
||||
Regy_add(regy, Id_rup, "rup", "Armãneașce");
|
||||
Regy_add(regy, Id_ruq, "ruq", "Vlăheşte");
|
||||
Regy_add(regy, Id_ruq_cyrl, "ruq-cyrl", "Влахесте");
|
||||
Regy_add(regy, Id_ruq_latn, "ruq-latn", "Vlăheşte");
|
||||
Regy_add(regy, Id_rw, "rw", "Kinyarwanda");
|
||||
Regy_add(regy, Id_sa, "sa", "संस्कृत");
|
||||
Regy_add(regy, Id_sah, "sah", "Саха тыла");
|
||||
Regy_add(regy, Id_sat, "sat", "Santali");
|
||||
Regy_add(regy, Id_sc, "sc", "Sardu");
|
||||
Regy_add(regy, Id_scn, "scn", "Sicilianu");
|
||||
Regy_add(regy, Id_sco, "sco", "Scots");
|
||||
Regy_add(regy, Id_sd, "sd", "سنڌي");
|
||||
Regy_add(regy, Id_sdc, "sdc", "Sassaresu");
|
||||
Regy_add(regy, Id_se, "se", "Sámegiella");
|
||||
Regy_add(regy, Id_sei, "sei", "Cmique Itom");
|
||||
Regy_add(regy, Id_sg, "sg", "Sängö");
|
||||
Regy_add(regy, Id_sgs, "sgs", "Žemaitėška");
|
||||
Regy_add(regy, Id_sh, "sh", "Srpskohrvatski / Српскохрватски");
|
||||
Regy_add(regy, Id_shi, "shi", "Tašlḥiyt");
|
||||
Regy_add(regy, Id_si, "si", "Sinhalese");
|
||||
Regy_add(regy, Id_simple, "simple", "Simple English");
|
||||
Regy_add(regy, Id_sk, "sk", "Slovenčina");
|
||||
Regy_add(regy, Id_sl, "sl", "Slovenščina");
|
||||
Regy_add(regy, Id_sli, "sli", "Schläsch");
|
||||
Regy_add(regy, Id_sm, "sm", "Gagana Samoa");
|
||||
Regy_add(regy, Id_sma, "sma", "Åarjelsaemien");
|
||||
Regy_add(regy, Id_sn, "sn", "chiShona");
|
||||
Regy_add(regy, Id_so, "so", "Soomaaliga");
|
||||
Regy_add(regy, Id_sq, "sq", "Shqip");
|
||||
Regy_add(regy, Id_sr, "sr", "Српски / Srpski");
|
||||
Regy_add(regy, Id_sr_ec, "sr-ec", "Српски (ћирилица)");
|
||||
Regy_add(regy, Id_sr_el, "sr-el", "Srpski (latinica)");
|
||||
Regy_add(regy, Id_srn, "srn", "Sranantongo");
|
||||
Regy_add(regy, Id_ss, "ss", "SiSwati");
|
||||
Regy_add(regy, Id_st, "st", "Sesotho");
|
||||
Regy_add(regy, Id_stq, "stq", "Seeltersk");
|
||||
Regy_add(regy, Id_su, "su", "Basa Sunda");
|
||||
Regy_add(regy, Id_sv, "sv", "Svenska");
|
||||
Regy_add(regy, Id_sw, "sw", "Kiswahili");
|
||||
Regy_add(regy, Id_sxu, "sxu", "Saxon, Upper");
|
||||
Regy_add(regy, Id_szl, "szl", "Ślůnski");
|
||||
Regy_add(regy, Id_ta, "ta", "தமிழ்");
|
||||
Regy_add(regy, Id_tcy, "tcy", "ತುಳು");
|
||||
Regy_add(regy, Id_te, "te", "తెలుగు");
|
||||
Regy_add(regy, Id_test, "test", "MediaWiki test");
|
||||
Regy_add(regy, Id_tet, "tet", "Tetun");
|
||||
Regy_add(regy, Id_tg, "tg", "Тоҷикӣ");
|
||||
Regy_add(regy, Id_tg_cyrl, "tg-cyrl", "Тоҷикӣ");
|
||||
Regy_add(regy, Id_tg_latn, "tg-latn", "tojikī");
|
||||
Regy_add(regy, Id_th, "th", "ไทย");
|
||||
Regy_add(regy, Id_ti, "ti", "ትግርኛ");
|
||||
Regy_add(regy, Id_tk, "tk", "Türkmençe");
|
||||
Regy_add(regy, Id_tl, "tl", "Tagalog");
|
||||
Regy_add(regy, Id_tly, "tly", "толышә зывон");
|
||||
Regy_add(regy, Id_tn, "tn", "Setswana");
|
||||
Regy_add(regy, Id_to, "to", "lea faka-Tonga");
|
||||
Regy_add(regy, Id_tokipona, "tokipona", "Toki Pona");
|
||||
Regy_add(regy, Id_tp, "tp", "Toki Pona (deprecated:tokipona)");
|
||||
Regy_add(regy, Id_tpi, "tpi", "Tok Pisin");
|
||||
Regy_add(regy, Id_tr, "tr", "Türkçe");
|
||||
Regy_add(regy, Id_tru, "tru", "Ṫuroyo");
|
||||
Regy_add(regy, Id_ts, "ts", "Xitsonga");
|
||||
Regy_add(regy, Id_tt, "tt", "Татарча/Tatarça");
|
||||
Regy_add(regy, Id_tt_cyrl, "tt-cyrl", "Татарча");
|
||||
Regy_add(regy, Id_tt_latn, "tt-latn", "Tatarça");
|
||||
Regy_add(regy, Id_ttt, "ttt", "Tat, Muslim");
|
||||
Regy_add(regy, Id_tum, "tum", "chiTumbuka");
|
||||
Regy_add(regy, Id_tw, "tw", "Twi");
|
||||
Regy_add(regy, Id_ty, "ty", "Reo Mā`ohi");
|
||||
Regy_add(regy, Id_tyv, "tyv", "Тыва дыл");
|
||||
Regy_add(regy, Id_tzm, "tzm", "ⵜⴰⵎⴰⵣⵉⵖⵜ");
|
||||
Regy_add(regy, Id_udm, "udm", "Удмурт");
|
||||
Regy_add(regy, Id_ug, "ug", "ئۇيغۇرچە / Uyghurche");
|
||||
Regy_add(regy, Id_ug_arab, "ug-arab", "ئۇيغۇرچە");
|
||||
Regy_add(regy, Id_ug_latn, "ug-latn", "Uyghurche");
|
||||
Regy_add(regy, Id_uk, "uk", "Українська");
|
||||
Regy_add(regy, Id_ur, "ur", "اردو");
|
||||
Regy_add(regy, Id_uz, "uz", "O'zbek");
|
||||
Regy_add(regy, Id_ve, "ve", "Tshivenda");
|
||||
Regy_add(regy, Id_vec, "vec", "Vèneto");
|
||||
Regy_add(regy, Id_vep, "vep", "Vepsan kel'");
|
||||
Regy_add(regy, Id_vi, "vi", "Tiếng Việt");
|
||||
Regy_add(regy, Id_vls, "vls", "West-Vlams");
|
||||
Regy_add(regy, Id_vmf, "vmf", "Mainfränkisch");
|
||||
Regy_add(regy, Id_vo, "vo", "Volapük");
|
||||
Regy_add(regy, Id_vot, "vot", "Vaďďa");
|
||||
Regy_add(regy, Id_vro, "vro", "Võro");
|
||||
Regy_add(regy, Id_wa, "wa", "Walon");
|
||||
Regy_add(regy, Id_war, "war", "Winaray");
|
||||
Regy_add(regy, Id_wo, "wo", "Wolof");
|
||||
Regy_add(regy, Id_wuu, "wuu", "吴语");
|
||||
Regy_add(regy, Id_xal, "xal", "Хальмг");
|
||||
Regy_add(regy, Id_xh, "xh", "isiXhosa");
|
||||
Regy_add(regy, Id_xmf, "xmf", "მარგალური");
|
||||
Regy_add(regy, Id_yi, "yi", "ייִדיש");
|
||||
Regy_add(regy, Id_yo, "yo", "Yorùbá");
|
||||
Regy_add(regy, Id_yue, "yue", "粵語");
|
||||
Regy_add(regy, Id_za, "za", "Vahcuengh");
|
||||
Regy_add(regy, Id_zea, "zea", "Zeêuws");
|
||||
Regy_add(regy, Id_zh, "zh", "中文");
|
||||
Regy_add(regy, Id_zh_classical, "zh-classical", "文言");
|
||||
Regy_add(regy, Id_zh_cn, "zh-cn", "中文(中国大陆)");
|
||||
Regy_add(regy, Id_zh_hans, "zh-hans", "中文(简体)");
|
||||
Regy_add(regy, Id_zh_hant, "zh-hant", "中文(繁體)");
|
||||
Regy_add(regy, Id_zh_hk, "zh-hk", "中文(香港)");
|
||||
Regy_add(regy, Id_zh_min_nan, "zh-min-nan", "Bân-lâm-gú");
|
||||
Regy_add(regy, Id_zh_mo, "zh-mo", "中文(澳門)");
|
||||
Regy_add(regy, Id_zh_my, "zh-my", "中文(马来西亚)");
|
||||
Regy_add(regy, Id_zh_sg, "zh-sg", "中文(新加坡)");
|
||||
Regy_add(regy, Id_zh_tw, "zh-tw", "中文(台灣)");
|
||||
Regy_add(regy, Id_zh_yue, "zh-yue", "粵語");
|
||||
Regy_add(regy, Id_zu, "zu", "isiZulu");
|
||||
}
|
||||
return regy;
|
||||
}
|
||||
private static Hash_adp_bry regy; static Xol_lang_itm[] langs = new Xol_lang_itm[Id__max];
|
||||
private static void Regy_add(Hash_adp_bry regy, int id, String code_str, String canonical) {
|
||||
byte[] code = Bry_.new_utf8_(code_str);
|
||||
Xol_lang_itm itm = new Xol_lang_itm(id, code, Bry_.new_utf8_(canonical));
|
||||
langs[id] = itm;
|
||||
regy.Add(code, itm);
|
||||
}
|
||||
public static Xol_lang_itm Get_by_key_or_en(byte[] key) {
|
||||
if (regy == null) Regy();
|
||||
Xol_lang_itm lang_itm = (Xol_lang_itm)regy.Get_by_bry(key);
|
||||
if (lang_itm == null) lang_itm = (Xol_lang_itm)regy.Get_by_bry(Xol_lang_.Key_en);
|
||||
return lang_itm;
|
||||
}
|
||||
public static Xol_lang_itm Get_by_key(byte[] key) {if (regy == null) Regy(); return (Xol_lang_itm)regy.Get_by_bry(key);}
|
||||
public static Xol_lang_itm Get_by_key_or_intl(byte[] key, int bgn, int end) {
|
||||
if (regy == null) Regy();
|
||||
Xol_lang_itm rv = (Xol_lang_itm)regy.Get_by_mid(key, bgn, end);
|
||||
return rv == null ? Intl : rv;
|
||||
}
|
||||
public static Xol_lang_itm Get_by_id(int id) {if (regy == null) Regy(); return langs[id];}
|
||||
public static boolean Exists(byte[] key) {return Get_by_key(key) != null;} // Language.php!isSupportedLanguage
|
||||
public static final Xol_lang_itm Intl = new Xol_lang_itm(Xol_lang_itm_.Id__intl, Bry_.Empty, Bry_.Empty); // intended for international wikis like commons, wikidata, etc..
|
||||
}
|
||||
class Comparer_lang_code implements ComparerAble {
|
||||
public int compare(Object lhsObj, Object rhsObj) {
|
||||
Xol_lang_itm lhs = (Xol_lang_itm)lhsObj;
|
||||
Xol_lang_itm rhs = (Xol_lang_itm)rhsObj;
|
||||
return Bry_.Compare(lhs.Key(), rhs.Key());
|
||||
}
|
||||
}
|
||||
271
400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl.java
Normal file
271
400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl.java
Normal file
@@ -0,0 +1,271 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import gplx.intl.*; import gplx.xowa.langs.numbers.*;
|
||||
public class Xol_lang_srl {
|
||||
public static Xow_ns[] Load_ns_grps(byte[] src) {
|
||||
int src_len = src.length, pos = 0, fld_bgn = 0;
|
||||
int cur_id = -1;
|
||||
ListAdp rv = ListAdp_.new_(); Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
while (true) {
|
||||
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
|
||||
byte b = last ? Byte_ascii.NewLine : src[pos];
|
||||
switch (b) {
|
||||
case Byte_ascii.Pipe:
|
||||
cur_id = Bry_.X_to_int_or(src, fld_bgn, pos, Int_.MinValue);
|
||||
if (cur_id == Int_.MinValue) throw Err_mgr._.fmt_(GRP_KEY, "invalid_id", "invalid_id: ~{0}", String_.new_utf8_(src, fld_bgn, pos));
|
||||
fld_bgn = pos + 1;
|
||||
break;
|
||||
case Byte_ascii.NewLine:
|
||||
byte[] cur_name = csv_parser.Load(src, fld_bgn, pos);
|
||||
Xow_ns ns = new Xow_ns(cur_id, Xow_ns_case_.Id_1st, cur_name, false);
|
||||
rv.Add(ns);
|
||||
fld_bgn = pos + 1;
|
||||
cur_id = -1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (last) break;
|
||||
++pos;
|
||||
}
|
||||
return (Xow_ns[])rv.XtoAry(Xow_ns.class);
|
||||
} private static final String GRP_KEY = "xowa.lang.srl";
|
||||
public static void Load_keywords(Xol_kwd_mgr keyword_mgr, byte[] src) {
|
||||
int src_len = src.length, pos = 0, fld_bgn = 0, fld_idx = 0;
|
||||
boolean cur_cs = false; byte[] cur_key = Bry_.Empty;
|
||||
ListAdp cur_words = ListAdp_.new_();
|
||||
Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
while (true) {
|
||||
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
|
||||
byte b = last ? Byte_ascii.NewLine : src[pos];
|
||||
switch (b) {
|
||||
case Byte_ascii.Pipe:
|
||||
switch (fld_idx) {
|
||||
case 0:
|
||||
cur_key = csv_parser.Load(src, fld_bgn, pos);
|
||||
break;
|
||||
case 1:
|
||||
byte cs_byte = src[pos - 1];
|
||||
switch (cs_byte) {
|
||||
case Byte_ascii.Num_0: cur_cs = false; break;
|
||||
case Byte_ascii.Num_1: cur_cs = true; break;
|
||||
default: throw Err_mgr._.fmt_(GRP_KEY, "invalid_cs", "case sensitive should be 0 or 1: ~{0}", Byte_.XtoStr(cs_byte));
|
||||
}
|
||||
break;
|
||||
}
|
||||
fld_bgn = pos + 1;
|
||||
++fld_idx;
|
||||
break;
|
||||
case Byte_ascii.Tilde:
|
||||
byte[] word = csv_parser.Load(src, fld_bgn, pos);
|
||||
cur_words.Add(word);
|
||||
fld_bgn = pos + 1;
|
||||
break;
|
||||
case Byte_ascii.NewLine:
|
||||
if (cur_words.Count() > 0) { // guard against blank line wiping out entries; EX: "toc|0|toc1\n\n"; 2nd \n will get last grp and make 0 entries
|
||||
int cur_id = Xol_kwd_grp_.Id_by_bry(cur_key); if (cur_id == -1) throw Err_mgr._.fmt_(GRP_KEY, "invalid_keyword", "key does not have id: ~{0}", cur_id);
|
||||
Xol_kwd_grp grp = keyword_mgr.Get_or_new(cur_id);
|
||||
grp.Srl_load(cur_cs, (byte[][])cur_words.XtoAry(byte[].class));
|
||||
}
|
||||
fld_bgn = pos + 1;
|
||||
fld_idx = 0;
|
||||
cur_words.Clear();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (last) break;
|
||||
++pos;
|
||||
}
|
||||
// return (Xol_kwd_grp[])rv.XtoAry(typeof(Xol_kwd_grp));
|
||||
}
|
||||
public static void Load_messages(Xol_msg_mgr msg_mgr, byte[] src) {
|
||||
int src_len = src.length, pos = 0, fld_bgn = 0;
|
||||
byte[] cur_key = Bry_.Empty;
|
||||
Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
while (true) {
|
||||
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
|
||||
byte b = last ? Byte_ascii.NewLine : src[pos];
|
||||
switch (b) {
|
||||
case Byte_ascii.Pipe:
|
||||
cur_key = csv_parser.Load(src, fld_bgn, pos);
|
||||
fld_bgn = pos + 1;
|
||||
break;
|
||||
case Byte_ascii.NewLine:
|
||||
byte[] cur_val = csv_parser.Load(src, fld_bgn, pos);
|
||||
Xol_msg_itm itm = msg_mgr.Itm_by_key_or_new(cur_key).Src_(Xol_msg_itm.Src_lang); // NOTE: this proc should only be called when loading lang.gfs
|
||||
Xol_msg_itm_.update_val_(itm, cur_val);
|
||||
itm.Dirty_(true);
|
||||
fld_bgn = pos + 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (last) break;
|
||||
++pos;
|
||||
}
|
||||
}
|
||||
public static void Load_specials(Xol_specials_mgr special_mgr, byte[] src) {
|
||||
int src_len = src.length, pos = 0, fld_bgn = 0;
|
||||
byte[] cur_key = Bry_.Empty;
|
||||
Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
while (true) {
|
||||
boolean last = pos == src_len; // NOTE: logic occurs b/c of \n}~-> dlm which gobbles up last \n
|
||||
byte b = last ? Byte_ascii.NewLine : src[pos];
|
||||
switch (b) {
|
||||
case Byte_ascii.Pipe:
|
||||
cur_key = csv_parser.Load(src, fld_bgn, pos);
|
||||
fld_bgn = pos + 1;
|
||||
break;
|
||||
case Byte_ascii.NewLine:
|
||||
byte[] cur_val_raw = csv_parser.Load(src, fld_bgn, pos);
|
||||
byte[][] cur_vals = Bry_.Split(cur_val_raw, Byte_ascii.Tilde);
|
||||
special_mgr.Add(cur_key, cur_vals);
|
||||
fld_bgn = pos + 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (last) break;
|
||||
++pos;
|
||||
}
|
||||
}
|
||||
public static void Save_num_mgr(Gfs_bldr bldr, Xol_num_mgr num_mgr) {
|
||||
Xol_transform_mgr separators_mgr = num_mgr.Separators_mgr(); int separators_len = separators_mgr.Len();
|
||||
Xol_transform_mgr digits_mgr = num_mgr.Digits_mgr(); int digits_len = digits_mgr.Len();
|
||||
byte[] digit_grouping_pattern = num_mgr.Num_grp_fmtr().Digit_grouping_pattern();
|
||||
if (separators_len > 0 || digits_len > 0 || digit_grouping_pattern != null) {
|
||||
bldr.Add_proc_init_one(Xol_lang.Invk_numbers).Add_curly_bgn_nl(); // numbers {
|
||||
if (digit_grouping_pattern != null) {
|
||||
bldr.Add_indent(1).Add_eq_str(Xol_num_mgr.Invk_digit_grouping_pattern, digit_grouping_pattern);
|
||||
}
|
||||
if (separators_len > 0) {
|
||||
bldr.Add_indent(1).Add_proc_init_one(Xol_num_mgr.Invk_separators).Add_curly_bgn_nl(); // separators {
|
||||
bldr.Add_indent(2).Add_proc_init_one(Xol_num_mgr.Invk_clear).Add_term_nl(); // clear;
|
||||
for (int i = 0; i < separators_len; i++) {
|
||||
KeyVal kv = separators_mgr.Get_at(i);
|
||||
String k = kv.Key(), v = kv.Val_to_str_or_empty();
|
||||
bldr.Add_indent(2).Add_proc_init_many(Xol_transform_mgr.Invk_set).Add_parens_str_many(k, v).Add_term_nl(); // set('k', 'v');
|
||||
}
|
||||
bldr.Add_indent(1).Add_curly_end_nl(); // }
|
||||
}
|
||||
if (digits_len > 0) {
|
||||
bldr.Add_indent(1).Add_proc_init_one(Xol_num_mgr.Invk_digits).Add_curly_bgn_nl(); // digits {
|
||||
bldr.Add_indent(2).Add_proc_init_one(Xol_num_mgr.Invk_clear).Add_term_nl(); // clear;
|
||||
for (int i = 0; i < digits_len; i++) {
|
||||
KeyVal kv = digits_mgr.Get_at(i);
|
||||
String k = kv.Key(), v = kv.Val_to_str_or_empty();
|
||||
bldr.Add_indent(2).Add_proc_init_many(Xol_transform_mgr.Invk_set).Add_parens_str_many(k, v).Add_term_nl(); // set('k', 'v');
|
||||
}
|
||||
bldr.Add_indent(1).Add_curly_end_nl(); // }
|
||||
}
|
||||
bldr.Add_curly_end_nl(); // }
|
||||
}
|
||||
}
|
||||
public static void Save_ns_grps(Gfs_bldr bldr, Xol_ns_grp ns_grp, String proc_invk) {
|
||||
int ns_grp_len = ns_grp.Len(); Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
if (ns_grp_len == 0) return;
|
||||
Bry_bfr bfr = bldr.Bfr();
|
||||
bldr.Add_proc_cont_one(proc_invk).Add_nl();
|
||||
bldr.Add_indent().Add_proc_cont_one(Invk_load_text).Add_paren_bgn().Add_nl(); // .load_text(\n
|
||||
bldr.Add_quote_xtn_bgn(); // <~{\n'
|
||||
for (int i = 0; i < ns_grp_len; i++) {
|
||||
Xow_ns ns = ns_grp.Get_at(i);
|
||||
bfr.Add_int_variable(ns.Id()).Add_byte_pipe(); // id|
|
||||
csv_parser.Save(bfr, ns.Name_bry()); // name
|
||||
bfr.Add_byte_nl(); // \n
|
||||
}
|
||||
bldr.Add_quote_xtn_end(); // ']:>\n
|
||||
bldr.Add_paren_end().Add_proc_cont_one(Invk_lang).Add_nl(); // ).lang\n
|
||||
}
|
||||
public static void Save_specials(Gfs_bldr bldr, Xol_specials_mgr specials_mgr) {
|
||||
int specials_len = specials_mgr.Count(); Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
if (specials_len == 0) return;
|
||||
Bry_bfr bfr = bldr.Bfr();
|
||||
bldr.Add_proc_cont_one(Xol_lang.Invk_specials).Add_nl();
|
||||
bldr.Add_indent().Add_proc_cont_one(Xol_specials_mgr.Invk_clear).Add_nl();
|
||||
bldr.Add_indent().Add_proc_cont_one(Invk_load_text).Add_paren_bgn().Add_nl(); // .load_text(\n
|
||||
bldr.Add_quote_xtn_bgn(); // <~{\n'
|
||||
for (int i = 0; i < specials_len; i++) {
|
||||
Xol_specials_itm itm = specials_mgr.Get_at(i);
|
||||
bfr.Add(itm.Special()).Add_byte_pipe(); // id|
|
||||
int aliases_len = itm.Aliases().length;
|
||||
for (int j = 0; j < aliases_len; j++) {
|
||||
if (j != 0) bfr.Add_byte(Byte_ascii.Tilde);
|
||||
csv_parser.Save(bfr, itm.Aliases()[j]); // name
|
||||
}
|
||||
bfr.Add_byte_nl(); // \n
|
||||
}
|
||||
bldr.Add_quote_xtn_end(); // ']:>\n
|
||||
bldr.Add_paren_end().Add_proc_cont_one(Invk_lang).Add_nl(); // ).lang\n
|
||||
}
|
||||
public static void Save_keywords(Gfs_bldr bldr, Xol_kwd_mgr kwd_mgr) {
|
||||
int len = kwd_mgr.Len(); Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
int count = 0;
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_kwd_grp grp = kwd_mgr.Get_at(i); if (grp == null) continue; // some items may not be loaded/set by lang
|
||||
++count;
|
||||
}
|
||||
if (count == 0) return;
|
||||
Bry_bfr bfr = bldr.Bfr();
|
||||
bldr.Add_proc_cont_one(Xol_lang.Invk_keywords).Add_nl(); // .keywords\n
|
||||
bldr.Add_indent().Add_proc_cont_one(Invk_load_text).Add_paren_bgn().Add_nl(); // .load_text(\n
|
||||
bldr.Add_quote_xtn_bgn(); // <~{\n'
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_kwd_grp grp = kwd_mgr.Get_at(i); if (grp == null) continue; // some items may not be loaded/set by lang
|
||||
csv_parser.Save(bfr, grp.Key()); // key
|
||||
bfr.Add_byte_pipe(); // |
|
||||
bfr.Add_int_bool(grp.Case_match()).Add_byte_pipe(); // 1|
|
||||
int word_len = grp.Itms().length;
|
||||
for (int j = 0; j < word_len; j++) {
|
||||
Xol_kwd_itm word = grp.Itms()[j];
|
||||
csv_parser.Save(bfr, word.Val()); // word
|
||||
bfr.Add_byte(Byte_ascii.Tilde); // ~
|
||||
}
|
||||
bldr.Add_nl(); // \n
|
||||
}
|
||||
bldr.Add_quote_xtn_end(); // ']:>\n
|
||||
bldr.Add_paren_end().Add_proc_cont_one(Invk_lang).Add_nl(); // ).lang\n
|
||||
}
|
||||
public static void Save_messages(Gfs_bldr bldr, Xol_msg_mgr msg_mgr, boolean dirty) {
|
||||
int len = msg_mgr.Itms_max(); Xol_csv_parser csv_parser = Xol_csv_parser._;
|
||||
int count = 0;
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_msg_itm itm = msg_mgr.Itm_by_id_or_null(i); if (itm == null) continue; // some items may not be loaded/set by lang
|
||||
if (dirty && !itm.Dirty()) continue; // TEST:
|
||||
++count;
|
||||
}
|
||||
if (count == 0) return;
|
||||
Bry_bfr bfr = bldr.Bfr();
|
||||
bldr.Add_proc_cont_one(Xol_lang.Invk_messages).Add_nl(); // .keywords\n
|
||||
bldr.Add_indent().Add_proc_cont_one(Invk_load_text).Add_paren_bgn().Add_nl(); // .load_text(\n
|
||||
bldr.Add_quote_xtn_bgn(); // <~{\n'
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_msg_itm itm = msg_mgr.Itm_by_id_or_null(i); if (itm == null) continue; // some items may not be loaded/set by lang
|
||||
if (dirty && !itm.Dirty()) continue; // TEST:
|
||||
csv_parser.Save(bfr, itm.Key()); // key
|
||||
bfr.Add_byte_pipe(); // |
|
||||
csv_parser.Save(bfr, itm.Val()); // val
|
||||
bfr.Add_byte_nl(); // \n
|
||||
}
|
||||
bldr.Add_quote_xtn_end(); // ']:>\n
|
||||
bldr.Add_paren_end().Add_proc_cont_one(Invk_lang).Add_nl(); // ).lang\n
|
||||
}
|
||||
public static final String Invk_load_text = "load_text", Invk_lang = "lang";
|
||||
}
|
||||
345
400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl_tst.java
Normal file
345
400_xowa/src_140_lang/gplx/xowa/Xol_lang_srl_tst.java
Normal file
@@ -0,0 +1,345 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import org.junit.*;
|
||||
import gplx.intl.*; import gplx.xowa.apps.*; import gplx.xowa.langs.numbers.*;
|
||||
public class Xol_lang_srl_tst {
|
||||
private Xol_lang_srl_fxt fxt = new Xol_lang_srl_fxt();
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@Test public void Ns_names() {
|
||||
String raw = String_.Concat_lines_nl
|
||||
( "ns_names"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "6|Filex"
|
||||
, "10|Templatex"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
);
|
||||
fxt.Invk(raw);
|
||||
Xol_ns_grp grp = fxt.Lang().Ns_names();
|
||||
fxt.Tst_ns_grp(grp, fxt.ns_(6, "Filex"), fxt.ns_(10, "Templatex"));
|
||||
fxt.Run_save_ns_grp(grp, Xol_lang.Invk_ns_names, raw);
|
||||
}
|
||||
@Test public void Ns_aliases() {
|
||||
String raw = String_.Concat_lines_nl
|
||||
( "ns_aliases"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "6|Filex"
|
||||
, "10|Templatex"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
);
|
||||
fxt.Invk(raw);
|
||||
Xol_ns_grp grp = fxt.Lang().Ns_aliases();
|
||||
fxt.Tst_ns_grp(grp, fxt.ns_(6, "Filex"), fxt.ns_(10, "Templatex"));
|
||||
fxt.Run_save_ns_grp(grp, Xol_lang.Invk_ns_aliases, raw);
|
||||
}
|
||||
@Test public void Kwds() {
|
||||
String raw = String_.Concat_lines_nl // NOTE: notoc must go before toc because ID order
|
||||
( "keywords"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "notoc|1|no_table_of_contents~toc_n~"
|
||||
, "toc|0|table_of_contents~toc_y~"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
);
|
||||
fxt.Invk(raw);
|
||||
Xol_kwd_mgr kwd_mgr = fxt.Lang().Kwd_mgr();
|
||||
fxt.Tst_keywords(kwd_mgr, fxt.kwd_("notoc", true, "no_table_of_contents", "toc_n"), fxt.kwd_("toc", false, "table_of_contents", "toc_y"));
|
||||
fxt.Run_save_kwd_mgr(kwd_mgr, Xol_lang.Invk_keywords, raw);
|
||||
}
|
||||
@Test public void Specials() {
|
||||
String raw = String_.Concat_lines_nl // NOTE: notoc must go before toc because ID order
|
||||
( "specials"
|
||||
, " .clear"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "Randompage|PageAuHasard~Page_au_hasard"
|
||||
, "Search|Recherche~Rechercher"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
);
|
||||
fxt.Invk(raw);
|
||||
Xol_specials_mgr specials_mgr = fxt.Lang().Specials_mgr();
|
||||
fxt.Tst_specials(specials_mgr, fxt.special_("Randompage", "PageAuHasard", "Page_au_hasard"), fxt.special_("Search", "Recherche", "Rechercher"));
|
||||
fxt.Run_save_specials_mgr(specials_mgr, Xol_lang.Invk_specials, raw);
|
||||
}
|
||||
@Test public void Kwds_blank_line() { // PURPOSE.fix: extra blank line negates entire entry
|
||||
String raw = String_.Concat_lines_nl
|
||||
( "keywords"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "toc|0|table_of_contents~toc_y~"
|
||||
, ""
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
);
|
||||
fxt.Invk(raw);
|
||||
Xol_kwd_mgr kwd_mgr = fxt.Lang().Kwd_mgr();
|
||||
fxt.Tst_keywords(kwd_mgr, fxt.kwd_("toc", false, "table_of_contents", "toc_y")); // make sure 2 items (and not 0)
|
||||
}
|
||||
@Test public void Msgs() {
|
||||
String raw = String_.Concat_lines_nl
|
||||
( "messages"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "sunday|dimanche"
|
||||
, "monday|lundi"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
);
|
||||
fxt.Invk(raw);
|
||||
Xol_msg_mgr msg_mgr = fxt.Lang().Msg_mgr();
|
||||
fxt.Tst_messages(msg_mgr, fxt.msg_("sunday", "dimanche"), fxt.msg_("monday", "lundi"));
|
||||
fxt.Run_save_msg_mgr(msg_mgr, Xol_lang.Invk_messages, raw);
|
||||
}
|
||||
@Test public void Fallback() {
|
||||
Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App(), "zh-hans"), String_.Concat_lines_nl
|
||||
( "this"
|
||||
, ".keywords"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "toc|0|table_of_contents~toc_y~"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
, ".ns_names"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "6|FileA"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
, ".messages"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "sunday|sunday1"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
, ";"
|
||||
));
|
||||
String raw = String_.Concat_lines_nl // NOTE: notoc must go before toc because ID order
|
||||
( "fallback_load('zh-hans')"
|
||||
, ".keywords"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "notoc|1|no_table_of_contents~toc_n~"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
, ".ns_names"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "6|FileB"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
, ".messages"
|
||||
, " .load_text("
|
||||
, "<:['"
|
||||
, "monday|monday1"
|
||||
, "']:>"
|
||||
, ").lang"
|
||||
);
|
||||
fxt.Invk(raw);
|
||||
Xol_kwd_mgr kwd_mgr = fxt.Lang().Kwd_mgr();
|
||||
fxt.Tst_keywords(kwd_mgr, fxt.kwd_("notoc", true, "no_table_of_contents", "toc_n"), fxt.kwd_("toc", false, "table_of_contents", "toc_y"));
|
||||
fxt.Tst_ns_grp(fxt.Lang().Ns_names(), fxt.ns_(6, "FileA"), fxt.ns_(6, "FileB"));
|
||||
fxt.Tst_messages(fxt.Lang().Msg_mgr(), fxt.msg_("sunday", "sunday1"), fxt.msg_("monday", "monday1"));
|
||||
}
|
||||
@Test public void Fallback_circular() { // PURPOSE: pt and pt-br cite each other as fallback in Messages*.php; DATE:2013-02-18
|
||||
Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App(), "pt") , "fallback_load('pt-br');");
|
||||
Io_mgr._.SaveFilStr(Xol_lang_.xo_lang_fil_(fxt.App(), "pt-br") , "fallback_load('pt');");
|
||||
Xol_lang lang = new Xol_lang(fxt.App(), Bry_.new_ascii_("pt"));
|
||||
lang.Init_by_load();
|
||||
}
|
||||
@Test public void Num_fmt() {
|
||||
String raw = String_.Concat_lines_nl
|
||||
( "numbers {"
|
||||
, " separators {"
|
||||
, " clear;"
|
||||
, " set(',', '.');"
|
||||
, " set('.', ',');"
|
||||
, " }"
|
||||
, "}"
|
||||
);
|
||||
fxt.Invk_no_semic(raw);
|
||||
fxt.Tst_num_fmt("1234,56", "1.234.56"); // NOTE: dot is repeated; confirmed with dewiki and {{formatnum:1234,56}}
|
||||
fxt.Run_save_num_mgr(fxt.Lang().Num_mgr(), raw);
|
||||
}
|
||||
@Test public void Num_fmt_apos() { // PURPOSE:de.ch has apos which breaks gfs
|
||||
fxt .Init_clear()
|
||||
.Init_separators(",", "'")
|
||||
.Init_separators(".", ",")
|
||||
;
|
||||
fxt.Run_save_num_mgr(fxt.Lang().Num_mgr(), String_.Concat_lines_nl
|
||||
( "numbers {"
|
||||
, " separators {"
|
||||
, " clear;"
|
||||
, " set(',', '''');"
|
||||
, " set('.', ',');"
|
||||
, " }"
|
||||
, "}"
|
||||
));
|
||||
}
|
||||
}
|
||||
class Xol_lang_srl_fxt {
|
||||
public void Clear() {
|
||||
app = Xoa_app_fxt.app_();
|
||||
lang = new Xol_lang(app, Bry_.new_utf8_("fr"));
|
||||
Xoa_gfs_mgr.Msg_parser_init(); // required by fallback_load
|
||||
} GfsCtx ctx = GfsCtx.new_(); Gfs_bldr bldr = new Gfs_bldr(); //Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
|
||||
public Xoa_app App() {return app;} private Xoa_app app;
|
||||
public Xol_lang Lang() {return lang;} private Xol_lang lang;
|
||||
public Xow_ns ns_(int id, String s) {return new Xow_ns(id, Xow_ns_case_.Id_1st, Bry_.new_utf8_(s), false);}
|
||||
public Xol_specials_itm special_(String key, String... words) {return new Xol_specials_itm(Bry_.new_utf8_(key), Bry_.Ary(words));}
|
||||
public Xol_kwd_grp kwd_(String key, boolean case_match, String... words) {
|
||||
Xol_kwd_grp rv = new Xol_kwd_grp(Bry_.new_utf8_(key));
|
||||
rv.Srl_load(case_match, Bry_.Ary(words));
|
||||
return rv;
|
||||
}
|
||||
public Xol_msg_itm msg_(String key, String val) {
|
||||
Xol_msg_itm rv = lang.Msg_mgr().Itm_by_key_or_new(Bry_.new_utf8_(key));
|
||||
rv.Atrs_set(Bry_.new_utf8_(val), false, false);
|
||||
return rv;
|
||||
}
|
||||
public Xol_lang_srl_fxt Init_clear() {
|
||||
lang.Num_mgr().Clear();
|
||||
return this;
|
||||
}
|
||||
public Xol_lang_srl_fxt Init_separators(String k, String v) {
|
||||
lang.Num_mgr().Separators_mgr().Set(Bry_.new_utf8_(k), Bry_.new_utf8_(v));
|
||||
return this;
|
||||
}
|
||||
public void Invk(String raw) {
|
||||
app.Gfs_mgr().Run_str_for(lang, raw + ";");
|
||||
}
|
||||
public void Invk_no_semic(String raw) {
|
||||
app.Gfs_mgr().Run_str_for(lang, raw);
|
||||
}
|
||||
public void Tst_ns_grp(Xol_ns_grp grp, Xow_ns... expd_ns) {
|
||||
Tfds.Eq_str_lines(Xto_str(expd_ns), Xto_str(Xto_ary(grp)));
|
||||
}
|
||||
public void Run_save_ns_grp(Xol_ns_grp grp, String invk, String raw) {
|
||||
Xol_lang_srl.Save_ns_grps(bldr, grp, invk);
|
||||
Tfds.Eq_str_lines("." + raw, bldr.Bfr().XtoStrAndClear());
|
||||
}
|
||||
public void Run_save_kwd_mgr(Xol_kwd_mgr kwd_mgr, String invk, String raw) {
|
||||
Xol_lang_srl.Save_keywords(bldr, kwd_mgr);
|
||||
Tfds.Eq_str_lines("." + raw, bldr.Bfr().XtoStrAndClear());
|
||||
}
|
||||
public void Run_save_msg_mgr(Xol_msg_mgr msg_mgr, String invk, String raw) {
|
||||
Xol_lang_srl.Save_messages(bldr, msg_mgr, true);
|
||||
Tfds.Eq_str_lines("." + raw, bldr.Bfr().XtoStrAndClear());
|
||||
}
|
||||
public void Run_save_num_mgr(Xol_num_mgr num_mgr, String raw) {
|
||||
Xol_lang_srl.Save_num_mgr(bldr, num_mgr);
|
||||
Tfds.Eq_str_lines(raw, bldr.Bfr().XtoStrAndClear());
|
||||
}
|
||||
public void Run_save_specials_mgr(Xol_specials_mgr specials_mgr, String invk, String raw) {
|
||||
Xol_lang_srl.Save_specials(bldr, specials_mgr);
|
||||
Tfds.Eq_str_lines("." + raw, bldr.Bfr().XtoStrAndClear());
|
||||
}
|
||||
public void Tst_num_fmt(String raw, String expd) {Tfds.Eq(expd, String_.new_utf8_(lang.Num_mgr().Format_num(Bry_.new_utf8_(raw))));}
|
||||
public void Tst_keywords(Xol_kwd_mgr kwd_mgr, Xol_kwd_grp... ary) {
|
||||
Tfds.Eq_str_lines(Xto_str(ary), Xto_str(Xto_ary(kwd_mgr)));
|
||||
}
|
||||
public void Tst_messages(Xol_msg_mgr msg_mgr, Xol_msg_itm... ary) {
|
||||
Tfds.Eq_str_lines(Xto_str(ary), Xto_str(Xto_ary(msg_mgr)));
|
||||
}
|
||||
public void Tst_specials(Xol_specials_mgr specials_mgr, Xol_specials_itm... expd) {
|
||||
Tfds.Eq_str_lines(Xto_str(expd), Xto_str(Xto_ary(specials_mgr)));
|
||||
}
|
||||
private String Xto_str(Xol_specials_itm[] ary) {
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_specials_itm itm = ary[i];
|
||||
sb.Add(itm.Special()).Add("|");
|
||||
int aliases_len = itm.Aliases().length;
|
||||
for (int j = 0; j < aliases_len; j++) {
|
||||
if (j != 0) sb.Add("~");
|
||||
sb.Add(itm.Aliases()[j]).Add_char_nl();
|
||||
}
|
||||
}
|
||||
return sb.XtoStrAndClear();
|
||||
}
|
||||
private Xol_specials_itm[] Xto_ary(Xol_specials_mgr specials_mgr) {
|
||||
int len = specials_mgr.Count();
|
||||
Xol_specials_itm[] rv = new Xol_specials_itm[len];
|
||||
for (int i = 0; i < len; i++)
|
||||
rv[i] = specials_mgr.Get_at(i);
|
||||
return rv;
|
||||
}
|
||||
String Xto_str(Xow_ns[] ary) {
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xow_ns ns = ary[i];
|
||||
sb.Add(ns.Id()).Add("|").Add(ns.Name_str()).Add_char_nl();
|
||||
}
|
||||
return sb.XtoStrAndClear();
|
||||
}
|
||||
Xow_ns[] Xto_ary(Xol_ns_grp ary) {
|
||||
int len = ary.Len();
|
||||
Xow_ns[] rv = new Xow_ns[len];
|
||||
for (int i = 0; i < len; i++)
|
||||
rv[i] = ary.Get_at(i);
|
||||
return rv;
|
||||
}
|
||||
Xol_kwd_grp[] Xto_ary(Xol_kwd_mgr kwd_mgr) {
|
||||
int len = kwd_mgr.Len();
|
||||
ListAdp rv = ListAdp_.new_();
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_kwd_grp kwd_grp = kwd_mgr.Get_at(i);
|
||||
if (kwd_grp == null) continue;
|
||||
rv.Add(kwd_grp);
|
||||
}
|
||||
return (Xol_kwd_grp[])rv.XtoAry(Xol_kwd_grp.class);
|
||||
}
|
||||
String Xto_str(Xol_kwd_grp[] ary) {
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_kwd_grp grp = ary[i];
|
||||
sb.Add(grp.Key()).Add("|").Add(grp.Case_match() ? "1" : "0").Add("|");
|
||||
Xol_kwd_itm[] itms = grp.Itms();
|
||||
int itms_len = itms.length;
|
||||
for (int j = 0; j < itms_len; j++) {
|
||||
sb.Add(itms[i].Val()).Add(";");
|
||||
}
|
||||
sb.Add_char_nl();
|
||||
}
|
||||
return sb.XtoStrAndClear();
|
||||
}
|
||||
Xol_msg_itm[] Xto_ary(Xol_msg_mgr msg_mgr) {
|
||||
int len = msg_mgr.Itms_max();
|
||||
ListAdp rv = ListAdp_.new_();
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_msg_itm itm = msg_mgr.Itm_by_id_or_null(i);
|
||||
if (itm == null || !itm.Dirty()) continue;
|
||||
rv.Add(itm);
|
||||
}
|
||||
return (Xol_msg_itm[])rv.XtoAry(Xol_msg_itm.class);
|
||||
}
|
||||
String Xto_str(Xol_msg_itm[] ary) {
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
Xol_msg_itm itm = ary[i];
|
||||
sb.Add(itm.Key()).Add("|").Add(itm.Val()).Add_char_nl();
|
||||
}
|
||||
return sb.XtoStrAndClear();
|
||||
}
|
||||
private static String_bldr sb = String_bldr_.new_();
|
||||
}
|
||||
72
400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr.java
Normal file
72
400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr.java
Normal file
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_lnki_trail_mgr implements GfoInvkAble {
|
||||
public Xol_lnki_trail_mgr(Xol_lang lang) {}
|
||||
public void Clear() {trie.Clear();}
|
||||
public int Count() {return trie.Count();}
|
||||
public ByteTrieMgr_slim Trie() {return trie;} ByteTrieMgr_slim trie = ByteTrieMgr_slim.cs_();
|
||||
public void Add(byte[] v) {trie.Add(v, v);}
|
||||
public void Del(byte[] v) {trie.Del(v);}
|
||||
private void Add(String... ary) {
|
||||
for (String itm_str : ary) {
|
||||
byte[] itm = Bry_.new_utf8_(itm_str);
|
||||
trie.Add(itm, itm);
|
||||
}
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_add_range)) Add_range(m);
|
||||
else if (ctx.Match(k, Invk_add_many)) Add_many(m);
|
||||
else if (ctx.Match(k, Invk_add_bulk)) Add_bulk(m);
|
||||
else if (ctx.Match(k, Invk_clear)) Clear();
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_add_many = "add_many", Invk_add_range = "add_range", Invk_add_bulk = "add_bulk", Invk_clear = "clear";
|
||||
private void Add_bulk(GfoMsg m) {byte[] src = m.ReadBry("bulk"); Add_bulk(src);}
|
||||
public void Add_bulk(byte[] src) {
|
||||
int pos = 0, src_len = src.length;
|
||||
while (true) {
|
||||
byte[] itm = gplx.intl.Utf8_.Get_char_at_pos_as_bry(src, pos);
|
||||
Add(itm);
|
||||
pos += itm.length;
|
||||
if (pos >= src_len) break;
|
||||
}
|
||||
}
|
||||
private void Add_many(GfoMsg m) {
|
||||
int len = m.Args_count();
|
||||
for (int i = 0; i < len; i++) {
|
||||
KeyVal kv = m.Args_getAt(i);
|
||||
Add(kv.Val_to_str_or_empty());
|
||||
}
|
||||
}
|
||||
private void Add_range(GfoMsg m) {
|
||||
byte bgn = Add_rng_extract(m, "bgn");
|
||||
byte end = Add_rng_extract(m, "end");
|
||||
for (byte i = bgn; i <= end; i++)
|
||||
Add(new byte[] {i});
|
||||
}
|
||||
public void Add_range(byte bgn, byte end) {
|
||||
for (byte i = bgn; i <= end; i++)
|
||||
Add(new byte[] {i});
|
||||
}
|
||||
byte Add_rng_extract(GfoMsg m, String key) {
|
||||
byte[] bry = m.ReadBry(key);
|
||||
if (bry.length != 1) throw Err_.new_fmt_("argument must be ascii character: ~{0} ~{1}", key, String_.new_utf8_(bry));
|
||||
return bry[0];
|
||||
}
|
||||
}
|
||||
42
400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr_tst.java
Normal file
42
400_xowa/src_140_lang/gplx/xowa/Xol_lnki_trail_mgr_tst.java
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import org.junit.*;
|
||||
public class Xol_lnki_trail_mgr_tst {
|
||||
@Before public void init() {fxt.Clear();} private Xol_lnki_trail_mgr_fxt fxt = new Xol_lnki_trail_mgr_fxt();
|
||||
@Test public void Add_bulk() {
|
||||
fxt.Test_add_bulk("äöüß", "ä", "ö", "ü", "ß");
|
||||
}
|
||||
}
|
||||
class Xol_lnki_trail_mgr_fxt {
|
||||
public void Clear() {
|
||||
app = Xoa_app_fxt.app_();
|
||||
lang = new Xol_lang(app, Bry_.new_utf8_("fr"));
|
||||
lnki_trail_mgr = lang.Lnki_trail_mgr();
|
||||
} private Xoa_app app; Xol_lang lang; Xol_lnki_trail_mgr lnki_trail_mgr;
|
||||
public void Test_add_bulk(String raw, String... expd_ary) {
|
||||
lnki_trail_mgr.Add_bulk(Bry_.new_utf8_(raw));
|
||||
int expd_len = expd_ary.length;
|
||||
Tfds.Eq(expd_len, lang.Lnki_trail_mgr().Count());
|
||||
for (int i = 0; i < expd_len; i++) {
|
||||
byte[] expd_bry = Bry_.new_utf8_(expd_ary[i]);
|
||||
byte[] actl_bry = (byte[])lnki_trail_mgr.Trie().MatchAtCur(expd_bry, 0, expd_bry.length);
|
||||
Tfds.Eq_bry(expd_bry, actl_bry);
|
||||
}
|
||||
}
|
||||
}
|
||||
43
400_xowa/src_140_lang/gplx/xowa/Xol_msg_itm.java
Normal file
43
400_xowa/src_140_lang/gplx/xowa/Xol_msg_itm.java
Normal file
@@ -0,0 +1,43 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_msg_itm {
|
||||
public Xol_msg_itm(int id, byte[] key) {this.id = id; this.key = key;}
|
||||
public int Id() {return id;} public void Id_(int v) {this.id = v;} private int id;
|
||||
public boolean Src_is_missing() {return src == Src_missing;}
|
||||
public byte Src() {return src;} public Xol_msg_itm Src_(byte v) {src = v; return this;} private byte src;
|
||||
public byte[] Key() {return key;} private byte[] key;
|
||||
public byte[] Val() {return val;} private byte[] val;
|
||||
public boolean Has_fmt_arg() {return has_fmt_arg;} private boolean has_fmt_arg;
|
||||
public boolean Has_tmpl_txt() {return has_tmpl_txt;} private boolean has_tmpl_txt;
|
||||
public void Atrs_set(byte[] val, boolean has_fmt_arg, boolean has_tmpl_txt) {
|
||||
this.val = val; this.has_fmt_arg = has_fmt_arg; this.has_tmpl_txt = has_tmpl_txt;
|
||||
}
|
||||
public boolean Dirty() {return dirty;} public Xol_msg_itm Dirty_(boolean v) {dirty = v; return this;} private boolean dirty;
|
||||
public byte[] Fmt(Bry_bfr bfr, Object... args) {
|
||||
tmp_fmtr.Fmt_(val);
|
||||
tmp_fmtr.Bld_bfr_many(bfr, args);
|
||||
return bfr.XtoAryAndClear();
|
||||
} static Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_();
|
||||
public byte[] Fmt_tmp(Bry_bfr bfr, byte[] tmp_val, Object... args) {
|
||||
tmp_fmtr.Fmt_(tmp_val);
|
||||
tmp_fmtr.Bld_bfr_many(bfr, args);
|
||||
return bfr.XtoAryAndClear();
|
||||
}
|
||||
public static final byte Src_null = 0, Src_lang = 1, Src_wiki = 2, Src_missing = 3;
|
||||
}
|
||||
515
400_xowa/src_140_lang/gplx/xowa/Xol_msg_itm_.java
Normal file
515
400_xowa/src_140_lang/gplx/xowa/Xol_msg_itm_.java
Normal file
@@ -0,0 +1,515 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_msg_itm_ {
|
||||
public static final int
|
||||
Id_dte_dow_name_sunday = 0
|
||||
, Id_dte_dow_name_monday = 1
|
||||
, Id_dte_dow_name_tuesday = 2
|
||||
, Id_dte_dow_name_wednesday = 3
|
||||
, Id_dte_dow_name_thursday = 4
|
||||
, Id_dte_dow_name_friday = 5
|
||||
, Id_dte_dow_name_saturday = 6
|
||||
, Id_dte_dow_abrv_sun = 7
|
||||
, Id_dte_dow_abrv_mon = 8
|
||||
, Id_dte_dow_abrv_tue = 9
|
||||
, Id_dte_dow_abrv_wed = 10
|
||||
, Id_dte_dow_abrv_thu = 11
|
||||
, Id_dte_dow_abrv_fri = 12
|
||||
, Id_dte_dow_abrv_sat = 13
|
||||
, Id_dte_month_name_january = 14
|
||||
, Id_dte_month_name_february = 15
|
||||
, Id_dte_month_name_march = 16
|
||||
, Id_dte_month_name_april = 17
|
||||
, Id_dte_month_name_may = 18
|
||||
, Id_dte_month_name_june = 19
|
||||
, Id_dte_month_name_july = 20
|
||||
, Id_dte_month_name_august = 21
|
||||
, Id_dte_month_name_september = 22
|
||||
, Id_dte_month_name_october = 23
|
||||
, Id_dte_month_name_november = 24
|
||||
, Id_dte_month_name_december = 25
|
||||
, Id_dte_month_gen_january = 26
|
||||
, Id_dte_month_gen_february = 27
|
||||
, Id_dte_month_gen_march = 28
|
||||
, Id_dte_month_gen_april = 29
|
||||
, Id_dte_month_gen_may = 30
|
||||
, Id_dte_month_gen_june = 31
|
||||
, Id_dte_month_gen_july = 32
|
||||
, Id_dte_month_gen_august = 33
|
||||
, Id_dte_month_gen_september = 34
|
||||
, Id_dte_month_gen_october = 35
|
||||
, Id_dte_month_gen_november = 36
|
||||
, Id_dte_month_gen_december = 37
|
||||
, Id_dte_month_abrv_jan = 38
|
||||
, Id_dte_month_abrv_feb = 39
|
||||
, Id_dte_month_abrv_mar = 40
|
||||
, Id_dte_month_abrv_apr = 41
|
||||
, Id_dte_month_abrv_may = 42
|
||||
, Id_dte_month_abrv_jun = 43
|
||||
, Id_dte_month_abrv_jul = 44
|
||||
, Id_dte_month_abrv_aug = 45
|
||||
, Id_dte_month_abrv_sep = 46
|
||||
, Id_dte_month_abrv_oct = 47
|
||||
, Id_dte_month_abrv_nov = 48
|
||||
, Id_dte_month_abrv_dec = 49
|
||||
, Id_pfunc_desc = 50
|
||||
, Id_pfunc_time_error = 51
|
||||
, Id_pfunc_time_too_long = 52
|
||||
, Id_pfunc_rel2abs_invalid_depth = 53
|
||||
, Id_pfunc_expr_stack_exhausted = 54
|
||||
, Id_pfunc_expr_unexpected_number = 55
|
||||
, Id_pfunc_expr_preg_match_failure = 56
|
||||
, Id_pfunc_expr_unrecognised_word = 57
|
||||
, Id_pfunc_expr_unexpected_operator = 58
|
||||
, Id_pfunc_expr_missing_operand = 59
|
||||
, Id_pfunc_expr_unexpected_closing_bracket = 60
|
||||
, Id_pfunc_expr_unrecognised_punctuation = 61
|
||||
, Id_pfunc_expr_unclosed_bracket = 62
|
||||
, Id_pfunc_expr_division_by_zero = 63
|
||||
, Id_pfunc_expr_invalid_argument = 64
|
||||
, Id_pfunc_expr_invalid_argument_ln = 65
|
||||
, Id_pfunc_expr_unknown_error = 66
|
||||
, Id_pfunc_expr_not_a_number = 67
|
||||
, Id_pfunc_string_too_long = 68
|
||||
, Id_pfunc_convert_dimensionmismatch = 69
|
||||
, Id_pfunc_convert_unknownunit = 70
|
||||
, Id_pfunc_convert_unknowndimension = 71
|
||||
, Id_pfunc_convert_invalidcompoundunit = 72
|
||||
, Id_pfunc_convert_nounit = 73
|
||||
, Id_pfunc_convert_doublecompoundunit = 74
|
||||
, Id_toc = 75
|
||||
, Id_redirectedfrom = 76
|
||||
, Id_sp_allpages_hdr = 77
|
||||
, Id_sp_allpages_bwd = 78
|
||||
, Id_sp_allpages_fwd = 79
|
||||
, Id_js_tables_collapsible_collapse = 80
|
||||
, Id_js_tables_collapsible_expand = 81
|
||||
, Id_js_tables_sort_descending = 82
|
||||
, Id_js_tables_sort_ascending = 83
|
||||
, Id_ctg_tbl_hdr = 84
|
||||
, Id_portal_lastmodified = 85
|
||||
, Id_file_enlarge = 86
|
||||
, Id_xowa_portal_exit_text = 87
|
||||
, Id_xowa_portal_exit_tooltip = 88
|
||||
, Id_xowa_portal_exit_accesskey = 89
|
||||
, Id_xowa_portal_view_html_text = 90
|
||||
, Id_xowa_portal_view_html_tooltip = 91
|
||||
, Id_xowa_portal_view_html_accesskey = 92
|
||||
, Id_xowa_portal_bookmarks_text = 93
|
||||
, Id_xowa_portal_bookmarks_add_text = 94
|
||||
, Id_xowa_portal_bookmarks_add_tooltip = 95
|
||||
, Id_xowa_portal_bookmarks_add_accesskey = 96
|
||||
, Id_xowa_portal_bookmarks_show_text = 97
|
||||
, Id_xowa_portal_bookmarks_show_tooltip = 98
|
||||
, Id_xowa_portal_bookmarks_show_accesskey = 99
|
||||
, Id_xowa_portal_page_history_text = 100
|
||||
, Id_xowa_portal_page_history_tooltip = 101
|
||||
, Id_xowa_portal_page_history_accesskey = 102
|
||||
, Id_xowa_portal_options_text = 103
|
||||
, Id_xowa_portal_options_tooltip = 104
|
||||
, Id_xowa_portal_options_accesskey = 105
|
||||
, Id_xowa_portal_version_text = 106
|
||||
, Id_xowa_portal_build_time_text = 107
|
||||
, Id_page_lang_header = 108
|
||||
, Id_xowa_window_go_bwd_btn_tooltip = 109
|
||||
, Id_xowa_window_go_fwd_btn_tooltip = 110
|
||||
, Id_xowa_window_url_box_tooltip = 111
|
||||
, Id_xowa_window_url_btn_tooltip = 112
|
||||
, Id_xowa_window_search_box_tooltip = 113
|
||||
, Id_xowa_window_search_btn_tooltip = 114
|
||||
, Id_xowa_window_find_close_btn_tooltip = 115
|
||||
, Id_xowa_window_find_box_tooltip = 116
|
||||
, Id_xowa_window_find_fwd_btn_tooltip = 117
|
||||
, Id_xowa_window_find_bwd_btn_tooltip = 118
|
||||
, Id_xowa_window_prog_box_tooltip = 119
|
||||
, Id_xowa_window_info_box_tooltip = 120
|
||||
, Id_scribunto_parser_error = 121
|
||||
, Id_ns_blankns = 122
|
||||
, Id_ctg_page_label = 123
|
||||
, Id_ctg_page_header = 124
|
||||
, Id_ctg_subc_label = 125
|
||||
, Id_ctg_file_header = 126
|
||||
, Id_ctg_empty = 127
|
||||
, Id_ctg_subc_count = 128
|
||||
, Id_ctg_subc_count_limit = 129
|
||||
, Id_ctg_page_count = 130
|
||||
, Id_ctg_page_count_limit = 131
|
||||
, Id_ctg_file_count = 132
|
||||
, Id_ctg_file_count_limit = 133
|
||||
, Id_ctgtree_subc_counts = 134
|
||||
, Id_ctgtree_subc_counts_ctg = 135
|
||||
, Id_ctgtree_subc_counts_page = 136
|
||||
, Id_ctgtree_subc_counts_file = 137
|
||||
, Id_next_results = 138
|
||||
, Id_prev_results = 139
|
||||
, Id_list_continues = 140
|
||||
, Id_xowa_wikidata_languages = 141
|
||||
, Id_xowa_wikidata_labels = 142
|
||||
, Id_xowa_wikidata_aliasesHead = 143
|
||||
, Id_xowa_wikidata_descriptions = 144
|
||||
, Id_xowa_wikidata_links = 145
|
||||
, Id_xowa_wikidata_claims = 146
|
||||
, Id_xowa_wikidata_json = 147
|
||||
, Id_xowa_wikidata_language = 148
|
||||
, Id_xowa_wikidata_wiki = 149
|
||||
, Id_xowa_wikidata_label = 150
|
||||
, Id_xowa_wikidata_aliases = 151
|
||||
, Id_xowa_wikidata_description = 152
|
||||
, Id_xowa_wikidata_link = 153
|
||||
, Id_xowa_wikidata_property = 154
|
||||
, Id_xowa_wikidata_value = 155
|
||||
, Id_xowa_wikidata_references = 156
|
||||
, Id_xowa_wikidata_qualifiers = 157
|
||||
, Id_search_results_header = 158
|
||||
, Id_edit_toolbar_bold_sample = 159
|
||||
, Id_edit_toolbar_bold_tip = 160
|
||||
, Id_edit_toolbar_italic_sample = 161
|
||||
, Id_edit_toolbar_italic_tip = 162
|
||||
, Id_edit_toolbar_link_sample = 163
|
||||
, Id_edit_toolbar_link_tip = 164
|
||||
, Id_edit_toolbar_headline_sample = 165
|
||||
, Id_edit_toolbar_headline_tip = 166
|
||||
, Id_edit_toolbar_ulist_tip = 167
|
||||
, Id_edit_toolbar_ulist_sample = 168
|
||||
, Id_edit_toolbar_olist_tip = 169
|
||||
, Id_edit_toolbar_olist_sample = 170
|
||||
, Id_xowa_portal_about_text = 171
|
||||
, Id_xowa_portal_about_tooltip = 172
|
||||
, Id_xowa_portal_about_accesskey = 173
|
||||
, Id_symbol_catseparator = 174
|
||||
, Id_symbol_semicolon_separator = 175
|
||||
, Id_symbol_comma_separator = 176
|
||||
, Id_symbol_colon_separator = 177
|
||||
, Id_symbol_autocomment_prefix = 178
|
||||
, Id_symbol_pipe_separator = 179
|
||||
, Id_symbol_word_separator = 180
|
||||
, Id_symbol_ellipsis = 181
|
||||
, Id_symbol_percent = 182
|
||||
, Id_symbol_parentheses = 183
|
||||
, Id_duration_ago = 184
|
||||
, Id_xowa_wikidata_novalue = 185
|
||||
, Id_xowa_wikidata_somevalue = 186
|
||||
, Id_xowa_wikidata_links_wiki = 187
|
||||
, Id_xowa_wikidata_links_wiktionary = 188
|
||||
, Id_xowa_wikidata_links_wikisource = 189
|
||||
, Id_xowa_wikidata_links_wikivoyage = 190
|
||||
, Id_xowa_wikidata_links_wikiquote = 191
|
||||
, Id_xowa_wikidata_links_wikibooks = 192
|
||||
, Id_xowa_wikidata_links_wikiversity = 193
|
||||
, Id_xowa_wikidata_links_wikinews = 194
|
||||
, Id_xowa_wikidata_plus = 195
|
||||
, Id_xowa_wikidata_minus = 196
|
||||
, Id_xowa_wikidata_plusminus = 197
|
||||
, Id_xowa_wikidata_degree = 198
|
||||
, Id_xowa_wikidata_minute = 199
|
||||
, Id_xowa_wikidata_second = 200
|
||||
, Id_xowa_wikidata_north = 201
|
||||
, Id_xowa_wikidata_south = 202
|
||||
, Id_xowa_wikidata_west = 203
|
||||
, Id_xowa_wikidata_east = 204
|
||||
, Id_xowa_wikidata_meters = 205
|
||||
, Id_xowa_wikidata_julian = 206
|
||||
, Id_xowa_wikidata_decade = 207
|
||||
, Id_xowa_wikidata_century = 208
|
||||
, Id_xowa_wikidata_millenium = 209
|
||||
, Id_xowa_wikidata_years1e4 = 210
|
||||
, Id_xowa_wikidata_years1e5 = 211
|
||||
, Id_xowa_wikidata_years1e6 = 212
|
||||
, Id_xowa_wikidata_years1e7 = 213
|
||||
, Id_xowa_wikidata_years1e8 = 214
|
||||
, Id_xowa_wikidata_years1e9 = 215
|
||||
, Id_xowa_wikidata_bc = 216
|
||||
, Id_xowa_wikidata_inTime = 217
|
||||
, Id_ctg_tbl_hidden = 218
|
||||
, Id_ctg_help_page = 219
|
||||
, Id_statistics_title = 220
|
||||
, Id_statistics_header_pages = 221
|
||||
, Id_statistics_articles = 222
|
||||
, Id_statistics_pages = 223
|
||||
, Id_statistics_pages_desc = 224
|
||||
, Id_statistics_header_ns = 225
|
||||
, Id_wikibase_diffview_rank = 226
|
||||
, Id_xowa_wikidata_deprecated = 227
|
||||
, Id_xowa_wikidata_normal = 228
|
||||
, Id_xowa_wikidata_preferred = 229
|
||||
, Id_xowa_wikidata_links_special = 230
|
||||
;
|
||||
public static final int Id__max = 231;
|
||||
public static Xol_msg_itm new_(int id, String key, String val) {return new_(id, Bry_.new_utf8_(key), Bry_.new_utf8_(val));}
|
||||
public static Xol_msg_itm new_(int id, byte[] key, byte[] val) {
|
||||
Xol_msg_itm rv = new Xol_msg_itm(id, key);
|
||||
update_val_(rv, val);
|
||||
return rv;
|
||||
}
|
||||
private static final Bry_fmtr tmp_fmtr = Bry_fmtr.tmp_().Fail_when_invalid_escapes_(false);
|
||||
private static final Bry_bfr tmp_bfr = Bry_bfr.reset_(255);
|
||||
public static void update_val_(Xol_msg_itm itm, byte[] val) {
|
||||
boolean has_fmt_arg = tmp_fmtr.Fmt_(val).Compile().Fmt_args_exist();
|
||||
boolean has_tmpl_txt = Bry_finder.Find_fwd(val, Xop_curly_bgn_lxr.Hook, 0) != -1;
|
||||
val = trie_space.Replace(tmp_bfr, val, 0, val.length);
|
||||
itm.Atrs_set(val, has_fmt_arg, has_tmpl_txt);
|
||||
}
|
||||
public static final byte[] Bry_nbsp = Byte_.Ary_by_ints(192, 160);
|
||||
private static final ByteTrieMgr_slim trie_space = ByteTrieMgr_slim.cs_() // MW:cache/MessageCache.php|get|Fix for trailing whitespace, removed by textarea|DATE:2014-04-29
|
||||
.Add_bry(" " , " ")
|
||||
.Add_bry(" " , Bry_nbsp)
|
||||
.Add_bry(" " , Bry_nbsp)
|
||||
;
|
||||
public static Xol_msg_itm new_(int id) {
|
||||
switch (id) {
|
||||
case Xol_msg_itm_.Id_dte_dow_name_sunday: return new_(Xol_msg_itm_.Id_dte_dow_name_sunday, "sunday", "Sunday");
|
||||
case Xol_msg_itm_.Id_dte_dow_name_monday: return new_(Xol_msg_itm_.Id_dte_dow_name_monday, "monday", "Monday");
|
||||
case Xol_msg_itm_.Id_dte_dow_name_tuesday: return new_(Xol_msg_itm_.Id_dte_dow_name_tuesday, "tuesday", "Tuesday");
|
||||
case Xol_msg_itm_.Id_dte_dow_name_wednesday: return new_(Xol_msg_itm_.Id_dte_dow_name_wednesday, "wednesday", "Wednesday");
|
||||
case Xol_msg_itm_.Id_dte_dow_name_thursday: return new_(Xol_msg_itm_.Id_dte_dow_name_thursday, "thursday", "Thursday");
|
||||
case Xol_msg_itm_.Id_dte_dow_name_friday: return new_(Xol_msg_itm_.Id_dte_dow_name_friday, "friday", "Friday");
|
||||
case Xol_msg_itm_.Id_dte_dow_name_saturday: return new_(Xol_msg_itm_.Id_dte_dow_name_saturday, "saturday", "Saturday");
|
||||
case Xol_msg_itm_.Id_dte_dow_abrv_sun: return new_(Xol_msg_itm_.Id_dte_dow_abrv_sun, "sun", "Sun");
|
||||
case Xol_msg_itm_.Id_dte_dow_abrv_mon: return new_(Xol_msg_itm_.Id_dte_dow_abrv_mon, "mon", "Mon");
|
||||
case Xol_msg_itm_.Id_dte_dow_abrv_tue: return new_(Xol_msg_itm_.Id_dte_dow_abrv_tue, "tue", "Tue");
|
||||
case Xol_msg_itm_.Id_dte_dow_abrv_wed: return new_(Xol_msg_itm_.Id_dte_dow_abrv_wed, "wed", "Wed");
|
||||
case Xol_msg_itm_.Id_dte_dow_abrv_thu: return new_(Xol_msg_itm_.Id_dte_dow_abrv_thu, "thu", "Thu");
|
||||
case Xol_msg_itm_.Id_dte_dow_abrv_fri: return new_(Xol_msg_itm_.Id_dte_dow_abrv_fri, "fri", "Fri");
|
||||
case Xol_msg_itm_.Id_dte_dow_abrv_sat: return new_(Xol_msg_itm_.Id_dte_dow_abrv_sat, "sat", "Sat");
|
||||
case Xol_msg_itm_.Id_dte_month_name_january: return new_(Xol_msg_itm_.Id_dte_month_name_january, "january", "January");
|
||||
case Xol_msg_itm_.Id_dte_month_name_february: return new_(Xol_msg_itm_.Id_dte_month_name_february, "february", "February");
|
||||
case Xol_msg_itm_.Id_dte_month_name_march: return new_(Xol_msg_itm_.Id_dte_month_name_march, "march", "March");
|
||||
case Xol_msg_itm_.Id_dte_month_name_april: return new_(Xol_msg_itm_.Id_dte_month_name_april, "april", "April");
|
||||
case Xol_msg_itm_.Id_dte_month_name_may: return new_(Xol_msg_itm_.Id_dte_month_name_may, "may_long", "May");
|
||||
case Xol_msg_itm_.Id_dte_month_name_june: return new_(Xol_msg_itm_.Id_dte_month_name_june, "june", "June");
|
||||
case Xol_msg_itm_.Id_dte_month_name_july: return new_(Xol_msg_itm_.Id_dte_month_name_july, "july", "July");
|
||||
case Xol_msg_itm_.Id_dte_month_name_august: return new_(Xol_msg_itm_.Id_dte_month_name_august, "august", "August");
|
||||
case Xol_msg_itm_.Id_dte_month_name_september: return new_(Xol_msg_itm_.Id_dte_month_name_september, "september", "September");
|
||||
case Xol_msg_itm_.Id_dte_month_name_october: return new_(Xol_msg_itm_.Id_dte_month_name_october, "october", "October");
|
||||
case Xol_msg_itm_.Id_dte_month_name_november: return new_(Xol_msg_itm_.Id_dte_month_name_november, "november", "November");
|
||||
case Xol_msg_itm_.Id_dte_month_name_december: return new_(Xol_msg_itm_.Id_dte_month_name_december, "december", "December");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_january: return new_(Xol_msg_itm_.Id_dte_month_gen_january, "january-gen", "January");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_february: return new_(Xol_msg_itm_.Id_dte_month_gen_february, "february-gen", "February");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_march: return new_(Xol_msg_itm_.Id_dte_month_gen_march, "march-gen", "March");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_april: return new_(Xol_msg_itm_.Id_dte_month_gen_april, "april-gen", "April");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_may: return new_(Xol_msg_itm_.Id_dte_month_gen_may, "may-gen", "May");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_june: return new_(Xol_msg_itm_.Id_dte_month_gen_june, "june-gen", "June");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_july: return new_(Xol_msg_itm_.Id_dte_month_gen_july, "july-gen", "July");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_august: return new_(Xol_msg_itm_.Id_dte_month_gen_august, "august-gen", "August");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_september: return new_(Xol_msg_itm_.Id_dte_month_gen_september, "september-gen", "September");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_october: return new_(Xol_msg_itm_.Id_dte_month_gen_october, "october-gen", "October");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_november: return new_(Xol_msg_itm_.Id_dte_month_gen_november, "november-gen", "November");
|
||||
case Xol_msg_itm_.Id_dte_month_gen_december: return new_(Xol_msg_itm_.Id_dte_month_gen_december, "december-gen", "December");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_jan: return new_(Xol_msg_itm_.Id_dte_month_abrv_jan, "jan", "Jan");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_feb: return new_(Xol_msg_itm_.Id_dte_month_abrv_feb, "feb", "Feb");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_mar: return new_(Xol_msg_itm_.Id_dte_month_abrv_mar, "mar", "Mar");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_apr: return new_(Xol_msg_itm_.Id_dte_month_abrv_apr, "apr", "Apr");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_may: return new_(Xol_msg_itm_.Id_dte_month_abrv_may, "may", "May");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_jun: return new_(Xol_msg_itm_.Id_dte_month_abrv_jun, "jun", "Jun");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_jul: return new_(Xol_msg_itm_.Id_dte_month_abrv_jul, "jul", "Jul");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_aug: return new_(Xol_msg_itm_.Id_dte_month_abrv_aug, "aug", "Aug");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_sep: return new_(Xol_msg_itm_.Id_dte_month_abrv_sep, "sep", "Sep");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_oct: return new_(Xol_msg_itm_.Id_dte_month_abrv_oct, "oct", "Oct");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_nov: return new_(Xol_msg_itm_.Id_dte_month_abrv_nov, "nov", "Nov");
|
||||
case Xol_msg_itm_.Id_dte_month_abrv_dec: return new_(Xol_msg_itm_.Id_dte_month_abrv_dec, "dec", "Dec");
|
||||
case Xol_msg_itm_.Id_pfunc_desc: return new_(Xol_msg_itm_.Id_pfunc_desc, "pfunc_desc", "Enhance parser with logical functions");
|
||||
case Xol_msg_itm_.Id_pfunc_time_error: return new_(Xol_msg_itm_.Id_pfunc_time_error, "pfunc_time_error", "Error: invalid time");
|
||||
case Xol_msg_itm_.Id_pfunc_time_too_long: return new_(Xol_msg_itm_.Id_pfunc_time_too_long, "pfunc_time_too_long", "Error: too many #time calls");
|
||||
case Xol_msg_itm_.Id_pfunc_rel2abs_invalid_depth: return new_(Xol_msg_itm_.Id_pfunc_rel2abs_invalid_depth, "pfunc_rel2abs_invalid_depth", "Error: Invalid depth in path: \"~{0}\" (tried to access a node above the root node)");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_stack_exhausted: return new_(Xol_msg_itm_.Id_pfunc_expr_stack_exhausted, "pfunc_expr_stack_exhausted", "Expression error: Stack exhausted");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_unexpected_number: return new_(Xol_msg_itm_.Id_pfunc_expr_unexpected_number, "pfunc_expr_unexpected_number", "Expression error: Unexpected number");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_preg_match_failure: return new_(Xol_msg_itm_.Id_pfunc_expr_preg_match_failure, "pfunc_expr_preg_match_failure", "Expression error: Unexpected preg_match failure");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_unrecognised_word: return new_(Xol_msg_itm_.Id_pfunc_expr_unrecognised_word, "pfunc_expr_unrecognised_word", "Expression error: Unrecognised word \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_unexpected_operator: return new_(Xol_msg_itm_.Id_pfunc_expr_unexpected_operator, "pfunc_expr_unexpected_operator", "Expression error: Unexpected ~{0} operator");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_missing_operand: return new_(Xol_msg_itm_.Id_pfunc_expr_missing_operand, "pfunc_expr_missing_operand", "Expression error: Missing operand for ~{0}");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_unexpected_closing_bracket: return new_(Xol_msg_itm_.Id_pfunc_expr_unexpected_closing_bracket, "pfunc_expr_unexpected_closing_bracket", "Expression error: Unexpected closing bracket");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_unrecognised_punctuation: return new_(Xol_msg_itm_.Id_pfunc_expr_unrecognised_punctuation, "pfunc_expr_unrecognised_punctuation", "Expression error: Unrecognised punctuation character \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_unclosed_bracket: return new_(Xol_msg_itm_.Id_pfunc_expr_unclosed_bracket, "pfunc_expr_unclosed_bracket", "Expression error: Unclosed bracket");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_division_by_zero: return new_(Xol_msg_itm_.Id_pfunc_expr_division_by_zero, "pfunc_expr_division_by_zero", "Division by zero");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_invalid_argument: return new_(Xol_msg_itm_.Id_pfunc_expr_invalid_argument, "pfunc_expr_invalid_argument", "Invalid argument for ~{0}: < -1 or > 1");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_invalid_argument_ln: return new_(Xol_msg_itm_.Id_pfunc_expr_invalid_argument_ln, "pfunc_expr_invalid_argument_ln", "Invalid argument for ln: <= 0");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_unknown_error: return new_(Xol_msg_itm_.Id_pfunc_expr_unknown_error, "pfunc_expr_unknown_error", "Expression error: Unknown error (~{0})");
|
||||
case Xol_msg_itm_.Id_pfunc_expr_not_a_number: return new_(Xol_msg_itm_.Id_pfunc_expr_not_a_number, "pfunc_expr_not_a_number", "In ~{0}: result is not a number");
|
||||
case Xol_msg_itm_.Id_pfunc_string_too_long: return new_(Xol_msg_itm_.Id_pfunc_string_too_long, "pfunc_string_too_long", "Error: String exceeds ~{0} character limit");
|
||||
case Xol_msg_itm_.Id_pfunc_convert_dimensionmismatch: return new_(Xol_msg_itm_.Id_pfunc_convert_dimensionmismatch, "pfunc-convert-dimensionmismatch", "Error: cannot convert between units of \"~{0}\" and \"~{1}\"");
|
||||
case Xol_msg_itm_.Id_pfunc_convert_unknownunit: return new_(Xol_msg_itm_.Id_pfunc_convert_unknownunit, "pfunc-convert-unknownunit", "Error: unknown unit \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_pfunc_convert_unknowndimension: return new_(Xol_msg_itm_.Id_pfunc_convert_unknowndimension, "pfunc-convert-unknowndimension", "Error: unknown dimension \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_pfunc_convert_invalidcompoundunit: return new_(Xol_msg_itm_.Id_pfunc_convert_invalidcompoundunit, "pfunc-convert-invalidcompoundunit", "Error: invalid compound unit \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_pfunc_convert_nounit: return new_(Xol_msg_itm_.Id_pfunc_convert_nounit, "pfunc-convert-nounit", "Error: no source unit given");
|
||||
case Xol_msg_itm_.Id_pfunc_convert_doublecompoundunit: return new_(Xol_msg_itm_.Id_pfunc_convert_doublecompoundunit, "pfunc-convert-doublecompoundunit", "Error: cannot parse double compound units like \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_toc: return new_(Xol_msg_itm_.Id_toc, "toc", "Contents");
|
||||
case Xol_msg_itm_.Id_redirectedfrom: return new_(Xol_msg_itm_.Id_redirectedfrom, "redirectedfrom", "(Redirected from ~{0})");
|
||||
case Xol_msg_itm_.Id_sp_allpages_hdr: return new_(Xol_msg_itm_.Id_sp_allpages_hdr, "allpages", "All pages");
|
||||
case Xol_msg_itm_.Id_sp_allpages_bwd: return new_(Xol_msg_itm_.Id_sp_allpages_bwd, "prevpage", "Previous page (~{0})");
|
||||
case Xol_msg_itm_.Id_sp_allpages_fwd: return new_(Xol_msg_itm_.Id_sp_allpages_fwd, "nextpage", "Next page (~{0})");
|
||||
case Xol_msg_itm_.Id_js_tables_collapsible_collapse: return new_(Xol_msg_itm_.Id_js_tables_collapsible_collapse, "collapsible-collapse", "Collapse");
|
||||
case Xol_msg_itm_.Id_js_tables_collapsible_expand: return new_(Xol_msg_itm_.Id_js_tables_collapsible_expand, "collapsible-expand", "Expand");
|
||||
case Xol_msg_itm_.Id_js_tables_sort_descending: return new_(Xol_msg_itm_.Id_js_tables_sort_descending, "sort-descending", "Sort descending");
|
||||
case Xol_msg_itm_.Id_js_tables_sort_ascending: return new_(Xol_msg_itm_.Id_js_tables_sort_ascending, "sort-ascending", "Sort ascending");
|
||||
case Xol_msg_itm_.Id_ctg_tbl_hdr: return new_(Xol_msg_itm_.Id_ctg_tbl_hdr, "categories", "Categories");
|
||||
case Xol_msg_itm_.Id_portal_lastmodified: return new_(Xol_msg_itm_.Id_portal_lastmodified, "lastmodifiedat", "This page was last modified on ~{0}, at ~{1}.");
|
||||
case Xol_msg_itm_.Id_file_enlarge: return new_(Xol_msg_itm_.Id_file_enlarge, "thumbnail-more", "Enlarge");
|
||||
case Xol_msg_itm_.Id_xowa_portal_exit_text: return new_(Xol_msg_itm_.Id_xowa_portal_exit_text, "xowa-portal-exit", "Exit");
|
||||
case Xol_msg_itm_.Id_xowa_portal_exit_tooltip: return new_(Xol_msg_itm_.Id_xowa_portal_exit_tooltip, "tooltip-xowa-portal-exit", "Exit XOWA");
|
||||
case Xol_msg_itm_.Id_xowa_portal_exit_accesskey: return new_(Xol_msg_itm_.Id_xowa_portal_exit_accesskey, "accesskey-xowa-portal-exit", "");
|
||||
case Xol_msg_itm_.Id_xowa_portal_view_html_text: return new_(Xol_msg_itm_.Id_xowa_portal_view_html_text, "xowa-portal-view_html", "View HTML");
|
||||
case Xol_msg_itm_.Id_xowa_portal_view_html_tooltip: return new_(Xol_msg_itm_.Id_xowa_portal_view_html_tooltip, "tooltip-xowa-portal-view_html", "View HTML source for this page");
|
||||
case Xol_msg_itm_.Id_xowa_portal_view_html_accesskey: return new_(Xol_msg_itm_.Id_xowa_portal_view_html_accesskey, "accesskey-xowa-portal-view_html", "h");
|
||||
case Xol_msg_itm_.Id_xowa_portal_bookmarks_text: return new_(Xol_msg_itm_.Id_xowa_portal_bookmarks_text, "xowa-portal-bookmarks", "Bookmarks");
|
||||
case Xol_msg_itm_.Id_xowa_portal_bookmarks_add_text: return new_(Xol_msg_itm_.Id_xowa_portal_bookmarks_add_text, "xowa-portal-bookmarks-add", "Bookmark this page");
|
||||
case Xol_msg_itm_.Id_xowa_portal_bookmarks_add_tooltip: return new_(Xol_msg_itm_.Id_xowa_portal_bookmarks_add_tooltip, "tooltip-xowa-portal-bookmarks-add", "Bookmark this page");
|
||||
case Xol_msg_itm_.Id_xowa_portal_bookmarks_add_accesskey: return new_(Xol_msg_itm_.Id_xowa_portal_bookmarks_add_accesskey, "accesskey-xowa-portal-bookmarks-add", "");
|
||||
case Xol_msg_itm_.Id_xowa_portal_bookmarks_show_text: return new_(Xol_msg_itm_.Id_xowa_portal_bookmarks_show_text, "xowa-portal-bookmarks-show", "Show all bookmarks");
|
||||
case Xol_msg_itm_.Id_xowa_portal_bookmarks_show_tooltip: return new_(Xol_msg_itm_.Id_xowa_portal_bookmarks_show_tooltip, "tooltip-xowa-portal-bookmarks-show", "Show all bookmarks");
|
||||
case Xol_msg_itm_.Id_xowa_portal_bookmarks_show_accesskey: return new_(Xol_msg_itm_.Id_xowa_portal_bookmarks_show_accesskey, "accesskey-xowa-portal-bookmarks-show", "");
|
||||
case Xol_msg_itm_.Id_xowa_portal_page_history_text: return new_(Xol_msg_itm_.Id_xowa_portal_page_history_text, "xowa-portal-page_history", "Page history");
|
||||
case Xol_msg_itm_.Id_xowa_portal_page_history_tooltip: return new_(Xol_msg_itm_.Id_xowa_portal_page_history_tooltip, "tooltip-xowa-portal-page_history", "View history of opened pages");
|
||||
case Xol_msg_itm_.Id_xowa_portal_page_history_accesskey: return new_(Xol_msg_itm_.Id_xowa_portal_page_history_accesskey, "accesskey-xowa-portal-page_history", "");
|
||||
case Xol_msg_itm_.Id_xowa_portal_options_text: return new_(Xol_msg_itm_.Id_xowa_portal_options_text, "xowa-portal-options", "Options");
|
||||
case Xol_msg_itm_.Id_xowa_portal_options_tooltip: return new_(Xol_msg_itm_.Id_xowa_portal_options_tooltip, "tooltip-xowa-portal-options", "Change XOWA options");
|
||||
case Xol_msg_itm_.Id_xowa_portal_options_accesskey: return new_(Xol_msg_itm_.Id_xowa_portal_options_accesskey, "accesskey-xowa-portal-options", "");
|
||||
case Xol_msg_itm_.Id_xowa_portal_version_text: return new_(Xol_msg_itm_.Id_xowa_portal_version_text, "xowa-portal-version", "version");
|
||||
case Xol_msg_itm_.Id_xowa_portal_build_time_text: return new_(Xol_msg_itm_.Id_xowa_portal_build_time_text, "xowa-portal-build_time", "build time");
|
||||
case Xol_msg_itm_.Id_page_lang_header: return new_(Xol_msg_itm_.Id_page_lang_header, "otherlanguages", "In other languages");
|
||||
case Xol_msg_itm_.Id_xowa_window_go_bwd_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_go_bwd_btn_tooltip, "xowa-window-go_bwd_btn-tooltip", "Go back one page");
|
||||
case Xol_msg_itm_.Id_xowa_window_go_fwd_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_go_fwd_btn_tooltip, "xowa-window-go_fwd_btn-tooltip", "Go forward one page");
|
||||
case Xol_msg_itm_.Id_xowa_window_url_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_url_box_tooltip, "xowa-window-url_box-tooltip", "Enter address");
|
||||
case Xol_msg_itm_.Id_xowa_window_url_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_url_btn_tooltip, "xowa-window-url_btn-tooltip", "Go to the address in the Location Bar");
|
||||
case Xol_msg_itm_.Id_xowa_window_search_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_search_box_tooltip, "xowa-window-search_box-tooltip", "Search using {{ns:Special}}:AllPages");
|
||||
case Xol_msg_itm_.Id_xowa_window_search_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_search_btn_tooltip, "xowa-window-search_btn-tooltip", "Search");
|
||||
case Xol_msg_itm_.Id_xowa_window_find_close_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_find_close_btn_tooltip, "xowa-window-find_close_btn-tooltip", "Close Find bar");
|
||||
case Xol_msg_itm_.Id_xowa_window_find_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_find_box_tooltip, "xowa-window-find_box-tooltip", "Enter phrase to find on this page");
|
||||
case Xol_msg_itm_.Id_xowa_window_find_fwd_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_find_fwd_btn_tooltip, "xowa-window-find_fwd_btn-tooltip", "Find the next occurrence of the phrase");
|
||||
case Xol_msg_itm_.Id_xowa_window_find_bwd_btn_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_find_bwd_btn_tooltip, "xowa-window-find_bwd_btn-tooltip", "Find the previous occurrence of the phrase");
|
||||
case Xol_msg_itm_.Id_xowa_window_prog_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_prog_box_tooltip, "xowa-window-prog_box-tooltip", "Displays progress messages");
|
||||
case Xol_msg_itm_.Id_xowa_window_info_box_tooltip: return new_(Xol_msg_itm_.Id_xowa_window_info_box_tooltip, "xowa-window-info_box-tooltip", "Displays system messages");
|
||||
case Xol_msg_itm_.Id_scribunto_parser_error: return new_(Xol_msg_itm_.Id_scribunto_parser_error, "scribunto-parser-error", "Script error");
|
||||
case Xol_msg_itm_.Id_ns_blankns: return new_(Xol_msg_itm_.Id_ns_blankns, "blanknamespace", "(Main)");
|
||||
case Xol_msg_itm_.Id_ctg_page_label: return new_(Xol_msg_itm_.Id_ctg_page_label, "pagecategories", "{{PLURAL:~{0}|Category|Categories}}");
|
||||
case Xol_msg_itm_.Id_ctg_page_header: return new_(Xol_msg_itm_.Id_ctg_page_header, "category_header", "Pages in category \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_ctg_subc_label: return new_(Xol_msg_itm_.Id_ctg_subc_label, "subcategories", "Subcategories");
|
||||
case Xol_msg_itm_.Id_ctg_file_header: return new_(Xol_msg_itm_.Id_ctg_file_header, "category-media-header", "Media in category \"~{0}\"");
|
||||
case Xol_msg_itm_.Id_ctg_empty: return new_(Xol_msg_itm_.Id_ctg_empty, "category-empty", "''This category currently contains no pages or media.''");
|
||||
case Xol_msg_itm_.Id_ctg_subc_count: return new_(Xol_msg_itm_.Id_ctg_subc_count, "category-subcat-count", "{{PLURAL:~{1}|This category has only the following subcategory.|This category has the following {{PLURAL:~{0}|subcategory|~{0} subcategories}}, out of ~{1} total.}}");
|
||||
case Xol_msg_itm_.Id_ctg_subc_count_limit: return new_(Xol_msg_itm_.Id_ctg_subc_count_limit, "category-subcat-count-limited", "This category has the following {{PLURAL:~{0}|subcategory|~{0} subcategories}}.");
|
||||
case Xol_msg_itm_.Id_ctg_page_count: return new_(Xol_msg_itm_.Id_ctg_page_count, "category-article-count", "{{PLURAL:~{1}|This category contains only the following page.|The following {{PLURAL:~{0}|page is|~{0} pages are}} in this category, out of ~{1} total.}}");
|
||||
case Xol_msg_itm_.Id_ctg_page_count_limit: return new_(Xol_msg_itm_.Id_ctg_page_count_limit, "category-article-count-limited", "The following {{PLURAL:~{0}|page is|~{0} pages are}} in the current category.");
|
||||
case Xol_msg_itm_.Id_ctg_file_count: return new_(Xol_msg_itm_.Id_ctg_file_count, "category-file-count", "{{PLURAL:~{1}|This category contains only the following file.|The following {{PLURAL:~{0}|file is|~{0} files are}} in this category, out of ~{1} total.}}");
|
||||
case Xol_msg_itm_.Id_ctg_file_count_limit: return new_(Xol_msg_itm_.Id_ctg_file_count_limit, "category-file-count-limited", "The following {{PLURAL:~{0}|file is|~{0} files are}} in the current category.");
|
||||
case Xol_msg_itm_.Id_ctgtree_subc_counts: return new_(Xol_msg_itm_.Id_ctgtree_subc_counts, "categorytree-member-counts", "contains {{PLURAL:~{0}|1 subcategory|~{0} subcategories}}, {{PLURAL:~{1}|1 page|~{1} pages}}, and {{PLURAL:~{2}|1 file|~{2} files}}");
|
||||
case Xol_msg_itm_.Id_ctgtree_subc_counts_ctg: return new_(Xol_msg_itm_.Id_ctgtree_subc_counts_ctg, "categorytree-num-categories", "~{0} C");
|
||||
case Xol_msg_itm_.Id_ctgtree_subc_counts_page: return new_(Xol_msg_itm_.Id_ctgtree_subc_counts_page, "categorytree-num-pages", "~{0} P");
|
||||
case Xol_msg_itm_.Id_ctgtree_subc_counts_file: return new_(Xol_msg_itm_.Id_ctgtree_subc_counts_file, "categorytree-num-files", "~{0} F");
|
||||
case Xol_msg_itm_.Id_prev_results: return new_(Xol_msg_itm_.Id_next_results, "prevn", "previous {{PLURAL:~{0}|~{0}}}");
|
||||
case Xol_msg_itm_.Id_next_results: return new_(Xol_msg_itm_.Id_prev_results, "nextn", "next {{PLURAL:~{0}|~{0}}}");
|
||||
case Xol_msg_itm_.Id_list_continues: return new_(Xol_msg_itm_.Id_list_continues, "listingcontinuesabbrev", "cont.");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_languages: return new_(Xol_msg_itm_.Id_xowa_wikidata_languages, "xowa-wikidata-languages", "en");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_labels: return new_(Xol_msg_itm_.Id_xowa_wikidata_labels, "xowa-wikidata-labels", "Labels");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_aliasesHead: return new_(Xol_msg_itm_.Id_xowa_wikidata_aliasesHead, "xowa-wikidata-aliasesHead", "Aliases");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_descriptions: return new_(Xol_msg_itm_.Id_xowa_wikidata_descriptions, "xowa-wikidata-descriptions", "Descriptions");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_links: return new_(Xol_msg_itm_.Id_xowa_wikidata_links, "xowa-wikidata-links", "Links");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_claims: return new_(Xol_msg_itm_.Id_xowa_wikidata_claims, "xowa-wikidata-claims", "Claims");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_json: return new_(Xol_msg_itm_.Id_xowa_wikidata_json, "xowa-wikidata-json", "JSON");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_language: return new_(Xol_msg_itm_.Id_xowa_wikidata_language, "xowa-wikidata-language", "language");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_wiki: return new_(Xol_msg_itm_.Id_xowa_wikidata_wiki, "xowa-wikidata-wiki", "wiki");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_label: return new_(Xol_msg_itm_.Id_xowa_wikidata_label, "xowa-wikidata-label", "label");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_aliases: return new_(Xol_msg_itm_.Id_xowa_wikidata_aliases, "xowa-wikidata-aliases", "aliases");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_description: return new_(Xol_msg_itm_.Id_xowa_wikidata_description, "xowa-wikidata-description", "description");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_link: return new_(Xol_msg_itm_.Id_xowa_wikidata_link, "xowa-wikidata-link", "link");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_property: return new_(Xol_msg_itm_.Id_xowa_wikidata_property, "xowa-wikidata-property", "property");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_value: return new_(Xol_msg_itm_.Id_xowa_wikidata_value, "xowa-wikidata-value", "value");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_references: return new_(Xol_msg_itm_.Id_xowa_wikidata_references, "xowa-wikidata-references", "references");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_qualifiers: return new_(Xol_msg_itm_.Id_xowa_wikidata_qualifiers, "xowa-wikidata-qualifiers", "qualifiers");
|
||||
case Xol_msg_itm_.Id_search_results_header: return new_(Xol_msg_itm_.Id_search_results_header, "showingresultsheader", "{{PLURAL:~{4}\u007CResult '''~{0}''' of '''~{2}'''\u007CResults '''~{0} - ~{1}''' of '''~{2}'''}} for '''~{3}'''");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_bold_sample: return new_(Xol_msg_itm_.Id_edit_toolbar_bold_sample, "bold_sample", "Bold text");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_bold_tip: return new_(Xol_msg_itm_.Id_edit_toolbar_bold_tip, "bold_tip", "Bold text");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_italic_sample: return new_(Xol_msg_itm_.Id_edit_toolbar_italic_sample, "italic_sample", "Italic text");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_italic_tip: return new_(Xol_msg_itm_.Id_edit_toolbar_italic_tip, "italic_tip", "Italic text");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_link_sample: return new_(Xol_msg_itm_.Id_edit_toolbar_link_sample, "link_sample", "Link title");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_link_tip: return new_(Xol_msg_itm_.Id_edit_toolbar_link_tip, "link_tip", "Internal link");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_headline_sample: return new_(Xol_msg_itm_.Id_edit_toolbar_headline_sample, "headline_sample", "Headline text");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_headline_tip: return new_(Xol_msg_itm_.Id_edit_toolbar_headline_tip, "headline_tip", "Level 2 headline");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_ulist_tip: return new_(Xol_msg_itm_.Id_edit_toolbar_ulist_tip, "wikieditor-toolbar-tool-ulist", "Bulleted list");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_ulist_sample: return new_(Xol_msg_itm_.Id_edit_toolbar_ulist_sample, "wikieditor-toolbar-tool-ulist-example", "Bulleted list item");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_olist_tip: return new_(Xol_msg_itm_.Id_edit_toolbar_olist_tip, "wikieditor-toolbar-tool-olist", "Numbered list");
|
||||
case Xol_msg_itm_.Id_edit_toolbar_olist_sample: return new_(Xol_msg_itm_.Id_edit_toolbar_olist_sample, "wikieditor-toolbar-tool-olist-example", "Numbered list item");
|
||||
case Xol_msg_itm_.Id_xowa_portal_about_text: return new_(Xol_msg_itm_.Id_xowa_portal_about_text, "xowa-portal-about", "About");
|
||||
case Xol_msg_itm_.Id_xowa_portal_about_tooltip: return new_(Xol_msg_itm_.Id_xowa_portal_about_tooltip, "tooltip-xowa-portal-about", "About XOWA");
|
||||
case Xol_msg_itm_.Id_xowa_portal_about_accesskey: return new_(Xol_msg_itm_.Id_xowa_portal_about_accesskey, "accesskey-xowa-portal-about", "");
|
||||
case Xol_msg_itm_.Id_symbol_catseparator: return new_(Xol_msg_itm_.Id_symbol_catseparator, "catseparator", "\u007C");
|
||||
case Xol_msg_itm_.Id_symbol_semicolon_separator: return new_(Xol_msg_itm_.Id_symbol_semicolon_separator, "semicolon-separator", "; ");
|
||||
case Xol_msg_itm_.Id_symbol_comma_separator: return new_(Xol_msg_itm_.Id_symbol_comma_separator, "comma-separator", ", ");
|
||||
case Xol_msg_itm_.Id_symbol_colon_separator: return new_(Xol_msg_itm_.Id_symbol_colon_separator, "colon-separator", ": ");
|
||||
case Xol_msg_itm_.Id_symbol_autocomment_prefix: return new_(Xol_msg_itm_.Id_symbol_autocomment_prefix, "autocomment-prefix", "- ");
|
||||
case Xol_msg_itm_.Id_symbol_pipe_separator: return new_(Xol_msg_itm_.Id_symbol_pipe_separator, "pipe-separator", " \u007C ");
|
||||
case Xol_msg_itm_.Id_symbol_word_separator: return new_(Xol_msg_itm_.Id_symbol_word_separator, "word-separator", " ");
|
||||
case Xol_msg_itm_.Id_symbol_ellipsis: return new_(Xol_msg_itm_.Id_symbol_ellipsis, "ellipsis", "...");
|
||||
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_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)");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_links_wikivoyage: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wikivoyage, "xowa-wikidata-links-wikivoyage", "Links (Wikivoyage)");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_links_wikiquote: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wikiquote, "xowa-wikidata-links-wikiquote", "Links (Wikiquote)");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_links_wikibooks: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wikibooks, "xowa-wikidata-links-wikibooks", "Links (Wikibooks)");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_links_wikiversity: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wikiversity, "xowa-wikidata-links-wikiversity", "Links (Wikiversity)");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_links_wikinews: return new_(Xol_msg_itm_.Id_xowa_wikidata_links_wikinews, "xowa-wikidata-links-wikinews", "Links (Wikinews)");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_plus: return new_(Xol_msg_itm_.Id_xowa_wikidata_plus, "xowa-wikidata-plus", "+");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_minus: return new_(Xol_msg_itm_.Id_xowa_wikidata_minus, "xowa-wikidata-minus", "−");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_plusminus: return new_(Xol_msg_itm_.Id_xowa_wikidata_plusminus, "xowa-wikidata-plusminus", "±");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_degree: return new_(Xol_msg_itm_.Id_xowa_wikidata_degree, "xowa-wikidata-degree", "°");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_minute: return new_(Xol_msg_itm_.Id_xowa_wikidata_minute, "xowa-wikidata-minute", "′");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_second: return new_(Xol_msg_itm_.Id_xowa_wikidata_second, "xowa-wikidata-second", "″");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_north: return new_(Xol_msg_itm_.Id_xowa_wikidata_north, "xowa-wikidata-north", "N");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_south: return new_(Xol_msg_itm_.Id_xowa_wikidata_south, "xowa-wikidata-south", "S");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_west: return new_(Xol_msg_itm_.Id_xowa_wikidata_west, "xowa-wikidata-west", "W");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_east: return new_(Xol_msg_itm_.Id_xowa_wikidata_east, "xowa-wikidata-east", "E");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_meters: return new_(Xol_msg_itm_.Id_xowa_wikidata_meters, "xowa-wikidata-meters", " m");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_julian: return new_(Xol_msg_itm_.Id_xowa_wikidata_julian, "xowa-wikidata-julian", "<sup>jul</sup>");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_decade: return new_(Xol_msg_itm_.Id_xowa_wikidata_decade, "xowa-wikidata-decade", "~{0}0s");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_century: return new_(Xol_msg_itm_.Id_xowa_wikidata_century, "xowa-wikidata-century", "~{0}. century");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_millenium: return new_(Xol_msg_itm_.Id_xowa_wikidata_millenium, "xowa-wikidata-millenium", "~{0}. millenium");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_years1e4: return new_(Xol_msg_itm_.Id_xowa_wikidata_years1e4, "xowa-wikidata-years1e4", "~{0}0,000 years");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_years1e5: return new_(Xol_msg_itm_.Id_xowa_wikidata_years1e5, "xowa-wikidata-years1e5", "~{0}00,000 years");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_years1e6: return new_(Xol_msg_itm_.Id_xowa_wikidata_years1e6, "xowa-wikidata-years1e6", "~{0} million years");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_years1e7: return new_(Xol_msg_itm_.Id_xowa_wikidata_years1e7, "xowa-wikidata-years1e7", "~{0}0 million years");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_years1e8: return new_(Xol_msg_itm_.Id_xowa_wikidata_years1e8, "xowa-wikidata-years1e8", "~{0}00 million years");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_years1e9: return new_(Xol_msg_itm_.Id_xowa_wikidata_years1e9, "xowa-wikidata-years1e9", "~{0} billion years");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_bc: return new_(Xol_msg_itm_.Id_xowa_wikidata_bc, "xowa-wikidata-bc", "~{0} BC");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_inTime: return new_(Xol_msg_itm_.Id_xowa_wikidata_inTime, "xowa-wikidata-inTime", "in ~{0}");
|
||||
case Xol_msg_itm_.Id_ctg_tbl_hidden: return new_(Xol_msg_itm_.Id_ctg_tbl_hidden, "hidden-category-category", "Hidden categories");
|
||||
case Xol_msg_itm_.Id_ctg_help_page: return new_(Xol_msg_itm_.Id_ctg_help_page, "pagecategorieslink", "Special:Categories");
|
||||
case Xol_msg_itm_.Id_statistics_title: return new_(Xol_msg_itm_.Id_statistics_title, "statistics", "Statistics");
|
||||
case Xol_msg_itm_.Id_statistics_header_pages: return new_(Xol_msg_itm_.Id_statistics_header_pages, "statistics-header-pages", "Page statistics");
|
||||
case Xol_msg_itm_.Id_statistics_articles: return new_(Xol_msg_itm_.Id_statistics_articles, "statistics-articles", "Content pages");
|
||||
case Xol_msg_itm_.Id_statistics_pages: return new_(Xol_msg_itm_.Id_statistics_pages, "statistics-pages", "Pages");
|
||||
case Xol_msg_itm_.Id_statistics_pages_desc: return new_(Xol_msg_itm_.Id_statistics_pages_desc, "statistics-pages-desc", "All pages in the wiki, including talk pages, redirects, etc.");
|
||||
case Xol_msg_itm_.Id_statistics_header_ns: return new_(Xol_msg_itm_.Id_statistics_header_ns, "statistics-header-ns", "Namespace statistics");
|
||||
case Xol_msg_itm_.Id_wikibase_diffview_rank: return new_(Xol_msg_itm_.Id_wikibase_diffview_rank, "Wikibase-diffview-rank", "rank");
|
||||
case Xol_msg_itm_.Id_xowa_wikidata_deprecated: return new_(Xol_msg_itm_.Id_xowa_wikidata_deprecated, "xowa-wikidata-deprecated", "deprecated");
|
||||
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)");
|
||||
default: throw Err_.unhandled(id);
|
||||
}
|
||||
}
|
||||
public static byte[] eval_(Bry_bfr bfr, Xol_msg_itm tmp_msg_itm, byte[] val, Object... args) {
|
||||
val = gplx.xowa.apps.Xoa_gfs_php_mgr.Xto_gfs(bfr, val);
|
||||
update_val_(tmp_msg_itm, val);
|
||||
return tmp_fmtr.Bld_bry_many(bfr, args);
|
||||
}
|
||||
}
|
||||
39
400_xowa/src_140_lang/gplx/xowa/Xol_msg_itm_tst.java
Normal file
39
400_xowa/src_140_lang/gplx/xowa/Xol_msg_itm_tst.java
Normal file
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import org.junit.*;
|
||||
public class Xol_msg_itm_tst {
|
||||
@Before public void init() {fxt.Clear();} private Xol_msg_itm_fxt fxt = new Xol_msg_itm_fxt();
|
||||
@Test public void New_plain() {fxt.Test_new("a" , Bool_.N, Bool_.N);}
|
||||
@Test public void New_fmt() {fxt.Test_new("a~{0}b" , Bool_.Y, Bool_.N);}
|
||||
@Test public void New_tmpl() {fxt.Test_new("a{{b}}c" , Bool_.N, Bool_.Y);}
|
||||
@Test public void New_fmt_tmpl() {fxt.Test_new("a{{b}}c~{0}d" , Bool_.Y, Bool_.Y);}
|
||||
@Test public void New_space() {fxt.Test_val("a b" , "a b");}
|
||||
}
|
||||
class Xol_msg_itm_fxt {
|
||||
public void Clear() {}
|
||||
public void Test_new(String val, boolean has_fmt_arg, boolean has_tmpl_txt) {
|
||||
Xol_msg_itm itm = Xol_msg_itm_.new_(0, "test", val);
|
||||
Tfds.Eq(has_fmt_arg, itm.Has_fmt_arg(), "has_fmt_arg");
|
||||
Tfds.Eq(has_tmpl_txt, itm.Has_tmpl_txt(), "has_tmpl_txt");
|
||||
}
|
||||
public void Test_val(String val, String expd) {
|
||||
Xol_msg_itm itm = Xol_msg_itm_.new_(0, "test", val);
|
||||
Tfds.Eq(expd, String_.new_utf8_(itm.Val()), "has_fmt_arg");
|
||||
}
|
||||
}
|
||||
105
400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr.java
Normal file
105
400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr.java
Normal file
@@ -0,0 +1,105 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_msg_mgr implements GfoInvkAble {
|
||||
public Xol_msg_mgr(GfoInvkAble owner, boolean owner_is_lang) {
|
||||
this.owner = owner; this.owner_is_lang = owner_is_lang;
|
||||
this.Clear();
|
||||
} GfoInvkAble owner; boolean owner_is_lang;
|
||||
public void Clear() {
|
||||
if (owner_is_lang)
|
||||
itms = Ary_new();
|
||||
else
|
||||
itms = new Xol_msg_itm[Xol_msg_itm_.Id__max];
|
||||
hash = Hash_new(itms);
|
||||
itms_max = itms_id_next = Xol_msg_itm_.Id__max;
|
||||
}
|
||||
public int Itms_max() {return itms_max;} private Xol_msg_itm[] itms; int itms_max = Xol_msg_itm_.Id__max; int itms_id_next = Xol_msg_itm_.Id__max;
|
||||
public Xol_msg_itm Itm_by_id_or_null(int id) {return id < itms_max ? itms[id] : null;}
|
||||
public Xol_msg_itm Itm_by_key_or_null(byte[] key) {return (Xol_msg_itm)hash.Fetch(key);}
|
||||
public Xol_msg_itm Itms_new(byte[] msg_key) {
|
||||
Xol_msg_itm rv = new Xol_msg_itm(itms_id_next++, msg_key);
|
||||
Itms_reg(rv);
|
||||
return rv;
|
||||
}
|
||||
public Xol_msg_itm Itm_by_key_or_new(String key, String val) {return Itm_by_key_or_new(key, val, false);} // TEST:
|
||||
public Xol_msg_itm Itm_by_key_or_new(String key, String val, boolean has_fmt_arg) { // TEST:
|
||||
Xol_msg_itm rv = Itm_by_key_or_new(Bry_.new_utf8_(key));
|
||||
Xol_msg_itm_.update_val_(rv, Bry_.new_utf8_(val));
|
||||
return rv;
|
||||
}
|
||||
public Xol_msg_itm Itm_by_key_or_new(byte[] key) {
|
||||
Object o = hash.Fetch(key);
|
||||
Xol_msg_itm rv = null;
|
||||
if (o == null) { // key not found; likely not a system_id; generate a custom one
|
||||
rv = new Xol_msg_itm(itms_id_next++, key);
|
||||
Itms_reg(rv);
|
||||
}
|
||||
else {
|
||||
rv = (Xol_msg_itm)o;
|
||||
}
|
||||
return rv;
|
||||
} HashAdp hash;
|
||||
public byte[] Val_by_id(int id) { // NOTE: Val_by_id needs to exist on lang (not wiki_msg_mgr); {{#time}} can pass in lang, and will need to call lang's msg_mgr directly
|
||||
Xol_msg_itm itm = Itm_by_id_or_null(id);
|
||||
return itm == null ? null : itm.Val();
|
||||
}
|
||||
public byte[] Val_by_id(Xow_wiki wiki, int id) { // NOTE: Val_by_id needs to exist on lang (not wiki_msg_mgr); {{#time}} can pass in lang, and will need to call lang's msg_mgr directly
|
||||
Xol_msg_itm itm = Itm_by_id_or_null(id);
|
||||
if (itm == null) return null;
|
||||
byte[] rv = itm.Val();
|
||||
if (itm.Has_tmpl_txt()) rv = wiki.Parser().Parse_text_to_wtxt(rv);
|
||||
return rv;
|
||||
}
|
||||
public byte[] Val_by_str_or_empty(String str) {return Val_by_bry_or(Bry_.new_utf8_(str), Bry_.Empty);}
|
||||
public byte[] Val_by_bry_or(byte[] bry, byte[] or) {
|
||||
Xol_msg_itm itm = Itm_by_key_or_null(bry);
|
||||
return itm == null ? or : itm.Val();
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_lang)) return owner;
|
||||
else if (ctx.Match(k, Invk_load_text)) Xol_lang_srl.Load_messages(this, m.ReadBry("v"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_lang = Xol_lang_srl.Invk_lang, Invk_load_text = Xol_lang_srl.Invk_load_text;
|
||||
private void Itms_reg(Xol_msg_itm itm) {
|
||||
int id = itm.Id();
|
||||
if (id >= itms_max) {
|
||||
int new_max = (id + 1) * 2;
|
||||
itms = (Xol_msg_itm[])Array_.Expand(itms, new Xol_msg_itm[new_max], itms_max);
|
||||
itms_max = new_max;
|
||||
}
|
||||
itms[id] = itm;
|
||||
hash.Add(itm.Key(), itm);
|
||||
}
|
||||
private static Xol_msg_itm[] Ary_new() {
|
||||
Xol_msg_itm[] rv = new Xol_msg_itm[Xol_msg_itm_.Id__max];
|
||||
for (int i = 0; i < Xol_msg_itm_.Id__max; i++)
|
||||
rv[i] = Xol_msg_itm_.new_(i);
|
||||
return rv;
|
||||
}
|
||||
private static HashAdp Hash_new(Xol_msg_itm[] ary) {
|
||||
HashAdp rv = Hash_adp_bry.ci_();
|
||||
for (int i = 0; i < Xol_msg_itm_.Id__max; i++) {
|
||||
Xol_msg_itm itm = ary[i]; if (itm == null) continue; // NOTE: can be null when msg_mgr is owned by wiki
|
||||
rv.Add(itm.Key(), itm);
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
static final String GRP_KEY = "xowa.lang.msg_mgr";
|
||||
}
|
||||
64
400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr_tst.java
Normal file
64
400_xowa/src_140_lang/gplx/xowa/Xol_msg_mgr_tst.java
Normal file
@@ -0,0 +1,64 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
import org.junit.*;
|
||||
public class Xol_msg_mgr_tst {
|
||||
Xol_msg_mgr_fxt fxt = new Xol_msg_mgr_fxt();
|
||||
@Before public void init() {fxt.Clear();}
|
||||
@Test public void Template_msg() {fxt.Test_val_by_key("About {{SITENAME}}", "About Wikipedia");} // PURPOSE.fix: {{Template}} not working inside label tags; EX:de.wikisource.org; DATE:2013-02-10
|
||||
@Test public void Template_mediawiki() { // PURPOSE.fix: {{Template}} not working inside MediaWiki template
|
||||
fxt.Test_mediaWiki_msg("About {{SITENAME}}", "About Wikipedia");
|
||||
}
|
||||
@Test public void Val_html_accesskey_and_title() {
|
||||
fxt.Clear().Test_val_html_accesskey_and_title("test_title" , "a" , " accesskey=\"a\" title=\"test_title [a]\"");
|
||||
fxt.Clear().Test_val_html_accesskey_and_title("test_title" , null , " title=\"test_title\""); // accesskey is missing
|
||||
fxt.Clear().Test_val_html_accesskey_and_title("test_title" , "" , " title=\"test_title\""); // accesskey is ""
|
||||
fxt.Clear().Test_val_html_accesskey_and_title(null , "a" , " title=\"\""); // no title; leave blank
|
||||
}
|
||||
}
|
||||
class Xol_msg_mgr_fxt {
|
||||
public Xol_msg_mgr_fxt Clear() {
|
||||
if (app == null) {
|
||||
app = Xoa_app_fxt.app_();
|
||||
wiki = Xoa_app_fxt.wiki_tst_(app);
|
||||
mgr = wiki.Msg_mgr();
|
||||
}
|
||||
mgr.Clear();
|
||||
wiki.Lang().Msg_mgr().Clear();
|
||||
return this;
|
||||
} private Xoa_app app; Xow_wiki wiki; Xow_msg_mgr mgr;
|
||||
public void Test_val_by_key(String val, String expd) {
|
||||
Xol_msg_itm itm = wiki.Lang().Msg_mgr().Itm_by_key_or_new(Bry_.new_ascii_("test"));
|
||||
itm.Atrs_set(Bry_.new_ascii_(val), false, true);
|
||||
Tfds.Eq(expd, String_.new_utf8_(wiki.Msg_mgr().Val_by_key_obj(Bry_.new_ascii_("test"))), "has_tmpl_txt");
|
||||
}
|
||||
public void Test_mediaWiki_msg(String raw, String expd) {
|
||||
byte[] msg_ttl = Bry_.new_ascii_("MediaWiki:msg_ttl");
|
||||
wiki.Db_mgr().Save_mgr().Data_create(Xoa_ttl.parse_(wiki, msg_ttl), Bry_.new_ascii_(raw));
|
||||
Tfds.Eq(expd, String_.new_utf8_(wiki.Msg_mgr().Val_by_key_obj(Bry_.new_ascii_("msg_ttl"))));
|
||||
}
|
||||
public void Test_val_html_accesskey_and_title(String init_title, String init_accesskey, String expd) {
|
||||
if (init_title != null) new_msg_itm_("tooltip-test" , init_title);
|
||||
if (init_accesskey != null) new_msg_itm_("accesskey-test" , init_accesskey);
|
||||
Tfds.Eq(expd, String_.new_ascii_(wiki.Msg_mgr().Val_html_accesskey_and_title(Bry_.new_ascii_("test"))));
|
||||
}
|
||||
private void new_msg_itm_(String key, String val) {
|
||||
Xol_msg_itm itm = wiki.Lang().Msg_mgr().Itm_by_key_or_new(Bry_.new_ascii_(key));
|
||||
itm.Atrs_set(Bry_.new_ascii_(val), false, true);
|
||||
}
|
||||
}
|
||||
44
400_xowa/src_140_lang/gplx/xowa/Xol_ns_grp.java
Normal file
44
400_xowa/src_140_lang/gplx/xowa/Xol_ns_grp.java
Normal file
@@ -0,0 +1,44 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_ns_grp implements GfoInvkAble {
|
||||
public Xol_ns_grp(Xol_lang lang) {this.lang = lang;} private Xol_lang lang;
|
||||
public int Len() {return ary.length;}
|
||||
public Xow_ns Get_at(int i) {return ary[i];} private Xow_ns[] ary = Ary_empty;
|
||||
public void Ary_set_(Xow_ns[] v) {this.ary = v;}
|
||||
public void Ary_add_(Xow_ns[] add_ary) {
|
||||
int old_ary_len = ary.length;
|
||||
int add_ary_len = add_ary.length;
|
||||
Xow_ns[] new_ary = new Xow_ns[old_ary_len + add_ary_len];
|
||||
for (int i = 0; i < old_ary_len; i++)
|
||||
new_ary[i] = ary[i];
|
||||
for (int i = 0; i < add_ary_len; i++)
|
||||
new_ary[i + old_ary_len] = add_ary[i];
|
||||
this.ary = new_ary;
|
||||
}
|
||||
private static final Xow_ns[] Ary_empty = new Xow_ns[0];
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_lang)) return lang;
|
||||
else if (ctx.Match(k, Invk_load_text)) Exec_load_text(m.ReadBry("v"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
} private static final String Invk_lang = Xol_lang_srl.Invk_lang, Invk_load_text = Xol_lang_srl.Invk_load_text;
|
||||
private void Exec_load_text(byte[] bry) {
|
||||
ary = (Xow_ns[])Array_.Resize_add(ary, Xol_lang_srl.Load_ns_grps(bry));
|
||||
}
|
||||
}
|
||||
23
400_xowa/src_140_lang/gplx/xowa/Xol_specials_itm.java
Normal file
23
400_xowa/src_140_lang/gplx/xowa/Xol_specials_itm.java
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_specials_itm {
|
||||
public Xol_specials_itm(byte[] special, byte[][] aliases) {this.special = special; this.aliases = aliases;}
|
||||
public byte[] Special() {return special;} private byte[] special;
|
||||
public byte[][] Aliases() {return aliases;} private byte[][] aliases;
|
||||
}
|
||||
45
400_xowa/src_140_lang/gplx/xowa/Xol_specials_mgr.java
Normal file
45
400_xowa/src_140_lang/gplx/xowa/Xol_specials_mgr.java
Normal file
@@ -0,0 +1,45 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa; import gplx.*;
|
||||
public class Xol_specials_mgr implements GfoInvkAble {
|
||||
private OrderedHash hash_by_special = OrderedHash_.new_bry_(), hash_by_aliases = OrderedHash_.new_bry_();
|
||||
public Xol_specials_mgr(Xol_lang lang) {this.lang = lang;} private Xol_lang lang;
|
||||
public void Clear() {hash_by_special.Clear();}
|
||||
public int Count() {return hash_by_special.Count();}
|
||||
public Xol_specials_itm Get_at(int i) {return (Xol_specials_itm)hash_by_special.FetchAt(i);}
|
||||
public Xol_specials_itm Get_by_alias(byte[] alias) {return (Xol_specials_itm)hash_by_aliases.Fetch(alias);}
|
||||
public Xol_specials_itm Get_by_key(byte[] special) {return (Xol_specials_itm)hash_by_special.Fetch(special);}
|
||||
public void Add(byte[] special, byte[][] alias_ary) {
|
||||
Xol_specials_itm itm = new Xol_specials_itm(special, alias_ary);
|
||||
hash_by_special.Add(special, itm);
|
||||
int len = alias_ary.length;
|
||||
for (int i = 0; i < len; i++) {
|
||||
byte[] alias = alias_ary[i];
|
||||
if (!hash_by_aliases.Has(alias))
|
||||
hash_by_aliases.Add(alias, itm);
|
||||
}
|
||||
}
|
||||
public Object Invk(GfsCtx ctx, int ikey, String k, GfoMsg m) {
|
||||
if (ctx.Match(k, Invk_lang)) return lang;
|
||||
else if (ctx.Match(k, Invk_clear)) this.Clear();
|
||||
else if (ctx.Match(k, Invk_load_text)) Xol_lang_srl.Load_specials(this, m.ReadBry("v"));
|
||||
else return GfoInvkAble_.Rv_unhandled;
|
||||
return this;
|
||||
}
|
||||
public static final String Invk_lang = "lang", Invk_clear = "clear", Invk_load_text = "load_text";
|
||||
}
|
||||
Reference in New Issue
Block a user