diff --git a/.gitignore b/.gitignore
index 5b93e92..8f8099c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
www/data/
-www/locale/
+ww/locale/
/vendor/
locales/transifex_config
*.db
diff --git a/.tx/config b/.tx/config
new file mode 100755
index 0000000..92be879
--- /dev/null
+++ b/.tx/config
@@ -0,0 +1,12 @@
+[main]
+host = https://app.transifex.com
+
+[o:openstreetmap:p:level0:r:messages]
+file_filter = www/locale//LC_MESSAGES/messages.mo
+source_file = messages.pot
+type = PO
+minimum_perc = 50
+resource_name = " Messages "
+replace_edited_strings = false
+keep_translations = false
+
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..ee7d6a5
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,14 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/README.md b/README.md
index c2411b8..cc02c64 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,8 @@
# Level0 OpenStreetMap Editor
-This is a text-based in-browser editor for OSM data. See [its wiki page](http://wiki.openstreetmap.org/wiki/Level0) and [language guide](http://wiki.openstreetmap.org/wiki/Level0L).
+This is a text-based in-browser editor for OSM data.
+See [its wiki page](http://wiki.openstreetmap.org/wiki/Level0)
+and [language guide](http://wiki.openstreetmap.org/wiki/Level0L).
## Installation
@@ -8,20 +10,26 @@ You will need PHP with `mod_gettext`.
* Point your `DocumentRoot` to the `www` directory.
* Run `composer install`.
-* Open [this link](https://www.openstreetmap.org/oauth2/applications/new) and register your instance of Level0. It needs permissions for reading user details and modifying the map.
+* Open [this link](https://www.openstreetmap.org/oauth2/applications/new) and register
+ your instance of Level0. It needs permissions for reading user details and modifying the map.
* Create `www/config.php` from `www/config.php.sample`, inserting both OAuth keys.
-* Create `data` directory and give writing permissions for it to web server process. Check path in `config.php`. Maybe you'll also need `httpd_sys_rw_content` SELinux tag.
-* Check path to document root in `locales/deploy_locales` and run it.
+* Create `data` directory and give writing permissions for it to web server process.
+ Check path in `config.php`. Maybe you'll also need `httpd_sys_rw_content` SELinux tag.
You're set: download some data in the editor and login to OSM.
-Oh, one more thing: there will be a lot of `.base` files in the data directory. To clean them, run `crontab -e` and add this line (change path accordingly):
+Oh, one more thing: the database would accumulate a lot of obsolete base files.
+To clean them, run `crontab -e` for a user that has write permissions to the database,
+and add this line (change path accordingly):
- 0 * * * * find /var/www/level0/data -type f -mtime 1 -delete
+ 0 4 * * * sqlite3 /var/www/level0/data/level0.db "delete from base where created_at < datetime('now', '-1 day'); vacuum;"
## Translation
-Localization strings are managed with [Transifex](https://www.transifex.com/projects/p/level0/). There are not many of them, please add a translation for your language when you have time.
+Localization strings are managed with [Transifex](https://www.transifex.com/projects/p/level0/).
+There are not many of them, please add a translation for your language when you have time.
+
+To update localizations in the code, configure [Transifex CLI](https://developers.transifex.com/docs/cli) and do `tx pull -a`
## Development
diff --git a/locales/de.mo b/locales/de.mo
deleted file mode 100644
index ef89e21..0000000
Binary files a/locales/de.mo and /dev/null differ
diff --git a/locales/deploy_locales b/locales/deploy_locales
deleted file mode 100755
index 75dbdc3..0000000
--- a/locales/deploy_locales
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-LEVEL0_DOCROOT=../www
-source "$(dirname "$0")/transifex_config"
-
-for lang in *.mo
-do
- MPATH=$LEVEL0_DOCROOT/locale/`basename $lang .mo`/LC_MESSAGES
- mkdir -p $MPATH
- cp $lang $MPATH/messages.mo
-done
diff --git a/locales/en.mo b/locales/en.mo
deleted file mode 100644
index 2dd7fcb..0000000
Binary files a/locales/en.mo and /dev/null differ
diff --git a/locales/es.mo b/locales/es.mo
deleted file mode 100644
index 1a86985..0000000
Binary files a/locales/es.mo and /dev/null differ
diff --git a/locales/fr.mo b/locales/fr.mo
deleted file mode 100644
index 3b59072..0000000
Binary files a/locales/fr.mo and /dev/null differ
diff --git a/locales/hr.mo b/locales/hr.mo
deleted file mode 100644
index 585e98d..0000000
Binary files a/locales/hr.mo and /dev/null differ
diff --git a/locales/it.mo b/locales/it.mo
deleted file mode 100644
index d2f8993..0000000
Binary files a/locales/it.mo and /dev/null differ
diff --git a/locales/ja.mo b/locales/ja.mo
deleted file mode 100644
index 06fca46..0000000
Binary files a/locales/ja.mo and /dev/null differ
diff --git a/locales/nl.mo b/locales/nl.mo
deleted file mode 100644
index cca24cc..0000000
Binary files a/locales/nl.mo and /dev/null differ
diff --git a/locales/pl.mo b/locales/pl.mo
deleted file mode 100644
index 89cd41f..0000000
Binary files a/locales/pl.mo and /dev/null differ
diff --git a/locales/pt_BR.mo b/locales/pt_BR.mo
deleted file mode 100644
index 9ac5878..0000000
Binary files a/locales/pt_BR.mo and /dev/null differ
diff --git a/locales/ru.mo b/locales/ru.mo
deleted file mode 100644
index 97bd448..0000000
Binary files a/locales/ru.mo and /dev/null differ
diff --git a/locales/uk.mo b/locales/uk.mo
deleted file mode 100644
index fd3fdca..0000000
Binary files a/locales/uk.mo and /dev/null differ
diff --git a/locales/update_locales b/locales/update_locales
deleted file mode 100755
index 0b82848..0000000
--- a/locales/update_locales
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-set -u
-
-CONFIG="$(dirname "$0")/transifex_config"
-if [ -e "$CONFIG" ]; then
- source "$CONFIG"
-else
- echo "Please enter your Transifex credentials"
- read -r -p "Login: " TRANSIFEX_USER
- read -r -s -p "Password: " TRANSIFEX_PASS
- CHECK="$(curl -w "%{http_code}" -o /dev/null -s 'https://www.transifex.com/api/2/projects' --user "$TRANSIFEX_USER:$TRANSIFEX_PASS")"
- [ "$CHECK" -ne "200" ] && echo "Wrong login or password, please try again." && exit 3
- echo "TRANSIFEX_USER=$TRANSIFEX_USER" > "$CONFIG"
- echo "TRANSIFEX_PASS=$TRANSIFEX_PASS" > "$CONFIG"
-fi
-
-LEVEL0_LANGS=`curl https://www.transifex.com/api/2/project/level0/resource/messages/?details --user "$TRANSIFEX_USER:$TRANSIFEX_PASS" -s|grep '"code"'|sed 's/^.\+": "\(.\+\)".*$/\1/'`
-
-for lang in $LEVEL0_LANGS
-do
- echo "Processing language $lang"
- curl https://www.transifex.com/api/2/project/level0/resource/messages/translation/$lang --user "$TRANSIFEX_USER:$TRANSIFEX_PASS" -s|grep content|sed 's/^.\+": "\(.\+\)",\s*$/\1/'|sed 's/\\\\n/%NEWLINE%/g'|sed 's/\\n/\n/g'|sed 's/\\$//mg' |sed 's/%NEWLINE%/\\n/g' |sed 's/\\"/"/g'|sed 's/\\\\/\\/g'|msgfmt -o $lang.mo -
-done
diff --git a/locales/update_pot b/locales/update_pot
deleted file mode 100755
index 2ae1d46..0000000
--- a/locales/update_pot
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-xgettext --from-code=UTF-8 -o messages.pot -L php ../www/*.php
diff --git a/locales/vi.mo b/locales/vi.mo
deleted file mode 100644
index 9544da2..0000000
Binary files a/locales/vi.mo and /dev/null differ
diff --git a/locales/zh_TW.mo b/locales/zh_TW.mo
deleted file mode 100644
index feeda86..0000000
Binary files a/locales/zh_TW.mo and /dev/null differ
diff --git a/locales/messages.pot b/messages.pot
similarity index 64%
rename from locales/messages.pot
rename to messages.pot
index 1b59b21..874d2f1 100644
--- a/locales/messages.pot
+++ b/messages.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2014-05-20 09:56+0400\n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -18,41 +18,40 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
-#: ../www/core.php:104 ../www/level0l.php:75
+#: www/core.php:173 www/level0l.php:75
msgid "There can be only one changeset metadata"
msgstr ""
-#: ../www/core.php:116
+#: www/core.php:185
#, php-format
msgid "No version for object %s %s."
msgstr ""
-#: ../www/core.php:151
+#: www/core.php:220
#, php-format
msgid "Found older version of %s %s: %d instead of %d."
msgstr ""
-#: ../www/core.php:194
+#: www/core.php:263
#, php-format
msgid "Reading URL %s"
msgstr ""
-#: ../www/core.php:196
+#: www/core.php:265
#, php-format
msgid "Reading file %s"
msgstr ""
-#: ../www/core.php:219 ../www/index.php:119 ../www/index.php:140
-#: ../www/index.php:164
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
#, php-format
msgid "Error preparing data: %s."
msgstr ""
-#: ../www/core.php:231
+#: www/core.php:300
msgid "Nothing is modified, not going to update everything"
msgstr ""
-#: ../www/core.php:234
+#: www/core.php:303
#, php-format
msgid "%d object was modified, can update only %d of them (repeat for more)."
msgid_plural ""
@@ -60,266 +59,268 @@ msgid_plural ""
msgstr[0] ""
msgstr[1] ""
-#: ../www/core.php:301
+#: www/core.php:389
#, php-format
msgid "Duplicate ID for %s %s"
msgstr ""
-#: ../www/core.php:307 ../www/level0l.php:140
+#: www/core.php:395 www/level0l.php:140
#, php-format
msgid "Way %d has less than two nodes"
msgstr ""
-#: ../www/core.php:309 ../www/level0l.php:142
+#: www/core.php:397 www/level0l.php:142
#, php-format
msgid "Relation %d has no members"
msgstr ""
-#: ../www/core.php:328
+#: www/core.php:416
#, php-format
msgid "No base data for %s %s"
msgstr ""
-#: ../www/index.php:68
-msgid "Yor are already logged in."
+#: www/index.php:74
+msgid "You are already logged in."
msgstr ""
-#: ../www/index.php:84
+#: www/index.php:90
msgid "too big"
msgstr ""
-#: ../www/index.php:84
+#: www/index.php:90
msgid "bigger than MAX_FILE_SIZE"
msgstr ""
-#: ../www/index.php:84
+#: www/index.php:90
msgid "partial upload"
msgstr ""
-#: ../www/index.php:85
+#: www/index.php:91
msgid "no file"
msgstr ""
-#: ../www/index.php:85
+#: www/index.php:91
msgid "nowhere to store"
msgstr ""
-#: ../www/index.php:85
+#: www/index.php:91
msgid "failed to write"
msgstr ""
-#: ../www/index.php:85
+#: www/index.php:91
msgid "extension error"
msgstr ""
-#: ../www/index.php:86
+#: www/index.php:92
#, php-format
msgid "Error uploading file: %s."
msgstr ""
-#: ../www/index.php:93
+#: www/index.php:99
msgid "Could not parse the URL."
msgstr ""
-#: ../www/index.php:95
+#: www/index.php:101
msgid "Replace with what?"
msgstr ""
-#: ../www/index.php:95
+#: www/index.php:101
msgid "Add what?"
msgstr ""
-#: ../www/index.php:138
+#: www/index.php:144
msgid "There are severe validation errors, please fix them."
msgstr ""
-#: ../www/index.php:142
+#: www/index.php:148
msgid "Nothing to upload."
msgstr ""
-#: ../www/index.php:144
+#: www/index.php:150
msgid "Please enter changeset comment."
msgstr ""
-#: ../www/level0l.php:19
+#: www/level0l.php:19
msgid ""
"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
"make appropriate changes and remove '!' character from the entity header."
msgstr ""
-#: ../www/level0l.php:66
+#: www/level0l.php:66
#, php-format
msgid "Please resolve conflict of %s %s"
msgstr ""
-#: ../www/level0l.php:71
+#: www/level0l.php:71
msgid "Deleting an unsaved object"
msgstr ""
-#: ../www/level0l.php:86
+#: www/level0l.php:86
#, php-format
msgid "Coordinates specified for %s %d"
msgstr ""
-#: ../www/level0l.php:88
+#: www/level0l.php:88
msgid "Node without coordinates"
msgstr ""
-#: ../www/level0l.php:97
+#: www/level0l.php:97
msgid "A node cannot have member objects"
msgstr ""
-#: ../www/level0l.php:102
+#: www/level0l.php:102
msgid "Role name specified for a way node"
msgstr ""
-#: ../www/level0l.php:104
+#: www/level0l.php:104
msgid "Ways cannot have members besides nodes"
msgstr ""
-#: ../www/level0l.php:119
+#: www/level0l.php:119
msgid "Duplicated tag"
msgstr ""
-#: ../www/level0l.php:121 ../www/level0l.php:123
+#: www/level0l.php:121 www/level0l.php:123
#, php-format
msgid "Unknown content while parsing %s %s"
msgstr ""
-#: ../www/level0l.php:125
+#: www/level0l.php:125
msgid "Unknown and unparsed content found"
msgstr ""
-#: ../www/osmapi.php:69
-msgid "OAuth token was lost, please relogin."
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
msgstr ""
-#: ../www/osmapi.php:85
+#: www/osmapi.php:89
msgid "Could not aquire changeset id for a new changeset."
msgstr ""
-#: ../www/osmapi.php:97
+#: www/osmapi.php:102
#, php-format
-msgid "Changeset %d was uploaded successfully."
+msgid "Conflict while uploading changeset %d: %s."
msgstr ""
-#: ../www/osmapi.php:101
+#: www/osmapi.php:119
#, php-format
-msgid "Conflict while uploading changeset %d: %s."
+msgid "Changeset %d was uploaded successfully."
msgstr ""
-#: ../www/osmapi.php:107
+#: www/osmapi.php:123
#, php-format
msgid "OAuth error %d at stage \"%s\": %s."
msgstr ""
-#: ../www/osmapi.php:139
+#: www/osmapi.php:154
msgid "Failed to open XML stream"
msgstr ""
-#: ../www/osmapi.php:237
+#: www/osmapi.php:252
#, php-format
msgid "Download is incomplete, maximum of %d objects has been reached"
msgstr ""
-#: ../www/page.php:4 ../www/page.php:12
+#: www/page.php:4 www/page.php:12
msgid "Level0 OpenStreetMap Editor"
msgstr ""
-#: ../www/page.php:19
+#: www/page.php:19
#, php-format
msgid "...(%d message skipped)..."
msgid_plural "...(%d messages skipped)..."
msgstr[0] ""
msgstr[1] ""
-#: ../www/page.php:28
+#: www/page.php:28
msgid "URL or group of IDs like \"n54,w33\""
msgstr ""
-#: ../www/page.php:29
+#: www/page.php:29
msgid "OSM or OSC file"
msgstr ""
-#: ../www/page.php:30
+#: www/page.php:30
msgid "Add to editor"
msgstr ""
-#: ../www/page.php:31
+#: www/page.php:31
msgid "Replace data in editor"
msgstr ""
-#: ../www/page.php:32
+#: www/page.php:32
msgid "Revert changes"
msgstr ""
-#: ../www/page.php:33
+#: www/page.php:33
msgid "Clear data"
msgstr ""
-#: ../www/page.php:37
+#: www/page.php:37
#, php-format
msgid "You're %s."
msgstr ""
-#: ../www/page.php:37
+#: www/page.php:37
msgid "Log out"
msgstr ""
-#: ../www/page.php:39
+#: www/page.php:39
msgid "Log in"
msgstr ""
-#: ../www/page.php:41
+#: www/page.php:41
msgid "Download .osm"
msgstr ""
-#: ../www/page.php:42
+#: www/page.php:42
msgid "Validate"
msgstr ""
-#: ../www/page.php:43
+#: www/page.php:43
msgid "Check for conflicts"
msgstr ""
-#: ../www/page.php:44
+#: www/page.php:44
msgid "Show osmChange"
msgstr ""
-#: ../www/page.php:46
+#: www/page.php:46
msgid "Changeset comment"
msgstr ""
-#: ../www/page.php:47
+#: www/page.php:47
msgid "Upload to OSM"
msgstr ""
-#: ../www/page.php:56
+#: www/page.php:56
msgid "Edit this area"
msgstr ""
-#: ../www/page.php:57
-msgid "Follow cursor"
-msgstr ""
-
-#: ../www/page.php:65
+#: www/page.php:64
#, php-format
msgid "Line %d"
msgstr ""
-#: ../www/page.php:68
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference, tag reference, tag statistics."
+msgstr ""
+
+#: www/page.php:72
msgid ""
-"Useful links: about "
-"this editor, language reference, tag reference, tag statistics."
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
msgstr ""
-#: ../www/page.php:74
+#: www/page.php:75
msgid "OsmChange contents (this will be uploaded to the server)"
msgstr ""
-#: ../www/page.php:79
+#: www/page.php:80
msgid "Debug"
msgstr ""
diff --git a/upload_new_messages.sh b/upload_new_messages.sh
new file mode 100755
index 0000000..4b06a45
--- /dev/null
+++ b/upload_new_messages.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+xgettext --from-code=UTF-8 -o messages.pot -L php www/*.php
+tx push
diff --git a/www/locale/ar/LC_MESSAGES/messages.mo b/www/locale/ar/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..eafeab1
--- /dev/null
+++ b/www/locale/ar/LC_MESSAGES/messages.mo
@@ -0,0 +1,336 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Abdullah Abdullrhman, 2021
+# d506c013dc1b502e7a53f91ebcbf8f29_985b4b3, 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Abdullah Abdullrhman, 2021\n"
+"Language-Team: Arabic (http://app.transifex.com/openstreetmap/level0/language/ar/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ar\n"
+"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "يمكن أن يكون هناك بيانات وصفية واحدة فقط لمجموعة التغييرات"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "لم يعثر على إصدار للعناصر %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "تم العثور على إصدار قديم ل %s %s: %d بدلاً من %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "جار قراءة الرابط %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "جار قراءة ملف %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "حدث خطأ عند تهيئة البيانات : %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "لا شيء تم تعديله ، ولن يتم تحديث كل شيء"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "تم تعديل %d من العناصر، يمكن تحديثها فقط %d (كرر للمزيد)."
+msgstr[1] "تم تعديل %d من العناصر، يمكن تحديثها فقط %d (كرر للمزيد)."
+msgstr[2] "تم تعديل %d من العناصر، يمكن تحديثها فقط %d (كرر للمزيد)."
+msgstr[3] "تم تعديل %d من العناصر، يمكن تحديثها فقط %d (كرر للمزيد)."
+msgstr[4] "تم تعديل %d من العناصر، يمكن تحديثها فقط %d (كرر للمزيد)."
+msgstr[5] "تم تعديل %d من العناصر، يمكن تحديثها فقط %d (كرر للمزيد)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "معرف مكرر ل %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "يحتوي الطريق %d على أقل من نقطتين"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "لا تحتوي العلاقة %d على أي عضو ينتمي إليها"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "لا توجد بيانات أساسية لـ%s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "كبير جداً"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "أكبر من MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "رفع جزئي"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "ليس هناك ملف"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "لا مكان لتخزين"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "خطأ عند محاولة الكتابة"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "خطأ في الامتداد"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "خطأ أثناء رفع الملف : %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "فشلت عملية تحليل الرابط."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "بماذا يتم تغييره ؟"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "ماذا تضيف ؟"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "توجد أخطاء جسيمة في التحقق من الصحة ، يرجى إصلاحها."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "لم يعثر على أية بيانات لرفعها"
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "قم بكتابة تعليق عن التغييرات التي قمت بها من فضلك."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "تعارض! تم حفظ التعديلات التي قمت بإجرائها على الإصدار القديم في هذا التعليق. \\nالرجاء إجراء التغييرات المناسبة وإزالة الرمز \"!\" من أعلى المدخل."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "يرجى إصلاح التناقضات %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "حذف عنصر غير محفوظ"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "الإحداثيات المحددة لـ%s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "نقطة بدون احداثيات"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "لا يمكن أن تحتوي العقدة على عناصر أعضاء"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "تم تحديد اسم الدور لعقدة طريق"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "طرق لا يمكن أن يكون لها أعضاء بجانب العقد"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "وسم مكرر"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "محتوى غير معروف أثناء تحليل %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "تم العثور على محتوى غير معروف وغير محلل"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "تعذر الحصول على معرف مجموعة التغييرات لمجموعة تغييرات جديدة."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "التعارض أثناء تحميل مجموعة التغييرات %d : %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "تم رفع مجموعة التغييرات %d بنجاح."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "خطأ OAuth %d في المرحلة \"%s\":%s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "فشلت عملية فتح تدفق إكس أم أل"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "التنزيل غير مكتمل ، تم الوصول إلى الحد الأقصى من %d العناصر"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "محرر الدرجة0 لخريطة الشارع المفتوحة"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "... (تم تخطي الرسائل %d) ..."
+msgstr[1] "... (تم تخطي الرسائل %d) ..."
+msgstr[2] "... (تم تخطي الرسائل %d) ..."
+msgstr[3] "... (تم تخطي الرسائل %d) ..."
+msgstr[4] "... (تم تخطي الرسائل %d) ..."
+msgstr[5] "... (تم تخطي الرسائل %d) ..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "رابط أو مجموعة معرفات مثل \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "من OSM إلى ملف OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "أضف إلى المحرر"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "إستبدل البيانات في المحرر"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "إعكس التغييرات"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "إمسح البيانات"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "أنت %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "خروج"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "دخول"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "تنزيل ملف .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "تحقق من صحة البيانات"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "إفحص التناقضات"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "اعرض تغييرات الخريطة"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "تعليقك حول التغييرات"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "إرفع إلى OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "تعديل هذه المنطقة"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "في الخط %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "محتوى التعديلات (سيتم رفعها إلى الخادم)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "تنقيح"
diff --git a/www/locale/cs/LC_MESSAGES/messages.mo b/www/locale/cs/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..98f4107
--- /dev/null
+++ b/www/locale/cs/LC_MESSAGES/messages.mo
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Aleš Fiala , 2022
+# Jiří Podhorecký, 2021
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Aleš Fiala , 2022\n"
+"Language-Team: Czech (http://app.transifex.com/openstreetmap/level0/language/cs/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: cs\n"
+"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Může existovat pouze jeden soubor metadat změn"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Žádná verze pro objekt %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Nalezeny starší verze %s %s: %d včetně %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Čtecí adresa URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Čtecí soubor %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Chyba přípravy dat: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Nic není změněno, nebude aktualizovat vše"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d objekt byl upraven, může aktualizovat pouze %d z nich (pro další opakujte)."
+msgstr[1] "%d objekty bylo upraveny, může aktualizovat pouze %d z nich (pro další opakujte)."
+msgstr[2] "%d objektů bylo upraveno, může aktualizovat pouze %d z nich (pro další opakujte)."
+msgstr[3] "%d objektů bylo upraveno, může aktualizovat pouze %d z nich (pro další opakujte)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Duplicitní ID pro %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Cesta %d má méně než dva uzly"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Relace %dnemá žádné členy"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Žádná základní data pro %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "příliš velký"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "větší než MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "částečné nahrání"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "žádný soubor"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "není kam uložit"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "zápis selhal"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "chyba rozšíření"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Chyba nahrávání souboru: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Adresu URL nelze analyzovat."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Nahradit s čím?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Přidat co?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Jsou tam závažné chyby ověření, prosím opravte je."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Nic k nahrání."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Přidejte prosím komentář ke změnám."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Konflikt! Vaše úpravy staré verze jsou uloženy v tomto komentáři.\\nProveďte prosím příslušné změny a odstraňte '!' znak z hlavičky entity."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Vyřešte prosím konflikt s %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Smazání neuloženého objektu"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Zadané souřadnice pro %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Uzel bez souřadnic"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Uzel nemůže mít člen objektů"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Určený název role pro uzel cesty"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Cesty nemůžou mít členy kromě uzlů"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Duplicitní značka"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Neznámý obsah při analýze %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Byl nalezen neznámý a neanalyzovaný obsah"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Nepodařilo se získat id sady změn k nové sadě změn."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Konflikt během nahrávání sady změn %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Sada změn %d byla úspěšně nahrána."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Chyba OAuth %d ve fázi \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Nepodařilo se otevřít proud XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Stahování není kompletní, bylo dosaženo maximálního počtu%d objektů"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap Editor"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d přeskočená zpráva)..."
+msgstr[1] "...(%d přeskočené zprávy)..."
+msgstr[2] "...(%d přeskočených zpráv)..."
+msgstr[3] "...(%d přeskočených zpráv)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL adresa skupiny ID jako \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "Soubor OSM nebo OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Přidat do editoru"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Nahradit data v editoru"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Vrátit zpět změny"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Smazat data"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Jste %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Odhlásit"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Přihlásit"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Stáhnout .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Ověřit"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Zkontrolovat konflikty"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Zobrazit osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Komentář ke změnám"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Nahrát do OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Upravit tuto plochu"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Řádek %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Obsah OsmChange (ten bude nahrán na server)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Ladění"
diff --git a/www/locale/de/LC_MESSAGES/messages.mo b/www/locale/de/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..4810c23
--- /dev/null
+++ b/www/locale/de/LC_MESSAGES/messages.mo
@@ -0,0 +1,330 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Dominik George , 2014
+# Ilya Zverev , 2014
+# mcliquid , 2024
+# Simon Legner , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: mcliquid , 2024\n"
+"Language-Team: German (http://app.transifex.com/openstreetmap/level0/language/de/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: de\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Changeset-Metadaten düfen nur einmal vorkommen"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Keine Version für Objekt %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Ältere Version von %s %s gefunden: %d anstelle von %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Lese URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Lese Datei %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Daten konnten nicht verarbeitet werden: %s"
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Es wurde nichts verändert, daher wird nichts aktualisiert."
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d Objekt wurde verändert, es kann aber nur %d davon aktualisiert werden (wiederholen, um weitere zu aktualisieren)."
+msgstr[1] "%d Objekte wurden verändert, es können aber nur %d davon aktualisiert werden (wiederholen, um weitere zu aktualisieren)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Uneindeutige ID für %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Weg %d hat weniger als zwei Knoten"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Relation %d hat keine Mitglieder"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Keine Basisdaten für %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "zu groß"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "größer als MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "teilweiser Upload"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "keine Datei"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "kein Speicherort"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "konnte nicht geschrieben werden"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "Fehler mit der Erweiterung"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Datei konnte nicht hochgeladen werden: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Die URL konnte nicht verarbeitet werden."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Durch was ersetzen?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Was hinzufügen?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Es gab schwerwiegende Fehler bei der Prüfung der Daten, bitte korrigieren!"
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Nichts hochzuladen."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Bitte einen Changeset-Kommentar eingeben."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Konflikt! Deine Änderungen an der alten Version wurden im Kommentar gespeichert.\\nBitte führe die nötigen Änderungen durch und entferne das '!' aus dem Titel des Elements."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Bitte den Konflikt in %s auflösen %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Es soll ein ungespeichertes Objekt gelöscht werden"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Koordinaten angegeben für %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Knoten ohne Koordinaten"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Ein Knoten kann keine Mitglieder haben"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Rollenname für einen Wegknoten angegeben"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Wege können nur Knoten als Mitglieder haben"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Doppelter Tag"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Unbekannter Inhalt beim Verarbeiten von %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Unbekannter und unverarbeiteter Inhalt gefunden"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Konnte keien Changeset-ID für ein neues Changeset bekommen."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Konflikt beim Hochladen von Changeset %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Changeset %d wurde erfolgreich hochgeladen."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "OAuth-Fehler %d bei Schritt \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "XML-Datenstrom konnte nicht geöffnet werden"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Der Download ist unvollständig; das Maximum von %d Objekten wurde erreicht"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap-Editor"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d Nachricht ausgelassen)..."
+msgstr[1] "...(%d Nachrichten ausgelassen)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL oder Gruppe von IDs wie \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSM- oder OSC-Datei"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Zum Editor hinzufügen"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Daten im Editor ersetzen"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Änderungen rückgängig machen"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Daten löschen"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Du bist %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Abmelden"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Anmelden"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr ".osm-Datei herunterladen"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Prüfen"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Auf Konflikte prüfen"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "OsmChange anzeigen"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Changeset-Kommentar"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Zu OSM hochladen"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Dieses Gebiet bearbeiten"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Zeile %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "OsmChange-Inhalt (dies wird auf den Server hochgeladen)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Debug"
diff --git a/www/locale/en/LC_MESSAGES/messages.mo b/www/locale/en/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..24757b2
Binary files /dev/null and b/www/locale/en/LC_MESSAGES/messages.mo differ
diff --git a/www/locale/es/LC_MESSAGES/messages.mo b/www/locale/es/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..259dfb1
--- /dev/null
+++ b/www/locale/es/LC_MESSAGES/messages.mo
@@ -0,0 +1,330 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# 3c4f354c26c2c190ba28f9c2666d7fdb_003e9d1 , 2014
+# 3c4f354c26c2c190ba28f9c2666d7fdb_003e9d1 , 2015
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: 3c4f354c26c2c190ba28f9c2666d7fdb_003e9d1 , 2015\n"
+"Language-Team: Spanish (http://app.transifex.com/openstreetmap/level0/language/es/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "No puede haber un sólo metadato del conjuntos de cambios"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "No hay versión para el objeto %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Encontrada una versión anterior de %s %s: %d en lugar de %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Leyendo la URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Leyendo el archivo %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Error de preparado de datos: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Nada se modificó, no se va a actualizar todo"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d objeto modificado, puede actulizar sólo %d de ellos (repetir para más)."
+msgstr[1] "%d objetos modificados, puede actualizar sólo %d de ellos (repetir para más)."
+msgstr[2] "%d objetos modificados, puede actualizar sólo %d de ellos (repetir para más)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "ID duplicado para %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Vía %d tiene menos de dos nodos"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Relación %d no tiene miembros"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Sin datos base para %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "demasiado grande"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "más grande que MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "subida parcial"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "sin archivo"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "sin lugar para guardar"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "falló al escribir"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "error de extensión"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Error cargando archivo: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "No se pudo analizar la URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "¿Reemplazar con qué?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "¿Qué añadir?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Hay graves errores de validación, arreglarlos."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Nada a subir."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Introduce un comentario del conjunto de cambios."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "¡Conflicto! Tus ediciones en la versión anterior se guardan en este comentario.\\nHaz os cambios apropiados y elimina el caracter '!' de la cabecera entidad."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Resolver el conflicto de %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Eliminando un objeto no guardado"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Coordenadas especificadas para %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Nodo sin coordenadas"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Un nodo no puede tener objetos miembro"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Nombre del rol especificado para un nodo de vía"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Vías no pueden tener miembros además de los nodos"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Etiqueta dupicada"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Contenido desconocido mientras se analizaba %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Se encontró contenido desconocido y no analizado"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "No se pudo adquirir el id del conjunto de cambios para un nuevo conjunto de cambios."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Conflicto mientras se subía el conjunto de cambios %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "El conjunto de cambio %d fue subido correctamente."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Error OAuth %d en la etapa \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Falló al abrir el flujo XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "La descarga está incompleta, máximo de %d objetos han sido recogidos"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Editor Level0 OpenStreetMap"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d mensaje omitido)..."
+msgstr[1] "...(%d mensajes omitidos)..."
+msgstr[2] "...(%d mensajes omitidos)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL o grupo de IDs como «n54,w33»"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "Archivo OSM o OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Añadir al editor"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Remplazar datos en el editor"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Revertir cambios"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Borrar datos"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Tú eres %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Salir"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Ingresar"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Descargar .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Validar"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Comprueba si hay conflictos"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Mostrar osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Comentario del conjunto de cambio"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Subir a OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Editar esta área"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Línea %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Contenidos OsmChange (este será subido al servidor)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Depurar"
diff --git a/www/locale/fa_IR/LC_MESSAGES/messages.mo b/www/locale/fa_IR/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..379a3f0
--- /dev/null
+++ b/www/locale/fa_IR/LC_MESSAGES/messages.mo
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# *Sociologist Abedi*, 2021
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: *Sociologist Abedi*, 2021\n"
+"Language-Team: Persian (Iran) (http://app.transifex.com/openstreetmap/level0/language/fa_IR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fa_IR\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "فقط یک فراداده تغییر یافته می تواند وجود داشته باشد"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "هیچ نسخه ای برای شی%s%s وجود ندارد."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "نسخه قدیمی تر %s%s: %dبجای%dپیدا شد."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "آدرس اینترنتی خواندن %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "خواندن فایل %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "خطا در تهیه داده ها: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "هیچ چیز اصلاح نشده است، قرار نیست همه چیز را به روز کنید"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d شیء اصلاح شد، فقط می تواند %d آنها را به روز کند (برای موارد بیشتر تکرار کنید)."
+msgstr[1] "%d اشیاء اصلاح شد، فقط می تواند %d آنها را به روز کند (برای موارد بیشتر تکرار کنید)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "شناسه تکراری برای %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "راه %d کمتر از دو گره دارد"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "رابطه %d هیچ عضوی ندارد"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "هیچ اطلاعات پایه ای برای %s %s موجود نیست"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "خیلی بزرگ"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "بزرگتر از حداکثر اندازه فایل"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "بارگذاری جزئی"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "بدون فایل"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "جایی برای ذخیره کردن"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "ناموفق در نوشتن"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "خطای پسوند"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "خطا در بارگذاری فایل: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "آدرس اینترنتی را نتوانست تجزیه کند."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "با چه چیزی جایگزین شود؟"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "اضافه کردن چی؟"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "خطاهای اعتبارسنجی شدیدی وجود دارد، لطفاً آنها را برطرف کنید."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "چیزی برای بارگذاری وجود ندارد."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "لطفا برای تغییرات توضیحی وارد کنید"
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "تعارض! ویرایشهای نسخه قدیمی شما در این نظر ذخیره می شود.\\nلطفا تغییرات مناسب را انجام دهید و کاراکتر '!' را از سربرگ موجود حذف کنید."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "لطفاً تعارض %s %s را حل کنید"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "حذف یک شیء ذخیره نشده"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "مختصات مشخص شده برای %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "گره بدون مختصات"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "یک گره نمی تواند دارای اشیاء عضو باشد"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "نام نقش برای گره راه مشخص شده است"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "راه ها نمی توانند علاوه بر گره ها، عضو داشته باشند"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "برچسب تکراری"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "محتوای ناشناخته هنگام تجزیه %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "محتوای ناشناخته و تجزیه نشده پیدا شد"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "نتوانست شناسه تغییرات را برای یک تغییر جدید به دست آورد."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "تعارض هنگام بارگذاری مجموعه تغییرات %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "بسته تغییرات %d با موفقیت بارگذاری شد."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "خطای OAuth %d در مرحله \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "جریان XML باز نشد"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "بارگیری ناقص است، حداکثر %d از اشیاء رسیده است"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "سطح 0 ویرایشگر اوپناستریتمپ"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d پیام رد شد)..."
+msgstr[1] "...(%d پیام ها رد شدند)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "آدرس اینترنتی یا گروهی از شناسه ها مانند \"n54،w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "فایل OSM یا OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "افزودن به ویرایشگر"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "داده ها را در ویرایشگر جایگزین کنید"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "برگرداندن تغییرات"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "پاک کردن داده ها"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "شما %s هستید."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "خروج"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "وارد شدن"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "دانلود .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "معتبر ساختن"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "تعارض ها را بررسی کنید"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "نمایش تغییرات osm"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "توضیحات تغییرات"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "بارگذاری در OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "این منطقه را ویرایش کنید"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "خط %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "محتوای تغییرات osm (این مورد در سرور بارگذاری می شود)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "اشکال زدایی"
diff --git a/www/locale/fr/LC_MESSAGES/messages.mo b/www/locale/fr/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..33d7adf
--- /dev/null
+++ b/www/locale/fr/LC_MESSAGES/messages.mo
@@ -0,0 +1,330 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# hamlet , 2014
+# pierzen , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: pierzen , 2014\n"
+"Language-Team: French (http://app.transifex.com/openstreetmap/level0/language/fr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Il ne peut y avoir qu'une métadonnées pour le groupe de modifications"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Pa de version pour objet %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Trouvé ancienne version de %s %s: %d plutôt que %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Chargement URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Lecture fichier %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Erreur dans la préparation des données : %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Rien n'est modifié, rien ne va être mis à jour "
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d objet modifié, il est possible d'en mettre à jour seulement %d (recommencer pour la suite)."
+msgstr[1] "%d objets modifiés, il est possible d'en mettre à jour seulement %d (recommencer pour la suite)."
+msgstr[2] "%d objets modifiés, il est possible d'en mettre à jour seulement %d (recommencer pour la suite)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Doublon de ID pour %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Le chemin %d a moins de deux nœuds "
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "La relation %d n'a aucun membre "
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Pas de données de base pour %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "trop grand"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "plus grand que MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "téléversement partiel"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "pas de fichier"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "nul part où sauvegarder"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "écriture a échouée"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "erreur d''extension"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Erreur dans le téléversement du fichier : %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Impossible d'interpréter l'URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Remplacer par quoi ?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Ajouter quoi ?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Il y a de grave erreurs de validation, svp corrigez les."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Rien à téléverser."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Merci d'ajouter un commentaire pour le groupe de modifications."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Conflit ! Vos modifications par rapport à l'ancienne version sont indiquées dans ce commentaire.\\nMerci de faire les corrections appropriées puis de supprimer le caractère '!' de l'en-tête de l'entité."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Merci de résoudre le conflit pour %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Suppression d'un objet non-sauvegardé"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Coordonnées spécifiées pour %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Nœud sans coordonnées"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Un nœud ne peut pas avoir d'objets membres"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Nom de rôle spécifié pour le nœud d'un chemin"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Les chemins ne peuvent pas avoir d'autres membres que des nœuds "
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Attribut dupliqué "
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Contenu inconnu en interprétant %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Contenu inconnu et non-interprété trouvé"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Impossible d'obtenir un id pour un nouveau groupe de modifications."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Conflit lors du téléversement du groupe de modifications %d : %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Le groupe de modifications %d a été téléversé avec succès."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Erreur OAuth %d à l'étape \"%s\" : %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Impossible d'ouvrir le flux XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Le téléchargement est incomplet, le maximum de %d objets a été atteint"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Éditeur OpenStreetMap Level0"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d message sauté)..."
+msgstr[1] "...(%d messages sautés)..."
+msgstr[2] "...(%d messages sautés)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL ou groupe d'IDs comme \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "fichier OSM ou OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Ajouter à l'éditeur"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Remplacer les données dans l'éditeur"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Révoquer les modifications"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Effacer les données"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Vous êtes %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Déconnexion "
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Connexion "
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Télécharger .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Valider"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Vérifier les conflits"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Afficher osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Commentaire de groupe de modifications"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Téléverser vers OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Éditer cette zone"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Ligne %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Contenu OsmChange (ceci va être téléversé vers le serveur)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Debug"
diff --git a/www/locale/hr/LC_MESSAGES/messages.mo b/www/locale/hr/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..8b5a5a6
--- /dev/null
+++ b/www/locale/hr/LC_MESSAGES/messages.mo
@@ -0,0 +1,329 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Janjko , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Janjko , 2014\n"
+"Language-Team: Croatian (http://app.transifex.com/openstreetmap/level0/language/hr/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hr\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Može postojati samo jedan metadata changeseta"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Nema verzije za objekt %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Nađena starija verzija od %s %s: %d umjesto %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Čitam URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Čitam datoteku %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Greška kod pripremanja podataka: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Ništa nije promjenjeno, ništa se neće spremiti"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d objekt je promjenjen, mogu ih ažurirati samo %d (ponovite za više)"
+msgstr[1] "%d objekta je promjenjeno, mogu ih ažurirati samo %d (ponovite za više)"
+msgstr[2] "%d objekata je promjenjeno, mogu ih ažurirati samo %d (ponovite za više)"
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Dupli ID za %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Put %d ima manje od dvije točke"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Relacija %d nema članove"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Nema podataka za %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "preveliko"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "veće od MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "djelomični upload"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "nema datoteke"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "nema se gdje spremiti"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "greška kod pisanja"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "greška kod ekstenzije"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Greška kod slanja datoteke: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Neuspješno parsiranje URL-a."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Zamjeniti sa čime?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Dodati što?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Postoji nekoliko greški, molim popravite."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Ništa za uploadati."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Molim upišite komentar changeseta."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Konflikt! Vaše promjene stare verzije su spremljene u ovom komentaru.\\nMolim napravite potrebne promjene i maknite simbol '!' iz zaglavlja."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Molim rješite konflikt za %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Brisanje objekta koji nije spremljen"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Koordinate specificirane za %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Točka bez koordinata."
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Točka ne može imati članove"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Ime role za točku puta"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Put ne može imati članove osim točaka"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Dupla oznaka"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Nepoznat sadržaj kod parsiranja %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Nepoznati i neparsirani sadržaj nađen"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Ne mogu dobaviti id changeset-a za novi changeset."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Konflikt kod spremanja changeseta %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Changeset %d je uspješno spremljen."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Greška OAutha %d kod etape \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Neuspjeh kod otvaranja XML streama"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Preuzimanje nepotpuno, dostignut maksimum od %d objekata"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap Editor"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d poruka preskočena)..."
+msgstr[1] "...(%d poruke preskočene)..."
+msgstr[2] "...(%d poruka preskočeno)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL ili grupa ID-jeva u obliku \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSM ili OSC datoteka"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Dodaj editoru"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Zamjeni podatke u editoru"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Opovrgni promjene"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Obriši podatke"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Vi ste %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Odjava"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Prijava"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Skini .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Validiraj"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Nađi konflikte"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Prikaži osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Komentar changeseta"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Spremi na OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Uredi ovo područje"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Linija %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Sadržaj OsmChangea (ovo će se poslati na server)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Debug"
diff --git a/www/locale/hu/LC_MESSAGES/messages.mo b/www/locale/hu/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..9457827
--- /dev/null
+++ b/www/locale/hu/LC_MESSAGES/messages.mo
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Gábor Babos , 2020
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Gábor Babos , 2020\n"
+"Language-Team: Hungarian (http://app.transifex.com/openstreetmap/level0/language/hu/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "A metaadatok csak egy módosításkészlethez tartozhatnak"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Ennek az objektumnak nincs verziója: %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr " A(z) %s %s objektumnak régebbi verziója is van, mégpedig %d (e helyett: %d)."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "%s URL beolvasása"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "%s fájl beolvasása"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Hiba történt a következő adatok előkészítésénél: %s"
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Semmi sem változott, így nem lesz feltöltve semmi"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d objektum módosult, viszont közülük egyszerre csak %d tölthető fel (a többi feltöltéséhez meg kell ismételni a műveletet)"
+msgstr[1] "%d objektum módosult, viszont közülük csak %d tölthető fel (ezért a feltöltést meg kell ismételni)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Duplikált ID a következőknél: %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "A(z) %d vonal csak egy pontból áll"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "A(z) %d kapcsolatnak nincs tagja"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr " %s %s: nincsenek alapadatok"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "túl nagy"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "nagyobb, mint MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "részleges feltöltés"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "nincs fájl"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "nincs hol tárolni"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "az írás meghiúsult"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "hiba a kiterjesztésben"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Hiba történt a következő fájl feltöltésekor: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Nem sikerült elemezni az URL-t."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Mivel legyenek lecserélve?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Mi legyen hozzáadva?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Súlyos érvényesítési hibák vannak, légy szíves, javítsd ki őket."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Nincs mit feltölteni."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Légy szíves, írj egy megjegyzést a módosításkészlethez."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Ütközés! A régi verzión elvégzett szerkesztéseid ebben a megjegyzésben vannak elmentve.\\nLégy szíves, végezd el a megfelelő módosításokat és távolítsd el a '!' karaktert az entitásfejlécből."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Légy szíves, oldd meg a következő ütközést: %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Nem mentett objektum törlése"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Koordináták meghatározva a következőhöz: %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Koordináták nélküli pont"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Pontnak nem lehetnek objektumok a tagjai"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Szerepnév meghatározva egy vonalponthoz"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Vonalnak pontokon kívül nem lehet más tagja"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Duplikált címke"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Ismeretlen tartalom %s %s elemzésekor"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Nem ismert és nem elemzett tartalmat találtunk"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Az új módosításkészlethez nem sikerült beszerezni a módosításkészlet-azonosítót."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Ütközés történt a(z) %d módosításkészlet feltöltésekor: %s"
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "A(z) %d módosításkészlet sikeresen fel lett töltve. "
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Oauth %d hiba történt a(z) „%s” szakaszban: %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Nem sikerült megnyitni az XML-adatfolyamot"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "A letöltés hiányos, legfeljebb %d objektumot sikerült elérni"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap-szerkesztő"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "…(%d üzenet kihagyva)…"
+msgstr[1] "…(%d üzenet kihagyva)…"
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL van ID-csoportok, például „n54,w33”"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSM- vagy OSC-fájl"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Hozzáadás a szerkesztőhöz"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Adatok lecserélése a szerkesztőben"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Módosítások visszavonása"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Adatok törlése"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Te %s vagy."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Kijelentkezés"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Bejelentkezés"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr ".osm letöltése"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Érvényesítés"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Ütközések ellenőrzése"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "OsmChange megjelenítése"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Megjegyzés a módosításkészlethez:"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Feltöltés az OpenStreetMapre"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Ezen terület szerkesztése"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "%d vonal"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Az OsmChange tartalma (ez lesz feltöltve a kiszolgálóra)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Hibakeresés"
diff --git a/www/locale/is/LC_MESSAGES/messages.mo b/www/locale/is/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..c9a514a
--- /dev/null
+++ b/www/locale/is/LC_MESSAGES/messages.mo
@@ -0,0 +1,327 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Sveinn í Felli , 2020
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Sveinn í Felli , 2020\n"
+"Language-Team: Icelandic (http://app.transifex.com/openstreetmap/level0/language/is/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: is\n"
+"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Það geta aðeins verið ein lýsigögn á breytingasetti"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Engin útgáfumerking á hlut %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Fann eldri útgáfuna %s %s: %d í stað %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Les URL-slóðina %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Les skrána %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Villa við að undirbúa gögn: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Ekkert er breytt, mun ekki uppfæra allt"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d hlut var breytt, get uppfært aðeins %d af þeim (endurtaka fyrir meira)."
+msgstr[1] "%d hlutum var breytt, get uppfært aðeins %d af þeim (endurtaka fyrir meira)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Tvítekið auðkenni fyrir %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Leiðin %d er með minna en tvo hnúta"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Venslin %d eru ekki með nein stök"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Engin grunngögn fyrir %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "of stór"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "stærri en MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "hálfkláruð innhleðsla"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "engin skrá"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "hvergi hægt að geyma"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "tókst ekki að skrifa"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "villa í skráarendingu"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Villa við að senda inn skrá: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Ekki tókst að þátta URL-slóðina."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Skipta út með hverju?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Bæta við hverju?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Það voru nokkrar villur sem fundust við athugun, leiðréttu þær."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Ekkert til að senda inn."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Settu inn athugasemd við breytingasett."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Árekstur! Breytingar þínar á eldri útgáfunni eru vistaðar í þessari athugasemd.\\nGerðu tilhlýðilegar breytingar og fjarlægðu '!' stafinn úr haus einindisins."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Leystu áreksturinn milli %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Eyði óvistuðum hlut"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Hnit skilgreind fyrir %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Hnútur án hnita"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Hnútar geta ekki haft hluti sem stök"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Heiti hlutverks tilgreint fyrir leiðarhnút"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Leiðir geta ekki haft önnur stök en hnúta"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Tvítekið merki"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Óþekkt efni við að þátta %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Óþekkt og óþáttað efni fannst"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Gat ekki náð í auðkenni fyrir nýtt breytingasett."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Villa við að senda inn breytingasettið %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Það tókst að senda inn breytingasettið %d."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Villa í OAuth %d á stigi \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Mistókst að opna XML-streymi"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Niðurhal et óklárað, hámarkinu %d hlutir hefur verið náð"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap ritill"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d skilaboðum sleppt)..."
+msgstr[1] "...(%d skilaboðum sleppt)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL-slóð eða hópur af auðkennum eins og \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSM eða OSC-skrá"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Bæta í ritil"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Skipta út gögnum í ritli"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Afturkalla breytingar"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Hreinsa gögn"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Þú ert %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Skrá út"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Skrá inn"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Sækja .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Sannreyna"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Athuga árekstra"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Sýna osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Athugasemd við breytingasett"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Senda inn til OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Breyta þessu svæði"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Lína %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Efni OsmChange (þetta verður sent inn á vefþjóninn)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Villukemba"
diff --git a/www/locale/it/LC_MESSAGES/messages.mo b/www/locale/it/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..d8427ae
--- /dev/null
+++ b/www/locale/it/LC_MESSAGES/messages.mo
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Manuel Tassi , 2019-2020
+# Marco , 2018
+# Stefano , 2014
+# Simone Cortesi , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Manuel Tassi , 2019-2020\n"
+"Language-Team: Italian (http://app.transifex.com/openstreetmap/level0/language/it/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
+"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Ci può essere solo un metadato relativo al gruppo di modifiche"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Nessuna versione per l'oggetto %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Trovata una vecchia versione di %s %s: %d invece di %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Sto leggendo l'URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Sto leggendo il file %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Errore nella preparazione dei dati: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Nessun oggetto è stato modificato, non verrà aggiornato tutto."
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "L'oggetto %d è stato modificato posso aggiornarne solo %d di essi (ripeti per aggiornarne altri)."
+msgstr[1] "Gli oggetti %d sono stati modificati, posso aggiornarne solo %d di essi (ripeti per aggiornarne altri)."
+msgstr[2] "Gli oggetti %d sono stati modificati, posso aggiornarne solo %d di essi (ripeti per aggiornarne altri)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "ID duplicato per %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "La way %d ha meno di due nodi"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "La relazione %d non ha alcun membro"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Nessun dato di base per %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "troppo grande"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "più grande di MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "caricamento parziale"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "nessun file"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "nessun luogo dove archiviare"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "scrittura fallita"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "errore dell'estensione"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Errore nel caricamento del file: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Non ho potuto leggere l'URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Con cosa sostituire?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Cosa aggiungere?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Ci sono gravi errori di validazione, correggili per favore."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Niente da caricare."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Inserisci il commento al gruppo di modifiche."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Conflitto! Le tue modifiche alla vecchia versione sono salvate in questo commento.\nEsegui per favore le modifiche appropriate e rimuovi il carattere '!' dall'header dell'entità."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Per favore risolvi il conflitto di %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Sto cancellando un oggetto non salvato"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Coordinate specificate per %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Nodo senza coordinate"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Un nodo non può avere oggetti come membri"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Nome di ruolo specificato per un nodo appartenente ad una way"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Le way non possono avere membri a parte i nodi"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Tag duplicato"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Contenuto sconosciuto durante il parsing %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Trovato un contenuto sconosciuto e non parsato"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Non sono riuscito ad ottenere un identificatore per un nuovo changeset."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Conflitto durante il caricamento del changeset %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Il gruppo di modifiche %d è stato caricato con successo."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Errore OAuth %d al livello \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Non sono riuscito ad aprire il flusso XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Il download è incompleto, è stato raggiunto il massimo di %d oggetti"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap Editor"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d messaggio saltato)..."
+msgstr[1] "...(%d messaggi saltati)..."
+msgstr[2] "...(%d messaggi saltati)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL o gruppo di identificatori, come \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "file OSM o OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Aggiungi all'editor"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Sostituisci i dati dell'editor"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Resetta le modifiche"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Cancella i dati"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Sei %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Logout"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Login"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Scarica il file .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Valida"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Controlla i conflitti"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Mostra il file osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Commento del gruppo di modifiche"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Carica su OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Modifica quest'area"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Linea %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Contenuti del file OsmChange (questo verrà caricato sul server)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Debug"
diff --git a/www/locale/ja/LC_MESSAGES/messages.mo b/www/locale/ja/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..66a004b
--- /dev/null
+++ b/www/locale/ja/LC_MESSAGES/messages.mo
@@ -0,0 +1,326 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Satoshi IIDA , 2014
+# Shu Higashi, 2016
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Shu Higashi, 2016\n"
+"Language-Team: Japanese (http://app.transifex.com/openstreetmap/level0/language/ja/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ja\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "変更セットのメタデータは複数指定できません"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "オブジェクト %s %s のバージョンがありません"
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "%d ではなく、より古いバージョン %s %s: %d があります。"
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "URL %s を読み込み中"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "ファイル %s を読み込み中"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "データ %s 処理中にエラー発生"
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "変更点が無いため、更新は行いません"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d オブジェクトが変更されました。そのうち %d オブジェクトだけがアップロード可能です (何度か繰り返してください)"
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "%s %s でID重複"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "ウェイ %d の所属ノードが1つ以下"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "リレーション %d に所属メンバーなし"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "%s %s にベースデータ無し"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "大きすぎます"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "MAX_FILE_SIZE より大きいファイルです"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "部分アップロード"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "ファイルがありません"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "格納場所がありません"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "書き込み失敗"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "エクステンションエラー"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "ファイル %s アップロード中にエラー発生"
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "URLをパースできません"
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "置き換え用データは?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "追加データは?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "妥当性検証エラーあり。修正ください。"
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "アップロードするデータがありません。"
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "変更セットコメントを記載してください"
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "競合が発生しました! あなたの編集内容はコメント部分に格納されています。\\n内容を適切に編集し、エンティティ行の先頭部分にある \"!\" を除去してください。"
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "%s %sの競合を解決してください"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "保存していないオブジェクトを削除"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "%s %dの座標指定"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "ノードに座標情報がない"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "ノードにはメンバーを含めることができません"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "ウェイ内ノードへのロール名称指定"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "ウェイにはノード以外のメンバーを含めることができません"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "タグ重複"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "%s %sのパース時に処理できないコンテンツあり"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "パース不可のため、処理できなかったコンテンツあり"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "新しい変更セットに対して、変更セットIDを取得できませんでした"
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "変更セット %d: %sをアップロード中に競合発生"
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "変更セット %d のアップロード成功"
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "ステージ \"%s\": %s を処理中にOAuthエラー %d 発生"
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "XMLストリームのオープンに失敗"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "ダウンロードしていないオブジェクトがあり、最大 %d オブジェクトまで対応しています"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap エディタ"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d メッセージがスキップされました)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL、あるいは \"n54,w33\" 形式のIDグループ"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSMあるいはOSCファイル"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "エディタに追加"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "エディタ内データを置換"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "変更取り消し"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "データ消去"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "アカウント %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "ログアウト"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "ログイン"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr ".osmファイルをダウンロード"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "妥当性検証"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "競合チェック"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "osmChangeを表示"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "変更セットコメント"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "OSMへアップロード"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "この地域を編集"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "%d 行"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "OsmChangeコンテンツ (サーバにアップロードされます)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "デバッグ"
diff --git a/www/locale/nl/LC_MESSAGES/messages.mo b/www/locale/nl/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..82b1f81
--- /dev/null
+++ b/www/locale/nl/LC_MESSAGES/messages.mo
@@ -0,0 +1,328 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# 8d98478d19376e343142c8c23c2a73b6_36c4a7f, 2014
+# wvdp , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: 8d98478d19376e343142c8c23c2a73b6_36c4a7f, 2014\n"
+"Language-Team: Dutch (http://app.transifex.com/openstreetmap/level0/language/nl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Er kan slechts één metadataveld van de wijzigingenset zijn"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Geen versie voor object %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Oudere versie van %s %s gevonden: %d in plaats van %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "URL %s aan het inlezen"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Bestand %s aan het inlezen"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Fout bij het voorbereiden van de data: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Geen wijzigingen, we gaan niet alles updaten"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d object is aangepast, maar er kan maar %d worden geüpload (herhaal voor meer)."
+msgstr[1] "%d objecten zijn aangepast, maar er kunnen maar %d worden geüpload (herhaal voor meer)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Dubbel ID voor %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Weg %d heeft minder dan 2 knopen"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Relatie %d heeft geen leden"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Geen basisgegevens voor %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "te groot"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "groter dan MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "gedeeltelijk geüpload"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "geen bestand"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "nergens om op te slaan"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "kon het bestand niet wegschrijven"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "extensiefout"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Fout bij het uploaden van bestand: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Kon de URL niet ontleden."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Vervangen met wat?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Wat moet toegevoegd worden?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Er zijn ernstige validatiefouten, los ze alsjeblieft op."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Niets om te uploaden."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Voer alsjeblieft een opmerking bij de wijzigingenset in."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Conflict! Je bewerkingen aan de oude versie worden opgeslagen in dit commentaar.\\nMaak alsjeblieft de nodige wijzigingen en verwijder het teken '!' van de entiteit-header."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Los alsjeblieft het conflict op van %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Een niet-opgeslagen object verwijderen"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Coördinaten opgegeven voor %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Knoop zonder coördinaten"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Een node kan geen leden hebben"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Rol opgegeven voor een knoop van een weg"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Een weg kan geen leden hebben behalve knopen"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Gedupliceerde tag"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Onbekende inhoud tijdens het ontleden van %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Onbekende en niet-ontlede inhoud gevonden"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Kon id van de wijzigingenset niet verkrijgen voor de nieuwe wijzigingenset."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Conflict tijdens het uploaden van wijzigingenset %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Wijzingingenset %d is met succes geüpload."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "OAuth-fout %d in stap \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Kon open-XML-stroom niet openen"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Download is onvolledig, maximum van %d objecten bereikt"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap Editor"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d bericht overgeslagen)..."
+msgstr[1] "...(%d berichten overgeslagen)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL of groep van id's zoals \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSM- of OSC-bestand"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Toevoegen aan editor"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Vervang data in editor"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Veranderingen terugdraaien"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Data verwijderen"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Je bent %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Uitloggen"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Inloggen"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Download .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Valideer"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Controleer op conflicten"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Toon osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Opmerking bij wijzigingenset"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Uploaden naar OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Bewerk dit gebied"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Lijn %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Inhoud van OsmChange (dit zal worden geüpload naar de server)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Debug"
diff --git a/www/locale/pl/LC_MESSAGES/messages.mo b/www/locale/pl/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..82fe6a2
--- /dev/null
+++ b/www/locale/pl/LC_MESSAGES/messages.mo
@@ -0,0 +1,333 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# 6546d9d03ed2369db081e1f230dab70c_7bb7973, 2014
+# maro21 OSM, 2020-2021
+# ☆Verdulo, 2017
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: maro21 OSM, 2020-2021\n"
+"Language-Team: Polish (http://app.transifex.com/openstreetmap/level0/language/pl/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Metadane zestawu zmian mogą być tylko w pojedynczym egzemplarzu"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Brak wersji obiektu %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Obiekt „%s %s” ma starą wersję: %d zamiast %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Wczytywanie URL-a %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Wczytywanie pliku %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Błąd przetwarzania danych: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Brak zmian, nie aktualizuję wszystkiego pod rząd."
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d obiekt został zmodyfikowany, można unacześnić tylko %d z nich (powtórz operację dla dalszych)."
+msgstr[1] "%d obiekty zostały zmodyfikowane, można unacześnić tylko %d z nich (powtórz operację dla dalszych)."
+msgstr[2] "%d obiektów zostało zmodyfikowanych, można unacześnić tylko %d z nich (powtórz operację dla dalszych)."
+msgstr[3] "Zmodyfikowano %d obiektów, można zaktualizować tylko %d z nich (powtórz operację po więcej)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Podwójny ID obiektu %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Linia %d ma mniej niż dwa węzły"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Brak członów w relacji %d"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Brak danych bazowych %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "zbyt duży"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "więcej niż MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "częściowo wysłany"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "brak pliku"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "brak miejsca do zapisu"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "błąd zapisu"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "błąd rozszerzenia"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Błąd podczas wysyłania pliku: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Nie mogę rozpoznać adresu URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Na co zamienić?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Co dodać?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Znaleziono poważne błędy walidacji, proszę je naprawić."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Nie ma niczego do wysłania."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Nie zapomnij dodać komentarz do zestawu zmian."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Konflikt! Twoje edycje do starej wersji zostały zapisane w komentarzu.\\nProsimy wprowadzić odpowiednie zmiany i usunąć znak ‘!’ z nagłówka obiektu."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Nie rozwiązano konfliktu obiektu %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Usuwanie niezapisanego obiektu"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Podano współrzędne %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Węzeł bez współrzędnych"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Węzeł nie może mieć członów"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Podano rolę węzła w linii"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Linie mogą zawierać tylko węzły"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Podwójny tag"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Niezrozumiały tekst wewnątrz obiektu %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Znaleziono niezrozumiały nieprzetworzony tekst"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Nie znaleziono ID nowego zestawu zmian."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Konflikt przy wysyłaniu zestawu zmian %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Pomyślnie wysłano zestaw zmian %d"
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Błąd OAuth %d na etapie „%s”: %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Nie udało się otworzyć źródła XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Pobieranie niekompletne, maksymalnie pozyskano %d obiektów"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0, edytor OpenStreetMap"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "…(%d pominięty komunikat)…"
+msgstr[1] "…(%d pominięte komunikaty)…"
+msgstr[2] "…(%d pominiętych komunikatów)…"
+msgstr[3] "…(%d pominiętych komunikatów)…"
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL albo zestaw obiektów, na przykład „n54,w33”"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "Plik OSM albo OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Dodaj do edytora"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Zamień dane"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Wycofaj zmiany"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Wyczyść"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Ty, %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Wyloguj się"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Zaloguj się"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Pobierz .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Odśwież"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Sprawdź konflikty"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Pokaż osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Komentarz do zestawu zmian"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Wyślij do OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Pobierz ten obszar"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Linia %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Zawartość osmChange (to zostanie wysłane na serwer)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Debuguj"
diff --git a/www/locale/pt/LC_MESSAGES/messages.mo b/www/locale/pt/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..c238523
--- /dev/null
+++ b/www/locale/pt/LC_MESSAGES/messages.mo
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# jgpacker , 2014
+# Rui , 2018
+# Thiago Vieira , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Rui , 2018\n"
+"Language-Team: Portuguese (http://app.transifex.com/openstreetmap/level0/language/pt/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Só pode ser especificado um grupo de metadados para o conjunto de alterações"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Nenhuma versão para o objeto %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Encontrada uma versão mais antiga do %s %s: %d ao invés de %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "A ler o URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "A ler o ficheiro %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Erro ao preparar os dados: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Não foi nada alterado, nem tudo será atualizado"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d objeto foi alterado, pode atualizar apenas %d deles (repita para mais)."
+msgstr[1] "%d objetos foram alterados, pode atualizar apenas %d deles (repita para mais)."
+msgstr[2] "%d objetos foram alterados, pode atualizar apenas %d deles (repita para mais)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "ID duplicado para %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "A linha %d tem menos de dois pontos"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "A relação %d não tem membros"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Sem dados de base para %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "demasiado grande"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "maior do que MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "envio parcial"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "nenhum ficheiro"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "sem local para armazenar"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "falhou a escrita"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "erro de extensão"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Erro ao enviar o ficheiro: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Não foi possível analisar o URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Substituir com o quê?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Adicionar o quê?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Existem vários erros de validação, por favor corrija-os."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Nada para ser enviado."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Por favor escreva um comentário sobre conjunto de alterações que fez."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Conflito! As suas edições para a versão antiga estão gravadas neste comentário.\\nPor favor faça as alterações apropriadas e remova os caracteres '!' do cabeçalho da entidade."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Por favor resolva o conflito de %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "A eliminar um objeto que não foi gravado"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Coordenadas definidas para o %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Ponto sem coordenadas"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Um ponto não pode conter um objeto como membro"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Nome da função definida para uma linha de pontos"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "As linhas não podem conter membros que não sejam pontos"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Etiqueta duplicada"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Conteúdo desconhecido ao processar %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Encontrado conteúdo desconhecido e não processado"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Não foi possível obter um id para o novo conjunto de alterações."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Conflito durante o envio do conjunto de alterações %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "O conjunto de alterações %d foi enviado com sucesso."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Erro OAuth %d na fase \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Falha ao abrir os dados XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "O descarregamento está incompleto, foi atingido o limite de %d objetos"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Editor OpenStreetMap Level0"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d mensagem ignorada)..."
+msgstr[1] "...(%d mensagens ignoradas)..."
+msgstr[2] "...(%d mensagens ignoradas)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL ou grupo de IDs como n54, w33\"
"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "Ficheiro OSM ou OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Adicionar ao editor"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Substituir dados no editor"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Reverter as alterações"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Limpar dados"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Você é %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Sair"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Entrar"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Descarregar .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Validar"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Verificar se existem conflitos"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Mostrar ficheiro osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Comentário do conjunto de alterações"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Enviar para o OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Editar esta área"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Linha %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Conteúdo do ficheiro osmChange (isto será transferido para o servidor)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Depuração"
diff --git a/www/locale/pt_BR/LC_MESSAGES/messages.mo b/www/locale/pt_BR/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..40a953b
--- /dev/null
+++ b/www/locale/pt_BR/LC_MESSAGES/messages.mo
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# jgpacker , 2014
+# Rui , 2018
+# Thiago Vieira , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Rui , 2018\n"
+"Language-Team: Portuguese (Brazil) (http://app.transifex.com/openstreetmap/level0/language/pt_BR/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
+"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Só pode ser especificado um grupo de metadados para o conjunto de alterações"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Nenhuma versão para o objeto %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Encontrada uma versão mais antiga do %s %s: %d ao invés de %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Lendo a URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Lendo o arquivo %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Erro ao preparar os dados: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Nada foi modificado, não irá atualizar tudo"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d objeto foi modificado, pode atualizar somente %d deles (repita para mais)."
+msgstr[1] "%d objetos foram modificados, pode atualizar somente %d deles (repita para mais)."
+msgstr[2] "%d objetos foram modificados, pode atualizar somente %d deles (repita para mais)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "ID duplicado para %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "A linha %d tem menos de dois pontos"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "A relação %d não possui membros"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Sem dados de base para %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "muito grande"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "maior do que MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "envio parcial"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "nenhum arquivo"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "sem local para armazenar"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "falhou a escrita"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "erro de extensão"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Erro ao enviar o arquivo: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Não foi possível analisar a URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Substituir com o que?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Incluir o que?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Há diversos erros de validação, por favor corrija-os."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Nada para ser enviado."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Por favor faça um comentário para o conjunto de alterações."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Conflito! Suas edições para a versão antiga estão salvas neste comentário.\\nPor favor faça as modificações apropriadas e remova os caracteres '!' do cabeçalho da entidade."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Por favor resolva o conflito de %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Excluindo um objeto que não foi salvo"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Coordenadas definidas para o %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Ponto sem coordenadas"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Um ponto não pode conter um objeto como membro"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Nome do papel definido para uma linha de pontos"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Linhas não podem conter objetos que não sejam pontos"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Etiqueta duplicada"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Conteúdo desconhecido ao analisar %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Conteúdo encontrado desconhecido e não analisado"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Não foi possível obter um id para o novo conjunto de alterações."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Conflito durante o envio do conjunto de alterações %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Conjunto de alterações %d foi enviado com sucesso."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Erro OAuth %d na fase \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Falha ao abrir os dados XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "O descarregamento está incompleto, foi atingido o limite de %d objetos"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Editor OpenStreetMap Level0"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d mensagem ignorada)..."
+msgstr[1] "...(%d mensagens ignoradas)..."
+msgstr[2] "...(%d mensagens ignoradas)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL ou grupo de IDs como n54, w33\"
"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "Arquivo OSM ou OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Adicionar ao editor"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Substituir dados no editor"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Reverter as modificações"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Limpar dados"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Você é %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Sair"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Entrar"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Baixar .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Validar"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Verificar se existem conflitos"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Mostrar arquivo osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Comentário do conjunto de alterações"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Enviar para o OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Editar esta área"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Linha %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Conteúdo do arquivo osmChange (isto será enviado para o servidor)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Debug"
diff --git a/www/locale/ru/LC_MESSAGES/messages.mo b/www/locale/ru/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..374e21d
--- /dev/null
+++ b/www/locale/ru/LC_MESSAGES/messages.mo
@@ -0,0 +1,331 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Ilya Zverev , 2014,2024
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Ilya Zverev , 2014,2024\n"
+"Language-Team: Russian (http://app.transifex.com/openstreetmap/level0/language/ru/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Метаданные пакета правок могут быть только в единственном экземпляре"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Нет версии у объекта \"%s %s\"."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "У объекта \"%s %s\" старая версия: %d вместо %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Загружаю адрес %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Загружаю файл %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Ошибка при подготовке данных: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Изменений нет, всё подряд не обновляю."
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d объект изменён, но обновить могу только %d (повторите после)."
+msgstr[1] "%d объекта изменено, но обновить могу только %d из них (повторите после)."
+msgstr[2] "%d объектов изменено, но обновить могу только %d из них (повторите после)."
+msgstr[3] "%d объектов изменено, но обновить могу только %d из них (повторите после)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "Повторный идентификатор у объекта \"%s %s\""
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "У линии %d меньше двух точек"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "У отношения %d нет членов"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Нет базовых данных для \"%s %s\""
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr "Вы уже вошли."
+
+#: www/index.php:90
+msgid "too big"
+msgstr "слишком большой"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "больше, чем MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "частично загружен"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "нет файла"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "негде хранить"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "не удалось сохранить"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "ошибка расширения"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Проблема с загрузкой файла: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Не могу распознать URL-адрес."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Заменить чем?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Добавить что?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Обнаружены серьёзные ошибки валидации, поправьте их."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Загружать нечего."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Не забудьте ввести комментарий к пакету правок."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Конфликт! Ваши изменения старой версии сохранены в этом комментарии.\\nПожалуйста, примените эти изменения к новой версии и удалите символ '!' из заголовка."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Не разрешён конфликт объекта \"%s %s\""
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Удаление несохранённого объекта"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Указаны координаты для \"%s %d\""
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "У точки нет координат"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Точка не может иметь объектов-членов"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Указана роль для точки в линии"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "У линий не может быть членов, кроме точек"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Повторный тег"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Непонятный текст внутри объекта \"%s %s\""
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Обнаружен непонятный необработанный текст"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr "Токен OAuth потерялся — попробуйте войти ещё раз."
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Не удалось получить идентификатор нового пакета правок."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "При отправке пакета правок %d случился конфликт: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Пакет правок %d отправлен на сервер."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Ошибка OAuth %d на стадии \"%s\": %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Не удалось открыть источник XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Загрузка прервана, скачан максимум в %d объектов"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0, редактор OpenStreetMap"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d сообщение пропущено)..."
+msgstr[1] "...(%d сообщения пропущено)..."
+msgstr[2] "...(%d сообщений пропущено)..."
+msgstr[3] "...(%d сообщений пропущено)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "Адрес или набор объектов, например, \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "Файл OSM или OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Добавить в редактор"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Заменить данные"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Отменить правки"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Очистить"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Вы %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Выйти"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Войти"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Скачать .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Обновить"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Проверить на конфликты"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Показать osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Комментарий к пакету правок"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Отправить в OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Загрузить эту область"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Строка %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Содержимое osmChange (это будет отправлено на сервер)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Отладка"
diff --git a/www/locale/uk/LC_MESSAGES/messages.mo b/www/locale/uk/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..925bd46
--- /dev/null
+++ b/www/locale/uk/LC_MESSAGES/messages.mo
@@ -0,0 +1,332 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Михаил Девиченский <140mic@gmail.com>, 2023
+# Сергій Дубик , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Михаил Девиченский <140mic@gmail.com>, 2023\n"
+"Language-Team: Ukrainian (http://app.transifex.com/openstreetmap/level0/language/uk/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: uk\n"
+"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr ""
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr ""
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr ""
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Завантажую адресу %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Завантажую файл %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Помилка при підготовці даних: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Змін немає, все підряд не оновлюється."
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d об’єкт змінено, але оновити можу лише %d з них (повторіть після)."
+msgstr[1] "%d об’єкти змінено, але оновити можу лише %d з них (повторіть після)."
+msgstr[2] "%d об’єктів змінено, але оновити можу лише %d з них (повторіть після)."
+msgstr[3] "%d об’єктів змінено, але оновити можу лише %d з них (повторіть після)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr ""
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "У лінії %d менше двох точок"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "У зв’язка %d немає членів"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr ""
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "занадто великий"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "більше, ніж MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "частково вивантажений"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "немає файлу"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "ніде зберігати"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "не вдалося зберегти"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "помилка розширення"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Проблема із вивантаженням файлу: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Я не можу розпізнати адресу URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Замінити чим?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Додати що?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Виявлені серйозні помилки валідації, виправте їх."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Нічого вивантажувати."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Не забудьте ввести коментар до пакету правок."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Конфлікт! Ваші зміни старої версії збережені в цьому коментарі. \\n Будь ласка, застосуйте ці зміни до нової версії та вилучіть символ „!“ із заголовку."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr ""
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Вилучення незбереженого об’єкта"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Вказані координати для „%s %d“"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "У точки немає координат"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Точка не може мати об’єктів-членів"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Вказана роль для точки в лінії"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "У ліній не може бути членів, окрім точок"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Повторний теґ"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr ""
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Виявлено незрозумілий необроблений текст"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Не вдалося отримати ідентифікатор нового пакета правок."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "При відправці пакета правок %d трапився конфлікт: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Пакет правок %d відправлений на сервер."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Помилка OAuth %d на стадії „%s“: %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Не вдалося відкрити XML-потік"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Завантаження незавершене, досягнуто максимальної кількості об'єктів %d"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0, редактор OpenStreetMap"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d повідомлення пропущено)..."
+msgstr[1] "...(%d повідомлення пропущено)..."
+msgstr[2] "...(%d повідомлень пропущено)..."
+msgstr[3] "...(%d повідомлень пропущено)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "Адреса або набір об’єктів, наприклад, „n54, w33“"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "Файл OSM або OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Додати у редактор"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Замінити дані"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Скасувати правки"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Очистити"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Ви %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Вийти"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Ввійти"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Звантажити .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Оновити"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Перевірити на конфлікти"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Показати osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Коментар до пакету правок"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Надіслати в OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Завантажити цю область"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Рядок %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Вміст OsmChange (буде завантажено на сервер)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Відлагодження"
diff --git a/www/locale/vi/LC_MESSAGES/messages.mo b/www/locale/vi/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..48a6bf4
--- /dev/null
+++ b/www/locale/vi/LC_MESSAGES/messages.mo
@@ -0,0 +1,326 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Minh Nguyễn , 2014
+# Minh Nguyễn , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Minh Nguyễn , 2014\n"
+"Language-Team: Vietnamese (http://app.transifex.com/openstreetmap/level0/language/vi/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "Bộ thay đổi chỉ có thể chứa một khối siêu dữ liệu."
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "Không có phiên bản của đối tượng %s %s."
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "Tìm thấy phiên bản cũ hơn của %s %s: %d thay vì %d."
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "Đang đọc URL %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "Đang đọc tập tin %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "Lỗi khi chuẩn bị dữ liệu: %s."
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "Chưa thay đổi gì, không cần cập nhật toàn bộ"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d đối tượng được thay đổi; chỉ có thể cập nhật %d trong số đó (lặp lại để cập nhật thêm)."
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "ID trùng lặp cho %s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "Lối %d không có tới hai nốt"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "Quan hệ %d không có thành viên nào"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "Không có dữ liệu gốc của %s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "quá lớn"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "quá MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "tải lên một phần"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "không có tập tin"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "không có chỗ nào để lưu giữ"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "thất bại khi ghi"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "lỗi phần mở rộng"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "Lỗi khi tải lên tập tin: %s."
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "Không thể phân tích URL."
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "Thay thế bằng cái gì?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "Thêm cái gì?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "Xin vui lòng khắc phục các lỗi phê chuẩn đáng kể."
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "Không có gì để tải lên."
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "Xin vui lòng tóm lược bộ thay đổi."
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "Mâu thuẫn! Các sửa đổi bạn đã thực hiện trên phiên bản cũ được lưu trong lời chú thích này.\\nXin vui lòng thực hiện các thay đổi thích đáng và xóa dấu “!” khỏi đầu đề của đối tượng."
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "Xin vui lòng giải quyết mâu thuẫn về %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "Đang xóa một đối tượng chưa lưu"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "Đã định rõ tọa độ %s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "Nốt không có tọa độ"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "Nốt không thể có đối tượng thành viên"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "Vai trò name được định rõ cho một nốt trong lối"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "Lối không thể có thành viên cùng với nốt"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "Thẻ trùng lặp"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "Nội dung không rõ khi phân tích %s %s"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "Đã tìm thấy nội dung không rõ và không được phân tích"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "Không thể lấy ID cho bộ thay đổi mới."
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "Xảy ra mâu thuẫn khi tải lên bộ thay đổi %d: %s."
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "Đã tải lên bộ thay đổi %d thành công."
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "Lỗi OAuth %d tại bước “%s”: %s."
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "Thất bại khi mở dòng XML"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "Không thể hoàn tất việc tải về vì đã tải về tối đa %d đối tượng"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Trình vẽ OpenStreetMap Level0"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "…(bỏ qua %d thông điệp)…"
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL hoặc danh sách ID thí dụ “n54,w33”"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "tập tin OSM hoặc OSC"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "Thêm vào trình vẽ"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "Thay thế dữ liệu trong trình vẽ"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "Lùi sửa các thay đổi"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "Xóa dữ liệu"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "Bạn là %s."
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "Đăng xuất"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "Đăng nhập"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "Tải về .osm"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "Kiểm tra"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "Kiểm tra mâu thuẫn"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "Xem osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "Lời miêu tả bộ thay đổi"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "Tải lên OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "Sửa đổi khu vực này"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "Đường kẻ %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "Nội dung OsmChange (sẽ được tải lên máy chủ)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "Gỡ lỗi"
diff --git a/www/locale/zh_CN/LC_MESSAGES/messages.mo b/www/locale/zh_CN/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..29ccd15
--- /dev/null
+++ b/www/locale/zh_CN/LC_MESSAGES/messages.mo
@@ -0,0 +1,326 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# JOJOforshaun , 2021
+# 快乐的老鼠宝宝 , 2022
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: 快乐的老鼠宝宝 , 2022\n"
+"Language-Team: Chinese (China) (http://app.transifex.com/openstreetmap/level0/language/zh_CN/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_CN\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "只能有一个变更集的元数据"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "对象没有版本%s %s。"
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "找到旧版本的%s %s: %d 而不是%d。"
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "正在读取URL%s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "正在读取文件%s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "准备数据时出错:%s。"
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "什么都不会修改,不会更新任何内容"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d对象被修改,只能更新%d 其中(重复更多)。"
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "重复的ID%s %s"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "路径%d的节点少于两个"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "关系%d没有成员"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "没有基础数据%s %s"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "太大"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "超过最大文件大小"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "部分上传"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "没有文件"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "没有地方可以存储"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "写入失败"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "扩展错误"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "上传文件时出错:%s。"
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "无法解析该URL。"
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "替换成什么?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "添加什么?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "存在严重的验证错误,请修复它们。"
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "什么都没有上传。"
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "请输入变更集注释。"
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "冲突!您对旧版本所做的编辑将保存在此评论中。\\n请进行适当的更改并删除“!”实体标题中的字符。"
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "请解决以下冲突%s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "删除未保存的对象"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "指定的坐标%s %d"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "节点没有坐标"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "节点不能有成员对象"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "为路径节点指定的角色名称"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "路径不能有节点以外的成员"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "重复的标签"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "解析%s%s时的未知内容"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "找到未知和未解析的內容"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "无法为新变更集申请ID。"
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "上传变更集%d:%s时发生冲突。"
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "变更集%d上传成功。"
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "OAuth在阶段“%s”:%s时发生错误%d。"
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "未能打开XML流。"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "未完全下载,下载%d个对象的上限已达到。"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 OpenStreetMap 编辑器"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "……(%d 条消息已跳过)……"
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "URL或者类似“n54,w33”的ID组"
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSM 或 OSC 文件"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "添加到编辑器"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "替换编辑器中数据"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "回退变更"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "清空数据"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "您是%s。"
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "登出"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "登入"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "下载 .osm 文件"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "验证"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "检查冲突"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "展示 osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "变更集注释"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "上传到OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "编辑这片区域"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "路径 %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "OsmChange 内容 (这些将被上传到服务器)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "调试"
diff --git a/www/locale/zh_TW/LC_MESSAGES/messages.mo b/www/locale/zh_TW/LC_MESSAGES/messages.mo
new file mode 100644
index 0000000..ffaaf16
--- /dev/null
+++ b/www/locale/zh_TW/LC_MESSAGES/messages.mo
@@ -0,0 +1,325 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+#
+# Translators:
+# Supaplex , 2014
+msgid ""
+msgstr ""
+"Project-Id-Version: Level0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2024-06-17 18:23+0300\n"
+"PO-Revision-Date: 2014-04-03 17:22+0000\n"
+"Last-Translator: Supaplex , 2014\n"
+"Language-Team: Chinese (Taiwan) (http://app.transifex.com/openstreetmap/level0/language/zh_TW/)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: zh_TW\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#: www/core.php:173 www/level0l.php:75
+msgid "There can be only one changeset metadata"
+msgstr "只可以有一個編輯變動 metadata"
+
+#: www/core.php:185
+#, php-format
+msgid "No version for object %s %s."
+msgstr "找不到物件 %s %s 的版本訊息。"
+
+#: www/core.php:220
+#, php-format
+msgid "Found older version of %s %s: %d instead of %d."
+msgstr "找到 %s 的舊版本,用 %s:%d 代替 %d。 "
+
+#: www/core.php:263
+#, php-format
+msgid "Reading URL %s"
+msgstr "載入網址 %s"
+
+#: www/core.php:265
+#, php-format
+msgid "Reading file %s"
+msgstr "載入檔案 %s"
+
+#: www/core.php:288 www/index.php:125 www/index.php:146 www/index.php:170
+#, php-format
+msgid "Error preparing data: %s."
+msgstr "載入資料發生錯誤: %s 。"
+
+#: www/core.php:300
+msgid "Nothing is modified, not going to update everything"
+msgstr "沒有物件更動,將不會上傳任何東西。"
+
+#: www/core.php:303
+#, php-format
+msgid "%d object was modified, can update only %d of them (repeat for more)."
+msgid_plural ""
+"%d objects were modified, can update only %d of them (repeat for more)."
+msgstr[0] "%d 物件變動,只能上傳 %d 的部分 (請再重覆操作幾次)"
+
+#: www/core.php:389
+#, php-format
+msgid "Duplicate ID for %s %s"
+msgstr "%s %s ID重覆"
+
+#: www/core.php:395 www/level0l.php:140
+#, php-format
+msgid "Way %d has less than two nodes"
+msgstr "路徑 %d 擁有節點少於兩個"
+
+#: www/core.php:397 www/level0l.php:142
+#, php-format
+msgid "Relation %d has no members"
+msgstr "關係 %d 並沒有成員"
+
+#: www/core.php:416
+#, php-format
+msgid "No base data for %s %s"
+msgstr "%s %s 並沒有資料"
+
+#: www/index.php:74
+msgid "You are already logged in."
+msgstr ""
+
+#: www/index.php:90
+msgid "too big"
+msgstr "太大了"
+
+#: www/index.php:90
+msgid "bigger than MAX_FILE_SIZE"
+msgstr "大於 MAX_FILE_SIZE"
+
+#: www/index.php:90
+msgid "partial upload"
+msgstr "部分上傳"
+
+#: www/index.php:91
+msgid "no file"
+msgstr "並沒有檔案"
+
+#: www/index.php:91
+msgid "nowhere to store"
+msgstr "沒有地方儲存"
+
+#: www/index.php:91
+msgid "failed to write"
+msgstr "寫入失敗"
+
+#: www/index.php:91
+msgid "extension error"
+msgstr "延伸錯誤"
+
+#: www/index.php:92
+#, php-format
+msgid "Error uploading file: %s."
+msgstr "上傳檔案: %s 發生錯誤"
+
+#: www/index.php:99
+msgid "Could not parse the URL."
+msgstr "無法解析網址。"
+
+#: www/index.php:101
+msgid "Replace with what?"
+msgstr "用什麼資料取代?"
+
+#: www/index.php:101
+msgid "Add what?"
+msgstr "然後呢?"
+
+#: www/index.php:144
+msgid "There are severe validation errors, please fix them."
+msgstr "請修正多個驗證錯誤"
+
+#: www/index.php:148
+msgid "Nothing to upload."
+msgstr "沒有東西可上傳"
+
+#: www/index.php:150
+msgid "Please enter changeset comment."
+msgstr "請輸入編輯變動註解"
+
+#: www/level0l.php:19
+msgid ""
+"Conflict! Your edits to the old version are saved in this comment.\\nPlease "
+"make appropriate changes and remove '!' character from the entity header."
+msgstr "編輯衝突!你這次編輯舊的版本。\\n 請適當修改後把開頭的 \"!\" 驚嘆號移除。"
+
+#: www/level0l.php:66
+#, php-format
+msgid "Please resolve conflict of %s %s"
+msgstr "請解決編輯衝突 %s %s"
+
+#: www/level0l.php:71
+msgid "Deleting an unsaved object"
+msgstr "刪除未儲存物件"
+
+#: www/level0l.php:86
+#, php-format
+msgid "Coordinates specified for %s %d"
+msgstr "%s %d 的座標"
+
+#: www/level0l.php:88
+msgid "Node without coordinates"
+msgstr "沒有座標的節點"
+
+#: www/level0l.php:97
+msgid "A node cannot have member objects"
+msgstr "節點無法擁有成員物件"
+
+#: www/level0l.php:102
+msgid "Role name specified for a way node"
+msgstr "請指定路徑中節點的成員角色"
+
+#: www/level0l.php:104
+msgid "Ways cannot have members besides nodes"
+msgstr "路徑無法擁有節點以外的成員"
+
+#: www/level0l.php:119
+msgid "Duplicated tag"
+msgstr "重覆標籤"
+
+#: www/level0l.php:121 www/level0l.php:123
+#, php-format
+msgid "Unknown content while parsing %s %s"
+msgstr "解析 %s %s 時發現不知名內容"
+
+#: www/level0l.php:125
+msgid "Unknown and unparsed content found"
+msgstr "找到不知名和未解析的內容"
+
+#: www/osmapi.php:65
+msgid "OAuth token was lost, please log in again."
+msgstr ""
+
+#: www/osmapi.php:89
+msgid "Could not aquire changeset id for a new changeset."
+msgstr "無法替編輯變動取得新的編輯變動編輯"
+
+#: www/osmapi.php:102
+#, php-format
+msgid "Conflict while uploading changeset %d: %s."
+msgstr "上傳編輯變動 %d: %s 時發生編輯衝突。"
+
+#: www/osmapi.php:119
+#, php-format
+msgid "Changeset %d was uploaded successfully."
+msgstr "編輯變動 %d 成功上傳"
+
+#: www/osmapi.php:123
+#, php-format
+msgid "OAuth error %d at stage \"%s\": %s."
+msgstr "階段 \"%s\": %s 時 OAuth 錯誤 %d。"
+
+#: www/osmapi.php:154
+msgid "Failed to open XML stream"
+msgstr "無法開啟 XML stream"
+
+#: www/osmapi.php:252
+#, php-format
+msgid "Download is incomplete, maximum of %d objects has been reached"
+msgstr "下載不完全,目前最多下載 %d 的物件"
+
+#: www/page.php:4 www/page.php:12
+msgid "Level0 OpenStreetMap Editor"
+msgstr "Level0 開放街圖編輯器"
+
+#: www/page.php:19
+#, php-format
+msgid "...(%d message skipped)..."
+msgid_plural "...(%d messages skipped)..."
+msgstr[0] "...(%d 訊息跳過)..."
+
+#: www/page.php:28
+msgid "URL or group of IDs like \"n54,w33\""
+msgstr "網址或是群組編號 \"n54,w33\""
+
+#: www/page.php:29
+msgid "OSM or OSC file"
+msgstr "OSM 或是 OSC 檔案"
+
+#: www/page.php:30
+msgid "Add to editor"
+msgstr "添加至編輯器"
+
+#: www/page.php:31
+msgid "Replace data in editor"
+msgstr "取代編輯器中資料"
+
+#: www/page.php:32
+msgid "Revert changes"
+msgstr "回復編輯變動"
+
+#: www/page.php:33
+msgid "Clear data"
+msgstr "清除資料"
+
+#: www/page.php:37
+#, php-format
+msgid "You're %s."
+msgstr "你是 %s。"
+
+#: www/page.php:37
+msgid "Log out"
+msgstr "登出"
+
+#: www/page.php:39
+msgid "Log in"
+msgstr "登入"
+
+#: www/page.php:41
+msgid "Download .osm"
+msgstr "下載 .osm 檔案"
+
+#: www/page.php:42
+msgid "Validate"
+msgstr "驗證"
+
+#: www/page.php:43
+msgid "Check for conflicts"
+msgstr "檢查是否有衝突"
+
+#: www/page.php:44
+msgid "Show osmChange"
+msgstr "顯示 osmChange"
+
+#: www/page.php:46
+msgid "Changeset comment"
+msgstr "編輯變動註解"
+
+#: www/page.php:47
+msgid "Upload to OSM"
+msgstr "上傳至 OSM"
+
+#: www/page.php:56
+msgid "Edit this area"
+msgstr "編輯這個區域"
+
+#: www/page.php:64
+#, php-format
+msgid "Line %d"
+msgstr "路徑 %d"
+
+#: www/page.php:67
+msgid ""
+"Useful links: about "
+"this editor, language reference,"
+" tag "
+"reference, tag "
+"statistics."
+msgstr ""
+
+#: www/page.php:72
+msgid ""
+"Thank you to OpenCage for "
+"sponsoring work on Level0!"
+msgstr ""
+
+#: www/page.php:75
+msgid "OsmChange contents (this will be uploaded to the server)"
+msgstr "OsmChange 內容 (這將會上傳到伺服器)"
+
+#: www/page.php:80
+msgid "Debug"
+msgstr "除錯"
diff --git a/www/page.php b/www/page.php
index 33e13d1..ae86a6e 100644
--- a/www/page.php
+++ b/www/page.php
@@ -69,7 +69,7 @@
'tag reference, '.
'tag statistics.') ?>
-Thank you to OpenCage for sponsoring work on Level0!
+=_('Thank you to OpenCage for sponsoring work on Level0!') ?>
0 ): ?>
=_('OsmChange contents (this will be uploaded to the server)') ?>