diff --git a/js/data/locale/af/dateres.json b/js/data/locale/af/dateres.json new file mode 100644 index 0000000000..fe44f9847d --- /dev/null +++ b/js/data/locale/af/dateres.json @@ -0,0 +1,16 @@ +{ + "AM/PM": "Vm./nm.", + "Day": "Dag", + "Day of Year": "Dag van jaar", + "Hour": "Uur", + "Minute": "Minuut", + "Month": "Maand", + "Second": "Sekonde", + "Time Zone": "Tydsone", + "Week of Month": "Week van maand", + "Year": "Jaar", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "U", + "HH": "UU" +} \ No newline at end of file diff --git a/js/data/locale/agq/dateres.json b/js/data/locale/agq/dateres.json new file mode 100644 index 0000000000..0d8bd629f4 --- /dev/null +++ b/js/data/locale/agq/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "â tsɨ̀", + "Day": "utsuʔ", + "Era": "kɨtîgh", + "Hour": "tàm", + "Minute": "menè", + "Month": "ndzɔŋ", + "Second": "sɛkɔ̀n", + "Time Zone": "dɨŋò kɨ enɨ̀gha", + "Week": "ewɨn", + "Year": "kɨnûm", + "D": "U", + "DD": "UU", + "YY": "KK", + "YYYY": "KKKK", + "M": "N", + "MM": "NN", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/ak/dateres.json b/js/data/locale/ak/dateres.json new file mode 100644 index 0000000000..8683bbbf1b --- /dev/null +++ b/js/data/locale/ak/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Da bere", + "Day": "Da", + "Era": "Bere", + "Hour": "Dɔnhwer", + "Minute": "Sema", + "Month": "Bosome", + "Second": "Sɛkɛnd", + "Time Zone": "Bere apaamu", + "Week": "Dapɛn", + "Year": "Afe", + "D": "DA", + "DD": "DA", + "YY": "AA", + "YYYY": "AFE", + "M": "B", + "MM": "BB", + "H": "D", + "HH": "DD", + "mm": "ss" +} \ No newline at end of file diff --git a/js/data/locale/am/dateres.json b/js/data/locale/am/dateres.json new file mode 100644 index 0000000000..04e49144a5 --- /dev/null +++ b/js/data/locale/am/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ጥዋት/ከሰዓት", + "Day": "ቀን", + "Day of Year": "የዓመቱ ቀን", + "Era": "ዘመን", + "Hour": "ሰዓት", + "Minute": "ደቂቃ", + "Month": "ወር", + "Second": "ሰከንድ", + "Time Zone": "የሰዓት ሰቅ", + "Week": "ሳምንት", + "Week of Month": "የወሩ ሳምንት", + "Year": "ዓመት", + "D": "ቀን", + "DD": "ቀን", + "YY": "ዓዓ", + "YYYY": "ዓመት", + "M": "ወር", + "MM": "ወር", + "H": "ሰ", + "HH": "ሰሰ", + "mm": "ደደ", + "ss": "ሰሰ" +} \ No newline at end of file diff --git a/js/data/locale/ar/dateres.json b/js/data/locale/ar/dateres.json new file mode 100644 index 0000000000..772b15c1de --- /dev/null +++ b/js/data/locale/ar/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ص/م", + "Day": "يوم", + "Day of Year": "يوم من السنة", + "Era": "العصر", + "Hour": "الساعات", + "Minute": "الدقائق", + "Month": "الشهر", + "Second": "الثواني", + "Time Zone": "التوقيت", + "Week": "الأسبوع", + "Week of Month": "الأسبوع من الشهر", + "Year": "السنة", + "D": "يوم", + "DD": "يوم", + "YY": "السنة", + "YYYY": "السنة", + "M": "الشهر", + "MM": "الشهر", + "H": "الساعات", + "HH": "الساعات", + "mm": "الدقائق", + "ss": "الثواني" +} \ No newline at end of file diff --git a/js/data/locale/ar/sysres.json b/js/data/locale/ar/sysres.json index 011a133f08..2c1400784b 100644 --- a/js/data/locale/ar/sysres.json +++ b/js/data/locale/ar/sysres.json @@ -1,24 +1,4 @@ { - "#in {num}d": "zero#‏خلال {num} يوم|one#‏خلال يوم واحد|two#‏خلال يومين|few#‏خلال {num} أيام|many#‏خلال {num} يومًا|#‏خلال {num} يوم", - "#in {num}h": "zero#‏خلال {num} ساعة|one#‏خلال ساعة واحدة|two#‏خلال ساعتين|few#‏خلال {num} ساعات|many#‏خلال {num} ساعة|#‏خلال {num} ساعة", - "#in {num}mi": "zero#‏خلال {num} دقيقة|one#‏خلال دقيقة واحدة|two#‏خلال دقيقتين|few#‏خلال {num} دقائق|many#‏خلال {num} دقيقة|#‏خلال {num} دقيقة", - "#in {num}mo": "zero#‏خلال {num} شهر|one#‏خلال شهر واحد|two#‏خلال شهرين|few#‏خلال {num} أشهر|many#‏خلال {num} شهرًا|#‏خلال {num} شهر", - "#in {num}s": "zero#‏خلال {num} ثانية|one#‏خلال ثانية واحدة|two#‏خلال ثانيتين|few#‏خلال {num} ثوانٍ|many#‏خلال {num} ثانية|#‏خلال {num} ثانية", - "#in {num}w": "zero#‏خلال {num} أسبوع|one#‏خلال أسبوع واحد|two#‏خلال {num} أسبوعين|few#‏خلال {num} أسابيع|many#‏خلال {num} أسبوعًا|#‏خلال {num} أسبوع", - "#in {num}y": "zero#‏خلال {num} سنة|one#‏خلال سنة واحدة|two#‏خلال سنتين|few#‏خلال {num} سنوات|many#‏خلال {num} سنة|#‏خلال {num} سنة", - "#{num} ms": "zero#{num} ملي ث|one#{num} ملي ث|two#{num} ملي ث|few#{num} ملي ث|many#{num} ملي ث|#{num} ملي ث", - "#{num}d": "zero#{num} ي|one#{num} ي|two#{num} ي|few#{num} ي|many#{num} ي|#{num} ي", - "#{num}d ago": "zero#‏قبل {num} يوم|one#‏قبل يوم واحد|two#‏قبل يومين|few#‏قبل {num} أيام|many#‏قبل {num} يومًا|#‏قبل {num} يوم", - "#{num}h": "zero#{num} س|one#{num} س|two#{num} س|few#{num} س|many#{num} س|#{num} س", - "#{num}h ago": "zero#‏قبل {num} ساعة|one#‏قبل ساعة واحدة|two#‏قبل ساعتين|few#‏قبل {num} ساعات|many#‏قبل {num} ساعة|#‏قبل {num} ساعة", - "#{num}mi ago": "zero#‏قبل {num} دقيقة|one#‏قبل دقيقة واحدة|two#‏قبل دقيقتين|few#‏قبل {num} دقائق|many#‏قبل {num} دقيقة|#‏قبل {num} دقيقة", - "#{num}mo ago": "zero#‏قبل {num} شهر|one#‏قبل شهر واحد|two#‏قبل شهرين|few#‏خلال {num} أشهر|many#‏قبل {num} شهرًا|#‏قبل {num} شهر", - "#{num}s": "zero#{num} ث|one#{num} ث|two#{num} ث|few#{num} ث|many#{num} ث|#{num} ث", - "#{num}s ago": "zero#‏قبل {num} ثانية|one#‏قبل ثانية واحدة|two#‏قبل ثانيتين|few#‏قبل {num} ثوانٍ|many#‏قبل {num} ثانية|#‏قبل {num} ثانية", - "#{num}w": "zero#{num} أ|one#{num} أ|two#{num} أ|few#{num} أ|many#{num} أ|#{num} أ", - "#{num}w ago": "zero#‏قبل {num} أسبوع|one#‏قبل أسبوع واحد|two#‏قبل أسبوعين|few#‏قبل {num} أسابيع|many#‏قبل {num} أسبوعًا|#‏قبل {num} أسبوع", - "#{num}y": "zero#{num} سنة|one#{num} سنة|two#{num} سنة|few#{num} سنة|many#{num} سنة|#{num} سنة", - "#{num}y ago": "zero#‏قبل {num} سنة|one#‏قبل سنة واحدة|two#‏قبل سنتين|few#‏قبل {num} سنوات|many#‏قبل {num} سنة|#‏قبل {num} سنة", "1#1 day ago|#{num} days ago": "zero#‏قبل {num} يوم|one#‏قبل يوم واحد|two#‏قبل يومين|few#‏قبل {num} أيام|many#‏قبل {num} يومًا|#‏قبل {num} يوم", "1#1 day|#{num} days": "zero#{num} يوم|one#يوم|two#يومان|few#{num} أيام|many#{num} يومًا|#{num} يوم", "1#1 dy ago|#{num} dys ago": "zero#‏قبل {num} يوم|one#‏قبل يوم واحد|two#‏قبل يومين|few#‏قبل {num} أيام|many#‏قبل {num} يومًا|#‏قبل {num} يوم", @@ -29,19 +9,19 @@ "1#1 hr|#{num} hrs": "zero#{num} س|one#{num} س|two#{num} س|few#{num} س|many#{num} س|#{num} س", "1#1 millisecond|#{num} milliseconds": "zero#{num} ملي ثانية|one#{num} ملي ثانية|two#{num} ملي ثانية|few#{num} ملي ثانية|many#{num} ملي ثانية|#{num} ملي ثانية", "1#1 min ago|#{num} min ago": "zero#‏قبل {num} دقيقة|one#‏قبل دقيقة واحدة|two#‏قبل دقيقتين|few#‏قبل {num} دقائق|many#‏قبل {num} دقيقة|#‏قبل {num} دقيقة", - "1#1 minute ago|#{num} minutes ago": "zero#‏قبل {num} دقيقة|one#‏قبل دقيقة واحدة|two#‏قبل دقيقتين|few#‏قبل {num} دقائق|many#‏قبل {num} دقيقة|#‏قبل {num} دقيقة", - "1#1 minute|#{num} minutes": "zero#{num} دقيقة|one#دقيقة|two#دقيقتان|few#{num} دقائق|many#{num} دقيقة|#{num} دقيقة", "1#1 min|#{num} min": "zero#{num} د|one#{num} د|two#{num} د|few#{num} د|many#{num} د|#{num} د", "1#1 mi|#{num} min": "zero#{num} د|one#{num} د|two#{num} د|few#{num} د|many#{num} د|#{num} د", + "1#1 minute ago|#{num} minutes ago": "zero#‏قبل {num} دقيقة|one#‏قبل دقيقة واحدة|two#‏قبل دقيقتين|few#‏قبل {num} دقائق|many#‏قبل {num} دقيقة|#‏قبل {num} دقيقة", + "1#1 minute|#{num} minutes": "zero#{num} دقيقة|one#دقيقة|two#دقيقتان|few#{num} دقائق|many#{num} دقيقة|#{num} دقيقة", "1#1 mon ago|#{num} mons ago": "zero#‏قبل {num} شهر|one#‏قبل شهر واحد|two#‏قبل شهرين|few#‏قبل {num} أشهر|many#‏قبل {num} شهرًا|#‏قبل {num} شهر", + "1#1 mon|#{num} mons": "zero#{num} شهر|one#شهر|two#شهران|few#{num} أشهر|many#{num} شهرًا|#{num} شهر", "1#1 month ago|#{num} months ago": "zero#‏قبل {num} شهر|one#‏قبل شهر واحد|two#‏قبل شهرين|few#‏قبل {num} أشهر|many#‏قبل {num} شهرًا|#‏قبل {num} شهر", "1#1 month|#{num} months": "zero#{num} شهر|one#شهر|two#شهران|few#{num} أشهر|many#{num} شهرًا|#{num} شهر", - "1#1 mon|#{num} mons": "zero#{num} شهر|one#شهر|two#شهران|few#{num} أشهر|many#{num} شهرًا|#{num} شهر", "1#1 mo|#{num} mos": "zero#{num} شهر|one#شهر|two#شهران|few#{num} أشهر|many#{num} شهرًا|#{num} شهر", "1#1 sec ago|#{num} sec ago": "zero#‏قبل {num} ثانية|one#‏قبل ثانية واحدة|two#‏قبل ثانيتين|few#‏قبل {num} ثوانِ|many#‏قبل {num} ثانية|#‏قبل {num} ثانية", + "1#1 sec|#{num} sec": "zero#{num} ث|one#{num} ث|two#{num} ث|few#{num} ث|many#{num} ث|#{num} ث", "1#1 second ago|#{num} seconds ago": "zero#‏قبل {num} ثانية|one#‏قبل ثانية واحدة|two#‏قبل ثانيتين|few#‏قبل {num} ثوانِ|many#‏قبل {num} ثانية|#‏قبل {num} ثانية", "1#1 second|#{num} seconds": "zero#{num} ثانية|one#ثانية|two#ثانيتان|few#{num} ثوان|many#{num} ثانية|#{num} ثانية", - "1#1 sec|#{num} sec": "zero#{num} ث|one#{num} ث|two#{num} ث|few#{num} ث|many#{num} ث|#{num} ث", "1#1 se|#{num} sec": "zero#{num} ث|one#{num} ث|two#{num} ث|few#{num} ث|many#{num} ث|#{num} ث", "1#1 week ago|#{num} weeks ago": "zero#‏قبل {num} أسبوع|one#‏قبل أسبوع واحد|two#‏قبل أسبوعين|few#‏قبل {num} أسابيع|many#‏قبل {num} أسبوعًا|#‏قبل {num} أسبوع", "1#1 week|#{num} weeks": "zero#{num} أسبوع|one#أسبوع|two#أسبوعان|few#{num} أسابيع|many#{num} أسبوعًا|#{num} أسبوع", @@ -55,16 +35,20 @@ "1#in 1 dy|#in {num} dys": "zero#‏خلال {num} يوم|one#‏خلال يوم واحد|two#‏خلال يومين|few#‏خلال {num} أيام|many#‏خلال {num} يومًا|#‏خلال {num} يوم", "1#in 1 hour|#in {num} hours": "zero#‏خلال {num} ساعة|one#‏خلال ساعة واحدة|two#‏خلال ساعتين|few#‏خلال {num} ساعات|many#‏خلال {num} ساعة|#‏خلال {num} ساعة", "1#in 1 hr|#in {num} hrs": "zero#‏خلال {num} ساعة|one#‏خلال ساعة واحدة|two#‏خلال ساعتين|few#‏خلال {num} ساعات|many#‏خلال {num} ساعة|#‏خلال {num} ساعة", - "1#in 1 minute|#in {num} minutes": "zero#‏خلال {num} دقيقة|one#‏خلال دقيقة واحدة|two#‏خلال دقيقتين|few#‏خلال {num} دقائق|many#‏خلال {num} دقيقة|#‏خلال {num} دقيقة", "1#in 1 min|#in {num} min": "zero#‏خلال {num} دقيقة|one#‏خلال دقيقة واحدة|two#‏خلال دقيقتين|few#‏خلال {num} دقائق|many#‏خلال {num} دقيقة|#‏خلال {num} دقيقة", - "1#in 1 month|#in {num} months": "zero#‏خلال {num} شهر|one#‏خلال شهر واحد|two#‏خلال شهرين|few#‏خلال {num} أشهر|many#‏خلال {num} شهرًا|#‏خلال {num} شهر", + "1#in 1 minute|#in {num} minutes": "zero#‏خلال {num} دقيقة|one#‏خلال دقيقة واحدة|two#‏خلال دقيقتين|few#‏خلال {num} دقائق|many#‏خلال {num} دقيقة|#‏خلال {num} دقيقة", "1#in 1 mon|#in {num} mons": "zero#‏خلال {num} شهر|one#‏خلال شهر واحد|two#‏خلال شهرين|few#‏خلال {num} أشهر|many#‏خلال {num} شهرًا|#‏خلال {num} شهر", - "1#in 1 second|#in {num} seconds": "zero#‏خلال {num} ثانية|one#‏خلال ثانية واحدة|two#‏خلال ثانيتين|few#‏خلال {num} ثوانٍ|many#‏خلال {num} ثانية|#‏خلال {num} ثانية", + "1#in 1 month|#in {num} months": "zero#‏خلال {num} شهر|one#‏خلال شهر واحد|two#‏خلال شهرين|few#‏خلال {num} أشهر|many#‏خلال {num} شهرًا|#‏خلال {num} شهر", "1#in 1 sec|#in {num} sec": "zero#‏خلال {num} ثانية|one#‏خلال ثانية واحدة|two#‏خلال ثانيتين|few#‏خلال {num} ثوانٍ|many#‏خلال {num} ثانية|#‏خلال {num} ثانية", + "1#in 1 second|#in {num} seconds": "zero#‏خلال {num} ثانية|one#‏خلال ثانية واحدة|two#‏خلال ثانيتين|few#‏خلال {num} ثوانٍ|many#‏خلال {num} ثانية|#‏خلال {num} ثانية", "1#in 1 week|#in {num} weeks": "zero#‏خلال {num} أسبوع|one#‏خلال أسبوع واحد|two#‏خلال أسبوعين|few#‏خلال {num} أسابيع|many#‏خلال {num} أسبوعًا|#‏خلال {num} أسبوع", "1#in 1 wk|#in {num} wks": "zero#‏خلال {num} أسبوع|one#‏خلال أسبوع واحد|two#‏خلال أسبوعين|few#‏خلال {num} أسابيع|many#‏خلال {num} أسبوعًا|#‏خلال {num} أسبوع", "1#in 1 year|#in {num} years": "zero#‏خلال {num} سنة|one#‏خلال سنة واحدة|two#‏خلال سنتين|few#‏خلال {num} سنوات|many#‏خلال {num} سنة|#‏خلال {num} سنة", "1#in 1 yr|#in {num} yrs": "zero#‏خلال {num} سنة|one#‏خلال سنة واحدة|two#‏خلال سنتين|few#‏خلال {num} سنوات|many#‏خلال {num} سنة|#‏خلال {num} سنة", + "a0-hebrew": "ص", + "a0": "ص", + "a1-hebrew": "م", + "a1": "م", "B0": "في المساء", "B1": "ص", "B2": "ليلاً", @@ -74,100 +58,202 @@ "B6": "م", "B7": "بعد الظهر", "B8": "مساءً", + "durationLongDays": "zero#{num} يوم|one#يوم|two#يومان|few#{num} أيام|many#{num} يومًا|#{num} يوم", + "durationMediumHours": "zero#{num} س|one#{num} س|two#{num} س|few#{num} س|many#{num} س|#{num} س", + "durationMediumMillis": "zero#{num} ملي ث|one#{num} ملي ث|two#{num} ملي ث|few#{num} ملي ث|many#{num} ملي ث|#{num} ملي ث", + "durationMediumWeeks": "zero#{num} أ|one#{num} أ|two#{num} أ|few#{num} أ|many#{num} أ|#{num} أ", + "durationMediumYears": "zero#{num} سنة|one#{num} سنة|two#{num} سنة|few#{num} سنة|many#{num} سنة|#{num} سنة", + "durationShortMillis": "zero#{num} ملي ث|one#{num} ملي ث|two#{num} ملي ث|few#{num} ملي ث|many#{num} ملي ث|#{num} ملي ث", + "durationShortMinutes": "zero#{num} د|one#{num} د|two#{num} د|few#{num} د|many#{num} د|#{num} د", + "durationShortMonths": "zero#{num} شهر|one#شهر|two#شهران|few#{num} أشهر|many#{num} شهرًا|#{num} شهر", + "E0-hebrew": "ح", "E0": "ح", + "E1-hebrew": "ن", "E1": "ن", + "E2-hebrew": "ث", "E2": "ث", + "E3-hebrew": "ر", "E3": "ر", + "E4-hebrew": "خ", "E4": "خ", + "E5-hebrew": "ج", "E5": "ج", + "E6-hebrew": "س", "E6": "س", + "EE0-hebrew": "أحد", "EE0": "أحد", + "EE1-hebrew": "إثنين", "EE1": "إثنين", + "EE2-hebrew": "ثلاثاء", "EE2": "ثلاثاء", + "EE3-hebrew": "أربعاء", "EE3": "أربعاء", + "EE4-hebrew": "خميس", "EE4": "خميس", + "EE5-hebrew": "جمعة", "EE5": "جمعة", + "EE6-hebrew": "سبت", "EE6": "سبت", + "EEE0-hebrew": "الأحد", "EEE0": "الأحد", + "EEE1-hebrew": "الاثنين", "EEE1": "الاثنين", + "EEE2-hebrew": "الثلاثاء", "EEE2": "الثلاثاء", + "EEE3-hebrew": "الأربعاء", "EEE3": "الأربعاء", + "EEE4-hebrew": "الخميس", "EEE4": "الخميس", + "EEE5-hebrew": "الجمعة", "EEE5": "الجمعة", + "EEE6-hebrew": "السبت", "EEE6": "السبت", + "EEEE0-hebrew": "الأحد", "EEEE0": "الأحد", + "EEEE1-hebrew": "الاثنين", "EEEE1": "الاثنين", + "EEEE2-hebrew": "الثلاثاء", "EEEE2": "الثلاثاء", + "EEEE3-hebrew": "الأربعاء", "EEEE3": "الأربعاء", + "EEEE4-hebrew": "الخميس", "EEEE4": "الخميس", + "EEEE5-hebrew": "الجمعة", "EEEE5": "الجمعة", + "EEEE6-hebrew": "السبت", "EEEE6": "السبت", - "G-1": "ق. م", + "finalSeparatorFull": "، و", + "finalSeparatorLong": "، و", + "finalSeparatorMedium": "، و", + "finalSeparatorShort": " و", "G1": "ب.م", - "MMM1": "يناير", + "G-1": "ق. م", + "#in {num}d": "zero#‏خلال {num} يوم|one#‏خلال يوم واحد|two#‏خلال يومين|few#‏خلال {num} أيام|many#‏خلال {num} يومًا|#‏خلال {num} يوم", + "#in {num}h": "zero#‏خلال {num} ساعة|one#‏خلال ساعة واحدة|two#‏خلال ساعتين|few#‏خلال {num} ساعات|many#‏خلال {num} ساعة|#‏خلال {num} ساعة", + "#in {num}mi": "zero#‏خلال {num} دقيقة|one#‏خلال دقيقة واحدة|two#‏خلال دقيقتين|few#‏خلال {num} دقائق|many#‏خلال {num} دقيقة|#‏خلال {num} دقيقة", + "#in {num}mo": "zero#‏خلال {num} شهر|one#‏خلال شهر واحد|two#‏خلال شهرين|few#‏خلال {num} أشهر|many#‏خلال {num} شهرًا|#‏خلال {num} شهر", + "#in {num}s": "zero#‏خلال {num} ثانية|one#‏خلال ثانية واحدة|two#‏خلال ثانيتين|few#‏خلال {num} ثوانٍ|many#‏خلال {num} ثانية|#‏خلال {num} ثانية", + "#in {num}w": "zero#‏خلال {num} أسبوع|one#‏خلال أسبوع واحد|two#‏خلال {num} أسبوعين|few#‏خلال {num} أسابيع|many#‏خلال {num} أسبوعًا|#‏خلال {num} أسبوع", + "#in {num}y": "zero#‏خلال {num} سنة|one#‏خلال سنة واحدة|two#‏خلال سنتين|few#‏خلال {num} سنوات|many#‏خلال {num} سنة|#‏خلال {num} سنة", + "MMM10-hebrew": "طيفت", "MMM10": "أكتوبر", + "MMM11-hebrew": "شباط", "MMM11": "نوفمبر", + "MMM12-hebrew": "آذار", + "MMM12-leap-hebrew": "آذار الأول", "MMM12": "ديسمبر", + "MMM13-leap-hebrew": "آذار الثاني", + "MMM1-hebrew": "نيسان", + "MMM1": "يناير", + "MMM2-hebrew": "أيار", "MMM2": "فبراير", + "MMM3-hebrew": "سيفان", "MMM3": "مارس", + "MMM4-hebrew": "تموز", "MMM4": "أبريل", + "MMM5-hebrew": "آب", "MMM5": "مايو", + "MMM6-hebrew": "أيلول", "MMM6": "يونيو", + "MMM7-hebrew": "تشري", "MMM7": "يوليو", + "MMM8-hebrew": "مرحشوان", "MMM8": "أغسطس", + "MMM9-hebrew": "كيسلو", "MMM9": "سبتمبر", - "MMMM1": "يناير", + "MMMM10-hebrew": "طيفت", "MMMM10": "أكتوبر", + "MMMM11-hebrew": "شباط", "MMMM11": "نوفمبر", + "MMMM12-hebrew": "آذار", + "MMMM12-leap-hebrew": "آذار الأول", "MMMM12": "ديسمبر", + "MMMM13-leap-hebrew": "آذار الثاني", + "MMMM1-hebrew": "نيسان", + "MMMM1": "يناير", + "MMMM2-hebrew": "أيار", "MMMM2": "فبراير", + "MMMM3-hebrew": "سيفان", "MMMM3": "مارس", + "MMMM4-hebrew": "تموز", "MMMM4": "أبريل", + "MMMM5-hebrew": "آب", "MMMM5": "مايو", + "MMMM6-hebrew": "أيلول", "MMMM6": "يونيو", + "MMMM7-hebrew": "تشري", "MMMM7": "يوليو", + "MMMM8-hebrew": "مرحشوان", "MMMM8": "أغسطس", + "MMMM9-hebrew": "كيسلو", "MMMM9": "سبتمبر", - "N1": "ي", + "N10-hebrew": "ط", "N10": "أ", + "N11-hebrew": "ش", "N11": "ن", + "N12-hebrew": "آ", + "N12-leap-hebrew": "آ", "N12": "د", + "N13-leap-hebrew": "آ", + "N1-hebrew": "ن", + "N1": "ي", + "N2-hebrew": "أ", "N2": "ف", + "N3-hebrew": "س", "N3": "م", + "N4-hebrew": "ت", "N4": "أ", + "N5-hebrew": "آ", "N5": "م", + "N6-hebrew": "أ", "N6": "ي", + "N7-hebrew": "ت", "N7": "ي", + "N8-hebrew": "م", "N8": "أ", + "N9-hebrew": "ك", "N9": "س", - "NN1": "ين", + "NN10-hebrew": "طي", "NN10": "أك", + "NN11-hebrew": "شب", "NN11": "نو", + "NN12-hebrew": "آذ", + "NN12-leap-hebrew": "آذ", "NN12": "دي", + "NN13-leap-hebrew": "آذ", + "NN1-hebrew": "ني", + "NN1": "ين", + "NN2-hebrew": "أي", "NN2": "فب", + "NN3-hebrew": "سي", "NN3": "ما", + "NN4-hebrew": "تم", "NN4": "أب", + "NN5-hebrew": "آب", "NN5": "ما", + "NN6-hebrew": "أي", "NN6": "يو", + "NN7-hebrew": "تش", "NN7": "يو", + "NN8-hebrew": "مر", "NN8": "أغ", + "NN9-hebrew": "كي", "NN9": "سب", - "a0": "ص", - "a1": "م", - "durationLongDays": "zero#{num} يوم|one#يوم|two#يومان|few#{num} أيام|many#{num} يومًا|#{num} يوم", - "durationMediumHours": "zero#{num} س|one#{num} س|two#{num} س|few#{num} س|many#{num} س|#{num} س", - "durationMediumMillis": "zero#{num} ملي ث|one#{num} ملي ث|two#{num} ملي ث|few#{num} ملي ث|many#{num} ملي ث|#{num} ملي ث", - "durationMediumWeeks": "zero#{num} أ|one#{num} أ|two#{num} أ|few#{num} أ|many#{num} أ|#{num} أ", - "durationMediumYears": "zero#{num} سنة|one#{num} سنة|two#{num} سنة|few#{num} سنة|many#{num} سنة|#{num} سنة", - "durationShortMillis": "zero#{num} ملي ث|one#{num} ملي ث|two#{num} ملي ث|few#{num} ملي ث|many#{num} ملي ث|#{num} ملي ث", - "durationShortMinutes": "zero#{num} د|one#{num} د|two#{num} د|few#{num} د|many#{num} د|#{num} د", - "durationShortMonths": "zero#{num} شهر|one#شهر|two#شهران|few#{num} أشهر|many#{num} شهرًا|#{num} شهر", - "finalSeparatorFull": "، و", - "finalSeparatorLong": "، و", - "finalSeparatorMedium": "، و", - "finalSeparatorShort": " و", + "#{num}d ago": "zero#‏قبل {num} يوم|one#‏قبل يوم واحد|two#‏قبل يومين|few#‏قبل {num} أيام|many#‏قبل {num} يومًا|#‏قبل {num} يوم", + "#{num}d": "zero#{num} ي|one#{num} ي|two#{num} ي|few#{num} ي|many#{num} ي|#{num} ي", + "#{num}h ago": "zero#‏قبل {num} ساعة|one#‏قبل ساعة واحدة|two#‏قبل ساعتين|few#‏قبل {num} ساعات|many#‏قبل {num} ساعة|#‏قبل {num} ساعة", + "#{num}h": "zero#{num} س|one#{num} س|two#{num} س|few#{num} س|many#{num} س|#{num} س", + "#{num}mi ago": "zero#‏قبل {num} دقيقة|one#‏قبل دقيقة واحدة|two#‏قبل دقيقتين|few#‏قبل {num} دقائق|many#‏قبل {num} دقيقة|#‏قبل {num} دقيقة", + "#{num}mo ago": "zero#‏قبل {num} شهر|one#‏قبل شهر واحد|two#‏قبل شهرين|few#‏خلال {num} أشهر|many#‏قبل {num} شهرًا|#‏قبل {num} شهر", + "#{num} ms": "zero#{num} ملي ث|one#{num} ملي ث|two#{num} ملي ث|few#{num} ملي ث|many#{num} ملي ث|#{num} ملي ث", + "#{num}s ago": "zero#‏قبل {num} ثانية|one#‏قبل ثانية واحدة|two#‏قبل ثانيتين|few#‏قبل {num} ثوانٍ|many#‏قبل {num} ثانية|#‏قبل {num} ثانية", + "#{num}s": "zero#{num} ث|one#{num} ث|two#{num} ث|few#{num} ث|many#{num} ث|#{num} ث", + "#{num}w ago": "zero#‏قبل {num} أسبوع|one#‏قبل أسبوع واحد|two#‏قبل أسبوعين|few#‏قبل {num} أسابيع|many#‏قبل {num} أسبوعًا|#‏قبل {num} أسبوع", + "#{num}w": "zero#{num} أ|one#{num} أ|two#{num} أ|few#{num} أ|many#{num} أ|#{num} أ", + "#{num}y ago": "zero#‏قبل {num} سنة|one#‏قبل سنة واحدة|two#‏قبل سنتين|few#‏قبل {num} سنوات|many#‏قبل {num} سنة|#‏قبل {num} سنة", + "#{num}y": "zero#{num} سنة|one#{num} سنة|two#{num} سنة|few#{num} سنة|many#{num} سنة|#{num} سنة", "separatorFull": "، و", "separatorLong": "، و", "separatorMedium": "، و", "separatorShort": " و" -} \ No newline at end of file +} diff --git a/js/data/locale/as/dateres.json b/js/data/locale/as/dateres.json new file mode 100644 index 0000000000..51757efb57 --- /dev/null +++ b/js/data/locale/as/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "পূৰ্বাহ্ন/অপৰাহ্ন", + "Day": "দিন", + "Day of Year": "বছৰৰ দিন", + "Era": "যুগ", + "Hour": "ঘণ্টা", + "Minute": "মিনিট", + "Month": "মাহ", + "Second": "ছেকেণ্ড", + "Time Zone": "সময় ক্ষেত্ৰ", + "Week": "সপ্তাহ", + "Week of Month": "মাহৰ সপ্তাহ", + "Year": "বছৰ", + "D": "দ", + "DD": "দদ", + "YY": "বব", + "YYYY": "বছৰ", + "M": "ম", + "MM": "মম", + "H": "ঘ", + "HH": "ঘঘ", + "mm": "মম", + "ss": "ছছ" +} \ No newline at end of file diff --git a/js/data/locale/asa/dateres.json b/js/data/locale/asa/dateres.json new file mode 100644 index 0000000000..ced0b342f6 --- /dev/null +++ b/js/data/locale/asa/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "Marango athiku", + "Day": "Thiku", + "Era": "Edhi", + "Hour": "Thaa", + "Minute": "Dakika", + "Month": "Mweji", + "Second": "Thekunde", + "Time Zone": "Majira Athaa", + "Week": "Ndisha", + "Year": "Mwaka", + "D": "T", + "DD": "TT", + "YY": "MM", + "YYYY": "MMMM", + "H": "T", + "HH": "TT", + "mm": "dd", + "ss": "tt" +} \ No newline at end of file diff --git a/js/data/locale/ast/dateres.json b/js/data/locale/ast/dateres.json new file mode 100644 index 0000000000..f1afca62a3 --- /dev/null +++ b/js/data/locale/ast/dateres.json @@ -0,0 +1,14 @@ +{ + "AM/PM": "periodu del día", + "Day": "día", + "Era": "era", + "Hour": "hora", + "Minute": "minutu", + "Month": "mes", + "Second": "segundu", + "Time Zone": "estaya horaria", + "Week": "selmana", + "Year": "añu", + "YY": "AA", + "YYYY": "AÑU" +} \ No newline at end of file diff --git a/js/data/locale/az/Cyrl/dateres.json b/js/data/locale/az/Cyrl/dateres.json new file mode 100644 index 0000000000..ec809a68ae --- /dev/null +++ b/js/data/locale/az/Cyrl/dateres.json @@ -0,0 +1,6 @@ +{ + "AM/PM": "Dayperiod", + "Day of Year": "Day Of Year", + "Time Zone": "Zone", + "Week of Month": "Week Of Month" +} \ No newline at end of file diff --git a/js/data/locale/az/dateres.json b/js/data/locale/az/dateres.json new file mode 100644 index 0000000000..531f2e7196 --- /dev/null +++ b/js/data/locale/az/dateres.json @@ -0,0 +1,21 @@ +{ + "Day": "Gün", + "Day of Year": "ilin günü", + "Hour": "Saat", + "Minute": "Dəqiqə", + "Month": "Ay", + "Second": "Saniyə", + "Time Zone": "Saat Qurşağı", + "Week": "Həftə", + "Week of Month": "Ayın həftəsi", + "Year": "İl", + "D": "G", + "DD": "GG", + "YY": "İL", + "YYYY": "İL", + "M": "AY", + "MM": "AY", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/bas/dateres.json b/js/data/locale/bas/dateres.json new file mode 100644 index 0000000000..243238bab3 --- /dev/null +++ b/js/data/locale/bas/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "njǎmùha", + "Day": "kɛl", + "Era": "kèk", + "Hour": "ŋgɛŋ", + "Minute": "ŋget", + "Month": "soŋ", + "Second": "hìŋgeŋget", + "Time Zone": "komboo i ŋgɛŋ", + "Week": "sɔndɛ̂", + "Year": "ŋwìi", + "D": "K", + "DD": "KK", + "YY": "ŊŊ", + "YYYY": "ŊŊŊŊ", + "M": "S", + "MM": "SS", + "H": "Ŋ", + "HH": "ŊŊ", + "mm": "ŋŋ", + "ss": "hh" +} \ No newline at end of file diff --git a/js/data/locale/be/dateres.json b/js/data/locale/be/dateres.json new file mode 100644 index 0000000000..4f84ba5f7c --- /dev/null +++ b/js/data/locale/be/dateres.json @@ -0,0 +1,23 @@ +{ + "Day": "дзень", + "Day of Year": "дзень года", + "Era": "эра", + "Hour": "гадзіна", + "Minute": "хвіліна", + "Month": "месяц", + "Second": "секунда", + "Time Zone": "часавы пояс", + "Week": "тыд", + "Week of Month": "тыдзень месяца", + "Year": "год", + "D": "Д", + "DD": "ДД", + "YY": "ГГ", + "YYYY": "ГОД", + "M": "М", + "MM": "ММ", + "H": "Г", + "HH": "ГГ", + "mm": "хх", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/bem/dateres.json b/js/data/locale/bem/dateres.json new file mode 100644 index 0000000000..f9623eadd3 --- /dev/null +++ b/js/data/locale/bem/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "Akasuba", + "Day": "Ubushiku", + "Era": "Inkulo", + "Hour": "Insa", + "Minute": "Mineti", + "Month": "Umweshi", + "Second": "Sekondi", + "Time Zone": "Zone", + "Week": "Umulungu", + "Year": "Umwaka", + "D": "U", + "DD": "UU", + "YY": "UU", + "YYYY": "UUUU", + "M": "U", + "MM": "UU", + "H": "I", + "HH": "II" +} \ No newline at end of file diff --git a/js/data/locale/bez/dateres.json b/js/data/locale/bez/dateres.json new file mode 100644 index 0000000000..2331a92fc5 --- /dev/null +++ b/js/data/locale/bez/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Lwamelau", + "Day": "Sihu", + "Era": "Amajira", + "Hour": "Saa", + "Minute": "Dakika", + "Month": "Mwedzi", + "Second": "Sekunde", + "Time Zone": "Amajira ga saa", + "Week": "Mlungu gumamfu", + "Year": "Mwaha", + "D": "S", + "DD": "SS", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/bg/dateres.json b/js/data/locale/bg/dateres.json new file mode 100644 index 0000000000..bc5d811284 --- /dev/null +++ b/js/data/locale/bg/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "пр.об./сл.об.", + "Day": "ден", + "Day of Year": "ден от годината", + "Era": "ера", + "Hour": "час", + "Minute": "минута", + "Month": "месец", + "Second": "секунда", + "Time Zone": "часова зона", + "Week": "седмица", + "Week of Month": "седмица от месеца", + "Year": "година", + "D": "Д", + "DD": "ДД", + "YY": "ГГ", + "YYYY": "ГГГГ", + "M": "М", + "MM": "ММ", + "H": "Ч", + "HH": "ЧЧ", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/bm/dateres.json b/js/data/locale/bm/dateres.json new file mode 100644 index 0000000000..88e8112751 --- /dev/null +++ b/js/data/locale/bm/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "sɔgɔma/tile/wula/su", + "Day": "don", + "Era": "tile", + "Hour": "lɛrɛ", + "Minute": "miniti", + "Month": "kalo", + "Second": "sekondi", + "Time Zone": "sigikun tilena", + "Week": "dɔgɔkun", + "Year": "san", + "YY": "SS", + "YYYY": "SAN", + "M": "K", + "MM": "KK", + "H": "L", + "HH": "LL" +} \ No newline at end of file diff --git a/js/data/locale/bn/dateres.json b/js/data/locale/bn/dateres.json new file mode 100644 index 0000000000..312959eb33 --- /dev/null +++ b/js/data/locale/bn/dateres.json @@ -0,0 +1,23 @@ +{ + "Day": "দিন", + "Day of Year": "বছরের দিন", + "Era": "যুগ", + "Hour": "ঘণ্টা", + "Minute": "মিনিট", + "Month": "মাস", + "Second": "সেকেন্ড", + "Time Zone": "সময় অঞ্চল", + "Week": "সপ্তাহ", + "Week of Month": "মাসের সপ্তাহ", + "Year": "বছর", + "D": "দ", + "DD": "দদ", + "YY": "বব", + "YYYY": "বছর", + "M": "ম", + "MM": "মম", + "H": "ঘ", + "HH": "ঘঘ", + "mm": "মম", + "ss": "সস" +} \ No newline at end of file diff --git a/js/data/locale/bo/dateres.json b/js/data/locale/bo/dateres.json new file mode 100644 index 0000000000..f24b3c03d0 --- /dev/null +++ b/js/data/locale/bo/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "Dayperiod", + "Day": "ཉིན།", + "Hour": "ཆུ་ཚོད་", + "Minute": "སྐར་མ།", + "Month": "ཟླ་བ་", + "Second": "སྐར་ཆ།", + "Time Zone": "དུས་ཚོད།", + "Year": "ལོ།", + "D": "ཉ", + "DD": "ཉཉ", + "YY": "ལལ", + "YYYY": "ལོ།", + "M": "ཟ", + "MM": "ཟཟ", + "H": "ཆ", + "HH": "ཆཆ", + "mm": "སས", + "ss": "སས" +} \ No newline at end of file diff --git a/js/data/locale/br/dateres.json b/js/data/locale/br/dateres.json new file mode 100644 index 0000000000..b6da7d8ba9 --- /dev/null +++ b/js/data/locale/br/dateres.json @@ -0,0 +1,17 @@ +{ + "AM/PM": "AM/GM", + "Day": "Deiz", + "Era": "Amzervezh", + "Hour": "Eur", + "Minute": "Munut", + "Month": "Miz", + "Second": "Eilenn", + "Time Zone": "Takad eur", + "Week": "Sizhun", + "Year": "Bloaz", + "YY": "BB", + "YYYY": "BBBB", + "H": "E", + "HH": "EE", + "ss": "ee" +} \ No newline at end of file diff --git a/js/data/locale/brx/dateres.json b/js/data/locale/brx/dateres.json new file mode 100644 index 0000000000..f3a7e42975 --- /dev/null +++ b/js/data/locale/brx/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "फुं/बेलासे", + "Day": "सान", + "Era": "जौथाय", + "Hour": "रिंगा", + "Minute": "मिनिथ", + "Month": "दान", + "Second": "सेखेन्द", + "Time Zone": "ओनसोल", + "Week": "सबथा/हबथा", + "Year": "बोसोर", + "D": "स", + "DD": "सस", + "YY": "बब", + "YYYY": "बबबब", + "M": "द", + "MM": "दद", + "H": "र", + "HH": "रर", + "mm": "मम", + "ss": "सस" +} \ No newline at end of file diff --git a/js/data/locale/bs/Cyrl/dateres.json b/js/data/locale/bs/Cyrl/dateres.json new file mode 100644 index 0000000000..e61f5f02c8 --- /dev/null +++ b/js/data/locale/bs/Cyrl/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "пре подне/поподне", + "Day": "дан", + "Day of Year": "Day Of Year", + "Era": "ера", + "Hour": "час", + "Minute": "минут", + "Month": "месец", + "Second": "секунд", + "Time Zone": "зона", + "Week": "недеља", + "Week of Month": "Week Of Month", + "Year": "година", + "D": "Д", + "DD": "ДД", + "YY": "ГГ", + "YYYY": "ГГГГ", + "M": "М", + "MM": "ММ", + "H": "Ч", + "HH": "ЧЧ", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/bs/dateres.json b/js/data/locale/bs/dateres.json new file mode 100644 index 0000000000..0a6829dc18 --- /dev/null +++ b/js/data/locale/bs/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "prijepodne/poslijepodne", + "Day": "dan", + "Day of Year": "dan u godini", + "Era": "era", + "Hour": "sat", + "Minute": "minuta", + "Month": "mjesec", + "Second": "sekunda", + "Time Zone": "vremenska zona", + "Week": "sedmica", + "Week of Month": "sedmica u mjesecu", + "Year": "godina", + "YY": "GG", + "YYYY": "GGGG", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/ca/dateres.json b/js/data/locale/ca/dateres.json new file mode 100644 index 0000000000..524c54e3e5 --- /dev/null +++ b/js/data/locale/ca/dateres.json @@ -0,0 +1,16 @@ +{ + "AM/PM": "a. m./p. m.", + "Day": "dia", + "Day of Year": "dia de l’any", + "Era": "era", + "Hour": "hora", + "Minute": "minut", + "Month": "mes", + "Second": "segon", + "Time Zone": "fus horari", + "Week": "setmana", + "Week of Month": "setmana del mes", + "Year": "any", + "YY": "AA", + "YYYY": "ANY" +} \ No newline at end of file diff --git a/js/data/locale/ccp/dateres.json b/js/data/locale/ccp/dateres.json new file mode 100644 index 0000000000..a8e4434277 --- /dev/null +++ b/js/data/locale/ccp/dateres.json @@ -0,0 +1,21 @@ +{ + "Day": "𑄘𑄨𑄚𑄴", + "Era": "𑄡𑄪𑄇𑄴", + "Hour": "𑄊𑄮𑄚𑄴𑄓", + "Minute": "𑄟𑄨𑄚𑄨𑄖𑄴", + "Month": "𑄟𑄏𑄴", + "Second": "𑄥𑄬𑄉𑄬𑄚𑄴", + "Time Zone": "𑄃𑄧𑄇𑄴𑄖𑄧𑄢𑄴 𑄎𑄉", + "Week": "𑄥𑄛𑄴𑄖", + "Year": "𑄝𑄧𑄏𑄧𑄢𑄴", + "D": "�", + "DD": "��", + "YY": "��", + "YYYY": "����", + "M": "�", + "MM": "��", + "H": "�", + "HH": "��", + "mm": "��", + "ss": "��" +} \ No newline at end of file diff --git a/js/data/locale/ce/dateres.json b/js/data/locale/ce/dateres.json new file mode 100644 index 0000000000..55b2251fb9 --- /dev/null +++ b/js/data/locale/ce/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "делкъал тӀехьа", + "Day": "де", + "Day of Year": "шеран де", + "Era": "мур", + "Hour": "сахьт", + "Minute": "минот", + "Month": "бутт", + "Second": "секунд", + "Time Zone": "сахьтан аса", + "Week": "кӀира", + "Week of Month": "беттан кӀира", + "Year": "шо", + "D": "ДЕ", + "DD": "ДЕ", + "YY": "ШО", + "YYYY": "ШО", + "M": "Б", + "MM": "ББ", + "H": "С", + "HH": "СС", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/cgg/dateres.json b/js/data/locale/cgg/dateres.json new file mode 100644 index 0000000000..7f1bd1630d --- /dev/null +++ b/js/data/locale/cgg/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Nyomushana/nyekiro", + "Day": "Eizooba", + "Era": "Obunaku", + "Hour": "Shaaha", + "Minute": "Edakiika", + "Month": "Omwezi", + "Second": "Obucweka/Esekendi", + "Time Zone": "Zone", + "Week": "Esande", + "Year": "Omwaka", + "D": "E", + "DD": "EE", + "YY": "OO", + "YYYY": "OOOO", + "M": "O", + "MM": "OO", + "H": "S", + "HH": "SS", + "mm": "ee", + "ss": "oo" +} \ No newline at end of file diff --git a/js/data/locale/chr/dateres.json b/js/data/locale/chr/dateres.json new file mode 100644 index 0000000000..18461485fc --- /dev/null +++ b/js/data/locale/chr/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ᏌᎾᎴ/ᏒᎯᏱ", + "Day": "ᎢᎦ", + "Day of Year": "ᎢᎦ ᎤᏕᏘᏴᏌᏗᏒᎢ", + "Era": "ᏗᏓᎴᏂᏍᎬ", + "Hour": "ᏑᏟᎶᏓ", + "Minute": "ᎢᏯᏔᏬᏍᏔᏅ", + "Month": "ᎧᎸᎢ", + "Second": "ᎠᏎᏢ", + "Time Zone": "ᏂᎬᎾᏛ ᏧᏓᎴᏅᏓ ᏓᏟᎢᎵᏍᏒᎢ", + "Week": "ᏒᎾᏙᏓᏆᏍᏗ", + "Week of Month": "ᏒᎾᏙᏓᏆᏍᏗ ᎧᎸᎢ", + "Year": "ᎤᏕᏘᏴᏌᏗᏒᎢ", + "D": "ᎢᎦ", + "DD": "ᎢᎦ", + "YY": "ᎤᎤ", + "YYYY": "ᎤᎤᎤᎤ", + "M": "Ꭷ", + "MM": "ᎧᎧ", + "H": "Ꮡ", + "HH": "ᏑᏑ", + "mm": "ꭲꭲ", + "ss": "ꭰꭰ" +} \ No newline at end of file diff --git a/js/data/locale/ckb/dateres.json b/js/data/locale/ckb/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/ckb/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/cs/dateres.json b/js/data/locale/cs/dateres.json new file mode 100644 index 0000000000..bd4f679e4b --- /dev/null +++ b/js/data/locale/cs/dateres.json @@ -0,0 +1,16 @@ +{ + "AM/PM": "část dne", + "Day": "den", + "Day of Year": "den v roce", + "Era": "letopočet", + "Hour": "hodina", + "Minute": "minuta", + "Month": "měsíc", + "Second": "sekunda", + "Time Zone": "časové pásmo", + "Week": "týden", + "Week of Month": "týden v měsíci", + "Year": "rok", + "YY": "RR", + "YYYY": "ROK" +} \ No newline at end of file diff --git a/js/data/locale/cu/dateres.json b/js/data/locale/cu/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/cu/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/cy/dateres.json b/js/data/locale/cy/dateres.json new file mode 100644 index 0000000000..8173c9e6dc --- /dev/null +++ b/js/data/locale/cy/dateres.json @@ -0,0 +1,18 @@ +{ + "Day": "Diwrnod", + "Day of Year": "Rhif y dydd yn y flwyddyn", + "Era": "Oes", + "Hour": "Awr", + "Minute": "Munud", + "Month": "Mis", + "Second": "Eiliad", + "Time Zone": "Cylchfa amser", + "Week": "Wythnos", + "Week of Month": "Rhif wythnos yn y mis", + "Year": "Blwyddyn", + "YY": "BB", + "YYYY": "BBBB", + "H": "A", + "HH": "AA", + "ss": "ee" +} \ No newline at end of file diff --git a/js/data/locale/da/dateres.json b/js/data/locale/da/dateres.json new file mode 100644 index 0000000000..b137e45d61 --- /dev/null +++ b/js/data/locale/da/dateres.json @@ -0,0 +1,17 @@ +{ + "Day": "dag", + "Day of Year": "dag i året", + "Era": "æra", + "Hour": "time", + "Minute": "minut", + "Month": "måned", + "Second": "sekund", + "Time Zone": "tidszone", + "Week": "uge", + "Week of Month": "uge i måneden", + "Year": "år", + "YY": "ÅR", + "YYYY": "ÅR", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/dateres.json b/js/data/locale/dateres.json new file mode 100644 index 0000000000..7717175793 --- /dev/null +++ b/js/data/locale/dateres.json @@ -0,0 +1,26 @@ +{ + "AM/PM": "AM/PM", + "Day": "Day", + "Day of Year": "Day Of Year", + "Era": "Era", + "Hour": "Hour", + "Millisecond": "Millisecond", + "Minute": "Minute", + "Month": "Month", + "Second": "Second", + "Time Zone": "Time Zone", + "Week": "Week", + "Week of Month": "Week Of Month", + "Year": "Year", + "D": "D", + "DD": "DD", + "YY": "YY", + "YYYY": "YYYY", + "M": "M", + "MM": "MM", + "H": "H", + "HH": "HH", + "mm": "mm", + "ss": "ss", + "ms": "ms" +} \ No newline at end of file diff --git a/js/data/locale/dav/dateres.json b/js/data/locale/dav/dateres.json new file mode 100644 index 0000000000..500ba617c7 --- /dev/null +++ b/js/data/locale/dav/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "KE/PE", + "Day": "Ituku", + "Era": "Ngelo", + "Hour": "Saa", + "Minute": "Dakika", + "Month": "Mori", + "Second": "Sekunde", + "Time Zone": "Majira ya saa", + "Week": "Juma", + "Year": "Mwaka", + "D": "I", + "DD": "II", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/de/dateres.json b/js/data/locale/de/dateres.json new file mode 100644 index 0000000000..f9b89a2bcf --- /dev/null +++ b/js/data/locale/de/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Tageshälfte", + "Day": "Tag", + "Day of Year": "Tag des Jahres", + "Era": "Epoche", + "Hour": "Stunde", + "Month": "Monat", + "Second": "Sekunde", + "Time Zone": "Zeitzone", + "Week": "Woche", + "Week of Month": "Woche des Monats", + "Year": "Jahr", + "D": "T", + "DD": "TT", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/dje/dateres.json b/js/data/locale/dje/dateres.json new file mode 100644 index 0000000000..2601bf41d6 --- /dev/null +++ b/js/data/locale/dje/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Subbaahi/Zaarikay banda", + "Day": "Zaari", + "Era": "Zaman", + "Hour": "Guuru", + "Minute": "Miniti", + "Month": "Handu", + "Second": "Miti", + "Time Zone": "Leerazuu", + "Week": "Hebu", + "Year": "Jiiri", + "D": "Z", + "DD": "ZZ", + "YY": "JJ", + "YYYY": "JJJJ", + "M": "H", + "MM": "HH", + "H": "G", + "HH": "GG", + "ss": "mm" +} \ No newline at end of file diff --git a/js/data/locale/dsb/dateres.json b/js/data/locale/dsb/dateres.json new file mode 100644 index 0000000000..366f0f3905 --- /dev/null +++ b/js/data/locale/dsb/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "połojca dnja", + "Day": "źeń", + "Era": "epocha", + "Hour": "góźina", + "Minute": "minuta", + "Month": "mjasec", + "Second": "sekunda", + "Time Zone": "casowe pasmo", + "Week": "tyźeń", + "Year": "lěto", + "D": "Ź", + "DD": "ŹŹ", + "YY": "LL", + "YYYY": "LLLL", + "H": "G", + "HH": "GG" +} \ No newline at end of file diff --git a/js/data/locale/dua/dateres.json b/js/data/locale/dua/dateres.json new file mode 100644 index 0000000000..97ca46f56a --- /dev/null +++ b/js/data/locale/dua/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "epasi a búnyá", + "Day": "búnyá", + "Era": "póndá", + "Hour": "ŋgandɛ", + "Minute": "ndɔkɔ", + "Month": "mɔ́di", + "Second": "píndí", + "Time Zone": "Zone", + "Week": "disama", + "Year": "mbú", + "D": "B", + "DD": "BB", + "YY": "MM", + "YYYY": "MBÚ", + "H": "Ŋ", + "HH": "ŊŊ", + "mm": "nn", + "ss": "pp" +} \ No newline at end of file diff --git a/js/data/locale/dyo/dateres.json b/js/data/locale/dyo/dateres.json new file mode 100644 index 0000000000..2b87f4aef2 --- /dev/null +++ b/js/data/locale/dyo/dateres.json @@ -0,0 +1,15 @@ +{ + "AM/PM": "Bujom / Kalíim", + "Day": "Funak", + "Era": "Jamanay", + "Month": "Fuleeŋ", + "Time Zone": "Zone", + "Week": "Lóokuŋ", + "Year": "Emit", + "D": "FUNAK", + "DD": "FUNAK", + "YY": "EMIT", + "YYYY": "EMIT", + "M": "FULEEŊ", + "MM": "FULEEŊ" +} \ No newline at end of file diff --git a/js/data/locale/dz/dateres.json b/js/data/locale/dz/dateres.json new file mode 100644 index 0000000000..d986833241 --- /dev/null +++ b/js/data/locale/dz/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "སྔ་ཆ/ཕྱི་ཆ་", + "Day": "ཚེས་", + "Era": "དུས་བསྐལ", + "Hour": "ཆུ་ཚོད", + "Minute": "སྐར་མ", + "Month": "ཟླ་ཝ་", + "Second": "སྐར་ཆཱ་", + "Time Zone": "དུས་ཀུལ", + "Week": "བདུན་ཕྲག", + "Year": "ལོ", + "D": "ཚ", + "DD": "ཚཚ", + "YY": "ལོ", + "YYYY": "ལོ", + "M": "ཟ", + "MM": "ཟཟ", + "H": "ཆ", + "HH": "ཆཆ", + "mm": "སས", + "ss": "སས" +} \ No newline at end of file diff --git a/js/data/locale/ebu/dateres.json b/js/data/locale/ebu/dateres.json new file mode 100644 index 0000000000..04a827eaa1 --- /dev/null +++ b/js/data/locale/ebu/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Mũthenya", + "Era": "Ivinda", + "Hour": "Ithaa", + "Minute": "Ndagĩka", + "Month": "Mweri", + "Second": "Sekondi", + "Time Zone": "Gĩthaa", + "Week": "Kiumia", + "Year": "Mwaka", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "H": "I", + "HH": "II", + "mm": "nn" +} \ No newline at end of file diff --git a/js/data/locale/ee/dateres.json b/js/data/locale/ee/dateres.json new file mode 100644 index 0000000000..797d09739b --- /dev/null +++ b/js/data/locale/ee/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "ŋkekea me", + "Day": "ŋkeke", + "Era": "ŋɔli", + "Hour": "gaƒoƒo", + "Minute": "aɖabaƒoƒo", + "Month": "ɣleti", + "Second": "sekend", + "Time Zone": "nutomegaƒoƒo", + "Week": "kɔsiɖa ɖeka", + "Year": "ƒe", + "D": "Ŋ", + "DD": "ŊŊ", + "YY": "ƑE", + "YYYY": "ƑE", + "M": "Ɣ", + "MM": "ƔƔ", + "H": "G", + "HH": "GG", + "mm": "aa" +} \ No newline at end of file diff --git a/js/data/locale/el/dateres.json b/js/data/locale/el/dateres.json new file mode 100644 index 0000000000..297c417e74 --- /dev/null +++ b/js/data/locale/el/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "Π.μ./μ.μ.", + "Day": "Ημέρα", + "Day of Year": "Ημέρα έτους", + "Era": "Περίοδος", + "Hour": "Ώρα", + "Minute": "Λεπτό", + "Month": "Μήνας", + "Second": "Δευτερόλεπτο", + "Time Zone": "Ζώνη ώρας", + "Week": "Εβδομάδα", + "Week of Month": "Εβδομάδα μήνα", + "Year": "Έτος", + "D": "Η", + "DD": "ΗΗ", + "YY": "ΈΈ", + "YYYY": "ΈΈΈΈ", + "M": "Μ", + "MM": "ΜΜ", + "H": "Ώ", + "HH": "ΏΏ", + "mm": "λλ", + "ss": "δδ" +} \ No newline at end of file diff --git a/js/data/locale/en/dateres.json b/js/data/locale/en/dateres.json new file mode 100644 index 0000000000..9d6f2e5a37 --- /dev/null +++ b/js/data/locale/en/dateres.json @@ -0,0 +1,5 @@ +{ + "Day of Year": "Day of year", + "Time Zone": "Time zone", + "Week of Month": "Week of month" +} \ No newline at end of file diff --git a/js/data/locale/eo/dateres.json b/js/data/locale/eo/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/eo/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/es/DO/dateres.json b/js/data/locale/es/DO/dateres.json new file mode 100644 index 0000000000..6aeb9d66d3 --- /dev/null +++ b/js/data/locale/es/DO/dateres.json @@ -0,0 +1,8 @@ +{ + "Day": "Día", + "Minute": "Minuto", + "Month": "Mes", + "Second": "Segundo", + "Week": "Semana", + "Year": "Año" +} \ No newline at end of file diff --git a/js/data/locale/es/dateres.json b/js/data/locale/es/dateres.json new file mode 100644 index 0000000000..95c06439c0 --- /dev/null +++ b/js/data/locale/es/dateres.json @@ -0,0 +1,16 @@ +{ + "AM/PM": "a. m./p. m.", + "Day": "día", + "Day of Year": "día del año", + "Era": "era", + "Hour": "hora", + "Minute": "minuto", + "Month": "mes", + "Second": "segundo", + "Time Zone": "zona horaria", + "Week": "semana", + "Week of Month": "semana del mes", + "Year": "año", + "YY": "AA", + "YYYY": "AÑO" +} \ No newline at end of file diff --git a/js/data/locale/et/dateres.json b/js/data/locale/et/dateres.json new file mode 100644 index 0000000000..c5da8ccf63 --- /dev/null +++ b/js/data/locale/et/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "enne/pärast lõunat", + "Day": "päev", + "Day of Year": "aasta päev", + "Era": "ajastu", + "Hour": "tund", + "Minute": "minut", + "Month": "kuu", + "Second": "sekund", + "Time Zone": "ajavöönd", + "Week": "nädal", + "Week of Month": "kuu nädal", + "Year": "aasta", + "D": "P", + "DD": "PP", + "YY": "AA", + "YYYY": "AAAA", + "M": "K", + "MM": "KK", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/eu/dateres.json b/js/data/locale/eu/dateres.json new file mode 100644 index 0000000000..62240c38ce --- /dev/null +++ b/js/data/locale/eu/dateres.json @@ -0,0 +1,21 @@ +{ + "Day": "eguna", + "Day of Year": "urteko #. eguna", + "Era": "aroa", + "Hour": "ordua", + "Minute": "minutua", + "Month": "hilabetea", + "Second": "segundoa", + "Time Zone": "ordu-zona", + "Week": "astea", + "Week of Month": "hileko #. astea", + "Year": "urtea", + "D": "E", + "DD": "EE", + "YY": "UU", + "YYYY": "UUUU", + "M": "H", + "MM": "HH", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/ewo/dateres.json b/js/data/locale/ewo/dateres.json new file mode 100644 index 0000000000..e44f271ce3 --- /dev/null +++ b/js/data/locale/ewo/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Kírí / Ngəgógəle", + "Day": "Amǒs", + "Era": "Abǒg", + "Hour": "Awola", + "Minute": "Enútɛn", + "Month": "Ngɔn", + "Second": "Akábəga", + "Time Zone": "Nkɔŋ Awola", + "Week": "Sɔ́ndɔ", + "Year": "M̀bú", + "D": "A", + "DD": "AA", + "YY": "MM", + "YYYY": "MMMM", + "M": "N", + "MM": "NN", + "H": "A", + "HH": "AA", + "mm": "ee", + "ss": "aa" +} \ No newline at end of file diff --git a/js/data/locale/fa/dateres.json b/js/data/locale/fa/dateres.json new file mode 100644 index 0000000000..91e5696b39 --- /dev/null +++ b/js/data/locale/fa/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "قبل/بعدازظهر", + "Day": "روز", + "Day of Year": "روز سال", + "Era": "دوره", + "Hour": "ساعت", + "Minute": "دقیقه", + "Month": "ماه", + "Second": "ثانیه", + "Time Zone": "منطقهٔ زمانی", + "Week": "هفته", + "Week of Month": "هفتهٔ ماه", + "Year": "سال", + "D": "روز", + "DD": "روز", + "YY": "سال", + "YYYY": "سال", + "M": "ماه", + "MM": "ماه", + "H": "ساعت", + "HH": "ساعت", + "mm": "دقیقه", + "ss": "ثانیه" +} \ No newline at end of file diff --git a/js/data/locale/ff/dateres.json b/js/data/locale/ff/dateres.json new file mode 100644 index 0000000000..332e3f6041 --- /dev/null +++ b/js/data/locale/ff/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Sahnga", + "Day": "Ñalnde", + "Era": "Jamaanu", + "Hour": "Waktu", + "Minute": "Hoƴom", + "Month": "Lewru", + "Second": "Majaango", + "Time Zone": "Diiwaan waktu", + "Week": "Yontere", + "Year": "Hitaande", + "D": "Ñ", + "DD": "ÑÑ", + "YY": "HH", + "YYYY": "HHHH", + "M": "L", + "MM": "LL", + "H": "W", + "HH": "WW", + "mm": "hh", + "ss": "mm" +} \ No newline at end of file diff --git a/js/data/locale/fi/dateres.json b/js/data/locale/fi/dateres.json new file mode 100644 index 0000000000..837df772c5 --- /dev/null +++ b/js/data/locale/fi/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "vuorokaudenaika", + "Day": "päivä", + "Day of Year": "vuodenpäivä", + "Era": "aikakausi", + "Hour": "tunti", + "Minute": "minuutti", + "Month": "kuukausi", + "Second": "sekunti", + "Time Zone": "aikavyöhyke", + "Week": "viikko", + "Week of Month": "kuukauden viikko", + "Year": "vuosi", + "D": "P", + "DD": "PP", + "YY": "VV", + "YYYY": "VVVV", + "M": "K", + "MM": "KK", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/fil/dateres.json b/js/data/locale/fil/dateres.json new file mode 100644 index 0000000000..b343b92d67 --- /dev/null +++ b/js/data/locale/fil/dateres.json @@ -0,0 +1,21 @@ +{ + "Day": "araw", + "Day of Year": "araw ng taon", + "Era": "panahon", + "Hour": "oras", + "Minute": "minuto", + "Month": "buwan", + "Second": "segundo", + "Time Zone": "time zone", + "Week": "linggo", + "Week of Month": "linggo ng buwan", + "Year": "taon", + "D": "A", + "DD": "AA", + "YY": "TT", + "YYYY": "TTTT", + "M": "B", + "MM": "BB", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/fo/dateres.json b/js/data/locale/fo/dateres.json new file mode 100644 index 0000000000..2b300575c2 --- /dev/null +++ b/js/data/locale/fo/dateres.json @@ -0,0 +1,17 @@ +{ + "Day": "dagur", + "Day of Year": "dagur í árinum", + "Era": "tíðarrokning", + "Hour": "tími", + "Minute": "minuttur", + "Month": "mánaður", + "Second": "sekund", + "Time Zone": "tíðarøki", + "Week": "vika", + "Week of Month": "vika í mánaðinum", + "Year": "ár", + "YY": "ÁR", + "YYYY": "ÁR", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/fr/CA/dateres.json b/js/data/locale/fr/CA/dateres.json new file mode 100644 index 0000000000..176850c0d5 --- /dev/null +++ b/js/data/locale/fr/CA/dateres.json @@ -0,0 +1,4 @@ +{ + "Day of Year": "jour de l’année", + "Week of Month": "semaine du mois" +} \ No newline at end of file diff --git a/js/data/locale/fr/dateres.json b/js/data/locale/fr/dateres.json new file mode 100644 index 0000000000..e9d548e144 --- /dev/null +++ b/js/data/locale/fr/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "cadran", + "Day": "jour", + "Day of Year": "jour (année)", + "Era": "ère", + "Hour": "heure", + "Minute": "minute", + "Month": "mois", + "Second": "seconde", + "Time Zone": "fuseau horaire", + "Week": "semaine", + "Week of Month": "semaine (mois)", + "Year": "année", + "D": "J", + "DD": "JJ", + "YY": "AA", + "YYYY": "AAAA" +} \ No newline at end of file diff --git a/js/data/locale/fur/dateres.json b/js/data/locale/fur/dateres.json new file mode 100644 index 0000000000..983d442313 --- /dev/null +++ b/js/data/locale/fur/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "toc dal dì", + "Day": "dì", + "Era": "ere", + "Hour": "ore", + "Minute": "minût", + "Month": "mês", + "Second": "secont", + "Time Zone": "zone", + "Week": "setemane", + "Year": "an", + "D": "DÌ", + "DD": "DÌ", + "YY": "AN", + "YYYY": "AN", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/fy/dateres.json b/js/data/locale/fy/dateres.json new file mode 100644 index 0000000000..cc7c2ca0dd --- /dev/null +++ b/js/data/locale/fy/dateres.json @@ -0,0 +1,15 @@ +{ + "Day": "dei", + "Era": "Tiidsrin", + "Hour": "oere", + "Minute": "Minút", + "Month": "Moanne", + "Second": "Sekonde", + "Time Zone": "Zone", + "Week": "Wike", + "Year": "Jier", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/ga/dateres.json b/js/data/locale/ga/dateres.json new file mode 100644 index 0000000000..eb482071fc --- /dev/null +++ b/js/data/locale/ga/dateres.json @@ -0,0 +1,23 @@ +{ + "AM/PM": "a.m./p.m.", + "Day": "Lá", + "Day of Year": "Lá den bhliain", + "Era": "Ré", + "Hour": "Uair", + "Minute": "Nóiméad", + "Month": "Mí", + "Second": "Soicind", + "Time Zone": "Crios Ama", + "Week": "Seachtain", + "Week of Month": "Seachtain den mhí", + "Year": "Bliain", + "D": "LÁ", + "DD": "LÁ", + "YY": "BB", + "YYYY": "BBBB", + "M": "MÍ", + "MM": "MÍ", + "H": "U", + "HH": "UU", + "mm": "nn" +} \ No newline at end of file diff --git a/js/data/locale/gd/dateres.json b/js/data/locale/gd/dateres.json new file mode 100644 index 0000000000..38fa8a78cf --- /dev/null +++ b/js/data/locale/gd/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "m/f", + "Day": "latha", + "Day of Year": "là dhen bhliadhna", + "Era": "linn", + "Hour": "uair a thìde", + "Minute": "mionaid", + "Month": "mìos", + "Second": "diog", + "Time Zone": "roinn-tìde", + "Week": "seachdain", + "Week of Month": "seachdain dhen mhìos", + "Year": "bliadhna", + "D": "L", + "DD": "LL", + "YY": "BB", + "YYYY": "BBBB", + "H": "U", + "HH": "UU", + "ss": "dd" +} \ No newline at end of file diff --git a/js/data/locale/gl/dateres.json b/js/data/locale/gl/dateres.json new file mode 100644 index 0000000000..74952f8c14 --- /dev/null +++ b/js/data/locale/gl/dateres.json @@ -0,0 +1,16 @@ +{ + "AM/PM": "a.m./p.m.", + "Day": "día", + "Day of Year": "día do ano", + "Era": "era", + "Hour": "hora", + "Minute": "minuto", + "Month": "mes", + "Second": "segundo", + "Time Zone": "fuso horario", + "Week": "semana", + "Week of Month": "semana do mes", + "Year": "ano", + "YY": "AA", + "YYYY": "ANO" +} \ No newline at end of file diff --git a/js/data/locale/gsw/dateres.json b/js/data/locale/gsw/dateres.json new file mode 100644 index 0000000000..1f6c33a859 --- /dev/null +++ b/js/data/locale/gsw/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "Tageshälfti", + "Day": "Tag", + "Era": "Epoche", + "Hour": "Schtund", + "Minute": "Minuute", + "Month": "Monet", + "Second": "Sekunde", + "Time Zone": "Zone", + "Week": "Wuche", + "Year": "Jaar", + "D": "T", + "DD": "TT", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/gu/dateres.json b/js/data/locale/gu/dateres.json new file mode 100644 index 0000000000..1afdb61711 --- /dev/null +++ b/js/data/locale/gu/dateres.json @@ -0,0 +1,23 @@ +{ + "Day": "દિવસ", + "Day of Year": "વર્ષનો દિવસ", + "Era": "યુગ", + "Hour": "કલાક", + "Minute": "મિનિટ", + "Month": "મહિનો", + "Second": "સેકન્ડ", + "Time Zone": "સમય ઝોન", + "Week": "અઠવાડિયું", + "Week of Month": "મહિનાનું અઠવાડિયું", + "Year": "વર્ષ", + "D": "દ", + "DD": "દદ", + "YY": "વવ", + "YYYY": "વવવવ", + "M": "મ", + "MM": "મમ", + "H": "ક", + "HH": "કક", + "mm": "મમ", + "ss": "સસ" +} \ No newline at end of file diff --git a/js/data/locale/guz/dateres.json b/js/data/locale/guz/dateres.json new file mode 100644 index 0000000000..998f01249a --- /dev/null +++ b/js/data/locale/guz/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Mambia gose Morogoba", + "Day": "Rituko", + "Era": "Ebiro", + "Hour": "Ensa", + "Minute": "Edakika", + "Month": "Omotienyi", + "Second": "Esekendi", + "Time Zone": "Chinse ‘chimo", + "Week": "Omokubio", + "Year": "Omwaka", + "D": "R", + "DD": "RR", + "YY": "OO", + "YYYY": "OOOO", + "M": "O", + "MM": "OO", + "H": "E", + "HH": "EE", + "mm": "ee", + "ss": "ee" +} \ No newline at end of file diff --git a/js/data/locale/gv/dateres.json b/js/data/locale/gv/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/gv/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/ha/dateres.json b/js/data/locale/ha/dateres.json new file mode 100644 index 0000000000..754cd648c6 --- /dev/null +++ b/js/data/locale/ha/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Yini", + "Day": "Kwana", + "Era": "Zamani", + "Hour": "Awa", + "Minute": "Minti", + "Month": "Wata", + "Second": "Daƙiƙa", + "Time Zone": "Agogo", + "Week": "Mako", + "Year": "Shekara", + "D": "K", + "DD": "KK", + "YY": "SS", + "YYYY": "SSSS", + "M": "W", + "MM": "WW", + "H": "A", + "HH": "AA", + "ss": "dd" +} \ No newline at end of file diff --git a/js/data/locale/haw/dateres.json b/js/data/locale/haw/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/haw/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/he/dateres.json b/js/data/locale/he/dateres.json new file mode 100644 index 0000000000..de1e5495a4 --- /dev/null +++ b/js/data/locale/he/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "לפנה״צ/אחה״צ", + "Day": "יום", + "Day of Year": "יום בשנה", + "Era": "תקופה", + "Hour": "שעה", + "Minute": "דקה", + "Month": "חודש", + "Second": "שנייה", + "Time Zone": "אזור", + "Week": "שבוע", + "Week of Month": "השבוע בחודש", + "Year": "שנה", + "D": "יום", + "DD": "יום", + "YY": "שנה", + "YYYY": "שנה", + "M": "חודש", + "MM": "חודש", + "H": "שעה", + "HH": "שעה", + "mm": "דקה", + "ss": "שנייה" +} \ No newline at end of file diff --git a/js/data/locale/he/sysres.json b/js/data/locale/he/sysres.json index c42eddc5a9..a4824506d8 100644 --- a/js/data/locale/he/sysres.json +++ b/js/data/locale/he/sysres.json @@ -1,24 +1,4 @@ { - "#in {num}d": "one#‏מחר|two#‏בעוד יומיים|many#‏בעוד {num} ימים|#‏בעוד {num} ימים", - "#in {num}h": "one#‏בעוד שעה|two#‏בעוד שעתיים|many#‏בעוד {num} שע׳|#‏בעוד {num} שע׳", - "#in {num}mi": "one#‏בעוד דקה|two#‏בעוד שתי דק׳|many#‏בעוד {num} דק׳|#‏בעוד {num} דק׳", - "#in {num}mo": "one#‏בעוד חודש|two#‏בעוד חודשיים|many#‏בעוד {num} חודשים|#‏בעוד {num} חודשים", - "#in {num}s": "one#‏בעוד שנ׳|two#‏בעוד שתי שנ׳|many#‏בעוד {num} שנ׳|#‏בעוד {num} שנ׳", - "#in {num}w": "one#‏בעוד שב׳|two#‏בעוד שבועיים|many#‏בעוד {num} שב׳|#‏בעוד {num} שב׳", - "#in {num}y": "one#‏בעוד שנה|two#‏בעוד שנתיים|many#‏בעוד {num} שנה|#‏בעוד {num} שנים", - "#{num} ms": "one#{num} ms|two#{num} ms|many#{num} ms|#{num} ms", - "#{num}d": "one#י׳|two#{num} י׳|many#{num} י׳|#{num} י׳", - "#{num}d ago": "one#‏אתמול|two#‏לפני יומיים|many#‏לפני {num} ימים|#‏לפני {num} ימים", - "#{num}h": "one#שעה {num}|two#{num} שע׳|many#{num} שע׳|#{num} שע׳", - "#{num}h ago": "one#‏לפני שעה|two#‏לפני שעתיים|many#‏לפני {num} שע׳|#‏לפני {num} שע׳", - "#{num}mi ago": "one#‏לפני דקה|two#‏לפני {num} דק׳|many#‏לפני {num} דק׳|#‏לפני {num} דק׳", - "#{num}mo ago": "one#‏לפני חודש|two#‏לפני חודשיים|many#‏לפני {num} חודשים|#‏לפני {num} חודשים", - "#{num}s": "one#שניה|two#שתי שנ׳|many#{num} שנ׳|#{num} שנ׳", - "#{num}s ago": "one#‏לפני שנ׳|two#‏לפני שתי שנ׳|many#‏לפני {num} שנ׳|#‏לפני {num} שנ׳", - "#{num}w": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", - "#{num}w ago": "one#‏לפני שב׳|two#‏לפני שבועיים|many#‏לפני {num} שב׳|#‏לפני {num} שב׳", - "#{num}y": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", - "#{num}y ago": "one#‏לפני שנה|two#‏לפני שנתיים|many#‏לפני {num} שנה|#‏לפני {num} שנים", "1#1 day ago|#{num} days ago": "one#‏לפני יום {num}|two#‏לפני יומיים|many#‏לפני {num} ימים|#‏לפני {num} ימים", "1#1 day|#{num} days": "one#יום {num}|two#יומיים|many#{num} יום|#{num} ימים", "1#1 dy ago|#{num} dys ago": "one#‏לפני יום {num}|two#‏לפני יומיים|many#‏לפני {num} ימים|#‏לפני {num} ימים", @@ -29,19 +9,19 @@ "1#1 hr|#{num} hrs": "one#שעה|two#שעתיים|many#{num} שע׳|#{num} שע׳", "1#1 millisecond|#{num} milliseconds": "one#אלפית שנייה {num}|two#{num} אלפיות שנייה|many#{num} אלפיות שנייה|#{num} אלפיות שנייה", "1#1 min ago|#{num} min ago": "one#‏לפני דקה|two#‏לפני שתי דקות|many#‏לפני {num} דקות|#‏לפני {num} דקות", - "1#1 minute ago|#{num} minutes ago": "one#‏לפני דקה|two#‏לפני שתי דקות|many#‏לפני {num} דקות|#‏לפני {num} דקות", - "1#1 minute|#{num} minutes": "one#דקה|two#שתי דקות|many#{num} דקות|#{num} דקות", "1#1 min|#{num} min": "one#דקה|two#שתי דק׳|many#{num} דק׳|#{num} דק׳", "1#1 mi|#{num} min": "one#דקה|two#שתי דק׳|many#{num} דק׳|#{num} דק׳", + "1#1 minute ago|#{num} minutes ago": "one#‏לפני דקה|two#‏לפני שתי דקות|many#‏לפני {num} דקות|#‏לפני {num} דקות", + "1#1 minute|#{num} minutes": "one#דקה|two#שתי דקות|many#{num} דקות|#{num} דקות", "1#1 mon ago|#{num} mons ago": "one#‏לפני חודש|two#‏לפני חודשיים|many#‏לפני {num} חודשים|#‏לפני {num} חודשים", + "1#1 mon|#{num} mons": "one#חודש|two#חודשיים|many#{num} ח׳|#{num} ח׳", "1#1 month ago|#{num} months ago": "one#‏לפני חודש|two#‏לפני חודשיים|many#‏לפני {num} חודשים|#‏לפני {num} חודשים", "1#1 month|#{num} months": "one#חודש|two#חודשיים|many#{num} חודשים|#{num} חודשים", - "1#1 mon|#{num} mons": "one#חודש|two#חודשיים|many#{num} ח׳|#{num} ח׳", "1#1 mo|#{num} mos": "one#ח׳ {num}|two#{num} ח׳|many#{num} ח׳|#{num} ח׳", "1#1 sec ago|#{num} sec ago": "one#‏לפני שנייה|two#‏לפני שתי שניות|many#‏לפני {num} שניות|#‏לפני {num} שניות", + "1#1 sec|#{num} sec": "one#שנ׳|two#שתי שנ׳|many#{num} שנ׳|#{num} שנ׳", "1#1 second ago|#{num} seconds ago": "one#‏לפני שנייה|two#‏לפני שתי שניות|many#‏לפני {num} שניות|#‏לפני {num} שניות", "1#1 second|#{num} seconds": "one#שניה|two#שתי שניות|many#‏{num} שניות|#{num} שניות", - "1#1 sec|#{num} sec": "one#שנ׳|two#שתי שנ׳|many#{num} שנ׳|#{num} שנ׳", "1#1 se|#{num} sec": "one#שניה|two#שתי שנ׳|many#{num} שנ׳|#{num} שנ׳", "1#1 week ago|#{num} weeks ago": "one#‏לפני שבוע|two#‏לפני שבועיים|many#‏לפני {num} שבועות|#‏לפני {num} שבועות", "1#1 week|#{num} weeks": "one#שבוע|two#שבועיים|many#{num} שבועות|#{num} שבועות", @@ -55,16 +35,20 @@ "1#in 1 dy|#in {num} dys": "one#‏בעוד יום {num}|two#‏בעוד יומיים|many#‏בעוד {num} ימים|#‏בעוד {num} ימים", "1#in 1 hour|#in {num} hours": "one#‏בעוד שעה|two#‏בעוד שעתיים|many#‏בעוד {num} שעות|#‏בעוד {num} שעות", "1#in 1 hr|#in {num} hrs": "one#‏בעוד שעה|two#‏בעוד שעתיים|many#‏בעוד {num} שעות|#‏בעוד {num} שעות", - "1#in 1 minute|#in {num} minutes": "one#‏בעוד דקה|two#‏בעוד שתי דקות|many#‏בעוד {num} דקות|#‏בעוד {num} דקות", "1#in 1 min|#in {num} min": "one#‏בעוד דקה|two#‏בעוד שתי דקות|many#‏בעוד {num} דקות|#‏בעוד {num} דקות", - "1#in 1 month|#in {num} months": "one#‏בעוד חודש|two#‏בעוד חודשיים|many#‏בעוד {num} חודשים|#‏בעוד {num} חודשים", + "1#in 1 minute|#in {num} minutes": "one#‏בעוד דקה|two#‏בעוד שתי דקות|many#‏בעוד {num} דקות|#‏בעוד {num} דקות", "1#in 1 mon|#in {num} mons": "one#‏בעוד חודש|two#‏בעוד חודשיים|many#‏בעוד {num} חודשים|#‏בעוד {num} חודשים", - "1#in 1 second|#in {num} seconds": "one#‏בעוד שנייה|two#‏בעוד שתי שניות|many#‏בעוד {num} שניות|#‏בעוד {num} שניות", + "1#in 1 month|#in {num} months": "one#‏בעוד חודש|two#‏בעוד חודשיים|many#‏בעוד {num} חודשים|#‏בעוד {num} חודשים", "1#in 1 sec|#in {num} sec": "one#‏בעוד שנייה|two#‏בעוד שתי שניות|many#‏בעוד {num} שניות|#‏בעוד {num} שניות", + "1#in 1 second|#in {num} seconds": "one#‏בעוד שנייה|two#‏בעוד שתי שניות|many#‏בעוד {num} שניות|#‏בעוד {num} שניות", "1#in 1 week|#in {num} weeks": "one#‏בעוד שבוע|two#‏בעוד שבועיים|many#‏בעוד {num} שבועות|#‏בעוד {num} שבועות", "1#in 1 wk|#in {num} wks": "one#‏בעוד שבוע|two#‏בעוד שבועיים|many#‏בעוד {num} שבועות|#‏בעוד {num} שבועות", "1#in 1 year|#in {num} years": "one#‏בעוד שנה|two#‏בעוד שנתיים|many#‏בעוד {num} שנה|#‏בעוד {num} שנים", "1#in 1 yr|#in {num} yrs": "one#‏בעוד שנה|two#‏בעוד שנתיים|many#‏בעוד {num} שנה|#‏בעוד {num} שנים", + "a0-hebrew": "לפנה״צ", + "a0": "לפנה״צ", + "a1-hebrew": "אחה״צ", + "a1": "אחה״צ", "B0": "חצות", "B1": "לפנה״צ", "B2": "לפנות בוקר", @@ -74,95 +58,197 @@ "B6": "אחר הצהריים", "B7": "בערב", "B8": "בלילה", + "durationLongDays": "one#יום|two#יומיים|many#{num} ימ׳|#{num} ימ׳", + "durationMediumHours": "one#שעה {num}|two#{num} שע׳|many#{num} שע׳|#{num} שע׳", + "durationMediumMillis": "one#{num} ms|two#{num} ms|many#{num} ms|#{num} ms", + "durationMediumWeeks": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", + "durationMediumYears": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", + "durationShortMillis": "one#{num} ms|two#{num} ms|many#{num} ms|#{num} ms", + "durationShortMinutes": "one#דקה|two#שתי דק׳|many#{num} דק׳|#{num} דק׳", + "durationShortMonths": "one#ח׳ {num}|two#{num} ח׳|many#{num} ח׳|#{num} ח׳", + "E0-hebrew": "א׳", "E0": "א׳", + "E1-hebrew": "ב׳", "E1": "ב׳", + "E2-hebrew": "ג׳", "E2": "ג׳", + "E3-hebrew": "ד׳", "E3": "ד׳", + "E4-hebrew": "ה׳", "E4": "ה׳", + "E5-hebrew": "ו׳", "E5": "ו׳", + "E6-hebrew": "ש׳", "E6": "ש׳", + "EE0-hebrew": "א׳", "EE0": "א׳", + "EE1-hebrew": "ב׳", "EE1": "ב׳", + "EE2-hebrew": "ג׳", "EE2": "ג׳", + "EE3-hebrew": "ד׳", "EE3": "ד׳", + "EE4-hebrew": "ה׳", "EE4": "ה׳", + "EE5-hebrew": "ו׳", "EE5": "ו׳", + "EE6-hebrew": "ש׳", "EE6": "ש׳", + "EEE0-hebrew": "יום א׳", "EEE0": "יום א׳", + "EEE1-hebrew": "יום ב׳", "EEE1": "יום ב׳", + "EEE2-hebrew": "יום ג׳", "EEE2": "יום ג׳", + "EEE3-hebrew": "יום ד׳", "EEE3": "יום ד׳", + "EEE4-hebrew": "יום ה׳", "EEE4": "יום ה׳", + "EEE5-hebrew": "יום ו׳", "EEE5": "יום ו׳", + "EEE6-hebrew": "שבת", "EEE6": "שבת", + "EEEE0-hebrew": "יום ראשון", "EEEE0": "יום ראשון", + "EEEE1-hebrew": "יום שני", "EEEE1": "יום שני", + "EEEE2-hebrew": "יום שלישי", "EEEE2": "יום שלישי", + "EEEE3-hebrew": "יום רביעי", "EEEE3": "יום רביעי", + "EEEE4-hebrew": "יום חמישי", "EEEE4": "יום חמישי", + "EEEE5-hebrew": "יום שישי", "EEEE5": "יום שישי", + "EEEE6-hebrew": "יום שבת", "EEEE6": "יום שבת", - "MMM1": "ינו׳", + "finalSeparatorFull": " ו-", + "finalSeparatorLong": ", ", + "finalSeparatorMedium": ", ", + "finalSeparatorShort": " ", + "#in {num}d": "one#‏מחר|two#‏בעוד יומיים|many#‏בעוד {num} ימים|#‏בעוד {num} ימים", + "#in {num}h": "one#‏בעוד שעה|two#‏בעוד שעתיים|many#‏בעוד {num} שע׳|#‏בעוד {num} שע׳", + "#in {num}mi": "one#‏בעוד דקה|two#‏בעוד שתי דק׳|many#‏בעוד {num} דק׳|#‏בעוד {num} דק׳", + "#in {num}mo": "one#‏בעוד חודש|two#‏בעוד חודשיים|many#‏בעוד {num} חודשים|#‏בעוד {num} חודשים", + "#in {num}s": "one#‏בעוד שנ׳|two#‏בעוד שתי שנ׳|many#‏בעוד {num} שנ׳|#‏בעוד {num} שנ׳", + "#in {num}w": "one#‏בעוד שב׳|two#‏בעוד שבועיים|many#‏בעוד {num} שב׳|#‏בעוד {num} שב׳", + "#in {num}y": "one#‏בעוד שנה|two#‏בעוד שנתיים|many#‏בעוד {num} שנה|#‏בעוד {num} שנים", + "MMM10-hebrew": "טבת", "MMM10": "אוק׳", + "MMM11-hebrew": "שבט", "MMM11": "נוב׳", + "MMM12-hebrew": "אדר", + "MMM12-leap-hebrew": "אדר א׳", "MMM12": "דצמ׳", + "MMM13-leap-hebrew": "אדר ב׳", + "MMM1-hebrew": "ניסן", + "MMM1": "ינו׳", + "MMM2-hebrew": "אייר", "MMM2": "פבר׳", + "MMM3-hebrew": "סיון", "MMM3": "מרץ", + "MMM4-hebrew": "תמוז", "MMM4": "אפר׳", + "MMM5-hebrew": "אב", "MMM5": "מאי", + "MMM6-hebrew": "אלול", "MMM6": "יוני", + "MMM7-hebrew": "תשרי", "MMM7": "יולי", + "MMM8-hebrew": "חשון", "MMM8": "אוג׳", + "MMM9-hebrew": "כסלו", "MMM9": "ספט׳", - "MMMM1": "ינואר", + "MMMM10-hebrew": "טבת", "MMMM10": "אוקטובר", + "MMMM11-hebrew": "שבט", "MMMM11": "נובמבר", + "MMMM12-hebrew": "אדר", + "MMMM12-leap-hebrew": "אדר א׳", "MMMM12": "דצמבר", + "MMMM13-leap-hebrew": "אדר ב׳", + "MMMM1-hebrew": "ניסן", + "MMMM1": "ינואר", + "MMMM2-hebrew": "אייר", "MMMM2": "פברואר", + "MMMM3-hebrew": "סיוון", "MMMM3": "מרץ", + "MMMM4-hebrew": "תמוז", "MMMM4": "אפריל", + "MMMM5-hebrew": "אב", "MMMM5": "מאי", + "MMMM6-hebrew": "אלול", "MMMM6": "יוני", + "MMMM7-hebrew": "תשרי", "MMMM7": "יולי", + "MMMM8-hebrew": "חשוון", "MMMM8": "אוגוסט", + "MMMM9-hebrew": "כסלו", "MMMM9": "ספטמבר", - "N1": "י", + "N10-hebrew": "ט", "N10": "א", + "N11-hebrew": "ש", "N11": "נ", + "N12-hebrew": "א", + "N12-leap-hebrew": "א", "N12": "ד", + "N13-leap-hebrew": "א", + "N1-hebrew": "נ", + "N1": "י", + "N2-hebrew": "א", "N2": "פ", + "N3-hebrew": "ס", "N3": "מ", + "N4-hebrew": "ת", "N4": "א", + "N5-hebrew": "א", "N5": "מ", + "N6-hebrew": "א", "N6": "י", + "N7-hebrew": "ת", "N7": "י", + "N8-hebrew": "ח", "N8": "א", + "N9-hebrew": "כ", "N9": "ס", - "NN1": "ינ", + "NN10-hebrew": "טב", "NN10": "או", + "NN11-hebrew": "שב", "NN11": "נו", + "NN12-hebrew": "אד", + "NN12-leap-hebrew": "אד", "NN12": "דצ", + "NN13-leap-hebrew": "אד", + "NN1-hebrew": "ני", + "NN1": "ינ", + "NN2-hebrew": "אי", "NN2": "פב", + "NN3-hebrew": "סי", "NN3": "מר", + "NN4-hebrew": "תמ", "NN4": "אפ", + "NN5-hebrew": "אב", "NN5": "מא", + "NN6-hebrew": "אל", "NN6": "יו", + "NN7-hebrew": "תש", "NN7": "יו", + "NN8-hebrew": "חש", "NN8": "או", + "NN9-hebrew": "כס", "NN9": "ספ", - "a0": "לפנה״צ", - "a1": "אחה״צ", - "durationLongDays": "one#יום|two#יומיים|many#{num} ימ׳|#{num} ימ׳", - "durationMediumHours": "one#שעה {num}|two#{num} שע׳|many#{num} שע׳|#{num} שע׳", - "durationMediumMillis": "one#{num} ms|two#{num} ms|many#{num} ms|#{num} ms", - "durationMediumWeeks": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", - "durationMediumYears": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", - "durationShortMillis": "one#{num} ms|two#{num} ms|many#{num} ms|#{num} ms", - "durationShortMinutes": "one#דקה|two#שתי דק׳|many#{num} דק׳|#{num} דק׳", - "durationShortMonths": "one#ח׳ {num}|two#{num} ח׳|many#{num} ח׳|#{num} ח׳", - "finalSeparatorFull": " ו-", - "finalSeparatorLong": ", ", - "finalSeparatorMedium": ", ", - "finalSeparatorShort": " ", + "#{num}d ago": "one#‏אתמול|two#‏לפני יומיים|many#‏לפני {num} ימים|#‏לפני {num} ימים", + "#{num}d": "one#י׳|two#{num} י׳|many#{num} י׳|#{num} י׳", + "#{num}h ago": "one#‏לפני שעה|two#‏לפני שעתיים|many#‏לפני {num} שע׳|#‏לפני {num} שע׳", + "#{num}h": "one#שעה {num}|two#{num} שע׳|many#{num} שע׳|#{num} שע׳", + "#{num}mi ago": "one#‏לפני דקה|two#‏לפני {num} דק׳|many#‏לפני {num} דק׳|#‏לפני {num} דק׳", + "#{num}mo ago": "one#‏לפני חודש|two#‏לפני חודשיים|many#‏לפני {num} חודשים|#‏לפני {num} חודשים", + "#{num} ms": "one#{num} ms|two#{num} ms|many#{num} ms|#{num} ms", + "#{num}s ago": "one#‏לפני שנ׳|two#‏לפני שתי שנ׳|many#‏לפני {num} שנ׳|#‏לפני {num} שנ׳", + "#{num}s": "one#שניה|two#שתי שנ׳|many#{num} שנ׳|#{num} שנ׳", + "#{num}w ago": "one#‏לפני שב׳|two#‏לפני שבועיים|many#‏לפני {num} שב׳|#‏לפני {num} שב׳", + "#{num}w": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", + "#{num}y ago": "one#‏לפני שנה|two#‏לפני שנתיים|many#‏לפני {num} שנה|#‏לפני {num} שנים", + "#{num}y": "one#ש′ {num}|two#{num} ש′|many#{num} ש′|#{num} ש′", "separatorMedium": ", " -} \ No newline at end of file +} diff --git a/js/data/locale/hi/dateres.json b/js/data/locale/hi/dateres.json new file mode 100644 index 0000000000..d6f4075947 --- /dev/null +++ b/js/data/locale/hi/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "पूर्वाह्न/अपराह्न", + "Day": "दिन", + "Day of Year": "वर्ष का दिन", + "Era": "युग", + "Hour": "घंटा", + "Minute": "मिनट", + "Month": "माह", + "Second": "सेकंड", + "Time Zone": "समय क्षेत्र", + "Week": "सप्ताह", + "Week of Month": "माह का सप्ताह", + "Year": "वर्ष", + "D": "द", + "DD": "दद", + "YY": "वव", + "YYYY": "वववव", + "M": "म", + "MM": "मम", + "H": "घ", + "HH": "घघ", + "mm": "मम", + "ss": "सस" +} \ No newline at end of file diff --git a/js/data/locale/hr/dateres.json b/js/data/locale/hr/dateres.json new file mode 100644 index 0000000000..e7db6b8aae --- /dev/null +++ b/js/data/locale/hr/dateres.json @@ -0,0 +1,17 @@ +{ + "Day": "dan", + "Day of Year": "dan u godini", + "Era": "era", + "Hour": "sat", + "Minute": "minuta", + "Month": "mjesec", + "Second": "sekunda", + "Time Zone": "vremenska zona", + "Week": "tjedan", + "Week of Month": "tjedan u mjesecu", + "Year": "godina", + "YY": "GG", + "YYYY": "GGGG", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/hsb/dateres.json b/js/data/locale/hsb/dateres.json new file mode 100644 index 0000000000..ac3ee959b9 --- /dev/null +++ b/js/data/locale/hsb/dateres.json @@ -0,0 +1,14 @@ +{ + "AM/PM": "połojca dnja", + "Day": "dźeń", + "Era": "doba", + "Hour": "hodźina", + "Minute": "minuta", + "Month": "měsac", + "Second": "sekunda", + "Time Zone": "časowe pasmo", + "Week": "tydźeń", + "Year": "lěto", + "YY": "LL", + "YYYY": "LLLL" +} \ No newline at end of file diff --git a/js/data/locale/hu/dateres.json b/js/data/locale/hu/dateres.json new file mode 100644 index 0000000000..54f209ed7b --- /dev/null +++ b/js/data/locale/hu/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "napszak", + "Day": "nap", + "Day of Year": "év napja", + "Era": "éra", + "Hour": "óra", + "Minute": "perc", + "Month": "hónap", + "Second": "másodperc", + "Time Zone": "időzóna", + "Week": "hét", + "Week of Month": "hónap hete", + "Year": "év", + "D": "N", + "DD": "NN", + "YY": "ÉV", + "YYYY": "ÉV", + "M": "H", + "MM": "HH", + "H": "Ó", + "HH": "ÓÓ", + "mm": "pp", + "ss": "mm" +} \ No newline at end of file diff --git a/js/data/locale/hy/dateres.json b/js/data/locale/hy/dateres.json new file mode 100644 index 0000000000..c192ee8666 --- /dev/null +++ b/js/data/locale/hy/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ԿԱ/ԿՀ", + "Day": "օր", + "Day of Year": "տարվա օր", + "Era": "թվարկություն", + "Hour": "ժամ", + "Minute": "րոպե", + "Month": "ամիս", + "Second": "վայրկյան", + "Time Zone": "ժամային գոտի", + "Week": "շաբաթ", + "Week of Month": "ամսվա շաբաթ", + "Year": "տարի", + "D": "ՕՐ", + "DD": "ՕՐ", + "YY": "ՏՏ", + "YYYY": "ՏՏՏՏ", + "M": "Ա", + "MM": "ԱԱ", + "H": "Ժ", + "HH": "ԺԺ", + "mm": "րր", + "ss": "վվ" +} \ No newline at end of file diff --git a/js/data/locale/ia/dateres.json b/js/data/locale/ia/dateres.json new file mode 100644 index 0000000000..b76dda02f8 --- /dev/null +++ b/js/data/locale/ia/dateres.json @@ -0,0 +1,15 @@ +{ + "Day": "die", + "Day of Year": "die del anno", + "Era": "era", + "Hour": "hora", + "Minute": "minuta", + "Month": "mense", + "Second": "secunda", + "Time Zone": "fuso horari", + "Week": "septimana", + "Week of Month": "septimana del mense", + "Year": "anno", + "YY": "AA", + "YYYY": "AAAA" +} \ No newline at end of file diff --git a/js/data/locale/id/dateres.json b/js/data/locale/id/dateres.json new file mode 100644 index 0000000000..c8834670f1 --- /dev/null +++ b/js/data/locale/id/dateres.json @@ -0,0 +1,21 @@ +{ + "Day": "Hari", + "Day of Year": "Hari dalam Setahun", + "Hour": "Jam", + "Minute": "Menit", + "Month": "Bulan", + "Second": "Detik", + "Time Zone": "Zona waktu", + "Week": "Minggu", + "Week of Month": "Minggu", + "Year": "Tahun", + "D": "H", + "DD": "HH", + "YY": "TT", + "YYYY": "TTTT", + "M": "B", + "MM": "BB", + "H": "J", + "HH": "JJ", + "ss": "dd" +} \ No newline at end of file diff --git a/js/data/locale/ig/dateres.json b/js/data/locale/ig/dateres.json new file mode 100644 index 0000000000..93eeab56bf --- /dev/null +++ b/js/data/locale/ig/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "N’ụtụtụ/N’anyasị", + "Day": "Ụbọchị", + "Era": "Agba", + "Hour": "Elekere", + "Minute": "Nkeji", + "Month": "Ọnwa", + "Second": "Nkejinta", + "Time Zone": "Mpaghara oge", + "Week": "Izu", + "Year": "Afọ", + "D": "Ụ", + "DD": "ỤỤ", + "YY": "AA", + "YYYY": "AFỌ", + "M": "Ọ", + "MM": "ỌỌ", + "H": "E", + "HH": "EE", + "mm": "nn", + "ss": "nn" +} \ No newline at end of file diff --git a/js/data/locale/ii/dateres.json b/js/data/locale/ii/dateres.json new file mode 100644 index 0000000000..8f65ca918b --- /dev/null +++ b/js/data/locale/ii/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "ꎸꄑ/ꁯꋒ", + "Day": "ꑍ", + "Era": "ꃅꋊ", + "Hour": "ꄮꈉ", + "Minute": "ꃏ", + "Month": "ꆪ", + "Second": "ꇙ", + "Time Zone": "ꃅꄷꄮꈉ", + "Week": "ꑭꆏ", + "Year": "ꈎ", + "D": "ꑍ", + "DD": "ꑍ", + "YY": "ꈎ", + "YYYY": "ꈎ", + "M": "ꆪ", + "MM": "ꆪ", + "H": "ꄮꈉ", + "HH": "ꄮꈉ", + "mm": "ꃏ", + "ss": "ꇙ" +} \ No newline at end of file diff --git a/js/data/locale/is/dateres.json b/js/data/locale/is/dateres.json new file mode 100644 index 0000000000..1f2a124cd0 --- /dev/null +++ b/js/data/locale/is/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "f.h./e.h.", + "Day": "dagur", + "Day of Year": "dagur í ári", + "Era": "tímabil", + "Hour": "klukkustund", + "Minute": "mínúta", + "Month": "mánuður", + "Second": "sekúnda", + "Time Zone": "tímabelti", + "Week": "vika", + "Week of Month": "vika í mánuði", + "Year": "ár", + "YY": "ÁR", + "YYYY": "ÁR", + "H": "K", + "HH": "KK" +} \ No newline at end of file diff --git a/js/data/locale/it/dateres.json b/js/data/locale/it/dateres.json new file mode 100644 index 0000000000..171c419217 --- /dev/null +++ b/js/data/locale/it/dateres.json @@ -0,0 +1,19 @@ +{ + "Day": "giorno", + "Day of Year": "giorno dell’anno", + "Era": "era", + "Hour": "ora", + "Minute": "minuto", + "Month": "mese", + "Second": "secondo", + "Time Zone": "fuso orario", + "Week": "settimana", + "Week of Month": "settimana del mese", + "Year": "anno", + "D": "G", + "DD": "GG", + "YY": "AA", + "YYYY": "AAAA", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/ja/dateres.json b/js/data/locale/ja/dateres.json new file mode 100644 index 0000000000..1a99412a60 --- /dev/null +++ b/js/data/locale/ja/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "午前/午後", + "Day": "日", + "Day of Year": "年の通日", + "Era": "時代", + "Hour": "時", + "Minute": "分", + "Month": "月", + "Second": "秒", + "Time Zone": "タイムゾーン", + "Week": "週", + "Week of Month": "月の週番号", + "Year": "年", + "D": "日", + "DD": "日", + "YY": "年", + "YYYY": "年", + "M": "月", + "MM": "月", + "H": "時", + "HH": "時", + "mm": "分", + "ss": "秒" +} \ No newline at end of file diff --git a/js/data/locale/jgo/dateres.json b/js/data/locale/jgo/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/jgo/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/jmc/dateres.json b/js/data/locale/jmc/dateres.json new file mode 100644 index 0000000000..1afbc89c0f --- /dev/null +++ b/js/data/locale/jmc/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Mfiri o siku", + "Day": "Mfiri", + "Era": "Kacha", + "Hour": "Saa", + "Minute": "Dakyika", + "Month": "Mori", + "Second": "Sekunde", + "Time Zone": "Mfiri o saa", + "Week": "Wiikyi", + "Year": "Maka", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/jv/dateres.json b/js/data/locale/jv/dateres.json new file mode 100644 index 0000000000..61045792fd --- /dev/null +++ b/js/data/locale/jv/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "isuk/wengi", + "Day": "dino", + "Era": "era", + "Hour": "jam", + "Minute": "menit", + "Month": "sasi", + "Second": "detik", + "Time Zone": "zona wektu", + "Week": "pekan", + "Year": "taun", + "YY": "TT", + "YYYY": "TTTT", + "M": "S", + "MM": "SS", + "H": "J", + "HH": "JJ", + "ss": "dd" +} \ No newline at end of file diff --git a/js/data/locale/ka/dateres.json b/js/data/locale/ka/dateres.json new file mode 100644 index 0000000000..c6aa160601 --- /dev/null +++ b/js/data/locale/ka/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "დღის ნახევარი", + "Day": "დღე", + "Day of Year": "წლის დღე", + "Era": "ეპოქა", + "Hour": "საათი", + "Minute": "წუთი", + "Month": "თვე", + "Second": "წამი", + "Time Zone": "დროის სარტყელი", + "Week": "კვირა", + "Week of Month": "თვის კვირა", + "Year": "წელი", + "D": "Დ", + "DD": "ᲓᲓ", + "YY": "ᲬᲬ", + "YYYY": "ᲬᲬᲬᲬ", + "M": "Თ", + "MM": "ᲗᲗ", + "H": "Ს", + "HH": "ᲡᲡ", + "mm": "წწ", + "ss": "წწ" +} \ No newline at end of file diff --git a/js/data/locale/kab/dateres.json b/js/data/locale/kab/dateres.json new file mode 100644 index 0000000000..9e90c2b4ad --- /dev/null +++ b/js/data/locale/kab/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "n tufat / n tmeddit", + "Day": "Ass", + "Era": "Tallit", + "Hour": "Tamert", + "Minute": "Tamrect", + "Month": "Aggur", + "Second": "Tasint", + "Time Zone": "Aseglem asergan", + "Week": "Ddurt", + "Year": "Aseggas", + "D": "A", + "DD": "AA", + "YY": "AA", + "YYYY": "AAAA", + "M": "A", + "MM": "AA", + "H": "T", + "HH": "TT", + "mm": "tt", + "ss": "tt" +} \ No newline at end of file diff --git a/js/data/locale/kam/dateres.json b/js/data/locale/kam/dateres.json new file mode 100644 index 0000000000..1558139ce2 --- /dev/null +++ b/js/data/locale/kam/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Ĩyakwakya/Ĩyawĩoo", + "Day": "Mũthenya", + "Era": "Ĩvinda", + "Hour": "Saa", + "Minute": "Ndatĩka", + "Month": "Mwai", + "Second": "sekondi", + "Time Zone": "Kĩsio kya ĩsaa", + "Week": "Kyumwa", + "Year": "Mwaka", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "nn" +} \ No newline at end of file diff --git a/js/data/locale/kde/dateres.json b/js/data/locale/kde/dateres.json new file mode 100644 index 0000000000..8060e37ab8 --- /dev/null +++ b/js/data/locale/kde/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Muhi/Chilo", + "Day": "Lihiku", + "Era": "Mahiku", + "Hour": "Saa", + "Minute": "Dakika", + "Month": "Mwedi", + "Second": "Sekunde", + "Time Zone": "Npanda wa muda", + "Week": "Lijuma", + "Year": "Mwaka", + "D": "L", + "DD": "LL", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/kea/dateres.json b/js/data/locale/kea/dateres.json new file mode 100644 index 0000000000..e952c01958 --- /dev/null +++ b/js/data/locale/kea/dateres.json @@ -0,0 +1,15 @@ +{ + "AM/PM": "am/pm", + "Day": "Dia", + "Hour": "Ora", + "Minute": "Minutu", + "Month": "Mes", + "Second": "Sigundu", + "Time Zone": "Ora lokal", + "Week": "Simana", + "Year": "Anu", + "YY": "AA", + "YYYY": "ANU", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/khq/dateres.json b/js/data/locale/khq/dateres.json new file mode 100644 index 0000000000..dcab771b88 --- /dev/null +++ b/js/data/locale/khq/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Adduha wala Aluula", + "Day": "Jaari", + "Era": "Zaman", + "Hour": "Guuru", + "Minute": "Miniti", + "Month": "Handu", + "Second": "Miti", + "Time Zone": "Leerazuu", + "Week": "Hebu", + "Year": "Jiiri", + "D": "J", + "DD": "JJ", + "YY": "JJ", + "YYYY": "JJJJ", + "M": "H", + "MM": "HH", + "H": "G", + "HH": "GG", + "ss": "mm" +} \ No newline at end of file diff --git a/js/data/locale/ki/dateres.json b/js/data/locale/ki/dateres.json new file mode 100644 index 0000000000..69649aa70e --- /dev/null +++ b/js/data/locale/ki/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Mũthenya", + "Era": "Kĩhinda", + "Hour": "Ithaa", + "Minute": "Ndagĩka", + "Month": "Mweri", + "Second": "Sekunde", + "Time Zone": "Mũcooro wa mathaa", + "Week": "Kiumia", + "Year": "Mwaka", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "H": "I", + "HH": "II", + "mm": "nn" +} \ No newline at end of file diff --git a/js/data/locale/kk/dateres.json b/js/data/locale/kk/dateres.json new file mode 100644 index 0000000000..ff6d099fea --- /dev/null +++ b/js/data/locale/kk/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "АМ/РМ", + "Day": "күн", + "Day of Year": "жылдағы күн", + "Era": "дәуір", + "Hour": "сағат", + "Minute": "минут", + "Month": "ай", + "Second": "секунд", + "Time Zone": "уақыт белдеуі", + "Week": "апта", + "Week of Month": "айдағы апта", + "Year": "жыл", + "D": "К", + "DD": "КК", + "YY": "ЖЖ", + "YYYY": "ЖЫЛ", + "M": "АЙ", + "MM": "АЙ", + "H": "С", + "HH": "СС", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/kkj/dateres.json b/js/data/locale/kkj/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/kkj/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/kl/dateres.json b/js/data/locale/kl/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/kl/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/kln/dateres.json b/js/data/locale/kln/dateres.json new file mode 100644 index 0000000000..6ec4d662aa --- /dev/null +++ b/js/data/locale/kln/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "BE/KE", + "Day": "Betut", + "Era": "Ibinta", + "Hour": "Sait", + "Minute": "Minitit", + "Month": "Arawet", + "Second": "Sekondit", + "Time Zone": "Saitab sonit", + "Week": "Wikit", + "Year": "Kenyit", + "D": "B", + "DD": "BB", + "YY": "KK", + "YYYY": "KKKK", + "M": "A", + "MM": "AA", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/km/dateres.json b/js/data/locale/km/dateres.json new file mode 100644 index 0000000000..72fd52dd51 --- /dev/null +++ b/js/data/locale/km/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ព្រឹក/ល្ងាច", + "Day": "ថ្ងៃ", + "Day of Year": "ថ្ងៃនៃឆ្នាំ", + "Era": "សករាជ", + "Hour": "ម៉ោង", + "Minute": "នាទី", + "Month": "ខែ", + "Second": "វិនាទី", + "Time Zone": "ល្វែងម៉ោង", + "Week": "សប្ដាហ៍", + "Week of Month": "សប្ដាហ៍នៃខែ", + "Year": "ឆ្នាំ", + "D": "ថ", + "DD": "ថថ", + "YY": "ឆឆ", + "YYYY": "ឆឆឆឆ", + "M": "ខែ", + "MM": "ខែ", + "H": "ម", + "HH": "មម", + "mm": "នន", + "ss": "វវ" +} \ No newline at end of file diff --git a/js/data/locale/kn/dateres.json b/js/data/locale/kn/dateres.json new file mode 100644 index 0000000000..c7830c6f14 --- /dev/null +++ b/js/data/locale/kn/dateres.json @@ -0,0 +1,23 @@ +{ + "Day": "ದಿನ", + "Day of Year": "ವರ್ಷದ ದಿನ", + "Era": "ಯುಗ", + "Hour": "ಗಂಟೆ", + "Minute": "ನಿಮಿಷ", + "Month": "ತಿಂಗಳು", + "Second": "ಸೆಕೆಂಡ್", + "Time Zone": "ಸಮಯ ವಲಯ", + "Week": "ವಾರ", + "Week of Month": "ತಿಂಗಳ ವಾರ", + "Year": "ವರ್ಷ", + "D": "ದ", + "DD": "ದದ", + "YY": "ವವ", + "YYYY": "ವವವವ", + "M": "ತ", + "MM": "ತತ", + "H": "ಗ", + "HH": "ಗಗ", + "mm": "ನನ", + "ss": "ಸಸ" +} \ No newline at end of file diff --git a/js/data/locale/ko/dateres.json b/js/data/locale/ko/dateres.json new file mode 100644 index 0000000000..43b69263e6 --- /dev/null +++ b/js/data/locale/ko/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "오전/오후", + "Day": "일", + "Day of Year": "년의 일", + "Era": "연호", + "Hour": "시", + "Minute": "분", + "Month": "월", + "Second": "초", + "Time Zone": "시간대", + "Week": "주", + "Week of Month": "월의 주", + "Year": "년", + "D": "일", + "DD": "일", + "YY": "년", + "YYYY": "년", + "M": "월", + "MM": "월", + "H": "시", + "HH": "시", + "mm": "분", + "ss": "초" +} \ No newline at end of file diff --git a/js/data/locale/kok/dateres.json b/js/data/locale/kok/dateres.json new file mode 100644 index 0000000000..7f58c576da --- /dev/null +++ b/js/data/locale/kok/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "दिसाचोकालावधी", + "Day": "दीस", + "Day of Year": "वर्साचो दीस", + "Era": "शक", + "Hour": "वर", + "Minute": "मिनीट", + "Month": "म्हयनो", + "Second": "सेकंद", + "Time Zone": "झोन", + "Week": "सप्तक", + "Week of Month": "म्हयन्यातलो सप्तक", + "Year": "वर्स", + "D": "द", + "DD": "दद", + "YY": "वव", + "YYYY": "वववव", + "M": "म", + "MM": "मम", + "H": "वर", + "HH": "वर", + "mm": "मम", + "ss": "सस" +} \ No newline at end of file diff --git a/js/data/locale/ks/dateres.json b/js/data/locale/ks/dateres.json new file mode 100644 index 0000000000..a7f7d428d9 --- /dev/null +++ b/js/data/locale/ks/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "صبح/رات", + "Day": "دۄہ", + "Era": "دور", + "Hour": "گٲنٛٹہٕ", + "Minute": "مِنَٹ", + "Month": "رٮ۪تھ", + "Second": "سٮ۪کَنڑ", + "Time Zone": "زون", + "Week": "ہفتہٕ", + "Year": "ؤری", + "D": "دۄہ", + "DD": "دۄہ", + "YY": "ؤری", + "YYYY": "ؤری", + "M": "رٮ۪تھ", + "MM": "رٮ۪تھ", + "H": "گٲنٛٹہٕ", + "HH": "گٲنٛٹہٕ", + "mm": "مِنَٹ", + "ss": "سٮ۪کَنڑ" +} \ No newline at end of file diff --git a/js/data/locale/ksb/dateres.json b/js/data/locale/ksb/dateres.json new file mode 100644 index 0000000000..7f0820fc9a --- /dev/null +++ b/js/data/locale/ksb/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Namshii", + "Day": "Siku", + "Era": "Mishi", + "Hour": "Saa", + "Minute": "Dakika", + "Month": "Ng’ezi", + "Second": "Sekunde", + "Time Zone": "Majila", + "Week": "Niki", + "Year": "Ng’waka", + "D": "S", + "DD": "SS", + "YY": "NN", + "YYYY": "NNNN", + "M": "N", + "MM": "NN", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/ksf/dateres.json b/js/data/locale/ksf/dateres.json new file mode 100644 index 0000000000..0f7d895e5e --- /dev/null +++ b/js/data/locale/ksf/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Sárúwá / Cɛɛ́nko", + "Day": "Ŋwós", + "Era": "Byámɛɛn", + "Hour": "Cámɛɛn", + "Minute": "Mǝnít", + "Month": "Ŋwíí", + "Second": "Háu", + "Time Zone": "Wáas", + "Week": "Sɔ́ndǝ", + "Year": "Bǝk", + "D": "Ŋ", + "DD": "ŊŊ", + "YY": "BB", + "YYYY": "BƎK", + "M": "Ŋ", + "MM": "ŊŊ", + "H": "C", + "HH": "CC", + "ss": "hh" +} \ No newline at end of file diff --git a/js/data/locale/ksh/dateres.json b/js/data/locale/ksh/dateres.json new file mode 100644 index 0000000000..01e3c4682c --- /dev/null +++ b/js/data/locale/ksh/dateres.json @@ -0,0 +1,16 @@ +{ + "AM/PM": "Daachteil", + "Day": "Daach", + "Era": "Ähra", + "Hour": "Schtund", + "Minute": "Menutt", + "Month": "Mohnd", + "Second": "Sekond", + "Time Zone": "Zickzohn", + "Week": "Woch", + "Year": "Johr", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/ku/dateres.json b/js/data/locale/ku/dateres.json new file mode 100644 index 0000000000..b0f680cc67 --- /dev/null +++ b/js/data/locale/ku/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Dayperiod", + "Day": "roj", + "Era": "serdem", + "Hour": "saet", + "Minute": "deqîqe", + "Month": "meh", + "Second": "saniye", + "Time Zone": "Zone", + "Week": "hefte", + "Year": "sal", + "D": "R", + "DD": "RR", + "YY": "SS", + "YYYY": "SAL", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/kw/dateres.json b/js/data/locale/kw/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/kw/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/ky/dateres.json b/js/data/locale/ky/dateres.json new file mode 100644 index 0000000000..a311e20e8e --- /dev/null +++ b/js/data/locale/ky/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ТЧ/ТК", + "Day": "күн", + "Day of Year": "жылдын күнү", + "Era": "заман", + "Hour": "саат", + "Minute": "мүнөт", + "Month": "ай", + "Second": "секунд", + "Time Zone": "убакыт алкагы", + "Week": "апта", + "Week of Month": "айдын жумасы", + "Year": "жыл", + "D": "КҮН", + "DD": "КҮН", + "YY": "ЖЫЛ", + "YYYY": "ЖЫЛ", + "M": "АЙ", + "MM": "АЙ", + "H": "СААТ", + "HH": "СААТ", + "mm": "мүнөт", + "ss": "секунд" +} \ No newline at end of file diff --git a/js/data/locale/lag/dateres.json b/js/data/locale/lag/dateres.json new file mode 100644 index 0000000000..9bc76432fd --- /dev/null +++ b/js/data/locale/lag/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Mpɨɨndɨ ja sikʉ", + "Day": "Sikʉ", + "Era": "Mpɨɨndɨ", + "Hour": "Sáa", + "Minute": "Dakíka", + "Month": "Mweéri", + "Second": "Sekúunde", + "Time Zone": "Mpɨɨndɨ ja mɨɨtʉ", + "Week": "Wíiki", + "Year": "Mwaáka", + "D": "S", + "DD": "SS", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/lb/dateres.json b/js/data/locale/lb/dateres.json new file mode 100644 index 0000000000..b7e8ae6546 --- /dev/null +++ b/js/data/locale/lb/dateres.json @@ -0,0 +1,16 @@ +{ + "AM/PM": "Dageshallschent", + "Day": "Dag", + "Era": "Epoch", + "Hour": "Stonn", + "Minute": "Minutt", + "Month": "Mount", + "Second": "Sekonn", + "Time Zone": "Zäitzon", + "Week": "Woch", + "Year": "Joer", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/lg/dateres.json b/js/data/locale/lg/dateres.json new file mode 100644 index 0000000000..46cc947110 --- /dev/null +++ b/js/data/locale/lg/dateres.json @@ -0,0 +1,19 @@ +{ + "Day": "Lunaku", + "Era": "Mulembe", + "Hour": "Saawa", + "Minute": "Dakiika", + "Month": "Mwezi", + "Second": "Kasikonda", + "Time Zone": "Ssaawa za:", + "Week": "Sabbiiti", + "Year": "Mwaka", + "D": "L", + "DD": "LL", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd", + "ss": "kk" +} \ No newline at end of file diff --git a/js/data/locale/lkt/dateres.json b/js/data/locale/lkt/dateres.json new file mode 100644 index 0000000000..c2a059ecc0 --- /dev/null +++ b/js/data/locale/lkt/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Aŋpétu", + "Hour": "Owápȟe", + "Minute": "Owápȟe oȟʼáŋkȟo", + "Month": "Wí", + "Second": "Okpí", + "Time Zone": "Zone", + "Week": "Okó", + "Year": "Ómakȟa", + "D": "A", + "DD": "AA", + "YY": "ÓÓ", + "YYYY": "ÓÓÓÓ", + "M": "WÍ", + "MM": "WÍ", + "H": "O", + "HH": "OO", + "mm": "oo", + "ss": "oo" +} \ No newline at end of file diff --git a/js/data/locale/ln/dateres.json b/js/data/locale/ln/dateres.json new file mode 100644 index 0000000000..d495b7358b --- /dev/null +++ b/js/data/locale/ln/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "Eleko ya mokɔlɔ", + "Day": "Mokɔlɔ", + "Era": "Ntángo", + "Hour": "Ngonga", + "Minute": "Monúti", + "Month": "Sánzá", + "Second": "Sɛkɔ́ndɛ", + "Time Zone": "Ntáká ya ngonga", + "Week": "Pɔ́sɔ", + "Year": "Mobú", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "M": "S", + "MM": "SS", + "H": "N", + "HH": "NN" +} \ No newline at end of file diff --git a/js/data/locale/lo/dateres.json b/js/data/locale/lo/dateres.json new file mode 100644 index 0000000000..3e9efee338 --- /dev/null +++ b/js/data/locale/lo/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ກ່ອນທ່ຽງ/ຫຼັງທ່ຽງ", + "Day": "ມື້", + "Day of Year": "ມື້ຂອງປີ", + "Era": "ສະໄໝ", + "Hour": "ຊົ່ວໂມງ", + "Minute": "ນາທີ", + "Month": "ເດືອນ", + "Second": "ວິນາທີ", + "Time Zone": "ເຂດເວລາ", + "Week": "ອາທິດ", + "Week of Month": "ອາທິດຂອງເດືອນ", + "Year": "ປີ", + "D": "ມ", + "DD": "ມມ", + "YY": "ປີ", + "YYYY": "ປີ", + "M": "ເ", + "MM": "ເເ", + "H": "ຊ", + "HH": "ຊຊ", + "mm": "ນນ", + "ss": "ວວ" +} \ No newline at end of file diff --git a/js/data/locale/lrc/dateres.json b/js/data/locale/lrc/dateres.json new file mode 100644 index 0000000000..56518aaf52 --- /dev/null +++ b/js/data/locale/lrc/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "گات روٙز", + "Day": "روٙز", + "Era": "سأرۉ", + "Hour": "ساأت", + "Minute": "دئیقە", + "Month": "ما", + "Second": "ثانیە", + "Time Zone": "راساگە", + "Week": "ھأفتە", + "Year": "سال", + "D": "ر", + "DD": "رر", + "YY": "سس", + "YYYY": "سال", + "M": "ما", + "MM": "ما", + "H": "س", + "HH": "سس", + "mm": "دد", + "ss": "ثث" +} \ No newline at end of file diff --git a/js/data/locale/lt/dateres.json b/js/data/locale/lt/dateres.json new file mode 100644 index 0000000000..3b596ca83d --- /dev/null +++ b/js/data/locale/lt/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "iki pietų / po pietų", + "Day": "diena", + "Day of Year": "metų diena", + "Era": "era", + "Hour": "valanda", + "Minute": "minutė", + "Month": "mėnuo", + "Second": "sekundė", + "Time Zone": "laiko juosta", + "Week": "savaitė", + "Week of Month": "mėnesio savaitė", + "Year": "metai", + "YY": "MM", + "YYYY": "MMMM", + "H": "V", + "HH": "VV" +} \ No newline at end of file diff --git a/js/data/locale/lu/dateres.json b/js/data/locale/lu/dateres.json new file mode 100644 index 0000000000..dfc18f7c35 --- /dev/null +++ b/js/data/locale/lu/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "Mutantshi wa diba", + "Day": "Dituku", + "Era": "Tshipungu", + "Hour": "Diba", + "Minute": "Kasunsu", + "Month": "Ngondo", + "Second": "Kasunsukusu", + "Time Zone": "Nzeepu", + "Week": "Lubingu", + "Year": "Tshidimu", + "YY": "TT", + "YYYY": "TTTT", + "M": "N", + "MM": "NN", + "H": "D", + "HH": "DD", + "mm": "kk", + "ss": "kk" +} \ No newline at end of file diff --git a/js/data/locale/luo/dateres.json b/js/data/locale/luo/dateres.json new file mode 100644 index 0000000000..497f73d756 --- /dev/null +++ b/js/data/locale/luo/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "odieochieng’/otieno", + "Day": "chieng’", + "Era": "ndalo", + "Hour": "saa", + "Minute": "dakika", + "Month": "dwe", + "Second": "nyiriri mar saa", + "Time Zone": "kar saa", + "Week": "juma", + "Year": "higa", + "D": "C", + "DD": "CC", + "YY": "HH", + "YYYY": "HHHH", + "M": "D", + "MM": "DD", + "H": "S", + "HH": "SS", + "mm": "dd", + "ss": "nn" +} \ No newline at end of file diff --git a/js/data/locale/luy/dateres.json b/js/data/locale/luy/dateres.json new file mode 100644 index 0000000000..805b317f11 --- /dev/null +++ b/js/data/locale/luy/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Vuche/Vwira", + "Day": "Ridiku", + "Era": "Rimenya", + "Hour": "Isaa", + "Minute": "Idagika", + "Month": "Mweri", + "Second": "Sekunde", + "Time Zone": "Havundu", + "Week": "Risiza", + "Year": "Muhiga", + "D": "R", + "DD": "RR", + "YY": "MM", + "YYYY": "MMMM", + "H": "I", + "HH": "II", + "mm": "ii" +} \ No newline at end of file diff --git a/js/data/locale/lv/dateres.json b/js/data/locale/lv/dateres.json new file mode 100644 index 0000000000..a365d97d2c --- /dev/null +++ b/js/data/locale/lv/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "priekšpusdienā/pēcpusdienā", + "Day": "diena", + "Day of Year": "gada diena", + "Era": "ēra", + "Hour": "stundas", + "Minute": "minūtes", + "Month": "mēnesis", + "Second": "sekundes", + "Time Zone": "laika josla", + "Week": "nedēļa", + "Week of Month": "mēneša nedēļa", + "Year": "gads", + "YY": "GG", + "YYYY": "GGGG", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/mas/dateres.json b/js/data/locale/mas/dateres.json new file mode 100644 index 0000000000..eeff29d2b1 --- /dev/null +++ b/js/data/locale/mas/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Ɛnkakɛnyá/Ɛndámâ", + "Day": "Ɛnkɔlɔ́ŋ", + "Era": "Ɛnkátá", + "Hour": "Ɛ́sáâ", + "Minute": "Oldákikaè", + "Month": "Ɔlápà", + "Second": "Sekunde", + "Time Zone": "Ɛ́sáâ o inkuapí", + "Week": "Ewíkî", + "Year": "Ɔlárì", + "D": "Ɛ", + "DD": "ƐƐ", + "YY": "ƆƆ", + "YYYY": "ƆƆƆƆ", + "M": "Ɔ", + "MM": "ƆƆ", + "H": "Ɛ", + "HH": "ƐƐ", + "mm": "oo" +} \ No newline at end of file diff --git a/js/data/locale/mer/dateres.json b/js/data/locale/mer/dateres.json new file mode 100644 index 0000000000..386f5faab0 --- /dev/null +++ b/js/data/locale/mer/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Mũthenya", + "Day": "Ntukũ", + "Era": "Ĩgita", + "Hour": "Ĩthaa", + "Minute": "Ndagika", + "Month": "Mweri", + "Second": "Sekondi", + "Time Zone": "Gũntũ kwa thaa", + "Week": "Kiumia", + "Year": "Mwaka", + "D": "N", + "DD": "NN", + "YY": "MM", + "YYYY": "MMMM", + "H": "Ĩ", + "HH": "ĨĨ", + "mm": "nn" +} \ No newline at end of file diff --git a/js/data/locale/mfe/dateres.json b/js/data/locale/mfe/dateres.json new file mode 100644 index 0000000000..eaecba268c --- /dev/null +++ b/js/data/locale/mfe/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "Peryod dan lazourne", + "Day": "Zour", + "Era": "Lepok", + "Hour": "Ler", + "Minute": "Minit", + "Month": "Mwa", + "Second": "Segonn", + "Time Zone": "Peryod letan", + "Week": "Semenn", + "Year": "Lane", + "D": "Z", + "DD": "ZZ", + "YY": "LL", + "YYYY": "LLLL", + "H": "L", + "HH": "LL" +} \ No newline at end of file diff --git a/js/data/locale/mg/dateres.json b/js/data/locale/mg/dateres.json new file mode 100644 index 0000000000..72a1fe6cfa --- /dev/null +++ b/js/data/locale/mg/dateres.json @@ -0,0 +1,18 @@ +{ + "Day": "Andro", + "Hour": "Ora", + "Minute": "Minitra", + "Month": "Volana", + "Second": "Segondra", + "Time Zone": "Zone", + "Week": "Herinandro", + "Year": "Taona", + "D": "A", + "DD": "AA", + "YY": "TT", + "YYYY": "TTTT", + "M": "V", + "MM": "VV", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/mgh/dateres.json b/js/data/locale/mgh/dateres.json new file mode 100644 index 0000000000..f2f7e07c65 --- /dev/null +++ b/js/data/locale/mgh/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "Dayperiod", + "Day": "nihuku", + "Era": "kal’lai", + "Hour": "isaa", + "Minute": "idakika", + "Month": "mweri", + "Second": "isekunde", + "Time Zone": "Zone", + "Week": "iwiki mocha", + "Year": "yaka", + "D": "N", + "DD": "NN", + "H": "I", + "HH": "II", + "mm": "ii", + "ss": "ii" +} \ No newline at end of file diff --git a/js/data/locale/mgo/dateres.json b/js/data/locale/mgo/dateres.json new file mode 100644 index 0000000000..2baa1c2e6f --- /dev/null +++ b/js/data/locale/mgo/dateres.json @@ -0,0 +1,14 @@ +{ + "AM/PM": "Dayperiod", + "Day": "anəg", + "Month": "iməg", + "Time Zone": "Zone", + "Week": "nkap", + "Year": "fituʼ", + "D": "A", + "DD": "AA", + "YY": "FF", + "YYYY": "FFFF", + "M": "I", + "MM": "II" +} \ No newline at end of file diff --git a/js/data/locale/mi/dateres.json b/js/data/locale/mi/dateres.json new file mode 100644 index 0000000000..2018493790 --- /dev/null +++ b/js/data/locale/mi/dateres.json @@ -0,0 +1,16 @@ +{ + "Day": "rā", + "Era": "wā", + "Hour": "hāora", + "Minute": "meneti", + "Month": "marama", + "Second": "hēkona", + "Time Zone": "rohe wā", + "Week": "wiki", + "Year": "tau", + "D": "RĀ", + "DD": "RĀ", + "YY": "TT", + "YYYY": "TAU", + "ss": "hh" +} \ No newline at end of file diff --git a/js/data/locale/mk/dateres.json b/js/data/locale/mk/dateres.json new file mode 100644 index 0000000000..d7f291044e --- /dev/null +++ b/js/data/locale/mk/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "претпладне/попладне", + "Day": "ден", + "Day of Year": "ден од годината", + "Era": "ера", + "Hour": "час", + "Minute": "минута", + "Month": "месец", + "Second": "секунда", + "Time Zone": "временска зона", + "Week": "седмица", + "Week of Month": "седмица од месецот", + "Year": "година", + "D": "Д", + "DD": "ДД", + "YY": "ГГ", + "YYYY": "ГГГГ", + "M": "М", + "MM": "ММ", + "H": "Ч", + "HH": "ЧЧ", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/ml/dateres.json b/js/data/locale/ml/dateres.json new file mode 100644 index 0000000000..595da3a061 --- /dev/null +++ b/js/data/locale/ml/dateres.json @@ -0,0 +1,23 @@ +{ + "Day": "ദിവസം", + "Day of Year": "വർഷത്തിലെ ദിവസം", + "Era": "കാലഘട്ടം", + "Hour": "മണിക്കൂർ", + "Minute": "മിനിറ്റ്", + "Month": "മാസം", + "Second": "സെക്കൻഡ്", + "Time Zone": "സമയ മേഖല", + "Week": "ആഴ്ച", + "Week of Month": "മാസത്തിലെ ആഴ്‌ച", + "Year": "വർഷം", + "D": "ദ", + "DD": "ദദ", + "YY": "വവ", + "YYYY": "വവവവ", + "M": "മ", + "MM": "മമ", + "H": "മ", + "HH": "മമ", + "mm": "മമ", + "ss": "സസ" +} \ No newline at end of file diff --git a/js/data/locale/mn/dateres.json b/js/data/locale/mn/dateres.json new file mode 100644 index 0000000000..61f33357d9 --- /dev/null +++ b/js/data/locale/mn/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ү.ө./ү.х.", + "Day": "өдөр", + "Day of Year": "жилийн хоног", + "Era": "эрин", + "Hour": "цаг", + "Minute": "минут", + "Month": "сар", + "Second": "секунд", + "Time Zone": "цагийн бүс", + "Week": "долоо хоног", + "Week of Month": "сарын долоо хоног", + "Year": "жил", + "D": "Ө", + "DD": "ӨӨ", + "YY": "ЖЖ", + "YYYY": "ЖИЛ", + "M": "С", + "MM": "СС", + "H": "Ц", + "HH": "ЦЦ", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/mr/dateres.json b/js/data/locale/mr/dateres.json new file mode 100644 index 0000000000..a2dbc594ea --- /dev/null +++ b/js/data/locale/mr/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "[म.पू./म.उ.]", + "Day": "दिवस", + "Day of Year": "वर्षातील दिवस", + "Era": "युग", + "Hour": "तास", + "Minute": "मिनिट", + "Month": "महिना", + "Second": "सेकंद", + "Time Zone": "वेळ क्षेत्र", + "Week": "आठवडा", + "Week of Month": "महिन्याचा आठवडा", + "Year": "वर्ष", + "D": "द", + "DD": "दद", + "YY": "वव", + "YYYY": "वववव", + "M": "म", + "MM": "मम", + "H": "त", + "HH": "तत", + "mm": "मम", + "ss": "सस" +} \ No newline at end of file diff --git a/js/data/locale/ms/dateres.json b/js/data/locale/ms/dateres.json new file mode 100644 index 0000000000..a7736b7f65 --- /dev/null +++ b/js/data/locale/ms/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "PG/PTG", + "Day": "Hari", + "Hour": "Jam", + "Minute": "Minit", + "Month": "Bulan", + "Second": "Saat", + "Time Zone": "Zon waktu", + "Week": "Minggu", + "Year": "Tahun", + "D": "H", + "DD": "HH", + "YY": "TT", + "YYYY": "TTTT", + "M": "B", + "MM": "BB", + "H": "J", + "HH": "JJ" +} \ No newline at end of file diff --git a/js/data/locale/mt/dateres.json b/js/data/locale/mt/dateres.json new file mode 100644 index 0000000000..6929387056 --- /dev/null +++ b/js/data/locale/mt/dateres.json @@ -0,0 +1,20 @@ +{ + "Day": "jum", + "Day of Year": "jum tas-sena", + "Hour": "siegħa", + "Minute": "minuta", + "Month": "xahar", + "Second": "sekonda", + "Time Zone": "żona tal-ħin", + "Week": "ġimgħa", + "Week of Month": "ġimgħa tax-xahar", + "Year": "Sena", + "D": "J", + "DD": "JJ", + "YY": "SS", + "YYYY": "SSSS", + "M": "X", + "MM": "XX", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/mua/dateres.json b/js/data/locale/mua/dateres.json new file mode 100644 index 0000000000..c2985c7484 --- /dev/null +++ b/js/data/locale/mua/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Zah’nane/ Comme", + "Era": "Syii ma tãa", + "Hour": "Cok comme", + "Minute": "Cok comme ma laŋne", + "Month": "Fĩi", + "Second": "Cok comme ma laŋ tǝ biŋ", + "Time Zone": "Waŋ cok comme", + "Week": "Luma", + "Year": "Syii", + "D": "Z", + "DD": "ZZ", + "YY": "SS", + "YYYY": "SSSS", + "M": "F", + "MM": "FF", + "H": "C", + "HH": "CC", + "mm": "cc", + "ss": "cc" +} \ No newline at end of file diff --git a/js/data/locale/my/dateres.json b/js/data/locale/my/dateres.json new file mode 100644 index 0000000000..8309a84bff --- /dev/null +++ b/js/data/locale/my/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "နံနက်/ညနေ", + "Day": "ရက်", + "Day of Year": "တစ်နှစ်အတွင်း ရက်ရေတွက်ပုံ", + "Era": "ခေတ်", + "Hour": "နာရီ", + "Minute": "မိနစ်", + "Month": "လ", + "Second": "စက္ကန့်", + "Time Zone": "ဇုန်", + "Week": "ပတ်", + "Week of Month": "တစ်လအတွင်းရှိသီတင်းပတ်", + "Year": "နှစ်", + "D": "ရ", + "DD": "ရရ", + "YY": "နန", + "YYYY": "နနနန", + "M": "လ", + "MM": "လ", + "H": "န", + "HH": "နန", + "mm": "မမ", + "ss": "စစ" +} \ No newline at end of file diff --git a/js/data/locale/mzn/dateres.json b/js/data/locale/mzn/dateres.json new file mode 100644 index 0000000000..ba58adda66 --- /dev/null +++ b/js/data/locale/mzn/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "صواحی/ظُر", + "Day": "روز", + "Era": "تقویم", + "Hour": "ساعِت", + "Minute": "دقیقه", + "Month": "ماه", + "Second": "ثانیه", + "Time Zone": "زمونی منقطه", + "Week": "هفته", + "Year": "سال", + "D": "ر", + "DD": "رر", + "YY": "سس", + "YYYY": "سال", + "M": "م", + "MM": "مم", + "H": "س", + "HH": "سس", + "mm": "دد", + "ss": "ثث" +} \ No newline at end of file diff --git a/js/data/locale/naq/dateres.json b/js/data/locale/naq/dateres.json new file mode 100644 index 0000000000..09a34d611b --- /dev/null +++ b/js/data/locale/naq/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "ǁgoas/ǃuis", + "Day": "Tsees", + "Era": "ǁAeǃgâs", + "Hour": "Iiri", + "Minute": "Haib", + "Month": "ǁKhâb", + "Second": "ǀGâub", + "Time Zone": "ǁAeb ǀharib", + "Week": "Wekheb", + "Year": "Kurib", + "D": "T", + "DD": "TT", + "YY": "KK", + "YYYY": "KKKK", + "M": "ǁ", + "MM": "ǁǁ", + "H": "I", + "HH": "II", + "mm": "hh", + "ss": "ǀǀ" +} \ No newline at end of file diff --git a/js/data/locale/nb/dateres.json b/js/data/locale/nb/dateres.json new file mode 100644 index 0000000000..4ede5de535 --- /dev/null +++ b/js/data/locale/nb/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "a.m./p.m.", + "Day": "dag", + "Day of Year": "dag i året", + "Era": "tidsalder", + "Hour": "time", + "Minute": "minutt", + "Month": "måned", + "Second": "sekund", + "Time Zone": "tidssone", + "Week": "uke", + "Week of Month": "uke i måneden", + "Year": "år", + "YY": "ÅR", + "YYYY": "ÅR", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/nd/dateres.json b/js/data/locale/nd/dateres.json new file mode 100644 index 0000000000..7e5f9c580f --- /dev/null +++ b/js/data/locale/nd/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Ilanga", + "Hour": "Ihola", + "Minute": "Umuzuzu", + "Month": "Inyangacale", + "Second": "Isekendi", + "Time Zone": "Isikhathi", + "Week": "Iviki", + "Year": "Umnyaka", + "D": "I", + "DD": "II", + "YY": "UU", + "YYYY": "UUUU", + "M": "I", + "MM": "II", + "H": "I", + "HH": "II", + "mm": "uu", + "ss": "ii" +} \ No newline at end of file diff --git a/js/data/locale/nds/dateres.json b/js/data/locale/nds/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/nds/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/ne/dateres.json b/js/data/locale/ne/dateres.json new file mode 100644 index 0000000000..328d6fa30b --- /dev/null +++ b/js/data/locale/ne/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "पूर्वाह्न / अपराह्न", + "Day": "बार", + "Day of Year": "वर्षको बार", + "Era": "काल", + "Hour": "घण्टा", + "Minute": "मिनेट", + "Month": "महिना", + "Second": "सेकेन्ड", + "Time Zone": "क्षेत्र", + "Week": "हप्ता", + "Week of Month": "महिनाको हप्ता", + "Year": "वर्ष", + "D": "ब", + "DD": "बब", + "YY": "वव", + "YYYY": "वववव", + "M": "म", + "MM": "मम", + "H": "घ", + "HH": "घघ", + "mm": "मम", + "ss": "सस" +} \ No newline at end of file diff --git a/js/data/locale/nl/dateres.json b/js/data/locale/nl/dateres.json new file mode 100644 index 0000000000..b32a68c6a3 --- /dev/null +++ b/js/data/locale/nl/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "a.m./p.m.", + "Day": "dag", + "Day of Year": "dag van het jaar", + "Era": "tijdperk", + "Hour": "uur", + "Minute": "minuut", + "Month": "maand", + "Second": "seconde", + "Time Zone": "tijdzone", + "Week": "week", + "Week of Month": "week van de maand", + "Year": "jaar", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "U", + "HH": "UU" +} \ No newline at end of file diff --git a/js/data/locale/nmg/dateres.json b/js/data/locale/nmg/dateres.json new file mode 100644 index 0000000000..c1a7c76a50 --- /dev/null +++ b/js/data/locale/nmg/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Máná, Muó, Kugú, Bvul", + "Day": "Duö", + "Era": "Pīl/Lahlɛ̄", + "Hour": "Wulā", + "Minute": "Mpálâ", + "Month": "Ngwɛn", + "Second": "Nyiɛl", + "Time Zone": "Nkɛ̌l wulā", + "Week": "Sɔ́ndɔ", + "Year": "Mbvu", + "YY": "MM", + "YYYY": "MMMM", + "M": "N", + "MM": "NN", + "H": "W", + "HH": "WW", + "ss": "nn" +} \ No newline at end of file diff --git a/js/data/locale/nn/dateres.json b/js/data/locale/nn/dateres.json new file mode 100644 index 0000000000..35da8fb22f --- /dev/null +++ b/js/data/locale/nn/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "f.m./e.m.", + "Day": "dag", + "Day of Year": "dag i året", + "Era": "tidsalder", + "Hour": "time", + "Minute": "minutt", + "Month": "månad", + "Second": "sekund", + "Time Zone": "tidssone", + "Week": "veke", + "Week of Month": "veke i månaden", + "Year": "år", + "YY": "ÅR", + "YYYY": "ÅR", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/nnh/dateres.json b/js/data/locale/nnh/dateres.json new file mode 100644 index 0000000000..0e89cfef3a --- /dev/null +++ b/js/data/locale/nnh/dateres.json @@ -0,0 +1,14 @@ +{ + "AM/PM": "Dayperiod", + "Day": "lyɛ̌ʼ", + "Era": "tsɔ́ fʉ̀ʼ", + "Hour": "fʉ̀ʼ nèm", + "Time Zone": "Zone", + "Year": "ngùʼ", + "D": "L", + "DD": "LL", + "YY": "NN", + "YYYY": "NNNN", + "H": "F", + "HH": "FF" +} \ No newline at end of file diff --git a/js/data/locale/nus/dateres.json b/js/data/locale/nus/dateres.json new file mode 100644 index 0000000000..f1721e5a18 --- /dev/null +++ b/js/data/locale/nus/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Cäŋ", + "Era": "Gua̱a̱th Ruëc", + "Hour": "Thaak", + "Minute": "Minit", + "Month": "Pay", + "Second": "Thɛkɛni", + "Time Zone": "Zone", + "Week": "Jiɔk", + "Year": "Ruɔ̱n", + "D": "C", + "DD": "CC", + "YY": "RR", + "YYYY": "RRRR", + "M": "P", + "MM": "PP", + "H": "T", + "HH": "TT", + "ss": "tt" +} \ No newline at end of file diff --git a/js/data/locale/nyn/dateres.json b/js/data/locale/nyn/dateres.json new file mode 100644 index 0000000000..73bab9790b --- /dev/null +++ b/js/data/locale/nyn/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Nyomushana/nyekiro", + "Day": "Eizooba", + "Era": "Obunaku", + "Hour": "Shaaha", + "Minute": "Edakiika", + "Month": "Omwezi", + "Second": "Obucweka/Esekendi", + "Time Zone": "Eshaaha za", + "Week": "Esande", + "Year": "Omwaka", + "D": "E", + "DD": "EE", + "YY": "OO", + "YYYY": "OOOO", + "M": "O", + "MM": "OO", + "H": "S", + "HH": "SS", + "mm": "ee", + "ss": "oo" +} \ No newline at end of file diff --git a/js/data/locale/om/dateres.json b/js/data/locale/om/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/om/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/or/dateres.json b/js/data/locale/or/dateres.json new file mode 100644 index 0000000000..13275ee0df --- /dev/null +++ b/js/data/locale/or/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ପୂର୍ବାହ୍ନ/ଅପରାହ୍ନ", + "Day": "ଦିନ", + "Day of Year": "ବର୍ଷର ଦିନ", + "Era": "ଯୁଗ", + "Hour": "ଘଣ୍ଟା", + "Minute": "ମିନିଟ୍", + "Month": "ମାସ", + "Second": "ସେକେଣ୍ଡ୍", + "Time Zone": "ସମୟ କ୍ଷେତ୍ର", + "Week": "ସପ୍ତାହ", + "Week of Month": "ମାସର ସପ୍ତାହ", + "Year": "ବର୍ଷ", + "D": "ଦ", + "DD": "ଦଦ", + "YY": "ବବ", + "YYYY": "ବବବବ", + "M": "ମ", + "MM": "ମମ", + "H": "ଘ", + "HH": "ଘଘ", + "mm": "ମମ", + "ss": "ସସ" +} \ No newline at end of file diff --git a/js/data/locale/os/dateres.json b/js/data/locale/os/dateres.json new file mode 100644 index 0000000000..e613a049d2 --- /dev/null +++ b/js/data/locale/os/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Боны период", + "Day": "Бон", + "Era": "Дуг", + "Hour": "Сахат", + "Minute": "Минут", + "Month": "Мӕй", + "Second": "Секунд", + "Time Zone": "Рӕстӕджы зонӕ", + "Week": "Къуыри", + "Year": "Аз", + "D": "Б", + "DD": "ББ", + "YY": "АЗ", + "YYYY": "АЗ", + "M": "М", + "MM": "ММ", + "H": "С", + "HH": "СС", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/pa/Arab/dateres.json b/js/data/locale/pa/Arab/dateres.json new file mode 100644 index 0000000000..5cfce7cc1c --- /dev/null +++ b/js/data/locale/pa/Arab/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Dayperiod", + "Day": "دئن", + "Day of Year": "Day Of Year", + "Hour": "گھنٹا", + "Minute": "منٹ", + "Month": "مہينا", + "Time Zone": "ٹپہ", + "Week": "ہفتہ", + "Week of Month": "Week Of Month", + "Year": "ورھا", + "D": "دئن", + "DD": "دئن", + "YY": "ورھا", + "YYYY": "ورھا", + "M": "مہينا", + "MM": "مہينا", + "H": "گھنٹا", + "HH": "گھنٹا", + "mm": "منٹ" +} \ No newline at end of file diff --git a/js/data/locale/pa/dateres.json b/js/data/locale/pa/dateres.json new file mode 100644 index 0000000000..731659a4f1 --- /dev/null +++ b/js/data/locale/pa/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ਪੂ.ਦੁ./ਬਾ.ਦੁ.", + "Day": "ਦਿਨ", + "Day of Year": "ਸਾਲ ਦਾ ਦਿਨ", + "Era": "ਸੰਮਤ", + "Hour": "ਘੰਟਾ", + "Minute": "ਮਿੰਟ", + "Month": "ਮਹੀਨਾ", + "Second": "ਸਕਿੰਟ", + "Time Zone": "ਇਲਾਕਾਈ ਵੇਲਾ", + "Week": "ਹਫ਼ਤਾ", + "Week of Month": "ਮਹੀਨੇ ਦਾ ਹਫ਼ਤਾ", + "Year": "ਸਾਲ", + "D": "ਦ", + "DD": "ਦਦ", + "YY": "ਸਸ", + "YYYY": "ਸਾਲ", + "M": "ਮ", + "MM": "ਮਮ", + "H": "ਘ", + "HH": "ਘਘ", + "mm": "ਮਮ", + "ss": "ਸਸ" +} \ No newline at end of file diff --git a/js/data/locale/pl/dateres.json b/js/data/locale/pl/dateres.json new file mode 100644 index 0000000000..e89c1860ea --- /dev/null +++ b/js/data/locale/pl/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "rano / po południu / wieczorem", + "Day": "dzień", + "Day of Year": "dzień roku", + "Era": "era", + "Hour": "godzina", + "Minute": "minuta", + "Month": "miesiąc", + "Second": "sekunda", + "Time Zone": "strefa czasowa", + "Week": "tydzień", + "Week of Month": "tydzień miesiąca", + "Year": "rok", + "YY": "RR", + "YYYY": "ROK", + "H": "G", + "HH": "GG" +} \ No newline at end of file diff --git a/js/data/locale/prg/dateres.json b/js/data/locale/prg/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/prg/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/ps/dateres.json b/js/data/locale/ps/dateres.json new file mode 100644 index 0000000000..69d9415934 --- /dev/null +++ b/js/data/locale/ps/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ورځ شېبه", + "Day": "ورځ", + "Day of Year": "د کال ورځ", + "Era": "پېر", + "Hour": "ساعت", + "Minute": "دقيقه", + "Month": "مياشت", + "Second": "ثانيه", + "Time Zone": "وخت سيمه", + "Week": "اونۍ", + "Week of Month": "د مياشتې اونۍ", + "Year": "کال", + "D": "ورځ", + "DD": "ورځ", + "YY": "کال", + "YYYY": "کال", + "M": "مياشت", + "MM": "مياشت", + "H": "ساعت", + "HH": "ساعت", + "mm": "دقيقه", + "ss": "ثانيه" +} \ No newline at end of file diff --git a/js/data/locale/pt/dateres.json b/js/data/locale/pt/dateres.json new file mode 100644 index 0000000000..02d819a785 --- /dev/null +++ b/js/data/locale/pt/dateres.json @@ -0,0 +1,14 @@ +{ + "Day": "Dia", + "Day of Year": "Dia do ano", + "Hour": "Hora", + "Minute": "Minuto", + "Month": "Mês", + "Second": "Segundo", + "Time Zone": "Fuso horário", + "Week": "Semana", + "Week of Month": "Semana do mês", + "Year": "Ano", + "YY": "AA", + "YYYY": "ANO" +} \ No newline at end of file diff --git a/js/data/locale/qu/dateres.json b/js/data/locale/qu/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/qu/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/rm/dateres.json b/js/data/locale/rm/dateres.json new file mode 100644 index 0000000000..8cf0bcd8f2 --- /dev/null +++ b/js/data/locale/rm/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "mesadad dal di", + "Day": "Tag", + "Era": "epoca", + "Hour": "ura", + "Minute": "minuta", + "Month": "mais", + "Second": "secunda", + "Time Zone": "zona d’urari", + "Week": "emna", + "Year": "onn", + "D": "T", + "DD": "TT", + "YY": "OO", + "YYYY": "ONN", + "H": "U", + "HH": "UU" +} \ No newline at end of file diff --git a/js/data/locale/rn/dateres.json b/js/data/locale/rn/dateres.json new file mode 100644 index 0000000000..37006491d2 --- /dev/null +++ b/js/data/locale/rn/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "M.s/N.s", + "Day": "Umusi", + "Era": "Igihe", + "Hour": "Isaha", + "Minute": "Umunota", + "Month": "Ukwezi", + "Second": "Isegonda", + "Time Zone": "Isaha yo mukarere", + "Week": "Indwi, Iyinga", + "Year": "Umwaka", + "D": "U", + "DD": "UU", + "YY": "UU", + "YYYY": "UUUU", + "M": "U", + "MM": "UU", + "H": "I", + "HH": "II", + "mm": "uu", + "ss": "ii" +} \ No newline at end of file diff --git a/js/data/locale/ro/dateres.json b/js/data/locale/ro/dateres.json new file mode 100644 index 0000000000..c91816f3a2 --- /dev/null +++ b/js/data/locale/ro/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "a.m/p.m.", + "Day": "zi", + "Day of Year": "ziua din an", + "Era": "eră", + "Hour": "oră", + "Minute": "minut", + "Month": "lună", + "Second": "secundă", + "Time Zone": "fus orar", + "Week": "săptămână", + "Week of Month": "săptămâna din lună", + "Year": "an", + "D": "ZI", + "DD": "ZI", + "YY": "AN", + "YYYY": "AN", + "M": "L", + "MM": "LL", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/rof/dateres.json b/js/data/locale/rof/dateres.json new file mode 100644 index 0000000000..4d5c0d7951 --- /dev/null +++ b/js/data/locale/rof/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Nkwaya", + "Day": "Mfiri", + "Era": "Kacha", + "Hour": "Isaa", + "Minute": "Dakika", + "Month": "Mweri", + "Second": "Sekunde", + "Time Zone": "Mfiri o saa", + "Week": "Iwiki", + "Year": "Muaka", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "H": "I", + "HH": "II", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/ru/dateres.json b/js/data/locale/ru/dateres.json new file mode 100644 index 0000000000..2488086882 --- /dev/null +++ b/js/data/locale/ru/dateres.json @@ -0,0 +1,23 @@ +{ + "Day": "день", + "Day of Year": "день года", + "Era": "эра", + "Hour": "час", + "Minute": "минута", + "Month": "месяц", + "Second": "секунда", + "Time Zone": "часовой пояс", + "Week": "неделя", + "Week of Month": "неделя месяца", + "Year": "год", + "D": "Д", + "DD": "ДД", + "YY": "ГГ", + "YYYY": "ГОД", + "M": "М", + "MM": "ММ", + "H": "Ч", + "HH": "ЧЧ", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/rw/dateres.json b/js/data/locale/rw/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/rw/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/rwk/dateres.json b/js/data/locale/rwk/dateres.json new file mode 100644 index 0000000000..1afbc89c0f --- /dev/null +++ b/js/data/locale/rwk/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Mfiri o siku", + "Day": "Mfiri", + "Era": "Kacha", + "Hour": "Saa", + "Minute": "Dakyika", + "Month": "Mori", + "Second": "Sekunde", + "Time Zone": "Mfiri o saa", + "Week": "Wiikyi", + "Year": "Maka", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/sah/dateres.json b/js/data/locale/sah/dateres.json new file mode 100644 index 0000000000..30872c4ba0 --- /dev/null +++ b/js/data/locale/sah/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "ЭИ/ЭК", + "Day": "Күн", + "Era": "Ээрэ", + "Hour": "Чаас", + "Minute": "Мүнүүтэ", + "Month": "Ый", + "Second": "Сөкүүндэ", + "Time Zone": "Кэм балаһата", + "Week": "Нэдиэлэ", + "Year": "Сыл", + "D": "К", + "DD": "КК", + "YY": "СС", + "YYYY": "СЫЛ", + "M": "ЫЙ", + "MM": "ЫЙ", + "H": "Ч", + "HH": "ЧЧ", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/saq/dateres.json b/js/data/locale/saq/dateres.json new file mode 100644 index 0000000000..29e96c9270 --- /dev/null +++ b/js/data/locale/saq/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "TS/TP", + "Day": "Mpari", + "Era": "Nyamata", + "Hour": "Saai", + "Minute": "Idakika", + "Month": "Lapa", + "Second": "Isekondi", + "Time Zone": "Majira ya saa", + "Week": "Saipa napo", + "Year": "Lari", + "D": "M", + "DD": "MM", + "YY": "LL", + "YYYY": "LLLL", + "M": "L", + "MM": "LL", + "H": "S", + "HH": "SS", + "mm": "ii", + "ss": "ii" +} \ No newline at end of file diff --git a/js/data/locale/sbp/dateres.json b/js/data/locale/sbp/dateres.json new file mode 100644 index 0000000000..3e00253481 --- /dev/null +++ b/js/data/locale/sbp/dateres.json @@ -0,0 +1,20 @@ +{ + "AM/PM": "Uluhaavi lwa lusiku", + "Day": "Lusiku", + "Era": "Uluhaavi lwa", + "Hour": "Ilisala", + "Minute": "Idakika", + "Month": "Mwesi", + "Second": "Isekunde", + "Time Zone": "Uluhaavi lwa lisaa", + "Week": "Ilijuma", + "Year": "Mwakha", + "D": "L", + "DD": "LL", + "YY": "MM", + "YYYY": "MMMM", + "H": "I", + "HH": "II", + "mm": "ii", + "ss": "ii" +} \ No newline at end of file diff --git a/js/data/locale/sd/dateres.json b/js/data/locale/sd/dateres.json new file mode 100644 index 0000000000..b1c9dbe5d8 --- /dev/null +++ b/js/data/locale/sd/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "صبح/شام", + "Day": "ڏينهن", + "Day of Year": "سال جو ڏينهن", + "Era": "دور", + "Hour": "ڪلاڪ", + "Minute": "منٽ", + "Month": "مهينو", + "Second": "سيڪنڊ", + "Time Zone": "ٽائيم زون", + "Week": "هفتو", + "Week of Month": "مهيني جي هفتي", + "Year": "سال", + "D": "ڏينهن", + "DD": "ڏينهن", + "YY": "سال", + "YYYY": "سال", + "M": "مهينو", + "MM": "مهينو", + "H": "ڪلاڪ", + "HH": "ڪلاڪ", + "mm": "منٽ", + "ss": "سيڪنڊ" +} \ No newline at end of file diff --git a/js/data/locale/se/FI/dateres.json b/js/data/locale/se/FI/dateres.json new file mode 100644 index 0000000000..0fc067cedc --- /dev/null +++ b/js/data/locale/se/FI/dateres.json @@ -0,0 +1,8 @@ +{ + "AM/PM": "ib/eb", + "Day of Year": "jagi beaivi", + "Era": "áigodat", + "Week": "vahkku", + "Week of Month": "mánu vahkku", + "Year": "jahki" +} \ No newline at end of file diff --git a/js/data/locale/se/dateres.json b/js/data/locale/se/dateres.json new file mode 100644 index 0000000000..e55fd9c218 --- /dev/null +++ b/js/data/locale/se/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "beaivi ráidodássi", + "Day": "beaivi", + "Era": "éra", + "Hour": "diibmu", + "Minute": "minuhtta", + "Month": "mánnu", + "Second": "sekunda", + "Time Zone": "áigeavádat", + "Week": "váhkku", + "Year": "jáhki", + "D": "B", + "DD": "BB", + "YY": "JJ", + "YYYY": "JJJJ", + "H": "D", + "HH": "DD" +} \ No newline at end of file diff --git a/js/data/locale/seh/dateres.json b/js/data/locale/seh/dateres.json new file mode 100644 index 0000000000..6bd3aa101d --- /dev/null +++ b/js/data/locale/seh/dateres.json @@ -0,0 +1,14 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Ntsiku", + "Hour": "Hora", + "Minute": "Minuto", + "Month": "Mwezi", + "Second": "Segundo", + "Time Zone": "Zone", + "Year": "Chaka", + "D": "N", + "DD": "NN", + "YY": "CC", + "YYYY": "CCCC" +} \ No newline at end of file diff --git a/js/data/locale/ses/dateres.json b/js/data/locale/ses/dateres.json new file mode 100644 index 0000000000..e70b6a0c45 --- /dev/null +++ b/js/data/locale/ses/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Adduha wala Aluula", + "Day": "Zaari", + "Era": "Zaman", + "Hour": "Guuru", + "Minute": "Miniti", + "Month": "Handu", + "Second": "Miti", + "Time Zone": "Leerazuu", + "Week": "Hebu", + "Year": "Jiiri", + "D": "Z", + "DD": "ZZ", + "YY": "JJ", + "YYYY": "JJJJ", + "M": "H", + "MM": "HH", + "H": "G", + "HH": "GG", + "ss": "mm" +} \ No newline at end of file diff --git a/js/data/locale/sg/dateres.json b/js/data/locale/sg/dateres.json new file mode 100644 index 0000000000..470b38f074 --- /dev/null +++ b/js/data/locale/sg/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Na lâ", + "Day": "Lâ", + "Era": "Kùotângo", + "Hour": "Ngbonga", + "Minute": "Ndurü ngbonga", + "Month": "Nze", + "Second": "Nzîna ngbonga", + "Time Zone": "Zukangbonga", + "Week": "Dimâsi", + "Year": "Ngû", + "D": "LÂ", + "DD": "LÂ", + "YY": "NN", + "YYYY": "NGÛ", + "M": "N", + "MM": "NN", + "H": "N", + "HH": "NN", + "mm": "nn", + "ss": "nn" +} \ No newline at end of file diff --git a/js/data/locale/shi/Latn/dateres.json b/js/data/locale/shi/Latn/dateres.json new file mode 100644 index 0000000000..10f877a314 --- /dev/null +++ b/js/data/locale/shi/Latn/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "tizi g wass: tifawt / tadggʷat", + "Day": "ass", + "Era": "tasut", + "Hour": "tasragt", + "Minute": "tusdidt", + "Month": "ayyur", + "Second": "tasint", + "Time Zone": "akud n ugmmaḍ", + "Week": "imalass", + "Year": "asggʷas", + "D": "A", + "DD": "AA", + "YY": "AA", + "YYYY": "AAAA", + "M": "A", + "MM": "AA", + "H": "T", + "HH": "TT", + "mm": "tt", + "ss": "tt" +} \ No newline at end of file diff --git a/js/data/locale/shi/dateres.json b/js/data/locale/shi/dateres.json new file mode 100644 index 0000000000..7ebc7c8423 --- /dev/null +++ b/js/data/locale/shi/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "ⵜⵉⵣⵉ ⴳ ⵡⴰⵙⵙ: ⵜⵉⴼⴰⵡⵜ/ⵜⴰⴷⴳⴳⵯⴰⵜ", + "Day": "ⴰⵙⵙ", + "Era": "ⵜⴰⵙⵓⵜ", + "Hour": "ⵜⴰⵙⵔⴰⴳⵜ", + "Minute": "ⵜⵓⵙⴷⵉⴷⵜ", + "Month": "ⴰⵢⵢⵓⵔ", + "Second": "ⵜⴰⵙⵉⵏⵜ", + "Time Zone": "ⴰⴽⵓⴷ ⵏ ⵓⴳⵎⵎⴰⴹ", + "Week": "ⵉⵎⴰⵍⴰⵙⵙ", + "Year": "ⴰⵙⴳⴳⵯⴰⵙ", + "D": "ⴰ", + "DD": "ⴰⴰ", + "YY": "ⴰⴰ", + "YYYY": "ⴰⴰⴰⴰ", + "M": "ⴰ", + "MM": "ⴰⴰ", + "H": "ⵜ", + "HH": "ⵜⵜ", + "mm": "ⵜⵜ", + "ss": "ⵜⵜ" +} \ No newline at end of file diff --git a/js/data/locale/si/dateres.json b/js/data/locale/si/dateres.json new file mode 100644 index 0000000000..8235da4a82 --- /dev/null +++ b/js/data/locale/si/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "පෙ.ව/ප.ව", + "Day": "දිනය", + "Day of Year": "වසරේ දිනය", + "Era": "යුගය", + "Hour": "පැය", + "Minute": "මිනිත්තුව", + "Month": "මාසය", + "Second": "තත්පරය", + "Time Zone": "වේලා කලාපය", + "Week": "සතිය", + "Week of Month": "මාසයේ සතිය", + "Year": "වර්ෂය", + "D": "ද", + "DD": "දද", + "YY": "වව", + "YYYY": "වවවව", + "M": "ම", + "MM": "මම", + "H": "ප", + "HH": "පප", + "mm": "මම", + "ss": "තත" +} \ No newline at end of file diff --git a/js/data/locale/sk/dateres.json b/js/data/locale/sk/dateres.json new file mode 100644 index 0000000000..a24ae0a50e --- /dev/null +++ b/js/data/locale/sk/dateres.json @@ -0,0 +1,15 @@ +{ + "Day": "deň", + "Day of Year": "deň roka", + "Era": "letopočet", + "Hour": "hodina", + "Minute": "minúta", + "Month": "mesiac", + "Second": "sekunda", + "Time Zone": "časové pásmo", + "Week": "týždeň", + "Week of Month": "týždeň mesiaca", + "Year": "rok", + "YY": "RR", + "YYYY": "ROK" +} \ No newline at end of file diff --git a/js/data/locale/sl/dateres.json b/js/data/locale/sl/dateres.json new file mode 100644 index 0000000000..e489018b09 --- /dev/null +++ b/js/data/locale/sl/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "dop/pop", + "Day": "dan", + "Day of Year": "dan leta", + "Era": "doba", + "Hour": "ura", + "Minute": "minuta", + "Month": "mesec", + "Second": "sekunda", + "Time Zone": "časovni pas", + "Week": "teden", + "Week of Month": "teden meseca", + "Year": "leto", + "YY": "LL", + "YYYY": "LLLL", + "H": "U", + "HH": "UU" +} \ No newline at end of file diff --git a/js/data/locale/smn/dateres.json b/js/data/locale/smn/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/smn/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/sn/dateres.json b/js/data/locale/sn/dateres.json new file mode 100644 index 0000000000..3e826f024e --- /dev/null +++ b/js/data/locale/sn/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "Dayperiod", + "Day": "Zuva", + "Era": "Mukore", + "Hour": "Awa", + "Minute": "Mineti", + "Month": "Mwedzi", + "Second": "Sekondi", + "Time Zone": "Nguva", + "Week": "Vhiki", + "Year": "Gore", + "D": "Z", + "DD": "ZZ", + "YY": "GG", + "YYYY": "GGGG", + "H": "A", + "HH": "AA" +} \ No newline at end of file diff --git a/js/data/locale/so/dateres.json b/js/data/locale/so/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/so/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/sq/dateres.json b/js/data/locale/sq/dateres.json new file mode 100644 index 0000000000..8bd5dbcbf0 --- /dev/null +++ b/js/data/locale/sq/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "paradite/pasdite", + "Day": "ditë", + "Day of Year": "ditë e vitit", + "Era": "erë", + "Hour": "orë", + "Minute": "minutë", + "Month": "muaj", + "Second": "sekondë", + "Time Zone": "brezi orar", + "Week": "javë", + "Week of Month": "javë e muajit", + "Year": "vit", + "YY": "VV", + "YYYY": "VIT", + "H": "O", + "HH": "OO" +} \ No newline at end of file diff --git a/js/data/locale/sr/Latn/dateres.json b/js/data/locale/sr/Latn/dateres.json new file mode 100644 index 0000000000..a6b4413df8 --- /dev/null +++ b/js/data/locale/sr/Latn/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "pre podne/po podne", + "Day": "dan", + "Day of Year": "dan u godini", + "Era": "era", + "Hour": "sat", + "Minute": "minut", + "Month": "mesec", + "Second": "sekund", + "Time Zone": "vremenska zona", + "Week": "nedelja", + "Week of Month": "nedelja u mesecu", + "Year": "godina", + "D": "D", + "DD": "DD", + "YY": "GG", + "YYYY": "GGGG", + "M": "M", + "MM": "MM", + "H": "S", + "HH": "SS", + "mm": "mm", + "ss": "ss" +} \ No newline at end of file diff --git a/js/data/locale/sr/dateres.json b/js/data/locale/sr/dateres.json new file mode 100644 index 0000000000..144a34100e --- /dev/null +++ b/js/data/locale/sr/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "пре подне/по подне", + "Day": "дан", + "Day of Year": "дан у години", + "Era": "ера", + "Hour": "сат", + "Minute": "минут", + "Month": "месец", + "Second": "секунд", + "Time Zone": "временска зона", + "Week": "недеља", + "Week of Month": "недеља у месецу", + "Year": "година", + "D": "Д", + "DD": "ДД", + "YY": "ГГ", + "YYYY": "ГГГГ", + "M": "М", + "MM": "ММ", + "H": "С", + "HH": "СС", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/sv/dateres.json b/js/data/locale/sv/dateres.json new file mode 100644 index 0000000000..06754522a7 --- /dev/null +++ b/js/data/locale/sv/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "fm/em", + "Day": "dag", + "Day of Year": "dag under året", + "Era": "era", + "Hour": "timme", + "Minute": "minut", + "Month": "månad", + "Second": "sekund", + "Time Zone": "tidszon", + "Week": "vecka", + "Week of Month": "vecka i månaden", + "Year": "år", + "YY": "ÅR", + "YYYY": "ÅR", + "H": "T", + "HH": "TT" +} \ No newline at end of file diff --git a/js/data/locale/sw/CD/dateres.json b/js/data/locale/sw/CD/dateres.json new file mode 100644 index 0000000000..becc00185f --- /dev/null +++ b/js/data/locale/sw/CD/dateres.json @@ -0,0 +1,6 @@ +{ + "AM/PM": "Muda wa siku", + "Era": "Wakati", + "Time Zone": "Majira ya saa", + "Week": "Juma" +} \ No newline at end of file diff --git a/js/data/locale/sw/dateres.json b/js/data/locale/sw/dateres.json new file mode 100644 index 0000000000..4ba4bf998b --- /dev/null +++ b/js/data/locale/sw/dateres.json @@ -0,0 +1,20 @@ +{ + "Day": "siku", + "Day of Year": "siku ya mwaka", + "Era": "enzi", + "Hour": "saa", + "Minute": "dakika", + "Month": "mwezi", + "Second": "sekunde", + "Time Zone": "saa za eneo", + "Week": "wiki", + "Week of Month": "wiki ya mwezi", + "Year": "mwaka", + "D": "S", + "DD": "SS", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/sysres.json b/js/data/locale/sysres.json index 1bf7b7f186..5eafe2f7a2 100644 --- a/js/data/locale/sysres.json +++ b/js/data/locale/sysres.json @@ -641,4 +641,4 @@ "separatorLong": ", ", "separatorMedium": " ", "separatorShort": " " -} \ No newline at end of file +} diff --git a/js/data/locale/ta/dateres.json b/js/data/locale/ta/dateres.json new file mode 100644 index 0000000000..7f60d8dca5 --- /dev/null +++ b/js/data/locale/ta/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "முற்பகல்/பிற்பகல்", + "Day": "நாள்", + "Day of Year": "வருடத்தின் நாள்", + "Era": "காலம்", + "Hour": "மணி", + "Minute": "நிமிடம்", + "Month": "மாதம்", + "Second": "விநாடி", + "Time Zone": "நேர மண்டலம்", + "Week": "வாரம்", + "Week of Month": "மாதத்தின் வாரம்", + "Year": "ஆண்டு", + "D": "ந", + "DD": "நந", + "YY": "ஆஆ", + "YYYY": "ஆஆஆஆ", + "M": "ம", + "MM": "மம", + "H": "ம", + "HH": "மம", + "mm": "நந", + "ss": "வவ" +} \ No newline at end of file diff --git a/js/data/locale/te/dateres.json b/js/data/locale/te/dateres.json new file mode 100644 index 0000000000..767bcef36e --- /dev/null +++ b/js/data/locale/te/dateres.json @@ -0,0 +1,23 @@ +{ + "Day": "దినం", + "Day of Year": "సంవత్సరంలో దినం", + "Era": "యుగం", + "Hour": "గంట", + "Minute": "నిమిషము", + "Month": "నెల", + "Second": "సెకను", + "Time Zone": "సమయ మండలి", + "Week": "వారము", + "Week of Month": "నెలలో వారం", + "Year": "సంవత్సరం", + "D": "ద", + "DD": "దద", + "YY": "సస", + "YYYY": "సససస", + "M": "న", + "MM": "నన", + "H": "గ", + "HH": "గగ", + "mm": "నన", + "ss": "సస" +} \ No newline at end of file diff --git a/js/data/locale/teo/dateres.json b/js/data/locale/teo/dateres.json new file mode 100644 index 0000000000..329499f2dc --- /dev/null +++ b/js/data/locale/teo/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "TA/EB", + "Day": "Aparan", + "Era": "Enzi", + "Hour": "Esaa", + "Minute": "Idakika", + "Month": "Elap", + "Second": "Isekonde", + "Time Zone": "Majira ya saa", + "Week": "Ewiki", + "Year": "Ekan", + "D": "A", + "DD": "AA", + "YY": "EE", + "YYYY": "EEEE", + "M": "E", + "MM": "EE", + "H": "E", + "HH": "EE", + "mm": "ii", + "ss": "ii" +} \ No newline at end of file diff --git a/js/data/locale/tg/dateres.json b/js/data/locale/tg/dateres.json new file mode 100644 index 0000000000..02544d9851 --- /dev/null +++ b/js/data/locale/tg/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "пе. чо./па. чо.", + "Day": "рӯз", + "Era": "мабдаи таърих", + "Hour": "соат", + "Minute": "дақиқа", + "Month": "моҳ", + "Second": "сония", + "Time Zone": "минтақаи вақт", + "Week": "ҳафта", + "Year": "сол", + "D": "РӮЗ", + "DD": "РӮЗ", + "YY": "СОЛ", + "YYYY": "СОЛ", + "M": "МОҲ", + "MM": "МОҲ", + "H": "СОАТ", + "HH": "СОАТ", + "mm": "дақиқа", + "ss": "сония" +} \ No newline at end of file diff --git a/js/data/locale/th/dateres.json b/js/data/locale/th/dateres.json new file mode 100644 index 0000000000..c27a7918f2 --- /dev/null +++ b/js/data/locale/th/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ช่วงวัน", + "Day": "วัน", + "Day of Year": "วันของปี", + "Era": "สมัย", + "Hour": "ชั่วโมง", + "Minute": "นาที", + "Month": "เดือน", + "Second": "วินาที", + "Time Zone": "เขตเวลา", + "Week": "สัปดาห์", + "Week of Month": "สัปดาห์ของเดือน", + "Year": "ปี", + "D": "ว", + "DD": "วว", + "YY": "ปี", + "YYYY": "ปี", + "M": "เ", + "MM": "เเ", + "H": "ช", + "HH": "ชช", + "mm": "นน", + "ss": "วว" +} \ No newline at end of file diff --git a/js/data/locale/ti/dateres.json b/js/data/locale/ti/dateres.json new file mode 100644 index 0000000000..88f784663d --- /dev/null +++ b/js/data/locale/ti/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "ክፍለ መዓልቲ", + "Day": "መዓልቲ", + "Day of Year": "መዓልቲ ናይ ዓመት", + "Era": "ዘመን", + "Hour": "ሰዓት", + "Minute": "ደቒቕ", + "Month": "ወርሒ", + "Second": "ካልኢት", + "Time Zone": "ክልል", + "Week": "ሰሙን", + "Week of Month": "ሰን ናይ ወርሒ", + "Year": "ዓመት", + "D": "መ", + "DD": "መመ", + "YY": "ዓዓ", + "YYYY": "ዓመት", + "M": "ወ", + "MM": "ወወ", + "H": "ሰ", + "HH": "ሰሰ", + "mm": "ደደ", + "ss": "ካካ" +} \ No newline at end of file diff --git a/js/data/locale/tk/dateres.json b/js/data/locale/tk/dateres.json new file mode 100644 index 0000000000..e7bfe6f991 --- /dev/null +++ b/js/data/locale/tk/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "günortadan öň/günortadan soň", + "Day": "gün", + "Day of Year": "ýylyň güni", + "Era": "era", + "Hour": "sagat", + "Minute": "minut", + "Month": "aý", + "Second": "sekunt", + "Time Zone": "sagat guşaklygy", + "Week": "hepde", + "Week of Month": "aýyň hepdesi", + "Year": "ýyl", + "D": "GÜN", + "DD": "GÜN", + "YY": "ÝYL", + "YYYY": "ÝYL", + "M": "AÝ", + "MM": "AÝ", + "H": "SAGAT", + "HH": "SAGAT", + "mm": "minut", + "ss": "sekunt" +} \ No newline at end of file diff --git a/js/data/locale/to/dateres.json b/js/data/locale/to/dateres.json new file mode 100644 index 0000000000..d1293f182b --- /dev/null +++ b/js/data/locale/to/dateres.json @@ -0,0 +1,17 @@ +{ + "Day": "ʻaho", + "Day of Year": "ʻaho ʻo e taʻu", + "Era": "kuonga", + "Hour": "houa", + "Minute": "miniti", + "Month": "māhina", + "Second": "sekoni", + "Time Zone": "taimi fakavahe", + "Week": "uike", + "Week of Month": "uike ʻo e māhina", + "Year": "taʻu", + "D": "ʻ", + "DD": "ʻʻ", + "YY": "TT", + "YYYY": "TTTT" +} \ No newline at end of file diff --git a/js/data/locale/tr/dateres.json b/js/data/locale/tr/dateres.json new file mode 100644 index 0000000000..358b1ab25a --- /dev/null +++ b/js/data/locale/tr/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "ÖÖ/ÖS", + "Day": "gün", + "Day of Year": "yılın günü", + "Era": "çağ", + "Hour": "saat", + "Minute": "dakika", + "Month": "ay", + "Second": "saniye", + "Time Zone": "saat dilimi", + "Week": "hafta", + "Week of Month": "ayın haftası", + "Year": "yıl", + "D": "G", + "DD": "GG", + "YYYY": "YIL", + "M": "AY", + "MM": "AY", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/tt/dateres.json b/js/data/locale/tt/dateres.json new file mode 100644 index 0000000000..1811ea73a0 --- /dev/null +++ b/js/data/locale/tt/dateres.json @@ -0,0 +1,21 @@ +{ + "Day": "көн", + "Era": "эра", + "Hour": "сәгать", + "Minute": "минут", + "Month": "ай", + "Second": "секунд", + "Time Zone": "вакыт өлкәсе", + "Week": "атна", + "Year": "ел", + "D": "К", + "DD": "КК", + "YY": "ЕЛ", + "YYYY": "ЕЛ", + "M": "АЙ", + "MM": "АЙ", + "H": "С", + "HH": "СС", + "mm": "мм", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/twq/dateres.json b/js/data/locale/twq/dateres.json new file mode 100644 index 0000000000..2601bf41d6 --- /dev/null +++ b/js/data/locale/twq/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Subbaahi/Zaarikay banda", + "Day": "Zaari", + "Era": "Zaman", + "Hour": "Guuru", + "Minute": "Miniti", + "Month": "Handu", + "Second": "Miti", + "Time Zone": "Leerazuu", + "Week": "Hebu", + "Year": "Jiiri", + "D": "Z", + "DD": "ZZ", + "YY": "JJ", + "YYYY": "JJJJ", + "M": "H", + "MM": "HH", + "H": "G", + "HH": "GG", + "ss": "mm" +} \ No newline at end of file diff --git a/js/data/locale/tzm/dateres.json b/js/data/locale/tzm/dateres.json new file mode 100644 index 0000000000..28aecd5350 --- /dev/null +++ b/js/data/locale/tzm/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Zdat azal/Deffir azal", + "Day": "Ass", + "Era": "Tallit", + "Hour": "Tasragt", + "Minute": "Tusdat", + "Month": "Ayur", + "Second": "Tusnat", + "Time Zone": "Aseglem asergan", + "Week": "Imalass", + "Year": "Asseggas", + "D": "A", + "DD": "AA", + "YY": "AA", + "YYYY": "AAAA", + "M": "A", + "MM": "AA", + "H": "T", + "HH": "TT", + "mm": "tt", + "ss": "tt" +} \ No newline at end of file diff --git a/js/data/locale/ug/dateres.json b/js/data/locale/ug/dateres.json new file mode 100644 index 0000000000..df892b8582 --- /dev/null +++ b/js/data/locale/ug/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "چۈشتىن بۇرۇن/چۈشتىن كېيىن", + "Day": "كۈن", + "Era": "مىلادىيە", + "Hour": "سائەت", + "Minute": "مىنۇت", + "Month": "ئاي", + "Second": "سېكۇنت", + "Time Zone": "ۋاقىت رايونى", + "Week": "ھەپتە", + "Year": "يىل", + "D": "كۈن", + "DD": "كۈن", + "YY": "يىل", + "YYYY": "يىل", + "M": "ئاي", + "MM": "ئاي", + "H": "سائەت", + "HH": "سائەت", + "mm": "مىنۇت", + "ss": "سېكۇنت" +} \ No newline at end of file diff --git a/js/data/locale/uk/dateres.json b/js/data/locale/uk/dateres.json new file mode 100644 index 0000000000..d26a5a7abc --- /dev/null +++ b/js/data/locale/uk/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "дп/пп", + "Day": "день", + "Day of Year": "день року", + "Era": "ера", + "Hour": "година", + "Minute": "хвилина", + "Month": "місяць", + "Second": "секунда", + "Time Zone": "часовий пояс", + "Week": "тиждень", + "Week of Month": "тиждень місяця", + "Year": "рік", + "D": "Д", + "DD": "ДД", + "YY": "РР", + "YYYY": "РІК", + "M": "М", + "MM": "ММ", + "H": "Г", + "HH": "ГГ", + "mm": "хх", + "ss": "сс" +} \ No newline at end of file diff --git a/js/data/locale/ur/dateres.json b/js/data/locale/ur/dateres.json new file mode 100644 index 0000000000..1ee103abaf --- /dev/null +++ b/js/data/locale/ur/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "قبل دوپہر/بعد دوپہر", + "Day": "دن", + "Day of Year": "یوم سال", + "Era": "عہد", + "Hour": "گھنٹہ", + "Minute": "منٹ", + "Month": "مہینہ", + "Second": "سیکنڈ", + "Time Zone": "منطقۂ وقت", + "Week": "ہفتہ", + "Week of Month": "مہینے کا ہفتہ", + "Year": "سال", + "D": "دن", + "DD": "دن", + "YY": "سال", + "YYYY": "سال", + "M": "مہینہ", + "MM": "مہینہ", + "H": "گھنٹہ", + "HH": "گھنٹہ", + "mm": "منٹ", + "ss": "سیکنڈ" +} \ No newline at end of file diff --git a/js/data/locale/uz/Arab/dateres.json b/js/data/locale/uz/Arab/dateres.json new file mode 100644 index 0000000000..ec809a68ae --- /dev/null +++ b/js/data/locale/uz/Arab/dateres.json @@ -0,0 +1,6 @@ +{ + "AM/PM": "Dayperiod", + "Day of Year": "Day Of Year", + "Time Zone": "Zone", + "Week of Month": "Week Of Month" +} \ No newline at end of file diff --git a/js/data/locale/uz/Cyrl/dateres.json b/js/data/locale/uz/Cyrl/dateres.json new file mode 100644 index 0000000000..4bbbbba2cd --- /dev/null +++ b/js/data/locale/uz/Cyrl/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "Кун вақти", + "Day": "Кун", + "Day of Year": "Day Of Year", + "Era": "Эра", + "Hour": "Соат", + "Minute": "Дақиқа", + "Month": "Ой", + "Second": "Сония", + "Time Zone": "Минтақа", + "Week": "Ҳафта", + "Week of Month": "Week Of Month", + "Year": "Йил", + "D": "КУН", + "DD": "КУН", + "YY": "ЙИЛ", + "YYYY": "ЙИЛ", + "M": "ОЙ", + "MM": "ОЙ", + "H": "СОАТ", + "HH": "СОАТ", + "mm": "Дақиқа", + "ss": "Сония" +} \ No newline at end of file diff --git a/js/data/locale/uz/dateres.json b/js/data/locale/uz/dateres.json new file mode 100644 index 0000000000..95ea25eefa --- /dev/null +++ b/js/data/locale/uz/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "TO/TK", + "Day": "kun", + "Day of Year": "yilning kuni", + "Era": "era", + "Hour": "soat", + "Minute": "daqiqa", + "Month": "oy", + "Second": "soniya", + "Time Zone": "vaqt mintaqasi", + "Week": "hafta", + "Week of Month": "oyning haftasi", + "Year": "yil", + "D": "KUN", + "DD": "KUN", + "YY": "YIL", + "YYYY": "YIL", + "M": "OY", + "MM": "OY", + "H": "SOAT", + "HH": "SOAT", + "mm": "daqiqa", + "ss": "soniya" +} \ No newline at end of file diff --git a/js/data/locale/vai/Latn/dateres.json b/js/data/locale/vai/Latn/dateres.json new file mode 100644 index 0000000000..34c0488e69 --- /dev/null +++ b/js/data/locale/vai/Latn/dateres.json @@ -0,0 +1,19 @@ +{ + "Day": "tele", + "Hour": "hawa", + "Minute": "mini", + "Month": "kalo", + "Second": "jaki-jaka", + "Week": "wiki", + "Year": "saŋ", + "D": "T", + "DD": "TT", + "YY": "SS", + "YYYY": "SAŊ", + "M": "K", + "MM": "KK", + "H": "H", + "HH": "HH", + "mm": "mm", + "ss": "jj" +} \ No newline at end of file diff --git a/js/data/locale/vai/dateres.json b/js/data/locale/vai/dateres.json new file mode 100644 index 0000000000..c741c4123a --- /dev/null +++ b/js/data/locale/vai/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Dayperiod", + "Day": "ꔎꔒ", + "Hour": "ꕌꕎ", + "Minute": "ꕆꕇ", + "Month": "ꕪꖃ", + "Second": "ꕧꕃꕧꕪ", + "Time Zone": "Zone", + "Week": "ꔨꔤꕃ", + "Year": "ꕢꘋ", + "D": "ꔎꔒ", + "DD": "ꔎꔒ", + "YY": "ꕢꘋ", + "YYYY": "ꕢꘋ", + "M": "ꕪꖃ", + "MM": "ꕪꖃ", + "H": "ꕌꕎ", + "HH": "ꕌꕎ", + "mm": "ꕆꕇ", + "ss": "ꕧꕧ" +} \ No newline at end of file diff --git a/js/data/locale/vi/dateres.json b/js/data/locale/vi/dateres.json new file mode 100644 index 0000000000..b51505798e --- /dev/null +++ b/js/data/locale/vi/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "SA/CH", + "Day": "Ngày", + "Day of Year": "ngày trong năm", + "Era": "thời đại", + "Hour": "Giờ", + "Minute": "Phút", + "Month": "Tháng", + "Second": "Giây", + "Time Zone": "Múi giờ", + "Week": "Tuần", + "Week of Month": "tuần trong tháng", + "Year": "Năm", + "D": "N", + "DD": "NN", + "YY": "NN", + "YYYY": "NĂM", + "M": "T", + "MM": "TT", + "H": "G", + "HH": "GG", + "mm": "pp", + "ss": "gg" +} \ No newline at end of file diff --git a/js/data/locale/vo/dateres.json b/js/data/locale/vo/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/vo/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/vun/dateres.json b/js/data/locale/vun/dateres.json new file mode 100644 index 0000000000..1afbc89c0f --- /dev/null +++ b/js/data/locale/vun/dateres.json @@ -0,0 +1,19 @@ +{ + "AM/PM": "Mfiri o siku", + "Day": "Mfiri", + "Era": "Kacha", + "Hour": "Saa", + "Minute": "Dakyika", + "Month": "Mori", + "Second": "Sekunde", + "Time Zone": "Mfiri o saa", + "Week": "Wiikyi", + "Year": "Maka", + "D": "M", + "DD": "MM", + "YY": "MM", + "YYYY": "MMMM", + "H": "S", + "HH": "SS", + "mm": "dd" +} \ No newline at end of file diff --git a/js/data/locale/wae/dateres.json b/js/data/locale/wae/dateres.json new file mode 100644 index 0000000000..2b152ee115 --- /dev/null +++ b/js/data/locale/wae/dateres.json @@ -0,0 +1,17 @@ +{ + "Day": "Tag", + "Era": "Epoča", + "Hour": "Schtund", + "Minute": "Mínütta", + "Month": "Mánet", + "Second": "Sekunda", + "Time Zone": "Zitzóna", + "Week": "Wuča", + "Year": "Jár", + "D": "T", + "DD": "TT", + "YY": "JJ", + "YYYY": "JÁR", + "H": "S", + "HH": "SS" +} \ No newline at end of file diff --git a/js/data/locale/wo/dateres.json b/js/data/locale/wo/dateres.json new file mode 100644 index 0000000000..3b1e257531 --- /dev/null +++ b/js/data/locale/wo/dateres.json @@ -0,0 +1,21 @@ +{ + "AM/PM": "Sub/Ngo", + "Day": "fan", + "Era": "jamono", + "Hour": "waxtu", + "Minute": "simili", + "Month": "weer", + "Second": "saa", + "Time Zone": "goxu waxtu", + "Week": "ayu-bis", + "Year": "at", + "D": "F", + "DD": "FF", + "YY": "AT", + "YYYY": "AT", + "M": "W", + "MM": "WW", + "H": "W", + "HH": "WW", + "mm": "ss" +} \ No newline at end of file diff --git a/js/data/locale/xh/dateres.json b/js/data/locale/xh/dateres.json new file mode 100644 index 0000000000..e491f37a8e --- /dev/null +++ b/js/data/locale/xh/dateres.json @@ -0,0 +1,4 @@ +{ + "AM/PM": "Dayperiod", + "Time Zone": "Zone" +} \ No newline at end of file diff --git a/js/data/locale/xog/dateres.json b/js/data/locale/xog/dateres.json new file mode 100644 index 0000000000..3f73264c18 --- /dev/null +++ b/js/data/locale/xog/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "munkyo/Eigulo", + "Day": "Olunaku", + "Era": "Emulembe", + "Hour": "Essawa", + "Minute": "Edakiika", + "Month": "Omwezi", + "Second": "Obutikitiki", + "Time Zone": "Essawa edha", + "Week": "Esabiiti", + "Year": "Omwaka", + "D": "O", + "DD": "OO", + "YY": "OO", + "YYYY": "OOOO", + "M": "O", + "MM": "OO", + "H": "E", + "HH": "EE", + "mm": "ee", + "ss": "oo" +} \ No newline at end of file diff --git a/js/data/locale/yav/dateres.json b/js/data/locale/yav/dateres.json new file mode 100644 index 0000000000..e746e3db5e --- /dev/null +++ b/js/data/locale/yav/dateres.json @@ -0,0 +1,18 @@ +{ + "AM/PM": "kiɛmɛ́ɛm,kisɛ́ndɛ", + "Day": "puɔ́sɛ́", + "Era": "kipéŋén", + "Hour": "kisikɛl,", + "Minute": "minít", + "Month": "oóli", + "Second": "síkɛn", + "Time Zone": "kinúki kisikɛl ɔ́ pitɔŋ", + "Week": "sɔ́ndiɛ", + "Year": "yɔɔŋ", + "D": "P", + "DD": "PP", + "M": "O", + "MM": "OO", + "H": "K", + "HH": "KK" +} \ No newline at end of file diff --git a/js/data/locale/yi/dateres.json b/js/data/locale/yi/dateres.json new file mode 100644 index 0000000000..599a641662 --- /dev/null +++ b/js/data/locale/yi/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Dayperiod", + "Day": "טאָג", + "Era": "תקופֿה", + "Hour": "שעה", + "Minute": "מינוט", + "Month": "מאנאַט", + "Second": "סעקונדע", + "Time Zone": "צײַטזאנע", + "Week": "וואך", + "Year": "יאָר", + "D": "טאָג", + "DD": "טאָג", + "YY": "יאָר", + "YYYY": "יאָר", + "M": "מאנאַט", + "MM": "מאנאַט", + "H": "שעה", + "HH": "שעה", + "mm": "מינוט", + "ss": "סעקונדע" +} \ No newline at end of file diff --git a/js/data/locale/yo/BJ/dateres.json b/js/data/locale/yo/BJ/dateres.json new file mode 100644 index 0000000000..3954da7432 --- /dev/null +++ b/js/data/locale/yo/BJ/dateres.json @@ -0,0 +1,12 @@ +{ + "AM/PM": "Àárɔ̀/ɔ̀sán", + "Day": "Ɔjɔ́", + "Minute": "Ìsɛ́jú", + "Second": "Ìsɛ́jú Ààyá", + "Week": "Ɔ̀sè", + "Year": "Ɔdún", + "D": "Ɔ", + "DD": "ƆƆ", + "YY": "ƆƆ", + "YYYY": "ƆƆƆƆ" +} \ No newline at end of file diff --git a/js/data/locale/yo/dateres.json b/js/data/locale/yo/dateres.json new file mode 100644 index 0000000000..9a74e15fbb --- /dev/null +++ b/js/data/locale/yo/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "Àárọ̀/ọ̀sán", + "Day": "Ọjọ́", + "Era": "Ìgbà", + "Hour": "wákàtí", + "Minute": "Ìsẹ́jú", + "Month": "Osù", + "Second": "Ìsẹ́jú Ààyá", + "Time Zone": "Ibi Àkókò Àgbáyé", + "Week": "Ọ̀sè", + "Year": "Ọdún", + "D": "Ọ", + "DD": "ỌỌ", + "YY": "ỌỌ", + "YYYY": "ỌỌỌỌ", + "M": "O", + "MM": "OO", + "H": "W", + "HH": "WW", + "mm": "ìì", + "ss": "ìì" +} \ No newline at end of file diff --git a/js/data/locale/yue/Hans/dateres.json b/js/data/locale/yue/Hans/dateres.json new file mode 100644 index 0000000000..99bb247da1 --- /dev/null +++ b/js/data/locale/yue/Hans/dateres.json @@ -0,0 +1,10 @@ +{ + "Hour": "小时", + "Minute": "分钟", + "Time Zone": "时区", + "Week": "周", + "Week of Month": "月周", + "H": "小时", + "HH": "小时", + "mm": "分钟" +} \ No newline at end of file diff --git a/js/data/locale/yue/dateres.json b/js/data/locale/yue/dateres.json new file mode 100644 index 0000000000..74874c8f06 --- /dev/null +++ b/js/data/locale/yue/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "上午/下午", + "Day": "日", + "Day of Year": "年日", + "Era": "年代", + "Hour": "小時", + "Minute": "分鐘", + "Month": "月", + "Second": "秒", + "Time Zone": "時區", + "Week": "週", + "Week of Month": "月週", + "Year": "年", + "D": "日", + "DD": "日", + "YY": "年", + "YYYY": "年", + "M": "月", + "MM": "月", + "H": "小時", + "HH": "小時", + "mm": "分鐘", + "ss": "秒" +} \ No newline at end of file diff --git a/js/data/locale/zgh/dateres.json b/js/data/locale/zgh/dateres.json new file mode 100644 index 0000000000..7ebc7c8423 --- /dev/null +++ b/js/data/locale/zgh/dateres.json @@ -0,0 +1,22 @@ +{ + "AM/PM": "ⵜⵉⵣⵉ ⴳ ⵡⴰⵙⵙ: ⵜⵉⴼⴰⵡⵜ/ⵜⴰⴷⴳⴳⵯⴰⵜ", + "Day": "ⴰⵙⵙ", + "Era": "ⵜⴰⵙⵓⵜ", + "Hour": "ⵜⴰⵙⵔⴰⴳⵜ", + "Minute": "ⵜⵓⵙⴷⵉⴷⵜ", + "Month": "ⴰⵢⵢⵓⵔ", + "Second": "ⵜⴰⵙⵉⵏⵜ", + "Time Zone": "ⴰⴽⵓⴷ ⵏ ⵓⴳⵎⵎⴰⴹ", + "Week": "ⵉⵎⴰⵍⴰⵙⵙ", + "Year": "ⴰⵙⴳⴳⵯⴰⵙ", + "D": "ⴰ", + "DD": "ⴰⴰ", + "YY": "ⴰⴰ", + "YYYY": "ⴰⴰⴰⴰ", + "M": "ⴰ", + "MM": "ⴰⴰ", + "H": "ⵜ", + "HH": "ⵜⵜ", + "mm": "ⵜⵜ", + "ss": "ⵜⵜ" +} \ No newline at end of file diff --git a/js/data/locale/zh/Hant/dateres.json b/js/data/locale/zh/Hant/dateres.json new file mode 100644 index 0000000000..fdc1cad4e7 --- /dev/null +++ b/js/data/locale/zh/Hant/dateres.json @@ -0,0 +1,12 @@ +{ + "Day of Year": "年天", + "Era": "年代", + "Hour": "小時", + "Minute": "分鐘", + "Time Zone": "時區", + "Week": "週", + "Week of Month": "週", + "H": "小時", + "HH": "小時", + "mm": "分鐘" +} \ No newline at end of file diff --git a/js/data/locale/zh/dateres.json b/js/data/locale/zh/dateres.json new file mode 100644 index 0000000000..af0957841c --- /dev/null +++ b/js/data/locale/zh/dateres.json @@ -0,0 +1,24 @@ +{ + "AM/PM": "上午/下午", + "Day": "日", + "Day of Year": "年中日", + "Era": "纪元", + "Hour": "小时", + "Minute": "分钟", + "Month": "月", + "Second": "秒", + "Time Zone": "时区", + "Week": "周", + "Week of Month": "月中周", + "Year": "年", + "D": "日", + "DD": "日", + "YY": "年", + "YYYY": "年", + "M": "月", + "MM": "月", + "H": "小时", + "HH": "小时", + "mm": "分钟", + "ss": "秒" +} \ No newline at end of file diff --git a/js/data/locale/zu/dateres.json b/js/data/locale/zu/dateres.json new file mode 100644 index 0000000000..cf8419fa74 --- /dev/null +++ b/js/data/locale/zu/dateres.json @@ -0,0 +1,22 @@ +{ + "Day": "Usuku", + "Era": "Isikhathi", + "Hour": "Ihora", + "Minute": "Iminithi", + "Month": "Inyanga", + "Second": "Isekhondi", + "Time Zone": "Isikhathi sendawo", + "Week": "Iviki", + "Week of Month": "Iviki leNyanga", + "Year": "Unyaka", + "D": "U", + "DD": "UU", + "YY": "UU", + "YYYY": "UUUU", + "M": "I", + "MM": "II", + "H": "I", + "HH": "II", + "mm": "ii", + "ss": "ii" +} \ No newline at end of file diff --git a/js/lib/AddressFmt.js b/js/lib/AddressFmt.js index 5df9d2bf64..896099b084 100644 --- a/js/lib/AddressFmt.js +++ b/js/lib/AddressFmt.js @@ -370,7 +370,7 @@ function invertAndFilter(object) { * // like "City" and "Postal Code" translated to. In this example, we * // are showing an input form for Dutch addresses, but the labels are * // written in US English. - * fmt.getAddressFormatInfo("en-US", true, ilib.bind(this, function(rows) { + * fmt.getFormatInfo("en-US", true, ilib.bind(this, function(rows) { * // iterate through the rows array and dynamically create the input * // elements with the given labels * })); diff --git a/js/lib/DateFmt.js b/js/lib/DateFmt.js index e445260905..b7c43ba734 100644 --- a/js/lib/DateFmt.js +++ b/js/lib/DateFmt.js @@ -1,7 +1,7 @@ /* * DateFmt.js - Date formatter definition * - * Copyright © 2012-2015, 2018, 2020, 2023 JEDLSoft + * Copyright © 2012-2015, 2018-2020, 2023 JEDLSoft * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -630,6 +630,7 @@ DateFmt.weekDayLenMap = { * * @static * @public + * @deprecated Use DateFmtInfo.getMeridiemsRange() non-static method instead * @param {Object} options options governing the way this date formatter instance works for getting meridiems range * @return {Array.<{name:string,start:string,end:string}>} */ @@ -867,17 +868,7 @@ DateFmt.prototype = { while (i < template.length) { ch = template.charAt(i); start = i; - if (ch === "'") { - // console.log("found quoted string"); - i++; - // escaped string - push as-is, then dequote later - while (i < template.length && template.charAt(i) !== "'") { - i++; - } - if (i < template.length) { - i++; // grab the other quote too - } - } else if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) { + if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) { letter = template.charAt(i); // console.log("found letters " + letter); while (i < template.length && ch === letter) { @@ -885,7 +876,15 @@ DateFmt.prototype = { } } else { // console.log("found other"); - while (i < template.length && ch !== "'" && (ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')) { + while (i < template.length && (ch < 'a' || ch > 'z') && (ch < 'A' || ch > 'Z')) { + if (ch === "'") { + // console.log("found quoted string"); + i++; + // escaped string - push as-is, then dequote later + while (i < template.length && template.charAt(i) !== "'") { + i++; + } + } ch = template.charAt(++i); } } @@ -997,6 +996,7 @@ DateFmt.prototype = { * CLDR frequently, and possible orderings cannot be predicted. Your code should * support all 6 possibilities, just in case. * + * @deprecated Use DateFmtInfo.getDateComponentOrder() instead * @return {string} a string giving the date component order */ getDateComponentOrder: function() { @@ -1080,12 +1080,13 @@ DateFmt.prototype = { /** * Return the meridiems range in current locale. + * @deprecated Use DateFmtInfo.getMeridiemsRange() instead * @return {Array.<{name:string,start:string,end:string}>} the range of available meridiems */ getMeridiemsRange: function () { var result; var _getSysString = function (key) { - return (this.sysres.getString(undefined, key + "-" + this.calName) || this.sysres.getString(undefined, key)).toString(); + return (this.sysres.getStringJS(undefined, key + "-" + this.calName) || this.sysres.getStringJS(undefined, key)).toString(); }; switch (this.meridiems) { @@ -1230,6 +1231,7 @@ DateFmt.prototype = { * the months have different names depending if that year is a leap year or not. * * + * @deprecated Use DateFmtInfo.getMonthsOfYear() instead * @param {Object=} options an object-literal that contains any of the above properties * @return {Array} an array of the names of all of the months of the year in the current calendar */ @@ -1258,7 +1260,7 @@ DateFmt.prototype = { monthCount = this.cal.getNumMonths(date.getYears()); for (var i = 1; i <= monthCount; i++) { - months[i] = this.sysres.getString(this._getTemplate(template + i, this.cal.getType())).toString(); + months[i] = this.sysres.getStringJS(this._getTemplate(template + i, this.cal.getType())).toString(); } return months; }, @@ -1273,6 +1275,8 @@ DateFmt.prototype = { *
  • length - length of the names of the months being sought. This may be one of * "short", "medium", "long", or "full" * + * + * @deprecated Use DateFmtInfo.getDaysOfWeek() instead * @param {Object=} options an object-literal that contains one key * "length" with the standard length strings * @return {Array} an array of all of the names of the days of the week @@ -1282,7 +1286,7 @@ DateFmt.prototype = { template = DateFmt.weekDayLenMap[length], days = []; for (var i = 0; i < 7; i++) { - days[i] = this.sysres.getString(this._getTemplate(template + i, this.cal.getType())).toString(); + days[i] = this.sysres.getStringJS(this._getTemplate(template + i, this.cal.getType())).toString(); } return days; }, @@ -1403,8 +1407,10 @@ DateFmt.prototype = { case 'LLL': case 'LLLL': key = templateArr[i] + (date.month || 1); - str += (this.sysres.getString(undefined, key + "-" + this.calName) || this.sysres.getString(undefined, key) || - this.sysres.getString(undefined, key.replace(/L/g,"M") + "-" + this.calName) || this.sysres.getString(undefined, key.replace(/L/g,"M"))); + isLeap = date.cal.isLeapYear(date.year); + str += (isLeap ? this.sysres.getStringJS(undefined, key + "-leap" + "-" + this.calName) : false) || + this.sysres.getStringJS(undefined, key + "-" + this.calName) || + this.sysres.getStringJS(undefined, key); break; case 'E': @@ -1416,8 +1422,11 @@ DateFmt.prototype = { case 'ccc': case 'cccc': key = templateArr[i] + date.getDayOfWeek(); + isLeap = date.cal.isLeapYear(date.year); //console.log("finding " + key + " in the resources"); - str += (this.sysres.getString(undefined, key + "-" + this.calName) || this.sysres.getString(undefined, key)); + str += (isLeap ? this.sysres.getStringJS(undefined, key + "-leap" + "-" + this.calName) : false) || + this.sysres.getStringJS(undefined, key + "-" + this.calName) || + this.sysres.getStringJS(undefined, key); break; case 'a': @@ -1457,7 +1466,7 @@ DateFmt.prototype = { break; } //console.log("finding " + key + " in the resources"); - str += (this.sysres.getString(undefined, key + "-" + this.calName) || this.sysres.getString(undefined, key)); + str += (this.sysres.getStringJS(undefined, key + "-" + this.calName) || this.sysres.getStringJS(undefined, key)); break; case 'B': @@ -1486,7 +1495,7 @@ DateFmt.prototype = { case 'G': key = "G" + date.getEra(); - str += (this.sysres.getString(undefined, key + "-" + this.calName) || this.sysres.getString(undefined, key)); + str += (this.sysres.getStringJS(undefined, key + "-" + this.calName) || this.sysres.getStringJS(undefined, key)); break; case 'O': diff --git a/js/lib/DateFmtInfo.js b/js/lib/DateFmtInfo.js new file mode 100644 index 0000000000..63e1f2e5d0 --- /dev/null +++ b/js/lib/DateFmtInfo.js @@ -0,0 +1,1034 @@ +/* + * DateFmtInfo.js - Information about a date formatter + * + * Copyright © 2019, JEDLSoft + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +// !data dateres + +var DateFmt = require("./DateFmt.js"); + +var ilib = require("../index.js"); +var JSUtils = require("./JSUtils.js"); +var Locale = require("./Locale.js"); +var DateFactory = require("./DateFactory.js"); +var ResBundle = require("./ResBundle.js"); +var TimeZone = require("./TimeZone.js"); +var ISet = require("./ISet.js"); + +/** + * @class + * Create a new date formatter info instance. This instance gives information about + * a particular date formatter that can be used by UI builders to construct + * input form elements based on the formatter.

    + * + * The options may contain any of the properties that are valid to create a date + * formatter (q.v.), plus the following: + * + *

    + * + * @constructor + * @param {Object} options options governing the way this date formatter info + * instance works + */ +var DateFmtInfo = function(options) { + var sync = options && typeof(options.sync) === "boolean" ? options.sync : true; + if (sync) { + this.fmt = new DateFmt(options); + this._init(options); + } else { + var newOptions = {}; + var callback = options.onLoad; + JSUtils.shallowCopy(options, newOptions); + newOptions.onLoad = ilib.bind(this, function(fmt) { + this.fmt = fmt; + this._init(options); + }); + new DateFmt(newOptions); + } +}; + +DateFmtInfo.prototype = { + /** + * @private + */ + _init: function(options) { + var locale, sync = true, callback, loadParams; + + if (options) { + locale = options.uiLocale || options.locale; + sync = typeof(options.sync) === "boolean" ? options.sync : true; + callback = options.onLoad; + loadParams = options.loadParams; + } + var loc = this.fmt.locale; + if (locale) { + if (typeof(locale) === "string") { + locale = new Locale(locale); + } + locale = new Locale(locale.getLanguage(), loc.getRegion(), loc.getVariant(), loc.getScript()); + } + new ResBundle({ + locale: locale, + name: "dateres", + sync: sync, + loadParams: loadParams, + onLoad: ilib.bind(this, function (rb) { + this.rb = rb; + if (locale && locale.getLanguage() !== this.fmt.locale.getLanguage()) { + new ResBundle({ + locale: locale, + name: "sysres", + sync: sync, + loadParams: loadParams, + onLoad: ilib.bind(this, function (rb) { + this.sysres = rb; + if (callback && typeof(callback) === "function") { + callback(this); + } + }) + }); + } else { + this.sysres = this.fmt.sysres; + if (callback && typeof(callback) === "function") { + callback(this); + } + } + }) + }); + }, + + /** + * Return the order of the year, month, and date components for the current locale.

    + * + * When implementing a date input widget in a UI, it would be useful to know what + * order to put the year, month, and date input fields so that it conforms to the + * user expectations for the locale. This method gives that order by returning a + * string that has a single "y", "m", and "d" character in it in the correct + * order.

    + * + * For example, the return value "ymd" means that this locale formats the year first, + * the month second, and the date third, and "mdy" means that the month is first, + * the date is second, and the year is third. Four of the 6 possible permutations + * of the three letters have at least one locale that uses that ordering, though some + * combinations are far more likely than others. The ones that are not used by any + * locales are "dym" and "myd", though new locales are still being added to + * CLDR frequently, and possible orderings cannot be predicted. Your code should + * support all 6 possibilities, just in case. + * + * @return {string} a string giving the date component order + */ + getDateComponentOrder: function() { + return this.fmt.componentOrder; + }, + + /** + * @private + */ + _getSysString: function (key) { + return (this.sysres.getStringJS(undefined, key + "-" + this.fmt.calName) || this.sysres.getStringJS(undefined, key)).toString(); + }, + + /** + * Return the meridiems range in current locale. + * @return {Array.<{name:string,start:string,end:string}>} the range of available meridiems + */ + getMeridiemsRange: function () { + var result; + + switch (this.fmt.meridiems) { + case "chinese": + result = [ + { + name: this._getSysString("azh0"), + start: "00:00", + end: "05:59" + }, + { + name: this._getSysString("azh1"), + start: "06:00", + end: "08:59" + }, + { + name: this._getSysString("azh2"), + start: "09:00", + end: "11:59" + }, + { + name: this._getSysString("azh3"), + start: "12:00", + end: "12:59" + }, + { + name: this._getSysString("azh4"), + start: "13:00", + end: "17:59" + }, + { + name: this._getSysString("azh5"), + start: "18:00", + end: "20:59" + }, + { + name: this._getSysString("azh6"), + start: "21:00", + end: "23:59" + } + ]; + break; + case "ethiopic": + result = [ + { + name: this._getSysString("a0-ethiopic"), + start: "00:00", + end: "05:59" + }, + { + name: this._getSysString("a1-ethiopic"), + start: "06:00", + end: "06:00" + }, + { + name: this._getSysString("a2-ethiopic"), + start: "06:01", + end: "11:59" + }, + { + name: this._getSysString("a3-ethiopic"), + start: "12:00", + end: "17:59" + }, + { + name: this._getSysString("a4-ethiopic"), + start: "18:00", + end: "23:59" + } + ]; + break; + default: + result = [ + { + name: this._getSysString("a0"), + start: "00:00", + end: "11:59" + }, + { + name: this._getSysString("a1"), + start: "12:00", + end: "23:59" + } + ]; + break; + } + + return result; + }, + + /** + * Returns an array of the months of the year, formatted to the optional length specified. + * i.e. ...getMonthsOfYear() OR ...getMonthsOfYear({length: "short"}) + *

    + * The options parameter may contain any of the following properties: + * + *

    + * + * @param {Object=} options an object-literal that contains any of the above properties + * @return {Array} an array of the names of all of the months of the year in the current calendar + */ + getMonthsOfYear: function(options) { + var length = (options && options.length) || this.fmt.getLength(), + template = DateFmt.monthNameLenMap[length], + months = [undefined], + date, + monthCount; + + if (options) { + if (options.date) { + date = DateFactory._dateToIlib(options.date); + } + + if (options.year) { + date = DateFactory({year: options.year, month: 1, day: 1, type: this.fmt.cal.getType()}); + } + } + + if (!date) { + date = DateFactory({ + calendar: this.fmt.cal.getType() + }); + } + + monthCount = this.fmt.cal.getNumMonths(date.getYears()); + for (var i = 1; i <= monthCount; i++) { + months[i] = this.sysres.getStringJS(this.fmt._getTemplate(template + i, this.fmt.cal.getType())).toString(); + } + return months; + }, + + /** + * Returns an array of the days of the week, formatted to the optional length specified. + * i.e. ...getDaysOfWeek() OR ...getDaysOfWeek({length: "short"}) + *

    + * The options parameter may contain any of the following properties: + * + *

    + * @param {Object=} options an object-literal that contains one key + * "length" with the standard length strings + * @return {Array} an array of all of the names of the days of the week + */ + getDaysOfWeek: function(options) { + var length = (options && options.length) || this.fmt.getLength(), + template = DateFmt.weekDayLenMap[length], + days = []; + for (var i = 0; i < 7; i++) { + days[i] = this.sysres.getStringJS(this.fmt._getTemplate(template + i, this.fmt.cal.getType())).toString(); + } + return days; + }, + + /** + * @private + */ + _mapFormatInfo: function(year, RB, tzinfo) { + function sequence(start, end, pad) { + var constraint = []; + for (var i = start; i <= end; i++) { + constraint.push(pad ? JSUtils.pad(i, 2) : String(i)); + } + return constraint; + } + + var isLeap = this.fmt.cal.isLeapYear(year); + var dateStr = RB.getStringJS("Day"); // i18n: date input form label for the day of the month field + var yearStr = RB.getStringJS("Year"); // i18n: date input form label for the year field + var monthStr = RB.getStringJS("Month"); // i18n: date input form label for the months field + var hourStr = RB.getStringJS("Hour"); // i18n: date input form label for the hours field + var minuteStr = RB.getStringJS("Minute"); // i18n: date input form label for the minutes field + var secondStr = RB.getStringJS("Second"); // i18n: date input form label for the seconds field + var milliStr = RB.getStringJS("Millisecond"); // i18n: date input form label for the milliseconds field + var woyStr = RB.getStringJS("Week of Year"); // i18n: date input form label for a week of the year field + var doyStr = RB.getStringJS("Day of Year"); // i18n: date input form label for the day of the year field + var ret, i; + + return this.fmt.templateArr.map(ilib.bind(this, function(component) { + switch (component) { + case 'd': + ret = { + component: "day", + label: dateStr, + placeholder: RB.getStringJS("D"), // i18n: date format placeholder string for 1 digit date + constraint: {}, + validation: "\\d{1,2}" + }; + var months = this.fmt.cal.getNumMonths(year); + for (i = 1; i <= months; i++) { + ret.constraint[String(i)] = [1, this.fmt.cal.getMonLength(i, year)]; + } + return ret; + + case 'dd': + ret = { + component: "day", + label: dateStr, + placeholder: RB.getStringJS("DD"), // i18n: date format placeholder string for 2 digit date + constraint: {}, + validation: "\\d{1,2}" + }; + var months = this.fmt.cal.getNumMonths(year); + for (i = 1; i <= months; i++) { + ret.constraint[String(i)] = sequence(1, this.fmt.cal.getMonLength(i, year)); + } + return ret; + + case 'yy': + return { + component: "year", + label: yearStr, + placeholder: RB.getStringJS("YY"), // i18n: date format placeholder string for 2 digit year + constraint: "\\d{2}", + validation: "\\d{2}" + }; + + case 'yyyy': + return { + component: "year", + label: yearStr, + placeholder: RB.getStringJS("YYYY"), // i18n: date format placeholder string for 4 digit year + constraint: "\\d{4}", + validation: "\\d{4}" + }; + + case 'M': + ret = { + component: "month", + label: monthStr, + placeholder: RB.getStringJS("M"), // i18n: date format placeholder string for 1 digit month + constraint: [1, this.fmt.cal.getNumMonths(year)], + validation: "\\d{1,2}" + }; + return ret; + + case 'MM': + ret = { + component: "month", + label: monthStr, + placeholder: RB.getStringJS("MM"), // i18n: date format placeholder string for 2 digit month + constraint: sequence(1, this.fmt.cal.getNumMonths(year)), + validation: "\\d{2}" + }; + return ret; + + case 'h': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("H"), // i18n: date format placeholder string for 1 digit hour + constraint: ["12"].concat(sequence(1, 11)), + validation: "\\d{1,2}" + }; + + case 'hh': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("HH"), // i18n: date format placeholder string for 2 digit hour, + constraint: ["12"].concat(sequence(1, 11, true)), + validation: "\\d{2}" + }; + + + case 'K': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("H"), // i18n: date format placeholder string for 1 digit hour + constraint: sequence(0, 11), + validation: "\\d{1,2}" + }; + + case 'KK': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("HH"), // i18n: date format placeholder string for 2 digit hour, + constraint: sequence(0, 11, true), + validation: "\\d{2}" + }; + + case 'H': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("H"), // i18n: date format placeholder string for 1 digit hour + constraint: [0, 23], + validation: "\\d{1,2}" + }; + + case 'HH': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("HH"), // i18n: date format placeholder string for 2 digit hour + constraint: sequence(0, 23, true), + validation: "\\d{2}" + }; + + case 'k': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("H"), // i18n: date format placeholder string for 1 digit hour + constraint: ["24"].concat(sequence(0, 23)), + validation: "\\d{1,2}" + }; + + case 'kk': + return { + component: "hour", + label: hourStr, + placeholder: RB.getStringJS("H"), // i18n: date format placeholder string for 1 digit hour + constraint: ["24"].concat(sequence(0, 23, true)), + validation: "\\d{2}" + }; + + case 'm': + return { + component: "minute", + label: minuteStr, + placeholder: RB.getStringJS("mm"), // i18n: date format placeholder string for 2 digit minute + constraint: [0, 59], + validation: "\\d{1,2}" + }; + + case 'mm': + return { + component: "minute", + label: minuteStr, + placeholder: RB.getStringJS("mm"), // i18n: date format placeholder string for 2 digit minute + constraint: sequence(0, 59, true), + validation: "\\d{2}" + }; + + case 's': + return { + component: "second", + label: secondStr, + placeholder: RB.getStringJS("ss"), // i18n: date format placeholder string for 2 digit second + constraint: [0, 59], + validation: "\\d{1,2}" + }; + + case 'ss': + return { + component: "second", + label: secondStr, + placeholder: RB.getStringJS("ss"), // i18n: date format placeholder string for 2 digit second + constraint: sequence(0, 59, true), + validation: "\\d{2}" + }; + + case 'S': + return { + component: "millisecond", + label: milliStr, + placeholder: RB.getStringJS("ms"), // i18n: date format placeholder string for 2 digit millisecond + constraint: [0, 999], + validation: "\\d{1,3}" + }; + + case 'SSS': + return { + component: "millisecond", + label: milliStr, + placeholder: RB.getStringJS("ms"), // i18n: date format placeholder string for 2 digit millisecond + constraint: sequence(0, 999, true), + validation: "\\d{3}" + }; + + case 'N': + case 'NN': + case 'MMM': + case 'MMMM': + case 'L': + case 'LL': + case 'LLL': + case 'LLLL': + return { + component: "month", + label: monthStr, + constraint: (ilib.bind(this, function() { + var ret = []; + var months = this.fmt.cal.getNumMonths(year); + var isLeap = this.fmt.cal.isLeapYear(year); + for (i = 1; i <= months; i++) { + var key = component + i; + ret.push({ + label: + (isLeap ? this.sysres.getStringJS(undefined, key + "-leap" + "-" + this.fmt.calName) : false) || + this.sysres.getStringJS(undefined, key + "-" + this.fmt.calName) || + this.sysres.getStringJS(undefined, key), + value: i + }); + } + return ret; + }))() + }; + + case 'E': + case 'EE': + case 'EEE': + case 'EEEE': + case 'c': + case 'cc': + case 'ccc': + case 'cccc': + return { + component: "dayofweek", + label: RB.getStringJS("Day of Week"), // i18n: date input form label for the day of the week field + value: ilib.bind(this, function(date) { + var d = DateFactory._dateToIlib(date).getJSDate(); + var key = component.replace(/c/g, 'E') + d.getDay(); + if (this.fmt.calName !== "gregorian") { + key += '-' + this.fmt.calName; + } + return this.sysres.getStringJS(undefined, key); + }) + }; + break; + + case 'a': + var ret = { + component: "meridiem", + label: RB.getStringJS("AM/PM"), // i18n: date input form label for the meridiem field + constraint: [] + }; + switch (this.fmt.meridiems) { + case "chinese": + for (var i = 0; i < 7; i++) { + var key = "azh" + i; + ret.constraint.push(this.sysres.getStringJS(undefined, key + "-" + this.fmt.calName) || this.sysres.getStringJS(undefined, key)); + } + break; + case "ethiopic": + for (var i = 0; i < 7; i++) { + var key = "a" + i + "-ethiopic"; + ret.constraint.push(this.sysres.getStringJS(undefined, key + "-" + this.fmt.calName) || this.sysres.getStringJS(undefined, key)); + } + break; + default: + ret.constraint.push(this.sysres.getStringJS(undefined, "a0-" + this.fmt.calName) || this.sysres.getStringJS(undefined, "a0")); + ret.constraint.push(this.sysres.getStringJS(undefined, "a1-" + this.fmt.calName) || this.sysres.getStringJS(undefined, "a1")); + break; + } + return ret; + + case 'w': + return { + label: woyStr, + value: function(date) { + return date.getDayOfYear(); + } + }; + + case 'ww': + return { + label: woyStr, + value: function(date) { + var temp = date.getWeekOfYear(); + return JSUtils.pad(temp, 2) + } + }; + + case 'D': + return { + label: doyStr, + value: function(date) { + return date.getDayOfYear(); + } + }; + + case 'DD': + return { + label: doyStr, + value: function(date) { + var temp = date.getDayOfYear(); + return JSUtils.pad(temp, 2) + } + }; + + case 'DDD': + return { + label: doyStr, + value: function(date) { + var temp = date.getDayOfYear(); + return JSUtils.pad(temp, 3) + } + }; + + case 'W': + return { + label: RB.getStringJS("Week of Month"), // i18n: date input form label for the week of the month field + value: function(date) { + return date.getWeekOfMonth(); + } + }; + + case 'G': + var ret = { + component: "era", + label: RB.getStringJS("Era"), // i18n: date input form label for the era field + constraint: [] + }; + ret.constraint.push(this.sysres.getStringJS(undefined, "G0-" + this.fmt.calName) || this.sysres.getStringJS(undefined, "G0")); + ret.constraint.push(this.sysres.getStringJS(undefined, "G1-" + this.fmt.calName) || this.sysres.getStringJS(undefined, "G1")); + return ret; + + case 'z': // general time zone + case 'Z': // RFC 822 time zone + return { + component: "timezone", + label: RB.getStringJS("Time Zone"), // i18n: date input form label for the time zone field + constraint: tzinfo + }; + + default: + return { + label: component.replace(/'/g, "") + }; + } + })); + }, + + /** + * Return information about the date format that can be used + * by UI frameworks to display a locale-sensitive input form.

    + * + * The options parameter is an object that can contain any of + * the following properties: + * + *

    + * + * The results object returned by this method or passed to the onLoad + * callback is an array of date + * format components. Each format component is an object + * that contains information that can be used to display + * a field in an input form. + * The list of possible properties on each component object are: + * + * + * + * Field separators such as slashes or dots, etc., are given + * as a object with no "component" property. They only contain + * a "label" property with a string value. A user interface + * may choose to use these purely formatting components or ignore + * them as needed.

    + * + * User interfaces can construct two different types of input + * forms: constrained or free-form. In a constrained form, + * components such as the month are displayed as + * as a drop-down box containing a fixed list of month names. + * The user may only choose from that list and it is therefore + * impossible to choose an invalid value. In a free-form + * form, the user is presented with text input fields where + * they can type whatever they want. The resulting value should + * be validated using the validation rules before submitting + * the form. The getFormatInfo + * method returns information that can be used to create either + * type of form. It is up to the caller to + * decide which type of form to present to the user.

    + * + * For a constrained form element, the input value + * must conform to a particular pattern, range, or a fixed + * list of possible values. The rule for this is given in + * the "constraint" property. + * The values of the constraint property can be one of the + * following types: + * + *

      + *
    + * + * For a free-form form, the user interface must validate the + * values that the user has typed into the text field. To aid + * with this, this method returns a "validation" property which + * contains either a regular expression or a function. The + * regular expression tests whether or not what the user has + * entered is valid. If the validation property is set to + * a function, this function would take a single + * parameter which is the text value of the input field, and + * it returns a boolean value: true if the input is valid, + * and false otherwise. If it does not make sense for a + * particular date format component to be free-form, such + * as the "AM/PM" choice for a meridiem, then the validation + * property will be left off. Only the given choices are + * valid. UI builders should only allow + * free-form fields for those components that have a + * "validation" property. Otherwise, use a constrained + * input form element instead.

    + * + * Some date format components do not represent values that + * a user may enter, but instead values that are calculated + * based on other date format components. For example, the + * day of the week is a property that is calculated based + * on the date the user has entered. It would not + * make sense for the user to be able to choose a day of + * the week that does not correspond to the day, month, and + * year they have already chosen. To handle calculated + * date format components, this method returns a "value" + * property which is a function which returns + * the calculated value of the field. Its parameter is a date + * object that has been created from the other date format + * components. Its single parameter is an object that contains + * the other date input components, similar to what you might + * pass to the DateFactory function.

    + * + * @example Here is what the result would look like for a US short + * date/time format for a leap year. This includes the components + * of day of the week, date, month, year, hour, minute, and meridiem: + * + *

    +     * [
    +     *   {
    +     *     "label": "Day of Week",   // optional label
    +     *     "value": function(date) { returns the calculated, localized day of week name }
    +     *   },
    +     *   {
    +     *     "label": " "              // fixed field (optionally displayed in the UI)
    +     *   },
    +     *   {
    +     *     "component": "month",     // property name to use when calling DateFactory() for this field
    +     *     "label": "Month",         // label describing this field, in this case translated to English/US
    +     *     "placeholder": "M",       // the placeholder text for this field
    +     *     "constraint": [1, 12],    // constraint rules for a drop-down box for the month
    +     *     "validation": "\\d{1,2}"  // validation rule for a free-form text input
    +     *   },
    +     *   {
    +     *     "label": "/"              // fixed field (optionally displayed in the UI)
    +     *   },
    +     *   {
    +     *     "component": "day",
    +     *     "label": "Date",
    +     *     "placeholder": "DD",
    +     *     "constraint": {
    +     *       "1": [1, 31],       // range from 1 to 31 inclusive
    +     *       "2": [1, 29],
    +     *       "3": [1, 31],
    +     *       "4": [1, 30],
    +     *       "5": [1, 31],
    +     *       "6": [1, 30],
    +     *       "7": [1, 31],
    +     *       "8": [1, 31],
    +     *       "9": [1, 30],
    +     *       "10": [1, 31],
    +     *       "11": [1, 30],
    +     *       "12": [1, 31]
    +     *     },
    +     *     "validation": "\\d{1,2}"
    +     *   },
    +     *   {
    +     *     "label": "/"
    +     *   },
    +     *   {
    +     *     "component": "year",
    +     *     "label": "Year",
    +     *     "placeholder": "YYYY",
    +     *     "validation": "\\d{4}"
    +     *   },
    +     *   {
    +     *     "label": " at "
    +     *   },
    +     *   {
    +     *     "component": "hour",
    +     *     "label": "Hour",
    +     *     "placeholder": "H",
    +     *     "constraint": [1, 12],
    +     *     "validation": "\\d{1,2}"
    +     *   },
    +     *   {
    +     *     "label": ":"
    +     *   },
    +     *   {
    +     *     "component": "minute",
    +     *     "label": "Minute",
    +     *     "constraint": [
    +     *       "00",                   // note that these are strings so that they can be zero-padded
    +     *       "01",
    +     *       "02",
    +     *       "03",
    +     *       "04",
    +     *       "05",
    +     *       "06",
    +     *       "07",
    +     *       "08",
    +     *       "09",
    +     *       "10",
    +     *       "11",
    +     *       ...
    +     *       "59"
    +     *     ],
    +     *     "placeholder": "mm",
    +     *     "validation": "\\d{2}"
    +     *   },
    +     *   {
    +     *     "label": " "
    +     *   },
    +     *   {
    +     *     "component": "meridiem",
    +     *     "label": "AM/PM",
    +     *     "placeholder": "AM/PM",
    +     *     "constraint": ["AM", "PM"]
    +     *   }
    +     * ]
    +     * 
    + *

    + * Note that the "minute" component comes with a preformatted list of values + * as strings, even though the minute is really a number. The preformatting + * ensures that the leading zero is not lost for minutes less than 10. + * + * @example Example of calling the getFormatInfo method + * + * // the DateFmt should be created with the locale of the date you + * // would like the user to enter. + * new DateFmt({ + * locale: 'nl-NL', // for dates in the Netherlands + * year: 2019, + * onLoad: ilib.bind(this, function(fmt) { + * // The following is the locale of the UI you would like to see the labels + * // like "Year" and "Minute" translated to. In this example, we + * // are showing an input form for Dutch dates, but the labels are + * // written in US English. + * fmt.getFormatInfo({ + * locale: "en-US", + * sync: true, + * callback: ilib.bind(this, function(components) { + * // here you should iterate through the component array and dynamically create the input + * // elements with the given labels and placeholders and such, and install + * // the appropriate validators + * })); + * }) + * }); + * + * @param {Object} options option to control this function. (See the description + * above.) + * @returns {Array.} An array of date components + */ + getFormatInfo: function(options) { + var locale, sync = true, callback, loadParams, year; + + if (options) { + sync = !!options.sync; + callback = options.onLoad; + loadParams = options.loadParams; + year = options.year; + } + + if (!year) { + var now = DateFactory({ + type: this.fmt.calName + }); + year = now.getYear(); + } + + var info, zone = false; + for (var i = 0; i < this.fmt.templateArr.length; i++) { + if (this.fmt.templateArr[i] === "z" || this.fmt.templateArr[i] === "Z") { + zone = true; + break; + } + } + + if (zone) { + TimeZone.getAvailableIds(undefined, sync, ilib.bind(this, function(tzinfo) { + var set = new ISet(tzinfo); + set.add("Etc/UTC"); + set.add("Etc/GMT"); + for (var j = 1; j < 13; j++) { + set.add("Etc/GMT+" + j); + set.add("Etc/GMT-" + j); + } + set.add("Etc/GMT-13"); + set.add("Etc/GMT-14"); + + info = this._mapFormatInfo(year, this.rb, set.asArray().sort()); + if (callback && typeof(callback) === "function") { + callback(info); + } + })); + } else { + info = this._mapFormatInfo(year, this.rb); + if (callback && typeof(callback) === "function") { + callback(info); + } + } + + return info; + } +}; + +module.exports = DateFmtInfo; diff --git a/js/lib/HebrewCal.js b/js/lib/HebrewCal.js index 3e6accf474..b861fda9da 100644 --- a/js/lib/HebrewCal.js +++ b/js/lib/HebrewCal.js @@ -177,9 +177,13 @@ HebrewCal.prototype.lastDayOfMonth = function(month, year) { * where 1=first month, 2=second month, etc. * * @param {number} year a year for which the number of months is sought + * @param {boolean} leap if the number of months is explicitly needed for a leap year, + * set this parameter to true. The year will be ignored in this case. + * @returns {number} the number of months in the given year or type of year */ -HebrewCal.prototype.getNumMonths = function(year) { - return this.isLeapYear(year) ? 13 : 12; +HebrewCal.prototype.getNumMonths = function(year, leap) { + var isLeap = typeof(leap) === "boolean" ? leap : this.isLeapYear(year); + return isLeap ? 13 : 12; }; /** diff --git a/js/lib/ilib-unpack.js b/js/lib/ilib-unpack.js index ddbd7af6a5..71d4333c88 100644 --- a/js/lib/ilib-unpack.js +++ b/js/lib/ilib-unpack.js @@ -120,7 +120,8 @@ var exportClassesPublic = [ "AlphabeticIndex", "TimeZone", "Currency", - "DigitalSpeedUnit" + "DigitalSpeedUnit", + "DateFmtInfo" ]; if (top) { diff --git a/js/lib/metafiles/ilib-demo-webpack.js b/js/lib/metafiles/ilib-demo-webpack.js index 160dc4f558..808a66f1c6 100644 --- a/js/lib/metafiles/ilib-demo-webpack.js +++ b/js/lib/metafiles/ilib-demo-webpack.js @@ -48,6 +48,7 @@ ilib.INumber = require("../INumber.js"); ilib.NumFmt = require("../NumFmt.js"); ilib.JulianDay = require("../JulianDay.js"); ilib.DateFmt = require("../DateFmt.js"); +ilib.DateFmtInfo = require("../DateFmtInfo.js"); ilib.Calendar = require("../Calendar.js"); ilib.CalendarFactory = require("../CalendarFactory.js"); ilib.Utils = require("../Utils.js"); diff --git a/js/lib/metafiles/ilib-full-webpack.js b/js/lib/metafiles/ilib-full-webpack.js index f58bdc1630..4d1eb2bf7c 100644 --- a/js/lib/metafiles/ilib-full-webpack.js +++ b/js/lib/metafiles/ilib-full-webpack.js @@ -47,6 +47,7 @@ ilib.INumber = require("../INumber.js"); ilib.NumFmt = require("../NumFmt.js"); ilib.JulianDay = require("../JulianDay.js"); ilib.DateFmt = require("../DateFmt.js"); +ilib.DateFmtInfo = require("../DateFmtInfo.js"); ilib.Calendar = require("../Calendar.js"); ilib.CalendarFactory = require("../CalendarFactory.js"); ilib.Utils = require("../Utils.js"); diff --git a/js/lib/metafiles/ilib-ut-webpack.js b/js/lib/metafiles/ilib-ut-webpack.js index f7645ebb6c..865985b093 100644 --- a/js/lib/metafiles/ilib-ut-webpack.js +++ b/js/lib/metafiles/ilib-ut-webpack.js @@ -48,6 +48,7 @@ ilib.INumber = require("../INumber.js"); ilib.NumFmt = require("../NumFmt.js"); ilib.JulianDay = require("../JulianDay.js"); ilib.DateFmt = require("../DateFmt.js"); +ilib.DateFmtInfo = require("../DateFmtInfo.js"); ilib.Calendar = require("../Calendar.js"); ilib.CalendarFactory = require("../CalendarFactory.js"); ilib.Utils = require("../Utils.js"); diff --git a/js/test/date/testMeridiems.js b/js/test/date/testMeridiems.js index e6c282596c..7182806327 100644 --- a/js/test/date/testMeridiems.js +++ b/js/test/date/testMeridiems.js @@ -1,5 +1,5 @@ /* - * testMeridiems.js - test the meridiems data + * testMeridiems.js * * Copyright © 2019-2023, JEDLSoft * @@ -25,2123 +25,2336 @@ if (ilib._getPlatform() === "nodejs" && ilib._dyndata && ilib._dyncode) { var path = require("path"); } -if (typeof(DateFmt) === "undefined") { - var DateFmt = require("../../lib/DateFmt.js"); +if (typeof(DateFmtInfo) === "undefined") { + var DateFmtInfo = require("../../lib/DateFmtInfo.js"); } + module.exports.testmeridiems = { testMeridiem_ar_EG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-EG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-EG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_IQ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-IQ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-IQ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_MA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-MA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-MA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_as_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"as-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "as-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "পূৰ্বাহ্ন"); - test.equal(fmt[1].name, "অপৰাহ্ন"); + test.equal(range[0].name, "পূৰ্বাহ্ন"); + test.equal(range[1].name, "অপৰাহ্ন"); test.done(); }, testMeridiem_bg_BG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"bg-BG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "bg-BG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "пр.об."); - test.equal(fmt[1].name, "сл.об."); + test.equal(range[0].name, "пр.об."); + test.equal(range[1].name, "сл.об."); test.done(); }, testMeridiem_bn_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"bn-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "bn-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_bs_Latn_BA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"bs-Latn-BA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "bs-Latn-BA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "prijepodne"); - test.equal(fmt[1].name, "popodne"); + test.equal(range[0].name, "prijepodne"); + test.equal(range[1].name, "popodne"); test.done(); }, testMeridiem_bs_Latn_ME: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"bs-Latn-ME"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "bs-Latn-ME"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "prijepodne"); - test.equal(fmt[1].name, "popodne"); + test.equal(range[0].name, "prijepodne"); + test.equal(range[1].name, "popodne"); test.done(); }, testMeridiem_cs_CZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"cs-CZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "cs-CZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "dop."); - test.equal(fmt[1].name, "odp."); + test.equal(range[0].name, "dop."); + test.equal(range[1].name, "odp."); test.done(); }, testMeridiem_da_DK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"da-DK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "da-DK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_de_AT: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"de-AT"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "de-AT"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); //// CLDR 34 change - test.equal(fmt[1].name, "PM"); //// CLDR 34 change + test.equal(range[0].name, "AM"); //// CLDR 34 change + test.equal(range[1].name, "PM"); //// CLDR 34 change test.done(); }, testMeridiem_de_CH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"de-CH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "de-CH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_de_DE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"de-DE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "de-DE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_de_LU: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"de-LU"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "de-LU"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_el_CY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"el-CY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "el-CY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "π.μ."); - test.equal(fmt[1].name, "μ.μ."); + test.equal(range[0].name, "π.μ."); + test.equal(range[1].name, "μ.μ."); test.done(); }, testMeridiem_el_GR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"el-GR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "el-GR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "π.μ."); - test.equal(fmt[1].name, "μ.μ."); + test.equal(range[0].name, "π.μ."); + test.equal(range[1].name, "μ.μ."); test.done(); }, testMeridiem_en_AM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-AM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-AM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_AU: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-AU"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-AU"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_AZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-AZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-AZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_CA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-CA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-CA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_en_GB: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-GB"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-GB"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_GH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-GH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-GH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_HK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-HK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-HK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_IE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-IE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-IE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_en_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_IS: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-IS"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-IS"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_JP: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-JP"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-JP"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_KE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-KE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-KE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_KR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-KR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-KR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_LK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-LK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-LK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_MM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-MM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-MM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_MW: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-MW"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-MW"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_MY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-MY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-MY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_NG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-NG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-NG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_NZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-NZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-NZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_PH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-PH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-PH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_PR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-PR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-PR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_SG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-SG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-SG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_US: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-US"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-US"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_UG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-UG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-UG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_ZA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-ZA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-ZA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_ZM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-ZM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-ZM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_es_AR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-AR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-AR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_BO: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-BO"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-BO"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_CL: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-CL"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-CL"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_CO: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-CO"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-CO"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_DO: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-DO"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-DO"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_EC: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-EC"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-EC"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_ES: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-ES"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-ES"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_GT: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-GT"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-GT"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_HN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-HN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-HN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_MX: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-MX"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-MX"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_NI: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-NI"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-NI"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_PA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-PA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-PA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_PE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-PE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-PE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_PR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-PR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-PR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_PY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-PY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-PY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_SV: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-SV"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-SV"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_US: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-US"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-US"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_UY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-UY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-UY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_VE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-VE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-VE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_et_EE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"et-EE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "et-EE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fa_AF: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fa-AF"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fa-AF"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "قبل‌ازظهر"); - test.equal(fmt[1].name, "بعدازظهر"); + test.equal(range[0].name, "قبل‌ازظهر"); + test.equal(range[1].name, "بعدازظهر"); test.done(); }, testMeridiem_fa_IR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fa-IR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fa-IR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "قبل‌ازظهر"); - test.equal(fmt[1].name, "بعدازظهر"); + test.equal(range[0].name, "قبل‌ازظهر"); + test.equal(range[1].name, "بعدازظهر"); test.done(); }, testMeridiem_fi_FI: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fi-FI"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fi-FI"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ap."); - test.equal(fmt[1].name, "ip."); + test.equal(range[0].name, "ap."); + test.equal(range[1].name, "ip."); test.done(); }, testMeridiem_fr_BE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-BE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-BE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_CA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-CA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-CA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_fr_CH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-CH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-CH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_FR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-FR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-FR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_LU: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-LU"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-LU"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ga_IE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ga-IE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ga-IE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "r.n."); - test.equal(fmt[1].name, "i.n."); + test.equal(range[0].name, "r.n."); + test.equal(range[1].name, "i.n."); test.done(); }, testMeridiem_gu_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"gu-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "gu-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_he_IL: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"he-IL"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "he-IL"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "לפנה״צ"); - test.equal(fmt[1].name, "אחה״צ"); + test.equal(range[0].name, "לפנה״צ"); + test.equal(range[1].name, "אחה״צ"); test.done(); }, testMeridiem_hi_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"hi-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "hi-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'am'); - test.equal(fmt[1].name, 'pm'); + test.equal(range[0].name, 'am'); + test.equal(range[1].name, 'pm'); test.done(); }, testMeridiem_hr_HR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"hr-HR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "hr-HR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_hr_ME: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"hr-ME"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "hr-ME"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_hr_HU: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"hr-HU"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "hr-HU"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_id_ID: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"id-ID"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "id-ID"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_is_IS: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"is-IS"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "is-IS"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "f.h."); - test.equal(fmt[1].name, "e.h."); + test.equal(range[0].name, "f.h."); + test.equal(range[1].name, "e.h."); test.done(); }, testMeridiem_it_CH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"it-CH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "it-CH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_it_IT: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"it-IT"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "it-IT"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ja_JP: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ja-JP"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ja-JP"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "午前"); - test.equal(fmt[1].name, "午後"); + test.equal(range[0].name, "午前"); + test.equal(range[1].name, "午後"); test.done(); }, testMeridiem_kk_KZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"kk-KZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "kk-KZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_kn_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"kn-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "kn-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ಪೂರ್ವಾಹ್ನ"); - test.equal(fmt[1].name, "ಅಪರಾಹ್ನ"); + test.equal(range[0].name, "ಪೂರ್ವಾಹ್ನ"); + test.equal(range[1].name, "ಅಪರಾಹ್ನ"); test.done(); }, testMeridiem_ko_KR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ko-KR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ko-KR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "오전"); - test.equal(fmt[1].name, "오후"); + test.equal(range[0].name, "오전"); + test.equal(range[1].name, "오후"); test.done(); }, testMeridiem_ku_IQ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ku-IQ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ku-IQ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'ب.ن'); - test.equal(fmt[1].name, 'د.ن'); + test.equal(range[0].name, "ب.ن"); + test.equal(range[1].name, "د.ن"); test.done(); }, testMeridiem_lt_LT: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"lt-LT"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "lt-LT"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "priešpiet"); - test.equal(fmt[1].name, "popiet"); + test.equal(range[0].name, "priešpiet"); + test.equal(range[1].name, "popiet"); test.done(); }, testMeridiem_lv_LV: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"lv-LV"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "lv-LV"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "priekšpusdienā"); - test.equal(fmt[1].name, "pēcpusdienā"); + test.equal(range[0].name, "priekšpusdienā"); + test.equal(range[1].name, "pēcpusdienā"); test.done(); }, testMeridiem_mk_MK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"mk-MK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "mk-MK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "претпл."); - test.equal(fmt[1].name, "попл."); + test.equal(range[0].name, "претпл."); + test.equal(range[1].name, "попл."); test.done(); }, testMeridiem_ml_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ml-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ml-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_mr_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"mr-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "mr-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ms_MY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ms-MY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ms-MY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "PG"); - test.equal(fmt[1].name, "PTG"); + test.equal(range[0].name, "PG"); + test.equal(range[1].name, "PTG"); test.done(); }, testMeridiem_nb_NO: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"nb-NO"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "nb-NO"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_nl_BE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"nl-BE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "nl-BE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_nl_NL: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"nl-NL"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "nl-NL"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_pa_Guru_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pa-Guru-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pa-Guru-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ਪੂ.ਦੁ."); - test.equal(fmt[1].name, "ਬਾ.ਦੁ."); + test.equal(range[0].name, "ਪੂ.ਦੁ."); + test.equal(range[1].name, "ਬਾ.ਦੁ."); test.done(); }, testMeridiem_pl_PL: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pl-PL"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pl-PL"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_pt_BR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pt-BR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pt-BR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_pt_PT: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pt-PT"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pt-PT"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "da manhã"); - test.equal(fmt[1].name, "da tarde"); + test.equal(range[0].name, "da manhã"); + test.equal(range[1].name, "da tarde"); test.done(); }, testMeridiem_ro_RO: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ro-RO"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ro-RO"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_sr_Cyrl_RS: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sr-Cyrl-RS"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "sr-Cyrl-RS"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_sr_Latn_RS: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sr-Latn-RS"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "sr-Latn-RS"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ru_BY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ru-BY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ru-BY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ru_KG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ru-KG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ru-KG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ru_KZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ru-KZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ru-KZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ru_GE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ru-GE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ru-GE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ru_RU: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ru-RU"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ru-RU"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ru_UA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ru-UA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ru-UA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_sk_SK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sk-SK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "sk-SK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_sl_SI: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sl-SI"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "sl-SI"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "dop."); - test.equal(fmt[1].name, "pop."); + test.equal(range[0].name, "dop."); + test.equal(range[1].name, "pop."); test.done(); }, testMeridiem_sq_AL: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sq-AL"}); - test.ok(fmt !== null); - test.equal(fmt[0].name, "e paradites"); - test.equal(fmt[1].name, "e pasdites"); + var fmtinfo = new DateFmtInfo({locale: "sq-AL"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + test.equal(range[0].name, "e paradites"); + test.equal(range[1].name, "e pasdites"); test.done(); }, testMeridiem_sq_ME: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sq-ME"}); - test.ok(fmt !== null); - test.equal(fmt[0].name, "e paradites"); - test.equal(fmt[1].name, "e pasdites"); + var fmtinfo = new DateFmtInfo({locale: "sq-ME"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + test.equal(range[0].name, "e paradites"); + test.equal(range[1].name, "e pasdites"); test.done(); }, testMeridiem_sv_FI: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sv-FI"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "sv-FI"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "fm"); - test.equal(fmt[1].name, "em"); + test.equal(range[0].name, "fm"); + test.equal(range[1].name, "em"); test.done(); }, testMeridiem_sv_SE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"sv-SE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "sv-SE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "fm"); - test.equal(fmt[1].name, "em"); + test.equal(range[0].name, "fm"); + test.equal(range[1].name, "em"); test.done(); }, testMeridiem_ta_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ta-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ta-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "முற்பகல்"); - test.equal(fmt[1].name, "பிற்பகல்"); + test.equal(range[0].name, "முற்பகல்"); + test.equal(range[1].name, "பிற்பகல்"); test.done(); }, testMeridiem_te_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"te-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "te-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_th_TH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"th-TH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "th-TH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ก่อนเที่ยง"); - test.equal(fmt[1].name, "หลังเที่ยง"); + test.equal(range[0].name, "ก่อนเที่ยง"); + test.equal(range[1].name, "หลังเที่ยง"); test.done(); }, testMeridiem_tr_AM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"tr-AM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "tr-AM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ÖÖ"); - test.equal(fmt[1].name, "ÖS"); + test.equal(range[0].name, "ÖÖ"); + test.equal(range[1].name, "ÖS"); test.done(); }, testMeridiem_tr_AZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"tr-AZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "tr-AZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ÖÖ"); - test.equal(fmt[1].name, "ÖS"); + test.equal(range[0].name, "ÖÖ"); + test.equal(range[1].name, "ÖS"); test.done(); }, testMeridiem_tr_CY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"tr-CY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "tr-CY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ÖÖ"); - test.equal(fmt[1].name, "ÖS"); + test.equal(range[0].name, "ÖÖ"); + test.equal(range[1].name, "ÖS"); test.done(); }, testMeridiem_tr_TR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"tr-TR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "tr-TR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ÖÖ"); - test.equal(fmt[1].name, "ÖS"); + test.equal(range[0].name, "ÖÖ"); + test.equal(range[1].name, "ÖS"); test.done(); }, testMeridiem_uk_UA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"uk-UA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "uk-UA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "дп"); - test.equal(fmt[1].name, "пп"); + test.equal(range[0].name, "дп"); + test.equal(range[1].name, "пп"); test.done(); }, testMeridiem_ur_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ur-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ur-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_uz_Latn_UZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"uz-Latn-UZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "uz-Latn-UZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "TO"); - test.equal(fmt[1].name, "TK"); + test.equal(range[0].name, "TO"); + test.equal(range[1].name, "TK"); test.done(); }, testMeridiem_vi_VN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"vi-VN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "vi-VN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "SA"); - test.equal(fmt[1].name, "CH"); + test.equal(range[0].name, "SA"); + test.equal(range[1].name, "CH"); test.done(); }, testMeridiem_zh_Hans_CN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"zh-Hans-CN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "zh-Hans-CN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "上午"); - test.equal(fmt[1].name, "下午"); + test.equal(range[0].name, "上午"); + test.equal(range[1].name, "下午"); test.done(); }, testMeridiem_zh_Hant_HK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"zh-Hant-HK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "zh-Hant-HK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "上午"); - test.equal(fmt[1].name, "下午"); + test.equal(range[0].name, "上午"); + test.equal(range[1].name, "下午"); test.done(); }, testMeridiem_zh_Hant_TW: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"zh-Hant-TW"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "zh-Hant-TW"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "上午"); - test.equal(fmt[1].name, "下午"); + test.equal(range[0].name, "上午"); + test.equal(range[1].name, "下午"); test.done(); }, testMeridiem_en_GE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-GE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-GE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_CN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-CN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-CN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_MX: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-MX"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-MX"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_TW: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-TW"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-TW"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_mn_MN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"mn-MN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "mn-MN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ү.ө."); - test.equal(fmt[1].name, "ү.х."); + test.equal(range[0].name, "ү.ө."); + test.equal(range[1].name, "ү.х."); test.done(); }, testMeridiem_es_CA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-CA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-CA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_af_ZA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"af-ZA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "af-ZA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "vm."); - test.equal(fmt[1].name, "nm."); + test.equal(range[0].name, "vm."); + test.equal(range[1].name, "nm."); test.done(); }, testMeridiem_am_ET: function(test) { test.expect(16); - var fmt = DateFmt.getMeridiemsRange({locale:"am-ET", meridiems: "ethiopic"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "ethiopic"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ጥዋት"); - test.equal(fmt[0].start, "00:00"); - test.equal(fmt[0].end, "05:59"); + test.equal(range[0].name, "ጥዋት"); + test.equal(range[0].start, "00:00"); + test.equal(range[0].end, "05:59"); - test.equal(fmt[1].name, "ቀትር"); - test.equal(fmt[1].start, "06:00"); - test.equal(fmt[1].end, "06:00"); + test.equal(range[1].name, "ቀትር"); + test.equal(range[1].start, "06:00"); + test.equal(range[1].end, "06:00"); - test.equal(fmt[2].name, "ከሰዓት"); - test.equal(fmt[2].start, "06:01"); - test.equal(fmt[2].end, "11:59"); + test.equal(range[2].name, "ከሰዓት"); + test.equal(range[2].start, "06:01"); + test.equal(range[2].end, "11:59"); - test.equal(fmt[3].name, "ከምሽቱ"); - test.equal(fmt[3].start, "12:00"); - test.equal(fmt[3].end, "17:59"); + test.equal(range[3].name, "ከምሽቱ"); + test.equal(range[3].start, "12:00"); + test.equal(range[3].end, "17:59"); - test.equal(fmt[4].name, "ከሌሊቱ"); - test.equal(fmt[4].start, "18:00"); - test.equal(fmt[4].end, "23:59"); + test.equal(range[4].name, "ከሌሊቱ"); + test.equal(range[4].start, "18:00"); + test.equal(range[4].end, "23:59"); test.done(); }, testMeridiem_ha_Latn_NG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ha-Latn-NG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ha-Latn-NG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'Safiya'); - test.equal(fmt[1].name, 'Yamma'); + test.equal(range[0].name, 'Safiya'); + test.equal(range[1].name, 'Yamma'); test.done(); }, testMeridiem_or_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"or-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "or-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_az_Latn_AZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"az-Latn-AZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "az-Latn-AZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_km_KH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"km-KH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "km-KH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_si_LK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"si-LK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "si-LK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "පෙ.ව."); - test.equal(fmt[1].name, "ප.ව."); + test.equal(range[0].name, "පෙ.ව."); + test.equal(range[1].name, "ප.ව."); test.done(); }, testMeridiem_ar_AE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-AE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-AE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_BH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-BH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-BH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_DJ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-DJ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-DJ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_DZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-DZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-DZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_JO: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-JO"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-JO"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_KW: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-KW"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-KW"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_LB: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-LB"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-LB"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_LY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-LY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-LY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_MR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-MR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-MR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_OM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-OM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-OM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_QA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-QA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-QA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_SA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-SA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-SA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_SD: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-SD"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-SD"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_SY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-SY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-SY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_TN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-TN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-TN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_ar_YE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ar-YE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ar-YE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "ص"); - test.equal(fmt[1].name, "م"); + test.equal(range[0].name, "ص"); + test.equal(range[1].name, "م"); test.done(); }, testMeridiem_en_ET: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-ET"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-ET"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_en_GM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-GM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-GM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_LR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-LR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-LR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_PK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-PK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-PK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_RW: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-RW"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-RW"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_SD: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-SD"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-SD"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_SL: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-SL"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-SL"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_en_TZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"en-TZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "en-TZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "am"); - test.equal(fmt[1].name, "pm"); + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); test.done(); }, testMeridiem_es_CR: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-CR"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-CR"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_GQ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-GQ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-GQ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_es_PH: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"es-PH"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "es-PH"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'a. m.'); - test.equal(fmt[1].name, 'p. m.'); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_fr_BF: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-BF"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-BF"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_BJ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-BJ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-BJ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_CD: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-CD"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-CD"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_CF: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-CF"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-CF"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_CG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-CG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-CG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_CI: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-CI"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-CI"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_CM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-CM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-CM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "matin"); - test.equal(fmt[1].name, "soir"); + test.equal(range[0].name, "matin"); + test.equal(range[1].name, "soir"); test.done(); }, testMeridiem_fr_GQ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-GQ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-GQ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_DJ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-DJ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-DJ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_DZ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-DZ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-DZ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_GA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-GA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-GA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_GN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-GN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-GN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_LB: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-LB"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-LB"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_ML: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-ML"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-ML"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_RW: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-RW"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-RW"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_SN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-SN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-SN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_fr_TG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"fr-TG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "fr-TG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ms_SG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ms-SG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ms-SG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "PG"); - test.equal(fmt[1].name, "PTG"); + test.equal(range[0].name, "PG"); + test.equal(range[1].name, "PTG"); test.done(); }, testMeridiem_pa_Arab_PK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pa-Arab-PK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pa-Arab-PK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'AM'); - test.equal(fmt[1].name, 'PM'); + test.equal(range[0].name, 'AM'); + test.equal(range[1].name, 'PM'); test.done(); }, testMeridiem_pt_AO: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pt-AO"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pt-AO"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "da manhã"); - test.equal(fmt[1].name, "da tarde"); + test.equal(range[0].name, "da manhã"); + test.equal(range[1].name, "da tarde"); test.done(); }, testMeridiem_pt_GQ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pt-GQ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pt-GQ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "da manhã"); - test.equal(fmt[1].name, "da tarde"); + test.equal(range[0].name, "da manhã"); + test.equal(range[1].name, "da tarde"); test.done(); }, testMeridiem_pt_CV: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pt-CV"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "pt-CV"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "da manhã"); - test.equal(fmt[1].name, "da tarde"); + test.equal(range[0].name, "da manhã"); + test.equal(range[1].name, "da tarde"); test.done(); }, testMeridiem_ur_PK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ur-PK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ur-PK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_zh_Hans_SG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"zh-Hans-SG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "zh-Hans-SG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "上午"); - test.equal(fmt[1].name, "下午"); + test.equal(range[0].name, "上午"); + test.equal(range[1].name, "下午"); test.done(); }, testMeridiem_zh_Hans_MY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"zh-Hans-MY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "zh-Hans-MY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, "上午"); - test.equal(fmt[1].name, "下午"); + test.equal(range[0].name, "上午"); + test.equal(range[1].name, "下午"); test.done(); }, + testMeridiem_ka_GE: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ka-GE"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ka-GE"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_be_BY: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"be-BY"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "be-BY"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_lo_LA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"lo-LA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "lo-LA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "ກ່ອນທ່ຽງ"); - test.equal(fmt[1].name, "ຫຼັງທ່ຽງ"); + test.equal(range[0].name, "ກ່ອນທ່ຽງ"); + test.equal(range[1].name, "ຫຼັງທ່ຽງ"); test.done(); }, testMeridiem_ky_KG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ky-KG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ky-KG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "таңкы"); - test.equal(fmt[1].name, "түштөн кийинки"); + test.equal(range[0].name, "таңкы"); + test.equal(range[1].name, "түштөн кийинки"); test.done(); }, testMeridiem_ca_AD: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ca-AD"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ca-AD"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "a. m."); - test.equal(fmt[1].name, "p. m."); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_ca_ES: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ca-ES"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ca-ES"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "a. m."); - test.equal(fmt[1].name, "p. m."); + test.equal(range[0].name, "a. m."); + test.equal(range[1].name, "p. m."); test.done(); }, testMeridiem_hy_AM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"hy-AM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "hy-AM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_gl_ES: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"gl-ES"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "gl-ES"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "a.m."); - test.equal(fmt[1].name, "p.m."); + test.equal(range[0].name, "a.m."); + test.equal(range[1].name, "p.m."); test.done(); }, testMeridiem_en_ES: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"eu-ES"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "eu-ES"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "AM"); - test.equal(fmt[1].name, "PM"); + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); test.done(); }, testMeridiem_ne_NP: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ne-NP"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "ne-NP"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, "पूर्वाह्न"); - test.equal(fmt[1].name, "अपराह्न"); + test.equal(range[0].name, "पूर्वाह्न"); + test.equal(range[1].name, "अपराह्न"); test.done(); }, testMeridiem_my_MM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"my-MM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "my-MM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'နံနက်'); - test.equal(fmt[1].name, 'ညနေ'); + test.equal(range[0].name, 'နံနက်'); + test.equal(range[1].name, 'ညနေ'); test.done(); }, testMeridiem_wo_SN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"wo-SN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "wo-SN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'Sub'); - test.equal(fmt[1].name, 'Ngo'); + test.equal(range[0].name, 'Sub'); + test.equal(range[1].name, 'Ngo'); test.done(); }, testMeridiem_tk_TM: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"tk-TM"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "tk-TM"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'günortadan öň'); - test.equal(fmt[1].name, 'günortadan soň'); + test.equal(range[0].name, 'günortadan öň'); + test.equal(range[1].name, 'günortadan soň'); test.done(); }, testMeridiem_tg_TJ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"tg-TJ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "tg-TJ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'AM'); - test.equal(fmt[1].name, 'PM'); + test.equal(range[0].name, 'AM'); + test.equal(range[1].name, 'PM'); test.done(); }, testMeridiem_mt_MT: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"mt-MT"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "mt-MT"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'AM'); - test.equal(fmt[1].name, 'PM'); + test.equal(range[0].name, 'AM'); + test.equal(range[1].name, 'PM'); test.done(); }, testMeridiem_zu_ZA: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"zu-ZA"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale: "zu-ZA"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'AM'); - test.equal(fmt[1].name, 'PM'); + test.equal(range[0].name, 'AM'); + test.equal(range[1].name, 'PM'); test.done(); }, testMeridiem_lb_LU: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"lb-LU"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"lb-LU"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'moies'); - test.equal(fmt[1].name, 'nomëttes'); + test.equal(range[0].name, 'moies'); + test.equal(range[1].name, 'nomëttes'); test.done(); }, testMeridiem_pa_IN: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pa-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"pa-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'ਪੂ.ਦੁ.'); - test.equal(fmt[1].name, 'ਬਾ.ਦੁ.'); + test.equal(range[0].name, 'ਪੂ.ਦੁ.'); + test.equal(range[1].name, 'ਬਾ.ਦੁ.'); test.done(); }, testMeridiem_pa_IN_Custom: function(test) { @@ -2155,58 +2368,509 @@ module.exports.testmeridiems = { ilibLoader.addPath(multiPath); test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"pa-IN"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"pa-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'AM'); - test.equal(fmt[1].name, 'PM'); + test.equal(range[0].name, 'AM'); + test.equal(range[1].name, 'PM'); ilibLoader.removePath(multiPath); test.done(); }, testMeridiem_ig_NG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ig-NG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"ig-NG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'N’ụtụtụ'); - test.equal(fmt[1].name, 'N’abali'); + test.equal(range[0].name, 'N’ụtụtụ'); + test.equal(range[1].name, 'N’abali'); test.done(); }, testMeridiem_ps_AF: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ps-AF"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"ps-AF"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'غ.م.'); - test.equal(fmt[1].name, 'غ.و.'); + test.equal(range[0].name, 'غ.م.'); + test.equal(range[1].name, 'غ.و.'); test.done(); }, testMeridiem_ps_PK: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"ps-PK"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"ps-PK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'غ.م.'); - test.equal(fmt[1].name, 'غ.و.'); + test.equal(range[0].name, 'غ.م.'); + test.equal(range[1].name, 'غ.و.'); test.done(); }, testMeridiem_yo_NG: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"yo-NG"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"yo-NG"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); - test.equal(fmt[0].name, 'Àárọ̀'); - test.equal(fmt[1].name, 'Ọ̀sán'); + test.equal(range[0].name, 'Àárọ̀'); + test.equal(range[1].name, 'Ọ̀sán'); test.done(); }, testMeridiem_yo_BJ: function(test) { test.expect(3); - var fmt = DateFmt.getMeridiemsRange({locale:"yo-BJ"}); - test.ok(fmt !== null); + var fmtinfo = new DateFmtInfo({locale:"yo-BJ"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range); + + test.equal(range[0].name, 'Àárɔ̀'); + test.equal(range[1].name, 'Ɔ̀sán'); + test.done(); + }, + + testGetMeridiemsRangeLength_with_am_ET_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range.length, 5); + test.done(); + }, + + testGetMeridiemsRangeName_with_am_ET_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "ጥዋት"); + test.done(); + }, + + testGetMeridiemsRangeStart_with_am_ET_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].start, "00:00"); + test.done(); + }, + + testGetMeridiemsRangeEnd_with_am_ET_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].end, "05:59"); + test.done(); + }, + + testGetMeridiemsRangeLength_with_am_ET_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range.length, 2); + test.done(); + }, + + testGetMeridiemsRangeName_with_am_ET_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "ጥዋት"); + test.done(); + }, + + testGetMeridiemsRangeStart_with_am_ET_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].start, "00:00"); + test.done(); + }, + + testGetMeridiemsRangeEnd_with_am_ET_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].end, "11:59"); + test.done(); + }, + + testGetMeridiemsRangeLength_with_am_ET_locale_ethiopic_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "ethiopic"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range.length, 5); + test.done(); + }, + + testGetMeridiemsRangeName_with_am_ET_locale_ethiopic_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "ethiopic"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "ጥዋት"); + test.done(); + }, + + testGetMeridiemsRangeStart_with_am_ET_locale_ethiopic_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "ethiopic"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); - test.equal(fmt[0].name, 'Àárɔ̀'); - test.equal(fmt[1].name, 'Ɔ̀sán'); + test.equal(range[0].start, "00:00"); test.done(); }, -} \ No newline at end of file + + testGetMeridiemsRangeEnd_with_am_ET_locale_ethiopic_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "am-ET", meridiems: "ethiopic"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].end, "05:59"); + test.done(); + }, + + testGetMeridiemsRangeLength_with_zh_CN_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range.length, 2); + test.done(); + }, + + testGetMeridiemsRangeName_with_zh_CN_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "上午"); + test.done(); + }, + + testGetMeridiemsRangeStart_with_zh_CN_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].start, "00:00"); + test.done(); + }, + + testGetMeridiemsRangeEnd_with_zh_CN_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].end, "11:59"); + test.done(); + }, + + testGetMeridiemsRangeLength_with_zh_CN_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range.length, 2); + test.done(); + }, + + testGetMeridiemsRangeName_with_zh_CN_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "上午"); + test.done(); + }, + + testGetMeridiemsRangeStart_with_zh_CN_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].start, "00:00"); + test.done(); + }, + + testGetMeridiemsRangeEnd_with_zh_CN_locale_gregorian_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "gregorian"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].end, "11:59"); + test.done(); + }, + + testGetMeridiemsRangeLength_with_zh_CN_locale_chinese_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "chinese"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range.length, 7); + test.done(); + }, + + testGetMeridiemsRangeName_with_zh_CN_locale_chinese_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "chinese"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "凌晨"); + test.done(); + }, + + testGetMeridiemsRangeStart_with_zh_CN_locale_chinese_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "chinese"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].start, "00:00"); + test.done(); + }, + + testGetMeridiemsRangeEnd_with_zh_CN_locale_chinese_meridiems: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "zh-CN", meridiems: "chinese"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].end, "05:59"); + test.done(); + }, + + testGetMeridiemsRangeLength_with_en_US_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "en-US"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range.length, 2); + test.done(); + }, + + testGetMeridiemsRangeName_with_en_US_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "en-US"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.done(); + }, + + testGetMeridiemsRangeStart_with_en_US_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "en-US"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].start, "00:00"); + test.done(); + }, + + testGetMeridiemsRangeEnd_with_en_US_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({locale: "en-US"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].end, "11:59"); + test.done(); + }, + + testGetMeridiemsRangeName_with_bn_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "bn-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + + testGetMeridiemsRangeName_with_gu_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "gu-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + testGetMeridiemsRangeName_with_kn_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "kn-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "ಪೂರ್ವಾಹ್ನ"); + test.equal(range[1].name, "ಅಪರಾಹ್ನ"); + test.done(); + }, + testGetMeridiemsRangeName_with_ml_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "ml-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + testGetMeridiemsRangeName_with_mr_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "mr-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + testGetMeridiemsRangeName_with_or_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "or-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + testGetMeridiemsRangeName_with_pa_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "pa-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "ਪੂ.ਦੁ."); + test.equal(range[1].name, "ਬਾ.ਦੁ."); + test.done(); + }, + testGetMeridiemsRangeName_with_ta_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "ta-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "முற்பகல்"); + test.equal(range[1].name, "பிற்பகல்"); + test.done(); + }, + testGetMeridiemsRangeName_with_te_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "te-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + testGetMeridiemsRangeName_with_ur_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "ur-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + testGetMeridiemsRangeName_with_as_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "as-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, 'পূৰ্বাহ্ন'); + test.equal(range[1].name, 'অপৰাহ্ন'); + test.done(); + }, + testGetMeridiemsRangeName_with_hi_IN_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "hi-IN"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "am"); + test.equal(range[1].name, "pm"); + test.done(); + }, + + testGetMeridiemsRangeName_with_ur_PK_locale: function(test) { + test.expect(3); + var fmtinfo = new DateFmtInfo({locale: "ur-PK"}); + var range = fmtinfo.getMeridiemsRange(); + test.ok(range !== null); + + test.equal(range[0].name, "AM"); + test.equal(range[1].name, "PM"); + test.done(); + }, + + testGetMeridiemsRange_with_noArgument: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo(); + test.ok(fmtinfo !== null); + var mdRange = fmtinfo.getMeridiemsRange(); + // if locale is not specified, DateFmt takes default locale. + test.ok("getMeridiemsRange should return length value greater than 0", mdRange.length > 0); + test.done(); + }, + + testGetMeridiemsRange_with_undefined_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({ locale: undefined }); + test.ok(fmtinfo !== null); + + var mdRange = fmtinfo.getMeridiemsRange(); + // if locale is not specified, DateFmt takes default locale. + test.ok("getMeridiemsRange should return length value greater than 0", mdRange.length > 0); + test.done(); + }, + + testGetMeridiemsRange_with_wrong_locale: function(test) { + test.expect(2); + var fmtinfo = new DateFmtInfo({ locale: "wrong" }); + test.ok(fmtinfo !== null); + + var mdRange = fmtinfo.getMeridiemsRange(); + // if locale is specified wrong value, DateFmt takes default locale. + test.ok("getMeridiemsRange should return length value greater than 0", mdRange.length > 0); + test.done(); + }, +} diff --git a/js/test/date/testSuiteFiles.js b/js/test/date/testSuiteFiles.js index 4f6e4001a9..92cf86da3e 100644 --- a/js/test/date/testSuiteFiles.js +++ b/js/test/date/testSuiteFiles.js @@ -1,7 +1,7 @@ /* * testSuiteFiles.js - list the test files in this directory * - * Copyright © 2017-2018, 2020-2022 JEDLSoft + * Copyright © 2017-2018, 2020-2023 JEDLSoft * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ */ module.exports.files = [ + "testdatefmtinfo.js", "testclock.js", "testcalendar.js", "testdate.js", @@ -125,4 +126,4 @@ module.exports.files = [ "testdatefmt_zh_Hant_HK.js", "testdatefmt_zh_Hant_TW.js", "testdatefmt_zu_ZA.js" -]; \ No newline at end of file +]; diff --git a/js/test/date/testdatefmt.js b/js/test/date/testdatefmt.js index 28ba0ed19b..48d4d17023 100644 --- a/js/test/date/testdatefmt.js +++ b/js/test/date/testdatefmt.js @@ -140,6 +140,7 @@ module.exports.testdatefmt = { test.expect(2); var fmt = new DateFmt({length: "full"}); test.ok(fmt !== null); + test.equal(fmt.getLength(), "full"); test.done(); }, @@ -689,12 +690,9 @@ module.exports.testdatefmt = { var fmt = new DateFmt(); test.ok(fmt !== null); var expected = [ - "'El'", - " ", + "'El' ", "d", - " ", - "'de'", - " ", + " 'de' ", "MMMM", ", ", "yyyy" @@ -3646,7 +3644,7 @@ module.exports.testdatefmt = { testDateFmtGetDateComponentOrderEN: function(test) { test.expect(2); - var fmt = new DateFmt({locale: "en"}) + var fmt = new DateFmt({locale: "en"}); test.ok(fmt !== null); test.equal(fmt.getDateComponentOrder(), "mdy"); @@ -3655,7 +3653,7 @@ module.exports.testdatefmt = { testDateFmtGetDateComponentOrderENGB: function(test) { test.expect(2); - var fmt = new DateFmt({locale: "en-GB"}) + var fmt = new DateFmt({locale: "en-GB"}); test.ok(fmt !== null); test.equal(fmt.getDateComponentOrder(), "dmy"); @@ -3673,7 +3671,7 @@ module.exports.testdatefmt = { testDateFmtGetDateComponentOrderDE: function(test) { test.expect(2); - var fmt = new DateFmt({locale: "de-DE"}) + var fmt = new DateFmt({locale: "de-DE"}); test.ok(fmt !== null); test.equal(fmt.getDateComponentOrder(), "dmy"); @@ -3682,7 +3680,7 @@ module.exports.testdatefmt = { testDateFmtGetDateComponentOrderAK: function(test) { test.expect(2); - var fmt = new DateFmt({locale: "ak-GH"}) + var fmt = new DateFmt({locale: "ak-GH"}); test.ok(fmt !== null); test.equal(fmt.getDateComponentOrder(), "ymd"); @@ -3691,7 +3689,7 @@ module.exports.testdatefmt = { testDateFmtGetDateComponentOrderLV: function(test) { test.expect(2); - var fmt = new DateFmt({locale: "lv-LV"}) + var fmt = new DateFmt({locale: "lv-LV"}); test.ok(fmt !== null); test.equal(fmt.getDateComponentOrder(), "ydm"); @@ -3710,7 +3708,7 @@ module.exports.testdatefmt = { test.expect(2); var fmt = new DateFmt({locale: "tk-TM"}) - test.ok(fmt !== null); + test.ok(fmt !== null); test.equal(fmt.getDateComponentOrder(), "dmy"); test.done(); @@ -3719,7 +3717,7 @@ module.exports.testdatefmt = { test.expect(2); var fmt = new DateFmt({locale: "tg-TJ"}) - test.ok(fmt !== null); + test.ok(fmt !== null); test.equal(fmt.getDateComponentOrder(), "dmy"); test.done(); @@ -3774,4 +3772,4 @@ module.exports.testdatefmt = { } test.done(); } -}; \ No newline at end of file +}; diff --git a/js/test/date/testdatefmtasync.js b/js/test/date/testdatefmtasync.js index a6e465b973..1878eb012c 100644 --- a/js/test/date/testdatefmtasync.js +++ b/js/test/date/testdatefmtasync.js @@ -1,7 +1,7 @@ /* * testdatefmtasync.js - test the date formatter object asynchronously * - * Copyright © 2018, 2022-2023 JEDLSoft + * Copyright © 2018, 2021-2023 JEDLSoft * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,6 +41,9 @@ if (typeof(JulianDate) === "undefined") { if (typeof(DateFmt) === "undefined") { var DateFmt = require("../../lib/DateFmt.js"); } +if (typeof(DateFmtInfo) === "undefined") { + var DateFmtInfo = require("../../lib/DateFmtInfo.js"); +} if (typeof(DateFactory) === "undefined") { var DateFactory = require("../../lib/DateFactory.js"); } @@ -190,7 +193,7 @@ module.exports.testdatefmtasync = { testDateFmtGetMonthsOfYearThai: function(test) { test.expect(2); // uses ThaiSolar calendar - var fmt = new DateFmt({ + var fmt = new DateFmtInfo({ locale: "th-TH", sync: false, onLoad: function(fmt) { @@ -301,7 +304,258 @@ module.exports.testdatefmtasync = { test.done(); } }); + } + }); + }, + + testDateFmtGetFormatInfoUSShortAsync: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + length: "short", + sync: false, + onLoad: function(fmt) { + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: false, + year: 2019, + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Month"); + test.deepEqual(info[0].constraint, [1, 12]); + + test.ok(!info[1].component); + test.equal(info[1].label, "/"); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Day"); + test.deepEqual(info[2].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + + test.ok(!info[3].component); + test.equal(info[3].label, "/"); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Year"); + test.equal(info[4].constraint, "\\d{2}"); + test.done(); + } + }); + } + }); + }, + + testDateFmtGetFormatInfoGregorianTranslatedAsync: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + length: "full", + uiLocale: "de-DE", + sync: false, + onLoad: function(fmt) { + test.ok(fmt !== null); + + fmt.getFormatInfo({ + year: 2019, + sync: false, + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Monat"); + test.deepEqual(info[0].constraint, [ + {label: "Januar", value: 1}, + {label: "Februar", value: 2}, + {label: "März", value: 3}, + {label: "April", value: 4}, + {label: "Mai", value: 5}, + {label: "Juni", value: 6}, + {label: "Juli", value: 7}, + {label: "August", value: 8}, + {label: "September", value: 9}, + {label: "Oktober", value: 10}, + {label: "November", value: 11}, + {label: "Dezember", value: 12}, + ]); + + test.ok(!info[1].component); + test.equal(info[1].label, " "); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Tag"); + test.deepEqual(info[2].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + test.ok(!info[3].component); + test.equal(info[3].label, ", "); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Jahr"); + test.equal(info[4].constraint, "\\d{4}"); + test.done(); + } + }); + } + }); + }, + + testDateFmtInfoGetFormatInfoUSFullAllFieldsAsync: function(test) { + test.expect(172); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "datetime", + length: "full", + date: "wmdy", + time: "ahmsz", + sync: false, + onLoad: function(fmt) { + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: false, + year: 2019, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 17); + + test.equal(info[0].label, "Day of Week"), + test.equal(typeof(info[0].value), "function"); + + test.ok(!info[1].component); + test.equal(info[1].label, ", "); + + test.equal(info[2].component, "month"); + test.equal(info[2].label, "Month"); + test.deepEqual(info[2].constraint, [ + {label: "January", value: 1}, + {label: "February", value: 2}, + {label: "March", value: 3}, + {label: "April", value: 4}, + {label: "May", value: 5}, + {label: "June", value: 6}, + {label: "July", value: 7}, + {label: "August", value: 8}, + {label: "September", value: 9}, + {label: "October", value: 10}, + {label: "November", value: 11}, + {label: "December", value: 12} + ]); + + test.ok(!info[3].component); + test.equal(info[3].label, " "); + + test.equal(info[4].component, "day"); + test.equal(info[4].label, "Day"); + test.deepEqual(info[4].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + test.equal(info[4].validation, "\\d{1,2}"); + + test.ok(!info[5].component); + test.equal(info[5].label, ", "); + + test.equal(info[6].component, "year"); + test.equal(info[6].label, "Year"); + test.equal(info[6].placeholder, "YYYY"); + test.equal(info[6].constraint, "\\d{4}"); + + test.ok(!info[7].component); + test.equal(info[7].label, " at "); + + test.equal(info[8].component, "hour"); + test.equal(info[8].label, "Hour"); + test.equal(info[8].placeholder, "H"); + test.deepEqual(info[8].constraint, ["12", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"]); + test.equal(info[8].validation, "\\d{1,2}"); + + test.ok(!info[9].component); + test.equal(info[9].label, ":"); + + test.equal(info[10].component, "minute"); + test.equal(info[10].label, "Minute"); + test.equal(info[10].placeholder, "mm"); + for (var i = 0; i < 60; i++) { + test.equal(Number(info[10].constraint[i]), i); + } + test.equal(info[10].validation, "\\d{2}"); + + test.ok(!info[11].component); + test.equal(info[11].label, ":"); + + test.equal(info[12].component, "second"); + test.equal(info[12].label, "Second"); + test.equal(info[12].placeholder, "ss"); + for (var i = 0; i < 60; i++) { + test.equal(Number(info[12].constraint[i]), i); + } + test.equal(info[12].validation, "\\d{2}"); + + test.ok(!info[13].component); + test.equal(info[13].label, " "); + + test.equal(info[14].component, "meridiem"); + test.equal(info[14].label, "AM/PM"); + test.deepEqual(info[14].constraint, ["AM", "PM"]); + + test.ok(!info[15].component); + test.equal(info[15].label, " "); + + test.equal(info[16].component, "timezone"); + test.equal(info[16].label, "Time zone"); + test.equal(typeof(info[16].constraint), "object"); + test.equal(info[16].constraint.length, 538); + } + }); + + test.done(); } }); }, @@ -494,4 +748,4 @@ module.exports.testdatefmtasync = { } }); }, -}; \ No newline at end of file +}; diff --git a/js/test/date/testdatefmtinfo.js b/js/test/date/testdatefmtinfo.js new file mode 100644 index 0000000000..aa4ba9ce9d --- /dev/null +++ b/js/test/date/testdatefmtinfo.js @@ -0,0 +1,1178 @@ +/* + * testdatefmtinfo.js - test the date formatter object's + * getFormatInfo call + * + * Copyright © 2019-2023 JEDLSoft + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +if (typeof(ilib) === "undefined") { + var ilib = require("../../lib/ilib.js"); +} +if (typeof(DateFactory) === "undefined") { + var DateFactory = require("../../lib/DateFactory.js"); +} +if (typeof(DateFmtInfo) === "undefined") { + var DateFmtInfo = require("../../lib/DateFmtInfo.js"); +} + +module.exports.testdategetformatinfo = { + setUp: function(callback) { + ilib.clearCache(); + callback(); + }, + + testDateFmtInfoGetFormatInfoUSShort: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + date: "short" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 2019, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Month"); + test.deepEqual(info[0].constraint, [1, 12]); + + test.ok(!info[1].component); + test.equal(info[1].label, "/"); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Day"); + test.deepEqual(info[2].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + + test.ok(!info[3].component); + test.equal(info[3].label, "/"); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Year"); + test.equal(info[4].constraint, "\\d{2}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoUSShortLeapYear: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + date: "short" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 2020, // leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Month"); + test.deepEqual(info[0].constraint, [1, 12]); + + test.ok(!info[1].component); + test.equal(info[1].label, "/"); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Day"); + test.deepEqual(info[2].constraint, { + "1": [1, 31], + "2": [1, 29], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + + test.ok(!info[3].component); + test.equal(info[3].label, "/"); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Year"); + test.equal(info[4].constraint, "\\d{2}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoUSFull: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + length: "full" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 2019, + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Month"); + test.deepEqual(info[0].constraint, [ + {label: "January", value: 1}, + {label: "February", value: 2}, + {label: "March", value: 3}, + {label: "April", value: 4}, + {label: "May", value: 5}, + {label: "June", value: 6}, + {label: "July", value: 7}, + {label: "August", value: 8}, + {label: "September", value: 9}, + {label: "October", value: 10}, + {label: "November", value: 11}, + {label: "December", value: 12}, + ]); + + test.ok(!info[1].component); + test.equal(info[1].label, " "); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Day"); + test.deepEqual(info[2].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + + test.ok(!info[3].component); + test.equal(info[3].label, ", "); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Year"); + test.equal(info[4].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoGregorianTranslated: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + length: "full", + uiLocale: "de-DE" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + year: 2019, + sync: true, + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Monat"); + test.deepEqual(info[0].constraint, [ + {label: "Januar", value: 1}, + {label: "Februar", value: 2}, + {label: "März", value: 3}, + {label: "April", value: 4}, + {label: "Mai", value: 5}, + {label: "Juni", value: 6}, + {label: "Juli", value: 7}, + {label: "August", value: 8}, + {label: "September", value: 9}, + {label: "Oktober", value: 10}, + {label: "November", value: 11}, + {label: "Dezember", value: 12}, + ]); + + test.ok(!info[1].component); + test.equal(info[1].label, " "); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Tag"); + test.deepEqual(info[2].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + + test.ok(!info[3].component); + test.equal(info[3].label, ", "); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Jahr"); + test.equal(info[4].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoUSShortAllFields: function(test) { + test.expect(175); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "datetime", + length: "short", + date: "wmdy", + time: "ahmsz" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 2019, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 17); + + test.equal(info[0].label, "Day of Week"), + test.equal(typeof(info[0].value), "function"); + + test.ok(!info[1].component); + test.equal(info[1].label, ", "); + + test.equal(info[2].component, "month"); + test.equal(info[2].label, "Month"); + test.equal(info[2].placeholder, "M"); + test.deepEqual(info[2].constraint, [1, 12]); + test.equal(info[2].validation, "\\d{1,2}"); + + test.ok(!info[3].component); + test.equal(info[3].label, "/"); + + test.equal(info[4].component, "day"); + test.equal(info[4].label, "Day"); + test.equal(info[4].placeholder, "D"); + test.deepEqual(info[4].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + test.equal(info[4].validation, "\\d{1,2}"); + + test.ok(!info[5].component); + test.equal(info[5].label, "/"); + + test.equal(info[6].component, "year"); + test.equal(info[6].label, "Year"); + test.equal(info[6].placeholder, "YY"); + test.equal(info[6].constraint, "\\d{2}"); + + test.ok(!info[7].component); + test.equal(info[7].label, ", "); + + test.equal(info[8].component, "hour"); + test.equal(info[8].label, "Hour"); + test.equal(info[8].placeholder, "H"); + test.deepEqual(info[8].constraint, ["12", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"]); + test.equal(info[8].validation, "\\d{1,2}"); + + test.ok(!info[9].component); + test.equal(info[9].label, ":"); + + test.equal(info[10].component, "minute"); + test.equal(info[10].label, "Minute"); + test.equal(info[10].placeholder, "mm"); + for (var i = 0; i < 60; i++) { + test.equal(Number(info[10].constraint[i]), i); + } + test.equal(info[10].validation, "\\d{2}"); + + test.ok(!info[11].component); + test.equal(info[11].label, ":"); + + test.equal(info[12].component, "second"); + test.equal(info[12].label, "Second"); + test.equal(info[12].placeholder, "ss"); + for (var i = 0; i < 60; i++) { + test.equal(Number(info[12].constraint[i]), i); + } + test.equal(info[12].validation, "\\d{2}"); + + test.ok(!info[13].component); + test.equal(info[13].label, " "); + + test.equal(info[14].component, "meridiem"); + test.equal(info[14].label, "AM/PM"); + test.deepEqual(info[14].constraint, ["AM", "PM"]); + + test.ok(!info[15].component); + test.equal(info[15].label, " "); + + test.equal(info[16].component, "timezone"); + test.equal(info[16].label, "Time zone"); + test.equal(typeof(info[16].constraint), "object"); + test.equal(info[16].constraint.length, 538); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoUSFullAllFields: function(test) { + test.expect(172); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "datetime", + length: "full", + date: "wmdy", + time: "ahmsz" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 2019, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 17); + + test.equal(info[0].label, "Day of Week"), + test.equal(typeof(info[0].value), "function"); + + test.ok(!info[1].component); + test.equal(info[1].label, ", "); + + test.equal(info[2].component, "month"); + test.equal(info[2].label, "Month"); + test.deepEqual(info[2].constraint, [ + {label: "January", value: 1}, + {label: "February", value: 2}, + {label: "March", value: 3}, + {label: "April", value: 4}, + {label: "May", value: 5}, + {label: "June", value: 6}, + {label: "July", value: 7}, + {label: "August", value: 8}, + {label: "September", value: 9}, + {label: "October", value: 10}, + {label: "November", value: 11}, + {label: "December", value: 12} + ]); + + test.ok(!info[3].component); + test.equal(info[3].label, " "); + + test.equal(info[4].component, "day"); + test.equal(info[4].label, "Day"); + test.deepEqual(info[4].constraint, { + "1": [1, 31], + "2": [1, 28], + "3": [1, 31], + "4": [1, 30], + "5": [1, 31], + "6": [1, 30], + "7": [1, 31], + "8": [1, 31], + "9": [1, 30], + "10": [1, 31], + "11": [1, 30], + "12": [1, 31] + }); + test.equal(info[4].validation, "\\d{1,2}"); + + test.ok(!info[5].component); + test.equal(info[5].label, ", "); + + test.equal(info[6].component, "year"); + test.equal(info[6].label, "Year"); + test.equal(info[6].placeholder, "YYYY"); + test.equal(info[6].constraint, "\\d{4}"); + + test.ok(!info[7].component); + test.equal(info[7].label, " at "); + + test.equal(info[8].component, "hour"); + test.equal(info[8].label, "Hour"); + test.equal(info[8].placeholder, "H"); + test.deepEqual(info[8].constraint, ["12", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11"]); + test.equal(info[8].validation, "\\d{1,2}"); + + test.ok(!info[9].component); + test.equal(info[9].label, ":"); + + test.equal(info[10].component, "minute"); + test.equal(info[10].label, "Minute"); + test.equal(info[10].placeholder, "mm"); + for (var i = 0; i < 60; i++) { + test.equal(Number(info[10].constraint[i]), i); + } + test.equal(info[10].validation, "\\d{2}"); + + test.ok(!info[11].component); + test.equal(info[11].label, ":"); + + test.equal(info[12].component, "second"); + test.equal(info[12].label, "Second"); + test.equal(info[12].placeholder, "ss"); + for (var i = 0; i < 60; i++) { + test.equal(Number(info[12].constraint[i]), i); + } + test.equal(info[12].validation, "\\d{2}"); + + test.ok(!info[13].component); + test.equal(info[13].label, " "); + + test.equal(info[14].component, "meridiem"); + test.equal(info[14].label, "AM/PM"); + test.deepEqual(info[14].constraint, ["AM", "PM"]); + + test.ok(!info[15].component); + test.equal(info[15].label, " "); + + test.equal(info[16].component, "timezone"); + test.equal(info[16].label, "Time zone"); + test.equal(typeof(info[16].constraint), "object"); + test.equal(info[16].constraint.length, 538); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoDayOfWeekCalculator: function(test) { + test.expect(6); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "datetime", + length: "full", + date: "wmdy", + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 2019, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info[0].label, "Day of Week"), + test.equal(typeof(info[0].value), "function"); + + test.equal(info[0].value(new Date(2019, 5, 3)), "Monday"); + test.equal(info[0].value(new Date(2019, 7, 23)), "Friday"); + } + }); + + test.done(); + }, + + + testDateFmtInfoGetFormatInfoHebrewCalendarNonLeap: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + length: "full", + calendar: "hebrew" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 5780, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Month"); + test.deepEqual(info[0].constraint, [ + {label: "Nisan", value: 1}, + {label: "Iyyar", value: 2}, + {label: "Sivan", value: 3}, + {label: "Tammuz", value: 4}, + {label: "Av", value: 5}, + {label: "Elul", value: 6}, + {label: "Tishri", value: 7}, + {label: "Ḥeshvan", value: 8}, + {label: "Kislev", value: 9}, + {label: "Teveth", value: 10}, + {label: "Shevat", value: 11}, + {label: "Adar", value: 12}, + ]); + + test.ok(!info[1].component); + test.equal(info[1].label, " "); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Day"); + test.deepEqual(info[2].constraint, { + "1": [1, 30], + "2": [1, 29], + "3": [1, 30], + "4": [1, 29], + "5": [1, 30], + "6": [1, 29], + "7": [1, 30], + "8": [1, 30], + "9": [1, 30], + "10": [1, 29], + "11": [1, 30], + "12": [1, 30] + }); + + test.ok(!info[3].component); + test.equal(info[3].label, ", "); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Year"); + test.equal(info[4].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoHebrewCalendarLeap: function(test) { + test.expect(16); + + var fmt = new DateFmtInfo({ + locale: "en-US", + type: "date", + length: "full", + calendar: "hebrew" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 5779, // leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 5); + + test.equal(info[0].component, "month"); + test.equal(info[0].label, "Month"); + test.deepEqual(info[0].constraint, [ + {label: "Nisan", value: 1}, + {label: "Iyyar", value: 2}, + {label: "Sivan", value: 3}, + {label: "Tammuz", value: 4}, + {label: "Av", value: 5}, + {label: "Elul", value: 6}, + {label: "Tishri", value: 7}, + {label: "Ḥeshvan", value: 8}, + {label: "Kislev", value: 9}, + {label: "Teveth", value: 10}, + {label: "Shevat", value: 11}, + {label: "Adar", value: 12}, + {label: "Adar II", value: 13}, + ]); + + test.ok(!info[1].component); + test.equal(info[1].label, " "); + + test.equal(info[2].component, "day"); + test.equal(info[2].label, "Day"); + test.deepEqual(info[2].constraint, { + "1": [1, 30], + "2": [1, 29], + "3": [1, 30], + "4": [1, 29], + "5": [1, 30], + "6": [1, 29], + "7": [1, 30], + "8": [1, 30], + "9": [1, 30], + "10": [1, 29], + "11": [1, 30], + "12": [1, 30], + "13": [1, 29] + }); + + test.ok(!info[3].component); + test.equal(info[3].label, ", "); + + test.equal(info[4].component, "year"); + test.equal(info[4].label, "Year"); + test.equal(info[4].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoHebrewCalendarInHebrew: function(test) { + test.expect(18); + + var fmt = new DateFmtInfo({ + locale: "he-IL", + type: "date", + length: "full", + calendar: "hebrew" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 5780, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 6); + + test.ok(!info[0].component); + test.equal(info[0].label, "\u200F"); // RTL mark + + test.equal(info[1].component, "day"); + test.equal(info[1].label, "יום"); + test.deepEqual(info[1].constraint, { + "1": [1, 30], + "2": [1, 29], + "3": [1, 30], + "4": [1, 29], + "5": [1, 30], + "6": [1, 29], + "7": [1, 30], + "8": [1, 30], + "9": [1, 30], + "10": [1, 29], + "11": [1, 30], + "12": [1, 30] + }); + + test.ok(!info[2].component); + test.equal(info[2].label, " ב"); + + test.equal(info[3].component, "month"); + test.equal(info[3].label, "חודש"); + test.deepEqual(info[3].constraint, [ + {label: "ניסן", value: 1}, + {label: "אייר", value: 2}, + {label: "סיוון", value: 3}, + {label: "תמוז", value: 4}, + {label: "אב", value: 5}, + {label: "אלול", value: 6}, + {label: "תשרי", value: 7}, + {label: "חשוון", value: 8}, + {label: "כסלו", value: 9}, + {label: "טבת", value: 10}, + {label: "שבט", value: 11}, + {label: "אדר", value: 12}, + ]); + + test.ok(!info[4].component); + test.equal(info[4].label, " "); + + test.equal(info[5].component, "year"); + test.equal(info[5].label, "שנה"); + test.equal(info[5].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoHebrewCalendarInHebrewLeap: function(test) { + test.expect(18); + + var fmt = new DateFmtInfo({ + locale: "he-IL", + type: "date", + length: "full", + calendar: "hebrew" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 5782, // leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 6); + + test.ok(!info[0].component); + test.equal(info[0].label, "\u200F"); // RTL mark + + test.equal(info[1].component, "day"); + test.equal(info[1].label, "יום"); + test.deepEqual(info[1].constraint, { + "1": [1, 30], + "2": [1, 29], + "3": [1, 30], + "4": [1, 29], + "5": [1, 30], + "6": [1, 29], + "7": [1, 30], + "8": [1, 29], + "9": [1, 30], + "10": [1, 29], + "11": [1, 30], + "12": [1, 30], + "13": [1, 29] + }); + + test.ok(!info[2].component); + test.equal(info[2].label, " ב"); + + test.equal(info[3].component, "month"); + test.equal(info[3].label, "חודש"); + test.deepEqual(info[3].constraint, [ + {label: "ניסן", value: 1}, + {label: "אייר", value: 2}, + {label: "סיוון", value: 3}, + {label: "תמוז", value: 4}, + {label: "אב", value: 5}, + {label: "אלול", value: 6}, + {label: "תשרי", value: 7}, + {label: "חשוון", value: 8}, + {label: "כסלו", value: 9}, + {label: "טבת", value: 10}, + {label: "שבט", value: 11}, + {label: "אדר א׳", value: 12}, + {label: "אדר ב׳", value: 13} + ]); + + test.ok(!info[4].component); + test.equal(info[4].label, " "); + + test.equal(info[5].component, "year"); + test.equal(info[5].label, "שנה"); + test.equal(info[5].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoHebrewCalendarInArabic: function(test) { + test.expect(18); + + var fmt = new DateFmtInfo({ + locale: "he-IL", + type: "date", + length: "full", + calendar: "hebrew", + uiLocale: "ar-IL" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 5780, // non leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 6); + + test.ok(!info[0].component); + test.equal(info[0].label, "\u200F"); // RTL mark + + test.equal(info[1].component, "day"); + test.equal(info[1].label, "يوم"); + test.deepEqual(info[1].constraint, { + "1": [1, 30], + "2": [1, 29], + "3": [1, 30], + "4": [1, 29], + "5": [1, 30], + "6": [1, 29], + "7": [1, 30], + "8": [1, 30], + "9": [1, 30], + "10": [1, 29], + "11": [1, 30], + "12": [1, 30] + }); + + test.ok(!info[2].component); + test.equal(info[2].label, " ב"); + + test.equal(info[3].component, "month"); + test.equal(info[3].label, "الشهر"); + test.deepEqual(info[3].constraint, [ + {label: "نيسان", value: 1}, + {label: "أيار", value: 2}, + {label: "سيفان", value: 3}, + {label: "تموز", value: 4}, + {label: "آب", value: 5}, + {label: "أيلول", value: 6}, + {label: "تشري", value: 7}, + {label: "مرحشوان", value: 8}, + {label: "كيسلو", value: 9}, + {label: "طيفت", value: 10}, + {label: "شباط", value: 11}, + {label: "آذار", value: 12} + ]); + + test.ok(!info[4].component); + test.equal(info[4].label, " "); + + test.equal(info[5].component, "year"); + test.equal(info[5].label, "السنة"); + test.equal(info[5].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetFormatInfoHebrewCalendarInArabicLeap: function(test) { + test.expect(18); + + var fmt = new DateFmtInfo({ + locale: "he-IL", + type: "date", + length: "full", + calendar: "hebrew", + uiLocale: "ar-IL" + }); + test.ok(fmt !== null); + + fmt.getFormatInfo({ + sync: true, + year: 5782, // leap year + onLoad: function(info) { + test.ok(info); + + test.equal(info.length, 6); + + test.ok(!info[0].component); + test.equal(info[0].label, "\u200F"); // RTL mark + + test.equal(info[1].component, "day"); + test.equal(info[1].label, "يوم"); + test.deepEqual(info[1].constraint, { + "1": [1, 30], + "2": [1, 29], + "3": [1, 30], + "4": [1, 29], + "5": [1, 30], + "6": [1, 29], + "7": [1, 30], + "8": [1, 29], + "9": [1, 30], + "10": [1, 29], + "11": [1, 30], + "12": [1, 30], + "13": [1, 29] + }); + + test.ok(!info[2].component); + test.equal(info[2].label, " ב"); + + test.equal(info[3].component, "month"); + test.equal(info[3].label, "الشهر"); + test.deepEqual(info[3].constraint, [ + {label: "نيسان", value: 1}, + {label: "أيار", value: 2}, + {label: "سيفان", value: 3}, + {label: "تموز", value: 4}, + {label: "آب", value: 5}, + {label: "أيلول", value: 6}, + {label: "تشري", value: 7}, + {label: "مرحشوان", value: 8}, + {label: "كيسلو", value: 9}, + {label: "طيفت", value: 10}, + {label: "شباط", value: 11}, + {label: "آذار الأول", value: 12}, + {label: "آذار الثاني", value: 13} + ]); + + test.ok(!info[4].component); + test.equal(info[4].label, " "); + + test.equal(info[5].component, "year"); + test.equal(info[5].label, "السنة"); + test.equal(info[5].constraint, "\\d{4}"); + } + }); + + test.done(); + }, + + testDateFmtInfoGetDateComponentOrderEN: function(test) { + test.expect(2); + + var fmt = new DateFmtInfo({locale: "en"}); + test.ok(fmt !== null); + + test.equal(fmt.getDateComponentOrder(), "mdy"); + test.done(); + }, + + testDateFmtInfoGetDateComponentOrderENGB: function(test) { + test.expect(2); + + var fmt = new DateFmtInfo({locale: "en-GB"}); + test.ok(fmt !== null); + + test.equal(fmt.getDateComponentOrder(), "dmy"); + test.done(); + }, + + testDateFmtInfoGetDateComponentOrderENUS: function(test) { + test.expect(2); + + var fmt = new DateFmtInfo({locale: "en-US"}) + test.ok(fmt !== null); + + test.equal(fmt.getDateComponentOrder(), "mdy"); + test.done(); + }, + + testDateFmtInfoGetDateComponentOrderDE: function(test) { + test.expect(2); + + var fmt = new DateFmtInfo({locale: "de-DE"}); + test.ok(fmt !== null); + + test.equal(fmt.getDateComponentOrder(), "dmy"); + test.done(); + }, + + testDateFmtInfoGetDateComponentOrderAK: function(test) { + test.expect(2); + + var fmt = new DateFmtInfo({locale: "ak-GH"}); + test.ok(fmt !== null); + + test.equal(fmt.getDateComponentOrder(), "ymd"); + test.done(); + }, + + testDateFmtInfoGetDateComponentOrderLV: function(test) { + test.expect(2); + + var fmt = new DateFmtInfo({locale: "lv-LV"}); + test.ok(fmt !== null); + + test.equal(fmt.getDateComponentOrder(), "ydm"); + test.done(); + }, + + testDateFmtInfoGetMonthsOfYear1: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "en-US"}); + test.ok(fmt !== null); + + var arrMonths = fmt.getMonthsOfYear(); + var expected = [undefined, "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D"]; + test.deepEqual(arrMonths, expected); + test.done(); + }, + + testDateFmtInfoGetMonthsOfYear2: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "en-US"}); + test.ok(fmt !== null); + + var arrMonths = fmt.getMonthsOfYear({length: "long"}); + var expected = [undefined, "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; + test.deepEqual(arrMonths, expected); + test.done(); + }, + + testDateFmtInfoGetMonthsOfYearThai: function(test) { + test.expect(2); + // uses ThaiSolar calendar + var fmt = new DateFmtInfo({locale: "th-TH"}); + test.ok(fmt !== null); + + var arrMonths = fmt.getMonthsOfYear({length: "long"}); + + var expected = [undefined, "ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค."]; + test.deepEqual(arrMonths, expected); + test.done(); + }, + + testDateFmtInfoGetMonthsOfYearLeapYear: function(test) { + test.expect(2); + var d = DateFactory({type: "hebrew", locale: "en-US", year: 5774, month: 1, day: 1}); + var fmt = new DateFmtInfo({date: "en-US", calendar: "hebrew"}); + test.ok(fmt !== null); + + var arrMonths = fmt.getMonthsOfYear({length: "long", date: d}); + + var expected = [undefined, "Nis", "Iyy", "Siv", "Tam", "Av", "Elu", "Tis", "Ḥes", "Kis", "Tev", "She", "Ada", "Ad2"]; + test.deepEqual(arrMonths, expected); + test.done(); + }, + + testDateFmtInfoGetMonthsOfYearNonLeapYear: function(test) { + test.expect(2); + var d = DateFactory({type: "hebrew", locale: "en-US", year: 5775, month: 1, day: 1}); + var fmt = new DateFmtInfo({date: "en-US", calendar: "hebrew"}); + test.ok(fmt !== null); + + var arrMonths = fmt.getMonthsOfYear({length: "long", date: d}); + + var expected = [undefined, "Nis", "Iyy", "Siv", "Tam", "Av", "Elu", "Tis", "Ḥes", "Kis", "Tev", "She", "Ada"]; + test.deepEqual(arrMonths, expected); + test.done(); + }, + + testDateFmtInfoGetMonthsOfYearNonLeapYearInHebrew: function(test) { + test.expect(2); + var d = DateFactory({type: "hebrew", locale: "en-US", year: 5775, month: 1, day: 1}); + var fmt = new DateFmtInfo({date: "en-US", calendar: "hebrew", uiLocale: "he-IL"}); + test.ok(fmt !== null); + + var arrMonths = fmt.getMonthsOfYear({length: "long", date: d}); + + var expected = [undefined, "ניסן", "אייר", "סיון", "תמוז", "אב", "אלול", "תשרי", "חשון", "כסלו", "טבת", "שבט", "אדר"]; + + test.deepEqual(arrMonths, expected); + test.done(); + }, + + testDateFmtInfoGetDaysOfWeek1: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "en-US"}); + test.ok(fmt !== null); + + var arrDays = fmt.getDaysOfWeek(); + + var expected = ["S", "M", "T", "W", "T", "F", "S"]; + test.deepEqual(arrDays, expected); + test.done(); + }, + + testDateFmtInfoGetDaysOfWeek1InGerman: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "en-US", uiLocale: "de-DE"}); + test.ok(fmt !== null); + + var arrDays = fmt.getDaysOfWeek(); + + var expected = ["S", "M", "D", "M", "D", "F", "S"]; + test.deepEqual(arrDays, expected); + test.done(); + }, + + testDateFmtInfoGetDaysOfWeek2: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "en-US"}); + test.ok(fmt !== null); + + var arrDays = fmt.getDaysOfWeek({length: 'long'}); + var expected = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]; + test.deepEqual(arrDays, expected); + test.done(); + }, + + testDateFmtInfoGetDaysOfWeekOtherCalendar: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "en-US", calendar: "hebrew"}); + test.ok(fmt !== null); + + var arrDays = fmt.getDaysOfWeek({length: 'long'}); + + var expected = ["ris", "she", "shl", "rvi", "ḥam", "shi", "sha"]; + test.deepEqual(arrDays, expected); + test.done(); + }, + + testDateFmtInfoGetDaysOfWeekThai: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "th-TH", calendar: "thaisolar"}); + test.ok(fmt !== null); + + var arrDays = fmt.getDaysOfWeek({length: 'long'}); + + var expected = ["อา.", "จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส."]; + test.deepEqual(arrDays, expected); + test.done(); + }, + + testDateFmtInfoGetDaysOfWeekThaiInEnglish: function(test) { + test.expect(2); + var fmt = new DateFmtInfo({locale: "en-US", calendar: "thaisolar"}); + test.ok(fmt !== null); + + var arrDays = fmt.getDaysOfWeek({length: 'long'}); + + var expected = ["ath", "cha", "ang", "phu", "phr", "suk", "sao"]; + test.deepEqual(arrDays, expected); + test.done(); + } +}; diff --git a/tools/cldr/datefmts.js b/tools/cldr/datefmts.js index 505c8889b8..92b357b803 100644 --- a/tools/cldr/datefmts.js +++ b/tools/cldr/datefmts.js @@ -20,6 +20,7 @@ * This code is intended to be run under node.js */ var fs = require('fs'); +var util = require('util'); var path = require('path'); var stringify = require('json-stable-stringify'); @@ -49,7 +50,7 @@ var rtlLanguages = [ "jpr", "jrb", "ks", - "ku", + "ky", "lad", "lah", "lki", @@ -65,6 +66,8 @@ var rtlLanguages = [ "sd", "swb", "syr", + "tg", + "tk", "ug", "ur", "uz", @@ -73,7 +76,7 @@ var rtlLanguages = [ "xsa", "yi", "zza" -]; + ]; var rtlScripts = [ "Arab", @@ -95,13 +98,13 @@ var rtlScripts = [ "Sarb", "Syrc", "Thaa", -]; + ]; var asianLangs = [ "ko", "zh", "ja" -]; + ]; function addDateFormat(formats, locale, data) { if (!locale) { @@ -177,7 +180,7 @@ function dateOrder(fmt) { } else if (stripped.match(/y.*d.*M/)) { return "ydm"; } else { - console.log("WARNING: unknown date order: " + fmt); + console.log("WARNING: unknown date order: " + fmt + "\n"); } } @@ -192,7 +195,7 @@ function dateOrder2(fmt) { } else if (stripped.match(/M.*d.*[Ec]/)) { return "mdw"; } else { - console.log("WARNING: unknown date order: " + fmt); + console.log("WARNING: unknown date order: " + fmt + "\n"); } } @@ -207,7 +210,7 @@ function timeOrder(fmt) { } else if (stripped.match(/[hK].*[aB]/)) { return "haz"; } else { - console.log("WARNING: unknown time order: " + fmt); + console.log("WARNING: unknown time order: " + fmt + "\n"); } } @@ -291,26 +294,6 @@ function scanForLastChars(string, set) { return -1; } -var cldrWidths = ["abbreviated", "narrow", "wide", "short"]; - -function namesMatch(regular, standalone) { - for (var i = 0; i < cldrWidths.length; i++) { - var namesFormat = regular[cldrWidths[i]], - namesStandAlone = standalone[cldrWidths[i]]; - - for (var element in namesFormat) { - if (element && - namesFormat[element] && - namesStandAlone[element] && - namesFormat[element] !== namesStandAlone[element]) { - return false; - } - } - } - - return true; -} - /** * Determine whether or not this locale distinguishes between stand-alone month or day-of-week * names and in-format month or day-of-week names. The stand-alone months are typically used @@ -321,90 +304,21 @@ function namesMatch(regular, standalone) { * @param calendar * @returns {Boolean} */ -function standAloneM(calendar, script) { - // Verify that the MMM, or MMMM formats contain an 'L' which indicates stand-alone - var available = calendar.dateTimeFormats.availableFormats; - if ((!available.MMM || available.MMM.indexOf('L') < 0) && - (!available.MMMM || available.MMMM.indexOf('L') < 0)) { - return false; - } - - // special case: if the top level locale uses one script, and this - // sublocale has another script, then the sublocale must override - // the standalone settings for the top level, even if the standalone - // month names are the same as the regular monthnames. - if (script) { - return true; - } - - // not only does it need to use the L format char, the names of the months - // need to be different from regular to standalone, otherwise we will just - // use the regular anyways - if (!namesMatch(calendar.months.format, calendar.months["stand-alone"])) { - return true; - } - - return false; -} - -function standAloneYM(calendar, script) { - // Verify that the yMMM or yMMMM formats contain an 'L' which indicates stand-alone - var available = calendar.dateTimeFormats.availableFormats; - if ((!available.yMMM || available.yMMM.indexOf('L') < 0) && - (!available.yMMMM || available.yMMMM.indexOf('L') < 0)) { - return false; - } - - // special case: if the top level locale uses one script, and this - // sublocale has another script, then the sublocale must override - // the standalone settings for the top level, even if the standalone - // month names are the same as the regular monthnames. - if (script) { - return true; - } - - // not only does it need to use the L format char, the names of the months - // need to be different from regular to standalone, otherwise we will just - // use the regular anyways - if (!namesMatch(calendar.months.format, calendar.months["stand-alone"])) { - return true; - } - - return false; -} - -function standAloneW(calendar, script) { - // Verify that the E format contains a 'c' which indicates stand-alone - var available = calendar.dateTimeFormats.availableFormats; - if (!available.E || available.E.indexOf('c') < 0) { - return false; - } - - // special case: if the top level locale uses one script, and this - // sublocale has another script, then the sublocale must override - // the standalone settings for the top level, even if the standalone - // day names are the same as the regular daynames. - if (script) { - return true; - } - - // not only does it need to use the c format char, the names of the days - // need to be different from regular to standalone, otherwise we will just - // use the regular anyways - if (!namesMatch(calendar.days.format, calendar.days["stand-alone"])) { - return true; +function standAlone(calendar) { + var monthNamesFormat = calendar.months.format.wide, + monthNamesStandAlone = calendar.months["stand-alone"].wide; + + for (var month in monthNamesFormat) { + if ( month && + monthNamesFormat[month] && + monthNamesStandAlone[month] && + monthNamesFormat[month] !== monthNamesStandAlone[month]) { + return true; + } } - return false; } -function standAloneY(calendar, script) { - // Verify that the y formats contain an 'r' which indicates stand-alone - var available = calendar.dateTimeFormats.availableFormats; - return (available.y && available.y.indexOf('r') > -1); -} - - /** * Compare the non-date component parts of formats to see if they * are different. @@ -460,8 +374,8 @@ module.exports = { addDateFormat(formats, locale, obj); } } catch (err) { - console.log("File " + sourcePath + " is not readable or does not contain valid JSON."); - console.log(err); + console.log("File " + sourcePath + " is not readable or does not contain valid JSON.\n"); + console.log(err + "\n"); process.exit(2); } } @@ -487,38 +401,38 @@ module.exports = { createDateFormats: function (language, script, region, cldrData) { var formats = {}, - cldrCalendar, - calendar, - isRtl = (rtlLanguages.indexOf(language) > -1) && (!script || rtlScripts.indexOf(script) > 0); - rtlify = isRtl ? function(format) { - var f = format.replace(/\u200F/g, ""); - - switch(f.charAt(0)) { - case 'd': - case 'y': - case 'h': - case 'H': - case 'N': + cldrCalendar, + calendar, + isRtl = (rtlLanguages.indexOf(language) > -1) && (!script || rtlScripts.indexOf(script) > 0); + rtlify = isRtl ? function(format) { + var f = format.replace(/\u200F/g, ""); + + switch(f.charAt(0)) { + case 'd': + case 'y': + case 'h': + case 'H': + case 'N': + return "\u200F" + f; + + case 'M': + var i = 1; + while (f.charAt(i) === "M") { + i++; + } + if (i < 3) { + // 1 and 2 M's are numeric, whereas 3 and 4 M's are letters return "\u200F" + f; + } + return f; - case 'M': - var i = 1; - while (f.charAt(i) === "M") { - i++; - } - if (i < 3) { - // 1 and 2 M's are numeric, whereas 3 and 4 M's are letters - return "\u200F" + f; - } - return f; + default: + return f; + } + } : function(format) { + return format; + }; - default: - return f; - } - } : function(format) { - return format; - }; - var isAsian = isAsianLang(language); for (var calendarName in cldrData) { cldrCalendar = cldrData[calendarName]; @@ -540,13 +454,15 @@ module.exports = { }; } + var usesStandAlone = standAlone(cldrCalendar); + // glean the lengths of the various parts var cldrFormats = {}, d = {}, m = {}, y = {}; - for (var i = 0; i < lengths.length; i++) { + for (i = 0; i < lengths.length; i++) { var len = lengths[i]; cldrFormats[len] = getDateFormat(cldrCalendar, len); @@ -576,10 +492,21 @@ module.exports = { * stand-alone of w (weekday) is e * stand-alone of y (year) is r */ + if (usesStandAlone) { + calendar.date.e = {}; + calendar.date.l = {}; + } + + if (isAsianLang(language)) { + calendar.date.a = {}; + calendar.date.l = {}; + calendar.date.r = {}; + } + var w; - var weekFormatIndex = scanForChars(cldrFormats["full"], "Ec"); - if (weekFormatIndex > -1 && cldrFormats["full"].charAt(weekFormatIndex) === "c") { + i = scanForChars(cldrFormats["full"], "Ec"); + if (i > -1 && cldrFormats["full"].charAt(i) === "c") { w = { "full": "cccc", "long": "ccc", @@ -611,17 +538,17 @@ module.exports = { if (y["full"] !== y["long"]) { longPlus = longPlus.replace(y["long"], y["full"]); } - // console.log("Search for '" + longPlus + "' in '" + cldrFormats["full"] + "'"); - var longIndex = cldrFormats["full"].indexOf(longPlus); - if (longIndex > -1 && weekFormatIndex !== -1) { + // console.log("Search for '" + longPlus + "' in '" + cldrFormats["full"] + "'\n"); + i = cldrFormats["full"].indexOf(longPlus); + if (i > -1) { tmp = cldrFormats["full"].replace(longPlus, "{date}"); - // console.log("tmp is " + tmp); + // console.log("tmp is " + tmp + "\n"); wTemplate = tmp; } else { // didn't work. Next attempt: try searching for the w components and see if the dmy parts come before // or after it in the format. If it comes before, take after the the first "d", "M", or "y" as the "dmy" // part. If it comes after take everything up to the first "d", "M", or "y" as the "dmy" part. - // console.log("Not found. Trying positional method"); + // console.log("Not found. Trying positional method\n"); // strip out the quoted parts so we don't accidentally match the characters inside the quotes var full = cldrFormats["full"]; @@ -631,39 +558,36 @@ module.exports = { if (scanForLastChars(full, "E") < min) { wTemplate = full.substring(0, min) + "{date}"; longPlus = full.substring(min); - // console.log("language " + language + " E found before date. Using wtemplate " + wTemplate); + // console.log("language " + language + " E found before date. Using wtemplate " + wTemplate + "\n"); } else if (scanForChars(full, "E") > max) { // scan backwards to find the last dmy char - var iterator = full.length-1; + i = full.length-1; var skipMode = false; - while (iterator > -1) { - if (full.charAt(iterator) === "'") { + while (i > -1) { + if (full.charAt(i) === "'") { skipMode = !skipMode; } else if (!skipMode) { - var c = full.charAt(iterator); + var c = full.charAt(i); if (c === 'd' || c === 'M' || c === 'y') { break; } } - iterator--; + i--; } - wTemplate = "{date}" + full.substring(iterator+1); - longPlus = full.substring(0, iterator+1); - // console.log("language " + language + " E found after date. Using wtemplate " + wTemplate + " and longPlus is " + longPlus); + wTemplate = "{date}" + full.substring(i+1); + longPlus = full.substring(0, i+1); + // console.log("language " + language + " E found after date. Using wtemplate " + wTemplate + " and longPlus is " + longPlus + "\n"); //} else { // the w is in the middle of the dmy... not sure what to do about that! - // console.log("failed. Using fallback."); + // console.log("failed. Using fallback.\n"); } } - // console.log("wTemplate is " + wTemplate); + // console.log("wTemplate is " + wTemplate + "\n"); calendar.date.dmwy["f"] = rtlify(correctedYear(cldrFormats["full"])); calendar.date.dmy["f"] = rtlify(correctedYear(longPlus)); - for (var i = 0; i < lengths.length; i++) { - if (i == 0 && weekFormatIndex > -1) { - continue; - } + for (i = 1; i < lengths.length; i++) { var len = lengths[i]; var lenAbbr = len.charAt(0); tmp = wTemplate.replace(/\{date\}/, cldrFormats[len]); @@ -676,7 +600,7 @@ module.exports = { var orders = {}; - for (var i = 0; i < lengths.length; i++) { + for (i = 0; i < lengths.length; i++) { var len = lengths[i]; var lenAbbr = len.charAt(0); calendar.date.w[lenAbbr] = w[len]; @@ -692,20 +616,20 @@ module.exports = { // the long format switch (orders[len]) { case "dmy": - // console.log("Length " + len + " order dmy"); + // console.log("Length " + len + " order dmy\n"); calendar.date.my[lenAbbr] = rtlify(dmy.substring(scanForChars(dmy, "M"))); calendar.date.dm[lenAbbr] = rtlify(dmy.substring(0, scanForLastChars(dmy, "M"))); break; case "mdy": - // console.log("Length " + len + " order mdy"); + // console.log("Length " + len + " order mdy\n"); calendar.date.my[lenAbbr] = rtlify(dmy.substring(0, scanForLastChars(dmy, "M")) + dmy.substring(scanForLastChars(dmy, "d"))); calendar.date.dm[lenAbbr] = rtlify(dmy.substring(0, scanForLastChars(dmy, "d"))); break; case "ymd": - // console.log("Length " + len + " order ymd"); + // console.log("Length " + len + " order ymd\n"); calendar.date.dm[lenAbbr] = rtlify(dmy.substring(scanForChars(dmy, "M"))); - if (isAsian) { + if (isAsianLang(language)) { var firstd = scanForChars(dmy, "d"); if (dmy.charAt(firstd-1) == '/') { firstd--; @@ -717,54 +641,23 @@ module.exports = { break; case "ydm": - // console.log("Length " + len + " order ydm"); + // console.log("Length " + len + " order ydm\n"); calendar.date.dm[lenAbbr] = rtlify(dmy.substring(scanForChars(dmy, "d"))); calendar.date.my[lenAbbr] = rtlify(dmy.substring(0, scanForChars(dmy, "d")) + dmy.substring(scanForChars(dmy, "M"))); break; } - if (standAloneYM(cldrCalendar, script)) { - if (!calendar.date.mys) { - calendar.date.mys = {}; - } - calendar.date.mys[lenAbbr] = calendar.date.my[lenAbbr].replace(/MMMM/, "LLLL").replace(/MMM/, "LLL"); - } - - if (standAloneM(cldrCalendar, script) || isAsian) { - if (!calendar.date.l) { - calendar.date.l = {}; - } - if (isAsian) { - calendar.date.l[lenAbbr] = getAvailableFormat(cldrCalendar, "M").replace(/M+/, calendar.date.m[lenAbbr]); - } else { - calendar.date.l[lenAbbr] = calendar.date.m[lenAbbr].replace(/M/g, "L"); - } - } - - if (standAloneW(cldrCalendar, script)) { - if (!calendar.date.e) { - calendar.date.e = {}; - } + if (usesStandAlone) { + calendar.date.my[lenAbbr] = calendar.date.my[lenAbbr].replace(/MMMM/, "LLLL").replace(/MMM/, "LLL"); calendar.date.e[lenAbbr] = calendar.date.w[lenAbbr].replace(/E/g, "c"); + calendar.date.l[lenAbbr] = calendar.date.m[lenAbbr].replace(/M/g, "L"); } - if (standAloneY(cldrCalendar, script) || isAsian) { - if (!calendar.date.r) { - calendar.date.r = {}; - } - if (isAsian) { - calendar.date.r[lenAbbr] = getAvailableFormat(cldrCalendar, "y").replace(/y+/, calendar.date.y[lenAbbr]); - } else { - calendar.date.r[lenAbbr] = calendar.date.y[lenAbbr].replace(/y/g, "r"); - } - } - - if (isAsian) { - if (!calendar.date.a) { - calendar.date.a = {}; - } + if (isAsianLang(language)) { calendar.date.a[lenAbbr] = getAvailableFormat(cldrCalendar, "d").replace(/d+/, calendar.date.d[lenAbbr]); + calendar.date.l[lenAbbr] = getAvailableFormat(cldrCalendar, "M").replace(/M+/, calendar.date.m[lenAbbr]); + calendar.date.r[lenAbbr] = getAvailableFormat(cldrCalendar, "y").replace(/y+/, calendar.date.y[lenAbbr]); } tmp = wTemplate.replace(/\{date\}/, calendar.date.dm[lenAbbr]); @@ -775,20 +668,20 @@ module.exports = { switch (dateOrder2(dmw)) { case "dmw": - // console.log("Length " + len + " dw order dmw"); + // console.log("Length " + len + " dw order dmw\n"); calendar.date.dw[lenAbbr] = rtlify(dmw.substring(0, scanForChars(dmw, "M")) + dmw.substring(scanForChars(dmw, "Ec"))); break; case "wdm": - // console.log("Length " + len + " dw order wdm"); + // console.log("Length " + len + " dw order wdm\n"); calendar.date.dw[lenAbbr] = rtlify(dmw.substring(0, scanForLastChars(dmw, "d"))); break; case "mdw": - // console.log("Length " + len + " dw order mdw"); + // console.log("Length " + len + " dw order mdw\n"); calendar.date.dw[lenAbbr] = rtlify(dmw.substring(scanForChars(dmw, "d"))); break; case "wmd": - // console.log("Length " + len + " dw order wmd"); + // console.log("Length " + len + " dw order wmd\n"); calendar.date.dw[lenAbbr] = rtlify(dmw.substring(0, scanForChars(dmw, "M")) + dmw.substring(scanForChars(dmw, "d"))); break; @@ -812,7 +705,7 @@ module.exports = { var H, h; if (longtime.indexOf("H") > -1) { - // console.log("24-hour locale. Longtime: " + longtime); + // console.log("24-hour locale. Longtime: " + longtime + "\n"); calendar.time["24"]["h"] = strippedLongTime.replace(/[^H]/g, ""); calendar.time["24"]["m"] = strippedLongTime.replace(/[^m]/g, ""); calendar.time["24"]["s"] = strippedLongTime.replace(/[^s]/g, ""); @@ -894,7 +787,7 @@ module.exports = { calendar.time["12"]["ahmsz"] = rtlify(zTemplate.replace(/\{time\}/, aTemplate.replace(/\{time\}/, calendar.time["12"]["hms"]))); } else { - // console.log("12-hour locale. Longtime: " + longtime); + // console.log("12-hour locale. Longtime: " + longtime + "\n"); order = timeOrder(longtime); calendar.time["12"]["h"] = longtime.replace(/[^h]/g, ""); @@ -1039,14 +932,15 @@ module.exports = { var dateOnlyTemplate = "{date} – {date}"; var dmyiLib = "dmy" + var dmyOrder; var dateRangeTemplate = dateRangeTemplateOrder; var regExp = /[^s^\s^\-^\.^\/^\u200f]y+/; var regExp2 = /\bd+\b/; var regExp3 = /\by+\b/; - var regExp4 = /\b[LM]+\b/; + var regExp4 = /\bM+\b/; - var dmyOrdercldr = dateOrder(cldrFormats[len]); + dmyOrdercldr = dateOrder(cldrFormats[len]); if (calendar.date[dmyiLib] !== undefined && calendar.date[dmyiLib][lenAbbr] !== undefined) { dateRangeTemplate = replaceFormats(dateRangeTemplate, "{date}", calendar.date[dmyiLib][lenAbbr]); @@ -1060,7 +954,7 @@ module.exports = { cFmt0 = replaceFormats(cFmt0, "{date}", calendar.date[dmyiLib][lenAbbr]); if (language === 'nnh' && (lenAbbr === 'f' || lenAbbr === 'l' )) { //'lyɛ'̌ʼ d 'na' MMMM, yyyy - cFmt0 = cFmt0.replace(regExp3, "{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt0 = cFmt0.replace(regExp3, "{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } else { cFmt0 = replaceFormats(cFmt0, startTime); } @@ -1073,7 +967,7 @@ module.exports = { cFmt1 = dateRangeTemplate; if (language === 'nnh' && (lenAbbr === 'f' || lenAbbr === 'l' )) { //'lyɛ'̌ʼ d 'na' MMMM, yyyy - cFmt1 = cFmt1.replace(regExp3, "{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt1 = cFmt1.replace(regExp3, "{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } else { cFmt1 = replaceFormats(dateRangeTemplate, startTime); } @@ -1098,10 +992,10 @@ module.exports = { cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date[dmyiLib][lenAbbr]); if (language === 'nnh' && (lenAbbr === 'f' || lenAbbr === 'l' )) { //'lyɛ'̌ʼ d 'na' MMMM, yyyy - cFmt10 = cFmt10.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt10 = cFmt10.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } else { - cFmt10 = cFmt10.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt10 = cFmt10.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } cFmt10 = cFmt10.replace(/\'/g,"").replace(/\s\s/g," "); @@ -1111,42 +1005,41 @@ module.exports = { cFmt11 = replaceFormats(cFmt11, "{date}", calendar.date["dm"][lenAbbr]); if (language === 'nnh' && (lenAbbr === 'f' || lenAbbr === 'l' )) { //'lyɛ'̌ʼ d 'na' MMMM, yyyy - cFmt11 = cFmt11.replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt11 = cFmt11.replace(/M+/, "{sm}").replace(regExp2,"{sd}"); } else { cFmt11 = replaceFormats(cFmt11, startTime); } cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt11 = cFmt11.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt11 = cFmt11.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c11"][lenAbbr] = cFmt11; cFmt12 = dateOnlyTemplate; if (language === 'nnh' && (lenAbbr === 'f' || lenAbbr === 'l' )) { //'lyɛ'̌ʼ d 'na' MMMM, yyyy - cFmt12 = cFmt12.replace(regExp3, "{sy}").replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt12 = cFmt12.replace(regExp3, "{sy}").replace(/M+/, "{sm}").replace(regExp2,"{sd}"); } else { cFmt12 = replaceFormats(cFmt12, startTime); } cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt12 = cFmt12.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt12 = cFmt12.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt12 = cFmt12.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c12"][lenAbbr] = cFmt12; //cFmt20 = dateOnlyTemplate; cFmt20 = "{date} – {date}"; - var myFormat = calendar.date["mys"] ? calendar.date["mys"][lenAbbr] : calendar.date["my"][lenAbbr]; - cFmt20 = replaceFormats(cFmt20, "{date}", myFormat); + cFmt20 = replaceFormats(cFmt20, "{date}", calendar.date["my"][lenAbbr]); - cFmt20 = cFmt20.replace(/[LM]+/,"{sm}").replace(/L+/, "{sm}").replace(regExp3, "{sy}"); - cFmt20 = replaceFormats(cFmt20, "{date}", myFormat); + cFmt20 = cFmt20.replace(/M+/,"{sm}").replace(/L+/, "{sm}").replace(regExp3, "{sy}"); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date["my"][lenAbbr]); if (language === 'nnh' && (lenAbbr === 'f' || lenAbbr === 'l' )) { //'lyɛ'̌ʼ d 'na' MMMM, yyyy - cFmt20 = cFmt20.replace(regExp3, "{ey}").replace(/[LM]+/, "{em}").replace(/L+/, "{em}"); + cFmt20 = cFmt20.replace(regExp3, "{ey}").replace(/M+/, "{em}").replace(/L+/, "{em}"); } else { - cFmt20 = cFmt20.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(/L+/, "{em}"); + cFmt20 = cFmt20.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(/L+/, "{em}"); } cFmt20 = cFmt20.replace(/\'/g,"").replace(/\s\s/g," "); @@ -1155,6 +1048,7 @@ module.exports = { cFmt30 = "{sy} – {ey}"; calendar.range["c30"][lenAbbr] = isRtl? "\u200F" + cFmt30 : cFmt30; + break; case "mdy": //console.log("{date}{time}, mdy"); @@ -1170,7 +1064,7 @@ module.exports = { cFmt1 = replaceFormats(dateRangeTemplate, startTime); cFmt1 = replaceFormats(cFmt1,"{time}", "{st}"); cFmt1 = replaceFormats(cFmt1,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt1 = cFmt1.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt1 = cFmt1.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt1 = replaceFormats(cFmt1, "{time}", "{et}"); cFmt1 = cFmt1.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c01"][lenAbbr] = cFmt1; @@ -1182,12 +1076,12 @@ module.exports = { if (lenAbbr === 's') { cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date[dmyiLib][lenAbbr]); cFmt10 = replaceFormats(cFmt10, startTime); - cFmt10 = cFmt10.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt10 = cFmt10.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } else { cFmt10 = replaceFormats(cFmt10, startTime); cFmt10 = cFmt10.replace(/[\s\/]{sy}/,""); cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt10 = cFmt10.replace(regExp,"{ey}").replace(/[LM]+/, "").replace(regExp2,"{ed}"); + cFmt10 = cFmt10.replace(regExp,"{ey}").replace(/M+/, "").replace(regExp2,"{ed}"); cFmt10 = cFmt10.replace(/}, –/, "} –").replace("– /{", "– {" ); } @@ -1198,24 +1092,23 @@ module.exports = { cFmt11 = replaceFormats(cFmt11, startTime); cFmt11 = cFmt11.replace(/[\,][s\s\-\.\/^\u200f]{sy}/,"").replace(/[\/]{sy}/,""); cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt11 = cFmt11.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt11 = cFmt11.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c11"][lenAbbr] = cFmt11; cFmt12 = dateOnlyTemplate; cFmt12 = replaceFormats(cFmt12, startTime); cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt12 = cFmt12.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt12 = cFmt12.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt12 = cFmt12.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c12"][lenAbbr] = cFmt12; - cFmt20 = "{date} – {date}"; - var myFormat = calendar.date["mys"] ? calendar.date["mys"][lenAbbr] : calendar.date["my"][lenAbbr]; - cFmt20 = replaceFormats(cFmt20, "{date}", myFormat); - cFmt20 = cFmt20.replace(regExp,"{sy}").replace(/[LM]+/, "{sm}"); + cFmt20 = dateOnlyTemplate; + cFmt20 = replaceFormats(cFmt20, startTime); + cFmt20 = cFmt20.replace(/[\W\s]{sd}/,""); - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); - cFmt20 = cFmt20.replace(regExp,"{ey}").replace(/[LM]+/, "{em}"); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date[dmyiLib][lenAbbr]); + cFmt20 = cFmt20.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(/[\W]d+/,""); cFmt20 = cFmt20.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c20"][lenAbbr] = cFmt20; @@ -1240,9 +1133,9 @@ module.exports = { cFmt1 = replaceFormats(cFmt1,"{date}", calendar.date[dmyiLib][lenAbbr]); if (language === 'lt' && (lenAbbr === 'f' || lenAbbr === 'l')) { - cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(/[^\'^s]d+/," {ed}") + cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(/[^\'^s]d+/," {ed}") } else { - cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } cFmt1 = replaceFormats(cFmt1, "{time}", "{et}"); @@ -1256,9 +1149,9 @@ module.exports = { cFmt2 = replaceFormats(cFmt2,"{date}", calendar.date[dmyiLib][lenAbbr]); if (language === 'lt' && (lenAbbr === 'f' || lenAbbr === 'l')) { - cFmt2 = cFmt2.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(/[^\'^s]d+/," {ed}") + cFmt2 = cFmt2.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(/[^\'^s]d+/," {ed}") } else { - cFmt2 = cFmt2.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt2 = cFmt2.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } cFmt2 = replaceFormats(cFmt2, "{time}", "{et}"); @@ -1272,9 +1165,9 @@ module.exports = { if (language === 'lt' && (lenAbbr === 'f' || lenAbbr === 'l')) { - cFmt3 = cFmt3.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(/[^\'^s]d+/," {ed}"); + cFmt3 = cFmt3.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(/[^\'^s]d+/," {ed}"); } else { - cFmt3 = cFmt3.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt3 = cFmt3.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } cFmt3 = replaceFormats(cFmt3, "{time}", "{et}"); @@ -1286,7 +1179,7 @@ module.exports = { if (language === 'lt'&& (lenAbbr === 'f' || lenAbbr === 'l')) { cFmt10 = cFmt10.replace(/{date}/, "{ed} 'd'."); - } else if(isAsian){ + } else if(isAsianLang(language)){ if (cFmt10.search(/日|일/) !== -1) { cFmt10 = cFmt10.replace(/{date}/, calendar.date["a"][lenAbbr]); cFmt10 = cFmt10.replace(/[^s]d+/, " {ed}"); @@ -1306,21 +1199,21 @@ module.exports = { cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date[dmyiLib][lenAbbr]); if (language === 'lt' && (lenAbbr === 'f' || lenAbbr === 'l')) { - cFmt11 = cFmt11.replace(/y+[\s\-\.\/^\u200f]/,"").replace(/[LM]+/, "{em}").replace(/[^'^s^]d+/, " {ed}"); + cFmt11 = cFmt11.replace(/y+[\s\-\.\/^\u200f]/,"").replace(/M+/, "{em}").replace(/[^'^s^]d+/, " {ed}"); cFmt11 = cFmt11.replace(/'m'. {em}/, " {em}"); } else if (language === 'eu' && (lenAbbr === 'f' || lenAbbr === 'l')) { - cFmt11 = cFmt11.replace(/y+\(\'e\'\)\'ko\'/,"").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); - } else if (isAsian) { + cFmt11 = cFmt11.replace(/y+\(\'e\'\)\'ko\'/,"").replace(/M+/, "{em}").replace(regExp2,"{ed}"); + } else if (isAsianLang(language)) { if (lenAbbr === 's' || lenAbbr === 'm') { - cFmt11 = cFmt11.replace(/\by+/,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(/[^s^\s]y+/,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } else { - cFmt11 = cFmt11.replace(/\by+\W/,"").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(/[^s^\s]y+\W/,"").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } } else if (lenAbbr ==='s' || lenAbbr ==='m') { - cFmt11 = cFmt11.replace(/[^s^\s^\u200f]y+/,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(/[^s^\s^\u200f]y+/,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } else { - cFmt11 = cFmt11.replace(/[^s^\s^\u200f]y+\W+/,"").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(/[^s^\s^\u200f]y+\W+/,"").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } cFmt11 = cFmt11.replace(/\'/g,"").replace(/\s\s/g," "); @@ -1333,26 +1226,33 @@ module.exports = { cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date[dmyiLib][lenAbbr]); if (language === 'lt' && (lenAbbr === 'f' || lenAbbr === 'l')) { - cFmt12 = cFmt12.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(/[^'^s^]d+/, " {ed}"); + cFmt12 = cFmt12.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(/[^'^s^]d+/, " {ed}"); } else { - cFmt12 = cFmt12.replace(regExp,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt12 = cFmt12.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } cFmt12 = cFmt12.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c12"][lenAbbr] = cFmt12; cFmt20 = "{date} – {date}"; - var myFormat = calendar.date["mys"] ? calendar.date["mys"][lenAbbr] : calendar.date["my"][lenAbbr]; - cFmt20 = replaceFormats(cFmt20, "{date}", myFormat); + cFmt20 = replaceFormats(cFmt20, "{date}", calendar.date["my"][lenAbbr]); - cFmt20 = cFmt20.replace(/[LM]+/,"{sm}").replace(/L+/,"{sm}").replace(/y+/, "{sy}"); - cFmt20 = replaceFormats(cFmt20, "{date}", myFormat); - cFmt20 = cFmt20.replace(regExp, "{ey}").replace(/[LM]+/, "{em}").replace(/L+/, "{em}"); + cFmt20 = cFmt20.replace(/M+/,"{sm}").replace(/L+/,"{sm}").replace(/y+/, "{sy}"); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date["my"][lenAbbr]); + cFmt20 = cFmt20.replace(regExp,"{ey}").replace(/M+/, "{em}").replace(/L+/, "{em}"); cFmt20 = cFmt20.replace(/\'/g,"").replace(/\s\s/g," ").trim(); calendar.range["c20"][lenAbbr] = cFmt20; - cFmt30 = "{sy} – {ey}"; + if (isAsianLang(language)) { + cFmt30="y – y"; + cFmt30 = cFmt30.replace(/y/g,calendar.date["r"][lenAbbr]); + cFmt30 = cFmt30.replace(/y+/, "{sy}"); + cFmt30 = cFmt30.replace(/[^s^\s]y+/, "{ey}"); + + } else { + cFmt30 = "{sy} – {ey}"; + } calendar.range["c30"][lenAbbr] = isRtl? "\u200F" + cFmt30 : cFmt30; @@ -1361,7 +1261,7 @@ module.exports = { case "ydm": cFmt0 = replaceFormats(cFmt0, "{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt0 = cFmt0.replace(regExp3,"{sy}").replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt0 = cFmt0.replace(regExp3,"{sy}").replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt0 = replaceFormats(cFmt0,"{time}", "{st}"); cFmt0 = replaceFormats(cFmt0,"{time}", "{et}"); cFmt0 = cFmt0.replace(/\'/g,"").replace(/\s\s/g," "); @@ -1369,10 +1269,10 @@ module.exports = { //{sy} {sd}{sm} {st} - {ey} {ed}{em} {et} cFmt1 = dateRangeTemplate; - cFmt1 = cFmt1.replace(regExp3,"{sy}").replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt1 = cFmt1.replace(regExp3,"{sy}").replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt1 = replaceFormats(cFmt1,"{time}", "{st}"); cFmt1 = replaceFormats(cFmt1,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt1 = replaceFormats(cFmt1, "{time}", "{et}"); cFmt1 = cFmt1.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c01"][lenAbbr] = cFmt1; @@ -1381,29 +1281,26 @@ module.exports = { //{sy} {sd}{sm} – {ed}{em} cFmt10 = dateOnlyTemplate; - cFmt10 = cFmt10.replace(regExp3,"{sy}").replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt10 = cFmt10.replace(regExp3,"{sy}").replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt10 = replaceFormats(cFmt10,"{date}",calendar.date["dm"][lenAbbr]); - cFmt10 = cFmt10.replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt10 = cFmt10.replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt10 = cFmt10.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c10"][lenAbbr] = cFmt10; //{sy} {sd}{sm} – {ey} {ed}{em} cFmt11 = dateOnlyTemplate; - cFmt11 = cFmt11.replace(regExp3,"{sy}").replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt11 = cFmt11.replace(regExp3,"{sy}").replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt11 = cFmt11.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt11 = cFmt11.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c11"][lenAbbr] = cFmt11; calendar.range["c12"][lenAbbr] = cFmt11; - cFmt20 = "{date} – {date}"; - var myFormat = calendar.date["mys"] ? calendar.date["mys"][lenAbbr] : calendar.date["my"][lenAbbr]; - cFmt20 = replaceFormats(cFmt20, "{date}", myFormat); - - cFmt20 = cFmt20.replace(regExp3,"{sy}").replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt20 = dateOnlyTemplate; + cFmt20 = cFmt20.replace(regExp3,"{sy}").replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt20 = cFmt20.replace(/{sd}\W/,""); - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); - cFmt20 = cFmt20.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(/\bd+\W/,""); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date[dmyiLib][lenAbbr]); + cFmt20 = cFmt20.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(/\bd+\W/,""); cFmt20 = cFmt20.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c20"][lenAbbr] = cFmt20; @@ -1438,8 +1335,6 @@ module.exports = { } else { cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(regExp4, "{em}").replace(regExp2,"{ed}"); } - } else { - cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(regExp4, "{em}").replace(regExp2,"{ed}"); } cFmt1 = cFmt1.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c01"][lenAbbr] = cFmt1; @@ -1449,9 +1344,10 @@ module.exports = { //{sd} - {ed}{em}{ey} cFmt10 = "{date} – {date}"; + //cFmt10 = replaceFormats(cFmt10, startTime); if (language === 'vi') { if (lenAbbr === 'l') { - cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date["d"][lenAbbr]); + cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date["dm"][lenAbbr]); cFmt10 = cFmt10.replace(" 'tháng' MM", ""); cFmt10 = cFmt10.replace(regExp2,"{sd}") cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date["dmy"][lenAbbr]); @@ -1461,12 +1357,8 @@ module.exports = { cFmt10 = cFmt10.replace(regExp2,"{sd}") cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date["dmy"][lenAbbr]); cFmt10 = cFmt10.replace(regExp2, "{ed}").replace(regExp4, "{em}").replace(regExp3, "{ey}"); + } - } else { - cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date["d"][lenAbbr]); - cFmt10 = cFmt10.replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); - cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt10 = cFmt10.replace(/\by+/,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); } cFmt10 = cFmt10.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c10"][lenAbbr] = cFmt10; @@ -1478,22 +1370,11 @@ module.exports = { cFmt11 = cFmt11.replace(regExp2,"{sd}").replace(regExp4,"{sm}"); cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date["dmy"][lenAbbr]); cFmt11 = cFmt11.replace(regExp2, "{ed}").replace(regExp4, "{em}").replace(/\b\wy+\b/, "{ey}"); - } else { - cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date["dm"][lenAbbr]); - cFmt11 = cFmt11.replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); - cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date[dmyiLib][lenAbbr]); - if (lenAbbr === 's') { - cFmt11 = cFmt11.replace(regExp3,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); - } else { - cFmt11 = cFmt11.replace(/\by+/,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); - } } cFmt11 = cFmt11.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c11"][lenAbbr] = cFmt11; - // dmy - dmy - cFmt12 = "{date} – {date}"; - cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date[dmyiLib][lenAbbr]); + cFmt12 = dateOnlyTemplate; if (language === 'vi') { if (lenAbbr === 'l') { @@ -1505,53 +1386,33 @@ module.exports = { cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date["dmy"][lenAbbr]); cFmt12 = cFmt12.replace(regExp2, "{ed}").replace(regExp4, "{em}").replace(/\b\y+\b/, "{ey}"); } - } else { - cFmt12 = cFmt12.replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}").replace(regExp3,"{sy}"); - cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date[dmyiLib][lenAbbr]); - - if (lenAbbr === 's') { - cFmt12 = cFmt12.replace(regExp3,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); - } else { - cFmt12 = cFmt12.replace(/\by+/,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); - } } cFmt12 = cFmt12.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c12"][lenAbbr] = cFmt12; - cFmt20 = "{date} – {date}"; - var myFormat = calendar.date["mys"] ? calendar.date["mys"][lenAbbr] : calendar.date["my"][lenAbbr]; - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); + cFmt20 = dateOnlyTemplate; if (language === 'vi') { if (lenAbbr === 'l') { cFmt20 = cFmt20.replace(/'Ngày' dd 'tháng' /,""); - cFmt20 = cFmt20.replace(/[LM]+/,"{sm}").replace(/\b\wy+\b/, "{sy}"); - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); + cFmt20 = cFmt20.replace(/M+/,"{sm}").replace(/\b\wy+\b/, "{sy}"); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date["dmy"][lenAbbr]); cFmt20 = cFmt20.replace(/'Ngày' dd 'tháng' /,""); - cFmt20 = cFmt20.replace(/[LM]+/,"{em}").replace(/yyyy/, "{ey}"); + cFmt20 = cFmt20.replace(/M+/,"{em}").replace(/yyyy/, "{ey}"); } else if(lenAbbr === 'f') { cFmt20 = cFmt20.replace(/d+\s/,""); - cFmt20 = cFmt20.replace(/[LM]+/,"{sm}").replace(regExp3, "{sy}"); - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); - cFmt20 = cFmt20.replace(/\bd+/,""); - cFmt20 = cFmt20.replace(/[LM]+/,"{em}").replace(regExp3, "{ey}"); + cFmt20 = cFmt20.replace(/M+/,"{sm}").replace(regExp3, "{sy}"); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date["dmy"][lenAbbr]); + cFmt20 = cFmt20.replace(/[^s]d+/,""); + cFmt20 = cFmt20.replace(/M+/,"{em}").replace(regExp3, "{ey}"); } else { cFmt20 = cFmt20.replace(/d+\W/,""); - cFmt20 = cFmt20.replace(/[LM]+/,"{sm}").replace(regExp3, "{sy}"); - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); + cFmt20 = cFmt20.replace(/M+/,"{sm}").replace(regExp3, "{sy}"); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date["dmy"][lenAbbr]); cFmt20 = cFmt20.replace(/d+\W/,""); - cFmt20 = cFmt20.replace(/[LM]+/,"{em}").replace(regExp3, "{ey}"); - } - } else { - cFmt20 = cFmt20.replace(/[LM]+/, "{sm}").replace(regExp3,"{sy}"); - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); - - if (lenAbbr === 's') { - cFmt20 = cFmt20.replace(regExp3,"{ey}").replace(/[LM]+/,"{em}"); - } else { - cFmt20 = cFmt20.replace(/\by+/,"{ey}").replace(/[LM]+/,"{em}"); + cFmt20 = cFmt20.replace(/M+/,"{em}").replace(regExp3, "{ey}"); } } cFmt20 = cFmt20.replace(/\'/g,"").replace(/\s\s/g," "); @@ -1574,7 +1435,7 @@ module.exports = { cFmt1 = replaceFormats(dateRangeTemplate, startTime); cFmt1 = replaceFormats(cFmt1,"{time}", "{st}"); cFmt1 = replaceFormats(cFmt1,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt1 = cFmt1.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); cFmt1 = replaceFormats(cFmt1, "{time}", "{et}"); cFmt1 = cFmt1.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c01"][lenAbbr] = cFmt1; @@ -1586,14 +1447,14 @@ module.exports = { if (lenAbbr === 's') { //mdy-mdy cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date[dmyiLib][lenAbbr]); cFmt10 = replaceFormats(cFmt10, startTime); - cFmt10 = cFmt10.replace(regExp3,"{sy}").replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt10 = cFmt10.replace(regExp3,"{sy}").replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt10 = cFmt10.replace(regExp3,"{ey}").replace(/[LM]+/, "{em}").replace(regExp2,"{ed}"); + cFmt10 = cFmt10.replace(regExp3,"{ey}").replace(/M+/, "{em}").replace(regExp2,"{ed}"); } else { //m d-d y cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date["dm"][lenAbbr]); - cFmt10 = cFmt10.replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt10 = cFmt10.replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt10 = replaceFormats(cFmt10,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt10 = cFmt10.replace(/[^s^\s]y+/,"{ey}").replace(/[LM]+/,"").replace(regExp2,"{ed}"); + cFmt10 = cFmt10.replace(/[^s^\s]y+/,"{ey}").replace(/M+/,"").replace(regExp2,"{ed}"); } cFmt10 = cFmt10.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c10"][lenAbbr] = cFmt10; @@ -1601,12 +1462,12 @@ module.exports = { //md - mdy cFmt11 = "{date} – {date}"; cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date["dm"][lenAbbr]); - cFmt11 = cFmt11.replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}"); + cFmt11 = cFmt11.replace(/M+/, "{sm}").replace(regExp2,"{sd}"); cFmt11 = replaceFormats(cFmt11,"{date}", calendar.date[dmyiLib][lenAbbr]); if (lenAbbr === 's') { - cFmt11 = cFmt11.replace(regExp3,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(regExp3,"{ey}").replace(/M+/,"{em}").replace(regExp2,"{ed}"); } else { - cFmt11 = cFmt11.replace(/[^s^\s]y+/,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); + cFmt11 = cFmt11.replace(/[^s^\s]y+/,"{ey}").replace(/M+/,"{em}").replace(regExp2,"{ed}"); } cFmt11 = cFmt11.replace(/\'/g,"").replace(/\s\s/g," "); @@ -1615,29 +1476,28 @@ module.exports = { //mdy - mdy cFmt12 = "{date} – {date}"; cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date[dmyiLib][lenAbbr]); - cFmt12 = cFmt12.replace(/[LM]+/, "{sm}").replace(regExp2,"{sd}").replace(regExp3,"{sy}"); + cFmt12 = cFmt12.replace(/M+/, "{sm}").replace(regExp2,"{sd}").replace(regExp3,"{sy}"); cFmt12 = replaceFormats(cFmt12,"{date}", calendar.date[dmyiLib][lenAbbr]); if (lenAbbr === 's') { - cFmt12 = cFmt12.replace(regExp3,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); + cFmt12 = cFmt12.replace(regExp3,"{ey}").replace(/M+/,"{em}").replace(regExp2,"{ed}"); } else { - cFmt12 = cFmt12.replace(regExp3,"{ey}").replace(/[LM]+/,"{em}").replace(regExp2,"{ed}"); + cFmt12 = cFmt12.replace(/[^s]y+/,"{ey}").replace(/M+/,"{em}").replace(regExp2,"{ed}"); } - cFmt12 = cFmt12.replace(/\'/g,"").replace(/\s\s/g," "); + cFmt12 = cFmt1.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c12"][lenAbbr] = cFmt12; //my - my cFmt20 = "{date} – {date}"; - var myFormat = calendar.date["mys"] ? calendar.date["mys"][lenAbbr] : calendar.date["my"][lenAbbr]; - cFmt20 = replaceFormats(cFmt20,"{date}", myFormat); - cFmt20 = cFmt20.replace(/[LM]+/, "{sm}").replace(regExp3,"{sy}"); - cFmt20 = replaceFormats(cFmt20, "{date}", myFormat); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date["my"][lenAbbr]); + cFmt20 = cFmt20.replace(/M+/, "{sm}").replace(regExp3,"{sy}"); + cFmt20 = replaceFormats(cFmt20,"{date}", calendar.date["my"][lenAbbr]); if (lenAbbr === 's') { - cFmt20 = cFmt20.replace(regExp3,"{ey}").replace(/[LM]+/,"{em}"); + cFmt20 = cFmt20.replace(regExp3,"{ey}").replace(/M+/,"{em}"); } else { - cFmt20 = cFmt20.replace(/[^s^\s]y+/,"{ey}").replace(/[LM]+/,"{em}"); + cFmt20 = cFmt20.replace(/[^s^\s]y+/,"{ey}").replace(/M+/,"{em}"); } cFmt20 = cFmt20.replace(/\'/g,"").replace(/\s\s/g," "); calendar.range["c20"][lenAbbr] = cFmt20; @@ -1648,10 +1508,11 @@ module.exports = { break; case "ymd": console.log("*** No use cases. [Need to Implement]{time}{date} : " +dmyOrdercldr+"] " + language + "-"+script+ "-"+region +" ******"); + break; default: console.log("*** No use cases. Need to Implement]{time}{date} : " +dmyOrdercldr+"] " + language + "-"+script+ "-"+region +" ******"); - break; + break; } } } @@ -1664,7 +1525,7 @@ module.exports = { return formats; }, - createSystemResources: function (cldrData, language, script) { + createSystemResources: function (cldrData, language) { var formats, cldrCalendar, calendarNameSuffix, @@ -1686,8 +1547,11 @@ module.exports = { calendarNameSuffix = (calendarName !== "gregorian") ? "-" + calendarName : ""; + var usesStandAlone = standAlone(cldrCalendar); + // now generate all the month names var part = cldrCalendar.months.format; + var isAsian = isAsianLang(language); if (isAsianLang(language)) { for (prop in part.wide) { formats["MMMM" + prop + calendarNameSuffix] = part.wide[prop].substring(0, part.wide[prop].length-1); @@ -1715,20 +1579,22 @@ module.exports = { } } } - if (standAloneM(cldrCalendar, script) || standAloneYM(cldrCalendar, script)) { + if (usesStandAlone) { part = cldrCalendar.months["stand-alone"]; for (prop in part.wide) { - formats["LLLL" + prop + calendarNameSuffix] = part.wide[prop]; - formats["LLL" + prop + calendarNameSuffix] = part.abbreviated[prop]; + var month = this.ilibMonth(calendarName, prop); + + formats["LLLL" + month + calendarNameSuffix] = part.wide[prop]; + formats["LLL" + month + calendarNameSuffix] = part.abbreviated[prop]; if (language === "mn") { - formats["LL" + prop + calendarNameSuffix] = part.abbreviated[prop].substring(0,1); - formats["L" + prop + calendarNameSuffix] = part.narrow[prop]; + formats["LL" + month + calendarNameSuffix] = part.abbreviated[prop].substring(0,1); + formats["L" + month + calendarNameSuffix] = part.narrow[prop]; } else if (language === "vi") { - formats["LL" + prop + calendarNameSuffix] = part.abbreviated[prop].substring(0,2) + prop; - formats["L" + prop + calendarNameSuffix] = part.abbreviated[prop].substring(0,1) + prop; + formats["LL" + month + calendarNameSuffix] = part.abbreviated[prop].substring(0,2) + prop; + formats["L" + month + calendarNameSuffix] = part.abbreviated[prop].substring(0,1) + prop; } else { - formats["LL" + prop + calendarNameSuffix] = part.abbreviated[prop].substring(0,2); - formats["L" + prop + calendarNameSuffix] = part.narrow[prop]; + formats["LL" + month + calendarNameSuffix] = part.abbreviated[prop].substring(0,2); + formats["L" + month + calendarNameSuffix] = part.narrow[prop]; } } } @@ -1741,7 +1607,7 @@ module.exports = { formats["EE" + dayNumbers[prop] + calendarNameSuffix] = part.short[prop]; formats["E" + dayNumbers[prop] + calendarNameSuffix] = part.narrow[prop]; } - if (standAloneW(cldrCalendar, script)) { + if (usesStandAlone) { part = cldrCalendar.days["stand-alone"]; for (prop in part.wide) { formats["cccc" + dayNumbers[prop] + calendarNameSuffix] = part.wide[prop]; @@ -1765,33 +1631,33 @@ module.exports = { createDurationResourceDetail: function (cldrUnitData, durationObject, length, language, script) { var durationSysres = {}; var durationSysresTest = {}; + var cldrDateFieldData = {}; + var dataLength = length; + + var isRtl = (rtlLanguages.indexOf(language) > -1) && (!script || rtlScripts.indexOf(script) > 0); for(duration in durationObject) { var durationKey = "duration-" + duration; var temp; var fullStr = ""; - if (language === "ko" && duration === "millisecond") { - fullStr = "#{num}밀리초"; - } else { - var unitNames = ["zero", "one", "two", "few", "many", "other"]; - - for (var j = 0; j < unitNames.length; j++){ - name = unitNames[j]; - nameValue = "unitPattern-count-" + name; - if (cldrUnitData[durationKey] && typeof(cldrUnitData[durationKey][nameValue]) !== 'undefined') { - durationSysresTest[durationObject[duration]] = {}; - if (fullStr.length > 0) { - fullStr += "|"; - } + var unitNames = ["zero", "one", "two", "few", "many", "other"]; + + for (var j = 0; j < unitNames.length; j++){ + name = unitNames[j]; + nameValue = "unitPattern-count-" + name; + if (cldrUnitData[durationKey] && typeof(cldrUnitData[durationKey][nameValue]) !== 'undefined') { + durationSysresTest[durationObject[duration]] = {}; + if (fullStr.length > 0) { + fullStr += "|"; + } - temp = cldrUnitData[durationKey][nameValue].replace("{0}", "{num}"); + temp = cldrUnitData[durationKey][nameValue].replace("{0}", "{num}"); - if (unitNames[j] == "other") { - fullStr += "#" + temp; - } else { - fullStr += name +"#" + temp; - } + if (unitNames[j] == "other") { + fullStr += "#" + temp; + } else { + fullStr += name +"#" + temp; } } } @@ -1861,11 +1727,11 @@ module.exports = { result = module.exports.createDurationResourceDetail(unit, durationObject[prop], "long", language, script); sysres.push(result); break; - case "durationPropertiesMedium": + case "durationPropertiesMedium": unit = table.narrow; result = module.exports.createDurationResourceDetail(unit, durationObject[prop], "medium", language, script); sysres.push(result); - break; + break; case "durationPropertiesShort": unit = table.narrow; result = module.exports.createDurationResourceDetail(unit, durationObject[prop], "short", language, script); diff --git a/tools/cldr/gendatefmts2.js b/tools/cldr/gendatefmts2.js index 9bcc0acb5d..fc6f0bb702 100644 --- a/tools/cldr/gendatefmts2.js +++ b/tools/cldr/gendatefmts2.js @@ -194,7 +194,7 @@ var hardCodeData = { var aux = require("./datefmts.js"); function usage() { - console.log("Usage: gendatefmts [-h] [ locale_data_dir ]\n" + + console.log("Usage: gendatefmts2 [-h] [ locale_data_dir ]\n" + "Generate date formats information files.\n" + "-h or --help\n" + " this help\n" + @@ -231,21 +231,25 @@ function anyProperties(data) { return false; } -function writeSystemResources(language, script, region, data) { - var path = calcLocalePath(language, script, region, ""); +function writeResources(language, script, region, filename, data) { + var locpath = calcLocalePath(language, script, region, ""); // if (data && data.generated) { if (anyProperties(data)) { - console.log("Writing " + path ); - makeDirs(path); - fs.writeFileSync(path + "/sysres.json", stringify(data, {space: 4}), "utf-8"); + console.log("Writing " + locpath); + makeDirs(locpath); + fs.writeFileSync(path.join(locpath, filename), stringify(data, {space: 4}), "utf-8"); } else { - console.log("Skipping empty " + path ); + console.log("Skipping empty " + locpath + "\n"); } // } else { // console.log("Skipping existing " + path ); // } } +function writeSystemResources(language, script, region, data) { + writeResources(language, script, region, "sysres.json", data); +} + var localeDirName; var tmpDirName = "./tmp"; process.argv.forEach(function (val, index, array) { @@ -277,11 +281,14 @@ console.log("Reading existing locale data ..."); var dateFormats = {}; var systemResources = {}; +var displayNames = {}; console.log("dateformats.json: "); aux.walkLocaleDir(dateFormats, /dateformats\.json$/, localeDirName, ""); console.log("sysres.json: "); aux.walkLocaleDir(systemResources, /sysres\.json$/, localeDirName, ""); +console.log("dateres.json:"); +displayNames.data = aux.createRootDisplayNames(); console.log("\nMerging formats forward ..."); @@ -425,6 +432,59 @@ locales.forEach(function (file) { } catch (e) { console.log("Could not find the file " + filename + " ... skipping."); } + + // do regular gregorian for all locales + cal = require(path.join(sourceDir, "ca-gregorian.json")); + newFormats = aux.createDateFormats(language, script, region, cal.main[file].dates.calendars); + //console.log("data is " + JSON.stringify(newFormats, undefined, 4) + "\n"); + group = aux.getFormatGroup(dateFormats, localeComponents); + group.data = merge(group.data || {}, newFormats); + + newFormats = aux.createSystemResources(cal.main[file].dates.calendars, language); + //console.log("data is " + JSON.stringify(newFormats, undefined, 4) + "\n"); + group = aux.getFormatGroup(systemResources, localeComponents); + group.data = merge(group.data || {}, newFormats); + + // do other calendars for some locales + if (language === "he" || language === "ar") { + cal = require(path.join(sourceDir, "ca-hebrew.json")); + + newFormats = aux.createSystemResources(cal.main[file].dates.calendars, language); + //console.log("data is " + JSON.stringify(newFormats, undefined, 4) + "\n"); + group = aux.getFormatGroup(systemResources, localeComponents); + group.data = merge(group.data || {}, newFormats); + } + + // date/time duration. + units = require(path.join(sourceDir, "units.json")); + newFormats = aux.createDurationResources(units.main[file].units, language, script); + //console.log("Duration data is " + JSON.stringify(newFormats, undefined, 4) + "\n"); + group = aux.getFormatGroup(systemResources, localeComponents); + group.data = merge(group.data || {}, newFormats); + + // relative time format + dateFields = require(path.join(sourceDir, "dateFields.json")); + newFormats = aux.createRelativeFormatResources(dateFields.main[file].dates.fields, language, script); + //console.log("Relative format data is " + JSON.stringify(newFormats, undefined, 4) + "\n"); + group = aux.getFormatGroup(systemResources, localeComponents); + group.data = merge(group.data || {}, newFormats); + + // Date/Time display names + newFormats = aux.createDisplayNames(dateFields.main[file].dates.fields, language, script, region); + group = aux.getFormatGroup(displayNames, localeComponents); + group.data = merge(group.data || {}, newFormats); + + // separator + seperator = require(path.join(sourceDir, "listPatterns.json")); + newFormats = aux.createSeperatorResources(seperator.main[file].listPatterns, language); + //console.log("listPattern data is " + JSON.stringify(newFormats, undefined, 4) + "\n"); + group = aux.getFormatGroup(systemResources, localeComponents); + group.data = merge(group.data || {}, newFormats); + + if (hardCodeData.hasOwnProperty(language)) { + group.data = merge(group.data || {}, hardCodeData[language]); + } + }); console.log("\nMerging formats forward ..."); @@ -503,6 +563,31 @@ for (language in systemResources) { } writeSystemResources(undefined, undefined, undefined, systemResources.data); //aux.writeFormats(localeDirName, "sysres.json", systemResources, []); +console.log("\n"); + +mergeAndPrune(displayNames); +for (language in displayNames) { + if (language && displayNames[language] && language !== 'data' && language !== 'merged') { + for (var subpart in displayNames[language]) { + if (subpart && displayNames[language][subpart] && subpart !== 'data' && subpart !== 'merged') { + if (Locale.isScriptCode(subpart)) { + script = subpart; + for (region in displayNames[language][script]) { + if (region && displayNames[language][script][region] && region !== 'data' && region !== 'merged') { + writeResources(language, script, region, "dateres.json", displayNames[language][script][region].data); + } + } + writeResources(language, script, undefined, "dateres.json", displayNames[language][script].data); + } else { + writeResources(language, undefined, subpart, "dateres.json", displayNames[language][subpart].data); + } + } + } + writeResources(language, undefined, undefined, "dateres.json", displayNames[language].data); + } +} +writeResources(undefined, undefined, undefined, "dateres.json", displayNames.data); + console.log(""); console.log("Done.");