]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4655'
authorTom Hughes <tom@compton.nu>
Sun, 7 Apr 2024 11:43:39 +0000 (12:43 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 7 Apr 2024 11:43:39 +0000 (12:43 +0100)
112 files changed:
app/assets/stylesheets/common.scss
app/helpers/user_helper.rb
app/models/user_block.rb
app/views/browse/_tag.html.erb
app/views/browse/_tag_details.html.erb
app/views/dashboards/show.html.erb
app/views/diary_entries/_diary_entry.html.erb
app/views/diary_entries/_form.html.erb
app/views/diary_entries/show.html.erb
app/views/layouts/_header.html.erb
app/views/messages/show.html.erb
app/views/profiles/edit.html.erb
app/views/site/export.html.erb
app/views/user_blocks/_navigation.html.erb [new file with mode: 0644]
app/views/user_blocks/blocks_by.html.erb
app/views/user_blocks/blocks_on.html.erb
app/views/user_blocks/index.html.erb
app/views/user_blocks/show.html.erb
app/views/users/terms.html.erb
config/eslint.js [new file with mode: 0644]
config/eslint.json [deleted file]
config/locales/af.yml
config/locales/ar.yml
config/locales/ast.yml
config/locales/az.yml
config/locales/be.yml
config/locales/bg.yml
config/locales/bn.yml
config/locales/br.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/ce.yml
config/locales/cs.yml
config/locales/cy.yml
config/locales/da.yml
config/locales/de.yml
config/locales/diq.yml
config/locales/dsb.yml
config/locales/el.yml
config/locales/en-GB.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fit.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/fy.yml
config/locales/ga.yml
config/locales/gd.yml
config/locales/gl.yml
config/locales/he.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/id.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ka.yml
config/locales/kab.yml
config/locales/kk-cyrl.yml
config/locales/ko.yml
config/locales/ku-Latn.yml
config/locales/lb.yml
config/locales/lt.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mr.yml
config/locales/ms.yml
config/locales/my.yml
config/locales/nb.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/nn.yml
config/locales/nqo.yml
config/locales/oc.yml
config/locales/pa.yml
config/locales/pl.yml
config/locales/pnb.yml
config/locales/pt-PT.yml
config/locales/pt.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/sat.yml
config/locales/sc.yml
config/locales/scn.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sr-Latn.yml
config/locales/sr.yml
config/locales/sv.yml
config/locales/te.yml
config/locales/th.yml
config/locales/tl.yml
config/locales/tr.yml
config/locales/tt.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/yi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
db/migrate/20240405083825_add_creator_index_to_user_blocks.rb [new file with mode: 0644]
db/structure.sql
lib/tasks/eslint.rake
package.json
test/helpers/user_helper_test.rb
yarn.lock

index 35c5ba845f0d0085b135d4efead8af8f71e89fa7..fc774a3eecc91e4cc478ff051b866d1d5de8c12a 100644 (file)
@@ -66,12 +66,6 @@ time[title] {
   color: $blue;
 }
 
-/* Rules for borders */
-/* These add additional colours to those provided by bootstrap */
-.border-grey {
-  border-color: $grey !important;
-}
-
 /* Rules for the header */
 
 #menu-icon {
index e1ab423a1e4b567b57f6a83c4e5ff072ed6d0d8d..cf2d40da565d68caec258ae063135500aa4ea58a 100644 (file)
@@ -2,7 +2,7 @@ module UserHelper
   # User images
 
   def user_image(user, options = {})
-    options[:class] ||= "user_image border border-grey"
+    options[:class] ||= "user_image border border-secondary-subtle"
     options[:alt] ||= ""
 
     if user.image_use_gravatar
@@ -15,7 +15,7 @@ module UserHelper
   end
 
   def user_thumbnail(user, options = {})
-    options[:class] ||= "user_thumbnail border border-grey"
+    options[:class] ||= "user_thumbnail border border-secondary-subtle"
     options[:alt] ||= ""
 
     if user.image_use_gravatar
@@ -28,7 +28,7 @@ module UserHelper
   end
 
   def user_thumbnail_tiny(user, options = {})
-    options[:class] ||= "user_thumbnail_tiny border border-grey"
+    options[:class] ||= "user_thumbnail_tiny border border-secondary-subtle"
     options[:alt] ||= ""
 
     if user.image_use_gravatar
index 7af1f9bdc2d009a562bb910a6d560c6e7ae1846a..4fe50d921219320f04426eb82394d6e2a7d0cffc 100644 (file)
@@ -15,7 +15,8 @@
 #
 # Indexes
 #
-#  index_user_blocks_on_user_id  (user_id)
+#  index_user_blocks_on_creator_id_and_id  (creator_id,id)
+#  index_user_blocks_on_user_id            (user_id)
 #
 # Foreign Keys
 #
index c0cdb5f9ae0def826762437953076a17982b1529..578dc8b59e3332b404ec1ce202afe1030054bc70 100644 (file)
@@ -1,4 +1,4 @@
 <tr>
-  <th class='py-1 border-grey table-light fw-normal' dir='auto'><%= format_key(tag[0]) %></th>
-  <td class='py-1 border-grey border-start' dir='auto'><%= format_value(tag[0], tag[1]) %></td>
+  <th class='py-1 border-secondary-subtle table-light fw-normal' dir='auto'><%= format_key(tag[0]) %></th>
+  <td class='py-1 border-secondary-subtle border-start' dir='auto'><%= format_value(tag[0], tag[1]) %></td>
 </tr>
index cc08fe16af7fb76de94d39e6b86d10c2ce9e3f5c..2b4ec1bb0708b8b8be8f17be931b9a023aaca45f 100644 (file)
@@ -1,6 +1,6 @@
 <% unless tag_details.empty? %>
   <h4><%= t ".tags" %></h4>
-  <div class='mb-3 border border-grey rounded overflow-hidden'>
+  <div class='mb-3 border border-secondary-subtle rounded overflow-hidden'>
     <table class='mb-0 browse-tag-list table align-middle text-break'>
       <%= render :partial => "browse/tag", :collection => tag_details.sort %>
     </table>
index 744661dfdbeb7bbd53a5ff812bfcf2a81b209030..d3e6dbcb3eb1153df59ec35369965f97688cfd62 100644 (file)
@@ -6,7 +6,7 @@
   <% if current_user and @user.id == current_user.id %>
     <div class="col-md order-md-last">
       <% if !@user.home_location? %>
-        <div id="map" class="content_map border border-grey">
+        <div id="map" class="content_map border border-secondary-subtle">
           <p class="m-3"><%= t(".no_home_location_html", :edit_profile_link => link_to(t(".edit_your_profile"), edit_profile_path)) %></p>
         </div>
       <% else %>
@@ -19,7 +19,7 @@
              :icon => image_path("marker-red.png"),
              :description => render(:partial => "popup", :object => current_user, :locals => { :type => "your location" })
            } %>
-        <%= tag.div "", :id => "map", :class => "content_map border border-grey rounded", :data => { :user => user_data } %>
+        <%= tag.div "", :id => "map", :class => "content_map border border-secondary-subtle rounded", :data => { :user => user_data } %>
       <% end %>
 
       <% friends = @user.friends %>
index a25ef10db7087591568f29c01ffbbbe164abbd8e..9c7d7b2dc297bc211c6772d3902048eb60f9e0f0 100644 (file)
@@ -1,4 +1,4 @@
-<article class='diary_post border-top border-grey py-3<%= " text-muted px-3 bg-danger bg-opacity-10" unless diary_entry.visible %> user_<%= diary_entry.user.id %>'>
+<article class='diary_post border-top border-secondary-subtle py-3<%= " text-muted px-3 bg-danger bg-opacity-10" unless diary_entry.visible %> user_<%= diary_entry.user.id %>'>
   <%= render :partial => "diary_entry_heading", :object => diary_entry, :as => "diary_entry" %>
 
   <div class="richtext text-break" xml:lang="<%= diary_entry.language_code %>" lang="<%= diary_entry.language_code %>">
index 0b38e3ea6b5b373008aca9c6bb015f394e98b464..291e8e33b647955d0d999f6f39b9c551b667638b 100644 (file)
@@ -5,7 +5,7 @@
 <fieldset>
   <legend><%= t ".location" -%></legend>
 
-  <%= tag.div "", :id => "map", :class => "border border-grey rounded mb-3", :data => { :lat => @lat, :lon => @lon, :zoom => @zoom } %>
+  <%= tag.div "", :id => "map", :class => "border border-secondary-subtle rounded mb-3", :data => { :lat => @lat, :lon => @lon, :zoom => @zoom } %>
 
   <div class="row mb-3">
     <%= f.text_field :latitude, :wrapper_class => "col-sm-4 d-flex flex-column", :class => "mt-auto", :id => "latitude" %>
index 0aea2d442b4d5d5e947cb642fe163b93bd2f9d7c..6c0895380d55d0c0e2024c15a00164a3a33110d1 100644 (file)
@@ -13,7 +13,7 @@
 <%= render @entry %>
 
 <div id="comments" class="comments mb-3 overflow-hidden">
-  <div class="row border-bottom border-grey">
+  <div class="row border-bottom border-secondary-subtle">
     <h2 class="col"><%= t(".discussion") %></h2>
 
     <% if current_user %>
index 97be3f7b8c96b78774ed2e5fd09dc3608ee3744c..0fafc3c7f25ad9b23fd9b1b20ab0a8d2c148d49f 100644 (file)
@@ -81,7 +81,7 @@
     </ul>
     <% if current_user && current_user.id %>
       <div class='d-inline-flex dropdown user-menu logged-in'>
-        <button class='dropdown-toggle btn btn-outline-secondary border-grey bg-white text-secondary px-2 py-1 flex-grow-1' type='button' data-bs-toggle='dropdown'>
+        <button class='dropdown-toggle btn btn-outline-secondary border-secondary-subtle bg-white text-secondary px-2 py-1 flex-grow-1' type='button' data-bs-toggle='dropdown'>
           <%= user_thumbnail_tiny(current_user, :width => 25, :height => 25, :class => "user_thumbnail_tiny rounded-1") %>
           <%= render :partial => "layouts/inbox" %>
           <span class="user-button">
index 29bf02cd8d137ca4901bfc611e6d8665b8500010..8fe5084692072d1a9e57e5c1bfc93c5b27b14f3c 100644 (file)
@@ -2,7 +2,7 @@
   <h1><%= @message.title %></h1>
 <% end %>
 
-<div class='mb-3 border-bottom border-grey py-1 d-flex gap-1 flex-wrap'>
+<div class='mb-3 border-bottom border-secondary-subtle py-1 d-flex gap-1 flex-wrap'>
   <% if current_user == @message.recipient %>
     <%= user_thumbnail_tiny @message.sender %>
     <%= link_to @message.sender.display_name, @message.sender %>
index 47282d5a22cbee0622336649fcdf9ef5a0c3567d..d755be52cae4b7d3f0bb931f9de4351f6d13db8a 100644 (file)
@@ -56,7 +56,7 @@
       <input class="form-check-input" type="checkbox" name="updatehome" value="1" <% unless current_user.home_location? %> checked <% end %> id="updatehome" />
       <label class="form-check-label" for="updatehome"><%= t ".update home location on click" %></label>
     </div>
-    <%= tag.div "", :id => "map", :class => "content_map set_location border border-grey rounded" %>
+    <%= tag.div "", :id => "map", :class => "content_map set_location border border-secondary-subtle rounded" %>
   </fieldset>
 
   <%= f.primary t(".save") %>
index bb66c665ad147445d2b337c6795997efb3301d40..3bc62883f8427751890fa9535d2f9d81610caf9c 100644 (file)
@@ -6,7 +6,7 @@
   <%= hidden_field_tag "format", "osm", :autocomplete => "off" %>
 
   <div class='export_area_inputs'>
-    <div class='export_boxy border border-grey rounded'>
+    <div class='export_boxy border border-secondary-subtle rounded'>
       <%= text_field_tag("maxlat", nil, :size => 10, :autocomplete => "off", :class => "export_bound form-control mx-auto") %>
       <div class="clearfix">
         <%= text_field_tag("minlon", nil, :size => 10, :autocomplete => "off", :class => "export_bound form-control my-2") %>
diff --git a/app/views/user_blocks/_navigation.html.erb b/app/views/user_blocks/_navigation.html.erb
new file mode 100644 (file)
index 0000000..a84ba13
--- /dev/null
@@ -0,0 +1,37 @@
+<ul class="nav nav-tabs">
+  <li class="nav-item">
+    <%= link_to t(".all_blocks"),
+                user_blocks_path,
+                :class => ["nav-link", { :active => action_name == "index" }] %>
+  </li>
+  <% if current_user&.blocks&.exists? %>
+    <li class="nav-item">
+      <%= link_to t(".blocks_on_me"),
+                  user_blocks_on_path(current_user),
+                  :class => ["nav-link", { :active => action_name == "blocks_on" && current_user == @user }] %>
+    </li>
+  <% end %>
+  <% on_user = @user || @user_block&.user %>
+  <% if on_user != current_user && on_user&.blocks&.exists? %>
+    <li class="nav-item">
+      <%= link_to t(".blocks_on_user", :user => on_user.display_name),
+                  user_blocks_on_path(on_user),
+                  :class => ["nav-link", { :active => action_name == "blocks_on" }] %>
+    </li>
+  <% end %>
+  <% if current_user&.blocks_created&.exists? %>
+    <li class="nav-item">
+      <%= link_to t(".blocks_by_me"),
+                  user_blocks_by_path(current_user),
+                  :class => ["nav-link", { :active => action_name == "blocks_by" && current_user == @user }] %>
+    </li>
+  <% end %>
+  <% by_user = @user || @user_block&.creator %>
+  <% if by_user != current_user && by_user&.blocks_created&.exists? %>
+    <li class="nav-item">
+      <%= link_to t(".blocks_by_user", :user => by_user.display_name),
+                  user_blocks_by_path(by_user),
+                  :class => ["nav-link", { :active => action_name == "blocks_by" }] %>
+    </li>
+  <% end %>
+</ul>
index 87ff7f5b23a73a5c294aa587b907180783ea84a0..7fa0a4fbbae9f62b3ae69118eb479eb951fb3a59 100644 (file)
@@ -1,6 +1,9 @@
 <% @title = t(".title", :name => @user.display_name) %>
+
+<% content_for :heading_class, "pb-0" %>
 <% content_for :heading do %>
   <h1><%= t(".heading_html", :name => link_to(@user.display_name, @user)) %></h1>
+  <%= render :partial => "navigation" %>
 <% end %>
 
 <% unless @user_blocks.empty? %>
index ed03342dc73deed0014fc4516dd0df4baf28721f..0c15b8866d73d70e2e133153e4cbc2bb7416fd3e 100644 (file)
@@ -1,6 +1,9 @@
 <% @title = t(".title", :name => @user.display_name) %>
+
+<% content_for :heading_class, "pb-0" %>
 <% content_for :heading do %>
   <h1><%= t(".heading_html", :name => link_to(@user.display_name, @user)) %></h1>
+  <%= render :partial => "navigation" %>
 <% end %>
 
 <% unless @user_blocks.empty? %>
index 57cef6055992722523a71dc475feb718b6c1423a..4d200b516cd574b7f469ce4e17b2854a13d6b68e 100644 (file)
@@ -1,6 +1,9 @@
 <% @title = t(".title") %>
+
+<% content_for :heading_class, "pb-0" %>
 <% content_for :heading do %>
   <h1><%= t(".heading") %></h1>
+  <%= render :partial => "navigation" %>
 <% end %>
 
 <% unless @user_blocks.empty? %>
index 7e6566365f4794741c4acb3baf5abfca64671659..7b30d19202ee56c34b76868969af639de6045390 100644 (file)
@@ -2,15 +2,12 @@
               :block_on => @user_block.user.display_name,
               :block_by => @user_block.creator.display_name) %>
 
+<% content_for :heading_class, "pb-0" %>
 <% content_for :heading do %>
   <h1><%= t(".heading_html",
             :block_on => link_to(@user_block.user.display_name, @user_block.user),
             :block_by => link_to(@user_block.creator.display_name, @user_block.creator)) %></h1>
-  <nav class='secondary-actions'>
-    <ul class='clearfix'>
-      <li><%= link_to t(".back"), user_blocks_path %></li>
-    </ul>
-  </nav>
+  <%= render :partial => "navigation" %>
 <% end %>
 
 <dl class="row">
index e2ece8f1a9b3049f681e91d4175456af5e988de0..340aaf04e2ac7c4604e8322844560f87e4759dde 100644 (file)
@@ -30,7 +30,7 @@
     <% end %>
   </div>
 
-  <div id="contributorTerms" class="legale border border-grey rounded">
+  <div id="contributorTerms" class="legale border border-secondary-subtle rounded">
     <%= render :partial => "terms" %>
   </div>
 
diff --git a/config/eslint.js b/config/eslint.js
new file mode 100644 (file)
index 0000000..a52b1e6
--- /dev/null
@@ -0,0 +1,135 @@
+const globals = require("globals");
+const js = require("@eslint/js");
+
+module.exports = [
+  js.configs.recommended,
+  {
+    languageOptions: {
+      ecmaVersion: 2015,
+      sourceType: "script",
+      globals: {
+        ...globals.browser,
+        ...globals.jquery,
+        Cookies: "readonly",
+        I18n: "readonly",
+        L: "readonly",
+        OSM: "writable",
+        Matomo: "readonly",
+        Qs: "readonly",
+        Turbo: "readonly",
+        updateLinks: "readonly"
+      }
+    },
+    rules: {
+      "accessor-pairs": "error",
+      "array-bracket-newline": ["error", "consistent"],
+      "array-bracket-spacing": "error",
+      "array-callback-return": "error",
+      "block-scoped-var": "error",
+      "block-spacing": "error",
+      "brace-style": ["error", "1tbs", { allowSingleLine: true }],
+      "comma-dangle": "error",
+      "comma-spacing": "error",
+      "comma-style": "error",
+      "computed-property-spacing": "error",
+      "curly": ["error", "multi-line", "consistent"],
+      "dot-location": ["error", "property"],
+      "dot-notation": "error",
+      "eol-last": "error",
+      "eqeqeq": ["error", "smart"],
+      "func-call-spacing": "error",
+      "indent": ["error", 2, {
+        SwitchCase: 1,
+        VariableDeclarator: "first",
+        FunctionDeclaration: { parameters: "first" },
+        FunctionExpression: { parameters: "first" },
+        CallExpression: { arguments: "first" }
+      }],
+      "key-spacing": "error",
+      "keyword-spacing": "error",
+      "no-alert": "warn",
+      "no-array-constructor": "error",
+      "no-caller": "error",
+      "no-console": "warn",
+      "no-div-regex": "error",
+      "no-eq-null": "error",
+      "no-eval": "error",
+      "no-extend-native": "error",
+      "no-extra-bind": "error",
+      "no-extra-label": "error",
+      "no-floating-decimal": "error",
+      "no-implicit-coercion": "warn",
+      "no-implicit-globals": "warn",
+      "no-implied-eval": "error",
+      "no-invalid-this": "error",
+      "no-iterator": "error",
+      "no-labels": "error",
+      "no-label-var": "error",
+      "no-lone-blocks": "error",
+      "no-lonely-if": "error",
+      "no-loop-func": "error",
+      "no-mixed-operators": "error",
+      "no-multiple-empty-lines": "error",
+      "no-multi-spaces": "error",
+      "no-multi-str": "error",
+      "no-negated-condition": "error",
+      "no-nested-ternary": "error",
+      "no-new": "error",
+      "no-new-func": "error",
+      "no-new-object": "error",
+      "no-new-wrappers": "error",
+      "no-octal-escape": "error",
+      "no-param-reassign": "error",
+      "no-process-env": "error",
+      "no-proto": "error",
+      "no-script-url": "error",
+      "no-self-compare": "error",
+      "no-sequences": "error",
+      "no-throw-literal": "error",
+      "no-trailing-spaces": "error",
+      "no-undef-init": "error",
+      "no-undefined": "error",
+      "no-unmodified-loop-condition": "error",
+      "no-unneeded-ternary": "error",
+      "no-unused-expressions": "off",
+      "no-unused-vars": ["error", { caughtErrors: "none" }],
+      "no-useless-call": "error",
+      "no-useless-concat": "error",
+      "no-useless-return": "error",
+      "no-use-before-define": ["error", { functions: false }],
+      "no-void": "error",
+      "no-warning-comments": "warn",
+      "no-whitespace-before-property": "error",
+      "object-curly-newline": ["error", { consistent: true }],
+      "object-curly-spacing": ["error", "always"],
+      "object-property-newline": ["error", { allowAllPropertiesOnSameLine: true }],
+      "operator-linebreak": ["error", "after"],
+      "padded-blocks": ["error", "never"],
+      "quote-props": ["error", "consistent-as-needed", { keywords: true, numbers: true }],
+      "quotes": ["error", "double"],
+      "radix": ["error", "always"],
+      "semi": ["error", "always"],
+      "semi-spacing": "error",
+      "semi-style": "error",
+      "space-before-blocks": "error",
+      "space-before-function-paren": ["error", { named: "never" }],
+      "space-in-parens": "error",
+      "space-infix-ops": "error",
+      "space-unary-ops": "error",
+      "switch-colon-spacing": "error",
+      "wrap-iife": "error",
+      "wrap-regex": "error",
+      "yoda": "error"
+    }
+  },
+  {
+    files: ["config/eslint.js"],
+    languageOptions: {
+      ecmaVersion: 2019,
+      sourceType: "commonjs",
+      globals: {
+        ...globals.commonjs
+      }
+    }
+  }
+];
diff --git a/config/eslint.json b/config/eslint.json
deleted file mode 100644 (file)
index 397615d..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-{
-  "env": {
-    "browser": true,
-    "jquery": true
-  },
-  "extends": [
-    "eslint:recommended"
-  ],
-  "globals": {
-    "Cookies": "readonly",
-    "I18n": "readonly",
-    "L": "readonly",
-    "OSM": "writable",
-    "Matomo": "readonly",
-    "Qs": "readonly",
-    "updateLinks": "readonly",
-    "Turbo": "readonly"
-  },
-  "rules": {
-    "accessor-pairs": "error",
-    "array-bracket-newline": ["error", "consistent"],
-    "array-bracket-spacing": "error",
-    "array-callback-return": "error",
-    "block-scoped-var": "error",
-    "block-spacing": "error",
-    "brace-style": ["error", "1tbs", { "allowSingleLine": true }],
-    "comma-dangle": "error",
-    "comma-spacing": "error",
-    "comma-style": "error",
-    "computed-property-spacing": "error",
-    "curly": ["error", "multi-line", "consistent"],
-    "dot-location": ["error", "property"],
-    "dot-notation": "error",
-    "eol-last": "error",
-    "eqeqeq": ["error", "smart"],
-    "func-call-spacing": "error",
-    "indent": ["error", 2, {
-      "SwitchCase": 1,
-      "VariableDeclarator": "first",
-      "FunctionDeclaration": { "parameters": "first" },
-      "FunctionExpression": { "parameters": "first" },
-      "CallExpression": { "arguments": "first" }
-    }],
-    "key-spacing": "error",
-    "keyword-spacing": "error",
-    "no-alert": "warn",
-    "no-array-constructor": "error",
-    "no-caller": "error",
-    "no-console": "warn",
-    "no-div-regex": "error",
-    "no-eq-null": "error",
-    "no-eval": "error",
-    "no-extend-native": "error",
-    "no-extra-bind": "error",
-    "no-extra-label": "error",
-    "no-floating-decimal": "error",
-    "no-implicit-coercion": "warn",
-    "no-implicit-globals": "warn",
-    "no-implied-eval": "error",
-    "no-invalid-this": "error",
-    "no-iterator": "error",
-    "no-labels": "error",
-    "no-label-var": "error",
-    "no-lone-blocks": "error",
-    "no-lonely-if": "error",
-    "no-loop-func": "error",
-    "no-mixed-operators": "error",
-    "no-multiple-empty-lines": "error",
-    "no-multi-spaces": "error",
-    "no-multi-str": "error",
-    "no-negated-condition": "error",
-    "no-nested-ternary": "error",
-    "no-new": "error",
-    "no-new-func": "error",
-    "no-new-object": "error",
-    "no-new-wrappers": "error",
-    "no-octal-escape": "error",
-    "no-param-reassign": "error",
-    "no-process-env": "error",
-    "no-proto": "error",
-    "no-script-url": "error",
-    "no-self-compare": "error",
-    "no-sequences": "error",
-    "no-throw-literal": "error",
-    "no-trailing-spaces": "error",
-    "no-undef-init": "error",
-    "no-undefined": "error",
-    "no-unmodified-loop-condition": "error",
-    "no-unneeded-ternary": "error",
-    "no-unused-expressions": "off",
-    "no-unused-vars": "error",
-    "no-useless-call": "error",
-    "no-useless-concat": "error",
-    "no-useless-return": "error",
-    "no-use-before-define": ["error", { "functions": false }],
-    "no-void": "error",
-    "no-warning-comments": "warn",
-    "no-whitespace-before-property": "error",
-    "object-curly-newline": ["error", { "consistent": true }],
-    "object-curly-spacing": ["error", "always"],
-    "object-property-newline": ["error", { "allowAllPropertiesOnSameLine": true }],
-    "operator-linebreak": ["error", "after"],
-    "padded-blocks": ["error", "never"],
-    "quote-props": ["error", "consistent-as-needed", { "keywords": true, "numbers": true }],
-    "quotes": ["error", "double"],
-    "radix": ["error", "always"],
-    "semi": ["error", "always"],
-    "semi-spacing": "error",
-    "semi-style": "error",
-    "space-before-blocks": "error",
-    "space-before-function-paren": ["error", { "named": "never" }],
-    "space-in-parens": "error",
-    "space-infix-ops": "error",
-    "space-unary-ops": "error",
-    "switch-colon-spacing": "error",
-    "wrap-iife": "error",
-    "wrap-regex": "error",
-    "yoda": "error"
-  }
-}
index 0123f137e2e43c8202af8ed7fe3921faf143de46..a19b95bb08f76700ac67b97084f044b9bc96172a 100644 (file)
@@ -2058,9 +2058,6 @@ af:
       reason: Rede vir die versperring
       status: Status
       revoker_name: Herroep deur
-      showing_page: Bladsy %{page}
-      next: Volgende »
-      previous: « Vorige
   notes:
     index:
       heading: Notas van %{user}
index 22a47acc54926235ceb0f6919b11d419a0551a96..e2523b3fc3e6e5a8c46ae1270ee312df4f14ec8c 100644 (file)
@@ -2702,9 +2702,6 @@ ar:
       reason: السبب العرقلة
       status: الحالة
       revoker_name: مُبطل بواسطة
-      showing_page: الصفحة %{page}
-      next: التالي »
-      previous: « السابق
   user_mutes:
     index:
       title: المستخدمون الممنوعون
index 6b58595c59debd4fbf60cad0989bc77b2157ee1d..4a39a5b4357b18d0f5201be615094620624c8425 100644 (file)
@@ -2151,9 +2151,6 @@ ast:
       reason: Motivu del bloquéu
       status: Estáu
       revoker_name: Desaniciáu por
-      showing_page: Páxina %{page}
-      next: Siguiente »
-      previous: « Anterior
   notes:
     index:
       title: Notes unviaes o comentaes por %{user}
index 5cf38c5c0b7bba7fa3d1775fb10146dace78d979..415294bae4ed0dbb6c9163f78f9b334c32b94531 100644 (file)
@@ -1099,8 +1099,6 @@ az:
       reason: Bloklanma səbəbi
       status: Status
       revoker_name: Tərəfindən ləgv edilib
-      next: Növbəti »
-      previous: « Əvvəlki
   notes:
     show:
       description: Təsvir
index 8c3746d643484335b83f82b3b3c7e33fb7656670..afa02eb9e85d9ac0620fba3a25bfcf39d1d5672b 100644 (file)
@@ -2266,9 +2266,6 @@ be:
       reason: Прычына блакіроўкі
       status: Статус
       revoker_name: Адкліканы
-      showing_page: Старонка %{page}
-      next: Далей »
-      previous: « Назад
   notes:
     index:
       title: Заўвагі, створаныя ці пракаментаваныя %{user}
index eba38a2ce60edd6242d2fce7eb6ee9495403f9c4..6cfa8239c53e5365bafa5b18e97bbb396c779d39 100644 (file)
@@ -2046,9 +2046,6 @@ bg:
       creator_name: Създател
       reason: Причина за блокиране
       status: Състояние
-      showing_page: Страница %{page}
-      next: Следваща »
-      previous: « Предишна
   user_mutes:
     index:
       table:
index cf5bf26e1636fb222614d15d9e035502ce2109f0..2c2e4e8b9e92e2b05aa1e22934263c575510386a 100644 (file)
@@ -2038,8 +2038,6 @@ bn:
       edit: সম্পাদনা
     blocks:
       display_name: বাধাপ্রাপ্ত ব্যবহারকারী
