]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/3381'
authorTom Hughes <tom@compton.nu>
Thu, 25 Nov 2021 17:18:02 +0000 (17:18 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 25 Nov 2021 17:18:02 +0000 (17:18 +0000)
35 files changed:
.github/workflows/lint.yml
.github/workflows/tests.yml
app/assets/stylesheets/common.scss
app/assets/stylesheets/parameters.scss
app/controllers/diary_entries_controller.rb
app/helpers/user_helper.rb
app/views/browse/_paging_nav.html.erb
app/views/browse/_tag_details.html.erb
app/views/browse/changeset.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/comments.html.erb
app/views/layouts/_flash.html.erb
app/views/layouts/_header.html.erb
app/views/profiles/edit.html.erb
app/views/site/export.html.erb
app/views/users/terms.html.erb
config/locales/be.yml
config/locales/de.yml
config/locales/en.yml
config/locales/es.yml
config/locales/fr.yml
config/locales/fy.yml
config/locales/ko.yml
config/locales/mk.yml
config/locales/nqo.yml
config/locales/pl.yml
config/locales/ru.yml
config/locales/sat.yml
config/locales/sv.yml
config/locales/uk.yml
config/locales/xmf.yml
test/controllers/diary_entries_controller_test.rb
test/helpers/user_helper_test.rb

index f66b60288cb8c6730fd7a21435eeeab93663ccd2..6ae40a3f5c591e2b7be303aeaccf6396471f83c9 100644 (file)
@@ -17,7 +17,7 @@ jobs:
       with:
         ruby-version: ${{ env.ruby }}
     - name: Cache gems
-      uses: actions/cache@v2.1.6
+      uses: actions/cache@v2.1.7
       with:
         path: vendor/bundle
         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
@@ -41,7 +41,7 @@ jobs:
       with:
         ruby-version: ${{ env.ruby }}
     - name: Cache gems
-      uses: actions/cache@v2.1.6
+      uses: actions/cache@v2.1.7
       with:
         path: vendor/bundle
         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
@@ -65,14 +65,14 @@ jobs:
       with:
         ruby-version: ${{ env.ruby }}
     - name: Cache gems
-      uses: actions/cache@v2.1.6
+      uses: actions/cache@v2.1.7
       with:
         path: vendor/bundle
         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
         restore-keys: |
           bundle-${{ env.os }}-${{ env.ruby }}-
     - name: Cache node modules
-      uses: actions/cache@v2.1.6
+      uses: actions/cache@v2.1.7
       with:
         path: node_modules
         key: yarn-${{ env.os }}-${{ hashFiles('yarn.lock') }}
@@ -100,7 +100,7 @@ jobs:
       with:
         ruby-version: ${{ env.ruby }}
     - name: Cache gems
-      uses: actions/cache@v2.1.6
+      uses: actions/cache@v2.1.7
       with:
         path: vendor/bundle
         key: bundle-${{ env.os }}-${{ env.ruby }}-${{ hashFiles('Gemfile.lock') }}
index 3cedc67885030f2063eee2603ecc2aeb7e50745b..1d7c5035041c6c97fced029598a6e50761c8bfe4 100644 (file)
@@ -21,14 +21,14 @@ jobs:
       with:
         ruby-version: ${{ matrix.ruby }}
     - name: Cache gems
-      uses: actions/cache@v2.1.6
+      uses: actions/cache@v2.1.7
       with:
         path: vendor/bundle
         key: bundle-ubuntu-${{ matrix.ubuntu }}-ruby-${{ matrix.ruby }}-${{ hashFiles('Gemfile.lock') }}
         restore-keys: |
           bundle-ubuntu-${{ matrix.ubuntu }}-ruby-${{ matrix.ruby }}-
     - name: Cache node modules
-      uses: actions/cache@v2.1.6
+      uses: actions/cache@v2.1.7
       with:
         path: node_modules
         key: yarn-ubuntu-${{ matrix.ubuntu }}-${{ hashFiles('yarn.lock') }}
index f2afdcf7a9446f8d29c369ffe0eecec6becbe13a..d9fa276ba6f93eff9a5172774219d0da68c7a9d1 100644 (file)
@@ -79,6 +79,16 @@ a {
   color: $blue;
 }
 
+/* Rules for borders */
+/* These add additional colours to those provided by bootstrap */
+.border-grey {
+  border-color: $grey !important;
+}
+
+.border-lightgrey {
+  border-color: $lightgrey !important;
+}
+
 /* Rules for the header */
 
 #menu-icon {
@@ -216,11 +226,6 @@ nav.secondary {
     }
   }
 
-  img.user_thumbnail_tiny {
-    border: 0;
-    border-radius: 3px;
-  }
-
   #inboxanchor {
     display: inline-block;
     height: 25px;
@@ -388,23 +393,6 @@ body.compact-nav {
         top: 20px;
       }
     }
-
-    .icon.close {
-      float: right;
-      cursor: pointer;
-    }
-
-    .flash {
-      padding: 15px;
-
-      picture {
-        margin-right: -25px;
-      }
-
-      div.message {
-        margin-left: 30px;
-      }
-    }
   }
 
   .overlay-sidebar #sidebar {
@@ -819,38 +807,8 @@ tr.turn:hover {
     border-bottom: none;
   }
 
-  .paginate {
-    float: right;
-    padding: 1px 6px;
-    border: 1px solid $lightgrey;
-    border-radius: 3px;
-  }
-
-  .browse-field {
-    margin-bottom: 10px;
-
-    h4 {
-      padding: 5px 0 5px 10px;
-      font-size: 12px;
-      border: 1px solid $grey;
-      border-radius: 4px 4px 0 0;
-      background-color: $offwhite;
-    }
-
-    p {
-      padding: 7px 10px;
-      font-size: 12px;
-      background-color: #FFF;
-      border: 1px solid $grey;
-      border-top: 0;
-      border-radius: 0 0 4px 4px;
-    }
-  }
-
   .browse-tag-list {
     background-color: $offwhite;
-    border: 1px solid $grey;
-    border-radius: 3px;
     table-layout: fixed;
     border-collapse: separate;
     border-spacing: 0;
@@ -902,16 +860,6 @@ tr.turn:hover {
     }
   }
 
