]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #5044 from mmd-osm/patch/rn1
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 7 Aug 2024 15:12:53 +0000 (16:12 +0100)
committerGitHub <noreply@github.com>
Wed, 7 Aug 2024 15:12:53 +0000 (16:12 +0100)
JSON partial rendering in loop

28 files changed:
Gemfile.lock
app/controllers/diary_entries_controller.rb
app/helpers/open_graph_helper.rb
app/views/api/changesets/index.xml.builder
app/views/layouts/_meta.html.erb
config/locales/ar.yml
config/locales/be.yml
config/locales/bg.yml
config/locales/ce.yml
config/locales/cy.yml
config/locales/da.yml
config/locales/de.yml
config/locales/el.yml
config/locales/eo.yml
config/locales/fr.yml
config/locales/gl.yml
config/locales/he.yml
config/locales/id.yml
config/locales/is.yml
config/locales/mk.yml
config/locales/sl.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
lib/rich_text.rb
test/controllers/api/changesets_controller_test.rb
test/controllers/api/nodes_controller_test.rb
test/controllers/diary_entries_controller_test.rb
test/lib/rich_text_test.rb

index e8d918ff5e2e01d48c3fa007dcc7a0d39db20a13..00984911cba78e05b9f568389776d9b6d2e2f30c 100644 (file)
@@ -92,10 +92,10 @@ GEM
       ffi (~> 1.15)
       ffi-compiler (~> 1.0)
     ast (2.4.2)
-    autoprefixer-rails (10.4.16.0)
+    autoprefixer-rails (10.4.19.0)
       execjs (~> 2)
     aws-eventstream (1.3.0)
-    aws-partitions (1.959.0)
+    aws-partitions (1.962.0)
     aws-sdk-core (3.201.3)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
@@ -104,7 +104,7 @@ GEM
     aws-sdk-kms (1.88.0)
       aws-sdk-core (~> 3, >= 3.201.0)
       aws-sigv4 (~> 1.5)
-    aws-sdk-s3 (1.156.0)
+    aws-sdk-s3 (1.157.0)
       aws-sdk-core (~> 3, >= 3.201.0)
       aws-sdk-kms (~> 1)
       aws-sigv4 (~> 1.5)
@@ -125,7 +125,7 @@ GEM
     bigdecimal (3.1.8)
     binding_of_caller (1.0.1)
       debug_inspector (>= 1.2.0)
-    bootsnap (1.18.3)
+    bootsnap (1.18.4)
       msgpack (~> 1.2)
     bootstrap (5.3.3)
       autoprefixer-rails (>= 9.1.0)
@@ -219,12 +219,12 @@ GEM
       dry-initializer (~> 3.0)
       dry-schema (>= 1.12, < 2)
       zeitwerk (~> 2.6)
-    erb_lint (0.5.0)
+    erb_lint (0.6.0)
       activesupport
       better_html (>= 2.0.1)
       parser (>= 2.7.1.4)
       rainbow
-      rubocop
+      rubocop (>= 1)
       smart_properties
     erubi (1.13.0)
     execjs (2.9.1)
@@ -234,7 +234,7 @@ GEM
     factory_bot_rails (6.4.3)
       factory_bot (~> 6.4)
       railties (>= 5.0.0)
-    faraday (2.10.0)
+    faraday (2.10.1)
       faraday-net_http (>= 2.0, < 3.2)
       logger
     faraday-net_http (3.1.1)
@@ -254,7 +254,7 @@ GEM
     globalid (1.2.1)
       activesupport (>= 6.1)
     google-protobuf (3.25.4)
-    hashdiff (1.1.0)
+    hashdiff (1.1.1)
     hashie (5.0.0)
     highline (3.1.0)
       reline
@@ -485,14 +485,14 @@ GEM
       io-console (~> 0.5)
     request_store (1.7.0)
       rack (>= 1.4)
-    rexml (3.3.3)
+    rexml (3.3.4)
       strscan
     rinku (2.0.6)
     rotp (6.3.0)
     rouge (4.3.0)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.65.0)
+    rubocop (1.65.1)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
@@ -503,7 +503,7 @@ GEM
       rubocop-ast (>= 1.31.1, < 2.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.31.3)
+    rubocop-ast (1.32.0)
       parser (>= 3.3.1.0)
     rubocop-capybara (2.21.0)
       rubocop (~> 1.41)
@@ -558,7 +558,7 @@ GEM
     sprockets-exporters_pack (0.1.2)
       brotli (>= 0.2.0)
       sprockets (>= 4.0.0.beta3)
-    sprockets-rails (3.5.1)
+    sprockets-rails (3.5.2)
       actionpack (>= 6.1)
       activesupport (>= 6.1)
       sprockets (>= 3.0.0)
index eaf6ddf9c519021e5d9a0809585fb94edf0f85ce..9962c7efd5f019f0f333bc6174931a7f8791276e 100644 (file)
@@ -69,6 +69,7 @@ class DiaryEntriesController < ApplicationController
     if @entry
       @title = t ".title", :user => params[:display_name], :title => @entry.title
       @og_image = @entry.body.image
+      @og_image_alt = @entry.body.image_alt
       @comments = can?(:unhide, DiaryComment) ? @entry.comments : @entry.visible_comments
     else
       @title = t "diary_entries.no_such_entry.title", :id => params[:id]
index a41831ca69d98bc6e287c495ec94653817245b2b..ad24c73b2fb3c2115d3b0a19b4c3809f18cd0638 100644 (file)
@@ -1,15 +1,16 @@
 module OpenGraphHelper
   require "addressable/uri"
 
-  def opengraph_tags(title = nil, og_image = nil)
+  def opengraph_tags(title = nil, og_image = nil, og_image_alt = nil)
     tags = {
       "og:site_name" => t("layouts.project_name.title"),
       "og:title" => title || t("layouts.project_name.title"),
       "og:type" => "website",
-      "og:image" => og_image_url(og_image),
       "og:url" => url_for(:only_path => false),
       "og:description" => t("layouts.intro_text")
-    }
+    }.merge(
+      opengraph_image_properties(og_image, og_image_alt)
+    )
 
     safe_join(tags.map do |property, content|
       tag.meta(:property => property, :content => content)
@@ -18,12 +19,20 @@ module OpenGraphHelper
 
   private
 
-  def og_image_url(og_image)
+  def opengraph_image_properties(og_image, og_image_alt)
     begin
-      return Addressable::URI.join(root_url, og_image).normalize if og_image
+      if og_image
+        properties = {}
+        properties["og:image"] = Addressable::URI.join(root_url, og_image).normalize
+        properties["og:image:alt"] = og_image_alt if og_image_alt
+        return properties
+      end
     rescue Addressable::URI::InvalidURIError
       # return default image
     end
-    image_url("osm_logo_256.png")
+    {
+      "og:image" => image_url("osm_logo_256.png"),
+      "og:image:alt" => t("layouts.logo.alt_text")
+    }
   end
 end
index 5ff7e262044032609666cd2deeada933bb917fb6..286f50c357cd8e1af8678dd5a0544014cb1f0c50 100644 (file)
@@ -1,7 +1,4 @@
 xml.instruct! :xml, :version => "1.0"
-
 xml.osm(OSM::API.new.xml_root_attributes) do |osm|
-  @changesets.each do |changeset|
-    osm << render(changeset)
-  end
+  osm << (render(@changesets) || "")
 end
index 37afbb89498e5cc67a2e101a17c4e83d312bc62f..f09449761a4990c9226fb17c4b9cf64e4fc0d533 100644 (file)
@@ -21,7 +21,7 @@
 <% end -%>
 <%= tag.link :rel => "search", :type => "application/opensearchdescription+xml", :title => "OpenStreetMap Search", :href => asset_path("osm.xml") %>
 <%= tag.meta :name => "description", :content => "OpenStreetMap is the free wiki world map." %>
-<%= opengraph_tags(@title, @og_image) %>
+<%= opengraph_tags(@title, @og_image, @og_image_alt) %>
 <% if flash[:matomo_goal] -%>
 <%= tag.meta :name => "matomo-goal", :content => flash[:matomo_goal] %>
 <% end -%>
index 4784fcf801ccd8198d20880f8ba2735e5f7cd037..3fc7c8e6b54e011af11103825a24fdf3905ed48e 100644 (file)
@@ -44,6 +44,7 @@
 # Author: Zpizza
 # Author: أَحمد
 # Author: بدارين
+# Author: بهتين شوكت
 # Author: ترجمان05
 # Author: حبيشان
 # Author: ديفيد
@@ -1663,18 +1664,28 @@ ar:
       befriend_them: "\uFEFFيمكنك أيضًا إضافتهم كصديق على %{befriendurl}."
       befriend_them_html: يمكنك أيضًا إضافتهم كصديق على %{befriendurl}.
     gpx_description:
+      description_with_tags: 'ويبدو ذالك ملف GPX الخاص بك هو %{trace_name} مع الوصف
+        %{trace_description} والعلامات التالية: %{tags}'
       description_with_tags_html: 'يبدو أن ملف GPX الخاص بك %{trace_name} مع الوصف
         %{trace_description} والعلامات التالية: %{tags}'
+      description_with_no_tags: يبدو أن ملف GPX الخاص بك %{trace_name} ومع ذالك الوصف
+        %{trace_description} وبدون وسوم
       description_with_no_tags_html: يبدو أن ملف GPX الخاص بك %{trace_name} مع الوصف
         %{trace_description} وبدون وسوم
     gpx_failure:
       hi: مرحبًا %{to_user}،
       failed_to_import: 'فشل الاستيراد، الخطأ هو:'
+      more_info: أكثر معلومة عن جي بي اكس يستورد الفشل و كيف ل يتجنب هم يستطيع يكون
+        وجد في%{url}.
       more_info_html: يمكن العثور على مزيد من المعلومات حول إخفاقات استيراد GPX وكيفية
         تجنبها على %{url}.
       subject: '[خريطة الشارع المفتوحة] فشل استيراد جي بي إكس'
     gpx_success:
       hi: مرحبًا %{to_user}،
+      trace_location: لك يتعقب يكون ذالك متاح في %{trace_url}
+      all_your_traces: |-
+        ان الجميع لك بنجاح اترفع جي بي اكس آثار وهو موجود في
+        %{url}
       subject: '[خريطة الشارع المفتوحة] نجاح استيراد جي بي إكس'
     signup_confirm:
       subject: '[خريطة الشارع المفتوحة] مرحبا بك في خريطة الشارع المفتوحة'
@@ -2624,6 +2635,8 @@ ar:
       flash: أُنشىء عرقلة على المستخدم %{name}.
     update:
       only_creator_can_edit: فقط الوسيط الذي قام بإنشاء هذه العرقلة يمكنه تعديلها.
+      only_creator_or_revoker_can_edit: لاينفع تعديل هذا الحظر إلا من المشرفين الذين
+        العملوا هذا الحظر أو إلغائه.
       success: تم تحديث العرقلة.
     index:
       title: عرقلات المستخدم
index 3a837dfd911ecce47b23c6ad5252027559082741..8ed552833e24e7fe449543b6a8b7b17fc74f2407 100644 (file)
@@ -2093,6 +2093,15 @@ be:
       open_data_open_data: адкрытыя даныя
       open_data_copyright_license: Аўтарскія правы і ліцэнзія
       legal_title: Прававыя пытанні
+      legal_1_1_openstreetmap_foundation: Фонд OpenStreetMap
+      legal_1_1_terms_of_use: Умовы карыстання
+      legal_1_1_privacy_policy: Палітыка прыватнасці
+      legal_2_1_html: Калі ласка, %{contact_the_osmf_link}, калі ў вас ёсць пытанні
+        адносна ліцэнзавання, аўтарскіх правоў або іншых юрыдычных пытаннях.
+      legal_2_1_contact_the_osmf: звяжыцеся з Фондам OSM
+      legal_2_2_html: OpenStreetMap, лагатып у відзе павелічальнага шкла і State of
+        the Map з'яўляюцца %{registered_trademarks_link}.
+      legal_2_2_registered_trademarks: зарэгістраванымі таварнымі знакамі Фонду OSM
       partners_title: Партнёры
     copyright:
       title: Аўтарскія правы і ліцэнзія
@@ -2109,6 +2118,16 @@ be:
         native_link: беларуская версія
         mapping_link: пачаць маляваць карту
       legal_babble:
+        introduction_1_osm_foundation: Фонд OpenStreetMap
+        introduction_2_html: Вы можаце капіраваць, распаўсюджваць, перадаваць і змяняць
+          нашыя даныя да той пары пакуль вы спасылаецеся на OpenStreetMap і яе ўдзельнікаў.
+          Калі вы змяняеце ці выкарыстоўваеце нашыя даныя, то можаце распаўсюджваць
+          вынікі толькі на ўмовах такой жа ліцэнзіі. Поўны %{legal_code_link} растлумачыць
+          вашыя правы і абавязкі.
+        introduction_2_legal_code: тэкст ліцэнзіі
+        introduction_3_html: Наша дакументацыя прадастаўляецца на ўмовах ліцэнзіі
+          %{creative_commons_link} (CC BY-SA 2.0).
+        introduction_3_creative_commons: Creative Commons Attribution-ShareAlike 2.0
         credit_title_html: Як спасылацца на OpenStreetMap
         credit_1_html: 'Там, дзе вы выкарыстоўваеце даныя OpenStreetMap, вы павінны
           выканаць наступныя дзве рэчы:'
@@ -2581,6 +2600,12 @@ be:
         welcome: Вітаем у OpenStreetMap
       display name description: Ваша імя, якое будзе бачнае ўсім. Вы можаце змяніць
         яго потым ў вашых параметрах.
+      by_signing_up:
+        html: Рэгіструючыся, вы пагаджаецеся з нашымі %{tou_link}, %{privacy_policy_link}
+          і %{contributor_terms_link}.
+        privacy_policy: палітыкай прыватнасці
+        contributor_terms: умовамі ўдзелу
+      tou: умовамі карыстання
       external auth: 'Аўтэнтыфікацыя праз:'
       continue: Зарэгістравацца
       terms accepted: Дзякуй за прыняцце новых умоў ўдзелу!
@@ -2643,6 +2668,9 @@ be:
       remove as friend: Выдаліць з сяброў
       add as friend: Пасябраваць
       mapper since: 'Малюе карту з:'
+      last map edit: 'Апошняе рэдагаванне карты:'
+      no activity yet: Актыўнасці пакуль няма
+      uid: 'ID карыстальніка:'
       ct status: 'Умовы ўдзелу:'
       ct undecided: Нявырашана
       ct declined: Адхіленыя
@@ -2653,18 +2681,24 @@ be:
       role:
         administrator: Гэты карыстальнік з’яўляецца адміністратарам
         moderator: Гэты карыстальнік з’яўляецца мадэратарам
+        importer: Гэты карыстальнік займаецца імпартам даных
         grant:
           administrator: Надаць правы адміністратара
           moderator: Надаць правы мадэратара
+          importer: Дазволіць карыстальніку імпарт даных
         revoke:
           administrator: Адклікаць доступ з правамі адміністратара
           moderator: Скасаваць доступ мадэратара
+          importer: Забараніць карыстальніку імпарт даных
       block_history: Дзейныя блакіроўкі
       moderator_history: Створаныя блакіроўкі
+      revoke_all_blocks: Скасаваць усе блакіроўкі
       comments: Каментары
       create_block: Заблакаваць гэтага карыстальніка
       activate_user: Актываваць гэтага карыстальніка
       confirm_user: Пацвердзіць гэтага карыстальніка
+      unconfirm_user: Адмяніць пацвярджэнне гэтага карыстальніка
+      unsuspend_user: Адмяніць прыпыненне ўліковага запісу гэтага карыстальніка
       hide_user: Схаваць гэтага карыстальніка
       unhide_user: Паказаць гэтага карыстальніка
       delete_user: Выдаліць гэтага карыстальніка
@@ -2675,6 +2709,8 @@ be:
     index:
       title: Удзельнікі
       heading: Удзельнікі
+      older: Даўнейшыя карыстальнікі
+      newer: Навейшыя карыстальнікі
       summary_html: '%{name} створана з %{ip_address} %{date}'
       summary_no_ip_html: '%{name} створаны %{date}'
       confirm: Пацвердзіць выбраных карыстальнікаў
@@ -2683,6 +2719,11 @@ be:
     suspended:
       title: Уліковы запіс прыпынены
       heading: Уліковы запіс прыпынены
+      support: службы падтрымкі
+      automatically_suspended: На жаль, ваш уліковы запіс быў прыпынены з-за падазронай
+        актыўнасці.
+      contact_support_html: Гэтае рашэнне будзе разгледжана адміністратарам у хуткім
+        часе або вы можаце напісаць да %{support_link}, калі вы жадаеце яго абмеркаваць.
     auth_failure:
       connection_failed: Злучэнне з крыніцай аўтэнтыфікацыі не атрымалася
       invalid_credentials: Памылковыя ўліковыя даныя для праверкі сапраўднасці
@@ -2794,7 +2835,8 @@ be:
     show:
       title: '%{block_on} заблакіраваны %{block_by}'
       heading_html: '%{block_on} заблакіраваны %{block_by}'
-      created: Створаны
+      created: 'Створана:'
+      duration: 'Працягласць:'
       status: 'Статус:'
       show: Паказаць
       edit: Рэдагаваць
@@ -2815,11 +2857,17 @@ be:
       reason: Прычына блакіроўкі
       status: Статус
       revoker_name: Адкліканы
+  user_mutes:
+    index:
+      table:
+        tbody:
+          send_message: Даслаць паведамленне
   notes:
     index:
       title: Заўвагі, створаныя ці пракаментаваныя %{user}
       heading: Заўвагі %{user}'а
       subheading_html: Заўвагі, створаныя ці пракаментаваныя %{user}
+      no_notes: Няма запісаў
       id: Id
       creator: Стваральнік
       description: Апісанне
@@ -2831,6 +2879,10 @@ be:
       open_title: 'Нявырашаная заўвага #%{note_name}'
       closed_title: 'Вырашаная заўвага #%{note_name}'
       hidden_title: 'Схаваная заўвага #%{note_name}'
+      event_opened_by_html: Створана карыстальнікам %{user} %{time_ago}
+      event_opened_by_anonymous_html: Створана ананімным карыстальнікам %{time_ago}
+      event_commented_by_html: Пракаментавана карыстальнікам %{user} %{time_ago} таму
+      event_commented_by_anonymous_html: Пракаментавана ананімным карыстальнікам %{time_ago}
       report: паскардзіцца на гэтую заўвагу
       anonymous_warning: Гэтая нататка змяшчае каментары ад ананімных карыстальнікаў,
         што павінны быць незалежна правераны.
@@ -2905,6 +2957,9 @@ be:
         gps: Агульныя GPS-сляды
         overlays: Уключыць накладкі для ліквідацыі памылак карты
         title: Слаі
+      make_a_donation: Зрабіць ахвяраванне
+      website_and_api_terms: Умовы вэб-сайта і API
+      osm_france: OpenStreetMap Францыя
     site:
       edit_tooltip: Рэдагаваць карту
       edit_disabled_tooltip: Наблізце, каб рэдагаваць карту
@@ -2928,6 +2983,8 @@ be:
       descend: Уніз
       directions: Маршрут
       distance: Адлегласць
+      distance_m: '%{distance}м'
+      distance_km: '%{distance}км'
       errors:
         no_route: Не атрымалася знайсці маршрут паміж двума гэтымі месцамі.
         no_place: 'Прабачце - не магу знайсці гэта месца: %{place}.'
index 6150a6c4fc766427252c4b1918732780c33d177c..67ecb6745853489fcb1aeaee9e5c3e0dacf10ebd 100644 (file)
@@ -1495,7 +1495,9 @@ bg:
   shared:
     markdown_help:
       headings: Заглавия
+      heading: Заглавие
       subheading: Подзаглавие
+      unordered: Неподреден списък
       ordered: Подреден списък
       first: Първи елемент
       second: Втори елемент
index aa84d23a985b2dbf59d608cc4e6843d227743f25..1fcecbf077223f603807ca16089b0a1284943f1e 100644 (file)
@@ -1618,6 +1618,7 @@ ce:
       коьрта белхаш дӀахьош долу дера.
     osm_read_only: OpenStreetMap база карарчу хенахь ешаран режимехь йу,база Ӏалашъяран
       белхаш дӀахьош долу дер.
+    nothing_to_preview: Хьалххе хьажа хӀумма а дац.
     donate: Дехар ду, гӀо де OpenStreetMap %{link} аппаратан фонда карлайоккхуш.
     help: ГӀо
     about: Проектах лаьцна
@@ -1663,13 +1664,19 @@ ce:
       befriend_them: Иштта %{befriendurl} чохь доттагӀ санна тӀетоха йиш йу хьан.
       befriend_them_html: Иштта %{befriendurl} чохь доттагӀ санна тӀетоха йиш йу хьан.
     gpx_description:
+      description_with_tags: 'Иза хьан GPX файлах тера йу %{trace_name} %{trace_description}
+        описаниеца а, хӀара тегашца а: %{tags}'
       description_with_tags_html: 'Иза хьан GPX файлах тера йу %{trace_name} %{trace_description}
         описаниеца а, хӀара тегашца а: %{tags}'
+      description_with_no_tags: Иза хьан GPX файлах тера йу %{trace_name} %%{trace_description}
+        дицарца, цхьа а тег йоцуш
       description_with_no_tags_html: Иза хьан GPX файлах тера йу %{trace_name} %%{trace_description}
         дицарца, цхьа а тег йоцуш
     gpx_failure:
       hi: Маршалла ду %{to_user},
       failed_to_import: 'импорт ян аьтто ца баьлла. Кхузахь гӀалат ду:'
+      more_info: GPX импортан кхачамбацарех лаьцна кхин а хаамаш каро йиш йу %{url}
+        тӀехь.
       more_info_html: GPX импортан кхачамбацарех лаьцна кхин а хаамаш каро йиш йу
         %{url} тӀехь.
       subject: '[OpenStreetMap] GPX Импорт ца хилира'
@@ -1679,6 +1686,8 @@ ce:
         one: кхиамца дӀатоьхна %{trace_points}хила тарлучу %{count} point. точках.
         other: loaded successfully with %{trace_points}хила тарлучу %{count} points.
           точках.
+      trace_location: Хьан лар лело йиш йу %{trace_url}
+      all_your_traces: Хьан йерриге а кхиамца чуйиллина GPX лараш каро йиш йу %{url}
       all_your_traces_html: Хьан ерриге а кхиамца чуйиллина GPX лараш каро йиш йу
         %{url} тӀехь.
       subject: '[OpenStreetMap] GPX  Импортан дика хилира'
@@ -1979,7 +1988,7 @@ ce:
       url: URL
       codeblock: Кодан блок
     richtext_field:
-      edit: Ð\9dиÑ\81йе
+      edit: Ð\9dиÑ\81йан
       preview: Хьажа
   site:
     about:
@@ -2266,8 +2275,8 @@ ce:
         description: OpenStreetMap-ах лаьцна гӀо лаха а, къамелаш дан а йукъара меттиг.
       mailing_lists:
         title: Почтан тептарш
-        description: Хаттар ло йа дийцаре де оьшуш долу хаттарш,  шуьйрачу актуальни
-          йа регионан рассылкашкахь.
+        description: Хаттар ло йа дийцаре де оьшуш долу хаттарш, шуьйрачу актуалан
+          йа регионан дIасатасаршкахь.
       irc:
         title: IRC
         description: Интерактивни чат тайп-тайпанчу меттанашкахь а, дуккха а теманашца
@@ -2517,7 +2526,7 @@ ce:
       start_coordinates: 'Координатийн йуьхь:'
       coordinates_html: '%{latitude}; %{longitude}'
       map: карта
-      edit: Ð½Ð¸Ñ\81йе
+      edit: Ð½Ð¸Ñ\81йан
       owner: 'Йерг:'
       description: 'Цуьнах лаьцна:'
       tags: 'Тегаш:'
@@ -2659,6 +2668,8 @@ ce:
       write_notes: заметкаш хийца
       write_redactions: Картан хаамаш хийца
       read_email: Декъашхочун электронан почтан адрес деша
+      consume_messages: Деша, статус карлайаккха, лелончан хаамаш дӀабаха
+      send_messages: Кхечу лелочаьрга леррина хаамаш дӀакхачо
       skip_authorization: Автоматически дӀахьедар тӀечӀагӀдар
     for_roles:
       moderator: ХӀара бакъо лерина йу модераторшна бен лело йиш йоцучу гӀуллакхашна
@@ -2714,15 +2725,15 @@ ce:
       name: ЦӀе
       permissions: Магор
     application:
-      edit: Ð\9dиÑ\81йе
+      edit: Ð\9dиÑ\81йан
       delete: ДӀайаккха
       confirm_delete: ХIар приложени дӀайаккха?
     new:
       title: Регистаци е керла приложенина
     edit:
-      title: Ð\9dиÑ\81йе Ñ\85Ñ\8cан Ð¿Ñ\80иложени
+      title: Ð¥Ñ\8cан Ð¿Ñ\80иложени Ð½Ð¸Ñ\81йан
     show:
-      edit: Ð\9dиÑ\81йе
+      edit: Ð\9dиÑ\81йан
       delete: ДӀайаккха
       confirm_delete: ХIар приложени дӀайаккха?
       client_id: Клиентан ID
@@ -3341,7 +3352,7 @@ ce:
   redactions:
     edit:
       heading: Нисйе редакци
-      title: Ð\9dиÑ\81йе Ñ\80едакÑ\86и
+      title: Ð ÐµÐ´Ð°ÐºÑ\86и Ð½Ð¸Ñ\81йан
     index:
       empty: Гайта цхьа а редакци яц.
       heading: Редакцин тептар
index 08de0e7671f20b285b2f2fa6006e178b30f06eb1..4f1cd9229fee01c061f55b18a0d194e6709788ee 100644 (file)
@@ -438,8 +438,8 @@ cy:
         way: llwybr
         relation: perthynas
     start_rjs:
-      feature_warning: Wrthi'n llwytho %{num_features} nodwedd, a all arafu eich porwr.
-        Ydych chi wir eisiau gweld y data?
+      feature_warning: Wrthi'n llwytho %{num_features} nodwedd, a all arafu neu chwalu
+        eich porwr. Ydych chi wir eisiau gweld y data?
       load_data: Llwytho data
       loading: Wrthi'n llwytho...
     tag_details:
@@ -458,9 +458,15 @@ cy:
       introduction: Cliciwch ar y map i ddarganfod nodweddion gerllaw.
       nearby: Nodweddion gerllaw
       enclosing: Nodweddion amgáu
+  old_nodes:
+    not_found:
+      sorry: 'Sori, ni ellir canfod fersiwn %{version} o''r nod #%{id}.'
   old_ways:
     not_found:
       sorry: 'Sori, ni ellir canfod fersiwn %{version} o lwybr #%{id}.'
+  old_relations:
+    not_found:
+      sorry: 'Sori, ni ellir canfod fersiwn %{version} o''r perthynas #%{id}.'
   changesets:
     changeset_paging_nav:
       showing_page: Tudalen %{page}
index bfb1255a39569d937de65cde4e74eddd82af3671..fe20af61a8364f765b36a3286b0e9e518e1310a9 100644 (file)
@@ -1646,6 +1646,7 @@ da:
       databasevedligeholdelse.
     osm_read_only: OpenStreetMap databasen er for øjeblikket ikke redigerbar på grund
       af database vedligeholdelse.
+    nothing_to_preview: Intet at forhåndsvise
     donate: Støt OpenStreetMap med en %{link} til Hardware-upgradefonden.
     help: Hjælp
     about: Om
index 4646cab83a6db4434c5300a8bee3c659d3fda9d4..171efd3f8d1d474d44f71d1710b1a965523d0412 100644 (file)
@@ -1737,6 +1737,7 @@ de:
       nicht verfügbar.
     osm_read_only: Die OpenStreetMap-Datenbank ist im Moment wegen wichtiger Wartungsarbeiten
       im „Nur-Lesen-Modus“.
+    nothing_to_preview: Es gibt keine Vorschau.
     donate: Unterstütze die OpenStreetMap-Hardwarespendenaktion durch eine eigene
       %{link}.
     help: Hilfe
@@ -1788,13 +1789,19 @@ de:
       befriend_them: Du kannst sie/ihn unter %{befriendurl} ebenfalls als Freund hinzufügen.
       befriend_them_html: Du kannst sie/ihn unter %{befriendurl} auch als Freund hinzufügen.
     gpx_description:
+      description_with_tags: 'Es sieht so aus, als ob deine GPX-Datei %{trace_name}
+        mit der Beschreibung %{trace_description} und den folgenden Tags: %{tags}'
       description_with_tags_html: 'Es scheint, dass deine GPX-Datei %{trace_name}
         mit der Beschreibung %{trace_description} und den folgenden Tags: %{tags}'
+      description_with_no_tags: Es sieht so aus, als ob deine GPX-Datei %{trace_name}
+        mit der Beschreibung %{trace_description} und ohne Tags
       description_with_no_tags_html: Es scheint, dass deine GPX-Datei %{trace_name}
         mit der Beschreibung %{trace_description} und ohne Tags
     gpx_failure:
       hi: Hallo %{to_user},
       failed_to_import: 'konnte nicht importiert werden, die Fehlermeldung:'
+      more_info: Weitere Informationen über Fehler bei GPX-Importen und wie sie vermieden
+        werden können finden sich in %{url}
       more_info_html: Weitere Informationen über Fehler bei GPX-Importen und wie sie
         vermieden werden können finden sich in %{url}
       import_failures_url: https://wiki.openstreetmap.org/wiki/DE:GPX#Warum_wurde_meine_GPX-Datei_nicht_richtig_hochgeladen.3F
@@ -1804,6 +1811,9 @@ de:
       loaded:
         one: mit %{trace_points} von einem möglichen Punkt erfolgreich geladen.
         other: mit %{trace_points} von %{count} möglichen Punkten erfolgreich geladen.
+      trace_location: Dein Track ist verfügbar unter %{trace_url}
+      all_your_traces: Alle deine erfolgreich hochgeladenen GPX-Tracks findest du
+        unter %{url}.
       all_your_traces_html: Alle deine erfolgreich hochgeladenen GPX-Traces findest
         du unter %{url}.
       subject: '[OpenStreetMap] GPX-Import erfolgreich'
index 5814d2c2b1b55e4daf607b62540242fbfd17dab2..38d191b11c48b4ffe0726734af0027b30cbcf9f7 100644 (file)
@@ -677,6 +677,9 @@ el:
       comment: Σχόλιο
       newer_comments: Νεότερα σχόλια
       older_comments: Παλαιότερα σχόλια
+    new:
+      heading: Να προσθέσετε ένα σχόλιο στην ακόλοουθη συζήτηση για την καταχώριση
+        ημερολογίου;
   doorkeeper:
     errors:
       messages:
@@ -922,6 +925,7 @@ el:
           college: Πανεπιστημιακό κτήριο
           commercial: Εμπορικό κτήριο
           construction: Κτήριο υπό κατασκευή
+          cowshed: Αγελαδοστάσιο
           detached: Μεζονέτα
           dormitory: Κοιτώνας
           duplex: Μεζονέτα
@@ -951,6 +955,7 @@ el:
           shed: Υπόστεγο
           stable: Στάβλος
           static_caravan: Τροχόσπιτο
+          sty: Χοιροστάσιο
           temple: Κτήριο ναού
           terrace: Σειρά όμοιων σπιτιών
           train_station: Κτήριο Σιδηροδρομικού Σταθμού
@@ -1670,6 +1675,7 @@ el:
       λόγω εργασιών συντήρησης.
     osm_read_only: Η βάση δεδομένων του OpenStreetMap έχει τεθεί προσωρινά σε λειτουργία
       «μόνο για ανάγνωση» λόγω εργασιών συντήρησης.
+    nothing_to_preview: Τίποτα για προεπισκόπηση.
     donate: Υποστηρίξτε το OpenStreetMap %{link} στον έρανο αναβάθμισης υλικού.
     help: Βοήθεια
     about: Σχετικά
@@ -1718,13 +1724,19 @@ el:
       befriend_them: Μπορείτε επίσης να τους προσθέσετε ως φίλους στο %{befriendurl}.
       befriend_them_html: Μπορείτε επίσης να τους προσθέσετε ως φίλους στο %{befriendurl}.
     gpx_description:
+      description_with_tags: 'Φαίνεται πως το αρχείο σας GPX %{trace_name} με την
+        περιγραφή %{trace_description} και με τις παρακάτω ετικέτες: %{tags}'
       description_with_tags_html: 'Φαίνεται πως το αρχείο σου GPX %{trace_name} με
         την περιγραφή %{trace_description} και με τις παρακάτω ετικέτες: %{tags}'
+      description_with_no_tags: Φαίνεται πως το αρχείο σας GPX %{trace_name} με την
+        περιγραφή %{trace_description} και χωρίς ετικέτες
       description_with_no_tags_html: Φαίνεται πως το αρχείο σου GPX %{trace_name}
         με την περιγραφή %{trace_description} και χωρίς ετικέτες
     gpx_failure:
       hi: Γεια σας %{to_user},
       failed_to_import: 'Απέτυχε η εισαγωγή. Το σφάλμα είναι:'
+      more_info: Περισσότερες πληροφορίες σχετικά με τα σφάλματα εισαγωγής GPX και
+        πως να τα αποφύγετε, μπορείτε να βρείτε στο %{url}.
       more_info_html: Περισσότερες πληροφορίες σχετικά με τις αποτυχίες εισαγωγής
         GPX και τον τρόπο αποφυγής τους μπορείτε να βρείτε στη διεύθυνση %{url}.
       subject: '[OpenStreetMap] Η εισαγωγή GPX απέτυχε'
@@ -1733,6 +1745,9 @@ el:
       loaded:
         one: φορτώθηκε επιτυχώς με %{trace_points} από πιθανό %{count} σημείο.
         other: φορτώθηκε επιτυχώς με %{trace_points} από πιθανά %{count} σημεία.
+      trace_location: Το ίχνος σας είναι διαθέσιμο στο %{trace_url}
+      all_your_traces: Όλα τα επιτυχώς ανεβασμένα ίχνη GPX σας μπορούν να βρεθούν
+        στο %{url}
       all_your_traces_html: Όλα τα ίχνη GPX που ανεβάσατε με επιτυχία μπορούν να βρεθούν
         στη διεύθυνση %{url}.
       subject: '[OpenStreetMap] Η εισαγωγή GPX πέτυχε'
@@ -2654,25 +2669,26 @@ el:
       oauth2_authorizations: Εξουσιοδοτήσεις OAuth 2
       muted_users: Χρήστες σε Σίγαση
     auth_providers:
+      openid_url: OpenID URL
       openid_login_button: Συνέχεια
       openid:
         title: Σύνδεση με OpenID
-        alt: Î£Ï\8dνδεÏ\83η Î¼Îµ Î­Î½Î± OpenID URL
+        alt: Î\9bογÏ\8cÏ\84Ï\85Ï\80ο OpenID
       google:
         title: Σύνδεση με Google
-        alt: Î£Ï\8dνδεÏ\83η Î¼Îµ Î­Î½Î± Google OpenID
+        alt: Î\9bογÏ\8cÏ\84Ï\85Ï\80ο Google
       facebook:
         title: Σύνδεση με Facebook
-        alt: Î£Ï\8dνδεÏ\83η Î¼Îµ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8c Facebook
+        alt: Î\9bογÏ\8cÏ\84Ï\85Ï\80ο Facebook
       microsoft:
         title: Σύνδεση με Microsoft
-        alt: Î£Ï\8dνδεÏ\83η Î¼Îµ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8c Microsoft
+        alt: Î\9bογÏ\8cÏ\84Ï\85Ï\80ο Microsoft
       github:
         title: Σύνδεση με GitHub
-        alt: Î£Ï\8dνδεÏ\83η Î¼Îµ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8c GitHub
+        alt: Î\9bογÏ\8cÏ\84Ï\85Ï\80ο GitHub
       wikipedia:
         title: Σύνδεση με Wikipedia
-        alt: Î£Ï\85νδεθείÏ\84ε Î¼Îµ Î»Î¿Î³Î±Ï\81ιαÏ\83μÏ\8c Wikipedia
+        alt: Î\9bογÏ\8cÏ\84Ï\85Ï\80ο Wikipedia
   oauth:
     authorize:
       title: Επιτρέψτε την πρόσβαση στο λογαριασμό σας
@@ -2714,7 +2730,12 @@ el:
       write_notes: Τροποποίηση σημειώσεων
       write_redactions: Αφαίρεση και απόκρυψη δεδομένων χάρτη
       read_email: Διαβάζει τη διεύθυνση email χρήστη
+      consume_messages: Ανάγνωση, ενημέρωση της κατάστασης και διαγραφή των μηνυμάτων
+        χρήστη
+      send_messages: Αποστολή προσωπικών μηνυμάτων σε άλλους χρήστες.
       skip_authorization: Αυτόματη έγκριση εφαρμογής
+    for_roles:
+      moderator: Αυτή η άδεια είναι για ενέργειες διαθέσιμες μόνο στους διαχειριστές
   oauth_clients:
     new:
       title: Καταχώρηση νέας εφαρμογής
@@ -2825,18 +2846,27 @@ el:
           το διορθώσει, να ενημερώσει, να το κατεβάσει και να το χρησιμοποιήσει.
         paragraph_2: Εγγραφείτε για να ξεκινήσετε να συνεισφέρετε.
         welcome: Καλώς ήλθατε στο OpenStreetMap
+      duplicate_social_email: Εάν έχετε ήδη λογαριασμό OpenStreetMap και επιθυμείτε
+        να χρησιμοποιείτε έναν πάροχο ταυτότητας τρίτου μέρους, παρακαλούμε να συνδεθείτε
+        χρησιμοποιώντας τον κωδικό πρόσβασής σας και να τροποποιήσετε τις ρυθμίσεις
+        του λογαριασμού σας.
       display name description: Το δημόσια εμφανιζόμενο όνομα χρήστη. Μπορείτε να
         το αλλάξετε αργότερα από τις προτιμήσεις.
       by_signing_up:
+        html: Με την εγγραφή σας, συμφωνείτε στους %{tou_link}, στην %{privacy_policy_link}
+          και στους %{contributor_terms_link}.
         privacy_policy: πολιτική απορρήτου
         privacy_policy_title: Πολιτική απορρήτου OSMF, συμπεριλαμβανομένης της ενότητας
           για τις διευθύνσεις ηλεκτρονικού ταχυδρομείου
         contributor_terms: όρους συνεισφοράς
-      tou: όροι χρήσης
+      tou: όρους χρήσης
       external auth: 'Έλεγχος ταυτότητας από τρίτο μέρος:'
       continue: Εγγραφή
       terms accepted: Ευχαριστούμε για την αποδοχή των νέων όρων συνεισφοράς!
       email_help:
+        privacy_policy: πολιτική απορρήτου
+        privacy_policy_title: Πολιτική απορρήτου OSMF, συμπεριλαμβανομένης της ενότητας
+          για τις διευθύνσεις ηλεκτρονικού ταχυδρομείου
         html: Η διεύθυνσή σας δεν εμφανίζεται δημόσια, ανατρέξτε στην %{privacy_policy_link}
           για περισσότερες πληροφορίες.
       consider_pd_html: Θεωρώ τις συνεισφορές μου να είναι στο %{consider_pd_link}.
@@ -3034,6 +3064,8 @@ el:
     update:
       only_creator_can_edit: Μόνο ο συντονιστής που δημιούργησε αυτήν τη φραγή μπορεί
         να την επεξεργαστεί.
+      only_creator_or_revoker_can_edit: Μόνο οι διαχειριστές που δημιούργησαν ή ανακαλέσαν
+        αυτή τη φραγή μπορούν να την επεξεργαστούν.
       success: Η φραγή ενημερώθηκε.
     index:
       title: Φραγές χρήστη
@@ -3216,7 +3248,7 @@ el:
       custom_dimensions: Ορισμός προσαρμοσμένων διαστάσεων
       format: 'Μορφή:'
       scale: 'Κλίμακα:'
-      image_dimensions: Η εικόνα θα εμφανίζει το τυπικό στρώμα στο %{width} x %{height}
+      image_dimensions: Η εικόνα θα εμφανίζει το %{layer} στο %{width} x %{height}
       download: Λήψη
       short_url: Σύντομος Σύνδεμος
       include_marker: Συμπερίληψη δείκτη
index 5e7bf550efddb59eb75e4c48e6623dbcba3289fe..66296e847f9c4e00476bc12786c9ce78b5e951db 100644 (file)
@@ -1631,6 +1631,7 @@ eo:
       laboroj de prizorgado.
     osm_read_only: La OpenStreetMap-datumbazo estas nuntempe nurlega pro necesaj laboroj
       de prizorgado.
+    nothing_to_preview: Nenio por antaŭvidi.
     donate: Subteni OpenStreetMap %{link} al fonduso por modernigi aparataron.
     help: Helpo
     about: Pri
@@ -1678,13 +1679,18 @@ eo:
       befriend_them: Vi ankaŭ povas aldoni vin kiel amikon ĉe %{befriendurl}.
       befriend_them_html: Vi ankaŭ povas aldoni ilin kiel amiko ĉe %{befriendurl}
     gpx_description:
+      description_with_tags: 'Ŝajnas, ke tio ĉi estas via GPX‑dosiero %{trace_name}
+        kun la priskribo %{trace_description} kaj kun la jenaj etikedoj: %{tags}'
       description_with_tags_html: 'Ŝajnas, ke tio ĉi estas via GPX‑dosiero %{trace_name}
         kun la priskribo %{trace_description} kaj kun la jenaj etikedoj: %{tags}'
+      description_with_no_tags: Ŝajnas, ke tio ĉi estas via GPX‑dosiero %{trace_name}
+        kun la priskribo %{trace_description} kaj sen etikedoj
       description_with_no_tags_html: Ŝajnas, ke tio ĉi estas via GPX‑dosiero %{trace_name}
         kun la priskribo %{trace_description} kaj sen etikedoj
     gpx_failure:
       hi: Saluton %{to_user},
       failed_to_import: 'ne estas enportita sukcese. Eraro:'
+      more_info: Pliaj informoj pri eraroj dum enporti GPX‑dosierojn troviĝas ĉe %{url}.
       more_info_html: Pliaj informoj pri eraroj dum enporti GPX‑dosierojn troviĝas
         ĉe %{url}.
       subject: '[OpenStreetMap] Eraro dum enportado de GPX-dosiero'
@@ -1693,6 +1699,8 @@ eo:
       loaded:
         one: estas sukcese enlegita kun %{trace_points} el ebla %{count} punkto.
         other: estas sukcese enlegita kun %{trace_points} el eblaj %{count} punktoj.
+      trace_location: Via spuro estas disponebla ĉe %{trace_url}
+      all_your_traces: Ĉiuj viaj sukcese alŝutitaj GPX-spuroj troveblas ĉe %{url}
       all_your_traces_html: Ĉiuj viaj sukcese alŝutitaj GPX-spuroj troveblas ĉe %{url}.
       subject: '[OpenStreetMap] GPX-dosiero enportita sukcese'
     signup_confirm:
index 420e74cca7c2f4ceda3a9426cc0750b71b5397fc..ab1c14f2bda47e2ca46c4ed56a01ed15d5ea3c31 100644 (file)
@@ -69,6 +69,7 @@
 # Author: Metroitendo
 # Author: Momo50WM
 # Author: Mulcyber
+# Author: Méthodes Bulebe Hangi
 # Author: Nemo bis
 # Author: Nicolapps
 # Author: Niridya
@@ -1756,6 +1757,7 @@ fr:
       maintenance essentielle à son bon fonctionnement est en cours.
     osm_read_only: La base de données OpenStreetMap est actuellement en mode lecture
       seule ; une maintenance essentielle à son bon fonctionnement est en cours.
+    nothing_to_preview: Rien à voir en avant.
     donate: Soutenez OpenStreetMap, %{link} au fonds de mise à niveau du matériel.
     help: Aide
     about: À propos
@@ -1806,13 +1808,19 @@ fr:
       befriend_them: 'Vous pouvez également l’ajouter comme ami(e) ici : %{befriendurl}.'
       befriend_them_html: Vous pouvez aussi l’ajouter comme ami à l’adresse %{befriendurl}.
     gpx_description:
+      description_with_tags: Il semble que votre fichier GPX « %{trace_name} » avec
+        la description « %{trace_description} » et les balises « %{tags} »
       description_with_tags_html: Il semble que votre fichier GPX « %{trace_name} »
         avec la description « %{trace_description} » et les balises « %{tags} »
+      description_with_no_tags: Il semble que votre fichier GPX « %{trace_name} »
+        avec la description « %{trace_description} » et sans balise
       description_with_no_tags_html: Il semble que votre fichier GPX « %{trace_name} »
         avec la description « %{trace_description} » et sans balise
     gpx_failure:
       hi: Bonjour %{to_user},
       failed_to_import: 'n’a pas pu être importé. Voici l’erreur :'
+      more_info: Vous trouverez plus d’informations sur les échecs d’import GPX et
+        comment les éviter à l’adresse %{url}.
       more_info_html: Vous trouverez plus d’informations sur les échecs d’import GPX
         et comment les éviter à l’adresse %{url}.
       import_failures_url: https://wiki.openstreetmap.org/wiki/GPX#Troubleshooting
@@ -1823,6 +1831,8 @@ fr:
         one: s’est chargé correctement avec %{trace_points} dd %{count} point possible.
         other: s’est chargé correctement avec %{trace_points} des %{count} points
           possibles.
+      all_your_traces: Toutes vos traces de GPX téléversées avec succès peuvent être
+        trouvées à %{url}.
       all_your_traces_html: Toutes vos traces de GPX téléversées avec succès peuvent
         être trouvées à %{url}.
       subject: '[OpenStreetMap] Import GPX réussi'
index d692068664b3c56e44fe2d6ded0edc9e53295f56..49a80694e59c83d2c6637eef73cf1225948da11e 100644 (file)
@@ -1644,6 +1644,7 @@ gl:
       traballos de mantemento nela.
     osm_read_only: A base de datos do OpenStreetMap atópase en modo de só lectura
       mentres realizamos traballos de mantemento nela.
+    nothing_to_preview: Non hai nada que previsualizar.
     donate: Apoie o OpenStreetMap %{link} ao fondo de actualización de hardware.
     help: Axuda
     about: Acerca de
@@ -1692,13 +1693,19 @@ gl:
       befriend_them: Tamén pode engadilo coma amizade no %{befriendurl}.
       befriend_them_html: Tamén podes engadilo como amizade no %{befriendurl}.
     gpx_description:
+      description_with_tags: 'Parece o teu ficheiro GPX %{trace_name} coa descrición
+        %{trace_description} e as seguintes etiquetas: %{tags}'
       description_with_tags_html: 'Parece o teu ficheiro GPX %{trace_name} coa descrición
         %{trace_description} e as seguintes etiquetas: %{tags}'
+      description_with_no_tags: Parece o teu ficheiro GPX %{trace_name} coa descrición
+        %{trace_description} e sen etiquetas
       description_with_no_tags_html: Parece o teu ficheiro GPX %{trace_name} coa descrición
         %{trace_description} e sen etiquetas
     gpx_failure:
       hi: 'Ola %{to_user}:'
       failed_to_import: 'erro ao importar. Velaquí atópase o erro:'
+      more_info: Máis información sobre os erros de importación de GPX e como evitalos
+        en %{url}.
       more_info_html: Máis información sobre os erros de importación de GPX e como
         evitalos en %{url}.
       subject: '[OpenStreetMap] Importación GPX errónea'
@@ -1709,6 +1716,8 @@ gl:
           posible.
         other: cargouse correctamente con %{trace_points} de entre %{count} puntos
           posibles.
+      trace_location: A túa pista está dispoñible en %{trace_url}
+      all_your_traces: Podes atopar todas as pistas GPX que subiches en %{url}
       all_your_traces_html: Podes atopar todas as pistas GPX que subiches en %{url}.
       subject: '[OpenStreetMap] Importación GPX correcta'
     signup_confirm:
index 3defbfbda37029b12f5b13f8d231f240b320952c..aeff2510981f18a903bacf061ddbdf3d5ca5b8e6 100644 (file)
@@ -1671,6 +1671,7 @@ he:
       המבוצעות בו.
     osm_read_only: מסד הנתונים של אתר OpenStreetMap נתון כעת במצב קריאה בלבד בשל עבודות
       תחזוקה המבוצעות בו.
+    nothing_to_preview: אין מה להראות בתצוגה מקדימה.
     donate: תִמכו ב־OpenStreetMap על־ידי %{link} לקרן לשדרוג החומרה.
     help: עזרה
     about: אודות
@@ -1714,14 +1715,20 @@ he:
       befriend_them: באפשרותך לסמנו כחבר בכתובת %{befriendurl}.
       befriend_them_html: באפשרותך לסמנו כחבר בכתובת %{befriendurl}.
     gpx_description:
-      description_with_tags_html: 'נראה כי קובץ ה־GPX שלך %{trace_name} העונה לתיאור
-        %{trace_description} והתגיות הבאות: %{tags}'
-      description_with_no_tags_html: נראה כי קובץ ה־GPX שלך %{trace_name} העונה לתיאור
-        %{trace_description} וללא תגיות
+      description_with_tags: 'זה נראה כמו קובץ ה־GPX שלך %{trace_name} עם התיאור %{trace_description}
+        ועם התגים הבאים: %{tags}'
+      description_with_tags_html: 'זה נראה כמו קובץ ה־GPX שלך %{trace_name} עם התיאור
+        %{trace_description} ועם התגים הבאים: %{tags}'
+      description_with_no_tags: זה נראה כמו קובץ ה־GPX שלך %{trace_name} עם התיאור
+        %{trace_description} וללא תגים
+      description_with_no_tags_html: זה נראה כמו קובץ ה־GPX שלך %{trace_name} עם התיאור
+        %{trace_description} וללא תגים
     gpx_failure:
       hi: שלום %{to_user},
       failed_to_import: 'לא יובא כראוי. הינה השגיאה:'
-      more_info_html: מידע על תקלות בייבוא GPX וכיצד להימנע מהן נמצא תחת %{url}.
+      more_info: מידע נוסף על תקלות ביבוא GPX ועל איך להימנע מהן נמצא בכתובת %{url}.
+      more_info_html: מידע נוסף על תקלות ביבוא GPX ועל איך להימנע מהן נמצא בכתובת
+        %{url}.
       subject: '[אופן סטריט מאפ OpenStreetMap] שגיאה בייבוא GPX'
     gpx_success:
       hi: שלום %{to_user},
@@ -1730,6 +1737,8 @@ he:
         two: נטען בהצלחה עם %{trace_points} נקודות מתוך %{count} נקודות אפשריות.
         many: נטען בהצלחה עם %{trace_points} נקודות מתוך %{count} נקודות אפשריות.
         other: נטען בהצלחה עם %{trace_points} נקודות מתוך %{count} נקודות אפשריות.
+      trace_location: ההקלטה שלך זמינה בכתובת %{trace_url}
+      all_your_traces: אפשר למצוא את כל הקלטות ה־GPX שלך בכתובת %{url}
       all_your_traces_html: אפשר למצוא את כל עקבות ה־GPX שלך שהועלו בהצלחה דרך %{url}.
       subject: '[אופן סטריט מאפ OpenStreetMap] ייבוא GPX הצליח'
     signup_confirm:
index e6245a9d4d232c7b3bd955d9d7fc8793dceb1a09..5b2636b83d58e49cc0b9f6b33035bdd4be40af2d 100644 (file)
@@ -1640,13 +1640,19 @@ id:
       befriend_them: Anda juga dapat menambahkannua sebagai teman di %{befriendurl}.
       befriend_them_html: Anda juga bisa menambahkan mereka sebagai teman di %{befriendurl}.
     gpx_description:
+      description_with_tags: 'Kelihatannya berkas GPX Anda %{trace_name} dengan deskripsi
+        %{trace_description} dan tag-tag berikut: %{tags}'
       description_with_tags_html: 'Kelihatannya berkas GPX Anda %{trace_name} dengan
         deskripsi %{trace_description} dan tag-tag berikut: %{tags}'
+      description_with_no_tags: Kelihatannya berkas GPX Anda %{trace_name} dengan
+        deskripsi %{trace_description} dan tanpa tag
       description_with_no_tags_html: Kelihatannya berkas GPX Anda %{trace_name} dengan
         deskripsi %{trace_description} dan tanpa tag
     gpx_failure:
       hi: Halo %{to_user},
       failed_to_import: 'gagal melakukan impor. Berikut ini adalah kesalahannya:'
+      more_info: Informasi lebih lanjut tentang kegagalan impor GPX dan cara menghindarinya
+        bisa ditemukan di %{url}.
       more_info_html: Informasi lebih lanjut tentang kegagalan impor GPX dan cara
         menghindarinya bisa ditemukan di %{url}.
       subject: '[OpenStreetMap] gagal impor GPX'
@@ -1654,6 +1660,9 @@ id:
       hi: Halo %{to_user},
       loaded:
         other: berhasil dimuat dengan %{trace_points} dari %{count} titik yang mungkin.
+      trace_location: Trace Anda tersedia di %{trace_url}
+      all_your_traces: Semua jejak GPX Anda yang berhasil diunggah dapat ditemukan
+        di %{url}.
       all_your_traces_html: Semua jejak GPX Anda yang berhasil diunggah dapat ditemukan
         di %{url}.
       subject: '[OpenStreetMap] impor GPX sukses'
@@ -2634,6 +2643,8 @@ id:
       write_notes: Ubah catatan
       write_redactions: Sunting data peta
       read_email: Baca alamat surel pengguna
+      consume_messages: Baca, update status dan hapus pesan pengguna
+      send_messages: Kirim pesan pribadi ke pengguna ini
       skip_authorization: Setujui aplikasi secara otomatis
   oauth_clients:
     new:
index d48e413a3af27b11f1b6fa04fd0153ece8467847..897f9237ab30ae37a7aa9dabf594af2bb30ecb41 100644 (file)
@@ -55,6 +55,8 @@ is:
       messages:
         invalid_email_address: lítur ekki út fyrir að vera gilt tölvupóstfang
         email_address_not_routable: er ekki nothæft
+        display_name_is_user_n: getur ekki verið user_n nema n sé notandaauðkennið
+          þitt
       models:
         user_mute:
           is_already_muted: er nú þegar þaggað
@@ -89,7 +91,7 @@ is:
       tracetag: Merki ferils
       user: Notandi
       user_preference: Notandastillingar
-      user_token: Leynistrengur notanda
+      user_token: Aðgangsteikn notanda
       way: Leið
       way_node: Leiðarliður
       way_tag: Merki leiðar
@@ -250,6 +252,8 @@ is:
         reopened_at_by_html: Endurvirkjað %{when} af %{user}
       rss:
         title: Minnispunktar OpenStreetMap
+        description_all: Listi yfir minnispunkta sem hafa verið tilkynntir, gerðar
+          athugasemdir við eða hefur verið lokað
         description_area: Listi yfir minnispunkta sem hafa verið tilkynntir, gerðar
           athugasemdir við eða hefur verið lokað á svæðinu þínu [(%{min_lat}|%{min_lon})
           -- (%{max_lat}|%{max_lon})]
@@ -285,6 +289,8 @@ is:
         retain_changeset_discussions: Umræður þínar um breytingar, ef einhverjar eru,
           verða geymdar.
         retain_email: Netfangið þitt verður geymt.
+        recent_editing_html: Þar sem þú hefur nýverið gert breytingar er ekki hægt
+          að eyða aðgangnum þínum. Eyðing verður möguleg eftir %{time}.
         confirm_delete: Ertu viss?
         cancel: Hætta við
   accounts:
@@ -299,6 +305,7 @@ is:
       public editing:
         heading: Nafngreindar breytingar
         enabled: Virkt. Ekki nafnlaus og getur breytt gögnum.
+        enabled link: https://wiki.openstreetmap.org/wiki/Anonymous_edits
         enabled link text: Hvað er þetta?
         disabled: Óvirkur og getur ekki breytt gögnum, allar fyrri breytingar eru
           ónafngreindar.
@@ -312,6 +319,7 @@ is:
           skilmálana vegna framlags þíns.
         agreed_with_pd: Þú hefur einnig lýst því yfir að breytingar þínar verði í
           almenningseigu (Public Domain).
+        link: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
         link text: Hvað er þetta?
       save changes button: Vista breytingar
       delete_account: Eyði aðgangi...
@@ -340,6 +348,7 @@ is:
     deleted_ago_by_html: Eytt %{time_ago} af %{user}
     edited_ago_by_html: Breytt %{time_ago} af %{user}
     version: Útgáfa
+    redacted_version: Endurskoðuð útgáfa
     in_changeset: Breytingasett
     anonymous: nafnlaus
     no_comment: (engin athugasemd)
@@ -352,7 +361,10 @@ is:
       other: '%{count} leiðir'
     download_xml: Sækja XML
     view_history: Skoða feril
+    view_unredacted_history: Sjá óendurskoðaða útgáfu
     view_details: Skoða nánar
+    view_redacted_data: Sjá endurskoðuð gögn
+    view_redaction_message: Sjá skilaboð með yfirferð
     location: 'Staðsetning:'
     common_details:
       coordinates_html: '%{latitude}, %{longitude}'
@@ -435,6 +447,15 @@ is:
       introduction: Smelltu á kortið til að finna fitjur í nágrenninu.
       nearby: Nálægar fitjur
       enclosing: Umlykjandi fitjur
+  old_nodes:
+    not_found:
+      sorry: 'Því miður, liðurinn #%{id} útgáfa %{version} fannst ekki.'
+  old_ways:
+    not_found:
+      sorry: 'Því miður, leiðin #%{id} útgáfa %{version} fannst ekki.'
+  old_relations:
+    not_found:
+      sorry: 'Því miður, venslin #%{id} útgáfa %{version} fundust ekki.'
   changesets:
     changeset_paging_nav:
       showing_page: Síða %{page}
@@ -469,11 +490,20 @@ is:
         created: Búið til
         closed: Lokað
         belongs_to: Höfundur
+    subscribe:
+      heading: Gerast áskrifandi að umræðu með breytingasetti?
+      button: Gerast áskrifandi að umræðu
+    unsubscribe:
+      heading: Hætta áskrift að umræðu með breytingasetti?
+      button: Hætta áskrift að umræðu
     heading:
       title: Breytingasett %{id}
       created_by_html: Útbúið af %{link_user} þann %{created}.
     no_such_entry:
       title: Ekkert slíkt breytingasett
+      heading: 'Engin færsla er til með auðkennið: %{id}'
+      body: Breytingasett númerið %{id} er ekki til. Kannski settirðu inn rangt stafsetta
+        slóð eða fylgdir ógildum tengli.
     show:
       title: 'Breytingasett: %{id}'
       created: 'Búið til: %{when}'
@@ -612,8 +642,10 @@ is:
         title: OpenStreetMap bloggfærslur
         description: Nýjustu bloggfærslur frá notendum OpenStreetMap
     subscribe:
+      heading: Gerast áskrifandi að umræðu með bloggfærslu?
       button: Gerast áskrifandi að umræðu
     unsubscribe:
+      heading: Hætta áskrift að umræðu með bloggfærslu?
       button: Hætta áskrift að umræðu
   diary_comments:
     index:
@@ -626,11 +658,40 @@ is:
       comment: Athugasemd
       newer_comments: Nýrri athugasemdir
       older_comments: Eldri athugasemdir
+    new:
+      heading: Bæta athugasemd við umræðu með bloggfærslu?
   doorkeeper:
+    errors:
+      messages:
+        account_selection_required: Auðkenningarþjónninn krefst þess að reikningur
+          endanotanda sé valinn
+        consent_required: Auðkenningarþjónninn krefst samþykkis endanotanda
+        interaction_required: Auðkenningarþjónninn krefst aðgerðar af hálfu endanotanda
+        login_required: Auðkenningarþjónninn krefst auðkenningar endanotanda
     flash:
       applications:
         create:
           notice: Umsókn skráð.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: Brást vegna þess að uppsetningu
+            Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner vantar.
+          reauthenticate_resource_owner_not_configured: Brást vegna þess að uppsetningu
+            Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner vantar.
+          resource_owner_from_access_token_not_configured: Brást vegna þess að uppsetningu
+            Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token vantar.
+          select_account_for_resource_owner_not_configured: Brást vegna þess að uppsetningu
+            Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner
+            vantar.
+          subject_not_configured: Gerð auðkennisteikns brást vegna þess að uppsetningu
+            Doorkeeper::OpenidConnect.configure.subject vantar.
+    scopes:
+      address: Skoðaðu heimilisfangið þitt
+      email: Skoðaðu tölvupóstfangið þitt
+      openid: Auðkenndu notandaaðganginn þinn
+      phone: Skoðaðu símanúmerið þitt
+      profile: Skoðaðu persónuupplýsingar þínar
   errors:
     contact:
       contact_url: https://wiki.openstreetmap.org/wiki/Contact
@@ -641,6 +702,8 @@ is:
         þinnar.
     bad_request:
       title: Ógild beiðni
+      description: Aðgerðin sem þú baðst um á OpenStreetMap-þjóninum er ekki gild
+        (HTTP 400)
     forbidden:
       title: Bannað
       description: Aðgerðin sem þú baðst um á OpenStreetMap-þjóninum er aðeins í boði
@@ -868,6 +931,7 @@ is:
           shed: Skúr
           stable: Hesthús
           static_caravan: Hjólhýsi
+          sty: Stía
           temple: Trúarleg bygging
           terrace: Raðhús
           train_station: Lestarstöðvarbygging
@@ -1520,7 +1584,7 @@ is:
       title_html: Tilkynna %{link}
       missing_params: Get ekki búið til nýja skýrslu
       disclaimer:
-        intro: 'Áður en þú sendir skýrsluna þína inn til stjórnenda vefsins, skaltu
+        intro: 'Áður en þú sendir skýrsluna þína inn til umsjónarmanna vefsins, skaltu
           ganga úr skugga um að:'
         not_just_mistake: Þú sért viss um að vandamálið sé ekki bara mistök
         unable_to_fix: Þér hefur sjálfum ekki tekist að leysa vandamálið eða með hjálp
@@ -1579,7 +1643,10 @@ is:
     intro_text: OpenStreetMap er heimskort gert af fólki eins og þér. Það er gefið
       út með opnu hugbúnaðarleyfi og það kostar ekkert að nota það.
     intro_2_create_account: Búa til notandaaðgang
+    hosting_partners_2024_html: Vefhýsing er studd af %{fastly}, %{corpmembers} og
+      öðrum %{partners}.
     partners_fastly: Fastly
+    partners_corpmembers: Fyrirtækjameðlimir OSMF
     partners_partners: samstarfsaðilum
     tou: Notkunarskilmálar
     osm_offline: OpenStreetMap gagnagrunnurinn er niðri vegna viðhalds.
@@ -1600,6 +1667,7 @@ is:
     more: Meira
   user_mailer:
     diary_comment_notification:
+      description: 'OpenStreetMap bloggfærsla #%{id}'
       subject: '[OpenStreetMap] %{user} bætti athugasemd við bloggfærslu þína'
       hi: Hæ %{to_user},
       header: '%{from_user} hefur bætt við athugasemd á OpenStreetMap bloggfærsluna
@@ -1610,6 +1678,8 @@ is:
         á %{commenturl} eða sent skilaboð til höfundarins á %{replyurl}
       footer_html: Þú getur einnig lesið athugasemdina á %{readurl} og skrifað athugasemd
         á %{commenturl} eða sent skilaboð til höfundarins á %{replyurl}
+      footer_unsubscribe: Þú getur hætt áskrift að umræðunni á %{unsubscribeurl}
+      footer_unsubscribe_html: Þú getur hætt áskrift að umræðunni á %{unsubscribeurl}
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: Hæ %{to_user},
@@ -1630,13 +1700,19 @@ is:
       befriend_them: Þú getur líka bætt þeim við sem vinum á %{befriendurl}.
       befriend_them_html: Þú getur líka bætt þeim við sem vinum á %{befriendurl}.
     gpx_description:
+      description_with_tags: 'Hitt sér út sem að þinn GPX-fil %{trace_name} með lýsingunni
+        %{trace_description} og eftirfarandi merki: %{tags}'
       description_with_tags_html: 'Hitt sér út sem að þinn GPX-fil %{trace_name} með
         lýsingunni %{trace_description} og eftirfarandi merki: %{tags}'
+      description_with_no_tags: Hitt sér út sem að þinn GPX-fil %{trace_name} með
+        lýsingunni %{trace_description} og engin merki
       description_with_no_tags_html: Hitt sér út sem að þinn GPX-fil %{trace_name}
         með lýsingunni %{trace_description} og engin merki
     gpx_failure:
       hi: Hæ %{to_user},
       failed_to_import: 'tókst ekki að flytja inn. Hér er villan:'
+      more_info: Frekari upplýsingar um bilanir í GPX-innflutningi og hvernig á að
+        forðast þær má finna á %{url}.
       more_info_html: Frekari upplýsingar um bilanir í GPX-innflutningi og hvernig
         á að forðast þær má finna á %{url}.
       import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures
@@ -1646,6 +1722,9 @@ is:
       loaded:
         one: var hlaðið inn með %{trace_points} af %{count} punkti mögulegum.
         other: var hlaðið inn með %{trace_points} punktum af %{count} mögulegum.
+      trace_location: Ferillinn þinn er núna tiltækur á %{trace_url}
+      all_your_traces: Alla GPX-ferla sem þú hefur sent inn má finna á %{url}
+      all_your_traces_html: Alla GPX-ferla sem þú hefur sent inn má finna á %{url}.
       subject: '[OpenStreetMap] GPX skrá flutt inn'
     signup_confirm:
       subject: '[OpenStreetMap] Velkomin í OpenStreetMap'
@@ -1671,6 +1750,7 @@ is:
       click_the_link: Ef þú óskaðir eftir þessari endurstillingu, skaltu fylgja tenglinum
         hér fyrir neðan til að staðfesta breytinguna.
     note_comment_notification:
+      description: 'OpenStreetMap-minnispunktur #%{id}'
       anonymous: Nafnlaus notandi
       greeting: Hæ,
       commented:
@@ -1715,6 +1795,7 @@ is:
       details: Svaraðu eða fáðu nánari upplýsingar um minnispunktinn á %{url}.
       details_html: Svaraðu eða fáðu nánari upplýsingar um minnispunktinn á %{url}.
     changeset_comment_notification:
+      description: 'OpenStreetMap-breytingasett #%{id}'
       hi: Hæ %{to_user},
       greeting: Hæ,
       commented:
@@ -1760,7 +1841,7 @@ is:
       press confirm button: Hér getur þú staðfest breytingu á netfangi.
       button: Staðfesta
       success: Breyting á netfanginu þínu hefur verið staðfest.
-      failure: Netfang hefur þegar verið staðfest með þessum lykli.
+      failure: Netfang hefur þegar verið staðfest með þessu aðgangsteikni.
       unknown_token: Þessi staðfestingarkóði er útrunninn eða er ekki til staðar.
     resend_success_flash:
       confirmation_sent: Við höfum sent nýja staðfestingarmiða til %{email} og um
@@ -1841,6 +1922,9 @@ is:
     mark:
       as_read: Skilaboðin voru merkt sem lesin
       as_unread: Skilaboðin voru merkt sem ólesin
+    unmute:
+      notice: Skilaboð voru færð í Innhólf
+      error: Ekki var hægt að færa skilaboðin í innhólfið.
     destroy:
       destroyed: Skilaboðunum var eytt
   passwords:
@@ -1851,13 +1935,18 @@ is:
       new password button: Endurstilla lykilorð
       help_text: Sláðu inn netfangið sem þú skráðir þig með, við munum senda tengil
         á það sem þú getur notað til að breyta lykilorðinu þínu.
+    create:
+      send_paranoid_instructions: Ef tölvupóstfangið þitt fyrirfinnst í gagnagrunninum
+        okkar, munt þú innan nokkurra mínútna fá tölvupóst með tengli til að endurheimta
+        lykilorðið þitt.
     edit:
       title: Endurstilla lykilorð
       heading: Endurstilla lykilorð fyrir %{user}
       reset: Endurstilla lykilorð
-      flash token bad: Þessi leynistrengur fannst ekki, kannski er slóðin röng?
+      flash token bad: Þetta aðgangsteikn fannst ekki, kannski er slóðin röng?
     update:
       flash changed: Lykilorðinu þínu hefur verið breytt
+      flash token bad: Þetta aðgangsteikn fannst ekki, kannski er slóðin röng?
   preferences:
     show:
       title: Kjörstillingar
@@ -1902,6 +1991,7 @@ is:
     new:
       title: Skrá inn
       tab_title: Skrá inn
+      login_to_authorize_html: Skráðu inn á OpenStreetMap til að fá aðgang að %{client_app_name}.
       email or username: Tölvupóstur eða notandanafn
       password: Lykilorð
       remember: Muna innskráninguna
@@ -1937,6 +2027,7 @@ is:
       image: Mynd
       alt: Alt-texti
       url: Vefslóð
+      codeblock: Kóðablokk
     richtext_field:
       edit: Breyta
       preview: Forskoða
@@ -2099,7 +2190,12 @@ is:
           Resources Canada), og StatCan (Geography Division,
           Statistics Canada).
         contributors_ca_canada: Kanada
+        contributors_cz_credit_html: |-
+          %{czechia}: Inniheldur gögn frá Ríkisumsýslu landmælinga
+          og Landskrá fasteigna gefið út með %{cc_licence_link} notkunarleyfi
         contributors_cz_czechia: Tékkland
+        contributors_cz_cc_licence: Creative Commons HöfundarGetið 4.0 alþjóðlegt
+          notkunarleyfi (CC BY 4.0)
         contributors_cz_cc_licence_url: https://creativecommons.org/licenses/by/4.0/
         contributors_fi_credit_html: |-
           %{finland}: Inniheldur gögn frá
@@ -2112,8 +2208,13 @@ is:
           %{france}: Inniheldur afleidd gögn frá
           Direction Générale des Impôts (Skattstjóraembættið).
         contributors_fr_france: Frakkland
+        contributors_hr_credit_html: |-
+          %{croatia}: Inniheldur gögn frá %{dgu_link} og %{open_data_portal}
+          (opinberar upplýsingar um Króatíu).
         contributors_hr_croatia: Króatía
+        contributors_hr_dgu: Jarðfræðistofnun Króatíska ríkisins
         contributors_hr_dgu_url: https://dgu.gov.hr/
+        contributors_hr_open_data_portal: National Open Data Portal
         contributors_hr_open_data_portal_url: https://data.gov.hr/
         contributors_nl_credit_html: '%{netherlands}: Inniheldur AND-gögn &copy;,
           2007 (%{and_link})'
@@ -2388,6 +2489,7 @@ is:
           scrubland: Kjarrlendi
           lake: Vatn
           reservoir: Uppistöðulón
+          intermittent_water: Ósamfellt vatnasvæði
           glacier: Jökull
           reef: Sker
           wetland: Votlendi
@@ -2413,9 +2515,11 @@ is:
           destination: Umferð leyfileg á ákveðinn áfangastað
           construction: Vegir í byggingu
           bus_stop: Strætisvagnabiðstöð
+          stop: Biðstöð
           bicycle_shop: Hjólaverslun
           bicycle_rental: Reiðhjólaleiga
           bicycle_parking: Reiðhjólastæði
+          bicycle_parking_small: Lítið reiðhjólastæði
           toilets: Salerni
     welcome:
       title: Velkomin!
@@ -2463,6 +2567,7 @@ is:
         automated_edits: Sjálfvirkar breytingar
         automated_edits_url: https://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct
       start_mapping: Hefja kortlagningu
+      continue_authorization: Halda auðkenningu áfram
       add_a_note:
         title: Enginn tími fyrir breytingar? Bættu við athugasemd!
         para_1: Það er auðvelt að bæta við minnispunkti ef þú vilt laga eitthvað smávægilegt
@@ -2568,6 +2673,8 @@ is:
       identifiable: AUÐKENNANLEGT
       private: EINKA
       trackable: REKJANLEGT
+      details_with_tags_html: '%{time_ago} af %{user} í %{tags}'
+      details_without_tags_html: '%{time_ago} af %{user}'
     index:
       public_traces: Allir ferlar
       my_gps_traces: GPS ferlarnir mínir
@@ -2601,6 +2708,9 @@ is:
         other: GPX-skrá með %{count} punktum frá %{user}
       description_without_count: GPX-skrá frá %{user}
   application:
+    basic_auth_disabled: 'Einföld HTTP-auðkenning (Basic Authentication) er óvirk:
+      %{link}'
+    oauth_10a_disabled: 'OAuth 1.0 og 1.0a eru óvirk: %{link}'
     auth_disabled_link: https://wiki.openstreetmap.org/wiki/2024_authentication_update
     permission_denied: Þú hefur ekki réttindi til að nota þessa aðgerð
     require_cookies:
@@ -2624,6 +2734,7 @@ is:
       oauth2_authorizations: OAuth 2 auðkenningar
       muted_users: Þaggaðir notendur
     auth_providers:
+      openid_url: OpenID-slóð
       openid_login_button: Halda áfram
       openid:
         title: Skrá inn með OpenID
@@ -2683,11 +2794,17 @@ is:
       read_gpx: Lesa einka-GPS-ferlana þína.
       write_gpx: Senda inn GPS feril.
       write_notes: Breyta minnispunktum.
+      write_redactions: Endurskoða kortagögn
       read_email: Lesa tölvupóstfang notanda
+      consume_messages: Lesa, uppfæra stöðu og eyða skilaboðum notenda
+      send_messages: Senda einkaskilaboð til annara notenda
       skip_authorization: Samþykkja forrit sjálfvirkt
+    for_roles:
+      moderator: Þessi heimild er fyrir aðgerðir sem eingöngu tiltækar fyrir umsjónarmenn
   oauth_clients:
     new:
       title: Skrá nýtt forrit
+      disabled: Skráning OAuth 1 forrita hefur verið gerð óvirk
     edit:
       title: Breyta forritinu þínu
     show:
@@ -2773,6 +2890,7 @@ is:
       title: Auðkenndu forritin mín
       application: Forrit
       permissions: Heimildir
+      last_authorized: Síðast auðkennt
       no_applications_html: Þú hefur ekki ennþá heimilað nein %{oauth2} forrit.
       oauth_2: OAuth 2
     application:
@@ -2782,6 +2900,7 @@ is:
     new:
       title: Nýskrá
       tab_title: Nýskrá
+      signup_to_authorize_html: Skráðu þig á OpenStreetMap til að fá aðgang að %{client_app_name}.
       no_auto_account_create: Því miður getum við eki búið til reikning fyrir þig
         sjálfkrafa.
       please_contact_support_html: Hafðu samband við %{support_link} til að fá aðgang
@@ -2792,12 +2911,21 @@ is:
         paragraph_1: Ólíkt öðrum landakortum, er OpenStreetMap gert frá grunni af
           fólki eins og þér, öllum er heimilt að laga það, uppfæra, sækja og nota.
         paragraph_2: Skráðu þig sem notanda til að geta tekið þátt.
+        welcome: Velkomin í OpenStreetMap
+      duplicate_social_email: Ef þú ert þegar með notandaaðgang á OpenStreetMap en
+        óskar eftir að nota utanaðkomandi auðkenningarþjónustu, skaltu skrá þig inn
+        með lykilorðinu þínu og gera viðeigandi breytingar í stillingum notandaaðgangsins
+        þíns.
       display name description: Nafn þitt sem aðrir notendur sjá, þú getur breytt
         því síðar í stillingunum þínum.
       by_signing_up:
+        html: Með því að skrá þig, samþykkir þú %{tou_link}, %{privacy_policy_link}
+          og %{contributor_terms_link} hjá okkur.
         privacy_policy: meðferð persónuupplýsinga
+        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: persónuverndarstefnu OSMF, þar með talinn hlutann um
           tölvupóstföng
+        contributor_terms_url: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
         contributor_terms: skilmálar vegna framlags
       tou: notkunarskilmálar
       external auth: 'Auðkenning með þriðja aðila:'
@@ -2806,8 +2934,14 @@ is:
         þíns!
       email_help:
         privacy_policy: stefna vegna meðferðar persónuupplýsinga
+        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
+        privacy_policy_title: persónuverndarstefnu OSMF, þar með talinn hlutann um
+          tölvupóstföng
         html: Netfangið þitt er ekki birt opinberlega, skoðaðu síðuna um %{privacy_policy_link}
           til að sjá nánari upplýsingar.
+      consider_pd_html: Ég lít svo á að framlög mín verði í %{consider_pd_link}.
+      consider_pd: almenningseign
+      consider_pd_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
       or: eða
       use external auth: eða nýskráð þig með utanaðkomandi þjónustu
     terms:
@@ -2845,6 +2979,7 @@ is:
         nýja skilmála vegna framlags (contributor terms). Til að sjá ítarlegri upplýsingar,
         geturðu skoðað %{terms_declined_link}.
       terms_declined_link: þessari wiki síðu
+      terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     no_such_user:
       title: Notandi ekki til
       heading: Notandinn %{user} er ekki til
@@ -2865,6 +3000,7 @@ is:
       blocks on me: Bönn gegn mér
       blocks by me: Bönn eftir mig
       create_mute: Þagga þennan notanda
+      destroy_mute: Hætta að þagga niður í þessum notanda
       edit_profile: Breyta notandasíðu
       send message: Senda skilaboð
       diary: Blogg
@@ -2874,6 +3010,9 @@ is:
       remove as friend: Fjarlægja úr vinum
       add as friend: Bæta við sem vini
       mapper since: 'Í kortlagningu síðan:'
+      last map edit: 'Síðasta breyting á korti:'
+      no activity yet: Engin virkni ennþá
+      uid: 'Notandaauðkenni:'
       ct status: 'Skilmálar vegna framlags:'
       ct undecided: Óvíst
       ct declined: Hafnað
@@ -2884,14 +3023,18 @@ is:
       role:
         administrator: Þessi notandi er möppudýr
         moderator: Þessi notandi er prófarkalesari
+        importer: Þessi notandi hefur heimild til innflutnings
         grant:
           administrator: Veita möppudýrsréttindi
           moderator: Veita stjórnandaréttindi
+          importer: Veita aðgang að innflutningi
         revoke:
           administrator: Svifta möppudýrsréttindum
           moderator: Svifta stjórnandaréttindum
+          importer: Afturkalla aðgang að innflutningi
       block_history: Virk bönn
       moderator_history: Úthlutuð bönn (eftir notandann)
+      revoke_all_blocks: Aflétta öllum bönnum
       comments: Athugasemdir
       create_block: Banna þennan notanda
       activate_user: Virkja þennan notanda
@@ -2910,6 +3053,9 @@ is:
       heading: Notendur
       older: Eldri notendur
       newer: Nýrri notendur
+      found_users:
+        one: '%{count} notandi fannst'
+        other: '%{count} notendur fundust'
       summary_html: '%{name} var útbúinn frá %{ip_address} þann %{date}'
       summary_no_ip_html: '%{name} útbúinn þann %{date}'
       confirm: Staðfesta valda notendur
@@ -2984,6 +3130,8 @@ is:
       flash: Bjó til bann gegn %{name}.
     update:
       only_creator_can_edit: Aðeins stjórnandinn sem bjó til bannið getur breytt því.
+      only_creator_or_revoker_can_edit: Aðeins þeir umsjónarmenn sem hafa sett bannið
+        geta breytt því.
       success: Banninu var breytt.
     index:
       title: Bönn
@@ -2999,7 +3147,15 @@ is:
       revoke: Eyða banninu
       flash: Banninu var eytt.
     revoke_all:
+      title: Eyði öllum bönnum á %{block_on}
+      heading_html: Eyði öllum bönnum á %{block_on}
+      empty: '%{name} er ekki með nein virk bönn.'
+      confirm: Ertu viss um að þú viljir aflétta %{active_blocks}?
+      active_blocks:
+        one: '%{count} virkt bann'
+        other: '%{count} virk bönn'
       revoke: Afturkalla!
+      flash: Öllum virkum bönnum hefur verið aflétt.
     helper:
       time_future_html: Endar eftir %{time}
       until_login: Virkt þangað til notandinn skráir sig inn.
@@ -3054,13 +3210,26 @@ is:
       reason: Ástæða banns
       status: Staða
       revoker_name: Eytt af
+      older: Eldri bönn
+      newer: Nýrri bönn
+    navigation:
+      all_blocks: Öll bönn
+      blocks_on_me: Bönn gegn mér
+      blocks_on_user: Bönn gegn %{user}
+      blocks_by_me: Bönn eftir mig
+      blocks_by_user: Bönn eftir %{user}
+      block: 'Bann #%{id}'
   user_mutes:
     index:
       title: Þaggaðir notendur
       my_muted_users: Þaggaðir notendur mínir
       you_have_muted_n_users:
-        one: Þú hefur þaggað niður í {count} notanda
-        other: Þú hefur þaggað niður í {count} notendum
+        one: Þú hefur þaggað niður í %{count} notanda
+        other: Þú hefur þaggað niður í %{count} notendum
+      user_mute_explainer: Skilaboð frá þögguðum notendum eru sett í sérstakt pósthólf
+        og þú munt ekki fá tilkynningar í tölvupósti.
+      user_mute_admins_and_moderators: Þú getur þaggað niður í stjórnendum og umsjónarfólki
+        en skilaboð þeirra verða ekki þögguð.
       table:
         thead:
           muted_user: Þaggaður notandi
@@ -3081,6 +3250,8 @@ is:
       heading: Minnispunktar frá %{user}
       subheading_html: Minnispunktar sem hafa verið %{submitted} eða gerð %{commented}
         við af %{user}
+      subheading_submitted: sendi inn
+      subheading_commented: setti inn athugasemd á
       no_notes: Engir minnispunktar
       id: Auðkenni (ID)
       creator: Búið til af
@@ -3111,6 +3282,7 @@ is:
       reactivate: Virkja aftur
       comment_and_resolve: Athugasemd & leysa
       comment: Athugasemd
+      log_in_to_comment: Skráðu þig inn til að gera athugasemd við þennan minnispunkt
       report_link_html: Ef þessi minnispunktur inniheldur viðkvæmar upplýsingar sem
         þarf að fjarlægja geturðu %{link}.
       other_problems_resolve: Fyrir öll önnur vandamál með minnispunktinn, skaltu
@@ -3123,7 +3295,10 @@ is:
       intro: Fannstu mistök eða eitthvað sem vantar? Láttu aðra kortagerðarmenn vita
         svo hægt sé að laga það. Færðu kortamerkið á réttan stað og skrifaðu minnispunkt
         til að útskýra vandamálið.
+      anonymous_warning_html: Þú ert ekki skráð/ur inn. Notaðu %{log_in} eða %{sign_up}
+        ef þú vilt fá uppfærslur varðandi minnispunktinn þinn.
       anonymous_warning_log_in: skrá inn
+      anonymous_warning_sign_up: Nýskráðu þig
       advice: Minnispunkturinn þinn er opinber og gæti verið notaður til að uppfæra
         kortið; því ættirðu ekki að setja inn neinar persónulegar upplýsingar, eða
         upplýsingar úr höfundarvörðu efni.
@@ -3174,6 +3349,7 @@ is:
         cyclosm: CyclOSM
         cycle_map: Hjólakort
         transport_map: Umferðarkort
+        tracestracktop_topo: Tracestrack Topo
         hot: Hjálparstarf
       layers:
         header: Lög á korti
@@ -3191,6 +3367,8 @@ is:
       osm_france: OpenStreetMap Frakklandi
       thunderforest_credit: Kortatíglar frá %{thunderforest_link}
       andy_allan: Andy Allan
+      tracestrack_credit: Kortatíglar frá %{tracestrack_link}
+      tracestrack: Tracestrack
       hotosm_credit: Stíll kortatígla frá %{hotosm_link} hýst af %{osm_france_link}
       hotosm_name: Humanitarian OpenStreetMap teyminu
     site:
@@ -3202,6 +3380,7 @@ is:
       map_data_zoom_in_tooltip: Renndu að til að skoða gögn kortsins
       queryfeature_tooltip: Rannsaka fitjur
       queryfeature_disabled_tooltip: Renndu að til að rannsaka fitjur
+      embed_html_disabled: Ívafið HTML ekki tiltækt fyrir þetta kortalag
     edit_help: Færðu kortið og stilltu aðdrátt inn á staðinn sem þú vilt breyta, smelltu
       síðan hér.
     directions:
index 16ffe65ba2fc46bd9d535877da15a5c8f81b12ef..7a77d5fc177ae038596934ea5379ad577a1ae74a 100644 (file)
@@ -1664,13 +1664,19 @@ mk:
       befriend_them: Можете личноста и да ја додадете како пријател на %{befriendurl}.
       befriend_them_html: Можете личноста и да ја додадете како пријател на %{befriendurl}.
     gpx_description:
+      description_with_tags: 'Вашата GPX-податотека %{trace_name} со описот %{trace_description}
+        и следниве ознаки: %{tags}'
       description_with_tags_html: 'Вашата GPX-податотека %{trace_name} со описот %{trace_description}
         и следниве ознаки: %{tags}'
+      description_with_no_tags: Вашата GPX-податотека %{trace_name} со описот %{trace_description}
+        и без ознаки
       description_with_no_tags_html: Вашата GPX-податотека %{trace_name} со описот
         %{trace_description} и без ознаки
     gpx_failure:
       hi: Здраво %{to_user},
       failed_to_import: не можеше да се увезе. Еве ја грешката;
+      more_info: Повеќе информации за неуспесите на увозот на GPX и тоа како да ги
+        одбегнете ќе најдете на %{url}.
       more_info_html: Повеќе информации за неуспесите на увозот на GPX и тоа како
         да ги одбегнете ќе најдете на %{url}.
       import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures?uselang=mk
@@ -1680,6 +1686,8 @@ mk:
       loaded:
         one: успешно вчитано со %{trace_points} од %{count} можни точки.
         other: успешно вчитано со %{trace_points} од %{count} можни точки.
+      trace_location: Вашата трага е достапна на %{trace_url}
+      all_your_traces: Сите ваши успешно подигнати GPX-траги ќе ги најдете на %{url}
       all_your_traces_html: Сите ваши успешно подигнати GPX-траги ќе ги најдете на
         %{url}.
       subject: '[OpenStreetMap] Успешен увоз на GPX-податотека'
index e4cd7eb50da7751a0bcc5c47b10732e9a151cc3c..a8ac63113d46ee61ec31f686e2e8f2222ded3146 100644 (file)
@@ -2725,6 +2725,8 @@ sl:
       write_notes: Spreminjanje opomb
       write_redactions: Skrij podatke na zemljevidu
       read_email: Branje uporabnikovega e-poštnega naslova
+      consume_messages: Branje, posodabljanje stanja in brisanje uporabniških sporočil
+      send_messages: Pošiljanje zasebnih sporočil drugim uporabnikom
       skip_authorization: Samodejna odobritev aplikacije
     for_roles:
       moderator: To dovoljenje je za dejanja, ki so na voljo samo moderatorjem
index 811203715dbf2b23e3f6a979e5eab4c4550d67e5..46a72f47a18c5c1319e60d7f39f4d7f80e6e3dc6 100644 (file)
@@ -1649,6 +1649,7 @@ zh-CN:
     tou: 使用条款
     osm_offline: 由于正在进行基本的数据库维护工作,OpenStreetMap 数据库目前处于脱机状态。
     osm_read_only: 由于正在进行基本的数据库维护工作,OpenStreetMap 数据库目前处于只读模式。
+    nothing_to_preview: 无可预览内容。
     donate: 通过给硬件升级基金%{link}支持 OpenStreetMap。
     help: 帮助
     about: 关于
@@ -1689,17 +1690,22 @@ zh-CN:
       befriend_them: 您也可以在 %{befriendurl} 添加他们为朋友。
       befriend_them_html: 您也可以在%{befriendurl}把他们添加为朋友。
     gpx_description:
+      description_with_tags: 看起来您的GPX文件%{trace_name}(描述为%{trace_description},带如下标签:%{tags})
       description_with_tags_html: 您的GPX文件 %{trace_name} ,其描述为 %{trace_description}
         并有以下标签: %{tags}
+      description_with_no_tags: 看起来您的GPX文件%{trace_name}(描述为%{trace_description},不带标签)
       description_with_no_tags_html: 似乎您的GPX文件%{trace_name},描述为%{trace_description},没有标签
     gpx_failure:
       hi: 您好,%{to_user}:
       failed_to_import: 导入失败。下面是错误信息:
+      more_info: 更多有关GPX导入失败的信息及如何避免这些问题,可以在%{url}找到。
       more_info_html: 更多关于 GPX 导入失败的信息,以及如何避免失败可在%{url}找到。
       subject: '[OpenStreetMap] GPX 导入失败'
     gpx_success:
       hi: 您好,%{to_user}:
       loaded: 已成功加载%{count}个可能轨迹点中的%{trace_points}个。
+      trace_location: 您的轨迹可在%{trace_url}查看
+      all_your_traces: 您可以在%{url}找到所有您成功上传的GPX轨迹
       all_your_traces_html: 您可以在 %{url} 找到所有您成功上传的 GPX 轨迹。
       subject: '[OpenStreetMap] GPX 导入成功'
     signup_confirm:
@@ -2225,7 +2231,7 @@ zh-CN:
           trunk: 主干道路
           primary: 一级道路
           secondary: 二级道路
-          unclassified: 无等级道路
+          unclassified: 等外道路
           pedestrian: 人行道
           track: 小路
           bridleway: 马道
@@ -2268,7 +2274,7 @@ zh-CN:
           retail: 零售区
           industrial: 工业区
           commercial: 商业区
-          heathland: 荒原
+          heathland: 欧石楠荒地
           scrubland: 灌木丛林地
           lake: 湖
           reservoir: 水库
index d39f3e2d3806c257c6d9e0b72b01e81ee05cdc83..732499dc25377c4d3c72e71e9c2908d3db9a4fee 100644 (file)
@@ -39,6 +39,7 @@
 # Author: SupaplexTW
 # Author: Tntchn
 # Author: TongcyDai
+# Author: Wayne Su
 # Author: Wehwei
 # Author: WiiUf
 # Author: Winston Sung
@@ -89,7 +90,7 @@ zh-TW:
       messages:
         invalid_email_address: 似乎不是有效的電子郵件信箱地址。
         email_address_not_routable: 不可發送
-        display_name_is_user_n: 不能是「user_n」除非「n」是您的使用者 ID
+        display_name_is_user_n: 不能是「user_n」,除非「n」是你的使用者 ID
       models:
         user_mute:
           is_already_muted: 已忽視
@@ -124,21 +125,21 @@ zh-TW:
       tracetag: 軌跡標籤
       user: 使用者
       user_preference: 使用者偏好設定
-      user_token: 使用者Token
+      user_token: 使用者授權密鑰
       way: 路徑
       way_node: 路徑節點
       way_tag: 路徑標籤
     attributes:
       client_application:
-        name: 名稱(必填)
-        url: 主要應用程式 URL(必填)
+        name: 名稱 (必填)
+        url: 主要應用程式 URL (必填)
         callback_url: 回撥 (Callback) URL
         support_url: 支援 URL
         allow_read_prefs: 讀取使用者偏好設定
         allow_write_prefs: 修改使用者偏好設定
         allow_write_diary: 建立日記、評論和加入好友
         allow_write_api: 修改地圖
-        allow_read_gpx: 讀取個人GPS軌跡
+        allow_read_gpx: 讀取個人 GPS 軌跡
         allow_write_gpx: 上傳 GPS 軌跡
         allow_write_notes: 修改註記
       diary_comment:
@@ -197,7 +198,7 @@ zh-TW:
         pass_crypt_confirmation: 確認密碼
     help:
       doorkeeper/application:
-        confidential: 應用程式會在客戶端密鑰可以維持機密時使用(本地端移動應用程式和單一頁面應用程式不保密)
+        confidential: 應用程式會在客戶端密鑰可以維持機密時使用 (本地端移動應用程式和單一頁面應用程式不保密)
         redirect_uri: 每條 URI 使用一行
       trace:
         tagstring: 以逗點分隔
@@ -270,7 +271,7 @@ zh-TW:
         opened: 新的註記 (在 %{place} 附近)
         commented: 新的評論 (在 %{place} 附近)
         closed: 關閉的註記 (在 %{place} 附近)
-        reopened: 重新開啟的註記(在%{place}附近)
+        reopened: 重新開啟的註記 (在%{place}附近)
       entry:
         comment: 評論
         full: 註記原文
@@ -407,7 +408,7 @@ zh-TW:
         way: 路徑
         relation: 關聯
     start_rjs:
-      feature_warning: 載入 %{num_features} 項物件的資料,可能使您的瀏覽器延遲或無法回應。您是否想要顯示這些資料嗎?
+      feature_warning: 載入 %{num_features} 項物件的資料,可能會使你的瀏覽器延遲或無法回應。你確定要顯示這些資料嗎?
       load_data: 載入資料
       loading: 正在載入…
     tag_details:
@@ -442,7 +443,7 @@ zh-TW:
       previous: « 上一頁
     changeset:
       anonymous: 匿名
-      no_edits: (沒有編輯)
+      no_edits: (沒有編輯)
       view_changeset_details: 檢視變更集詳細資料
     changesets:
       id: ID
@@ -481,7 +482,7 @@ zh-TW:
     no_such_entry:
       title: 沒有這樣的變更集
       heading: 沒有 id 為 %{id} 的項目
-      body: 抱歉,沒有 id 為 %{id} 的變更集。請檢查您的拼字,或者可能是您按到錯誤的連結。
+      body: 抱歉,沒有 id 為 %{id} 的變更集。請檢查你的拼字,或者可能是你按到錯誤的連結。
     show:
       title: 變更集:%{id}
       created: 建立於:%{when}
@@ -510,7 +511,7 @@ zh-TW:
       relations: 關聯 (%{count})
       relations_paginated: 關聯 (%{count} 的 %{x}-%{y})
     timeout:
-      sorry: 很抱歉,請求的變更集清單過長無法讀取。
+      sorry: 很抱歉,請求的變更集清單過長無法讀取。
   changeset_comments:
     comment:
       comment: '由 %{author} 對變更集 #%{changeset_id} 發表的新評論'
@@ -521,22 +522,22 @@ zh-TW:
       title_all: OpenStreetMap 變更集討論
       title_particular: OpenStreetMap 變更集 %{changeset_id} 討論
     timeout:
-      sorry: 很抱歉,請求的變更集評論過長無法讀取
+      sorry: 很抱歉,請求的變更集評論過長無法讀取
   dashboards:
     contact:
       km away: '%{count} 公里遠'
       m away: '%{count} 公尺遠'
       latest_edit_html: 上次編輯於%{ago}:
     popup:
-      your location: 的位置
+      your location: 的位置
       nearby mapper: 附近的製圖者
       friend: 好友
     show:
       title: 我的功能面板
-      no_home_location_html: '%{edit_profile_link}並編輯的家位置,來查看附近的使用者。'
-      edit_your_profile: 編輯的個人檔案
+      no_home_location_html: '%{edit_profile_link}並編輯的家位置,來查看附近的使用者。'
+      edit_your_profile: 編輯的個人檔案
       my friends: 我的好友
-      no friends: 尚未加入任何好友。
+      no friends: 尚未加入任何好友。
       nearby users: 其他附近的使用者
       no nearby users: 附近沒有已加入製圖的使用者。
       friends_changesets: 好友的變更集
@@ -577,7 +578,7 @@ zh-TW:
     no_such_entry:
       title: 沒有這樣的日記項目
       heading: 沒有 id 為 %{id} 的項目
-      body: 抱歉,沒有日記項目或評論的 id 是 %{id}。請檢查您的拼字,或者可能是您按到錯誤的連結。
+      body: 抱歉,沒有日記項目或評論的 id 是 %{id}。請檢查你的拼字,或者可能是你按到錯誤的連結。
     diary_entry:
       posted_by_html: 於 %{created} 由 %{link_user} 以%{language_link}發表。
       updated_at_html: 上一次更新在 %{updated}。
@@ -653,44 +654,44 @@ zh-TW:
             缺少設置導致失敗。
           select_account_for_resource_owner_not_configured: 因 Doorkeeper::OpenidConnect.configure.select_account_for_resource_owner  缺少設置導致失敗。
           subject_not_configured: 因 Doorkeeper::OpenidConnect.configure.subject 缺少配置,產生
-            ID æ¬\8aæ\9d\96失敗。
+            ID æ\8e\88æ¬\8aå¯\86é\91°失敗。
     scopes:
-      address: 查看的實際地址
-      email: 查看您的電子郵件位址
-      openid: 驗證的帳號
-      phone: 查看的電話號碼
-      profile: 查看的個人資訊
+      address: 查看的實際地址
+      email: 查看你的電子郵件信箱
+      openid: 驗證的帳號
+      phone: 查看的電話號碼
+      profile: 查看的個人資訊
   errors:
     contact:
       contact_url_title: 各種聯絡管道說明
       contact: 聯絡
-      contact_the_community_html: 如果您發現有損壞的連結/錯誤,請隨時%{contact_link}OpenStreetMap 社群。並請記下您的請求的確切
-        URL 址。
+      contact_the_community_html: 如果你發現有損壞的連結/錯誤,請隨時%{contact_link}OpenStreetMap 社群。並請記下你的請求的確切
+        URL 址。
     bad_request:
       title: 錯誤請求
-      description: 您在 OpenStreetMap 伺服器上請求的操作無效(HTTP 400)
+      description: 你在 OpenStreetMap 伺服器上請求的操作無效 (HTTP 400)
     forbidden:
       title: Forbidden
-      description: 您在 OpenStreetMap 伺服器上請求的運作僅限管理員使用(HTTP 403)
+      description: 你在 OpenStreetMap 伺服器上請求的運作僅限管理員使用 (HTTP 403}
     internal_server_error:
       title: 應用程式錯誤
-      description: OpenStreetMap 伺服器遇到意外情況,而無法滿足請求(HTTP 500)
+      description: OpenStreetMap 伺服器遇到意外情況,而無法滿足請求 (HTTP 500)
     not_found:
       title: 檔案未找到
-      description: 在 OpenStreetMap 伺服器上找不到該名稱的檔案/目錄/API 操作(HTTP 404)
+      description: 在 OpenStreetMap 伺服器上找不到該名稱的檔案/目錄/API 操作 (HTTP 404)
   friendships:
     make_friend:
       heading: 將 %{user} 加入為好友?
       button: 加入為好友
-      success: '%{name} 現在已成為的好友!'
+      success: '%{name} 現在已成為的好友!'
       failed: 抱歉,無法將 %{name} 加入為好友。
-      already_a_friend: 已經是 %{name} 的好友了。
-      limit_exceeded: 您最近與許多使用者成為朋友。在與其他人成為朋友前請稍候。
+      already_a_friend: 已經是 %{name} 的好友了。
+      limit_exceeded: 你最近與許多使用者成為朋友,要再與其他人成為朋友前請稍候。
     remove_friend:
       heading: 移除好友 %{user}?
       button: 移除好友
-      success: '%{name} 已從的好友中移除。'
-      not_a_friend: '%{name} 並不是的好友。'
+      success: '%{name} 已從的好友中移除。'
+      not_a_friend: '%{name} 並不是的好友。'
   geocoder:
     search:
       title:
@@ -702,43 +703,43 @@ zh-TW:
       prefix:
         aerialway:
           cable_car: 大型纜車
-          chair_lift: å\8d\87é\99\8då\90\8aæ¤\85
-          drag_lift: 上山牽引梯
+          chair_lift: å\90\8aæ¤\85å¼\8fç´¢é\81\93
+          drag_lift: 拖拉式索道
           gondola: 小型纜車
-          magic_carpet: 滑雪升降機
-          platter: 纜椅
-          pylon: 高壓電塔
-          station: ç©ºä¸­çº\9cè»\8a車站
-          t-bar: T å­\97çº\9cæ¤\85
-          "yes": ç©ºä¸­çº\9cç·\9a
+          magic_carpet: 魔毯 (自動步道)
+          platter: 圓盤拖拉式索道
+          pylon: 塔柱
+          station: çº\9c車站
+          t-bar: T å\9e\8bæ¡¿æ\8b\96æ\8b\89å¼\8fç´¢é\81\93
+          "yes": ç©ºä¸­ç´¢é\81\93
         aeroway:
           aerodrome: 機場
-          airstrip: 飛機跑道
+          airstrip: 簡易跑道
           apron: 停機坪
           gate: 登機口
           hangar: 機棚
           helipad: 直升機停機坪
           holding_position: 等待位置
           navigationaid: 航空導航輔助
-          parking_position: 停位置
+          parking_position: 停位置
           runway: 跑道
           taxilane: 滑行道
           taxiway: 滑行道
-          terminal: 航廈
-          windsock: 布製風標
+          terminal: 機場航廈
+          windsock: 風向袋
         amenity:
-          animal_boarding: å\8b\95ç\89©å¯\84宿
+          animal_boarding: å¯µç\89©æ\97\85館
           animal_shelter: 動物收容所
           arts_centre: 藝術中心
-          atm: 提款機
+          atm: 自動提款機
           bank: 銀行
           bar: 酒吧
-          bbq: 烤肉場
+          bbq: 公共烤爐
           bench: 長椅
           bicycle_parking: 自行車停車場
           bicycle_rental: 自行車出租
           bicycle_repair_station: 自行車維修站
-          biergarten: 啤酒庭園
+          biergarten: 露天啤酒場
           blood_bank: 血液銀行
           boat_rental: 船艇出租
           brothel: 妓院
@@ -746,7 +747,7 @@ zh-TW:
           bus_station: 公車站
           cafe: 咖啡廳
           car_rental: 汽車出租
-          car_sharing: 汽車共乘
+          car_sharing: 共享汽車
           car_wash: 洗車
           casino: 賭場
           charging_station: 充電站
@@ -760,7 +761,7 @@ zh-TW:
           courthouse: 法院
           crematorium: 火葬場
           dentist: 牙醫
-          doctors: 醫師
+          doctors: 私人診所
           drinking_water: 飲用水
           driving_school: 駕訓班
           embassy: 大使館
@@ -771,11 +772,11 @@ zh-TW:
           food_court: 美食廣場
           fountain: 噴泉
           fuel: 加油站
-          gambling: 博弈
-          grave_yard: å¢\93å\9c\92
+          gambling: 賭博
+          grave_yard: å®\97æ\95\99å¢\93å\9c°
           grit_bin: 砂箱
           hospital: 醫院
-          hunting_stand: 狩獵
+          hunting_stand: 狩獵小屋
           ice_cream: 冰淇淋
           internet_cafe: 網咖
           kindergarten: 幼兒園
@@ -787,23 +788,23 @@ zh-TW:
           mobile_money_agent: 行動支付代理
           monastery: 修道院
           money_transfer: 匯款
-          motorcycle_parking: æ©\9f車停車場
+          motorcycle_parking: æ\91©æ\89\98車停車場
           music_school: 音樂學校
-          nightclub: 夜總會
-          nursing_home: ç\99\82é¤\8aé\99¢
+          nightclub: 夜
+          nursing_home: ç\85§è­·ä¸­å¿\83
           parking: 停車場
           parking_entrance: 停車場入口
           parking_space: 停車位
-          payment_terminal: äº\92å\8b\95å¼\8f資訊服務站
+          payment_terminal: ä»\98è²»資訊服務站
           pharmacy: 藥房
-          place_of_worship: 禮拜場所
+          place_of_worship: 宗教場所
           police: 警察
           post_box: 郵筒
           post_office: 郵局
           prison: 監獄
           pub: 酒館
-          public_bath: å\85¬å\85±æµ´å ´
-          public_bookcase: 公共書櫃
+          public_bath: å\85¬å\85±æ¾¡å \82
+          public_bookcase: 街頭書櫃
           public_building: 公共建築
           ranger_station: 巡山員站
           recycling: 回收點
@@ -811,16 +812,16 @@ zh-TW:
           sanitary_dump_station: 衛生排污站
           school: 學校
           shelter: 涼亭
-          shower: 淋浴
-          social_centre: 聚會所
+          shower: 淋浴
+          social_centre: 社會團體中心
           social_facility: 社會福利設施
-          studio: 錄音
+          studio: 工作
           swimming_pool: 游泳池
           taxi: 計程車
           telephone: 公共電話
           theatre: 劇院
           toilets: 廁所
-          townhall: 政府大廈
+          townhall: 鄉鎮公所
           training: 訓練設施
           university: 大學
           vehicle_inspection: 車輛檢驗
@@ -830,8 +831,8 @@ zh-TW:
           waste_basket: 垃圾桶
           waste_disposal: 垃圾子車
           waste_dump_site: 垃圾掩埋場
-          watering_place: 集水地點
-          water_point: 水點
+          watering_place: 動物飲水處
+          water_point: 水點
           weighbridge: 地磅
           "yes": 便利設施
         boundary:
@@ -844,29 +845,29 @@ zh-TW:
           "yes": 邊界
         bridge:
           aqueduct: 高架水道
-          boardwalk: æ\9c¨æ\9d¿走道
+          boardwalk: æ\9c¨æ£§走道
           suspension: 吊橋
-          swing: 平
+          swing: 平
           viaduct: 高架橋
-          "yes": 橋
+          "yes": 橋
         building:
           apartment: 公寓
           apartments: 公寓
           barn: 穀倉
           bungalow: 平房
           cabin: 小木屋
-          chapel: 禮拜
+          chapel: 小聖
           church: 教堂建築
           civic: 城市建築
           college: 學院建物
           commercial: 商業建築
-          construction: 在建建築
+          construction: 興建中建築
           cowshed: 牛棚
-          detached: 獨立式住宅
+          detached: 獨立透天厝
           dormitory: 宿舍
           duplex: 複式住宅
           farm: 農舍
-          farm_auxiliary: 附屬農舍建築
+          farm_auxiliary: 農業設施
           garage: 車庫
           garages: 車庫
           greenhouse: 溫室
@@ -882,115 +883,115 @@ zh-TW:
           office: 辦公建築
           public: 公共建築
           residential: 住宅建築
-          retail: 零售建物
+          retail: é\9b¶å\94®å\95\86建ç\89©
           roof: 屋頂
-          ruins: 毀損建築
+          ruins: 毀損建築
           school: 學校建物
-          semidetached_house: 半獨立房
+          semidetached_house: 半獨立房
           service: 服務建築
-          shed: 
+          shed: 工寮
           stable: 馬廄
           static_caravan: 旅行拖車
           sty: 豬圈
-          temple: å»\9få®\87建築
-          terrace: 排屋
+          temple: å¯ºå»\9f建築
+          terrace: 連棟透天厝
           train_station: 車站建物
           university: 大學建築
           warehouse: 倉庫
           "yes": 建築物
         club:
-          scout: 童軍團
+          scout: 童軍團
           sport: 運動俱樂部
           "yes": 俱樂部
         craft:
-          beekeeper: 養蜂人
+          beekeeper: 養蜂人
           blacksmith: 鐵匠
-          brewery: 釀酒
+          brewery: 地方小型釀造
           carpenter: 木匠
-          caterer: å¤\96ç\87´承辦
-          confectionery: ç³\96æ\9e\9c
+          caterer: å®´æ\9c\83承辦
+          confectionery: ç\94\9cé»\9e
           dressmaker: 女裝裁縫
-          electrician: é\9b»å·¥
-          electronics_repair: é\9b»å­\90維修
-          gardener: 園
-          glaziery: ç\8e»ç\92\83å·¥
+          electrician: é\9b»å\8c 
+          electronics_repair: é\9b»å\99¨維修
+          gardener: 園藝師
+          glaziery: ç\8e»ç\92\83å\8c 
           handicraft: 手工藝
-          hvac: 暖通空調製作
-          metal_construction: é\87\91屬建é\80 
-          painter: 畫家
+          hvac: 暖通空調工程
+          metal_construction: é\87\91屬å\8a å·¥
+          painter: 油漆匠
           photographer: 攝影師
-          plumber: 管道
-          roofer: 屋頂
-          sawmill: 鋸木
+          plumber: 水管
+          roofer: 屋頂修繕
+          sawmill: 製材
           shoemaker: 鞋匠
-          stonemason: ç\9f³å·¥
+          stonemason: ç\9f³å\8c 
           tailor: 裁縫師
-          window_construction: çª\97æ\88¶å»ºè¨­
+          window_construction: çª\97æ\88¶å·¥ç¨\8b
           winery: 酒廠