-      next: পরবর্তী »
-      previous: « পূর্ববর্তী
   user_mutes:
     index:
       table:
index 410a2261319e4ac9310b540f7e60656a0f33894b..1bd7c852d67195390bb309e3c654f3288e9f54f1 100644 (file)
@@ -2444,6 +2444,7 @@ br:
       identifiable: ANAVEZADUS
       private: PREVEZ
       trackable: HEULIADUS
+      details_without_tags_html: '%{time_ago} gant %{user}'
     index:
       public_traces: Roudoù GPS foran
       my_gps_traces: Ma Roudoù GPS
@@ -2911,9 +2912,6 @@ br:
       reason: Abeg evit stankañ
       status: Statud
       revoker_name: Torret gant
-      showing_page: Page %{page}
-      next: ↓War-lerc'h »
-      previous: ↓« Kent
   user_mutes:
     index:
       title: Implijerien kuzhet
index 0167ef868d77c0640a48902285430f8716f4c7e3..731014541f53a0c9dcb4be5ef4efaff2fdb12169 100644 (file)
@@ -1537,9 +1537,6 @@ bs:
       reason: Razlog za blokadu
       status: Stanje
       revoker_name: Opozvano od strane
-      showing_page: Stranica %{page}
-      next: Sljedeća »
-      previous: « Prethodna
   notes:
     index:
       id: Id
index 39eddb4cd04d7740c07251a8e1e36cacd2dc4dad..d8d8fe674a0a766df4c3ea08a186fc16101d6f2b 100644 (file)
@@ -2925,9 +2925,6 @@ ca:
       reason: Motiu del blocatge
       status: Estat
       revoker_name: Revocat per
-      showing_page: Pàgina %{page}
-      next: Següent »
-      previous: « Anterior
   notes:
     index:
       title: Notes enviades o comentades per %{user}
index 238ec38a16997de269d2e64c58d0dc376ebe4053..73deee98e02692ac0bdf68c298e1b6c7739c075e 100644 (file)
@@ -928,9 +928,6 @@ ce:
       reason: Блоктохаран бахьана
       status: Статус
       revoker_name: ДӀайаьккхина блок
-      showing_page: АгӀо %{page}
-      next: РогӀера →
-      previous: ← Хьалхара
   notes:
     index:
       heading: '%{user} декъашхочун билгалонаш'
index 39184e167eb1e632b7e3b1c34efc50b2a7147703..bec59bce551f5609d780c7a02601076a222b17d2 100644 (file)
@@ -442,7 +442,7 @@ cs:
       entry_role_html: Relace %{relation_name} (jako %{relation_role})
     not_found:
       title: Nenalezeno
-      sorry: 'Promiňte, ale %{type} #%{id} nebylo možné nalézt.'
+      sorry: 'Je nám líto, ale %{type} #%{id} neexistuje.'
       type:
         node: uzel
         way: cesta
@@ -487,6 +487,15 @@ cs:
       introduction: Pro nalezení okolních prvků klikněte na mapu.
       nearby: Okolní prvky
       enclosing: Umístění prvku
+  old_nodes:
+    not_found:
+      sorry: 'Je nám líto, ale verze %{version} uzlu #%{id} nebyla nalezena.'
+  old_ways:
+    not_found:
+      sorry: 'Je nám líto, ale verze %{version} cesty #%{id} nebyla nalezena.'
+  old_relations:
+    not_found:
+      sorry: 'Je nám líto, ale verze %{version} relace #%{id} nebyla nalezena.'
   changesets:
     changeset_paging_nav:
       showing_page: Stránka %{page}
@@ -521,8 +530,24 @@ cs:
         created: Vytvořeno
         closed: Uzavřeno
         belongs_to: Autor
+    subscribe:
+      heading: Přihlásit se k odběru následující diskuse o sadě změn?
+      button: Odebírat diskusi
+    unsubscribe:
+      heading: Zrušit odběr následující diskuse o sadě změn?
+      button: Zrušit odběr diskuse
+    heading:
+      title: Sada změn %{id}
+      created_by_html: Vytvořil uživatel %{link_user} %{created}.
+    no_such_entry:
+      title: Taková sada změn neexistuje
+      heading: Záznam s ID %{id} neexistuje
+      body: Je nám líto, ale sada změn s ID %{id} neexistuje. Zkontrolujte překlepy
+        nebo jste možná klikli na chybný odkaz.
     show:
       title: 'Sada změn: %{id}'
+      created: 'Vytvořeno: %{when}'
+      closed: 'Uzavřeno: %{when}'
       created_ago_html: Vytvořeno %{time_ago}
       closed_ago_html: Uzavřeno %{time_ago}
       created_ago_by_html: Vytvořeno %{time_ago} uživatelem %{user}
@@ -604,6 +629,7 @@ cs:
     show:
       title: Deník uživatele %{user} | %{title}
       user_title: Deník uživatele %{user}
+      discussion: Diskuse
       leave_a_comment: Zanechat komentář
       login_to_leave_a_comment_html: '%{login_link} k zanechání komentáře'
       login: Přihlaste se
@@ -658,6 +684,12 @@ cs:
       comment: Komentář
       newer_comments: Novější komentáře
       older_comments: Starší komentáře
+    subscribe:
+      heading: Přihlásit se k odběru následující diskuse k deníkovému záznamu?
+      button: Odebírat diskusi
+    unsubscribe:
+      heading: Odhlásit odběr následující diskuse k deníkovému záznamu?
+      button: Zrušit odběr diskuse
   doorkeeper:
     errors:
       messages:
@@ -699,7 +731,7 @@ cs:
     forbidden:
       title: Zakázáno
       description: Operace, kterou jste požadovali na serveru OpenStreetMap, je dostupná
-        pouze administrátorům (HTTP 403)
+        pouze správcům (HTTP 403)
     internal_server_error:
       title: Chyba aplikace
       description: Server OpenStreetMap narazil na neočekávanou situaci, která mu
@@ -1631,7 +1663,10 @@ cs:
     intro_text: OpenStreetMap je mapa světa, vytvořená lidmi jako vy a volně využitelná
       pod otevřenou licencí.
     intro_2_create_account: Vytvořit uživatelský účet
+    hosting_partners_2024_html: Hosting podporují %{fastly}, %{corpmembers} a další
+      %{partners}.
     partners_fastly: Fastly
+    partners_corpmembers: firemní členové OSMF
     partners_partners: partneři
     tou: Podmínky užití
     osm_offline: Databáze OpenStreetMap je momentálně kvůli probíhající neodkladné
@@ -1653,6 +1688,7 @@ cs:
     more: Další
   user_mailer:
     diary_comment_notification:
+      description: 'Záznam #%{id} deníku uživatele OpenStreetMap'
       subject: '[OpenStreetMap] %{user} okomentoval záznam v deníku'
       hi: Ahoj, uživateli %{to_user},
       header: '%{from_user} okomentoval záznam v deníku na OpenStreetMap s předmětem
@@ -1663,6 +1699,8 @@ cs:
         %{commenturl} nebo poslat zprávu autorovi na %{replyurl}
       footer_html: Můžete si také přečíst komentář na %{readurl} a můžete komentovat
         na %{commenturl} nebo poslat zprávu autorovi na %{replyurl}
+      footer_unsubscribe: Z odběru diskuse se můžete odhlásit na %{unsubscribeurl}
+      footer_unsubscribe_html: Z odběru diskuse se můžete odhlásit na %{unsubscribeurl}
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: Dobrý den, uživateli %{to_user},
@@ -1701,6 +1739,7 @@ cs:
         few: úspěšně načteno s %{trace_points} z možných %{count} bodů.
         many: úspěšně načteno s %{trace_points} z možných %{count} bodu.
         other: úspěšně načteno s %{trace_points} z možných %{count} bodů.
+      all_your_traces_html: Všechny úspěšně načtené GPX stopy můžete najít na %{url}.
       subject: '[OpenStreetMap] Úspěšný import GPX'
     signup_confirm:
       subject: '[OpenStreetMap] Vítejte v OpenStreetMap'
@@ -1726,6 +1765,7 @@ cs:
       click_the_link: Pokud jste to byli Vy, kliknutím na níže uvedený odkaz získáte
         nové heslo.
     note_comment_notification:
+      description: 'Poznámka k OpenStreetMap #%{id}'
       anonymous: Anonymní uživatel
       greeting: Ahoj,
       commented:
@@ -1766,6 +1806,7 @@ cs:
       details: Podrobnosti k poznámce můžete najít na %{url}.
       details_html: Podrobnosti k poznámce můžete najít na %{url}.
     changeset_comment_notification:
+      description: 'Sada změn OpenStreetMap #%{id}'
       hi: Dobrý den, uživateli %{to_user},
       greeting: Dobrý den,
       commented:
@@ -1837,11 +1878,13 @@ cs:
       to: Komu
       subject: Předmět
       date: Datum
+      actions: Akce
     message_summary:
       unread_button: Označit jako nepřečtené
       read_button: Označit jako přečtené
       reply_button: Odpovědět
       destroy_button: Smazat
+      unmute_button: Přesunout do doručené pošty
     new:
       title: Odeslat zprávu
       send_message_to_html: Poslat novou zprávu uživateli %{name}
@@ -1856,6 +1899,7 @@ cs:
       body: Je mi líto, ale žádná zpráva s tímto ID neexistuje.
     outbox:
       title: Odeslaná pošta
+      actions: Akce
       messages:
         few: Máte %{count} odeslané zprávy
         one: Máte %{count} odeslanou zprávu
@@ -1863,6 +1907,13 @@ cs:
       no_sent_messages_html: Nemáte žádné odeslané zprávy. Co třeba kontaktovat nějaké
         %{people_mapping_nearby_link}?
       people_mapping_nearby: uživatele poblíž
+    muted:
+      title: Ztlumené zprávy
+      messages:
+        one: Máte %{count} ztlumenou zprávu
+        few: Máte %{count} ztlumené zprávy
+        many: Máte %{count} ztlumené zprávy
+        other: Máte %{count} ztlumených zpráv
     reply:
       wrong_user: Jste přihlášeni jako „%{user}“, ale zpráva, na kterou chcete odpovědět,
         nebyla poslána tomuto uživateli. Pokud na ni chcete odpovědět, přihlaste se
@@ -1881,9 +1932,13 @@ cs:
     heading:
       my_inbox: Má doručená pošta
       my_outbox: Moje odchozí
+      muted_messages: Ztlumené zprávy
     mark:
       as_read: Zpráva označena jako přečtená
       as_unread: Zpráva označena jako nepřečtená
+    unmute:
+      notice: Zpráva byla přesunuta do doručené pošty
+      error: Zprávu se nepodařilo přesunout do doručené pošty.
     destroy:
       destroyed: Zpráva smazána
   passwords:
@@ -1894,6 +1949,9 @@ cs:
       new password button: Resetovat heslo
       help_text: Zadejte e-mailovou adresu, pod kterou jste se zaregistrovali, my
         vám na ni pošleme odkaz, pomocí kterého si nastavíte nové heslo.
+    create:
+      send_paranoid_instructions: Pokud v naší databázi existuje vaše e-mailová adresa,
+        obdržíte na ni během několika minut odkaz pro obnovení hesla.
     edit:
       title: Obnovit heslo
       heading: Resetovat heslo pro %{user}
@@ -1901,6 +1959,7 @@ cs:
       flash token bad: Odpovídající kód nebyl nalezen, možná zkontrolujte URL?
     update:
       flash changed: Vaše heslo bylo změněno.
+      flash token bad: Odpovídající kód nebyl nalezen, možná zkontrolujte URL?
   preferences:
     show:
       title: Moje preference
@@ -1945,11 +2004,11 @@ cs:
     new:
       title: Přihlásit se
       heading: Přihlášení
-      email or username: 'E-mailová adresa nebo uživatelské jméno:'
-      password: 'Heslo:'
+      email or username: E-mailová adresa nebo uživatelské jméno
+      password: Heslo
       remember: Zapamatuj si mě
       lost password link: Ztratili jste heslo?
-      login_button: Přihlásit
+      login_button: Přihlásit se
       register now: Zaregistrujte se
       with external: 'Případně se přihlaste prostřednictvím třetí strany:'
       no account: Nemáte účet?
@@ -1958,16 +2017,16 @@ cs:
       auth_providers:
         openid:
           title: Přihlásit se pomocí OpenID
-          alt: Přihlášení pomocí OpenID URL
+          alt: Přihlásit se pomocí OpenID URL
         google:
           title: Přihlásit se prostřednictvím Google
-          alt: Přihlášení pomocí Google OpenID
+          alt: Přihlásit se pomocí Google OpenID
         facebook:
           title: Přihlásit se přes Facebook
-          alt: Přihlášení pomocí účtu na Facebooku
+          alt: Přihlásit se pomocí účtu na Facebooku
         microsoft:
           title: Přihlásit se přes Microsoft
-          alt: Přihlášení pomocí účtu Microsoft
+          alt: Přihlásit se pomocí účtu Microsoft
         github:
           title: Přihlásit se přes GitHub
           alt: Přihlásit se pomocí GitHub účtu
@@ -1976,10 +2035,10 @@ cs:
           alt: Přihlásit se účtem na Wikipedii
         wordpress:
           title: Přihlásit se prostřednictvím Wordpress
-          alt: Přihlášení pomocí Wordpress OpenID
+          alt: Přihlásit se pomocí Wordpress OpenID
         aol:
           title: Přihlásit se prostřednictvím AOL
-          alt: Přihlášení pomocí AOL OpenID
+          alt: Přihlásit se pomocí AOL OpenID
     destroy:
       title: Odhlásit se
       heading: Odhlášení z OpenStreetMap
@@ -2004,6 +2063,7 @@ cs:
       image: Obrázek
       alt: Alternativní text
       url: URL
+      codeblock: Blok kódu
     richtext_field:
       edit: Upravit
       preview: Náhled
@@ -2352,43 +2412,67 @@ cs:
           primary: Silnice první třídy
           secondary: Silnice druhé třídy
           unclassified: Silnice
+          pedestrian: Cesta pro pěší
           track: Lesní a polní cesta
           bridleway: Koňská stezka
           cycleway: Cyklostezka
           cycleway_national: Národní cyklotrasa
           cycleway_regional: Regionální cyklotrasa
           cycleway_local: Místní cyklotrasa
+          cycleway_mtb: Trasa pro horská kola
           footway: Pěší cesta
           rail: Železnice
+          train: Vlak
           subway: Metro
