Blog: proofreading year in review, crop images
|
@ -37,7 +37,7 @@ Back then, it was as if they used some arcane magic to get it all working ;) Luc
|
||||||
A designer from FixMyCity Berlin had a look to MapComplete as well; they worked out a conceptual framework to design mapcomplete against.
|
A designer from FixMyCity Berlin had a look to MapComplete as well; they worked out a conceptual framework to design mapcomplete against.
|
||||||
The calmer, cleaner, gray-based design is thanks to them.
|
The calmer, cleaner, gray-based design is thanks to them.
|
||||||
|
|
||||||
Furthermore, they gave quite some feedback on various flows, which made the app more consistent and easier to use.
|
Furthermore, they gave some feedback on various flows, which made the app more consistent and easier to use.
|
||||||
|
|
||||||
### MapLibre (June)
|
### MapLibre (June)
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ it also paves the way for more optimalisations later on (which I've just begun w
|
||||||
### Move of domain name (August)
|
### Move of domain name (August)
|
||||||
|
|
||||||
In august, I've finally made the switch to a proper domain name: mapcomplete.org. This change had quite some fallout,
|
In august, I've finally made the switch to a proper domain name: mapcomplete.org. This change had quite some fallout,
|
||||||
as MapComplete relies on quite some external services which suddenly need to be updated.
|
as MapComplete relies on several external services which suddenly need to be updated.
|
||||||
|
|
||||||
### Studio
|
### Studio
|
||||||
|
|
||||||
|
@ -71,9 +71,9 @@ As such, many people were a bit worried and we started backing up all pictures o
|
||||||
|
|
||||||
This collection of around 30K images has several copies now with various people.
|
This collection of around 30K images has several copies now with various people.
|
||||||
|
|
||||||
And, as it turned out, only 6 of them became dead. It seems that Imgur's policy was mostly applied on a specific kind of indecent pictures...
|
And, as it turned out, only 6 of them became dead. It seems that Imgur's policy was mostly applied on a specific kind of pictures, namely [the indecent type](https://piped.video/watch?v=zBDCq6Q8k2E)...
|
||||||
|
|
||||||
## New themes and translations
|
## New themes and theme improvements
|
||||||
|
|
||||||
Of course, various improvements to the map themes were made. There are too much improvements to sum them all, but I'd like to give an overview of themes that have been officially added to MapComplete this year:
|
Of course, various improvements to the map themes were made. There are too much improvements to sum them all, but I'd like to give an overview of themes that have been officially added to MapComplete this year:
|
||||||
|
|
||||||
|
@ -85,15 +85,19 @@ Of course, various improvements to the map themes were made. There are too much
|
||||||
- [vending_machine](https://mapcomplete.org/vending_machine)
|
- [vending_machine](https://mapcomplete.org/vending_machine)
|
||||||
- [walkingnodes](https://mapcomplete.org/walkingnodes)
|
- [walkingnodes](https://mapcomplete.org/walkingnodes)
|
||||||
|
|
||||||
This is quite a small amount of themes, especially compared to 2022 when 25 new themes were added.
|
This is a small amount of themes, especially compared to 2022 when 25 new themes were added.
|
||||||
This is partly because I focused on improving the system and partly because there was no Open Summer of Code this year,
|
This is partly because I focused on improving the system itself (and not on creating new themes) and partly because there was no Open Summer of Code this year,
|
||||||
which traditionally meant the addition of many new themes and layers.
|
which traditionally meant the addition of many new themes and layers.
|
||||||
|
|
||||||
Another reason is that quite a few topical maps already exist by now - especially the broadly applicable ones.
|
Another reason is that many topical maps already exist by now - especially the broadly applicable ones. As such, there is less need to create new ones.
|
||||||
|
|
||||||
And maybe I should improve Studio further and officialize a few of those themes. In either case, if you have a thematic map or layer lying around,
|
And maybe I should improve Studio further and officialize a few of those themes. In either case, if you have a thematic map or layer lying around,
|
||||||
let me know and we'll add it to official mapcomplete!
|
let me know and we'll add it to official mapcomplete!
|
||||||
|
|
||||||
|
And even though there weren't many new themes added, quite some improvements were made to the already existing themes.
|
||||||
|
For example, drinking water was improved with more specific questions, one can indicate what services a hackerspace offers,
|
||||||
|
...
|
||||||
|
|
||||||
### Accessibility
|
### Accessibility
|
||||||
|
|
||||||
One of the last big changes made in 2023 is the effort to make MapComplete more accessible for people using screenreaders, braille devices or similar.
|
One of the last big changes made in 2023 is the effort to make MapComplete more accessible for people using screenreaders, braille devices or similar.
|
||||||
|
@ -109,7 +113,7 @@ In the first 6 months, there were biweekly community calls. They were mostly bet
|
||||||
or people passing by once to tell about their project.
|
or people passing by once to tell about their project.
|
||||||
|
|
||||||
After the summer holiday, the community calls waned and weren't restarted - I was to busy and neglected them a bit.
|
After the summer holiday, the community calls waned and weren't restarted - I was to busy and neglected them a bit.
|
||||||
But - rejoice: we will restart them! The next one is [on friday the 26th of january](https://mobilizon.openstreetmap.fr/events/568afd3a-d18a-4ff0-acc4-626d6d09d6d5).
|
But - rejoice: we will restart them! The next one is [on friday the 26th of january, 14:00 CET](https://mobilizon.openstreetmap.fr/events/568afd3a-d18a-4ff0-acc4-626d6d09d6d5).
|
||||||
|
|
||||||
### Patrons
|
### Patrons
|
||||||
|
|
||||||
|
@ -117,6 +121,8 @@ Another nice milestone is that two more patrons started pledging a small amount
|
||||||
|
|
||||||
I'm now [receiving €1.03 per week via Liberapay](https://liberapay.com/pietervdvn). I'd like to thank my three patrons for the trust and small financial contribution!
|
I'm now [receiving €1.03 per week via Liberapay](https://liberapay.com/pietervdvn). I'd like to thank my three patrons for the trust and small financial contribution!
|
||||||
|
|
||||||
|
If you feel like becoming a patron too, [head over to Liberapay](https://liberapay.com/pietervdvn).
|
||||||
|
|
||||||
### Mastodon-accounts
|
### Mastodon-accounts
|
||||||
|
|
||||||
Another _huge_ success in 2023 were the mastodon-accounts.
|
Another _huge_ success in 2023 were the mastodon-accounts.
|
||||||
|
@ -127,14 +133,14 @@ with a few new followers daily.
|
||||||
Another success is the [automated account](https://botsin.space/@mapcomplete/) which posts a small, daily overview of changes made with MapComplete,
|
Another success is the [automated account](https://botsin.space/@mapcomplete/) which posts a small, daily overview of changes made with MapComplete,
|
||||||
including up to 12 pictures which were made the day before. 133 people follow this account, and there was some interaction every day (e.g. a star, a boost or a small message)
|
including up to 12 pictures which were made the day before. 133 people follow this account, and there was some interaction every day (e.g. a star, a boost or a small message)
|
||||||
|
|
||||||
Another fun fact: the automated account was registered on the 12th of january, so it is a year old now!
|
Another fun fact: the automated account was registered on the 12th of january 2023, so it is a year old now!
|
||||||
|
|
||||||
## Change Metrics
|
## Change Metrics
|
||||||
|
|
||||||
But of course, the most interesting statistics are how MapComplete was used in the past year.
|
But of course, the most interesting statistics are how MapComplete was used in the past year.
|
||||||
|
|
||||||
Some basic logging is done with [goatcounter](https://pietervdvn.goatcounter.com), which shows around 200 up to 300 visitors per day on average.
|
Some basic logging is done with [goatcounter](https://pietervdvn.goatcounter.com), which shows around 200 up to 300 visitors per day on average.
|
||||||
That is quite some, but also not very much. On the other hand, I suspect that goat counter misses quite a few visitors.
|
That isn't a neglectable amount, but it is not very big either. On the other hand, I suspect that goat counter misses quite a few visitors.
|
||||||
OSM-people tend to be privacy-aware and run scriptblocker, which'll also block goatcounter.
|
OSM-people tend to be privacy-aware and run scriptblocker, which'll also block goatcounter.
|
||||||
|
|
||||||
Also, there is a big gap in December. The script was not properly configured and thus not counting visitors.
|
Also, there is a big gap in December. The script was not properly configured and thus not counting visitors.
|
||||||
|
@ -273,8 +279,11 @@ There is, in settings, also an option to enable 'translation mode' in MapComplet
|
||||||
Many pieces of text in the interface will gain a small 'translate'-button which you can click to immediately translate or correct that piece of text.
|
Many pieces of text in the interface will gain a small 'translate'-button which you can click to immediately translate or correct that piece of text.
|
||||||
If you enable translate mode, you'll also have a button to quickly translate all strings of the specific theme.
|
If you enable translate mode, you'll also have a button to quickly translate all strings of the specific theme.
|
||||||
|
|
||||||
Translations are pulled in regularly (about once week) so you'll see your translations quite fast.
|
Translations are pulled in regularly (about once week) so you'll see your translations quite fast. As of january 2024,
|
||||||
|
the translation completeness for English and German is (near) 100%, where as translations for Polish, Dutch, Czech and Catalan are
|
||||||
|
quite complete as well.
|
||||||
|
|
||||||
|
![2024-01-15 TranslationCompleteness.svg](2023_in_review%2F2024-01-15%20TranslationCompleteness.svg)
|
||||||
|
|
||||||
# Wrapping up 2023
|
# Wrapping up 2023
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,261 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="465" height="320" xml:lang="en"><script xmlns="">{
|
||||||
|
document.currentScript.dataset.injected = true;
|
||||||
|
const o = JSON.parse(decodeURIComponent(escape(atob('eyJ1c2VyQWdlbnQiOiJNb3ppbGxhLzUuMCAoWDExOyBMaW51eCB4ODZfNjQ7IHJ2OjEwOS4wKSBHZWNrby8yMDEwMDEwMSBGaXJlZm94LzExNC4wIiwiYXBwVmVyc2lvbiI6IjUuMCAoWDExKSIsInBsYXRmb3JtIjoiTGludXgiLCJ2ZW5kb3IiOiIiLCJwcm9kdWN0IjoiR2Vja28iLCJ1c2VyQWdlbnREYXRhIjoiW2RlbGV0ZV0iLCJvc2NwdSI6IkxpbnV4IHg4Nl82NCIsInByb2R1Y3RTdWIiOiIyMDEwMDEwMSIsImJ1aWxkSUQiOiIyMDE4MTAwMTAwMDAwMCJ9'))));
|
||||||
|
|
||||||
|
if (o.userAgentDataBuilder) {
|
||||||
|
const v = new class NavigatorUAData {
|
||||||
|
#p;
|
||||||
|
|
||||||
|
constructor({p, ua}) {
|
||||||
|
this.#p = p;
|
||||||
|
|
||||||
|
const version = p.browser.major;
|
||||||
|
const name = p.browser.name === 'Chrome' ? 'Google Chrome' : p.browser.name;
|
||||||
|
|
||||||
|
this.brands = [{
|
||||||
|
brand: name,
|
||||||
|
version
|
||||||
|
}, {
|
||||||
|
brand: 'Chromium',
|
||||||
|
version
|
||||||
|
}, {
|
||||||
|
brand: 'Not=A?Brand',
|
||||||
|
version: '24'
|
||||||
|
}];
|
||||||
|
|
||||||
|
this.mobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(ua);
|
||||||
|
|
||||||
|
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Sec-CH-UA-Platform
|
||||||
|
this.platform = 'Unknown';
|
||||||
|
if (p.os && p.os.name) {
|
||||||
|
const name = p.os.name.toLowerCase();
|
||||||
|
if (name.includes('mac')) {
|
||||||
|
this.platform = 'macOS';
|
||||||
|
}
|
||||||
|
else if (name.includes('debian')) {
|
||||||
|
this.platform = 'Linux';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
this.platform = p.os.name;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
toJSON() {
|
||||||
|
return {
|
||||||
|
brands: this.brands,
|
||||||
|
mobile: this.mobile,
|
||||||
|
platform: this.platform
|
||||||
|
};
|
||||||
|
}
|
||||||
|
getHighEntropyValues(hints) {
|
||||||
|
if (!hints || Array.isArray(hints) === false) {
|
||||||
|
return Promise.reject(Error("Failed to execute 'getHighEntropyValues' on 'NavigatorUAData'"));
|
||||||
|
}
|
||||||
|
|
||||||
|
const r = this.toJSON();
|
||||||
|
|
||||||
|
if (hints.includes('architecture')) {
|
||||||
|
r.architecture = this.#p?.cpu?.architecture || 'x86';
|
||||||
|
}
|
||||||
|
if (hints.includes('bitness')) {
|
||||||
|
r.bitness = '64';
|
||||||
|
}
|
||||||
|
if (hints.includes('model')) {
|
||||||
|
r.model = '';
|
||||||
|
}
|
||||||
|
if (hints.includes('platformVersion')) {
|
||||||
|
r.platformVersion = this.#p?.os?.version || '10.0.0';
|
||||||
|
}
|
||||||
|
if (hints.includes('uaFullVersion')) {
|
||||||
|
r.uaFullVersion = this.brands[0].version;
|
||||||
|
}
|
||||||
|
if (hints.includes('fullVersionList')) {
|
||||||
|
r.fullVersionList = this.brands;
|
||||||
|
}
|
||||||
|
return Promise.resolve(r);
|
||||||
|
}
|
||||||
|
}(o.userAgentDataBuilder);
|
||||||
|
|
||||||
|
navigator.__defineGetter__('userAgentData', () => {
|
||||||
|
return v;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
delete o.userAgentDataBuilder;
|
||||||
|
|
||||||
|
for (const key of Object.keys(o)) {
|
||||||
|
if (o[key] === '[delete]') {
|
||||||
|
delete Object.getPrototypeOf(window.navigator)[key];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
navigator.__defineGetter__(key, () => {
|
||||||
|
if (o[key] === 'empty') {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
return o[key];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}</script>
|
||||||
|
<defs>
|
||||||
|
|
||||||
|
|
||||||
|
<style type="text/css">@import url(https://s.weblate.org/cdn/font-source/source-sans-3.css);</style>
|
||||||
|
|
||||||
|
|
||||||
|
</defs>
|
||||||
|
<g id="layer1">
|
||||||
|
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/eu/" xlink:title="Basque">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="20" transform="rotate(-90)" id="text20">Basque</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect20" height="3" width="6" rx="2" y="156" x="14"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/ca/" xlink:title="Catalan">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="35" transform="rotate(-90)" id="text35">Catalan</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect35" height="126" width="6" rx="2" y="33" x="29"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/nan/" xlink:title="Chinese (Min Nan) (nan)">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="50" transform="rotate(-90)" id="text50">Chinese (Min Nan) (nan)</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect50" height="0" width="6" rx="2" y="159" x="44"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/zh_Hans/" xlink:title="Chinese (Simplified)">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="65" transform="rotate(-90)" id="text65">Chinese (Simplified)</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect65" height="7" width="6" rx="2" y="152" x="59"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/zh_Hant/" xlink:title="Chinese (Traditional)">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="80" transform="rotate(-90)" id="text80">Chinese (Traditional)</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect80" height="81" width="6" rx="2" y="78" x="74"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/cs/" xlink:title="Czech">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="95" transform="rotate(-90)" id="text95">Czech</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect95" height="124" width="6" rx="2" y="35" x="89"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/da/" xlink:title="Danish">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="110" transform="rotate(-90)" id="text110">Danish</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect110" height="93" width="6" rx="2" y="66" x="104"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/nl/" xlink:title="Dutch">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="125" transform="rotate(-90)" id="text125">Dutch</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect125" height="126" width="6" rx="2" y="33" x="119"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/en/" xlink:title="English">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="140" transform="rotate(-90)" id="text140">English</text>
|
||||||
|
<rect style="fill:#2eccaa;fill-opacity:1;stroke:none" id="rect140" height="150" width="6" rx="2" y="10" x="134"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/eo/" xlink:title="Esperanto">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="155" transform="rotate(-90)" id="text155">Esperanto</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect155" height="13" width="6" rx="2" y="146" x="149"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/fil/" xlink:title="Filipino">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="170" transform="rotate(-90)" id="text170">Filipino</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect170" height="7" width="6" rx="2" y="152" x="164"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/fi/" xlink:title="Finnish">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="185" transform="rotate(-90)" id="text185">Finnish</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect185" height="57" width="6" rx="2" y="102" x="179"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/fr/" xlink:title="French">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="200" transform="rotate(-90)" id="text200">French</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect200" height="82" width="6" rx="2" y="77" x="194"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/gl/" xlink:title="Galician">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="215" transform="rotate(-90)" id="text215">Galician</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect215" height="24" width="6" rx="2" y="135" x="209"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/de/" xlink:title="German">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="230" transform="rotate(-90)" id="text230">German</text>
|
||||||
|
<rect style="fill:#2eccaa;fill-opacity:1;stroke:none" id="rect230" height="149" width="6" rx="2" y="10" x="224"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/he/" xlink:title="Hebrew">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="245" transform="rotate(-90)" id="text245">Hebrew</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect245" height="3" width="6" rx="2" y="156" x="239"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/hu/" xlink:title="Hungarian">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="260" transform="rotate(-90)" id="text260">Hungarian</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect260" height="58" width="6" rx="2" y="101" x="254"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/id/" xlink:title="Indonesian">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="275" transform="rotate(-90)" id="text275">Indonesian</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect275" height="31" width="6" rx="2" y="128" x="269"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/it/" xlink:title="Italian">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="290" transform="rotate(-90)" id="text290">Italian</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect290" height="66" width="6" rx="2" y="94" x="284"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/ja/" xlink:title="Japanese">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="305" transform="rotate(-90)" id="text305">Japanese</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect305" height="25" width="6" rx="2" y="134" x="299"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/nb_NO/" xlink:title="Norwegian Bokmål">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="320" transform="rotate(-90)" id="text320">Norwegian Bokmål</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect320" height="74" width="6" rx="2" y="85" x="314"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/pl/" xlink:title="Polish">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="335" transform="rotate(-90)" id="text335">Polish</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect335" height="124" width="6" rx="2" y="35" x="329"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/pt/" xlink:title="Portuguese">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="350" transform="rotate(-90)" id="text350">Portuguese</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect350" height="68" width="6" rx="2" y="91" x="344"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/pt_BR/" xlink:title="Portuguese (Brazil)">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="365" transform="rotate(-90)" id="text365">Portuguese (Brazil)</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect365" height="27" width="6" rx="2" y="132" x="359"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/pa_PK/" xlink:title="Punjabi (Pakistan)">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="380" transform="rotate(-90)" id="text380">Punjabi (Pakistan)</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect380" height="17" width="6" rx="2" y="142" x="374"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/ru/" xlink:title="Russian">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="395" transform="rotate(-90)" id="text395">Russian</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect395" height="32" width="6" rx="2" y="127" x="389"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/sl/" xlink:title="Slovenian">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="410" transform="rotate(-90)" id="text410">Slovenian</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect410" height="8" width="6" rx="2" y="151" x="404"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/es/" xlink:title="Spanish">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="425" transform="rotate(-90)" id="text425">Spanish</text>
|
||||||
|
<rect style="fill:#38f;fill-opacity:1;stroke:none" id="rect425" height="91" width="6" rx="2" y="68" x="419"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/sv/" xlink:title="Swedish">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="440" transform="rotate(-90)" id="text440">Swedish</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect440" height="11" width="6" rx="2" y="148" x="434"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<a xlink:href="https://hosted.weblate.org/projects/mapcomplete/core/-/zgh/" xlink:title="Tamazight (Standard Moroccan)">
|
||||||
|
<text xml:space="preserve" style="font-style:normal;font-weight:normal;font-size:11px;font-family:'Source Sans 3',sans-serif;fill:#808080;text-anchor:end;" x="-170" y="455" transform="rotate(-90)" id="text455">Tamazight (Standard Moroccan)</text>
|
||||||
|
<rect style="fill:#f6664c;fill-opacity:1;stroke:none" id="rect455" height="1" width="6" rx="2" y="158" x="449"/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 54 KiB |
Before Width: | Height: | Size: 247 KiB After Width: | Height: | Size: 245 KiB |
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 183 KiB |
Before Width: | Height: | Size: 252 KiB After Width: | Height: | Size: 241 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |