forked from MapComplete/MapComplete
Merge branch 'master' into develop
This commit is contained in:
commit
c203a365e4
10 changed files with 160 additions and 361 deletions
|
@ -8,6 +8,7 @@ import {Utils} from "../../Utils";
|
|||
import Link from "../Base/Link";
|
||||
import {VariableUiElement} from "../Base/VariableUIElement";
|
||||
import * as contributors from "../../assets/contributors.json"
|
||||
import * as translators from "../../assets/translators.json"
|
||||
import BaseUIElement from "../BaseUIElement";
|
||||
import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig";
|
||||
import Title from "../Base/Title";
|
||||
|
@ -21,6 +22,7 @@ import {OsmConnection} from "../../Logic/Osm/OsmConnection";
|
|||
import Constants from "../../Models/Constants";
|
||||
import ContributorCount from "../../Logic/ContributorCount";
|
||||
import Img from "../Base/Img";
|
||||
import {Translation} from "../i18n/Translation";
|
||||
|
||||
export class OpenIdEditor extends VariableUiElement {
|
||||
constructor(state: { locationControl: UIEventSource<Loc> }, iconStyle?: string, objectId?: string) {
|
||||
|
@ -180,7 +182,8 @@ export default class CopyrightPanel extends Combine {
|
|||
|
||||
|
||||
})),
|
||||
CopyrightPanel.CodeContributors(),
|
||||
CopyrightPanel.CodeContributors(contributors, Translations.t.general.attribution.codeContributionsBy),
|
||||
CopyrightPanel.CodeContributors(translators, Translations.t.general.attribution.translatedBy),
|
||||
new Title(t.iconAttribution.title, 3),
|
||||
...iconAttributions
|
||||
].map(e => e?.SetClass("mt-4")));
|
||||
|
@ -188,7 +191,7 @@ export default class CopyrightPanel extends Combine {
|
|||
this.SetStyle("max-width:100%; width: 40rem; margin-left: 0.75rem; margin-right: 0.5rem")
|
||||
}
|
||||
|
||||
private static CodeContributors(): BaseUIElement {
|
||||
private static CodeContributors(contributors, translation: Translation): BaseUIElement {
|
||||
|
||||
const total = contributors.contributors.length;
|
||||
let filtered = [...contributors.contributors]
|
||||
|
@ -202,7 +205,7 @@ export default class CopyrightPanel extends Combine {
|
|||
return undefined;
|
||||
}
|
||||
|
||||
return Translations.t.general.attribution.codeContributionsBy.Subs({
|
||||
return translation.Subs({
|
||||
contributors: contribsStr,
|
||||
hiddenCount: total - 10
|
||||
});
|
||||
|
|
|
@ -1,352 +1 @@
|
|||
{
|
||||
"contributors": [
|
||||
{
|
||||
"contributor": "pietervdvn",
|
||||
"commits": 1119
|
||||
},
|
||||
{
|
||||
"contributor": "Pieter Vander Vennet",
|
||||
"commits": 784
|
||||
},
|
||||
{
|
||||
"contributor": "Weblate",
|
||||
"commits": 47
|
||||
},
|
||||
{
|
||||
"contributor": "Robin van der Linde",
|
||||
"commits": 47
|
||||
},
|
||||
{
|
||||
"contributor": "Tobias",
|
||||
"commits": 35
|
||||
},
|
||||
{
|
||||
"contributor": "Christian Neumann",
|
||||
"commits": 33
|
||||
},
|
||||
{
|
||||
"contributor": "Win Olario",
|
||||
"commits": 31
|
||||
},
|
||||
{
|
||||
"contributor": "Pieter Fiers",
|
||||
"commits": 31
|
||||
},
|
||||
{
|
||||
"contributor": "karelleketers",
|
||||
"commits": 26
|
||||
},
|
||||
{
|
||||
"contributor": "Ward",
|
||||
"commits": 24
|
||||
},
|
||||
{
|
||||
"contributor": "Artem",
|
||||
"commits": 23
|
||||
},
|
||||
{
|
||||
"contributor": "Sebastian Kürten",
|
||||
"commits": 19
|
||||
},
|
||||
{
|
||||
"contributor": "Arno Deceuninck",
|
||||
"commits": 18
|
||||
},
|
||||
{
|
||||
"contributor": "pgm-chardelv1",
|
||||
"commits": 17
|
||||
},
|
||||
{
|
||||
"contributor": "Joost",
|
||||
"commits": 17
|
||||
},
|
||||
{
|
||||
"contributor": "Marco",
|
||||
"commits": 16
|
||||
},
|
||||
{
|
||||
"contributor": "Allan Nordhøy",
|
||||
"commits": 16
|
||||
},
|
||||
{
|
||||
"contributor": "ToastHawaii",
|
||||
"commits": 15
|
||||
},
|
||||
{
|
||||
"contributor": "Supaplex",
|
||||
"commits": 14
|
||||
},
|
||||
{
|
||||
"contributor": "J. Lavoie",
|
||||
"commits": 14
|
||||
},
|
||||
{
|
||||
"contributor": "WaldiS",
|
||||
"commits": 13
|
||||
},
|
||||
{
|
||||
"contributor": "Bavo Vanderghote",
|
||||
"commits": 12
|
||||
},
|
||||
{
|
||||
"contributor": "LiamSimons",
|
||||
"commits": 10
|
||||
},
|
||||
{
|
||||
"contributor": "Jacque Fresco",
|
||||
"commits": 9
|
||||
},
|
||||
{
|
||||
"contributor": "Midgard",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"contributor": "Mateusz Konieczny",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"contributor": "Irina",
|
||||
"commits": 8
|
||||
},
|
||||
{
|
||||
"contributor": "yopaseopor",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"contributor": "Hosted Weblate",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"contributor": "Flo Edelmann",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"contributor": "Binnette",
|
||||
"commits": 7
|
||||
},
|
||||
{
|
||||
"contributor": "Vinicius",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"contributor": "pelderson",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"contributor": "lvgx",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"contributor": "dependabot[bot]",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"contributor": "Alexey Shabanov",
|
||||
"commits": 6
|
||||
},
|
||||
{
|
||||
"contributor": "Nikolay Korotkiy",
|
||||
"commits": 5
|
||||
},
|
||||
{
|
||||
"contributor": "LeJun",
|
||||
"commits": 5
|
||||
},
|
||||
{
|
||||
"contributor": "David Haberthür",
|
||||
"commits": 5
|
||||
},
|
||||
{
|
||||
"contributor": "William Weber Berrutti",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "Ward Beyens",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "SiegbjornSitumeang",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "seppesantens",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "Polgár Sándor",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "Jan Zabel",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "Hiroshi Miura",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "Fabio Bettani",
|
||||
"commits": 4
|
||||
},
|
||||
{
|
||||
"contributor": "Wiktor Przybylski",
|
||||
"commits": 3
|
||||
},
|
||||
{
|
||||
"contributor": "vankos",
|
||||
"commits": 3
|
||||
},
|
||||
{
|
||||
"contributor": "Reza Almanda",
|
||||
"commits": 3
|
||||
},
|
||||
{
|
||||
"contributor": "Léo Villeveygoux",
|
||||
"commits": 3
|
||||
},
|
||||
{
|
||||
"contributor": "JCGF-OSM",
|
||||
"commits": 3
|
||||
},
|
||||
{
|
||||
"contributor": "Erik Palm",
|
||||
"commits": 3
|
||||
},
|
||||
{
|
||||
"contributor": "Eduardo Addad de Oliveira",
|
||||
"commits": 3
|
||||
},
|
||||
{
|
||||
"contributor": "快乐的老鼠宝宝",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Stanislas Gueniffey",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "riiga",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "pbarban",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "mic140",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Leo Alcaraz",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Jose Luis Infante",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Jeff Huang",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Heiko",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "graveelius",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Damian Tokarski",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Charlotte Delvaux",
|
||||
"commits": 2
|
||||
},
|
||||
{
|
||||
"contributor": "Tomas Fiers",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Thibault Molleman",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "tbowdecl97",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Seppe Santens",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Sebastian",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Sean Young",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Schouppe Joost",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "root",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Rodrigo Tavares",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "riQQ",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Raphael Das Gupta",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Noémie",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "mozita",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Michał Targoński",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Luna Jernberg",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "liimee",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Iváns",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Eric Armijo",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Damian Pułka",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Carlos Ramos Carreño",
|
||||
"commits": 1
|
||||
},
|
||||
{
|
||||
"contributor": "Beardhatcode",
|
||||
"commits": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
{"contributors":[{"commits":3145,"contributor":"Pieter Vander Vennet"},{"commits":64,"contributor":"Robin van der Linde"},{"commits":38,"contributor":"Tobias"},{"commits":33,"contributor":"Christian Neumann"},{"commits":31,"contributor":"Win Olario"},{"commits":31,"contributor":"Pieter Fiers"},{"commits":26,"contributor":"karelleketers"},{"commits":24,"contributor":"Ward"},{"commits":20,"contributor":"Joost"},{"commits":19,"contributor":"Sebastian Kürten"},{"commits":18,"contributor":"Arno Deceuninck"},{"commits":17,"contributor":"pgm-chardelv1"},{"commits":16,"contributor":"Hosted Weblate"},{"commits":15,"contributor":"ToastHawaii"},{"commits":13,"contributor":"riQQ"},{"commits":13,"contributor":"Nicole"},{"commits":12,"contributor":"Tobias Jordans"},{"commits":12,"contributor":"Bavo Vanderghote"},{"commits":10,"contributor":"LiamSimons"},{"commits":8,"contributor":"dependabot[bot]"},{"commits":8,"contributor":"Midgard"},{"commits":7,"contributor":"RobJN"},{"commits":7,"contributor":"Mateusz Konieczny"},{"commits":7,"contributor":"Flo Edelmann"},{"commits":7,"contributor":"Binnette"},{"commits":7,"contributor":"yopaseopor"},{"commits":6,"contributor":"pelderson"},{"commits":5,"contributor":"David Haberthür"},{"commits":4,"contributor":"Ward Beyens"},{"commits":3,"contributor":"Léo Villeveygoux"},{"commits":2,"contributor":"arrival-spring"},{"commits":2,"contributor":"Strubbl"},{"commits":2,"contributor":"RayBB"},{"commits":2,"contributor":"Charlotte Delvaux"},{"commits":2,"contributor":"Supaplex"},{"commits":2,"contributor":"pbarban"},{"commits":2,"contributor":"graveelius"},{"commits":2,"contributor":"Stanislas Gueniffey"},{"commits":1,"contributor":"Jiří Podhorecký"},{"commits":1,"contributor":"Mark Rogerson"},{"commits":1,"contributor":"nicole_s"},{"commits":1,"contributor":"SC"},{"commits":1,"contributor":"Raphael Das Gupta"},{"commits":1,"contributor":"Nikolay Korotkiy"},{"commits":1,"contributor":"Seppe Santens"},{"commits":1,"contributor":"root"},{"commits":1,"contributor":"Allan Nordhøy"},{"commits":1,"contributor":"快乐的老鼠宝宝"},{"commits":1,"contributor":"Sebastian"},{"commits":1,"contributor":"Hiroshi Miura"},{"commits":1,"contributor":"riiga"},{"commits":1,"contributor":"Vinicius"},{"commits":1,"contributor":"Alexey Shabanov"},{"commits":1,"contributor":"Polgár Sándor"},{"commits":1,"contributor":"SiegbjornSitumeang"},{"commits":1,"contributor":"Marco"},{"commits":1,"contributor":"mozita"},{"commits":1,"contributor":"Schouppe Joost"},{"commits":1,"contributor":"Thibault Molleman"},{"commits":1,"contributor":"Noémie"},{"commits":1,"contributor":"Tomas Fiers"},{"commits":1,"contributor":"tbowdecl97"}]}
|
1
assets/translators.json
Normal file
1
assets/translators.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"contributors":[{"commits":60,"contributor":"danieldegroot2"},{"commits":41,"contributor":"kjon"},{"commits":29,"contributor":"Artem"},{"commits":23,"contributor":"Pieter Vander Vennet"},{"commits":22,"contributor":"Supaplex"},{"commits":22,"contributor":"Marco"},{"commits":22,"contributor":"Allan Nordhøy"},{"commits":21,"contributor":"Babos Gábor"},{"commits":21,"contributor":"Anonymous"},{"commits":15,"contributor":"WaldiS"},{"commits":14,"contributor":"J. Lavoie"},{"commits":13,"contributor":"SC"},{"commits":10,"contributor":"Reza Almanda"},{"commits":9,"contributor":"Jacque Fresco"},{"commits":8,"contributor":"LeJun"},{"commits":8,"contributor":"Irina"},{"commits":6,"contributor":"Nikolay Korotkiy"},{"commits":6,"contributor":"William Weber Berrutti"},{"commits":6,"contributor":"lvgx"},{"commits":5,"contributor":"Piotr"},{"commits":5,"contributor":"Robin van der Linde"},{"commits":5,"contributor":"seppesantens"},{"commits":5,"contributor":"Vinicius"},{"commits":5,"contributor":"Alexey Shabanov"},{"commits":4,"contributor":"Jeff Huang"},{"commits":4,"contributor":"Joost"},{"commits":4,"contributor":"Adolfo Jayme Barrientos"},{"commits":4,"contributor":"Polgár Sándor"},{"commits":4,"contributor":"David Haberthür"},{"commits":4,"contributor":"phlostically"},{"commits":4,"contributor":"Jan Zabel"},{"commits":4,"contributor":"Fabio Bettani"},{"commits":3,"contributor":"Sasha"},{"commits":3,"contributor":"Jose Luis Infante"},{"commits":3,"contributor":"Francois"},{"commits":3,"contributor":"Eduardo Addad de Oliveira"},{"commits":3,"contributor":"Wiktor Przybylski"},{"commits":3,"contributor":"Erik Palm"},{"commits":3,"contributor":"vankos"},{"commits":3,"contributor":"JCGF-OSM"},{"commits":3,"contributor":"Hiroshi Miura"},{"commits":3,"contributor":"SiegbjornSitumeang"},{"commits":2,"contributor":"わたなべけんご"},{"commits":2,"contributor":"Mateusz Konieczny"},{"commits":2,"contributor":"Kristoffer Grundström"},{"commits":2,"contributor":"el_libre como el chaval"},{"commits":2,"contributor":"Sebastian Kürten"},{"commits":2,"contributor":"Damian Tokarski"},{"commits":2,"contributor":"mic140"},{"commits":2,"contributor":"Heiko"},{"commits":2,"contributor":"Leo Alcaraz"},{"commits":1,"contributor":"sparky-oxford"},{"commits":1,"contributor":"jcn706"},{"commits":1,"contributor":"whatismoss"},{"commits":1,"contributor":"LePirlouit"},{"commits":1,"contributor":"SoftwareByRedline"},{"commits":1,"contributor":"plic ploc"},{"commits":1,"contributor":"Janina Ellinghaus"},{"commits":1,"contributor":"ssantos"},{"commits":1,"contributor":"Andre Fajar N"},{"commits":1,"contributor":"Ahen Purwakarta"},{"commits":1,"contributor":"Luna Jernberg"},{"commits":1,"contributor":"Rodrigo Tavares"},{"commits":1,"contributor":"liimee"},{"commits":1,"contributor":"Michał Targoński"},{"commits":1,"contributor":"Sean Young"},{"commits":1,"contributor":"Damian Pułka"},{"commits":1,"contributor":"Iváns"},{"commits":1,"contributor":"快乐的老鼠宝宝"},{"commits":1,"contributor":"Eric Armijo"},{"commits":1,"contributor":"Beardhatcode"},{"commits":1,"contributor":"riiga"},{"commits":1,"contributor":"Carlos Ramos Carreño"}]}
|
|
@ -179,6 +179,7 @@
|
|||
"mapContributionsBy": "The current visible data has edits made by {contributors}",
|
||||
"mapContributionsByAndHidden": "The current visible data has edits made by {contributors} and {hiddenCount} more contributors",
|
||||
"codeContributionsBy": "MapComplete has been built by {contributors} and <a href='https://github.com/pietervdvn/MapComplete/graphs/contributors' target='_blank'>{hiddenCount} more contributors</a>",
|
||||
"translatedBy": "MapComplete has been translated by {contributors} and <a href='https://github.com/pietervdvn/MapComplete/graphs/contributors' target='_blank'>{hiddenCount} more contributors</a>",
|
||||
"openOsmcha": "See latest edits made with {theme}",
|
||||
"openMapillary": "Open Mapillary here",
|
||||
"openIssueTracker": "File a bug",
|
||||
|
|
|
@ -3037,7 +3037,7 @@
|
|||
"then": "This door revolves automatically all the time"
|
||||
},
|
||||
"7": {
|
||||
"then": "This door will be opened by staff when requested by <b>pressing a button</b"
|
||||
"then": "This door will be opened by staff when requested by <b>pressing a button</b>"
|
||||
},
|
||||
"8": {
|
||||
"then": "This door will be opened by staff when requested"
|
||||
|
@ -5050,4 +5050,4 @@
|
|||
"watermill": {
|
||||
"name": "Watermill"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3001,8 +3001,67 @@
|
|||
"mappings": {
|
||||
"0": {
|
||||
"then": "Het specifieke type ingang is onbekend"
|
||||
},
|
||||
"6": {
|
||||
"then": "Dit is een ingang waar je enkel naar binnen kunt (niet naar buiten)"
|
||||
},
|
||||
"1": {
|
||||
"then": "Dit is een binnendeur, die een kamer of een gang volledig binnen hetzelfde gebouw afsluit"
|
||||
},
|
||||
"2": {
|
||||
"then": "Dit is de hoofdingang"
|
||||
},
|
||||
"3": {
|
||||
"then": "Dit is een secundaire ingang"
|
||||
},
|
||||
"4": {
|
||||
"then": "Dit is een dienstingang - normaal gezien enkel gebruikt door werknemers, leveranciers, ..."
|
||||
},
|
||||
"5": {
|
||||
"then": "Dit is enkel een uitgang, je kan hier niet naar binnen"
|
||||
},
|
||||
"7": {
|
||||
"then": "Dit is een nooduitgang"
|
||||
},
|
||||
"8": {
|
||||
"then": "Dit is de ingang van een private woning"
|
||||
}
|
||||
},
|
||||
"question": "Wat voor ingang is dit?"
|
||||
},
|
||||
"automatic_door": {
|
||||
"mappings": {
|
||||
"7": {
|
||||
"then": "De deur wordt geopend door personeel als je dat vraagt <b>door op een knop te duwen</b>"
|
||||
},
|
||||
"8": {
|
||||
"then": "De deur wordt geopend door personeel wanneer je het vraagt"
|
||||
},
|
||||
"3": {
|
||||
"then": "De deur gaat automatisch open wanneer <b>een sensor in de vloer</b> wordt geactiveerd"
|
||||
},
|
||||
"4": {
|
||||
"then": "De deur gaat open wanneer <b>een knop wordt ingedrukt</b>"
|
||||
},
|
||||
"5": {
|
||||
"then": "De deur draait continue automatisch, maar heeft een <b>knop om te vertragen</b>, bijvoorbeeld voor rolstoelgebruikers"
|
||||
},
|
||||
"6": {
|
||||
"then": "De deur draait continue automatisch"
|
||||
},
|
||||
"0": {
|
||||
"then": "Dit is een automatische deur"
|
||||
},
|
||||
"1": {
|
||||
"then": "Deze deur is <b>niet</b> automatisch"
|
||||
},
|
||||
"2": {
|
||||
"then": "De deur gaat automatisch open wanneer er <b>beweging</b> wordt gedetecteerd"
|
||||
}
|
||||
}
|
||||
},
|
||||
"width": {
|
||||
"question": "Wat is de breedte van deze deur/toegang?"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -4897,4 +4956,4 @@
|
|||
"render": "Watermolens"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -204,5 +204,39 @@
|
|||
},
|
||||
"render": "自行车咖啡"
|
||||
}
|
||||
},
|
||||
"address": {
|
||||
"description": "地址",
|
||||
"name": "OSM中已知的地址",
|
||||
"tagRenderings": {
|
||||
"fixme": {
|
||||
"question": "这里应被如何修复?请做出解释"
|
||||
},
|
||||
"housenumber": {
|
||||
"mappings": {
|
||||
"0": {
|
||||
"then": "这个建筑物没有门牌号"
|
||||
}
|
||||
},
|
||||
"render": "门牌号是<b>{addr:housenumber}</b>",
|
||||
"question": "这个屋子的门牌号是多少?"
|
||||
},
|
||||
"street": {
|
||||
"render": "这个地址位于<b>{addr:street}</b>街",
|
||||
"question": "这个地址位于哪条街道?"
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
"render": "已知的地址"
|
||||
}
|
||||
},
|
||||
"ambulancestation": {
|
||||
"name": "救护车站地图",
|
||||
"presets": {
|
||||
"0": {
|
||||
"description": "向地图中添加一个救护车站",
|
||||
"title": "救护车站"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -415,7 +415,8 @@
|
|||
"intro": "<p>MapComplete is een makkelijk te gebruiken hulpmiddel om ter plaatste met een smartphone of vanop afstand met een PC data te verzamelen. Met enkele klikken kan de nodige data toegevoegd worden aan OpenStreetMap.</p>\n<p>Wij kunnen voor jou een <b>op maat gemaakte verzameltool</b> maken die precies de data vraagt die nodig is.</p>\n<p>Heb je een dataset die (opnieuw) opgemeten moet worden? Dat is het perfecte moment om de stap naar OpenStreetMap te maken. MapComplete kan je eigen dataset en OpenStreetMap samen tonen, wat het makkelijk maakt om zowel de eigen locaties als de bijdragen van de community na te kijken.</p>\n"
|
||||
},
|
||||
"internalUse": {
|
||||
"title": "Data hergebruiken"
|
||||
"title": "Data hergebruiken",
|
||||
"intro": "<p>Wanneer de data in OpenStreetMap zit, zal je deze data waarschijnlijk ook willen gebruiken. Je MapComplete-kaart kan een handige <i>download</i>-knop krijgen waarmee je de data in open formaten kunt downloaden om ermee aan de slag te gaan in QGis, ArcGis, Excel, LibreOffice Calc, …</p><p>Iemand die met een spreadsheet kan werken, kan dus eenvoudig grafieken maken; maar ook de GIS-experten binnen je organisatie kunnen gemakkelijk aan de slag met de data in hun favoriete applicatie.</p><p>Ook voor automatische processen is er een gratis API beschikbaar, beheerd door de community</p>"
|
||||
},
|
||||
"text2": "Twijfel je nog? We sommen de mogelijkheden hieronder op en beantwoorden enkele veelvoorkomende vragen",
|
||||
"text1": "Wil je andere data visualiseren, maar bestaat er nog geen geschikte kaart voor? De MapComplete-ontwikkelaars kunnen dit <b>op maat bouwen</b> voor een schappelijk budget. Stuur je vraag via <a href=\"mailto:pietervdvn@posteo.net\">email</a>, <a href=\"https://github.com/pietervdvn/MapComplete/issues\">github</a> of <a>een bericht op osm.org</a>",
|
||||
|
@ -423,6 +424,13 @@
|
|||
"intro": "<p>MapComplete heeft een krachtig templatesysteem om snel een kaart op te zetten die precies toont wat je nodig hebt</p>\n<p>Deze data kan opgehaald van <b>OpenStreetMap</b> of van <b>externe datasets</b> komen - bijvoorbeeld om datasets met elkaar te vergelijken of om data te tonen die niet in OpenStreetMap thuishoort (bijvoorbeeld evenementen, statistieken, ...)</p>",
|
||||
"title": "Welke data kan getoond worden met MapComplete?"
|
||||
}
|
||||
},
|
||||
"services": {
|
||||
"intro": "De ontwikkelaar van MapComplete kan je verderhelpen met de volgende diensten:",
|
||||
"title": "Diensten met MapComplete",
|
||||
"li2": "Vormingen hoe data bijgedragen kan worden met MapComplete",
|
||||
"li0": "Het opzetten van een kaart, aangepast voor jou noden",
|
||||
"li1": "Hulp bij het opzetten van interne dataflows om OpenStreetMap te integreren"
|
||||
}
|
||||
},
|
||||
"privacy": {
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
"generate:licenses": "ts-node scripts/generateLicenseInfo.ts --no-fail",
|
||||
"query:licenses": "ts-node scripts/generateLicenseInfo.ts --query",
|
||||
"generate:report": "cd Docs/Tools && ./compileStats.sh && git commit . -m 'New statistics ands graphs' && git push",
|
||||
"generate:contributor-list": "git log --pretty='%aN' | sort | uniq -c | sort -hr | sed 's/ *\\([0-9]*\\) \\(.*\\)$/{\"contributor\":\"\\2\", \"commits\":\\1}/' | tr '\\n' ',' | sed 's/^/{\"contributors\":[/' | sed 's/,$/]}/' | jq > assets/contributors.json",
|
||||
"generate:contributor-list": "ts-node scripts/generateContributors.ts",
|
||||
"generate:schemas": "ts2json-schema -p Models/ThemeConfig/Json/ -o Docs/Schemas/ -t tsconfig.json -R . -m \".*ConfigJson\" && ts-node scripts/fixSchemas.ts ",
|
||||
"optimize-images": "cd assets/generated/ && find -name '*.png' -exec optipng '{}' \\; && echo 'PNGs are optimized'",
|
||||
"reset:layeroverview": "echo {\\\"layers\\\":[], \\\"themes\\\":[]} > ./assets/generated/known_layers_and_themes.json && echo {\\\"layers\\\": []} > ./assets/generated/known_layers.json",
|
||||
|
|
44
scripts/generateContributors.ts
Normal file
44
scripts/generateContributors.ts
Normal file
|
@ -0,0 +1,44 @@
|
|||
import {exec} from "child_process";
|
||||
import {writeFile, writeFileSync} from "fs";
|
||||
|
||||
function asList(hist: Map<string, number>): {contributors: { contributor: string, commits: number }[]
|
||||
}{
|
||||
const ls = []
|
||||
hist.forEach((commits, contributor) => {
|
||||
ls.push({commits, contributor})
|
||||
})
|
||||
ls.sort((a, b) => (b.commits - a.commits))
|
||||
return {contributors: ls}
|
||||
}
|
||||
|
||||
function main() {
|
||||
exec("git log --pretty='%aN %%!%% %s' ", ((error, stdout, stderr) => {
|
||||
|
||||
const entries = stdout.split("\n").filter(str => str !== "")
|
||||
const codeContributors = new Map<string, number>()
|
||||
const translationContributors = new Map<string, number>()
|
||||
for (const entry of entries) {
|
||||
console.log(entry)
|
||||
let [author, message] = entry.split("%!%").map(s => s.trim())
|
||||
if(author === "Weblate"){
|
||||
continue
|
||||
}
|
||||
if (author === "pietervdvn") {
|
||||
author = "Pieter Vander Vennet"
|
||||
}
|
||||
let hist = codeContributors;
|
||||
if (message.startsWith("Translated using Weblate")) {
|
||||
hist = translationContributors
|
||||
}
|
||||
hist.set(author, 1 + (hist.get(author) ?? 0))
|
||||
}
|
||||
|
||||
const codeContributorsTarget = "assets/contributors.json"
|
||||
writeFileSync(codeContributorsTarget, JSON.stringify(asList(codeContributors)))
|
||||
const translatorsTarget = "assets/translators.json"
|
||||
writeFileSync(translatorsTarget, JSON.stringify(asList(translationContributors)))
|
||||
|
||||
}));
|
||||
}
|
||||
|
||||
main()
|
Loading…
Reference in a new issue