+          ferry: Trajekt
+          light_rail: Rychlodráha
+          tram: Tramvaj
+          trolleybus: Trolejbus
           cable_car: Lanovka
           chair_lift: sedačková lanovka
           runway: Vzletová a přistávací dráha
           taxiway: pojezdová dráha
           apron: Letištní odbavovací plocha
           admin: Administrativní hranice
+          capital: Hlavní město
+          city: Město
+          orchard: Sad
+          vineyard: Vinice
           forest: Les
-          wood: Les
+          wood: les
+          farmland: Pole
+          grass: Tráva
+          meadow: louka
+          bare_rock: Holá skála
+          sand: Písčina
           golf: Golfové hřiště
           park: Park
           common: Pastvina
+          built_up: Zastavěná plocha
           resident: Obytná oblast
           retail: Nákupní oblast
           industrial: Průmyslová oblast
           commercial: Kancelářská oblast
           heathland: Vřesoviště
+          scrubland: Křoviny
           lake: Jezero
           reservoir: nádrž
+          intermittent_water: Občasná vodní plocha
+          glacier: Ledovec
+          reef: Rif
+          wetland: Mokřad
           farm: Farma
           brownfield: Zbořeniště
           cemetery: Hřbitov
           allotments: Zahrádkářská kolonie
           pitch: Sportovní hřiště
           centre: Sportovní centrum
+          beach: Pláž
           reserve: Přírodní rezervace
           military: Vojenský prostor
           school: Škola
           university: univerzita
+          hospital: nemocnice
           building: Významná budova
           station: Nádraží
           summit: Vrchol
@@ -2398,8 +2482,11 @@ cs:
           private: Soukromý pozemek
           destination: Průjezd zakázán
           construction: Cesta ve výstavbě
+          bus_stop: Autobusová zastávka
           bicycle_shop: Cykloobchod
+          bicycle_rental: Půjčovna kol
           bicycle_parking: Parkoviště pro kola
+          bicycle_parking_small: Malé parkoviště pro kola
           toilets: Záchody
     welcome:
       title: Vítejte!
@@ -2589,7 +2676,7 @@ cs:
       cookies_needed: Vypadá to, že máte zakázány cookies – před pokračováním si je
         v prohlížeči zapněte.
     require_admin:
-      not_an_admin: Tuto akci může provést jen administrátor.
+      not_an_admin: Tuto akci může provést jen správce.
     setup_user_auth:
       blocked_zero_hour: Na webu OpenStreetMap máte urgentní zprávu. Tuto zprávu si
         musíte přečíst, než budete moci ukládat své editace.
@@ -2603,6 +2690,7 @@ cs:
       oauth1_settings: Nastavení OAuth 1
       oauth2_applications: Aplikace OAuth 2
       oauth2_authorizations: Autorizace OAuth 2
+      muted_users: Ztlumení uživatelé
   oauth:
     authorize:
       title: Autorizovat přístup k vašemu účtu
@@ -2813,6 +2901,8 @@ cs:
       my_dashboard: Moje nástěnka
       blocks on me: Moje zablokování
       blocks by me: Zablokování mnou
+      create_mute: Ztlumit tohoto uživatele
+      destroy_mute: Zrušit ztlumení tohoto uživatele
       edit_profile: Upravit profil
       send message: Poslat zprávu
       diary: Deník
@@ -2857,6 +2947,13 @@ cs:
     index:
       title: Uživatelé
       heading: Uživatelé
+      older: Starší uživatelé
+      newer: Novější uživatelé
+      found_users:
+        one: Nalezen %{count} uživatel
+        few: Nalezeni %{count} uživatelé
+        many: Nalezeno %{count} uživatele
+        other: Nalezeno %{count} uživatelů
       summary_html: '%{name} vytvořeno %{date} z %{ip_address}'
       summary_no_ip_html: '%{name} vytvořen %{date}'
       confirm: Potvrdit vybrané uživatele
@@ -2868,8 +2965,8 @@ cs:
       support: podporu
       automatically_suspended: Omlouváme se, váš účet byl automaticky pozastaven kvůli
         podezřelé aktivitě.
-      contact_support_html: Toto rozhodnutí bude brzy přezkoumáno administrátorem,
-        nebo můžete kontaktovat %{support_link}, pokud si to přejete prodiskutovat.
+      contact_support_html: Toto rozhodnutí bude brzy přezkoumáno správcem, nebo můžete
+        kontaktovat %{support_link}, pokud si to přejete prodiskutovat.
     auth_failure:
       connection_failed: Připojení k poskytovateli autentizace se nezdařilo
       invalid_credentials: Neplatné autentizační údaje
@@ -2888,8 +2985,8 @@ cs:
       not_a_role: Řetězec „%{role}“ neoznačuje platnou roli.
       already_has_role: Uživatel již roli %{role} má.
       doesnt_have_role: Uživatel nemá roli %{role}.
-      not_revoke_admin_current_user: Administrátorskou roli nelze odebrat aktuálně
-        přihlášenému uživateli.
+      not_revoke_admin_current_user: Správcovskou roli nelze odebrat aktuálně přihlášenému
+        uživateli.
     grant:
       title: Potvrdit přidělení role
       heading: Potvrdit přidělení role
@@ -3006,9 +3103,32 @@ cs:
       reason: Důvod pro blok
       status: Stav
       revoker_name: Zrušil
-      showing_page: Stránka %{page}
-      next: Následující »
-      previous: « Předchozí
+  user_mutes:
+    index:
+      title: Ztlumení uživatelé
+      my_muted_users: Mnou ztlumení uživatelé
+      you_have_muted_n_users:
+        one: Ztlumili jste %{count} uživatele
+        few: Ztlumili jste %{count} uživatele
+        many: Ztlumili jste %{count} uživatele
+        other: Ztlumili jste %{count} uživatelů
+      user_mute_explainer: Zprávy od ztlumených uživatelů jsou přesunuty do oddělené
+        složky a nebudete dostávat e-mailová upozornění.
+      user_mute_admins_and_moderators: Správce a moderátory můžete ztlumit, ale jejich
+        zprávy nebudou ztlumeny.
+      table:
+        thead:
+          muted_user: Ztlumený uživatel
+          actions: Akce
+        tbody:
+          unmute: Zrušit ztlumení
+          send_message: Poslat zprávu
+    create:
+      notice: Ztlumili jste uživatele %{name}.
+      error: Uživatele %{name} nebylo možno ztlumit. %{full_message}.
+    destroy:
+      notice: Zrušili jste ztlumení uživatel %{name}.
+      error: Ztlumení uživatele se nepodařilo zrušit. Zkuste to prosím znovu.
   notes:
     index:
       title: Poznámky vytvořené nebo okomentované uživatelem %{user}
@@ -3045,6 +3165,7 @@ cs:
       reactivate: Reaktivovat
       comment_and_resolve: Okomentovat a vyřešit
       comment: Okomentovat
+      log_in_to_comment: Chcete-li okomentovat tuto poznámku, přihlaste se
       report_link_html: Pokud tato poznámka obsahuje citlivé údaje, které je třeba
         odstranit, můžete %{link}.
       other_problems_resolve: Pokud má tato poznámka jakýkoli jiný problém, přidejte
@@ -3135,6 +3256,7 @@ cs:
       map_data_zoom_in_tooltip: Pro zobrazení mapových dat přejděte na větší měřítko.
       queryfeature_tooltip: Průzkum prvků
       queryfeature_disabled_tooltip: Pro průzkum prvků přejděte na větší měřítko
+      embed_html_disabled: HTML vkládání není pro tuto mapovou vrstvu k dispozici
     changesets:
       show:
         comment: Okomentovat
index 891a1328c7a1cc03c93e056b8b5eed43530d065b..36905c23f8e32e80c82ec3a053a99f106e36001e 100644 (file)
@@ -2587,9 +2587,6 @@ cy:
       reason: Rheswm dros flocio
       status: Statws
       revoker_name: Dirymwyd gan
-      showing_page: Tudalen %{page}
-      next: Nesaf »
-      previous: « Blaenorol
   user_mutes:
     index:
       title: Defnyddwyr ag Anwybyddwyd
index 45d187218ec0ce39ae537cce46c3c8e95d736d2d..b9fc43b8b45839d57c8fc5b605985b1f854a1eed 100644 (file)
@@ -3024,9 +3024,6 @@ da:
       reason: Årsag til blokering
       status: Status
       revoker_name: Tilbagekaldt af
-      showing_page: Side %{page}
-      next: Næste »
-      previous: « Forrige
   user_mutes:
     index:
       title: Stillegjorte Brugere
index 54051eca84ac37c1bdbe6962fdd60e8d33829b0f..f178c9de73e447d5a7b10bdfe5377a17f122f24f 100644 (file)
@@ -213,7 +213,7 @@ de:
         name: Name
         redirect_uri: 'Weiterleitungs-URIs:'
         confidential: Vertrauliche Anwendung?
-        scopes: Rechte
+        scopes: Berechtigungen
       friend:
         user: Benutzer
         friend: Freund
@@ -260,7 +260,7 @@ de:
         confidential: Es wird eine Anwendung verwendet, bei der das Kundengeheimnis
           vertraulich behandelt werden kann (native mobile Apps und einseitige Apps
           sind nicht vertraulich)
-        redirect_uri: Pro URI eine Zeile verwenden
+        redirect_uri: Verwende eine Zeile pro URI
       trace:
         tagstring: durch Komma getrennt
       user_block:
@@ -416,11 +416,11 @@ de:
         weder deine Nachrichten noch deinen Standort sehen. Um öffentlich deine Bearbeitungen
         zu zeigen und anderen die Möglichkeit zu geben, dich über die Website zu kontaktieren,
         klicke die Taste unten.
-      only_public_can_edit: Seit der API Version 0.6 können nur öffentliche Mitglieder
+      only_public_can_edit: Seit der API-Version 0.6 können nur öffentliche Mitglieder
         Kartendaten bearbeiten.
       find_out_why: finde heraus wieso
-      email_not_revealed: Deine Emailadressen werden beim öffentlich werden nicht
-        mit veröffentlicht.
+      email_not_revealed: Deine E-Mail-Adresse wird durch die Veröffentlichung nicht
+        preisgegeben.
       not_reversible: Dies kann nicht rückgängig gemacht werden und alle neuen Mitglieder
         sind jetzt standardmäßig öffentlich.
       make_edits_public_button: Alle meine Bearbeitungen öffentlich machen
@@ -569,7 +569,7 @@ de:
       no_more_user: Keine weiteren Änderungssätze von diesem Benutzer.
       load_more: Mehr laden
       feed:
-        title: 'Änderungssatz: %{id}'
+        title: Änderungssatz %{id}
         title_comment: Änderungssatz %{id} - %{comment}
         created: Erstellt
         closed: Geschlossen
@@ -687,7 +687,7 @@ de:
         Link gefolgt.
     diary_entry:
       posted_by_html: Verfasst von %{link_user} am %{created} in %{language_link}
-      updated_at_html: Letzte Aktualisierung am %{updated}
+      updated_at_html: Zuletzt aktualisiert am %{updated}.
       comment_link: Kommentar zu diesem Eintrag
       reply_link: Eine Nachricht an den Autor senden
       comment_count:
@@ -3220,9 +3220,6 @@ de:
       reason: Grund der Sperre
       status: Status
       revoker_name: Aufgehoben von
-      showing_page: Seite %{page}
-      next: Nächste »
-      previous: « Vorige
   user_mutes:
     index:
       title: Stummgeschaltete Benutzer
index 97b789a4ced04581d70cf2dee897ddb3f37158ec..ba1079129aa11f4e1f9bf4bce903637e647f6608 100644 (file)
@@ -1072,9 +1072,6 @@ diq:
       creator_name: Vıraştoğ
       status: Weziyet
       revoker_name: Terknoğ
-      showing_page: Pele %{page}
-      next: Peyên »
-      previous: « Verên
   notes:
     index:
       description: Şınasnayış
index a4628f681d2986594e6a4e738cc54fb840e379f4..dfab906c409089dc82ef286417f82c4407d6bae3 100644 (file)
@@ -1688,9 +1688,6 @@ dsb:
       reason: Pśicyna za blokěrowanje
       status: Status
       revoker_name: Wótpórany wót
-      showing_page: Bok %{page}
-      next: Pśiducy »
-      previous: « Pjerwjejšny
   notes:
     index:
       title: Pokazki, kótarež su se wót %{user} dali abo komentěrowali
index b9787add2765009ae75e469bcfdf9c1507faa664..7c6742657f8194c92dab2547fb1842fb10640e14 100644 (file)
@@ -3053,9 +3053,6 @@ el:
       reason: Αιτία φραγής
       status: Κατάσταση
       revoker_name: Ανακλήθηκε από
-      showing_page: Σελίδα %{page}
-      next: Επόμενη »
-      previous: « Προηγούμενη
   user_mutes:
     index:
       title: Χρήστες σε Σίγαση
index 30d0da09279a0f1b4dff7d7a685336cbb3ad9dd4..7156890121adba33eb2f0c2e79eed8d6d1b451c9 100644 (file)
@@ -2005,9 +2005,6 @@ en-GB:
       reason: Reason for block
       status: Status
       revoker_name: Revoked by
-      showing_page: Page %{page}
-      next: Next »
-      previous: « Previous
   notes:
     index:
       title: Notes submitted or commented on by %{user}
index 95edb8bb5e1227af782f115f6e8c370c54ca9ce4..0634fc2a0d1f52b1000462318c6bf42b0620d422 100644 (file)
@@ -2970,7 +2970,6 @@ en:
       revoke: "Revoke!"
       confirm: "Are you sure?"
       reason: "Reason for block:"
-      back: "View all blocks"
       revoker: "Revoker:"
       needs_view: "The user needs to log in before this block will be cleared."
     block:
@@ -2986,6 +2985,12 @@ en:
       revoker_name: "Revoked by"
       older: "Older Blocks"
       newer: "Newer Blocks"
+    navigation:
+      all_blocks: "All Blocks"
+      blocks_on_me: "Blocks on Me"
+      blocks_on_user: "Blocks on %{user}"
+      blocks_by_me: "Blocks by Me"
+      blocks_by_user: "Blocks by %{user}"
   user_mutes:
     index:
       title: "Muted Users"
index 735d3178d7f6cb08601a19075b6f6d1a6fe2230b..695d44b7a6d6ec8b371dcdf1c0f8eec40f5af4f8 100644 (file)
@@ -3020,9 +3020,8 @@ eo:
       reason: Kialo de blokado
       status: Stato
       revoker_name: Nuligita de
