ldml2icu for unitPreferences, outputting into units.txt

This commit is contained in:
Hugo van der Merwe 2020-02-25 18:14:22 +01:00
parent 31b814d609
commit d2bc59f71c
4 changed files with 1432 additions and 385 deletions

View file

@ -35596,385 +35596,6 @@ supplementalData:table(nofallback){
preferred{"H"}
}
}
unitPreferenceData{
"area"{
"geograph"{
001{
{
unit{"square-kilometer"}
}
}
GB{
{
unit{"square-mile"}
}
}
US{
{
unit{"square-mile"}
}
}
}
"land-agricult"{
001{
{
unit{"hectare"}
}
}
GB{
{
unit{"acre"}
}
}
US{
{
unit{"acre"}
}
}
}
"land-commercl"{
001{
{
unit{"hectare"}
}
}
GB{
{
unit{"acre"}
}
}
US{
{
unit{"acre"}
}
}
}
"land-residntl"{
001{
{
unit{"hectare"}
}
}
GB{
{
unit{"acre"}
}
}
US{
{
unit{"acre"}
}
}
}
_default{
001{
{
unit{"square-kilometer"}
}
{
unit{"hectare"}
}
{
unit{"square-meter"}
}
{
unit{"square-centimeter"}
}
}
}
}
"duration"{
"music-track"{
001{
{
unit{"minute+second"}
}
{
unit{"second"}
}
}
}
"person-age"{
001{
{
unit{"year-person+month-person"}
}
{
unit{"month-person"}
}
}
}
"tv-program"{
001{
{
unit{"minute+second"}
}
{
unit{"second"}
}
}
}
_default{
001{
{
unit{"year"}
}
{
unit{"month"}
}
{
unit{"day"}
}
{
unit{"hour"}
}
{
unit{"minute"}
}
{
unit{"second"}
}
{
unit{"millisecond"}
}
{
unit{"microsecond"}
}
{
unit{"nanosecond"}
}
}
}
}
"length"{
"road"{
001{
{
unit{"kilometer"}
}
}
GB{
{
unit{"mile"}
}
}
SE{
{
unit{"mile-scandinavian"}
}
}
US{
{
unit{"mile"}
}
}
_small{
001{
{
unit{"meter"}
}
}
GB{
{
unit{"yard"}
}
}
US{
{
unit{"foot"}
}
}
}
}
"road-travel"{
001{
{
geq{"0.975"}
unit{"kilometer"}
}
{
geq{"300"}
skeleton{"precision-increment/50"}
unit{"meter"}
}
{
skeleton{"precision-increment/10"}
unit{"meter"}
}
}
GB{
{
geq{"0.095"}
unit{"mile"}
}
{
geq{"300"}
skeleton{"precision-increment/50"}
unit{"yard"}
}
{
skeleton{"precision-increment/10"}
unit{"yard"}
}
}
US{
{
geq{"0.095"}
unit{"mile"}
}
{
geq{"300"}
skeleton{"precision-increment/50"}
unit{"foot"}
}
{
skeleton{"precision-increment/10"}
unit{"foot"}
}
}
}
_default{
001{
{
unit{"kilometer"}
}
{
unit{"meter"}
}
{
unit{"centimeter"}
}
{
unit{"millimeter"}
}
{
unit{"micrometer"}
}
{
unit{"nanometer"}
}
}
GB{
{
geq{"0.475"}
unit{"mile"}
}
{
unit{"foot"}
}
{
unit{"inch"}
}
}
US{
{
geq{"0.475"}
unit{"mile"}
}
{
unit{"foot"}
}
{
unit{"inch"}
}
}
}
}
"mass"{
_default{
001{
{
unit{"metric-ton"}
}
{
unit{"kilogram"}
}
{
unit{"gram"}
}
{
unit{"milligram"}
}
{
unit{"microgram"}
}
}
GB{
{
unit{"stone"}
}
{
unit{"pound"}
}
{
unit{"ounce"}
}
}
US{
{
unit{"ton"}
}
{
unit{"pound"}
}
{
unit{"ounce"}
}
}
}
}
"power"{
_default{
001{
{
unit{"gigawatt"}
}
{
unit{"megawatt"}
}
{
unit{"kilowatt"}
}
{
unit{"watt"}
}
{
unit{"milliwatt"}
}
}
}
}
"pressure"{
_default{
001{
{
unit{"megapascal"}
}
{
unit{"kilopascal"}
}
{
unit{"pascal"}
}
}
}
}
"volume"{
_default{
001{
{
unit{"cubic-meter"}
}
{
unit{"liter"}
}
{
unit{"milliliter"}
}
}
}
}
}
weekData{
001:intvector{
2,

File diff suppressed because it is too large Load diff

View file

@ -106,13 +106,13 @@ public final class LdmlConverter {
"territoryContainment",
"territoryInfo",
"timeData",
"unitPreferenceData",
"weekData",
"weekOfPreference");
private static final PathMatcher UNITS_DATA_PATHS =
supplementalMatcher(
"convertUnits",
"unitConstants");
"unitConstants",
"unitPreferenceData");
private static final PathMatcher CURRENCY_DATA_PATHS =
supplementalMatcher("currencyData");
private static final PathMatcher NUMBERING_SYSTEMS_PATHS =

View file

@ -98,10 +98,32 @@
//supplementalData/measurementData/paperSize[@type="A4"][@territories="(%W)"] ; /measurementData/$1/PaperSize:intvector ; values=297 210
//supplementalData/measurementData/paperSize[@type="US-Letter"][@territories="(%W)"] ; /measurementData/$1/PaperSize:intvector ; values=279 216
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"][@scope="small"]/unitPreference[@regions="(%A)"][@alt="informal"] ; /unitPreferenceData/$3/$1-$2-small-informal
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"][@scope="small"]/unitPreference[@regions="(%A)"] ; /unitPreferenceData/$3/$1-$2-small
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"]/unitPreference[@regions="(%A)"][@alt="informal"] ; /unitPreferenceData/$3/$1-$2-informal
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"]/unitPreference[@regions="(%A)"] ; /unitPreferenceData/$3/$1-$2
# Quoting "$1" and "$2" in the output lets $3 expand space-separated regions: only the first unquoted output supports such expansion.
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"]/unitPreference[@regions="(%A)"]
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/unit
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"]/unitPreference[@regions="(%A)"][@geq="(%A)"]
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/unit
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/geq ; values=$4
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"]/unitPreference[@regions="(%A)"][@skeleton="(%A)"]
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/unit
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/skeleton ; values=$4
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"][@usage="(%A)"]/unitPreference[@regions="(%A)"][@geq="(%A)"][@skeleton="(%A)"]
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/unit
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/geq ; values=$4
; /unitPreferenceData/"$1"/"$2"/$3/<FIFO>/skeleton ; values=$5
# No usage -> category default
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"]/unitPreference[@regions="(%A)"]
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/unit
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"]/unitPreference[@regions="(%A)"][@geq="(%A)"]
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/unit
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/geq ; values=$3
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"]/unitPreference[@regions="(%A)"][@skeleton=="(%A)"]
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/unit
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/skeleton ; values=$3
//supplementalData/unitPreferenceData/unitPreferences[@category="(%W)"]/unitPreference[@regions="(%A)"][@geq="(%A)"][@skeleton=="(%A)"]
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/unit
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/geq ; values=$3
; /unitPreferenceData/"$1"/_default/$2/<FIFO>/skeleton ; values=$4
//supplementalData/territoryInfo/territory[@type="(%W)"][@gdp="(%N)"][@literacyPercent="(%N)"][@population="(%N)"]/languagePopulation[@type="(%W)"][@writingPercent="(%N)"][@populationPercent="(%N)"][@officialStatus="(%W)"](?:[@references="%W"])?
; /territoryInfo/$1/territoryF:intvector ; values=&exp($2) &exp($3,-2) &exp($4) ; base_xpath=//supplementalData/territoryInfo/territory[@type="$1"]