Reset of translations: dropped deleted theme translations

This commit is contained in:
Pieter Vander Vennet 2021-09-26 20:15:25 +02:00
parent d65257b2c5
commit a7d107ba63
18 changed files with 33 additions and 216 deletions

View file

@ -252,19 +252,6 @@
"render": "Fahrrad-Reinigungsdienst"
}
},
"bike_monitoring_station": {
"title": {
"mappings": {
"0": {
"then": "Fahrradzählstation {name}"
},
"1": {
"then": "Fahrradzählstation {ref}"
}
},
"render": "Fahrradzählstation"
}
},
"bike_parking": {
"name": "Fahrrad-Parkplätze",
"presets": {

View file

@ -360,20 +360,6 @@
"render": "Bike cleaning service"
}
},
"bike_monitoring_station": {
"name": "Monitoring stations",
"title": {
"mappings": {
"0": {
"then": "Bicycle counting station {name}"
},
"1": {
"then": "Bicycle counting station {ref}"
}
},
"render": "Bicycle counting station"
}
},
"bike_parking": {
"name": "Bike parking",
"presets": {

View file

@ -269,20 +269,6 @@
"render": "Service de nettoyage de vélo"
}
},
"bike_monitoring_station": {
"name": "Stations de contrôle",
"title": {
"mappings": {
"0": {
"then": "Station de comptage de vélo {name}"
},
"1": {
"then": "Station de comptage de vélo {ref}"
}
},
"render": "Station de comptage de vélo"
}
},
"bike_parking": {
"name": "Parking à vélo",
"presets": {

View file

@ -269,20 +269,6 @@
"render": "Servizio lavaggio bici"
}
},
"bike_monitoring_station": {
"name": "Stazioni di monitoraggio",
"title": {
"mappings": {
"0": {
"then": "Contabiciclette {name}"
},
"1": {
"then": "Contabiciclette {ref}"
}
},
"render": "Contabiciclette"
}
},
"bike_parking": {
"name": "Parcheggio bici",
"presets": {

View file

@ -359,20 +359,6 @@
"render": "Fietsschoonmaakpunt"
}
},
"bike_monitoring_station": {
"name": "Telstation",
"title": {
"mappings": {
"0": {
"then": "Fietstelstation {name}"
},
"1": {
"then": "Fietstelstation {ref}"
}
},
"render": "Fietstelstation"
}
},
"bike_parking": {
"name": "Fietsparking",
"presets": {

View file

@ -110,18 +110,6 @@
"bicycle_library": {
"description": "Obiekt, w którym rowery można wypożyczyć na dłuższy okres"
},
"bike_monitoring_station": {
"title": {
"mappings": {
"0": {
"then": "Stacja liczenia rowerów {name}"
},
"1": {
"then": "Stacja liczenia rowerów {ref}"
}
}
}
},
"bike_parking": {
"name": "Parking dla rowerów",
"presets": {

View file

@ -254,20 +254,6 @@
"render": "Serviço de limpeza de bicicletas"
}
},
"bike_monitoring_station": {
"name": "Estações de monitoramento",
"title": {
"mappings": {
"0": {
"then": "Estação de contagem de bicicletas {name}"
},
"1": {
"then": "Estação de contagem de bicicletas {ref}"
}
},
"render": "Estação de contagem de bicicletas"
}
},
"bike_parking": {
"name": "Estacionamento de bicicletas",
"presets": {

View file

@ -253,9 +253,6 @@
"render": "Велосипедное кафе"
}
},
"bike_monitoring_station": {
"name": "Станции мониторинга"
},
"bike_parking": {
"name": "Велопарковка",
"presets": {

View file

@ -269,20 +269,6 @@
"render": "單車清理服務"
}
},
"bike_monitoring_station": {
"name": "監視站",
"title": {
"mappings": {
"0": {
"then": "單車計數站 {name}"
},
"1": {
"then": "單車計數站 {ref}"
}
},
"render": "單車計數站"
}
},
"bike_parking": {
"name": "單車停車場",
"presets": {

View file

@ -91,11 +91,6 @@
"description": "A bicycle library is a place where bicycles can be lent, often for a small yearly fee. A notable use case are bicycle libraries for kids, which allows them to change for a bigger bike when they've outgrown their current bike",
"title": "Bicycle libraries"
},
"bike_monitoring_stations": {
"description": "This theme shows bike monitoring stations with live data",
"shortDescription": "Bike monitoring stations with live data from Brussels Mobility",
"title": "Bike Monitoring stations"
},
"binoculars": {
"description": "A map with binoculars fixed in place with a pole. It can typically be found on touristic locations, viewpoints, on top of panoramic towers or occasionally on a nature reserve.",
"shortDescription": "A map with fixed binoculars",
@ -905,7 +900,7 @@
"then": "This hackerspace serves club mate"
},
"1": {
"then": "This hackerspace is not worthy of the name hackerspace as it does not serve club mate"
"then": "This hackerspace does not serve club mate"
}
},
"question": "Does this hackerspace serve Club Mate?"

View file

@ -91,11 +91,6 @@
"description": "Une vélothèque est un endroit où on peut emprunter des vélos, souvent moyennant une petite somme annuelle. Un cas d'utilisation notable est celui des vélothèques pour les enfants, qui leur permettent de passer à un vélo plus grand quand ils sont trop grands pour leur vélo actuel",
"title": "Vélothèques"
},
"bike_monitoring_stations": {
"description": "Ce thème montre les données des compteurs en temps réel",
"shortDescription": "Station de comptage vélo avec données en temps réel par Bruxelles Mobilités",
"title": "Station de comptage vélo"
},
"bookcases": {
"description": "Une microbibliothèques, également appelée boite à livre, est un élément de mobilier urbain (étagère, armoire, etc) dans lequel sont stockés des livres et autres objets en accès libre. Découvrez les boites à livres prêt de chez vous, ou ajouter en une nouvelle à l'aide de votre compte OpenStreetMap.",
"title": "Carte des microbibliothèques"

View file

@ -91,11 +91,6 @@
"description": "«Biciclette in prestito» è un luogo dove le biciclette possono essere prese in prestito, spesso in cambio di un piccolo contributo annuale. Un caso degno di nota è quello delle biciclette in prestito per bambini che permettono loro di cambiare le dimensioni della propria bici quando quella attuale diventa troppo piccola",
"title": "Biciclette in prestito"
},
"bike_monitoring_stations": {
"description": "Questo tema mostra le stazioni di monitoraggio bici con dati dal vivo",
"shortDescription": "Stazioni di monitoraggio bici con dati in tempo reale forniti da Bruxelles Mobility",
"title": "Stazioni di monitoraggio biciclette"
},
"bookcases": {
"description": "Una minibiblioteca è una piccola cabina a lato della strada, una scatola, una vecchia cabina telefonica o qualche altro contenitore che ospita libri. Tutti può lasciare o prendere un libro. Questa mappa punta a rappresentarle tutte. Puoi facilmente scoprire nuove minibiblioteche nelle tue vicinanze e, con un account gratuito su OpenStreetMap, puoi aggiungerne altre.",
"title": "Mappa libera delle microbiblioteche"

View file

@ -91,11 +91,6 @@
"description": "自転車ライブラリは、少額の年間料金で自転車を借りられる場所です。注目すべきユースケースとしては、子供向けの自転車ライブラリで、子どもの成長にあわせて大きな自転車へ借り替えられます",
"title": "自転車ライブラリ"
},
"bike_monitoring_stations": {
"description": "このテーマでは、ライブデータのある自転車監視ステーションを示します",
"shortDescription": "Brussels Mobilityのライブデータを使用した自転車モニタリングステーション",
"title": "自転車監視ステーション"
},
"bookcases": {
"description": "公共の本棚とは、本が保管されている小さな街角のキャビネット、箱、古い電話のトランク、その他の物のことです。誰でも本を置いたり持ったりすることができます。このマップは、すべての公共の本棚を収集することを目的としています。近くで新しい本棚を見つけることができ、無料のOpenStreetMapアカウントを使えば、お気に入りの本棚を簡単に追加できます。",
"title": "オープン本棚マップ"

View file

@ -95,11 +95,6 @@
"description": "Een fietsbibliotheek is een plaats waar men een fiets kan lenen, vaak voor een klein bedrag per jaar. Een typisch voorbeeld zijn kinderfietsbibliotheken, waar men een fiets op maat van het kind kan lenen. Is het kind de fiets ontgroeid, dan kan het te kleine fietsje omgeruild worden voor een grotere.",
"title": "Fietsbibliotheken"
},
"bike_monitoring_stations": {
"description": "Dit thema toont fietstelstations met live data",
"shortDescription": "Fietstelstations met live data van Brussel Mobiliteit",
"title": "Fietstelstations"
},
"binoculars": {
"description": "Een kaart met verrekijkers die op een vaste plaats zijn gemonteerd",
"shortDescription": "Een kaart met publieke verrekijker",
@ -1002,47 +997,6 @@
"shortDescription": "Speelplekken in de Antwerpse Zuidrand",
"title": "Welkom bij de groendoener!"
},
"speelplekken_temp": {
"description": "Speelplekken in de Antwerpse Zuidrand. Een project van Provincie Antwerpen, in samenwerking met Createlli, Sportpret en OpenStreetMap België",
"layers": {
"6": {
"name": "Wandelroutes van provincie Antwerpen",
"tagRenderings": {
"0": {
"render": "Deze wandeling is <b>{_length:km}km</b> lang"
},
"1": {
"mappings": {
"0": {
"then": "Dit is een internationale wandelroute"
},
"1": {
"then": "Dit is een nationale wandelroute"
},
"2": {
"then": "Dit is een regionale wandelroute"
},
"3": {
"then": "Dit is een lokale wandelroute"
}
}
},
"2": {
"render": "<h3>Korte beschrijving:</h3>{description}"
},
"3": {
"question": "Wie beheert deze wandeling en plaatst dus de signalisatiebordjes?"
},
"4": {
"question": "Naar wie kan men emailen bij problemen rond signalisatie?",
"render": "Bij problemen met signalisatie kan men emailen naar <a href='mailto:{operator:email}'>{operator:email}</a>"
}
}
}
},
"shortDescription": "Speelplekken in de Antwerpse Zuidrand",
"title": "Speelplekken in de Antwerpse Zuidrand"
},
"sport_pitches": {
"description": "Een sportveld is een ingerichte plaats met infrastructuur om een sport te beoefenen",
"shortDescription": "Deze kaart toont sportvelden",
@ -1071,23 +1025,5 @@
"description": "Op deze kaart vind je vuilnisbakken waar je afval in kan smijten. Ontbreekt er een vuilnisbak? Dan kan je die zelf toevoegen",
"shortDescription": "Een kaart met vuilnisbakken",
"title": "Vuilnisbak"
},
"width": {
"description": " <h3>De straat is opgebruikt</h3>\n <p>Er is steeds meer druk op de openbare ruimte. Voetgangers, fietsers, steps, auto's, bussen, bestelwagens, buggies, cargobikes, ... willen allemaal hun deel van de openbare ruimte.</p>\n <p>In deze studie nemen we Brugge onder de loep en kijken we hoe breed elke straat is én hoe breed elke straat zou moeten zijn voor een veilig én vlot verkeer.</p>\n <h3>Legende</h3>\n <span style='background: red'>&NonBreakingSpace;&NonBreakingSpace;&NonBreakingSpace;</span> Straat te smal voor veilig verkeer<br/>\n <span style='background: #0f0'>&NonBreakingSpace;&NonBreakingSpace;&NonBreakingSpace;</span> Straat is breed genoeg veilig verkeer<br/>\n <span style='background: orange'>&NonBreakingSpace;&NonBreakingSpace;&NonBreakingSpace;</span> Straat zonder voetpad, te smal als ook voetgangers plaats krijgen<br/>\n <span style='background: lightgrey'>&NonBreakingSpace;&NonBreakingSpace;&NonBreakingSpace;</span> Woonerf, autoluw, autoloos of enkel plaatselijk verkeer<br/>\n <br/>\n <br/>\n Een gestippelde lijn is een straat waar ook voor fietsers éénrichtingsverkeer geldt.<br/>\n Klik op een straat om meer informatie te zien.\n <h3>Hoe gaan we verder?</h3>\n Verschillende ingrepen kunnen de stad teruggeven aan de inwoners en de stad leefbaarder en levendiger maken.<br/>\n Denk aan:\n <ul>\n <li>De autovrije zone's uitbreiden</li>\n <li>De binnenstad fietszone maken</li>\n <li>Het aantal woonerven uitbreiden</li>\n <li>Grotere auto's meer belasten - ze nemen immers meer parkeerruimte in.</li>\n <li>Laat toeristen verplicht parkeren onder het zand; een (fiets)taxi kan hen naar hun hotel brengen</li>\n <li>Voorzie in elke straat enkele parkeerplaatsen voor kortparkeren. Zo kunnen leveringen, iemand afzetten,... gebeuren zonder op het voetpad en fietspad te parkeren</li>\n </ul>",
"layers": {
"0": {
"name": "Straten met een breedte",
"title": {
"mappings": {
"0": {
"then": "Naamloos segmet"
}
},
"render": "{name}"
}
}
},
"shortDescription": "Is de straat breed genoeg?",
"title": "Straatbreedtes"
}
}