-      showing_page: Paĝo %{page}
-      next: Sekva »
-      previous: « Antaŭa
+      older: Pli malnovaj blokadoj
+      newer: Pli novaj blokadoj
   user_mutes:
     index:
       title: Silentigitaj uzantoj
index 9390b7dc85c3648d631656aaf17b61f00122090a..2f523584f40e49d3b9f33ad36525823a920a65b8 100644 (file)
@@ -3171,9 +3171,8 @@ es:
       reason: Razón del bloqueo
       status: Estado
       revoker_name: Revocado por
-      showing_page: Página %{page}
-      next: Siguiente »
-      previous: « Anterior
+      older: Bloques más antiguos
+      newer: Bloques más recientes
   user_mutes:
     index:
       title: Usuarios silenciados
index 78210747f8e0943fa79cb50c8d8977a1f3b64929..1e25d8f02c1d86e6a09628230ffd7a455ebb429f 100644 (file)
@@ -2354,9 +2354,6 @@ et:
       reason: Blokeerimise põhjus
       status: Olek
       revoker_name: Tühistanud
-      showing_page: Leht %{page}
-      next: Järgmine »
-      previous: « Eelmine
   user_mutes:
     index:
       title: Vaigistatud kasutajad
index e32dd983c90fba4199dfe93fdfd6a1bdd63c4699..326e6c781f6bb0227cfa7e7476c44195cb9a33de 100644 (file)
@@ -2878,9 +2878,6 @@ eu:
       reason: Blokeatzeko arrazoia
       status: Egoera
       revoker_name: -k ezeztatua
-      showing_page: '%{page} orria'
-      next: Hurrengoa »
-      previous: « Aurrekoa
   notes:
     index:
       title: '%{user}k igotako edo iruzkinak utzitako oharrak'
index 5023d76b1bc5b7b06a54ee537b06b10cf043404d..3a94f4f6baa683c5775279d25e7689dfe67d60ac 100644 (file)
@@ -2616,9 +2616,6 @@ fa:
       reason: دلیل مسدودی
       status: وضعیت
       revoker_name: باطل‌کننده
-      showing_page: صفحهٔ %{page}
-      next: بعدی »
-      previous: « قبلی
   notes:
     index:
       title: یادداشت‌هایی که %{user} ارسال کرده یا روی آن‌ها نظر داده
index 9ddaccab043eca42db50ab3cb89faacaea2cffa9..f344f856531a2496d2e438251f9b9f7fae1fdb6d 100644 (file)
@@ -2790,9 +2790,6 @@ fi:
       reason: Eston syy
       status: Tila
       revoker_name: Eston tehnyt
-      showing_page: Sivu %{page}
-      next: Seuraava »
-      previous: « Edellinen
   user_mutes:
     index:
       table:
index be4d822a91b046835bca77fdb22a5029941fe504..ae57596c81c4edef9b0b882847e6971a9cde2266 100644 (file)
@@ -887,9 +887,6 @@ fit:
       edit: Mookkaa
     block:
       edit: Mookkaa
-    blocks:
-      next: Seuraava »
-      previous: « Eelinen
   notes:
     index:
       description: Kuvvaus
index dd7d6a88878a3085daa499f0edc165028bb37389..cfdb64a2640906226a854d26f9f71174c6c601f1 100644 (file)
@@ -41,6 +41,7 @@
 # Author: Gravitystorm
 # Author: Guilhelma
 # Author: Hashar
+# Author: Hecatonchire
 # Author: IAlex
 # Author: Iketsi
 # Author: JB
@@ -109,7 +110,7 @@ fr:
     dir: ltr
   time:
     formats:
-      friendly: '%e %B %Y à %-Hh%M'
+      friendly: '%e %B %Y à %-H%M'
       blog: '%e %B %Y'
   helpers:
     file:
@@ -131,8 +132,8 @@ fr:
         create: S’inscrire
         update: Mettre à jour
       redaction:
-        create: Créer le masquage
-        update: Enregistrer le masquage
+        create: Créer la censure
+        update: Enregistrer la censure
       trace:
         create: Téléverser
         update: Enregistrer les modifications
@@ -144,8 +145,8 @@ fr:
       messages:
         invalid_email_address: ne semble pas être une adresse de courriel valide
         email_address_not_routable: n’est pas routable
-        display_name_is_user_n: ne peut pas être user_n à moins que n soit votre identifiant
-          d’utilisateur
+        display_name_is_user_n: ne peut pas être user_n à moins que n ne soit votre
+          identifiant d’utilisateur
       models:
         user_mute:
           is_already_muted: est déjà en sourdine
@@ -245,7 +246,7 @@ fr:
         email_confirmation: Confirmation du courriel
         new_email: Nouvelle adresse de courriel
         active: Actif
-        display_name: Nom affiché
+        display_name: Afficher le nom
         description: Description du profil
         home_lat: Latitude
         home_lon: Longitude
@@ -262,11 +263,11 @@ fr:
       trace:
         tagstring: données séparées par des virgules
       user_block:
-        reason: Le motif pour lequel l’utilisateur est bloqué. Veuillez rester et
-          aussi calme et raisonnable que possible, en donnant autant de détails que
-          vous le pouvez sur la situation, en vous souvenant que le message sera visible
-          publiquement. Gardez en tête que tous les utilisateurs ne comprennent pas
-          le jargon de la communauté, donc essayez d’utiliser des termes simples.
+        reason: Le motif pour lequel l’utilisateur est bloqué. Soyez aussi calme et
+          raisonnable que possible, en donnant autant de détails que vous le pouvez
+          sur la situation, en vous souvenant que le message sera visible publiquement.
+          Gardez à l’esprit que tous les utilisateurs ne comprennent pas le jargon
+          de la communauté, donc essayez d’utiliser des termes simples.
         needs_view: Est-ce que l’utilisateur ou l’utilisatrice doit se connecter avant
           qu’expire ce blocage ?
       user:
@@ -344,7 +345,7 @@ fr:
         description_all: Une liste de notes rapporté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 fil RSS pour la note %{id}
+        description_item: Un flux RSS pour la note %{id}
         opened: nouvelle note (près de %{place})
         commented: nouveau commentaire (près de %{place})
         closed: note fermée (près de %{place})
@@ -358,7 +359,7 @@ fr:
         title: Supprimer mon compte
         warning: Avertissement ! Le processus de suppression de compte est définitif
           et ne peut pas être annulé.
-        delete_account: Supprimer un compte
+        delete_account: Supprimer le compte
         delete_introduction: 'Vous pouvez supprimer votre compte OpenStreetMap en
           utilisant le bouton ci-dessous. Veuillez prendre note des détails suivants :'
         delete_profile: Les informations de votre profil, y compris votre avatar,
@@ -385,7 +386,7 @@ fr:
   accounts:
     edit:
       title: Modifier le compte
-      my settings: Mes options
+      my settings: Mes paramètres
       current email address: Adresse de courriel actuelle
       external auth: Authentification externe
       openid:
@@ -557,7 +558,7 @@ fr:
       view_changeset_details: Afficher les détails du groupe de modifications
     changesets:
       id: Identifiant
-      saved_at: Enregistré le
+      saved_at: Enregistré vers
       user: Utilisateur
       comment: Commentaire
       area: Zone
@@ -3213,9 +3214,6 @@ fr:
       reason: Motif du blocage
       status: État
       revoker_name: Révoqué par
-      showing_page: Page %{page}
-      next: Suivant »
-      previous: ◂ Précédent
   user_mutes:
     index:
       title: Utilisateurs en sourdine
index a5dba3161d201f00bb22ae06e8de552eafc87ac0..618c18a52f8620e5c51b7b2428f8df9a3312868f 100644 (file)
@@ -1685,9 +1685,6 @@ fur:
       reason: Reson dal bloc
       status: Stât
       revoker_name: Revocât di
-      showing_page: Pagjine %{page}
-      next: Sucessîf »
-      previous: « Precedent
   user_mutes:
     index:
       table:
index 11167f0e6f0a172cb786dbccbb63d5f08084a2cb..73547eaac303a295dd67c9c5dc5fcca4bf43678a 100644 (file)
@@ -2562,9 +2562,6 @@ fy:
       reason: Reden foar útsluting
       status: Status
       revoker_name: Ynlutsen troch
-      showing_page: Side %{page}
-      next: Folgjende »
-      previous: « Foarige
   notes:
     index:
       title: Troch %{user} yntsjinne as op reägearre notysjes
index 6eae14f9cbec6f9aab32b02bb07ef40a07ea8cd4..bdfa6b1d498ce8f912d0bbf238c185d3985dc12c 100644 (file)
@@ -1832,9 +1832,6 @@ ga:
       reason: Cúis don bhac
       status: Stádas
       revoker_name: Tarraingthe siar ag
-      showing_page: Leathanach %{page}
-      next: Ar aghaidh »
-      previous: « Roimhe
   notes:
     index:
       id: ID
index fb973b2d1b98e1bdb88274f7b06858119c5be02c..f66bec4fbf5158f18ea08f96aa607b68f4ac1020 100644 (file)
@@ -1805,9 +1805,6 @@ gd:
       reason: Adhbhar a' bhacaidh
       status: Staid
       revoker_name: Air a chùl-ghairm le
-      showing_page: Duilleag %{page}
-      next: Air adhart »
-      previous: « Air ais
   notes:
     index:
       title: Nòtaichean a chuir %{user} a-null no a thug %{user} beachd dhaibh
index 80b217e978ad08fff3b35a06ca7d22e954eff271..b07851ec70cc734c69b4edf3fad5db63e67a2535 100644 (file)
@@ -3094,9 +3094,6 @@ gl:
       reason: Motivo para o bloqueo
       status: Estado
       revoker_name: Revogado por
-      showing_page: Páxina %{page}
-      next: Seguinte »
-      previous: « Anterior
   user_mutes:
     index:
       title: Usuarios silenciados
index b5b521e52f2b79e72a64f3af37124f140d731bce..e87e41ef025cb824925c0a23f54ce8a8d5f2157f 100644 (file)
@@ -2965,13 +2965,13 @@ he:
       period: למשך כמה זמן מעכשיו החשבון ייחסם מביצוע פעולות API.
       back: הצגת כל החסימות
     edit:
-      title: ×\97ס×\99×\9eת ×¢×¨×\99×\9bה על %{name}
-      heading_html: ×\97ס×\99×\9eת ×¢×¨×\99×\9bה על %{name}
+      title: ×¢×¨×\99×\9bת ×\94×\97ס×\99×\9eה על %{name}
+      heading_html: ×¢×¨×\99×\9bת ×\94×\97ס×\99×\9eה על %{name}
       period: למשך כמה זמן מעכשיו החשבון ייחסם מביצוע פעולות API.
       show: הצגת החסימה הזאת
       back: הצגת כל החסימות
     filter:
-      block_expired: ×\99×\99ת×\9b×\9f ×©×\94×\97ס×\99×\9e×\94 ×\9b×\91ר ×¤×§×¢×\94 ×\95×\90×\99Ö¾×\90פשר ×\9cער×\95×\9a ×\90×\95ת×\94.
+      block_expired: החסימה כבר פקעה ואי־אפשר לערוך אותה.
       block_period: תקופת החסימה צריכה להיות אחד הערכים שאפשר לבחור ברשימה הנפתחת.
     create:
       flash: נוצרה חסימה על חשבון %{name}
@@ -2983,7 +2983,7 @@ he:
       heading: רשימת חסימות משתמש
       empty: עוד לא נעשו חסימות.
     revoke:
-      title: ×\91×\95×\98×\9c×\94 החסימה על %{block_on}
+      title: ×\91×\99×\98×\95×\9c החסימה על %{block_on}
       heading_html: ביטול החסימה של %{block_on} על־ידי %{block_by}
       time_future_html: החסימה תסתיים ב־%{time}.
       past_html: החסימה הזאת הסתיימה ב־%{time} ואי־אפשר לבטל אותה.
@@ -3044,8 +3044,8 @@ he:
     show:
       title: החשבון של %{block_on} נחסם על־ידי %{block_by}
       heading_html: החשבון של %{block_on} נחסם על־ידי %{block_by}
-      created: :תאריך היצירה
-      duration: :משך זמן
+      created: 'תאריך היצירה:'
+      duration: 'משך זמן:'
       status: 'מצב:'
       show: הצגה
       edit: עריכה
@@ -3066,9 +3066,8 @@ he:
       reason: סיבה לחסימה
       status: מצב
       revoker_name: בוטלה על־ידי
-      showing_page: הדף %{page}
-      next: הבא »
-      previous: « הקודם
+      older: חסימות ישנות יותר
+      newer: חסימות חדשות יותר
   user_mutes:
     index:
       title: משתמשים מושתקים
@@ -3168,8 +3167,8 @@ he:
     embed:
       report_problem: דיווח על בעיה
     key:
-      title: מפת מפתח
-      tooltip: מפת מפתח
+      title: מפתח מפה
+      tooltip: מפתח מפה
       tooltip_disabled: מפתח מפה אינו זמין לשכבה הזאת
     map:
       zoom:
@@ -3188,11 +3187,11 @@ he:
           many: המרחק שלך מהנקודה הזאת הוא עד %{count} רגל
           other: המרחק שלך מהנקודה הזאת הוא עד %{count} רגל
       base:
-        standard: תקני
+        standard: תקנית
         cycle_map: מפת אופניים
         transport_map: מפת תחבורה
         tracestracktop_topo: טופוגרפיה של Tracestrack
-        hot: הומניטרי
+        hot: הומניטרית
       layers:
         header: שכבות במפה
         notes: הערות במפה
@@ -3214,11 +3213,11 @@ he:
       edit_tooltip: עריכת המפה
       edit_disabled_tooltip: להתקרב כדי לערוך את המפה
       createnote_tooltip: הוספת הערה למפה
-      createnote_disabled_tooltip: × ×\90 ×\9c×\94תקר×\91 כדי להוסיף הערה למפה
-      map_notes_zoom_in_tooltip: ×\99ש ×\9c×\94תקר×\91 כדי לראות הערות על המפה
+      createnote_disabled_tooltip: ×\94תקר×\91×\95ת כדי להוסיף הערה למפה
+      map_notes_zoom_in_tooltip: ×\94תקר×\91×\95ת כדי לראות הערות על המפה
       map_data_zoom_in_tooltip: יש להתקרב כדי לראות נתוני מפה
       queryfeature_tooltip: שאילתת ישויות