-          "yes": å·¥è\97\9då\93\81åº\97
+          "yes": å°\88業æ\8a\80è¡\93æ\9c\8då\8b\99
         emergency:
-          access_point: 進入點
-          ambulance_station: æ\80¥æ\95\91
-          assembly_point: é\9b\86å\90\88è\99\95
-          defibrillator: 除顫器
+          access_point: 急難地點指示
+          ambulance_station: æ\95\91è­·
+          assembly_point: é\81¿é\9b£å ´æ\89\80
+          defibrillator: 自動心臟去顫器 (AED)
           fire_extinguisher: 滅火器
-          fire_water_pond: 消防水塘
+          fire_water_pond: 消防用水池
           landing_site: 緊急降落點
           life_ring: 緊急救生圈
           phone: 緊急電話
-          siren: 緊急警報器
-          suction_point: 緊急吸水
+          siren: 警報器
+          suction_point: 消防用水抽取
           water_tank: 緊急水箱
         highway:
           abandoned: 廢棄道路
-          bridleway: é¦¬è»\8a
-          bus_guideway: 導向公車道
-          bus_stop: 公車站
-          construction: 建造中道路
+          bridleway: é¨\8e馬
+          bus_guideway: 導軌巴士車道
+          bus_stop: 公車站
+          construction: 興建中道路
           corridor: 走廊
-          crossing: è·¯å\8f£
+          crossing: è¡\8c人穿è¶\8aé\81\93
           cycleway: 自行車道
           elevator: 電梯
-          emergency_access_point: 緊急聯絡點
+          emergency_access_point: 急難地點指示
           emergency_bay: 緊急臨停空間
           footway: 步道
-          ford: 河床便道
-          give_way: 讓路標誌
+          ford: 須涉水
+          give_way: 前方優先標誌
           living_street: 生活街道
           milestone: 里程標
           motorway: 高速公路
-          motorway_junction: 高速公路出口
-          motorway_link: 高速公路聯絡
+          motorway_junction: 高速公路交流道
+          motorway_link: 高速公路
           passing_place: 避車彎
           path: 小徑
           pedestrian: 人行道
           platform: 月台
-          primary: 一級道路
-          primary_link: 一級道路聯絡道
+          primary: 省道
+          primary_link: 省道聯絡道
           proposed: 計畫中道路
           raceway: 賽道
           residential: 住宅區道路
           rest_area: 休息區
           road: 道路
-          secondary: 二級道路
-          secondary_link: 二級道路聯絡道
-          service: 服務道路
+          secondary: 縣道
+          secondary_link: 縣道聯絡道
+          service: 專用道路
           services: 高速公路服務區
-          speed_camera: æ¸¬é\80\9fç\85§ç\9b¸æ©\9f
+          speed_camera: 測速相機
           steps: 階梯
           stop: 停止標誌
           street_lamp: 路燈
-          tertiary: 三級道路
-          tertiary_link: 地區道路聯絡道
+          tertiary: 鄉道
+          tertiary_link: 鄉道聯絡道
           track: 產業道路
           traffic_mirror: 道路反射鏡
           traffic_signals: 交通號誌
-          trailhead: 小徑入口處
-          trunk: 快速
-          trunk_link: 快速道路聯絡
-          turning_circle: 回轉圈
+          trailhead: 步道起點
+          trunk: 快速
+          trunk_link: 快速公路匝
+          turning_circle: 迴轉空間
           turning_loop: 環形迴車道
-          unclassified: 無編制道路
+          unclassified: 未分級道路
           "yes": 道路
         historic:
           aircraft: 歷史飛行機
@@ -1002,98 +1003,98 @@ zh-TW:
           bunker: 掩體
           cannon: 古砲
           castle: 城堡
-          charcoal_pile: 歷史木炭堆
+          charcoal_pile: 古炭窯
           church: 教堂
           city_gate: 城門
           citywalls: 城牆
           fort: 堡壘
-          heritage: 
-          hollow_way: 低窪道路
-          house: 
+          heritage: 
+          hollow_way: 古道
+          house: 
           manor: 莊園
-          memorial: 紀念
+          memorial: 紀念
           milestone: 歷史里程碑
           mine: 礦場
-          mine_shaft: 
-          monument: 古蹟
+          mine_shaft: 
+          monument: 紀念建築
           railway: 歷史鐵路
           roman_road: 羅馬道路
-          ruins: 廢墟
-          rune_stone: ç\9b§æ\81©ç¬¦æ\96\87ç\9f³
-          stone: 石造史蹟
-          tomb: å¢³å¢\93
+          ruins: 遺跡
+          rune_stone: ç\9b§æ\81©ç\9f³å\88»
+          stone: 史蹟石
+          tomb: å¢\93å\9c\92
           tower: 塔
-          wayside_chapel: 路邊教
-          wayside_cross: 路邊十字架
-          wayside_shrine: 路邊神龕
-          wreck: æ®\98骸
+          wayside_chapel: 小聖
+          wayside_cross: 十字架
+          wayside_shrine: 小祠堂
+          wreck: æ²\88è\88¹
           "yes": 古蹟
         junction:
           "yes": 路口
         landuse:
           allotments: 社區農園
           aquaculture: 水產養殖
-          basin: 盆地
-          brownfield: 低污染再利用地
-          cemetery: å¢\93å\9c°
+          basin: 蓄水池
+          brownfield: 棕色地 (受污染放置待恢復重開發地)
+          cemetery: å\85¬å¢\93
           commercial: 商業區
           conservation: 保留區
-          construction: å»ºé\80 ä¸­å\8d\80å\9f\9f
+          construction: å·¥å\9c°
           farmland: 農地
-          farmyard: 農
+          farmyard: 農用設施
           forest: 人工林
-          garages: 
+          garages: 
           grass: 草坪
-          greenfield: ç©ºå\9c°
+          greenfield: ç¶ è\89²å\9c° (æ\9cªä½¿ç\94¨å¾\85é\96\8bç\99¼å\9c°)
           industrial: 工業區
           landfill: 垃圾掩埋場
           meadow: 牧草地
           military: 軍事區
           mine: 礦場
           orchard: 果園
-          plant_nursery: 植物苗圃
-          quarry: 露天礦場
+          plant_nursery: 苗圃
+          quarry: 砂石礦場
           railway: 鐵路用地
-          recreation_ground: é\81\8aæ¨\82å ´
+          recreation_ground: é\81\8aæ¨\82å\8d\80
           religious: 宗教場地
-          reservoir: 蓄水設施
-          reservoir_watershed: 蓄水設施集水區
+          reservoir: 水庫/大型蓄水池
+          reservoir_watershed: 水庫集水區
           residential: 住宅區
-          retail: 零售區
+          retail: é\9b¶å\94®å\95\86å\8d\80
           village_green: 社區綠地
           vineyard: 葡萄園
-          "yes": 土地利用
+          "yes": 土地用途
         leisure:
-          adult_gaming_centre: æ\88\90人é\81\8aæ\88²中心
+          adult_gaming_centre: æ\88\90人é\81\8aæ¨\82中心
           amusement_arcade: 電子遊樂場
-          bandstand: 演奏
-          beach_resort: 海灘遊樂區
-          bird_hide: 賞鳥亭
-          bleachers: 露天看台
-          bowling_alley: 保齡球
-          common: å\85¬å\85±ç\94¨
+          bandstand: 室外音樂
+          beach_resort: 海水浴場
+          bird_hide: 野鳥觀察屋
+          bleachers: 看台
+          bowling_alley: 保齡球球道
+          common: å\85±æ\9c\89
           dance: 舞廳
           dog_park: 遛狗公園
-          firepit: ç\81«å\9d\91
-          fishing: 垂釣
+          firepit: ç\87\9fç\81«å ´
+          fishing: 釣魚
           fitness_centre: 健身中心
-          fitness_station: 健身設施
-          garden: 
-          golf_course: 高爾夫球
-          horse_riding: é¨\8e馬中心
+          fitness_station: 戶外健身區
+          garden: 
+          golf_course: 高爾夫球
+          horse_riding: é¦¬è¡\93中心
           ice_rink: 溜冰場
-          marina: 小船塢
-          miniature_golf: 小型高爾夫球場
-          nature_reserve: è\87ªç\84¶ä¿\9dè­·å\8d\80
+          marina: 碼頭
+          miniature_golf: 迷你高爾夫球場
+          nature_reserve: è\87ªç\84¶ä¿\9dè\82²
           outdoor_seating: 戶外座椅
           park: 公園
           picnic_table: 野餐桌
-          pitch: 運動場
+          pitch: 運動場
           playground: 遊樂區
-          recreation_ground: é\81\8aæ¨\82å ´
+          recreation_ground: é\81\8aæ¨\82å\8d\80
           resort: 度假村
           sauna: 三溫暖
-          slipway: 船臺
+          slipway: 下水滑道
           sports_centre: 運動中心
           stadium: 體育館
           swimming_pool: 游泳池
@@ -1101,55 +1102,55 @@ zh-TW:
           water_park: 水上樂園
           "yes": 休閒
         man_made:
-          adit: 坑
+          adit: 坑
           advertising: 廣告
           antenna: 天線
           avalanche_protection: 雪崩防護
-          beacon: 信標
+          beacon: 信標/燈號
           beam: 橫樑
           beehive: 蜂巢
           breakwater: 防波堤
-          bridge: 橋
+          bridge: 橋
           bunker_silo: 掩體
-          cairn: ç\9f³æ¨\99
+          cairn: ç\96\8aç\9f³
           chimney: 煙囪
           clearcut: 皆伐區域
           communications_tower: 通訊塔
           crane: 起重機
           cross: 十字架
           dolphin: 繫船柱
-          dyke: 堤
-          embankment: 堤
+          dyke: 堤
+          embankment: 
           flagpole: 旗竿
-          gasometer: 儲氣
+          gasometer: 儲氣
           groyne: 丁壩
           kiln: 窯
           lighthouse: 燈塔
           manhole: 人孔
-          mast: æ\9f±
+          mast: æ¡\85
           mine: 礦場
-          mineshaft: 
-          monitoring_station: ç\9b£æ\8e§ç«\99å\8f°
+          mineshaft: 
+          monitoring_station: ç\9b£æ¸¬ç«\99
           petroleum_well: 油井
           pier: 碼頭
           pipeline: 管線
-          pumping_station: 泵站
-          reservoir_covered: 有蓋蓄水槽
+          pumping_station: 泵
+          reservoir_covered: 加蓋水庫/大型蓄水池
           silo: 筒倉
           snow_cannon: 雪砲
           snow_fence: 雪欄
-          storage_tank: 儲油罐
-          street_cabinet: è¡\97æ«\83
-          surveillance: 監視攝影機
+          storage_tank: 儲存槽
+          street_cabinet: è·¯ä¸\8a設æ\96½ç®±
+          surveillance: 監視
           telescope: 望遠鏡
           tower: 塔
-          utility_pole: 電線
-          wastewater_plant: 污水處理
+          utility_pole: 多用途電
+          wastewater_plant: 污水處理
           watermill: 水車
           water_tap: 水龍頭
           water_tower: 水塔
-          water_well: 
-          water_works: 供水設施
+          water_well: 水井
+          water_works: 淨水廠
           windmill: 風車
           works: 工廠
           "yes": 人工設施
@@ -1158,52 +1159,52 @@ zh-TW:
           barracks: 軍營
           bunker: 掩體
           checkpoint: 檢查站
-          trench: 溝渠
+          trench: 壕溝
           "yes": 軍事
         mountain_pass:
           "yes": 埡口
         natural:
           atoll: 環礁
-          bare_rock: 裸露岩石
+          bare_rock: 裸
           bay: 灣
           beach: 海灘
           cape: 海角
           cave_entrance: 洞穴入口
-          cliff: 懸崖
+          cliff: 峭壁
           coastline: 海岸線
           crater: 火山口
           dune: 沙丘
-          fell: 高原荒地
+          fell: 副寒帶、高山草苔
           fjord: 峽灣
-          forest: 管理
+          forest: 人工
           geyser: 間歇泉
           glacier: 冰河
-          grassland: 雜草地
+          grassland: 草原
           heath: 石楠荒地
-          hill: 小山
+          hill: 小山
           hot_spring: 溫泉
           island: 島嶼
           isthmus: 地峽
           land: 陸地
-          marsh: 河川濕地
-          moor: 停泊處
+          marsh: 草沼澤
+          moor: 泥炭沼
           mud: 泥地
           peak: 山峰
           peninsula: 半島
           point: 點
-          reef: 礁
-          ridge: 山脊
+          reef: 
+          ridge: 稜線
           rock: 獨立岩
           saddle: 鞍部
           sand: 沙地
-          scree: ç¢\8eç\9f³å \86
+          scree: ç¢\8eç\9f³å\9d¡
           scrub: 灌木
-          shingle: 礫石
-          spring: 泉
+          shingle: 礫石
+          spring: æ¹§æ³\89
           stone: 巨石
           strait: 海峡
-          tree: 樹木
-          tree_row: 行列樹木
+          tree: 單棵樹
+          tree_row: 一排樹
           tundra: 苔原
           valley: 谷地
           volcano: 火山
@@ -1213,29 +1214,29 @@ zh-TW:
           "yes": 自然地貌
         office:
           accountant: 會計師事務所
-          administrative: 管理局
-          advertising_agency: 廣告代理
+          administrative: 政府機關
+          advertising_agency: 廣告公司
           architect: 建築師事務所
-          association: 協會
+          association: 非營利組織
           company: 公司
-          diplomatic: 使館
+          diplomatic: 外國外交機關
           educational_institution: 教育機構
-          employment_agency: 人力仲介
-          energy_supplier: 能源供應辦公處
+          employment_agency: 就業服務/人材仲介
+          energy_supplier: 能源供應
           estate_agent: 房地產仲介
-          financial: 財務
-          government: 政府辦事處
-          insurance: 保險公司辦公室
-          it: IT 辦公室
-          lawyer: 律師
+          financial: 財務部門
+          government: 政府機關
+          insurance: 保險公司
+          it: 資訊專家
+          lawyer: 律師事務所
           logistics: 物流辦公處
           newspaper: 報社
-          ngo: 非政府組織辦公室
-          notary: 公證人
-          religion: 宗教辦公處
-          research: ç \94究室
+          ngo: 非政府組織
+          notary: 公證人事務所
+          religion: 宗教組織
+          research: ç \94ç\99¼å\96®ä½\8d
           tax_advisor: 稅務顧問
-          telecommunication: 電信業辦事處
+          telecommunication: 電信公司
           travel_agent: 旅行社
           "yes": 辦公室
         place:
@@ -1244,62 +1245,62 @@ zh-TW:
           city: 城市
           city_block: 街區
           country: 國家
-          county: 縣
+          county: 
           farm: 農田
-          hamlet: 村莊
+          hamlet: 聚落
           house: 房屋
           houses: 房屋
-          island: å³¶å¶¼
+          island: å°\8f島
           islet: 礁岩
           isolated_dwelling: 獨立住宅
-          locality: 地
-          municipality: 自治
-          neighbourhood: 
-          plot: 地塊
+          locality: 地
+          municipality: 自治
+          neighbourhood: 鄰近
+          plot: 社區
           postcode: 郵遞區號
-          quarter: 住處
-          region: 區
+          quarter: 地區
+          region: 區
           sea: 海
           square: 廣場
-          state: 
-          subdivision: 分區
-          suburb: 
+          state: 
+          subdivision: 行政分區
+          suburb: 
           town: 鄉鎮
           village: 村里
           "yes": 地點
         railway:
           abandoned: 遺跡鐵路
-          buffer_stop: 緩衝站
-          construction: 建造中鐵路
+          buffer_stop: 止衝擋
+          construction: 興建中鐵路
           disused: 廢棄鐵路
-          funicular: 纜索鐵路
+          funicular: 地索軌道鐵路
           halt: 鐵路招呼站
           junction: 鐵路交匯處
           level_crossing: 平交道
           light_rail: 輕軌
-          miniature: å¾®å\9e\8bé\90µè·¯
+          miniature: å°\8fç\81«è»\8a
           monorail: 單軌鐵路
           narrow_gauge: 窄軌鐵路
           platform: 鐵路月臺
-          preserved: 保鐵路
+          preserved: 保存線鐵路
           proposed: 規劃中鐵路
           rail: 鐵路
-          spur: 鐵路
+          spur: 鐵路專用側
           station: 鐵路車站
-          stop: 鐵路招呼站
+          stop: 鐵路停靠點
           subway: 地下鐵
           subway_entrance: 地下鐵出入口
           switch: 道岔
           tram: 路面電車軌道
           tram_stop: 路面電車停靠站
-          turntable: 轉
-          yard: 鐵路
+          turntable: 轉車台
+          yard: 鐵路調車
         shop:
-          agrarian: 農業品店
-          alcohol: 酒
+          agrarian: 農業品店
+          alcohol: 酒舖 (未開瓶)
           antiques: 古董店
-          appliance: 家用電器
-          art: 藝品店
+          appliance: 家用電器
+          art: 藝品店
           baby_goods: 嬰兒用品
           bag: 包包店
           bakery: 麵包店
@@ -1308,82 +1309,82 @@ zh-TW:
           bed: 寢具
           beverages: 飲料店
           bicycle: 自行車店
-          bookmaker: 投注處
+          bookmaker: 簽注站
           books: 書店
           boutique: 精品店
           butcher: 肉品店
-          car: 汽車
+          car: 汽車經銷商
           car_parts: 汽車零件
           car_repair: 汽車維修
           carpet: 地毯店
-          charity: 慈善商店
-          cheese: 起士店
+          charity: 公益商店
+          cheese: 起士店
           chemist: 藥妝店
-          chocolate: 巧克力店
+          chocolate: 巧克力店
           clothes: 服飾店
-          coffee: 咖啡店
-          computer: é\9b»è\85¦å\95\86åº\97
+          coffee: 咖啡豆專賣
+          computer: 電腦店
           confectionery: 甜點店
-          convenience: 便利商店
+          convenience: 便利超商
           copyshop: 複印店
           cosmetics: 化妝品店
-          craft: 工藝品供應
+          craft: 工藝用品
           curtain: 窗簾店
-          dairy: 乳品店
-          deli: 高級食
+          dairy: 乳品店
+          deli: 高級食
           department_store: 百貨商店
           discount: 特價商品店
           doityourself: DIY 用品店
-          dry_cleaning: 乾洗
+          dry_cleaning: 乾洗
           e-cigarette: 電子菸店
-          electronics: é\9b»å­\90æ\9d\90æ\96\99
+          electronics: é\9b»å\99¨
           erotic: 情趣用品店
           estate_agent: 房地產仲介
           fabric: 布料行
-          farm: 農場商
-          fashion: æ\99\82è£\9d
-          fishing: 釣魚用品
+          farm: 農產直銷
+          fashion: æµ\81è¡\8cæ\9c\8d飾
+          fishing: 釣
           florist: 花店
           food: 食品店
           frame: 相框店
           funeral_directors: 葬儀社
           furniture: 傢俱行
           garden_centre: 園藝中心
-          gas: 加油站
+          gas: 瓦斯行
           general: 一般商店
           gift: 禮品店
-          greengrocer: 生鮮食品
+          greengrocer: 果菜
           grocery: 雜貨店
           hairdresser: 理髮店
           hardware: 五金行
           health_food: 保健食品店
           hearing_aids: 助聽器
-          herbalist: 藥草供應商
-          hifi: 音響店
-          houseware: 生活用品店
+          herbalist: 藥草店/中藥行
+          hifi: 視聽音響店
+          houseware: 居家用品店
           ice_cream: 冰淇淋店
-          interior_decoration: 室內裝潢
-          jewelry: 珠寶店
+          interior_decoration: 室內擺飾
+          jewelry: 珠寶飾品
           kiosk: 販售亭
           kitchen: 廚房用品店
           laundry: 洗衣店
           locksmith: 鎖店
           lottery: 樂透
-          mall: 購物商場
+          mall: 購物中心
           massage: 按摩店
-          medical_supply: 醫療用品
+          medical_supply: 醫療器材與輔具
           mobile_phone: 行動通訊行
           money_lender: 貸款
-          motorcycle: æ©\9fè»\8aè¡\8c
-          motorcycle_repair: æ©\9f車維修行
+          motorcycle: æ\91©æ\89\98è»\8aç¶\93é\8a·å\95\86
+          motorcycle_repair: æ\91©æ\89\98車維修行
           music: 唱片行
           musical_instrument: 樂器
-          newsagent: æ\96°è\81\9e代ç\90\86å\95\86
-          nutrition_supplements: 營養補品
-          optician: 驗光師
+          newsagent: æ\9b¸å ±æ\94¤
+          nutrition_supplements: 營養補
+          optician: 眼鏡行
           organic: 有機食品店
           outdoor: 戶外用品店
-          paint: 油漆
+          paint: 油漆
           pastry: 糕餅店
           pawnbroker: 當鋪
           perfumery: 香水店
@@ -1392,68 +1393,68 @@ zh-TW:
           photo: 照相館
           seafood: 海產
           second_hand: 二手商品店
-          sewing: 縫紉
+          sewing: 縫紉材料行
           shoes: 鞋店
           sports: 體育用品店
           stationery: 文具店
-          storage_rental: 迷你倉
-          supermarket: 超級市場
+          storage_rental: 出租倉庫
+          supermarket: 超
           tailor: 裁縫店
           tattoo: 刺青屋
-          tea: è\8c¶è\88\96
+          tea: è\8c¶è\91\89è¡\8c
           ticket: 售票處
-          tobacco: 菸草販賣
+          tobacco: 香菸店
           toys: 玩具店
           travel_agency: 旅行社
-          tyres: è¼ªè\83\8e販å\94®
+          tyres: è¼ªè\83\8eè¡\8c
           vacant: 空置店舖
-          variety_store: 雜貨
+          variety_store: 均一價商
           video: 影音店
           video_games: 電子遊戲專賣店
-          wholesale: 批發
-          wine: 葡萄酒
+          wholesale: 批發量販店
+          wine: 葡萄酒
           "yes": 商店
         tourism:
-          alpine_hut: 山
+          alpine_hut: 山
           apartment: 假日公寓
-          artwork: 美工
+          artwork: 藝術品
           attraction: 景點
-          bed_and_breakfast: 家庭旅館
-          cabin: 旅遊小
-          camp_pitch: 營
+          bed_and_breakfast: B&B
+          cabin: 小木
+          camp_pitch: 營
           camp_site: 營地
           caravan_site: RV 宿營區
           chalet: 小木屋
-          gallery: 圖庫
-          guest_house: 賓館
-          hostel: 旅舍
-          hotel: 酒店
-          information: 旅遊中心
+          gallery: 藝廊
+          guest_house: 民宿
+          hostel: 青年旅舍
+          hotel: 旅館
+          information: 資訊服務處
           motel: 汽車旅館
           museum: 博物館
-          picnic_site: é\87\8eé¤\90å\9c°
+          picnic_site: é\87\8eé¤\90å\8d\80
           theme_park: 主題公園
           viewpoint: 觀景點
-          wilderness_hut: 荒野小
+          wilderness_hut: 避難山
           zoo: 動物園
         tunnel:
-          building_passage: 建築物通道
+          building_passage: 建築物穿堂
           culvert: 涵管
           "yes": 隧道
         waterway:
           artificial: 人工水道
-          boatyard: è\88¹å¡¢
-          canal: 運河
+          boatyard: è\88¹å» 
+          canal: 運河/大水渠
           dam: 水壩
           derelict_canal: 廢棄運河
-          ditch: å°\8fæº\9d渠
-          dock: 碼頭
+          ditch: å\9c\9fæº\9d
+          dock: 船塢
           drain: 溝渠
-          lock: 水門
-          lock_gate: 船閘
+          lock: 船閘
+          lock_gate: 閘門
           mooring: 停泊處
           rapids: 急流
-          river: 河
+          river: 河
           stream: 小溪
           wadi: 乾河
           waterfall: 瀑布
@@ -1462,18 +1463,18 @@ zh-TW:
       admin_levels:
         level2: 國界
         level3: 區界
-        level4: 
+        level4: 
         level5: 區界
         level6: 縣界
-        level7: 自治
+        level7: 自治
         level8: 市界
         level9: 村里界
-        level10: 區邊界
-        level11: 社區邊
+        level10: 區邊界
+        level11: 鄰近區
       types:
         cities: 城市
         towns: 鄉鎮
-        places: 地
+        places: 地
     results:
       no_results: 找不到結果
       more_results: 更多結果
@@ -1500,7 +1501,7 @@ zh-TW:
       reported_item: 已回報項目
       states:
         ignored: 已忽略
-        open: 開
+        open: 開
         resolved: 已解決
     show:
       title: '%{status} 問題 #%{issue_id}'
@@ -1537,17 +1538,17 @@ zh-TW:
         note: '註記 #%{note_id}'
   issue_comments:
     create:
-      comment_created: 的評論已成功建立
-      issue_reassigned: 已建立的評論,並重新分配問題
+      comment_created: 的評論已成功建立
+      issue_reassigned: 已建立的評論,並重新分配問題
   reports:
     new:
       title_html: 回報 %{link}
       missing_params: 無法建立新的回報
       disclaimer:
-        intro: 發送的回報給站台仲裁員前,請確認:
-        not_just_mistake: 確定了該問題內容並非誤會
-        unable_to_fix: 您無法自行或在您的社群成員協助下修正問題
-        resolve_with_user: 已準備嘗試解決使用者關注的問題
+        intro: 發送的回報給站台仲裁員前,請確認:
+        not_just_mistake: 確定了該問題內容並非誤會
+        unable_to_fix: 你無法自行、或在社群成員協助下修正問題
+        resolve_with_user: 已準備嘗試解決使用者關注的問題
       categories:
         diary_entry:
           spam_label: 此日記項目為/含有垃圾訊息
@@ -1571,7 +1572,7 @@ zh-TW:
           abusive_label: 此註記有辱駡內容
           other_label: 其它
     create:
-      successful_report: 已成功登記的回報
+      successful_report: 已成功登記的回報
       provide_details: 請提供所需的詳情
   layouts:
     project_name:
@@ -1597,7 +1598,7 @@ zh-TW:
     edit_with: 以 %{editor} 編輯
     tag_line: 自由的 wiki 世界地圖
     intro_header: 歡迎來到 OpenStreetMap!
-    intro_text: OpenStreetMap 是一幅世界地圖,由像您這樣的人們所建立,在開放授權下可以自由使用。
+    intro_text: OpenStreetMap 是一份全世界的地圖,由像你這樣的人們所建立,在開放授權下可以自由使用。
     intro_2_create_account: 建立使用者帳號
     hosting_partners_2024_html: 由%{fastly}、%{corpmembers},和其他%{partners}支援代管。
     partners_fastly: Fastly
@@ -1606,6 +1607,7 @@ zh-TW:
     tou: 使用條款
     osm_offline: OpenStreetMap 資料庫目前正在離線,直到必要的資料庫維護工作完成為止。
     osm_read_only: OpenStreetMap 資料庫目前處於唯讀模式,直到必要的資料庫維護工作完成為止。
+    nothing_to_preview: 無可預覽內容。
     donate: 以 %{link} 給硬體升級基金來支援 OpenStreetMap。
     help: 說明
     about: 關於
