Lang: Fix misspelling of `hijri` [#837]

master
gnosygnu 3 years ago
parent 559503786b
commit 7e53c8462d

@ -1,6 +1,6 @@
/* /*
XOWA: the XOWA Offline Wiki Application XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com Copyright (C) 2012-2021 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3, XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0. or alternatively under the terms of the Apache License Version 2.0.
@ -13,216 +13,226 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/ */
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*; package gplx.xowa.xtns.pfuncs.times;
import gplx.core.btries.*;
import gplx.xowa.langs.*; import gplx.xowa.langs.msgs.*; import gplx.Bool_;
import gplx.xowa.parsers.*; import gplx.Byte_;
public class Pft_fmt_itm_ { import gplx.Byte_ascii;
public static final int import gplx.DateAdp_;
Tid_seg_int = 1 import gplx.Int_;
, Tid_hour_base12 = 2 import gplx.List_adp;
, Tid_dow_base0 = 3 import gplx.String_;
, Tid_seg_str = 4 import gplx.core.btries.Btrie_fast_mgr;
, Tid_year_isLeap = 5 import gplx.core.btries.Btrie_rv;
, Tid_timestamp_unix = 6 import gplx.xowa.langs.msgs.Xol_msg_itm_;
, Tid_raw_ary = 7 import gplx.xowa.parsers.Xop_ctx;
, Tid_raw_byt = 8
, Tid_dayOfYear = 9 public class Pft_fmt_itm_ {
, Tid_daysInMonth = 10 public static final int
, Tid_AmPm = 11 Tid_seg_int = 1
, Tid_roman = 12 , Tid_hour_base12 = 2
, Tid_iso_fmt = 13 , Tid_dow_base0 = 3
, Tid_rfc_5322 = 14 , Tid_seg_str = 4
, Tid_raw = 15 , Tid_year_isLeap = 5
, Tid_timezone_offset = 16 , Tid_timestamp_unix = 6
, Tid_thai = 17 , Tid_raw_ary = 7
, Tid_minguo = 18 , Tid_raw_byt = 8
, Tid_hebrew_year_num = 21 , Tid_dayOfYear = 9
, Tid_hebrew_month_num = 20 , Tid_daysInMonth = 10
, Tid_hebrew_day_num = 19 , Tid_AmPm = 11
, Tid_hebrew_month_days_count = 22 , Tid_roman = 12
, Tid_hebrew_month_name_full = 23 , Tid_iso_fmt = 13
, Tid_hebrew_month_name_gen = 24 , Tid_rfc_5322 = 14
, Tid_hebrew_numeral = 25 , Tid_raw = 15
, Tid_iranian_year_idx = 26 , Tid_timezone_offset = 16
, Tid_iranian_month_idx = 27 , Tid_thai = 17
, Tid_iranian_day_idx = 28 , Tid_minguo = 18
, Tid_iranian_month_name = 29 , Tid_hebrew_year_num = 21
, Tid_hijiri_year_idx = 30 , Tid_hebrew_month_num = 20
, Tid_hijiri_month_idx = 31 , Tid_hebrew_day_num = 19
, Tid_hijiri_day_idx = 32 , Tid_hebrew_month_days_count = 22
, Tid_hijiri_month_name = 33 , Tid_hebrew_month_name_full = 23
, Tid_timezone_id_full = 35 , Tid_hebrew_month_name_gen = 24
, Tid_timezone_id_abrv = 36 , Tid_hebrew_numeral = 25
, Tid_timezone_offset_4 = 37 , Tid_iranian_year_idx = 26
, Tid_timezone_offset_4_colon = 38 , Tid_iranian_month_idx = 27
; , Tid_iranian_day_idx = 28
, Tid_iranian_month_name = 29
public static final Pft_fmt_itm , Tid_hijri_year_idx = 30
Year_len4 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 4, Bool_.Y) , Tid_hijri_month_idx = 31
, Year_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 2, Bool_.Y) , Tid_hijri_day_idx = 32
, Month_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_month , 2, Bool_.Y) , Tid_hijri_month_name = 33
, Month_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_month , 2, Bool_.N) , Tid_timezone_id_full = 35
, Day_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_day , 2, Bool_.Y) , Tid_timezone_id_abrv = 36
, Day_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_day , 2, Bool_.N) , Tid_timezone_offset_4 = 37
, Hour_base24_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_hour , 2, Bool_.Y) , Tid_timezone_offset_4_colon = 38
, Hour_base24 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_hour , 2, Bool_.N) ;
, Hour_base12_len2 = new Pft_fmt_itm_hour_base12(Bool_.Y)
, Hour_base12 = new Pft_fmt_itm_hour_base12(Bool_.N) public static final Pft_fmt_itm
, Minute_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_minute , 2, Bool_.Y) Year_len4 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 4, Bool_.Y)
, Second_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_second , 2, Bool_.Y) , Year_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_year , 2, Bool_.Y)
, Dow_base1_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_dayOfWeek , 1, Bool_.Y) , Month_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_month , 2, Bool_.Y)
, Dow_base0_int = new Pft_fmt_itm_dow_base0() , Month_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_month , 2, Bool_.N)
, WeekOfYear_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_weekOfYear , 2, Bool_.N) , Day_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_day , 2, Bool_.Y)
, WeekOfYear_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_weekOfYear , 2, Bool_.Y) , Day_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_day , 2, Bool_.N)
, Month_abrv = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_month, Xol_msg_itm_.Id_dte_month_abrv_jan - Int_.Base1) // Jan , Hour_base24_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_hour , 2, Bool_.Y)
, Month_name = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_month, Xol_msg_itm_.Id_dte_month_name_january - Int_.Base1) // January , Hour_base24 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_hour , 2, Bool_.N)
, Month_gen = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_month, Xol_msg_itm_.Id_dte_month_gen_january - Int_.Base1) // January , Hour_base12_len2 = new Pft_fmt_itm_hour_base12(Bool_.Y)
, Dow_abrv = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_dayOfWeek, Xol_msg_itm_.Id_dte_dow_abrv_sun) // Sun , Hour_base12 = new Pft_fmt_itm_hour_base12(Bool_.N)
, Dow_name = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_dayOfWeek, Xol_msg_itm_.Id_dte_dow_name_sunday) // Sunday , Minute_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_minute , 2, Bool_.Y)
, Year_isLeap = new Pft_fmt_itm_year_isLeap() , Second_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_second , 2, Bool_.Y)
, Timestamp_unix = new Pft_fmt_itm_timestamp_unix() , Dow_base1_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_dayOfWeek , 1, Bool_.Y)
, Byte_space = new Pft_fmt_itm_raw_byt(Byte_ascii.Space) , Dow_base0_int = new Pft_fmt_itm_dow_base0()
, Byte_comma = new Pft_fmt_itm_raw_byt(Byte_ascii.Comma) , WeekOfYear_int = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_weekOfYear , 2, Bool_.N)
, Byte_dash = new Pft_fmt_itm_raw_byt(Byte_ascii.Dash) , WeekOfYear_int_len2 = new Pft_fmt_itm_seg_int(DateAdp_.SegIdx_weekOfYear , 2, Bool_.Y)
, DayOfYear_int = new Pft_fmt_itm_dayOfYear() , Month_abrv = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_month, Xol_msg_itm_.Id_dte_month_abrv_jan - Int_.Base1) // Jan
, DaysInMonth_int = new Pft_fmt_itm_daysInMonth() , Month_name = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_month, Xol_msg_itm_.Id_dte_month_name_january - Int_.Base1) // January
, AmPm_lower = new Pft_fmt_itm_am_pm(true) , Month_gen = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_month, Xol_msg_itm_.Id_dte_month_gen_january - Int_.Base1) // January
, AmPm_upper = new Pft_fmt_itm_am_pm(false) , Dow_abrv = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_dayOfWeek, Xol_msg_itm_.Id_dte_dow_abrv_sun) // Sun
, Roman = new Pft_fmt_itm_roman() , Dow_name = new Pft_fmt_itm_seg_str(DateAdp_.SegIdx_dayOfWeek, Xol_msg_itm_.Id_dte_dow_name_sunday) // Sunday
, Thai = new Pft_fmt_itm_thai() , Year_isLeap = new Pft_fmt_itm_year_isLeap()
, Minguo = new Pft_fmt_itm_minguo() , Timestamp_unix = new Pft_fmt_itm_timestamp_unix()
, Hebrew_year_num = new Pft_fmt_itm_hebrew_year_num() , Byte_space = new Pft_fmt_itm_raw_byt(Byte_ascii.Space)
, Hebrew_month_num = new Pft_fmt_itm_hebrew_month_num() , Byte_comma = new Pft_fmt_itm_raw_byt(Byte_ascii.Comma)
, Hebrew_day_num = new Pft_fmt_itm_hebrew_day_num() , Byte_dash = new Pft_fmt_itm_raw_byt(Byte_ascii.Dash)
, Hebrew_month_days_count = new Pft_fmt_itm_hebrew_month_days_count() , DayOfYear_int = new Pft_fmt_itm_dayOfYear()
, Hebrew_month_name_full = new Pft_fmt_itm_hebrew_month_name_full() , DaysInMonth_int = new Pft_fmt_itm_daysInMonth()
, Hebrew_month_name_gen = new Pft_fmt_itm_hebrew_month_name_gen() , AmPm_lower = new Pft_fmt_itm_am_pm(true)
, Hebrew_numeral = new Pft_fmt_itm_hebrew_numeral() , AmPm_upper = new Pft_fmt_itm_am_pm(false)
, Raw = new Pft_fmt_itm_raw() , Roman = new Pft_fmt_itm_roman()
, Iso_fmt = new Pft_fmt_itm_iso_fmt() , Thai = new Pft_fmt_itm_thai()
, Rfc_5322 = new Pft_fmt_itm_rfc_5322() , Minguo = new Pft_fmt_itm_minguo()
, Timezone_offset = new Pft_fmt_itm_timezone_offset() , Hebrew_year_num = new Pft_fmt_itm_hebrew_year_num()
, Iranian_year_idx = new Pft_fmt_itm_iranian_year_idx() , Hebrew_month_num = new Pft_fmt_itm_hebrew_month_num()
, Iranian_month_idx = new Pft_fmt_itm_iranian_month_idx() , Hebrew_day_num = new Pft_fmt_itm_hebrew_day_num()
, Iranian_day_idx = new Pft_fmt_itm_iranian_day_idx() , Hebrew_month_days_count = new Pft_fmt_itm_hebrew_month_days_count()
, Iranian_month_name = new Pft_fmt_itm_iranian_month_name() , Hebrew_month_name_full = new Pft_fmt_itm_hebrew_month_name_full()
, Hijiri_year_idx = new Pft_fmt_itm_hijiri_year_idx() , Hebrew_month_name_gen = new Pft_fmt_itm_hebrew_month_name_gen()
, Hijiri_month_idx = new Pft_fmt_itm_hijiri_month_idx() , Hebrew_numeral = new Pft_fmt_itm_hebrew_numeral()
, Hijiri_day_idx = new Pft_fmt_itm_hijiri_day_idx() , Raw = new Pft_fmt_itm_raw()
, Hijiri_month_name = new Pft_fmt_itm_hijiri_month_name() , Iso_fmt = new Pft_fmt_itm_iso_fmt()
, Timezone_id_full = new Pft_fmt_itm_timezone_id(Bool_.N) , Rfc_5322 = new Pft_fmt_itm_rfc_5322()
, Timezone_id_abrv = new Pft_fmt_itm_timezone_id(Bool_.Y) , Timezone_offset = new Pft_fmt_itm_timezone_offset()
, Timezone_offset_4 = new Pft_fmt_itm_timezone_offset_4(Bool_.N) , Iranian_year_idx = new Pft_fmt_itm_iranian_year_idx()
, Timezone_offset_4_colon = new Pft_fmt_itm_timezone_offset_4(Bool_.Y) , Iranian_month_idx = new Pft_fmt_itm_iranian_month_idx()
; , Iranian_day_idx = new Pft_fmt_itm_iranian_day_idx()
public static final Btrie_fast_mgr Regy = Btrie_fast_mgr.cs() , Iranian_month_name = new Pft_fmt_itm_iranian_month_name()
.Add(Byte_ascii.Ltr_Y , Pft_fmt_itm_.Year_len4) // 2012 , hijri_year_idx = new Pft_fmt_itm_hijri_year_idx()
.Add(Byte_ascii.Ltr_y , Pft_fmt_itm_.Year_len2) // 12 , hijri_month_idx = new Pft_fmt_itm_hijri_month_idx()
.Add(Byte_ascii.Ltr_L , Pft_fmt_itm_.Year_isLeap) // 1,0 , hijri_day_idx = new Pft_fmt_itm_hijri_day_idx()
.Add(Byte_ascii.Ltr_o , Pft_fmt_itm_.Year_len4) // 2012: ISO-8601; don't know why it's different vs Ltr_Y , hijri_month_name = new Pft_fmt_itm_hijri_month_name()
.Add(Byte_ascii.Ltr_n , Pft_fmt_itm_.Month_int) // 1 , Timezone_id_full = new Pft_fmt_itm_timezone_id(Bool_.N)
.Add(Byte_ascii.Ltr_m , Pft_fmt_itm_.Month_int_len2) // 01 , Timezone_id_abrv = new Pft_fmt_itm_timezone_id(Bool_.Y)
.Add(Byte_ascii.Ltr_M , Pft_fmt_itm_.Month_abrv) // Jan , Timezone_offset_4 = new Pft_fmt_itm_timezone_offset_4(Bool_.N)
.Add(Byte_ascii.Ltr_F , Pft_fmt_itm_.Month_name) // January , Timezone_offset_4_colon = new Pft_fmt_itm_timezone_offset_4(Bool_.Y)
.Add("xg" , Pft_fmt_itm_.Month_gen) // January ;
.Add(Byte_ascii.Ltr_W , Pft_fmt_itm_.WeekOfYear_int_len2) // 01 public static final Btrie_fast_mgr Regy = Btrie_fast_mgr.cs()
.Add(Byte_ascii.Ltr_j , Pft_fmt_itm_.Day_int) // 1 .Add(Byte_ascii.Ltr_Y , Pft_fmt_itm_.Year_len4) // 2012
.Add(Byte_ascii.Ltr_d , Pft_fmt_itm_.Day_int_len2) // 01 .Add(Byte_ascii.Ltr_y , Pft_fmt_itm_.Year_len2) // 12
.Add(Byte_ascii.Ltr_z , Pft_fmt_itm_.DayOfYear_int) // 0 .Add(Byte_ascii.Ltr_L , Pft_fmt_itm_.Year_isLeap) // 1,0
.Add(Byte_ascii.Ltr_D , Pft_fmt_itm_.Dow_abrv) // Sun .Add(Byte_ascii.Ltr_o , Pft_fmt_itm_.Year_len4) // 2012: ISO-8601; don't know why it's different vs Ltr_Y
.Add(Byte_ascii.Ltr_l , Pft_fmt_itm_.Dow_name) // Sunday .Add(Byte_ascii.Ltr_n , Pft_fmt_itm_.Month_int) // 1
.Add(Byte_ascii.Ltr_N , Pft_fmt_itm_.Dow_base0_int) // 1; Sunday=7 .Add(Byte_ascii.Ltr_m , Pft_fmt_itm_.Month_int_len2) // 01
.Add(Byte_ascii.Ltr_w , Pft_fmt_itm_.Dow_base1_int) // 1; Sunday=0 .Add(Byte_ascii.Ltr_M , Pft_fmt_itm_.Month_abrv) // Jan
.Add(Byte_ascii.Ltr_a , Pft_fmt_itm_.AmPm_lower) // am/pm .Add(Byte_ascii.Ltr_F , Pft_fmt_itm_.Month_name) // January
.Add(Byte_ascii.Ltr_A , Pft_fmt_itm_.AmPm_upper) // AM/PM .Add("xg" , Pft_fmt_itm_.Month_gen) // January
.Add(Byte_ascii.Ltr_g , Pft_fmt_itm_.Hour_base12) // 1; Base12 .Add(Byte_ascii.Ltr_W , Pft_fmt_itm_.WeekOfYear_int_len2) // 01
.Add(Byte_ascii.Ltr_h , Pft_fmt_itm_.Hour_base12_len2) // 01; Base12; pad2 .Add(Byte_ascii.Ltr_j , Pft_fmt_itm_.Day_int) // 1
.Add(Byte_ascii.Ltr_G , Pft_fmt_itm_.Hour_base24) // 13; Base24; .Add(Byte_ascii.Ltr_d , Pft_fmt_itm_.Day_int_len2) // 01
.Add(Byte_ascii.Ltr_H , Pft_fmt_itm_.Hour_base24_len2) // 13; Base24; pad2 .Add(Byte_ascii.Ltr_z , Pft_fmt_itm_.DayOfYear_int) // 0
.Add(Byte_ascii.Ltr_i , Pft_fmt_itm_.Minute_int_len2) // 04 .Add(Byte_ascii.Ltr_D , Pft_fmt_itm_.Dow_abrv) // Sun
.Add(Byte_ascii.Ltr_s , Pft_fmt_itm_.Second_int_len2) // 05 .Add(Byte_ascii.Ltr_l , Pft_fmt_itm_.Dow_name) // Sunday
.Add(Byte_ascii.Ltr_t , Pft_fmt_itm_.DaysInMonth_int) // 31 .Add(Byte_ascii.Ltr_N , Pft_fmt_itm_.Dow_base0_int) // 1; Sunday=7
.Add(Byte_ascii.Ltr_U , Pft_fmt_itm_.Timestamp_unix) // 1343865600 .Add(Byte_ascii.Ltr_w , Pft_fmt_itm_.Dow_base1_int) // 1; Sunday=0
.Add(Byte_ascii.Ltr_Z , Pft_fmt_itm_.Timezone_offset) // timezone offset in seconds .Add(Byte_ascii.Ltr_a , Pft_fmt_itm_.AmPm_lower) // am/pm
.Add(Byte_ascii.Ltr_c , Pft_fmt_itm_.Iso_fmt) // 2012-01-02T03:04:05+00:00 .Add(Byte_ascii.Ltr_A , Pft_fmt_itm_.AmPm_upper) // AM/PM
.Add(Byte_ascii.Ltr_r , Pft_fmt_itm_.Rfc_5322) // Mon 02 Jan 2012 08:04:05 +0000 .Add(Byte_ascii.Ltr_g , Pft_fmt_itm_.Hour_base12) // 1; Base12
.Add(Byte_ascii.Ltr_e , Pft_fmt_itm_.Timezone_id_full) // UTC .Add(Byte_ascii.Ltr_h , Pft_fmt_itm_.Hour_base12_len2) // 01; Base12; pad2
.Add(Byte_ascii.Ltr_T , Pft_fmt_itm_.Timezone_id_abrv) // UTC .Add(Byte_ascii.Ltr_G , Pft_fmt_itm_.Hour_base24) // 13; Base24;
.Add(Byte_ascii.Ltr_O , Pft_fmt_itm_.Timezone_offset_4) // timezone offset in seconds +0000 .Add(Byte_ascii.Ltr_H , Pft_fmt_itm_.Hour_base24_len2) // 13; Base24; pad2
.Add(Byte_ascii.Ltr_P , Pft_fmt_itm_.Timezone_offset_4_colon) // timezone offset in seconds with colon +00:00 .Add(Byte_ascii.Ltr_i , Pft_fmt_itm_.Minute_int_len2) // 04
.Add("xr" , Pft_fmt_itm_.Roman) // MCXI .Add(Byte_ascii.Ltr_s , Pft_fmt_itm_.Second_int_len2) // 05
.Add("xkY" , Pft_fmt_itm_.Thai) // Year += 543 .Add(Byte_ascii.Ltr_t , Pft_fmt_itm_.DaysInMonth_int) // 31
.Add("xoY" , Pft_fmt_itm_.Minguo) // Year -= 1911 .Add(Byte_ascii.Ltr_U , Pft_fmt_itm_.Timestamp_unix) // 1343865600
.Add("xn" , Pft_fmt_itm_.Raw) // NOTE: really does nothing; REF.MW: Language.php|sprintfdate does $s .= $num; DATE:2013-12-31 .Add(Byte_ascii.Ltr_Z , Pft_fmt_itm_.Timezone_offset) // timezone offset in seconds
.Add("xN" , Pft_fmt_itm_.Raw) .Add(Byte_ascii.Ltr_c , Pft_fmt_itm_.Iso_fmt) // 2012-01-02T03:04:05+00:00
.Add("xjj" , Pft_fmt_itm_.Hebrew_day_num) .Add(Byte_ascii.Ltr_r , Pft_fmt_itm_.Rfc_5322) // Mon 02 Jan 2012 08:04:05 +0000
.Add("xjn" , Pft_fmt_itm_.Hebrew_month_num) .Add(Byte_ascii.Ltr_e , Pft_fmt_itm_.Timezone_id_full) // UTC
.Add("xjt" , Pft_fmt_itm_.Hebrew_month_days_count) .Add(Byte_ascii.Ltr_T , Pft_fmt_itm_.Timezone_id_abrv) // UTC
.Add("xjF" , Pft_fmt_itm_.Hebrew_month_name_full) .Add(Byte_ascii.Ltr_O , Pft_fmt_itm_.Timezone_offset_4) // timezone offset in seconds +0000
.Add("xjx" , Pft_fmt_itm_.Hebrew_month_name_gen) .Add(Byte_ascii.Ltr_P , Pft_fmt_itm_.Timezone_offset_4_colon) // timezone offset in seconds with colon +00:00
.Add("xjY" , Pft_fmt_itm_.Hebrew_year_num) .Add("xr" , Pft_fmt_itm_.Roman) // MCXI
.Add("xh" , Pft_fmt_itm_.Hebrew_numeral) .Add("xkY" , Pft_fmt_itm_.Thai) // Year += 543
.Add("xij" , Pft_fmt_itm_.Iranian_day_idx) .Add("xoY" , Pft_fmt_itm_.Minguo) // Year -= 1911
.Add("xiF" , Pft_fmt_itm_.Iranian_month_name) .Add("xn" , Pft_fmt_itm_.Raw) // NOTE: really does nothing; REF.MW: Language.php|sprintfdate does $s .= $num; DATE:2013-12-31
.Add("xin" , Pft_fmt_itm_.Iranian_month_idx) .Add("xN" , Pft_fmt_itm_.Raw)
.Add("xiY" , Pft_fmt_itm_.Iranian_year_idx) .Add("xjj" , Pft_fmt_itm_.Hebrew_day_num)
.Add("xmj" , Pft_fmt_itm_.Hijiri_day_idx) .Add("xjn" , Pft_fmt_itm_.Hebrew_month_num)
.Add("xmF" , Pft_fmt_itm_.Hijiri_month_name) .Add("xjt" , Pft_fmt_itm_.Hebrew_month_days_count)
.Add("xmn" , Pft_fmt_itm_.Hijiri_month_idx) .Add("xjF" , Pft_fmt_itm_.Hebrew_month_name_full)
.Add("xmY" , Pft_fmt_itm_.Hijiri_year_idx) .Add("xjx" , Pft_fmt_itm_.Hebrew_month_name_gen)
// TODO_OLD: space; " .Add("xjY" , Pft_fmt_itm_.Hebrew_year_num)
; .Add("xh" , Pft_fmt_itm_.Hebrew_numeral)
.Add("xij" , Pft_fmt_itm_.Iranian_day_idx)
public static Pft_fmt_itm[] Parse(Xop_ctx ctx, byte[] fmt) { .Add("xiF" , Pft_fmt_itm_.Iranian_month_name)
List_adp fmt_itms = ctx.Wiki().Parser_mgr().Time_parser_itms(); .Add("xin" , Pft_fmt_itm_.Iranian_month_idx)
Btrie_fast_mgr trie = Pft_fmt_itm_.Regy; .Add("xiY" , Pft_fmt_itm_.Iranian_year_idx)
Btrie_rv trv = new Btrie_rv(); .Add("xmj" , Pft_fmt_itm_.hijri_day_idx)
int i = 0, fmt_len = fmt.length; .Add("xmF" , Pft_fmt_itm_.hijri_month_name)
fmt_itms.Clear(); int raw_bgn = String_.Pos_neg1; byte raw_byt = Byte_.Zero; .Add("xmn" , Pft_fmt_itm_.hijri_month_idx)
while (i < fmt_len) { .Add("xmY" , Pft_fmt_itm_.hijri_year_idx)
byte b = fmt[i]; // TODO_OLD: space; "
Object o = trie.Match_at_w_b0(trv, b, fmt, i, fmt_len); ;
if (o != null) {
if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(i - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(raw_byt) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i)); raw_bgn = String_.Pos_neg1;} public static Pft_fmt_itm[] Parse(Xop_ctx ctx, byte[] fmt) {
fmt_itms.Add((Pft_fmt_itm)o); List_adp fmt_itms = ctx.Wiki().Parser_mgr().Time_parser_itms();
i = trv.Pos(); Btrie_fast_mgr trie = Pft_fmt_itm_.Regy;
} Btrie_rv trv = new Btrie_rv();
else { int i = 0, fmt_len = fmt.length;
switch (b) { fmt_itms.Clear(); int raw_bgn = String_.Pos_neg1; byte raw_byt = Byte_.Zero;
case Byte_ascii.Backslash: while (i < fmt_len) {
if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(i - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(raw_byt) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i)); raw_bgn = String_.Pos_neg1;} byte b = fmt[i];
++i; // peek next char Object o = trie.Match_at_w_b0(trv, b, fmt, i, fmt_len);
if (i == fmt_len) // trailing backslash; add one; EX: "b\" -> "b\" not "b" if (o != null) {
fmt_itms.Add(new Pft_fmt_itm_raw_byt(Byte_ascii.Backslash)); if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(i - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(raw_byt) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i)); raw_bgn = String_.Pos_neg1;}
else fmt_itms.Add((Pft_fmt_itm)o);
fmt_itms.Add(new Pft_fmt_itm_raw_byt(fmt[i])); i = trv.Pos();
++i; }
break; else {
case Byte_ascii.Quote: switch (b) {
if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(i - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(raw_byt) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i)); raw_bgn = String_.Pos_neg1;} case Byte_ascii.Backslash:
++i; // skip quote_bgn if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(i - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(raw_byt) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i)); raw_bgn = String_.Pos_neg1;}
raw_bgn = i; ++i; // peek next char
while (i < fmt_len) { if (i == fmt_len) // trailing backslash; add one; EX: "b\" -> "b\" not "b"
b = fmt[i]; fmt_itms.Add(new Pft_fmt_itm_raw_byt(Byte_ascii.Backslash));
if (b == Byte_ascii.Quote) { else
break; fmt_itms.Add(new Pft_fmt_itm_raw_byt(fmt[i]));
} ++i;
else break;
++i; case Byte_ascii.Quote:
} if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(i - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(raw_byt) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i)); raw_bgn = String_.Pos_neg1;}
fmt_itms.Add(i - raw_bgn == 0 ? new Pft_fmt_itm_raw_byt(Byte_ascii.Quote) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i)); ++i; // skip quote_bgn
raw_bgn = String_.Pos_neg1; raw_bgn = i;
++i; // skip quote_end while (i < fmt_len) {
break; b = fmt[i];
default: if (b == Byte_ascii.Quote) {
if (raw_bgn == String_.Pos_neg1) {raw_bgn = i; raw_byt = b;} break;
i += gplx.core.intls.Utf8_.Len_of_char_by_1st_byte(b); }
break; else
} ++i;
} }
} fmt_itms.Add(i - raw_bgn == 0 ? new Pft_fmt_itm_raw_byt(Byte_ascii.Quote) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, i));
if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(fmt_len - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(fmt[fmt_len - 1]) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, fmt_len)); raw_bgn = String_.Pos_neg1;} raw_bgn = String_.Pos_neg1;
return (Pft_fmt_itm[])fmt_itms.To_ary(Pft_fmt_itm.class); ++i; // skip quote_end
} break;
} default:
if (raw_bgn == String_.Pos_neg1) {raw_bgn = i; raw_byt = b;}
i += gplx.core.intls.Utf8_.Len_of_char_by_1st_byte(b);
break;
}
}
}
if (raw_bgn != String_.Pos_neg1) {fmt_itms.Add(fmt_len - raw_bgn == 1 ? new Pft_fmt_itm_raw_byt(fmt[fmt_len - 1]) : (Pft_fmt_itm)new Pft_fmt_itm_raw_ary(fmt, raw_bgn, fmt_len)); raw_bgn = String_.Pos_neg1;}
return (Pft_fmt_itm[])fmt_itms.To_ary(Pft_fmt_itm.class);
}
}

