branch: elpa/datetime
commit 1bccadeb7a8ad59afb41ede2f806b3bd1208b778
Author: Paul Pogonyshev <pogonys...@gmail.com>
Commit: Paul Pogonyshev <pogonys...@gmail.com>

    Explicitly specify locale parent since e.g. `nn-NO' has `no' as parent in 
Java, which would break our fallback rules.
---
 datetime.el          | 190 +++++++++++++++++++++++++++++++++------------------
 dev/HarvestData.java |   2 +
 2 files changed, 126 insertions(+), 66 deletions(-)

diff --git a/datetime.el b/datetime.el
index 9db02467fd..24ca14bdc5 100644
--- a/datetime.el
+++ b/datetime.el
@@ -513,7 +513,7 @@ format \"xx\"), if it is t then also include “variants” in 
format
 Return value is a list of symbols; it can be modified freely."
   (let (locales)
     (dolist (data datetime--locale-data)
-      (when (or include-variants (<= (length (symbol-name (car data))) 2))
+      (when (or include-variants (null (plist-get (cdr data) :parent)))
         (push (car data) locales)))
     (nreverse locales)))
 
@@ -588,14 +588,15 @@ Supported fields:
   :am-pm"
   ;; Additionally `:date-patterns', `:time-patterns' and
   ;; `:date-time-pattern-rule' are supported for internal use.
-  (or (datetime--do-get-locale-field (cdr (assq locale datetime--locale-data)) 
field)
-      (let ((name (symbol-name locale)))
-        (when (> (length name) 3)
-          (datetime--do-get-locale-field (cdr (assq (intern (substring name 0 
2)) datetime--locale-data)) field)))
-      (pcase field
-        (:decimal-separator ?.)
-        (:eras              datetime--english-eras)
-        (:am-pm             datetime--english-am-pm))))
+  (let ((data (cdr (assq locale datetime--locale-data))))
+    (or (datetime--do-get-locale-field data field)
+        (let ((parent (plist-get data :parent)))
+          (when parent
+            (datetime--do-get-locale-field (cdr (assq parent 
datetime--locale-data)) field)))
+        (pcase field
+          (:decimal-separator ?.)
+          (:eras              datetime--english-eras)
+          (:am-pm             datetime--english-am-pm)))))
 
 
 ;; Extracted from Java using `dev/HarvestData.java'.  All patterns are