View file

@ -10,11 +10,6 @@
"bicyclelib": {
"title": "Bibliotecas de bicicletas"
},
"bike_monitoring_stations": {
"description": "Este tema mostra as estações de monitoramento de bicicletas com dados ao vivo",
"shortDescription": "Estações de monitoramento de bicicletas com dados ao vivo da Mobilidade de Bruxelas",
"title": "Estações de monitoramento de bicicletas"
},
"bookcases": {
"title": "Abrir Mapa de Estantes"
},

View file

@ -91,11 +91,6 @@
"description": "Велосипедная библиотека - это место, где велосипеды можно взять на время, часто за небольшую ежегодную плату. Примером использования являются библиотеки велосипедов для детей, что позволяет им сменить велосипед на больший, когда они перерастают свой нынешний велосипед",
"title": "Велосипедные библиотеки"
},
"bike_monitoring_stations": {
"description": "В этой теме показаны станции мониторинга велосипедов с данными в реальном времени",
"shortDescription": "Станции мониторинга велосипедов с оперативными данными от Brussels Mobility",
"title": "Станции мониторинга велосипедов"
},
"bookcases": {
"description": "Общественный книжный шкаф - это небольшой уличный шкаф, коробка, старый телефонный аппарат или другие предметы, где хранятся книги. Каждый может положить или взять книгу. Цель этой карты - собрать все эти книжные шкафы. Вы можете обнаружить новые книжные шкафы поблизости и, имея бесплатный аккаунт OpenStreetMap, быстро добавить свои любимые книжные шкафы.",
"title": "Открытая карта книжных шкафов"

View file

@ -91,11 +91,6 @@
"description": "單車圖書館是指每年支付小額費用,然後可以租用單車的地方。最有名的單車圖書館案例是給小孩的,能夠讓長大的小孩用目前的單車換成比較大的單車",
"title": "單車圖書館"
},
"bike_monitoring_stations": {
"description": "這個主題顯示單車監視站的即時資料",
"shortDescription": "布魯塞爾車行資料的即時單車監視站資料",
"title": "自行車監視站"
},
"bookcases": {
"description": "公共書架是街邊箱子、盒子、舊的電話亭或是其他存放書本的物件,每一個人都能放置或拿取書本。這份地圖收集所有類型的書架,你可以探索你附近新的書架,同時也能用免費的開放街圖帳號來快速新增你最愛的書架。",
"title": "開放書架地圖"

View file

@ -49,12 +49,21 @@ class TranslationPart {
return;
}
for (const key in object) {
for (let key in object) {
if (!object.hasOwnProperty(key)) {
continue;
}
const v = object[key]
if(typeof key === "number" && v["id"] !== undefined){
// We use the embedded id as key instead of the index as this is more stable
// key = v["id"]
if(typeof key !== "string"){
throw "Panic: found a non-string ID at"+context
}
}
if (v == null) {
console.warn("Got a null value for key ", key)
continue
@ -120,7 +129,10 @@ class TranslationPart {
}
}
/**
* Checks that the given object only contains string-values
* @param tr
*/
function isTranslation(tr: any): boolean {
for (const key in tr) {
if (typeof tr[key] !== "string") {
@ -130,6 +142,11 @@ function isTranslation(tr: any): boolean {
return true;
}
/**
* Converts a translation object into something that can be added to the 'generated translations'
* @param obj
* @param depth
*/
function transformTranslation(obj: any, depth = 1) {
if (isTranslation(obj)) {
@ -150,6 +167,9 @@ function transformTranslation(obj: any, depth = 1) {
}
/**
* Generates the big compiledTranslations file
*/
function genTranslations() {
const translations = JSON.parse(fs.readFileSync("./assets/generated/translations.json", "utf-8"))
const transformed = transformTranslation(translations);
@ -163,7 +183,10 @@ function genTranslations() {
}
// Read 'lang/*.json', writes to 'assets/generated/translations.json'
/**
* Reads 'lang/*.json', writes them into to 'assets/generated/translations.json'.
* This is only for the core translations
*/
function compileTranslationsFromWeblate() {
const translations = ScriptUtils.readDirRecSync("./langs", 1)
.filter(path => path.indexOf(".json") > 0)
@ -181,7 +204,11 @@ function compileTranslationsFromWeblate() {
}
// Get all the strings out of the layers; writes them onto the weblate paths
/**
* Get all the strings out of the layers; writes them onto the weblate paths
* @param objects
* @param target
*/
function generateTranslationsObjectFrom(objects: { path: string, parsed: { id: string } }[], target: string) {
const tr = new TranslationPart();
@ -218,6 +245,7 @@ function MergeTranslation(source: any, target: any, language: string, context: s
if (!source.hasOwnProperty(key)) {
continue
}
const sourceV = source[key];
const targetV = target[key]
if (typeof sourceV === "string") {