-      queryfeature_disabled_tooltip: ×\99ש ×\9c×\94תקר×\91 כדי להריץ שאילתת ישויות
+      queryfeature_disabled_tooltip: ×\94תקר×\91×\95ת כדי להריץ שאילתת ישויות
       embed_html_disabled: הטבעת HTML אינה זמינה בשכבת המפה הזאת
     changesets:
       show:
index 4e36994168139e87160b9e4a49f6a20d7ba69d9c..9829cbeedfe33d6a62b05bc3c9f757938e071476 100644 (file)
@@ -1820,9 +1820,6 @@ hr:
       reason: Razlog za blokadu
       status: Status
       revoker_name: Opozvao
-      showing_page: Stranica %{page}
-      next: Sljedeća »
-      previous: « Prethodna
   notes:
     index:
       title: Bilješke stvorio ili komentirao %{user}
index c1c78f90307ba186be5d31760caf07eaa14e85e4..f2ba7a72512bcf683e5b41c9d3dbd06bcff0b6f6 100644 (file)
@@ -2675,9 +2675,6 @@ hsb:
       reason: Přičina za blokowanje
       status: Status
       revoker_name: Zběhnjene wot
-      showing_page: Strona %{page}
-      next: Přichodny »
-      previous: « Předchadny
   user_mutes:
     index:
       title: Zněmjeni wužiwarjo
index da6c6801270d50a047bc08a0b5f932b0c69dd3fc..aad7071b155eb8e507cf2084e53b1d6618b9aa53 100644 (file)
@@ -2906,9 +2906,6 @@ hu:
       reason: Blokkolás indoklása
       status: Állapot
       revoker_name: 'Visszavonta:'
-      showing_page: '%{page}. oldal'
-      next: Következő »
-      previous: « Előző
   user_mutes:
     index:
       title: Elnémított felhasználók
index 8cd0aea42ed6498b0073e986e836d7b57b4811bd..896dd6fa6092066243a95b6fea9c6d34a5fbdcd9 100644 (file)
@@ -3060,9 +3060,6 @@ ia:
       reason: Motivo del blocada
       status: Stato
       revoker_name: Revocate per
-      showing_page: Pagina %{page}
-      next: Sequente »
-      previous: « Precedente
   user_mutes:
     index:
       title: Usatores silentiate
index ffe8be2823228cd999ed5741dcdc353a2a2491d4..6e6a0dd99cfa0c3f08011c242dd9781b16ad5b0a 100644 (file)
@@ -3009,9 +3009,6 @@ id:
       reason: Alasan untuk blokir
       status: Status
       revoker_name: Dibatalkan oleh
-      showing_page: Halaman %{page}
-      next: Berikutnya »
-      previous: « Sebelumnya
   user_mutes:
     index:
       title: Pengguna yang Dibisukan
index 44c4f3ebf06f94e022cc783f9264c27005bce5b0..71639edb0e13184f261ed245cf8827c21d876d13 100644 (file)
@@ -3015,9 +3015,6 @@ is:
       reason: Ástæða banns
       status: Staða
       revoker_name: Eytt af
-      showing_page: Síða %{page}
-      next: Næsta »
-      previous: « Fyrri
   user_mutes:
     index:
       table:
index a80d77a53d434abe3b2827d2ee66ccae532cd08c..8d38558cfd73db34dfb86becdc4d94e242a510ac 100644 (file)
@@ -3122,9 +3122,6 @@ it:
       reason: Motivo del blocco
       status: Stato
       revoker_name: Revocato da
-      showing_page: Pagina %{page}
-      next: Successivo »
-      previous: « Precedente
   user_mutes:
     index:
       title: Utenti silenziati
index bb74487e846ad21075640be0d5e132e319565bf1..e8c73edc913717177929acf28e77f177bdec2b2f 100644 (file)
@@ -5,6 +5,7 @@
 # Author: Aefgh39622
 # Author: Ajeje Brazorf
 # Author: Amire80
+# Author: Aphaia
 # Author: Atysn
 # Author: Chqaz
 # Author: CmplstofB
@@ -307,7 +308,7 @@ ja:
     edit:
       title: アカウントの編集
       my settings: 設定
-      current email address: 現在のメール アドレス
+      current email address: 現在のメールアドレス
       external auth: 外部認証
       openid:
         link: https://wiki.openstreetmap.org/wiki/JA:OpenID?uselang=ja
@@ -1773,7 +1774,7 @@ ja:
       openid_logo_alt: OpenID でログイン
       auth_providers:
         openid:
-          title: OpenIDでログイン
+          title: OpenID でログイン
           alt: OpenID URLでログイン
         google:
           title: Googleでログイン
@@ -2529,9 +2530,6 @@ ja:
       reason: ブロックされた理由
       status: 状態
       revoker_name: 取り消し者
-      showing_page: ページ %{page}
-      next: 次へ »
-      previous: « 前へ
   user_mutes:
     index:
       table:
index b16504268ea6cac6924140518829010871c3c80f..e6a687d82521f393f4519a1301d6d7512a339e03 100644 (file)
@@ -1094,9 +1094,6 @@ ka:
       reason: დაბლოკვის მიზეზი
       status: სტატუსი
       revoker_name: განბლოკილია
-      showing_page: გვერდი %{page}
-      next: შემდეგი »
-      previous: « წინა
   notes:
     index:
       creator: შემქმნელი
index 64193d6f56e3a33753c6000427a51eaf67ac00e2..dbe3fbc4d83e94afcd39741211c2e29b11870a6b 100644 (file)
@@ -1331,9 +1331,6 @@ kab:
       reason: Taɣzint n  usewḥel
       status: Addad
       revoker_name: Isewḥel-it
-      showing_page: Asebter %{page}
-      next: Ar zdat»
-      previous: « ar deffir
   notes:
     index:
       heading: Tizmilin n %{user}
index 76595014c79e7fccb971b9f81c37c986d1bd33d7..5e86447b855bdf0e24ec2a11fd88aa3fb10e0fa1 100644 (file)
@@ -1091,8 +1091,6 @@ kk-cyrl:
       edit: Өңдеу
     blocks:
       reason: 'Бұғаттау себебі:'
-      next: Келесі »
-      previous: « Алдыңғы
   notes:
     index:
       description: Сипаттама
index acb4540985ef0191d542f5a4b32c2a37ccbda060..c6a731c04183ada943dbb223da13b216eaf89fde 100644 (file)
@@ -2710,9 +2710,6 @@ ko:
       reason: 차단 이유
       status: 상태
       revoker_name: 해제자
-      showing_page: '%{page}쪽'
-      next: 다음 »
-      previous: « 이전
   notes:
     index:
       title: '%{user} 님이 제출했거나 덧글을 남긴 참고'
index a1f3b926f11734bdc7a219f1d488e44251e8442e..174be02fac82841b64d17e30af1b17a463a2061d 100644 (file)
@@ -2672,9 +2672,6 @@ ku-Latn:
       reason: Sedema astengkirinê
       status: Rewş
       revoker_name: Yê ku betal kiriyeː
-      showing_page: Rûpel %{page}
-      next: Pêşve »
-      previous: « Paşve
   notes:
     index:
       title: Notên ku ji aliyê %{user} ve hatine şandin an jî şirovekirin
index a5823e213f7e11f1cea92ec931d8bed94e3b20a4..be4c1b474c2c5f999a2b299e7971e7a4e3f92bd0 100644 (file)
@@ -2384,9 +2384,6 @@ lb:
       reason: Grond fir d'Spär
       status: Status
       revoker_name: Opgehuewe vum
-      showing_page: Säit %{page}
-      next: Nächst »
-      previous: « Vireg
   user_mutes:
     index:
       table:
index 4eef74b4370a199fd965aa6fb5e28837002fac0c..733811f55ff9c47b76316d9697f27bba772f6276 100644 (file)
@@ -2856,9 +2856,6 @@ lt:
       reason: Blokavimo priežastis
       status: Būsena
       revoker_name: Atšaukė
-      showing_page: Puslapis %{page}
-      next: Kitas »
-      previous: « Ankstesnis
   notes:
     index:
       title: Pastabas pateikė arba komentavo %{user}
index 4678895c52e365eab16010b05e88571d88b53392..7aebbf0ee40ca234687f2f72af48af1e4a49c507 100644 (file)
@@ -2140,9 +2140,6 @@ lv:
       reason: Iemesls liegumam
       status: Statuss
       revoker_name: Atsaucis
-      showing_page: Rāda lapu %{page}
-      next: Nākamais »
-      previous: « Iepriekšējais
   notes:
     index:
       title: Piezīmes, kuras veidojis vai komentējis %{user}
index ec1ba7a82710d3cc64464339bf58df50b36c8457..0aa01d10201a51b3f4994a5ef9a76b9395cadcc8 100644 (file)
@@ -3042,9 +3042,8 @@ mk:
       reason: Причина за блокирање
       status: Статус
       revoker_name: 'Поништил:'
-      showing_page: Страница %{page}
-      next: Следна »
-      previous: « Претходна
+      older: Постари блокови
+      newer: Понови блокови
   user_mutes:
     index:
       title: Замолкнати корисници
index 5bb8c4345879ff48859f29e6d01255492d91d85a..c5f915a8fb8e9d866c324b9ff7a30c8a85b3b002 100644 (file)
@@ -1366,10 +1366,6 @@ mr:
         years:
           one: '%{count} वर्ष'
           other: '%{count} वर्षे'
-    blocks:
-      showing_page: पान %{page}
-      next: पुढील »
-      previous: « मागील
   notes:
     show:
       title: 'टीप: %{id}'
index d57fa31930a74cb3a2924d7555734845cc0257ae..81217c969d1439891c15b200dcb22095bf25f42d 100644 (file)
@@ -2158,9 +2158,6 @@ ms:
       reason: Sebab sekatan
       status: Status
       revoker_name: Ditarik balik oleh
-      showing_page: Halaman %{page}
-      next: Berikutnya »
-      previous: « Sebelumnya
   notes:
     index:
       title: Nota yang dikemukakan atau diulas oleh %{user}
index 1af177af9e82d30cfeb3462fd04adcc3d52b6efe..8501a5764448cfefbbfc4d16f828cdf88be2dc21 100644 (file)
@@ -776,9 +776,6 @@ my:
     blocks:
       creator_name: ဖန်တီးသူ
       status: အခြေအနေ
-      showing_page: စာမျက်နှာ %{page}
-      next: ရှေ့ »
-      previous: « ယခင်က
   notes:
     index:
       creator: ဖန်တီးသူ
index 26bd6cf2bc92db827108459bffc090c4c2dedf11..365c9b01a9c6ef6e8c0d1f2d284c1ccb9ff80bf9 100644 (file)
@@ -2383,9 +2383,6 @@ nb:
       reason: Årsak for blokkering
       status: Status
       revoker_name: Tilbakekalt av
-      showing_page: Side %{page}
-      next: Neste »
-      previous: « Forrige
   notes:
     index:
       title: Merknader sendt inn eller kommentert på av %{user}
index 575d42ee18522831c8e38a7f5cfed46def610bc9..b5d6cdb3c3c5a5921593836fd353ce3a4ccab885 100644 (file)
@@ -1122,9 +1122,6 @@ ne:
     blocks:
       creator_name: सर्जक
       status: वस्तुस्थिति
-      showing_page: पृष्ठ %{page}
-      next: अर्को »
-      previous: « अघिल्लो
   notes:
     index:
       id: आईडी
index 548fb586ac0bd6a80d7ed06df11bb15098dc733a..e3110de20b8ba3f9f88f53a5d99fe477c4c60c09 100644 (file)
@@ -2954,6 +2954,8 @@ nl:
     index:
       title: Gebruikers
       heading: Gebruikers
+      older: Oudere gebruikers
+      newer: Nieuwere gebruikers
       summary_html: '%{name} aangemaakt vanaf %{ip_address} op %{date}'
       summary_no_ip_html: '%{name} aangemaakt op %{date}'
       confirm: Geselecteerde gebruikers bevestigen
@@ -3111,9 +3113,6 @@ nl:
       reason: Reden voor blokkade
       status: Status
       revoker_name: Ingetrokken door
-      showing_page: Pagina %{page}
-      next: Volgende »
-      previous: « Vorige
   user_mutes:
     index:
       title: Gedempte gebruikers
index 4b43bc33d85c233ef6f92f72dc02c2a56d12a40e..23e93de8b7e41b9b785e20b22d8da11fe9c2ba4b 100644 (file)
@@ -2554,9 +2554,6 @@ nn:
       reason: Årsak for blokkering
       status: Status
       revoker_name: Tilbakekalt av
-      showing_page: Side %{page}
-      next: Neste »
-      previous: « Forrige
   notes:
     index:
       heading: '%{user} sine merknadar'
index b3df91487c1c35e5a60f97a45c8ff00e0a4a7159..3422dd68ef1256ec94b708179c9a116f78637572 100644 (file)
@@ -1822,9 +1822,6 @@ nqo:
     blocks:
       creator_name: ߛߌ߲ߘߌߟߊ߲
       reason: ߓߊ߬ߟߊ߲߬ߠߌ߲ ߞߎ߲߭
-      showing_page: ߞߐߜߍ %{page}
-      next: ߟߊ߬ߕߎ߲߰ߠߊ »
-      previous: ߕߊ߬ߡߌ߲߬ߣߍ߲
   notes:
     index:
       no_notes: ߦߟߌߣߐ߫ ߛߌ߫ ߕߴߦߋ߲߬
index 6f198f0bde50d59341e888505a979d9fab027993..1922189cb0f75ba0fc978dfc215a48a5f964712d 100644 (file)
@@ -2429,9 +2429,6 @@ oc:
       reason: Motiu del blocatge
       status: Estatut
       revoker_name: Revocat per
-      showing_page: Pagina %{page}
-      next: Seguent »
-      previous: « Precedent
   notes:
     index:
       title: Nòtas somesas o comentadas per %{user}
index bb6b607e3674a9c803c1e0350325bdc2e52391d5..98f574e651b8b3d3eee310ebd52e2e883320cc5a 100644 (file)
@@ -1122,8 +1122,6 @@ pa:
       creator_name: ਸਿਰਜਣਹਾਰ
       reason: ਰੋਕ ਦਾ ਕਾਰਨ
       status: ਦਰਜਾ
-      next: ਅਗਲਾ »
-      previous: « ਪਿਛਲਾ
   notes:
     index:
       creator: ਸਿਰਜਣਹਾਰ
index 1851ba3d42a6a672323f7e4a7fa2c30bab367dfa..f181e188433abbf4383ed5734a14c04ab103f642 100644 (file)
@@ -2984,9 +2984,6 @@ pl:
       reason: Powód blokady
       status: Status
       revoker_name: Odwołana przez