@ -1,6 +1,6 @@
/* /*
XOWA: the XOWA Offline Wiki Application XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com Copyright (C) 2012-2021 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3, XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0. or alternatively under the terms of the Apache License Version 2.0.
@ -13,137 +13,142 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/ */
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*; package gplx.xowa.xtns.pfuncs.times;
import gplx.xowa.langs.*;
class Pft_fmt_itm_roman implements Pft_fmt_itm { import gplx.Bry_bfr;
public int TypeId() {return Pft_fmt_itm_.Tid_roman;} import gplx.DateAdp;
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { import gplx.xowa.Xowe_wiki;
int nxt_idx = bldr.Idx_cur() + 1; import gplx.xowa.langs.Xol_lang_itm;
Pft_fmt_itm[] ary = bldr.Fmt_itms();
if (nxt_idx < ary.length) { class Pft_fmt_itm_roman implements Pft_fmt_itm {
Pft_fmt_itm itm = (Pft_fmt_itm)ary[nxt_idx]; public int TypeId() {return Pft_fmt_itm_.Tid_roman;}
if (itm.TypeId() == Pft_fmt_itm_.Tid_seg_int) { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
Pft_fmt_itm_seg_int nxt_int = (Pft_fmt_itm_seg_int)ary[nxt_idx]; // FUTURE: should check tkn type int nxt_idx = bldr.Idx_cur() + 1;
int v = date.Segment(nxt_int.SegIdx()); Pft_fmt_itm[] ary = bldr.Fmt_itms();
Pfxtp_roman.ToRoman(v, bfr); if (nxt_idx < ary.length) {
bldr.Idx_nxt_(nxt_idx + 1); Pft_fmt_itm itm = (Pft_fmt_itm)ary[nxt_idx];
return; if (itm.TypeId() == Pft_fmt_itm_.Tid_seg_int) {
} Pft_fmt_itm_seg_int nxt_int = (Pft_fmt_itm_seg_int)ary[nxt_idx]; // FUTURE: should check tkn type
} int v = date.Segment(nxt_int.SegIdx());
bfr.Add_str_a7("xf"); Pfxtp_roman.ToRoman(v, bfr);
} bldr.Idx_nxt_(nxt_idx + 1);
} return;
class Pft_fmt_itm_thai implements Pft_fmt_itm { }
public int TypeId() {return Pft_fmt_itm_.Tid_thai;} }
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_str_a7("xf");
bfr.Add_int_variable(date.Year() + 543); }
} }
} class Pft_fmt_itm_thai implements Pft_fmt_itm {
class Pft_fmt_itm_minguo implements Pft_fmt_itm { public int TypeId() {return Pft_fmt_itm_.Tid_thai;}
public int TypeId() {return Pft_fmt_itm_.Tid_minguo;} public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(date.Year() + 543);
bfr.Add_int_variable(date.Year() - 1911); }
} }
} class Pft_fmt_itm_minguo implements Pft_fmt_itm {
class Pft_fmt_itm_hebrew_year_num implements Pft_fmt_itm { public int TypeId() {return Pft_fmt_itm_.Tid_minguo;}
public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_year_num;} public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(date.Year() - 1911);
int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date); }
bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_year_num]); }
} class Pft_fmt_itm_hebrew_year_num implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_year_num;}
class Pft_fmt_itm_hebrew_month_num implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_num;} int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_year_num]);
int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date); }
bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_month_num]); }
} class Pft_fmt_itm_hebrew_month_num implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_num;}
class Pft_fmt_itm_hebrew_day_num implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_day_num;} int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_month_num]);
int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date); }
bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_day_num]); }
} class Pft_fmt_itm_hebrew_day_num implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_day_num;}
class Pft_fmt_itm_hebrew_month_days_count implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_days_count;} int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_day_num]);
int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date); }
bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_month_days_count]); }
} class Pft_fmt_itm_hebrew_month_days_count implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_days_count;}
class Pft_fmt_itm_hebrew_month_name_full implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_name_full;} int[] hebrew_date = Pft_fmt_itm_hebrew_.Calc_hebrew_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(hebrew_date[Pft_fmt_itm_hebrew_.Rslt_month_days_count]);
bfr.Add(Pft_fmt_itm_hebrew_.Get_hebrew_month_name_full(wiki, date)); }
} }
} class Pft_fmt_itm_hebrew_month_name_full implements Pft_fmt_itm {
class Pft_fmt_itm_hebrew_month_name_gen implements Pft_fmt_itm { public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_name_full;}
public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_name_gen;} public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add(Pft_fmt_itm_hebrew_.Get_hebrew_month_name_full(wiki, date));
bfr.Add(Pft_fmt_itm_hebrew_.Get_hebrew_month_name_gen(wiki, date)); }
} }
} class Pft_fmt_itm_hebrew_month_name_gen implements Pft_fmt_itm {
class Pft_fmt_itm_hebrew_numeral implements Pft_fmt_itm { public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_month_name_gen;}
public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_numeral;} public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add(Pft_fmt_itm_hebrew_.Get_hebrew_month_name_gen(wiki, date));
int num_int = bfr.To_int_and_clear(-1); }
byte[] num_bry = Pft_fmt_itm_hebrew_.Calc_hebrew_numeral(num_int); }
bfr.Add(num_bry); class Pft_fmt_itm_hebrew_numeral implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hebrew_numeral;}
} public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
class Pft_fmt_itm_iranian_year_idx implements Pft_fmt_itm { int num_int = bfr.To_int_and_clear(-1);
public int TypeId() {return Pft_fmt_itm_.Tid_iranian_year_idx;} byte[] num_bry = Pft_fmt_itm_hebrew_.Calc_hebrew_numeral(num_int);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add(num_bry);
int[] seg_ary = Pft_fmt_itm_iranian.Calc_date(date); }
bfr.Add_int_variable(seg_ary[Pft_fmt_itm_iranian.Rslt__year]); }
} class Pft_fmt_itm_iranian_year_idx implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_iranian_year_idx;}
class Pft_fmt_itm_iranian_month_idx implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_iranian_month_idx;} int[] seg_ary = Pft_fmt_itm_iranian.Calc_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(seg_ary[Pft_fmt_itm_iranian.Rslt__year]);
int[] seg_ary = Pft_fmt_itm_iranian.Calc_date(date); }
bfr.Add_int_variable(seg_ary[Pft_fmt_itm_iranian.Rslt__month]); }
} class Pft_fmt_itm_iranian_month_idx implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_iranian_month_idx;}
class Pft_fmt_itm_iranian_day_idx implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_iranian_day_idx;} int[] seg_ary = Pft_fmt_itm_iranian.Calc_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(seg_ary[Pft_fmt_itm_iranian.Rslt__month]);
int[] seg_ary = Pft_fmt_itm_iranian.Calc_date(date); }
bfr.Add_int_variable(seg_ary[Pft_fmt_itm_iranian.Rslt__day]); }
} class Pft_fmt_itm_iranian_day_idx implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_iranian_day_idx;}
class Pft_fmt_itm_iranian_month_name implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_iranian_month_name;} int[] seg_ary = Pft_fmt_itm_iranian.Calc_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(seg_ary[Pft_fmt_itm_iranian.Rslt__day]);
bfr.Add(Pft_fmt_itm_iranian.Get_month_name(wiki, date)); }
} }
} class Pft_fmt_itm_iranian_month_name implements Pft_fmt_itm {
class Pft_fmt_itm_hijiri_year_idx implements Pft_fmt_itm { public int TypeId() {return Pft_fmt_itm_.Tid_iranian_month_name;}
public int TypeId() {return Pft_fmt_itm_.Tid_hijiri_year_idx;} public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add(Pft_fmt_itm_iranian.Get_month_name(wiki, date));
int[] seg_ary = Pft_fmt_itm_hijiri.Calc_date(date); }
bfr.Add_int_variable(seg_ary[Pft_fmt_itm_hijiri.Rslt__year]); }
} class Pft_fmt_itm_hijri_year_idx implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hijri_year_idx;}
class Pft_fmt_itm_hijiri_month_idx implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_hijiri_month_idx;} int[] seg_ary = Pft_fmt_itm_hijri.Calc_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(seg_ary[Pft_fmt_itm_hijri.Rslt__year]);
int[] seg_ary = Pft_fmt_itm_hijiri.Calc_date(date); }
bfr.Add_int_variable(seg_ary[Pft_fmt_itm_hijiri.Rslt__month]); }
} class Pft_fmt_itm_hijri_month_idx implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hijri_month_idx;}
class Pft_fmt_itm_hijiri_day_idx implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_hijiri_day_idx;} int[] seg_ary = Pft_fmt_itm_hijri.Calc_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(seg_ary[Pft_fmt_itm_hijri.Rslt__month]);
int[] seg_ary = Pft_fmt_itm_hijiri.Calc_date(date); }
bfr.Add_int_variable(seg_ary[Pft_fmt_itm_hijiri.Rslt__day]); }
} class Pft_fmt_itm_hijri_day_idx implements Pft_fmt_itm {
} public int TypeId() {return Pft_fmt_itm_.Tid_hijri_day_idx;}
class Pft_fmt_itm_hijiri_month_name implements Pft_fmt_itm { public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
public int TypeId() {return Pft_fmt_itm_.Tid_hijiri_month_name;} int[] seg_ary = Pft_fmt_itm_hijri.Calc_date(date);
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) { bfr.Add_int_variable(seg_ary[Pft_fmt_itm_hijri.Rslt__day]);
bfr.Add(Pft_fmt_itm_hijiri.Get_month_name(wiki, date)); }
} }
} class Pft_fmt_itm_hijri_month_name implements Pft_fmt_itm {
public int TypeId() {return Pft_fmt_itm_.Tid_hijri_month_name;}
public void Fmt(Bry_bfr bfr, Xowe_wiki wiki, Xol_lang_itm lang, DateAdp date, Pft_func_formatdate_bldr bldr) {
bfr.Add(Pft_fmt_itm_hijri.Get_month_name(wiki, date));
}
}

