From 438129f10c0a768906c085788d5625db6b1c754c Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 14 Feb 2022 19:41:55 +0100 Subject: [PATCH 1/6] Regenerate contributor lists --- assets/contributors.json | 353 +------------------------------- assets/translators.json | 1 + package.json | 2 +- scripts/generateContributors.ts | 40 ++++ 4 files changed, 43 insertions(+), 353 deletions(-) create mode 100644 assets/translators.json create mode 100644 scripts/generateContributors.ts diff --git a/assets/contributors.json b/assets/contributors.json index fab92fcd91..37280a5a80 100644 --- a/assets/contributors.json +++ b/assets/contributors.json @@ -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 - } - ] -} +[{"commits":3144,"contributor":"Pieter Vander Vennet"},{"commits":64,"contributor":"Robin van der Linde"},{"commits":61,"contributor":"Weblate"},{"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"}] \ No newline at end of file diff --git a/assets/translators.json b/assets/translators.json new file mode 100644 index 0000000000..bb0dbfa7ac --- /dev/null +++ b/assets/translators.json @@ -0,0 +1 @@ +[{"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"}] \ No newline at end of file diff --git a/package.json b/package.json index c9b96ecee3..144d61ffbf 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,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", diff --git a/scripts/generateContributors.ts b/scripts/generateContributors.ts new file mode 100644 index 0000000000..e75b9d0dba --- /dev/null +++ b/scripts/generateContributors.ts @@ -0,0 +1,40 @@ +import {exec} from "child_process"; +import {writeFile, writeFileSync} from "fs"; + +function asList(hist: Map):{contributor: string, commits: number}[]{ + const ls = [] + hist.forEach((commits, contributor) => { + ls.push({commits, contributor}) + }) + ls.sort((a, b) => (b.commits - a.commits)) + return ls +} + +function main() { + exec("git log --pretty='%aN %%!%% %s' ", ((error, stdout, stderr) => { + + const entries = stdout.split("\n").filter(str => str !== "") + const codeContributors = new Map() + const translationContributors = new Map() + for (const entry of entries) { + console.log(entry) + let [author, message] = entry.split("%!%").map(s => s.trim()) + 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() \ No newline at end of file From 3a4a03e0d767c843512bf98a366a67a4d94a63be Mon Sep 17 00:00:00 2001 From: pietervdvn Date: Mon, 14 Feb 2022 19:53:23 +0100 Subject: [PATCH 2/6] Add translators attribution --- UI/BigComponents/CopyrightPanel.ts | 9 ++++++--- assets/contributors.json | 2 +- assets/translators.json | 2 +- langs/en.json | 1 + scripts/generateContributors.ts | 8 ++++++-- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/UI/BigComponents/CopyrightPanel.ts b/UI/BigComponents/CopyrightPanel.ts index f717f13dd4..941b069127 100644 --- a/UI/BigComponents/CopyrightPanel.ts +++ b/UI/BigComponents/CopyrightPanel.ts @@ -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 }, 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 }); diff --git a/assets/contributors.json b/assets/contributors.json index 37280a5a80..dc33c379b7 100644 --- a/assets/contributors.json +++ b/assets/contributors.json @@ -1 +1 @@ -[{"commits":3144,"contributor":"Pieter Vander Vennet"},{"commits":64,"contributor":"Robin van der Linde"},{"commits":61,"contributor":"Weblate"},{"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"}] \ No newline at end of file +{"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"}]} \ No newline at end of file diff --git a/assets/translators.json b/assets/translators.json index bb0dbfa7ac..b2d361f78f 100644 --- a/assets/translators.json +++ b/assets/translators.json @@ -1 +1 @@ -[{"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"}] \ No newline at end of file +{"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"}]} \ No newline at end of file diff --git a/langs/en.json b/langs/en.json index 951946d76f..5850ab6ff1 100644 --- a/langs/en.json +++ b/langs/en.json @@ -178,6 +178,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 {hiddenCount} more contributors", + "translatedBy": "MapComplete has been translated by {contributors} and {hiddenCount} more contributors", "openOsmcha": "See latest edits made with {theme}", "openMapillary": "Open Mapillary here", "openIssueTracker": "File a bug", diff --git a/scripts/generateContributors.ts b/scripts/generateContributors.ts index e75b9d0dba..406a5e52a3 100644 --- a/scripts/generateContributors.ts +++ b/scripts/generateContributors.ts @@ -1,13 +1,14 @@ import {exec} from "child_process"; import {writeFile, writeFileSync} from "fs"; -function asList(hist: Map):{contributor: string, commits: number}[]{ +function asList(hist: Map): {contributors: { contributor: string, commits: number }[] +}{ const ls = [] hist.forEach((commits, contributor) => { ls.push({commits, contributor}) }) ls.sort((a, b) => (b.commits - a.commits)) - return ls + return {contributors: ls} } function main() { @@ -19,6 +20,9 @@ function main() { 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" } From 23aedc0a8f0e0e338dbdc2dc1d53d7fd3bf9e8fa Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Mon, 14 Feb 2022 19:03:23 +0000 Subject: [PATCH 3/6] Translated using Weblate (Dutch) Currently translated at 80.4% (330 of 410 strings) Translation: MapComplete/Core Translate-URL: https://hosted.weblate.org/projects/mapcomplete/core/nl/ --- langs/nl.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/langs/nl.json b/langs/nl.json index 5026a787a0..648c1c4a51 100644 --- a/langs/nl.json +++ b/langs/nl.json @@ -415,7 +415,8 @@ "intro": "

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.

\n

Wij kunnen voor jou een op maat gemaakte verzameltool maken die precies de data vraagt die nodig is.

\n

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.

\n" }, "internalUse": { - "title": "Data hergebruiken" + "title": "Data hergebruiken", + "intro": "

Wanneer de data in OpenStreetMap zit, zal je deze data waarschijnlijk ook willen gebruiken. Je MapComplete-kaart kan een handige download-knop krijgen waarmee je de data in open formaten kunt downloaden om ermee aan de slag te gaan in QGis, ArcGis, Excel, LibreOffice Calc, …

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.

Ook voor automatische processen is er een gratis API beschikbaar, beheerd door de community

" }, "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 op maat bouwen voor een schappelijk budget. Stuur je vraag via email, github of een bericht op osm.org", @@ -423,6 +424,13 @@ "intro": "

MapComplete heeft een krachtig templatesysteem om snel een kaart op te zetten die precies toont wat je nodig hebt

\n

Deze data kan opgehaald van OpenStreetMap of van externe datasets komen - bijvoorbeeld om datasets met elkaar te vergelijken of om data te tonen die niet in OpenStreetMap thuishoort (bijvoorbeeld evenementen, statistieken, ...)

", "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": { From f89b5ba2b7d702486a09cf50674d912679e650df Mon Sep 17 00:00:00 2001 From: Joost Date: Wed, 16 Feb 2022 11:48:35 +0000 Subject: [PATCH 4/6] Translated using Weblate (English) Currently translated at 100.0% (1506 of 1506 strings) Translation: MapComplete/Layer translations Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layer-translations/en/ --- langs/layers/en.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/langs/layers/en.json b/langs/layers/en.json index a86b57bf43..060bdd8203 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -2941,7 +2941,7 @@ "then": "This door revolves automatically all the time" }, "7": { - "then": "This door will be opened by staff when requested by pressing a buttonpressing a button" }, "8": { "then": "This door will be opened by staff when requested" @@ -4755,4 +4755,4 @@ "watermill": { "name": "Watermill" } -} \ No newline at end of file +} From 5dd22c1b8961f7e1de17ad32ac488aa59fc66fd2 Mon Sep 17 00:00:00 2001 From: Joost Date: Wed, 16 Feb 2022 08:16:12 +0000 Subject: [PATCH 5/6] Translated using Weblate (Dutch) Currently translated at 92.4% (1392 of 1506 strings) Translation: MapComplete/Layer translations Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layer-translations/nl/ --- langs/layers/nl.json | 61 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 60 insertions(+), 1 deletion(-) diff --git a/langs/layers/nl.json b/langs/layers/nl.json index 7c0e87851e..57e08e5d05 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -3004,8 +3004,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 door op een knop te duwen" + }, + "8": { + "then": "De deur wordt geopend door personeel wanneer je het vraagt" + }, + "3": { + "then": "De deur gaat automatisch open wanneer een sensor in de vloer wordt geactiveerd" + }, + "4": { + "then": "De deur gaat open wanneer een knop wordt ingedrukt" + }, + "5": { + "then": "De deur draait continue automatisch, maar heeft een knop om te vertragen, bijvoorbeeld voor rolstoelgebruikers" + }, + "6": { + "then": "De deur draait continue automatisch" + }, + "0": { + "then": "Dit is een automatische deur" + }, + "1": { + "then": "Deze deur is niet automatisch" + }, + "2": { + "then": "De deur gaat automatisch open wanneer er beweging wordt gedetecteerd" } } + }, + "width": { + "question": "Wat is de breedte van deze deur/toegang?" } } }, @@ -4912,4 +4971,4 @@ "render": "Watermolens" } } -} \ No newline at end of file +} From 1bd2f2247c55804693c182a6e92b5ac1964aa536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BF=AB=E4=B9=90=E7=9A=84=E8=80=81=E9=BC=A0=E5=AE=9D?= =?UTF-8?q?=E5=AE=9D?= Date: Wed, 16 Feb 2022 05:22:50 +0000 Subject: [PATCH 6/6] Translated using Weblate (Chinese (Simplified)) Currently translated at 4.6% (70 of 1506 strings) Translation: MapComplete/Layer translations Translate-URL: https://hosted.weblate.org/projects/mapcomplete/layer-translations/zh_Hans/ --- langs/layers/zh_Hans.json | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/langs/layers/zh_Hans.json b/langs/layers/zh_Hans.json index 75216a0411..7bc66eb3c2 100644 --- a/langs/layers/zh_Hans.json +++ b/langs/layers/zh_Hans.json @@ -204,5 +204,39 @@ }, "render": "自行车咖啡" } + }, + "address": { + "description": "地址", + "name": "OSM中已知的地址", + "tagRenderings": { + "fixme": { + "question": "这里应被如何修复?请做出解释" + }, + "housenumber": { + "mappings": { + "0": { + "then": "这个建筑物没有门牌号" + } + }, + "render": "门牌号是{addr:housenumber}", + "question": "这个屋子的门牌号是多少?" + }, + "street": { + "render": "这个地址位于{addr:street}街", + "question": "这个地址位于哪条街道?" + } + }, + "title": { + "render": "已知的地址" + } + }, + "ambulancestation": { + "name": "救护车站地图", + "presets": { + "0": { + "description": "向地图中添加一个救护车站", + "title": "救护车站" + } + } } -} \ No newline at end of file +}