From: Anton Khorev Date: Sun, 4 Aug 2024 15:46:25 +0000 (+0300) Subject: Merge branch 'pull/5023' X-Git-Tag: live~265 X-Git-Url: https://git.openstreetmap.org./rails.git/commitdiff_plain/fa9654fe90bc3352f16bb2924191af2217a83663?hp=92f9d57a4072d11c6995a1291c587a48e6c50362 Merge branch 'pull/5023' --- diff --git a/Gemfile.lock b/Gemfile.lock index e1337f6a4..e8d918ff5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -485,7 +485,7 @@ GEM io-console (~> 0.5) request_store (1.7.0) rack (>= 1.4) - rexml (3.3.2) + rexml (3.3.3) strscan rinku (2.0.6) rotp (6.3.0) diff --git a/app/assets/javascripts/richtext.js b/app/assets/javascripts/richtext.js index 3036f169b..259b914de 100644 --- a/app/assets/javascripts/richtext.js +++ b/app/assets/javascripts/richtext.js @@ -1,7 +1,4 @@ $(document).ready(function () { - /* Hide the preview panes */ - $(".richtext_preview").hide(); - /* * When the text in an edit pane is changed, clear the contents of * the associated preview pne so that it will be regenerated when @@ -11,34 +8,10 @@ $(document).ready(function () { $(this).parents(".richtext_container").find(".richtext_preview").empty(); }); - /* Disable all the edit buttons */ - $(".richtext_doedit").prop("disabled", true); - - /* Enable the preview buttons */ - $(".richtext_dopreview").prop("disabled", false); - - /* - * Install a click handler to switch to edit mode when the - * edit button is pressed. - */ - $(".richtext_doedit").click(function (event) { - var editor = $(this).parents(".richtext_container").find("textarea"); - var preview = $(this).parents(".richtext_container").find(".richtext_preview"); - - preview.hide(); - editor.show(); - - $(this).siblings(".richtext_dopreview").prop("disabled", false); - $(this).prop("disabled", true); - - event.preventDefault(); - }); - /* - * Install a click handler to switch to preview mode when the - * preview button is pressed. + * Install a handler to switch to preview mode */ - $(".richtext_dopreview").click(function (event) { + $(".richtext_dopreview").on("show.bs.tab", function () { var editor = $(this).parents(".richtext_container").find("textarea"); var preview = $(this).parents(".richtext_container").find(".richtext_preview"); var minHeight = editor.outerHeight() - preview.outerHeight() + preview.height(); @@ -54,13 +27,6 @@ $(document).ready(function () { }); } - editor.hide(); preview.css("min-height", minHeight + "px"); - preview.show(); - - $(this).siblings(".richtext_doedit").prop("disabled", false); - $(this).prop("disabled", true); - - event.preventDefault(); }); }); diff --git a/app/helpers/trace_helper.rb b/app/helpers/trace_helper.rb index aec1146cb..fbbeb3dff 100644 --- a/app/helpers/trace_helper.rb +++ b/app/helpers/trace_helper.rb @@ -2,4 +2,20 @@ module TraceHelper def link_to_tag(tag) link_to(tag, :tag => tag, :page => nil) end + + def trace_icon(trace, options = {}) + options[:class] ||= "trace_image" + options[:alt] ||= "" + + image_tag trace_icon_path(trace.user, trace), + options.merge(:size => 50) + end + + def trace_picture(trace, options = {}) + options[:class] ||= "trace_image" + options[:alt] ||= "" + + image_tag trace_picture_path(trace.user, trace), + options.merge(:size => 250) + end end diff --git a/app/views/layouts/_header.html.erb b/app/views/layouts/_header.html.erb index cb48d834e..e96564b82 100644 --- a/app/views/layouts/_header.html.erb +++ b/app/views/layouts/_header.html.erb @@ -82,7 +82,7 @@ <% if current_user && current_user.id %>
<%= render :partial => "shared/#{type}_help" %> - <%= submit_tag t(".edit"), :id => "#{id}_doedit", :class => "richtext_doedit btn btn-primary", :disabled => true %> - <%= submit_tag t(".preview"), :id => "#{id}_dopreview", :class => "richtext_dopreview btn btn-primary" %>
diff --git a/app/views/traces/_trace.html.erb b/app/views/traces/_trace.html.erb index ba503f730..f60eea7f1 100644 --- a/app/views/traces/_trace.html.erb +++ b/app/views/traces/_trace.html.erb @@ -2,7 +2,7 @@ <% if Settings.status != "gpx_offline" %> <% if trace.inserted %> - <%= link_to image_tag(trace_icon_path(trace.user, trace), :alt => "", :class => "trace_image"), + <%= link_to trace_icon(trace), show_trace_path(trace.user, trace), :class => "d-inline-block" %> <% else %> diff --git a/app/views/traces/edit.html.erb b/app/views/traces/edit.html.erb index 2059178cf..1c440adf2 100644 --- a/app/views/traces/edit.html.erb +++ b/app/views/traces/edit.html.erb @@ -2,7 +2,7 @@

<%= t ".heading", :name => @trace.name %>