@ -1,6 +1,6 @@
/* /*
XOWA: the XOWA Offline Wiki Application XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com Copyright (C) 2012-2021 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3, XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0. or alternatively under the terms of the Apache License Version 2.0.
@ -13,59 +13,65 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/ */
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*; package gplx.xowa.xtns.pfuncs.times;
class Pft_fmt_itm_hijiri {
public static int[] Calc_date(DateAdp date) { import gplx.Bry_;
int[] rv = new int[3]; // MEM:cache import gplx.DateAdp;
Calc_date(rv, date.Year(), date.Month(), date.Day()); import gplx.List_adp_;
return rv; import gplx.xowa.Xowe_wiki;
}
public static boolean Calc_date(int[] rv, int greg_y, int greg_m, int greg_d) { class Pft_fmt_itm_hijri {
int hiji_d = greg_d; public static int[] Calc_date(DateAdp date) {
int hiji_m = greg_m; int[] rv = new int[3]; // MEM:cache
int hiji_y = greg_y; Calc_date(rv, date.Year(), date.Month(), date.Day());
int tmp_jd = 0; return rv;
if ( }
(hiji_y > 1582) || ((hiji_y == 1582) && (hiji_m > 10)) || public static boolean Calc_date(int[] rv, int greg_y, int greg_m, int greg_d) {
((hiji_y == 1582) && (hiji_m == 10) && (hiji_d > 14)) int hiji_d = greg_d;
) int hiji_m = greg_m;
{ int hiji_y = greg_y;
tmp_jd = (int)((1461 * (hiji_y + 4800 + (int)((hiji_m - 14) / 12))) / 4) + int tmp_jd = 0;
(int)((367 * (hiji_m - 2 - 12 * ((int)((hiji_m - 14) / 12)))) / 12) - if (
(int)((3 * (int)(((hiji_y + 4900 + (int)((hiji_m - 14) / 12)) / 100))) / 4) + (hiji_y > 1582) || ((hiji_y == 1582) && (hiji_m > 10)) ||
hiji_d - 32075; ((hiji_y == 1582) && (hiji_m == 10) && (hiji_d > 14))
} else { )
tmp_jd = 367 * hiji_y - (int)((7 * (hiji_y + 5001 + (int)((hiji_m - 9) / 7))) / 4) + {
(int)((275 * hiji_m) / 9) + hiji_d + 1729777; tmp_jd = (int)((1461 * (hiji_y + 4800 + (int)((hiji_m - 14) / 12))) / 4) +
} (int)((367 * (hiji_m - 2 - 12 * ((int)((hiji_m - 14) / 12)))) / 12) -
int tmp_l = tmp_jd -1948440 + 10632; (int)((3 * (int)(((hiji_y + 4900 + (int)((hiji_m - 14) / 12)) / 100))) / 4) +
int tmp_n = (int)((tmp_l - 1) / 10631); hiji_d - 32075;
tmp_l = tmp_l - 10631 * tmp_n + 354; } else {
int tmp_j = ((int)((10985 - tmp_l) / 5316)) * ((int)((50 * tmp_l) / 17719)) + ((int)(tmp_l / 5670)) * ((int)((43 * tmp_l) / 15238)); tmp_jd = 367 * hiji_y - (int)((7 * (hiji_y + 5001 + (int)((hiji_m - 9) / 7))) / 4) +
tmp_l = tmp_l - ((int)((30 - tmp_j) / 15)) * ((int)((17719 * tmp_j) / 50)) - ((int)(tmp_j / 16)) * ((int)((15238 * tmp_j) / 43)) + 29; (int)((275 * hiji_m) / 9) + hiji_d + 1729777;
hiji_m = (int)((24 * tmp_l) / 709); }
hiji_d = tmp_l - (int)((709 * hiji_m) / 24); int tmp_l = tmp_jd -1948440 + 10632;
hiji_y = 30 * tmp_n + tmp_j - 30; int tmp_n = (int)((tmp_l - 1) / 10631);
rv[0] = hiji_y; tmp_l = tmp_l - 10631 * tmp_n + 354;
rv[1] = hiji_m; int tmp_j = ((int)((10985 - tmp_l) / 5316)) * ((int)((50 * tmp_l) / 17719)) + ((int)(tmp_l / 5670)) * ((int)((43 * tmp_l) / 15238));
rv[2] = hiji_d; tmp_l = tmp_l - ((int)((30 - tmp_j) / 15)) * ((int)((17719 * tmp_j) / 50)) - ((int)(tmp_j / 16)) * ((int)((15238 * tmp_j) / 43)) + 29;
return true; hiji_m = (int)((24 * tmp_l) / 709);
} hiji_d = tmp_l - (int)((709 * hiji_m) / 24);
public static byte[] Get_month_name(Xowe_wiki wiki, DateAdp date) { hiji_y = 30 * tmp_n + tmp_j - 30;
int[] seg_ary = Calc_date(date); rv[0] = hiji_y;
int m = seg_ary[Rslt__month] - List_adp_.Base1; rv[1] = hiji_m;
byte[] msg_key = Month_names[m]; rv[2] = hiji_d;
return wiki.Msg_mgr().Val_by_key_obj(msg_key); return true;
} }
private static final byte[][] Month_names = new byte[][] public static byte[] Get_month_name(Xowe_wiki wiki, DateAdp date) {
{ Bry_.new_a7("hijiri-calendar-m1"), Bry_.new_a7("hijiri-calendar-m2"), Bry_.new_a7("hijiri-calendar-m3") int[] seg_ary = Calc_date(date);
, Bry_.new_a7("hijiri-calendar-m4"), Bry_.new_a7("hijiri-calendar-m5"), Bry_.new_a7("hijiri-calendar-m6") int m = seg_ary[Rslt__month] - List_adp_.Base1;
, Bry_.new_a7("hijiri-calendar-m7"), Bry_.new_a7("hijiri-calendar-m8"), Bry_.new_a7("hijiri-calendar-m9") byte[] msg_key = Month_names[m];
, Bry_.new_a7("hijiri-calendar-m10"), Bry_.new_a7("hijiri-calendar-m11"), Bry_.new_a7("hijiri-calendar-m12") return wiki.Msg_mgr().Val_by_key_obj(msg_key);
}; }
public static final int private static final byte[][] Month_names = new byte[][]
Rslt__year = 0 { Bry_.new_a7("hijri-calendar-m1"), Bry_.new_a7("hijri-calendar-m2"), Bry_.new_a7("hijri-calendar-m3")
, Rslt__month = 1 , Bry_.new_a7("hijri-calendar-m4"), Bry_.new_a7("hijri-calendar-m5"), Bry_.new_a7("hijri-calendar-m6")
, Rslt__day = 2 , Bry_.new_a7("hijri-calendar-m7"), Bry_.new_a7("hijri-calendar-m8"), Bry_.new_a7("hijri-calendar-m9")
; , Bry_.new_a7("hijri-calendar-m10"), Bry_.new_a7("hijri-calendar-m11"), Bry_.new_a7("hijri-calendar-m12")
} };
public static final int
Rslt__year = 0
, Rslt__month = 1
, Rslt__day = 2
;
}

