Index: head/share/timedef/ar_JO.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/ar_MA.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/ar_SA.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/be_BY.CP1131.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/be_BY.CP1251.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/be_BY.ISO8859-5.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/be_BY.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/bg_BG.CP1251.src =================================================================== --- head/share/timedef/bg_BG.CP1251.src (revision 302015) +++ head/share/timedef/bg_BG.CP1251.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names . . . . . . . . # # Long month names (as in a date) # # Short weekday names # # Long weekday names # # X_fmt %H:%M:%S # # x_fmt -%e.%m.%y г. +%d.%m.%y г. # # c_fmt %A %e %B %Y . %H:%M:%S # # AM/PM .. .. # # date_fmt %A %e %B %Y . %H:%M:%S %Z # # Long month names (without case ending) # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/bg_BG.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/ca_IT.ISO8859-15.src =================================================================== --- head/share/timedef/ca_IT.ISO8859-15.src (revision 302015) +++ head/share/timedef/ca_IT.ISO8859-15.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names gen. febr. mar abr. maig juny jul. ag. set. oct. nov. des. # # Long month names (as in a date) de gener de febrer de mar d'abril de maig de juny de juliol d'agost de setembre d'octubre de novembre de desembre # # Short weekday names dg. dl. dt. dc. dj. dv. ds. # # Long weekday names diumenge dilluns dimarts dimecres dijous divendres dissabte # # X_fmt %H:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %A %e %B de %Y, %H:%M:%S # # AM/PM a. m. p. m. # # date_fmt %A %e %B de %Y, %H:%M:%S %Z # # Long month names (without case ending) de gener de febrer de mar d'abril de maig de juny de juliol d'agost de setembre d'octubre de novembre de desembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/ca_IT.UTF-8.src =================================================================== --- head/share/timedef/ca_IT.UTF-8.src (revision 302015) +++ head/share/timedef/ca_IT.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names gen. febr. març abr. maig juny jul. ag. set. oct. nov. des. # # Long month names (as in a date) de gener de febrer de març d’abril de maig de juny de juliol d’agost de setembre d’octubre de novembre de desembre # # Short weekday names dg. dl. dt. dc. dj. dv. ds. # # Long weekday names diumenge dilluns dimarts dimecres dijous divendres dissabte # # X_fmt %H:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %A %e %B de %Y, %H:%M:%S # # AM/PM a. m. p. m. # # date_fmt %A %e %B de %Y, %H:%M:%S %Z # # Long month names (without case ending) de gener de febrer de març d’abril de maig de juny de juliol d’agost de setembre d’octubre de novembre de desembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/el_GR.ISO8859-7.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/el_GR.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/en_SG.UTF-8.src =================================================================== --- head/share/timedef/en_SG.UTF-8.src (revision 302015) +++ head/share/timedef/en_SG.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec # # Long month names (as in a date) January February March April May June July August September October November December # # Short weekday names Sun Mon Tue Wed Thu Fri Sat # # Long weekday names Sunday Monday Tuesday Wednesday Thursday Friday Saturday # # X_fmt %I:%M:%S %p # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %A %e %B %Y at %I:%M:%S %p # # AM/PM AM PM # # date_fmt %A %e %B %Y at %I:%M:%S %p %Z # # Long month names (without case ending) January February March April May June July August September October November December # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/en_US.UTF-8.src =================================================================== --- head/share/timedef/en_US.UTF-8.src (revision 302015) +++ head/share/timedef/en_US.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec # # Long month names (as in a date) January February March April May June July August September October November December # # Short weekday names Sun Mon Tue Wed Thu Fri Sat # # Long weekday names Sunday Monday Tuesday Wednesday Thursday Friday Saturday # # X_fmt %I:%M:%S %p # # x_fmt -%m/%e/%y +%m/%d/%y # # c_fmt %A, %B %e, %Y at %I:%M:%S %p # # AM/PM AM PM # # date_fmt %A, %B %e, %Y at %I:%M:%S %p %Z # # Long month names (without case ending) January February March April May June July August September October November December # # md_order -m +md # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/es_AR.ISO8859-1.src =================================================================== --- head/share/timedef/es_AR.ISO8859-1.src (revision 302015) +++ head/share/timedef/es_AR.ISO8859-1.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names ene. feb. mar. abr. may. jun. jul. ago. sept. oct. nov. dic. # # Long month names (as in a date) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # Short weekday names dom. lun. mar. mi. jue. vie. sb. # # Long weekday names domingo lunes martes mircoles jueves viernes sbado # # X_fmt %I:%M:%S %p # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %e de %B de %Y, %I:%M:%S %p # # AM/PM a. m. p. m. # # date_fmt %e de %B de %Y, %I:%M:%S %p %Z # # Long month names (without case ending) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/es_CR.UTF-8.src =================================================================== --- head/share/timedef/es_CR.UTF-8.src (revision 302015) +++ head/share/timedef/es_CR.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names ene. feb. mar. abr. may. jun. jul. ago. sept. oct. nov. dic. # # Long month names (as in a date) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # Short weekday names dom. lun. mar. mié. jue. vie. sáb. # # Long weekday names domingo lunes martes miércoles jueves viernes sábado # # X_fmt %I:%M:%S %p # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %e de %B de %Y, %I:%M:%S %p # # AM/PM a. m. p. m. # # date_fmt %e de %B de %Y, %I:%M:%S %p %Z # # Long month names (without case ending) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/es_ES.ISO8859-15.src =================================================================== --- head/share/timedef/es_ES.ISO8859-15.src (revision 302015) +++ head/share/timedef/es_ES.ISO8859-15.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names ene. feb. mar. abr. may. jun. jul. ago. sept. oct. nov. dic. # # Long month names (as in a date) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # Short weekday names dom. lun. mar. mi. jue. vie. sb. # # Long weekday names domingo lunes martes mircoles jueves viernes sbado # # X_fmt %H:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %e de %B de %Y, %H:%M:%S # # AM/PM a. m. p. m. # # date_fmt %e de %B de %Y, %H:%M:%S %Z # # Long month names (without case ending) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/es_ES.UTF-8.src =================================================================== --- head/share/timedef/es_ES.UTF-8.src (revision 302015) +++ head/share/timedef/es_ES.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names ene. feb. mar. abr. may. jun. jul. ago. sept. oct. nov. dic. # # Long month names (as in a date) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # Short weekday names dom. lun. mar. mié. jue. vie. sáb. # # Long weekday names domingo lunes martes miércoles jueves viernes sábado # # X_fmt %H:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %e de %B de %Y, %H:%M:%S # # AM/PM a. m. p. m. # # date_fmt %e de %B de %Y, %H:%M:%S %Z # # Long month names (without case ending) enero febrero marzo abril mayo junio julio agosto septiembre octubre noviembre diciembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/fi_FI.ISO8859-15.src =================================================================== --- head/share/timedef/fi_FI.ISO8859-15.src (revision 302015) +++ head/share/timedef/fi_FI.ISO8859-15.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta keskuuta heinkuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta # # Long month names (as in a date) tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta keskuuta heinkuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta # # Short weekday names su ma ti ke to pe la # # Long weekday names sunnuntaina maanantaina tiistaina keskiviikkona torstaina perjantaina lauantaina # # X_fmt %H.%M.%S # # x_fmt -%e.%m.%Y +%d.%m.%Y # # c_fmt %e. %B %Y klo %H.%M.%S # # AM/PM ap. ip. # # date_fmt %e. %B %Y klo %H.%M.%S %Z # # Long month names (without case ending) tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta keskuuta heinkuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta # # md_order -m +dm # # ampm_fmt %I.%M.%S %p # EOF Index: head/share/timedef/fi_FI.UTF-8.src =================================================================== --- head/share/timedef/fi_FI.UTF-8.src (revision 302015) +++ head/share/timedef/fi_FI.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta kesäkuuta heinäkuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta # # Long month names (as in a date) tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta kesäkuuta heinäkuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta # # Short weekday names su ma ti ke to pe la # # Long weekday names sunnuntaina maanantaina tiistaina keskiviikkona torstaina perjantaina lauantaina # # X_fmt %H.%M.%S # # x_fmt -%e.%m.%Y +%d.%m.%Y # # c_fmt %e. %B %Y klo %H.%M.%S # # AM/PM ap. ip. # # date_fmt %e. %B %Y klo %H.%M.%S %Z # # Long month names (without case ending) tammikuuta helmikuuta maaliskuuta huhtikuuta toukokuuta kesäkuuta heinäkuuta elokuuta syyskuuta lokakuuta marraskuuta joulukuuta # # md_order -m +dm # # ampm_fmt %I.%M.%S %p # EOF Index: head/share/timedef/fr_BE.ISO8859-15.src =================================================================== --- head/share/timedef/fr_BE.ISO8859-15.src (revision 302015) +++ head/share/timedef/fr_BE.ISO8859-15.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names janv. fvr. mars avr. mai juin juil. aot sept. oct. nov. dc. # # Long month names (as in a date) janvier fvrier mars avril mai juin juillet aot septembre octobre novembre dcembre # # Short weekday names dim. lun. mar. mer. jeu. ven. sam. # # Long weekday names dimanche lundi mardi mercredi jeudi vendredi samedi # # X_fmt %H:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %A %e %B %Y %H:%M:%S # # AM/PM AM PM # # date_fmt %A %e %B %Y %H:%M:%S %Z # # Long month names (without case ending) janvier fvrier mars avril mai juin juillet aot septembre octobre novembre dcembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/fr_BE.UTF-8.src =================================================================== --- head/share/timedef/fr_BE.UTF-8.src (revision 302015) +++ head/share/timedef/fr_BE.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names janv. févr. mars avr. mai juin juil. août sept. oct. nov. déc. # # Long month names (as in a date) janvier février mars avril mai juin juillet août septembre octobre novembre décembre # # Short weekday names dim. lun. mar. mer. jeu. ven. sam. # # Long weekday names dimanche lundi mardi mercredi jeudi vendredi samedi # # X_fmt %H:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %A %e %B %Y %H:%M:%S # # AM/PM AM PM # # date_fmt %A %e %B %Y %H:%M:%S %Z # # Long month names (without case ending) janvier février mars avril mai juin juillet août septembre octobre novembre décembre # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/he_IL.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/hi_IN.ISCII-DEV.src =================================================================== --- head/share/timedef/hi_IN.ISCII-DEV.src (revision 302015) +++ head/share/timedef/hi_IN.ISCII-DEV.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names Ƒ ϑ ̧ ё ‘ ޑ ԑ ב # # Long month names (as in a date) ̧ ڧ ¢ Ԣ ע # # Short weekday names ̢ ݳ # # Long weekday names ̢ ݳ # # X_fmt %I:%M:%S %p # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %A %e %B %Y %I:%M:%S %p # # AM/PM # # date_fmt %A %e %B %Y %I:%M:%S %p %Z # # Long month names (without case ending) ̧ ڧ ¢ Ԣ ע # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/hi_IN.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/is_IS.ISO8859-15.src =================================================================== --- head/share/timedef/is_IS.ISO8859-15.src (revision 302015) +++ head/share/timedef/is_IS.ISO8859-15.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names jan. feb. mar. apr. ma jn. jl. g. sep. okt. nv. des. # # Long month names (as in a date) janar febrar mars aprl ma jn jl gst september oktber nvember desember # # Short weekday names sun. mn. ri. mi. fim. fs. lau. # # Long weekday names sunnudagur mnudagur rijudagur mivikudagur fimmtudagur fstudagur laugardagur # # X_fmt %H:%M:%S # # x_fmt -%e.%m.%Y +%d.%m.%Y # # c_fmt %e. %B %Y kl. %H:%M:%S # # AM/PM f.h. e.h. # # date_fmt %e. %B %Y kl. %H:%M:%S %Z # # Long month names (without case ending) janar febrar mars aprl ma jn jl gst september oktber nvember desember # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/is_IS.UTF-8.src =================================================================== --- head/share/timedef/is_IS.UTF-8.src (revision 302015) +++ head/share/timedef/is_IS.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names jan. feb. mar. apr. maí jún. júl. ágú. sep. okt. nóv. des. # # Long month names (as in a date) janúar febrúar mars apríl maí júní júlí ágúst september október nóvember desember # # Short weekday names sun. mán. þri. mið. fim. fös. lau. # # Long weekday names sunnudagur mánudagur þriðjudagur miðvikudagur fimmtudagur föstudagur laugardagur # # X_fmt %H:%M:%S # # x_fmt -%e.%m.%Y +%d.%m.%Y # # c_fmt %e. %B %Y kl. %H:%M:%S # # AM/PM f.h. e.h. # # date_fmt %e. %B %Y kl. %H:%M:%S %Z # # Long month names (without case ending) janúar febrúar mars apríl maí júní júlí ágúst september október nóvember desember # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/ko_KR.UTF-8.src =================================================================== --- head/share/timedef/ko_KR.UTF-8.src (revision 302015) +++ head/share/timedef/ko_KR.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월 # # Long month names (as in a date) 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월 # # Short weekday names 일 월 화 수 목 금 토 # # Long weekday names 일요일 월요일 화요일 수요일 목요일 금요일 토요일 # # X_fmt %p %I:%M:%S # # x_fmt %y. %m. %e. # # c_fmt %Y년 %m월 %e일 %p %I시 %M분 %S초 # # AM/PM 오전 오후 # # date_fmt %Y년 %m월 %e일 %p %I시 %M분 %S초 %Z # # Long month names (without case ending) 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월 # # md_order -m +md # # ampm_fmt %p %I:%M:%S # EOF Index: head/share/timedef/ko_KR.eucKR.src =================================================================== --- head/share/timedef/ko_KR.eucKR.src (revision 302015) +++ head/share/timedef/ko_KR.eucKR.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names 1 2 3 4 5 6 7 8 9 10 11 12 # # Long month names (as in a date) 1 2 3 4 5 6 7 8 9 10 11 12 # # Short weekday names ȭ # # Long weekday names Ͽ ȭ ݿ # # X_fmt %p %I:%M:%S # # x_fmt %y. %m. %e. # # c_fmt %Y %m %e %p %I %M %S # # AM/PM # # date_fmt %Y %m %e %p %I %M %S %Z # # Long month names (without case ending) 1 2 3 4 5 6 7 8 9 10 11 12 # # md_order -m +md # # ampm_fmt %p %I:%M:%S # EOF Index: head/share/timedef/nl_BE.UTF-8.src =================================================================== --- head/share/timedef/nl_BE.UTF-8.src (revision 302015) +++ head/share/timedef/nl_BE.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names jan. feb. mrt. apr. mei jun. jul. aug. sep. okt. nov. dec. # # Long month names (as in a date) januari februari maart april mei juni juli augustus september oktober november december # # Short weekday names zo ma di wo do vr za # # Long weekday names zondag maandag dinsdag woensdag donderdag vrijdag zaterdag # # X_fmt %H:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %A %e %B %Y %H:%M:%S # # AM/PM a.m. p.m. # # date_fmt %A %e %B %Y %H:%M:%S %Z # # Long month names (without case ending) januari februari maart april mei juni juli augustus september oktober november december # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/sl_SI.ISO8859-2.src =================================================================== --- head/share/timedef/sl_SI.ISO8859-2.src (revision 302015) +++ head/share/timedef/sl_SI.ISO8859-2.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names jan. feb. mar. apr. maj jun. jul. avg. sep. okt. nov. dec. # # Long month names (as in a date) januar februar marec april maj junij julij avgust september oktober november december # # Short weekday names ned. pon. tor. sre. et. pet. sob. # # Long weekday names nedelja ponedeljek torek sreda etrtek petek sobota # # X_fmt %H:%M:%S # # x_fmt %e. %m. %y # # c_fmt %d. %B %Y %H:%M:%S # # AM/PM dop. pop. # # date_fmt %d. %B %Y %H:%M:%S %Z # # Long month names (without case ending) januar februar marec april maj junij julij avgust september oktober november december # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/sl_SI.UTF-8.src =================================================================== --- head/share/timedef/sl_SI.UTF-8.src (revision 302015) +++ head/share/timedef/sl_SI.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names jan. feb. mar. apr. maj jun. jul. avg. sep. okt. nov. dec. # # Long month names (as in a date) januar februar marec april maj junij julij avgust september oktober november december # # Short weekday names ned. pon. tor. sre. čet. pet. sob. # # Long weekday names nedelja ponedeljek torek sreda četrtek petek sobota # # X_fmt %H:%M:%S # # x_fmt %e. %m. %y # # c_fmt %d. %B %Y %H:%M:%S # # AM/PM dop. pop. # # date_fmt %d. %B %Y %H:%M:%S %Z # # Long month names (without case ending) januar februar marec april maj junij julij avgust september oktober november december # # md_order -m +dm # # ampm_fmt %I:%M:%S %p # EOF Index: head/share/timedef/sr_Cyrl_RS.ISO8859-5.src =================================================================== --- head/share/timedef/sr_Cyrl_RS.ISO8859-5.src (revision 302015) +++ head/share/timedef/sr_Cyrl_RS.ISO8859-5.src (revision 302016) @@ -1,133 +1,133 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names ""jan feb mar apr maj jun jul avg sep okt nov dec # # Long month names (as in a date) ""januar februar mart april maj jun jul avgust septembar oktobar novembar decembar # # Short weekday names ""ned pon uto sre cet pet sub # # Long weekday names ""nedelja ponedeljak utorak sreda cetvrtak petak subota # # X_fmt %H.%M.%S""%H.%M.%S # # x_fmt -%e.%m.%y.""%e.%m.%y. +%d.%m.%y.""%e.%m.%y. # # c_fmt %d. %B %Y. %H.%M.%S""%d. %B %Y. %H.%M.%S %Z # # AM/PM ""pre podne po podne # # date_fmt %d. %B %Y. %H.%M.%S %Z""%d. %B %Y. %H.%M.%S %Z # # Long month names (without case ending) ""januar februar mart april maj jun jul avgust septembar oktobar novembar decembar # # md_order -mm +dmdm # # ampm_fmt %I.%M.%S %p""%I.%M.%S %p # EOF Index: head/share/timedef/sr_Latn_RS.ISO8859-2.src =================================================================== --- head/share/timedef/sr_Latn_RS.ISO8859-2.src (revision 302015) +++ head/share/timedef/sr_Latn_RS.ISO8859-2.src (revision 302016) @@ -1,133 +1,133 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names jah feb mar apr maj juh jul abg cep okt hob dec""jan feb mar apr maj jun jul avg sep okt nov dec # # Long month names (as in a date) jahuar februar mart aprjl maj juh jul abguct ceptembar oktobar hobembar decembar""januar februar mart april maj jun jul avgust septembar oktobar novembar decembar # # Short weekday names hed poh uto cre et pet cub""ned pon uto sre et pet sub # # Long weekday names hedelja pohedeljak utorak creda etbrtak petak cubota""nedelja ponedeljak utorak sreda etvrtak petak subota # # X_fmt %H.%M.%S""%H.%M.%S # # x_fmt -%e.%m.%y.""%e.%m.%y. +%d.%m.%y.""%d.%m.%y. # # c_fmt %d. %B %Y. %H.%M.%S""%d. %B %Y. %H.%M.%S %Z # # AM/PM pre podhe po podhe""pre podne po podne # # date_fmt %d. %B %Y. %H.%M.%S %Z""%d. %B %Y. %H.%M.%S %Z # # Long month names (without case ending) jahuar februar mart aprjl maj juh jul abguct ceptembar oktobar hobembar decembar""januar februar mart april maj jun jul avgust septembar oktobar novembar decembar # # md_order -mm +dmdm # # ampm_fmt %I.%M.%S %p""%I.%M.%S %p # EOF Index: head/share/timedef/sr_Latn_RS.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/tr_TR.ISO8859-9.src =================================================================== --- head/share/timedef/tr_TR.ISO8859-9.src (revision 302015) +++ head/share/timedef/tr_TR.ISO8859-9.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names Oca ub Mar Nis May Haz Tem Au Eyl Eki Kas Ara # # Long month names (as in a date) Ocak ubat Mart Nisan Mays Haziran Temmuz Austos Eyll Ekim Kasm Aralk # # Short weekday names Paz Pzt Sal ar Per Cum Cmt # # Long weekday names Pazar Pazartesi Sal aramba Perembe Cuma Cumartesi # # X_fmt %H:%M:%S # # x_fmt -%e.%m.%Y +%d.%m.%Y # # c_fmt %A %e %B %Y %H:%M:%S # # AM/PM S # # date_fmt %A %e %B %Y %H:%M:%S %Z # # Long month names (without case ending) Ocak ubat Mart Nisan Mays Haziran Temmuz Austos Eyll Ekim Kasm Aralk # # md_order -m +dm # # ampm_fmt %p %I:%M:%S # EOF Index: head/share/timedef/tr_TR.UTF-8.src =================================================================== --- head/share/timedef/tr_TR.UTF-8.src (revision 302015) +++ head/share/timedef/tr_TR.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names Oca Şub Mar Nis May Haz Tem Ağu Eyl Eki Kas Ara # # Long month names (as in a date) Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık # # Short weekday names Paz Pzt Sal Çar Per Cum Cmt # # Long weekday names Pazar Pazartesi Salı Çarşamba Perşembe Cuma Cumartesi # # X_fmt %H:%M:%S # # x_fmt -%e.%m.%Y +%d.%m.%Y # # c_fmt %A %e %B %Y %H:%M:%S # # AM/PM ÖÖ ÖS # # date_fmt %A %e %B %Y %H:%M:%S %Z # # Long month names (without case ending) Ocak Şubat Mart Nisan Mayıs Haziran Temmuz Ağustos Eylül Ekim Kasım Aralık # # md_order -m +dm # # ampm_fmt %p %I:%M:%S # EOF Index: head/share/timedef/zh_Hans_CN.GB2312.src =================================================================== --- head/share/timedef/zh_Hans_CN.GB2312.src (revision 302015) +++ head/share/timedef/zh_Hans_CN.GB2312.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names !!#1TB !!#2TB !!#3TB !!#4TB !!#5TB !!#6TB !!#7TB !!#8TB !!#9TB #1#0TB #1#1TB #1#2TB # # Long month names (as in a date) R;TB 6~TB H}TB KDTB NeTB AyTB F_TB 0KTB >ETB J.TB J.R;TB J.6~TB # # Short weekday names V\HU V\R; V\6~ V\H} V\KD V\Ne V\Ay # # Long weekday names PGFZHU PGFZR; PGFZ6~ PGFZH} PGFZKD PGFZNe PGFZAy # # X_fmt %p%I:%M:%S # # x_fmt -%y#/%m#/%e +%y#/%m#/%d # # c_fmt %YDj%mTB%eHU %p%I:%M:%S # # AM/PM IONg OBNg # # date_fmt %YDj%mTB%eHU %Z %p%I:%M:%S # # Long month names (without case ending) R;TB 6~TB H}TB KDTB NeTB AyTB F_TB 0KTB >ETB J.TB J.R;TB J.6~TB # # md_order -m +md # # ampm_fmt %p%I:%M:%S # EOF Index: head/share/timedef/zh_Hans_CN.GBK.src =================================================================== --- head/share/timedef/zh_Hans_CN.GBK.src (revision 302015) +++ head/share/timedef/zh_Hans_CN.GBK.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names 1 2 3 4 5 6 7 8 9 10 11 12 # # Long month names (as in a date) һ ʮ ʮһ ʮ # # Short weekday names һ ܶ # # Long weekday names һ ڶ # # X_fmt %p%I:%M:%S # # x_fmt -%y/%m/%e +%y/%m/%d # # c_fmt %Y%m%e %p%I:%M:%S # # AM/PM # # date_fmt %Y%m%e %Z %p%I:%M:%S # # Long month names (without case ending) һ ʮ ʮһ ʮ # # md_order -m +md # # ampm_fmt %p%I:%M:%S # EOF Index: head/share/timedef/zh_Hans_CN.UTF-8.src =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: head/share/timedef/zh_Hans_CN.eucCN.src =================================================================== --- head/share/timedef/zh_Hans_CN.eucCN.src (revision 302015) +++ head/share/timedef/zh_Hans_CN.eucCN.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names # # Long month names (as in a date) һ ʮ ʮһ ʮ # # Short weekday names һ ܶ # # Long weekday names һ ڶ # # X_fmt %p%I:%M:%S # # x_fmt -%y%m%e +%y%m%d # # c_fmt %Y%m%e %p%I:%M:%S # # AM/PM # # date_fmt %Y%m%e %Z %p%I:%M:%S # # Long month names (without case ending) һ ʮ ʮһ ʮ # # md_order -m +md # # ampm_fmt %p%I:%M:%S # EOF Index: head/share/timedef/zh_Hant_HK.UTF-8.src =================================================================== --- head/share/timedef/zh_Hant_HK.UTF-8.src (revision 302015) +++ head/share/timedef/zh_Hant_HK.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 # # Long month names (as in a date) 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 # # Short weekday names 週日 週一 週二 週三 週四 週五 週六 # # Long weekday names 星期日 星期一 星期二 星期三 星期四 星期五 星期六 # # X_fmt %p%I:%M:%S # # x_fmt -%e/%m/%y +%d/%m/%y # # c_fmt %Y年%m月%e日 %p%I:%M:%S [%Z] # # AM/PM 上午 下午 # # date_fmt %Y年%m月%e日 %p%I:%M:%S [%Z] # # Long month names (without case ending) 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 # # md_order -m +dm # # ampm_fmt %p%I:%M:%S # EOF Index: head/share/timedef/zh_Hant_TW.Big5.src =================================================================== --- head/share/timedef/zh_Hant_TW.Big5.src (revision 302015) +++ head/share/timedef/zh_Hant_TW.Big5.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names @ @ @ @ @ @ @ @ @ # # Long month names (as in a date) # # Short weekday names g g@ gG gT g| g g # # Long weekday names P P@ PG PT P| P P # # X_fmt %p%I:%M:%S # # x_fmt -%YA%mA%e +%YA%mA%d # # c_fmt %Y~%m%e %p%I:%M:%S [%Z] # # AM/PM W U # # date_fmt %Y~%m%e %p%I:%M:%S [%Z] # # Long month names (without case ending) # # md_order -m +md # # ampm_fmt %p%I:%M:%S # EOF Index: head/share/timedef/zh_Hant_TW.UTF-8.src =================================================================== --- head/share/timedef/zh_Hant_TW.UTF-8.src (revision 302015) +++ head/share/timedef/zh_Hant_TW.UTF-8.src (revision 302016) @@ -1,87 +1,87 @@ # Warning: Do not edit. This file is automatically generated from the # tools in /usr/src/tools/tools/locale. The data is obtained from the # CLDR project, obtained from http://cldr.unicode.org/ # ----------------------------------------------------------------------------- # # Short month names 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 # # Long month names (as in a date) 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 # # Short weekday names 週日 週一 週二 週三 週四 週五 週六 # # Long weekday names 星期日 星期一 星期二 星期三 星期四 星期五 星期六 # # X_fmt %p%I:%M:%S # # x_fmt -%Y/%m/%e +%Y/%m/%d # # c_fmt %Y年%m月%e日 %p%I:%M:%S [%Z] # # AM/PM 上午 下午 # # date_fmt %Y年%m月%e日 %p%I:%M:%S [%Z] # # Long month names (without case ending) 1月 2月 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 # # md_order -m +md # # ampm_fmt %p%I:%M:%S # EOF Index: head/tools/tools/locale/tools/cldr2def.pl =================================================================== --- head/tools/tools/locale/tools/cldr2def.pl (revision 302015) +++ head/tools/tools/locale/tools/cldr2def.pl (revision 302016) @@ -1,1012 +1,1021 @@ #!/usr/local/bin/perl -wC # $FreeBSD$ use strict; use File::Copy; use XML::Parser; use Tie::IxHash; use Text::Iconv; use Data::Dumper; use Getopt::Long; use Digest::SHA qw(sha1_hex); require "charmaps.pm"; if ($#ARGV < 2) { print "Usage: $0 --cldr= --unidata= --etc= --type= [--lc=]\n"; exit(1); } my $DEFENCODING = "UTF-8"; my @filter = (); my $CLDRDIR = undef; my $UNIDATADIR = undef; my $ETCDIR = undef; my $TYPE = undef; my $doonly = undef; my $result = GetOptions ( "cldr=s" => \$CLDRDIR, "unidata=s" => \$UNIDATADIR, "etc=s" => \$ETCDIR, "type=s" => \$TYPE, "lc=s" => \$doonly ); my %convertors = (); my %ucd = (); my %values = (); my %hashtable = (); my %languages = (); my %translations = (); my %encodings = (); my %alternativemonths = (); get_languages(); my %utf8map = (); my %utf8aliases = (); get_unidata($UNIDATADIR); get_utf8map("$CLDRDIR/posix/$DEFENCODING.cm"); get_encodings("$ETCDIR/charmaps"); my %keys = (); tie(%keys, "Tie::IxHash"); tie(%hashtable, "Tie::IxHash"); my %FILESNAMES = ( "monetdef" => "LC_MONETARY", "timedef" => "LC_TIME", "msgdef" => "LC_MESSAGES", "numericdef" => "LC_NUMERIC", "colldef" => "LC_COLLATE", "ctypedef" => "LC_CTYPE" ); my %callback = ( mdorder => \&callback_mdorder, altmon => \&callback_altmon, cformat => \&callback_cformat, + dformat => \&callback_dformat, dtformat => \&callback_dtformat, cbabmon => \&callback_abmon, cbampm => \&callback_ampm, data => undef, ); my %DESC = ( # numericdef "decimal_point" => "decimal_point", "thousands_sep" => "thousands_sep", "grouping" => "grouping", # monetdef "int_curr_symbol" => "int_curr_symbol (last character always " . "SPACE)", "currency_symbol" => "currency_symbol", "mon_decimal_point" => "mon_decimal_point", "mon_thousands_sep" => "mon_thousands_sep", "mon_grouping" => "mon_grouping", "positive_sign" => "positive_sign", "negative_sign" => "negative_sign", "int_frac_digits" => "int_frac_digits", "frac_digits" => "frac_digits", "p_cs_precedes" => "p_cs_precedes", "p_sep_by_space" => "p_sep_by_space", "n_cs_precedes" => "n_cs_precedes", "n_sep_by_space" => "n_sep_by_space", "p_sign_posn" => "p_sign_posn", "n_sign_posn" => "n_sign_posn", # msgdef "yesexpr" => "yesexpr", "noexpr" => "noexpr", "yesstr" => "yesstr", "nostr" => "nostr", # timedef "abmon" => "Short month names", "mon" => "Long month names (as in a date)", "abday" => "Short weekday names", "day" => "Long weekday names", "t_fmt" => "X_fmt", "d_fmt" => "x_fmt", "c_fmt" => "c_fmt", "am_pm" => "AM/PM", "d_t_fmt" => "date_fmt", "altmon" => "Long month names (without case ending)", "md_order" => "md_order", "t_fmt_ampm" => "ampm_fmt", ); if ($TYPE eq "colldef") { transform_collation(); make_makefile(); } if ($TYPE eq "ctypedef") { transform_ctypes(); make_makefile(); } if ($TYPE eq "numericdef") { %keys = ( "decimal_point" => "s", "thousands_sep" => "s", "grouping" => "ai", ); get_fields(); print_fields(); make_makefile(); } if ($TYPE eq "monetdef") { %keys = ( "int_curr_symbol" => "s", "currency_symbol" => "s", "mon_decimal_point" => "s", "mon_thousands_sep" => "s", "mon_grouping" => "ai", "positive_sign" => "s", "negative_sign" => "s", "int_frac_digits" => "i", "frac_digits" => "i", "p_cs_precedes" => "i", "p_sep_by_space" => "i", "n_cs_precedes" => "i", "n_sep_by_space" => "i", "p_sign_posn" => "i", "n_sign_posn" => "i" ); get_fields(); print_fields(); make_makefile(); } if ($TYPE eq "msgdef") { %keys = ( "yesexpr" => "s", "noexpr" => "s", "yesstr" => "s", "nostr" => "s" ); get_fields(); print_fields(); make_makefile(); } if ($TYPE eq "timedef") { %keys = ( "abmon" => " "as", "abday" => "as", "day" => "as", "t_fmt" => "s", - "d_fmt" => "s", + "d_fmt" => " " " "s", "d_t_fmt" => " " " "s", ); get_fields(); print_fields(); make_makefile(); } sub callback_ampm { my $s = shift; my $nl = $callback{data}{l} . "_" . $callback{data}{c}; my $enc = $callback{data}{e}; my $converter = Text::Iconv->new("utf-8", "$enc"); if ($nl eq 'ru_RU') { if ($enc eq 'UTF-8') { $s = 'дп;пп'; } else { $s = $converter->convert("дп;пп"); } } return $s; } sub callback_cformat { my $s = shift; my $nl = $callback{data}{l} . "_" . $callback{data}{c}; $s =~ s/\.,/\./; $s =~ s/ %Z//; $s =~ s/ %z//; $s =~ s/^"(%B %e, )/"%A, $1/; $s =~ s/^"(%e %B )/"%A $1/; return $s; }; +sub callback_dformat { + my $s = shift; + + $s =~ s/(%m(|[-.]))%e/$1%d/; + $s =~ s/%e((|[-.])%m)/%d$1/; + return $s; +}; + sub callback_dtformat { my $s = shift; my $nl = $callback{data}{l} . "_" . $callback{data}{c}; if ($nl eq 'ja_JP') { $s =~ s/(> )(%H)/$1%A $2/; } $s =~ s/\.,/\./; $s =~ s/^"(%B %e, )/"%A, $1/; $s =~ s/^"(%e %B )/"%A $1/; return $s; }; sub callback_mdorder { my $s = shift; return undef if (!defined $s); - $s =~ s/[^dm]//g; + $s =~ s/[^dem]//g; + $s =~ s/e/d/g; return $s; }; sub callback_altmon { # if the language/country is known in %alternative months then # return that, otherwise repeat mon my $s = shift; if (defined $alternativemonths{$callback{data}{l}}{$callback{data}{c}}) { my @altnames = split(";",$alternativemonths{$callback{data}{l}}{$callback{data}{c}}); my @cleaned; foreach (@altnames) { $_ =~ s/^\s+//; $_ =~ s/\s+$//; push @cleaned, $_; } return join(";",@cleaned); } return $s; } sub callback_abmon { # for specified CJK locales, pad result with a space to enable # columns to line up (style established in FreeBSD in 2001) my $s = shift; my $nl = $callback{data}{l} . "_" . $callback{data}{c}; if ($nl eq 'ja_JP' || $nl eq 'ko_KR' || $nl eq 'zh_CN' || $nl eq 'zh_HK' || $nl eq 'zh_TW') { my @monthnames = split(";", $s); my @cleaned; foreach (@monthnames) { if ($_ =~ /^"<(two|three|four|five|six|seven|eight|nine)>/ || ($_ =~ /^"/ && $_ !~ /^"(||)/)) { $_ =~ s/^"/"/; } push @cleaned, $_; } return join(";",@cleaned); } return $s; } ############################ sub get_unidata { my $directory = shift; open(FIN, "$directory/UnicodeData.txt") or die("Cannot open $directory/UnicodeData.txt");; my @lines = ; chomp(@lines); close(FIN); foreach my $l (@lines) { my @a = split(/;/, $l); $ucd{code2name}{"$a[0]"} = $a[1]; # Unicode name $ucd{name2code}{"$a[1]"} = $a[0]; # Unicode code } } sub get_utf8map { my $file = shift; open(FIN, $file); my @lines = ; close(FIN); chomp(@lines); my $prev_k = undef; my $prev_v = ""; my $incharmap = 0; foreach my $l (@lines) { $l =~ s/\r//; next if ($l =~ /^\#/); next if ($l eq ""); if ($l eq "CHARMAP") { $incharmap = 1; next; } next if (!$incharmap); last if ($l eq "END CHARMAP"); $l =~ /^<([^\s]+)>\s+(.*)/; my $k = $1; my $v = $2; $k =~ s/_/ /g; # unicode char string $v =~ s/\\x//g; # UTF-8 char code $utf8map{$k} = $v; $utf8aliases{$k} = $prev_k if ($prev_v eq $v); $prev_v = $v; $prev_k = $k; } } sub get_encodings { my $dir = shift; foreach my $e (sort(keys(%encodings))) { if (!open(FIN, "$dir/$e.TXT")) { print "Cannot open charmap for $e\n"; next; } $encodings{$e} = 1; my @lines = ; close(FIN); chomp(@lines); foreach my $l (@lines) { $l =~ s/\r//; next if ($l =~ /^\#/); next if ($l eq ""); my @a = split(" ", $l); next if ($#a < 1); $a[0] =~ s/^0[xX]//; # local char code $a[1] =~ s/^0[xX]//; # unicode char code $convertors{$e}{uc($a[1])} = uc($a[0]); } } } sub get_languages { my %data = get_xmldata($ETCDIR); %languages = %{$data{L}}; %translations = %{$data{T}}; %alternativemonths = %{$data{AM}}; %encodings = %{$data{E}}; return if (!defined $doonly); my @a = split(/_/, $doonly); if ($#a == 1) { $filter[0] = $a[0]; $filter[1] = "x"; $filter[2] = $a[1]; } elsif ($#a == 2) { $filter[0] = $a[0]; $filter[1] = $a[1]; $filter[2] = $a[2]; } print Dumper(@filter); return; } sub transform_ctypes { foreach my $l (sort keys(%languages)) { foreach my $f (sort keys(%{$languages{$l}})) { foreach my $c (sort keys(%{$languages{$l}{$f}{data}})) { next if ($#filter == 2 && ($filter[0] ne $l || $filter[1] ne $f || $filter[2] ne $c)); next if (defined $languages{$l}{$f}{definitions} && $languages{$l}{$f}{definitions} !~ /$TYPE/); $languages{$l}{$f}{data}{$c}{$DEFENCODING} = 0; # unread my $file; $file = $l . "_"; $file .= $f . "_" if ($f ne "x"); $file .= $c; my $actfile = $file; my $filename = "$CLDRDIR/posix/xx_Comm_US.UTF-8.src"; if (! -f $filename) { print STDERR "Cannot open $filename\n"; next; } open(FIN, "$filename"); print "Reading from $filename for ${l}_${f}_${c}\n"; $languages{$l}{$f}{data}{$c}{$DEFENCODING} = 1; # read my @lines; my $shex; my $uhex; while () { push @lines, $_; } close(FIN); $shex = sha1_hex(join("\n", @lines)); $languages{$l}{$f}{data}{$c}{$DEFENCODING} = $shex; $hashtable{$shex}{"${l}_${f}_${c}.$DEFENCODING"} = 1; open(FOUT, ">$TYPE.draft/$actfile.$DEFENCODING.src"); print FOUT @lines; close(FOUT); foreach my $enc (sort keys(%{$languages{$l}{$f}{data}{$c}})) { next if ($enc eq $DEFENCODING); $filename = "$CLDRDIR/posix/$file.$DEFENCODING.src"; if (! -f $filename) { print STDERR "Cannot open $filename\n"; next; } @lines = (); open(FIN, "$filename"); while () { if ((/^comment_char\s/) || (/^escape_char\s/)){ push @lines, $_; } if (/^LC_CTYPE/../^END LC_CTYPE/) { push @lines, $_; } } close(FIN); $uhex = sha1_hex(join("\n", @lines) . $enc); $languages{$l}{$f}{data}{$c}{$enc} = $uhex; $hashtable{$uhex}{"${l}_${f}_${c}.$enc"} = 1; open(FOUT, ">$TYPE.draft/$actfile.$enc.src"); print FOUT <) { if ((/^comment_char\s/) || (/^escape_char\s/)){ push @lines, $_; } if (/^LC_COLLATE/../^END LC_COLLATE/) { $_ =~ s/[ ]+/ /g; push @lines, $_; } } close(FIN); $shex = sha1_hex(join("\n", @lines)); $languages{$l}{$f}{data}{$c}{$DEFENCODING} = $shex; $hashtable{$shex}{"${l}_${f}_${c}.$DEFENCODING"} = 1; open(FOUT, ">$TYPE.draft/$actfile.$DEFENCODING.src"); print FOUT <; chomp(@lines); close(FIN); my $continue = 0; foreach my $k (keys(%keys)) { foreach my $line (@lines) { $line =~ s/\r//; next if (!$continue && $line !~ /^$k\s/); if ($continue) { $line =~ s/^\s+//; } else { $line =~ s/^$k\s+//; } $values{$l}{$c}{$k} = "" if (!defined $values{$l}{$c}{$k}); $continue = ($line =~ /\/$/); $line =~ s/\/$// if ($continue); while ($line =~ /_/) { $line =~ s/\<([^>_]+)_([^>]+)\>/<$1 $2>/; } die "_ in data - $line" if ($line =~ /_/); $values{$l}{$c}{$k} .= $line; last if (!$continue); } } } } } } sub decodecldr { my $e = shift; my $s = shift; my $v = undef; if ($e eq "UTF-8") { # # Conversion to UTF-8 can be done from the Unicode name to # the UTF-8 character code. # $v = $utf8map{$s}; die "Cannot convert $s in $e (charmap)" if (!defined $v); } else { # # Conversion to these encodings can be done from the Unicode # name to Unicode code to the encodings code. # my $ucc = undef; $ucc = $ucd{name2code}{$s} if (defined $ucd{name2code}{$s}); $ucc = $ucd{name2code}{$utf8aliases{$s}} if (!defined $ucc && $utf8aliases{$s} && defined $ucd{name2code}{$utf8aliases{$s}}); if (!defined $ucc) { if (defined $translations{$e}{$s}{hex}) { $v = $translations{$e}{$s}{hex}; $ucc = 0; } elsif (defined $translations{$e}{$s}{ucc}) { $ucc = $translations{$e}{$s}{ucc}; } } die "Cannot convert $s in $e (ucd string)" if (!defined $ucc); $v = $convertors{$e}{$ucc} if (!defined $v); $v = $translations{$e}{$s}{hex} if (!defined $v && defined $translations{$e}{$s}{hex}); if (!defined $v && defined $translations{$e}{$s}{unicode}) { my $ucn = $translations{$e}{$s}{unicode}; $ucc = $ucd{name2code}{$ucn} if (defined $ucd{name2code}{$ucn}); $ucc = $ucd{name2code}{$utf8aliases{$ucn}} if (!defined $ucc && defined $ucd{name2code}{$utf8aliases{$ucn}}); $v = $convertors{$e}{$ucc}; } die "Cannot convert $s in $e (charmap)" if (!defined $v); } return pack("C", hex($v)) if (length($v) == 2); return pack("CC", hex(substr($v, 0, 2)), hex(substr($v, 2, 2))) if (length($v) == 4); return pack("CCC", hex(substr($v, 0, 2)), hex(substr($v, 2, 2)), hex(substr($v, 4, 2))) if (length($v) == 6); print STDERR "Cannot convert $e $s\n"; return "length = " . length($v); } sub translate { my $enc = shift; my $v = shift; return $translations{$enc}{$v} if (defined $translations{$enc}{$v}); return undef; } sub print_fields { foreach my $l (sort keys(%languages)) { foreach my $f (sort keys(%{$languages{$l}})) { foreach my $c (sort keys(%{$languages{$l}{$f}{data}})) { next if ($#filter == 2 && ($filter[0] ne $l || $filter[1] ne $f || $filter[2] ne $c)); next if (defined $languages{$l}{$f}{definitions} && $languages{$l}{$f}{definitions} !~ /$TYPE/); foreach my $enc (sort keys(%{$languages{$l}{$f}{data}{$c}})) { if ($languages{$l}{$f}{data}{$c}{$DEFENCODING} eq "0") { print "Skipping ${l}_" . ($f eq "x" ? "" : "${f}_") . "${c} - not read\n"; next; } my $file = $l; $file .= "_" . $f if ($f ne "x"); $file .= "_" . $c; print "Writing to $file in $enc\n"; if ($enc ne $DEFENCODING && !defined $convertors{$enc}) { print "Failed! Cannot convert to $enc.\n"; next; }; open(FOUT, ">$TYPE.draft/$file.$enc.new"); my $okay = 1; my $output = ""; print FOUT </) { $k = substr($f, 1); $f = $keys{$k}; } # Callback function if ($f =~ /^\(.*)/) { my $p1 = $1; $cm = $2; my $p3 = $3; my $rv = decodecldr($enc, $cm); # $rv = translate($enc, $cm) # if (!defined $rv); if (!defined $rv) { print STDERR "Could not convert $k ($cm) from $DEFENCODING to $enc\n"; $okay = 0; next; } $v = $p1 . $rv . $p3; } $output .= "$v\n"; next; } if ($f eq "as") { foreach my $v (split(/;/, $v)) { $v =~ s/^"//; $v =~ s/"$//; my $cm = ""; while ($v =~ /^(.*?)<(.*?)>(.*)/) { my $p1 = $1; $cm = $2; my $p3 = $3; my $rv = decodecldr($enc, $cm); # $rv = translate($enc, # $cm) # if (!defined $rv); if (!defined $rv) { print STDERR "Could not convert $k ($cm) from $DEFENCODING to $enc\n"; $okay = 0; next; } $v = $1 . $rv . $3; } $output .= "$v\n"; } next; } die("$k is '$f'"); } $languages{$l}{$f}{data}{$c}{$enc} = sha1_hex($output); $hashtable{sha1_hex($output)}{"${l}_${f}_${c}.$enc"} = 1; print FOUT "$output# EOF\n"; close(FOUT); if ($okay) { rename("$TYPE.draft/$file.$enc.new", "$TYPE.draft/$file.$enc.src"); } else { rename("$TYPE.draft/$file.$enc.new", "$TYPE.draft/$file.$enc.failed"); } } } } } } sub make_makefile { return if ($#filter > -1); print "Creating Makefile for $TYPE\n"; my $SRCOUT; my $SRCOUT2; my $SRCOUT3 = ""; my $SRCOUT4 = ""; my $MAPLOC; if ($TYPE eq "colldef") { $SRCOUT = "localedef -D -U -i \${.IMPSRC} \\\n" . "\t-f \${MAPLOC}/map.\${.TARGET:T:R:E} " . "\${.OBJDIR}/\${.IMPSRC:T:R}"; $MAPLOC = "MAPLOC=\t\t\${.CURDIR}/../../tools/tools/" . "locale/etc/final-maps\n"; $SRCOUT2 = "LC_COLLATE"; $SRCOUT3 = "" . ".for f t in \${LOCALES_MAPPED}\n" . "FILES+=\t\$t.LC_COLLATE\n" . "FILESDIR_\$t.LC_COLLATE=\t\${LOCALEDIR}/\$t\n" . "\$t.LC_COLLATE: \${.CURDIR}/\$f.src\n" . "\tlocaledef -D -U -i \${.ALLSRC} \\\n" . "\t\t-f \${MAPLOC}/map.\${.TARGET:T:R:E} \\\n" . "\t\t\${.OBJDIR}/\${.TARGET:T:R}\n" . ".endfor\n\n"; $SRCOUT4 = "## LOCALES_MAPPED\n"; } elsif ($TYPE eq "ctypedef") { $SRCOUT = "localedef -D -U -c -w \${MAPLOC}/widths.txt \\\n" . "\t-f \${MAPLOC}/map.\${.IMPSRC:T:R:E} " . "\\\n\t-i \${.IMPSRC} \${.OBJDIR}/\${.IMPSRC:T:R} " . " || true"; $SRCOUT2 = "LC_CTYPE"; $MAPLOC = "MAPLOC=\t\t\${.CURDIR}/../../tools/tools/" . "locale/etc/final-maps\n"; $SRCOUT3 = "## SYMPAIRS\n\n" . ".for s t in \${SYMPAIRS}\n" . "\${t:S/src\$/LC_CTYPE/}: " . "\$s\n" . "\tlocaledef -D -U -c -w \${MAPLOC}/widths.txt \\\n" . "\t-f \${MAPLOC}/map.\${.TARGET:T:R:C/^.*\\.//} " . "\\\n\t-i \${.ALLSRC} \${.OBJDIR}/\${.TARGET:T:R} " . " || true\n" . ".endfor\n\n"; } else { $SRCOUT = "grep -v -E '^(\#\$\$|\#[ ])' < \${.IMPSRC} > \${.TARGET}"; $SRCOUT2 = "out"; $MAPLOC = ""; } open(FOUT, ">$TYPE.draft/Makefile"); print FOUT < 0) { my $link = shift(@files); $link =~ s/_x_/_/; # strip family if none there foreach my $file (@files) { my @a = split(/_/, $file); my @b = split(/\./, $a[-1]); $file =~ s/_x_/_/; print FOUT "SAME+=\t\t$link $file\n"; undef($languages{$a[0]}{$a[1]}{data}{$b[0]}{$b[1]}); } } } foreach my $l (sort keys(%languages)) { foreach my $f (sort keys(%{$languages{$l}})) { foreach my $c (sort keys(%{$languages{$l}{$f}{data}})) { next if ($#filter == 2 && ($filter[0] ne $l || $filter[1] ne $f || $filter[2] ne $c)); next if (defined $languages{$l}{$f}{definitions} && $languages{$l}{$f}{definitions} !~ /$TYPE/); if (defined $languages{$l}{$f}{data}{$c}{$DEFENCODING} && $languages{$l}{$f}{data}{$c}{$DEFENCODING} eq "0") { print "Skipping ${l}_" . ($f eq "x" ? "" : "${f}_") . "${c} - not read\n"; next; } foreach my $e (sort keys(%{$languages{$l}{$f}{data}{$c}})) { my $file = $l . "_"; $file .= $f . "_" if ($f ne "x"); $file .= $c; next if (!defined $languages{$l}{$f}{data}{$c}{$e}); print FOUT "LOCALES+=\t$file.$e\n"; } if (defined $languages{$l}{$f}{nc_link}) { foreach my $e (sort keys(%{$languages{$l}{$f}{data}{$c}})) { my $file = $l . "_"; $file .= $f . "_" if ($f ne "x"); $file .= $c; print FOUT "SAME+=\t\t$file.$e $languages{$l}{$f}{nc_link}.$e\t# legacy (lang/country change)\n"; } } if (defined $languages{$l}{$f}{e_link}) { foreach my $el (split(" ", $languages{$l}{$f}{e_link})) { my @a = split(/:/, $el); my $file = $l . "_"; $file .= $f . "_" if ($f ne "x"); $file .= $c; print FOUT "SAME+=\t\t$file.$a[0] $file.$a[1]\t# legacy (same charset)\n"; } } } } } print FOUT < EOF close(FOUT); }