-  .comments-header {
-    float: left;
-  }
-
-  .subscribe-buttons {
-    float: left;
-    margin: 0 10px;
-    min-width: 80px;
-  }
-
   .subscribe-buttons input {
     font-size: 90%;
     line-height: 15px;
@@ -973,8 +921,6 @@ tr.turn:hover {
 
   .export_boxy {
     background: $lightgrey;
-    border: 1px solid $grey;
-    border-radius: 3px;
 
     #maxlat { margin-top: -1px; }
     #minlon {
@@ -1082,7 +1028,6 @@ tr.turn:hover {
 
 .content_map {
   height: 200px;
-  border: 1px solid $grey;
   margin-bottom: $lineheight;
 }
 
@@ -1124,26 +1069,9 @@ tr.turn:hover {
   padding-bottom: $lineheight/2;
   border-top: 1px solid $grey;
 
-  &:first-of-type {
-    margin-top: $lineheight/2;
-  }
-
   &.deleted {
     background-color: #fee;
   }
-
-  .post_heading {
-    margin-bottom: $lineheight;
-
-    h2 {
-      margin-top: 0;
-      margin-bottom: $lineheight/2;
-    }
-  }
-
-  img.user_thumbnail {
-    float: left;
-  }
 }
 
 /* Rules for the diary entry page */
@@ -1151,7 +1079,6 @@ tr.turn:hover {
 .diary_entries {
   #map {
     height: 400px;
-    border: 1px solid $grey;
     display: none;
     margin-bottom: $lineheight;
   }
@@ -1180,10 +1107,6 @@ tr.turn:hover {
   }
 }
 
-.diary_entries-show img.user_thumbnail {
-  float: left;
-}
-
 /* Rules for the log in page */
 
 #login_auth_buttons {
@@ -1199,7 +1122,6 @@ tr.turn:hover {
 
 .users-terms {
   .legale {
-    border: 1px solid $grey;
     padding: $lineheight;
     margin-bottom: $lineheight;
     overflow: auto;
@@ -1312,8 +1234,6 @@ tr.turn:hover {
 /* Rules for "flash" notice boxes shown at the top of the content area */
 
 .flash {
-  padding: $lineheight;
-
   &.error {
     background-color: #ff7070;
   }
@@ -1397,13 +1317,11 @@ tr.turn:hover {
 img.user_image {
   max-width: 100px;
   max-height: 100px;
-  border: 1px solid $grey;
 }
 
 img.user_thumbnail {
   max-width: 50px;
   max-height: 50px;
-  border: 1px solid $grey;
 }
 
 img.user_thumbnail_tiny {
@@ -1411,7 +1329,6 @@ img.user_thumbnail_tiny {
   height: auto;
   max-width: 25px;
   max-height: 25px;
-  border: 1px solid $grey;
 }
 
 /* Rules for geo microformats */
index d1d3db5735ebf432d1d605df3daed76c8039f93e..6cbbf1a27afb3000b991fe6691a626248f2142fc 100644 (file)
@@ -15,6 +15,5 @@ $hovercolor: 20%;
 $headerHeight: 55px;
 $sidebarWidth: 350px;
 $keyline: 1px solid $lightgrey;
-$border-radius: 3px;
 $list-highlight: #FFFFC0;
 $border: 1px solid $grey;
index 12f31bad255c01bf834214fd3b4e656084c0215d..312e1e54caf3464649fc52e71ff34e5a8fec32f4 100644 (file)
@@ -235,6 +235,8 @@ class DiaryEntriesController < ApplicationController
   end
 
   def comments
+    @title = t ".title", :user => @user.display_name
+
     conditions = { :user_id => @user }
 
     conditions[:visible] = true unless can? :unhidecomment, DiaryEntry
index eed55cd9d9a722d00a56dea6a7ee5073a582430a..a6161fa4365e1911b8799adca2071be73c834cfe 100644 (file)
@@ -2,7 +2,7 @@ module UserHelper
   # User images
 
   def user_image(user, options = {})
-    options[:class] ||= "user_image"
+    options[:class] ||= "user_image border border-grey"
     options[:alt] ||= ""
 
     if user.image_use_gravatar
@@ -15,7 +15,7 @@ module UserHelper
   end
 
   def user_thumbnail(user, options = {})
-    options[:class] ||= "user_thumbnail"
+    options[:class] ||= "user_thumbnail border border-grey"
     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"
+    options[:class] ||= "user_thumbnail_tiny border border-grey"
     options[:alt] ||= ""
 
     if user.image_use_gravatar
index 67f1c75a3bc3a21303c9e184e45de389fab1a956..e13b1a9b85e84abe2e3efcf27e2ad9dfd93a4e26 100644 (file)
@@ -1,5 +1,14 @@
-<% if pages.page_count > 1 %>
-  <span class="paginate">
-    <%= raw pagination_links_each(pages, {}) { |n| link_to(n, page_param => n) } %>
-  </span>
-<% end %>
+<div class="row">
+  <div class="col">
+    <h4><%= heading %></h4>
+  </div>
+  <% if pages.page_count > 1 %>
+    <div class="col-auto">
+      <h4>
+        <span class="border border-lightgrey rounded p-1">
+          <%= raw pagination_links_each(pages, {}) { |n| link_to(n, page_param => n) } %>
+        </span>
+      </h4>
+    </div>
+  <% end %>
+</div>
index 0e1a3fbef17934319b3a2cecac941f648431d2c1..0868bb8e59e279e1af10193bfb1a9d77365df271 100644 (file)
@@ -1,6 +1,6 @@
 <% unless tag_details.empty? %>
   <h4><%= t ".tags" %></h4>
-  <table class='browse-tag-list'>
+  <table class='browse-tag-list border border-grey rounded'>
     <%= render :partial => "tag", :collection => tag_details.sort %>
   </table>
 <% end %>
index 496589a08049daf944c75d78cf4998e508e24dd2..6aa0f11fb12a6d3008f292efdfcbbd8a808f05b2 100644 (file)
 
   <%= render :partial => "tag_details", :object => @changeset.tags.except("comment") %>
 
-  <h4 class="comments-header"><%= t(".discussion") %></h4>
-
-  <% if current_user %>
-    <div class="buttons clearfix subscribe-buttons">
-      <form action="#">
-        <% if @changeset.subscribers.exists?(current_user.id) %>
-          <input class="action-button btn btn-sm btn-primary" type="submit" name="unsubscribe" value="<%= t("javascripts.changesets.show.unsubscribe") %>" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>" />
-        <% else %>
-          <input class="action-button btn btn-sm btn-primary" type="submit" name="subscribe" value="<%= t("javascripts.changesets.show.subscribe") %>" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>" />
-        <% end %>
-      </form>
+  <div class="row">
+    <div class="col">
+      <h4><%= t(".discussion") %></h4>
     </div>
-  <% end %>
 
-  <div class="clearfix"></div>
+    <% if current_user %>
+      <div class="col-auto">
+        <div class="subscribe-buttons">
+          <form action="#">
+            <% if @changeset.subscribers.exists?(current_user.id) %>
+              <input class="action-button btn btn-sm btn-primary" type="submit" name="unsubscribe" value="<%= t("javascripts.changesets.show.unsubscribe") %>" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>" />
+            <% else %>
+              <input class="action-button btn btn-sm btn-primary" type="submit" name="subscribe" value="<%= t("javascripts.changesets.show.subscribe") %>" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>" />
+            <% end %>
+          </form>
+        </div>
+      </div>
+    <% end %>
+  </div>
 
   <% if @comments.length > 0 %>
     <div class='changeset-comments'>
@@ -74,7 +78,7 @@
         <div class="form-group">
           <textarea class="form-control" name="text" cols="40" rows="5"></textarea>
         </div>
-        <div class="buttons clearfix">
+        <div>
           <input type="submit" name="comment" value="<%= t("javascripts.changesets.show.comment") %>" data-changeset-id="<%= @changeset.id %>" data-method="POST" data-url="<%= changeset_comment_url(@changeset) %>" disabled="1" class="btn btn-sm btn-primary" />
         </div>
       </form>
   <% end %>
 
   <% unless @ways.empty? %>
-    <h4>
-      <%= type_and_paginated_count("way", @way_pages) %>
-      <%= render :partial => "paging_nav", :locals => { :pages => @way_pages, :page_param => "way_page" } %>
-    </h4>
+    <%= render :partial => "paging_nav", :locals => { :heading => type_and_paginated_count("way", @way_pages), :pages => @way_pages, :page_param => "way_page" } %>
     <ul class="list-unstyled">
       <% @ways.each do |way| %>
         <li><%= link_to printable_name(way, :version => true), { :action => "way", :id => way.way_id.to_s }, { :class => link_class("way", way), :title => link_title(way) } %></li>
   <% end %>
 
   <% unless @relations.empty? %>
-    <h4>
-      <%= type_and_paginated_count("relation", @relation_pages) %>
-      <%= render :partial => "paging_nav", :locals => { :pages => @relation_pages, :page_param => "relation_page" } %>
-    </h4>
+    <%= render :partial => "paging_nav", :locals => { :heading => type_and_paginated_count("relation", @relation_pages), :pages => @relation_pages, :page_param => "relation_page" } %>
     <ul class="list-unstyled">
       <% @relations.each do |relation| %>
         <li><%= link_to printable_name(relation, :version => true), { :action => "relation", :id => relation.relation_id.to_s }, { :class => link_class("relation", relation), :title => link_title(relation) } %></li>
   <% end %>
 
   <% unless @nodes.empty? %>
-    <h4>
-      <%= type_and_paginated_count("node", @node_pages) %>
-      <%= render :partial => "paging_nav", :locals => { :pages => @node_pages, :page_param => "node_page" } %>
-    </h4>
+    <%= render :partial => "paging_nav", :locals => { :heading => type_and_paginated_count("node", @node_pages), :pages => @node_pages, :page_param => "node_page" } %>
     <ul class="list-unstyled">
       <% @nodes.each do |node| %>
         <li><%= link_to printable_name(node, :version => true), { :action => "node", :id => node.node_id.to_s }, { :class => link_class("node", node), :title => link_title(node), :rel => link_follow(node) } %></li>
index 0f04dafb912b9143ac9fdef4560ca0b08b6b1756..d0344ce79bd61a7c773994328dcc915bf3cc8656 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_lat.nil? or @user.home_lon.nil? %>
-        <div id="map" class="content_map">
+        <div id="map" class="content_map border border-grey">
           <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", :data => { :user => user_data } %>
+        <%= tag.div "", :id => "map", :class => "content_map border border-grey rounded", :data => { :user => user_data } %>
       <% end %>
 
       <% friends = @user.friends %>
index 2b3dad055e572d6b4648909450cafdcfd3831b52..68b0a265a2d970cca5d9fafb6003b05858bcc0e0 100644 (file)
@@ -1,5 +1,5 @@
 <div class='diary_post<%= " text-muted px-3 deleted" unless diary_entry.visible %> user_<%= diary_entry.user.id %>'>
-  <div class='post_heading'>
+  <div class='mb-3'>
     <% if @user %>
       <h2><%= link_to diary_entry.title, diary_entry_path(diary_entry.user, diary_entry) %></h2>
     <% else %>
index ed7164e88b1f4d89830dad9756094ba943a1f20f..f72abc19e32c472a77e8e23d51f6184e5788cdb0 100644 (file)
@@ -5,7 +5,7 @@
 <fieldset>
   <legend><%= t ".location" -%></legend>
 
-  <%= tag.div "", :id => "map", :data => { :lat => @lat, :lon => @lon, :zoom => @zoom } %>
+  <%= tag.div "", :id => "map", :class => "border border-grey rounded", :data => { :lat => @lat, :lon => @lon, :zoom => @zoom } %>
 
   <div class="form-row">
     <%= f.text_field :latitude, :wrapper_class => "col-sm-4", :id => "latitude" %>
index 5f08f8d30a68efe79ebf67ec1a9a0e370a15ede9..e3a7ff23e12f8f8f5baf7012874d8745ff4d2724 100644 (file)
@@ -1,5 +1,6 @@
 <% content_for :heading do %>
-  <h1><%= t(".has_commented_on", :display_name => @user.display_name) %></h1>
+  <h1><%= t ".heading", :user => @user.display_name %></h1>
+  <p><%= t ".subheading_html", :user => link_to(@user.display_name, user_path(@user)) %></p>
 <% end %>
 
 <% if @comments.empty? %>
index f8eabaeb32a051daaeb9c140b8f0a3b4e95f688f..5dda3ad5c88d717aea4101a5c2a1b701d801713b 100644 (file)
@@ -1,5 +1,5 @@
 <% if flash[:error] %>
-  <div class="flash error row align-items-center">
+  <div class="flash error row mx-0 p-3 align-items-center">
     <div class="col-auto">
       <picture>
         <source srcset="<%= image_path "notice.svg" %>" type="image/svg+xml" />
@@ -11,7 +11,7 @@
 <% end %>
 
 <% if flash[:warning] %>
-  <div class="flash warning row align-items-center">
+  <div class="flash warning row mx-0 p-3 align-items-center">
     <div class="col-auto">
       <picture>
         <source srcset="<%= image_path "notice.svg" %>" type="image/svg+xml"></source>
@@ -23,7 +23,7 @@
 <% end %>
 
 <% if flash[:notice] %>
-  <div class="flash notice row align-items-center">
+  <div class="flash notice row mx-0 p-3 align-items-center">
     <div class="col-auto">
       <picture>
         <source srcset="<%= image_path "notice.svg" %>" type="image/svg+xml"></source>
index 192b0761431faf62a8f25a002f6e293c8f72a806..0171752ff4a4e23966852ff99484028a21bde906 100644 (file)
@@ -81,7 +81,7 @@
     <% if current_user && current_user.id %>
       <div class='d-inline-flex dropdown user-menu logged-in clearfix'>
         <a class='dropdown-toggle btn btn-outline-secondary pl-2 py-1 flex-grow-1' data-toggle='dropdown' href="#">
-          <%= user_thumbnail_tiny(current_user, :width => 25, :height => 25) %>
+          <%= user_thumbnail_tiny(current_user, :width => 25, :height => 25, :class => "user_thumbnail_tiny rounded-sm") %>
           <%= render :partial => "layouts/inbox" %>
           <span class="user-button">
             <span class='username'>
index 8eca6f4f7ca24d26090fac6b5d519143aa06ad19..c57f98a044d534a44bd87399ccd116288466ce71 100644 (file)
@@ -53,7 +53,7 @@
       <input class="form-check-input" type="checkbox" name="updatehome" value="1" <% unless current_user.home_lat and current_user.home_lon %> checked="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" %>
+    <%= tag.div "", :id => "map", :class => "content_map set_location border border-grey rounded" %>
   </fieldset>
 
   <%= f.primary t(".save") %>
index e612ff1af536d12855cea6ca6de985907576e599..b3a3bd0e9596ece4dc5ff3336d340ddf255b1662 100644 (file)
@@ -6,7 +6,7 @@
   <%= hidden_field_tag "format", "osm", :autocomplete => "off" %>
 
   <div class='export_area_inputs'>
-    <div class='export_boxy'>
+    <div class='export_boxy border border-grey 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") %>
index 05cf62e3e67038d2572a3d836c721d25bbb19aac..58bddaca5fcee2ff82796486908db0bb8e14b1c7 100644 (file)
@@ -30,7 +30,7 @@
     <% end %>
   </div>
 
-  <div id="contributorTerms" class="legale">
+  <div id="contributorTerms" class="legale border border-grey rounded">
     <%= render :partial => "terms" %>
   </div>
 
index bceb460f89fa6f0f50c9b831edebe1b9e1f2cec7..d53a04daeb1d95482cfe276e0c6dd4bb39bc4554 100644 (file)
@@ -337,8 +337,8 @@ be:
         way: лінія
         relation: дачыненне
     start_rjs:
-      feature_warning: Неабходна загрузіць %{num_features} аб'ектаў, што можа запаволіць
-        ваш браўзэр. Вы ўпэўнены, што жадаеце праглядзець гэтыя дадзеныя?
+      feature_warning: Неабходна загрузіць %{num_features} абектаў, што можа запаволіць
+        ваш браўзер. Вы ўпэўнены, што жадаеце праглядзець гэтыя даныя?
       load_data: Сцягнуць дадзеныя
       loading: Загрузка...
     tag_details:
@@ -1713,7 +1713,7 @@ be:
       user_page_link: старонка карыстальніка
       anon_edits_link_text: Даведацца ў чым справа.
       id_not_configured: iD не быў настроены
-      no_iframe_support: Ваш браўзэр не падтрымлівае HTML iframe, якія неабходныя
+      no_iframe_support: Ваш браўзер не падтрымлівае рамкі HTML, якія з’яўляюцца неабходнымі
         для гэтай функцыі.
     export:
       title: Экспарт
index 2a74f8c2a983b657b461a5812d07da19dea8a534..97f76c953851abca999c1140bdcc92b890bdfcc1 100644 (file)
@@ -2856,6 +2856,7 @@ de:
       no_authorization_code: Kein Autorisierungscode
       unknown_signature_algorithm: Unbekannter Signaturalgorithmus
       invalid_scope: Ungültiger Bereich
+      unknown_error: Authentifizierung fehlgeschlagen
     auth_association:
       heading: Deine ID ist noch nicht mit einem OpenStreetMap-Konto verknüpft.
       option_1: |-
index 7dae05c57215ba085643ee4610fa1ab6ef439242..db77a816e4d9cf44e4c399f66a89c15838ba0cae 100644 (file)
@@ -504,7 +504,9 @@ en:
         title: "OpenStreetMap diary entries"
         description: "Recent diary entries from users of OpenStreetMap"
     comments:
-      has_commented_on: "%{display_name} has commented on the following diary entries"
+      title: "Diary Comments added by %{user}"
+      heading: "%{user}'s Diary Comments"
+      subheading_html: "Diary Comments added by %{user}"
       no_comments: "No diary comments"
       post: Post
       when: When
index 71fe50ec2ba2d1bcccf8dc3302e211dcb259ae94..5c90cb4b322f19594f3e89f7ce721b48f831ef13 100644 (file)
@@ -2043,10 +2043,10 @@ es:
           <strong>Austria</strong>: Contiene datos de
              <a href="https://data.wien.gv.at/">Stadt Wien</a> (bajo
              <a href="https://creativecommons.org/licenses/by/3.0/at/deed.de">CC BY</a>), <a href="https://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">Land Vorarlberg</a> y Land Tirol (bajo licencia <a href="https://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC BY AT con modificaciones</a>).
-        contributors_au_html: '<strong>Australia</strong>: Contiene datos procedentes
-          de <a href="https://www.psma.com.au/psma-data-copyright-and-disclaimer">PSMA
-          Australia Limite </a> con licencia de Commonwealth of Australia bajo <a
-          href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>.'
+        contributors_au_html: '<strong>Australia</strong>: Contiene o se ha desarrollado
+          usando límites administrativos de &copy; <a href="https://www.psma.com.au/psma-data-copyright-and-disclaimer">Geoscape
+          Australia</a> con licencia de la Commonwealth de Australia bajo <a href="https://creativecommons.org/licenses/by/4.0/">licencia
+          Creative Commons Atribución 4.0 Internacional (CC BY 4.0)</a>.'
         contributors_ca_html: '<strong>Canadá</strong>: contiene datos de GeoBase&reg;,
           GeoGratis (&copy; Department of Natural Resources Canada), CanVec (&copy;
           Department of Natural Resources Canada) y StatCan (Geography Division, Statistics
index 0f296e27894b746bc301c8af9837894138941975..ac2646e37375c6eb8c54d2a17af694f27ea19c75 100644 (file)
@@ -2870,6 +2870,7 @@ fr:
       no_authorization_code: Aucun code d’autorisation
       unknown_signature_algorithm: Algorithme de signature inconnu
       invalid_scope: Étendue non valide
+      unknown_error: Échec d’authentification
     auth_association:
       heading: Votre ID n’est pas encore associé à un compte OpenStreetMap.
       option_1: Si vous êtes nouveau sur OpenStreetMap, veuillez créer un nouveau
index e46933f51a025faf46e787fcd0d54ed8a5c2b4de..badb30df9282de2038298a9f5ef3a19c35deafda 100644 (file)
@@ -19,12 +19,17 @@ fy:
       diary_entry:
         create: Publisearje
         update: Bywurkje
+      issue_comment:
+        create: Reäksje taheakje
       message:
         create: Ferstjoere
       client_application:
         update: Bywurkje
       doorkeeper_application:
         update: Bywurkje
+      redaction:
+        create: Redigearring oanmeitsje
+        update: Redigearring bewarje
       trace:
         create: Oplade
         update: Feroarings bewarje
@@ -64,7 +69,7 @@ fy:
       way_tag: Linelebel
     attributes:
       diary_comment:
-        body: Tekst
+        body: Ynhâld
       diary_entry:
         user: Meidogger
         title: Underwerp
@@ -99,6 +104,8 @@ fy:
       report:
         category: Selektearje in reden foar jo melding
       user:
+        auth_provider: Autentifikaasje-oanbieder
+        auth_uid: Autentifikaasje-UID
         email: E-mail
         email_confirmation: Befêstiging e-mail
         new_email: Nij e-mailadres
@@ -112,6 +119,8 @@ fy:
         pass_crypt: Wachtwurd
         pass_crypt_confirmation: Wachtwurd befêstigje
     help:
+      trace:
+        tagstring: skaat mei komma's
       user:
         email_confirmation: Jo adres wurdt net publikelik toand; sjoch ús <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy"
           title="Privacybelied fan OSMF mei in stik oer e-mailadressen">Privacybelied</a>
@@ -281,7 +290,7 @@ fy:
         note: notysje
     timeout:
       title: Tiid ferrûn
-      sorry: Spitich, it opfreegjen fan 'e data foar %{type}-ID %{id} duorre te lang.
+      sorry: Spitich, it opheljen fan 'e data foar %{type}-ID %{id} duorre te lang.
       type:
         node: punt
         way: line
@@ -290,12 +299,12 @@ fy:
         note: notysje
     redacted:
       redaction: Redigearring %{id}
-      message_html: '%{type}-ferzje %{version} kin nei redaksje net werjûn wurde.
-        Sjoch %{redaction_link} foar ynformaasje.'
+      message_html: Ferzje %{version} fan %{type} kin nei redaksje net werjûn wurde.
+        Sjoch %{redaction_link} foar ynformaasje.
       type:
-        node: Punt
-        way: Line
-        relation: Relaasje
+        node: punt
+        way: line
+        relation: relaasje
     start_rjs:
       feature_warning: '%{num_features} skaaimerken wurde laden, wat jo webblêder
         traach meitsje kin of dat er net mear reägearret. Wolle jo wier dy data werjaan?'
@@ -303,6 +312,14 @@ fy:
       loading: Laden ...
     tag_details:
       tags: Lebels
+      wiki_link:
+        key: De wiki-beskriuwingsside foar it lebel %{key}
+        tag: De wiki-beskriuwingsside foar it lebel %{key}=%{value}
+      wikidata_link: It item %{page} op Wikidata
+      wikipedia_link: It artikel %{page} op 'e Wikipedy
+      wikimedia_commons_link: It bestân %{page} op Wikimedia Commons
+      telephone_link: '%{phone_number} skilje'
+      colour_preview: Proefbyld kleur %{colour_value}
     note:
       title: 'Notysje: %{id}'
       new_note: Nije notysje
@@ -352,6 +369,21 @@ fy:
       no_more_area: Gjin wizigingssets mear yn dizze krite.
       no_more_user: Gjin wizigingssets mear fan dizze meidogger.
       load_more: Mear lade
+    timeout:
+      sorry: Spitich, it opheljen fan 'e list wizigingssets dy't jo fregen duorre
+        te lang.
+  changeset_comments:
+    comment:
+      comment: 'Nije reäksje op wizigingsset #%{changeset_id} fan %{author}'
+      commented_at_by_html: Bywurke %{when} troch %{user}
+    comments:
+      comment: 'Nije reäksje op wizigingsset #%{changeset_id} fan %{author}'
+    index:
+      title_all: Oerlis oer OpenStreetMap-wizigingsset
+      title_particular: 'Oerlis oer OpenStreetMap-wizigingsset #%{changeset_id}'
+    timeout:
+      sorry: Spitich, it opheljen fan 'e list wizigingssetreäksjes dy't jo fregen
+        duorre te lang.
   dashboards:
     contact:
       km away: '%{count}km fuort'
@@ -389,6 +421,7 @@ fy:
       new_title: In nij stik yn myn meidoggerdeiboek skriuwe
       my_diary: Myn deiboek
       no_entries: Gjin deiboekstikken
+      recent_entries: Deiboekstikken fan koartby
       older_entries: Aldere stikken
       newer_entries: Nijere stikken
     edit:
@@ -402,6 +435,7 @@ fy:
       login: Meld jo oan
     no_such_entry:
       title: Deiboekstik ûnbekend
+      heading: 'Gjin stik mei ID: %{id}'
     diary_entry:
       posted_by_html: Pleatst troch %{link_user} op %{created} yn it %{language_link}.
       updated_at_html: Lêst bywurke op %{updated}.
@@ -440,7 +474,7 @@ fy:
     make_friend:
       heading: '%{user} as freon tafoegje?'
       button: As freon tafoegje
-      success: '%{name} is no jo freon!'
+      success: '%{name} is no jo freon(dinne)!'
       failed: Spitich, %{name} as freon tafoegjen mislearre.
       already_a_friend: Jo binne al freonen mei %{name}.
     remove_friend:
@@ -467,12 +501,19 @@ fy:
           station: Kabelbaanstasjon
         aeroway:
           aerodrome: Fleanfjild
+          airstrip: Lâningsstripe
           apron: Platfoarm
           gate: Gate
+          hangar: Hangaar
           helipad: Helyhaven
+          holding_position: Wachtposysje
+          navigationaid: Grûnljochten loftfeart
+          parking_position: Parkearposysje
           runway: Start-/lâningsbaan
+          taxilane: Taksystripe
           taxiway: Taksybaan
-          terminal: Terminal
+          terminal: Passazjiershal
+          windsock: Wynsek
         amenity:
           animal_boarding: Bistepinsjon
           animal_shelter: Biste-asyl
@@ -662,10 +703,16 @@ fy:
           railway: Histoaryske spoarwei
           roman_road: Romeinske wei
           ruins: Ruïne
+          rune_stone: Runestien
           stone: Stien
           tomb: Tombe
           tower: Toer
+          wayside_chapel: Weikapel
+          wayside_cross: Weikrús
+          wayside_shrine: Weiskryn
           wreck: Wrak
+        junction:
+          "yes": Krusing
         landuse:
           allotments: Folkstunen
           basin: Wetterbekken
@@ -792,6 +839,7 @@ fy:
           estate_agent: Makelder
           lawyer: Jurist
           ngo: Kantoar NGO
+          telecommunication: Tillekommunikaasjekantoar
           travel_agent: Reisburo
           "yes": Kantoar
         place:
@@ -819,7 +867,7 @@ fy:
           square: Plein
           state: Steat
           subdivision: Dielgebiet
-          suburb: Foarstêd
+          suburb: Stedsdiel
           town: Stêd
           village: Doarp
           "yes": Plak
@@ -932,6 +980,7 @@ fy:
         level7: Gemeentegrins
         level8: Stedsgrins
         level9: Doarpsgrins
+        level10: Stedsdielgrins
         level11: Buertgrins
       types:
         cities: Grutte stêden
@@ -949,8 +998,10 @@ fy:
     home: Nei jo fêste lokaasje
     logout: Ofmelde
     log_in: Oanmelde
+    log_in_tooltip: Oanmelde mei in besteand akkount
     sign_up: Ynskriuwe
     start_mapping: Set útein
+    sign_up_tooltip: In akkount foar bewurkjen oanmeitsje
     edit: Bewurkje
     history: Skiednis
     export: Eksportearje
@@ -1157,6 +1208,7 @@ fy:
     no_such_message:
       title: Berjocht ûnbekend
       heading: Berjocht ûnbekend
+      body: Spitich, der is gjin berjocht mei dy ID.
     outbox:
       title: Utfek
       my_inbox: Myn ynfek
@@ -1189,9 +1241,22 @@ fy:
       destroyed: Berjocht wiske
   passwords:
     lost_password:
+      title: Wachtwurd kwyt
+      heading: Wachtwurd fergetten?
       email address: 'E-mailadres:'
+      new password button: Nij wachtwurd
+      help_text: Folje it e-mailadres yn dat jo by it ynskriuwen brûkt hawwe. Wy stjoere
+        der dan in keppeling hinne dy't jo brûke kinne en stel jo wachtwurd op 'e
+        nij yn.
+      notice email on way: Spitich dat jo 'm kwyt binne :-( mar in e-mail is ûnderweis,
+        dat jo kinne gau in nijenien ynstelle.
+      notice email cannot find: Koe dat e-mailadres net fine, spitich.
     reset_password:
+      title: Nij wachtwurd
+      heading: Wachtwurd op 'e nij ynstelle foar %{user}
+      reset: Nij wachtwurd
       flash changed: Jo wachtwurd is feroare.
+      flash token bad: Haw dat bewiisteken net fûn, de URL efkes neisjen?
   preferences:
     show:
       title: Myn foarkarren
@@ -1396,7 +1461,7 @@ fy:
           - -taksybaan
           apron:
           - Lofthavenplatfoarm
-          - -terminal
+          - -passazjiershal
           admin: Bestjoerlike grins
           forest: Bosk
           wood: Wâld
@@ -1458,9 +1523,17 @@ fy:
       identifiable: Identifisearber (werjûn yn 'e trajektelist en as identifisearbere,
         oardere punten mei tiidstimpels)
     new:
+      upload_trace: GPS-trajekt oplade
+      visibility_help: wat betsjut dat?
+      visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
       help: Help
+      help_url: https://wiki.openstreetmap.org/wiki/Upload
+    create:
+      upload_trace: GPS-trajekt oplade
     edit:
       cancel: Annulearje
+      visibility_help: wat betsjut dat?
+      visibility_help_url: https://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces
     update:
       updated: Trajekt bywurke
     trace_optionals:
@@ -1590,7 +1663,7 @@ fy:
       edits: Bewurkings
       traces: Trajekten
       notes: Kaartnotysjes
-      remove as friend: Freon ôffiere
+      remove as friend: Freon ôf
       add as friend: Freon tafoegje
       mapper since: 'Kaartmakker sûnt:'
       ct status: 'Bydragersbetingsten:'
@@ -1627,6 +1700,7 @@ fy:
         heading: Bydragersbetingsten
         agreed: Jo binne akkoart gien mei de nije Bydragersbetingsten.
         not yet agreed: Jo binne noch net akkoart gien mei de nije Bydragersbetingsten.
+        link: https://www.osmfoundation.org/wiki/License/Contributor_Terms
         link text: wat is dit?
       save changes button: Feroarings bewarje
     index:
@@ -1864,4 +1938,9 @@ fy:
     show:
       description: 'Beskriuwing:'
       user: 'Auteur:'
+  validations:
+    leading_whitespace: begjint mei wytromte
+    trailing_whitespace: einiget mei wytromte
+    invalid_characters: befettet ûnjildige tekens
+    url_characters: befettet spesjale URL-tekens (%{characters})
 ...
index 3dc2881870eed88b826de539a503f6ea948a3065..9b9b219a8794fc0831894c2edafcee667dfb6c9f 100644 (file)
@@ -2479,6 +2479,7 @@ ko:
       no_authorization_code: 인증 코드가 없습니다.
       unknown_signature_algorithm: 알려지지 않은 인증 알고리즘
       invalid_scope: 잘못된 범위
+      unknown_error: 인증 실패
     auth_association:
       heading: 당신의 ID는 아직 OpenStreetMap 계정에 등록되지 않았습니다.
       option_1: 만약 당신이 OpenStreetMap에 처음이시면, 아래 양식을 사용해 새 계정을 만들어 주세요.
index 4a1b29a7891cbc4c1325627cb0edd54bcc00e72d..20edb15a33b5c53f2a26c6b16ed2c312c397af1d 100644 (file)
@@ -2747,6 +2747,7 @@ mk:
       no_authorization_code: Нема код за овластување
       unknown_signature_algorithm: Непознат алгоритам на потпис
       invalid_scope: Неважечки делокруг
+      unknown_error: Заверката не успеа
     auth_association:
       heading: Вашата назнака сè уште не е здружена со сметка на OpenStreetMap.
       option_1: Доколку сте нови на OpenStreetMap, направете сметка користејќи го
index f813dc7493c3fefc95324ef1303be98b4bcb56ec..2764e7546e2aadbda96257e3c36c30c2940ca46e 100644 (file)
@@ -1505,4 +1505,6 @@ nqo:
       public editing:
         enabled link text: ߣߌ߲߬ ߦߋ߫ ߡߎ߲߬ ߘߌ߫؟
         disabled link text: ߡߎ߲߬ߠߊ߫ ߒߠߋ ߕߍ߫ ߛߋ߫ ߟߊ߫ ߡߊ߬ߦߟߍ߬ߡߊ߲߬ߠߌ߲߫ ߞߍ߫ ߟߊ߫؟
+    auth_failure:
+      unknown_error: ߕߎ߬ߡߊ߬ߢߐ߲߰ߦߊ ߓߘߊ߫ ߗߌߙߏ߲߫
 ...
index 06cee6c9b93ed5631d0f1fe3fa54e577573d18d5..1410164109a275235ec6de2ad07183ec292f0810 100644 (file)
@@ -3062,7 +3062,7 @@ pl:
       queryfeature_disabled_tooltip: Przybliż mapę, aby obejrzeć dane obiektów
     changesets:
       show:
-        comment: Komentować
+        comment: Komentarz
         subscribe: Obserwuj
         unsubscribe: Nie obserwuj
         hide_comment: ukryj
@@ -3083,7 +3083,7 @@ pl:
         resolve: Oznacz jako rozwiązaną
         reactivate: Ponownie aktywuj
         comment_and_resolve: Skomentuj i rozwiąż
-        comment: Komentować
+        comment: Dodaj komentarz
     edit_help: Proszę przesunąć mapę i przybliżyć modyfikowane położenie, a następnie
       kliknąć tutaj.
     directions:
index e02c65f9a608a12e27627892d44b91c0c698dbc8..c236bd80ac50d15b97b1a9f7aba96bdfd58a52f8 100644 (file)
@@ -757,6 +757,7 @@ ru:
           loading_dock: Загрузочный док
           love_hotel: Отель любви
           marketplace: Рынок
+          mobile_money_agent: Агент мобильных денег
           monastery: Монастырь
           money_transfer: Перевод денег
           motorcycle_parking: Парковка для мотоциклов
@@ -883,6 +884,8 @@ ru:
           electrician: Электрик
           electronics_repair: Ремонт электроники
           gardener: Садовник
+          glaziery: Стекольщик
+          handicraft: Ремесло
           painter: Художник
           photographer: Фотограф
           plumber: Сантехник
index 65647a8146301bf02dc508400ab1d49d76de92d5..5e516eb11e46cf37bf23adc9b2be49ae607b96b1 100644 (file)
@@ -23,6 +23,8 @@ sat:
       client_application:
         create: ᱧᱩᱛᱩᱢ ᱚᱞ
         update: ᱦᱟᱹᱞᱤᱭᱟᱹᱜ
+      doorkeeper_application:
+        update: ᱟᱹᱨᱩ ᱯᱷᱮᱨᱟᱣ
       trace:
         create: ᱞᱟᱫᱮ
         update: ᱵᱚᱫᱚᱞᱠᱚ ᱪᱟᱱᱪᱟᱣ ᱢᱮ
index 870d933c9a4b88a724526bef146f5a574294e656..7cc250ead2d3f5816070bf79ae0ca0745f788db3 100644 (file)
@@ -1974,11 +1974,10 @@ sv:
           och länka direkt till licenserna. I media där länkar ej är möjliga
           (t.ex. tryckt material), förslår vi att du hänvisar dina läsare till openstreetmap.org
           (förslagsvis genom att expandera 'OpenStreetMap' till hela denna adress), till opendatacommons.org, och om relevant till creativecommons.org.
-        credit_3_1_html: 'Kartrutorna i &ldquo;standardstilen&rdquo; på www.openstreetmap.org
+        credit_3_1_html: Kartrutorna i &ldquo;standardstilen&rdquo; på www.openstreetmap.org
           är ett producerat verk av OpenStreetMap Foundation med hjälp av OpenStreetMap-data
-          under licensen Open Database. Använder du dessa rutor, vänligen använd följande
-          erkännande: &ldquo;Baskarta och data från OpenStreetMap och OpenStreetMap
-          Foundation&rdquo;.'
+          under licensen Open Database. När du använder denna kartstil krävs samma
+          erkännande som för kartdata.
         credit_4_html: |-
           För en navigerbar elektronisk karta, ska källhänvisningen synas i ena hörnet av kartan.
           Till exempel:
@@ -2561,6 +2560,8 @@ sv:
       confirm_delete: Radera den här applikationen?
       client_id: Klient-ID
       client_secret: Klienthemlighet
+      client_secret_warning: Se till att spara denna hemlighet - den kommer inte vara
+        tillgänglig igen
       permissions: Behörigheter
       redirect_uris: Omdirigerings-URI:er
     not_found:
@@ -2780,6 +2781,7 @@ sv:
       no_authorization_code: Ingen behörighetskod
       unknown_signature_algorithm: Okänd signaturalgoritm
       invalid_scope: Ogiltiga omfattning
+      unknown_error: Autentisering misslyckades
     auth_association:
       heading: Ditt ID är inte associerat med ett OpenStreetMap-konto ännu.
       option_1: |-
index 6300a059d40d4e7dda68855fbfb662a6a4700bc2..ab3647e0685bbd1354071d2b159bfe117d2f089b 100644 (file)
@@ -2822,6 +2822,7 @@ uk:
       no_authorization_code: Немає коду авторизації
       unknown_signature_algorithm: Невідомий алгоритм підпису
       invalid_scope: Недійсна область
+      unknown_error: Помилка автентифікації
     auth_association:
       heading: Ваш ID ще не пов'язаний з обліковим записом OpenStreetMap.
       option_1: Якщо ви вперше в OpenStreetMap – створіть новий обліковий запис, використовуючи
index 322044caa14cadd745edd276c08337d991f145db..d54f87a7f4c90f1425d2c83a292b55202e7f4a94 100644 (file)
@@ -992,6 +992,9 @@ xmf:
         waterway:
           artificial: ხელუანური წყაროლინი
           canal: არხი
+  users:
+    auth_failure:
+      unknown_error: ავთენტიფიკაციაქ ვეგშართჷ
   user_blocks:
     show:
       created: 'გიჭყჷ:'
index 33e48365218e5ad70db6f722762d556277cb6fc6..b1e9b72f2ba5dc48cef62358286a12421acc9485 100644 (file)
@@ -319,7 +319,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
       assert_select "h1", :text => /#{entry.user.display_name}'s Diary/, :count => 1
     end
     assert_select "div#content", :count => 1 do
-      assert_select "div.post_heading", :text => /#{new_title}/, :count => 1
+      assert_select "h2", :text => /#{new_title}/, :count => 1
       # This next line won't work if the text has been run through the htmlize function
       # due to formatting that could be introduced
       assert_select "p", :text => /#{new_body}/, :count => 1
@@ -339,7 +339,7 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
       assert_select "h1", :text => /#{entry.user.display_name}'s Diary/, :count => 1
     end
     assert_select "div#content", :count => 1 do
-      assert_select "div.post_heading", :text => /#{new_title}/, :count => 1
+      assert_select "h2", :text => /#{new_title}/, :count => 1
       # This next line won't work if the text has been run through the htmlize function
       # due to formatting that could be introduced
       assert_select "p", :text => /#{new_body}/, :count => 1
index 8cef4d2dc570512340f50500801eb0d030e33dfb..11a47a19557db39ce683dc707234acb1cf98dec7 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" .* src="/images/avatar_large.png" />$}, image
+    assert_match %r{^<img class="user_image border border-grey" .* 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" .* src="http://www.gravatar.com/avatar/.*" />$}, image
+    assert_match %r{^<img class="user_image border border-grey" .* 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" .* src="/images/avatar_small.png" />$}, image
+    assert_match %r{^<img class="user_thumbnail border border-grey" .* 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" .* src="http://www.gravatar.com/avatar/.*" />$}, image
+    assert_match %r{^<img class="user_thumbnail border border-grey" .* 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" .* src="/images/avatar_small.png" />$}, image
+    assert_match %r{^<img class="user_thumbnail_tiny border border-grey" .* 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" .* src="http://www.gravatar.com/avatar/.*" />$}, image
+    assert_match %r{^<img class="user_thumbnail_tiny border border-grey" .* 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