@ -1,6 +1,6 @@
/* /*
XOWA: the XOWA Offline Wiki Application XOWA: the XOWA Offline Wiki Application
Copyright (C) 2012-2017 gnosygnu@gmail.com Copyright (C) 2012-2021 gnosygnu@gmail.com
XOWA is licensed under the terms of the General Public License (GPL) Version 3, XOWA is licensed under the terms of the General Public License (GPL) Version 3,
or alternatively under the terms of the Apache License Version 2.0. or alternatively under the terms of the Apache License Version 2.0.
@ -13,39 +13,43 @@ The terms of each license can be found in the source code repository:
GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt GPLv3 License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-GPLv3.txt
Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt Apache License: https://github.com/gnosygnu/xowa/blob/master/LICENSE-APACHE2.txt
*/ */
package gplx.xowa.xtns.pfuncs.times; import gplx.*; import gplx.xowa.*; import gplx.xowa.xtns.*; import gplx.xowa.xtns.pfuncs.*; package gplx.xowa.xtns.pfuncs.times;
import org.junit.*;
public class Pft_func_time__other__tst { import org.junit.After;
@Before public void init() {fxt.Clear();} private Pft_func_time_foreign_fxt fxt = new Pft_func_time_foreign_fxt(); import org.junit.Before;
@After public void term() {fxt.Term();} import org.junit.Test;
@Test public void Thai() {fxt.Test_parse("{{#time:xkY|2012}}" , "2555");}
@Test public void Minguo() {fxt.Test_parse("{{#time:xoY|2012}}" , "101");} public class Pft_func_time__other__tst {
@Test public void Iranian__year_idx() {fxt.Test_parse("{{#time:xiY|2012-01-02}}" , "1390");} @Before public void init() {fxt.Clear();} private Pft_func_time_foreign_fxt fxt = new Pft_func_time_foreign_fxt();
@Test public void Iranian__month_idx() {fxt.Test_parse("{{#time:xin|2012-01-02}}" , "10");} @After public void term() {fxt.Term();}
@Test public void Iranian__day_idx() {fxt.Test_parse("{{#time:xij|2012-01-02}}" , "12");} @Test public void Thai() {fxt.Test_parse("{{#time:xkY|2012}}" , "2555");}
@Test public void Iranian__month_name() {fxt.Init_msg("iranian-calendar-m10" , "Dey"); fxt.Test_parse("{{#time:xiF|2012-01-02}}" , "Dey");} @Test public void Minguo() {fxt.Test_parse("{{#time:xoY|2012}}" , "101");}
@Test public void Hijiri__year_idx() {fxt.Test_parse("{{#time:xmY|2012-01-02}}" , "1433");} @Test public void Iranian__year_idx() {fxt.Test_parse("{{#time:xiY|2012-01-02}}" , "1390");}
@Test public void Hijiri__month_idx() {fxt.Test_parse("{{#time:xmn|2012-01-02}}" , "2");} @Test public void Iranian__month_idx() {fxt.Test_parse("{{#time:xin|2012-01-02}}" , "10");}
@Test public void Hijiri__day_idx() {fxt.Test_parse("{{#time:xmj|2012-01-02}}" , "7");} @Test public void Iranian__day_idx() {fxt.Test_parse("{{#time:xij|2012-01-02}}" , "12");}
@Test public void Hijiri__month_name() {fxt.Init_msg("hijiri-calendar-m2" , "Safar"); fxt.Test_parse("{{#time:xmF|2012-01-02}}" , "Safar");} @Test public void Iranian__month_name() {fxt.Init_msg("iranian-calendar-m10" , "Dey"); fxt.Test_parse("{{#time:xiF|2012-01-02}}" , "Dey");}
@Test public void Roman__year() {fxt.Test_parse("{{#time:xrY|2012}}" , "MMXII");} @Test public void hijri__year_idx() {fxt.Test_parse("{{#time:xmY|2012-01-02}}" , "1433");}
@Test public void Roman__various() { @Test public void hijri__month_idx() {fxt.Test_parse("{{#time:xmn|2012-01-02}}" , "2");}
fxt.Test_Roman( 1, "I"); @Test public void hijri__day_idx() {fxt.Test_parse("{{#time:xmj|2012-01-02}}" , "7");}
fxt.Test_Roman( 2, "II"); @Test public void hijri__month_name() {fxt.Init_msg("hijri-calendar-m2" , "Safar"); fxt.Test_parse("{{#time:xmF|2012-01-02}}" , "Safar");}
fxt.Test_Roman( 3, "III"); @Test public void Roman__year() {fxt.Test_parse("{{#time:xrY|2012}}" , "MMXII");}
fxt.Test_Roman( 4, "IV"); @Test public void Roman__various() {
fxt.Test_Roman( 5, "V"); fxt.Test_Roman( 1, "I");
fxt.Test_Roman( 6, "VI"); fxt.Test_Roman( 2, "II");
fxt.Test_Roman( 7, "VII"); fxt.Test_Roman( 3, "III");
fxt.Test_Roman( 8, "VIII"); fxt.Test_Roman( 4, "IV");
fxt.Test_Roman( 9, "IX"); fxt.Test_Roman( 5, "V");
fxt.Test_Roman( 10, "X"); fxt.Test_Roman( 6, "VI");
fxt.Test_Roman( 11, "XI"); fxt.Test_Roman( 7, "VII");
fxt.Test_Roman( 100, "C"); fxt.Test_Roman( 8, "VIII");
fxt.Test_Roman( 101, "CI"); fxt.Test_Roman( 9, "IX");
fxt.Test_Roman( 111, "CXI"); fxt.Test_Roman( 10, "X");
fxt.Test_Roman(1000, "M"); fxt.Test_Roman( 11, "XI");
fxt.Test_Roman(1001, "MI"); fxt.Test_Roman( 100, "C");
fxt.Test_Roman(4000, "4000"); fxt.Test_Roman( 101, "CI");
} fxt.Test_Roman( 111, "CXI");
} fxt.Test_Roman(1000, "M");
fxt.Test_Roman(1001, "MI");
fxt.Test_Roman(4000, "4000");
}
}

Loading…
Cancel
Save