-      showing_page: Strona %{page}
-      next: Następna »
-      previous: « Poprzednia
   user_mutes:
     index:
       table:
index 550dcef04de2245e2836fc9980dd9fbf29ad2ace..4a711c3f47f107d4bfd980c4d927f01d413cbfa3 100644 (file)
@@ -1995,9 +1995,6 @@ pnb:
       creator_name: لیکھک
       reason: روک دا کارن
       status: درجہ
-      showing_page: صفحہ نمبر %{page}
-      next: اگلا »
-      previous: « پچھلا
   notes:
     index:
       heading: '%{user} دے نوٹ'
index e883e9bfb887a23f32adf05462379db9de4bd11e..a18e6ec96c87f4741cd112e8721c68bb986c9409 100644 (file)
@@ -3036,9 +3036,6 @@ pt-PT:
       reason: Motivo do bloqueio
       status: Estado
       revoker_name: Revogado por
-      showing_page: Página %{page}
-      next: Seguinte »
-      previous: « Anterior
   user_mutes:
     index:
       title: Utilizadores Silenciados
index d5055664d3158daedd8a482a4101a4fc784fde7c..7e7d2c3ee263a31f08edb5a462a93da62be97f49 100644 (file)
@@ -3057,9 +3057,6 @@ pt:
       reason: Razão para o bloqueio
       status: Status
       revoker_name: Retirado por
-      showing_page: Página %{page}
-      next: Próximo »
-      previous: « Anterior
   user_mutes:
     index:
       title: Usuários silenciados
index e160c1df13ef192a491649b914826b30e167a569..37a24a9f23df083fd4cb4ddbd5442dccdeb919c0 100644 (file)
@@ -3016,9 +3016,6 @@ ro:
       reason: Motivul blocării
       status: Stare
       revoker_name: Revocat de
-      showing_page: Pagina %{page}
-      next: Următoarea »
-      previous: « Precedenta
   user_mutes:
     index:
       table:
index 13eaf0516af7ac037986680cb5e2d87649d3309c..704c7b799ab6d40df84f66f71b4056b7f20038a4 100644 (file)
@@ -2954,9 +2954,6 @@ ru:
       reason: Причина блокировки
       status: Состояние
       revoker_name: Разблокировал
-      showing_page: Страница %{page}
-      next: Следующая →
-      previous: ← Предыдущая
   user_mutes:
     index:
       table:
index 52697ac8812d72f429bc6d41d9a1220e4dac97c8..31cd0a1c5c35a3fa1a60d54c31e2243796937984 100644 (file)
@@ -670,9 +670,6 @@ sat:
       edit: ᱥᱟᱯᱲᱟᱣ
     blocks:
       status: ᱫᱚᱥᱟ
-      showing_page: ᱥᱟᱦᱴᱟ %{page}
-      next: ᱤᱱᱟ ᱛᱟᱭᱚᱢ >>
-      previous: « ᱛᱟᱭᱚᱢ
   notes:
     show:
       title: '%{id} :ᱠᱷᱟᱴᱟᱹ ᱚᱞ'
index ef364051e6890408cdcb91a095d0ab116c88ca30..c4444ba0b99a669ad6c9635c368576bc2d57e957 100644 (file)
@@ -2987,9 +2987,6 @@ sc:
       reason: Resone de su blocu
       status: Istadu
       revoker_name: Revocadu dae
-      showing_page: Pàgina %{page}
-      next: Imbeniente »
-      previous: « Pretzedente
   notes:
     index:
       title: Notas insertadas o cummentadas dae %{user}
index f3ccfe32a3c39c2f7b006729da17e6667acd6f63..9b58c43c6cbebffc86b5264dbc53cbc100c28ee0 100644 (file)
@@ -1954,9 +1954,6 @@ scn:
       reason: Mutivu dû bloccu
       status: Statu
       revoker_name: Arrivucatu di
-      showing_page: Pàggina %{page}
-      next: Appressu »
-      previous: « Arreri
   notes:
     index:
       title: Noti scritti o cummintati di l'utenti %{user}
index 4a9399b355c4f12d92151f6a98eea20715fdbe0b..fe57b694b7a0260b0db1fb65b42c24795bb6f08f 100644 (file)
@@ -2680,9 +2680,6 @@ sk:
       reason: Dôvod pre blokovanie
       status: Stav
       revoker_name: Zrušil
-      showing_page: Strana %{page}
-      next: Ďalšia stránka »
-      previous: « Predchádzajúca stránka
   notes:
     index:
       title: Poznámky vytvorené alebo komentované používateľom %{user}
index 6bdb4ae2a78ce79e03acc488b2e363b246436d1c..628b4e0c0fa431d6f485b9e1f3f4276dcc8e3e97 100644 (file)
@@ -3101,9 +3101,6 @@ sl:
       reason: Razlog za blokiranje
       status: Stanje
       revoker_name: Preklical
-      showing_page: Stran %{page}
-      next: Naprej »
-      previous: « Prejšnja
   user_mutes:
     index:
       title: Utišani uporabniki
index e356f81e7ac34451e86793341db014644da7faf7..7c72492b81a05d26b50cae78c08675264b0959b7 100644 (file)
@@ -1362,9 +1362,6 @@ sr-Latn:
       reason: Razlozi za blokiranje
       status: Stanje
       revoker_name: Opozvao
-      showing_page: Prikaz stranice %{page}
-      next: Sledeće »
-      previous: « Prethodno
   javascripts:
     map:
       base:
index 14c0567610e73bd889e7c8042c445c5b834b5ce6..59554ff755d258d275354bb8e3f430e05755d7a3 100644 (file)
@@ -423,9 +423,11 @@ sr:
     show:
       title: 'Скуп промена: %{id}'
       created: 'Направљено: %{when}'
+      closed: 'Затворено: %{when}'
       created_ago_html: Направљено %{time_ago}
       closed_ago_html: Затворено %{time_ago}
       created_ago_by_html: Направљено %{time_ago} од %{user}
+      closed_ago_by_html: Затворио(ла) %{user} %{time_ago}
       discussion: Дискусија
       join_discussion: Пријавите се да бисте се придружили дискусији
       comment_by_html: '%{user} коментарисао(ла) пре %{time_ago}'
@@ -1372,12 +1374,12 @@ sr:
       see_their_profile: Можете видети његов/њен профил на %{userurl}.
       befriend_them: Можете га/је додати и као пријатеља на %{befriendurl}.
     gpx_failure:
-      hi: Здарво %{to_user},
+      hi: Здраво %{to_user},
       failed_to_import: 'Увоз није успео. Грешка:'
       import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures?uselang=sr-ec
       subject: '[OpenStreetMap] GPX увоз није успео'
     gpx_success:
-      hi: Здарво %{to_user},
+      hi: Здраво %{to_user},
       subject: '[OpenStreetMap] GPX увоз је успео'
     signup_confirm:
       subject: '[OpenStreetMap] Добро дошли на ОпенСтритМап'
@@ -2373,9 +2375,6 @@ sr:
       reason: Разлози за блокирање
       status: Стање
       revoker_name: Опозвао
-      showing_page: Страница %{page}
-      next: Следеће »
-      previous: « Претходно
   user_mutes:
     index:
       title: Пригушени корисници
index 78d419e7ef0557be0aed477092a315839e8295a6..ff07741066be58b2f36e2e8c9f33e14705172f99 100644 (file)
@@ -3029,9 +3029,6 @@ sv:
       reason: Orsak till blockering
       status: Status
       revoker_name: Återkallad av
-      showing_page: Sida %{page}
-      next: Nästa »
-      previous: « Föregående
   user_mutes:
     index:
       title: Tystade användare
index 1f99fdff4360bc7b345e6c52875ea3bd8a3cd9e0..7f40d28d4520eb004ca4768c9011ff0e577db77c 100644 (file)
@@ -2380,9 +2380,6 @@ te:
       reason: నిరోధానికి కారణం
       status: స్థితి
       revoker_name: ఎత్తివేసినవారు
-      showing_page: పేజీ %{page}
-      next: తదుపరి »
-      previous: « మునుపటి
   notes:
     index:
       title: గమనికలు సమర్పించినది లేదా వ్యాఖ్యానించినది %{user}
index 439718df36567fc8fcd3c2e8b14d6c262ce4b746..042fcccc9d9f18271067f25e43e881f1d7ce0f11 100644 (file)
@@ -2010,9 +2010,6 @@ th:
       reason: เหตุผลที่ต้องระงับใช้งาน
       status: สถานะ
       revoker_name: ยกเลิกโดย
-      showing_page: หน้า %{page}
-      next: ถัดไป »
-      previous: « ก่อนหน้า
   notes:
     index:
       heading: หมายเหตุของ %{user}
index 803f64bfe8bc9813af5b0d6ad3ee3d55a8aeda1f..a591bbd87246a0f85414fcf25db64bcde8cf30d2 100644 (file)
@@ -2122,9 +2122,6 @@ tl:
       reason: Dahilan ng pagharang
       status: Kalagayan
       revoker_name: Binawi ni
-      showing_page: Ika-%{page} na pahina
-      next: Susunod »
-      previous: « Nakaraan
   notes:
     index:
       title: Mga tala na isinumite o pinuna ni %{user}
index 78f5a7117d4097aac0805c987cd3d8c27c445a77..ce632d1ccd37e5e6cf90df066b750f47231ebe0b 100644 (file)
@@ -3109,9 +3109,6 @@ tr:
       reason: Engellenme sebebi
       status: Durum
       revoker_name: İptal eden
-      showing_page: '%{page}. sayfa'
-      next: Sonraki »
-      previous: « Önceki
   user_mutes:
     index:
       title: Sessize Alınan Kullanıcılar
index 1830a614ad4a2568d4772c0ddae4f064ac1c3c86..d32e95d5fe556bbfdd87311b60e70a03b6f44d47 100644 (file)
@@ -961,8 +961,6 @@ tt:
     blocks:
       creator_name: Төзүче
       status: Халәт
-      next: Киләсе »
-      previous: « Алдагы
   notes:
     index:
       creator: Төзүче
index abb02f7cca4b8f1e22d1d908c692782fdc9457f6..256fbf670c24db91bac8194d5e8dc09113774c8f 100644 (file)
@@ -3159,9 +3159,6 @@ uk:
       reason: Причина блокування
       status: Стан
       revoker_name: Розблокував
-      showing_page: Сторінка %{page}
-      next: Наступна →
-      previous: ← Попередня
   user_mutes:
     index:
       title: Стишені учасники
index 5ad7d1fcf3995c3a4302b840417376ffca18b629..78122567f3a2f1b515cef09c6c378011df5ac7d8 100644 (file)
@@ -2735,9 +2735,6 @@ vi:
       reason: Lý do cấm
       status: Trạng thái
       revoker_name: Người bỏ cấm
-      showing_page: Trang %{page}
-      next: Sau »
-      previous: « Trước
   notes:
     index:
       title: Các ghi chú do %{user} lưu hoặc bình luận
index 7a548b85b3708400551df9950c94bec965c6affd..d366c22a38842cc75b9e318ec0c0604ccca427ed 100644 (file)
@@ -155,9 +155,6 @@ yi:
       confirm: באַשטעטיקן
     revoke:
       confirm: באַשטעטיקן
-  user_blocks:
-    blocks:
-      showing_page: בלאַט %{page}
   notes:
     show:
       hide: באַהאַלטן
index 78074e904cc6df6e46f2af7cd0bdd48f9df7cf67..89156636410ec26fdc2bcdc9cd370cb13af7131b 100644 (file)
@@ -2840,9 +2840,6 @@ zh-CN:
       reason: 封禁的原因
       status: 状态
       revoker_name: 撤销者
-      showing_page: 第 %{page} 页
-      next: 下一页 »
-      previous: « 上一页
   user_mutes:
     index:
       title: 已忽视用户
index c5b0ffed53b276d3c8503689bd3697053e5b6768..d05b6751f340b405ef486a06e0288896d4134b62 100644 (file)
@@ -2837,9 +2837,8 @@ zh-TW:
       reason: 封鎖的理由
       status: 狀態
       revoker_name: 撤銷者
-      showing_page: 第 %{page} 頁
-      next: 下一頁 »
-      previous: « 上一頁
+      older: 舊的封鎖
+      newer: 新的封鎖
   user_mutes:
     index:
       title: 已忽視使用者
diff --git a/db/migrate/20240405083825_add_creator_index_to_user_blocks.rb b/db/migrate/20240405083825_add_creator_index_to_user_blocks.rb
new file mode 100644 (file)
index 0000000..542a102
--- /dev/null
@@ -0,0 +1,7 @@
+class AddCreatorIndexToUserBlocks < ActiveRecord::Migration[7.1]
+  disable_ddl_transaction!
+
+  def change
+    add_index :user_blocks, [:creator_id, :id], :algorithm => :concurrently
+  end
+end
index 294fda4c8f503e9472bbf1db16f2d3b1c462c8e0..829595e7c7431afc17946a7a57e8d14fb93bc71e 100644 (file)
@@ -2728,6 +2728,13 @@ CREATE INDEX index_reports_on_issue_id ON public.reports USING btree (issue_id);
 CREATE INDEX index_reports_on_user_id ON public.reports USING btree (user_id);
 
 
+--
+-- Name: index_user_blocks_on_creator_id_and_id; Type: INDEX; Schema: public; Owner: -
+--
+
+CREATE INDEX index_user_blocks_on_creator_id_and_id ON public.user_blocks USING btree (creator_id, id);
+
+
 --
 -- Name: index_user_blocks_on_user_id; Type: INDEX; Schema: public; Owner: -
 --
@@ -3512,6 +3519,7 @@ INSERT INTO "schema_migrations" (version) VALUES
 ('23'),
 ('22'),
 ('21'),
+('20240405083825'),
 ('20240307181018'),
 ('20240307180830'),
 ('20240228205723'),
index 7f96531d9d0835ece408c9ad3dedc0d99fadfb1f..790ef150d6e7b3220921348ee373857eb86356de 100644 (file)
@@ -5,7 +5,7 @@ def yarn_path
 end
 
 def config_file
-  Rails.root.join("config/eslint.json").to_s
+  Rails.root.join("config/eslint.js").to_s
 end
 
 def js_files
index 3f4432e9de030d9e890f4651a5319fbd74d22790..924bf17a73453659f7aa50d0538553e1b711202d 100644 (file)
@@ -11,6 +11,6 @@
     "qs": "^6.9.4"
   },
   "devDependencies": {
-    "eslint": "^8.0.0"
+    "eslint": "^9.0.0"
   }
 }
