More translation validations
This commit is contained in:
parent
bf05a88afd
commit
61afce4197
24 changed files with 138 additions and 59 deletions
|
@ -51,7 +51,7 @@
|
|||
"id": "Karya Seni <i>{name}</i>",
|
||||
"it": "Opera <i>{name}</i>",
|
||||
"ru": "Художественная работа <i>{name}</i>",
|
||||
"es": "Obra de arte <i>{nombre}</i>",
|
||||
"es": "Obra de arte <i>{name}</i>",
|
||||
"ja": "アートワーク <i>{name}</i>",
|
||||
"zh_Hant": "藝術品<i>{name}</i>",
|
||||
"fi": "Taideteos <i>{name}</i>",
|
||||
|
|
|
@ -118,7 +118,7 @@
|
|||
"fr": "Réparateur de vélo <i>{name}</i>",
|
||||
"gl": "Arranxo de bicicletas <i>{name}</i>",
|
||||
"de": "Fahrradwerkstatt <i>{name}</i>",
|
||||
"it": "Riparazione biciclette <i>{name</i>",
|
||||
"it": "Riparazione biciclette <i>{name}</i>",
|
||||
"ru": "Ремонт велосипедов <i>{name}</i>",
|
||||
"pt_BR": "Reparo de bicicletas <i>{name}</i>",
|
||||
"pt": "Reparo de bicicletas <i>{name}</i>"
|
||||
|
|
|
@ -282,7 +282,6 @@
|
|||
"if": "cuisine=turkish",
|
||||
"then": {
|
||||
"en": "Turkish dishes are served here",
|
||||
|
||||
"nl": "Dit is een Turks restaurant (dat meer dan enkel kebab verkoopt)"
|
||||
}
|
||||
},
|
||||
|
@ -290,7 +289,6 @@
|
|||
"if": "cuisine=thai",
|
||||
"then": {
|
||||
"en": "Thai dishes are served here",
|
||||
|
||||
"nl": "Dit is een Thaïs restaurant"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -27,17 +27,6 @@
|
|||
"en": "Nature reserve"
|
||||
},
|
||||
"mappings": [
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
"name:nl~*"
|
||||
]
|
||||
},
|
||||
"then": {
|
||||
"nl": "{name:nl}",
|
||||
"en": "{name}"
|
||||
}
|
||||
},
|
||||
{
|
||||
"if": {
|
||||
"and": [
|
||||
|
@ -282,7 +271,7 @@
|
|||
],
|
||||
"id": "Dogs?"
|
||||
},
|
||||
"website",
|
||||
"website",
|
||||
{
|
||||
"question": {
|
||||
"nl": "Wie is de conservator van dit gebied?<br/><span class='subtle'>Respecteer privacy - geef deze naam enkel als die duidelijk is gepubliceerd",
|
||||
|
|
|
@ -736,7 +736,7 @@
|
|||
"ja": "ゴミ捨て場 {name}",
|
||||
"it": "Luogo di sversamento {name}",
|
||||
"fr": "Site de vidange {name}",
|
||||
"pt_BR": "Estação de despejo {nome}",
|
||||
"pt_BR": "Estação de despejo {name}",
|
||||
"de": "Entsorgungsstation {name}",
|
||||
"zh_Hant": "{name} 垃圾站"
|
||||
},
|
||||
|
|
|
@ -250,10 +250,8 @@
|
|||
"question": {
|
||||
"nl": "Is de straat <b>{name}</b> een fietsstraat?",
|
||||
"en": "Is the street <b>{name}</b> a cyclestreet?",
|
||||
"ja": "この通りはcyclestreetですか?",
|
||||
"nb_NO": "Er denne gaten en sykkelvei?",
|
||||
"de": "Ist die Straße <b>{Name}</b> eine Fahrradstraße?",
|
||||
"it": "È una strada ciclabile?",
|
||||
"de": "Ist die Straße <b>{name}</b> eine Fahrradstraße?",
|
||||
"it": "È <b>{name}</b> una strada ciclabile?",
|
||||
"hu": "Kerékpárosutca-e <b>{name}</b>?"
|
||||
},
|
||||
"mappings": [
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
"getStartedNewAccount": " ou <a href=\"https://www.openstreetmap.org/user/new\" target=\"_blank\">créez un compte</a>",
|
||||
"noTagsSelected": "Aucune balise sélectionnée",
|
||||
"customThemeIntro": "<h3>Thèmes personnalisés</h3>Vous avez déjà visité ces thèmes personnalisés.",
|
||||
"aboutMapcomplete": "<h3>À propos de MapComplete</h3><p>Avec MapComplete vous pouvez enrichir OpenStreetMap d'informations sur un <b>thème unique.</b> Répondez à quelques questions, et en quelques minutes vos contributions seront disponible dans le monde entier ! Le <b>concepteur du thème</b> définis les éléments, questions et langues pour le thème.</p><h3>En savoir plus</h3><p>MapComplete <b>propose toujours l'étape suivante</b> pour en apprendre plus sur OpenStreetMap.</p><ul><li>Lorsqu'il est intégré dans un site Web, l'<i>iframe</i> pointe vers MapComplete en plein écran</li><li>La version plein écran donne des informations sur OpenStreetMap</li><li>Il est possible de regarder sans se connecter, mais l'édition demande une connexion à OSM.</li><li>Si vous n'êtes pas connecté, il vous est demandé de le faire</li><li>Une fois que vous avez répondu à une seule question, vous pouvez ajouter de nouveaux points à la carte</li><li>Au bout d'un moment, les vrais tags OSM sont montrés, qui pointent ensuite vers le wiki</li></ul><p></p><br><p>Vous avez remarqué <b>un problème</b> ? Vous souhaitez <b>demander une fonctionnalité</b> ? Vous voulez <b>aider à traduire</b> ? Allez voir <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">le code source</a> ou l'<i><a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">issue tracker.</a></i> </p><p> Vous voulez visualiser <b>votre progression</b> ? Suivez le compteur d'édition sur <a href=\"https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222021-01-01%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D\" target=\"_blank\">OsmCha</a>.</p>",
|
||||
"aboutMapcomplete": "<h3>À propos de MapComplete</h3><p>Avec MapComplete vous pouvez enrichir OpenStreetMap d'informations sur un <b>thème unique.</b> Répondez à quelques questions, et en quelques minutes vos contributions seront disponible dans le monde entier ! Le <b>concepteur du thème</b> définis les éléments, questions et langues pour le thème.</p><h3>En savoir plus</h3><p>MapComplete <b>propose toujours l'étape suivante</b> pour en apprendre plus sur OpenStreetMap.</p><ul><li>Lorsqu'il est intégré dans un site Web, l'<i>iframe</i> pointe vers MapComplete en plein écran</li><li>La version plein écran donne des informations sur OpenStreetMap</li><li>Il est possible de regarder sans se connecter, mais l'édition demande une connexion à OSM.</li><li>Si vous n'êtes pas connecté, il vous est demandé de le faire</li><li>Une fois que vous avez répondu à une seule question, vous pouvez ajouter de nouveaux points à la carte</li><li>Au bout d'un moment, les vrais tags OSM sont montrés, qui pointent ensuite vers le wiki</li></ul><p></p><br><p>Vous avez remarqué <b>un problème</b> ? Vous souhaitez <b>demander une fonctionnalité</b> ? Vous voulez <b>aider à traduire</b> ? Allez voir <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">le code source</a> ou l'<i><a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">issue tracker.</a></i> </p><p> Vous voulez visualiser <b>votre progression</b> ? Suivez le compteur d'édition sur <a href=\"{osmcha_link}\" target=\"_blank\">OsmCha</a>.</p>",
|
||||
"backgroundMap": "Carte de fonds",
|
||||
"layerSelection": {
|
||||
"zoomInToSeeThisLayer": "Aggrandissez la carte pour voir cette couche",
|
||||
|
@ -188,7 +188,7 @@
|
|||
"wikipediaboxTitle": "Wikipédia",
|
||||
"loading": "Chargement de Wikipédia…",
|
||||
"noWikipediaPage": "Cet élément Wikidata n’a pas encore de page Wikipédia correspondante.",
|
||||
"noResults": "Pas de résultats pour",
|
||||
"noResults": "Pas de résultats pour {search}",
|
||||
"searchWikidata": "Rechercher sur Wikidata",
|
||||
"failed": "Le chargement de Wikipédia a échoué"
|
||||
},
|
||||
|
@ -244,8 +244,7 @@
|
|||
"whyDelete": "Pourquoi ce point devrait-il être supprimé ?",
|
||||
"explanations": {
|
||||
"selectReason": "Sélectionner pourquoi cet élément devrait être supprimé",
|
||||
"hardDelete": "Ce point sera supprimé d’OpenStreetmap. Il pourra être restauré par des méthodes avancées",
|
||||
"softDelete": "Cet élément sera mis à jour et caché de l’application."
|
||||
"hardDelete": "Ce point sera supprimé d’OpenStreetmap. Il pourra être restauré par des méthodes avancées"
|
||||
},
|
||||
"reasons": {
|
||||
"test": "Élément de test qui n’a jamais été ici",
|
||||
|
|
|
@ -119,7 +119,7 @@
|
|||
}
|
||||
},
|
||||
"backgroundMap": "背景マップ",
|
||||
"aboutMapcomplete": "<h3>MapCompleteについて</h3><p>MapCompleteを使えば、<b>1つのテーマに関する情報でOpenStreetMapを充実させることができます。</b>いくつかの質問に答えると、数分以内にあなたの投稿が世界中で公開されます!<b>テーマメンテナ</b>は、テーマの要素、質問、言語を定義します。</p><h3>詳細情報を見る</h3><p>MapCompleteは常にOpenStreetMapについてさらに学ぶため<b>次のステップ</b>を提供します。</p><ul><li>Webサイトに埋め込まれるとiframeはフルスクリーンのMapCompleteにリンクします</li><li>フルスクリーン版はOpenStreetMapに関する情報を提供します</li><li>ログインせずに表示することはできますが、編集にはOSMログインが必要です。</li><li>ログインしていない場合は、ログインするように求められます</li><li>1つの質問に回答すると、マップに新しいポイントを追加できます</li><li>しばらくすると、実際のOSMタグが表示され、後でWikiにリンクされます</li></ul><p></p><br><p><b>問題</b>に気づきましたか?<b>機能要求</b>はありますか?<b>翻訳の手伝いをしますか?</b><a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">ソースコード</a>または<a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">問題追跡ツール</a>に移動します。</p><p><b>進捗状況</b>を確認しますか? <a href=\"https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222021-01-01%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D\" target=\"_blank\">OsmCha</a>の編集数に従います。</p>",
|
||||
"aboutMapcomplete": "<h3>MapCompleteについて</h3><p>MapCompleteを使えば、<b>1つのテーマに関する情報でOpenStreetMapを充実させることができます。</b>いくつかの質問に答えると、数分以内にあなたの投稿が世界中で公開されます!<b>テーマメンテナ</b>は、テーマの要素、質問、言語を定義します。</p><h3>詳細情報を見る</h3><p>MapCompleteは常にOpenStreetMapについてさらに学ぶため<b>次のステップ</b>を提供します。</p><ul><li>Webサイトに埋め込まれるとiframeはフルスクリーンのMapCompleteにリンクします</li><li>フルスクリーン版はOpenStreetMapに関する情報を提供します</li><li>ログインせずに表示することはできますが、編集にはOSMログインが必要です。</li><li>ログインしていない場合は、ログインするように求められます</li><li>1つの質問に回答すると、マップに新しいポイントを追加できます</li><li>しばらくすると、実際のOSMタグが表示され、後でWikiにリンクされます</li></ul><p></p><br><p><b>問題</b>に気づきましたか?<b>機能要求</b>はありますか?<b>翻訳の手伝いをしますか?</b><a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">ソースコード</a>または<a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">問題追跡ツール</a>に移動します。</p><p><b>進捗状況</b>を確認しますか? <a href=\"{osmcha_link}\" target=\"_blank\">OsmCha</a>の編集数に従います。</p>",
|
||||
"customThemeIntro": "<h3>カスタムテーマ</h3>これらは以前にアクセスされたユーザー生成テーマです。",
|
||||
"noTagsSelected": "タグが選択されていません",
|
||||
"getStartedNewAccount": " または<a href=\"https://www.openstreetmap.org/user/new\" target=\"_blank\">新しいアカウントを作成する</a>",
|
||||
|
|
|
@ -3594,11 +3594,6 @@
|
|||
}
|
||||
},
|
||||
"title": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "{name}"
|
||||
}
|
||||
},
|
||||
"render": "Nature reserve"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
"title": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "Obra de arte <i>{nombre}</i>"
|
||||
"then": "Obra de arte <i>{name}</i>"
|
||||
}
|
||||
},
|
||||
"render": "Obra de arte"
|
||||
|
|
|
@ -771,7 +771,7 @@
|
|||
"then": "Noleggio di biciclette <i>{name}</i>"
|
||||
},
|
||||
"3": {
|
||||
"then": "Riparazione biciclette <i>{name</i>"
|
||||
"then": "Riparazione biciclette <i>{name}</i>"
|
||||
},
|
||||
"4": {
|
||||
"then": "Negozio di biciclette <i>{name}</i>"
|
||||
|
|
|
@ -3516,9 +3516,6 @@
|
|||
"title": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "{name:nl}"
|
||||
},
|
||||
"1": {
|
||||
"then": "{name}"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -35,7 +35,7 @@
|
|||
"zoomInFurther": "Powiększ jeszcze bardziej, aby dodać punkt.",
|
||||
"intro": "Kliknąłeś gdzieś, gdzie nie są jeszcze znane żadne dane.<br>",
|
||||
"title": "Czy dodać nowy punkt?",
|
||||
"addNew": "Dodaj nową {kategorię} tutaj",
|
||||
"addNew": "Dodaj nową {category} tutaj",
|
||||
"pleaseLogin": "<a class=\"activate-osm-authentication\">Zaloguj się, aby dodać nowy punkt</a>",
|
||||
"confirmButton": "Dodaj tutaj {category}.<br><div class=\"alert\">Twój dodatek jest widoczny dla wszystkich</div>",
|
||||
"layerNotEnabled": "Warstwa {layer} nie jest włączona. Włącz tę warstwę, aby dodać punkt",
|
||||
|
@ -78,7 +78,7 @@
|
|||
"zoomInFurther": "Powiększ jeszcze bardziej, aby dodać punkt.",
|
||||
"intro": "Kliknąłeś gdzieś, gdzie nie są jeszcze znane żadne dane.<br>",
|
||||
"title": "Czy dodać nowy punkt?",
|
||||
"addNew": "Dodaj nową {kategorię} tutaj",
|
||||
"addNew": "Dodaj nową {category} tutaj",
|
||||
"pleaseLogin": "<a class=\"activate-osm-authentication\">Zaloguj się, aby dodać nowy punkt</a>",
|
||||
"confirmButton": "Dodaj tutaj {category}.<br><div class=\"alert\">Twój dodatek jest widoczny dla wszystkich</div>",
|
||||
"layerNotEnabled": "Warstwa {layer} nie jest włączona. Włącz tę warstwę, aby dodać punkt",
|
||||
|
@ -120,7 +120,7 @@
|
|||
"friday": "Piątek",
|
||||
"thursday": "Czwartek"
|
||||
},
|
||||
"aboutMapcomplete": "<h3>O MapComplete</h3><p>Dzięki MapComplete możesz wzbogacić OpenStreetMap o informacje na <b>pojedynczy temat.</b> Odpowiedz na kilka pytań, a w ciągu kilku minut Twój wkład będzie dostępny na całym świecie! Opiekun <b>tematu</b> definiuje elementy, pytania i języki dla tematu.</p><h3>Dowiedz się więcej</h3><p>MapComplete zawsze <b>oferuje następny krok</b>, by dowiedzieć się więcej o OpenStreetMap.</p><ul><li>Po osadzeniu na stronie internetowej, element iframe łączy się z pełnoekranowym MapComplete</li><li>Wersja pełnoekranowa oferuje informacje o OpenStreetMap</li><li>Przeglądanie działa bez logowania, ale edycja wymaga loginu OSM.</li><li>Jeżeli nie jesteś zalogowany, zostaniesz poproszony o zalogowanie się</li><li>Po udzieleniu odpowiedzi na jedno pytanie, możesz dodać nowe punkty do mapy</li><li>Po chwili wyświetlane są rzeczywiste tagi OSM, które później linkują do wiki</li></ul><p></p><br><p>Zauważyłeś <b>problem</b>? Czy masz <b>prośbę o dodanie jakiejś funkcji</b>? Chcesz <b>pomóc w tłumaczeniu</b>? Udaj się do <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">kodu źródłowego</a> lub <a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">issue trackera.</a> </p><p> Chcesz zobaczyć <b>swoje postępy</b>? Śledź liczbę edycji na <a href=\"https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222021-01-01%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D\" target=\"_blank\">OsmCha</a>.</p>",
|
||||
"aboutMapcomplete": "<h3>O MapComplete</h3><p>Dzięki MapComplete możesz wzbogacić OpenStreetMap o informacje na <b>pojedynczy temat.</b> Odpowiedz na kilka pytań, a w ciągu kilku minut Twój wkład będzie dostępny na całym świecie! Opiekun <b>tematu</b> definiuje elementy, pytania i języki dla tematu.</p><h3>Dowiedz się więcej</h3><p>MapComplete zawsze <b>oferuje następny krok</b>, by dowiedzieć się więcej o OpenStreetMap.</p><ul><li>Po osadzeniu na stronie internetowej, element iframe łączy się z pełnoekranowym MapComplete</li><li>Wersja pełnoekranowa oferuje informacje o OpenStreetMap</li><li>Przeglądanie działa bez logowania, ale edycja wymaga loginu OSM.</li><li>Jeżeli nie jesteś zalogowany, zostaniesz poproszony o zalogowanie się</li><li>Po udzieleniu odpowiedzi na jedno pytanie, możesz dodać nowe punkty do mapy</li><li>Po chwili wyświetlane są rzeczywiste tagi OSM, które później linkują do wiki</li></ul><p></p><br><p>Zauważyłeś <b>problem</b>? Czy masz <b>prośbę o dodanie jakiejś funkcji</b>? Chcesz <b>pomóc w tłumaczeniu</b>? Udaj się do <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">kodu źródłowego</a> lub <a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">issue trackera.</a> </p><p> Chcesz zobaczyć <b>swoje postępy</b>? Śledź liczbę edycji na <a href=\"{osmcha_link}\" target=\"_blank\">OsmCha</a>.</p>",
|
||||
"noNameCategory": "{category} bez nazwy",
|
||||
"nameInlineQuestion": "Nazwa tej {category} to $$$",
|
||||
"osmLinkTooltip": "Zobacz ten obiekt na OpenStreetMap, aby uzyskać historię i więcej opcji edycji",
|
||||
|
@ -189,7 +189,7 @@
|
|||
"friday": "Piątek",
|
||||
"thursday": "Czwartek"
|
||||
},
|
||||
"aboutMapcomplete": "<h3>O MapComplete</h3><p>Dzięki MapComplete możesz wzbogacić OpenStreetMap o informacje na <b>pojedynczy temat.</b> Odpowiedz na kilka pytań, a w ciągu kilku minut Twój wkład będzie dostępny na całym świecie! Opiekun <b>motywu</b> definiuje elementy, pytania i języki dla tematu.</p><h3>Dowiedz się więcej</h3><p>MapComplete zawsze <b>oferuje następny krok</b>, by dowiedzieć się więcej o OpenStreetMap.</p><ul><li>Po osadzeniu na stronie internetowej, iframe łączy się z pełnoekranowym MapComplete</li><li>Wersja pełnoekranowa oferuje informacje o OpenStreetMap</li><li>Przeglądanie działa bez logowania, ale edycja wymaga loginu OSM.</li><li>Jeżeli nie jesteś zalogowany, zostaniesz poproszony o zalogowanie się</li><li>Po udzieleniu odpowiedzi na jedno pytanie, możesz dodać nowe punkty do mapy</li><li>Po chwili wyświetlane są rzeczywiste tagi OSM, które później linkują do wiki</li></ul><p></p><br><p>Zauważyłeś <b>problem</b>? Czy masz <b>prośbę o dodanie jakiejś funkcji</b>? Chcesz <b>pomóc w tłumaczeniu</b>? Udaj się do <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">kodu źródłowego</a> lub <a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">issue trackera.</a> </p><p> Chcesz zobaczyć <b>swoje postępy</b>? Śledź liczbę edycji na <a href=\"https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222021-01-01%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D\" target=\"_blank\">OsmCha</a>.</p>.",
|
||||
"aboutMapcomplete": "<h3>O MapComplete</h3><p>Dzięki MapComplete możesz wzbogacić OpenStreetMap o informacje na <b>pojedynczy temat.</b> Odpowiedz na kilka pytań, a w ciągu kilku minut Twój wkład będzie dostępny na całym świecie! Opiekun <b>motywu</b> definiuje elementy, pytania i języki dla tematu.</p><h3>Dowiedz się więcej</h3><p>MapComplete zawsze <b>oferuje następny krok</b>, by dowiedzieć się więcej o OpenStreetMap.</p><ul><li>Po osadzeniu na stronie internetowej, iframe łączy się z pełnoekranowym MapComplete</li><li>Wersja pełnoekranowa oferuje informacje o OpenStreetMap</li><li>Przeglądanie działa bez logowania, ale edycja wymaga loginu OSM.</li><li>Jeżeli nie jesteś zalogowany, zostaniesz poproszony o zalogowanie się</li><li>Po udzieleniu odpowiedzi na jedno pytanie, możesz dodać nowe punkty do mapy</li><li>Po chwili wyświetlane są rzeczywiste tagi OSM, które później linkują do wiki</li></ul><p></p><br><p>Zauważyłeś <b>problem</b>? Czy masz <b>prośbę o dodanie jakiejś funkcji</b>? Chcesz <b>pomóc w tłumaczeniu</b>? Udaj się do <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">kodu źródłowego</a> lub <a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">issue trackera.</a> </p><p> Chcesz zobaczyć <b>swoje postępy</b>? Śledź liczbę edycji na <a href=\"{osmcha_link}\" target=\"_blank\">OsmCha</a>.</p>.",
|
||||
"noNameCategory": "{category} bez nazwy",
|
||||
"nameInlineQuestion": "Nazwa tej {category} to $$$",
|
||||
"osmLinkTooltip": "Zobacz ten obiekt na OpenStreetMap, aby uzyskać historię i więcej opcji edycji",
|
||||
|
@ -244,7 +244,7 @@
|
|||
"loadingData": "Ładowanie danych…",
|
||||
"ready": "Zrobione!",
|
||||
"zoomIn": "Przybliż żeby zobaczyć lub edytować",
|
||||
"retrying": "Ładowanie danych nie powiodło się. Spróbujemy ponownie za {liczba} sekund…"
|
||||
"retrying": "Ładowanie danych nie powiodło się. Spróbujemy ponownie za {count} sekund…"
|
||||
},
|
||||
"reviews": {
|
||||
"plz_login": "Zaloguj się, aby zostawić opinię",
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
"zoomInFurther": "Amplie mais para adicionar um ponto.",
|
||||
"openLayerControl": "Abra a caixa de controlo da camada",
|
||||
"disableFilters": "Desativar todos os filtros",
|
||||
"addNew": "Adicionar uma nova {categoria} aqui",
|
||||
"addNew": "Adicionar uma nova {category} aqui",
|
||||
"intro": "Clicou em algum lugar onde ainda não há dados conhecidos.<br>",
|
||||
"addNewMapLabel": "Adicionar novo item",
|
||||
"presetInfo": "O novo POI terá {tags}",
|
||||
|
@ -90,8 +90,8 @@
|
|||
},
|
||||
"questions": {
|
||||
"websiteOf": "Qual é o site de {category}?",
|
||||
"emailOf": "Qual é o endereço de e-mail de {categoria}?",
|
||||
"emailIs": "O endereço de e-mail de {categoria} é <a href=\"mailto:{email}\" target=\"_blank\">{email}</a>",
|
||||
"emailOf": "Qual é o endereço de e-mail de {category}?",
|
||||
"emailIs": "O endereço de e-mail de {category} é <a href=\"mailto:{email}\" target=\"_blank\">{email}</a>",
|
||||
"websiteIs": "Site: <a href=\"{website}\" target=\"_blank\">{website}</a>",
|
||||
"phoneNumberIs": "O número de telefone de {category} é <a target=\"_blank\">{phone}</a>",
|
||||
"phoneNumberOf": "Qual é o número de telefone de {category}?"
|
||||
|
@ -184,7 +184,7 @@
|
|||
"editThisTheme": "Editar este tema"
|
||||
},
|
||||
"attribution": {
|
||||
"themeBy": "Tema gerido por {autor}",
|
||||
"themeBy": "Tema gerido por {author}",
|
||||
"iconAttribution": {
|
||||
"title": "Ícones usados"
|
||||
},
|
||||
|
@ -211,7 +211,7 @@
|
|||
"streetcomplete": "Outra aplicação semelhante é o <a class=\"underline hover:text-blue-800\" href=\"https://play.google.com/store/apps/details?id=de.westnordost.streetcomplete\" target=\"_blank\">StreetComplete</a>.",
|
||||
"createYourOwnTheme": "Crie o seu próprio tema MapComplete a partir do zero",
|
||||
"previouslyHiddenTitle": "Temas ocultos visitados anteriormente",
|
||||
"hiddenExplanation": "Estes temas só são acessíveis a quem tem a hiperligação. Você descobriu {substituído} de {total_substituído} temas ocultos.",
|
||||
"hiddenExplanation": "Estes temas só são acessíveis a quem tem a hiperligação. Você descobriu {hidden_discovered} de {total_hidden} temas ocultos.",
|
||||
"intro": "<h3>Mais mapas temáticos?</h3>Gosta de colecionar dados geográficos? <br>Tem mais temas disponíveis."
|
||||
},
|
||||
"about": "Edite e adicione facilmente o OpenStreetMap para um determinado tema",
|
||||
|
|
|
@ -125,7 +125,7 @@
|
|||
"intro": "<h3>Compartilhe este mapa</h3> Compartilhe este mapa copiando o link abaixo e enviando-o para amigos e familiares:",
|
||||
"embedIntro": "<h3>Incorpore em seu site</h3>Por favor, incorpore este mapa em seu site.<br>Nós o encorajamos a fazer isso - você nem precisa pedir permissão.<br>É gratuito e sempre será. Quanto mais pessoas usarem isso, mais valioso se tornará."
|
||||
},
|
||||
"aboutMapcomplete": "<h3>Sobre o MapComplete</h3><p>Com o MapComplete, você pode enriquecer o OpenStreetMap com informações sobre um<b>único tema.</b>Responda a algumas perguntas e, em minutos, suas contribuições estarão disponíveis em todo o mundo! O<b>mantenedor do tema</b>define elementos, questões e linguagens para o tema.</p><h3>Saiba mais</h3><p>MapComplete sempre<b>oferece a próxima etapa</b>para saber mais sobre o OpenStreetMap.</p><ul><li>Quando incorporado em um site, o iframe vincula-se a um MapComplete em tela inteira</li><li>A versão em tela inteira oferece informações sobre o OpenStreetMap</li><li>A visualização funciona sem login, mas a edição requer um login do OSM.</li><li>Se você não estiver conectado, será solicitado que você faça o login</li><li>Depois de responder a uma única pergunta, você pode adicionar novos aponta para o mapa </li><li> Depois de um tempo, as tags OSM reais são mostradas, posteriormente vinculadas ao wiki </li></ul><p></p><br><p>Você percebeu<b>um problema</b>? Você tem uma<b>solicitação de recurso </b>? Quer<b>ajudar a traduzir</b>? Acesse <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">o código-fonte</a>ou <a href=\"https: //github.com/pietervdvn/MapComplete / issues \" target=\" _ blank \">rastreador de problemas.</a></p><p>Quer ver<b>seu progresso</b>? Siga a contagem de edição em<a href=\"https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222021-01-01%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D\" target=\"_blank\">OsmCha</a>.</p>"
|
||||
"aboutMapcomplete": "<h3>Sobre o MapComplete</h3><p>Com o MapComplete, você pode enriquecer o OpenStreetMap com informações sobre um<b>único tema.</b>Responda a algumas perguntas e, em minutos, suas contribuições estarão disponíveis em todo o mundo! O<b>mantenedor do tema</b>define elementos, questões e linguagens para o tema.</p><h3>Saiba mais</h3><p>MapComplete sempre<b>oferece a próxima etapa</b>para saber mais sobre o OpenStreetMap.</p><ul><li>Quando incorporado em um site, o iframe vincula-se a um MapComplete em tela inteira</li><li>A versão em tela inteira oferece informações sobre o OpenStreetMap</li><li>A visualização funciona sem login, mas a edição requer um login do OSM.</li><li>Se você não estiver conectado, será solicitado que você faça o login</li><li>Depois de responder a uma única pergunta, você pode adicionar novos aponta para o mapa </li><li> Depois de um tempo, as tags OSM reais são mostradas, posteriormente vinculadas ao wiki </li></ul><p></p><br><p>Você percebeu<b>um problema</b>? Você tem uma<b>solicitação de recurso </b>? Quer<b>ajudar a traduzir</b>? Acesse <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">o código-fonte</a>ou <a href=\"https: //github.com/pietervdvn/MapComplete / issues \" target=\" _ blank \">rastreador de problemas.</a></p><p>Quer ver<b>seu progresso</b>? Siga a contagem de edição em<a href=\"{osmcha_link}\" target=\"_blank\">OsmCha</a>.</p>"
|
||||
},
|
||||
"index": {
|
||||
"pickTheme": "Escolha um tema abaixo para começar.",
|
||||
|
|
|
@ -77,7 +77,7 @@
|
|||
"zoomInToSeeThisLayer": "Увеличьте масштаб, чтобы увидеть этот слой"
|
||||
},
|
||||
"backgroundMap": "Фоновая карта",
|
||||
"aboutMapcomplete": "<h3>О MapComplete</h3><p>С помощью MapComplete вы можете обогатить OpenStreetMap информацией по <b>одной теме.</b> Ответьте на несколько вопросов, и через несколько минут ваши материалы будут доступны по всему миру! <b>Сопровождающий темы</b> определяет элементы, вопросы и языки для темы.</p><h3>Узнайте больше</h3><p>MapComplete всегда <b>предлагает следующий шаг</b>, чтобы узнать больше об OpenStreetMap.</p><ul><li>При встраивании в веб-сайт iframe ссылается на полноэкранную версию MapComplete</li><li>Полноэкранная версия предлагает информацию об OpenStreetMap</li><li>Просмотр работает без входа, но для редактирования требуется вход в OSM.</li><li>Если вы не вошли в систему, вас попросят войти</li><li>Ответив на один вопрос, вы можете добавлять новые точки на карту</li><li>Через некоторое время отображаются актуальные OSM-метки с последующей ссылкой на вики</li></ul><p></p><br><p>Вы заметили <b>проблему</b>? У вас есть <b>запрос на функциональность</b>? Хотите <b>помочь с переводом</b>? Зайдите на <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">репозиторий с исходным кодом</a> или <a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">трекер проблем.</a> </p> <p> Хотите увидеть <b>свой прогресс</b>? Следите за количеством правок на <a href=\"https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222021-01-01%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D\" target=\"_blank\"> OsmCha</a>.</p>",
|
||||
"aboutMapcomplete": "<h3>О MapComplete</h3><p>С помощью MapComplete вы можете обогатить OpenStreetMap информацией по <b>одной теме.</b> Ответьте на несколько вопросов, и через несколько минут ваши материалы будут доступны по всему миру! <b>Сопровождающий темы</b> определяет элементы, вопросы и языки для темы.</p><h3>Узнайте больше</h3><p>MapComplete всегда <b>предлагает следующий шаг</b>, чтобы узнать больше об OpenStreetMap.</p><ul><li>При встраивании в веб-сайт iframe ссылается на полноэкранную версию MapComplete</li><li>Полноэкранная версия предлагает информацию об OpenStreetMap</li><li>Просмотр работает без входа, но для редактирования требуется вход в OSM.</li><li>Если вы не вошли в систему, вас попросят войти</li><li>Ответив на один вопрос, вы можете добавлять новые точки на карту</li><li>Через некоторое время отображаются актуальные OSM-метки с последующей ссылкой на вики</li></ul><p></p><br><p>Вы заметили <b>проблему</b>? У вас есть <b>запрос на функциональность</b>? Хотите <b>помочь с переводом</b>? Зайдите на <a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">репозиторий с исходным кодом</a> или <a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">трекер проблем.</a> </p> <p> Хотите увидеть <b>свой прогресс</b>? Следите за количеством правок на <a href=\"{osmcha_link}\" target=\"_blank\"> OsmCha</a>.</p>",
|
||||
"customThemeIntro": "<h3>Пользовательские темы</h3>Это ранее просмотренные темы, созданные пользователями.",
|
||||
"noTagsSelected": "Теги не выбраны",
|
||||
"getStartedNewAccount": " или <a href=\"https://www.openstreetmap.org/user/new\" target=\"_blank\">создать новую учетную запись</a>",
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
"ph_not_known": " ",
|
||||
"open_24_7": "Öppet dygnet runt",
|
||||
"closed_permanently": "Stängt tills vidare",
|
||||
"closed_until": "Stängt till",
|
||||
"closed_until": "Stängt till {date}",
|
||||
"openTill": "till",
|
||||
"opensAt": "från",
|
||||
"open_during_ph": "Om det är en röd dag är det här stället",
|
||||
|
|
|
@ -692,7 +692,7 @@
|
|||
"then": "Diese Straße ist keine Fahrradstraße"
|
||||
}
|
||||
},
|
||||
"question": "Ist die Straße <b>{Name}</b> eine Fahrradstraße?"
|
||||
"question": "Ist die Straße <b>{name}</b> eine Fahrradstraße?"
|
||||
},
|
||||
"1": {
|
||||
"question": "Wann wird diese Straße eine Fahrradstraße?",
|
||||
|
|
|
@ -645,7 +645,7 @@
|
|||
"then": "Questa strada non è una strada ciclabile"
|
||||
}
|
||||
},
|
||||
"question": "È una strada ciclabile?"
|
||||
"question": "È <b>{name}</b> una strada ciclabile?"
|
||||
},
|
||||
"1": {
|
||||
"question": "Questa strada diventerà una strada ciclabile quando?",
|
||||
|
|
|
@ -518,8 +518,7 @@
|
|||
"3": {
|
||||
"then": "この通りはcyclestreetではない"
|
||||
}
|
||||
},
|
||||
"question": "この通りはcyclestreetですか?"
|
||||
}
|
||||
},
|
||||
"1": {
|
||||
"question": "この通りはいつcyclestreetになるんですか?",
|
||||
|
|
|
@ -198,8 +198,7 @@
|
|||
"3": {
|
||||
"then": "Denne gaten er ikke en sykkelvei"
|
||||
}
|
||||
},
|
||||
"question": "Er denne gaten en sykkelvei?"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -159,7 +159,7 @@
|
|||
"then": "Estação de despejo"
|
||||
}
|
||||
},
|
||||
"render": "Estação de despejo {nome}"
|
||||
"render": "Estação de despejo {name}"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
"zoomInToSeeThisLayer": "放大來看這個圖層"
|
||||
},
|
||||
"backgroundMap": "背景地圖",
|
||||
"aboutMapcomplete": "<h3>關於 MapComplete</h3><p>使用 MapComplete 你可以藉由<b>單一主題</b>豐富開放街圖的圖資。回答幾個問題,然後幾分鐘之內你的貢獻立刻就傳遍全球!<b>主題維護者</b>定議主題的元素、問題與語言。</p><h3>發現更多</h3><p>MapComplete 總是提供學習更多開放街圖<b>下一步的知識</b>。</p><ul><li>當你內嵌網站,網頁內嵌會連結到全螢幕的 MapComplete</li><li>全螢幕的版本提供關於開放街圖的資訊</li><li>不登入檢視成果,但是要編輯則需登入 OSM。</li><li>如果你沒有登入,你會被要求先登入</li><li>當你回答單一問題時,你可以在地圖新增新的節點</li><li>過了一陣子,實際的 OSM-標籤會顯示,之後會連結到 wiki</li></ul><p></p><br><p>你有注意到<b>問題</b>嗎?你想請求<b>功能</b>嗎?想要<b>幫忙翻譯</b>嗎?來到<a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">原始碼</a>或是<a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">問題追蹤器。</a></p><p>想要看到<b>你的進度</b>嗎?到<a href=\"https://osmcha.org/?filters=%7B%22date__gte%22%3A%5B%7B%22label%22%3A%222021-01-01%22%2C%22value%22%3A%222021-01-01%22%7D%5D%2C%22editor%22%3A%5B%7B%22label%22%3A%22mapcomplete%22%2C%22value%22%3A%22mapcomplete%22%7D%5D%7D\" target=\"_blank\">OsmCha</a>追蹤編輯數。</p>",
|
||||
"aboutMapcomplete": "<h3>關於 MapComplete</h3><p>使用 MapComplete 你可以藉由<b>單一主題</b>豐富開放街圖的圖資。回答幾個問題,然後幾分鐘之內你的貢獻立刻就傳遍全球!<b>主題維護者</b>定議主題的元素、問題與語言。</p><h3>發現更多</h3><p>MapComplete 總是提供學習更多開放街圖<b>下一步的知識</b>。</p><ul><li>當你內嵌網站,網頁內嵌會連結到全螢幕的 MapComplete</li><li>全螢幕的版本提供關於開放街圖的資訊</li><li>不登入檢視成果,但是要編輯則需登入 OSM。</li><li>如果你沒有登入,你會被要求先登入</li><li>當你回答單一問題時,你可以在地圖新增新的節點</li><li>過了一陣子,實際的 OSM-標籤會顯示,之後會連結到 wiki</li></ul><p></p><br><p>你有注意到<b>問題</b>嗎?你想請求<b>功能</b>嗎?想要<b>幫忙翻譯</b>嗎?來到<a href=\"https://github.com/pietervdvn/MapComplete\" target=\"_blank\">原始碼</a>或是<a href=\"https://github.com/pietervdvn/MapComplete/issues\" target=\"_blank\">問題追蹤器。</a></p><p>想要看到<b>你的進度</b>嗎?到<a href=\"{osmcha_link}\" target=\"_blank\">OsmCha</a>追蹤編輯數。</p>",
|
||||
"customThemeIntro": "<h3>客製化主題</h3>觀看這些先前使用者創造的主題。",
|
||||
"noTagsSelected": "沒有選取標籤",
|
||||
"getStartedNewAccount": " 或是 <a href=\"https://www.openstreetmap.org/user/new\" target=\"_blank\">註冊新帳號</a>",
|
||||
|
|
|
@ -9,6 +9,11 @@ class TranslationPart {
|
|||
|
||||
contents: Map<string, TranslationPart | string> = new Map<string, TranslationPart | string>()
|
||||
|
||||
/**
|
||||
* Add a leaf object
|
||||
* @param language
|
||||
* @param obj
|
||||
*/
|
||||
add(language: string, obj: any) {
|
||||
for (const key in obj) {
|
||||
const v = obj[key]
|
||||
|
@ -135,6 +140,94 @@ class TranslationPart {
|
|||
}
|
||||
return `{${parts.join(",")}}`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recursively adds a translation object, the inverse of 'toJson'
|
||||
* @param language
|
||||
* @param object
|
||||
* @private
|
||||
*/
|
||||
private addTranslation(language: string, object: any){
|
||||
for (const key in object) {
|
||||
const v = object[key]
|
||||
let subpart = <TranslationPart>this.contents.get(key)
|
||||
if(subpart === undefined){
|
||||
subpart = new TranslationPart()
|
||||
this.contents.set(key, subpart)
|
||||
}
|
||||
if(typeof v === "string"){
|
||||
subpart.contents.set(language, v)
|
||||
}else{
|
||||
subpart.addTranslation(language, v)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static fromDirectory(path): TranslationPart{
|
||||
const files = ScriptUtils.readDirRecSync(path, 1).filter(file => file.endsWith(".json"))
|
||||
const rootTranslation = new TranslationPart()
|
||||
for (const file of files) {
|
||||
const content = JSON.parse(readFileSync(file, "UTF8"))
|
||||
rootTranslation.addTranslation(file.substr(0, file.length - ".json".length), content)
|
||||
}
|
||||
return rootTranslation
|
||||
}
|
||||
|
||||
validateStrict(ctx?:string): void {
|
||||
const errors = this.validate()
|
||||
for (const err of errors) {
|
||||
console.error("ERROR in "+(ctx ?? "")+ " " +err.path.join(".")+"\n "+err.error)
|
||||
}
|
||||
if(errors.length > 0){
|
||||
throw ctx+" has "+errors.length+" inconsistencies in the translation"
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks the leaf objects: special values must be present and identical in every leaf
|
||||
*/
|
||||
validate(path = []): {error: string, path: string[]} [] {
|
||||
const errors : {error: string, path: string[]} []= []
|
||||
const neededSubparts = new Set<string>()
|
||||
let isLeaf : boolean = undefined
|
||||
this.contents.forEach((value, key) => {
|
||||
if(typeof value === "string"){
|
||||
if(isLeaf === undefined){
|
||||
isLeaf = true
|
||||
}else if(!isLeaf){
|
||||
errors.push({error:"Mixed node: non-leaf node has translation strings", path: path})
|
||||
}
|
||||
|
||||
let subparts: string[] = value.match(/{[^}]*}/g)
|
||||
if(subparts === null){
|
||||
if(neededSubparts.size > 0){
|
||||
errors.push({error:"The translation for "+key+" does not have any subparts, but expected "+Array.from(neededSubparts).join(",")+" . The full translation is "+value, path: path})
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
subparts = subparts.map(p => p.split(/\(.*\)/)[0])
|
||||
|
||||
neededSubparts.forEach(part => {
|
||||
if(subparts.indexOf(part) < 0){
|
||||
errors.push({error:"The translation for "+key+" does not have the required subpart "+part+". The full translation is "+value, path: path})
|
||||
}
|
||||
})
|
||||
|
||||
for (const subpart of subparts) {
|
||||
neededSubparts.add(subpart)
|
||||
}
|
||||
|
||||
}else{
|
||||
const recErrors = value.validate([...path, key])
|
||||
errors.push(...recErrors)
|
||||
}
|
||||
})
|
||||
|
||||
return errors
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -181,6 +274,9 @@ function transformTranslation(obj: any, depth = 1) {
|
|||
|
||||
}
|
||||
|
||||
/**
|
||||
* Formats the specified file, helps to prevent merge conflicts
|
||||
* */
|
||||
function formatFile(path) {
|
||||
const contents = JSON.parse(readFileSync(path, "utf8"))
|
||||
writeFileSync(path, JSON.stringify(contents, null, " "))
|
||||
|
@ -210,7 +306,10 @@ function compileTranslationsFromWeblate() {
|
|||
.filter(path => path.indexOf(".json") > 0)
|
||||
|
||||
const allTranslations = new TranslationPart()
|
||||
|
||||
|
||||
allTranslations.validateStrict()
|
||||
|
||||
|
||||
for (const translationFile of translations) {
|
||||
try {
|
||||
|
||||
|
@ -417,4 +516,10 @@ if (!themeOverwritesWeblate) {
|
|||
compileTranslationsFromWeblate();
|
||||
}
|
||||
genTranslations()
|
||||
formatFile("./langs/en.json")
|
||||
formatFile("./langs/en.json")
|
||||
|
||||
// SOme validation
|
||||
TranslationPart.fromDirectory("./langs").validateStrict("./langs")
|
||||
TranslationPart.fromDirectory("./langs/layers").validateStrict("layers")
|
||||
TranslationPart.fromDirectory("./langs/themes").validateStrict("themes")
|
||||
TranslationPart.fromDirectory("./langs/shared-questions").validateStrict("shared-questions")
|
||||
|
|
Loading…
Reference in a new issue