@@ -1623,34 +1625,37 @@ zh-TW:
     diary_comment_notification:
       description: 'OpenStreetMap 日記項目 #%{id}'
       subject: '[OpenStreetMap] %{user} 已評論日記項目'
-      hi: '%{to_user} 好,'
+      hi: '%{to_user} 好,'
       header: '%{from_user} 評論主旨為 %{subject} 的 OpenStreetMap 日記項目:'
       header_html: '%{from_user} 評論主旨為 %{subject} 的 OpenStreetMap 日記項目:'
-      footer: 也可以在 %{readurl} 閱讀評論,並且在 %{commenturl} 留下評論,或在 %{replyurl} 發送訊息給作者
-      footer_html: 也可以在 %{readurl} 閱讀評論,並且在 %{commenturl} 留下評論,或在 %{replyurl} 發送訊息給作者
-      footer_unsubscribe: 可以在%{unsubscribeurl}取消訂閱討論
-      footer_unsubscribe_html: 可以在%{unsubscribeurl}取消訂閱討論
+      footer: 也可以在 %{readurl} 閱讀評論,並且在 %{commenturl} 留下評論,或在 %{replyurl} 發送訊息給作者
+      footer_html: 也可以在 %{readurl} 閱讀評論,並且在 %{commenturl} 留下評論,或在 %{replyurl} 發送訊息給作者
+      footer_unsubscribe: 可以在%{unsubscribeurl}取消訂閱討論
+      footer_unsubscribe_html: 可以在%{unsubscribeurl}取消訂閱討論
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: '%{to_user} 您好,'
-      header: '%{from_user} 透過 OpenStreetMap 寄給主旨為 %{subject} 的訊息:'
-      header_html: '%{from_user} 透過 OpenStreetMap 寄給主旨為 %{subject} 的訊息:'
-      footer: 也可以在 %{readurl} 閱讀訊息,並且在 %{replyurl} 發送訊息給作者
-      footer_html: 也可以在 %{readurl} 閱讀訊息,並且在 %{replyurl} 發送訊息給作者
+      header: '%{from_user} 透過 OpenStreetMap 寄給主旨為 %{subject} 的訊息:'
+      header_html: '%{from_user} 透過 OpenStreetMap 寄給主旨為 %{subject} 的訊息:'
+      footer: 也可以在 %{readurl} 閱讀訊息,並且在 %{replyurl} 發送訊息給作者
+      footer_html: 也可以在 %{readurl} 閱讀訊息,並且在 %{replyurl} 發送訊息給作者
     friendship_notification:
       hi: 嗨 %{to_user},
-      subject: '[OpenStreetMap] %{user} 將您加入為好友'
-      had_added_you: '%{user} 已在 OpenStreetMap 將您加入為好友。'
-      see_their_profile: 可以在 %{userurl} 查看他的基本資料。
-      see_their_profile_html: 可以在 %{userurl} 查看他的基本資料。
-      befriend_them: 可以在 %{befriendurl} 把他加入為好友。
-      befriend_them_html: 可以在 %{befriendurl} 把他加入為好友。
+      subject: '[OpenStreetMap] %{user} 將你加為好友'
+      had_added_you: '%{user} 已在 OpenStreetMap 將你加為好友。'
+      see_their_profile: 可以在 %{userurl} 查看他的基本資料。
+      see_their_profile_html: 可以在 %{userurl} 查看他的基本資料。
+      befriend_them: 可以在 %{befriendurl} 把他加入為好友。
+      befriend_them_html: 可以在 %{befriendurl} 把他加入為好友。
     gpx_description:
-      description_with_tags_html: 看起來似乎是您的 GPX 檔案%{trace_name}帶有%{trace_description}描述而且沒有標籤:%{tags}
-      description_with_no_tags_html: 看起來似乎是您的 GPX 檔案%{trace_name}帶有%{trace_description}描述而且沒有標籤
+      description_with_tags: 看起來似乎是你的 GPX 檔案%{trace_name}帶有%{trace_description}描述而且沒有標籤:%{tags}
+      description_with_tags_html: 看起來似乎是你的 GPX 檔案%{trace_name}帶有%{trace_description}描述而且沒有標籤:%{tags}
+      description_with_no_tags: 看起來似乎是你的 GPX 檔案%{trace_name}帶有%{trace_description}描述而且沒有標籤
+      description_with_no_tags_html: 看起來似乎是你的 GPX 檔案%{trace_name}帶有%{trace_description}描述而且沒有標籤
     gpx_failure:
-      hi: '%{to_user} 好,'
+      hi: '%{to_user} 好,'
       failed_to_import: 看來匯入失敗。錯誤訊息為:
+      more_info: 更多關於 GPX 匯入失敗的資訊與如何避免,可在 %{url} 查詢。
       more_info_html: 更多關於 GPX 匯入失敗的資訊與如何避免,可在 %{url} 查詢。
       subject: '[OpenStreetMap] GPX 匯入失敗'
     gpx_success:
@@ -1658,35 +1663,37 @@ zh-TW:
       loaded:
         one: 成功載入 %{count} 個可能軌跡點中的 %{trace_points} 個。
         other: 成功載入 %{count} 個可能軌跡點中的 %{trace_points} 個。
-      all_your_traces_html: 您可以在 %{url} 找到所有您上傳成功的 GPX 軌跡。
+      trace_location: 你的軌跡已在 %{trace_url} 上可用
+      all_your_traces: 你可以在 %{url} 找到所有上傳成功的 GPX 軌跡
+      all_your_traces_html: 你可以在 %{url} 找到所有上傳成功的 GPX 軌跡。
       subject: '[OpenStreetMap] GPX 匯入成功'
     signup_confirm:
       subject: '[OpenStreetMap] 歡迎加入 OpenStreetMap'
-      greeting: 好!
-      created: 有人 (希望是) 剛在 %{site_url} 建立了帳號。
-      confirm: 在我們作出任何動作之前,我們需要確認這是提出的要求。如果確實是這樣,請按以下連結,以確認你的帳號:
+      greeting: 好!
+      created: 有人 (希望是) 剛在 %{site_url} 建立了帳號。
+      confirm: 在我們作出任何動作之前,我們需要確認這是提出的要求。如果確實是這樣,請按以下連結,以確認你的帳號:
       welcome: 在確認你的帳號後,我們將提供一些額外的訊息,幫助你開始使用 OpenStreetMap。
     email_confirm:
-      subject: '[OpenStreetMap] 確認您的電子郵件地址'
+      subject: '[OpenStreetMap] 確認你的電子郵件信箱'
       greeting: 您好,
-      hopefully_you: 有人 (希望是您) 希望在 %{server_url} 更改電子郵件地址至 %{new_address} 。
-      click_the_link: 如果這是,請按下列連結確認此變更。
+      hopefully_you: 有人 (希望是你) 想在 %{server_url} 更改電子郵件信箱為 %{new_address} 。
+      click_the_link: 如果這是,請按下列連結確認此變更。
     lost_password:
       subject: '[OpenStreetMap] 密碼重設要求'
-      greeting: 好,
-      hopefully_you: 有人 (或許是您) 要求將以此電子郵件地址註冊的 openstreetmap.org 帳號,重設密碼。
-      click_the_link: 如果這是您,請按下列連結重設您的密碼。
+      greeting: 好,
+      hopefully_you: 有人 (或許是你) 要求將這個電子郵件信箱註冊的 openstreetmap.org 帳號重設密碼。
+      click_the_link: 如果這是你,請按下列連結重設密碼。
     note_comment_notification:
       description: 'OpenStreetMap 註記 #%{id}'
       anonymous: 匿名使用者
-      greeting: 好,
+      greeting: 好,
       commented:
-        subject_own: '[OpenStreetMap] %{commenter} å\9c¨æ\82¨ç\9a\84註è¨\98評論'
-        subject_other: '[OpenStreetMap] %{commenter} å°±æ\82¨æ\84\9fè\88\88趣ç\9a\84註è¨\98評論'
-        your_note: '%{commenter} å\9c¨ %{place} é\99\84è¿\91ç\9a\84å\9c°å\9c\96註è¨\98評論。'
-        your_note_html: '%{commenter} å\9c¨ %{place} é\99\84è¿\91ç\9a\84å\9c°å\9c\96註è¨\98評論。'
-        commented_note: '%{commenter} å\9c¨ä½ æ\84\9fè\88\88趣ç\9a\84å\9c°å\9c\96註è¨\98評論。該註記在 %{place} 附近。'
-        commented_note_html: '%{commenter} å\9c¨ä½ æ\84\9fè\88\88趣ç\9a\84å\9c°å\9c\96註è¨\98評論。該註記在 %{place} 附近。'
+        subject_own: '[OpenStreetMap] %{commenter} å°\8dä½ ç\9a\84註è¨\98å\81\9aäº\86評論'
+        subject_other: '[OpenStreetMap] %{commenter} å°\8dä½ æ\84\9fè\88\88趣ç\9a\84註è¨\98å\81\9aäº\86評論'
+        your_note: '%{commenter} å°\8d %{place} é\99\84è¿\91ç\9a\84å\9c°å\9c\96註è¨\98å\81\9aäº\86評論。'
+        your_note_html: '%{commenter} å°\8d %{place} é\99\84è¿\91ç\9a\84å\9c°å\9c\96註è¨\98å\81\9aäº\86評論。'
+        commented_note: '%{commenter} å°\8dä½ æ\84\9fè\88\88趣ç\9a\84å\9c°å\9c\96註è¨\98å\81\9aäº\86評論。該註記在 %{place} 附近。'
+        commented_note_html: '%{commenter} å°\8dä½ æ\84\9fè\88\88趣ç\9a\84å\9c°å\9c\96註è¨\98å\81\9aäº\86評論。該註記在 %{place} 附近。'
       closed:
         subject_own: '[OpenStreetMap] %{commenter} 解決你其中一筆註記 %{commenter}'
         subject_other: '[OpenStreetMap]%{commenter} 已解決一項你感興趣的註記'
@@ -1699,8 +1706,8 @@ zh-TW:
         subject_other: '[OpenStreetMap] %{commenter} 再次開啟你感興趣的註記。'
         your_note: '%{commenter} 已經再次開啟你其中一筆接近 %{place} 的地圖註記。'
         your_note_html: '%{commenter} 已經再次開啟你其中一筆接近 %{place} 的地圖註記。'
-        commented_note: '%{commenter} 重新開啟了一個曾評論的地圖註記。該註記位於 %{place} 附近。'
-        commented_note_html: '%{commenter} 重新開啟了一個曾評論的地圖註記。該註記位於 %{place} 附近。'
+        commented_note: '%{commenter} 重新開啟了一個曾評論的地圖註記。該註記位於 %{place} 附近。'
+        commented_note_html: '%{commenter} 重新開啟了一個曾評論的地圖註記。該註記位於 %{place} 附近。'
       details: 關於註記的更多詳細資料可在 %{url} 找到。
       details_html: 在%{url}回覆或是瞭解更多有關註記的訊息。
     changeset_comment_notification:
@@ -1708,43 +1715,43 @@ zh-TW:
       hi: 嗨 %{to_user},
       greeting: 您好,
       commented:
-        subject_own: '[OpenStreetMap] %{commenter} å\9c¨æ\82¨ç\9a\84è®\8aæ\9b´é\9b\86è©\95è«\96'
-        subject_other: '[OpenStreetMap] %{commenter} å°±æ\82¨æ\84\9fè\88\88趣ç\9a\84è®\8aæ\9b´é\9b\86è©\95è«\96'
-        your_changeset: '%{commenter}於 %{time} 在您的變更集之一裡留下了評論'
-        your_changeset_html: '%{commenter}於 %{time} 在您的變更集之一裡留下了評論'
-        commented_changeset: '%{commenter}於 %{time} 在您監視的由%{changeset_author}所建立變更集裡留下了評論'
-        commented_changeset_html: '%{commenter}於 %{time} 在您監視的由%{changeset_author}所建立變更集裡留下了評論'
+        subject_own: '[OpenStreetMap] %{commenter} å°\8dä½ ç\9a\84è®\8aæ\9b´é\9b\86å\81\9aäº\86è©\95è«\96'
+        subject_other: '[OpenStreetMap] %{commenter} å°\8dä½ æ\84\9fè\88\88趣ç\9a\84è®\8aæ\9b´é\9b\86å\81\9aäº\86è©\95è«\96'
+        your_changeset: '%{commenter}於 %{time} 在你的變更集做了評論'
+        your_changeset_html: '%{commenter}於 %{time} 在你的變更集做了評論'
+        commented_changeset: '%{commenter}於 %{time} 在你監視、由%{changeset_author}建立的變更集做了評論'
+        commented_changeset_html: '%{commenter}於 %{time} 在你監視、由%{changeset_author}建立的變更集做了評論'
         partial_changeset_with_comment: 評論 "%{changeset_comment}"
         partial_changeset_with_comment_html: 評論 "%{changeset_comment}"
         partial_changeset_without_comment: 沒有評論
       details: 在 %{url} 回覆或瞭解更多有關於變更集的資訊。
       details_html: 在 %{url} 回覆或瞭解更多有關變更集的資訊。
-      unsubscribe: 可以在 %{url} 取消訂閱此變更集的更新內容。
-      unsubscribe_html: 可以在 %{url} 取消訂閱此變更集的更新內容。
+      unsubscribe: 可以在 %{url} 取消訂閱此變更集的更新內容。
+      unsubscribe_html: 可以在 %{url} 取消訂閱此變更集的更新內容。
   confirmations:
     confirm:
-      heading: 請檢查您的電子郵件!
-      introduction_1: æ\88\91å\80\91å¯\84給æ\82¨一封確認電子郵件。
+      heading: 檢查你的電子郵件!
+      introduction_1: æ\88\91å\80\91å·²ç¶\93å¯\84給你一封確認電子郵件。
       introduction_2: 按電子郵件中的連結以確認你的帳號,然後你就可以開始繪製地圖。
-      press confirm button: 按下確認按鈕以開啟的帳號。
+      press confirm button: 按下確認按鈕以開啟的帳號。
       button: 確認
-      success: 已確認您的帳號,感謝您的註冊!
+      success: 已確認你的帳號,感謝你的註冊!
       already active: 該帳號已經確認。
       unknown token: 確認碼已經過期或不存在。
-      resend_html: 如果要我們重新發送確認郵件,%{reconfirm_link}。
+      resend_html: 如果要我們重新發送確認郵件,%{reconfirm_link}。
       click_here: 在此點擊
     confirm_resend:
       failure: 找不到使用者 %{name}。
     confirm_email:
       heading: 確認電子郵件地址的變更
-      press confirm button: 按下確認按鈕以確認的新電子郵件地址。
+      press confirm button: 按下確認按鈕以確認的新電子郵件地址。
       button: 確認
-      success: 已確認變更的電子郵件地址!
-      failure: 電子郵件地址已使用此權杖確認過。
+      success: 已確認變更的電子郵件地址!
+      failure: 已有電子郵件地信箱使用此授權密鑰認證過。
       unknown_token: 確認碼已經過期或不存在。
     resend_success_flash:
-      confirmation_sent: 我們已發送新的確認通知到 %{email},一旦您確認您的帳號後,就能取得製圖
-      whitelist: 如果用來發送確認請求的信箱有反垃圾郵件系統,請確認有將 %{sender} 將入白名單,因為我們無法回覆任何確認請求。
+      confirmation_sent: 我們已發送新的確認通知到 %{email},一旦你確認你的帳號後,就能取得製圖權限
+      whitelist: 如果用來發送確認請求的信箱有反垃圾郵件系統,請確認有將 %{sender} 將入白名單,因為我們無法回覆任何確認請求。
   messages:
     inbox:
       title: 收件匣
@@ -1755,7 +1762,7 @@ zh-TW:
       old_messages:
         one: '%{count} 項舊訊息'
         other: '%{count} 項舊訊息'
-      no_messages_yet_html: 還沒有訊息。何不跟一些 %{people_mapping_nearby_link} 接觸看看?
+      no_messages_yet_html: 還沒有訊息。何不跟一些 %{people_mapping_nearby_link} 接觸看看?
       people_mapping_nearby: 在附近製圖的人
     messages_table:
       from: 寄件者
@@ -1775,7 +1782,7 @@ zh-TW:
       back_to_inbox: 回到收件匣
     create:
       message_sent: 已傳送訊息
-      limit_exceeded: 您最近寄出了大量的訊息。在嘗試寄出其他訊息之前請稍候。
+      limit_exceeded: 你最近寄出了大量的訊息,要再寄出訊息前請稍候
     no_such_message:
       title: 沒有這個訊息
       heading: 沒有這個訊息
@@ -1784,24 +1791,24 @@ zh-TW:
       title: 寄件匣
       actions: 操作
       messages:
-        one: 有 %{count} 項已寄訊息
-        other: 有 %{count} 項已寄訊息
-      no_sent_messages_html: 還沒有已寄訊息。何不跟一些 %{people_mapping_nearby_link} 接觸看看?
+        one: 有 %{count} 項已寄訊息
+        other: 有 %{count} 項已寄訊息
+      no_sent_messages_html: 還沒有已寄訊息。何不跟一些 %{people_mapping_nearby_link} 接觸看看?
       people_mapping_nearby: 附近製作地圖的使用者
     muted:
       title: 已忽視訊息
       messages:
         one: 1 條忽視訊息
-        other: 有 %{count} 條忽視訊息
+        other: 有 %{count} 條忽視訊息
     reply:
-      wrong_user: 您已經以「%{user}」的身份登入,但是您想要回覆的訊息並非寄給這個使用者。請以正確的使用者身份登入以回覆這個訊息。
+      wrong_user: 你已經以「%{user}」的身份登入,但是你想要回覆的訊息並非寄給這個使用者。請以正確的使用者身份登入以回覆這個訊息。
     show:
       title: 閱讀訊息
       reply_button: 回覆
       unread_button: 標記為未讀
       destroy_button: 刪除
       back: 返回
-      wrong_user: 您已經以「%{user}」的身份登入,但是您想要閱讀的訊息並非寄給那個使用者。請以正確的使用者身份登入以閱讀它。
+      wrong_user: 你已經以「%{user}」的身份登入,但是你想要閱讀的訊息並非寄給那個使用者。請以正確的使用者身份登入以閱讀它。
     sent_message_summary:
       destroy_button: 刪除
     heading:
@@ -1822,17 +1829,17 @@ zh-TW:
       heading: 忘記密碼?
       email address: 電子郵件地址
       new password button: 重設密碼
-      help_text: 輸入您的電子郵件地址來註冊,我們會將連結送至該地址,而您可以用它來重設密碼。
+      help_text: 輸入你的電子郵件地址來註冊,我們會將連結送至該地址,而你可以用它來重設密碼。
     create:
-      send_paranoid_instructions: 如果您的電子郵件地址存於我們的資料庫裡,您將在幾分鐘內收到密碼恢復連結的電郵
+      send_paranoid_instructions: 如果你的電子郵件地址存於我們的資料庫裡,你將在幾分鐘內收到有可恢復密碼連結的電子郵件
     edit:
       title: 重設密碼
       heading: 重設 %{user} 的密碼
       reset: 重設密碼
-      flash token bad: æ\89¾ä¸\8då\88°è©²æ¬\8aæ\9d\96,可能要檢查一下 URL?
+      flash token bad: æ\89¾ä¸\8då\88°è©²æ\8e\88æ¬\8aå¯\86é\91°,可能要檢查一下 URL?
     update:
-      flash changed: 的密碼已經變更。
-      flash token bad: æ\89¾ä¸\8då\88°è©²æ¬\8aæ\9d\96,可能要檢查一下 URL?
+      flash changed: 的密碼已經變更。
+      flash token bad: æ\89¾ä¸\8då\88°è©²æ\8e\88æ¬\8aå¯\86é\91°,可能要檢查一下 URL?
   preferences:
     show:
       title: 我的偏好設定
@@ -1857,14 +1864,14 @@ zh-TW:
         gravatar: 使用 Gravatar
         what_is_gravatar: 什麼是 Gravatar?
         disabled: Gravatar已停用。
-        enabled: 您的Gravatar顯示功能已啟用。
+        enabled: 你的 Gravatar 顯示功能已啟用。
       new image: 加入圖片
       keep image: 保持目前的圖片
       delete image: 移除目前的圖片
       replace image: 取代目前的圖片
       image size hint: ' (方形圖片至少 100x100 的效果最好)'
       home location: 家的位置
-      no home location: 尚未輸入家的位置。
+      no home location: 尚未輸入家的位置。
       update home location on click: 當我點選地圖時更新家的位置?
       show: 顯示
       delete: 刪除
@@ -1880,7 +1887,7 @@ zh-TW:
       email or username: 電子郵件地址或使用者名稱
       password: 密碼
       remember: 記住我
-      lost password link: 忘記您的密碼
+      lost password link: 忘記密碼了
       login_button: 登入
       register now: 立即註冊
       with external: 或者使用第三方服務登入
@@ -1891,8 +1898,8 @@ zh-TW:
       heading: 從 OpenStreetMap 登出
       logout_button: 登出
     suspended_flash:
-      suspended: 抱歉,由於可疑活動,的帳戶已被暫停。
-      contact_support_html: 如果您想商討此事,請聯繫 %{support_link}。
+      suspended: 抱歉,由於可疑活動,的帳戶已被暫停。
+      contact_support_html: 如果你想討論此事,請聯絡 %{support_link}。
       support: 支援
   shared:
     markdown_help:
@@ -1934,18 +1941,18 @@ zh-TW:
       community_driven_community_blogs: 社群部落格
       community_driven_osm_foundation: OSM 基金會
       open_data_title: 開放資料
-      open_data_1_html: OpenStreetMap 是%{open_data}的:您可以自由地使用作任何用途,前提是您須標明作者為 OpenStreetMap
-        及其貢獻者。若在我們的資料上作修改或以之透過某些方式衍生其他資料,則只可依相同授權條款散佈有關成果。詳情請參閱%{copyright_license_link}。
+      open_data_1_html: OpenStreetMap 是%{open_data}的:你可以自由地使用作任何用途,前提是必須標明作者為 OpenStreetMap
+        及其貢獻者。若在我們的資料上作修改或以之透過某些方式衍生其他資料,則只可依相同授權條款散佈有關成果。詳情請參閱%{copyright_license_link}。
       open_data_open_data: 開放資料
       open_data_copyright_license: 版權與授權條款頁面
       legal_title: 法律資訊
-      legal_1_1_html: 本站以及許多相關的服務正式由%{openstreetmap_foundation_link}(OSMF)代表社群所營運。所有使用的
+      legal_1_1_html: 本站以及許多相關的服務正式由%{openstreetmap_foundation_link} (OSMF) 代表社群所營運。所有使用的
         OSMF 運行服務皆符合我們的%{terms_of_use_link}、%{aup_link}、和%{privacy_policy_link}。
       legal_1_1_openstreetmap_foundation: OpenStreetMap 基金會
       legal_1_1_terms_of_use: 使用條款
       legal_1_1_aup: 可接受使用方針
       legal_1_1_privacy_policy: 隱私權政策
-      legal_2_1_html: 若有授權、版權、或其他法律上的問題,請%{contact_the_osmf_link}。
+      legal_2_1_html: 若有授權、版權、或其他法律上的問題,請%{contact_the_osmf_link}。
       legal_2_1_contact_the_osmf: 聯絡 OSMF
       legal_2_2_html: OpenStreetMap,查看地圖狀態的放大鏡模樣標誌是%{registered_trademarks_link}。
       legal_2_2_registered_trademarks: OSMF 的註冊商標
@@ -1958,28 +1965,29 @@ zh-TW:
         english_link: 英文原文
       native:
         title: 關於此頁
-        html: 您正在檢閱英文版本的版權頁。你可以返回這個網頁的 %{native_link},您亦可以停止閱讀版權並 %{mapping_link}。
+        html: 你正在檢閱英文版本的版權頁。你可以返回這個網頁的 %{native_link},也可以停止閱讀版權並 %{mapping_link}。
         native_link: 繁體中文版
         mapping_link: 開始製圖
       legal_babble:
-        introduction_1_html: OpenStreetMap%{registered_trademark_link}是%{open_data},透過%{osm_foundation_link}(OSMF)在%{odc_odbl_link}(ODbL)下授權。
+        introduction_1_html: OpenStreetMap%{registered_trademark_link}是%{open_data},透過%{osm_foundation_link}
+          (OSMF) 在%{odc_odbl_link}(ODbL)下授權。
         introduction_1_open_data: 開放資料
         introduction_1_odc_odbl: 開放資料共享開放資料庫授權
         introduction_1_osm_foundation: OpenStreetMap 基金會
-        introduction_2_html: 您可以自由地複製、散布、傳輸及修改我們的資料,前提是您須標明作者為 OpenStreetMap 及其貢獻者。若您在我們的資料上作變動或以此來建立其他資料,您只能依照相同授權條款來散佈成果。%{legal_code_link}有詳述您的權責。
+        introduction_2_html: 你可以自由複製、散布、傳輸及修改我們的資料,前提是必須標明作者為 OpenStreetMap 及其貢獻者。若在我們的資料上作變動或以此來建立其他資料,你只能依照相同授權條款來散佈成果。%{legal_code_link}有詳述你的權責。
         introduction_2_legal_code: 法律條款
         introduction_3_html: 我們的文件是依據 %{creative_commons_link} 授權條款(CC BY-SA 2.0)獲得許可。
         introduction_3_creative_commons: 創用 CC 姓名標示-相同方式分享
         introduction_3_creative_commons_url: https://creativecommons.org/licenses/by-sa/2.0/deed.zh_TW
         credit_title_html: 如何標明作者是 OpenStreetMap
-        credit_1_html: 當您使用 OpenStreetMap 的資料,您會被要求遵循兩件事:
+        credit_1_html: 當你使用 OpenStreetMap 的資料,你會被要求遵循兩件事:
         credit_2_1: 透過顯示我們的版權聲明為 OpenStreetMap 提供屬名。
         credit_2_2: 明確資料在開放資料共享開放資料庫授權下可用。
-        credit_3_html: 對於版權聲明的顯示,我們會依據您如何使用我們的資料,而有不同的要求。例如,不同的規則要如何顯示版權聲明,具體取決於您是否有建立可瀏覽的地圖、列印的地圖、或靜態圖片。完整的詳細資訊要求可以在%{attribution_guidelines_link}上查看。
+        credit_3_html: 對於版權聲明的顯示,我們會依據你如何使用我們的資料,而有不同的要求。例如:不同的規則要如何顯示版權聲明,具體取決於你是否有建立可瀏覽的地圖、列印的地圖、或靜態圖片。完整的詳細資訊要求可以在%{attribution_guidelines_link}上查看。
         credit_3_attribution_guidelines: 姓名標示指南
         credit_4_1_html: |-
-          請明確表示資料在開放資料庫授權條款下可用,可以連結到%{this_copyright_page_link}。
-          相對地,如果您以資料表來分發 OSM,您可以命名並直接連結到授權條款。在一些無法作出連結的媒體(例如印刷品),我們建議您引導您的讀者到 openstreetmap.org(像是註明「OpenStreetMap」的完整網址)以及 opendatacommons.org。
+          請明確表示資料在開放資料庫授權條款下可用,可以連結到%{this_copyright_page_link}。
+          相對地,如果你以資料表來分發 OSM,你可以命名並直接連結到授權條款。在一些無法作出連結的媒體 (例如印刷品),我們建議引導你的讀者到 openstreetmap.org (像是註明「OpenStreetMap」的完整網址) 以及 opendatacommons.org。
           在此範例中,版權相關聲明會出現在地圖的角落處。
         credit_4_1_this_copyright_page: 此版權頁面
         attribution_example:
