From: Andy Allan Date: Wed, 7 Aug 2024 15:12:53 +0000 (+0100) Subject: Merge pull request #5044 from mmd-osm/patch/rn1 X-Git-Tag: live~257 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/2a649d16df01bcc49ce99c282e9bfbe44063cd9d?hp=0472d7b0bc68fbf7b4179aa0f1be51a369562179 Merge pull request #5044 from mmd-osm/patch/rn1 JSON partial rendering in loop --- diff --git a/Gemfile.lock b/Gemfile.lock index e8d918ff5..00984911c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -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) diff --git a/app/controllers/diary_entries_controller.rb b/app/controllers/diary_entries_controller.rb index eaf6ddf9c..9962c7efd 100644 --- a/app/controllers/diary_entries_controller.rb +++ b/app/controllers/diary_entries_controller.rb @@ -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] diff --git a/app/helpers/open_graph_helper.rb b/app/helpers/open_graph_helper.rb index a41831ca6..ad24c73b2 100644 --- a/app/helpers/open_graph_helper.rb +++ b/app/helpers/open_graph_helper.rb @@ -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 diff --git a/app/views/api/changesets/index.xml.builder b/app/views/api/changesets/index.xml.builder index 5ff7e2620..286f50c35 100644 --- a/app/views/api/changesets/index.xml.builder +++ b/app/views/api/changesets/index.xml.builder @@ -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 diff --git a/app/views/layouts/_meta.html.erb b/app/views/layouts/_meta.html.erb index 37afbb894..f09449761 100644 --- a/app/views/layouts/_meta.html.erb +++ b/app/views/layouts/_meta.html.erb @@ -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 -%> diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 4784fcf80..3fc7c8e6b 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -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: عرقلات المستخدم diff --git a/config/locales/be.yml b/config/locales/be.yml index 3a837dfd9..8ed552833 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -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}.' diff --git a/config/locales/bg.yml b/config/locales/bg.yml index 6150a6c4f..67ecb6745 100644 --- a/config/locales/bg.yml +++ b/config/locales/bg.yml @@ -1495,7 +1495,9 @@ bg: shared: markdown_help: headings: Заглавия + heading: Заглавие subheading: Подзаглавие + unordered: Неподреден списък ordered: Подреден списък first: Първи елемент second: Втори елемент diff --git a/config/locales/ce.yml b/config/locales/ce.yml index aa84d23a9..1fcecbf07 100644 --- a/config/locales/ce.yml +++ b/config/locales/ce.yml @@ -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: Нисйе + edit: Нисйан 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: нисйе + edit: нисйан 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: Нисйе + edit: Нисйан delete: ДӀайаккха confirm_delete: Ð¥Iар приложени дӀайаккха? new: title: Регистаци е керла приложенина edit: - title: Нисйе хьан приложени + title: Хьан приложени нисйан show: - edit: Нисйе + edit: Нисйан delete: ДӀайаккха confirm_delete: Ð¥Iар приложени дӀайаккха? client_id: Клиентан ID @@ -3341,7 +3352,7 @@ ce: redactions: edit: heading: Нисйе редакци - title: Нисйе редакци + title: Редакци нисйан index: empty: Гайта цхьа а редакци яц. heading: Редакцин тептар diff --git a/config/locales/cy.yml b/config/locales/cy.yml index 08de0e767..4f1cd9229 100644 --- a/config/locales/cy.yml +++ b/config/locales/cy.yml @@ -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} diff --git a/config/locales/da.yml b/config/locales/da.yml index bfb1255a3..fe20af61a 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -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 diff --git a/config/locales/de.yml b/config/locales/de.yml index 4646cab83..171efd3f8 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -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' diff --git a/config/locales/el.yml b/config/locales/el.yml index 5814d2c2b..38d191b11 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -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: Σύνδεση με ένα OpenID URL + alt: Λογότυπο OpenID google: title: Σύνδεση με Google - alt: Σύνδεση με ένα Google OpenID + alt: Λογότυπο Google facebook: title: Σύνδεση με Facebook - alt: Σύνδεση με λογαριασμό Facebook + alt: Λογότυπο Facebook microsoft: title: Σύνδεση με Microsoft - alt: Σύνδεση με λογαριασμό Microsoft + alt: Λογότυπο Microsoft github: title: Σύνδεση με GitHub - alt: Σύνδεση με λογαριασμό GitHub + alt: Λογότυπο GitHub wikipedia: title: Σύνδεση με Wikipedia - alt: Συνδεθείτε με λογαριασμό Wikipedia + alt: Λογότυπο 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: Συμπερίληψη δείκτη diff --git a/config/locales/eo.yml b/config/locales/eo.yml index 5e7bf550e..66296e847 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -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: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 420e74cca..ab1c14f2b 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -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' diff --git a/config/locales/gl.yml b/config/locales/gl.yml index d69206866..49a80694e 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -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: diff --git a/config/locales/he.yml b/config/locales/he.yml index 3defbfbda..aeff25109 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -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: diff --git a/config/locales/id.yml b/config/locales/id.yml index e6245a9d4..5b2636b83 100644 --- a/config/locales/id.yml +++ b/config/locales/id.yml @@ -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: diff --git a/config/locales/is.yml b/config/locales/is.yml index d48e413a3..897f9237a 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -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 ©, 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: diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 16ffe65ba..7a77d5fc1 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -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-податотека' diff --git a/config/locales/sl.yml b/config/locales/sl.yml index e4cd7eb50..a8ac63113 100644 --- a/config/locales/sl.yml +++ b/config/locales/sl.yml @@ -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 diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 811203715..46a72f47a 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -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: 水库 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index d39f3e2d3..732499dc2 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -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 權杖失敗。 + ID 授權密鑰失敗。 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: 升降吊椅 - drag_lift: 上山牽引梯 + chair_lift: 吊椅式索道 + drag_lift: 拖拉式索道 gondola: 小型纜車 - magic_carpet: 滑雪升降機 - platter: 纜椅 - pylon: 高壓電塔 - station: 空中纜車車站 - t-bar: T 字纜椅 - "yes": 空中纜線 + magic_carpet: 魔毯 (自動步道) + platter: 圓盤拖拉式索道 + pylon: 塔柱 + station: 纜車站 + t-bar: T 型桿拖拉式索道 + "yes": 空中索道 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: 動物寄宿 + animal_boarding: 寵物旅館 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: 墓園 + gambling: 賭博店 + grave_yard: 宗教墓地 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: 機車停車場 + motorcycle_parking: 摩托車停車場 music_school: 音樂學校 - nightclub: 夜總會 - nursing_home: 療養院 + nightclub: 夜店 + nursing_home: 照護中心 parking: 停車場 parking_entrance: 停車場入口 parking_space: 停車位 - payment_terminal: 互動式資訊服務站 + payment_terminal: 付費資訊服務站 pharmacy: 藥房 - place_of_worship: 禮拜場所 + place_of_worship: 宗教場所 police: 警察 post_box: 郵筒 post_office: 郵局 prison: 監獄 pub: 酒館 - public_bath: 公共浴場 - public_bookcase: 公共書櫃 + public_bath: 公共澡堂 + 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: 木板走道 + boardwalk: 木棧走道 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: 零售商建物 roof: 屋頂 - ruins: 已毀損建築 + ruins: 毀損建築 school: 學校建物 - semidetached_house: 半獨立房 + semidetached_house: 半獨立房屋 service: 服務建築 - shed: 舍 + shed: 工寮 stable: 馬廄 static_caravan: 旅行拖車 sty: 豬圈 - temple: 廟宇建築 - terrace: 排屋 + temple: 寺廟建築 + terrace: 連棟透天厝 train_station: 車站建物 university: 大學建築 warehouse: 倉庫 "yes": 建築物 club: - scout: 童軍團團部 + scout: 童軍團本部 sport: 運動俱樂部 "yes": 俱樂部 craft: - beekeeper: 養蜂人家 + beekeeper: 養蜂人 blacksmith: 鐵匠 - brewery: 釀酒廠 + brewery: 地方小型釀造廠 carpenter: 木匠 - caterer: 外燴承辦 - confectionery: 糖果店 + caterer: 宴會承辦 + confectionery: 甜點店 dressmaker: 女裝裁縫 - electrician: 電工 - electronics_repair: 電子維修 - gardener: 園丁 - glaziery: 玻璃工 + electrician: 電匠 + electronics_repair: 電器維修 + gardener: 園藝師 + glaziery: 玻璃匠 handicraft: 手工藝 - hvac: 暖通空調製作 - metal_construction: 金屬建造 - painter: 畫家 + hvac: 暖通空調工程 + metal_construction: 金屬加工 + painter: 油漆匠 photographer: 攝影師 - plumber: 管道工 - roofer: 屋頂工 - sawmill: 鋸木廠 + plumber: 水管工 + roofer: 屋頂修繕 + sawmill: 製材廠 shoemaker: 鞋匠 - stonemason: 石工 + stonemason: 石匠 tailor: 裁縫師 - window_construction: 窗戶建設 + window_construction: 窗戶工程 winery: 酒廠 - "yes": 工藝品店 + "yes": 專業技術服務 emergency: - access_point: 進入點 - ambulance_station: 急救站 - assembly_point: 集合處 - defibrillator: 除顫器 + access_point: 急難地點指示 + ambulance_station: 救護站 + assembly_point: 避難場所 + 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: 馬車道 - bus_guideway: 導向公車道 - bus_stop: 公車站 - construction: 建造中道路 + bridleway: 騎馬道 + bus_guideway: 導軌巴士車道 + bus_stop: 公車站牌 + construction: 興建中道路 corridor: 走廊 - crossing: 路口 + crossing: 行人穿越道 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: 測速照相機 + 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: 盧恩符文石 - stone: 石造史蹟 - tomb: 墳墓 + ruins: 遺跡 + rune_stone: 盧恩石刻 + stone: 史蹟石 + tomb: 墓園 tower: 塔 - wayside_chapel: 路邊教堂 - wayside_cross: 路邊十字架 - wayside_shrine: 路邊神龕 - wreck: 殘骸 + wayside_chapel: 小聖堂 + wayside_cross: 小十字架 + wayside_shrine: 小祠堂 + wreck: 沈船 "yes": 古蹟 junction: "yes": 路口 landuse: allotments: 社區農園 aquaculture: 水產養殖 - basin: 盆地 - brownfield: 低污染再利用地 - cemetery: 墓地 + basin: 蓄水池 + brownfield: 棕色地 (受污染放置待恢復重開發地) + cemetery: 公墓 commercial: 商業區 conservation: 保留區 - construction: 建造中區域 + construction: 工地 farmland: 農地 - farmyard: 農舍 + farmyard: 農用設施 forest: 人工林 - garages: 倉庫 + garages: 車庫 grass: 草坪 - greenfield: 空地 + greenfield: 綠色地 (未使用待開發地) industrial: 工業區 landfill: 垃圾掩埋場 meadow: 牧草地 military: 軍事區 mine: 礦場 orchard: 果園 - plant_nursery: 植物苗圃 - quarry: 露天礦場 + plant_nursery: 苗圃 + quarry: 砂石礦場 railway: 鐵路用地 - recreation_ground: 遊樂場 + recreation_ground: 遊樂區 religious: 宗教場地 - reservoir: 蓄水設施 - reservoir_watershed: 蓄水設施集水區 + reservoir: 水庫/大型蓄水池 + reservoir_watershed: 水庫集水區 residential: 住宅區 - retail: 零售區 + retail: 零售商區 village_green: 社區綠地 vineyard: 葡萄園 - "yes": 土地利用 + "yes": 土地用途 leisure: - adult_gaming_centre: 成人遊戲中心 + adult_gaming_centre: 成人遊樂中心 amusement_arcade: 電子遊樂場 - bandstand: 演奏台 - beach_resort: 海灘遊樂區 - bird_hide: 賞鳥亭 - bleachers: 露天看台 - bowling_alley: 保齡球場 - common: 公共用地 + bandstand: 室外音樂台 + beach_resort: æµ·æ°´æµ´å ´ + bird_hide: 野鳥觀察屋 + bleachers: 看台 + bowling_alley: 保齡球球道 + common: 共有地 dance: 舞廳 dog_park: 遛狗公園 - firepit: 火坑 - fishing: 垂釣區 + firepit: 營火場 + fishing: 釣魚區 fitness_centre: 健身中心 - fitness_station: 健身設施 - garden: 花園 - golf_course: 高爾夫球道 - horse_riding: 騎馬中心 + fitness_station: 戶外健身區 + garden: 庭園 + golf_course: 高爾夫球場 + horse_riding: 馬術中心 ice_rink: 溜冰場 - marina: 小船塢 - miniature_golf: 小型高爾夫球場 - nature_reserve: 自然保護區 + marina: 碼頭 + miniature_golf: 迷你高爾夫球場 + nature_reserve: 自然保育 outdoor_seating: 戶外座椅 park: 公園 picnic_table: 野餐桌 - pitch: 運動場 + pitch: 運動場地 playground: 遊樂區 - recreation_ground: 遊樂場 + recreation_ground: 遊樂區 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: 石標 + cairn: 疊石 chimney: 煙囪 clearcut: 皆伐區域 communications_tower: 通訊塔 crane: 起重機 cross: 十字架 dolphin: 繫船柱 - dyke: å ¤ - embankment: å ¤ + dyke: 堤防 + embankment: 路堤 flagpole: 旗竿 - gasometer: 儲氣槽 + gasometer: 儲氣鼓 groyne: 丁壩 kiln: 窯 lighthouse: 燈塔 manhole: 人孔 - mast: 柱杆 + mast: 桅杆 mine: 礦場 - mineshaft: 礦井 - monitoring_station: 監控站台 + mineshaft: 豎井 + monitoring_station: 監測站 petroleum_well: 油井 pier: 碼頭 pipeline: 管線 - pumping_station: 泵站 - reservoir_covered: 有蓋蓄水槽 + pumping_station: 泵浦站 + reservoir_covered: 加蓋水庫/大型蓄水池 silo: 筒倉 snow_cannon: 雪砲 snow_fence: 雪欄 - storage_tank: 儲油罐 - street_cabinet: 街櫃 - surveillance: 監視攝影機 + storage_tank: 儲存槽 + street_cabinet: 路上設施箱 + 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: 碎石堆 + scree: 碎石坡 scrub: 灌木 - shingle: 礫石 - spring: 泉 + shingle: 礫石灘 + spring: 湧泉 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: 研究室 + ngo: 非政府組織 + notary: 公證人事務所 + religion: 宗教組織 + research: 研發單位 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: 小島 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: 微型鐵路 + miniature: 小火車 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: 電腦商店 + 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: 電子材料行 + electronics: 電器行 erotic: 情趣用品店 estate_agent: 房地產仲介 fabric: 布料行 - farm: 農場商店 - fashion: 時裝店 - fishing: 釣魚用品店 + farm: 農產直銷店 + fashion: 流行服飾店 + 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: 機車行 - motorcycle_repair: 機車維修行 + motorcycle: 摩托車經銷商 + motorcycle_repair: 摩托車維修行 music: 唱片行 musical_instrument: 樂器 - newsagent: 新聞代理商 - nutrition_supplements: 營養補品 - optician: 驗光師 + newsagent: 書報攤 + 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: 茶舖 + tea: 茶葉行 ticket: 售票處 - tobacco: 菸草販賣 + tobacco: 香菸店 toys: 玩具店 travel_agency: 旅行社 - tyres: 輪胎販售 + tyres: 輪胎行 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: 野餐地 + picnic_site: 野餐區 theme_park: 主題公園 viewpoint: 觀景點 - wilderness_hut: 荒野小屋 + wilderness_hut: 避難山屋 zoo: 動物園 tunnel: - building_passage: 建築物通道 + building_passage: 建築物穿堂 culvert: 涵管 "yes": 隧道 waterway: artificial: 人工水道 - boatyard: 船塢 - canal: 運河 + boatyard: 船廠 + canal: 運河/大水渠 dam: 水壩 derelict_canal: 廢棄運河 - ditch: 小溝渠 - dock: 碼頭 + ditch: 土溝 + 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} 在您的註記評論' - subject_other: '[OpenStreetMap] %{commenter} 就您感興趣的註記評論' - your_note: '%{commenter} 在 %{place} 附近的地圖註記評論。' - your_note_html: '%{commenter} 在 %{place} 附近的地圖註記評論。' - commented_note: '%{commenter} 在你感興趣的地圖註記評論。該註記在 %{place} 附近。' - commented_note_html: '%{commenter} 在你感興趣的地圖註記評論。該註記在 %{place} 附近。' + subject_own: '[OpenStreetMap] %{commenter} 對你的註記做了評論' + subject_other: '[OpenStreetMap] %{commenter} 對你感興趣的註記做了評論' + your_note: '%{commenter} 對 %{place} 附近的地圖註記做了評論。' + your_note_html: '%{commenter} 對 %{place} 附近的地圖註記做了評論。' + commented_note: '%{commenter} 對你感興趣的地圖註記做了評論。該註記在 %{place} 附近。' + commented_note_html: '%{commenter} 對你感興趣的地圖註記做了評論。該註記在 %{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} 在您的變更集評論' - subject_other: '[OpenStreetMap] %{commenter} 就您感興趣的變更集評論' - 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} 對你的變更集做了評論' + subject_other: '[OpenStreetMap] %{commenter} 對你感興趣的變更集做了評論' + 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: 我們寄給您一封確認電子郵件。 + heading: 檢查你的電子郵件! + introduction_1: 我們已經寄給你一封確認電子郵件。 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: 找不到該權杖,可能要檢查一下 URL? + flash token bad: 找不到該授權密鑰,可能要檢查一下 URL? update: - flash changed: 您的密碼已經變更。 - flash token bad: 找不到該權杖,可能要檢查一下 URL? + flash changed: 你的密碼已經變更。 + flash token bad: 找不到該授權密鑰,可能要檢查一下 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®ã€GeoGratis(©åŠ æ‹¿å¤§è‡ªç„¶è³‡æºè™•ï¼‰ã€CanVec(©åŠ æ‹¿å¤§è‡ªç„¶è³‡æºè™•ï¼‰ã€å’Œ - StatCan(地理部,加拿大統計局)的資料。' + contributors_ca_credit_html: '%{canada}:包含來自 GeoBase®ã€GeoGratis (©åŠ æ‹¿å¤§è‡ªç„¶è³‡æºè™•)、CanVec + (©åŠ æ‹¿å¤§è‡ªç„¶è³‡æºè™•)、和 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}:包含 © AND 資料,2007(%{and_link})' + contributors_nl_credit_html: '%{netherlands}:包含 © 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: 區域自行車道 - cycleway_local: 地區自行車道 - cycleway_mtb: 登山車路徑 + cycleway_regional: 地區自行車道 + cycleway_local: 地方自行車道 + cycleway_mtb: 登山車路線 footway: 步道 rail: 鐵路 train: 列車 @@ -2203,7 +2211,7 @@ zh-TW: trolleybus: 無軌電車 bus: 公車 cable_car: 大型纜車 - chair_lift: 升降吊椅 + chair_lift: 吊椅式索道 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: 自然保護區 + reserve: 自然保育 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: 要求權杖 URL: - access_url: 存取記號 URL: + url: 要求授權密鑰 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: 下列權杖已核發給您名下的應用程式: + list_tokens: 下列授權密鑰已核發給你名下的應用程式: 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: 腳踏車 (瓦爾哈拉) - fossgis_valhalla_car: 車 (瓦爾哈拉) - fossgis_valhalla_foot: 步行 (瓦爾哈拉) + graphhopper_bicycle: 自行車 (GraphHopper) + graphhopper_car: 開車 (GraphHopper) + graphhopper_foot: 步行 (GraphHopper) + fossgis_valhalla_bicycle: 自行車 (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: diff --git a/lib/rich_text.rb b/lib/rich_text.rb index edfa535f4..a439342f7 100644 --- a/lib/rich_text.rb +++ b/lib/rich_text.rb @@ -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 diff --git a/test/controllers/api/changesets_controller_test.rb b/test/controllers/api/changesets_controller_test.rb index cfb424169..1d7afa035 100644 --- a/test/controllers/api/changesets_controller_test.rb +++ b/test/controllers/api/changesets_controller_test.rb @@ -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) diff --git a/test/controllers/api/nodes_controller_test.rb b/test/controllers/api/nodes_controller_test.rb index 5fde0277c..d70c92861 100644 --- a/test/controllers/api/nodes_controller_test.rb +++ b/test/controllers/api/nodes_controller_test.rb @@ -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 diff --git a/test/controllers/diary_entries_controller_test.rb b/test/controllers/diary_entries_controller_test.rb index 24475fc80..e3bbb490d 100644 --- a/test/controllers/diary_entries_controller_test.rb +++ b/test/controllers/diary_entries_controller_test.rb @@ -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 => "") + + 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 diff --git a/test/lib/rich_text_test.rb b/test/lib/rich_text_test.rb index e601c36fc..e0b315276 100644 --- a/test/lib/rich_text_test.rb +++ b/test/lib/rich_text_test.rb @@ -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 bar 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", "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", "") 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", "") + r = RichText.new("markdown", "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", " ") + r = RichText.new("markdown", "forgot src 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", "") + r = RichText.new("markdown", "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", " ") + r = RichText.new("markdown", "totally forgot src have src") assert_equal "https://example.com/next_img_element.png", r.image + assert_equal "have src", r.image_alt end private