Add singular forms for units

This commit is contained in:
Pieter Vander Vennet 2021-09-13 02:38:20 +02:00
parent c9ba7a8d44
commit feeca1de46
9 changed files with 338 additions and 95 deletions

View file

@ -344,8 +344,8 @@
"nl": "Hoeveel stekkers van type <b><b>Schuko stekker</b> zonder aardingspin (CEE7/4 type F)</b> <img style='width:1rem;' src='./assets/layers/charging_station/CEE7_4F.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Schuko wall plug</b> without ground pin (CEE7/4 type F)</b> <img style='width:1rem;' src='./assets/layers/charging_station/CEE7_4F.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b><b>Schuko stekker</b> zonder aardingspin (CEE7/4 type F)</b> <img style='width:1rem;' src='./assets/layers/charging_station/CEE7_4F.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Schuko wall plug</b> without ground pin (CEE7/4 type F)</b> <img style='width:1rem;' src='./assets/layers/charging_station/CEE7_4F.svg'/> plugs of type <b>Schuko wall plug</b> without ground pin (CEE7/4 type F) available here",
"nl": "Hier zijn <b><b>Schuko stekker</b> zonder aardingspin (CEE7/4 type F)</b> <img style='width:1rem;' src='./assets/layers/charging_station/CEE7_4F.svg'/> stekkers van het type <b>Schuko stekker</b> zonder aardingspin (CEE7/4 type F)"
},
"freeform": {
"key": "socket:schuko",
@ -451,8 +451,8 @@
"nl": "Hoeveel stekkers van type <b><b>Europese stekker</b> met aardingspin (CEE7/4 type E)</b> <img style='width:1rem;' src='./assets/layers/charging_station/TypeE.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>European wall plug</b> with ground pin (CEE7/4 type E)</b> <img style='width:1rem;' src='./assets/layers/charging_station/TypeE.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b><b>Europese stekker</b> met aardingspin (CEE7/4 type E)</b> <img style='width:1rem;' src='./assets/layers/charging_station/TypeE.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>European wall plug</b> with ground pin (CEE7/4 type E)</b> <img style='width:1rem;' src='./assets/layers/charging_station/TypeE.svg'/> plugs of type <b>European wall plug</b> with ground pin (CEE7/4 type E) available here",
"nl": "Hier zijn <b><b>Europese stekker</b> met aardingspin (CEE7/4 type E)</b> <img style='width:1rem;' src='./assets/layers/charging_station/TypeE.svg'/> stekkers van het type <b>Europese stekker</b> met aardingspin (CEE7/4 type E)"
},
"freeform": {
"key": "socket:typee",
@ -565,8 +565,8 @@
"nl": "Hoeveel stekkers van type <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Chademo_type4.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Chademo</b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Chademo_type4.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Chademo_type4.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Chademo</b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Chademo_type4.svg'/> plugs of type <b>Chademo</b> available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Chademo_type4.svg'/> stekkers van het type "
},
"freeform": {
"key": "socket:chademo",
@ -672,8 +672,8 @@
"nl": "Hoeveel stekkers van type <b><b>Type 1 met kabel</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Type 1 with cable</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b><b>Type 1 met kabel</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Type 1 with cable</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> plugs of type <b>Type 1 with cable</b> (J1772) available here",
"nl": "Hier zijn <b><b>Type 1 met kabel</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> stekkers van het type <b>Type 1 met kabel</b> (J1772)"
},
"freeform": {
"key": "socket:type1_cable",
@ -793,8 +793,8 @@
"nl": "Hoeveel stekkers van type <b><b>Type 1 <i>zonder</i> kabel</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Type 1 <i>without</i> cable</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b><b>Type 1 <i>zonder</i> kabel</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Type 1 <i>without</i> cable</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> plugs of type <b>Type 1 <i>without</i> cable</b> (J1772) available here",
"nl": "Hier zijn <b><b>Type 1 <i>zonder</i> kabel</b> (J1772)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1_J1772.svg'/> stekkers van het type <b>Type 1 <i>zonder</i> kabel</b> (J1772)"
},
"freeform": {
"key": "socket:type1",
@ -928,8 +928,8 @@
"nl": "Hoeveel stekkers van type <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1-ccs.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Type 1 CCS</b> (aka Type 1 Combo)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1-ccs.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1-ccs.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Type 1 CCS</b> (aka Type 1 Combo)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1-ccs.svg'/> plugs of type <b>Type 1 CCS</b> (aka Type 1 Combo) available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type1-ccs.svg'/> stekkers van het type "
},
"freeform": {
"key": "socket:type1_combo",
@ -1070,8 +1070,8 @@
"nl": "Hoeveel stekkers van type <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Tesla Supercharger</b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Tesla Supercharger</b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/> plugs of type <b>Tesla Supercharger</b> available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Tesla-hpwc-model-s.svg'/> stekkers van het type "
},
"freeform": {
"key": "socket:tesla_supercharger",
@ -1198,8 +1198,8 @@
"nl": "Hoeveel stekkers van type <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_socket.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Type 2</b> (mennekes)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_socket.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_socket.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Type 2</b> (mennekes)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_socket.svg'/> plugs of type <b>Type 2</b> (mennekes) available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_socket.svg'/> stekkers van het type "
},
"freeform": {
"key": "socket:type2",
@ -1326,8 +1326,8 @@
"nl": "Hoeveel stekkers van type <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_CCS.svg'/> heeft dit oplaadpunt?"
},
"render": {
"en": "There are <b><b>Type 2 CCS</b> (mennekes)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_CCS.svg'/> plugs of type [object Map] available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_CCS.svg'/> stekkers van het type [object Map]"
"en": "There are <b><b>Type 2 CCS</b> (mennekes)</b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_CCS.svg'/> plugs of type <b>Type 2 CCS</b> (mennekes) available here",
"nl": "Hier zijn <b></b> <img style='width:1rem;' src='./assets/layers/charging_station/Type2_CCS.svg'/> stekkers van het type "
},
"freeform": {
"key": "socket:type2_combo",
@ -1441,52 +1441,6 @@
]
}
},
{
"#": "fee/charge",
"question": {
"en": "How much does one have to pay to use this charging station?",
"nl": "Hoeveel kost het gebruik van dit oplaadpunt?"
},
"freeform": {
"key": "charge",
"addExtraTags": [
"fee=yes"
]
},
"render": {
"en": "Using this charging station costs <b>{charge}</b>",
"nl": "Dit oplaadpunt gebruiken kost <b>{charge}</b>"
},
"mappings": [
{
"if": {
"and": [
"fee=no",
"charge="
]
},
"then": {
"nl": "Gratis te gebruiken",
"en": "Free to use"
}
}
]
},
{
"builtin": "payment-options",
"override": {
"mappings+": [
{
"if": "payment:app=yes",
"ifnot": "payment:app=no",
"then": {
"en": "Payment is done using a dedicated app",
"nl": "Betalen via een app van het netwerk"
}
}
]
}
},
{
"#": "Authentication",
"question": {
@ -1624,6 +1578,81 @@
}
]
},
{
"#": "fee/charge",
"question": {
"en": "How much does one have to pay to use this charging station?",
"nl": "Hoeveel kost het gebruik van dit oplaadpunt?"
},
"freeform": {
"key": "charge",
"addExtraTags": [
"fee=yes"
]
},
"render": {
"en": "Using this charging station costs <b>{charge}</b>",
"nl": "Dit oplaadpunt gebruiken kost <b>{charge}</b>"
},
"mappings": [
{
"if": {
"and": [
"fee=no",
"charge="
]
},
"then": {
"nl": "Gratis te gebruiken",
"en": "Free to use"
}
}
]
},
{
"builtin": "payment-options",
"override": {
"condition": {
"or": [
"fee=yes",
"charge~*"
]
},
"mappings+": [
{
"if": "payment:app=yes",
"ifnot": "payment:app=no",
"then": {
"en": "Payment is done using a dedicated app",
"nl": "Betalen via een app van het netwerk"
}
}
]
}
},
{
"#": "maxstay",
"question": {
"en": "What is the maximum amount of time one is allowed to stay here?",
"nl": "Hoelang mag een voertuig hier blijven staan?"
},
"freeform": {
"key": "maxstay"
},
"render": {
"en": "One can stay at most <b>{canonical(maxstay)}</b>",
"nl": "De maximale parkeertijd hier is <b>{canonical(maxstay)}</b>"
},
"mappings": [
{
"if": "maxstay=unlimited",
"then": {
"en": "No timelimit on leaving your vehicle here",
"nl": "Geen maximum parkeertijd"
}
}
]
},
{
"#": "Network",
"render": {
@ -1992,6 +2021,69 @@
}
],
"units": [
{
"appliesToKey": [
"maxstay"
],
"applicableUnits": [
{
"canonicalDenomination": "minutes",
"canonicalDenominationSingular": "minute",
"alternativeDenomination": [
"m",
"min",
"mins",
"minuten",
"mns"
],
"human": {
"en": " minutes",
"nl": " minuten"
},
"humanSingular": {
"en": " minute",
"nl": " minuut"
}
},
{
"canonicalDenomination": "hours",
"canonicalDenominationSingular": "hour",
"alternativeDenomination": [
"h",
"hrs",
"hours",
"u",
"uur",
"uren"
],
"human": {
"en": " hours",
"nl": " uren"
},
"humanSingular": {
"en": " hour",
"nl": " uur"
}
},
{
"canonicalDenomination": "days",
"canonicalDenominationSingular": "day",
"alternativeDenomination": [
"dys",
"dagen",
"dag"
],
"human": {
"en": " days",
"nl": " day"
},
"humanSingular": {
"en": " day",
"nl": " dag"
}
}
]
},
{
"appliesToKey": [
"socket:schuko:voltage",

View file

@ -331,6 +331,29 @@
]
}
},
{
"#": "maxstay",
"question": {
"en": "What is the maximum amount of time one is allowed to stay here?",
"nl": "Hoelang mag een voertuig hier blijven staan?"
},
"freeform": {
"key": "maxstay"
},
"render": {
"en": "One can stay at most <b>{canonical(maxstay)}</b>",
"nl": "De maximale parkeertijd hier is <b>{canonical(maxstay)}</b>"
},
"mappings": [
{
"if": "maxstay=unlimited",
"then": {
"en": "No timelimit on leaving your vehicle here",
"nl": "Geen maximum parkeertijd"
}
}
]
},
{
"#": "Network",
"render": {
@ -624,5 +647,70 @@
}
]
}
],
"units": [
{
"appliesToKey": [
"maxstay"
],
"applicableUnits": [
{
"canonicalDenomination": "minutes",
"canonicalDenominationSingular": "minute",
"alternativeDenomination": [
"m",
"min",
"mins",
"minuten",
"mns"
],
"human": {
"en": " minutes",
"nl": " minuten"
},
"humanSingular": {
"en": " minute",
"nl": " minuut"
}
},
{
"canonicalDenomination": "hours",
"canonicalDenominationSingular": "hour",
"alternativeDenomination": [
"h",
"hrs",
"hours",
"u",
"uur",
"uren"
],
"human": {
"en": " hours",
"nl": " uren"
},
"humanSingular": {
"en": " hour",
"nl": " uur"
}
},
{
"canonicalDenomination": "days",
"canonicalDenominationSingular": "day",
"alternativeDenomination": [
"dys",
"dagen",
"dag"
],
"human": {
"en": " days",
"nl": " day"
},
"humanSingular":{
"en": " day",
"nl": " dag"
}
}
]
}
]
}

View file

@ -220,7 +220,9 @@ function run(file, protojson) {
options: filterOptions
})
proto["units"] = [
const extraUnits = [
{
appliesToKey: entries.map(e => e.key + ":voltage"),
applicableUnits: [{
@ -267,6 +269,11 @@ function run(file, protojson) {
},
];
if(proto["units"] == undefined){
proto["units"] = []
}
proto["units"].push(...extraUnits)
writeFileSync("charging_station.json", JSON.stringify(proto, undefined, " "))
}