index 0767dea56c777b135d66666a2a183e1e4bcd9638..e728877989e92e7798690da5352e3cb8256c94b8 100644 (file)
@@ -8,12 +8,12 @@ class UserHelperTest < ActionView::TestCase
     gravatar_user = create(:user, :image_use_gravatar => true)
 
     image = user_image(user)
-    assert_match %r{^<img class="user_image border border-grey" .* src="/images/avatar_large.png" />$}, image
+    assert_match %r{^<img class="user_image border border-secondary-subtle" .* src="/images/avatar_large.png" />$}, image
 
     image = user_image(user, :class => "foo")
     assert_match %r{^<img class="foo" .* src="/images/avatar_large.png" />$}, image
     image = user_image(gravatar_user)
-    assert_match %r{^<img class="user_image border border-grey" .* src="http://www.gravatar.com/avatar/.*" />$}, image
+    assert_match %r{^<img class="user_image border border-secondary-subtle" .* src="http://www.gravatar.com/avatar/.*" />$}, image
 
     image = user_image(gravatar_user, :class => "foo")
     assert_match %r{^<img class="foo" .* src="http://www.gravatar.com/avatar/.*" />$}, image
@@ -24,13 +24,13 @@ class UserHelperTest < ActionView::TestCase
     gravatar_user = create(:user, :image_use_gravatar => true)
 
     image = user_thumbnail(user)
-    assert_match %r{^<img class="user_thumbnail border border-grey" .* src="/images/avatar_small.png" />$}, image
+    assert_match %r{^<img class="user_thumbnail border border-secondary-subtle" .* src="/images/avatar_small.png" />$}, image
 
     image = user_thumbnail(user, :class => "foo")
     assert_match %r{^<img class="foo" .* src="/images/avatar_small.png" />$}, image
 
     image = user_thumbnail(gravatar_user)
-    assert_match %r{^<img class="user_thumbnail border border-grey" .* src="http://www.gravatar.com/avatar/.*" />$}, image
+    assert_match %r{^<img class="user_thumbnail border border-secondary-subtle" .* src="http://www.gravatar.com/avatar/.*" />$}, image
 
     image = user_thumbnail(gravatar_user, :class => "foo")
     assert_match %r{^<img class="foo" .* src="http://www.gravatar.com/avatar/.*" />$}, image
@@ -41,13 +41,13 @@ class UserHelperTest < ActionView::TestCase
     gravatar_user = create(:user, :image_use_gravatar => true)
 
     image = user_thumbnail_tiny(user)
-    assert_match %r{^<img class="user_thumbnail_tiny border border-grey" .* src="/images/avatar_small.png" />$}, image
+    assert_match %r{^<img class="user_thumbnail_tiny border border-secondary-subtle" .* src="/images/avatar_small.png" />$}, image
 
     image = user_thumbnail_tiny(user, :class => "foo")
     assert_match %r{^<img class="foo" .* src="/images/avatar_small.png" />$}, image
 
     image = user_thumbnail_tiny(gravatar_user)
-    assert_match %r{^<img class="user_thumbnail_tiny border border-grey" .* src="http://www.gravatar.com/avatar/.*" />$}, image
+    assert_match %r{^<img class="user_thumbnail_tiny border border-secondary-subtle" .* src="http://www.gravatar.com/avatar/.*" />$}, image
 
     image = user_thumbnail_tiny(gravatar_user, :class => "foo")
     assert_match %r{^<img class="foo" .* src="http://www.gravatar.com/avatar/.*" />$}, image
index 410b50260a6f0fe643044e60171bdba108a0920b..ffb223b4ccb6342ba15b50dc300b1d6a5354281d 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
   resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8"
   integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==
 
-"@eslint/eslintrc@^2.1.4":
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad"
-  integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==
+"@eslint/eslintrc@^3.0.2":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-3.0.2.tgz#36180f8e85bf34d2fe3ccc2261e8e204a411ab4e"
+  integrity sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==
   dependencies:
     ajv "^6.12.4"
     debug "^4.3.2"
-    espree "^9.6.0"
-    globals "^13.19.0"
+    espree "^10.0.1"
+    globals "^14.0.0"
     ignore "^5.2.0"
     import-fresh "^3.2.1"
     js-yaml "^4.1.0"
     minimatch "^3.1.2"
     strip-json-comments "^3.1.1"
 
-"@eslint/js@8.57.0":
-  version "8.57.0"
-  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.57.0.tgz#a5417ae8427873f1dd08b70b3574b453e67b5f7f"
-  integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==
+"@eslint/js@9.0.0":
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.0.0.tgz#1a9e4b4c96d8c7886e0110ed310a0135144a1691"
+  integrity sha512-RThY/MnKrhubF6+s1JflwUjPEsnCEmYCWwqa/aRISKWNXGZ9epUwft4bUMM35SdKF9xvBrLydAM1RDHd1Z//ZQ==
 
-"@humanwhocodes/config-array@^0.11.14":
-  version "0.11.14"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b"
-  integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==
+"@humanwhocodes/config-array@^0.12.3":
+  version "0.12.3"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.12.3.tgz#a6216d90f81a30bedd1d4b5d799b47241f318072"
+  integrity sha512-jsNnTBlMWuTpDkeE3on7+dWJi0D6fdDfeANj/w7MpS8ztROCoLvIO2nG0CcFj+E4k8j4QrSTh4Oryi3i2G669g==
   dependencies:
-    "@humanwhocodes/object-schema" "^2.0.2"
+    "@humanwhocodes/object-schema" "^2.0.3"
     debug "^4.3.1"
     minimatch "^3.0.5"
 
   resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c"
   integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==
 
-"@humanwhocodes/object-schema@^2.0.2":
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917"
-  integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==
+"@humanwhocodes/object-schema@^2.0.3":
+  version "2.0.3"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz#4a2868d75d6d6963e423bcf90b7fd1be343409d3"
+  integrity sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==
 
 "@nodelib/fs.scandir@2.1.5":
   version "2.1.5"
     "@nodelib/fs.scandir" "2.1.5"
     fastq "^1.6.0"
 
-"@ungap/structured-clone@^1.2.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406"
-  integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==
-
 acorn-jsx@^5.3.2:
   version "5.3.2"
   resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
   integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
 
-acorn@^8.9.0:
-  version "8.9.0"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59"
-  integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==
+acorn@^8.11.3:
+  version "8.11.3"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
+  integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==
 
 ajv@^6.12.4:
   version "6.12.6"
@@ -215,13 +210,6 @@ diacritics@^1.3.0:
   resolved "https://registry.yarnpkg.com/diacritics/-/diacritics-1.3.0.tgz#3efa87323ebb863e6696cebb0082d48ff3d6f7a1"
   integrity sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==
 
-doctrine@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
-  integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
-  dependencies:
-    esutils "^2.0.2"
-
 es-define-property@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
@@ -239,54 +227,55 @@ escape-string-regexp@^4.0.0:
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
   integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
 
-eslint-scope@^7.2.2:
-  version "7.2.2"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
-  integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
+eslint-scope@^8.0.1:
+  version "8.0.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.1.tgz#a9601e4b81a0b9171657c343fb13111688963cfc"
+  integrity sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==
   dependencies:
     esrecurse "^4.3.0"
     estraverse "^5.2.0"
 
-eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
+eslint-visitor-keys@^3.3.0:
   version "3.4.3"
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
   integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
 
-eslint@^8.0.0:
-  version "8.57.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.57.0.tgz#c786a6fd0e0b68941aaf624596fb987089195668"
-  integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==
+eslint-visitor-keys@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.0.0.tgz#e3adc021aa038a2a8e0b2f8b0ce8f66b9483b1fb"
+  integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
+
+eslint@^9.0.0:
+  version "9.0.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.0.0.tgz#6270548758e390343f78c8afd030566d86927d40"
+  integrity sha512-IMryZ5SudxzQvuod6rUdIUz29qFItWx281VhtFVc2Psy/ZhlCeD/5DT6lBIJ4H3G+iamGJoTln1v+QSuPw0p7Q==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
     "@eslint-community/regexpp" "^4.6.1"
-    "@eslint/eslintrc" "^2.1.4"
-    "@eslint/js" "8.57.0"
-    "@humanwhocodes/config-array" "^0.11.14"
+    "@eslint/eslintrc" "^3.0.2"
+    "@eslint/js" "9.0.0"
+    "@humanwhocodes/config-array" "^0.12.3"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@nodelib/fs.walk" "^1.2.8"
-    "@ungap/structured-clone" "^1.2.0"
     ajv "^6.12.4"
     chalk "^4.0.0"
     cross-spawn "^7.0.2"
     debug "^4.3.2"
-    doctrine "^3.0.0"
     escape-string-regexp "^4.0.0"
-    eslint-scope "^7.2.2"
-    eslint-visitor-keys "^3.4.3"
-    espree "^9.6.1"
+    eslint-scope "^8.0.1"
+    eslint-visitor-keys "^4.0.0"
+    espree "^10.0.1"
     esquery "^1.4.2"
     esutils "^2.0.2"
     fast-deep-equal "^3.1.3"
-    file-entry-cache "^6.0.1"
+    file-entry-cache "^8.0.0"
     find-up "^5.0.0"
     glob-parent "^6.0.2"
-    globals "^13.19.0"
     graphemer "^1.4.0"
     ignore "^5.2.0"
     imurmurhash "^0.1.4"
     is-glob "^4.0.0"
     is-path-inside "^3.0.3"
-    js-yaml "^4.1.0"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.4.1"
     lodash.merge "^4.6.2"
@@ -296,14 +285,14 @@ eslint@^8.0.0:
     strip-ansi "^6.0.1"
     text-table "^0.2.0"
 
-espree@^9.6.0, espree@^9.6.1:
-  version "9.6.1"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
-  integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
+espree@^10.0.1:
+  version "10.0.1"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-10.0.1.tgz#600e60404157412751ba4a6f3a2ee1a42433139f"
+  integrity sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==
   dependencies:
-    acorn "^8.9.0"
+    acorn "^8.11.3"
     acorn-jsx "^5.3.2"
-    eslint-visitor-keys "^3.4.1"
+    eslint-visitor-keys "^4.0.0"
 
 esquery@^1.4.2:
   version "1.4.2"
@@ -351,12 +340,12 @@ fastq@^1.6.0:
   dependencies:
     reusify "^1.0.4"
 
-file-entry-cache@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
-  integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
+file-entry-cache@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-8.0.0.tgz#7787bddcf1131bffb92636c69457bbc0edd6d81f"
+  integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==
   dependencies:
-    flat-cache "^3.0.4"
+    flat-cache "^4.0.0"
 
 find-up@^5.0.0:
   version "5.0.0"
@@ -366,23 +355,18 @@ find-up@^5.0.0:
     locate-path "^6.0.0"
     path-exists "^4.0.0"
 
-flat-cache@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
-  integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
+flat-cache@^4.0.0:
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-4.0.1.tgz#0ece39fcb14ee012f4b0410bd33dd9c1f011127c"
+  integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==
   dependencies:
-    flatted "^3.1.0"
-    rimraf "^3.0.2"
+    flatted "^3.2.9"
+    keyv "^4.5.4"
 
-flatted@^3.1.0:
-  version "3.2.7"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787"
-  integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==
-
-fs.realpath@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-  integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
+flatted@^3.2.9:
+  version "3.3.1"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
+  integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
 
 function-bind@^1.1.2:
   version "1.1.2"
@@ -407,24 +391,10 @@ glob-parent@^6.0.2:
   dependencies:
     is-glob "^4.0.3"
 
-glob@^7.1.3:
-  version "7.2.3"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
-  integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
-  dependencies:
-    fs.realpath "^1.0.0"
-    inflight "^1.0.4"
-    inherits "2"
-    minimatch "^3.1.1"
-    once "^1.3.0"
-    path-is-absolute "^1.0.0"
-
-globals@^13.19.0:
-  version "13.19.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8"
-  integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==
-  dependencies:
-    type-fest "^0.20.2"
+globals@^14.0.0:
+  version "14.0.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
+  integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==
 
 gopd@^1.0.1:
   version "1.0.1"
@@ -485,19 +455,6 @@ imurmurhash@^0.1.4:
   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
   integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
 
-inflight@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-  integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
-  dependencies:
-    once "^1.3.0"
-    wrappy "1"
-
-inherits@2:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
-  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
 is-extglob@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
@@ -537,6 +494,11 @@ js-yaml@^4.1.0:
   dependencies:
     argparse "^2.0.1"
 
+json-buffer@3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
+  integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==
+
 json-schema-traverse@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
@@ -547,6 +509,13 @@ json-stable-stringify-without-jsonify@^1.0.1:
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
   integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
 
+keyv@^4.5.4:
+  version "4.5.4"
+  resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
+  integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==
+  dependencies:
+    json-buffer "3.0.1"
+
 leaflet.locatecontrol@^0.79.0:
   version "0.79.0"
   resolved "https://registry.yarnpkg.com/leaflet.locatecontrol/-/leaflet.locatecontrol-0.79.0.tgz#0236b87c699a49f9ddb2f289941fbc0d3c3f8b62"
@@ -577,7 +546,7 @@ lodash.merge@^4.6.2:
   resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
   integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
 
-minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
+minimatch@^3.0.5, minimatch@^3.1.2:
   version "3.1.2"
   resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
   integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -599,13 +568,6 @@ object-inspect@^1.13.1:
   resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
   integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==
 
-once@^1.3.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-  integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
-  dependencies:
-    wrappy "1"
-
 optionator@^0.9.3:
   version "0.9.3"
   resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
@@ -651,11 +613,6 @@ path-exists@^4.0.0:
   resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
   integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
 
-path-is-absolute@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-  integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
-
 path-key@^3.1.0:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
@@ -693,13 +650,6 @@ reusify@^1.0.4:
   resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
   integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
-rimraf@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
-  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
-  dependencies:
-    glob "^7.1.3"
-
 run-parallel@^1.1.9:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -772,11 +722,6 @@ type-check@^0.4.0, type-check@~0.4.0:
   dependencies:
     prelude-ls "^1.2.1"
 
-type-fest@^0.20.2:
-  version "0.20.2"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
-  integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
-
 uri-js@^4.2.2:
   version "4.4.1"
   resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
@@ -791,11 +736,6 @@ which@^2.0.1:
   dependencies:
     isexe "^2.0.0"
 
-wrappy@1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-  integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
-
 yocto-queue@^0.1.0:
   version "0.1.0"
   resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"