@@ -1996,8 +2004,8 @@ zh-TW:
         more_2_1_nominatim_usage_policy: 提名使用方針
         contributors_title_html: 我們的貢獻者
         contributors_intro_html: 我們的貢獻者為成千上萬的人。我們也收納了從國家測繪機構及其他來源等取得的開放版權資料,其中包括:
-        contributors_at_credit_html: '%{austria}:包含來自%{stadt_wien_link}(依據%{cc_by_link})、%{land_vorarlberg_link}、與
-          Land Tirol(依據%{cc_by_at_with_amendments_link})的資料。'
+        contributors_at_credit_html: '%{austria}:包含來自%{stadt_wien_link} (依據%{cc_by_link})、%{land_vorarlberg_link}、與
+          Land Tirol (依據%{cc_by_at_with_amendments_link}) 的資料。'
         contributors_at_austria: 奧地利
         contributors_at_stadt_wien: 維也納
         contributors_at_cc_by: 創用 CC 姓名標示
@@ -2009,12 +2017,12 @@ zh-TW:
         contributors_au_geoscape_australia: Geoscape Australia
         contributors_au_cc_licence: 創用 CC 姓名標示 4.0 國際授權條款(CC BY 4.0)
         contributors_au_cc_licence_url: https://creativecommons.org/licenses/by/4.0/deed.zh_TW
-        contributors_ca_credit_html: '%{canada}:包含來自 GeoBase&reg;、GeoGratis(&copy;加拿大自然資源處)、CanVec(&copy;加拿大自然資源處)、和
-          StatCan(地理部,加拿大統計局)的資料。'
+        contributors_ca_credit_html: '%{canada}:包含來自 GeoBase&reg;、GeoGratis (&copy;加拿大自然資源處)、CanVec
+          (&copy;加拿大自然資源處)、和 StatCan (地理部,加拿大統計局) 的資料。'
         contributors_ca_canada: 加拿大
         contributors_cz_credit_html: '%{czechia}:包含來自土地測量局與依據%{cc_licence_link}許可的地籍資料'
         contributors_cz_czechia: 捷克
-        contributors_cz_cc_licence: 創用 CC 姓名標示 4.0 國際授權條款(CC BY 4.0)
+        contributors_cz_cc_licence: 創用 CC 姓名標示 4.0 國際授權條款 (CC BY 4.0)
         contributors_cz_cc_licence_url: https://creativecommons.org/licenses/by/4.0/deed.zh-hant
         contributors_fi_credit_html: '%{finland}:包含來自芬蘭測量局地形資料庫與其他資料集的資料,依據%{nlsfi_license_link}授權。'
         contributors_fi_finland: 芬蘭
@@ -2027,7 +2035,7 @@ zh-TW:
         contributors_hr_croatia: 克羅埃西亞
         contributors_hr_dgu: 克羅埃西亞國家大地測量局
         contributors_hr_open_data_portal: 國家開放資料入口網站
-        contributors_nl_credit_html: '%{netherlands}:包含 &copy; AND 資料,2007(%{and_link})'
+        contributors_nl_credit_html: '%{netherlands}:包含 &copy; AND 資料,2007 (%{and_link})'
         contributors_nl_netherlands: 荷蘭
         contributors_nz_credit_html: '%{new_zealand}:包含來自 %{linz_data_service_link}與基於%{cc_by_link}
           的重複使用授權條款。'
@@ -2061,26 +2069,26 @@ zh-TW:
         infringement_title_html: 侵犯版權
         infringement_1_html: OSM 的貢獻者會被提醒,絕不要在沒有版權所有人的明確淮許下,加入來自任何有版權的來源的資料 (如 Google
           地圖或印刷地圖)。
-        infringement_2_1_html: 如果認為有受版權保護的素材被不恰當地加到 OpenStreetMap 資料庫或本網站,請參考我們的%{takedown_procedure_link},或直接在我們的%{online_filing_page_link}反應。
+        infringement_2_1_html: 如果認為有受版權保護的素材被不恰當地加到 OpenStreetMap 資料庫或本網站,請參考我們的%{takedown_procedure_link},或直接在我們的%{online_filing_page_link}反應。
         infringement_2_1_takedown_procedure: 侵權處理程序
         infringement_2_1_online_filing_page: 線上申請頁面
         trademarks_title: 商標
         trademarks_1_1_html: OpenStreetMap、網站上的放大鏡標誌,和 State of the Map 是 OpenStreetMap
-          基金會的註冊商標。如果對商標的使用有任何疑問,請參閱我們的%{trademark_policy_link}。
+          基金會的註冊商標。如果對商標的使用有任何疑問,請參閱我們的%{trademark_policy_link}。
         trademarks_1_1_trademark_policy: 商標方針
     index:
-      js_1: 使用不支援 JavaScript 的瀏覽器,或者停用了 JavaScript。
+      js_1: 使用不支援 JavaScript 的瀏覽器,或者停用了 JavaScript。
       js_2: OpenStreetMap 使用 JavaScript 讓地圖更平順。
       license:
         copyright: 版權所有,由 OpenStreetMap 及貢獻者根據開放的授權協議提供
       remote_failed: 編輯失敗 - 請確定已載入 JOSM 或 Merkaartor 並開啟遠端控制選項
     edit:
-      not_public: 您尚未將您的編輯設為公開。
-      not_public_description_html: 在您這麼做之前將無法再編輯地圖。您可以在您的 %{user_page} 將自己的編輯設定為公開。
+      not_public: 你尚未將你的編輯設為公開。
+      not_public_description_html: 在你這麼做之前將無法再編輯地圖,可以在你的 %{user_page} 將自己的編輯設定為公開。
       user_page_link: 使用者頁面
       anon_edits_link_text: 瞭解為什麼這很重要。
       id_not_configured: iD 尚未設定
-      no_iframe_support: 的瀏覽器不支援 HTML 嵌入式框架,這是這項功能所必要的。
+      no_iframe_support: 的瀏覽器不支援 HTML 嵌入式框架,這是這項功能所必要的。
     export:
       title: 匯出
       manually_select: 手動選擇不同的區域
@@ -2115,10 +2123,10 @@ zh-TW:
         add_a_note:
           instructions_1_html: |-
             只需點選%{note_icon}或地圖上顯示的同一圖示,
-            這會在地圖上加入一個標記,您可以拖動它,並新增您的註記,然後點選儲存,其他製圖者會作出查證。
+            這會在地圖上加入一個標記,你可以拖動它,並新增你的註記,然後點選儲存,其他製圖者會作出查證。
       other_concerns:
         title: 其他問題
-        concerns_html: 如果對我們的資料使用方面或內容有所疑慮,請參考我們的%{copyright_link}來了解更多法律資訊,或是聯繫相應的%{working_group_link}。
+        concerns_html: 如果對我們的資料使用方面或內容有所疑慮,請參考我們的%{copyright_link}來了解更多法律資訊,或是聯繫相應的%{working_group_link}。
         copyright: 版權頁面
         working_group: OSMF 工作小組
     help:
@@ -2146,16 +2154,16 @@ zh-TW:
         description: 協助公司與組織改用 OpenStreetMap 為基礎的地圖與相關服務。
       welcomemat:
         title: 對於組織
-        description: 想要以組織來對 OpenStreetMap 製作計劃嗎?請在 Welcome Mat 查找所需要的事項。
+        description: 想要以組織來對 OpenStreetMap 製作計劃嗎?請在 Welcome Mat 查找所需要的事項。
       wiki:
         title: 開放街圖 Wiki
         description: 瀏覽 wiki,取得詳盡的開放街圖文件。
     potlatch:
-      removed: 您預設的開放街圖編輯器是設定成 Potlatch。因為 Adobe Flash Player 已終止維護,Potlatch 已不在網路瀏覽器上可用。
-      desktop_application_html: 仍然可以透過 %{download_link} 使用 Potlatch。
+      removed: 你預設的開放街圖編輯器是設定為 Potlatch。但因為 Adobe Flash Player 已終止維護,Potlatch 已不能在網路瀏覽器上使用。
+      desktop_application_html: 仍然可以透過 %{download_link} 使用 Potlatch。
       download: 下載適用於 Mac 和 Windows 的桌面應用程式
-      id_editor_html: 除此之外,您可以設定您的預設編輯器成 iD,這可以和先前的 Potlatch 一樣在您的網路瀏覽器上運作。%{change_preferences_link}。
-      change_preferences: 在此更改的偏好設定
+      id_editor_html: 除此之外,你可以設定預設編輯器為 iD,這可以和之前的 Potlatch 一樣在你的網路瀏覽器上運作。%{change_preferences_link}。
+      change_preferences: 在此更改的偏好設定
     any_questions:
       title: 有任何問題嗎?
       paragraph_1_html: |-
@@ -2181,18 +2189,18 @@ zh-TW:
         entry:
           motorway: 高速公路
           main_road: 主要幹道
-          trunk: 主要幹
-          primary: 一級道路
-          secondary: 二級道路
-          unclassified: 無編制道路
+          trunk: 快速公
+          primary: 省道
+          secondary: 縣道
+          unclassified: 未分級道路
           pedestrian: 人行道
           track: 產業道路
           bridleway: 馬道
           cycleway: 自行車道
           cycleway_national: 國家自行車道
-          cycleway_regional: å\8d\80å\9f\9f自行車道
-          cycleway_local: 地自行車道
-          cycleway_mtb: 登山車路
+          cycleway_regional: å\9c°å\8d\80自行車道
+          cycleway_local: 地自行車道
+          cycleway_mtb: 登山車路
           footway: 步道
           rail: 鐵路
           train: 列車
@@ -2203,7 +2211,7 @@ zh-TW:
           trolleybus: 無軌電車
           bus: 公車
           cable_car: 大型纜車
-          chair_lift: å\8d\87é\99\8då\90\8aæ¤\85
+          chair_lift: å\90\8aæ¤\85å¼\8fç´¢é\81\93
           runway: 機場跑道
           taxiway: 滑行道
           apron: 機場停機坪
@@ -2212,8 +2220,8 @@ zh-TW:
           city: 城市
           orchard: 果園
           vineyard: 葡萄園
-          forest: 
-          wood: 
+          forest: 人工
+          wood: 自然
           farmland: 農地
           grass: 草坪
           meadow: 牧草地
@@ -2222,29 +2230,29 @@ zh-TW:
           golf: 高爾夫球場
           park: 公園
           common: 共有地
-          built_up: 組成面積
+          built_up: 建成區
           resident: 住宅區
-          retail: 商店
+          retail: 零售商
           industrial: 工業區
           commercial: 商業區
           heathland: 石楠荒地
           scrubland: 灌木叢林地
           lake: 湖泊
-          reservoir: 水庫
+          reservoir: 水庫/大型蓄水池
           intermittent_water: 間歇性水體
           glacier: 冰河
-          reef: 礁
+          reef: 
           wetland: 濕地
           farm: 農田
-          brownfield: 低污染再利用地
+          brownfield: 棕色地 (受污染放置待恢復重開發地)
           cemetery: 公墓
           allotments: 社區農園
-          pitch: 運動場
+          pitch: 運動場
           centre: 運動中心
           beach: 海灘
-          reserve: è\87ªç\84¶ä¿\9dè­·å\8d\80
+          reserve: è\87ªç\84¶ä¿\9dè\82²
           military: 軍事區
-          school: 學校;大學
+          school: 學校
           university: 大學
           hospital: 醫院
           building: 重要建築
@@ -2255,8 +2263,8 @@ zh-TW:
           bridge: 黑線邊框 = 橋樑
           private: 私人進出
           destination: 目的地進出
-          construction: 建造中道路
-          bus_stop: 公車站
+          construction: 興建中道路
+          bus_stop: 公車站
           stop: 停車站
           bicycle_shop: 自行車店
           bicycle_rental: 自行車出租
@@ -2265,7 +2273,7 @@ zh-TW:
           toilets: 廁所
     welcome:
       title: 歡迎!
-      introduction: 歡迎來到 OpenStreetMap,自由和可編輯的世界地圖。您目前已經登入,可以開始繪製地圖。這裡有一份您須知道最重要事項的快速指南。
+      introduction: 歡迎來到 OpenStreetMap,自由和可編輯的世界地圖。你目前已經登入,可以開始繪製地圖。這裡有一份你必須知道的最重要事項的快速指南。
       whats_on_the_map:
         title: 地圖上有什麼
         on_the_map_html: |-
@@ -2290,7 +2298,7 @@ zh-TW:
       rules:
         title: 規則!
         para_1_html: |-
-          OpenStreetMap 幾乎沒有正式規則,但我們希望所有參與者都能與社群合作與溝通!。如果正在考慮
+          OpenStreetMap 幾乎沒有正式規則,但我們希望所有參與者都能與社群合作與溝通!。如果正在考慮
           除手動編輯之外的任何活動,請閱讀並遵循
           %{imports_link} 和 %{automated_edits_link}指南。
         imports: 匯入
@@ -2336,9 +2344,9 @@ zh-TW:
       help_url: https://wiki.openstreetmap.org/wiki/Upload
     create:
       upload_trace: 上傳 GPS 軌跡
-      trace_uploaded: 您的 GPX 檔案已經上傳並且在等候進入資料庫中。這通常不會超過半小時,完成時會以電子郵件通知您
+      trace_uploaded: 你的 GPX 檔案已經上傳並且在等候進入資料庫中。這通常不會超過半小時,完成時會以電子郵件通知
       upload_failed: 很抱歉,GPX 上傳失敗。已向管理員警告此錯誤,請再重試
-      traces_waiting: 有 %{count} 個軌跡等待上傳。請先等待先前的軌跡處理完後,再來繼續上傳其他軌跡,以免影響其他使用者的排程。
+      traces_waiting: 有 %{count} 個軌跡等待上傳。請先等待先前的軌跡處理完後,再來繼續上傳其他軌跡,以免影響其他使用者的排程。
     edit:
       cancel: 取消
       title: 編輯軌跡 %{name}
@@ -2421,15 +2429,15 @@ zh-TW:
   application:
     basic_auth_disabled: HTTP 基本認證已停用:%{link}
     oauth_10a_disabled: OAuth 1.0 與 1.0a 已停用:%{link}
-    permission_denied: 沒有權限來存取該操作。
+    permission_denied: 沒有權限來存取該操作。
     require_cookies:
-      cookies_needed: 您似乎已停用 cookies - 請在瀏覽器中開啟 cookies,然後繼續。
+      cookies_needed: 你似乎已停用 cookies - 請在瀏覽器中開啟 cookies 後再繼續。
     require_admin:
-      not_an_admin: 您需要是一個管理員才可執行該動作。
+      not_an_admin: 你必須是管理員才可執行該動作。
     setup_user_auth:
-      blocked_zero_hour: 您在OpenStreetMap網站有一個緊急訊息。在您儲存您的編輯內容前請先閱讀該訊息。
-      blocked: 已經被封鎖使用 API。請登入網頁介面以瞭解更多資訊。
-      need_to_see_terms: 我們已暫時中止您使用 API 的權限,請登入網頁介面查閱貢獻者條款,您不需要同意有關條款,但必須查閱它們。
+      blocked_zero_hour: 你在 OpenStreetMap 網站有一個緊急訊息。在儲存你的編輯內容前請先閱讀該訊息。
+      blocked: 已經被封鎖使用 API。請登入網頁介面以瞭解更多資訊。
+      need_to_see_terms: 我們已暫時中止你使用 API 的權限,請登入網頁介面查閱貢獻者條款,你不需要同意有關條款,但必須查閱它們。
     settings_menu:
       account_settings: 帳號設定
       oauth1_settings: OAuth 1 設定
@@ -2459,29 +2467,29 @@ zh-TW:
         alt: 維基百科標誌
   oauth:
     authorize:
-      title: 授權使用的帳號
-      request_access_html: 應用程式 %{app_name} 要求使用您的帳號,%{user}。請確定您要讓此應用程式使用下列功能。您可以依自己喜好,選擇多少項功能。
+      title: 授權使用的帳號
+      request_access_html: 應用程式 %{app_name} 要求使用你的帳號,%{user}。請確定你要讓此應用程式使用下列功能。你可以依自己喜好,選擇多少項功能。
       allow_to: 允許用戶端應用程式:
-      allow_read_prefs: 讀取的使用者偏好設定。
-      allow_write_prefs: 修改的使用者偏好設定。
+      allow_read_prefs: 讀取的使用者偏好設定。
+      allow_write_prefs: 修改的使用者偏好設定。
       allow_write_diary: 建立日記、評論和加入好友。
       allow_write_api: 修改地圖。
-      allow_read_gpx: 讀取的私人 GPS 軌跡。
+      allow_read_gpx: 讀取的私人 GPS 軌跡。
       allow_write_gpx: 上傳 GPS 軌跡。
       allow_write_notes: 修改註記。
       grant_access: 授權存取
     authorize_success:
       title: 允許授權請求
-      allowed_html: 您已授權應用程式 %{app_name} 使用您的帳號。
+      allowed_html: 你已授權應用程式 %{app_name} 使用你的帳號。
       verification: 驗證碼是 %{code}。
     authorize_failure:
       title: 授權請求失敗
-      denied: 您已拒絕應用程式 %{app_name} 使用您的帳號。
-      invalid: 授權權杖無效。
+      denied: 你已拒絕應用程式 %{app_name} 使用你的帳號。
+      invalid: 認證授權密鑰無效。
     revoke:
-      flash: 已經撤銷 %{application} 的授權密鑰。
+      flash: 已經撤銷 %{application} 的授權密鑰。
     permissions:
-      missing: 尚未允許應用程式來訪問此設施
+      missing: 尚未允許應用程式來訪問此設施
     scopes:
       openid: 使用 OpenStreetMap 登入
       read_prefs: 讀取使用者偏好設定
@@ -2503,31 +2511,31 @@ zh-TW:
       title: 註冊新的應用程式
       disabled: 已停用 OAuth 1 應用程式的註冊
     edit:
-      title: 編輯的應用程式
+      title: 編輯的應用程式
     show:
       title: '%{app_name} 的 OAuth 詳細資料'
       key: 消費者金鑰:
       secret: 消費者祕密金鑰:
-      url: è¦\81æ±\82æ¬\8aæ\9d\96 URL:
-      access_url: 存取記號 URL:
+      url: è¦\81æ±\82æ\8e\88æ¬\8aå¯\86é\91° URL:
+      access_url: 連接授權密鑰 URL:
       authorize_url: 授權 URL:
       support_notice: 我們支援 HMAC-SHA1 (建議) 和 RSA-SHA1 署名。
       edit: 編輯詳細資料
       delete: 刪除客戶端
-      confirm: 確定嗎?
+      confirm: 確定嗎?
       requests: 向使用者要求下列權限:
     index:
       title: 我的 OAuth 詳細資料
       my_tokens: 我授權的應用程式
-      list_tokens: ä¸\8bå\88\97æ¬\8aæ\9d\96已核ç\99¼çµ¦æ\82¨名下的應用程式:
+      list_tokens: ä¸\8bå\88\97æ\8e\88æ¬\8aå¯\86é\91°å·²æ ¸ç\99¼çµ¦ä½ 名下的應用程式:
       application: 應用程式名稱
       issued_at: 已發於
       revoke: 撤銷!
       my_apps: 我的用戶端應用程式
-      no_apps_html: 您是否有想要註冊以使用於 %{oauth} 標準的應用程式?您必須先註冊您的網頁應用程式,才能對這個服務進行 OAuth 要求。
+      no_apps_html: 你是否有想要註冊以使用於 %{oauth} 標準的應用程式?你必須先註冊你的網頁應用程式,才能對這個服務進行 OAuth 要求。
       oauth: OAuth
-      registered_apps: 已經註冊下列用戶端應用程式:
-      register_new: 註冊的應用程式
+      registered_apps: 已經註冊下列用戶端應用程式:
+      register_new: 註冊的應用程式
     form:
       requests: 向使用者要求下列權限:
     not_found:
@@ -2541,8 +2549,8 @@ zh-TW:
   oauth2_applications:
     index:
       title: 我的客戶端應用程式
-      no_applications_html: 您是否有想要註冊以使用於 %{oauth2} 標準的應用程式?您必須先註冊您的網頁應用程式,才能對這個服務進行
-        OAuth 要求。
+      no_applications_html: 你是否要跟我們註冊使用 %{oauth2} 標準的應用程式?你必須先註冊該應用程式,才能對這個服務進行 OAuth
+        要求。
       new: 註冊新的應用程式
       name: 名稱
       permissions: 權限
@@ -2553,7 +2561,7 @@ zh-TW:
     new:
       title: 註冊新的應用程式
     edit:
-      title: 編輯的應用程式
+      title: 編輯的應用程式
     show:
       edit: 編輯
       delete: 刪除
@@ -2568,7 +2576,7 @@ zh-TW:
   oauth2_authorizations:
     new:
       title: 需要授權
-      introduction: 要授權 %{application} 能使用以下權限來存取的帳號嗎?
+      introduction: 要授權 %{application} 能使用以下權限來存取的帳號嗎?
       authorize: 授權
       deny: 拒絕
     error:
@@ -2581,7 +2589,7 @@ zh-TW:
       application: 應用程式
       permissions: 權限
       last_authorized: 最後授權
-      no_applications_html: 未授權任何 %{oauth2} 應用程式。
+      no_applications_html: 未授權任何 %{oauth2} 應用程式。
     application:
       revoke: 撤銷存取權限
       confirm_revoke: 撤銷此應用程式的撤銷存取權限?
@@ -2590,7 +2598,7 @@ zh-TW:
       title: 註冊
       tab_title: 註冊
       signup_to_authorize_html: 註冊 OpenStreetMap 以存取 %{client_app_name}。
-      no_auto_account_create: 很不幸的我們現在無法自動為您建立帳號。
+      no_auto_account_create: 很不幸的,我們現在無法自動為你建立帳號。
       please_contact_support_html: 請聯繫 %{support_link} 來安排建立帳號 - 我們會盡快處理這份請求。
       support: 支援
       about:
@@ -2598,10 +2606,10 @@ zh-TW:
         paragraph_1: 不像其他地圖,開放街圖是完全由像你我這類創建,而且任何都能修正、更新、下載與使用。
         paragraph_2: 註冊並開始貢獻。
         welcome: 歡迎來到 OpenStreetMap
-      duplicate_social_email: 若您已有 OpenStreetMap 帳號,並希望使用第三方身份提供者,請使用您的密碼登入並修改您帳號的設定。
-      display name description: 您公開顯示的使用者名稱。您可以稍後在偏好設定中改變它。
+      duplicate_social_email: 若你已有 OpenStreetMap 帳號,並希望使用第三方身份提供者,請使用你的密碼登入並修改帳號的設定。
+      display name description: 你公開顯示的使用者名稱,之後可以在偏好設定中改變它。
       by_signing_up:
-        html: 註冊即表示同意我們的 %{tou_link}、%{privacy_policy_link} 與 %{contributor_terms_link}。
+        html: 註冊即表示同意我們的 %{tou_link}、%{privacy_policy_link} 與 %{contributor_terms_link}。
         privacy_policy: 隱私權政策
         privacy_policy_title: OSMF 隱私權政策包含電子郵件地址部份
         contributor_terms_url: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
@@ -2609,11 +2617,11 @@ zh-TW:
       tou: 使用條款
       external auth: 第三方身份認證
       continue: 註冊
-      terms accepted: 感謝接受新的貢獻條款!
+      terms accepted: 感謝接受新的貢獻條款!
       email_help:
         privacy_policy: 隱私權政策
         privacy_policy_title: OSMF 隱私權政策包含電子郵件地址部份
-        html: 的地址不會公開顯示,請參閱我們的%{privacy_policy_link}來了解更多資訊。
+        html: 的地址不會公開顯示,請參閱我們的%{privacy_policy_link}來了解更多資訊。
       consider_pd_html: 我認為我的貢獻屬於 %{consider_pd_link}。
       consider_pd: 公有領域
       consider_pd_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
@@ -2624,7 +2632,7 @@ zh-TW:
       heading: 條款
       heading_ct: 貢獻者條款
       read and accept with tou: 請閱讀貢獻者協議與使用條款,勾選兩項方框後點擊繼續按鈕。
-      contributor_terms_explain: 此協議適用於現有與往後貢獻的條款。
+      contributor_terms_explain: 此協議適用於現有與往後貢獻的條款。
       read_ct: 我已閱讀過並同意以上的貢獻者條款
       tou_explain_html: 這些%{tou_link}適用於網站方面的使用,與其它由 OSMF 提供的基礎內容。請在連結上點擊,閱讀並同意該文字。
       read_tou: 我已經閱讀過並同意使用條款
@@ -2639,7 +2647,7 @@ zh-TW:
       legale_select: 請選擇您的居住地:
       legale_names:
         france: 法國
-        italy: 大利
+        italy: 大利
         rest_of_world: 世界其他地區
     terms_declined_flash:
       terms_declined_html: 我們很遺憾你已決定不接受新的貢獻者條款。有關詳細資訊,請參閱 %{terms_declined_link}。
@@ -2647,7 +2655,7 @@ zh-TW:
     no_such_user:
       title: 沒有這個使用者
       heading: 使用者 %{user} 不存在
-      body: 抱歉,沒有名為 %{user} 的使用者。請檢查您的拼字,或者可能是您按到錯誤的連結。
+      body: 抱歉,沒有名為 %{user} 的使用者。請檢查你的拼字,或者可能是你按到錯誤的連結。
       deleted: 已刪除賬號
     show:
       my diary: 我的日記
@@ -2710,7 +2718,7 @@ zh-TW:
       confirm: 確認
       report: 回報此使用者
     go_public:
-      flash success: 現在您所有的編輯都是公開的,而您已獲准編輯。
+      flash success: 現在你所有的編輯都是公開的,而你已獲准編輯。
     index:
       title: 使用者
       heading: 使用者
@@ -2728,8 +2736,8 @@ zh-TW:
       title: 帳號已暫停
       heading: 帳號已暫停
       support: 支援
-      automatically_suspended: 很抱歉,出自於可疑活動緣故,的帳號已被自動暫時停用。
-      contact_support_html: 管理員將會很快審查此決定,若您想討論這個問題,您可以聯繫 %{support_link}。
+      automatically_suspended: 很抱歉,出自於可疑活動緣故,的帳號已被自動暫時停用。
+      contact_support_html: 管理員將會很快審查此決定,若你想討論這個問題,可以聯繫 %{support_link}。
     auth_failure:
       connection_failed: 連線至認證供應者失敗
       invalid_credentials: 無效的認證憑證
@@ -2738,9 +2746,9 @@ zh-TW:
       invalid_scope: 無效範圍
       unknown_error: 驗證失敗
     auth_association:
-      heading: 您的ID尚未與OpenStreetMap帳號關聯。
-      option_1: 如果您新來到OpenStreetMap,請使用下方表單建立一個帳號。
-      option_2: 如果您已擁有一個帳號,您可以用您的使用者名稱與密碼登入您的帳號,並在使用者設定中關連您的ID。
+      heading: 你的 ID 尚未與 OpenStreetMap 帳號關聯。
+      option_1: 如果你是新來到 OpenStreetMap,請使用下方表單建立一個帳號。
+      option_2: 如果你已擁有一個帳號,可以用你的使用者名稱與密碼登入你的帳號,並在使用者設定中關連你的 ID。
   user_role:
     filter:
       not_a_role: 字串 "%{role}" 不是有效的身份。
@@ -2750,13 +2758,13 @@ zh-TW:
     grant:
       title: 確認授與身份
       heading: 確認授與身份
-      are_you_sure: 確定要授予使用者 "%{name}"  "%{role}" 的身份?
+      are_you_sure: 確定要授予使用者 "%{name}"  "%{role}" 的身份?
       confirm: 確認
       fail: 無法授予使用者 "%{name}"  "%{role}" 的身份。請檢查使用者和身份是否都正確。
     revoke:
       title: 確認撤銷身份
       heading: 確認撤銷身份
-      are_you_sure: 確定要撤銷使用者 "%{name}"  "%{role}" 的身份?
+      are_you_sure: 確定要撤銷使用者 "%{name}"  "%{role}" 的身份?
       confirm: 確認
       fail: 無法撤銷使用者 "%{name}"  "%{role}" 的身份。請檢查使用者和身份是否都正確。
   user_blocks:
@@ -2801,7 +2809,7 @@ zh-TW:
       title: 正在撤銷對%{block_on}的封鎖
       heading_html: 正在撤銷對%{block_on}的所有封鎖
       empty: '%{name}沒有生效的封鎖。'
-      confirm: 確定要撤銷%{active_blocks}嗎?
+      confirm: 確定要撤銷%{active_blocks}嗎?
       active_blocks:
         one: '%{count} 個生效封鎖'
         other: '%{count} 個生效封鎖'
@@ -2845,7 +2853,7 @@ zh-TW:
       show: 顯示
       edit: 編輯
       revoke: 撤銷!
-      confirm: 確定嗎?
+      confirm: 確定嗎?
       reason: 封鎖的理由:
       revoker: 撤銷者:
       needs_view: 在還原這個封鎖之前,該使用者需要先登入。
@@ -2874,10 +2882,10 @@ zh-TW:
       title: 已忽視使用者
       my_muted_users: 我忽視的使用者
       you_have_muted_n_users:
-        one: 已忽視 1 名使用者
-        other: 已忽視 %{count} 名使用者
+        one: 已忽視 1 名使用者
+        other: 已忽視 %{count} 名使用者
       user_mute_explainer: 已忽視使用者的訊息會移至單獨的收件匣中,您將不會收到電子郵件通知。
-      user_mute_admins_and_moderators: 可以忽視管理員和仲裁員,但仍會收到他們的訊息通知。
+      user_mute_admins_and_moderators: 可以忽視管理員和仲裁員,但仍會收到他們的訊息通知。
       table:
         thead:
           muted_user: 已忽視使用者
@@ -2886,10 +2894,10 @@ zh-TW:
           unmute: 取消忽視
           send_message: 寄送訊息
     create:
-      notice: 已忽視%{name}。
+      notice: 已忽視%{name}。
       error: 無法忽視%{name}。%{full_message}。
     destroy:
-      notice: 取消了忽視%{name}。
+      notice: 取消了忽視%{name}。
       error: 無法忽視使用者。請再試一次。
   notes:
     index:
@@ -2927,17 +2935,17 @@ zh-TW:
       comment_and_resolve: 評論並解決
       comment: 評論
       log_in_to_comment: 登入來評論此註記
-      report_link_html: 如果此註記含有需要移除的敏感資訊,可以%{link}。
-      other_problems_resolve: 對於註記的所有其他問題,可以依據評論內容來自行處理。
+      report_link_html: 如果此註記含有需要移除的敏感資訊,可以%{link}。
+      other_problems_resolve: 對於註記的所有其他問題,可以依據評論內容來自行處理。
       other_problems_resolved: 對於其他類型回報,解決已經足夠了。
       disappear_date_html: 已解決的註記會在%{disappear_in}後從地圖中消失
     new:
       title: 新增註記
       intro: 發現錯誤或缺少些什麼東西嗎?請告訴其他地圖製作者以便於我們處理。將標記移動到正確的位置並輸入註記,以解釋問題。
-      anonymous_warning_html: 您尚未登入。若您想收到您的註記更新內容,請%{log_in}或%{sign_up}。
+      anonymous_warning_html: 你尚未登入。若想收到你的註記更新內容,請%{log_in}或%{sign_up}。
       anonymous_warning_log_in: 登入
       anonymous_warning_sign_up: 註冊
-      advice: 的註記已公開並可用於更新地圖,因此請不要輸入個人訊息,或是來自於具版權保護地圖的訊息以及目錄清單。
+      advice: 的註記已公開並可用於更新地圖,因此請不要輸入個人訊息,或是來自於具版權保護地圖的訊息以及目錄清單。
       add: 送出註記
   javascripts:
     close: 關閉
@@ -2974,11 +2982,11 @@ zh-TW:
       locate:
         title: 顯示我的位置
         metersPopup:
-          one: 您距離此地點在 %{count} 公尺內
-          other: 您距離此地點在 %{count} 公尺內
+          one: 你距離此地點不到 %{count} 公尺
+          other: 你距離此地點不到 %{count} 公尺
         feetPopup:
-          one: 您距離此地點在 %{count} 英尺內
-          other: 您距離此地點在 %{count} 英尺內
+          one: 你距離此地點不到 %{count} 英尺
+          other: 你距離此地點不到 %{count} 英尺
       base:
         standard: 標準
         cycle_map: 自行車地圖
@@ -3020,16 +3028,16 @@ zh-TW:
         fossgis_osrm_bike: 自行車(OSRM)
         fossgis_osrm_car: 開車 (OSRM)
         fossgis_osrm_foot: 步行(OSRM)
-        graphhopper_bicycle: 自行車(GraphHopper)
-        graphhopper_car: 汽車(GraphHopper)
-        graphhopper_foot: 徒步 (GraphHopper)
-        fossgis_valhalla_bicycle: è\85³è¸\8fè»\8a (ç\93¦ç\88¾å\93\88æ\8b\89)
-        fossgis_valhalla_car: 車 (瓦爾哈拉)
-        fossgis_valhalla_foot: 步行 (瓦爾哈拉)
+        graphhopper_bicycle: 自行車 (GraphHopper)
+        graphhopper_car: 開車 (GraphHopper)
+        graphhopper_foot: 步行 (GraphHopper)
+        fossgis_valhalla_bicycle: è\87ªè¡\8cè»\8a (Valhalla)
+        fossgis_valhalla_car: 開車 (Valhalla)
+        fossgis_valhalla_foot: 步行 (Valhalla)
       descend: 下降
       directions: 路線
       distance: 距離
-      distance_m: '%{distance} m'
+      distance_m: '%{distance} 公尺'
       distance_km: '%{distance}公里'
       errors:
         no_route: 查無兩個地點間的路徑。
@@ -3133,13 +3141,13 @@ zh-TW:
       user: 建立者:
       edit: 編輯此修訂
       destroy: 移除此修訂
-      confirm: 確定嗎?
+      confirm: 確定嗎?
     create:
       flash: 修訂已建立
     update:
       flash: 已儲存變更。
     destroy:
-      not_empty: 修訂尚未清空請在銷毀前清除所有此修訂的版本。
+      not_empty: 修訂尚未清空請在銷毀前清除所有此修訂的版本。
       flash: 修訂已銷毀。
       error: 銷毀此修訂時發生錯誤。
   validations:
index edfa535f434c07d23fb88412ad9dd673c38645d5..a439342f7743f9b1fb8682147f6562a9ff0750ab 100644 (file)
@@ -53,6 +53,10 @@ module RichText
       nil
     end
 
+    def image_alt
+      nil
+    end
+
     protected
 
     def simple_format(text)
@@ -92,9 +96,13 @@ module RichText
     end
 
     def image
-      return @image if defined? @image
+      @image_element = first_image_element(document.root) unless defined? @image_element
+      @image_element.attr["src"] if @image_element
+    end
 
-      @image = first_image_element(document.root)&.attr&.[]("src")
+    def image_alt
+      @image_element = first_image_element(document.root) unless defined? @image_element
+      @image_element.attr["alt"] if @image_element
     end
 
     private
index cfb4241691116597cdcd8c77a293396d14d9e559..1d7afa03586130e5041b17a4722857a97f5561cf 100644 (file)
@@ -636,26 +636,27 @@ module Api
                       "can't upload a simple valid creation to changeset: #{@response.body}"
 
       # check the returned payload
-      assert_select "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1
-      assert_select "diffResult>node", 1
-      assert_select "diffResult>way", 1
-      assert_select "diffResult>relation", 1
-
-      # inspect the response to find out what the new element IDs are
-      doc = XML::Parser.string(@response.body).parse
-      new_node_id = doc.find("//diffResult/node").first["new_id"].to_i
-      new_way_id = doc.find("//diffResult/way").first["new_id"].to_i
-      new_rel_id = doc.find("//diffResult/relation").first["new_id"].to_i
-
-      # check the old IDs are all present and negative one
-      assert_equal(-1, doc.find("//diffResult/node").first["old_id"].to_i)
-      assert_equal(-1, doc.find("//diffResult/way").first["old_id"].to_i)
-      assert_equal(-1, doc.find("//diffResult/relation").first["old_id"].to_i)
-
-      # check the versions are present and equal one
-      assert_equal 1, doc.find("//diffResult/node").first["new_version"].to_i
-      assert_equal 1, doc.find("//diffResult/way").first["new_version"].to_i
-      assert_equal 1, doc.find("//diffResult/relation").first["new_version"].to_i
+      new_node_id, new_way_id, new_rel_id = nil
+      assert_dom "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 do
+        # inspect the response to find out what the new element IDs are
+        # check the old IDs are all present and negative one
+        # check the versions are present and equal one
+        assert_dom "> node", 1 do |(node_el)|
+          new_node_id = node_el["new_id"].to_i
+          assert_dom "> @old_id", "-1"
+          assert_dom "> @new_version", "1"
+        end
+        assert_dom "> way", 1 do |(way_el)|
+          new_way_id = way_el["new_id"].to_i
+          assert_dom "> @old_id", "-1"
+          assert_dom "> @new_version", "1"
+        end
+        assert_dom "> relation", 1 do |(rel_el)|
+          new_rel_id = rel_el["new_id"].to_i
+          assert_dom "> @old_id", "-1"
+          assert_dom "> @new_version", "1"
+        end
+      end
 
       # check that the changes made it into the database
       assert_equal 2, Node.find(new_node_id).tags.size, "new node should have two tags"
@@ -878,28 +879,26 @@ module Api
                       "can't do a conditional delete of in use objects: #{@response.body}"
 
       # check the returned payload
-      assert_select "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1
-      assert_select "diffResult>node", 1
-      assert_select "diffResult>way", 1
-      assert_select "diffResult>relation", 1
-
-      # parse the response
-      doc = XML::Parser.string(@response.body).parse
-
-      # check the old IDs are all present and what we expect
-      assert_equal used_node.id, doc.find("//diffResult/node").first["old_id"].to_i
-      assert_equal used_way.id, doc.find("//diffResult/way").first["old_id"].to_i
-      assert_equal used_relation.id, doc.find("//diffResult/relation").first["old_id"].to_i
-
-      # check the new IDs are all present and unchanged
-      assert_equal used_node.id, doc.find("//diffResult/node").first["new_id"].to_i
-      assert_equal used_way.id, doc.find("//diffResult/way").first["new_id"].to_i
-      assert_equal used_relation.id, doc.find("//diffResult/relation").first["new_id"].to_i
-
-      # check the new versions are all present and unchanged
-      assert_equal used_node.version, doc.find("//diffResult/node").first["new_version"].to_i
-      assert_equal used_way.version, doc.find("//diffResult/way").first["new_version"].to_i
-      assert_equal used_relation.version, doc.find("//diffResult/relation").first["new_version"].to_i
+      assert_dom "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 do
+        # check the old IDs are all present and what we expect
+        # check the new IDs are all present and unchanged
+        # check the new versions are all present and unchanged
+        assert_dom "> node", 1 do
+          assert_dom "> @old_id", used_node.id.to_s
+          assert_dom "> @new_id", used_node.id.to_s
+          assert_dom "> @new_version", used_node.version.to_s
+        end
+        assert_dom "> way", 1 do
+          assert_dom "> @old_id", used_way.id.to_s
+          assert_dom "> @new_id", used_way.id.to_s
+          assert_dom "> @new_version", used_way.version.to_s
+        end
+        assert_dom "> relation", 1 do
+          assert_dom "> @old_id", used_relation.id.to_s
+          assert_dom "> @new_id", used_relation.id.to_s
+          assert_dom "> @new_version", used_relation.version.to_s
+        end
+      end
 
       # check that nothing was, in fact, deleted
       assert Node.find(used_node.id).visible
@@ -973,14 +972,14 @@ module Api
                       "can't upload a complex diff to changeset: #{@response.body}"
 
       # check the returned payload
-      assert_select "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1
-      assert_select "diffResult>node", 1
-      assert_select "diffResult>way", 1
-      assert_select "diffResult>relation", 1
-
-      # inspect the response to find out what the new element IDs are
-      doc = XML::Parser.string(@response.body).parse
-      new_node_id = doc.find("//diffResult/node").first["new_id"].to_i
+      new_node_id = nil
+      assert_dom "diffResult[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1 do
+        assert_dom "> node", 1 do |(node_el)|
+          new_node_id = node_el["new_id"].to_i
+        end
+        assert_dom "> way", 1
+        assert_dom "> relation", 1
+      end
 
       # check that the changes made it into the database
       assert_equal 2, Node.find(new_node_id).tags.size, "new node should have two tags"
@@ -2173,11 +2172,11 @@ module Api
 
       get changesets_path(:bbox => "-10,-10, 10, 10")
       assert_response :success, "can't get changesets in bbox"
-      assert_changesets [changeset2, changeset3]
+      assert_changesets_in_order [changeset3, changeset2]
 
       get changesets_path(:bbox => "4.5,4.5,4.6,4.6")
       assert_response :success, "can't get changesets in bbox"
-      assert_changesets [changeset3]
+      assert_changesets_in_order [changeset3]
 
       # not found when looking for changesets of non-existing users
       get changesets_path(:user => User.maximum(:id) + 1)
@@ -2197,11 +2196,11 @@ module Api
       auth_header = basic_authorization_header private_user.email, "test"
       get changesets_path(:user => private_user.id), :headers => auth_header
       assert_response :success, "can't get changesets by user ID"
-      assert_changesets [private_user_changeset, private_user_closed_changeset]
+      assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
 
       get changesets_path(:display_name => private_user.display_name), :headers => auth_header
       assert_response :success, "can't get changesets by user name"
-      assert_changesets [private_user_changeset, private_user_closed_changeset]
+      assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
 
       # test json endpoint
       get changesets_path(:display_name => private_user.display_name), :headers => auth_header, :params => { :format => "json" }
@@ -2221,39 +2220,39 @@ module Api
 
       get changesets_path(:user => private_user.id, :open => true), :headers => auth_header
       assert_response :success, "can't get changesets by user and open"
-      assert_changesets [private_user_changeset]
+      assert_changesets_in_order [private_user_changeset]
 
       get changesets_path(:time => "2007-12-31"), :headers => auth_header
       assert_response :success, "can't get changesets by time-since"
-      assert_changesets [private_user_changeset, private_user_closed_changeset, changeset, closed_changeset, changeset2, changeset3]
+      assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
 
       get changesets_path(:time => "2008-01-01T12:34Z"), :headers => auth_header
       assert_response :success, "can't get changesets by time-since with hour"
-      assert_changesets [private_user_changeset, private_user_closed_changeset, changeset, closed_changeset, changeset2, changeset3]
+      assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
 
       get changesets_path(:time => "2007-12-31T23:59Z,2008-01-02T00:01Z"), :headers => auth_header
       assert_response :success, "can't get changesets by time-range"
-      assert_changesets [closed_changeset]
+      assert_changesets_in_order [closed_changeset]
 
       get changesets_path(:open => "true"), :headers => auth_header
       assert_response :success, "can't get changesets by open-ness"
-      assert_changesets [private_user_changeset, changeset, changeset2, changeset3]
+      assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset]
 
       get changesets_path(:closed => "true"), :headers => auth_header
       assert_response :success, "can't get changesets by closed-ness"
-      assert_changesets [private_user_closed_changeset, closed_changeset]
+      assert_changesets_in_order [private_user_closed_changeset, closed_changeset]
 
       get changesets_path(:closed => "true", :user => private_user.id), :headers => auth_header
       assert_response :success, "can't get changesets by closed-ness and user"
-      assert_changesets [private_user_closed_changeset]
+      assert_changesets_in_order [private_user_closed_changeset]
 
       get changesets_path(:closed => "true", :user => user.id), :headers => auth_header
       assert_response :success, "can't get changesets by closed-ness and user"
-      assert_changesets [closed_changeset]
+      assert_changesets_in_order [closed_changeset]
 
       get changesets_path(:changesets => "#{private_user_changeset.id},#{changeset.id},#{closed_changeset.id}"), :headers => auth_header
       assert_response :success, "can't get changesets by id (as comma-separated string)"
-      assert_changesets [private_user_changeset, changeset, closed_changeset]
+      assert_changesets_in_order [changeset, private_user_changeset, closed_changeset]
 
       get changesets_path(:changesets => ""), :headers => auth_header
       assert_response :bad_request, "should be a bad request since changesets is empty"
@@ -2683,15 +2682,6 @@ module Api
       end
     end
 
-    ##
-    # check that certain changesets exist in the output
-    def assert_changesets(changesets)
-      assert_select "osm>changeset", changesets.size
-      changesets.each do |changeset|
-        assert_select "osm>changeset[id='#{changeset.id}']", 1
-      end
-    end
-
     ##
     # check that certain changesets exist in the output in the specified order
     def assert_changesets_in_order(changesets)
index 5fde0277cf8d34bc12aac31fc60a6c77d0489c10..d70c92861e9b563f7df5eab1fb933dfce1ead943 100644 (file)
@@ -297,6 +297,8 @@ module Api
     # tests whether the API works and prevents incorrect use while trying
     # to update nodes.
     def test_update
+      invalid_attr_values = [["lat", 91.0], ["lat", -91.0], ["lon", 181.0], ["lon", -181.0]]
+
       ## First test with no user credentials
       # try and update a node without authorisation
       # first try to delete node without auth
@@ -334,21 +336,11 @@ module Api
       assert_require_public_data "update with changeset=0 should be forbidden, when data isn't public"
 
       ## try and submit invalid updates
-      xml = xml_attr_rewrite(xml_for_node(private_node), "lat", 91.0)
-      put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
-      assert_require_public_data "node at lat=91 should be forbidden, when data isn't public"
-
-      xml = xml_attr_rewrite(xml_for_node(private_node), "lat", -91.0)
-      put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
-      assert_require_public_data "node at lat=-91 should be forbidden, when data isn't public"
-
-      xml = xml_attr_rewrite(xml_for_node(private_node), "lon", 181.0)
-      put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
-      assert_require_public_data "node at lon=181 should be forbidden, when data isn't public"
-
-      xml = xml_attr_rewrite(xml_for_node(private_node), "lon", -181.0)
-      put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
-      assert_require_public_data "node at lon=-181 should be forbidden, when data isn't public"
+      invalid_attr_values.each do |name, value|
+        xml = xml_attr_rewrite(xml_for_node(private_node), name, value)
+        put api_node_path(private_node), :params => xml.to_s, :headers => auth_header
+        assert_require_public_data "node at #{name}=#{value} should be forbidden, when data isn't public"
+      end
 
       ## finally, produce a good request which still won't work
       xml = xml_for_node(private_node)
@@ -386,21 +378,11 @@ module Api
       assert_response :conflict, "update with changeset=0 should be rejected"
 
       ## try and submit invalid updates
-      xml = xml_attr_rewrite(xml_for_node(node), "lat", 91.0)
-      put api_node_path(node), :params => xml.to_s, :headers => auth_header
-      assert_response :bad_request, "node at lat=91 should be rejected"
-
-      xml = xml_attr_rewrite(xml_for_node(node), "lat", -91.0)
-      put api_node_path(node), :params => xml.to_s, :headers => auth_header
-      assert_response :bad_request, "node at lat=-91 should be rejected"
-
-      xml = xml_attr_rewrite(xml_for_node(node), "lon", 181.0)
-      put api_node_path(node), :params => xml.to_s, :headers => auth_header
-      assert_response :bad_request, "node at lon=181 should be rejected"
-
-      xml = xml_attr_rewrite(xml_for_node(node), "lon", -181.0)
-      put api_node_path(node), :params => xml.to_s, :headers => auth_header
-      assert_response :bad_request, "node at lon=-181 should be rejected"
+      invalid_attr_values.each do |name, value|
+        xml = xml_attr_rewrite(xml_for_node(node), name, value)
+        put api_node_path(node), :params => xml.to_s, :headers => auth_header
+        assert_response :bad_request, "node at #{name}=#{value} should be rejected"
+      end
 
       ## next, attack the versioning
       current_node_version = node.version
index 24475fc80ac4786ca7b9c77ecce7687c4ca01b3b..e3bbb490dfdf3c56a4d566647405379dd7db5571 100644 (file)
@@ -657,6 +657,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_dom "head meta[property='og:image']" do
       assert_dom "> @content", ActionController::Base.helpers.image_url("osm_logo_256.png", :host => root_url)
     end
+    assert_dom "head meta[property='og:image:alt']" do
+      assert_dom "> @content", "OpenStreetMap logo"
+    end
   end
 
   def test_show_og_image
@@ -668,6 +671,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_dom "head meta[property='og:image']" do
       assert_dom "> @content", "https://example.com/picture.jpg"
     end
+    assert_dom "head meta[property='og:image:alt']" do
+      assert_dom "> @content", "some picture"
+    end
   end
 
   def test_show_og_image_with_relative_uri
@@ -679,6 +685,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_dom "head meta[property='og:image']" do
       assert_dom "> @content", "#{root_url}picture.jpg"
     end
+    assert_dom "head meta[property='og:image:alt']" do
+      assert_dom "> @content", "some local picture"
+    end
   end
 
   def test_show_og_image_with_spaces
@@ -690,6 +699,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_dom "head meta[property='og:image']" do
       assert_dom "> @content", "https://example.com/the%20picture.jpg"
     end
+    assert_dom "head meta[property='og:image:alt']" do
+      assert_dom "> @content", "some picture"
+    end
   end
 
   def test_show_og_image_with_relative_uri_and_spaces
@@ -701,6 +713,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_dom "head meta[property='og:image']" do
       assert_dom "> @content", "#{root_url}the%20picture.jpg"
     end
+    assert_dom "head meta[property='og:image:alt']" do
+      assert_dom "> @content", "some local picture"
+    end
   end
 
   def test_show_og_image_with_invalid_uri
@@ -712,6 +727,21 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_dom "head meta[property='og:image']" do
       assert_dom "> @content", ActionController::Base.helpers.image_url("osm_logo_256.png", :host => root_url)
     end
+    assert_dom "head meta[property='og:image:alt']" do
+      assert_dom "> @content", "OpenStreetMap logo"
+    end
+  end
+
+  def test_show_og_image_without_alt
+    user = create(:user)
+    diary_entry = create(:diary_entry, :user => user, :body => "<img src='https://example.com/no_alt.gif'>")
+
+    get diary_entry_path(user, diary_entry)
+    assert_response :success
+    assert_dom "head meta[property='og:image']" do
+      assert_dom "> @content", "https://example.com/no_alt.gif"
+    end
+    assert_dom "head meta[property='og:image:alt']", :count => 0
   end
 
   def test_hide
index e601c36fc5d3b1c27a1443985e9110840fded551..e0b31527669d5f1d8583cdfbe65c483d58a6ec58 100644 (file)
@@ -253,61 +253,79 @@ class RichTextTest < ActiveSupport::TestCase
   def test_text_no_image
     r = RichText.new("text", "foo https://example.com/ bar")
     assert_nil r.image
+    assert_nil r.image_alt
   end
 
   def test_html_no_image
     r = RichText.new("html", "foo <a href='https://example.com/'>bar</a> baz")
     assert_nil r.image
+    assert_nil r.image_alt
   end
 
   def test_markdown_no_image
     r = RichText.new("markdown", "foo [bar](https://example.com/) baz")
     assert_nil r.image
+    assert_nil r.image_alt
   end
 
   def test_markdown_image
     r = RichText.new("markdown", "foo ![bar](https://example.com/image.jpg) baz")
     assert_equal "https://example.com/image.jpg", r.image
+    assert_equal "bar", r.image_alt
   end
 
   def test_markdown_first_image
     r = RichText.new("markdown", "foo ![bar1](https://example.com/image1.jpg) baz\nfoo ![bar2](https://example.com/image2.jpg) baz")
     assert_equal "https://example.com/image1.jpg", r.image
+    assert_equal "bar1", r.image_alt
   end
 
   def test_markdown_image_with_empty_src
     r = RichText.new("markdown", "![invalid]()")
     assert_nil r.image
+    assert_nil r.image_alt
   end
 
   def test_markdown_skip_image_with_empty_src
     r = RichText.new("markdown", "![invalid]() ![valid](https://example.com/valid.gif)")
     assert_equal "https://example.com/valid.gif", r.image
+    assert_equal "valid", r.image_alt
   end
 
   def test_markdown_html_image
+    r = RichText.new("markdown", "<img src='https://example.com/img_element.png' alt='alt text here'>")
+    assert_equal "https://example.com/img_element.png", r.image
+    assert_equal "alt text here", r.image_alt
+  end
+
+  def test_markdown_html_image_without_alt
     r = RichText.new("markdown", "<img src='https://example.com/img_element.png'>")
     assert_equal "https://example.com/img_element.png", r.image
+    assert_nil r.image_alt
   end
 
   def test_markdown_html_image_with_empty_src
-    r = RichText.new("markdown", "<img src=''>")
+    r = RichText.new("markdown", "<img src='' alt='forgot src'>")
     assert_nil r.image
+    assert_nil r.image_alt
   end
 
   def test_markdown_skip_html_image_with_empty_src
-    r = RichText.new("markdown", "<img src=''> <img src='https://example.com/next_img_element.png'>")
+    r = RichText.new("markdown", "<img src='' alt='forgot src'> <img src='https://example.com/next_img_element.png' alt='have src'>")
     assert_equal "https://example.com/next_img_element.png", r.image
+    assert_equal "have src", r.image_alt
   end
 
   def test_markdown_html_image_without_src
-    r = RichText.new("markdown", "<img>")
+    r = RichText.new("markdown", "<img alt='totally forgot src'>")
     assert_nil r.image
+    assert_nil r.image_alt
   end
 
   def test_markdown_skip_html_image_without_src
-    r = RichText.new("markdown", "<img> <img src='https://example.com/next_img_element.png'>")
+    r = RichText.new("markdown", "<img alt='totally forgot src'> <img src='https://example.com/next_img_element.png' alt='have src'>")
     assert_equal "https://example.com/next_img_element.png", r.image
+    assert_equal "have src", r.image_alt
   end
 
   private