@@ -629,15 +630,18 @@ Supported fields:
     (ar-JO
      :month-context-abbr       ["كانون الثاني" "شباط" "آذار" "نيسان" "نوار" 
"حزيران" "تموز" "آب" "أيلول" "تشرين الأول" "تشرين الثاني" "كانون الأول"]
      :month-context-names      ["كانون الثاني" "شباط" "آذار" "نيسان" "نوار" 
"حزيران" "تموز" "آب" "أيلول" "تشرين الأول" "تشرين الثاني" "كانون الأول"]
-     :weekday-context-abbr     ["الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت" "الأحد"])
+     :weekday-context-abbr     ["الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت" "الأحد"]
+     :parent                   ar)
     (ar-LB
      :month-context-abbr       ["كانون الثاني" "شباط" "آذار" "نيسان" "نوار" 
"حزيران" "تموز" "آب" "أيلول" "تشرين الأول" "تشرين الثاني" "كانون الأول"]
      :month-context-names      ["كانون الثاني" "شباط" "آذار" "نيسان" "نوار" 
"حزيران" "تموز" "آب" "أيلول" "تشرين الأول" "تشرين الثاني" "كانون الأول"]
-     :weekday-context-abbr     ["الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت" "الأحد"])
+     :weekday-context-abbr     ["الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت" "الأحد"]
+     :parent                   ar)
     (ar-SY
      :month-context-abbr       ["كانون الثاني" "شباط" "آذار" "نيسان" "نوار" 
"حزيران" "تموز" "آب" "أيلول" "تشرين الأول" "تشرين الثاني" "كانون الأول"]
      :month-context-names      ["كانون الثاني" "شباط" "آذار" "نيسان" "نواران" 
"حزير" "تموز" "آب" "أيلول" "تشرين الأول" "تشرين الثاني" "كانون الأول"]
-     :weekday-context-abbr     ["الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت" "الأحد"])
+     :weekday-context-abbr     ["الاثنين" "الثلاثاء" "الأربعاء" "الخميس" 
"الجمعة" "السبت" "الأحد"]
+     :parent                   ar)
     (be
      :decimal-separator        ?,
      :eras                     ["да н.е." "н.е."]
@@ -700,8 +704,10 @@ Supported fields:
     (de-AT
      :month-context-abbr       ["Jän" "Feb" "Mär" "Apr" "Mai" "Jun" "Jul" 
"Aug" "Sep" "Okt" "Nov" "Dez"]
      :month-context-names      ["Jänner" "Februar" "März" "April" "Mai" "Juni" 
"Juli" "August" "September" "Oktober" "November" "Dezember"]
-     :date-patterns            (:short "dd.MM.yy" :medium "dd.MM.yyyy" :long 
"dd. MMMM yyyy" :full "EEEE, dd. MMMM yyyy"))
-    (de-CH)
+     :date-patterns            (:short "dd.MM.yy" :medium "dd.MM.yyyy" :long 
"dd. MMMM yyyy" :full "EEEE, dd. MMMM yyyy")
+     :parent                   de)
+    (de-CH
+     :parent                   de)
     (el
      :decimal-separator        ?,
      :month-context-abbr       ["Ιαν" "Φεβ" "Μαρ" "Απρ" "Μαϊ" "Ιουν" "Ιουλ" 
"Αυγ" "Σεπ" "Οκτ" "Νοε" "Δεκ"]
@@ -717,7 +723,8 @@ Supported fields:
      :eras                     ["π.Χ." "μ.Χ."]
      :month-context-names      ["Ιανουάριος" "Φεβρουάριος" "Μάρτιος" 
"Απρίλιος" "Μάιος" "Ιούνιος" "Ιούλιος" "Αύγουστος" "Σεπτέμβριος" "Οκτώβριος" 
"Νοέμβριος" "Δεκέμβριος"]
      :am-pm                    ["ΠΜ" "ΜΜ"]
-     :date-patterns            (:short "dd/MM/yyyy" :medium "dd MMM yyyy" 
:long "dd MMMM yyyy" :full "EEEE, dd MMMM yyyy"))
+     :date-patterns            (:short "dd/MM/yyyy" :medium "dd MMM yyyy" 
:long "dd MMMM yyyy" :full "EEEE, dd MMMM yyyy")
+     :parent                   el)
     (en
      :month-context-abbr       ["Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" 
"Aug" "Sep" "Oct" "Nov" "Dec"]
      :month-context-names      ["January" "February" "March" "April" "May" 
"June" "July" "August" "September" "October" "November" "December"]
@@ -727,31 +734,41 @@ Supported fields:
      :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :long 
"h:mm:ss a z"))
     (en-AU
      :date-patterns            (:short "d/MM/yy" :medium "dd/MM/yyyy" :long "d 
MMMM yyyy" :full "EEEE, d MMMM yyyy")
-     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :full 
"h:mm:ss a z"))
+     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :full 
"h:mm:ss a z")
+     :parent                   en)
     (en-CA
      :date-patterns            (:short "dd/MM/yy" :medium "d-MMM-yyyy" :long 
"MMMM d, yyyy" :full "EEEE, MMMM d, yyyy")
-     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :long 
"h:mm:ss z a" :full "h:mm:ss 'o''clock' a z"))
+     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :long 
"h:mm:ss z a" :full "h:mm:ss 'o''clock' a z")
+     :parent                   en)
     (en-GB
      :date-patterns            (:short "dd/MM/yy" :medium "dd-MMM-yyyy" :long 
"dd MMMM yyyy" :full "EEEE, d MMMM yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "HH:mm:ss 'o''clock' z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "HH:mm:ss 'o''clock' z")
+     :parent                   en)
     (en-IE
      :date-patterns            (:short "dd/MM/yy" :medium "dd-MMM-yyyy" :long 
"dd MMMM yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "HH:mm:ss 'o''clock' z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "HH:mm:ss 'o''clock' z")
+     :parent                   en)
     (en-IN
-     :date-patterns            (:short "d/M/yy" :medium "d MMM, yyyy" :long "d 
MMMM, yyyy" :full "EEEE, d MMMM, yyyy"))
+     :date-patterns            (:short "d/M/yy" :medium "d MMM, yyyy" :long "d 
MMMM, yyyy" :full "EEEE, d MMMM, yyyy")
+     :parent                   en)
     (en-MT
      :date-patterns            (:short "dd/MM/yyyy" :medium "dd MMM yyyy" 
:long "dd MMMM yyyy" :full "EEEE, d MMMM yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z")
+     :parent                   en)
     (en-NZ
      :date-patterns            (:short "d/MM/yy" :medium "d/MM/yyyy" :long "d 
MMMM yyyy" :full "EEEE, d MMMM yyyy")
-     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :full 
"h:mm:ss a z"))
+     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :full 
"h:mm:ss a z")
+     :parent                   en)
     (en-PH
-     :date-patterns            (:short "M/d/yy" :medium "MM d, yy" :long "MMMM 
d, yyyy" :full "EEEE, MMMM d, yyyy"))
+     :date-patterns            (:short "M/d/yy" :medium "MM d, yy" :long "MMMM 
d, yyyy" :full "EEEE, MMMM d, yyyy")
+     :parent                   en)
     (en-SG
-     :date-patterns            (:short "d/M/yy" :medium "d MMM, yyyy" :long "d 
MMMM, yyyy" :full "EEEE, d MMMM, yyyy"))
+     :date-patterns            (:short "d/M/yy" :medium "d MMM, yyyy" :long "d 
MMMM, yyyy" :full "EEEE, d MMMM, yyyy")
+     :parent                   en)
     (en-ZA
      :date-patterns            (:short "yyyy/MM/dd" :medium "dd MMM yyyy" 
:long "dd MMMM yyyy" :full "EEEE dd MMMM yyyy")
-     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a"))
+     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a")
+     :parent                   en)
     (es
      :decimal-separator        ?,
      :eras                     ["antes de Cristo" "anno Dómini"]
@@ -763,63 +780,82 @@ Supported fields:
      :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "HH'H'mm'' z"))
     (es-AR
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"H:mm:ss z" :full "HH'h'''mm z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"H:mm:ss z" :full "HH'h'''mm z")
+     :parent                   es)
     (es-BO
      :date-patterns            (:short "dd-MM-yy" :medium "dd-MM-yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-CL
      :date-patterns            (:short "dd-MM-yy" :medium "dd-MM-yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "HH:mm:ss zzzz"))
+     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "HH:mm:ss zzzz")
+     :parent                   es)
     (es-CO
      :date-patterns            (:short "d/MM/yy" :medium "d/MM/yyyy" :long "d' 
de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-CR
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-DO
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-EC
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "HH:mm:ss zzzz"))
+     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "HH:mm:ss zzzz")
+     :parent                   es)
     (es-GT
      :date-patterns            (:short "d/MM/yy" :medium "d/MM/yyyy" :long "d' 
de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-HN
      :date-patterns            (:short "MM-dd-yy" :medium "MM-dd-yyyy" :long 
"dd' de 'MMMM' de 'yyyy" :full "EEEE dd' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-MX
      :date-patterns            (:short "d/MM/yy" :medium "d/MM/yyyy" :long "d' 
de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-NI
      :date-patterns            (:short "MM-dd-yy" :medium "MM-dd-yyyy" :long 
"dd' de 'MMMM' de 'yyyy" :full "EEEE dd' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-PA
      :date-patterns            (:short "MM/dd/yy" :medium "MM/dd/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-PE
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-PR
      :date-patterns            (:short "MM-dd-yy" :medium "MM-dd-yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-PY
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-SV
      :date-patterns            (:short "MM-dd-yy" :medium "MM-dd-yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-US
      :eras                     ["a.C." "d.C."]
      :am-pm                    ["a.m." "p.m."]
      :date-patterns            (:short "M/d/yy" :medium "MMM d, yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :long 
"h:mm:ss a z"))
+     :time-patterns            (:short "h:mm a" :medium "h:mm:ss a" :long 
"h:mm:ss a z")
+     :parent                   es)
     (es-UY
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (es-VE
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z"))
+     :time-patterns            (:short "hh:mm a" :medium "hh:mm:ss a" :long 
"hh:mm:ss a z")
+     :parent                   es)
     (et
      :decimal-separator        ?,
      :eras                     ["e.m.a." "m.a.j."]
@@ -852,13 +888,16 @@ Supported fields:
      :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "HH' h 'mm z"))
     (fr-BE
      :date-patterns            (:short "d/MM/yy" :medium "dd-MMM-yyyy" :long 
"d MMMM yyyy" :full "EEEE d MMMM yyyy")
-     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "H' h 'mm' min 'ss' s 'z"))
+     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "H' h 'mm' min 'ss' s 'z")
+     :parent                   fr)
     (fr-CA
      :date-patterns            (:short "yy-MM-dd" :medium "yyyy-MM-dd" :long 
"d MMMM yyyy" :full "EEEE d MMMM yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "H' h 'mm z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "H' h 'mm z")
+     :parent                   fr)
     (fr-CH
      :date-patterns            (:short "dd.MM.yy" :medium "d MMM yyyy" :long 
"d. MMMM yyyy" :full "EEEE, d. MMMM yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "HH.mm.' h' z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "HH.mm.' h' z")
+     :parent                   fr)
     (ga
      :eras                     ["RC" "AD"]
      :month-context-abbr       ["Ean" "Feabh" "Márta" "Aib" "Beal" "Meith" 
"Iúil" "Lún" "MFómh" "DFómh" "Samh" "Noll"]
@@ -869,7 +908,8 @@ Supported fields:
      :date-patterns            (:short "yy/MM/dd" :medium "yyyy MMM d" :long 
"yyyy MMMM d" :full "EEEE, yyyy MMMM dd")
      :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z"))
     (ga-IE
-     :date-patterns            (:short "dd/MM/yyyy" :medium "d MMM yyyy" :long 
"d MMMM yyyy" :full "EEEE d MMMM yyyy"))
+     :date-patterns            (:short "dd/MM/yyyy" :medium "d MMM yyyy" :long 
"d MMMM yyyy" :full "EEEE d MMMM yyyy")
+     :parent                   ga)
     (he
      :eras                     ["לסה"נ" "לפסה"נ"]
      :month-context-abbr       ["ינו" "פבר" "מרץ" "אפר" "מאי" "יונ" "יול" 
"אוג" "ספט" "אוק" "נוב" "דצמ"]
@@ -894,7 +934,8 @@ Supported fields:
      :weekday-context-abbr     ["सोम" "मंगल" "बुध" "गुरु" "शुक्र" "शनि" "रवि"]
      :weekday-context-names    ["सोमवार" "मंगलवार" "बुधवार" "गुरुवार" 
"शुक्रवार" "शनिवार" "रविवार"]
      :am-pm                    ["पूर्वाह्न" "अपराह्न"]
-     :date-patterns            (:short "d/M/yy" :medium "d MMM, yyyy" :long "d 
MMMM, yyyy" :full "EEEE, d MMMM, yyyy"))
+     :date-patterns            (:short "d/M/yy" :medium "d MMM, yyyy" :long "d 
MMMM, yyyy" :full "EEEE, d MMMM, yyyy")
+     :parent                   hi)
     (hr
      :decimal-separator        ?,
      :eras                     ["Prije Krista" "Poslije Krista"]
@@ -907,7 +948,8 @@ Supported fields:
      :date-patterns            (:medium "yyyy.MM.dd" :long "yyyy. MMMM dd")
      :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z"))
     (hr-HR
-     :date-patterns            (:short "dd.MM.yy." :medium "dd.MM.yyyy." :long 
"yyyy. MMMM dd"))
+     :date-patterns            (:short "dd.MM.yy." :medium "dd.MM.yyyy." :long 
"yyyy. MMMM dd")
+     :parent                   hr)
     (hu
      :decimal-separator        ?,
      :eras                     ["i.e." "i.u."]
@@ -929,7 +971,8 @@ Supported fields:
      :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z"))
     (id-ID
      :date-patterns            (:short "dd/MM/yy" :medium "dd MMM yy" :long 
"dd MMMM yyyy" :full "EEEE dd MMMM yyyy")
-     :time-patterns            (:short "H:mm" :medium "H:mm:ss"))
+     :time-patterns            (:short "H:mm" :medium "H:mm:ss")
+     :parent                   id)
     (is
      :decimal-separator        ?,
      :month-context-abbr       ["jan." "feb." "mar." "apr." "maí" "jún." 
"júl." "ágú." "sep." "okt." "nóv." "des."]
@@ -950,7 +993,8 @@ Supported fields:
      :time-patterns            (:short "H.mm" :medium "H.mm.ss" :long "H.mm.ss 
z"))
     (it-CH
      :date-patterns            (:short "dd.MM.yy" :medium "d-MMM-yyyy" :long 
"d. MMMM yyyy" :full "EEEE, d. MMMM yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "H.mm' h' z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z" :full "H.mm' h' z")
+     :parent                   it)
     (ja
      :eras                     ["紀元前" "西暦"]
      :month-context-abbr       ["1" "2" "3" "4" "5" "6" "7" "8" "9" "10" "11" 
"12"]
@@ -961,7 +1005,8 @@ Supported fields:
      :date-patterns            (:short "yy/MM/dd" :medium "yyyy/MM/dd" :full 
"yyyy'年'M'月'd'日'")
      :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "H'時'mm'分'ss'秒' z"))
     (ja-JP-u-ca-japanese-x-lvariant-JP
-     :date-patterns            (:medium "Gy.MM.dd" :full 
"GGGGyyyy'年'M'月'd'日'"))
+     :date-patterns            (:medium "Gy.MM.dd" :full "GGGGyyyy'年'M'月'd'日'")
+     :parent                   ja)
     (ko
      :eras                     ["기원전" "서기"]
      :month-context-abbr       ["1월" "2월" "3월" "4월" "5월" "6월" "7월" "8월" "9월" 
"10월" "11월" "12월"]
@@ -1011,7 +1056,8 @@ Supported fields:
      :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z"))
     (ms-MY
      :date-patterns            (:short "dd/MM/yyyy" :medium "dd MMMM yyyy" 
:full "EEEE dd MMM yyyy")
-     :time-patterns            (:short "h:mm" :medium "h:mm:ss a" :long 
"h:mm:ss a z"))
+     :time-patterns            (:short "h:mm" :medium "h:mm:ss a" :long 
"h:mm:ss a z")
+     :parent                   ms)
     (mt
      :eras                     ["QK" "WK"]
      :month-context-abbr       ["Jan" "Fra" "Mar" "Apr" "Mej" "Ġun" "Lul" 
"Aww" "Set" "Ott" "Nov" "Diċ"]
@@ -1032,10 +1078,12 @@ Supported fields:
      :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "H:mm:ss' uur' z"))
     (nl-BE
      :date-patterns            (:short "d/MM/yy" :medium "d-MMM-yyyy" :long "d 
MMMM yyyy" :full "EEEE d MMMM yyyy")
-     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "H.mm' u. 'z"))
+     :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "H.mm' u. 'z")
+     :parent                   nl)
     (nn-NO
      :weekday-context-abbr     ["må" "ty" "on" "to" "fr" "lau" "su"]
-     :weekday-context-names    ["måndag" "tysdag" "onsdag" "torsdag" "fredag" 
"laurdag" "sundag"])
+     :weekday-context-names    ["måndag" "tysdag" "onsdag" "torsdag" "fredag" 
"laurdag" "sundag"]
+     :parent                   no)
     (no
      :decimal-separator        ?,
      :month-context-abbr       ["jan" "feb" "mar" "apr" "mai" "jun" "jul" 
"aug" "sep" "okt" "nov" "des"]
@@ -1055,7 +1103,8 @@ Supported fields:
      :date-patterns            (:short "yy-MM-dd" :medium "yyyy-MM-dd" :long 
"d MMMM yyyy" :full "EEEE, d MMMM yyyy")
      :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH:mm:ss z"))
     (pl-PL
-     :date-patterns            (:short "dd.MM.yy" :medium "yyyy-MM-dd" :long 
"d MMMM yyyy" :full "EEEE, d MMMM yyyy"))
+     :date-patterns            (:short "dd.MM.yy" :medium "yyyy-MM-dd" :long 
"d MMMM yyyy" :full "EEEE, d MMMM yyyy")
+     :parent                   pl)
     (pt
      :decimal-separator        ?,
      :eras                     ["a.C." "d.C."]
@@ -1067,7 +1116,8 @@ Supported fields:
      :time-patterns            (:short "H:mm" :medium "H:mm:ss" :long "H:mm:ss 
z" :full "HH'H'mm'm' z"))
     (pt-BR
      :date-patterns            (:short "dd/MM/yy" :medium "dd/MM/yyyy" :long 
"d' de 'MMMM' de 'yyyy" :full "EEEE, d' de 'MMMM' de 'yyyy")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"H'h'm'min's's' z" :full "HH'h'mm'min'ss's' z"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"H'h'm'min's's' z" :full "HH'h'mm'min'ss's' z")
+     :parent                   pt)
     (ro
      :decimal-separator        ?,
      :eras                     ["d.C." "î.d.C."]
@@ -1133,7 +1183,8 @@ Supported fields:
      :weekday-context-abbr     ["пон" "уто" "сри" "чет" "пет" "суб" "нед"]
      :weekday-context-names    ["понедељак" "уторак" "сриједа" "четвртак" 
"петак" "субота" "недеља"]
      :date-patterns            (:short "yy-MM-dd" :medium "yyyy-MM-dd" :long 
"dd. MMMM yyyy." :full "EEEE, dd. MMMM yyyy.")
-     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH.mm.ss z" :full "HH 'часова', mm 'минута', ss' секунди'"))
+     :time-patterns            (:short "HH:mm" :medium "HH:mm:ss" :long 
"HH.mm.ss z" :full "HH 'часова', mm 'минута', ss' секунди'")
+     :parent                   sr)
     (sr-Latn
      :eras                     ["p. n. e." "n. e"]
      :month-context-abbr       ["jan" "feb" "mar" "apr" "maj" "jun" "jul" 
"avg" "sep" "okt" "nov" "dec"]
@@ -1141,7 +1192,8 @@ Supported fields:
      :weekday-context-abbr     ["pon" "uto" "sre" "čet" "pet" "sub" "ned"]
      :weekday-context-names    ["ponedeljak" "utorak" "sreda" "četvrtak" 
"petak" "subota" "nedelja"]
      :date-patterns            (:short "d.M.yy." :medium "dd.MM.y." :long "dd. 
MMMM y." :full "EEEE, dd. MMMM y.")
-     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz"))
+     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz")
+     :parent                   sr)
     (sr-Latn-BA
      :eras                     ["p. n. e." "n. e"]
      :month-context-abbr       ["jan" "feb" "mar" "apr" "maj" "jun" "jul" 
"avg" "sep" "okt" "nov" "dec"]
@@ -1149,7 +1201,8 @@ Supported fields:
      :weekday-context-abbr     ["pon" "uto" "sre" "čet" "pet" "sub" "ned"]
      :weekday-context-names    ["ponedeljak" "utorak" "sreda" "četvrtak" 
"petak" "subota" "nedelja"]
      :date-patterns            (:short "d.M.yy." :medium "dd.MM.y." :long "dd. 
MMMM y." :full "EEEE, dd. MMMM y.")
-     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz"))
+     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz")
+     :parent                   sr)
     (sr-Latn-ME
      :eras                     ["p. n. e." "n. e"]
      :month-context-abbr       ["jan" "feb" "mar" "apr" "maj" "jun" "jul" 
"avg" "sep" "okt" "nov" "dec"]
@@ -1157,7 +1210,8 @@ Supported fields:
      :weekday-context-abbr     ["pon" "uto" "sre" "čet" "pet" "sub" "ned"]
      :weekday-context-names    ["ponedeljak" "utorak" "sreda" "četvrtak" 
"petak" "subota" "nedelja"]
      :date-patterns            (:short "d.M.yy." :medium "dd.MM.y." :long 
"d.MM.yyyy." :full "EEEE, dd. MMMM y.")
-     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz"))
+     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz")
+     :parent                   sr)
     (sr-Latn-RS
      :eras                     ["p. n. e." "n. e"]
      :month-context-abbr       ["jan" "feb" "mar" "apr" "maj" "jun" "jul" 
"avg" "sep" "okt" "nov" "dec"]
@@ -1165,7 +1219,8 @@ Supported fields:
      :weekday-context-abbr     ["pon" "uto" "sre" "čet" "pet" "sub" "ned"]
      :weekday-context-names    ["ponedeljak" "utorak" "sreda" "četvrtak" 
"petak" "subota" "nedelja"]
      :date-patterns            (:short "d.M.yy." :medium "dd.MM.y." :long "dd. 
MMMM y." :full "EEEE, dd. MMMM y.")
-     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz"))
+     :time-patterns            (:short "HH.mm" :medium "HH.mm.ss" :long 
"HH.mm.ss z" :full "HH.mm.ss zzzz")
+     :parent                   sr)
     (sv
      :decimal-separator        ?,
      :eras                     ["före Kristus" "efter Kristus"]
@@ -1238,16 +1293,19 @@ Supported fields:
      :month-context-abbr       ["1月" "2月" "3月" "4月" "5月" "6月" "7月" "8月" "9月" 
"10月" "11月" "12月"]
      :weekday-context-abbr     ["一" "二" "三" "四" "五" "六" "日"]
      :date-patterns            (:short "yy'年'M'月'd'日'" :medium 
"yyyy'年'M'月'd'日'" :long "yyyy'年'MM'月'dd'日' EEEE")
-     :time-patterns            (:short "ah:mm" :medium "ahh:mm:ss" :long 
"ahh'時'mm'分'ss'秒'" :full "ahh'時'mm'分'ss'秒' z"))
+     :time-patterns            (:short "ah:mm" :medium "ahh:mm:ss" :long 
"ahh'時'mm'分'ss'秒'" :full "ahh'時'mm'分'ss'秒' z")
+     :parent                   zh)
     (zh-SG
      :weekday-context-abbr     ["周一" "周二" "周三" "周四" "周五" "周六" "周日"]
      :date-patterns            (:short "dd/MM/yy" :medium "dd-MMM-yy" :long 
"dd MMM yyyy" :full "dd MMMM yyyy")
-     :time-patterns            (:medium "a hh:mm" :long "a hh:mm:ss"))
+     :time-patterns            (:medium "a hh:mm" :long "a hh:mm:ss")
+     :parent                   zh)
     (zh-TW
      :eras                     ["西元前" "西元"]
      :month-standalone-abbr    ["1月" "2月" "3月" "4月" "5月" "6月" "7月" "8月" "9月" 
"10月" "11月" "12月"]
      :date-patterns            (:medium "yyyy/M/d" :long "yyyy'年'M'月'd'日'" 
:full "yyyy'年'M'月'd'日' EEEE")
-     :time-patterns            (:short "a h:mm" :medium "a hh:mm:ss" :long 
"ahh'時'mm'分'ss'秒'" :full "ahh'時'mm'分'ss'秒' z"))))
+     :time-patterns            (:short "a h:mm" :medium "a hh:mm:ss" :long 
"ahh'時'mm'分'ss'秒'" :full "ahh'時'mm'分'ss'秒' z")
+     :parent                   zh)))
 
 
 (provide 'datetime)
diff --git a/dev/HarvestData.java b/dev/HarvestData.java
index 16604133bf..c9f9ab0abf 100644
--- a/dev/HarvestData.java
+++ b/dev/HarvestData.java
@@ -120,6 +120,8 @@ public class HarvestData
                     if (Objects.equals (entry.getValue (), data.get 
(parent).get (entry.getKey ())))
                         it.remove ();
                 }
+
+                data.get (locale).put (":parent", parent.toLanguageTag ());
             }
         }
 

Reply via email to