<% end %> -<%= image_tag trace_picture_path(@trace.user, @trace), :class => "trace_image" %> +<%= trace_picture(@trace) %> <%= bootstrap_form_for @trace do |f| %> <%= f.text_field :name, :disabled => true %> diff --git a/app/views/traces/show.html.erb b/app/views/traces/show.html.erb index 51b21f982..63adf1572 100644 --- a/app/views/traces/show.html.erb +++ b/app/views/traces/show.html.erb @@ -4,7 +4,7 @@ <% if Settings.status != "gpx_offline" %> <% if @trace.inserted %> - <%= image_tag trace_picture_path(@trace.user, @trace), :class => "trace_image" %> + <%= trace_picture(@trace) %> <% else %> <%= t ".pending" %> <% end %> diff --git a/app/views/user_mailer/_gpx_description.text.erb b/app/views/user_mailer/_gpx_description.text.erb new file mode 100644 index 000000000..6f7a97844 --- /dev/null +++ b/app/views/user_mailer/_gpx_description.text.erb @@ -0,0 +1,8 @@ +<% trace_name = @trace_name %> +<% trace_description = @trace_description %> +<% if @trace_tags.length > 0 %> + <% tags = @trace_tags.map { |trace_tag| trace_tag.tag }.join(", ") %> + <%= t ".description_with_tags", :trace_name => trace_name, :trace_description => trace_description, :tags => tags %> +<% else %> + <%= t ".description_with_no_tags", :trace_name => trace_name, :trace_description => trace_description %> +<% end %> diff --git a/app/views/user_mailer/gpx_failure.text.erb b/app/views/user_mailer/gpx_failure.text.erb new file mode 100644 index 000000000..9544c74a9 --- /dev/null +++ b/app/views/user_mailer/gpx_failure.text.erb @@ -0,0 +1,10 @@ +<%= t ".hi", :to_user => @to_user %> + +<%= render :partial => "gpx_description" %> +<%= t ".failed_to_import" %> + +== +<%= @error %> +== + +<%= t ".more_info", :url => t(".import_failures_url") %> diff --git a/app/views/user_mailer/gpx_success.text.erb b/app/views/user_mailer/gpx_success.text.erb new file mode 100644 index 000000000..aee3a0f11 --- /dev/null +++ b/app/views/user_mailer/gpx_success.text.erb @@ -0,0 +1,8 @@ +<%= t ".hi", :to_user => @to_user %> + +<%= render :partial => "gpx_description" %> +<%= t(".loaded", :trace_points => @trace_points, :count => @possible_points) %> + +<%= t ".trace_location", :trace_url => @trace_url %> + +<%= t ".all_your_traces", :url => @my_traces_url %> diff --git a/config/locales/be.yml b/config/locales/be.yml index a6eeca216..3a837dfd9 100644 --- a/config/locales/be.yml +++ b/config/locales/be.yml @@ -942,6 +942,7 @@ be: college: Будынак каледжа commercial: Камерцыйны будынак construction: Будынак будуецца + cowshed: Кароўнік detached: Хата dormitory: Інтэрнат duplex: Падзеленая хата @@ -971,6 +972,7 @@ be: shed: Адрына stable: Стайня static_caravan: Мабільны дом + sty: Свінарнік temple: Храм terrace: Тэраса train_station: Чыгуначны вакзал @@ -2029,7 +2031,7 @@ be: lost password link: Згубілі пароль? login_button: Увайсці register now: Зарэгістравацца зараз - with external: або ўвайдзіце ў сістэму з дапамогай трэцяй асобы + with external: або ўвайдзіце ў сістэму з дапамогай пабочнага сэрвісу or: або auth failure: Прабачце, немагчыма увайсці з такім адрасам і паролем. destroy: @@ -2128,6 +2130,15 @@ be: Аўстралія contributors_ca_canada: Канада contributors_cz_czechia: Чэхія + contributors_fi_finland: Фінляндыя + contributors_fr_france: Францыя + contributors_hr_croatia: Харватыя + contributors_nl_netherlands: Нідэрланды + contributors_nz_new_zealand: Новая Зеландыя + contributors_rs_serbia: Сербія + contributors_si_slovenia: Славенія + contributors_es_spain: Іспанія + contributors_za_south_africa: Паўднёвая Афрыка contributors_footer_2_html: |- Уключэнне дадзеных у OpenStreetMap не азначае, што пастаўшчыкі пачатковых дадзеных якім-небудзь чынам падтрымліваюць OpenStreetMap, прадстаўляюць гарантыі, ці @@ -2255,6 +2266,8 @@ be: rail: Чыгунка train: Цягнік subway: Метро + ferry: Паром + tram: Трамвай trolleybus: Тралейбус bus: Аўтобус cable_car: Канатная дарога @@ -2263,8 +2276,11 @@ be: taxiway: рулёжная дарожка apron: Перон аэрапорта admin: Адміністрацыйная мяжа + capital: Сталіца + city: Горад forest: Лес wood: пушча + sand: Пясок golf: Поле для гольфа park: Парк common: Агульныя @@ -2286,15 +2302,17 @@ be: military: Ваенная зона school: Школа university: Універсітэт + hospital: Бальніца building: Значны будынак station: Чыгуначны вакзал summit: Вяршыня - peak: пік + peak: Пік tunnel: Тунэль (пункцірам) bridge: Мост (суцэльная лінія) private: Прыватны доступ destination: Мэтавы доступ construction: Дарогі ў стадыі будаўніцтва + bus_stop: Аўтобусны прыпынак bicycle_shop: Крама ровараў bicycle_parking: Паркоўка для ровараў toilets: Прыбіральні @@ -2536,6 +2554,19 @@ be: flash: Кліенцкая інфармацыя была абноўленая паспяхова destroy: flash: Знішчаная рэгістрацыя кліенцкага дастасавання + oauth2_applications: + index: + new: Зарэгістраваць новую праграму + name: Назва + permissions: Дазволы + application: + edit: Рэдагаваць + delete: Выдаліць + new: + title: Зарэгістраваць новую праграму + show: + edit: Правіць + delete: Выдаліць users: new: title: Зарэгістравацца @@ -2544,11 +2575,22 @@ be: аўтаматычна. about: header: Свабодная і даступная для рэдагавання + paragraph_1: У адрозненне ад іншых карт, OpenStreetMap цалкам створана такімі + ж людзьмі як вы і кожны можа яе свабодна рэдагаваць і выкарыстоўваць. + paragraph_2: Зарэгіструйцеся, каб зрабіць свой унёсак. + welcome: Вітаем у OpenStreetMap display name description: Ваша імя, якое будзе бачнае ўсім. Вы можаце змяніць яго потым ў вашых параметрах. external auth: 'Аўтэнтыфікацыя праз:' continue: Зарэгістравацца terms accepted: Дзякуй за прыняцце новых умоў ўдзелу! + email_help: + privacy_policy: палітыкі прыватнасці + html: Адрас вашай электроннай пошты не будзе паказвацца іншым карыстальнікам, + звярніцеся да %{privacy_policy_link} за больш дэтальнай інфармацыяй. + consider_pd_html: Я пагаджаюся з тым, што мой унёсак будзе часткай %{consider_pd_link}. + consider_pd: грамадскага набытку + or: або use external auth: У якасці альтэрнатывы выкарыстайце для ўваходу старонні сервіс terms: title: Умовы @@ -2802,6 +2844,7 @@ be: intro: Заўважылі памылку або чагосьці не стае? Дайце іншым удзельнікам магчымасць даведацца пра памылку і такім чынам мы выправім яе. Перамясціце маркер у патрэбную пазіцыю і напішыце заўвагу з тлумачэннем праблемы. + anonymous_warning_sign_up: Зарэгістравацца advice: Ваша заўвага агульнадаступная і можа выкарыстоўвацца для абнаўлення карты, таму не ўводзьце асабістую інфармацыю або інфармацыю з абароненых аўтарскім правам карт або рэестраў. diff --git a/config/locales/br.yml b/config/locales/br.yml index 3b9640ebe..548529766 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -2484,22 +2484,22 @@ br: openid_login_button: Kenderc'hel openid: title: Kevreañ gant OpenID - alt: Kevreañ gant un URL OpenID + alt: Logo OpenID google: title: Kevreañ gant Google - alt: Kevreañ gant OpenID Google + alt: Logo Google facebook: title: Kevreañ gant Facebook - alt: Kevreañ gant ur gont Facebook + alt: Logo Facebook microsoft: title: Kevreañ gant Microsoft - alt: Kevreañ gant ur gont Microsoft + alt: Logo Microsoft github: title: Kevreañ gant GitHub - alt: Kevreañ gant ur gont GitHub + alt: Logo GitHub wikipedia: title: Kevreañ gant Wikipedia - alt: Kevreañ gant ur gont Wikipedia + alt: Logo Wikipedia oauth: authorize: title: Aotren mont d'ho kont @@ -2650,6 +2650,7 @@ br: terms accepted: Trugarez deoc'h evit bezañ asantet da ziferadennoù nevez ar c'henlabourer ! email_help: + privacy_policy: Politikerezh prevezded html: Ho chomlec'h ne vo ket hewel d'an holl, sellit ouzh %{privacy_policy_link} evit gouzout hiroc'h. consider_pd: domani foran diff --git a/config/locales/da.yml b/config/locales/da.yml index 90c17a155..bfb1255a3 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -2698,6 +2698,8 @@ da: write_notes: Ændre bemærkninger write_redactions: Rediger kortdata read_email: Læse brugerens e-mailadresse + consume_messages: Læs, opdater status og slet brugerbeskeder + send_messages: Send private beskeder til andre brugere skip_authorization: Godkend applikation automatisk for_roles: moderator: Denne tilladelse er til handlinger, der kun er tilgængelige for moderatorer diff --git a/config/locales/de.yml b/config/locales/de.yml index 06a217f6b..4646cab83 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -2840,6 +2840,8 @@ de: write_notes: Notizen bearbeiten write_redactions: Kartendaten redigieren read_email: Lesen der Benutzer-E-Mail-Adresse + consume_messages: Lesen, Aktualisieren des Status und Löschen von Benutzernachrichten + send_messages: Private Nachrichten an andere Benutzer senden skip_authorization: Antrag automatisch genehmigen for_roles: moderator: Diese Berechtigung gilt nur für Aktionen, die nur Moderatoren zur diff --git a/config/locales/en.yml b/config/locales/en.yml index 1c119fcf3..a69416337 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1627,11 +1627,14 @@ en: befriend_them: "You can also add them as a friend at %{befriendurl}." befriend_them_html: "You can also add them as a friend at %{befriendurl}." gpx_description: + description_with_tags: "It looks like your GPX file %{trace_name} with the description %{trace_description} and the following tags: %{tags}" description_with_tags_html: "It looks like your GPX file %{trace_name} with the description %{trace_description} and the following tags: %{tags}" + description_with_no_tags: "It looks like your GPX file %{trace_name} with the description %{trace_description} and no tags" description_with_no_tags_html: "It looks like your GPX file %{trace_name} with the description %{trace_description} and no tags" gpx_failure: hi: "Hi %{to_user}," failed_to_import: "failed to import. Here is the error:" + more_info: "More information about GPX import failures and how to avoid them can be found at %{url}." more_info_html: "More information about GPX import failures and how to avoid them can be found at %{url}." import_failures_url: "https://wiki.openstreetmap.org/wiki/GPX_Import_Failures" subject: "[OpenStreetMap] GPX Import failure" @@ -1640,6 +1643,8 @@ en: loaded: one: "loaded successfully with %{trace_points} out of a possible %{count} point." other: "loaded successfully with %{trace_points} out of a possible %{count} points." + trace_location: "Your trace is available at %{trace_url}" + all_your_traces: "All your successfully uploaded GPX traces can be found at %{url}" all_your_traces_html: "All your successfully uploaded GPX traces can be found at %{url}." subject: "[OpenStreetMap] GPX Import success" signup_confirm: diff --git a/config/locales/eo.yml b/config/locales/eo.yml index dc4748e15..5e7bf550e 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -2660,6 +2660,8 @@ eo: write_notes: modifi rimarkojn write_redactions: Redakti map-datumojn read_email: legi retpoŝtan adreson de uzanto + consume_messages: legi, ŝanĝi staton kaj forigi mesaĝojn de uzanto + send_messages: sendi privatajn mesaĝojn al aliaj uzantoj skip_authorization: AÅ­tomate akcepti aplikaĵojn for_roles: moderator: Tiu ĉi permeso estas por agoj disponeblaj nur por kontrolantoj diff --git a/config/locales/es.yml b/config/locales/es.yml index 1d517adf5..1d096a5d4 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -2810,6 +2810,7 @@ es: write_notes: Modifica notas write_redactions: Censurar datos del mapa read_email: Leer dirección de correo electrónico del usuario + send_messages: Enviar mensajes privados a otros usuarios skip_authorization: Auto aprobar aplicación for_roles: moderator: Este permiso es para acciones disponibles solo para moderadores. diff --git a/config/locales/fr.yml b/config/locales/fr.yml index f22835bc2..420e74cca 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -116,7 +116,7 @@ fr: dir: ltr time: formats: - friendly: '%e %B %Y à %H%M' + friendly: '%e %B %Y à %-H h %M' blog: '%e %B %Y' helpers: file: @@ -138,8 +138,8 @@ fr: create: S’inscrire update: Mettre à jour redaction: - create: Créer la censure - update: Enregistrer la censure + create: Créer le masquage + update: Enregistrer le masquage trace: create: Téléverser update: Enregistrer les modifications @@ -162,7 +162,7 @@ fr: changeset_tag: Attribut du groupe de modifications country: Pays diary_comment: Commentaire du journal - diary_entry: Entrée d’agenda + diary_entry: Entrée du journal friend: Ami(e) issue: Problème language: Langue @@ -199,7 +199,7 @@ fr: support_url: URL de l’assistance allow_read_prefs: lire les préférences de l’utilisateur allow_write_prefs: modifier les préférences de l’utilisateur - allow_write_diary: créer des entrées de carnet, des commentaires et des liens + allow_write_diary: créer des entrées du journal, des commentaires et des liens d’amitié allow_write_api: modifier la carte allow_read_gpx: lire ses traces GPS privées @@ -251,7 +251,7 @@ fr: email: Courriel new_email: Nouvelle adresse de courriel active: Actif - display_name: Afficher le nom + display_name: Pseudonyme description: Description du profil home_lat: Latitude home_lon: Longitude @@ -347,7 +347,7 @@ fr: reopened_at_by_html: Réactivé à %{when} par %{user} rss: title: Notes OpenStreetMap - description_all: Une liste de notes rapportées, commentées ou fermées + description_all: Une liste de notes signalées, commentées ou fermées description_area: Une liste de notes, signalées, commentées ou fermées dans votre zone [(%{min_lat} ; %{min_lon}) – (%{max_lat} ; %{max_lon})] description_item: Un flux RSS pour la note %{id} @@ -369,7 +369,7 @@ fr: utilisant le bouton ci-dessous. Veuillez prendre note des détails suivants :' delete_profile: Les informations de votre profil, y compris votre avatar, votre description et votre lieu de résidence seront supprimées. - delete_display_name: Votre nom affiché sera supprimé et pourra être réutilisé + delete_display_name: Votre pseudonyme sera supprimé et pourra être réutilisé pour d’autres comptes. retain_caveats: 'Cependant, quelques informations vous concernant seront conservées sur OpenStreetMap, même après la suppression de votre compte :' @@ -396,12 +396,12 @@ fr: external auth: Authentification externe openid: link: https://wiki.openstreetmap.org/wiki/FR:OpenID - link text: qu’est-ce que cela ? + link text: qu’est-ce ? public editing: heading: Modification publique enabled: Activée. Non anonyme et peut modifier les données. enabled link: https://wiki.openstreetmap.org/wiki/FR:Modifications_anonymes - enabled link text: qu’est-ce que ceci ? + enabled link text: qu’est-ce ? disabled: Désactivée et ne peut pas modifier les données ; toutes les précédentes modifications sont anonymes. disabled link text: pourquoi ne puis-je pas modifier ? @@ -415,9 +415,9 @@ fr: agreed_with_pd: Vous avez également déclaré que vous considérez vos modifications comme relevant du domaine public. link: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms/FR - link text: qu’est-ce que ceci ? + link text: qu’est-ce ? save changes button: Enregistrer les modifications - delete_account: Supprimer le compte... + delete_account: Supprimer le compte… go_public: heading: Modification publique currently_not_public: Actuellement, vos modifications sont anonymes et les utilisateurs @@ -458,10 +458,10 @@ fr: other: '%{count} chemins' download_xml: Télécharger en XML view_history: Voir l’historique - view_unredacted_history: Voir l'historique non censuré + view_unredacted_history: Voir l'historique non masqué view_details: Afficher les détails - view_redacted_data: Afficher les données censurées - view_redaction_message: Afficher le message de rédaction + view_redacted_data: Afficher les données masquées + view_redaction_message: Afficher le message de masquage location: 'Emplacement :' common_details: coordinates_html: '%{latitude} ; %{longitude}' @@ -506,8 +506,8 @@ fr: note: note timeout: title: Erreur de dépassement du délai d’attente - sorry: Désolé, les données pour l’objet %{type} d’identifiant %{id} ont mis - trop de temps à être récupérées. + sorry: Désolé, obtenir les données pour l’objet %{type} d’identifiant %{id} + a pris trop de temps. type: node: nœud way: chemin @@ -527,7 +527,7 @@ fr: navigateur lent ou le bloquer. Êtes-vous sûr de vouloir afficher ces données ? load_data: Charger les données - loading: Chargement en cours... + loading: Chargement en cours… tag_details: tags: Attributs wiki_link: @@ -546,18 +546,18 @@ fr: enclosing: Objets englobants old_nodes: not_found: - sorry: 'Désolé, le nœud #%{id} version %{version} est introuvable.' + sorry: Désolé, la version %{version} du nœud %{id} est introuvable. old_ways: not_found: - sorry: 'Désolé, la façon #%{id} version %{version} est introuvable.' + sorry: Désolé, la version %{version} du chemin %{id} est introuvable. old_relations: not_found: - sorry: 'Désolé, la relation #%{id} version %{version} est introuvable.' + sorry: Désolé, la version %{version} de la relation %{id} est introuvable. changesets: changeset_paging_nav: showing_page: Page %{page} - next: Suivant ▸ - previous: ◂ Précédent + next: Suivant › + previous: ‹ Précédent changeset: anonymous: Anonyme no_edits: (aucune modification) @@ -588,10 +588,10 @@ fr: closed: Fermé belongs_to: Auteur subscribe: - heading: S'abonner à la discussion sur l'ensemble de modifications suivante ? - button: S'abonner à la discussion + heading: S’abonner à la discussion sur l’ensemble de modifications suivant ? + button: S’abonner à la discussion unsubscribe: - heading: Se désabonner de la discussion du groupe de modifications suivant ? + heading: Se désabonner de la discussion du groupe de modifications suivant ? button: Se désinscrire de la discussion heading: title: Groupe de modifications %{id} @@ -599,9 +599,8 @@ fr: no_such_entry: title: Aucun ensemble de modifications de ce type heading: 'Aucune entrée avec l’identifiant : %{id}' - body: Désolé, il n’y a aucun groupe de modifications avec l'identifiant %{id}. - Veuillez vérifier l'orthographe ou la validité du lien sur lequel vous avez - cliqué. + body: Désolé, il n’y a aucun groupe de modifications avec l’identifiant %{id}. + Peut-être avez-vous fait une erreur en le recopiant ou suivi un lien erroné ? show: title: 'Groupe de modifications : %{id}' created: 'Créé : %{when}' @@ -617,7 +616,7 @@ fr: subscribe: S’abonner unsubscribe: Se désabonner comment_by_html: Commentaire de %{user} %{time_ago} - hidden_comment_by_html: Commentaire caché de %{user} %{time_ago} + hidden_comment_by_html: Commentaire masqué de %{user} %{time_ago} hide_comment: masquer unhide_comment: démasquer comment: Commenter @@ -631,22 +630,22 @@ fr: relations: Relations (%{count}) relations_paginated: Relations (%{x} à %{y} sur %{count}) timeout: - sorry: Désolé, la liste des groupes de modifications que vous avez demandée - a mis trop de temps à récupérer. + sorry: Désolé, récupérer la liste des groupes de modifications que vous avez + demandée a pris trop de temps. changeset_comments: comment: comment: Nouveau commentaire sur le groupe de modifications nº %{changeset_id} par %{author} commented_at_by_html: Mis à jour le %{when} par %{user} comments: - comment: Nouveau commentaire sur le groupe de modifications nº %{changeset_id} + comment: Nouveau commentaire sur le groupe de modifications %{changeset_id} par %{author} index: title_all: Discussion sur le groupe de modifications OpenStreetMap - title_particular: Discussion sur le groupe de modifications OpenStreetMap nº %{changeset_id} + title_particular: Discussion sur le groupe de modifications OpenStreetMap %{changeset_id} timeout: - sorry: Désolé, la liste des commentaires d’ensembles de modifications que vous - avez demandée est trop longue à récupérer. + sorry: Désolé, récupérer les commentaires du groupe de modifications que vous + avez demandés a pris trop de temps. dashboards: contact: km away: à %{count} km @@ -660,7 +659,7 @@ fr: title: Mon tableau de bord no_home_location_html: '%{edit_profile_link} et définissez l’emplacement de votre domicile pour voir les utilisateurs à proximité.' - edit_your_profile: Modifier votre profil + edit_your_profile: Modifiez votre profil my friends: Mes amis no friends: Vous n’avez encore ajouté aucun ami. nearby users: Autres utilisateurs à proximité @@ -680,12 +679,12 @@ fr: title: Journaux des utilisateurs title_friends: Journaux des amis title_nearby: Journaux des utilisateurs à proximité - user_title: Carnet de %{user} - in_language_title: Entrées du carnet en %{language} + user_title: Journal de %{user} + in_language_title: Entrées du journal en %{language} new: Nouvelle entrée du journal new_title: Écrire une nouvelle entrée dans mon journal utilisateur my_diary: Mon journal - no_entries: Aucune entrée de carnet + no_entries: Aucune entrée de journal recent_entries: Entrées récentes du journal older_entries: Entrées plus anciennes newer_entries: Entrées plus récentes @@ -693,8 +692,8 @@ fr: title: Modifier l’entrée du journal marker_text: Emplacement de l’entrée du journal show: - title: Carnet de %{user} | %{title} - user_title: Carnet de %{user} + title: Journal de %{user} | %{title} + user_title: Journal de %{user} discussion: Discussion subscribe: S’abonner unsubscribe: Se désabonner @@ -702,11 +701,11 @@ fr: login_to_leave_a_comment_html: '%{login_link} pour laisser un commentaire' login: Se connecter no_such_entry: - title: Aucune entrée de carnet correspondante + title: Aucune entrée de journal correspondante heading: 'Aucune entrée avec l’identifiant : %{id}' - body: Désolé, il n’y a aucune entrée ni commentaire de carnet avec l’identifiant - %{id}. Veuillez vérifier votre orthographe ou la validité du lien que vous - avez cliqué. + body: Désolé, il n’y a aucune entrée ni commentaire de journal avec l’identifiant + %{id}. Peut-être avez-vous fait une erreur en le recopiant ou suivi un lien + erroné ? diary_entry: posted_by_html: Publié par %{link_user} le %{created} en %{language_link}. updated_at_html: Dernière mise à jour le %{updated}. @@ -738,8 +737,8 @@ fr: description: Entrées récentes du journal OpenStreetMap de %{user} language: title: Entrées du journal OpenStreetMap en %{language_name} - description: Entrées récentes des carnets d’utilisateurs d’OpenStreetMap en - %{language_name} + description: Entrées récentes des journaux d’utilisateurs d’OpenStreetMap + en %{language_name} all: title: Entrées des journaux OpenStreetMap description: Entrées récentes des journaux d’utilisateurs de OpenStreetMap @@ -760,6 +759,8 @@ fr: comment: Commentaire newer_comments: Commentaires plus récents older_comments: Commentaires plus anciens + new: + heading: Ajouter un commentaire à cette discussion ? doorkeeper: errors: messages: @@ -945,7 +946,7 @@ fr: prison: Prison pub: Pub public_bath: Bains publics - public_bookcase: Bibliothèque publique + public_bookcase: Microbibliothèque public_building: Bâtiment public ranger_station: Poste de garde forestière recycling: Point de recyclage @@ -2671,6 +2672,7 @@ fr: Il n’est pas nécessaire d’établir formellement un groupe dans la même mesure que les chapitres locaux. En effet, de nombreux groupes existent avec beaucoup de succès en tant que rassemblement informel de personnes ou en tant que groupe communautaire. Chacun peut en créer ou en rejoindre un. En savoir plus sur la %{communities_wiki_link}. communities_wiki: page wiki des communautés + communities_wiki_url: https://wiki.openstreetmap.org/wiki/FR:User_group traces: visibility: private: Privé (partagé anonymement, points non ordonnés) @@ -2806,6 +2808,7 @@ fr: oauth2_authorizations: Droits OAuth 2 muted_users: Utilisateurs silencieux auth_providers: + openid_url: URL OpenID openid_login_button: Continuer openid: title: Connexion avec OpenID @@ -2835,7 +2838,7 @@ fr: allow_to: 'Autoriser l’application cliente à :' allow_read_prefs: lire vos préférences utilisateur ; allow_write_prefs: modifier vos préférences utilisateur ; - allow_write_diary: créer des entrées dans votre carnet, faire des commentaires + allow_write_diary: créer des entrées dans votre journal, faire des commentaires et ajouter des ami(e)s ; allow_write_api: modifier la carte. allow_read_gpx: lire vos traces GPS privées ; @@ -2867,6 +2870,8 @@ fr: write_notes: Modifier les notes write_redactions: Caviarder les données cartographiques read_email: Lire l’adresse courriel de l’utilisateur + consume_messages: Lire, modifier l’état et supprimer les messages de l’utilisateur + send_messages: Envoyer des messages privés à d’autres utilisateurs skip_authorization: Demande d’approbation automatique for_roles: moderator: Cette autorisation concerne les actions disponibles uniquement pour @@ -3069,7 +3074,7 @@ fr: destroy_mute: Réactiver le son de cet utilisateur edit_profile: Modifier le profil send message: Envoyer un message - diary: Carnet + diary: Journal edits: Modifications traces: Traces notes: Notes de carte @@ -3201,6 +3206,8 @@ fr: update: only_creator_can_edit: Seul le modérateur ou la modératrice qui a créé ce blocage peut le modifier. + only_creator_or_revoker_can_edit: Seuls les modérateurs ayant créé ou annulé + ce blocage peuvent le modifier. success: Blocage mis à jour. index: title: Blocages d’utilisateur @@ -3391,7 +3398,8 @@ fr: center_marker: Centrer la carte sur le marqueur paste_html: Coller le HTML à inclure dans le site web view_larger_map: Afficher une carte plus grande - only_standard_layer: Seule la couche standard peut être exportée comme une image + only_standard_layer: Seule les couche « Standard », « Carte cyclable » et « Carte + de transport » peuvent être exportées comme une image embed: report_problem: Signaler un problème key: diff --git a/config/locales/gl.yml b/config/locales/gl.yml index eb86798a8..d69206866 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -420,7 +420,7 @@ gl: feature_warning: Cargando %{num_features} funcións, que poden facer que o teu navegador sexa lento ou non responda. Queres mostrar estes datos? load_data: Cargar os datos - loading: Estase a carregar... + loading: Cargando... tag_details: tags: Etiquetas wiki_link: @@ -654,7 +654,7 @@ gl: newer_comments: Comentarios máis recentes older_comments: Comentarios máis vellos new: - heading: Queres engadir un comentario á seguinte discusión sobre a entrada do + heading: Queres engadir un comentario á seguinte conversa sobre a entrada no diario? doorkeeper: errors: @@ -864,7 +864,7 @@ gl: veterinary: Clínica veterinaria village_hall: Concello waste_basket: Cesto do lixo - waste_disposal: Contedor de lixo + waste_disposal: Colector do lixo waste_dump_site: Lugar de vertedoiro de lixo watering_place: Bebedoiro para animais water_point: Punto de auga @@ -2727,6 +2727,8 @@ gl: write_notes: Modificar notas write_redactions: Censurar datos do mapa read_email: Ver os enderezos de correo electrónico dos usuarios + consume_messages: Ver, actualizar o estado e borrar mensaxes dos usuarios + send_messages: Enviar mensaxes privadas aos usuarios skip_authorization: Aprobar automaticamente aplicacións for_roles: moderator: Estes permisos son para as accións dispoñibles unicamente para os @@ -3052,6 +3054,8 @@ gl: flash: Bloqueo creado para o usuario %{name}. update: only_creator_can_edit: Só o moderador que creou o bloqueo pode editalo. + only_creator_or_revoker_can_edit: Só os moderadores que crearon ou revogaron + o bloqueo poden editalo. success: Bloqueo actualizado. index: title: Bloqueos de usuario @@ -3262,7 +3266,7 @@ gl: other: Estás a menos de %{count} pés deste punto base: standard: Estándar - cyclosm: CyclOSM (Ciclista) + cyclosm: CyclOSM cycle_map: Ciclista transport_map: Transporte tracestracktop_topo: Tracestrack Topo diff --git a/config/locales/he.yml b/config/locales/he.yml index bf5812cd3..3defbfbda 100644 --- a/config/locales/he.yml +++ b/config/locales/he.yml @@ -2699,6 +2699,8 @@ he: write_notes: לשנות הערות write_redactions: שינוי נתוני המפה read_email: לקרוא את כתובת הדוא"ל של המשתמש + consume_messages: קריאה, עדכון מצב ומחיקה של הודעות משתמשים + send_messages: שליחת הודעה פרטית למשתמשים אחרים skip_authorization: לאשר את היישום אוטומטית for_roles: moderator: ההרשאה הזאת מיועדת לפעולות שזמינות רק למפקחים diff --git a/config/locales/ia.yml b/config/locales/ia.yml index 846ead0cf..cb72dcccb 100644 --- a/config/locales/ia.yml +++ b/config/locales/ia.yml @@ -4,6 +4,7 @@ # Author: Carlosedepaula # Author: Fanjiayi # Author: Julian Mendez +# Author: Karmwiki # Author: Macofe # Author: McDutchie # Author: Nemo bis @@ -2689,6 +2690,7 @@ ia: write_notes: Modificar notas write_redactions: Censurar datos del carta read_email: Leger le adresse de e-mail del usator + send_messages: Inviar messages private a altere usatores skip_authorization: Approbar automaticamente le application for_roles: moderator: Iste permission es pro actiones que es disponibile solmente al moderatores diff --git a/config/locales/is.yml b/config/locales/is.yml index 11711973d..d48e413a3 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -20,6 +20,8 @@ is: formats: friendly: '%e. %B %Y kl. %H:%M' blog: '%e. %B %Y' + count: + at_least_pattern: '%{count}+' helpers: file: prompt: Veldu skrá @@ -53,6 +55,9 @@ is: messages: invalid_email_address: lítur ekki út fyrir að vera gilt tölvupóstfang email_address_not_routable: er ekki nothæft + models: + user_mute: + is_already_muted: er nú þegar þaggað models: acl: Aðgangslisti changeset: Breytingasett @@ -214,6 +219,7 @@ is: other: fyrir %{count} árum síðan printable_name: with_name_html: '%{name} (%{id})' + current_and_old_links_html: '%{current_link}, %{old_link}' editor: default: Sjálfgefið (núna %{name}) id: @@ -225,8 +231,10 @@ is: auth: providers: none: Ekkert + openid: OpenID google: Google facebook: Facebook + microsoft: Microsoft github: GitHub wikipedia: Wikipedia api: @@ -461,8 +469,15 @@ is: created: Búið til closed: Lokað belongs_to: Höfundur + heading: + title: Breytingasett %{id} + created_by_html: Útbúið af %{link_user} þann %{created}. + no_such_entry: + title: Ekkert slíkt breytingasett show: title: 'Breytingasett: %{id}' + created: 'Búið til: %{when}' + closed: 'Lokað: %{when}' created_ago_html: Búið til %{time_ago} closed_ago_html: Lokað %{time_ago} created_ago_by_html: Búið til %{time_ago} af %{user} @@ -550,6 +565,9 @@ is: show: title: Blogg %{user} | %{title} user_title: Blogg %{user} + discussion: Umræða + subscribe: Gerast áskrifandi + unsubscribe: Hætta í áskrift leave_a_comment: Bæta við athugasemd login_to_leave_a_comment_html: '%{login_link} til að bæta við athugasemd' login: Skrá inn @@ -593,6 +611,10 @@ is: all: title: OpenStreetMap bloggfærslur description: Nýjustu bloggfærslur frá notendum OpenStreetMap + subscribe: + button: Gerast áskrifandi að umræðu + unsubscribe: + button: Hætta áskrift að umræðu diary_comments: index: title: Dagbók Athugasemdir bætt við af %{user} @@ -617,6 +639,8 @@ is: contact_the_community_html: Ekki hika við að %{contact_link} OpenStreetMap-samfélagið ef þú hefur fundið bilaðan tengil eða villu. Taktu niður nákvæma vefslóð beiðni þinnar. + bad_request: + title: Ógild beiðni forbidden: title: Bannað description: Aðgerðin sem þú baðst um á OpenStreetMap-þjóninum er aðeins í boði @@ -814,6 +838,7 @@ is: college: Framhaldsskólabygging commercial: Verslunarhús construction: Bygging á framkvæmdastigi + cowshed: Fjós detached: Aðskilið hús dormitory: Heimavist duplex: Parhús @@ -1687,8 +1712,8 @@ is: hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' commented_note_html: '%{commenter} hefur endurvirkjað minnispunkt á korti sem þú hefur gert athugasemd við. Minnispunkturinn er nálægt %{place}.' - details: Nánari upplýsingar um minnispunktinn er að finna á %{url}. - details_html: Nánari upplýsingar um minnispunktinn er að finna á %{url}. + 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: hi: Hæ %{to_user}, greeting: Hæ, @@ -1708,12 +1733,11 @@ is: partial_changeset_with_comment: með umsögninni '%{changeset_comment}' partial_changeset_with_comment_html: með umsögninni '%{changeset_comment}' partial_changeset_without_comment: án athugasemdar - details: Nánari upplýsingar um breytingasettið er að finna á %{url}. - details_html: Nánari upplýsingar um breytingasettið er að finna á %{url}. - unsubscribe: Til að hætta áskrift að uppfærslum á þessu breytingasetti, farðu - þá á %{url} og smelltu á "Segja upp áskrift". - unsubscribe_html: Til að hætta áskrift að uppfærslum á þessu breytingasetti, - farðu þá á %{url} og smelltu á "Segja upp áskrift". + details: Svaraðu eða fáðu nánari upplýsingar um breytingasettið á %{url}. + details_html: Svaraðu eða fáðu nánari upplýsingar um breytingasettið á %{url}. + unsubscribe: Þú getur hætt áskrift að uppfærslum á þessu breytingasetti á %{url}. + unsubscribe_html: Þú getur hætt áskrift að uppfærslum á þessu breytingasetti + á %{url}. confirmations: confirm: heading: Skoðaðu tölvupóstinn þinn! @@ -1792,6 +1816,9 @@ is: people_mapping_nearby: nálæga notendur muted: title: Þögguð skilaboð + messages: + one: '%{count} þögguð skilaboð' + other: Þú ert með %{count} þögguð skilaboð reply: wrong_user: Þú hefur skráð þig inn sem `%{user}' en skilaboðin sem þú baðst um að svara voru ekki send til þess notanda. Skráðu þig inn sem réttan notanda @@ -1810,6 +1837,7 @@ is: heading: my_inbox: Innhólfið mitt my_outbox: Úthólfið mitt + muted_messages: Þögguð skilaboð mark: as_read: Skilaboðin voru merkt sem lesin as_unread: Skilaboðin voru merkt sem ólesin @@ -1852,6 +1880,7 @@ is: image: Mynd gravatar: gravatar: Nota Gravatar-auðkennismynd + link: https://wiki.openstreetmap.org/wiki/Gravatar what_is_gravatar: Hvað er Gravatar? disabled: Gravatar-auðkennismynd hefur verið gerð óvirk. enabled: Birting Gravatar-auðkennismyndar hefur verið gerð virk. @@ -1871,15 +1900,16 @@ is: failure: Gat ekki uppfært kjörstillingar. sessions: new: - title: Innskrá - tab_title: Innskrá + title: Skrá inn + tab_title: Skrá inn email or username: Tölvupóstur eða notandanafn password: Lykilorð remember: Muna innskráninguna lost password link: Gleymdirðu lykilorðinu þínu? - login_button: Innskrá + login_button: Skrá inn register now: Skrá þig núna - with external: 'Þú getur líka notað utanaðkomandi þjónustur til innskráningar:' + with external: eða skráð inn með utanaðkomandi þjónustu + or: eða auth failure: Þetta notandanafn eða lykilorð er rangt. destroy: title: Útskráning @@ -2070,6 +2100,7 @@ is: Statistics Canada). contributors_ca_canada: Kanada contributors_cz_czechia: Tékkland + contributors_cz_cc_licence_url: https://creativecommons.org/licenses/by/4.0/ contributors_fi_credit_html: |- %{finland}: Inniheldur gögn frá landupplýsingagagnagrunni Landmælinga Finnlands @@ -2081,6 +2112,9 @@ is: %{france}: Inniheldur afleidd gögn frá Direction Générale des Impôts (Skattstjóraembættið). contributors_fr_france: Frakkland + contributors_hr_croatia: Króatía + contributors_hr_dgu_url: https://dgu.gov.hr/ + contributors_hr_open_data_portal_url: https://data.gov.hr/ contributors_nl_credit_html: '%{netherlands}: Inniheldur AND-gögn ©, 2007 (%{and_link})' contributors_nl_netherlands: Holland @@ -2099,7 +2133,9 @@ is: (opinberar upplýsingar um Serbíu), 2018. contributors_rs_serbia: Serbía contributors_rs_rgz: Serbneska jarðfræðistofnunin + contributors_rs_rgz_url: https://geosrbija.rs/ contributors_rs_open_data_portal: National Open Data Portal + contributors_rs_open_data_portal_url: https://data.gov.rs/sr/ contributors_si_credit_html: |- %{slovenia}: Inniheldur gögn frá %{gu_link} og %{mkgp_link} (opinberar upplýsingar frá Slóveníu). @@ -2321,6 +2357,7 @@ is: ferry: Ferja light_rail: Léttlest tram: Sporvagn + trolleybus: Rafknúinn strætisvagn bus: Strætó cable_car: Kláflyfta chair_lift: Stólalyfta @@ -2330,11 +2367,13 @@ is: admin: Stjórnsýslumörk capital: Höfuðborg city: Borg + orchard: Trjágarður vineyard: Vínekra forest: Ræktaður skógur wood: Skógur farmland: Ræktarland grass: Gras + meadow: Rjóður bare_rock: Berar klappir sand: Sandur golf: Golfvöllur @@ -2562,6 +2601,7 @@ is: other: GPX-skrá með %{count} punktum frá %{user} description_without_count: GPX-skrá frá %{user} application: + 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: cookies_needed: Þú virðist ekki vera með stuðning við vefkökur í vafranum þínum. @@ -2584,24 +2624,25 @@ is: oauth2_authorizations: OAuth 2 auðkenningar muted_users: Þaggaðir notendur auth_providers: + openid_login_button: Halda áfram openid: title: Skrá inn með OpenID - alt: Skrá inn með OpenID-slóð + alt: Táknmerki OpenID google: title: Skrá inn með Google - alt: Skrá inn með Google OpenID-aðgangi + alt: Táknmerki Google facebook: title: Skrá inn með Facebook - alt: Skrá inn með Facebook-aðgangi + alt: Táknmerki Facebook microsoft: title: Skrá inn með Microsoft - alt: Skrá inn með Microsoft-aðgangi + alt: Táknmerki Microsoft github: title: Skrá inn með GitHub - alt: Skrá inn með GitHub-aðgangi + alt: Táknmerki GitHub wikipedia: title: Skrá inn með Wikipedia - alt: Skrá inn með Wikipedia-aðgangi + alt: Táknmerki Wikipedia oauth: authorize: title: Auðkenndu aðgang að notandaaðganginum þínum @@ -2692,6 +2733,7 @@ is: no_applications_html: Ert þú að nota forrit sem þú myndir vilja skrá til notkunar hjá okkur með %{oauth2} staðlinum? Þú verður að skrá vefforritið áður en það fer að senda OAuth-beiðnir á þessa þjónustu. + oauth_2: OAuth 2 new: Skrá nýtt forrit name: Nafn permissions: Heimildir @@ -2732,37 +2774,42 @@ is: application: Forrit permissions: Heimildir no_applications_html: Þú hefur ekki ennþá heimilað nein %{oauth2} forrit. + oauth_2: OAuth 2 application: revoke: Afturkalla aðgang confirm_revoke: Afturkalla aðgang fyrir þetta forrit? users: new: title: Nýskrá + tab_title: Nýskrá 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 búinn til - við munum reyna að afgreiða beiðnina eins fljótt og mögulegt er. support: aðstoðarteymið about: - header: Frjálst og breytanlegt + header: Frjálst og breytanlegt. 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. Við munum senda - þér tölvupóst til staðfestingar á aðgangnum. + paragraph_2: Skráðu þig sem notanda til að geta tekið þátt. display name description: Nafn þitt sem aðrir notendur sjá, þú getur breytt því síðar í stillingunum þínum. by_signing_up: privacy_policy: meðferð persónuupplýsinga privacy_policy_title: persónuverndarstefnu OSMF, þar með talinn hlutann um tölvupóstföng + contributor_terms: skilmálar vegna framlags + tou: notkunarskilmálar external auth: 'Auðkenning með þriðja aðila:' continue: Nýskrá terms accepted: Bestu þakkir fyrir að samþykkja nýju skilmálana vegna framlags þíns! email_help: + privacy_policy: stefna vegna meðferðar persónuupplýsinga html: Netfangið þitt er ekki birt opinberlega, skoðaðu síðuna um %{privacy_policy_link} til að sjá nánari upplýsingar. - use external auth: Þú getur líka notað utanaðkomandi þjónustur til innskráningar + or: eða + use external auth: eða nýskráð þig með utanaðkomandi þjónustu terms: title: Skilmálar heading: Skilmálar @@ -2861,6 +2908,8 @@ is: index: title: Notendur heading: Notendur + older: Eldri notendur + newer: Nýrri notendur 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 @@ -2949,6 +2998,8 @@ is: confirm: Staðfestu að þú viljir eyða þessu banni. revoke: Eyða banninu flash: Banninu var eytt. + revoke_all: + revoke: Afturkalla! helper: time_future_html: Endar eftir %{time} until_login: Virkt þangað til notandinn skráir sig inn. @@ -3005,12 +3056,24 @@ is: revoker_name: Eytt af 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 table: thead: muted_user: Þaggaður notandi actions: Aðgerðir tbody: + unmute: Ekki þagga send_message: Senda skilaboð + create: + notice: Þú þaggaðir niður í %{name}. + error: Ekki tókst að þagga niður í %{name}. %{full_message}. + destroy: + notice: Þú hættir að þagga niður í %{name}. + error: Ekki tókst að þagga niður í notandanum. Reyndu aftur. notes: index: title: Minnispunktar sem hafa verið sendir inn eða gerðar athugasemdir við af @@ -3060,6 +3123,7 @@ 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_log_in: skrá inn 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. @@ -3078,14 +3142,15 @@ is: custom_dimensions: Setja sérsniðnar stærðir format: 'Snið:' scale: 'Kvarði:' - image_dimensions: Myndin mun sýna venjulegt lag á %{width} x %{height} + image_dimensions: Myndin mun sýna %{layer} lagið í %{width} x %{height} download: Sækja short_url: Stutt URL-slóð include_marker: Hafa með kortamerkið center_marker: Miðja kort á kortamerki paste_html: Notaðu þennan HTML kóða til að bæta kortinu á vefsíðu view_larger_map: Skoða stærra kort - only_standard_layer: Eingöngu er hægt að flytja staðallagið út sem mynd + only_standard_layer: Eingöngu er hægt að flytja lögin Staðlað, Hjólakort og + Samgöngur út sem mynd embed: report_problem: Tilkynna vandamál key: @@ -3106,6 +3171,7 @@ is: other: Þú ert minna en %{count} fet frá þessum punkti base: standard: Staðlað + cyclosm: CyclOSM cycle_map: Hjólakort transport_map: Umferðarkort hot: Hjálparstarf diff --git a/config/locales/mk.yml b/config/locales/mk.yml index 44b3e1101..16ffe65ba 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -2675,6 +2675,8 @@ mk: write_notes: Менување на белешки write_redactions: Прикриј податоци за картата read_email: Читање на корисничка е-пошта + consume_messages: Читајте, менувајте статуси и бришете кориснички пораки + send_messages: Испраќајте приватни пораки до други корисници skip_authorization: Автоодобрување на прилог for_roles: moderator: Оваа дозвола е за дејства достапни само за модератори. diff --git a/config/locales/sv.yml b/config/locales/sv.yml index b931e7f52..61c145fdb 100644 --- a/config/locales/sv.yml +++ b/config/locales/sv.yml @@ -444,8 +444,8 @@ sv: relation: relation start_rjs: feature_warning: Laddar %{num_features} kartkomponenter, vilket kan göra din - webbläsare lÃ¥ngsam eller fÃ¥ den att sluta svara. Är säker pÃ¥ att du vill visa - denna data? + webbläsare lÃ¥ngsam eller fÃ¥ den att sluta svara. Är du säker pÃ¥ att du vill + visa denna data? load_data: Ladda data loading: Läser in … tag_details: @@ -614,6 +614,8 @@ sv: title: '%{user}s dagbok | %{title}' user_title: '%{user}s dagbok' discussion: Diskussion + subscribe: Prenumerera + unsubscribe: Avsluta prenumeration leave_a_comment: Lämna en kommentar login_to_leave_a_comment_html: '%{login_link} för att lämna en kommentar' login: Logga in @@ -673,6 +675,8 @@ sv: comment: Kommentar newer_comments: Nyare kommentarer older_comments: Äldre kommentarer + new: + heading: Lägg en kommentar pÃ¥ följande diskussion om dagboksinlägg? doorkeeper: errors: messages: @@ -907,6 +911,7 @@ sv: college: Högskolebyggnad commercial: Kommersiell byggnad construction: Byggnad under uppförande + cowshed: Kostall detached: FristÃ¥ende hus dormitory: Studenthem duplex: Dubbelhus @@ -936,6 +941,7 @@ sv: shed: Skjul stable: Stall static_caravan: Husvagn + sty: Stia temple: Tempelbyggnad terrace: Terrassbyggnad train_station: Järnvägsstation @@ -1643,6 +1649,8 @@ sv: intro_text: OpenStreetMap är en karta över världen, skapad av människor som du och fri att använda under en öppen licens. intro_2_create_account: Skapa ett användarkonto + hosting_partners_2024_html: Driften stöds av %{fastly}, %{corpmembers} och andra + %{partners}. partners_fastly: Fastly partners_corpmembers: OSMF-företagsmedlemmar partners_partners: partners @@ -1921,6 +1929,9 @@ sv: new password button: Återställ lösenord help_text: Ange e-postadressen du använde för att registrera dig sÃ¥ skickar vi en länk till den som du kan använda för att Ã¥terställa ditt lösenord. + create: + send_paranoid_instructions: Om din e-postadress finns i vÃ¥r databas kommer du + fÃ¥ ett e-postmeddelande för att bekräfta din e-postadress pÃ¥ nÃ¥gra minuter. edit: title: Återställ lösenord heading: Återställ lösenord för %{user} @@ -2140,6 +2151,9 @@ sv: contributors_at_cc_by: CC BY contributors_at_land_vorarlberg: Förbundsland Vorarlberg contributors_at_cc_by_at_with_amendments: CC BY AT med tillägg + contributors_au_credit_html: '%{australia}: Inkorporerades eller utvecklades + med hjälp av administrativa gränser © %{geoscape_australia_link} licensierades + av Samväldet Australien under %{cc_licence_link}.' contributors_au_australia: Australien contributors_au_geoscape_australia: Geoscape Australien contributors_au_cc_licence: Creative Commons Erkännande 4.0 Internationell-licens @@ -2168,6 +2182,7 @@ sv: och %{open_data_portal} (offentlig information om Kroatien)' contributors_hr_croatia: Kroatien contributors_hr_dgu: Kroatiens statliga geodatiska förvaltning + contributors_hr_open_data_portal: Nationella öppen data-portalen contributors_nl_credit_html: '%{netherlands}: InnehÃ¥ller © AND data, 2007 (%{and_link}).' contributors_nl_netherlands: Nederländerna @@ -2198,6 +2213,7 @@ sv: contributors_za_credit_html: '%{south_africa}: InnehÃ¥ller data frÃ¥n %{ngi_link}, statens upphovsrätt förbehÃ¥lls.' contributors_za_south_africa: Sydafrika + contributors_za_ngi: 'Chief Directorate: National Geo-Spatial Information' contributors_gb_credit_html: '%{united_kingdom}: InnehÃ¥ller Ordnance Survey data © Crown copyright and database right 2010-2023.' contributors_gb_united_kingdom: Storbritannien @@ -2644,25 +2660,26 @@ sv: oauth2_authorizations: OAuth 2-auktoriseringar muted_users: Tystade användare auth_providers: + openid_url: OpenID-URL openid_login_button: Fortsätt openid: title: Logga in med OpenID - alt: Logga in med en OpenID-URL + alt: OpenID-logotyp google: title: Logga in med Google - alt: Logga in med ett Google OpenID + alt: Google-logotyp facebook: title: Logga in med Facebook - alt: Logga in med ett Facebook-konto + alt: Facebook-logotyp microsoft: title: Logga in med Microsoft - alt: Logga in med ett Microsoft-konto + alt: Microsoft-logotyp github: title: Logga in med GitHub - alt: Logga in med ett GitHub-Konto + alt: GitHub-logotyp wikipedia: title: Logga in med Wikipedia - alt: Logga in med ett Wikipedia-konto + alt: Wikipedia-logotyp oauth: authorize: title: Auktorisera tillgÃ¥ng till ditt konto @@ -2817,9 +2834,14 @@ sv: ner och använda. paragraph_2: Registrera dig för att börja bidra. welcome: Välkommen till OpenStreetMap + duplicate_social_email: Om du redan har ett OpenStreetMap-konto och vill använda + en identitetsleverantör frÃ¥n en tredjepart, kan du logga in med ditt lösenord + och modifiera inställningarna för ditt konto. display name description: Ditt offentligt visade användarnamn. Du kan ändra detta senare i alternativ. by_signing_up: + html: Genom att registrera dig accepterar du vÃ¥r %{tou_link}, %{privacy_policy_link} + och %{contributor_terms_link}. privacy_policy: integritetspolicy privacy_policy_title: OSMFs integritetspolicy inklusive avsnitt om e-postadresser contributor_terms: bidragsvillkor @@ -2829,6 +2851,8 @@ sv: terms accepted: Tack för att du accepterat de nya villkoren för bidrag till kartan! email_help: + privacy_policy: integritetspolicy + privacy_policy_title: OSMF:s integritetspolicy inkluderingsavsnitt om e-postadresser html: Din adress visas inte offentligt, se vÃ¥r %{privacy_policy_link} för mer information. consider_pd_html: Jag anser mina bidrag vara i %{consider_pd_link}. @@ -2900,6 +2924,8 @@ sv: remove as friend: Ta bort vän add as friend: Lägg till vän mapper since: 'Karterar sedan:' + last map edit: 'Senaste kartredigering:' + no activity yet: Ännu ingen aktivitet uid: 'Användar id:' ct status: 'Användarvillkor:' ct undecided: Ej bestämda @@ -3022,6 +3048,8 @@ sv: update: only_creator_can_edit: Bara moderatorn som skapade denna blockering kan redigera den. + only_creator_or_revoker_can_edit: Endast moderatorer som skapade eller drog + tillbaka den här blockeringen kan redigera den. success: Blockering uppdaterad. index: title: Användarblockeringar @@ -3202,14 +3230,15 @@ sv: custom_dimensions: Ange anpassade dimensioner format: 'Format:' scale: 'Skala:' - image_dimensions: Bilden kommer visa standardlager pÃ¥ %{width} x %{height} + image_dimensions: Bilden kommer visa lager %{layer} pÃ¥ %{width} x %{height} download: Ladda ned short_url: Kortlänk include_marker: Lägg till markör center_marker: Centrera kartan pÃ¥ markören paste_html: Klistra in HTML-koden för att publicera pÃ¥ en webbsida view_larger_map: Visa större karta - only_standard_layer: Endast standardlagret kan exporteras som en bild + only_standard_layer: Endast lagrena Standard, Cykelkarta och Transport kan exporteras + som en bild embed: report_problem: Rapportera ett problem key: diff --git a/config/locales/tr.yml b/config/locales/tr.yml index e566d0339..d44f9418b 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -2613,8 +2613,8 @@ tr: trace: pending: BEKLEMEDE count_points: - one: '%{count} puan' - other: '%{count} puan' + one: '%{count} nokta' + other: '%{count} nokta' more: daha fazla trace_details: Ä°z Ayrıntılarını Görüntüle view_map: Haritayı Görüntüle diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml index 7ff6dfe88..811203715 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zh-CN.yml @@ -2526,6 +2526,8 @@ zh-CN: write_notes: 修改备注 write_redactions: 隐删地图数据 read_email: 查看用户邮箱地址 + consume_messages: 读取、更新状态和删除用户留言 + send_messages: 向其他用户发送私信 skip_authorization: 自动核准应用 for_roles: moderator: 此权限仅适用于仲裁员可用的操作。 diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 2d240c3fa..d39f3e2d3 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -2493,6 +2493,8 @@ zh-TW: write_notes: 修改註記 write_redactions: 編寫地圖資料 read_email: 讀取使用者電子郵件位址 + consume_messages: 讀取、更新狀態、與刪除使用者訊息 + send_messages: 傳送私人訊息給其他使用者 skip_authorization: 自動核准申請 for_roles: moderator: 此權限用於僅可由仲裁員執行的操作 diff --git a/lib/rich_text.rb b/lib/rich_text.rb index f19d3d3a9..edfa535f4 100644 --- a/lib/rich_text.rb +++ b/lib/rich_text.rb @@ -104,13 +104,17 @@ module RichText end def first_image_element(element) - return element if element.type == :img + return element if image?(element) && element.attr["src"].present? element.children.find do |child| nested_image = first_image_element(child) break nested_image if nested_image end end + + def image?(element) + element.type == :img || (element.type == :html_element && element.value == "img") + end end class Text < Base diff --git a/test/controllers/diary_entries_controller_test.rb b/test/controllers/diary_entries_controller_test.rb index bb6c25781..24475fc80 100644 --- a/test/controllers/diary_entries_controller_test.rb +++ b/test/controllers/diary_entries_controller_test.rb @@ -119,9 +119,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest assert_select "input#latitude[name='diary_entry[latitude]']", :count => 1 assert_select "input#longitude[name='diary_entry[longitude]']", :count => 1 assert_select "input[name=commit][type=submit][value=Publish]", :count => 1 - assert_select "input[name=commit][type=submit][value=Edit]", :count => 1 - assert_select "input[name=commit][type=submit][value=Preview]", :count => 1 - assert_select "input", :count => 6 + assert_select "button[type=button]", :text => "Edit", :count => 1 + assert_select "button[type=button]", :text => "Preview", :count => 1 + assert_select "input", :count => 4 end end end @@ -272,9 +272,9 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest assert_select "input#latitude[name='diary_entry[latitude]']", :count => 1 assert_select "input#longitude[name='diary_entry[longitude]']", :count => 1 assert_select "input[name=commit][type=submit][value=Update]", :count => 1 - assert_select "input[name=commit][type=submit][value=Edit]", :count => 1 - assert_select "input[name=commit][type=submit][value=Preview]", :count => 1 - assert_select "input", :count => 7 + assert_select "button[type=button]", :text => "Edit", :count => 1 + assert_select "button[type=button]", :text => "Preview", :count => 1 + assert_select "input", :count => 5 end end diff --git a/test/lib/rich_text_test.rb b/test/lib/rich_text_test.rb index 8dc9e49b1..e601c36fc 100644 --- a/test/lib/rich_text_test.rb +++ b/test/lib/rich_text_test.rb @@ -275,6 +275,41 @@ class RichTextTest < ActiveSupport::TestCase assert_equal "https://example.com/image1.jpg", r.image end + def test_markdown_image_with_empty_src + r = RichText.new("markdown", "![invalid]()") + assert_nil r.image + 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 + end + + def test_markdown_html_image + r = RichText.new("markdown", "") + assert_equal "https://example.com/img_element.png", r.image + end + + def test_markdown_html_image_with_empty_src + r = RichText.new("markdown", "") + assert_nil r.image + end + + def test_markdown_skip_html_image_with_empty_src + r = RichText.new("markdown", " ") + assert_equal "https://example.com/next_img_element.png", r.image + end + + def test_markdown_html_image_without_src + r = RichText.new("markdown", "") + assert_nil r.image + end + + def test_markdown_skip_html_image_without_src + r = RichText.new("markdown", " ") + assert_equal "https://example.com/next_img_element.png", r.image + end + private def assert_html(richtext, &block) diff --git a/test/mailers/user_mailer_test.rb b/test/mailers/user_mailer_test.rb index 25123b392..2a547e752 100644 --- a/test/mailers/user_mailer_test.rb +++ b/test/mailers/user_mailer_test.rb @@ -10,39 +10,43 @@ class UserMailerTest < ActionMailer::TestCase def test_gpx_description_tags trace = create(:trace) do |t| create(:tracetag, :trace => t, :tag => "one") - create(:tracetag, :trace => t, :tag => "two") - create(:tracetag, :trace => t, :tag => "three") + create(:tracetag, :trace => t, :tag => "two&three") + create(:tracetag, :trace => t, :tag => "fourone, two, three", email.html_part.body.to_s) + assert_match("one, two&three, four<five", email.html_part.body.to_s) + assert_match("one, two&three, four "traces", :action => "mine", :host => Settings.server_url, :protocol => Settings.server_protocol) - assert_select body, "a[href='#{url}']" + + assert_select Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body), + "a[href='#{url}']" + assert_includes email.text_part.body, url end def test_gpx_success_trace_link trace = create(:trace) email = UserMailer.gpx_success(trace, 100) - body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body) - url = Rails.application.routes.url_helpers.show_trace_url(trace.user, trace, :host => Settings.server_url, :protocol => Settings.server_protocol) - assert_select body, "a[href='#{url}']", :text => trace.name + + assert_select Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body), + "a[href='#{url}']", :text => trace.name + assert_includes email.text_part.body, url end def test_gpx_failure_no_trace_link trace = create(:trace) email = UserMailer.gpx_failure(trace, "some error") - body = Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body) - url = Rails.application.routes.url_helpers.show_trace_url(trace.user, trace, :host => Settings.server_url, :protocol => Settings.server_protocol) - assert_select body, "a[href='#{url}']", :count => 0 + + assert_select Rails::Dom::Testing.html_document_fragment.parse(email.html_part.body), + "a[href='#{url}']", :count => 0 + assert_not_includes email.text_part.body, url end def test_html_encoding diff --git a/yarn.lock b/yarn.lock index c027f1479..290ff527c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -624,9 +624,9 @@ punycode@^2.1.0: integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== qs@^6.9.4: - version "6.12.3" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.3.tgz#e43ce03c8521b9c7fd7f1f13e514e5ca37727754" - integrity sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ== + version "6.13.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" + integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg== dependencies: side-channel "^1.0.6"