]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4964'
authorTom Hughes <tom@compton.nu>
Mon, 15 Jul 2024 18:16:29 +0000 (19:16 +0100)
committerTom Hughes <tom@compton.nu>
Mon, 15 Jul 2024 18:16:29 +0000 (19:16 +0100)
118 files changed:
.rubocop_todo.yml
Gemfile.lock
app/abilities/ability.rb
app/assets/images/banners/StateoftheMapEurope_2024.png
app/assets/javascripts/auth_providers.js
app/assets/javascripts/index.js
app/assets/javascripts/index/layers/data.js [moved from app/assets/javascripts/index/browse.js with 95% similarity]
app/assets/javascripts/index/layers/notes.js [moved from app/assets/javascripts/index/notes.js with 98% similarity]
app/controllers/application_controller.rb
app/controllers/diary_comments_controller.rb
app/controllers/diary_entries_controller.rb
app/controllers/geocoder_controller.rb
app/helpers/user_helper.rb
app/models/request_token.rb
app/views/application/_auth_providers.html.erb
app/views/dashboards/show.html.erb
app/views/diary_comments/new.html.erb [new file with mode: 0644]
app/views/diary_entries/_form.html.erb
app/views/diary_entries/show.html.erb
app/views/profiles/edit.html.erb
app/views/sessions/new.html.erb
app/views/users/blocked.html.erb
app/views/users/new.html.erb
config/banners.yml
config/locales/af.yml
config/locales/ar.yml
config/locales/ast.yml
config/locales/az.yml
config/locales/be-Tarask.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/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/mo.yml
config/locales/ms.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/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/sc.yml
config/locales/scn.yml
config/locales/sh.yml
config/locales/sk.yml
config/locales/skr-arab.yml
config/locales/sl.yml
config/locales/sq.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/uk.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
config/routes.rb
lib/nominatim.rb
lib/osm.rb
test/abilities/abilities_test.rb
test/controllers/diary_comments_controller_test.rb
test/controllers/diary_entries_controller_test.rb
test/controllers/geocoder_controller_test.rb
test/helpers/user_helper_test.rb
test/lib/nominatim_test.rb [new file with mode: 0644]
test/system/user_signup_test.rb
yarn.lock

index fdc7c35a5343242903305b93d5ec5ab9ff4b2ecf..6fe5b2e57a222f91f042f6ee05ded916b027ee11 100644 (file)
@@ -24,7 +24,7 @@ FactoryBot/ExcessiveCreateList:
 # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
 # URISchemes: http, https
 Layout/LineLength:
-  Max: 248
+  Max: 266
 
 # Offense count: 29
 # This cop supports unsafe autocorrection (--autocorrect-all).
index 774d795bcfd3610f26e1a6623b90edde974aca21..284e97adc9fa92bf307cada90a90c0e85128a29f 100644 (file)
@@ -95,8 +95,8 @@ GEM
     autoprefixer-rails (10.4.16.0)
       execjs (~> 2)
     aws-eventstream (1.3.0)
-    aws-partitions (1.950.0)
-    aws-sdk-core (3.201.0)
+    aws-partitions (1.954.0)
+    aws-sdk-core (3.201.1)
       aws-eventstream (~> 1, >= 1.3.0)
       aws-partitions (~> 1, >= 1.651.0)
       aws-sigv4 (~> 1.8)
@@ -186,7 +186,7 @@ GEM
       doorkeeper (>= 5.5, < 5.8)
       jwt (>= 2.5)
     drb (2.2.1)
-    dry-configurable (1.1.0)
+    dry-configurable (1.2.0)
       dry-core (~> 1.0, < 2)
       zeitwerk (~> 2.6)
     dry-core (1.0.1)
@@ -234,8 +234,9 @@ GEM
     factory_bot_rails (6.4.3)
       factory_bot (~> 6.4)
       railties (>= 5.0.0)
-    faraday (2.9.2)
+    faraday (2.10.0)
       faraday-net_http (>= 2.0, < 3.2)
+      logger
     faraday-net_http (3.1.0)
       net-http
     ffi (1.17.0)
@@ -288,7 +289,7 @@ GEM
     image_size (3.4.0)
     in_threads (1.6.0)
     io-console (0.7.2)
-    irb (1.13.2)
+    irb (1.14.0)
       rdoc (>= 4.0.0)
       reline (>= 0.4.2)
     jbuilder (2.12.0)
@@ -326,7 +327,7 @@ GEM
     marcel (1.0.4)
     matrix (0.4.2)
     maxminddb (0.1.22)
-    mini_magick (4.13.1)
+    mini_magick (4.13.2)
     mini_mime (1.1.5)
     mini_portile2 (2.8.7)
     mini_racer (0.9.0)
@@ -402,7 +403,7 @@ GEM
       omniauth (~> 2.0)
     openstreetmap-deadlock_retry (1.3.1)
     parallel (1.25.1)
-    parser (3.3.3.0)
+    parser (3.3.4.0)
       ast (~> 2.4.1)
       racc
     pg (1.5.6)
@@ -490,13 +491,13 @@ GEM
     rouge (4.3.0)
     rtlcss (0.2.1)
       mini_racer (>= 0.6.3)
-    rubocop (1.64.1)
+    rubocop (1.65.0)
       json (~> 2.3)
       language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
       parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 1.8, < 3.0)
+      regexp_parser (>= 2.4, < 3.0)
       rexml (>= 3.2.5, < 4.0)
       rubocop-ast (>= 1.31.1, < 2.0)
       ruby-progressbar (~> 1.7)
@@ -588,7 +589,7 @@ GEM
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
     webrick (1.8.1)
-    websocket (1.2.10)
+    websocket (1.2.11)
     websocket-driver (0.7.6)
       websocket-extensions (>= 0.1.0)
     websocket-extensions (0.1.5)
index c0b2f398230b6902b825f87e1289afa86955357e..a0eea302f5a95cd39a2f53b2c6addd77864b582a 100644 (file)
@@ -42,7 +42,8 @@ class Ability
         can [:new, :show, :create, :destroy], :oauth2_authorization
         can [:edit, :update, :destroy], :account
         can [:show], :dashboard
-        can [:new, :create, :edit, :update, :comment, :subscribe, :unsubscribe], DiaryEntry
+        can [:new, :create, :edit, :update, :subscribe, :unsubscribe], DiaryEntry
+        can [:create], DiaryComment
         can [:make_friend, :remove_friend], Friendship
         can [:new, :create, :reply, :show, :inbox, :outbox, :muted, :mark, :unmute, :destroy], Message
         can [:close, :reopen], Note
index d0d1cee62d757aa636a9070aaccc854077481b45..2f35f7b9871f7fa24d94cc1de5ad68c55cf1910b 100644 (file)
Binary files a/app/assets/images/banners/StateoftheMapEurope_2024.png and b/app/assets/images/banners/StateoftheMapEurope_2024.png differ
index 975c57a9b611a87738dc51d0c2da09bac91d9ff5..38a7287a0281cc1e0c849b3b22a6b69216b0036d 100644 (file)
@@ -9,15 +9,12 @@ $(document).ready(function () {
   });
 
   // Add click handler to show OpenID field
-  $("#openid_open_url").click(function (e) {
-    e.preventDefault();
+  $("#openid_open_url").click(function () {
     $("#openid_url").val("http://");
-    $("#login_auth_buttons").hide().removeClass("d-flex");
-    $("#login_openid_url").show();
-    $("#openid_login_button").show();
+    $("#login_auth_buttons").hide();
+    $("#openid_login_form").show();
   });
 
   // Hide OpenID field for now
-  $("#login_openid_url").hide();
-  $("#openid_login_button").hide();
+  $("#openid_login_form").hide();
 });
index 8ffa05c53e41ebcf88b58acd19e77f36950cf334..5c7b2d26e9f1e0fd6eb2d1c53a2bd61ce0481584 100644 (file)
@@ -12,9 +12,9 @@
 //= require leaflet.contextmenu
 //= require index/contextmenu
 //= require index/search
-//= require index/browse
+//= require index/layers/data
 //= require index/export
-//= require index/notes
+//= require index/layers/notes
 //= require index/history
 //= require index/note
 //= require index/new_note
@@ -160,12 +160,12 @@ $(document).ready(function () {
   OSM.initializeContextMenu(map);
 
   if (OSM.STATUS !== "api_offline" && OSM.STATUS !== "database_offline") {
-    OSM.initializeNotes(map);
+    OSM.initializeNotesLayer(map);
     if (params.layers.indexOf(map.noteLayer.options.code) >= 0) {
       map.addLayer(map.noteLayer);
     }
 
-    OSM.initializeBrowse(map);
+    OSM.initializeDataLayer(map);
     if (params.layers.indexOf(map.dataLayer.options.code) >= 0) {
       map.addLayer(map.dataLayer);
     }
similarity index 95%
rename from app/assets/javascripts/index/browse.js
rename to app/assets/javascripts/index/layers/data.js
index 7a761b50036dd30d02c1ec2d2fd0ca16f6b660d0..0a996f0c70c27244e7769f765f4586b425a9879c 100644 (file)
@@ -1,5 +1,5 @@
-OSM.initializeBrowse = function (map) {
-  var browseBounds;
+OSM.initializeDataLayer = function (map) {
+  var loadedBounds;
   var dataLayer = map.dataLayer;
 
   dataLayer.setStyle({
@@ -41,7 +41,7 @@ OSM.initializeBrowse = function (map) {
 
   function updateData() {
     var bounds = map.getBounds();
-    if (!browseBounds || !browseBounds.contains(bounds)) {
+    if (!loadedBounds || !loadedBounds.contains(bounds)) {
       getData();
     }
   }
@@ -96,7 +96,7 @@ OSM.initializeBrowse = function (map) {
         function addFeatures() {
           $("#browse_status").empty();
           dataLayer.addData(features);
-          browseBounds = bounds;
+          loadedBounds = bounds;
         }
 
         function cancelAddFeatures() {
similarity index 98%
rename from app/assets/javascripts/index/notes.js
rename to app/assets/javascripts/index/layers/notes.js
index 5d553e970c4be49aa9a05f0c6984c1e0361429d3..eaa5c36547829691d53b881e0c002267b8bfae6f 100644 (file)
@@ -1,4 +1,4 @@
-OSM.initializeNotes = function (map) {
+OSM.initializeNotesLayer = function (map) {
   var noteLayer = map.noteLayer,
       notes = {};
 
index 05fa76658d55bedeecf412c4a5d1927cb6ce3899..c6223fb9d6228890ea86c6bc6420a14d58f2f9fe 100644 (file)
@@ -181,7 +181,7 @@ class ApplicationController < ActionController::Base
     # TODO: some sort of escaping of problem characters in the message
     response.headers["Error"] = message
 
-    if request.headers["X-Error-Format"]&.casecmp("xml")&.zero?
+    if request.headers["X-Error-Format"]&.casecmp?("xml")
       result = OSM::API.new.xml_doc
       result.root.name = "osmError"
       result.root << (XML::Node.new("status") << "#{Rack::Utils.status_code(status)} #{Rack::Utils::HTTP_STATUS_CODES[status]}")
index 8abf2071b383a4e9842f7b430376b6ce11b47209..a9a7a2641b902bcef70038d186b59eab5b1846d3 100644 (file)
@@ -11,7 +11,7 @@ class DiaryCommentsController < ApplicationController
   authorize_resource
 
   before_action :lookup_user, :only => :index
-  before_action :check_database_writable, :only => [:hide, :unhide]
+  before_action :check_database_writable, :only => [:create, :hide, :unhide]
 
   allow_thirdparty_images :only => :index
 
@@ -26,6 +26,29 @@ class DiaryCommentsController < ApplicationController
     @comments, @newer_comments_id, @older_comments_id = get_page_items(comments, :includes => [:user])
   end
 
+  def create
+    @entry = DiaryEntry.find(params[:id])
+    @comments = @entry.visible_comments
+    @diary_comment = @entry.comments.build(comment_params)
+    @diary_comment.user = current_user
+    if @diary_comment.save
+
+      # Notify current subscribers of the new comment
+      @entry.subscribers.visible.each do |user|
+        UserMailer.diary_comment_notification(@diary_comment, user).deliver_later if current_user != user
+      end
+
+      # Add the commenter to the subscribers if necessary
+      @entry.subscriptions.create(:user => current_user) unless @entry.subscribers.exists?(current_user.id)
+
+      redirect_to diary_entry_path(@entry.user, @entry)
+    else
+      render :action => "new"
+    end
+  rescue ActiveRecord::RecordNotFound
+    render "diary_entries/no_such_entry", :status => :not_found
+  end
+
   def hide
     comment = DiaryComment.find(params[:comment])
     comment.update(:visible => false)
@@ -37,4 +60,12 @@ class DiaryCommentsController < ApplicationController
     comment.update(:visible => true)
     redirect_to diary_entry_path(comment.diary_entry.user, comment.diary_entry)
   end
+
+  private
+
+  ##
+  # return permitted diary comment parameters
+  def comment_params
+    params.require(:diary_comment).permit(:body)
+  end
 end
index bf6e8d0b10fe8390b23f7e71efc7dbf806fbc99a..1a888547db42b53a92de7451072b0cc9c14b6294 100644 (file)
@@ -11,7 +11,7 @@ class DiaryEntriesController < ApplicationController
   authorize_resource
 
   before_action :lookup_user, :only => :show
-  before_action :check_database_writable, :only => [:new, :create, :edit, :update, :comment, :hide, :unhide, :subscribe, :unsubscribe]
+  before_action :check_database_writable, :only => [:new, :create, :edit, :update, :hide, :unhide, :subscribe, :unsubscribe]
 
   allow_thirdparty_images :only => [:new, :create, :edit, :update, :index, :show]
 
@@ -136,29 +136,6 @@ class DiaryEntriesController < ApplicationController
     render :action => "no_such_entry", :status => :not_found
   end
 
-  def comment
-    @entry = DiaryEntry.find(params[:id])
-    @comments = @entry.visible_comments
-    @diary_comment = @entry.comments.build(comment_params)
-    @diary_comment.user = current_user
-    if @diary_comment.save
-
-      # Notify current subscribers of the new comment
-      @entry.subscribers.visible.each do |user|
-        UserMailer.diary_comment_notification(@diary_comment, user).deliver_later if current_user != user
-      end
-
-      # Add the commenter to the subscribers if necessary
-      @entry.subscriptions.create(:user => current_user) unless @entry.subscribers.exists?(current_user.id)
-
-      redirect_to diary_entry_path(@entry.user, @entry)
-    else
-      render :action => "show"
-    end
-  rescue ActiveRecord::RecordNotFound
-    render :action => "no_such_entry", :status => :not_found
-  end
-
   def subscribe
     @diary_entry = DiaryEntry.find(params[:id])
 
@@ -239,12 +216,6 @@ class DiaryEntriesController < ApplicationController
     ActionController::Parameters.new.permit(:title, :body, :language_code, :latitude, :longitude)
   end
 
-  ##
-  # return permitted diary comment parameters
-  def comment_params
-    params.require(:diary_comment).permit(:body)
-  end
-
   ##
   # decide on a location for the diary entry map
   def set_map_location
index 8ec0ab6b70acbb6c6e645e9a25229347ebfa0c9b..43f276efa020a35cfdbb1719155c4a3f5e61c1fe 100644 (file)
@@ -35,15 +35,15 @@ class GeocoderController < ApplicationController
       @results = []
 
       if lat >= -90 && lat <= 90 && lon >= -180 && lon <= 180
-        @results.push(:lat => lat, :lon => lon,
+        @results.push(:lat => params[:lat], :lon => params[:lon],
                       :zoom => params[:zoom],
-                      :name => "#{lat}, #{lon}")
+                      :name => "#{params[:lat]}, #{params[:lon]}")
       end
 
       if lon >= -90 && lon <= 90 && lat >= -180 && lat <= 180
-        @results.push(:lat => lon, :lon => lat,
+        @results.push(:lat => params[:lon], :lon => params[:lat],
                       :zoom => params[:zoom],
-                      :name => "#{lon}, #{lat}")
+                      :name => "#{params[:lon]}, #{params[:lat]}")
       end
 
       if @results.empty?
@@ -61,9 +61,9 @@ class GeocoderController < ApplicationController
         @error = "Longitude #{lon} out of range"
         render :action => "error"
       else
-        @results = [{ :lat => lat, :lon => lon,
+        @results = [{ :lat => params[:lat], :lon => params[:lon],
                       :zoom => params[:zoom],
-                      :name => "#{lat}, #{lon}" }]
+                      :name => "#{params[:lat]}, #{params[:lon]}" }]
 
         render :action => "results"
       end
@@ -206,20 +206,12 @@ class GeocoderController < ApplicationController
     if query = params[:query]
       query.strip!
 
-      if latlon = query.match(/^([NS])\s*(\d{1,3}(\.\d*)?)\W*([EW])\s*(\d{1,3}(\.\d*)?)$/).try(:captures) || # [NSEW] decimal degrees
-                  query.match(/^(\d{1,3}(\.\d*)?)\s*([NS])\W*(\d{1,3}(\.\d*)?)\s*([EW])$/).try(:captures)    # decimal degrees [NSEW]
-        params.merge!(nsew_to_decdeg(latlon)).delete(:query)
+      if latlon = query.match(/^(?<ns>[NS])\s*#{dms_regexp('ns')}\W*(?<ew>[EW])\s*#{dms_regexp('ew')}$/) ||
+                  query.match(/^#{dms_regexp('ns')}\s*(?<ns>[NS])\W*#{dms_regexp('ew')}\s*(?<ew>[EW])$/)
+        params.merge!(to_decdeg(latlon.named_captures.compact)).delete(:query)
 
-      elsif latlon = query.match(/^([NS])\s*(\d{1,3})°?(?:\s*(\d{1,3}(\.\d*)?)?['′]?)?\W*([EW])\s*(\d{1,3})°?(?:\s*(\d{1,3}(\.\d*)?)?['′]?)?$/).try(:captures) || # [NSEW] degrees, decimal minutes
-                     query.match(/^(\d{1,3})°?(?:\s*(\d{1,3}(\.\d*)?)?['′]?)?\s*([NS])\W*(\d{1,3})°?(?:\s*(\d{1,3}(\.\d*)?)?['′]?)?\s*([EW])$/).try(:captures)    # degrees, decimal minutes [NSEW]
-        params.merge!(ddm_to_decdeg(latlon)).delete(:query)
-
-      elsif latlon = query.match(/^([NS])\s*(\d{1,3})°?\s*(\d{1,2})['′]?(?:\s*(\d{1,3}(\.\d*)?)?["″]?)?\W*([EW])\s*(\d{1,3})°?\s*(\d{1,2})['′]?(?:\s*(\d{1,3}(\.\d*)?)?["″]?)?$/).try(:captures) || # [NSEW] degrees, minutes, decimal seconds
-                     query.match(/^(\d{1,3})°?\s*(\d{1,2})['′]?(?:\s*(\d{1,3}(\.\d*)?)?["″]?)?\s*([NS])\W*(\d{1,3})°?\s*(\d{1,2})['′]?(?:\s*(\d{1,3}(\.\d*)?)?["″]?)?\s*([EW])$/).try(:captures)    # degrees, minutes, decimal seconds [NSEW]
-        params.merge!(dms_to_decdeg(latlon)).delete(:query)
-
-      elsif latlon = query.match(%r{^([+-]?\d+(\.\d*)?)(?:\s+|\s*[,/]\s*)([+-]?\d+(\.\d*)?)$})
-        params.merge!(:lat => latlon[1].to_f, :lon => latlon[3].to_f).delete(:query)
+      elsif latlon = query.match(%r{^(?<lat>[+-]?\d+(?:\.\d+)?)(?:\s+|\s*[,/]\s*)(?<lon>[+-]?\d+(?:\.\d+)?)$})
+        params.merge!(:lat => latlon["lat"], :lon => latlon["lon"]).delete(:query)
 
         params[:latlon_digits] = true
       end
@@ -228,39 +220,28 @@ class GeocoderController < ApplicationController
     params.permit(:query, :lat, :lon, :latlon_digits, :zoom, :minlat, :minlon, :maxlat, :maxlon)
   end
 
-  def nsew_to_decdeg(captures)
-    begin
-      Float(captures[0])
-      lat = captures[2].casecmp("s").zero? ? -captures[0].to_f : captures[0].to_f
-      lon = captures[5].casecmp("w").zero? ? -captures[3].to_f : captures[3].to_f
-    rescue StandardError
-      lat = captures[0].casecmp("s").zero? ? -captures[1].to_f : captures[1].to_f
-      lon = captures[3].casecmp("w").zero? ? -captures[4].to_f : captures[4].to_f
-    end
-    { :lat => lat, :lon => lon }
+  def dms_regexp(name_prefix)
+    /
+      (?: (?<#{name_prefix}d>\d{1,3}(?:\.\d+)?)°? ) |
+      (?: (?<#{name_prefix}d>\d{1,3})°?\s*(?<#{name_prefix}m>\d{1,2}(?:\.\d+)?)['′]? ) |
+      (?: (?<#{name_prefix}d>\d{1,3})°?\s*(?<#{name_prefix}m>\d{1,2})['′]?\s*(?<#{name_prefix}s>\d{1,2}(?:\.\d+)?)["″]? )
+    /x
   end
 
-  def ddm_to_decdeg(captures)
-    begin
-      Float(captures[0])
-      lat = captures[3].casecmp("s").zero? ? -(captures[0].to_f + (captures[1].to_f / 60)) : captures[0].to_f + (captures[1].to_f / 60)
-      lon = captures[7].casecmp("w").zero? ? -(captures[4].to_f + (captures[5].to_f / 60)) : captures[4].to_f + (captures[5].to_f / 60)
-    rescue StandardError
-      lat = captures[0].casecmp("s").zero? ? -(captures[1].to_f + (captures[2].to_f / 60)) : captures[1].to_f + (captures[2].to_f / 60)
-      lon = captures[4].casecmp("w").zero? ? -(captures[5].to_f + (captures[6].to_f / 60)) : captures[5].to_f + (captures[6].to_f / 60)
-    end
-    { :lat => lat, :lon => lon }
-  end
+  def to_decdeg(captures)
+    ns = captures.fetch("ns").casecmp?("s") ? -1 : 1
+    nsd = BigDecimal(captures.fetch("nsd", "0"))
+    nsm = BigDecimal(captures.fetch("nsm", "0"))
+    nss = BigDecimal(captures.fetch("nss", "0"))
 
-  def dms_to_decdeg(captures)
-    begin
-      Float(captures[0])
-      lat = captures[4].casecmp("s").zero? ? -(captures[0].to_f + ((captures[1].to_f + (captures[2].to_f / 60)) / 60)) : captures[0].to_f + ((captures[1].to_f + (captures[2].to_f / 60)) / 60)
-      lon = captures[9].casecmp("w").zero? ? -(captures[5].to_f + ((captures[6].to_f + (captures[7].to_f / 60)) / 60)) : captures[5].to_f + ((captures[6].to_f + (captures[7].to_f / 60)) / 60)
-    rescue StandardError
-      lat = captures[0].casecmp("s").zero? ? -(captures[1].to_f + ((captures[2].to_f + (captures[3].to_f / 60)) / 60)) : captures[1].to_f + ((captures[2].to_f + (captures[3].to_f / 60)) / 60)
-      lon = captures[5].casecmp("w").zero? ? -(captures[6].to_f + ((captures[7].to_f + (captures[8].to_f / 60)) / 60)) : captures[6].to_f + ((captures[7].to_f + (captures[8].to_f / 60)) / 60)
-    end
-    { :lat => lat, :lon => lon }
+    ew = captures.fetch("ew").casecmp?("w") ? -1 : 1
+    ewd = BigDecimal(captures.fetch("ewd", "0"))
+    ewm = BigDecimal(captures.fetch("ewm", "0"))
+    ews = BigDecimal(captures.fetch("ews", "0"))
+
+    lat = ns * (nsd + (nsm / 60) + (nss / 3600))
+    lon = ew * (ewd + (ewm / 60) + (ews / 3600))
+
+    { :lat => lat.round(6).to_s("F"), :lon => lon.round(6).to_s("F") }
   end
 end
index d767cb887c4730612c991a68f2a86f17d3796150..734a266db0bcaee9e9061f4d0ce2f4454d04a37b 100644 (file)
@@ -52,10 +52,6 @@ module UserHelper
 
   # External authentication support
 
-  def openid_logo
-    image_tag "openid.svg", :size => "36", :alt => t("application.auth_providers.openid_logo_alt"), :class => "align-text-bottom"
-  end
-
   def auth_button(name, provider, options = {})
     link_to(
       image_tag("#{name}.svg",
@@ -64,7 +60,7 @@ module UserHelper
                 :size => "36"),
       auth_path(options.merge(:provider => provider)),
       :method => :post,
-      :class => "auth_button btn btn-light mx-1 p-2 d-block",
+      :class => "auth_button btn btn-light p-2",
       :title => t("application.auth_providers.#{name}.title")
     )
   end
@@ -77,7 +73,7 @@ module UserHelper
                 :size => "36") + t("application.auth_providers.#{name}.title"),
       auth_path(options.merge(:provider => provider)),
       :method => :post,
-      :class => "auth_button btn btn-outline-secondary fs-6 border rounded py-2 px-4 d-flex justify-content-center align-items-center",
+      :class => "auth_button btn btn-outline-secondary border py-2 px-4 d-flex justify-content-center align-items-center",
       :title => t("application.auth_providers.#{name}.title")
     )
   end
index adeabb18497ff4fd7e0556df56aecd16579a9be1..ec38f7421f47f70101b5bebc44a30279d11258f6 100644 (file)
@@ -73,7 +73,7 @@ class RequestToken < OauthToken
   end
 
   def oob?
-    callback_url.nil? || callback_url.casecmp("oob").zero?
+    callback_url.nil? || callback_url.casecmp?("oob")
   end
 
   def oauth10?
index 66417bca2bde278331daf83e799aa5872524e2b4..96a20fd85740f3266a99b16505606747a65ca83f 100644 (file)
@@ -1,17 +1,18 @@
-<div>
-  <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-100 mb-3" id="login_auth_buttons">
+<% prefered_auth_button_available = false %>
+<% %w[google facebook microsoft github wikipedia].each do |provider| %>
+  <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
+    <% if @preferred_auth_provider == provider %>
+      <% prefered_auth_button_available = true %>
+    <% end %>
+  <% end -%>
+<% end -%>
 
-    <% prefered_auth_button_available = false %>
-    <% %w[google facebook microsoft github wikipedia].each do |provider| %>
-      <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
-        <% if @preferred_auth_provider == provider %>
-          <% prefered_auth_button_available = true %>
-        <% end %>
-      <% end -%>
-    <% end -%>
+<div>
+  <%= tag.div :id => "login_auth_buttons",
+              :class => ["row row-cols-1", { "row-cols-sm-2" => prefered_auth_button_available }, "g-2 mb-3"] do %>
 
     <% if prefered_auth_button_available %>
-      <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-50">
+      <div class="col justify-content-center d-flex align-items-center flex-wrap">
         <% %w[google facebook microsoft github wikipedia].each do |provider| %>
           <% if Settings.key?("#{provider}_auth_id".to_sym) -%>
             <% if @preferred_auth_provider == provider %>
           <% end -%>
         <% end -%>
       </div>
-      <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-50">
-    <% else %>
-      <div class="list-inline justify-content-center d-flex align-items-center flex-wrap w-100">
     <% end %>
 
-      <%= link_to image_tag("openid.svg",
-                            :alt => t("application.auth_providers.openid.alt"),
-                            :size => "36"),
-                  "#",
-                  :id => "openid_open_url",
-                  :title => t("application.auth_providers.openid.title"),
-                  :class => "btn btn-light mx-1 p-2 d-block" %>
+    <div class="col justify-content-center d-flex align-items-center flex-wrap gap-2">
+      <%= button_tag image_tag("openid.svg",
+                               :alt => t(".openid.alt"),
+                               :size => "36"),
+                     :type => "button",
+                     :id => "openid_open_url",
+                     :title => t(".openid.title"),
+                     :class => "btn btn-light p-2" %>
 
       <% %w[google facebook microsoft github wikipedia].each do |provider| %>
         <% unless @preferred_auth_provider == provider %>
         <% end %>
       <% end -%>
     </div>
-  </div>
+  <% end %>
 
   <%# :tabindex starts high to allow rendering at the bottom of the template %>
   <%= form_tag(auth_path(:provider => "openid"), :id => "openid_login_form") do %>
-    <div id="login_openid_url" class="mb-3">
-      <label for="openid_url" class="form-label"><%= t ".openid_html", :logo => openid_logo %></label>
+    <div class="mb-3">
+      <label for="openid_url" class="form-label">
+        <%= image_tag "openid.svg", :size => "36", :alt => "", :class => "align-text-bottom" %>
+        <%= t ".openid_url" %>
+      </label>
       <%= hidden_field_tag("referer", params[:referer], :autocomplete => "off") %>
-      <%= text_field_tag("openid_url", "", :tabindex => 20, :autocomplete => "on", :class => "openid_url form-control") %>
+      <%= text_field_tag("openid_url", "", :tabindex => 20, :autocomplete => "on", :class => "form-control") %>
       <span class="form-text text-body-secondary">(<a href="<%= t "accounts.edit.openid.link" %>" target="_new"><%= t "accounts.edit.openid.link text" %></a>)</span>
     </div>
 
-    <%= submit_tag t(".openid_login_button"), :tabindex => 21, :id => "openid_login_button", :class => "btn btn-primary" %>
+    <%= submit_tag t(".openid_login_button"), :tabindex => 21, :class => "btn btn-primary" %>
   <% end %>
 </div>
index d3e6dbcb3eb1153df59ec35369965f97688cfd62..a65597fefc4b732b7a80e60af4fd0d46ed29228d 100644 (file)
@@ -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-secondary-subtle rounded", :data => { :user => user_data } %>
+        <%= tag.div "", :id => "map", :class => "content_map border border-secondary-subtle rounded z-0", :data => { :user => user_data } %>
       <% end %>
 
       <% friends = @user.friends %>
diff --git a/app/views/diary_comments/new.html.erb b/app/views/diary_comments/new.html.erb
new file mode 100644 (file)
index 0000000..91e6469
--- /dev/null
@@ -0,0 +1,12 @@
+<% content_for :heading do %>
+  <h1><%= t ".heading" %></h1>
+<% end %>
+
+<%= render :partial => "diary_entries/diary_entry_heading", :object => @entry, :as => "diary_entry" %>
+
+<h3><%= t "diary_entries.show.leave_a_comment" %></h3>
+
+<%= bootstrap_form_for @diary_comment, :url => comment_diary_entry_path(@entry.user, @entry) do |f| %>
+  <%= f.richtext_field :body, :cols => 80, :rows => 20, :hide_label => true %>
+  <%= f.primary %>
+<% end %>
index 291e8e33b647955d0d999f6f39b9c551b667638b..a449b0d39c843d6e11267371b6a4eebf3febf0b8 100644 (file)
@@ -5,7 +5,7 @@
 <fieldset>
   <legend><%= t ".location" -%></legend>
 
-  <%= tag.div "", :id => "map", :class => "border border-secondary-subtle rounded mb-3", :data => { :lat => @lat, :lon => @lon, :zoom => @zoom } %>
+  <%= tag.div "", :id => "map", :class => "border border-secondary-subtle rounded mb-3 z-0", :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 1830c9ced6a4cbbfef8e1597d008ded6b8bb7bbc..cfed1c46d401ff469015c6c9357bd7e1ac81b58e 100644 (file)
@@ -34,7 +34,7 @@
   <% if current_user %>
     <h3 id="newcomment"><%= t ".leave_a_comment" %></h3>
 
-    <%= bootstrap_form_for @entry.comments.new, :url => { :action => "comment" } do |f| %>
+    <%= bootstrap_form_for @entry.comments.new, :url => comment_diary_entry_path(@entry.user, @entry) do |f| %>
       <%= f.richtext_field :body, :cols => 80, :rows => 20, :hide_label => true %>
       <%= f.primary %>
     <% end %>
index fea15eb2fa4913628e0f23d57bf14f945e36ea32..ac76b4d2d532711fc0f39e09e27c35b16ee70b1c 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-secondary-subtle rounded" %>
+    <%= tag.div "", :id => "map", :class => "content_map set_location border border-secondary-subtle rounded z-0" %>
   </fieldset>
 
   <%= f.primary t(".save") %>
index 52e01444279f4b1d52ec324483724c932a7f250a..9d05d4af80d44b7bf956824ee163dc66d4db225f 100644 (file)
   </div>
 <% end %>
 
-<div id="login_login">
-  <% if @preferred_auth_provider %>
-    <%= render :partial => "auth_providers" %>
-    <%= render :partial => "shared/section_divider", :locals => { :text => t(".or") } %>
+<% if @preferred_auth_provider %>
+  <%= render :partial => "auth_providers" %>
+  <%= render :partial => "shared/section_divider", :locals => { :text => t(".or") } %>
 <% end %>
 
-  <%= bootstrap_form_tag(:action => "login", :html => { :id => "login_form" }) do |f| %>
-    <%= hidden_field_tag("referer", h(params[:referer]), :autocomplete => "off") %>
+<%= bootstrap_form_tag(:action => "login", :html => { :id => "login_form" }) do |f| %>
+  <%= hidden_field_tag("referer", h(params[:referer]), :autocomplete => "off") %>
 
-    <%= f.text_field :username, :label => t(".email or username"), :autofocus => true, :tabindex => 1, :value => params[:username] %>
+  <%= f.text_field :username, :label => t(".email or username"), :autofocus => true, :tabindex => 1, :value => params[:username] %>
 
-    <div class="d-flex flex-wrap column-gap-3 justify-content-between align-items-baseline mb-2">
-      <%= f.label :password, t(".password") %>
-      <small><%= link_to(t(".lost password link"), user_forgot_password_path) %></small>
-    </div>
-
-    <%= f.password_field :password, :autocomplete => "on", :tabindex => 2, :value => "", :skip_label => true %>
+  <div class="d-flex flex-wrap column-gap-3 justify-content-between align-items-baseline mb-2">
+    <%= f.label :password, t(".password") %>
+    <small><%= link_to(t(".lost password link"), user_forgot_password_path) %></small>
+  </div>
 
-    <%= f.form_group do %>
-      <%= f.check_box :remember_me, { :label => t(".remember"), :tabindex => 3, :checked => (params[:remember_me] == "yes") }, "yes" %>
-    <% end %>
+  <%= f.password_field :password, :autocomplete => "on", :tabindex => 2, :value => "", :skip_label => true %>
 
-    <div class="mb-3">
-      <%= f.primary t(".login_button"), :tabindex => 4 %>
-    </div>
+  <%= f.form_group do %>
+    <%= f.check_box :remember_me, { :label => t(".remember"), :tabindex => 3, :checked => (params[:remember_me] == "yes") }, "yes" %>
   <% end %>
 
-  <% unless @preferred_auth_provider %>
-    <%= render :partial => "shared/section_divider", :locals => { :text => t(".with external") } %>
-    <%= render :partial => "auth_providers" %>
-  <% end %>
-</div>
+  <div class="mb-3">
+    <%= f.primary t(".login_button"), :tabindex => 4 %>
+  </div>
+<% end %>
+
+<% unless @preferred_auth_provider %>
+  <%= render :partial => "shared/section_divider", :locals => { :text => t(".with external") } %>
+  <%= render :partial => "auth_providers" %>
+<% end %>
index a3ef3429b9ff2372e5ba8e456171dd417c4d768f..a5fb08a346fb6006d76a267b6ac92f6d610c5e27 100644 (file)
@@ -12,7 +12,5 @@
   </div>
 <% end %>
 
-<div>
-  <p><strong><%= t "users.new.no_auto_account_create" %></strong></p>
-  <p><%= t "users.new.please_contact_support_html", :support_link => mail_to(Settings.support_email, t("users.new.support")) %></p>
-</div>
+<p><strong><%= t "users.new.no_auto_account_create" %></strong></p>
+<p><%= t "users.new.please_contact_support_html", :support_link => mail_to(Settings.support_email, t("users.new.support")) %></p>
index d2f1d27def20488a82f5698847f6a1437a6ed595..37493418ab0836814c9e3ea0aa38d7c805a1b5a5 100644 (file)
   </div>
 <% end %>
 
-<div>
-  <% if current_user.auth_uid.nil? %>
-    <div class="text-body-secondary fs-6">
-      <p><strong><%= t ".about.header" %></strong> <%= t ".about.paragraph_1" %></p>
-      <p><%= t ".about.paragraph_2" %></p>
-    </div>
+<% if current_user.auth_uid.nil? %>
+  <div class="text-body-secondary fs-6">
+    <p><strong><%= t ".about.header" %></strong> <%= t ".about.paragraph_1" %></p>
+    <p><%= t ".about.paragraph_2" %></p>
+  </div>
 
-    <% unless @preferred_auth_provider.nil? %>
-      <%= render :partial => "auth_providers" %>
-      <%= render :partial => "shared/section_divider", :locals => { :text => t(".or") } %>
-<% end %>
-  <% else %>
-    <h4><%= t ".about.welcome" %></h4>
+  <% unless @preferred_auth_provider.nil? %>
+    <%= render :partial => "auth_providers" %>
+    <%= render :partial => "shared/section_divider", :locals => { :text => t(".or") } %>
   <% end %>
+<% else %>
+  <h4><%= t ".about.welcome" %></h4>
+<% end %>
 
-  <%= bootstrap_form_for current_user, :url => { :action => "create" } do |f| %>
-    <%= hidden_field_tag("referer", h(@referer)) unless @referer.nil? %>
-    <%= hidden_field_tag("email_hmac", h(@email_hmac)) unless @email_hmac.nil? %>
-    <%= f.hidden_field :auth_provider unless current_user.auth_provider.nil? %>
-    <%= f.hidden_field :auth_uid unless current_user.auth_uid.nil? %>
+<%= bootstrap_form_for current_user, :url => { :action => "create" } do |f| %>
+  <%= hidden_field_tag("referer", h(@referer)) unless @referer.nil? %>
+  <%= hidden_field_tag("email_hmac", h(@email_hmac)) unless @email_hmac.nil? %>
+  <%= f.hidden_field :auth_provider unless current_user.auth_provider.nil? %>
+  <%= f.hidden_field :auth_uid unless current_user.auth_uid.nil? %>
 
-    <% if current_user.auth_uid.nil? or @email_hmac.nil? or not current_user.errors[:email].empty? %>
-      <%= f.email_field :email, :help => t(".email_help.html",
-                                           :privacy_policy_link => link_to(t(".email_help.privacy_policy"),
-                                                                           t(".email_help.privacy_policy_url"),
-                                                                           :title => t(".email_help.privacy_policy_title"),
-                                                                           :target => :new)),
-                                :autofocus => true,
-                                :tabindex => 1 %>
-    <% else %>
-      <%= f.hidden_field :email %>
-    <% end %>
+  <% if current_user.auth_uid.nil? or @email_hmac.nil? or not current_user.errors[:email].empty? %>
+    <%= f.email_field :email, :help => t(".email_help.html",
+                                         :privacy_policy_link => link_to(t(".email_help.privacy_policy"),
+                                                                         t(".email_help.privacy_policy_url"),
+                                                                         :title => t(".email_help.privacy_policy_title"),
+                                                                         :target => :new)),
+                              :autofocus => true,
+                              :tabindex => 1 %>
+  <% else %>
+    <%= f.hidden_field :email %>
+  <% end %>
 
-    <%= f.text_field :display_name, :help => t(".display name description"), :tabindex => 2 %>
+  <%= f.text_field :display_name, :help => t(".display name description"), :tabindex => 2 %>
 
-    <% if current_user.auth_uid.nil? %>
-      <div class="row">
-        <div class="col-sm">
-          <%= f.password_field :pass_crypt, :tabindex => 3 %>
-        </div>
-        <div class="col-sm">
-          <%= f.password_field :pass_crypt_confirmation, :tabindex => 4 %>
-        </div>
+  <% if current_user.auth_uid.nil? %>
+    <div class="row">
+      <div class="col-sm">
+        <%= f.password_field :pass_crypt, :tabindex => 3 %>
+      </div>
+      <div class="col-sm">
+        <%= f.password_field :pass_crypt_confirmation, :tabindex => 4 %>
       </div>
-    <% end %>
-
-    <p class="mb-3 text-body-secondary fs-6"><%= t(".by_signing_up.html",
-                                                   :tou_link => link_to(t("layouts.tou"),
-                                                                        "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
-                                                                        :target => :new),
-                                                   :privacy_policy_link => link_to(t(".by_signing_up.privacy_policy"),
-                                                                                   t(".by_signing_up.privacy_policy_url"),
-                                                                                   :title => t(".by_signing_up.privacy_policy_title"),
-                                                                                   :target => :new),
-                                                   :contributor_terms_link => link_to(t(".by_signing_up.contributor_terms"),
-                                                                                      t(".by_signing_up.contributor_terms_url"),
-                                                                                      :target => :new)) %></p>
-    <%= f.form_group do %>
-      <%= f.check_box :consider_pd,
-                      :tabindex => 5,
-                      :label => t(".consider_pd_html",
-                                  :consider_pd_link => link_to(t(".consider_pd"),
-                                                               t(".consider_pd_url"),
-                                                               :target => :new)) %>
-    <% end %>
-
-    <div class="mb-3">
-      <%= submit_tag(t(".continue"), :name => "continue", :id => "continue", :class => "btn btn-primary", :tabindex => 6) %>
     </div>
   <% end %>
 
-  <% if current_user.auth_uid.nil? and @preferred_auth_provider.nil? %>
-    <%= render :partial => "shared/section_divider", :locals => { :text => t(".use external auth") } %>
-    <%= render :partial => "auth_providers" %>
+  <p class="mb-3 text-body-secondary fs-6"><%= t(".by_signing_up.html",
+                                                 :tou_link => link_to(t("layouts.tou"),
+                                                                      "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
+                                                                      :target => :new),
+                                                 :privacy_policy_link => link_to(t(".by_signing_up.privacy_policy"),
+                                                                                 t(".by_signing_up.privacy_policy_url"),
+                                                                                 :title => t(".by_signing_up.privacy_policy_title"),
+                                                                                 :target => :new),
+                                                 :contributor_terms_link => link_to(t(".by_signing_up.contributor_terms"),
+                                                                                    t(".by_signing_up.contributor_terms_url"),
+                                                                                    :target => :new)) %></p>
+  <%= f.form_group do %>
+    <%= f.check_box :consider_pd,
+                    :tabindex => 5,
+                    :label => t(".consider_pd_html",
+                                :consider_pd_link => link_to(t(".consider_pd"),
+                                                             t(".consider_pd_url"),
+                                                             :target => :new)) %>
   <% end %>
-</div>
+
+  <div class="mb-3">
+    <%= submit_tag(t(".continue"), :name => "continue", :id => "continue", :class => "btn btn-primary", :tabindex => 6) %>
+  </div>
+<% end %>
+
+<% if current_user.auth_uid.nil? and @preferred_auth_provider.nil? %>
+  <%= render :partial => "shared/section_divider", :locals => { :text => t(".use external auth") } %>
+  <%= render :partial => "auth_providers" %>
+<% end %>
index dc3c174df9ece949384ca7ecc4c0c91f1f713b94..1f2056194af646f0d373dce1ce49275956f5bb6d 100644 (file)
@@ -11,7 +11,7 @@ donate_2023:
 sotmeu_2024:
   id: sotmeu_2024
   alt: State of the Map Europe 2024
-  link: https://stateofthemap.eu/
+  link: https://openstreetmap.org.pl/2024/sotm-eu-2024-community-tickets-70/
   img: banners/StateoftheMapEurope_2024.png
   enddate: 2024-jul-18
 sotm_2024:
index 41ea119b1944033fc9a3082410015a86d461f0d9..9e76dbf2b20dcd1bad7a1d3efd24f69404e8991a 100644 (file)
@@ -1786,7 +1786,6 @@ af:
       oauth1_settings: OAuth 1 instellings
       oauth2_applications: OAuth 2 programme
     auth_providers:
-      openid_logo_alt: Meld aan met 'n OpenID
       openid:
         title: Meld aan met OpenID
         alt: Meld aan met 'n OpenID-URL
index a46f6d18ed0dc51355f2bda9e46f7027e5afaab6..d8cc0a6f558e20f48a8dc669da6dba7c488ffc85 100644 (file)
@@ -2359,7 +2359,6 @@ ar:
     settings_menu:
       account_settings: إعدادات الحساب
     auth_providers:
-      openid_logo_alt: تسجيل الدخول بOpenID
       openid:
         title: تسجيل الدخول بOpenID
         alt: تسجيل الدخول باستخدام مسار OpenID
index b3884f3d452299a373549b49d54c8a7d444870b7..1a8715510564b1e74b75b0e5d11fd2e6d8c4d640 100644 (file)
@@ -1822,7 +1822,6 @@ ast:
         coneuta pela interfaz web pa ver los Términos de Collaboración. Nun fai falta
         aceutalos, pero debes conocelos.
     auth_providers:
-      openid_logo_alt: Coneutar con una OpenID
       openid:
         title: Aniciar sesión con OpenID
         alt: Aniciar sesión con una URL d'OpenID
index 5928cdae5ab356d705931c5f3628defcf19a4185..7dc5da35f91c0742de2591e289a65fb879599759 100644 (file)
@@ -23,7 +23,7 @@ az:
       prompt: Fayl seçin
     submit:
       diary_comment:
-        create: Qeyd et
+        create: Göndər
       diary_entry:
         create: Yayımla
         update: Yenilə
@@ -115,13 +115,13 @@ az:
         details: Çətinlik haqqında daha ətraflı danışın (vacib)
       user:
         email: E-poçt
-        new_email: 'Yeni E-Poçt Ünvanı:'
+        new_email: Yeni E-Poçt Ünvanı
         active: Aktivdir
         display_name: 'Gorüntülənən ad:'
-        description: İzah
-        home_lat: 'En dairəsi:'
-        home_lon: 'Uzunluq dairəsi:'
-        languages: Dillər
+        description: Profil Açıqlaması
+        home_lat: En dairəsi
+        home_lon: Uzunluq dairəsi
+        languages: Üstünlük Verilən Dillər
         pass_crypt: Parol
         pass_crypt_confirmation: Parolu təsdiqlə
     help:
@@ -129,6 +129,9 @@ az:
         tagstring: Vergül ilə ayrılmış
   datetime:
     distance_in_words_ago:
+      about_x_hours:
+        one: təxminən %{count} saat əvvəl
+        other: təxminən %{count} saat əvvəl
       half_a_minute: yarım dəqiqə əvvəl
   editor:
     default: Susmaya görə (hal-hazırda %{name})
@@ -137,7 +140,7 @@ az:
       description: iD (brauzerdaxili redaktə)
     remote:
       name: Uzaqdan idarəetmə
-      description: Uzaqdan idarəetmə (JOSM və ya Merkaartor)
+      description: Uzaqdan idarəetmə (JOSM, Potlatch, Merkaartor)
   auth:
     providers:
       none: Heç biri
@@ -154,7 +157,7 @@ az:
         full: Tam qeydlər
   accounts:
     edit:
-      current email address: 'Hazırki E-Poçt Ünvanı:'
+      current email address: Hazırki E-Poçt Ünvanı
       openid:
         link text: bu nədir?
       public editing:
@@ -185,7 +188,7 @@ az:
       entry_html: Əlaqəsi %{relation_name}
       entry_role_html: Əlaqəsi %{relation_name} (%{relation_role} kimi)
     not_found:
-      sorry: Təəsüf ki, %{id} identifikatorlu %{type} tapılmadı.
+      sorry: Təəsüf ki, %{id} %{type} tapılmadı.
       type:
         node: nöqtə
         way: xətt
@@ -213,7 +216,7 @@ az:
       load_data: Məlumatları yüklənməsi
       loading: Yüklənir…
     tag_details:
-      tags: 'Teqlər:'
+      tags: Teqlər
       wiki_link:
         key: '%{key} teqini təsvir edən viki səhifəsi'
         tag: '%{key}=%{value} teqini təsvir edən viki səhifəsi'
@@ -229,7 +232,7 @@ az:
       view_changeset_details: Dəyişikliklər dəstinin ətraflı görüntüsü
     changesets:
       id: ID
-      saved_at: Başa çat
+      saved_at: Saxlanıl
       user: İstifadəçi
       comment: Şərh
       area: Ərazi
@@ -251,11 +254,11 @@ az:
     paging_nav:
       nodes: (%{count}) nöqtə
     timeout:
-      sorry: Bağışlayın, tələb etdiyiniz dəyişikliklər dəstinin siyahısı, çıxarıla
-        bilmək üçün cox böyükdür.
+      sorry: Üzr istəyirik, sorğu etdiyiniz dəyişikliklərin siyahısını əldə etmək
+        çox uzun çəkdi.
   dashboards:
     contact:
-      latest_edit_html: 'Son redaktə %{ago}:'
+      latest_edit_html: 'Son redaktə (%{ago}):'
     popup:
       your location: Yerləşdiyin yer
       friend: Dost
@@ -263,8 +266,8 @@ az:
     new:
       title: Yeni Gündəlik Yazısı
     form:
-      location: 'Yerləşdiyi yer:'
-      use_map_link: xəritə üzərində göstər
+      location: Məkan
+      use_map_link: Xəritədən istifadə et
     index:
       title: İstifadəçi gündəlikləri
       title_friends: Dostların gündəlikləri
@@ -274,21 +277,21 @@ az:
       new: Yeni Gündəlik Yazısı
       new_title: İstifadəçi gündəliyinizə yeni yazı əlavə etmək
       no_entries: Gundəlikdə yazı yoxdur
-      recent_entries: Yaxın müddətdəki gündəlik yazıları
+      recent_entries: Ən son gündəlik qeydləri
       older_entries: Köhnə yazılar
       newer_entries: Yeni yazılar
     edit:
-      title: Gündəlik yazısıni redaktə etmək
+      title: Gündəlik yazısıni redaktə et
       marker_text: Gundəlik yazısının yazıldığı yer
     show:
-      title: İstifadəçi %{user} gündəliyi | %{title}
-      user_title: İstifadəçi %{user} gündəliyi
+      title: '%{user} istifadəçisinin gündəliyi | %{title}'
+      user_title: '%{user} istifadəçisinin gündəliyi'
       leave_a_comment: Şərh yaz
       login_to_leave_a_comment_html: Şərh yazmaq üçün %{login_link}
       login: Daxil ol
     no_such_entry:
       title: Belə bir gündəlik yazısı mövcud deyil
-      heading: 'Yazı mövcud deyil id: %{id}'
+      heading: 'Bu nömrəyə sahib yazı mövcud deyil: %{id}'
     diary_entry:
       posted_by_html: '%{link_user} tərəfindən %{created} yazılıb, %{language_link}
         dilində.'
@@ -1009,11 +1012,10 @@ az:
       private: MƏXFİ
   application:
     auth_providers:
-      openid_logo_alt: OpenID ilə hesabınıza daxil olun
       microsoft:
         title: Microsoft ilə daxil olun
       github:
-        alt: GitHub Hesabı ilə daxil olun
+        alt: GitHub loqosu
       wikipedia:
         alt: Vikipediya hesabı ilə daxil olun
   oauth_clients:
index e9d926b7caa8b2e807307927528fd97542e6ac51..87af26366df5f60471a04c2771a26646e1def3fd 100644 (file)
@@ -1282,8 +1282,6 @@ be-Tarask:
       need_to_see_terms: Ваш доступ да API часова прыпынены. Калі ласка, увайдзіце
         ў ўэб-інтэрфэйс, каб каб паглядзець умовы супрацоўніцтва. Вам не абавязкова
         пагаджацца зь імі, але неабходна зь імі азнаёміцца.
-    auth_providers:
-      openid_logo_alt: Увайсьці ў сыстэму з дапамогай OpenID
   oauth:
     authorize:
       request_access_html: Дастасаваньне %{app_name} патрабуе доступ да Вашага рахунку,
index 2c62bea7f30163e3aea0faae47071bef0d88de03..5bf21b9c7958179aa6c249b940e21bc6ac11886f 100644 (file)
@@ -2438,7 +2438,6 @@ be:
         ў вэб-інтэрфейс для прагляду ўмоў удзелу. Вы не абавязаны пагаджацца, але
         вам варта праглядзець іх.
     auth_providers:
-      openid_logo_alt: Увайсці з дапамогай OpenID
       openid:
         title: Уваход праз OpenID
         alt: Уваход праз OpenID URL
index 1f9b584e460192192c2b7d1b7db6836dea2c4da7..9141fcb0bcfc03269a28ba21eb67acfb81625b64 100644 (file)
@@ -1265,6 +1265,8 @@ bg:
     tou: Условия за ползване
     osm_offline: Базата на данни на  OpenStreetMap в момента е изключена докато се
       извършва необходима поддръжка.
+    osm_read_only: В момента базата данни на OpenStreetMap е в режим "само за четене",
+      тъй като се извършва техническа поддръжка на базата данни.
     help: Помощ
     about: За проекта
     copyright: Авторски права
@@ -1861,7 +1863,6 @@ bg:
     require_admin:
       not_an_admin: Трябва да сте админ за да извършите това действие
     auth_providers:
-      openid_logo_alt: Влизане с OpenID
       openid:
         title: Влизане с OpenID
         alt: Влизане с адрес на OpenID
index fcf85b86c217671aa94f377659c89b239f889433..d0dd7c67dd6aa3a14bf4495ae67f557ac0e2df62 100644 (file)
@@ -1822,20 +1822,23 @@ bn:
     settings_menu:
       account_settings: অ্যাকাউন্ট সেটিংস
     auth_providers:
+      openid:
+        alt: ওপেনআইডি লোগো
       google:
         title: গুগল দিয়ে প্রবেশ
+        alt: গুগল লোগো
       facebook:
         title: ফেসবুক দিয়ে প্রবেশ
-        alt: à¦«à§\87সবà§\81à¦\95 à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¦à¦¿à¦¯à¦¼à§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\81ন
+        alt: à¦«à§\87সবà§\81à¦\95 à¦²à§\8bà¦\97à§\8b
       microsoft:
         title: মাইক্রোসফট দিয়ে লগইন করুন
-        alt: à¦\8fà¦\95à¦\9fি à¦®à¦¾à¦\87à¦\95à§\8dরà§\8bসফà¦\9f à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¦à¦¿à¦¯à¦¼à§\87 à¦²à¦\97à¦\87ন à¦\95রà§\81ন
+        alt: à¦®à¦¾à¦\87à¦\95à§\8dরà§\8bসফà¦\9f à¦²à§\8bà¦\97à§\8b
       github:
         title: গিটহাব দিয়ে প্রবেশ করুন
-        alt: à¦\8fà¦\95à¦\9fি à¦\97িà¦\9fহাব à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¦à¦¿à¦¯à¦¼à§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\81ন
+        alt: à¦\97িà¦\9fহাব à¦²à§\8bà¦\97à§\8b
       wikipedia:
         title: উইকিপিডিয়া দিয়ে প্রবেশ করুন
-        alt: à¦\89à¦\87à¦\95িপিডিয়া à¦\85à§\8dযাà¦\95াà¦\89নà§\8dà¦\9f à¦¦à¦¿à¦¯à¦¼à§\87 à¦ªà§\8dরবà§\87শ à¦\95রà§\81ন
+        alt: à¦\89à¦\87à¦\95িপিডিয়া à¦²à§\8bà¦\97à§\8b
   oauth:
     authorize:
       allow_write_api: মানচিত্রটি পরিবর্তন করুন
@@ -1883,6 +1886,8 @@ bn:
       tou: ব্যবহারের শর্তাবলী
       continue: নিবন্ধন করুন
       terms accepted: নতুন অবদানকারী শর্তাবলী গ্রহণ করার জন্য ধন্যবাদ!
+      email_help:
+        privacy_policy: গোপনীয়তার নীতি
       or: বা
     terms:
       title: শর্তাবলী
index 660bf209d6868c25e402572008c06fbfbddd0c9b..96bf2e421a3f11091c58a91db1aa1266818dc7ec 100644 (file)
@@ -2481,7 +2481,6 @@ br:
       oauth2_authorizations: Aotreoù OAuth 2
       muted_users: Implijerien kuzhet
     auth_providers:
-      openid_logo_alt: Kevreañ gant un OpenID
       openid_login_button: Kenderc'hel
       openid:
         title: Kevreañ gant OpenID
index 2f1b7e928de611bb4a93c2ae4177e4e3a3b6500e..9eda7a4e87cc68e2842e53dbd1bea8af0cfc90de 100644 (file)
@@ -1294,8 +1294,6 @@ bs:
       need_to_see_terms: Vaš pristup API-ju je privremeno suspendovan. Molimo da se
         prijavite na web upravljačku ploču da pogledate Uslove za doprinosioce. Ne
         morate se složiti, ali ih morate pogledati.
-    auth_providers:
-      openid_logo_alt: Prijavite se sa OtvorenimID
   oauth:
     authorize:
       request_access_html: 'Aplikacija %{app_name} zahtjeva pristup Vašem korisničkom
index 6d277ea0f2f528ecba5f759f0b95f759f8f9dafa..6cd0f05c2983db47f51dfac04d77e2353f16ee95 100644 (file)
@@ -2528,7 +2528,6 @@ ca:
       oauth2_authorizations: Autoritzacions OAuth 2
       muted_users: Usuaris silenciats
     auth_providers:
-      openid_logo_alt: Inicia sessió amb un compte OpenID
       openid:
         title: Inicia sessió amb un compte OpenID
         alt: Inicia sessió amb un URL d'OpenID
index 10092ac1b2fd7da2687b7f9c3118508379593f8e..e4ef57af630479f2cb13ba89b27a56bc3a2d2bfc 100644 (file)
@@ -4,6 +4,7 @@
 # Author: McDutchie
 # Author: Sasan700
 # Author: Исмаил Садуев
+# Author: Робин
 # Author: Умар
 ---
 ce:
@@ -11,9 +12,11 @@ ce:
     formats:
       friendly: '%e %B %Y %H:%M'
   helpers:
+    file:
+      prompt: Харжа файл
     submit:
       diary_comment:
-        create: Ӏалашдан
+        create: Коммент
       diary_entry:
         create: Ӏалашйан
         update: Карлайаккха
@@ -23,7 +26,10 @@ ce:
         create: ДӀадахьийта
       client_application:
         create: ДӀайаздала
-        update: Хийца
+        update: Карлайаккха
+      oauth2_application:
+        create: Регистраци йан
+        update: Карлайаккха
       redaction:
         create: Нисдар кхоллар
         update: Хийцам Ӏалашбе
@@ -38,6 +44,10 @@ ce:
       messages:
         invalid_email_address: электронан поштан адресе тера дац
         email_address_not_routable: неъбиллина бац
+        display_name_is_user_n: user_n хила йиш йац, наггахь n хьан лелоша ID йацахь
+      models:
+        user_mute:
+          is_already_muted: хӀинцале а дӀайаккхина
     models:
       acl: ТӀецакхачаран бахьанин могӀа
       changeset: Нисдарш
@@ -46,6 +56,7 @@ ce:
       diary_comment: Коммент
       diary_entry: Къамелан дӀайаздар
       friend: ДоттагӀ
+      issue: Хаттар
       language: Мотт
       message: Хаам
       node: ТӀадам
@@ -61,6 +72,7 @@ ce:
       relation: Хилар
       relation_member: Хиларан декъашхо
       relation_tag: Хиларан тег
+      report: хаам
       session: Сесси
       trace: Трек
       tracepoint: Трекан тӀадам
@@ -72,56 +84,105 @@ ce:
       way_node: Сизан тӀадам
       way_tag: Сизан тег
     attributes:
+      client_application:
+        name: ЦIе (схьадоьхург)
+        url: Приложенена URL (схьадоьхург)
+        callback_url: URL йухакхайкха
+        support_url: URL гӀо дар
+        allow_read_prefs: йеша лелорчера лаамаш
+        allow_write_prefs: хийца лелорчера лаамаш
+        allow_write_diary: |-
+          тептар тIехь йаздарш кхолла а, комментареш йа а,
+           доттагӀий лаха
+        allow_write_api: карта нисдар
+        allow_read_gpx: долахь йолу GPS-трекаш йеша
+        allow_write_gpx: GPS-трекаш чуйаха
+        allow_write_notes: заметкаш нисайар
       diary_comment:
         body: Текст
       diary_entry:
         user: Декъашхо
         title: Тема
+        body: Текст
         latitude: Шоралла
         longitude: Дохалла
         language_code: Мотт
+      doorkeeper/application:
+        name: ЦӀе
+        redirect_uri: URI-ш хийца
+        confidential: Къайле приложени?
+        scopes: Магор
       friend:
         user: Декъашхо
         friend: ДоттагӀ
       trace:
         user: Декъашхо
         visible: Гуш хилар
-        name: Ð¦Ӏе
+        name: Ð¤Ð°Ð¹Ð»Ð°Ð½ Ñ\86Ӏе
         size: Барам
         latitude: Шоралла
         longitude: Дохалла
         public: Массарна
         description: Цуьнах лаьцна
-        visibility: 'Гуш хилар:'
+        gpx_file: GPX файл чуяккха
+        visibility: Гуш хилар
+        tagstring: Тегаш
       message:
         sender: Баийтинарг
         title: Тема
         body: Текст
         recipient: Кхаьчнарг
+      redaction:
+        title: Корта
+        description: Цуьнах лаьцна
+      report:
+        category: Хьай хаамина бахьан гайта
+        details: Дехар ду, кхин а цхьацца дерг дийца проблемех лаьцна (оьшуш ду).
       user:
+        auth_provider: Аутентификацин провайдер
+        auth_uid: Аутентификаци
         email: Электронан пошт
-        new_email: 'Электронан поштан керла адрес:'
+        new_email: Электронан поштан керла адрес
         active: Жигара
         display_name: Гуш йолу цӀе
         description: Цуьнах лаьцна
-        home_lat: 'Шоралла:'
-        home_lon: 'Дохалла:'
-        languages: Меттанаш
+        home_lat: Шоралла
+        home_lon: Дохалла
+        languages: ГӀоле хета меттанаш
+        preferred_editor: ГӀоле хеташ волу редактор
         pass_crypt: Пароль
+        pass_crypt_confirmation: Бакъйе пароль
+    help:
+      doorkeeper/application:
+        confidential: |-
+          Приложени лелор йу клиентан къайле ларъян йиш йолчохь
+           (долахь йолу мобилан программаш а, цхьана агӀонан программаш а къайлаха йац)
+        redirect_uri: Цхьа могӀа лелабе URI тIехь
+      trace:
+        tagstring: цӀоьмалгца хадийна
+      user_block:
+        reason: Юзер дӀакъовларан бахьана. Дехар ду, хьайн ницкъ ма-кхоччу тийна а,
+          хьекъале а хила. Хьайн ницкъ ма-кхоччу пайдаэцархочун алсам хаам ло и дIа
+          хунда ваьккхан аьла и хIума нахана гуш хир дуйла дагахь а долуш. Диц ма
+          де, массо а пайдаэцархо кхеташ вац йукъараллин жаргонех, цундела дилитантан
+          терминаш лело хьажа.
+        needs_view: Бакъо йал оьший юзерин система чу вала, блок дӀаяккхале хьалха?
+      user:
+        new_email: (гайтан хир йац)
   datetime:
     distance_in_words_ago:
       about_x_hours:
-        one: герг сахьт хьалха
-        other: '%{count} Ð³ÐµÑ\80г сахьт хьалха'
+        one: '%{count} сахьт герг'
+        other: '%{count} Ð¼Ð°Ñ\81еÑ\85 сахьт хьалха'
       about_x_months:
-        one: герг бутт хьалха
-        other: '%{count} Ð³ÐµÑ\80г Ð±Ñ\83Ñ\82Ñ\82 Ñ\85Ñ\8cалÑ\85а'
+        one: '%{count} герг бутт хьалха'
+        other: '%{count} Ð¼Ð°Ñ\81Ñ\81еÑ\85 Ð±Ñ\83Ñ\82Ñ\82 Ñ\85Ñ\8cалÑ\85Ñ\8cа'
       about_x_years:
-        one: герг шо хьалха
-        other: '%{count} Ð³ÐµÑ\80г шо хьалха'
+        one: '%{count} герг шо хьалха'
+        other: '%{count} Ð¼ÐµÑ\81еÑ\85 шо хьалха'
       almost_x_years:
-        one: герг шо хьалха
-        other: '%{count} Ð³ÐµÑ\80г шо хьалха'
+        one: '%{count} шо герг хьалха'
+        other: '%{count} Ð¼Ð°Ñ\81еÑ\85 шо хьалха'
       half_a_minute: ахминот хьалхьа
       less_than_x_seconds:
         one: секундал кӀезга хьалха
@@ -135,22 +196,16 @@ ce:
       x_seconds:
         one: 1 секунд хьалха
         other: '%{count} секунд хьалха'
-      x_minutes:
-        one: 1 минот хьалха
-        few: '%{count} минот хьалха'
-        other: '%{count} минот хьалха'
+      x_minutes: '{{PLURAL|one=%{count}1 минот хьалха|few=%{count} минот хьалха|many=%{count}'
       x_days:
-        one: 1 де хьалха
-        few: '%{count} де хьалха'
-        other: '%{count} де хьалха'
+        one: '%{count} де хьалха'
+        other: '%{count} масех де хьалха'
       x_months:
-        one: 1 бутт хьалха
-        few: '%{count} бутт хьалха'
-        other: '%{count} бутт хьалха'
+        one: '%{count} бутт хьалха'
+        other: '%{count} масех бутт хьалха'
       x_years:
-        one: 1 шо хьалха
-        few: '%{count} шо хьалха'
-        other: '%{count} шо хьалха'
+        one: '%{count} шо хьалха'
+        other: '%{count} масех шо хьалха'
   editor:
     default: Ӏадйитаран кеп (хӀоттина %{name})
     id:
@@ -159,39 +214,131 @@ ce:
     remote:
       name: Генара лелор
       description: Генара лелор (JOSM йа Merkaartor)
+  auth:
+    providers:
+      none: Йаьсса
+      google: Google
+      facebook: Facebook
+      github: GitHub
+      wikipedia: Википеди
   api:
     notes:
       comment:
         opened_at_html: Кхоьллина %{when}
-        opened_at_by_html: Кхоьллина %{when} хьалха %{user}
-        commented_at_html: Карлаяьккхина %{when} хьалха
-        commented_at_by_html: Карлаяьккхина %{when} хьалха %{user}
-        closed_at_html: Кичйина %{when} хьалха
-        closed_at_by_html: Кечйина %{when} хьалха %{user}
-        reopened_at_html: Ð\99Ñ\83Ñ\85а Ð¹ÐµÐ»Ð»Ð¸Ð½Ð° %{when} Ñ\85Ñ\8cалÑ\85а
-        reopened_at_by_html: Йуха йиллина %{when} хьалха %{user}
+        opened_at_by_html: Кхоьллина %{when} пайдаэцархочо %{user}
+        commented_at_html: Карлаяьккхина %{when}
+        commented_at_by_html: Карлаяьккхина %{when} пайдаэцархочо %{user}
+        closed_at_html: Кичйина %{when}
+        closed_at_by_html: Кечйина %{when} пайдаэцархочо %{user}
+        reopened_at_html: Ð\99Ñ\83Ñ\85а Ð¹Ð¸Ð»Ð»Ð¸Ð½Ð° %{when}
+        reopened_at_by_html: Йуха йиллина %{when} пайдаэцархочо %{user}
       rss:
         title: OpenStreetMap билгалонаш
+        description_all: Къепйоза кхоьллина а, комментареш йина йа дӀакъевлина тептарш
+        description_area: Тептари къепйоза, кхоьллина а, комментареш йина йа дӀакъевлина
+          шуна меттигера [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
+        description_item: RSS-Ӏовраш билгалонаш %{id}
+        opened: керла билгалдаккхар (герга %{place})
+        commented: керла комментари (герга %{place})
+        closed: къоьвлина билгалдаккхар (герга %{place})
+        reopened: йуха хьайилин билгалдаккхар (герга %{place})
       entry:
         comment: Коммент
         full: Йуьззина текст
+  account:
+    deletions:
+      show:
+        title: Са аккаунт дӀайаккхар
+        warning: Терго йе! Аккаунт дӀаяккхаран процесс тӀаьххьара йу, йухаерзо йиш
+          яц.
+        delete_account: Аккаунт дӀайаккхар
+        delete_introduction: 'Хьай OpenStreetMap аккаунт дӀадаккха йиш йу лахахь йолчу
+          нуьйдица. Дехар ду, тидам бе лахахь долчу детальшна:'
+        delete_profile: Хьан профилан информаци, аватар а, йаздар а, цӀахь волу меттиг
+          а йолуш, дӀайаккхина хир ю.
+        delete_display_name: Хьан гойтуш йолу цӀе дӀаяьккхина хир ю, кхечу аккаунташа
+          юха лело йиш ю.
+        retain_caveats: 'Делахь а, хьох лаьцна цхьаболу хаамаш латтор бу OpenStreetMap-ехь,
+          хьан аккаунт дӀаяьккхинчул тӀаьхьа а:'
+        retain_edits: Картан базехь ахь дина хийцамаш, нагахь санна уьш белахь, ларбийр
+          бу.
+        retain_traces: Ахь чуйиллина лараш, нагахь санна уьш елахь, ларйийр йу.
+        retain_diary_entries: Хьан дневникан йаззамаш а, дневникан комментареш а,
+          нагахь санна уьш елахь, ларйийр ю, амма гуш ца хилийта къайлаяьхна хир йу.
+        retain_notes: Хьан картан тептарш а, цун тIе комментареш а, нагахь санна уьш
+          елахь, ларйийр ю, амма гуш ца хилийта къайлайахна хир ю.
+        retain_changeset_discussions: Хьан хийцамийн дискуссеш, нагахь санна уьш елахь,
+          ларйийр ю.
+        retain_email: Хьан почтан адрес лардийр ду.
+        recent_editing_html: Ахь дукха хан йоццуш хийцамаш бина хила дер, хьан аккаунт
+          карарчу хенахь дӀайаккха йиш яц. ДӀайаккха йиш хир йу цхьана %{time}.
+        confirm_delete: Бакъалла лаьий хӀуна?
+        cancel: Цаоьшу
   accounts:
     edit:
-      current email address: 'Карара электронан поштан адрес:'
+      title: Аккаунт хийца
+      my settings: Сан нисдаран гӀирс
+      current email address: Карара электронан поштан адрес
+      external auth: Арахьара аутентификаци
       openid:
         link text: хӀун йу хӀара?
+      public editing:
+        heading: Йукъара нисайар
+        enabled: ДӀахӀоттийна. Аноним йац, нисайа йиш ю.
+        enabled link text: хӀун йу хӀара?
+        disabled: ДӀасакъаьстина а, нисайа йиш йоцуш а, хьалха дина массо а хийцамаш
+          анониман ду.
+        disabled link text: Соьга хьунда ца йало нийсарш?
       contributor terms:
+        heading: Дакъалацарна хьоьлаш
+        agreed: Хьо реза хила керлачу дакъалацаран низаман.
+        not yet agreed: Хьо хинца а, реза ца хила керлачу дакъалацаран низаман.
+        review link text: Дехар ду хьайна аттачу хенахь хӀокху ссылки тӀе хьажа, керла
+          дакъалацаран Низам талла а, тӀеэца а.
+        agreed_with_pd: Иштта ахь дӀакхайкхийна, хьайн хийцамаш Къоман Кхиам лоруш
+          йу аьлла.
         link text: хӀун йу хӀара?
       save changes button: Хийцамаш дӀаӀалашбан
+      delete_account: Аккаунт дӀайаккхар...
+    go_public:
+      heading: Йукъара нисайар
+      currently_not_public: Карарчу хенахь хьан хийцамаш анониман бу, наха хьуна хаамаш
+        дӀакхачо а, хьан меттиг ган а йиш яц. Ахь хийцинарг гайта а, сайтехула хьайца
+        зӀене бовла а, лахахь йолчу нуьйда тӀе Ӏоттало.
+      only_public_can_edit: 0.6 API хийцаелчахьана, йукъараллин пайдаэцархойн бен
+        йиш яц картан хаамаш хийца.
+      find_out_why: хӀунда ду хаа
+      email_not_revealed: Хьан электронан почтан адрес гучудер дац, иза публични  гIоттадахь.
+      not_reversible: И гӀуллакх йухадерзо йиш яц, массо а керла пайдаэцархой хӀинца
+        публични лоруш бу.
+      make_edits_public_button: Сан массо а хийцамаш нахана гойтуш дӀахӀиттабе
+    update:
+      success_confirm_needed: Декъашхочун информаци кхиамца карлаяьккхина. Хьайн электронан
+        почтан чу хьажа, хьай керла адрес тӀечӀагӀда.
+      success: Декъашхочунахь лаьцна информаци кхиамца карлайаькхна.
+    destroy:
+      success: Аккаунт дӀайаккхина.
   browse:
+    deleted_ago_by_html: ДӀадаьккхина %{time_ago} декъашхочо %{user}
+    edited_ago_by_html: Нисайина %{time_ago} декъашхочо %{user}
     version: Верси
+    redacted_version: Нисайина верси
     in_changeset: Нисдарш
     anonymous: аноним
     no_comment: (коммент йац)
     part_of: Дакъалоцу цу
+    part_of_relations:
+      one: '%{count} йукъаметтиг '
+      other: '%{count} йукъаметтигаш'
+    part_of_ways:
+      one: '%{count} сиза'
+      other: '%{count} сизнаш'
     download_xml: Схьаэца XML
     view_history: Хьажа истори
+    view_unredacted_history: Хьажа нисайаза историга
     view_details: Мадарра
+    view_redacted_data: Хьажа нисайина историга
+    view_redaction_message: Хьажа нийсабина хаамига
     location: 'Географин йолу меттиг:'
     node:
       title_html: 'ТӀадам: %{name}'
@@ -200,6 +347,9 @@ ce:
       title_html: 'Сиз: %{name}'
       history_title_html: 'Сизан истори: %{name}'
       nodes: ТӀадам
+      nodes_count:
+        one: '%{count} шад'
+        other: '%{count} шаднаш'
       also_part_of_html:
         one: сиза чохь йу %{related_ways}
         other: сизийн чохь йу %{related_ways}
@@ -207,6 +357,9 @@ ce:
       title_html: 'Хилар: %{name}'
       history_title_html: 'Хиларан истори: %{name}'
       members: Декъашхой
+      members_count:
+        one: '%{count} декъашхо '
+        other: '%{count} декъашхоша'
     relation_member:
       entry_role_html: '%{type} %{name} ролехь %{role}'
       type:
@@ -217,6 +370,7 @@ ce:
       entry_html: Хилар %{relation_name}
       entry_role_html: Хилар %{relation_name} (ролехь %{relation_role})
     not_found:
+      title: Цакарийна
       sorry: 'Халахетарх, %{type} #%{id} цакарий.'
       type:
         node: тӀадам
@@ -225,6 +379,7 @@ ce:
         changeset: нисдарш
         note: билгалдаккхар
     timeout:
+      title: Тайм-аут гIалат
       sorry: Бехк ба билла, цу %{type} хаамаш %{id} чуьра чубаха тӀех беха бу.
       type:
         node: тӀадамаш
@@ -252,12 +407,24 @@ ce:
         tag: Вики агӀонгахь гойту, тег %{key}=%{value}
       wikidata_link: Элемент %{page} Викихаамашкахь
       wikipedia_link: АгӀо %{page} Википедин чохь
+      wikimedia_commons_link: Викиларми тIера элемент %{page}
       telephone_link: Телпо тоха %{phone_number}
+      colour_preview: Басе %{colour_value} хьажа
+      email_link: Электронан почта %{email}
     query:
       title: ХӀун йу кхузахь?
       introduction: Уллера объекташ карайан, картин тӀетаӀайe
       nearby: Уллера объекташ
       enclosing: Йолу меттиг
+  old_nodes:
+    not_found:
+      sorry: 'Бехк ма билла, шад #%{id} версин %{version} карийна бац.'
+  old_ways:
+    not_found:
+      sorry: 'Бехк ма била, некъ #%{id} версин %{version} карийна бац.'
+  old_relations:
+    not_found:
+      sorry: 'Бехк ма билла, йукъаметтиг #%{id} версин %{version} карийна йац.'
   changesets:
     changeset_paging_nav:
       showing_page: АгӀо %{page}
@@ -276,14 +443,15 @@ ce:
     index:
       title: Нисдарш
       title_user: Декъашхочун %{user} нисдарш
+      title_user_link_html: Декъашхочун  %{user_link} нисдарш
       title_friend: Хьан доттагӀийн нисдарш
       title_nearby: Уллера декъашхойн нисдарш
-      empty: Нисдарш цакарий
+      empty: Нисдарш цакарий.
       empty_area: Кхузахь нисдарш дина дац.
-      empty_user: Ð\9aÑ\85Ñ\83заÑ\85Ñ\8c Ñ\85Ó\80окÑ\85Ñ\83 Ð´ÐµÐºÑ\8aаÑ\88Ñ\85оÑ\87о Ð½Ð¸Ñ\81даÑ\80Ñ\88 Ð´Ð¸Ð¹Ð½Ð° Ð´Ð°Ñ\86.
+      empty_user: Кхузахь хӀокху декъашхочо нисдарш дина дац.
       no_more: Кхи цхьа нисдарш цакарий.
-      no_more_area: Кхузахь нисдарш дина дац.
-      no_more_user: Кхузахь хӀокху декъашхочо нисдарш дина дац.
+      no_more_area: Кхи кхузахь нисдарш дина дац.
+      no_more_user: Кхи кхузахь хӀокху декъашхочо нисдарш дина дац.
       load_more: Чуйаха кхин а
       feed:
         title: 'Нисдарш: %{id}'
@@ -291,10 +459,36 @@ ce:
         created: Кхоьллина
         closed: ДӀачӀагӀа
         belongs_to: Автор
+    subscribe:
+      heading: ТIевазалур вуй хийцамийн дийцар тIе?
+      button: ТIевазало дийцар тIе
+    unsubscribe:
+      heading: ХӀокху хийцамийн дийцар тIера дӀакъаста?
+      button: ДӀакъаста дийцар тIера
+    heading:
+      title: 'Нисдарш: %{id}'
+      created_by_html: Кхоьлина %{link_user} on %{created}.
+    no_such_entry:
+      title: Иштта хийцама пакет бац
+      heading: 'ДӀайазайина йац id: %{id}'
+      body: Бехк ма билла, id %{id} хийцамаш бац. Дехар ду, нийса йазийни хьажа, хьо
+        чоьха ваьла ссылка нийса ца хила а тарло.
     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: ДӀакъевлина %{time_ago} декъашхочо %{user}
       discussion: Дийцар
       join_discussion: Дийцарехь дакъалаца системин чугӀо
+      still_open: Хийцамийн пакет хӀинца а йиллина йу - дискусси схьайоьллур йу хийцамийн
+        пакет дӀакъевлича.
+      subscribe: Йаздала
+      unsubscribe: Йаздалар дӀадаккха
+      comment_by_html: Комментари йина %{user} %{time_ago}
+      hidden_comment_by_html: Къайлаха комментари йина %{user} %{time_ago}
       hide_comment: къайлайаккха
       unhide_comment: гайта
       comment: Коммент
@@ -308,35 +502,58 @@ ce:
       relations: Хилар (%{count})
       relations_paginated: Хилар (%{x}-%{y} чуьра %{count})
     timeout:
-      sorry: Ахьа бихина нисдарийн могӀа, арабаккха тӀехь беха бу.
+      sorry: Бехк ма билла, ахьа бихина нисдарийн могӀа, арабаккха тӀехь сов хьан
+        оьшу.
   changeset_comments:
     comment:
-      comment: '#%{changeset_id} %{author} керла коммент'
-      commented_at_by_html: Карлаяьккхина %{when} хьалха %{user}
+      comment: '#%{changeset_id} %{author} керла коммент нисдаран пакет тIе'
+      commented_at_by_html: Карлайаккхина %{when} декъашхочо %{user}
+    comments:
+      comment: 'Керла комментари нисдаран пакет тIе #%{changeset_id} декъашхочо %{author}'
     index:
       title_all: OpenStreetMap тӀехь дина нисдарийн дийцар
       title_particular: 'OpenStreetMap #%{changeset_id} тӀехь дина нисдарийн дийцар'
+    timeout:
+      sorry: Бехк ма билла, ахьа бихина нисдарийн могӀанаш, арабаха тӀехь сов хьан
+        оьшу.
   dashboards:
     contact:
+      km away: Хьун тIера %{count} км
+      m away: Хьун тIера %{count} м
       latest_edit_html: 'ТӀаьххьара нисдар %{ago}:'
     popup:
+      your location: Хьо волу/йолу меттиг
+      nearby mapper: Уллера картадилархо
       friend: ДоттагӀ
     show:
+      title: Сан панель
+      no_home_location_html: '%{edit_profile_link} а, хьо волу меттиг а хӀоттае, уллера
+        декъашхо гарахьам.'
+      edit_your_profile: Хьайн профиль нисайе
       my friends: ДоттагӀий
+      no friends: Цкъачунна цхьа а доттагӀ тӀетоьхна вац ахь.
+      nearby users: Кхибола уллера декъашхой
+      no nearby users: Кхин цхьа а декъашхо вац цкъачунна уллех карта хӀоттош болх
+        беш.
+      friends_changesets: доттагӀийн хийцамаш
+      friends_diaries: доттагӀийн тептарш
+      nearby_changesets: лулара хийцамаш
+      nearby_diaries: лулара тептаран йаздарш
   diary_entries:
     new:
       title: Керла дӀайаздар дневник чохь
     form:
-      location: 'Меттиг:'
-      use_map_link: Ð\93айÑ\82а ÐºÐ°Ñ\80Ñ\82ан Ñ\82Ó\80еÑ\85Ñ\8c
+      location: Меттиг
+      use_map_link: Ð\9aаÑ\80Ñ\82а Ð»ÐµÐ»Ð° Ð´Ðµ
     index:
-      title: Ð\94невникаш
-      title_friends: ДоттагӀийн дневникаш
-      title_nearby: Уллера декъашхойн дневникаш
-      user_title: Декъашхочун дневник %{user}
+      title: Ð¢ÐµÐ¿Ñ\82аÑ\80ш
+      title_friends: ДоттагӀийн тептарш
+      title_nearby: Уллера декъашхойн тептарш
+      user_title: Декъашхочун тептар %{user}
       in_language_title: '%{language} маттахь дневникан дӀайаздарш'
       new: Дневник чуьра керла дӀайаздар
       new_title: Кхолла хьайн дневник чохь керла дӀайаздар
+      my_diary: Сан тептар
       no_entries: Дневник чохь дӀайаздарш дац
       recent_entries: Дукха хан йоцу дӀайаздарш
       older_entries: Шира дӀайаздарш
@@ -345,8 +562,11 @@ ce:
       title: ДӀайаздарш тадар
       marker_text: Билгало йазйаран меттиг
     show:
-      title: Декъашхочун дневник %{user} | %{title}
-      user_title: Декъашхочун дневник %{user}
+      title: Декъашхочун тептар %{user} | %{title}
+      user_title: Декъашхочун тептар %{user}
+      discussion: Дийцар
+      subscribe: Йаздала
+      unsubscribe: Йаздалар дӀадаккха
       leave_a_comment: Йитта коммент
       login_to_leave_a_comment_html: '%{login_link}, коммент йитарна'
       login: ЧугӀо
@@ -356,12 +576,14 @@ ce:
       body: id %{id} чуьра дӀайаздарш цакарий. хьажа нийса йаздиний. Хьажорг гӀалате
         хила мега.
     diary_entry:
-      posted_by_html: 'ДӀабахийтина %{link_user} %{created}, мотт: %{language_link}'
-      comment_link: Йитта коммент
-      reply_link: Жоп ло
+      posted_by_html: 'Арахецна %{link_user} %{created}, мотт: %{language_link}'
+      updated_at_html: ТӀаьххьара карладаккхар %{updated}.
+      comment_link: Комментари е хӀокху йаззамна
+      reply_link: Авторе йаза де
       comment_count:
-        few: '%{count} коммент яц'
-        other: '%{count} коммент яц'
+        one: '%{count} коммент'
+        other: '%{count} комментареш'
+      no_comments: Комментари йац
       edit_link: Хийца дӀайаздар
       hide_link: Къайладаккха дӀайаздар
       unhide_link: Гучудаккха хӀара дӀайаздар
@@ -369,13 +591,13 @@ ce:
       report: Хаамбе хӀокху дӀайаздарх дневник тӀехь
     diary_comment:
       comment_from_html: Коммент %{link_user} %{comment_created_at}
-      hide_link: Ð\9aÑ\8aайладаккха хӀара коммент
+      hide_link: Ð\9aÑ\8aайлайаккха хӀара коммент
       unhide_link: Гучуйаккха хӀара коммент
       confirm: Бакъдан
       report: ХӀокху комментах хаамбе
     location:
       location: 'Меттиг:'
-      view: Ð\93аÑ\80
+      view: Ð¥Ñ\8cажа
       edit: Нисдар
     feed:
       user:
@@ -388,25 +610,134 @@ ce:
       all:
         title: Дневникан дӀайаздарш OpenStreetMap
         description: OpenStreetMap декъашхойн тӀаьххьарлера дӀайаздарш
+    subscribe:
+      heading: РoгӀepa йаззам йазъечу дискуссина тIе вазлой?
+      button: ТIевазало дийцар тIе
+    unsubscribe:
+      heading: РoгӀepa йаззам йазъечу дискуссина тIера дӀакъастий?
+      button: ДӀакъаста дийцар тIера
   diary_comments:
     index:
+      title: Декъашхочо тӀетоьхначу дневникан йаздаршна комментареш %{user}
+      heading: '%{user} тептар тIе комментареш'
+      subheading_html: тдекъашхочо тептар тIе комментареш тоьхна %{user}
+      no_comments: цхьа комментари йац тептартех
       post: Хаам
       when: Маца
       comment: Коммент
       newer_comments: Керла комменташ
       older_comments: Шира комменташ
+    new:
+      heading: Дневник йазъйаран дискуссе комментари тӀетоха?
+  doorkeeper:
+    errors:
+      messages:
+        account_selection_required: Авторизацин серверо декъашхочуна тептар къасто
+          деза доьху
+        consent_required: Авторизацин серверо декъашхочуна резахилар доьху
+        interaction_required: Авторизацин серверна оьшу декъашхочуна йукъаметтигаш
+          лелайар
+        login_required: Авторизацин серверна оьшу чаккхенан декъашхочуна аутентификаци
+    flash:
+      applications:
+        create:
+          notice: Приложенин регистраци йина.
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: ГIулкх ца хила хIара кехо
+            бахьанехь::OpenidConnect.configure.auth_time_from_resource_owner конфугираци
+            йац.
+          reauthenticate_resource_owner_not_configured: ГIулкх ца хила хIара кехо
+            бахьанехь::OpenidConnect.configure.reauthenticate_resource_owner конфугираци
+            йац.
+          resource_owner_from_access_token_not_configured: ГIулкх ца хила хIара кехо
+            бахьанехь::OpenidConnect.configure.resource_owner_from_access_token конфугираци
+            йац.
+          select_account_for_resource_owner_not_configured: ГIулкх ца хила хIара кехо
+            бахьанехь::OpenidConnect.configure.select_account_for_resource_owner конфугираци
+            йац.
+          subject_not_configured: ID Токен генераци ца хилира Кехо бахьана долуш::OpenidConnect.configure.subject
+            конфугираци йац.
+    scopes:
+      address: Хьо волу адрес хьажа
+      email: Хьайн электронан почтан адрес хьажа
+      openid: Хьайн аккаунте аутинфикаци
+      phone: Хьайн телефон номере хьажа
+      profile: Хьайн профилан хаамашка хьажа
+  errors:
+    contact:
+      contact_url_title: Тайп-тайпанчу контактийн каналаша гайтан
+      contact: Контакт
+      contact_the_community_html: Маьрша хила %{contact_link} OpenStreetMap йукъаралле,
+        нагахь санна хьуна йоьхна ссылка / гIалат карийнехь.  Нийса URL дӀаязъе хьайн
+        дехаран йуккхех.
+    bad_request:
+      title: Нийса доцу дехар
+      description: OpenStreetMap сервер тӀехь ахь йехна операци нийса йац (HTTP 400)
+    forbidden:
+      title: Магийна дац
+      description: OpenStreetMap сервер тӀехь ахь йехна операци администраторшна бен
+        магина йац (HTTP 403)
+    internal_server_error:
+      title: Приложенин гIалат
+      description: OpenStreetMap серверна дагахь доцу хьал нисделира, цо новкъарло
+        йира дехар кхочушдан (HTTP 500)
+    not_found:
+      title: Файл цакарий
+      description: Цу цӀарца йолу файл/каталог/API операци ца карийра OpenStreetMap
+        сервер тӀехь (HTTP 404)
+  friendships:
+    make_friend:
+      heading: '%{user} доттагӀ санна тӀетохий?'
+      button: ТӀетоха доттагӀ сана
+      success: '%{name} хIинца хьа доттагI ву!'
+      failed: Бехк ма билла,  %{name} доттагӀ санна тӀе цатохавела.
+      already_a_friend: Хьо хӀинца %{name} доттагӀ ву .
+      limit_exceeded: Дукха юзершца доттагӀалла лелийна ахь тӀаьхьарчу хенахь. Кхин
+        доттагӀалла лело гӀертале жимма собар дехьа.
+    remove_friend:
+      heading: ДоттагӀ %{user} дӀаваккхий?
+      button: ДоттагӀ дӀаваккха
+      success: '%{name} хьан доттагIшна йукъара дӀаваьккхина.'
+      not_a_friend: '%{name} хIинца хьа доттагI вац.'
   geocoder:
+    search:
+      title:
+        results_from_html: '%{results_link} тӀера жамӀаш'
+        latlon: Чоьхьара
     search_osm_nominatim:
       prefix:
         aerialway:
           cable_car: Муьшан некъ
+          chair_lift: Муш тесна хьалаойург
+          drag_lift: Якорь тесна хьалаойург
+          gondola: Канатан некъ
+          magic_carpet: Инзаре кузан хьалаойург
+          platter: Бугелан хьалаойург
+          pylon: БӀогӀам
+          station: Канатан хьалаойургачун станци
+          t-bar: Т-сан хьалаойург
+          "yes": ХӀаваан некъ
         aeroway:
           aerodrome: Аэродром
-          apron: Перрон
+          airstrip: Кеман хьалагIоту-охьахуа некъ
+          apron: Аэропортан перрон
+          gate: Аэропортан гэйт
           hangar: Ангар
           helipad: Беркеманийн майда
-          terminal: Терминал
+          holding_position: Собар до меттиг
+          navigationaid: Авиацин навигацина систем
+          parking_position: Машен дӀахӀотто меттиг
+          runway: Кема хьалагIоту некъ
+          taxilane: Таксин некъ
+          taxiway: Кема нийсадо некъ
+          terminal: Аэропортер терминал
+          windsock: Мох гойтуш йерг
         amenity:
+          animal_boarding: Дийнатан интернат
+          animal_shelter: Дийнаташан тховкӀело
+          arts_centre: Исбаьхьаллин центр
           atm: Банкомат
           bank: Банк
           bar: Бар
@@ -414,17 +745,26 @@ ce:
           bench: ГӀант
           bicycle_parking: Велопарковка
           bicycle_rental: Вилспетийн прокат
+          bicycle_repair_station: вилспеташ та йо меттиг
+          biergarten: Йий духку меттиг
+          blood_bank: ЦIина доккху банк
+          boat_rental: Лодкан прокат
           brothel: Бордель
+          bureau_de_change: Валюта хуьйцу меттиг
+          bus_station: Автобусан станци
           cafe: Кафе
           car_rental: Автомобилийн аренда
           car_sharing: Каршаринг
           car_wash: Авто йуьлу меттиг
           casino: Казино
+          charging_station: Электромашенан ток ло станци
+          childcare: Берига хьожу Iедал
           cinema: Кинотеатр
           clinic: Поликлиника
           clock: Сахьташ
           college: Колледж
           community_centre: Йукъараллин центр
+          conference_centre: Конференц-центр
           courthouse: Суд
           crematorium: Крематоорий
           dentist: Стоматологи
@@ -432,6 +772,7 @@ ce:
           drinking_water: Молу хи
           driving_school: Автошкола
           embassy: Векалалла
+          events_venue: Вовшахкхеттар дӀахьуш йолу меттиг
           fast_food: Фаст-фуд
           ferry_terminal: Пароман станци
           fire_station: ЦӀеяйаран станци
@@ -440,23 +781,42 @@ ce:
           fuel: Йагорг йоттар
           gambling: Ловза цӀа
           grave_yard: ДӀабухку меттиг
+          grit_bin: ГIум чохь йол контейнер
           hospital: Госпиталь
+          hunting_stand: Талларан стенд
+          ice_cream: Морожени
+          internet_cafe: Интернет кафе
+          kindergarten: Берийн беш
+          language_school: Мотт Iамо ишкол
           library: Библиотека
+          loading_dock: ТIедуту док
+          love_hotel: Безаман отель
           marketplace: Базар
+          mobile_money_agent: Мобилан ахчанан агент
           monastery: Монастырь
+          money_transfer: Ахч дехьадокху меттиг
+          motorcycle_parking: Маццикл дӀахӀотто меттиг
+          music_school: Музыкийн ишкол
           nightclub: Буьйсанан клуб
           nursing_home: Къанойн цӀа
           parking: ДӀахӀуттийла
+          parking_entrance: Парковкан чуволийла
           parking_space: Парковка
+          payment_terminal: Ахча дӀадаларан терминал
           pharmacy: Аптека
+          place_of_worship: Ӏибадат до меттиг
           police: Полици
           post_box: Поштан йаьшка
           post_office: Поштан дакъа
           prison: Набахте
           pub: Паб
+          public_bath: Йукъара бани
+          public_bookcase: Йукъара книжкан шкаф
           public_building: Йукъараллин гӀишло
+          ranger_station: Рейнджерин станци
           recycling: Утилизацин меттиг
           restaurant: Ресторан
+          sanitary_dump_station: Санитарийн кхели
           school: Ишкол
           shelter: ДӀахьуллойла
           shower: Душ
@@ -469,17 +829,27 @@ ce:
           theatre: Театр
           toilets: ХьаштагӀа
           townhall: ГӀалин администраци
+          training: Ӏаморан меттиг
           university: Университет
+          vehicle_inspection: Машенаг хьожу меттиг
           vending_machine: Махбаран автомат
           veterinary: Ветеринаран клиника
           village_hall: Керт
           waste_basket: Урна
           waste_disposal: Нехийн бак
+          waste_dump_site: Нехаш дӀакхуссу меттиг
+          watering_place: Хи доккху меттиг
           water_point: Хи гулдар
+          weighbridge: ТӀайан терза
+          "yes": ПаргIатто
         boundary:
+          aboriginal_lands: Аборигенан латташ
           administrative: Административан дакъа
+          census: Бахархойн дӀаязбаран доза
           national_park: Къоман парк
+          political: Хьаржаман доза
           protected_area: ГӀорала деш йолу меттиг
+          "yes": Доза
         bridge:
           aqueduct: Акведук
           boardwalk: Тротуар
@@ -488,82 +858,244 @@ ce:
           viaduct: Виадук
           "yes": ТӀай
         building:
+          apartment: Петар
+          apartments: Петарш
+          barn: Амбар
+          bungalow: Бунгало
+          cabin: ЛаппагӀа
+          chapel: Килс
+          church: Килс
+          civic: Граждански гӀишло
+          college: Колледжан гIишло
+          commercial: Коммерцин гӀишло
+          construction: Йаш йолу гIишло
+          cowshed: Божал
+          detached: Ша лаьтта цIа
+          dormitory: Общежити
+          duplex: Шина агIор цIа
+          farm: Ферма
+          farm_auxiliary: Фермера цIа
+          garage: Гараж
+          garages: Гаражаш
+          greenhouse: Теплиц
+          hangar: Ангар
+          hospital: Лазартне гIишло
+          hotel: ХьешацӀа
+          house: ЦӀа
+          houseboat: ЦӀийнан хинкема
+          hut: ЛаппагӀа
+          industrial: Промышленни гӀишло
+          kindergarten: Берийн беш
+          manufacture: Промышленни гӀишло
+          office: Офисан гIишло
+          public: Йукъараллин гӀишло
+          residential: Нах беха цIа
+          retail: Йохк-эцаран гIишло
+          roof: Тхов
+          ruins: Доьхна цIа
+          school: Ишколан гIишло
+          semidetached_house: Ши петар йол цIа
+          service: Сервисан гIишло
+          shed: Божал
+          stable: Кхай
+          static_caravan: ДIайсалело цIа
+          sty: Хьакхин божал
+          temple: Килсан гIишло
+          terrace: МогIара цIенош
+          train_station: Аьчка некъан вокзал
+          university: Университет
+          warehouse: Дуо
           "yes": ГӀишло
+        club:
+          scout: Скаутан база
+          sport: Спортан клуб
+          "yes": Клуб
         craft:
+          beekeeper: Накхаршлелорхо
+          blacksmith: Пхьар
           brewery: Йий доккху
           carpenter: Дечиг-пхьар
+          caterer: Юург латтош верг
+          confectionery: Кондитерски
+          dressmaker: ХIумаша тоьгург
           electrician: Электрик
+          electronics_repair: Электроник тайо меттиг
           gardener: Бешахо
+          glaziery: Аьнглилелархо
+          handicraft: Пхьола
+          hvac: HVAC Пхьола
+          metal_construction: Эчкан пхьар
           painter: Исбаьхьалча
           photographer: Суртдоккхург
           plumber: Сантехник
+          roofer: Тхован пхьар
+          sawmill: Дечкан хьер
           shoemaker: Эткийн пхьар
+          stonemason: ТӀулгбуттург
           tailor: Тегархо
+          window_construction: Кораш до меттиг
+          winery: Вино до меттиг
           "yes": ПхьалгӀа
         emergency:
+          access_point: Интернет тIекхочу меттиг
+          ambulance_station: Сиха гIо до станци
           assembly_point: Гулдо меттиг
           defibrillator: Дефибриллятор
+          fire_extinguisher: ЦӀейойург
+          fire_water_pond: ЦӀейойурган Iам
+          landing_site: Аварийна охьааран меттиг
+          life_ring: Аварийн хинтIехь латто хӀоз
+          phone: Аварийн телефон
+          siren: Аварийн хаамийн сирен
+          suction_point: Аварийн хи чуузу меттиг
+          water_tank: ЦӀейойургучер Iам
         highway:
+          abandoned: Тесна некъ
+          bridleway: Говр хьохку некъ
+          bus_guideway: Автобусан моха
           bus_stop: Автобус соцу меттиг
+          construction: Некъ тобар
+          corridor: Йуккъахула чекхвала
+          crossing: Биъ-некъ
+          cycleway: Вилиспетан некъ
+          elevator: Лифт
+          emergency_access_point: Дуьххьара гIо до меттиг
+          emergency_bay: Аварийн лоттийла
+          footway: Тротуар
           ford: Гечо
+          give_way: Знак "Некъ битта"
+          living_street: Нах беха урам
+          milestone: Километаран бIогIам
+          motorway: Бокх некъ
+          motorway_junction: Бокх биъ-некъ
+          motorway_link: Некъан къастар
+          passing_place: Некъ къастаран моха
           path: 'Некъ:'
+          pedestrian: ГIаш лела урам
           platform: Платформа
           primary: Коьрта некъ
           primary_link: Коьрта некъ
           proposed: Проектехь болу некъ
+          raceway: Машен къовсу некъ
           residential: Урам
           rest_area: СадоӀу зона
           road: Некъ
+          secondary: Къезга лелабо некъ
+          secondary_link: Къезга лелабо некъ
+          service: ДӀасалелар
+          services: Некъаца йолу сервис
+          speed_camera: Сихаллин камера
           steps: ТӀегӀанаш
+          stop: Соцу знак
           street_lamp: Урамера фонарь
+          tertiary: КхозлолгIа классан некъ
+          tertiary_link: КхозлолгIа классан некъ
+          track: Ворданан некъ
+          traffic_mirror: Некъан куьзга
+          traffic_signals: Светофор
+          trailhead: Тача
           trunk: Некъ
+          trunk_link: Бокх некъ
+          turning_circle: Чувоьрзу гуо
+          turning_loop: Чувоьрзу некъ
+          unclassified: Меттигера некъ
           "yes": Некъ
         historic:
+          aircraft: Историйн кема
           archaeological_site: Эхкарш
+          bomb_crater: Хьалхалера бомбехь дисина ор
           battlefield: ТӀеман бай
           boundary_stone: Дозанан тӀулг
           building: Историн гӀишло
           bunker: Бункер
+          cannon: Историйн йокх топ
           castle: ГӀап
+          charcoal_pile: Историйн дечкан кIора
           church: Килс
           city_gate: ГӀалин ков
           citywalls: Историн чӀагӀанаш
           fort: Форт
           heritage: Культуран тӀаьхьалон объект
+          hollow_way: ТIаьIана некъ
           house: ЦӀа
           manor: Латта
           memorial: Мемориал
+          milestone: Историйн мур
           mine: Хьаст
+          mine_shaft: Шахтан гIад
+          monument: Монумент
+          railway: Историйн цӀерпоштан некъ
+          roman_road: Римхойн некъ
           ruins: Саьлнаш
+          rune_stone: Рунийн тIулг
           stone: ТӀулг
           tomb: Каш
           tower: БӀов
+          wayside_chapel: Некъаца йол килс
+          wayside_cross: Некъаца долу жIара
+          wayside_shrine: Некъаца йолу Iибадатан меттиг
+          wreck: ХIорд-кеман остов
+          "yes": Иэсан меттиг
         junction:
           "yes": Галморзе
         landuse:
           allotments: Бешлелор
+          aquaculture: Аквакультур
           basin: Бассейн
+          brownfield: ГIишло йа кечайина меттиг
           cemetery: Кешнаш
           commercial: Офисан меттиг
           conservation: Лардойла
           construction: ГӀишлош йар
+          farmland: ДIадуьйша латт
+          farmyard: Ферман керт
+          forest: Хьун
           garages: Гаражаш
           grass: Буц
+          greenfield: Кхиаза йолу территори
+          industrial: Ерматаллин кIошта
           landfill: ДӀакхийсуьйла
           meadow: Бай
           military: ТӀеман меттиг
           mine: Шахта
           orchard: Стоьмийн беш
+          plant_nursery: Ораматаш кхио меттиг
           quarry: Карьер
           railway: Аьчкан некъ
           recreation_ground: СадоӀу некъ
+          religious: Динан территори
           reservoir: Хи латтийла
+          reservoir_watershed: Резервуарийн хидоькъе
+          residential: Нах беха меттиг
           retail: Мах бен территори
+          village_green: Эвлан юкъ
+          vineyard: Кемсийн беш
+          "yes": Латталелор
         leisure:
+          adult_gaming_centre: Боккхиниш ловзу центр
+          amusement_arcade: Самукъадаккхаран Аркада
+          bandstand: Эстрада
+          beach_resort: Диттнаш долуш пляж
+          bird_hide: Олхазарша толлу пункт
+          bleachers: Трибунаш
+          bowling_alley: Боулинган моха
+          common: Йукъара латта
+          dance: Хелхаран чоь
+          dog_park: ЖIаьлина майда
+          firepit: ЦIе латто меттиг
+          fishing: ЧӀерийлецар
+          fitness_centre: Фитнес-центр
+          fitness_station: Тренажер
+          garden: Беш
+          golf_course: Гольфан майда
+          horse_riding: Говр хохку меттиг
+          ice_rink: Ша
           marina: Йист
           miniature_golf: Минигольф
           nature_reserve: Лардойла
+          outdoor_seating: Арахь охьаховшар
           park: Парк
+          picnic_table: Пикникан стоьла
           pitch: Спортан майда
           playground: Берийн ловзу майда
           recreation_ground: СадоӀу зона
@@ -578,55 +1110,147 @@ ce:
           "yes": Мукъа хан
         man_made:
           adit: Галерей
+          advertising: Реклама
+          antenna: Антенна
+          avalanche_protection: Хьаьттан дуьхьало
           beacon: Маяк
+          beam: ЗӀенар
           beehive: Улей
+          breakwater: ТулгӀа-хьадорг
           bridge: ТӀай
           bunker_silo: Бункер
+          cairn: ТIулган пирамида
           chimney: КӀуьран биргӀа
+          clearcut: Ирзу
+          communications_tower: ЗӀенан бӀов
           crane: Кран
+          cross: Некъ хадор
+          dolphin: ХIорд-кема дӀатосийла
+          dyke: Дамба
           embankment: ЦӀерпоштнекъан вал
           flagpole: ГӀуркх
           gasometer: Газгольдер
           groyne: Буна
           kiln: Пеш
           lighthouse: Маяк
+          manhole: Люк
           mast: Мачта
           mine: Хьаст
+          mineshaft: Шахтан гIад
+          monitoring_station: Тидам бо станци
+          petroleum_well: Мехкадаьттан буру
           pier: Мор
           pipeline: Турбанаш йахкар
+          pumping_station: Насосан станци
+          reservoir_covered: ДӀакъевлина резервуар
           silo: Силос
+          snow_cannon: Ло тухарг
+          snow_fence: Лона дуьхьало
+          storage_tank: Къойлана резервуар
+          street_cabinet: Урамера шкаф
+          surveillance: Тидам бо камер
+          telescope: Телескоп
           tower: БӀов
+          utility_pole: Тоькан бIогIам
+          wastewater_plant: Боьха хи цIандо станци
+          watermill: Хина хьера
+          water_tap: Хин кран
+          water_tower: Хин бӀов
           water_well: ГӀу
+          water_works: Хидокху меттиг
+          windmill: Мохан электростанци
+          works: Фабрика
+          "yes": Адмо кхоьллина
+        military:
+          airfield: ТIеман аэродром
+          barracks: Баракаш
+          bunker: Бункер
+          checkpoint: Блокпост
+          trench: Саьнгар
+          "yes": ТIеман
+        mountain_pass:
+          "yes": Дукъ даккхар
         natural:
+          atoll: Атолл
+          bare_rock: Йерзина тарх
           bay: Айма
+          beach: Пляж
           cape: Кафе
+          cave_entrance: Хьех чувола меттиг
+          cliff: Тарх
+          coastline: ХӀордан йист
           crater: Кратер
+          dune: Дюна
+          fell: Ломар йеса меттиг
           fjord: Фьорд
           forest: Хьуьн
           geyser: Гейзер
           glacier: Шалам
           grassland: Бай
+          heath: Йеса аре
           hill: Барз
+          hot_spring: Муьжхи
           island: ГӀайре
+          isthmus: Лаг
           land: Латта
+          marsh: Буц йолу ишал
+          moor: Ишал
           mud: Хатт
           peak: Ломан бохь
+          peninsula: АxгӀайpe
           point: Мара
           reef: Риф
           ridge: Дукъ
           rock: Тарх
           saddle: Лам баккхар
           sand: ГӀум
+          scree: Охьатекхна жагӀа
+          scrub: Коьллаш
+          shingle: ЖагӀа
+          spring: |2-
+
+            Хьаст
           stone: ТӀулг
           strait: Хидоькъе
           tree: Дитт
+          tree_row: Диттан могӀа
+          tundra: Тундра
+          valley: ТогӀе
           volcano: ТӀаплам
+          water: Хи
+          wetland: Ишалан меттиг
+          wood: Хьун
+          "yes": Ӏаламан хӀума
         office:
+          accountant: Бухгалтер
           administrative: Администраци
+          advertising_agency: Рекламан агентство
           architect: Архитектор
+          association: Ассоциаци
           company: Компани
+          diplomatic: Дипломатин офис
+          educational_institution: Дешаран меттиг
+          employment_agency: Болх луьху агентство
+          energy_supplier: Ток латтучун офис
+          estate_agent: ГIишлонан агенство
+          financial: Финансан офис
+          government: Ӏедалан урхалла
+          insurance: Страховийн офис
+          it: IT-офис
+          lawyer: Юрист
+          logistics: Логистикан офис
+          newspaper: Газетан офис
+          ngo: НКО офис
+          notary: Нотариус
+          religion: Динан офис
+          research: Талламан офис
+          tax_advisor: Налогийн хьехамча
+          telecommunication: Телекоммуникацин офис
+          travel_agent: Туристийн агенталла
           "yes": Офис
         place:
+          allotments: Бешлелор
+          archipelago: Архипелаг
           city: ГӀала
           city_block: ГӀалин куп
           country: Пачхьалкх
@@ -637,8 +1261,11 @@ ce:
           houses: ЦӀа
           island: ГӀайре
           islet: Жима гӀайре
+          isolated_dwelling: Фермера цIа
+          locality: Меттиг
           municipality: Муниципалитет
           neighbourhood: Лулахалла
+          plot: Дакъа
           postcode: Поштан индекс
           quarter: ГӀалин кӀошт
           region: Регион
@@ -651,22 +1278,208 @@ ce:
           village: Дитташ
           "yes": Йолу меттиг
         railway:
+          abandoned: ДӀасабаькхна цӀерпоштан некъ
+          buffer_stop: Буферан сацар
+          construction: Баьш болу цӀерпоштнекъ
+          disused: ДӀатесна цӀерпоштан некъ
+          funicular: Фуникулер
+          halt: ЦӀерпоштан вокзал
+          junction: ЦӀерпоштнекъан дӀасакъастар
+          level_crossing: ЦӀерпоштнекъах дехьаволийла
+          light_rail: Йей рельсан транспорт
+          miniature: ЦӀерпоштнекъан макет
           monorail: Монорельс
+          narrow_gauge: готта аьчка некъ
+          platform: Эчка некъан платформа
+          preserved: Историйн эчка некъ
+          proposed: Ба безаш эчкан некъ
+          rail: Рельс
+          spur: ЦӀерпоштан лини
+          station: ЦӀерпоштан вокзал
+          stop: ЦӀерпоштан сацар
+          subway: Метро
+          subway_entrance: Метро чувола меттиг
+          switch: ЦӀерпоштан коммутатор
+          tram: Трамвай
+          tram_stop: Трамвайан сацар
+          turntable: Чуваьрзу гуо
+          yard: ЦӀерпоштан керт
         shop:
+          agrarian: Латталелахочун туька
+          alcohol: Къаьркъан туька
+          antiques: Антиквариат
+          appliance: Чура хӀумман туька
+          art: Исбаьхьаллин салон
+          baby_goods: Берийн хӀуманаш
+          bag: Тоьрмагин туька
+          bakery: Бепиг
+          bathroom_furnishing: Ванни мебель
+          beauty: Хазалан салон
+          bed: Меттан хӀуманаш
+          beverages: Маларш духку туька
+          bicycle: Вилспетан туька
+          bookmaker: Букмекер
+          books: Жайнан туька
+          boutique: Бутик
+          butcher: Жижиг духку туька
+          car: Машенийн туька
+          car_parts: Машенан дакъош духку туька
+          car_repair: Машен тайорг
+          carpet: Кузанаш
+          charity: СагӀийна туька
+          cheese: Нехчан туька
+          chemist: Хими
+          chocolate: Шоколад
+          clothes: Духарш духку туька
+          coffee: Кофина туька
+          computer: Компьютеран туька
+          confectionery: Кондитеран туька
+          convenience: Сурсатина туька
+          copyshop: Копий йо меттиг
+          cosmetics: Косметика
+          craft: Пхьеран хӀуманан туька
+          curtain: Бойш йухку туька
+          dairy: Шуран туька
+          deli: Деликатесан туька
+          department_store: Универсам
+          discount: ДӀадохкаран туька
+          doityourself: '"Айха де" тайпа туька'
+          dry_cleaning: Химйилар
+          e-cigarette: Электронан сигаьркан туька
+          electronics: Электроникан туька
+          erotic: Эротикан туька
+          estate_agent: ГIишлонан агенство
+          fabric: Къади духку туька
+          farm: Кертар сурсатийн туька
+          fashion: Духаран туька
+          fishing: ЧӀаралацархочун туька
+          florist: Зезагийна туька
+          food: Сурсаташ
+          frame: Гуран туька
+          funeral_directors: ДӀаверзоран бюро
+          furniture: Мебель
+          garden_centre: Бешан центр
+          gas: Газ техникан гӀирс
+          general: Йукъара туька
+          gift: СовгӀатийн туька
+          greengrocer: Хасстоьман туька
+          grocery: Сурсатин туька
+          hairdresser: Парикмахер
+          hardware: ГӀирсан туька
+          health_food: Могша даарин туька
+          hearing_aids: Къорачан аппараташ
+          herbalist: Бецан говзанча
           hifi: Аудио/видео аппаратурийн туька
           houseware: ПхьегӀийн туька
+          ice_cream: Морожени туька
           interior_decoration: Интерьер кечйар
+          jewelry: Деши духка туька
+          kiosk: Киоск
+          kitchen: Кухни туька
+          laundry: ХӀуманаш йутту
+          locksmith: Слесар
+          lottery: Лотерей
+          mall: Йоккха туька
+          massage: Массаж
+          medical_supply: Медицинан хӀуманаш йухку туька
+          mobile_phone: Смартфонаш йухку туька
+          money_lender: Кредитор
+          motorcycle: Моццикалан туька
+          motorcycle_repair: Моццикалаш тайар
           music: Музыкийн туька
+          musical_instrument: Иллийн гӀирс
           newsagent: Газетийн киоск
+          nutrition_supplements: Кхачанан тӀетохарш
           optician: Оптика
+          organic: Органикан сурсата туька
+          outdoor: Арахь садаӀаран туька
+          paint: Басарши туька
+          pastry: Кондитерски
+          pawnbroker: Ломбард
+          perfumery: Парфюмери
+          pet: Дийнатин туька
+          pet_grooming: Дийнаташка хьажар
+          photo: Фототуька
+          seafood: ХӀордан сурсаташ
+          second_hand: Лелайин хIуманаш йухку туька
+          sewing: ХIум тоьгу цех
+          shoes: Мачийн туька
+          sports: Спортан туька
+          stationery: Канцеляран гIирс
+          storage_rental: Дуон аренда
+          supermarket: Супермаркет
+          tailor: Тегархо
+          tattoo: Тату салон
+          tea: Чайн туька
+          ticket: Касса
+          tobacco: Сигаьркан туька
+          toys: Ловза хIуман туька
+          travel_agency: Туристийн агенство
+          tyres: Чкъурган туька
+          vacant: Йеса туька
+          variety_store: Цхьа мах болу туька
+          video: Видео туька
+          video_games: Видеоловзаршан туька
+          wholesale: Туьпахьан туька
+          wine: Винон туька
           "yes": Туька
         tourism:
           alpine_hut: Альпийн цӀа
           apartment: Апартаменташ
+          artwork: Исбаьхьаллин болх
           attraction: Сийлахь меттиг
-          cabin: ЛаппагӀа
+          bed_and_breakfast: Эхан пансион
+          cabin: Туристан лаппагӀа
+          camp_pitch: Кемпинг
           camp_site: Лагерь
+          caravan_site: ЧкъургтIех долу цIеношна латтар
+          chalet: Шале
+          gallery: Галерей
+          guest_house: Хьешан цIа
+          hostel: Хостел
+          hotel: Отель
+          information: Хаам
+          motel: Мотель
+          museum: Музей
+          picnic_site: Пикникан меттиг
+          theme_park: Сакъуьру парк
+          viewpoint: Хьажаран меттиг
+          wilderness_hut: Акха меттехь лаппагӀа
           zoo: Зоопарк
+        tunnel:
+          building_passage: ГӀишлочухула чакхавалар
+          culvert: Хина турба
+          "yes": Тоннель
+        waterway:
+          artificial: Искусствени хи дIадохар
+          boatyard: Верфь
+          canal: Канал
+          dam: Дамба
+          derelict_canal: Дакъадела татол
+          ditch: Татол
+          dock: Док
+          drain: Харш
+          lock: Шлюз
+          lock_gate: Шлюзан ков
+          mooring: Швартовкан меттиг
+          rapids: Хинан тарх
+          river: Хи
+          stream: Шовда
+          wadi: Лекъан хи
+          waterfall: Чухчари
+          weir: ЧӀинг
+          "yes": Хичура маршрут
+      admin_levels:
+        level2: Паччалкхан доза
+        level3: Регионан доза
+        level4: Штатан доза
+        level5: Регионан доза
+        level6: КIоштан доза
+        level7: Муниципалитетан доза
+        level8: ГIалан доза
+        level9: Йуртан доза
+        level10: ГӀалин йистан доза
+        level11: Лулахойн доза
       types:
         cities: ГӀаланаш
         towns: ГӀаланийн маттигаш
@@ -679,35 +1492,106 @@ ce:
       title: Проблемаш
       select_status: Харжа статус
       select_type: Харжа тайпа
+      select_last_updated_by: ТӀаьххьара карлаваьлига хьаржа
+      reported_user: Декъашхо хаам йуккъехь
+      not_updated: Карлайаккхин йац
       search: Лахар
+      search_guidance: 'Проблемаш лахар:'
+      user_not_found: Иштта декъашхо вац
+      issues_not_found: Иштта проблемаш карийна йац
       status: Статус
+      reports: Хаамаш
+      last_updated: ТӀаьххьара хийцам
+      last_updated_time_ago_user_html: '%{time_ago} хIокху %{user}'
+      link_to_reports: Хаамашка хьажа
+      reports_count:
+        one: '%{count} хаам'
+        other: '%{count} хаамаш'
+      reported_item: Хаамин тема
       states:
         ignored: Игнорйина
         open: Елина
         resolved: Кечйина
     show:
+      title: '%{status} проблема #%{issue_id}'
       reports:
-        zero: Хаам бац
-        one: 1 хаам
-        other: '%{count} хаам'
+        one: '%{count} хаам'
+        other: '%{count} хаамаш'
+      no_reports: Цхьа хаам бац
+      report_created_at_html: Дуьххьара хаам бина %{datetime}
+      last_resolved_at_html: ТӀаьххьара карладаьккхийна %{datetime}
+      last_updated_at_html: ТӀаьххьара карладаьккхийна %{datetime} декъашхочо %{displayname}
       resolve: Кечйан
       ignore: Тергал ца дан
       reopen: Йуха схьайелла
+      reports_of_this_issue: Цу проблемах лаьцна хаам
+      read_reports: Баьшна хаамаш
+      new_reports: Керла хаамаш
+      other_issues_against_this_user: Кхин йолу проблемаш оцу декъашхочунца
+      no_other_issues: Кхин проблемаш йац оцу декъашхочунца
+      comments_on_this_issue: Эца проблемах лаьцна комментари
+    resolve:
+      resolved: Проблеман статус гIотайира 'ДӀадерзийна' чу.
+    ignore:
+      ignored: Проблеман статус гIотайира 'Таьргал ца йина' чу
+    reopen:
+      reopened: Проблеман статус гIотайира 'Хьайилина' чу
+    comments:
+      comment_from_html: Декъашхочуна коммент %{user_link} йина %{comment_created_at}
+      reassign_param: ДIахьажайай проблем?
+    reports:
+      reported_by_html: Иштта гайта йу %{category} дакъашхочу %{user}кхучохь %{updated_at}
+    helper:
+      reportable_title:
+        diary_comment: '%{entry_title}, коммент #%{comment_id}'
+        note: 'Йаззор #%{note_id}'
+  issue_comments:
+    create:
+      comment_created: Хьан комментарий аьттонца кхоьллина
+      issue_reassigned: Хьан комментарий кхоьллина, проблем йухахьажийна
   reports:
     new:
       title_html: Хаам %{link}
+      missing_params: Керла хаам кхолла йиш яц
+      disclaimer:
+        intro: 'Дехар ду, хьайн рапорт сайтан модераторшка дӀахьажайале, хьажа:'
+        not_just_mistake: Хьо тешна вуй, проблема еккъа цхьа гӀалат ца хиларх.
+        unable_to_fix: Хьан аьтто бац хьайна йа хьайн юкъараллин декъашхойн гӀоьнца
+          и проблема нисъян
+        resolve_with_user: Хьо хӀинцале а хьаьжна цу декъашкочунгар проблема дӀаяккха
       categories:
         diary_entry:
+          spam_label: ХӀара тептаран йаззам спам йу
+          offensive_label: ХӀокха тептартехь йаздинарг эвхьаза йе сийдоцуш ду
+          threat_label: ХӀокху тептаре йаззамехь кхерам тосуш бу
           other_label: Кхийерг
         diary_comment:
+          spam_label: ХӀара тептаран комментари спам йу
+          offensive_label: ХӀокха тептартера комментари эвхьаза йе сийдоцуш ду
+          threat_label: ХӀокху тептаран комментарехь кхерам тосуш бу
           other_label: Кхийерг
         user:
+          spam_label: ХӀара декъашхочуна профиль спам йу
+          offensive_label: ХӀара лелоран профиль эвхьаза йе сийдоцуш йу
+          threat_label: ХӀокху декъашхочун профилехь кхерам бу
+          vandal_label: ХӀара декъашхо вандал ву
           other_label: Кхийерг
         note:
+          spam_label: ХӀара билгалдаккхар спам ду
+          personal_label: ХӀокху билгалдаккхарехь персональни хаамаш бу
+          abusive_label: ХӀара билгало сийдоцуш ду
           other_label: Кхийерг
+    create:
+      successful_report: Хьан хаам кхиамца дӀаязбина
+      provide_details: Дехар ду, оьшуш болу хаамаш схьаалар
   layouts:
+    logo:
+      alt_text: OpenStreetMap-ан логотип
+    home: ЦӀа дӀагӀо
     logout: Болх дӀаберзор
     log_in: ЧугӀо
+    sign_up: ДӀайаздалар
+    start_mapping: Карт дила волаво
     edit: Нисдар
     history: Истори
     export: Экспорт
@@ -717,82 +1601,380 @@ ce:
     gps_traces: GPS-трекаш
     gps_traces_tooltip: Болхбе GPS-трекашца
     user_diaries: Декъашхочун дневник
+    user_diaries_tooltip: Декъашхошна тептаршка хьажа
+    edit_with: Нисайе кхуьнца %{editor}
+    tag_line: Маьрша дуьненан Вики карта
+    intro_header: Марша вогӀийла хьо OpenStreetMap!
+    intro_text: OpenStreetMap — дуьненан карта ду, хьо санна болчу наха кхоьллина,
+      ткъа хIара маьрша лело йиш йу йиллина лицензица.
+    intro_2_create_account: Декъашхочун аккаунт кхолла
+    hosting_partners_2024_html: Хостинг лелош йу %{fastly}, %{corpmembers}, кхин а
+      %{partners}.
+    partners_fastly: Сиха
+    partners_corpmembers: ОСМФ корпорацин декъашхой
+    partners_partners: Партнёраш
+    tou: Лелоран биллам
+    osm_offline: OpenStreetMap база карарчу хенахь хьайалалуш йац, база Ӏалашъяран
+      коьрта белхаш дӀахьош долу дера.
+    osm_read_only: OpenStreetMap база карарчу хенахь ешаран режимехь йу,база Ӏалашъяран
+      белхаш дӀахьош долу дер.
+    donate: Дехар ду, гӀо де OpenStreetMap %{link} аппаратан фонда карлайоккхуш.
     help: ГӀо
     about: Проектах лаьцна
     copyright: Авторийн бакъонаш
+    communities: Тобаш
+    community: Тоба
+    community_blogs: Тобан блог
+    community_blogs_title: OpenStreetMap тобан декъашхошна блогаш
+    make_a_donation:
+      title: ГIо де OpenStreetMap-ан сахана ахчаца
+      text: ГIо де проектан
     learn_more: Цул совнаха хаа
     more: Кхин а
   user_mailer:
+    diary_comment_notification:
+      description: 'OpenStreetMap Тептар Чувалар #%{id}'
+      subject: Декъашхочо OpenStreetMap] %{user} комментари йитан тептар чохь
+      hi: Маршалла ду %{to_user},
+      header: '%{from_user} комментари йина OpenStreetMap тептаран йаззамна %{subject}:'
+      header_html: '%{from_user} комментари йина OpenStreetMap тептаран йаззамна %{subject}:'
+      footer: Иштта комментари еша йиш йу %{readurl} тӀехь а, комментари йазъян а
+        йиш йу %{commenturl} тӀехь я авторе хаам бан йиш йу %{replyurl} тӀехь
+      footer_html: Иштта комментари еша йиш йу %{readurl} тӀехь а, комментари йазъян
+        а йиш йу %{commenturl} тӀехь я авторе хаам бан йиш йу %{replyurl} тӀехь
+      footer_unsubscribe: Хьан йиш йу дискуссера дӀавала %{unsubscribeurl}
+      footer_unsubscribe_html: Хьан йиш йу дискуссера дӀавала %{unsubscribeurl}
+    message_notification:
+      subject: '[OpenStreetMap] %{message_title}'
+      hi: Маршалла ду %{to_user},
+      header: '%{from_user} хьуьга хаам баийтина OpenStreetMap чухула %{subject} темаца:'
+      header_html: '%{from_user} хьуьга хаам баийтина OpenStreetMap чухула %{subject}
+        темаца:'
+      footer: Иштта хьа %{readurl} тӀера хаам еша йиш йу, авторе хаам бахьийта мегар
+        ду %{replyurl} тӀера
+      footer_html: Иштта хьа %{readurl} тӀера хаам еша йиш йу, авторе хаам бахьийта
+        мегар ду %{replyurl} тӀера
+    friendship_notification:
+      hi: Маршалла ду %{to_user},
+      subject: '[OpenStreetMap] %{user} хьо доттагӀ санна тӀетоьхна'
+      had_added_you: '%{user} -о OpenStreetMap чохь хьо доттагӀ санна тӀетоьхна.'
+      see_their_profile: Хьан церан профиль ган йиш йу %{userurl} тӀехь.
+      see_their_profile_html: Хьан церан профиль ган йиш йу %{userurl} тӀехь.
+      befriend_them: Иштта %{befriendurl} чохь доттагӀ санна тӀетоха йиш йу хьан.
+      befriend_them_html: Иштта %{befriendurl} чохь доттагӀ санна тӀетоха йиш йу хьан.
+    gpx_description:
+      description_with_tags_html: 'Иза хьан GPX файлах тера йу %{trace_name} %{trace_description}
+        описаниеца а, хӀара тегашца а: %{tags}'
+      description_with_no_tags_html: Иза хьан GPX файлах тера йу %{trace_name} %%{trace_description}
+        дицарца, цхьа а тег йоцуш
+    gpx_failure:
+      hi: Маршалла ду %{to_user},
+      failed_to_import: 'импорт ян аьтто ца баьлла. Кхузахь гӀалат ду:'
+      more_info_html: GPX импортан кхачамбацарех лаьцна кхин а хаамаш каро йиш йу
+        %{url} тӀехь.
+      subject: '[OpenStreetMap] GPX Импорт ца хилира'
+    gpx_success:
+      hi: Маршалла ду %{to_user},
+      loaded:
+        one: кхиамца дӀатоьхна %{trace_points}хила тарлучу %{count} point. точках.
+        other: loaded successfully with %{trace_points}хила тарлучу %{count} points.
+          точках.
+      all_your_traces_html: Хьан ерриге а кхиамца чуйиллина GPX лараш каро йиш йу
+        %{url} тӀехь.
+      subject: '[OpenStreetMap] GPX  Импортан дика хилира'
     signup_confirm:
+      subject: '[OpenStreetMap] Марша вогIийла OpenStreetMap чу'
       greeting: Маршалла!
+      created: Цхьаммо (сатийсам бу ахь) хӀинцца %{site_url} чохь аккаунт йина.
+      confirm: 'Кхин хӀумма а данле, оха тӀечӀагӀдан деза и дехар хьоьгара хилла хилар,
+        цундела нагахь санна иза хьоьгара хиллехь, лахахь йолчу ссылки тӀе хьажа хьайн
+        аккаунт тӀечӀагӀъян:'
+      welcome: Ахь хьайн аккаунт тӀечӀагӀйинчул тӀаьхьа, оха хьуна кхин а цхьацца
+        хаамаш лур бу, ахь дӀадолорхьама.
     email_confirm:
+      subject: '[OpenStreetMap] Хьайн электронан почтан адрес тӀечӀагӀде'
       greeting: Маршалла,
+      hopefully_you: Цхьаммо (сатийсам бу ахь) шен электронан почтан адрес хийца лаьа
+        %{server_url} тӀехь %{new_address} хIокхун тIе.
+      click_the_link: Нагахь санна хӀара хьо велахь, лахахь йолчу ссылки тӀе хьажа,
+        хийцам тӀечӀагӀбан.
     lost_password:
+      subject: '[OpenStreetMap] Пароль хийцаран дехар'
       greeting: Маршалла,
+      hopefully_you: Цхьаммо (хила тарло ахь) оцу электронан почтан адресан openstreetmap.org
+        аккаунтехь пароль йухаметтахӀоттор дехна.
+      click_the_link: Нагахь санна хӀара хьо велахь, лахахь йолчу ссылки тӀе хьажа,
+        хьайн пароль йухаметтахӀотто.
     note_comment_notification:
+      description: 'OpenStreetMap Билгалдаккхар #%{id}'
+      anonymous: Анониман декъашхой
       greeting: Маршалла,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} комментари йина хьан цхьана тептарна'
+        subject_other: '[OpenStreetMap] %{commenter} комментари хӀотийна хьуна хьашта
+          йол заметкин'
+        your_note: '%{commenter} комментари гIотийна хьа цхьана заметкан герге %{place}.'
+        your_note_html: '%{commenter} комментари йитина хьан картан цхьана билгалонна
+          тӀехь %{place} уллехь.'
+        commented_note: '%{commenter} комментари йитина ахь комментари йина картан
+          билгалдаккхарехь. Билгалдаккхар  %{place} уллехь ду.'
+        commented_note_html: '%{commenter} комментари йитина ахьаъ комментари йина
+          картан билгалдаккхарехь. Билгалдаккхар %{place} уллехь ду.'
+      closed:
+        subject_own: '[OpenStreetMap] %{commenter} хьан цхьа билгалдаккхар дӀакъоьвлина'
+        subject_other: '[OpenStreetMap] %{commenter} дӀакъоьвлина хьуна хьашт долу
+          билгалдаккхар'
+        your_note: '%{commenter} хьан картан цхьа билгалдаккхар дӀакъоьвлина %{place}
+          уллехь.'
+        your_note_html: '%{commenter} хьан картан цхьа билгалдаккхар дӀакъоьвлина
+          %{place} гена йоцуш.'
+        commented_note: '%{commenter} ахь йина заметкин комментари дӀайаккхина %{place}
+          гена йоцуш.'
+        commented_note_html: '%{commenter} ахь комментари йина картан билгалдаккхар
+          дӀайаккхина, %%{place} уллера.'
+      reopened:
+        subject_own: '[OpenStreetMap] %{commenter} хьан цхьа билгалдаккхар йуха а
+          дӀахӀоттийна'
+        subject_other: '[OpenStreetMap] %{commenter} йуха а дӀахӀоттийна хьуна хьашт
+          долу билгалдаккхар'
+        your_note: '%{commenter} йуха а дӀахӀоттийна хьан картан цхьа билгалдаккхар
+          %{place} уллехь.'
+        your_note_html: '%{commenter} йуха а дӀахӀоттийна хьан картан цхьа билгалдаккхар
+          %{place} уллехь.'
+        commented_note: '%{commenter} йуха дӀахӀоттийна ахь комментари йина картан
+          билгалдаккхар, %{place} уллехь.'
+        commented_note_html: '%{commenter} йeха дӀахӀоттийна ахь комментари йина картан
+          билгалдаккхар, %{place} уллехь.'
+      details: Жоп ло йа кхин дӀа а довза %{url} тӀехь.
+      details_html: Жоп ло йа кхин дӀа а довза %{url} тӀехь.
     changeset_comment_notification:
+      description: 'OpenStreetMap хийцаман гулам #%{id}'
+      hi: Маршалла ду %{to_user},
       greeting: Маршалла,
+      commented:
+        subject_own: '[OpenStreetMap] %{commenter} комментари йина хьан цхьана хийцаман
+          гуламна'
+        subject_other: '[OpenStreetMap] %{commenter} комментари йина хьуна хьашта
+          хетта хийцаман гуламна'
+        your_changeset: '%{commenter} комментари йитина %{time} хьан цхьана хийцамийн
+          гуламех'
+        your_changeset_html: '%{commenter} комментари йитина %{time} хьан  цхьана
+          хийцамийн гуламех'
+        commented_changeset: '%{commenter} комментари йитина %{time} ахь хьоьжуш долчу
+          хийцамашна тӀехь, декъашхочо кхоьллина %{changeset_author}'
+        commented_changeset_html: '%{commenter} комментари йитина %{time} ахь хьоьжуш
+          долчу хийцамашна тӀехь, декъашхочо кхоьллина %{changeset_author}'
+        partial_changeset_with_comment: комментарица '%{changeset_comment}'
+        partial_changeset_with_comment_html: комментарица '%{changeset_comment}'
+        partial_changeset_without_comment: комментарица
+      details: Жоп ло йа хийцамех лаьцна кхин дӀа а довза %{url}.
+      details_html: Жоп ло йа хийцамех лаьцна кхин дӀа а довза %{url}.
+      unsubscribe: Хьан йиш йу %{url} тӀехь оцу хийцамийн карладаккхарех дӀавала.
+      unsubscribe_html: Хьан йиш йу %{url} тӀехь оцу хийцамийн карладаккхарех дӀавала.
   confirmations:
     confirm:
+      heading: Хьайн почте хьажа!
+      introduction_1: Оха хьуна тӀечӀагӀдаран почте хьажийна.
+      introduction_2: Хьайн аккаунт тӀечӀагӀъе, почтехь йолчу ссылки тӀе а ваьла,
+        карта хӀотто дӀадоло аьтто хир бу хьан.
+      press confirm button: Хьайн аккаунт дӀахӀотто лахахь йолу кнопка тӀе а таӀа
+        йе.
       button: Бакъдан
+      success: Хьайн аккаунт тӀечӀагӀйина, баркалла хьуна дӀаязвелла хиларна!
+      already active: И аккаунт хӀинцале а тӀечӀагӀйина йу.
+      unknown token: И тӀечӀагӀдаран код чекхъяьлла йа йолуш йац.
+      resend_html: Нагахь санна хьуна оха тӀечӀагӀдаран почта йуха дӀаяхьийта оьшуш
+        делахь, %{reconfirm_link}.
+      click_here: тӀетаӀайе кхузахь
+    confirm_resend:
+      failure: Декъашхо %{name} ца карийна.
     confirm_email:
       heading: Бакъде электронан поштан адрес хуьйцуш хилар
+      press confirm button: Хьайн керла электронан почтан адрес тӀечӀагӀдан, лахахь
+        йолу тӀечӀагӀдар кнопка тӀе таӀа йе.
       button: Бакъдан
+      success: Хьан электронан почтан адрес хийцина!
+      failure: ХӀинцале а цу токенца тӀечӀагӀдина электронан почтан адрес.
+      unknown_token: И тӀечӀагӀдаран код чекхъяьлла йа йолуш йац.
+    resend_success_flash:
+      confirmation_sent: Оха керла тӀечӀагӀдаран кехат даийтина %{email} тӀе, ткъа
+        цкъа хьайн аккаунт тӀечӀагӀйина, хьан аьтто хир бу карта хӀотто.
+      whitelist: Нагахь санна ахь антиспам-система лелош елахь, цо тӀечӀагӀдаран дехарш
+        дохьуьйту, тӀаккха дехар ду ахь %{sender} хьан кӀайн тептаре язде, хӀунда
+        аьлча тхан аьтто бац и санна дехаршна жоп дала.
   messages:
     inbox:
       title: ЧуйогӀурш
+      messages: Хьан %{new_messages} а, %{old_messages} а ду
+      new_messages:
+        one: '%{count} керла хаам'
+        other: '%{count} керла хаамаш'
+      old_messages:
+        one: '%{count} шира хаам'
+        other: '%{count} шира хаамаш'
+      no_messages_yet_html: Цкъачунна цхьа а хаам бац хьан. ХӀокхарца  %{people_mapping_nearby_link}
+        къамел да мегар дарий?
+      people_mapping_nearby: Карта хӀоттош нах бу уллехь
     messages_table:
       from: Хьаьнгара
       to: Хьаьнга
       subject: Тема
       date: Терахь
+      actions: Дар
     message_summary:
+      unread_button: Билгалйе ца йешна санна
+      read_button: Билгалйе йешна санна
       reply_button: Жоп ло
       destroy_button: ДӀайаккха
+      unmute_button: ДӀаяхийта Инбокс чу
     new:
+      title: ДӀабахьийта хаам
+      send_message_to_html: Керла хаам кхунга %{name} бахийта
       back_to_inbox: ЧубогӀучаьрга йуханехьа
+    create:
+      message_sent: Хаам дӀахьажийна
+      limit_exceeded: ТӀаьххьарчу хенахь дуккха а хаамаш бахьийтина ахь. Кхин дӀасахьажо
+        гӀортале жимма собар дехьа.
+    no_such_message:
+      title: Иштта хаам бац
+      heading: Иштта хаам бац
+      body: Бехк ма билла цу ID-ца цхьа а хаам бац.
     outbox:
       title: ДӀайохьуьйтурш
+      actions: Дар
+      messages:
+        one: Хьан %{count} дIабахийтина хаам
+        other: Хьан %{count} дIабахийтина хаамаш
+      no_sent_messages_html: Хьан цкъачунна дIакхехийтина хаамаш бац. ХӀокхарца %{people_mapping_nearby_link}
+        къамел да мегар дарий?
+      people_mapping_nearby: Карта хӀоттош нах бу уллехь
+    muted:
+      title: ДӀадаьхна хаамаш
+      messages:
+        one: '%{count} дӀабаькхина хаам'
+        other: You have %{count} дӀадаьхна хаамаш
+    reply:
+      wrong_user: Хьо чуваьлла `%{user}' санна, амма ахь жоп дала дехна хаам цу декъашхочуьнга
+        ца баийтина. Дехар ду, нийса лелош верг санна чу вала, жоп даларна а.
     show:
       title: Хаамашка хьажар
       reply_button: Жоп ло
       unread_button: Билгалйе ца-йешна санна
       destroy_button: ДӀайаккха
       back: Йуха
+      wrong_user: Хьо `%{user}' санна чуваьлла ву, амма ахь деша дехна хаам цу декъашхочо
+        я цуьнга дӀа ца бахьийтина. Дехар ду, нийса лелош верг санна чу вала, иза
+        ешара а.
     sent_message_summary:
       destroy_button: ДӀайаккха
+    heading:
+      my_inbox: Сан чудохурша
+      my_outbox: Сан дIадохитнарш
+      muted_messages: ДӀадаьхна хаамаш
+    mark:
+      as_read: Хаам баьшна аьлла билгалбаьккхина
+      as_unread: Хаам ца баьшна аьлла билгалбаьккхина
+    unmute:
+      notice: Хаам дӀабаькхна "Чудохурша" чура
+      error: Хаам дӀа ца бахийтина "Чудохурша" чу.
+    destroy:
+      destroyed: Хаам дӀабаьккхина
   passwords:
     new:
       title: Пароль меттахӀоттор
       heading: Йицйелла пароль?
-      email address: 'Электронан поштан адрес:'
+      email address: Электронан поштан адрес
       new password button: Керла пароль кхосса соьга
+      help_text: Ахь дӀаязвелла лелийна электронан почтан адрес йазде, оха цу тӀе
+        ссылка йоуьйтур йу, ахь хьайн пароль йухаметтахӀотто йиш йолуш.
+    create:
+      send_paranoid_instructions: Нагахь санна хьан электронан почтан адрес тхан базехь
+        делахь, масех минот йалча хьан электронан почтан адресе пароль меттахӀотторан
+        ссылка кхачор йу хьуна.
     edit:
       title: Йуха а йазйе пароль
       heading: Йуха а йазйе пароль %{user}
       reset: ХӀоттайе пароль
+      flash token bad: Ца карийна и токен, URL хьажа мегар дуй?
     update:
       flash changed: Хьан пароль хийцина.
+      flash token bad: Ца карийна и токен, URL хьажа мегар дуй?
+  preferences:
+    show:
+      title: Суна хазахеттарш
+      preferred_editor: ГӀоле хеташ волу редактор
+      preferred_languages: ГӀоле хета меттанаш
+      edit_preferences: Хийца хазахеттарш
+    edit:
+      title: Хийца хазахеттарш
+      save: Карладаха хазахеттарш
+      cancel: Цаоьшу
+    update:
+      failure: Хазахеттарш карладаха аьтто ца баьлла.
+    update_success_flash:
+      message: Хазахеттарш карладаьхна.
   profiles:
     edit:
-      image: 'Сурт:'
+      title: Профиль нисйан
+      save: Карлайаккха профиль
+      cancel: Цаоьшу
+      image: Сурт
       gravatar:
+        gravatar: Gravatar лелайар
+        what_is_gravatar: Gravatar хIун йу?
         disabled: Gravatar дӀайайина.
+        enabled: Хьан Gravatar гайтар дӀахӀоттийна.
+      new image: Сурт тӀетоха
+      keep image: ХӀинцалера сурт дита
+      delete image: ХӀинцалера сурт дӀадаккха
+      replace image: ХӀинцалера сурт хийца
+      image size hint: (квадратан суьрташ лаххара а 100x100 дика болх беш ду)
+      home location: Со волу меттиг
+      no home location: Хьайн цӀера меттиг ца гайтина ахь.
+      update home location on click: Карта тӀе хьаьжча цӀийнан меттиг карлаяккха?
+      show: Гайта
+      delete: ДӀайаккха
+      undelete: Йухадаккха дӀадаккхар
+    update:
+      success: Профиль карлаяьккхина.
+      failure: Профиль карлаяккха аьтто ца баьлла.
   sessions:
     new:
       title: ЧугӀо
       tab_title: ЧугӀо
-      email or username: 'Эл. пошт йа декъашхочун цӀе:'
-      password: 'Пароль:'
+      login_to_authorize_html: OpenStreetMap чу вала, %{client_app_name} чу кхача.
+      email or username: Эл. пошт йа декъашхочун цӀе
+      password: Пароль
       remember: Дагалаца со
       lost password link: Йицйелла пароль?
       login_button: ЧугӀо
       register now: ДӀадазло
+      with external: йа кхи сайтан агӀонца чувала
+      or: йа
+      auth failure: Бехк ма билла, цу цIарца йе парольца чувала аьтто ца баьлла.
     destroy:
       title: Болх дӀаберзор
       heading: OpenStreetMap чуьра болх дӀаберзор
       logout_button: Болх дӀаберзор
+    suspended_flash:
+      suspended: Бехк ма билла, хьан аккаунт сацийна шеконе гӀуллакх дина бахьана
+        долуш.
+      contact_support_html: Дехар ду %{support_link} зӀене вала, нагахь хьайна хӀара
+        къасто лаахь.
+      support: гӀo дан
+  shared:
+    markdown_help:
+      heading_html: '%{kramdown_link} лелош анализ йина'
+      headings: Коьрта могlнаш
+      heading: Корта
+      subheading: Корталг
+      unordered: Низам боцу къепйоза
+      ordered: Низам болу къепйоза
+      first: Хьалхара элемент
+      second: ШолгIа элемент
+      link: Хьажорг
+      text: Текст
+      image: Сурт
   site:
     about:
       next: Кхин дӀа
@@ -911,10 +2093,10 @@ ce:
     helper:
       block_duration:
         hours:
-          one: 1 сахьт
-          other: '%{count} сахьт'
+          one: '%{count} сахьт'
+          other: '%{count} сахьташ'
     show:
-      created: Кхоьллина
+      created: 'Кхоьллина:'
       status: 'Статус:'
       show: Гайта
       edit: Хийца
@@ -946,7 +2128,7 @@ ce:
       open_title: 'Кечйина йоцу билгало #%{note_name}'
       closed_title: 'Кечйина билгало #%{note_name}'
       hidden_title: 'Къайлайаьккхина билгало #%{note_name}'
-      report: Хаамбе хӀокху билгалонах
+      report: хаамбе хӀокху билгалонах
       hide: Къайлайаккха
       resolve: Кечйан
       reactivate: Йуха йела
index c0bb2048c122d54111446f80f8c9688b7ce7ed3d..ded9ac4674433a13933b72f976920686f4b5e104 100644 (file)
@@ -2689,7 +2689,6 @@ cs:
       oauth2_authorizations: Autorizace OAuth 2
       muted_users: Ztlumení uživatelé
     auth_providers:
-      openid_logo_alt: Přihlášení pomocí OpenID
       openid_login_button: Pokračovat
       openid:
         title: Přihlásit se pomocí OpenID
index 21d78c0f9d993bb684a8fda5896a9dc97166fccd..08de0e7671f20b285b2f2fa6006e178b30f06eb1 100644 (file)
@@ -458,6 +458,9 @@ cy:
       introduction: Cliciwch ar y map i ddarganfod nodweddion gerllaw.
       nearby: Nodweddion gerllaw
       enclosing: Nodweddion amgáu
+  old_ways:
+    not_found:
+      sorry: 'Sori, ni ellir canfod fersiwn %{version} o lwybr #%{id}.'
   changesets:
     changeset_paging_nav:
       showing_page: Tudalen %{page}
@@ -875,6 +878,7 @@ cy:
           college: Adeilad Coleg
           commercial: Adeilad Masnachol
           construction: Adeilad yn cael ei Adeiladu
+          cowshed: Beudy
           detached: Tŷ Datgysylltiedig
           dormitory: Dorm
           duplex: Tŷ Deublyg
@@ -947,6 +951,7 @@ cy:
           fire_extinguisher: Diffoddwr Tân
           fire_water_pond: Pwll Dŵr Tân
           landing_site: Man Glanio Argyfwng
+          life_ring: Bwi Achub
           phone: Ffôn Argyfwng
           water_tank: Tanc Dŵr Argyfwng
         highway:
@@ -1934,6 +1939,7 @@ cy:
           des Impôts.'
         contributors_fr_france: Ffrainc
         contributors_hr_croatia: Croatia
+        contributors_hr_open_data_portal: Porth Data Agored Cenedlaethol
         contributors_nl_credit_html: '%{netherlands}: Cynhwysir data &copy; AND, 2007
           (%{and_link})'
         contributors_nl_netherlands: Iseldiroedd
@@ -1990,6 +1996,9 @@ cy:
         title: Sut i Helpu
         join_the_community:
           title: Ymunwch â'r gymuned
+          explanation_html: Os ydych chi wedi sylwi ar broblem gyda'n data, efallai
+            mae heol ar goll neu eich cyfeiriad chi, gallwch chi ymuno â chymuned
+            OpenStreetMap ac ychwanegu neu atgyweirio'r data eich hun.
       other_concerns:
         title: Gofidion eraill
         copyright: tudalen hawlfraint
@@ -2284,26 +2293,25 @@ cy:
       oauth2_authorizations: Awdurdodiadau OAuth 2
       muted_users: Defnyddwyr ag Anwybyddwyd
     auth_providers:
-      openid_logo_alt: Mewngofnodi gydag OpenID
       openid_login_button: Parhau
       openid:
         title: Mewngofnodi ag OpenID
-        alt: Mewngofnodi ag URL OpenID
+        alt: Logo OpenID
       google:
         title: Mewngofnodi â Google
-        alt: Mewngofnodi â Google OpenID
+        alt: Logo Google
       facebook:
         title: Mewngofnodi â Facebook
-        alt: Mewngofnodi â Chyfrif Facebook
+        alt: Logo Facebook
       microsoft:
         title: Mewngofnodi â Microsoft
-        alt: Mewngofnodi â Chyfrif Microsoft
+        alt: Logo Microsoft
       github:
         title: Mewngofnodi â GitHub
-        alt: Mewngofnodi â Chyfrif GitHub
+        alt: Logo GitHub
       wikipedia:
         title: Mewngofnodi ag Wicipedia
-        alt: Mewngofnodi â Chyfrif Wicipedia
+        alt: Logo Wicipedia
   oauth:
     authorize:
       title: Awdurdodi mynediad i'ch cyfrif
@@ -2420,6 +2428,9 @@ cy:
       external auth: 'Dilysu Trydydd Parti:'
       continue: Cofrestru
       terms accepted: Diolch am dderbyn telerau newydd cyfranwyr!
+      email_help:
+        privacy_policy: polisi preifatrwydd
+      consider_pd_html: Rwy'n ystyried fy nghyfraniadau i fod yn y %{consider_pd_link}.
       consider_pd: parth cyhoeddus
       or: neu
       use external auth: neu gofrestru gyda thrydydd parti
@@ -2469,6 +2480,7 @@ cy:
       add as friend: Ychwanegu ffrind
       mapper since: 'Yn mapio ers:'
       last map edit: 'Golygiad map diwethaf:'
+      no activity yet: Dim gweithgaredd eto
       uid: 'ID Defnyddiwr:'
       ct status: 'Telerau cyfrannwr:'
       ct undecided: Heb Benderfynu
@@ -2496,6 +2508,8 @@ cy:
       create_block: Rhwystro'r Defnyddiwr hwn
       activate_user: Gwneud y cyfri'n fyw
       confirm_user: Cadarnhau'r Defnyddiwr
+      unconfirm_user: Dad-gadarnhau'r defnyddiwr hwn
+      unsuspend_user: Dad-atal y defnyddiwr hwn
       hide_user: Cuddio'r Defnyddiwr
       unhide_user: Datguddio'r Defnyddiwr
       delete_user: Dileu'r Defnyddiwr
@@ -2507,6 +2521,8 @@ cy:
     index:
       title: Defnyddwyr
       heading: Defnyddwyr
+      older: Defnyddwyr Hŷn
+      newer: Defnyddwyr Newydd
       summary_html: Crëwyd %{name} o %{ip_address} ar %{date}
       summary_no_ip_html: '%{name} wedi''i greu ar %{date}'
       confirm: Cadarnhau Defnyddwyr Dewisiedig
@@ -2542,14 +2558,19 @@ cy:
       heading_html: Wrthi'n golygu bloc ar %{name}
       show: Gweld y bloc hwn
       back: Gweld pob bloc
+    create:
+      flash: Wedi creu bloc ar ddefnyddiwr %{name}.
     update:
+      only_creator_can_edit: Dim ond y cymedrolwr a grëodd y bloc hwn all ei olygu.
       success: Bloc wedi'i ddiweddaru.
     index:
       title: Blociau defnyddiwr
       heading: Rhestr o flociau defnyddwyr
       empty: Dim blociau eto.
     revoke:
+      title: Yn dadflocio %{block_on}
       revoke: Dad-flocio!
+      flash: Tynnwyd y bloc hwn.
     revoke_all:
       empty: Nid oes gan %{name} flociau gweithredol.
       active_blocks:
index a8d3b4736a8121a8b906ef87c2c1018e0d316cfa..a7f5c85d9c45aea726232f6ad23139f99ee91f9e 100644 (file)
@@ -294,8 +294,8 @@ da:
         retain_edits: Hvis du har foretaget redigeringer af kort-databasen, vil disse
           blive gemt.
         retain_traces: Hvis du har uploadet spor, vil disse blive gemt.
-        retain_diary_entries: Hvis du har dagbogskommentarer, vil disse fortsat blive
-          gemt. De vil dog ikke længere blive vist.
+        retain_diary_entries: Dine eventuelle blogindlæg og blogkommentarer vil fortsat
+          bevares, men vil dog ikke længere blive vist.
         retain_notes: Dine noter og kommentarer til kortet vil blive gemt, men vil
           ikke længere blive vist.
         retain_changeset_discussions: Hvis du har bidraget til diskussioner vedrørende
@@ -354,6 +354,7 @@ da:
     deleted_ago_by_html: Slettet %{time_ago} af %{user}
     edited_ago_by_html: Redigeret %{time_ago} af %{user}
     version: Version
+    redacted_version: Redigeret version
     in_changeset: Ændringssæt
     anonymous: anonym
     no_comment: (ingen kommentar)
@@ -366,7 +367,10 @@ da:
       other: '%{count} veje'
     download_xml: Hent XML
     view_history: Se historik
+    view_unredacted_history: Vis uredigeret historik
     view_details: Se detaljer
+    view_redacted_data: Vis redigeret data
+    view_redaction_message: Vis redigeringsbesked
     location: 'Sted:'
     node:
       title_html: 'Punkt: %{name}'
@@ -424,9 +428,9 @@ da:
         way: vej
         relation: relation
     start_rjs:
-      feature_warning: Henter %{num_features} kortobjekter, dette kan gøre din browser
-        langsom eller få den til ikke at svare. Er du sikker på at du ønsker at få
-        vist disse data?
+      feature_warning: Indlæser %{num_features} kortobjekter, hvilket kan gøre din
+        browser langsom eller få den til ikke at svare. Er du sikker på, at du ønsker
+        at få vist disse data?
       load_data: Indlæs data
       loading: Indlæser...
     tag_details:
@@ -489,6 +493,7 @@ da:
         closed: Lukket
         belongs_to: Forfatter
     subscribe:
+      heading: Abonner på den følgende ændringssæt-diskussion?
       button: Abonner på diskussion
     unsubscribe:
       heading: Vil du afmelde følgende diskussion om ændringssæt?
@@ -499,8 +504,12 @@ da:
     no_such_entry:
       title: Intet sådant ændringssæt
       heading: 'Intet indlæg med id: %{id}'
+      body: Der findes desværre intet ændringssæt med id %{id}. Tjek stavningen, eller
+        måske er linket du trykkede på forkert.
     show:
       title: 'Ændringssæt: %{id}'
+      created: 'Oprettet: %{when}'
+      closed: 'Lukket: %{when}'
       created_ago_html: Oprettet %{time_ago}
       closed_ago_html: Lukket %{time_ago}
       created_ago_by_html: Oprettet %{time_ago} af %{user}
@@ -588,6 +597,9 @@ da:
     show:
       title: Blog for %{user} | %{title}
       user_title: Blog for %{user}
+      discussion: Diskussion
+      subscribe: Abonnér
+      unsubscribe: Afmeld
       leave_a_comment: Tilføj en kommentar
       login_to_leave_a_comment_html: '%{login_link} for at kommentere'
       login: Log ind
@@ -631,9 +643,11 @@ da:
         title: OpenStreetMap-blogindlæg
         description: Seneste blogindlæg fra brugere af OpenStreetMap
     subscribe:
+      heading: Abonner på følgende blogindlægsdiskussion?
       button: Abonner på diskussion
     unsubscribe:
-      heading: Vil du afmelde følgende dagbogsindlægsdiskussion?
+      heading: Vil du afmelde følgende blogindlægsdiskussion?
+      button: Afmeld diskussion
   diary_comments:
     index:
       title: Kommentarer til blogindlæg tilføjet af %{user}
@@ -645,6 +659,8 @@ da:
       comment: Kommentar
       newer_comments: Nyere kommentarer
       older_comments: Ældre kommentarer
+    new:
+      heading: Vil du tilføje en kommentar til følgende blogindlægsdiskussion?
   doorkeeper:
     errors:
       messages:
@@ -682,6 +698,10 @@ da:
       contact_the_community_html: Vær velkommen til at %{contact_link} OpenStreetMap-fællesskabet
         hvis du finder et dødt link eller en fejl. Noter venligst den eksakte URL
         hvorpå fejlen opstod.
+    bad_request:
+      title: Dårlig anmodning
+      description: Den handling, du anmodede om på OpenStreetMap-serveren, er ikke
+        gyldig (HTTP 400)
     forbidden:
       title: Adgang forbudt
       description: Den handling du anmodede om på OpenStreetMap-serveren er kun tilgængelig
@@ -1641,6 +1661,7 @@ da:
     more: Mere
   user_mailer:
     diary_comment_notification:
+      description: 'OpenStreetMap blogindlæg #%{id}'
       subject: '[OpenStreetMap] %{user} kommenterede på et blogindlæg'
       hi: Hej %{to_user},
       header: '%{from_user} har kommenteret på OpenStreetMap-blogindlægget med emnet
@@ -1651,6 +1672,8 @@ da:
         %{commenturl} eller sende en besked til forfatteren på %{replyurl}
       footer_html: Du kan også læse kommentaren på %{readurl}, og du kan kommentere
         på %{commenturl} eller sende en besked til forfatteren på %{replyurl}
+      footer_unsubscribe: Du kan afmelde diskussionen på %{unsubscribeurl}
+      footer_unsubscribe_html: Du kan afmelde diskussionen på %{unsubscribeurl}
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: Hej %{to_user},
@@ -1713,6 +1736,7 @@ da:
       click_the_link: Hvis dette er dig, så klik på linket nedenfor for at nulstille
         din adgangskode.
     note_comment_notification:
+      description: 'OpenStreetMap-bemærkning #%{id}'
       anonymous: En anonym bruger
       greeting: Hej,
       commented:
@@ -1750,8 +1774,8 @@ da:
           Bemærkningen er i nærheden af %{place}.'
         commented_note_html: '%{commenter} har genaktiveret en kortbemærkning du har
           kommenteret. Bemærkningen er i nærheden af %{place}.'
-      details: Flere oplysninger om bemærkningen kan findes på %{url}.
-      details_html: Flere oplysninger om kortbemærkningen kan findes på %{url}.
+      details: Besvar eller få mere at vide om bemærkningen på %{url}.
+      details_html: Besvar eller få mere at vide om bemærkningen på %{url}.
     changeset_comment_notification:
       description: 'OpenStreetMap-ændringssæt #%{id}'
       hi: Hej %{to_user},
@@ -1771,8 +1795,8 @@ da:
         partial_changeset_with_comment: med kommentaren '%{changeset_comment}'
         partial_changeset_with_comment_html: med kommentaren '%{changeset_comment}'
         partial_changeset_without_comment: uden kommentar
-      details: Flere oplysninger om ændringssættet kan findes på %{url}.
-      details_html: Flere oplysninger om ændringssættet kan findes på %{url}.
+      details: Besvar eller få mere at vide om ændringssættet på %{url}.
+      details_html: Besvar eller få mere at vide om ændringssættet på %{url}.
       unsubscribe: Du kan afmelde opdateringer om dette ændringssæt på %{url}.
       unsubscribe_html: Du kan afmelde opdateringer om dette ændringssæt på %{url}.
   confirmations:
@@ -1947,13 +1971,15 @@ da:
     new:
       title: Log ind
       tab_title: Log ind
+      login_to_authorize_html: Log ind på OpenStreetMap for at få adgang til %{client_app_name}.
       email or username: E-mailadresse eller brugernavn
       password: Adgangskode
       remember: Husk mig
       lost password link: Glemt din adgangskode?
       login_button: Log ind
       register now: Registrér nu
-      with external: 'Alternativt kan du bruge en tredjepart for at logge ind:'
+      with external: eller log ind med en tredjepart
+      or: eller
       auth failure: Kunne ikke logge på med disse oplysninger.
     destroy:
       title: Log af
@@ -2131,6 +2157,12 @@ da:
         contributors_fr_credit_html: '%{france}: Indeholder data fra Direction Générale
           des Impôts.'
         contributors_fr_france: Frankrig
+        contributors_hr_credit_html: |-
+          %{croatia}: Indeholder data fra %{dgu_link} og %{open_data_portal}
+          (offentlig information om Kroatien).
+        contributors_hr_croatia: Kroatien
+        contributors_hr_dgu: Kroatiens statsgeodætiske administration
+        contributors_hr_open_data_portal: Den nationale portal for åbne data
         contributors_nl_credit_html: '%{netherlands}: Indeholder &copy; AND data,
           2007 (%{and_link}).'
         contributors_nl_netherlands: Holland
@@ -2268,8 +2300,8 @@ da:
         title: Hjælp for nybegyndere
         description: Hjælp for nybegyndere, som vedligeholdes af fællesskabet.
       community:
-        title: Fællesskabs-forum
-        description: Et sted for fælles diskussioner om OpenStreetMap.
+        title: Hjælp og fællesskabsforum
+        description: Et fælles sted til at søge hjælp og have samtaler om OpenStreetMap.
       mailing_lists:
         title: Mailinglister
         description: Stil et spørgsmål eller diskuter interessante spørgsmål på en
@@ -2548,6 +2580,8 @@ da:
       identifiable: IDENTIFICERBAR
       private: PRIVAT
       trackable: SPORBAR
+      details_with_tags_html: '%{time_ago} af %{user} i %{tags}'
+      details_without_tags_html: '%{time_ago} af %{user}'
     index:
       public_traces: Offentlige GPS-spor
       my_gps_traces: Mine GPS-spor
@@ -2583,6 +2617,8 @@ da:
         other: GPX fil med %{count} punkter fra %{user}
       description_without_count: GPX fil fra %{user}
   application:
+    basic_auth_disabled: 'Basal HTTP-godkendelse (Basic Auth) er deaktiveret: %{link}'
+    oauth_10a_disabled: 'OAuth 1.0 og 1.0a er deaktiveret: %{link}'
     permission_denied: Du har ikke rettigheder til at udføre den handling
     require_cookies:
       cookies_needed: Du har tilsyneladende deaktiveret cookies i din browser. Aktivér
@@ -2604,25 +2640,26 @@ da:
       oauth2_authorizations: OAuth 2-autorisationer
       muted_users: Stillegjorte Brugere
     auth_providers:
-      openid_logo_alt: Log på med et OpenID
+      openid_url: OpenID-URL
+      openid_login_button: Fortsæt
       openid:
-        title: Log  med OpenID
-        alt: Log på med en OpenID-URL
+        title: Log ind med OpenID
+        alt: OpenID-logo
       google:
-        title: Log  med Google
-        alt: Log på med et Google OpenID
+        title: Log ind med Google
+        alt: Google-logo
       facebook:
-        title: Log  med Facebook
-        alt: Log på med en Facebook-konto
+        title: Log ind med Facebook
+        alt: Facebook-logo
       microsoft:
         title: Log ind med Microsoft
-        alt: Log ind med en Microsoft-konto
+        alt: Microsoft-logo
       github:
         title: Log ind med GitHub
-        alt: Log ind med en GitHub-konto
+        alt: GitHub-logo
       wikipedia:
         title: Log ind med Wikipedia
-        alt: Log ind med en Wikipedia-konto
+        alt: Wikipedia-logo
   oauth:
     authorize:
       title: Tillad adgang til din konto
@@ -2653,7 +2690,7 @@ da:
     scopes:
       openid: Log ind med OpenStreetMap
       read_prefs: Læse brugerpræferencer
-      write_prefs: Ændre brugeralternativer
+      write_prefs: Ændre brugerpræferencer
       write_diary: Udgiv brugerblogs, kommenter og få venner
       write_api: Ændre kortet
       read_gpx: Læse private GPS-spor
@@ -2662,9 +2699,12 @@ da:
       write_redactions: Rediger kortdata
       read_email: Læse brugerens e-mailadresse
       skip_authorization: Godkend applikation automatisk
+    for_roles:
+      moderator: Denne tilladelse er til handlinger, der kun er tilgængelige for moderatorer
   oauth_clients:
     new:
       title: Registrere en ny applikation
+      disabled: Registrering af OAuth 1-applikationer er blevet deaktiveret
     edit:
       title: Redigere din applikation
     show:
@@ -2748,6 +2788,7 @@ da:
       title: Mine autoriserede applikationer
       application: Applikation
       permissions: Tilladelser
+      last_authorized: Sidst autoriseret
       no_applications_html: Du har endnu ikke autoriseret nogle %{oauth2}-applikationer.
     application:
       revoke: Fjern adgang
@@ -2755,6 +2796,8 @@ da:
   users:
     new:
       title: Opret konto
+      tab_title: Opret en konto
+      signup_to_authorize_html: Tilmeld dig OpenStreetMap for at få adgang til %{client_app_name}.
       no_auto_account_create: Vi kan desværre ikke oprette en konto automatisk for
         dig pt.
       please_contact_support_html: Kontakt venligst %{support_link} for at få oprettet
@@ -2764,20 +2807,32 @@ da:
         header: Fri og redigerbar
         paragraph_1: Til forskel fra andre kort, er OpenStreetMap skabt af folk som
           dig, og er gratis for enhver både at rette, opdatere, downloade og anvende.
-        paragraph_2: Opret en konto for at kunne bidrage. Vi sender dig en e-mail
-          for at bekræfte kontoen.
+        paragraph_2: Opret en konto for at bidrage.
+        welcome: Velkommen til OpenStreetMap
+      duplicate_social_email: Hvis du allerede har en OpenStreetMap-konto og ønsker
+        at bruge en tredjeparts identitetsudbyder, skal du logge ind med din adgangskode
+        og ændre indstillingerne for din konto.
       display name description: Dit offentligt synlige brugernavn. Du kan ændre dette
         senere i indstillingerne.
       by_signing_up:
+        html: Ved at tilmelde dig accepterer du vores %{tou_link}, %{privacy_policy_link}
+          og %{contributor_terms_link}.
         privacy_policy: privatlivs-politik
         privacy_policy_title: OSMF privatlivs-politik inklusiv afsnit om e-mailadresser
+        contributor_terms: vilkår for bidragsydere
+      tou: brugsbetingelser
       external auth: 'Tredjeparts-godkendelse:'
       continue: Opret konto
       terms accepted: Tak for at du accepterede de nye vilkår for bidragsydere!
       email_help:
+        privacy_policy: privatlivspolitik
+        privacy_policy_title: OSMF privatlivspolitik inklusiv afsnit om e-mailadresser
         html: Din adresse vises ikke offentligt. Se vores %{privacy_policy_link} for
           flere oplysninger.
-      use external auth: Alternativt kan du bruge en tredjepart for at logge på
+      consider_pd_html: Jeg anser mine bidrag for at være i %{consider_pd_link}.
+      consider_pd: offentligt domæne
+      or: eller
+      use external auth: eller tilmeld dig med en tredjepart
     terms:
       title: Vilkår
       heading: Vilkår
@@ -2842,6 +2897,8 @@ da:
       remove as friend: Fjern som ven
       add as friend: Tilføj som ven
       mapper since: 'Kortlægger siden:'
+      last map edit: 'Sidste kortredigering:'
+      no activity yet: Ingen aktivitet endnu
       uid: 'Bruger-ID:'
       ct status: 'Vilkår for bidragsydere:'
       ct undecided: Uafklaret
@@ -2882,6 +2939,11 @@ da:
     index:
       title: Brugere
       heading: Brugere
+      older: Ældre brugere
+      newer: Nyere brugere
+      found_users:
+        one: '%{count} bruger fundet'
+        other: '%{count} brugere fundet'
       summary_html: '%{name} oprettet fra %{ip_address} på %{date}'
       summary_no_ip_html: '%{name} oprettet på %{date}'
       confirm: Bekræft valgte brugere
@@ -3038,6 +3100,15 @@ da:
       reason: Årsag til blokering
       status: Status
       revoker_name: Tilbagekaldt af
+      older: Ældre blokeringer
+      newer: Nyere blokeringer
+    navigation:
+      all_blocks: Alle blokeringer
+      blocks_on_me: Blokeringer af mig
+      blocks_on_user: Blokeringer af %{user}
+      blocks_by_me: Blokeringer udført af mig
+      blocks_by_user: Blokeringer udført af %{user}
+      block: 'Blokering #%{id}'
   user_mutes:
     index:
       title: Stillegjorte Brugere
@@ -3097,7 +3168,7 @@ da:
       reactivate: Genaktiver
       comment_and_resolve: Kommentere på og løse
       comment: Kommenter
-      log_in_to_comment: Log ind for at kommentere på denne note
+      log_in_to_comment: Log ind for at kommentere på denne bemærkning
       report_link_html: Hvis denne bemærkning indeholder følsomme oplysninger, der
         skal fjernes, kan du %{link}.
       other_problems_resolve: For alle andre problemer med bemærkningen, bedes du
@@ -3110,6 +3181,10 @@ da:
       intro: Opdaget en fejl eller noget der mangler? Lad andre kortlæggere vide det,
         så vi kan ordne det. Flyt markøren til den korrekte position, og skriv en
         bemærkning for at forklare problemet.
+      anonymous_warning_html: Du er ikke logget ind. Venligst %{log_in} eller %{sign_up},
+        hvis du vil modtage opdateringer til din bemærkning.
+      anonymous_warning_log_in: Log ind
+      anonymous_warning_sign_up: tilmeld dig
       advice: Dine oplysninger er offentlige og vil måske blive brugt til at opdatere
         kortet, så indtast ikke personlige oplysninger eller oplysninger fra kort
         beskyttet af ophavsret eller mappeoversigter.
index ddcf42d20a7cfede0e3e30edca1d268f429a16c2..0ede99b496065712ab5dba3bf6a9546924c933e4 100644 (file)
@@ -97,6 +97,7 @@
 # Author: Str4nd
 # Author: Suriyaa Kudo
 # Author: Sushi
+# Author: TMg
 # Author: Tehabe
 # Author: The Evil IP address
 # Author: ThePiscin
@@ -510,8 +511,9 @@ de:
         way: s Weges
         relation: r Relation
     start_rjs:
-      feature_warning: Laden von %{num_features} Funktionen kann deinen Browser langsamer
-        machen oder einfrieren. Sollen diese Daten wirklich angezeigt werden?
+      feature_warning: Lade %{num_features} Funktionen, was deinen Browser verlangsamen
+        oder nicht mehr reagieren lassen könnte. Bist du sicher, dass du diese Daten
+        anzeigen möchtest?
       load_data: Daten laden
       loading: Lade …
     tag_details:
@@ -745,6 +747,8 @@ de:
       comment: Kommentar
       newer_comments: Neuere Kommentare
       older_comments: Ältere Kommentare
+    new:
+      heading: Füge einen Kommentar zur folgenden Tagebucheintragsdiskussion hinzu?
   doorkeeper:
     errors:
       messages:
@@ -2776,26 +2780,26 @@ de:
       oauth2_authorizations: OAuth 2-Berechtigungen
       muted_users: Stummgeschaltete Benutzer
     auth_providers:
-      openid_logo_alt: Mit einer OpenID anmelden
+      openid_url: OpenID-URL
       openid_login_button: Fortfahren
       openid:
         title: Mit OpenID anmelden
-        alt: Mit einer OpenID-URL anmelden
+        alt: OpenID Logo
       google:
         title: Mit Google anmelden
-        alt: Mit einer Google-OpenID anmelden
+        alt: Google Logo
       facebook:
         title: Mit Facebook anmelden
-        alt: Mit einem Facebook-Konto anmelden
+        alt: Facebook Logo
       microsoft:
         title: Mit Microsoft anmelden
-        alt: Mit einem Microsoft-Konto anmelden
+        alt: Microsoft Logo
       github:
         title: Mit GitHub anmelden
-        alt: Mit einem GitHub-Konto anmelden
+        alt: GitHub Logo
       wikipedia:
         title: Mit Wikipedia anmelden
-        alt: Mit einem Wikipedia-Benutzerkonto anmelden
+        alt: Wikipedia Logo
   oauth:
     authorize:
       title: Zugriff auf dein Benutzerkonto autorisieren
index d1f10a6149f9cb9b3d974850dd4516931432bb72..c49f305227f439337afed76e9f0ca83e9336dde4 100644 (file)
@@ -1007,9 +1007,6 @@ diq:
       public_traces: Pêron rê akerde rêçê GPS
       public_traces_from: '%{user} ra pêron rê akerde rêçê GPS'
       tagged_with: '%{tags} ya etiketyayo'
-  application:
-    auth_providers:
-      openid_logo_alt: OpenID ya dekewê de
   oauth_clients:
     show:
       edit: Teferuatan bıvurne
index 8332cd24aa80d3437b39fb4fde81117e21442770..e7a1d3508af6c576eecc4ff12636a5d78bc839ed 100644 (file)
@@ -1432,8 +1432,6 @@ dsb:
       need_to_see_terms: Twój pśistup na API jo nachylu wusajźony. Pšosym pśizjaw
         se k webpówjerchoju, aby se wužywarske wuměnjenja woglědał. Njetrjebaš zwóliś
         do nich, musyš se je jano woglědaś.
-    auth_providers:
-      openid_logo_alt: Z OpenID se pśizjawiś
   oauth:
     authorize:
       title: Pśistup na twójo konto awtorizěrowaś
index 829fb7c7433cd2dae17a66f79640bc29df9edc3e..ef3f2c0b2359be5d6c37d23a257ab2405f33c165 100644 (file)
@@ -19,6 +19,7 @@
 # Author: KATRINE1992
 # Author: KATRINE1993
 # Author: Kiriakos
+# Author: KonVog
 # Author: Kongr43gpen
 # Author: Logictheo
 # Author: Macofe
@@ -60,7 +61,7 @@ el:
       issue_comment:
         create: Προσθήκη σχολίου
       message:
-        create: Î£Ï\84είλε
+        create: Î\91Ï\80οÏ\83Ï\84ολή
       client_application:
         create: Εγγραφή
         update: Ενημέρωση
@@ -538,7 +539,7 @@ el:
       hidden_comment_by_html: Κρυφό σχόλιο από %{user} %{time_ago}
       hide_comment: απόκρυψη
       unhide_comment: επανεμφάνιση
-      comment: Σχολιάζω
+      comment: Σχολιάστε
       changesetxml: Ομάδας αλλαγών XML
       osmchangexml: osmChange XML
     paging_nav:
@@ -2653,7 +2654,6 @@ el:
       oauth2_authorizations: Εξουσιοδοτήσεις OAuth 2
       muted_users: Χρήστες σε Σίγαση
     auth_providers:
-      openid_logo_alt: Σύνδεση με ένα OpenID
       openid_login_button: Συνέχεια
       openid:
         title: Σύνδεση με OpenID
index c4e0b619961b9a25d673591c18d5c4c6f932300d..9850467f2f26cea4250ef0aef13e6814c25df25f 100644 (file)
@@ -1697,7 +1697,6 @@ en-GB:
         to the web interface to view the Contributor Terms. You do not need to agree,
         but you must view them.
     auth_providers:
-      openid_logo_alt: Log in with an OpenID
       openid:
         title: Login with OpenID
         alt: Login with an OpenID URL
index 4c743b03353487a3db53bb9de125f29d8e596eac..0278bb8f2fc6a2a3ef0a46286ca7de337de51ddc 100644 (file)
@@ -386,7 +386,7 @@ en:
         way: "way"
         relation: "relation"
     start_rjs:
-      feature_warning: "Loading %{num_features} features, which may make your browser slow or unresponsive. Are sure you want to display this data?"
+      feature_warning: "Loading %{num_features} features, which may make your browser slow or unresponsive. Are you sure you want to display this data?"
       load_data: "Load Data"
       loading: "Loading..."
     tag_details:
@@ -609,6 +609,8 @@ en:
       comment: Comment
       newer_comments: "Newer Comments"
       older_comments: "Older Comments"
+    new:
+      heading: Add a comment to the following diary entry discussion?
   doorkeeper:
     errors:
       messages:
@@ -2583,8 +2585,7 @@ en:
       oauth2_authorizations: OAuth 2 authorizations
       muted_users: Muted Users
     auth_providers:
-      openid_logo_alt: "Log in with an OpenID"
-      openid_html: "%{logo} OpenID"
+      openid_url: "OpenID URL"
       openid_login_button: "Continue"
       openid:
         title: Log in with OpenID
index 045b30084211236397076dad9e3c49bcb729749d..b300354ea24da2633d80c30cbdea5d5eed87a2fb 100644 (file)
@@ -646,6 +646,8 @@ eo:
       comment: Komento
       newer_comments: Pli novaj komentoj
       older_comments: Pli malnovaj komentoj
+    new:
+      heading: Ĉu aldoni komenton al la diskuto pri tiu ĉi taglibra afiŝo?
   doorkeeper:
     errors:
       messages:
@@ -2600,26 +2602,26 @@ eo:
       oauth2_authorizations: Rajtigoj OAuth 2
       muted_users: Silentigitaj uzantoj
     auth_providers:
-      openid_logo_alt: Ensaluti per OpenID
+      openid_url: OpenID-retadreso
       openid_login_button: Daŭrigi
       openid:
         title: Ensaluti per OpenID
-        alt: Ensaluti per ligilo OpenID
+        alt: markemblemo de OpenID
       google:
         title: Ensaluti per Google
-        alt: Ensaluti per Google OpenID
+        alt: markemblemo de Google
       facebook:
         title: Ensaluti per Facebook
-        alt: Ensaluti per konto Facebook
+        alt: markemblemo de Facebook
       microsoft:
         title: Ensaluti per Microsoft
-        alt: Ensaluti per konto Microsoft
+        alt: markemblemo de Microsoft
       github:
         title: Ensaluti per GitHub
-        alt: Ensaluti per konto GitHub
+        alt: markemblemo de GitHub
       wikipedia:
         title: Ensaluti per Vikipedio
-        alt: Ensaluti per Vikipedia konto
+        alt: markemblemo de Vikipedio
   oauth:
     authorize:
       title: Rajtigi aliron al via konto
@@ -2786,7 +2788,10 @@ eo:
       continue: Registriĝi
       terms accepted: Dankon por akcepto de nova interkonsento pri kontribuado!
       email_help:
-        html: Via retpoŝta adreso ne estas publike montrata, legu la dokumenton %{privacy_policy_link}
+        privacy_policy: privatecan politikon
+        privacy_policy_title: privateca politiko de OSMF enhavanta sekcion pri uzo
+          de retpoŝta adreso
+        html: Via retpoŝta adreso ne estas publike montrata, legu nian %{privacy_policy_link}
           por pli da informoj.
       consider_pd_html: Mi konsideras ke miaj kontribuoj estu eldonitaj en la %{consider_pd_link}.
       consider_pd: publika havaĵo
index 0fb2497b1ba97618466ca707a2d346cb227ee2d9..5d29738cf2c2ff4519cc94d0192ebbf02f143492 100644 (file)
@@ -499,9 +499,9 @@ es:
         way: vía
         relation: relación
     start_rjs:
-      feature_warning: Cargando %{num_features} elementos, lo que puede hacer que
-        tu navegador se ralentice o no responda. ¿Estás seguro de que deseas mostrar
-        estos datos?
+      feature_warning: Cargando %{num_features} funciones, lo que puede hacer que
+        su navegador sea lento o no responda. ¿Está seguro de que desea mostrar estos
+        datos?
       load_data: Cargar datos
       loading: Cargando…
     tag_details:
@@ -725,13 +725,16 @@ es:
     index:
       title: Comentarios de diario añadidos por %{user}
       heading: Comentarios del diario de %{user}
-      subheading_html: Comentarios del diario añadidos por %{user}
+      subheading_html: Comentarios de diario añadidos por %{user}
       no_comments: Ningún comentario de diario
       post: Publicación
       when: Cuando
       comment: Comentario
       newer_comments: Comentarios más recientes
       older_comments: Comentarios más antiguos
+    new:
+      heading: ¿Agregar un comentario a la siguiente discusión sobre la entrada del
+        diario?
   doorkeeper:
     errors:
       messages:
@@ -1004,7 +1007,7 @@ es:
           shed: Cobertizo
           stable: Establo
           static_caravan: Caravana
-          sty: Orzuelo
+          sty: Pocilga
           temple: Edificio de templo
           terrace: Edificio terraza
           train_station: Edificio de estación de tren
@@ -2748,26 +2751,26 @@ es:
       oauth2_authorizations: Autorizaciones de OAuth 2
       muted_users: Usuarios silenciados
     auth_providers:
-      openid_logo_alt: Inicia sesión con una OpenID
+      openid_url: URL de OpenID
       openid_login_button: Continuar
       openid:
         title: Inicia sesión con OpenID
-        alt: Inicia sesión con una URL OpenID
+        alt: Logotipo de OpenID
       google:
         title: Inicia sesión con Google
-        alt: Inicia sesión con una OpenID de Google
+        alt: Logotipo de Google
       facebook:
         title: Inicia sesión con Facebook
-        alt: Inicia sesión con una cuenta de Facebook
+        alt: Logotipo de Facebook
       microsoft:
         title: Inicia sesión con Microsoft
-        alt: Inicia sesión con una cuenta Microsoft
+        alt: Logotipo de Microsoft
       github:
         title: Inicia sesión con GitHub
-        alt: Inicia sesión con una cuenta de GitHub
+        alt: Logotipo de GitHub
       wikipedia:
         title: Inicia sesión con Wikipedia
-        alt: Inicia sesión con una cuenta de Wikipedia
+        alt: Logotipo de Wikipedia
   oauth:
     authorize:
       title: Autorizar el acceso a tu cuenta
@@ -2925,7 +2928,7 @@ es:
       by_signing_up:
         html: Al inscribirse, estás de acuerdo con nuestro %{tou_link}, %{privacy_policy_link}
           y %{contributor_terms_link}.
-        privacy_policy: normativa de privacidad
+        privacy_policy: política de privacidad
         privacy_policy_title: Política de privacidad de la OSMF, incluida la sección
           sobre direcciones de correo electrónico
         contributor_terms: términos de colaborador
@@ -2934,6 +2937,9 @@ es:
       continue: Registrarse
       terms accepted: ¡Gracias por aceptar los nuevos Términos de Colaborador!
       email_help:
+        privacy_policy: política de privacidad
+        privacy_policy_title: Política de privacidad de la OSMF, incluida la sección
+          sobre direcciones de correo electrónico
         html: Tu dirección no se mostrará públicamente, consulta nuestra %{privacy_policy_link}
           para obtener más información.
       consider_pd_html: Considero que mis contribuciones estén en el %{consider_pd_link}.
index 9fdf3ded18eff8873a4b5fe16d9b6f8ef285b517..36bfb88ecfdd7a2205baa9ce7191d3393af30390 100644 (file)
@@ -2518,7 +2518,6 @@ et:
       oauth2_authorizations: OAuth 2 volitused
       muted_users: Vaigistatud kasutajad
     auth_providers:
-      openid_logo_alt: Logi sisse OpenID-ga
       openid:
         title: Logi sisse OpenID-ga
         alt: Logi sisse OpenID URL-iga
index ecead5043ab297829f26fad4a3270171b8c8ffa5..cbf41d0e0c9937765601aad2b4e31d05ba3bbef1 100644 (file)
@@ -2465,7 +2465,6 @@ eu:
       oauth2_applications: OAuth 2 aplikazioak
       oauth2_authorizations: OAuth 2 baimenak
     auth_providers:
-      openid_logo_alt: ID irekiarekin saioa hasi
       openid:
         title: ID irekiarekin saioa hasi
         alt: Hasi saioa ID irekia duen URL batekin
index 87f9b2ba014174327a359c9a0a9521a74bbd7c9e..cf92d804e5059386ec99a91f26ce95305377f092 100644 (file)
@@ -2230,7 +2230,6 @@ fa:
       oauth2_applications: برنامه‌های OAuth 2
       oauth2_authorizations: مجوزهای OAuth 2
     auth_providers:
-      openid_logo_alt: ورود با OpenID
       openid:
         title: ورود با OpenID
         alt: ورود با نشانی OpenID
index 2d6cf1245af2bdce6790a334622a27eb872177ae..ee10ca3b7c6535466301f99a599a725abdc50dec 100644 (file)
@@ -2402,7 +2402,6 @@ fi:
       oauth2_authorizations: OAuth 2 -käyttöoikeudet
       muted_users: Hiljennetyt käyttäjät
     auth_providers:
-      openid_logo_alt: Kirjaudu sisään OpenID-tunnuksella
       openid:
         title: Kirjaudu sisään OpenID:llä
         alt: Kirjaudu sisään OpenID-osoitteella
index 74c5f889a7048c99b7d9b14a8bbd40daa83c912b..ac74c5873037237a4155182a5f89d83ced437a33 100644 (file)
@@ -832,7 +832,6 @@ fit:
       my_traces: Minun GPS-jäljet
   application:
     auth_providers:
-      openid_logo_alt: Lokkaa sisäle OpenID-konttulla
       openid:
         title: Lokkaa sisäle OpenID:llä
         alt: Lokkaa sisäle OpenID-atressilla
index 0d8fca3c0eec1517cfb776f260cf11d5392a2348..1fd7c35fb0f21bab3856024f61f6f3a62fd0b199 100644 (file)
@@ -2806,7 +2806,6 @@ fr:
       oauth2_authorizations: Droits OAuth 2
       muted_users: Utilisateurs silencieux
     auth_providers:
-      openid_logo_alt: Se connecter avec OpenID
       openid_login_button: Continuer
       openid:
         title: Connexion avec OpenID
@@ -2992,7 +2991,6 @@ fr:
         html: En vous inscrivant, vous acceptez nos %{tou_link}, %{privacy_policy_link}
           et %{contributor_terms_link}.
         privacy_policy: politique de confidentialité
-        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: Politique de confidentialité de l’OSMF, qui comprend
           une section sur les adresses de courriel
         contributor_terms_url: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms/FR
@@ -3003,7 +3001,6 @@ fr:
       terms accepted: Merci d’avoir accepté les nouveaux termes du contributeur !
       email_help:
         privacy_policy: politique de confidentialité
-        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: Politique de confidentialité d'OSMF, y compris une section
           sur les adresses e-mail
         html: Votre adresse n’est pas affichée publiquement, consultez notre %{privacy_policy_link}
@@ -3049,7 +3046,6 @@ fr:
         les nouvelles Conditions de contribution. Pour plus d’informations, veuillez
         consulter %{terms_declined_link}.
       terms_declined_link: cette page du wiki
-      terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     no_such_user:
       title: Utilisateur inexistant
       heading: L’utilisateur ou l’utilisatrice « %{user} » n’existe pas
index 9e56f35c655e671b54638d798cb9091b9e4265a8..28822994e212511f466eba3103cad462022a35cd 100644 (file)
@@ -1415,7 +1415,6 @@ fur:
       oauth2_applications: Aplicazions OAuth 2
       oauth2_authorizations: Autorizazions OAuth 2
     auth_providers:
-      openid_logo_alt: Jentre cuntun OpenID
       openid:
         title: Jentre cun OpenID
         alt: Jentre cuntun URL OpenID
index d0341eeb3efe2063fb9b990d63d26b19c80dc38f..a8a7d20221136429c49fcf2bee72b93062b2913e 100644 (file)
@@ -2161,7 +2161,6 @@ fy:
       oauth2_applications: Applikaasjes OAuth 2
       oauth2_authorizations: Autorisaasjes OAuth 2
     auth_providers:
-      openid_logo_alt: Meld jo oan mei in openID
       openid:
         title: Oanmelde mei OpenID
         alt: Meld jo oan mei in OpenID-URL
index fe3bcd1f31da965c97958a5612d53505f874ab2f..7accdab5b04614c20aa6fbfed685e440925eb3d8 100644 (file)
@@ -1644,7 +1644,6 @@ ga:
         isteach ar an gcomhéadan gréasáin le hamharc ar Théarmaí na Rannchuiditheoirí.
         Ní gá duit aontú, ach ní mór duit amharc orthu.
     auth_providers:
-      openid_logo_alt: Logáil isteach le OpenID
       openid:
         title: Logáil isteach le OpenID
         alt: Logáil isteach le URL OpenID
index b5abb6ef052b657a2033e440873ad5ef762b52b3..a60901e37e4a2f29c98a0409751fd2fa293c06f0 100644 (file)
@@ -1505,7 +1505,6 @@ gd:
         chom-pàirtiche a shealltainn. Cha leig thu leas aontachadh riutha, ach feumaidh
         tu an leughadh.
     auth_providers:
-      openid_logo_alt: Clàraich a-steach le OpenID
       openid:
         title: Clàraich a-steach le OpenID
         alt: Clàraich a-steach le URL OpenID
index a3531fe0fd0dfc287f7ec8de9c7728a72cf058f5..c68587eab28b9689a53cb44985952e3e764b50cc 100644 (file)
@@ -8,6 +8,7 @@
 # Author: Elisardojm
 # Author: Fitoschido
 # Author: Gallaecio
+# Author: Ignatgg
 # Author: Iváns
 # Author: MAGHOI
 # Author: Macofe
@@ -416,8 +417,9 @@ gl:
         way: vía
         relation: relación
     start_rjs:
-      feature_warning: A carga de %{num_features} elementos pode facer que o teu navegador
-        vaia lento ou que non responda. Estás na certeza de querer amosar eses datos?
+      feature_warning: Cargando %{num_features} funcións, que poden facer que o teu
+        navegador sexa lento ou non responda. Estás seguro de que queres mostrar estes
+        datos?
       load_data: Cargar os datos
       loading: Estase a carregar...
     tag_details:
@@ -652,6 +654,9 @@ gl:
       comment: Comentario
       newer_comments: Comentarios máis recentes
       older_comments: Comentarios máis vellos
+    new:
+      heading: Queres engadir un comentario á seguinte discusión sobre a entrada do
+        diario?
   doorkeeper:
     errors:
       messages:
@@ -2665,26 +2670,26 @@ gl:
       oauth2_authorizations: Autorizacións OAuth 2
       muted_users: Usuarios silenciados
     auth_providers:
-      openid_logo_alt: Acceder ó sistema cun OpenID
+      openid_url: URL de OpenID
       openid_login_button: Continuar
       openid:
         title: Acceder ó sistema co OpenID
-        alt: Acceder ó sistema cun URL do OpenID
+        alt: Logo do OpenID
       google:
         title: Acceder ó sistema con Google
-        alt: Acceder ó sistema cun OpenID de Google
+        alt: Logo de Google
       facebook:
         title: Acceder ó sistema co Facebook
-        alt: Acceder ó sistema cunha conta do Facebook
+        alt: Logo do Facebook
       microsoft:
         title: Acceder ó sistema con Microsoft
-        alt: Acceder ó sistema cunha conta de Microsoft
+        alt: Logo de Microsoft
       github:
         title: Acceder ó sistema co GitHub
-        alt: Acceder ó sistema cunha conta do GitHub
+        alt: Logo do GitHub
       wikipedia:
         title: Acceder ó sistema coa Wikipedia
-        alt: Acceder ó sistema cunha conta da Wikipedia
+        alt: Logo da Wikipedia
   oauth:
     authorize:
       title: Autorizar o acceso á túa conta
@@ -2853,6 +2858,9 @@ gl:
       continue: Rexistrarse
       terms accepted: Grazas por aceptar os novos termos do colaborador!
       email_help:
+        privacy_policy: política de protección de datos
+        privacy_policy_title: Política de protección de datos da OSMF, que contén
+          unha sección sobre os enderezos de correo electrónico
         html: O teu enderezo non se mostra publicamente; consulta a nosa %{privacy_policy_link}
           para obter máis información.
       consider_pd_html: Acepto que as miñas contribucións estean no %{consider_pd_link}.
index 9e0027fbd6a0774796aeb28c502e64b2fa9383d0..eb83043cffafdb0ad66025886b2a77fd394959dc 100644 (file)
@@ -2639,26 +2639,25 @@ he:
       oauth2_authorizations: אישורי OAuth 2
       muted_users: משתמשים מושתקים
     auth_providers:
-      openid_logo_alt: כניסה עם OpenID
       openid_login_button: המשך
       openid:
         title: כניסה עם OpenID
-        alt: ×\9b× ×\99ס×\94 ×¢×\9d URL ×©ל OpenID
+        alt: ×¡×\9eל OpenID
       google:
         title: כניסה עם גוגל
-        alt: ×\9b× ×\99ס×\94 ×¢×\9d OpenID ×©ל גוגל
+        alt: ×¡×\9eל גוגל
       facebook:
         title: כניסה עם פייסבוק
-        alt: ×\9b× ×\99ס×\94 ×¢×\9d ×\97ש×\91×\95×\9f פייסבוק
+        alt: ×¡×\9e×\9c פייסבוק
       microsoft:
         title: כניסה עם מיקרוסופט
-        alt: ×\9b× ×\99ס×\94 ×¢×\9d ×\97ש×\91×\95×\9f מיקרוסופט
+        alt: ×¡×\9e×\9c מיקרוסופט
       github:
         title: כניסה עם גיטהאב
-        alt: ×\9b× ×\99ס×\94 ×¢×\9d ×\97ש×\91×\95×\9f גיטהאב
+        alt: ×¡×\9e×\9c גיטהאב
       wikipedia:
         title: כניסה עם ויקיפדיה
-        alt: ×\9b× ×\99ס×\94 ×¢×\9d ×\97ש×\91×\95×\9f ויקיפדיה
+        alt: ×¡×\9e×\9c ויקיפדיה
   oauth:
     authorize:
       title: אישור הגישה לחשבון שלך
@@ -2818,6 +2817,7 @@ he:
       continue: הרשמה
       terms accepted: תודה על קבלת תנאי התרומה החדשים!
       email_help:
+        privacy_policy: מדיניות פרטיות
         html: הכתובת שלך אינה מוצגת בפומבי, ר' את %{privacy_policy_link} שלנו למידע
           נוסף.
       consider_pd_html: מבחינתי, התרומות שלי נמצאות ב%{consider_pd_link}.
index 33933b8adba980c944f4058c783611a8c1a248ae..ef76c43a865dc2219db5562474ab12a4e38d3e61 100644 (file)
@@ -1532,7 +1532,6 @@ hr:
       blocked: Tvoj pristup API-u je blokiran. Prijavite se na web sučelje da saznate
         više.
     auth_providers:
-      openid_logo_alt: Prijavi se sa OpenID-om
       openid:
         title: Prijavi se sa OpenID-om
         alt: Prijavi se sa URL-om OpenID-a
index bbfeab47a43ed591e75ee5f5cd6bd830022bfb8e..9977b0942b4d71d8f1caf69f22e9220568212780 100644 (file)
@@ -2272,7 +2272,6 @@ hsb:
       oauth2_authorizations: Prawa OAUTH 2
       muted_users: Zněmjeni wužiwarjo
     auth_providers:
-      openid_logo_alt: Z OpenID přizjewić
       openid:
         title: Přizjewjenje z OpenID
         alt: Přizjewjenje z OpenID-URL
index 422d03997cd71d034ca29ac04d8e301b6029391e..487a061aec6517c75a2d6ada1a23eed1cc6bbb62 100644 (file)
@@ -2567,7 +2567,6 @@ hu:
       oauth2_authorizations: OAuth 2 engedélyek
       muted_users: Elnémított felhasználók
     auth_providers:
-      openid_logo_alt: Bejelentkezés egy OpenID-vel
       openid:
         title: Bejelentkezés OpenID-vel
         alt: Bejelentkezés OpenID-URL-lel
index 7607b0ca702b1ce387eb01a5aeb38115ae96ac65..2599f2a548949350cde8decb88f89686374cd69c 100644 (file)
@@ -873,6 +873,7 @@ ia:
           college: Edificio de academia
           commercial: Edificio commercial
           construction: Edificio in construction
+          cowshed: Vaccheria
           detached: Casa individual
           dormitory: Dormitorio
           duplex: Casa duple
@@ -902,6 +903,7 @@ ia:
           shed: Remissa
           stable: Stabulo
           static_caravan: Caravana
+          sty: Porcheria
           temple: Edificio de templo
           terrace: Casas in serie
           train_station: Edificio de station ferroviari
@@ -2630,26 +2632,25 @@ ia:
       oauth2_authorizations: Autorisationes OAuth 2
       muted_users: Usatores silentiate
     auth_providers:
-      openid_logo_alt: Aperir session con OpenID
       openid_login_button: Continuar
       openid:
         title: Aperir session con OpenID
-        alt: Aperir session con un URL de OpenID
+        alt: Logotypo de OpenID
       google:
         title: Aperir session con Google
-        alt: Aperir session con un OpenID de Google
+        alt: Logotypo de Google
       facebook:
         title: Aperir session con Facebook
-        alt: Aperir session con un conto de Facebook
+        alt: Logotypo de Facebook
       microsoft:
         title: Aperir session con Microsoft
-        alt: Aperir session con un conto Microsoft
+        alt: Logotypo de Microsoft
       github:
         title: Aperir session con GitHub
-        alt: Aperir session con un conto de GitHub
+        alt: Logotypo de GitHub
       wikipedia:
         title: Aperir session con Wikipedia
-        alt: Aperir session con un conto de Wikipedia
+        alt: Logotypo de Wikipedia
   oauth:
     authorize:
       title: Autorisar accesso a tu conto
@@ -2818,6 +2819,9 @@ ia:
       continue: Crear conto
       terms accepted: Gratias pro acceptar le nove conditiones de contributor!
       email_help:
+        privacy_policy: politica de confidentialitate
+        privacy_policy_title: Politica de confidentialitate del OSMF con un section
+          sur adresses de e-mail
         html: Tu adresse non es monstrate publicamente. Consulta nostre %{privacy_policy_link}
           pro plus information.
       consider_pd_html: Io considera que mi contributiones es in le %{consider_pd_link}.
index ab4f2b73406017c12a989d8a4af8aca8a1bec13f..b69f47e04b5589d8ccb4c044b09fc02699e39b91 100644 (file)
@@ -25,6 +25,7 @@
 # Author: Jagwar
 # Author: JakArtisan
 # Author: Kenrick95
+# Author: Leapofod
 # Author: Macofe
 # Author: Mbee-wiki
 # Author: Mnam23
@@ -2576,7 +2577,7 @@ id:
       oauth2_authorizations: Otorisasi OAuth 2
       muted_users: Pengguna yang Dibisukan
     auth_providers:
-      openid_logo_alt: Login dengan OpenID
+      openid_url: URL OpenID
       openid:
         title: Masuk log dengan OpenID
         alt: Masuk log dengan URL OpenID
index 492cd790e46dabec9bdfc9d47581444e4b8697f0..4a899c9e3c0f7bf5ffd504f601e1fb03cb63547f 100644 (file)
@@ -2584,7 +2584,6 @@ is:
       oauth2_authorizations: OAuth 2 auðkenningar
       muted_users: Þaggaðir notendur
     auth_providers:
-      openid_logo_alt: Skrá inn með OpenID-aðgangi
       openid:
         title: Skrá inn með OpenID
         alt: Skrá inn með OpenID-slóð
@@ -2754,7 +2753,6 @@ is:
         því síðar í stillingunum þínum.
       by_signing_up:
         privacy_policy: meðferð persónuupplýsinga
-        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: persónuverndarstefnu OSMF, þar með talinn hlutann um
           tölvupóstföng
       external auth: 'Auðkenning með þriðja aðila:'
@@ -2800,7 +2798,6 @@ is:
         nýja skilmála vegna framlags (contributor terms). Til að sjá ítarlegri upplýsingar,
         geturðu skoðað %{terms_declined_link}.
       terms_declined_link: þessari wiki síðu
-      terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     no_such_user:
       title: Notandi ekki til
       heading: Notandinn %{user} er ekki til
index 0008edb5f15ee221e2074322bdfbca3508e2a7f0..765a6eadb8e4adfef62efc160f402504f239498e 100644 (file)
@@ -2691,26 +2691,25 @@ it:
       oauth2_authorizations: Autorizzazioni OAuth 2
       muted_users: Utenti silenziati
     auth_providers:
-      openid_logo_alt: Accedi con un OpenID
       openid_login_button: Continua
       openid:
         title: Accedi con OpenID
-        alt: Accedi con un URL OpenID
+        alt: Logo di OpenID
       google:
         title: Accedi con Google
-        alt: Accedi con un OpenID di Google
+        alt: Logo di Google
       facebook:
         title: Accedi con Facebook
-        alt: Accedi con un'utenza Facebook
+        alt: Logo di Facebook
       microsoft:
         title: Accedi con Microsoft
-        alt: Accedi con un'utenza Microsoft
+        alt: Logo di Microsoft
       github:
         title: Accedi con GitHub
-        alt: Effettua l'acceso con un'utenza GitHub
+        alt: Logo di GitHub
       wikipedia:
         title: Accedi con Wikipedia
-        alt: Accedi con un'utenza Wikipedia
+        alt: Logo di Wikipedia
   oauth:
     authorize:
       title: Autorizzare l'accesso al tuo account
index 8eed2a1af18e94485c40e00c34e599fdc61dcef2..d29ac234eed6515cd8dfb593f2add7b4c54e481c 100644 (file)
@@ -2393,26 +2393,26 @@ ja:
       oauth2_authorizations: OAuth 2 認証
       muted_users: ミュートした利用者
     auth_providers:
-      openid_logo_alt: OpenID でログイン
+      openid_url: OpenID URL
       openid_login_button: 次へ
       openid:
         title: OpenID でログイン
-        alt: OpenID URLでログイン
+        alt: OpenID ロゴ
       google:
         title: Googleでログイン
-        alt: Google OpenIDでログイン
+        alt: Google ロゴ
       facebook:
         title: Facebookでログイン
-        alt: Facebook ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\82\92使ç\94¨ã\81\97ã\81¦ã\83­ã\82°ã\82¤ã\83³
+        alt: Facebook ã\83­ã\82´
       microsoft:
         title: Microsoftでログイン
-        alt: Microsoftアカウントでログイン
+        alt: Microsoft ロゴ
       github:
         title: GitHubでログイン
-        alt: GitHubのアカウントでログイン
+        alt: GitHub ロゴ
       wikipedia:
         title: ウィキペディアでログイン
-        alt: ã\82¦ã\82£ã\82­ã\83\9aã\83\87ã\82£ã\82¢ã\81®ã\82¢ã\82«ã\82¦ã\83³ã\83\88ã\81§ã\83­ã\82°ã\82¤ã\83³
+        alt: ã\82¦ã\82£ã\82­ã\83\9aã\83\87ã\82£ã\82¢ã\83­ã\82´
   oauth:
     authorize:
       title: あなたのアカウントへのアクセスの認証
@@ -2545,7 +2545,7 @@ ja:
       no_auto_account_create: 残念ながら、現在、自動ではアカウントを作成できません。
       support: サポート
       about:
-        header: ã\83\95ã\83ªã\83¼ã\80\81編集可能
+        header: ã\83\95ã\83ªã\83¼ã\81§編集可能
         paragraph_1: 他の地図とは異なり、OpenStreetMapは完全に皆さんのような人によって作成されおり、誰でも自由に修正・更新・ダウンロード・利用ができます。
         paragraph_2: 投稿を通じて貢献するには、登録が必要です。
         welcome: OpenStreetMap へようこそ。
@@ -2561,6 +2561,8 @@ ja:
       continue: 利用者登録
       terms accepted: 新しい協力者規約を承諾していただき、ありがとうございます!
       email_help:
+        privacy_policy: プライバシー・ポリシー
+        privacy_policy_title: OSMFのプライバシーポリシー(メールアドレスに関するセクションを含む)
         html: あなたのアドレスは公開されません。詳細については、%{privacy_policy_link} をご覧ください。
       consider_pd_html: 私の貢献は %{consider_pd_link} にあるとみなします。
       consider_pd: パブリックドメイン
index d9abfa136c7ed1a508814b98fa7a2ad049bba135..1b1e22e13d55a489dc97d432cbcbef38fd2915ba 100644 (file)
@@ -972,9 +972,6 @@ ka:
       identifiable: იდენტიფიცირებადი
       private: პირადი
       trackable: კონტროლირებადი
-  application:
-    auth_providers:
-      openid_logo_alt: შესვლა OpenID-ის საშუალებით
   oauth:
     authorize:
       allow_write_api: რუკის შეცვლა.
index 5b402f458b219b671cf70c626d727898dbf0f10e..5f50c7112faf48f57bae6fc44c3d7972aa10d5f3 100644 (file)
@@ -1146,7 +1146,6 @@ kab:
         send ad tizmireḍ ad teskelseḍ asnifel-ik.
       blocked: Anekcum-ik API yewḥel. Qqen ar ugrudem Web i ugar n isallen.
     auth_providers:
-      openid_logo_alt: Qqen s OpenID
       openid:
         title: Qqen s OpenID
         alt: Qqen s tensa URL OpenID
index 3b56e52aab67568f7b3a57a906fdf8592bc11eda..703afbbf080a5cd40a4e991093c45217e69650cd 100644 (file)
@@ -2398,7 +2398,6 @@ ko:
       oauth2_applications: OAuth 2 애플리케이션
       oauth2_authorizations: OAuth 2 인가
     auth_providers:
-      openid_logo_alt: OpenID로 로그인
       openid_login_button: 계속
       openid:
         title: OpenID로 로그인하기
@@ -2603,7 +2602,6 @@ ko:
       terms_declined_html: 새 기여자 약관에 동의하지 않기로 결정하셨습니다. 자세한 내용은 %{terms_declined_link}를
         참조하세요.
       terms_declined_link: 이 위키 문서
-      terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     no_such_user:
       title: 이러한 사용자는 없습니다
       heading: '%{user} 사용자는 존재하지 않습니다'
index 082ab186a3b741a5865f2d4f5e432c9e745c43ca..3bfeae8d509861bf9a5a5921e71b59a15cf4278a 100644 (file)
@@ -2257,7 +2257,6 @@ ku-Latn:
       oauth2_applications: Aplîkasyonên OAuth 2
       oauth2_authorizations: Destûrdarkirinên OAuth 2
     auth_providers:
-      openid_logo_alt: Têketina bi OpenID'yê
       openid:
         title: Bi OpenID'yê têkeve
         alt: Têketina bi URL'yek OpenID'yê
index 3cf6f4fce76e76a2bb1ba4246bdfde5ce6b1cf40..89dce410858e99f7ba316e3f4704835c191b5475 100644 (file)
@@ -2126,26 +2126,26 @@ lb:
       oauth2_applications: OAuth 2 Applikatiounen
       oauth2_authorizations: OAuth 2 Autorisatiounen
     auth_providers:
-      openid_logo_alt: Alogge mat enger OpenID
+      openid_url: OpenID-URL
       openid_login_button: Virufueren
       openid:
         title: Mat OpenID aloggen
-        alt: Mat enger OpenID-URL aloggen
+        alt: OpenID-Logo
       google:
         title: Mat Google aloggen
-        alt: Mat enger Google-OpenID aloggen
+        alt: Google-Logo
       facebook:
         title: Mat Facebook aloggen
-        alt: Mat engem Facebook-Kont aloggen
+        alt: Facebook-Logo
       microsoft:
         title: Mat Microsoft aloggen
-        alt: Mat engem Microsoft-Kont aloggen
+        alt: Microsoft-Logo
       github:
         title: Mat GitHub aloggen
-        alt: Mat engem GitHub-Kont aloggen
+        alt: GitHub-Logo
       wikipedia:
         title: Mat Wikipedia aloggen
-        alt: Mat engem Wikipedia-Benotzerkont aloggen
+        alt: Wikipedia-Logo
   oauth:
     authorize:
       title: Zougrëff op Äre Benotzerkont autoriséieren
index 7743d0fbd1a6b45748b9efcf9a6792d28c1d12b3..bfbc4ba8b73d230aa93aea160d4ab46486a97965 100644 (file)
@@ -2444,7 +2444,6 @@ lt:
       oauth2_applications: „OAuth 2“ programos
       oauth2_authorizations: „OAuth 2“ prieigos teisės
     auth_providers:
-      openid_logo_alt: Prisijunkite su OpenID
       openid:
         title: Prisijunkite su OpenID
         alt: Prisijunkite su OpenID URL
index a8f071b85fecb0fbb4ed56e1e62883b6826f58d8..9a24f0e615261b980f38c0f3b9275bb247b7f19e 100644 (file)
@@ -1839,7 +1839,6 @@ lv:
         mājaslapas interfeisā, lai apskatītu Veidotāju Noteikumus. Tev nevajag piekrist,
         bet tev tie ir jāapskata.
     auth_providers:
-      openid_logo_alt: Pieteikties ar OpenID
       openid:
         title: Pieslēgties ar OpenID
         alt: Pieslēgties ar OpenID saiti
index a5809bbc285fd4faea87c3e020ec10283013e38f..68a208db8101c5a85bb7f6c420609d3a8f846322 100644 (file)
@@ -627,6 +627,8 @@ mk:
       comment: Коментар
       newer_comments: Понови коментари
       older_comments: Постари коментари
+    new:
+      heading: Ставате коментар во следниов разговор за дневничка ставка?
   doorkeeper:
     errors:
       messages:
@@ -2615,26 +2617,26 @@ mk:
       oauth2_authorizations: Овластувања за OAuth 2
       muted_users: Замолкнати корисници
     auth_providers:
-      openid_logo_alt: Најава со OpenID
+      openid_url: URL на OpenID
       openid_login_button: Продолжи
       openid:
         title: Најава со OpenID
-        alt: Ð\9dаÑ\98ава Ñ\81о URL Ð·а OpenID
+        alt: Ð\9bого Ð½а OpenID
       google:
         title: Најава со Google
-        alt: Ð\9dаÑ\98ава Ñ\81о OpenID Ð¾Ð´ Google
+        alt: Ð\9bого Ð½Ð° Ð\93Ñ\83гл
       facebook:
         title: Најава со Фејсбук
-        alt: Ð\9dаÑ\98ава Ñ\81о Ð¿Ñ\80оÑ\84ил на Фејсбук
+        alt: Ð\9bого на Фејсбук
       microsoft:
         title: Најава со Microsoft
-        alt: Ð\9dаÑ\98ава Ñ\81о Ñ\81меÑ\82ка на Microsoft
+        alt: Ð\9bого на Microsoft
       github:
         title: Најава со GitHub
-        alt: Ð\9dаÑ\98ава Ñ\81о Ñ\81меÑ\82ка на GitHub
+        alt: Ð\9bого на GitHub
       wikipedia:
         title: Најава со Википедија
-        alt: Ð\9dаÑ\98ава Ñ\81о Ñ\81меÑ\82ка на Википедија
+        alt: Ð\9bого на Википедија
   oauth:
     authorize:
       title: Овластете пристап до вашата сметка
@@ -2792,7 +2794,6 @@ mk:
         html: Зачленувајќи се, се согласувате со нашите %{tou_link}, %{privacy_policy_link}
           и %{contributor_terms_link}.
         privacy_policy: правила за личните податоци
-        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: Правилата за лични податоци на OSMF, со одделот за е-поштенски
           адреси
         contributor_terms_url: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
@@ -2803,7 +2804,6 @@ mk:
       terms accepted: Ви благодариме што ги прифативте новите услови за учество!
       email_help:
         privacy_policy: правила за личните податоци
-        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: Правилата за лични податоци на OSMF, со одделот за е-поштенски
           адреси
         html: Вашата адреса не се прикажува јавно. Повеќе ќе дознаете на %{privacy_policy_link}.
index cb123d32fe8eaa7540d89b226ec84a96a2b3d317..d37a94449b10c62cf161db3e78f673ee0bad78a5 100644 (file)
@@ -578,7 +578,6 @@ mo:
       title: Експортаре
   application:
     auth_providers:
-      openid_logo_alt: Ынтраря ку ажуторул OpenID
       openid:
         title: Ынтраря ку ажуторул OpenID
         alt: Ынтраря ку ажуторул OpenID URL
index feea8ea25551f1553a2a41a85b5f4df5ea534b49..aae77d325d7652e0b26236318fe8d6c07e138c39 100644 (file)
@@ -1840,7 +1840,6 @@ ms:
       account_settings: Tetapan Akaun
       muted_users: Pengguna yang Diredamkan
     auth_providers:
-      openid_logo_alt: Log masuk dengan OpenID
       openid:
         title: Log masuk dengan OpenID
         alt: Log masuk dengan OpenID URL
index cc3144503cba732a3f3dfba369eb442f0ad6b39a..8af954036782151e88986058f29d55f7076e6c56 100644 (file)
@@ -2037,7 +2037,6 @@ nb:
         nettsiden for å lese bidragsytervilkårene. Du trenger ikke godta vilkårene,
         men du må lese dem.
     auth_providers:
-      openid_logo_alt: Logg inn med en OpenID
       openid:
         title: Logg inn med OpenID
         alt: Logg inn med en OpenID-URL
index 6f99e926761e1341b605a9df12f9243b88967dfd..ac6ff5e7640c293069b92f4e67341610025fb9f1 100644 (file)
@@ -1467,6 +1467,8 @@ ne:
       by_signing_up:
         privacy_policy: गोपनीयता नीति
       continue: खाता खाेल्नुहाेस्
+      email_help:
+        privacy_policy: गोपनीयता नीति
     terms:
       title: सर्तहरू
       heading: सर्तहरू
index e52b1d94256be4bab3c58136e91d7751bde281f7..0f2311ba4ab5a8551a5c5b79368b1e94b4688947 100644 (file)
@@ -933,6 +933,7 @@ nl:
           college: Schoolgebouw
           commercial: Commercieel gebouw
           construction: Gebouw in aanbouw
+          cowshed: Koeienstal
           detached: Alleenstaande woning
           dormitory: Studentenhuis
           duplex: Koppelwoning
@@ -962,6 +963,7 @@ nl:
           shed: Schuurtje
           stable: Stal
           static_caravan: Stacaravan
+          sty: Varkensstal
           temple: Tempelgebouw
           terrace: Rijhuizen
           train_station: Spoorwegstationsgebouw
@@ -1767,7 +1769,7 @@ nl:
     lost_password:
       subject: '[OpenStreetMap] Verzoek wachtwoord opnieuw instellen'
       greeting: Hallo,
-      hopefully_you: Iemand (mogelijk u) heeft aangevraagd om het wachtwoord opnieuw
+      hopefully_you: Iemand (mogelijk u) heeft gevraagd om het wachtwoord opnieuw
         in te laten stellen voor het account met dit e-mailadres op openstreetmap.org.
       click_the_link: Als u dit bent, klik dan op de onderstaande koppeling om uw
         wachtwoord opnieuw in te stellen.
@@ -2706,26 +2708,26 @@ nl:
       oauth2_authorizations: OAuth 2 autorisaties
       muted_users: Gedempte gebruikers
     auth_providers:
-      openid_logo_alt: Aanmelden met een OpenID
+      openid_url: OpenID-URL
       openid_login_button: Doorgaan
       openid:
         title: Aanmelden met OpenID
-        alt: Aanmelden met een OpenID URL
+        alt: OpenID-logo
       google:
         title: Aanmelden met Google
-        alt: Aanmelden met een Google OpenID
+        alt: Google-logo
       facebook:
         title: Aanmelden met Facebook
-        alt: Aanmelden met een Facebookaccount
+        alt: Facebook-logo
       microsoft:
         title: Aanmelden met Microsoft
-        alt: Aanmelden met een Microsoft-account
+        alt: Microsoft-logo
       github:
         title: Aanmelden met GitHub
-        alt: Aanmelden met een GitHub-account
+        alt: GitHub-logo
       wikipedia:
         title: Aanmelden met Wikipedia
-        alt: Aanmelden met een Wikipedia-account
+        alt: Wikipedia-logo
   oauth:
     authorize:
       title: Geef toegang tot uw account
@@ -2894,6 +2896,8 @@ nl:
       continue: Registreren
       terms accepted: Dank u wel voor het aanvaarden van de nieuwe bijdragersovereenkomst!
       email_help:
+        privacy_policy: privacybeleid
+        privacy_policy_title: OSMF-privacybeleid, met een sectie over e-mailadressen
         html: Uw adres wordt niet openbaar gemaakt, zie ons %{privacy_policy_link}
           voor meer informatie.
       consider_pd_html: Ik beschouw mijn bijdragen als onderdeel van het %{consider_pd_link}.
index 27bf7917790ca8505d341982ec61c523c86f694c..ce8463ba0552fd9fdc0fa26e7ca968da5804dd6a 100644 (file)
@@ -2265,7 +2265,6 @@ nn:
         på nettsiden for å lese bidragsytervilkårene. Du treng ikkje godta vilkåra,
         men du må lese dei.
     auth_providers:
-      openid_logo_alt: Logg inn med ein OpenID
       openid:
         title: Logg inn med OpenID
         alt: Logg inn med ein OpenID-URL
index 4ff4648764dd2a82dcb37c98dc532ced3381fef9..46655160eb26a08bcdbf303d5caf5ba260b0636b 100644 (file)
@@ -1598,7 +1598,6 @@ nqo:
       oauth2_applications: 0Auth 2 ߟߥߊ߬ߟߌ߬ߟߌ ߟߎ߬
       oauth2_authorizations: 0Auth 2 ߖߡߊ߬ߙߌ߬ߦߊ߬ߟߌ
     auth_providers:
-      openid_logo_alt: ߌ ߜߊ߲߬ߞߎ߲߬ ߏߔߌ߲ ID ߟߊ߫
       openid:
         title: ߌ ߜߊ߲߬ߞߎ߲߫ ߏߔߌ߲ ID ߘߌ߫
         alt: ߌ ߜߊ߲߬ߞߎ߲߫ ߏߔߌ߲ ID URL ߟߊ߫
index d77000a49377ef116598c2cae1ab2923feca35cd..63393cdaf89c3100fa28d01875dbd1154d39e48e 100644 (file)
@@ -2141,7 +2141,6 @@ oc:
     settings_menu:
       account_settings: Configuracion
     auth_providers:
-      openid_logo_alt: Se connectar amb un OpenID
       openid:
         title: Se connectar amb OpenID
         alt: Se connectar amb una URL OpenID
index cdb58736ed2ddd6f630b124ad86fffd03a80b144..895fbd9d0dd616accb187a255934dd459946f811 100644 (file)
@@ -37,6 +37,7 @@
 # Author: Maro21
 # Author: Mateon1
 # Author: Mikini
+# Author: Mkot
 # Author: Nemo bis
 # Author: Odie2
 # Author: OrlPL
@@ -555,8 +556,19 @@ pl:
         created: Utworzone
         closed: Zamknięte
         belongs_to: Autor
+    subscribe:
+      heading: Zasubskrybować następującą dyskusję dotyczącą zmian ?
+      button: Zasubskrybuj dyskusję
+    unsubscribe:
+      heading: Wypisać się z poniższej dyskusji na temat zestawu zmian?
+      button: Wypisz się z dyskusji
     heading:
       title: Zestaw zmian %{id}
+      created_by_html: Utworzony przez %{link_user} w %{created}.
+    no_such_entry:
+      title: Brak takiego zestawu zmian
+      body: Niestety nie odnaleziono zestawu zmian o identyfikatorze %{id}. Sprawdź
+        pisownię. Być może skorzystano z nieprawidłowego odnośnika.
     show:
       title: 'Zestaw zmian: %{id}'
       created: 'Utworzony: %{when}'
@@ -648,6 +660,8 @@ pl:
       title: Dziennik użytkownika %{user} | %{title}
       user_title: Dziennik użytkownika %{user}
       discussion: Dyskusja
+      subscribe: Obserwuj
+      unsubscribe: Anuluj subskrypcję
       leave_a_comment: Zostaw komentarz
       login_to_leave_a_comment_html: '%{login_link}, aby dodać komentarz'
       login: Zaloguj się
@@ -693,6 +707,11 @@ pl:
       all:
         title: Wpisy dzienników OpenStreetMap
         description: Ostatnie wpisy dzienników od użytkowników OpenStreetMap
+    subscribe:
+      heading: Zasubskrybować następującą dyskusję dotyczącą wpisu do pamiętnika?
+    unsubscribe:
+      heading: Wypisać się z poniższej dyskusji na temat wpisu dziennika?
+      button: Wypisz się z dyskusji
   diary_comments:
     index:
       title: Komentarze do dzienników dodane przez %{user}
@@ -2585,7 +2604,6 @@ pl:
       oauth2_applications: Aplikacje OAuth 2
       oauth2_authorizations: Autoryzacje OAuth 2
     auth_providers:
-      openid_logo_alt: Zaloguj się przez OpenID
       openid_login_button: Kontynuuj
       openid:
         title: Zaloguj się przez OpenID
@@ -3107,8 +3125,8 @@ pl:
     new:
       title: Nowa uwaga
       intro: Zauważyłeś błąd lub brak czegoś? Daj znać innym mapującym, aby mogli
-        to poprawić. Przesuń znacznik do właściwej pozycji i wpisz notatkę opisującą
-        problem.
+        to poprawić. Przesuń znacznik do właściwej pozycji i opisz problem. Jeśli
+        podasz źródła lub link do zdjęć, twoja uwaga będzie szybciej rozwiązana.
       anonymous_warning_html: Nie jesteś zalogowany. %{log_in} lub %{sign_up}, jeśli
         chcesz otrzymywać aktualizacje tej uwagi.
       anonymous_warning_log_in: Zaloguj się
index 98203a90e03afdf0eea6df97cbf041e5d2f36ce4..840ee6e00bd28acb37218fb531c34d97210df707 100644 (file)
@@ -1738,7 +1738,6 @@ pnb:
       oauth2_applications: آوتھ ورژن 2 اَیپ
       oauth2_authorizations: آوتھ ورژن 2 ورتݨ
     auth_providers:
-      openid_logo_alt: اوپن آئی ڈی ورتو
       openid:
         title: اوپن آئی‌ڈی نال لوگ‌این کرو
         alt: اوپن آئی ڈی یو آر ایل ورتو
index e135ced19c38758f1da5f03a3da70ab7532f8dcb..81451108b601296bf270ed6ad82d45f2be6ad158 100644 (file)
@@ -2656,7 +2656,6 @@ pt-PT:
       oauth2_authorizations: Autorizações OAuth 2
       muted_users: Utilizadores Silenciados
     auth_providers:
-      openid_logo_alt: Iniciar sessão com um OpenID
       openid_login_button: Continuar
       openid:
         title: Iniciar sessão com OpenID
index 3f0269293b53ba55da88fbc879ccfc250a43ceef..11b64b6a893e16082f3b994441bcfb4d19b7ca81 100644 (file)
@@ -611,6 +611,8 @@ pt:
       title: Diário de %{user} | %{title}
       user_title: Diário de %{user}
       discussion: Discussão
+      subscribe: Inscrever
+      unsubscribe: Cancelar inscrição
       leave_a_comment: Deixe um comentário
       login_to_leave_a_comment_html: '%{login_link} para deixar um comentário'
       login: Entrar
@@ -654,6 +656,11 @@ pt:
       all:
         title: Publicações no diário do OpenStreetMap
         description: Publicações no diário recentes de usuários do OpenStreetMap
+    subscribe:
+      button: Inscreva-se na discussão
+    unsubscribe:
+      heading: Cancelar a in=inscrição da seguinte discussão de entrada de diário?
+      button: Cancelar a inscrição na discussão
   diary_comments:
     index:
       title: Comentários no diário feitos por %{user}
@@ -707,6 +714,10 @@ pt:
       contact_the_community_html: Sinta-se à vontade para %{contact_link} a comunidade
         OpenStreetMap se você encontrou um link quebrado ou um erro. Anote a URL exata
         da sua solicitação.
+    bad_request:
+      title: Pedido inválido
+      description: A operação solicitada no servidor OpenStreetMap não é válida (HTTP
+        400)
     forbidden:
       title: Proibido
       description: A operação solicitada no servidor do OpenStreetMap está disponível
@@ -1738,6 +1749,7 @@ pt:
       click_the_link: Se esta pessoa é você, por favor clique no link abaixo para
         receber uma nova senha.
     note_comment_notification:
+      description: 'Nota OpenStreetMap #%{id}'
       anonymous: Um usuário anônimo
       greeting: Olá,
       commented:
@@ -1970,13 +1982,14 @@ pt:
     new:
       title: Entrar
       tab_title: Entrar
+      login_to_authorize_html: Entre no OpenStreetMap para acederes a %{client_app_name}.
       email or username: E-mail ou nome de usuário
       password: Senha
       remember: Lembrar neste computador
       lost password link: Esqueceu sua senha?
       login_button: Entrar
       register now: Registre agora
-      with external: 'Ou identifique-se através de terceiros:'
+      with external: ou entre com uma aplicativo de terceiros
       or: ou
       auth failure: Impossível entrar com estas informações.
     destroy:
@@ -2156,6 +2169,9 @@ pt:
         contributors_fr_credit_html: '%{france}: contém dados provenientes da Direção
           Geral de Impostos.'
         contributors_fr_france: França
+        contributors_hr_credit_html: |-
+          %{croatia}: Contém dados de %{dgu_link} e %{open_data_portal}
+          (informação pública da Croácia).
         contributors_hr_croatia: Croata
         contributors_hr_dgu: Administração Geodésica Estatal da Croácia
         contributors_hr_open_data_portal: Portal Nacional de Dados Abertos
@@ -2623,6 +2639,8 @@ pt:
         other: Arquivo GPX com %{count} pontos de %{user}
       description_without_count: Arquivo GPX de %{user}
   application:
+    basic_auth_disabled: 'A autenticação básica HTTP está desativada: %{link}'
+    oauth_10a_disabled: 'OAuth 1.0 e 1.0a estão desativados: %{link}'
     permission_denied: Você não tem permissão para acessar essa ação
     require_cookies:
       cookies_needed: Parece que você está com os cookies desabilitados - habilite-os
@@ -2643,26 +2661,25 @@ pt:
       oauth2_authorizations: Autorizações do OAuth 2
       muted_users: Usuários silenciados
     auth_providers:
-      openid_logo_alt: Entrar com um OpenID
       openid_login_button: Continuar
       openid:
         title: Entrar com o OpenID
-        alt: Entrar com uma URL do OpenID
+        alt: Logotipo do OpenID
       google:
         title: Entrar com o Google
-        alt: Entrar com um OpenID da Google
+        alt: Logotipo do Google
       facebook:
         title: Entrar com o Facebook
-        alt: Entrar com uma conta do Facebook
+        alt: Logotipo do Facebook
       microsoft:
         title: Entrar com o Microsoft
-        alt: Entrar com uma conta do Microsoft
+        alt: Logotipo do Microsoft
       github:
         title: Entrar com o GitHub
-        alt: Entrar com conta do GitHub
+        alt: Logotipo do GitHub
       wikipedia:
         title: Entrar com Wikipédia
-        alt: Entrar com uma conta da Wikipédia
+        alt: Logotipo da Wikipédia
   oauth:
     authorize:
       title: Autorizar acesso à sua conta
@@ -2825,6 +2842,7 @@ pt:
         privacy_policy: politica de privacidade
         privacy_policy_title: Política de privacidade da OSMF incluindo seção sobre
           endereços de e-mail
+        contributor_terms_url: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
         contributor_terms: termos do contribuidor
       tou: termos de uso
       external auth: 'Autenticação de Terceiros:'
@@ -2832,6 +2850,8 @@ pt:
       terms accepted: Obrigado por aceitar os novos termos de contribuição!
       email_help:
         privacy_policy: política de privacidade
+        privacy_policy_title: Política de privacidade da OSMF incluindo seção sobre
+          endereços de e-mail
         html: Seu endereço não é exibido publicamente, consulte nossa %{privacy_policy_link}
           para obter mais informações.
       consider_pd_html: Considero que minhas contribuições estão no %{consider_pd_link}.
@@ -2902,6 +2922,8 @@ pt:
       remove as friend: Desfazer amizade
       add as friend: Adicionar como amigo
       mapper since: 'Mapeador desde:'
+      last map edit: 'Última edição do mapa:'
+      no activity yet: Ainda sem atividade
       uid: 'ID do usário:'
       ct status: 'Termos do contribuidor:'
       ct undecided: Não decidido
@@ -3108,9 +3130,11 @@ pt:
       blocks_on_user: Bloqueios em %{user}
       blocks_by_me: Bloqueios por mim
       blocks_by_user: Bloqueios por %{user}
+      block: 'Bloqueio #%{id}'
   user_mutes:
     index:
       title: Usuários silenciados
+      my_muted_users: Meus usuários silenciados
       table:
         thead:
           muted_user: Usuários silenciados
index 988e3de038dea75091d7a3476020e44afd7db80d..7ee0f7fcfea269ab38aa656fdb6f1444cebbd047 100644 (file)
@@ -2577,7 +2577,6 @@ ro:
       oauth2_applications: Aplicații OAuth 2
       oauth2_authorizations: Autorizări OAuth 2
     auth_providers:
-      openid_logo_alt: Conectați-vă cu un OpenID
       openid:
         title: Login with OpenID
         alt: Conectați-vă cu un URL OpenID
index 814c801717b63f0e9e0a555cfffea7180f0d680a..b31e04d0e50317d46075e15199b86d06ecc86f60 100644 (file)
@@ -2621,26 +2621,25 @@ ru:
       oauth2_applications: OAuth 2 приложения
       oauth2_authorizations: OAuth 2 авторизации
     auth_providers:
-      openid_logo_alt: Войти с помощью OpenID
       openid_login_button: Продолжить
       openid:
         title: Войти с помощью OpenID
-        alt: Ð\92ойÑ\82и Ñ\81 Ð¿Ð¾Ð¼Ð¾Ñ\89Ñ\8cÑ\8e OpenID URL
+        alt: Ð\9bогоÑ\82ип OpenID
       google:
         title: Войти с помощью Google
-        alt: Ð\92ойÑ\82и Ñ\81 Ð¿Ð¾Ð¼Ð¾Ñ\89Ñ\8cÑ\8e  Google OpenID
+        alt: Ð\9bогоÑ\82ип Google
       facebook:
         title: Войти с помощью Facebook
-        alt: Ð\92ойÑ\82и Ñ\81 Ð¿Ð¾Ð¼Ð¾Ñ\89Ñ\8cÑ\8e Ñ\83Ñ\87Ñ\91Ñ\82ной Ð·Ð°Ð¿Ð¸Ñ\81и Ð² Facebook
+        alt: Ð\9bогоÑ\82ип Facebook
       microsoft:
         title: Войти с помощью Microsoft
         alt: Войти с помощью учётной записи Microsoft
       github:
         title: Войти с GitHub
-        alt: Ð\92ойÑ\82и Ñ\81 Ñ\83Ñ\87Ñ\91Ñ\82ной Ð·Ð°Ð¿Ð¸Ñ\81и Ð½Ð° GitHub
+        alt: Ð\9bогоÑ\82ип GitHub
       wikipedia:
         title: Войти с помощью Википедии
-        alt: Ð\92Ñ\85од Ñ\81 Ð¸Ñ\81полÑ\8cзованием Ñ\83Ñ\87Ñ\91Ñ\82ной Ð·Ð°Ð¿Ð¸Ñ\81и Ð² Википедии
+        alt: Ð\9bогоÑ\82ип Википедии
   oauth:
     authorize:
       title: Разрешить доступ к вашей учётной записи
index 5fd9bee7b3d2467c443e24336f8d3ea885c15fcc..2c21ee07e7eb157e47f3aed1012f5603883dc17f 100644 (file)
@@ -2552,7 +2552,6 @@ sc:
       oauth2_applications: Aplicatziones OAuth 2
       oauth2_authorizations: Autorizatziones OAuth 2
     auth_providers:
-      openid_logo_alt: Intra cun un'OpenID
       openid:
         title: Intra cun OpenID
         alt: Intra cun un'URL de OpenID
index b369fd85ae7be5013e564cb4b7efa5e44fba4fc8..a3308824b4acf4e06b1cc5bf8671427b59591e50 100644 (file)
@@ -1633,7 +1633,6 @@ scn:
       account_settings: Mpustazzioni cuntu
       oauth1_settings: Mpustazzioni OAuth
     auth_providers:
-      openid_logo_alt: Trasi cu n'OpenID
       openid:
         title: Trasi cu n'OpenID
         alt: Trasi cu n'URL OpenID
index 5cf8292655bdf57c1d327b47db98c3905bdb7f50..2b8fce1990a1c7f5220ee1243f8481681c294d42 100644 (file)
@@ -766,7 +766,6 @@ sh:
       oauth2_applications: OAuth 2 prilozi
       oauth2_authorizations: OAuth 2 ovlaštenja
     auth_providers:
-      openid_logo_alt: Prijavi se sa OpenID-om
       openid:
         title: Prijavi se sa OpenID-om
         alt: Prijavi se sa URL-om OpenID-a
index c1859a509fc5f3d3eb86e99eb54c82e2e1e064d2..5e8369c33ee71524ec8cfd3b8251d578f60ce8ff 100644 (file)
@@ -1266,7 +1266,7 @@ sk:
           halt: Zastávka vlaku
           junction: Železničný uzol
           level_crossing: Železničný prejazd
-          light_rail: Ä½ahká Å¾eleznica
+          light_rail: Ä½ahké metro
           miniature: Záhradná železnica
           monorail: Jednokoľajka
           narrow_gauge: Úzkokoľajná železnica
@@ -2212,6 +2212,7 @@ sk:
           footway: Chodník pre peších
           rail: Železnica
           subway: Metro
+          light_rail: Ľahké metro
           cable_car: Lanovka
           chair_lift: Sedačková lanovka
           runway: Letisková dráha
@@ -2220,6 +2221,7 @@ sk:
           admin: Administratívne hranice
           forest: Les (udržiavaný)
           wood: Les
+          bare_rock: Holá skala
           golf: Golfové ihrisko
           park: Park
           common: Pastvina
@@ -2230,6 +2232,7 @@ sk:
           heathland: Vresovisko
           lake: Jazero
           reservoir: Nádrž
+          intermittent_water: Občasná vodná plocha
           farm: Farma
           brownfield: Zborenisko
           cemetery: Cintorín
@@ -2245,7 +2248,7 @@ sk:
           summit: Vrchol
           peak: Vrchol
           tunnel: Čiarkovaný obrys = tunel
-          bridge: Čireny obrys = most
+          bridge: Čierny obrys = most
           private: Súkromný prístup
           destination: Prejazd zakázaný
           construction: Cesta vo výstavbe
@@ -2428,7 +2431,6 @@ sk:
       oauth2_authorizations: Autorizácie OAuth 2
       muted_users: Stlmení používatelia
     auth_providers:
-      openid_logo_alt: Prihlásenie pomocou OpenID
       openid_login_button: Pokračovať
       openid:
         title: Prihlásenie sa pomocou OpenID
@@ -2566,8 +2568,8 @@ sk:
       revoke: Odobrať prístup
   users:
     new:
-      title: Zaregistrovať sa
-      tab_title: Zaregistrovať sa
+      title: Zaregistrujte sa
+      tab_title: Zaregistrujte sa
       signup_to_authorize_html: Zaregistrujte sa v OpenStreetMap a získajte prístup
         do %{client_app_name}.
       no_auto_account_create: Bohužiaľ teraz nie sme schopný vytvoriť pre vás účet
@@ -2586,7 +2588,7 @@ sk:
         privacy_policy_title: Pravidlá ochrany osobných údajov OSMF vrátane sekcie
           o e-mailových adresách
       external auth: 'Autentifikácia treťou stranou:'
-      continue: Zaregistrovať sa
+      continue: Zaregistrujte sa
       terms accepted: Ďakujeme za odsúhlasenie nových podmienok prispievania!
       email_help:
         html: Vaša adresa sa nezobrazuje verejne, pre ďalšie informácie venujte pozornosť
index ef64715229f2c62effe7588e14bcc4eb390e93e4..4cadb8aa2b298649a9df2d9be510201ff905affd 100644 (file)
@@ -1260,25 +1260,25 @@ skr-arab:
     settings_menu:
       account_settings: کھاتہ ترتیباں
     auth_providers:
-      openid_logo_alt: اوپن آئی ڈی نال لاگ ان تھیوو
       openid_login_button: جاری رکھو
       openid:
         title: اوپن آئی ڈی نال لاگ ان تھیوو
-        alt: اوپن آئی ڈی یوآرایل نال لاگ ان تھیوو
+        alt: اوپن آئی ڈی لوگو
       google:
         title: گوگل نال لاگ ان تھیوو
-        alt: گوگل اوپن آئی ڈی نال لاگ ان تھیوو
+        alt: گوگل لوگو
       facebook:
         title: فیس بک نال لاگ ان تھیوو
+        alt: فیس بک لوگو
       microsoft:
         title: مائیکروسافٹ نال لاگ ان تھیوو
-        alt: مائیکروسافٹ کھاتے نال لاگ ان تھیوو
+        alt: مائیکروسافٹ لوگو
       github:
         title: گٹ ہب نال لاگ ان تھیوو
-        alt: گٹ ہب کھاتے نال لاگ ان تھیوو
+        alt: گٹ ہب لوگو
       wikipedia:
         title: وکی پیڈیا نال لاگ ان تھیوو
-        alt: وکی پیڈیا کھاتے نال لاگ ان تھیوو
+        alt: وکی پیڈیا لوگو
   oauth2_applications:
     index:
       name: ناں
@@ -1306,6 +1306,8 @@ skr-arab:
         privacy_policy: رازداری پالیسی
       tou: ورتݨ شرطاں
       continue: سائن اپ
+      email_help:
+        privacy_policy: رازداری پالیسی
       or: یا
     terms:
       title: شرطاں
index b7c36549747947b7ff0776da9affd41e7c0f6565..1203d9d3f8901ab46fae04c74347793158b6adfd 100644 (file)
@@ -1299,7 +1299,7 @@ sl:
           region: Regija
           sea: Morje
           square: Trg
-          state: 'Zvezna država (ZDA):'
+          state: Zvezna država
           subdivision: Pododdelek
           suburb: Predmestje
           town: Mesto
@@ -1785,7 +1785,7 @@ sl:
         commented_note_html: '%{commenter} je spet aktiviral_a opombo na zemljevidu,
           ki ste jo dodali. Opomba je v bližini %{place}.'
       details: Več podatkov o opombi lahko najdete na %{url}.
-      details_html: Več podatkov o opombi lahko najdete na %{url}.
+      details_html: Na opombo lahko odgovorite ali izveste več o njej na %{url}.
     changeset_comment_notification:
       description: Nabor sprememb OpenStreetMap št. %{id}
       hi: Pozdravljeni, %{to_user},
@@ -1806,8 +1806,8 @@ sl:
         partial_changeset_with_comment: s komentarjem »%{changeset_comment}«
         partial_changeset_with_comment_html: s komentarjem »%{changeset_comment}«
         partial_changeset_without_comment: brez komentarja
-      details: Več podrobnosti o tem naboru sprememb lahko najdete na %{url}.
-      details_html: Več podrobnosti o tem naboru sprememb lahko najdete na %{url}.
+      details: Na nabor sprememb lahko odgovorite ali izveste več o njem na  %{url}.
+      details_html: Na nabor sprememb lahko odgovorite ali izveste več o njej na  %{url}.
       unsubscribe: Od obveščanja o tem naboru sprememb se lahko odnaročite na %{url}.
       unsubscribe_html: Od obveščanja o tem naboru sprememb se lahko odnaročite na
         %{url}.
@@ -2328,7 +2328,7 @@ sl:
         title: Vodnik za začetnike
         description: Vodnik za začetnike, ki ga vzdržuje skupnost.
       community:
-        title: Forum skupnosti
+        title: Pomoč in forum skupnosti
         description: Skupno mesto za pogovore o OpenStreetMap.
       mailing_lists:
         title: Dopisni seznami
@@ -2665,26 +2665,26 @@ sl:
       oauth2_authorizations: Pooblastila OAuth 2
       muted_users: Utišani uporabniki
     auth_providers:
-      openid_logo_alt: Prijavite se z OpenID
+      openid_url: URL OpenID
       openid_login_button: Nadaljuj
       openid:
         title: Prijava z OpenID
-        alt: Prijava s povezavo OpenID
+        alt: Logotip OpenID
       google:
         title: Prijava z Googlom
-        alt: Prijava z Google OpenID-jem
+        alt: Logotip Google
       facebook:
         title: Prijavi se s Facebookom
-        alt: Prijavi se z računom Facebook
+        alt: Logotip Facebook
       microsoft:
         title: Prijava z Microsoftom
-        alt: Prijava z računom Microsoft
+        alt: Logotip Microsoft
       github:
-        title: Vpis z GitHub-om
-        alt: Vpis z računom pri GitHub-u
+        title: Prijava z GitHubom
+        alt: Logotip GitHub
       wikipedia:
         title: Prijavi se z Wikipedijo
-        alt: Prijavi se z računom Wikipedije
+        alt: Logotip Wikipedije
   oauth:
     authorize:
       title: Dovoljenje za dostop do vašega računa
@@ -2852,6 +2852,9 @@ sl:
       continue: Registracija
       terms accepted: Hvala za sprejem novih pogojev prispevanja!
       email_help:
+        privacy_policy: pravilnik o zasebnosti
+        privacy_policy_title: Pravilnik o zasebnosti OSMF, vključno z razdelkom o
+          e-poštnih naslovih
         html: Vaš naslov ni javno prikazan, za več informacij glejte naš %{privacy_policy_link}.
       consider_pd_html: Svoje prispevke štejem za %{consider_pd_link}.
       consider_pd: javna domena
@@ -2891,7 +2894,6 @@ sl:
       terms_declined_html: Žal nam je, da ste se odločili, da ne sprejmete novih pogojev
         za sodelavce. Za več informacij glejte %{terms_declined_link}.
       terms_declined_link: ta vikistran
-      terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
     no_such_user:
       title: Ni tega uporabnika
       heading: Uporabnik %{user} ne obstaja
@@ -2985,7 +2987,7 @@ sl:
       option_1: Če ste novi v OpenStreetMapu, prosimo, ustvarite nov račun z uporabo
         spodnjega obrazca.
       option_2: Če že imate račun, se lahko prijavite s svojim uporabniškim imenom
-        in geslom in račun v nastavitvah povežete s svojim ID-jem.
+        in geslom ter račun v nastavitvah povežete s svojim ID-jem.
   user_role:
     filter:
       not_a_role: Besedilo `%{role}' ni pravilna vloga.
index d8bff3a3cfc00c8ae4f8b56a36d0b00b2f07f958..352e4fed4b893f88acd05f584d0ffe88f5288c59 100644 (file)
@@ -1246,7 +1246,6 @@ sq:
     require_admin:
       not_an_admin: Ju duhet të jeni administrator për të kryer atë veprim.
     auth_providers:
-      openid_logo_alt: Identifikohu me ndonjë ID të hapur
       openid:
         title: Identifikohu me OpenID
       github:
index 4cccc539101409f1b9e3912f37cd1d7e79af1717..c20241b01a326575bd2046693e9f747ddec1bb31 100644 (file)
@@ -1124,8 +1124,6 @@ sr-Latn:
       need_to_see_terms: Vaš pristup API-ju je privremeno ukinut. Prijavite se da
         biste pogledali uslove uređivanja. Ne morate da ih prihvatite, već samo da
         ih vidite.
-    auth_providers:
-      openid_logo_alt: Prijavite se s OpenID-jem
   oauth:
     authorize:
       request_access_html: Program %{app_name} zahteva pristup vašem nalogu, %{user}.
index a6fcfd7a0d114c2c96927d9391267d824b3ab169..623cea7f3784bea67dcf7b3a3c340b051334a044 100644 (file)
@@ -2065,26 +2065,25 @@ sr:
       account_settings: Подешавња налога
       muted_users: Пригушени корисници
     auth_providers:
-      openid_logo_alt: Пријавите се с OpenID-јем
       openid_login_button: Настави
       openid:
         title: Пријавити се са OpenID
-        alt: Ð\9fÑ\80иÑ\98ава Ð¿Ñ\80еко OpenID URL
+        alt: Ð\9bогоÑ\82ип OpenID
       google:
         title: Пријава преко Google-а
-        alt: Ð\9fÑ\80иÑ\98ава Ð¿Ñ\80еко Google OpenID-а
+        alt: Ð\9bогоÑ\82ип Ð\93Ñ\83гла
       facebook:
         title: Пријавити се са Facebook-ом
-        alt: Ð\9fÑ\80иÑ\98ава Ð¿Ñ\80еко Facebook Ð½Ð°Ð»Ð¾Ð³а
+        alt: Ð\9bогоÑ\82ип Ð¤ÐµÑ\98Ñ\81бÑ\83ка
       microsoft:
         title: Пријава преко Microsoft-а
-        alt: Ð\9fÑ\80иÑ\98ава Ð¿Ñ\80еко Microsoft Ð½Ð°Ð»Ð¾Ð³а
+        alt: Ð\9bогоÑ\82ип Microsoft-а
       github:
         title: Пријава коришћењем GitHub-а
-        alt: Ð\9fÑ\80иÑ\98ава Ð¿Ñ\80еко GitHub Ð½Ð°Ð»Ð¾Ð³а
+        alt: Ð\9bогоÑ\82ип GitHub-а
       wikipedia:
         title: Пријава преко Википедије
-        alt: Ð\9fÑ\80иÑ\98ава Ð¿Ñ\80еко Ð\92икипедиÑ\98иног Ð½Ð°Ð»Ð¾Ð³Ð°
+        alt: Ð\9bогоÑ\82ип Ð\92икипедиÑ\98е
   oauth:
     authorize:
       title: Ауторизујте приступ свом налогу
@@ -2192,6 +2191,8 @@ sr:
       external auth: 'Аутентификација треће стране:'
       continue: Отвори налог
       terms accepted: Хвала вам што прихватате нове услове уређивања.
+      email_help:
+        privacy_policy: политика приватности
       consider_pd: јавно власништво
       or: или
       use external auth: или се региструјте путем треће стране
index aa7bc91f85e7ccf6c37bf0756784923653709de6..0730a2fabdb3aba568b504e41dcd0956edd64e89 100644 (file)
@@ -2644,7 +2644,6 @@ sv:
       oauth2_authorizations: OAuth 2-auktoriseringar
       muted_users: Tystade användare
     auth_providers:
-      openid_logo_alt: Logga in med ett OpenID
       openid_login_button: Fortsätt
       openid:
         title: Logga in med OpenID
index ed2c4b6fb8370ed84cb339cd9eb385343d5b6a3a..cc11d5d456337057a465a2a286d3e695d097b0c1 100644 (file)
@@ -2114,7 +2114,6 @@ te:
       oauth2_applications: OAuth 2 అనువర్తనాలు
       oauth2_authorizations: OAuth 2 ఆథరైజేషన్లు
     auth_providers:
-      openid_logo_alt: ఏదైనా OpenID తో లాగినవండి
       openid:
         title: OpenID తో లాగినవండి
         alt: ఏదైనా OpenID URL తో లాగినవండి
index 548e3f27773d1095ffe463c4e385309788bc99a1..7d8a2b485638a08817c392cb932aae0c730822c4 100644 (file)
@@ -9,6 +9,7 @@
 # Author: Just Sayori
 # Author: Karit
 # Author: Korrawit
+# Author: Kri ttt
 # Author: Patsagorn Y.
 # Author: Pon44695
 # Author: Ppnplus
@@ -27,7 +28,7 @@ th:
       prompt: เลือกไฟล์
     submit:
       diary_comment:
-        create: à¸\9aัà¸\99à¸\97ึà¸\81
+        create: à¹\81สà¸\94à¸\87à¸\84วามà¸\84ิà¸\94à¹\80หà¹\87à¸\99
       diary_entry:
         create: เผยแพร่
         update: อัปเดต
@@ -55,10 +56,14 @@ th:
       messages:
         invalid_email_address: ดูเหมือนจะไม่ใช่ที่อยู่อีเมลที่ถูกต้อง
         email_address_not_routable: ไม่สามารถกำหนดที่มาที่ไปได้
+        display_name_is_user_n: ไม่สามารถเป็น user_n ได้ เว้นแต่ว่า n จะเป็นรหัสผู้ใช้ของคุณ
+      models:
+        user_mute:
+          is_already_muted: ถูกปิดเสียงอยู่แล้ว
     models:
       acl: รายการควบคุมการเข้าถึง
       changeset: ชุดการเปลี่ยนแปลง
-      changeset_tag: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aชุดการเปลี่ยนแปลง
+      changeset_tag: à¹\81à¸\97à¹\87à¸\81ชุดการเปลี่ยนแปลง
       country: ประเทศ
       diary_comment: ความคิดเห็นสำหรับบันทึก
       diary_entry: รายการบันทึก
@@ -66,43 +71,43 @@ th:
       issue: ปัญหา
       language: ภาษา
       message: ข้อความ
-      node: à¸«à¸¡à¸¸
-      node_tag: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aหมุ
-      old_node: à¸«à¸¡à¸¸ดเก่า
-      old_node_tag: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aหมุดเก่า
+      node: à¹\82หà¸\99
+      node_tag: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aà¹\82หà¸\99
+      old_node: à¹\82หà¸\99ดเก่า
+      old_node_tag: à¹\81à¸\97à¹\87à¸\81à¸\81ำà¸\81ัà¸\9aà¹\82หà¸\99ดเก่า
       old_relation: ความสัมพันธ์เดิม
       old_relation_member: สมาชิกของความสัมพันธ์เดิม
-      old_relation_tag: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aของความสัมพันธ์เดิม
+      old_relation_tag: à¹\81à¸\97à¹\87à¸\81ของความสัมพันธ์เดิม
       old_way: เส้นทางเดิม
       old_way_node: จุดของเส้นทางเดิม
-      old_way_tag: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aของเส้นทางเดิม
+      old_way_tag: à¹\81à¸\97à¹\87à¸\81ของเส้นทางเดิม
       relation: ความสัมพันธ์
       relation_member: สมาชิกของความสัมพันธ์
-      relation_tag: à¸\9bà¹\89ายà¸\81ำà¸\81ัà¸\9aของความสัมพันธ์
+      relation_tag: à¹\81à¸\97à¹\87à¸\81ของความสัมพันธ์
       report: รายงาน
       session: การเข้าใช้งาน
       trace: รอยทาง
       tracepoint: จุดรอยทาง
-      tracetag: à¸\9bà¹\89ายกำกับรอยทาง
+      tracetag: à¹\81à¸\97à¹\87à¸\81กำกับรอยทาง
       user: ผู้ใช้งาน
       user_preference: การตั้งค่าผู้ใช้
       user_token: รหัสคำขอผู้ใช้
       way: เส้นทาง
-      way_node: à¸«à¸¡à¸¸ดเส้นทาง
-      way_tag: à¸\9bà¹\89ายกำกับเส้นทาง
+      way_node: à¹\82หà¸\99ดเส้นทาง
+      way_tag: à¹\81à¸\97à¹\87à¸\81กำกับเส้นทาง
     attributes:
       client_application:
-        name: à¸\8aืà¹\88อ (à¸\88ำà¹\80à¸\9bà¹\87à¸\99à¸\95à¹\89อà¸\87à¹\83สà¹\88)
-        url: ที่อยู่ยูอาร์แอลแอปพลิเคชันหลัก (จำเป็นต้องใส่)
-        callback_url: ที่อยู่เว็บเรียกกลับ
-        support_url: ที่อยู่เว็บสำหรับสนับสนุน
-        allow_read_prefs: อ่านการตั้งค่าผู้ใช้
-        allow_write_prefs: แก้ไขการตั้งค่าผู้ใช้
+        name: à¸\8aืà¹\88อ (à¸\95à¹\89อà¸\87มี)
+        url: ที่อยู่ URL แอปพลิเคชันหลัก (ต้องมี)
+        callback_url: ที่อยู่ URL เรียกกลับ
+        support_url: ที่อยู่ URL สนับสนุน
+        allow_read_prefs: à¸­à¹\88าà¸\99à¸\81ารà¸\95ัà¹\89à¸\87à¸\84à¹\88าà¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89
+        allow_write_prefs: à¹\81à¸\81à¹\89à¹\84à¸\82à¸\81ารà¸\95ัà¹\89à¸\87à¸\84à¹\88าà¸\82อà¸\87à¸\9cูà¹\89à¹\83à¸\8aà¹\89
         allow_write_diary: สร้างรายการบันทึก ข้อคิดเห็น และพบเพื่อนใหม่
         allow_write_api: แก้ไขแผนที่
         allow_read_gpx: อ่านรอยทาง GPS ส่วนบุคคล
         allow_write_gpx: อัปโหลดรอยทาง GPS
-        allow_write_notes: à¹\81à¸\81à¹\89à¹\84à¸\82หมายà¹\80หà¸\95ุ
+        allow_write_notes: à¹\81à¸\81à¹\89à¹\84à¸\82à¹\82à¸\99à¹\89à¸\95
       diary_comment:
         body: เนื้อหา
       diary_entry:
@@ -114,6 +119,7 @@ th:
         language_code: ภาษา
       doorkeeper/application:
         name: ชื่อ
+        redirect_uri: URI เปลี่ยนทาง
         confidential: แอปพลิเคชันลับ?
         scopes: การอนุญาต
       friend:
@@ -122,15 +128,15 @@ th:
       trace:
         user: ผู้ใช้งาน
         visible: เปิดเผย
-        name: à¸\8aืà¹\88อà¹\81à¸\9fà¹\89ม
+        name: à¸\8aืà¹\88อà¹\84à¸\9fลà¹\8c
         size: ขนาด
         latitude: ละติจูด
         longitude: ลองติจูด
         public: สาธารณะ
         description: คำอธิบาย
-        gpx_file: 'อัà¸\9bà¹\82หลà¸\94à¹\81à¸\9fà¹\89ม GPX:'
+        gpx_file: 'อัà¸\9bà¹\82หลà¸\94à¹\84à¸\9fลà¹\8c GPX:'
         visibility: 'สถานะการแสดง:'
-        tagstring: à¸\9bà¹\89ายระà¸\9aุ
+        tagstring: à¹\81à¸\97à¹\87à¸\81
       message:
         sender: ผู้ส่ง
         title: หัวเรื่อง
@@ -140,7 +146,7 @@ th:
         title: ชื่อเรื่อง
         description: คำอธิบาย
       report:
-        category: à¹\80ลือà¸\81à¹\80หà¸\95ุà¸\9cลà¸\82อà¸\87à¸\9bัà¸\8dหาà¸\97ีà¹\88à¸\97à¹\88าà¸\99à¹\81à¸\88à¹\89à¸\87
+        category: เลือกเหตุผลของปัญหาที่แจ้ง
         details: โปรดให้คำอธิบายเพิ่มเติมเกี่ยวกับปัญหา (จำเป็นต้องใส่)
       user:
         auth_provider: ผู้ให้การยืนยัน
@@ -157,46 +163,46 @@ th:
         pass_crypt: รหัสผ่าน
         pass_crypt_confirmation: ยืนยันรหัสผ่าน
     help:
+      doorkeeper/application:
+        confidential: แอปพลิเคชันจะถูกใช้โดยสามารถเก็บความลับของผู้ใช้ไว้เป็นความลับ
+          (แอปมือถือแบบเนทีฟ และแอปหน้าเดียวจะไม่เป็นความลับ)
+        redirect_uri: ใช้บรรทัดเดียวต่อหนึ่ง URI
       trace:
         tagstring: คั่นด้วยจุลภาค
       user_block:
-        reason: เหตุผลที่ผู้ใช้กำลังถูกระงับ โปรดอย่าเขียนด้วยอารมณ์รุนแรงและระบุรายละเอียดเกี่ยวกับสถานการณ์ที่พบให้ละเอียดชัดเจน
+        reason: เหตุผลที่ผู้ใช้กำลังถูกระงับ โปรดอย่าเขียนด้วยอารมณ์รุนแรงและระบุรายละเอียดเกี่ยวกับสถานการณ์ที่พบให้ละเอียดชัดเจนที่สุด
           ควรใช้คำอธิบายที่เข้าใจง่ายเป็นหลัก เพราะไม่ใช่ว่าผู้ใช้ทุกคนจะเข้าใจศัพท์เฉพาะ
           และต้องอย่าลืมว่าสิ่งที่คุณเขียนนี้จะแสดงต่อสาธารณะด้วย
-        needs_view: ต้องการให้ผู้ใช้คนนี้เข้าระบบก่อนเพิกถอนการระงับหรือไม่?
+        needs_view: à¸\95à¹\89อà¸\87à¸\81ารà¹\83หà¹\89à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\84à¸\99à¸\99ีà¹\89à¹\80à¸\82à¹\89าสูà¹\88ระà¸\9aà¸\9aà¸\81à¹\88อà¸\99à¹\80à¸\9eิà¸\81à¸\96อà¸\99à¸\81ารระà¸\87ัà¸\9aหรือà¹\84มà¹\88?
       user:
         new_email: (จะไม่แสดงต่อสาธารณะ)
   datetime:
     distance_in_words_ago:
       about_x_hours:
-        one: เมื่อประมาณ 1 ชั่วโมงที่แล้ว
-        other: ประมาณ %{count} ชั่วโมงที่แล้ว
+        other: เมื่อ %{count} ชั่วโมงที่แล้ว
       about_x_months:
-        one: เมื่อประมาณ 1 เดือนที่แล้ว
-        other: ประมาณ %{count} เดือนที่แล้ว
-      about_x_years: ประมาณ %{count} ปีก่อน
-      almost_x_years: เกือบ %{count} ปีก่อน
+        other: เมื่อ %{count} เดือนที่แล้ว
+      about_x_years:
+        other: เมื่อ %{count} ปีที่แล้ว
+      almost_x_years:
+        other: เกือบ %{count} ปีที่แล้ว
       half_a_minute: ครึ่งนาทีที่แล้ว
       less_than_x_seconds:
-        one: น้อยกว่า 1 วินาทีที่แล้ว
         other: น้อยกว่า %{count} วินาทีที่แล้ว
       less_than_x_minutes:
-        one: น้อยกว่า 1 นาทีที่แล้ว
         other: น้อยกว่า %{count} นาทีที่แล้ว
-      over_x_years: มากกว่า %{count} ปีก่อน
+      over_x_years:
+        other: กว่า %{count} ปีที่แล้ว
       x_seconds:
-        one: 1 วินาทีที่แล้ว
         other: '%{count} วินาทีที่แล้ว'
       x_minutes:
-        one: 1 นาทีที่แล้ว
         other: '%{count} นาทีที่แล้ว'
       x_days:
-        one: 1 วันที่แล้ว
         other: '%{count} วันที่แล้ว'
       x_months:
-        one: 1 เดือนที่แล้ว
         other: '%{count} เดือนที่แล้ว'
-      x_years: '%{count} ปีก่อน'
+      x_years:
+        other: '%{count} ปีที่แล้ว'
   editor:
     default: ค่าปกติ (ขณะนี้ %{name})
     id:
@@ -221,20 +227,21 @@ th:
         commented_at_by_html: ปรับปรุงเมื่อ %{when} โดย %{user}
         closed_at_html: ปิดเรื่องเมื่อ %{when}
         closed_at_by_html: แก้ไขเมื่อ %{when} โดย %{user}
-        reopened_at_html: à¸£à¸·à¹\89อà¸\9fืà¹\89à¸\99เมื่อ %{when}
-        reopened_at_by_html: à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¸\8bà¹\89ำเมื่อ %{when} โดย %{user}
+        reopened_at_html: à¹\80à¸\9bิà¸\94à¹\83หมà¹\88เมื่อ %{when}
+        reopened_at_by_html: à¹\80à¸\9bิà¸\94à¹\83หมà¹\88เมื่อ %{when} โดย %{user}
       rss:
-        title: หมายเหตุ OpenStreetMap
-        description_area: รายชื่อหมายเหตุที่มีการรายงาน แสดงความคิดเห็น หรือถูกปิดในพื้นที่ของคุณ
+        title: โน้ต OpenStreetMap
+        description_all: รายการของการรายงาน หรือความคิดเห็นบนโน้ตที่ปิดเรื่องไปแล้ว
+        description_area: รายชื่อโน้ตที่มีการรายงาน แสดงความคิดเห็น ที่เปิดอยู่หรือถูกปิดเรื่องไปแล้วในพื้นที่ของคุณ
           [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
-        description_item: à¸\9fีà¸\94 rss à¸ªà¸³à¸«à¸£à¸±à¸\9aหมายà¹\80หà¸\95ุ %{id}
-        opened: à¸«à¸¡à¸²à¸¢à¹\80หà¸\95ุà¹\83หมà¹\88 (à¸\9eิà¸\81ัà¸\94ใกล้กับ %{place})
-        commented: à¸\84วามà¸\84ิà¸\94à¹\80หà¹\87à¸\99à¹\83หมà¹\88 (à¹\83à¸\81ลà¹\89à¹\80à¸\84ียà¸\87 %{place})
-        closed: à¸«à¸¡à¸²à¸¢à¹\80หà¸\95ุà¸\97ีà¹\88à¸\96ูà¸\81à¸\9bิà¸\94 (à¹\83à¸\81ลà¹\89à¹\80à¸\84ียà¸\87 %{place})
-        reopened: à¸«à¸¡à¸²à¸¢à¹\80หà¸\95ุà¸\97ีà¹\88à¸\96ูà¸\81à¹\80à¸\9bิà¸\94à¹\83à¸\8aà¹\89à¸\87าà¸\99à¹\83หมà¹\88 (à¹\83à¸\81ลà¹\89à¹\80à¸\84ียà¸\87 %{place})
+        description_item: à¸\9fีà¸\94 rss à¸ªà¸³à¸«à¸£à¸±à¸\9aà¹\82à¸\99à¹\89à¸\95 %{id}
+        opened: à¸«à¸¡à¸²à¸¢à¹\80หà¸\95ุà¹\82à¸\99à¹\89à¸\95 (ใกล้กับ %{place})
+        commented: à¸\84วามà¸\84ิà¸\94à¹\80หà¹\87à¸\99à¹\83หมà¹\88 (à¹\83à¸\81ลà¹\89à¸\81ัà¸\9a %{place})
+        closed: à¹\82à¸\99à¹\89à¸\95à¸\97ีà¹\88à¸\96ูà¸\81à¸\9bิà¸\94 (à¹\83à¸\81ลà¹\89à¸\81ัà¸\9a %{place})
+        reopened: à¹\82à¸\99à¹\89à¸\95à¸\97ีà¹\88à¸\96ูà¸\81à¹\80à¸\9bิà¸\94à¹\83หมà¹\88 (à¹\83à¸\81ลà¹\89à¸\81ัà¸\9a %{place})
       entry:
         comment: ความคิดเห็น
-        full: à¹\80à¸\99ืà¹\89อà¸\84วามà¹\80à¸\95à¹\87มà¹\83à¸\99หมายà¹\80หà¸\95ุ
+        full: à¹\80à¸\99ืà¹\89อà¸\84วามà¹\80à¸\95à¹\87มà¹\83à¸\99à¹\82à¸\99à¹\89à¸\95
   account:
     deletions:
       show:
@@ -243,6 +250,18 @@ th:
         delete_account: ลบบัญชี
         delete_introduction: 'คุณสามารถลบบัญชี OpenStreetMap ของคุณโดยใช้ปุ่มด้านล่าง
           โปรดทราบรายละเอียดต่อไปนี้:'
+        delete_profile: ข้อมูลโปรไฟล์ของคุณ รวมถึงภาพอวาตาร์ คำอธิบาย และตำแหน่งบ้านจะถูกลบออก
+        delete_display_name: ชื่อที่แสดงของคุณจะถูกลบออก และบัญชีอื่นสามารถนำชื่อนั้นไปใช้ได้
+        retain_caveats: 'อย่างไรก็ตาม ข้อมูลเกี่ยวกับคุณบางอย่างจะยังคงอยู่บน OpenStreetMap
+          แม้ว่าบัญชีของคุณจะถูกลบไปแล้วก็ตาม:'
+        retain_edits: การแก้ไขของคุณในฐานข้อมูลแผนที่ ถ้ามีจะยังคงถูกเก็บไว้
+        retain_traces: รอยทางที่อัพโหลดไป ถ้ามีจะยังคงถูกเก็บไว้
+        retain_diary_entries: รายการบันทึกของผู้ใช้และความคิดเห็นในนั้นของคุณ ถ้ามีจะยังถูกเก็บไว้แต่จะถูกซ่อนไว้
+        retain_notes: โน้ตแผนที่และความคิดเห็นในนั้น ถ้ามีจะยังคงถูกเก็บไว้ แต่จะถูกซ่อนไว้
+        retain_changeset_discussions: การอภิปรายชุดการเปลี่ยนแปลงของคุณ ถ้ามีจะยังคงถูกเก็บไว้
+        retain_email: ที่อยู่อีเมลของคุณจะยังคงถูกเก็บไว้
+        recent_editing_html: เนื่องจากที่คุณพึ่งได้แก้ไขบัญชีของคุณไม่นานมานี้ บัญชีของคุณจะยังไม่สามารถลบได้ในขณะนี้
+          การลบจะสามารถทําได้ใน %{time}
         confirm_delete: คุณแน่ใจหรือไม่?
         cancel: ยกเลิก
   accounts:
@@ -252,113 +271,138 @@ th:
       current email address: ที่อยู่อีเมลปัจจุบัน
       external auth: การยืนยันตัวตนด้วยบริการภายนอก
       openid:
-        link text: à¸\99ีà¹\89คืออะไร?
+        link text: à¸\99ีà¹\88คืออะไร?
       public editing:
-        heading: à¹\81à¸\81à¹\89à¹\84à¸\82à¹\82à¸\94ยà¹\80à¸\9bิà¸\94à¹\80à¸\9cย
-        enabled: 'เปิดใช้: สามารถแก้ไขแผนที่ได้ แต่ทำโดยเปิดเผยนาม'
-        enabled link text: à¸\99ีà¹\89คืออะไร?
-        disabled: 'ปิดใช้: ไม่สามารถแก้ไขแผนที่ได้อีก, โดยการแก้ไขในอดีตจะยังคงความนิรนามไว้'
-        disabled link text: à¸\97ำà¹\84มà¸\89ัà¸\99à¸\96ึà¸\87à¹\81à¸\81à¹\89à¹\84à¸\82à¹\84มà¹\88à¹\84à¸\94à¹\89?
+        heading: à¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82สาà¸\98ารà¸\93ะ
+        enabled: 'เปิดใช้: สามารถแก้ไขแผนที่ได้โดยเปิดเผยนาม'
+        enabled link text: à¸\99ีà¹\88คืออะไร?
+        disabled: ปิดใช้ และไม่สามารถแก้ไขแผนที่ได้อีก โดยการแก้ไขในอดีตทั้งหมดจะยังคงความนิรนามไว้
+        disabled link text: ทำไมถึงแก้ไขไม่ได้?
       contributor terms:
         heading: ข้อกำหนดผู้มีส่วนร่วม
-        link text: นี้คืออะไร?
+        agreed: คุณได้ยอมรับข้อกำหนดผู้มีส่วนร่วมใหม่แล้ว
+        not yet agreed: คุณยังไม่ได้ยอมรับข้อกำหนดผู้มีส่วนร่วมใหม่
+        review link text: โปรดเข้าลิงก์นี้ตามความสะดวกของคุณเพื่อตรวจสอบและยอมรับข้อกำหนดของผู้ร่วมให้ข้อมูลใหม่
+        agreed_with_pd: คุณยังได้ประกาศด้วยว่า คุณถือว่าการแก้ไขของคุณเป็นสาธารณสมบัติ
+        link text: นี่คืออะไร?
       save changes button: บันทึกการเปลี่ยนแปลง
       delete_account: ลบบัญชี...
     go_public:
-      heading: แก้ไขโดยเปิดเผย
-      make_edits_public_button: ทำให้การแก้ไขของข้าพเจ้าเป็นสาธารณะเห็นได้ทั่วไป
+      heading: การแก้ไขสาธารณะ
+      currently_not_public: ขณะนี้การแก้ไขของคุณยังเป็นนิรนาม และผู้อื่นยังไม่สามารถส่งข้อความถึงคุณหรือดูตำแหน่งของคุณได้
+        เพื่อแสดงสิ่งที่คุณแก้ไขและอนุญาตให้ผู้อื่นติดต่อคุณผ่านทางเว็บไซต์ได้ ให้คลิกปุ่มด้านล่าง
+      only_public_can_edit: ตั้งแต่การเปลี่ยนแปลง API 0.6 เฉพาะผู้ใช้สาธารณะจะสามารถแก้ไขแผนที่ได้
+      find_out_why: ดูว่าทำไม
+      email_not_revealed: ที่อยู่อีเมลของคุณจะไม่ถูกเปิดเผยต่อสาธารณะ
+      not_reversible: การดำเนินการนี้ไม่สามารถย้อนกลับได้ และผู้ใช้ใหม่ทั้งหมดจะเป็นสาธารณะโดยพื้นฐาน
+      make_edits_public_button: ทำให้การแก้ไขของฉันทั้งหมดเป็นสาธารณะ
     update:
-      success_confirm_needed: à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82à¹\89อมูลà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\87าà¸\99สำà¹\80รà¹\87à¸\88à¹\80รียà¸\9aรà¹\89อย à¹\82à¸\9bรà¸\94à¸\95รวà¸\88สอà¸\9aอีà¹\80มลà¸\82อà¸\87à¸\97à¹\88าà¸\99เพื่อยืนยันที่อยู่อีเมลใหม่
+      success_confirm_needed: à¸\81ารà¸\9bรัà¸\9aà¸\9bรุà¸\87à¸\82à¹\89อมูลà¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\87าà¸\99สำà¹\80รà¹\87à¸\88à¹\80รียà¸\9aรà¹\89อย à¹\82à¸\9bรà¸\94à¸\95รวà¸\88สอà¸\9aอีà¹\80มลà¸\82อà¸\87à¸\84ุà¸\93เพื่อยืนยันที่อยู่อีเมลใหม่
       success: การปรับปรุงข้อมูลผู้ใช้งานสำเร็จเรียบร้อย
     destroy:
       success: ลบบัญชีแล้ว
   browse:
     deleted_ago_by_html: ลบเมื่อ %{time_ago} โดย %{user}
     edited_ago_by_html: แก้ไขเมื่อ %{time_ago} โดย %{user}
-    version: รุ่นที่
+    version: รุ่น
+    redacted_version: รุ่นที่แก้ไขแล้ว
     in_changeset: ชุดการเปลี่ยนแปลง
     anonymous: ไม่ระบุตัวตน
     no_comment: (ไม่มีความคิดเห็น)
     part_of: เป็นส่วนหนึ่งของ
     part_of_relations:
-      other: '%{count} à¸\84วามà¹\80à¸\81ีà¹\88ยวà¸\82à¹\89อà¸\87'
+      other: '%{count} à¸\84วามสัมà¸\9eัà¸\99à¸\98à¹\8c'
     part_of_ways:
       other: '%{count} ทาง'
     download_xml: ดาวน์โหลด XML
     view_history: ดูประวัติ
+    view_unredacted_history: ดูประวัติที่ยังไม่ได้ถูกแก้ไข
     view_details: ดูรายละเอียด
+    view_redacted_data: ดูข้อมูลที่ยังไม่ได้ถูกแก้ไข
+    view_redaction_message: ดูข้อมูลที่ยังไม่ได้ถูกแก้ไข
     location: 'ที่ตั้ง:'
     node:
-      title_html: 'หมุด: %{name}'
-      history_title_html: 'à¸\9bระวัà¸\95ิหมุด: %{name}'
+      title_html: 'à¹\82หà¸\99ด: %{name}'
+      history_title_html: 'à¸\9bระวัà¸\95ิà¹\82หà¸\99ด: %{name}'
     way:
       title_html: 'เส้นทาง: %{name}'
       history_title_html: 'ประวัติเส้นทาง: %{name}'
-      nodes: à¸«à¸¡à¸¸
+      nodes: à¹\82หà¸\99
       nodes_count:
-        other: '%{count} à¸«à¸¡à¸¸ด'
+        other: '%{count} à¹\82หà¸\99ด'
       also_part_of_html:
-        one: ส่วนของเส้นทาง %{related_ways}
-        other: ส่วนของเส้นทาง %{related_ways}
+        other: ส่วนของเส้นทาง%{related_ways}
     relation:
       title_html: 'ความสัมพันธ์: %{name}'
       history_title_html: 'ประวัติความสัมพันธ์: %{name}'
       members: สมาชิก
+      members_count:
+        other: '%{count} สมาชิก'
     relation_member:
-      entry_role_html: '%{type} %{name} ในฐานะ %{role}'
+      entry_role_html: '%{type}%{name} ในฐานะ%{role}'
       type:
-        node: à¸«à¸¡à¸¸
+        node: à¹\82หà¸\99
         way: เส้นทาง
         relation: ความสัมพันธ์
     containing_relation:
-      entry_html: ความสัมพันธ์ %{relation_name}
-      entry_role_html: ความสัมพันธ์ %{relation_name} (ในฐานะ %{relation_role})
+      entry_html: ความสัมพันธ์%{relation_name}
+      entry_role_html: ความสัมพันธ์%{relation_name} (ในฐานะ%{relation_role})
     not_found:
       title: ไม่พบข้อมูล
-      sorry: 'ขออภัย ไม่พบ %{type} #%{id}'
+      sorry: 'ขออภัย ไม่พบ%{type} #%{id}'
       type:
-        node: à¸«à¸¡à¸¸
+        node: à¹\82หà¸\99
         way: เส้นทาง
         relation: ความสัมพันธ์
         changeset: ชุดการเปลี่ยนแปลง
-        note: à¸«à¸¡à¸²à¸¢à¹\80หà¸\95ุ
+        note: à¹\82à¸\99à¹\89à¸\95
     timeout:
       title: หมดเวลาค้น
-      sorry: à¸\82ออภัย à¸\82à¹\89อมูลสำหรัà¸\9aà¸\8aà¸\99ิà¸\94 %{type} ที่กำกับด้วยรหัส %{id} ใช้เวลานานเกินสมควรในการเรียกดู
+      sorry: à¸\82ออภัย à¸\82à¹\89อมูลสำหรัà¸\9aà¸\9bระà¹\80ภà¸\97%{type} ที่กำกับด้วยรหัส %{id} ใช้เวลานานเกินสมควรในการเรียกดู
       type:
-        node: à¸«à¸¡à¸¸
+        node: à¹\82หà¸\99
         way: เส้นทาง
         relation: ความสัมพันธ์
         changeset: ชุดการเปลี่ยนแปลง
-        note: à¸«à¸¡à¸²à¸¢à¹\80หà¸\95ุ
+        note: à¹\82à¸\99à¹\89à¸\95
     redacted:
       redaction: การตรวจทาน %{id}
-      message_html: à¸£à¸¸à¹\88à¸\99à¸\97ีà¹\88 %{version} à¸\8aà¸\99ิà¸\94 %{type} ไม่สามารถแสดงว่าถูกตรวจทานมาแล้ว
-        โปรดไปที่ %{redaction_link} เพื่อดูรายละเอียด
+      message_html: à¸£à¸¸à¹\88à¸\99à¸\97ีà¹\88 %{version} à¸\82อà¸\87à¸\8aà¸\99ิà¸\94 %{type} à¸\99ีà¹\89ไม่สามารถแสดงว่าถูกตรวจทานมาแล้ว
+        โปรดไปที่ %{redaction_link} เพื่อดูรายละเอียดเพิ่มเติม
       type:
-        node: à¸«à¸¡à¸¸
+        node: à¹\82หà¸\99
         way: เส้นทาง
         relation: ความสัมพันธ์
     start_rjs:
-      feature_warning: à¸\81ำลัà¸\87à¹\82หลà¸\94สà¹\88วà¸\99à¸\9bระà¸\81อà¸\9aà¸\88ำà¸\99วà¸\99 %{num_features} à¸ªà¹\88วà¸\99 à¸\81ารà¸\99ีà¹\89à¸\97ำà¹\83หà¹\89à¹\80à¸\9aราวà¹\8cà¹\80à¸\8bอรà¹\8cà¸\82อà¸\87à¸\97à¹\88าà¸\99à¸\97ำà¸\87าà¸\99à¸\8aà¹\89าหรือà¹\84มà¹\88à¸\95อà¸\9aสà¸\99อ
-        à¸\97à¹\88าà¸\99à¹\81à¸\99à¹\88à¹\83à¸\88หรือà¹\84มà¹\88à¸\97ีà¹\88à¸\88ะà¹\81สà¸\94à¸\87à¸\82à¹\89อมูลà¸\99ีà¹\89?
-      load_data: à¸\81ำลัà¸\87à¹\82หลà¸\94à¸\82à¹\89อมูล
+      feature_warning: à¸\81ำลัà¸\87à¹\82หลà¸\94สà¹\88วà¸\99à¸\84ุà¸\93ลัà¸\81ษà¸\93ะ %{num_features} à¸\84ุà¸\93ลัà¸\81ษà¸\93ะ à¸\81ารà¸\99ีà¹\89อาà¸\88à¸\97ำà¹\83หà¹\89à¹\80à¸\9aราวà¹\8cà¹\80à¸\8bอรà¹\8cà¸\97ำà¸\87าà¸\99à¸\8aà¹\89าล
+        à¸«à¸£à¸·à¸­à¹\84มà¹\88à¸\95อà¸\9aสà¸\99อà¸\87 à¸\84ุà¸\93à¹\81à¸\99à¹\88à¹\83à¸\88หรือà¹\84มà¹\88à¸\97ีà¹\88à¸\88ะà¹\81สà¸\94à¸\87à¸\82à¹\89อมูลà¸\99ีà¹\89à¸\95à¹\88อà¹\84à¸\9b?
+      load_data: โหลดข้อมูล
       loading: กำลังโหลด...
     tag_details:
-      tags: à¸\9bà¹\89ายระà¸\9aุ
+      tags: à¹\81à¸\97à¹\87à¸\81
       wiki_link:
-        key: à¸«à¸\99à¹\89าà¸\84ำอà¸\98ิà¸\9aายวิà¸\81ิาสำหรัà¸\9aà¸\9bà¹\89ายระà¸\9aุ %{key}
-        tag: à¸«à¸\99à¹\89าà¸\84ำอà¸\98ิà¸\9aายวิà¸\81ิาสำหรัà¸\9aà¸\9bà¹\89ายระà¸\9aุ %{key}=%{value}
+        key: à¸«à¸\99à¹\89าà¸\84ำอà¸\98ิà¸\9aายวิà¸\81ิสำหรัà¸\9aà¹\81à¸\97à¹\87à¸\81 %{key}
+        tag: à¸«à¸\99à¹\89าà¸\84ำอà¸\98ิà¸\9aายวิà¸\81ิสำหรัà¸\9aà¹\81à¸\97à¹\87à¸\81 %{key}=%{value}
       wikidata_link: รายการ %{page} บนวิกิสนเทศ
       wikipedia_link: บทความ %{page} บนวิกิพีเดีย
       wikimedia_commons_link: รายการ %{page} บนวิกิมีเดียคอมมอนส์
       telephone_link: โทรไปที่หมายเลข %{phone_number}
       colour_preview: แสดงตัวอย่างสี %{colour_value}
+      email_link: ที่อยู่อีเมล %{email}
     query:
-      title: ส่วนประกอบในพื้นที่
-      introduction: คลิกบนแผนที่เพื่อค้นหาส่วนประกอบต่างๆ ที่อยู่ใกล้เคียง
-      nearby: ส่วนประกอบที่อยู่ใกล้เคียง
-      enclosing: ส่วนประกอบที่ปิดล้อม
+      title: เรียกดูคุณลักษณะในพื้นที่
+      introduction: คลิกบนแผนที่เพื่อค้นหาคุณลักษณะต่าง ๆ ที่อยู่ใกล้เคียง
+      nearby: คุณลักษณะที่อยู่ใกล้เคียง
+      enclosing: คุณลักษณะปิดล้อม
+  old_nodes:
+    not_found:
+      sorry: 'ขออภัย ไม่พบโหนดที่ #%{id} รุ่น %{version}'
+  old_ways:
+    not_found:
+      sorry: 'ขออภัย ไม่พบเส้นที่ #%{id} เวอร์ชัน %{version}'
+  old_relations:
+    not_found:
+      sorry: 'ขออภัย ไม่พบความสัมพันธ์ที่ #%{id} รุ่น %{version}'
   changesets:
     changeset_paging_nav:
       showing_page: หน้า %{page}
@@ -377,6 +421,7 @@ th:
     index:
       title: ชุดการเปลี่ยนแปลง
       title_user: ชุดการเปลี่ยนแปลงที่ทำโดย %{user}
+      title_user_link_html: ชุดการเปลี่ยนแปลงที่ทำโดย %{user_link}
       title_friend: ชุดการเปลี่ยนแปลงที่ทำโดยเพื่อนของฉัน
       title_nearby: ชุดการเปลี่ยนแปลงที่ทำโดยผู้ใช้ที่อยู่ใกล้เคียง
       empty: ไม่พบชุดการเปลี่ยนแปลง
@@ -391,16 +436,32 @@ th:
         title_comment: ชุดการเปลี่ยนแปลง %{id} - %{comment}
         created: สร้างเมื่อ
         closed: ปิดเมื่อ
-        belongs_to: ผู้สร้างสรรค์
+        belongs_to: ผู้สร้าง
+    subscribe:
+      heading: สมัครสมาชิกการอภิปรายเซ็ตการแก้ไขต่อไปนี้หรือไม่
+      button: สมัครสมาชิกการอภิปราย
+    unsubscribe:
+      heading: ยกเลิกการสมัครสมาชิกการอภิปรายต่อไปนี้หรือไม่
+      button: ยกเลิกการสมัครสมาชิกการอภิปราย
+    heading:
+      title: ชุดการเปลี่ยนแปลง %{id}
+      created_by_html: สร้างโดย %{link_user} บน %{created}
+    no_such_entry:
+      title: ไม่มีชุดการเปลี่ยนแปลงดังกล่าว
+      heading: 'ไม่มีรายการที่มีรหัส: %{id}'
+      body: ขออภัย ไม่มีชุดการเปลี่ยนแปลงที่มีรหัส %{id} โปรดตรวจสอขความถูกต้องของการสะกด
+        หรือลิงก์ที่กดมานั้นมีข้อผิดพลาด
     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: ปิดเมื่อ %{time_ago} โดย %{user}
       discussion: การอภิปราย
       join_discussion: เข้าสู่ระบบเพื่อเข้าร่วมการอภิปราย
-      still_open: à¸\8aุà¸\94à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\81ำลังเปิดอยู่ การอภิปรายจะเริ่มได้หลังจากปิดชุดการเปลี่ยนแปลงแล้ว
+      still_open: à¸\8aุà¸\94à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87ยัà¸\87à¸\84งเปิดอยู่ การอภิปรายจะเริ่มได้หลังจากปิดชุดการเปลี่ยนแปลงแล้ว
       subscribe: บอกรับข้อมูล
       unsubscribe: เลิกรับข้อมูล
       comment_by_html: ความคิดเห็นจาก %{user} %{time_ago}
@@ -411,14 +472,14 @@ th:
       changesetxml: ชุดการเปลี่ยนแปลง XML
       osmchangexml: เอ็กซ์เอ็มแอลของ osmChange
     paging_nav:
-      nodes: à¸«à¸¡à¸¸ด (%{count})
-      nodes_paginated: à¸«à¸¡à¸¸ดที่ (%{x}-%{y} จากทั้งหมด %{count})
+      nodes: à¹\82หà¸\99ด (%{count})
+      nodes_paginated: à¹\82หà¸\99ดที่ (%{x}-%{y} จากทั้งหมด %{count})
       ways: เส้นทาง (%{count})
       ways_paginated: เส้นทางที่ (%{x}-%{y} จาก %{count})
       relations: ความสัมพันธ์ (%{count})
       relations_paginated: ความสัมพันธ์ (%{x}-%{y} จาก %{count})
     timeout:
-      sorry: à¸\82ออภัย à¸£à¸²à¸¢à¸\81ารà¸\8aุà¸\94à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ีà¹\88à¸\97à¹\88าà¸\99รà¹\89อà¸\87à¸\82อà¹\83à¸\8aà¹\89à¹\80วลาà¸\99าà¸\99à¹\80à¸\81ิà¸\99สมà¸\84วรà¹\83à¸\99à¸\81ารสืà¸\9aà¸\84à¹\89à¸\99
+      sorry: ขออภัย รายการชุดการเปลี่ยนแปลงที่ร้องขอใช้เวลานานเกินสมควรในการสืบค้น
   changeset_comments:
     comment:
       comment: 'ความคิดเห็นใหม่ที่มีต่อชุดการเปลี่ยนแปลง #%{changeset_id} โดย %{author}'
@@ -429,23 +490,28 @@ th:
       title_all: การอภิปรายชุดการเปลี่ยนแปลงของ OpenStreetMap
       title_particular: 'การอภิปรายชุดการเปลี่ยนแปลง OpenStreetMap #%{changeset_id}'
     timeout:
-      sorry: à¸\82ออภัย à¸£à¸²à¸¢à¸\81ารà¸\8aุà¸\94à¸\81ารà¹\80à¸\9bลีà¹\88ยà¸\99à¹\81à¸\9bลà¸\87à¸\97ีà¹\88à¸\97à¹\88าà¸\99รà¹\89อà¸\87à¸\82อà¹\83à¸\8aà¹\89à¹\80วลาà¸\99าà¸\99à¹\80à¸\81ิà¸\99สมà¸\84วรà¹\83à¸\99à¸\81ารสืà¸\9aà¸\84à¹\89à¸\99
+      sorry: ขออภัย รายการชุดการเปลี่ยนแปลงที่ร้องขอใช้เวลานานเกินสมควรในการสืบค้น
   dashboards:
     contact:
-      km away: ห่างออกไป %{count}km
-      m away: ห่างออกไป %{count}m
+      km away: ห่างออกไป %{count} กม.
+      m away: ห่างออกไป %{count} ม.
       latest_edit_html: 'การแก้ไขล่าสุด (%{ago}):'
     popup:
       your location: ตำแหน่งของคุณ
       nearby mapper: คนทำแผนที่ ที่อยู่ใกล้เคียง
       friend: เพื่อน
     show:
+      title: แผงควบคุมของฉัน
+      no_home_location_html: '%{edit_profile_link} และตั้งตำแหน่งบ้านของให้ผู้ใช้ไกล้เคียงเห็น'
+      edit_your_profile: แก้ไขโปรไฟล์ของคุณ
       my friends: รายการเพื่อน
       no friends: ท่านยังไม่ได้เพิ่มเพื่อนใด ๆ
-      nearby users: à¸\9cูà¹\89à¹\83à¸\8aà¹\89à¸\97à¹\88าà¸\99อืà¹\88à¸\99à¸\97ีà¹\88à¹\83à¸\81ลà¹\89à¹\80à¸\84ียà¸\87
+      nearby users: ผู้ใช้อื่นที่ใกล้เคียง
       no nearby users: ไม่ได้มีผู้ใดแสดงตัวว่าทำแผนที่อยู่ใกล้เคียง
+      friends_changesets: ชุดการเปลี่ยนแปลงของเพื่อน
       friends_diaries: บันทึกของเพื่อน
-      nearby_diaries: บันทึกของผู้ใช้ข้างเคียง
+      nearby_changesets: ชุดการเปลี่ยนแปลงของผู้ใช้ใกล้เคียง
+      nearby_diaries: บันทึกของผู้ใช้ใกล้เคียง
   diary_entries:
     new:
       title: สร้างรายการบันทึกใหม่
@@ -459,7 +525,7 @@ th:
       user_title: บันทึกของ %{user}
       in_language_title: รายการบันทึกทั้งหมดในภาษา %{language}
       new: สร้างรายการบันทึกใหม่
-      new_title: สร้างรายการบันทึกใหม่ในสมุดบันทึกประจำตัวของฉัน
+      new_title: สร้างรายการบันทึกใหม่
       my_diary: บันทึกของฉัน
       no_entries: ไม่มีรายการบันทึก
       recent_entries: รายการบันทึกล่าสุด
@@ -471,8 +537,11 @@ th:
     show:
       title: บันทึกของ %{user} | %{title}
       user_title: บันทึกของ %{user}
+      discussion: การอภิปราย
+      subscribe: สมัครรับ
+      unsubscribe: เลิกสมัครรับ
       leave_a_comment: แสดงความคิดเห็น
-      login_to_leave_a_comment_html: '%{login_link} เพื่อแสดงความคิดเห็น'
+      login_to_leave_a_comment_html: '%{login_link}เพื่อแสดงความคิดเห็น'
       login: เข้าสู่ระบบ
     no_such_entry:
       title: ไม่มีรายการบันทึกที่ระบุ
@@ -485,9 +554,8 @@ th:
       comment_link: แสดงความคิดเห็นต่อรายการนี้
       reply_link: ตอบกลับข้อความถึงผู้เขียนนี้
       comment_count:
-        zero: ไม่มีข้อคิดเห็น
-        one: '%{count} ข้อคิดเห็น'
-        other: '%{count} ข้อคิดเห็น'
+        other: '%{count} ความคิดเห็น'
+      no_comments: ไม่มีความคิดเห็น
       edit_link: แก้ไขรายการนี้
       hide_link: ซ่อนรายการนี้
       unhide_link: เลิกซ่อนรายการนี้
@@ -513,37 +581,106 @@ th:
       all:
         title: รายการบันทึก OpenStreetMap
         description: รายการบันทึกล่าสุดจากผู้ใช้ OpenStreetMap
+    subscribe:
+      heading: ติดตามการอภิปรายเซ็ตการแก้ไขต่อไปนี้หรือไม่
+      button: ติดตามการอภิปราย
+    unsubscribe:
+      heading: เลิกติดตามการอภิปรายต่อไปนี้หรือไม่
+      button: เลิกติดตามการอภิปราย
   diary_comments:
     index:
+      title: ความคิดเห็นในรายการบันทึกที่เพิ่มโดย %{user}
+      heading: ความคิดเห็นในรายการบันทึกของ %{user}
+      subheading_html: ความคิดเห็นในรายการบันทึกที่เพิ่มโดย %{user}
+      no_comments: ไม่มีความคิดเห็นในรายการบึกทึก
       post: เผยแพร่
       when: เมื่อ
       comment: แสดงความเห็น
       newer_comments: ความคิดเห็นใหม่กว่า
       older_comments: ความคิดเห็นเก่ากว่า
+  doorkeeper:
+    errors:
+      messages:
+        account_selection_required: เซิร์ฟเวอร์การยืนยันตัวตนต้องมีการเลือกบัญชีผู้ใช้ปลายทาง
+        consent_required: เซิร์ฟเวอร์การยืนยันตัวตนต้องได้รับความยินยอมจากผู้ใช้ปลายทาง
+        interaction_required: เซิร์ฟเวอร์การยืนยันตัวตนต้องมีการโต้ตอบกับผู้ใช้ปลายทาง
+        login_required: เซิร์ฟเวอร์การยืนยันตัวตนต้องมีการตรวจสอบสิทธิ์ผู้ใช้ปลายทาง
+    flash:
+      applications:
+        create:
+          notice: แอปพลิเคชันที่สมัคร
+    openid_connect:
+      errors:
+        messages:
+          auth_time_from_resource_owner_not_configured: ความล้มเหลวเนื่องจาก Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner
+            ไม่มีการกำหนดค่า
+          reauthenticate_resource_owner_not_configured: ความล้มเหลวเนื่องจาก Doorkeeper::OpenidConnect.configure.reauthenticate_resource_owner
+            ไม่มีการกำหนดค่า
+          resource_owner_from_access_token_not_configured: ความล้มเหลวเนื่องจาก Doorkeeper::OpenidConnect.configure.resource_owner_from_access_token
+            ไม่มีการกำหนดค่า
+          select_account_for_resource_owner_not_configured: ความล้มเหลวเนื่องจาก Doorkeeper::OpenidConnect.configure.auth_time_from_resource_owner
+            ไม่มีการกำหนดค่า
+          subject_not_configured: การสร้างโทเค็น ID ล้มเหลวเนื่องจาก Doorkeeper::OpenidConnect.configure.subject
+            ไม่มีการกำหนดค่า
+    scopes:
+      address: ดูที่อยู่ทางกายภาพของคุณ
+      email: ดูที่อยู่อีเมลของคุณ
+      openid: รับรองบัญชีของคุณ
+      phone: ดูหมายเลขโทรศัพท์ของคุณ
+      profile: ดูข้อมูลโปรไฟล์ของคุณ
+  errors:
+    contact:
+      contact_url_title: อธิบายช่องทางการติดต่อต่าง ๆ
+      contact: ช่องทางติดต่อ
+      contact_the_community_html: อย่าลังเลที่จะ%{contact_link}ชุมชน OpenStreetMap
+        หากคุณพบลิงก์ที่เสียหาย หรือข้อบกพร่อง จดโน้ตไปยัง URL ที่แน่นอนของคำขอของคุณ
+    bad_request:
+      title: คำขอไม่ถูกต้อง
+      description: การดำเนินการที่คุณร้องขอบนเซิร์ฟเวอร์ OpenStreetMap ไม่ถูกต้อง
+        (HTTP 400)
+    forbidden:
+      title: ถูกต้องห้าม
+      description: การดำเนินการที่คุณร้องขอบนเซิร์ฟเวอร์ OpenStreetMap นั้นใช้ได้เฉพาะผู้ดูแลระบบเท่านั้น
+        (HTTP 403)
+    internal_server_error:
+      title: แอพพลิเคชันเกิดข้อผิดพลาด
+      description: เซิร์ฟเวอร์ OpenStreetMap พบเงื่อนไขที่ไม่คาดคิดซึ่งทำให้ไม่สามารถดำเนินการตามคำขอได้
+        (HTTP 500)
+    not_found:
+      title: ไม่พบไฟล์
+      description: ไม่พบการดำเนินการของไฟล์/ไดเรกทอรี/API ตามชื่อนั้นบนเซิร์ฟเวอร์
+        OpenStreetMap (HTTP 404)
   friendships:
     make_friend:
       heading: เพิ่มผู้ใช้ %{user} ในรายการเพื่อนหรือไม่?
       button: เพิ่มในรายการเพื่อน
-      success: à¸\9cูà¹\89à¹\83à¸\8aà¹\89 %{name} à¸­à¸¢à¸¹à¹\88à¹\83à¸\99รายà¸\81ารà¹\80à¸\9eืà¹\88อà¸\99à¸\82อà¸\87à¸\97à¹\88าà¸\99à¹\80รียà¸\9aรà¹\89อย!
+      success: ผู้ใช้ %{name} อยู่ในรายการเพื่อนเรียบร้อย!
       failed: ขออภัย ไม่สามารถเพิ่มผู้ใช้ %{name} ในรายการเพื่อน
-      already_a_friend: ท่านมีผู้ใช้ %{name}ในรายการเพื่อนอยู่แล้ว
+      already_a_friend: มีผู้ใช้ %{name}ในรายการเพื่อนอยู่แล้ว
+      limit_exceeded: คุณได้เป็นเพื่อนกับผู้ใช้จำนวนมากเมื่อไม่นานมานี้ โปรดรอสักครู่ก่อนที่จะพยายามเป็นเพื่อนต่อไป
     remove_friend:
       heading: ต้องการลบผู้ใช้ %{user} ออกจากรายการเพื่อนหรือไม่?
       button: ลบจากรายการเพื่อน
       success: ท่านได้ลบผู้ใช้ %{name} ออกจากรายการเพื่อน
-      not_a_friend: ผู้ใช้ %{name} ไม่ได้อยู่ในรายการเพื่อนของท่าน
+      not_a_friend: ผู้ใช้ %{name} ไม่ได้อยู่ในรายการเพื่อน
   geocoder:
+    search:
+      title:
+        results_from_html: ผลลัพธ์จาก %{results_link}
+        latlon: ภายใน
     search_osm_nominatim:
       prefix:
         aerialway:
           cable_car: รถกระเช้า
           chair_lift: รถกระเช้าเปลือย
           drag_lift: ลิฟต์ลากสกี
-          gondola: รถกระเช้า
+          gondola: รถกระเช้าลอยฟ้า
+          magic_carpet: สายพานเลื่อนสกี
           platter: กระเช้าลาก
           pylon: เสากระเช้า
           station: สถานีรถกระเช้า
           t-bar: กระเช้าลากพื้นหิมะ
+          "yes": ทางอากาศ
         aeroway:
           aerodrome: ลานบิน
           airstrip: ลานบินขนาดเล็ก
@@ -552,309 +689,432 @@ th:
           hangar: โรงเก็บเครื่องบิน
           helipad: ลานจอดเฮลิคอปเตอร์
           holding_position: ตำแหน่งยึด
+          navigationaid: ระบบเครื่องช่วยการเดินอากาศ
           parking_position: ตำแหน่งจอด
           runway: ทางวิ่งเครื่องบิน
+          taxilane: เลนขับเครื่องบิน
           taxiway: ทางขับเครื่องบิน
-          terminal: อาคารผู้โดยสาร
+          terminal: อาคารผู้โดยสารสนามบิน
+          windsock: ถุงวัดทิศทางลมด้วยสายตา
         amenity:
+          animal_boarding: สถานสงเคราะห์สัตว์
           animal_shelter: สถานสงเคราะห์สัตว์
           arts_centre: ศูนย์ศิลปะ
           atm: เครื่องถอนเงินอัตโนมัติ
           bank: ธนาคาร
-          bar: à¸£à¹\89าà¸\99สุรา
-          bbq: à¹\80à¸\95าà¸\9bิà¹\89à¸\87ยà¹\88าà¸\87
+          bar: à¸\9aารà¹\8c
+          bbq: à¸\9aารà¹\8cà¸\9aีà¸\84ิว
           bench: ม้านั่ง
           bicycle_parking: ที่จอดจักรยาน
           bicycle_rental: บริการเช่าจักรยาน
+          bicycle_repair_station: สถานีซ่อมจักรยาน
           biergarten: ลานเบียร์
+          blood_bank: ธนาคารเลือด
           boat_rental: บริการเช่าเรือ
           brothel: สถานบริการทางเพศ
           bureau_de_change: ร้านรับแลกเงินตรา
-          bus_station: à¸ªà¸\96าà¸\99ีà¸\82à¸\99สà¹\88
-          cafe: à¸£à¹\89าà¸\99à¸\81าà¹\81à¸\9f
+          bus_station: à¸ªà¸\96าà¸\99ีรà¸\96à¸\9bระà¸\88ำà¸\97า
+          cafe: à¸\84าà¹\80à¸\9fà¹\88
           car_rental: บริการเช่ารถยนต์
           car_sharing: บริการร่วมเดินทาง
           car_wash: บริการล้างรถ
           casino: บ่อนการพนัน
-          charging_station: à¸ªà¸\96าà¸\99ีà¸\9bระà¸\88ุà¹\84à¸\9fà¸\9fà¹\89า
+          charging_station: à¸ªà¸\96าà¸\99ีà¸\8aารà¹\8cà¸\88
           childcare: สถานรับเลี้ยงเด็ก
           cinema: โรงภาพยนตร์
           clinic: คลินิก
           clock: นาฬิกา
           college: วิทยาลัย
-          community_centre: ศูนย์รวมชุมชน
+          community_centre: ศูนย์ชุมชน
+          conference_centre: ศูนย์การประชุม
           courthouse: ศาล
           crematorium: ฌาปนสถาน
           dentist: ทันตแพทย์
           doctors: แพทย์
-          drinking_water: à¸\81à¹\8aอà¸\81à¸\99à¹\89ำà¸\94ืà¹\88ม
+          drinking_water: น้ำดื่ม
           driving_school: โรงเรียนสอนขับรถ
           embassy: สถานทูต
+          events_venue: สถานที่จัดงาน
           fast_food: อาหารจานด่วน
-          ferry_terminal: à¸ªà¸\96าà¸\99ีà¹\80รือà¸\82à¹\89ามà¸\9fาà¸\81
+          ferry_terminal: à¸ªà¸\96าà¸\99ีà¹\80รือà¹\82à¸\94ยสาร
           fire_station: สถานีดับเพลิง
           food_court: ศูนย์อาหาร
           fountain: น้ำพุ
-          fuel: สถานีบริการเชื้อเพลิง
+          fuel: à¸ªà¸\96าà¸\99ีà¸\9aริà¸\81ารà¹\80à¸\95ิมà¹\80à¸\8aืà¹\89อà¹\80à¸\9eลิà¸\87
           gambling: การพนัน
           grave_yard: สุสาน
           grit_bin: ถังเกลือโรยถนน
           hospital: โรงพยาบาล
-          hunting_stand: à¸\9aัà¸\87à¹\84à¸\9eรล่าสัตว์
+          hunting_stand: à¸«à¸­à¸\9eราà¸\99ล่าสัตว์
           ice_cream: ร้านไอศกรีม
+          internet_cafe: ร้านอินเตอร์เน็ต
           kindergarten: โรงเรียนอนุบาล
-          language_school: à¹\82รà¸\87à¹\80รียà¸\99à¸\94à¹\89านภาษา
+          language_school: à¹\82รà¸\87à¹\80รียà¸\99สอนภาษา
           library: ห้องสมุด
+          loading_dock: ท่าเรือขนถ่าย
+          love_hotel: ม่านรูด
           marketplace: ตลาด
-          monastery: สำนักสงฆ์
+          mobile_money_agent: ตัวแทนเติมเงินเข้าบัตรเงินสด
+          monastery: อาราม
+          money_transfer: บริการโอนเงิน
           motorcycle_parking: ที่จอดรถจักรยานยนต์
+          music_school: โรงเรียนสอนดนตรี
           nightclub: สถานบันเทิง
-          nursing_home: à¸ªà¸\96าà¸\99สà¸\87à¹\80à¸\84ราะหà¹\8cหรือà¸\9aà¹\89าà¸\99à¸\9eัà¸\81à¸\84à¸\99à¸\8aรา
+          nursing_home: บ้านพักคนชรา
           parking: ที่จอดรถ
           parking_entrance: ทางเข้าที่จอดรถ
           parking_space: ซองจอดรถ
+          payment_terminal: เครื่องชำระเงิน
           pharmacy: ร้านขายยา
           place_of_worship: ศาสนสถาน
           police: สถานีตำรวจ
           post_box: ตู้ไปรษณีย์
           post_office: ที่ทำการไปรษณีย์
           prison: ทัณฑสถาน
-          pub: ร้านเหล้า
+          pub: ผับ
+          public_bath: โรงอาบน้ำสาธารณะ
+          public_bookcase: ตู้หนังสือสาธารณะ
           public_building: อาคารสาธารณะ
+          ranger_station: สถานีเจ้าหน้าที่
           recycling: จุดรีไซเคิล
           restaurant: ร้านอาหาร
+          sanitary_dump_station: สถานีถ่ายโอนบ่อเกรอะ
           school: โรงเรียน
           shelter: ศาลาที่พัก
-          shower: à¸ªà¸\96าà¸\99à¸\97ีà¹\88อาà¸\9aà¸\99à¹\89ำ
+          shower: à¸\97ีà¹\88อาà¸\9aà¸\99à¹\89ำà¸\9dัà¸\81à¸\9aัว
           social_centre: ศูนย์พบปะสมาคม
-          social_facility: à¸ªà¹\82มสรà¸\9eà¸\9aà¸\9bะ
-          studio: à¸ªà¸\96าà¸\99à¸\97ีà¹\88à¸\9aัà¸\99à¸\97ึà¸\81ภาà¸\9eà¹\81ละà¹\80สียà¸\87
+          social_facility: à¸ªà¸´à¹\88à¸\87อำà¸\99วยà¸\84วามสะà¸\94วà¸\81à¸\97าà¸\87สัà¸\87à¸\84ม
+          studio: à¸ªà¸\95ูà¸\94ิà¹\82อ
           swimming_pool: สระว่ายน้ำ
           taxi: จุดจอดแท็กซี่
           telephone: โทรศัพท์สาธารณะ
           theatre: โรงละคร
-          toilets: ห้องน้ำสาธารณะ
+          toilets: ห้องน้ำ
           townhall: ศาลาว่าการเมือง
+          training: สิ่งอำนวยความสะดวกการฝึกอบรม
           university: มหาวิทยาลัย
-          vending_machine: เครื่องขายสินค้า
-          veterinary: คลินิกสัตวแพทย์
+          vehicle_inspection: ตรวจสอบยานพาหนะ
+          vending_machine: ตู้จำหน่ายอัตโนมัติ
+          veterinary: ศัลยกรรมสัตวแพทย์
           village_hall: ศาลากลางหมู่บ้าน
           waste_basket: ถังขยะ
           waste_disposal: ที่ทิ้งขยะ
+          waste_dump_site: บ่อฝังกลบ
+          watering_place: ที่ให้น้ำสัตว์
           water_point: จุดเติมน้ำดื่ม
+          weighbridge: ด่านชั่งน้ำหนัก
+          "yes": สิ่งอำนวยความสะดวก
         boundary:
+          aboriginal_lands: ดินแดนชาวพื้นเมือง
           administrative: ขอบเขตการปกครอง
           census: ขอบเขตการสำรวจประชากร
           national_park: อุทยานแห่งชาติ
+          political: ขอบเขตการเลือกตั้ง
           protected_area: พื้นที่ปกป้อง
         bridge:
           aqueduct: สะพานส่งน้ำ
-          boardwalk: à¸\97าà¸\87à¹\80à¸\94ิà¸\99à¹\84มà¹\89à¸\81ระà¸\94าà¸\99
+          boardwalk: à¸ªà¸°à¸\9eาà¸\99ยาว
           suspension: สะพานแขวน
-          swing: à¸ªà¸°à¸\9eาà¸\99หัà¸\99à¸\82à¹\89าà¸\87
-          viaduct: à¸ªà¸°à¸\9eาà¸\99à¸\9aà¸\81
+          swing: à¸ªà¸°à¸\9eาà¸\99หมุà¸\99
+          viaduct: à¸ªà¸°à¸\9eาà¸\99หอสูà¸\87
           "yes": สะพาน
         building:
           apartment: อพาร์ทเมนต์
           apartments: อพาร์ทเมนต์
+          barn: โรงนา
           bungalow: บังกะโล
+          cabin: กระท่อม
+          chapel: โบสถ์เล็ก
+          church: อาคารโบสถ์
+          civic: อาคารราชการ
+          commercial: อาคารพาณิชย์
+          cowshed: คอกวัว
+          detached: บ้านเดี่ยว
           dormitory: หอพัก
+          duplex: บ้านแฝด
+          farm: บ้านไร่
+          farm_auxiliary: บ่้านไร่เสริม
           garage: โรงรถ
           garages: โรงรถ
+          greenhouse: เรือนกระจก
+          hangar: โรงเก็บเครื่องบิน
           hospital: อาคารโรงพยาบาล
           hotel: อาคารโรงแรม
           house: บ้าน
+          houseboat: เรือนแพ
+          hut: กระท่อม
           industrial: อาคารอุตสาหกรรม
+          kindergarten: อาคารโรงเรียนอนุบาล
+          manufacture: อาคารโรงงานผลิต
           office: อาคารสำนักงาน
           public: อาคารสาธารณะ
           residential: อาคารที่อยู่อาศัย
-          retail: อาคารให้เช่า
+          retail: อาคารค้าปลีก
+          roof: หลังคา
+          ruins: อาคารที่พังทลาย
           school: อาคารโรงเรียน
+          semidetached_house: บ้านแฝด
+          service: อาคารบริการ
+          shed: เพิง
+          stable: โรงม้า
+          static_caravan: รถบ้าน
+          sty: เล้า
+          temple: อาคารวัด
+          terrace: ตึกแถว
+          train_station: อาคารสถานีรถไฟ
           university: อาคารมหาวิทยาลัย
+          warehouse: คลังสินค้า
           "yes": อาคาร
+        club:
+          scout: ฐานกลุ่มลูกเสือ
+          sport: สโมสรกีฬา
+          "yes": สโมสร
         craft:
-          brewery: โรงทำสุรา
+          beekeeper: คนเลี้ยงผึ้ง
+          blacksmith: ช่างตีเหล็ก
+          brewery: โรงเบียร์
           carpenter: ช่างไม้
+          caterer: ผู้ให้บริการจัดเลี้ยง
+          confectionery: ร้านของหวาน
+          dressmaker: ช่างตัดเสื้อ
           electrician: ช่างไฟฟ้า
+          electronics_repair: ร้านซ่อมอุปกรณ์อิเล็กทรอนิกส์
           gardener: คนสวน
+          glaziery: งานติดตั้งกระจก
+          handicraft: หัตถกรรม
+          hvac: ระบบปรับอากาศ
+          metal_construction: ช่างก่อสร้างโลหะ
           painter: ช่างทาสี
           photographer: ช่างภาพ
           plumber: ช่างประปา
+          roofer: ช่างมุงหลังคา
+          sawmill: โรงเลื่อย
           shoemaker: ช่างทำรองเท้า
-          tailor: ช่างตัดเสื้อผ้า
-          "yes": ร้านงานฝีมือ
+          stonemason: ช่างหิน
+          tailor: ช่างตัดเสื้อ
+          window_construction: การติดตั้งหน้าต่าง
+          winery: โรงกลั่นไวน์
+          "yes": ร้านงานหัตถกรรม
         emergency:
+          access_point: จุดเข้าถึง
           ambulance_station: สถานีรถพยาบาล
           assembly_point: จุดรวมพล
           defibrillator: เครื่องช่วยกระตุ้นหัวใจ
+          fire_extinguisher: ถังดับเพลิง
+          fire_water_pond: บ่อน้ำดับเพลิง
           landing_site: พื้นที่ลงจอดฉุกเฉิน
+          life_ring: ห่วงชูชีพฉุกเฉิน
           phone: โทรศัพท์ฉุกเฉิน
+          siren: ไซเรนฉุกเฉิน
+          suction_point: จุดดูดน้ำฉุกเฉิน
           water_tank: ถังน้ำฉุกเฉิน
         highway:
           abandoned: ทางหลวงที่เลิกใช้แล้ว
           bridleway: ทางเกวียน
-          bus_guideway: à¸\97าà¸\87รà¸\96สาà¸\98ารà¸\93ะà¸\8aà¸\99ิà¸\94à¸\9aัà¸\87à¸\84ัà¸\9aลà¹\89อà¹\84à¸\94à¹\89
-          bus_stop: à¸\97ีà¹\88หยุà¸\94รà¸\96สาà¸\98ารà¸\93ะ
+          bus_guideway: à¸\97าà¸\87รà¸\96à¸\9bระà¸\88ำà¸\97าà¸\87à¸\8aà¸\99ิà¸\94à¸\9aัà¸\87à¸\84ัà¸\9aลà¹\89อ
+          bus_stop: à¸\9bà¹\89ายหยุà¸\94รà¸\96à¸\9bระà¸\88ำà¸\97าà¸\87
           construction: ทางหลวงกำลังสร้าง
-          corridor: ระเบียงทางเดิน
+          corridor: โถงทางเดิน
+          crossing: ทางตัดข้าม
           cycleway: ทางจักรยาน
           elevator: ลิฟต์
           emergency_access_point: จุดเข้าถึงฉุกเฉิน
-          footway: ทางเดินเท้า
-          ford: ถนนตัดทางน้ำ
+          emergency_bay: จุดจอดไหล่่ทางฉุกเฉิน
+          footway: ทางเท้า
+          ford: ฝายน้ำล้น
           give_way: ป้ายให้ทาง
           living_street: ถนนใช้ร่วมรถและคน
-          milestone: à¸«à¸¥à¸±à¸\81à¹\84มลà¹\8c
+          milestone: à¸«à¸¥à¸±à¸\81à¸\81ิà¹\82ล
           motorway: ทางหลวงพิเศษ
           motorway_junction: แยกทางหลวงพิเศษ
           motorway_link: ถนนทางหลวงพิเศษ
           passing_place: ที่หลีกรถ
-          path: à¹\80สà¹\89à¸\99à¸\97าà¸\87
+          path: ทาง
           pedestrian: ถนนคนเดิน
           platform: ชานชาลา
           primary: ถนนสายหลัก
           primary_link: ถนนสายหลัก
           proposed: ถนนที่เสนอให้สร้าง
           raceway: ลานแข่งรถ
-          residential: à¸\96à¸\99à¸\99à¹\83à¸\99à¹\80à¸\82à¸\95à¸\97ีà¹\88à¸\9eัà¸\81อาศัย
-          rest_area: à¸\88ุà¸\94à¹\81วะà¸\9eัà¸\81
+          residential: à¸\96à¸\99à¸\99à¸\8aุมà¸\8aà¸\99
+          rest_area: à¸\88ุà¸\94à¸\9eัà¸\81รà¸\96
           road: ถนน
           secondary: ถนนสายรอง
           secondary_link: ถนนสายรอง
-          service: à¸\8bอย
-          services: บริการทางหลวงพิเศษ
-          speed_camera: กล้องจับความเร็ว
+          service: à¸\96à¸\99à¸\99à¸\9aริà¸\81าร
+          services: à¸\97าà¸\87à¸\9aริà¸\81ารà¸\97าà¸\87หลวà¸\87à¸\9eิà¹\80ศษ
+          speed_camera: à¸\81ลà¹\89อà¸\87à¸\95รวà¸\88à¸\88ัà¸\9aà¸\84วามà¹\80รà¹\87ว
           steps: ขั้นบันใด
           stop: ป้ายหยุด
           street_lamp: ไฟถนน
-          tertiary: ถนนสายย่อย
-          tertiary_link: ถนนสายย่อย
+          tertiary: ถนนสายย่อย/ทางหลวงชนบท
+          tertiary_link: ถนนสายย่อย/ทางหลวงชนบท
           track: ราง
+          traffic_mirror: กระจกโค้งจราจร
           traffic_signals: สัญญาณจราจร
-          trunk: ถนนสายประธาน
-          trunk_link: ถนนสายประธาน
-          turning_loop: ทางโค้งสำหรับกลับรถ
-          unclassified: ถนนที่มิได้จำแนก
+          trailhead: จุดเริ่มต้นเส้นทางเดินป่า
+          trunk: ทางหลวงสายประธาน
+          trunk_link: ทางหลวงสายประธาน
+          turning_circle: วงเวียนกลับรถ
+          turning_loop: ทางโค้งกลับรถ
+          unclassified: ถนนพื้นฐาน
           "yes": ถนน
         historic:
-          archaeological_site: สถานที่ทางโบราณคดี
+          aircraft: อากาศยานประวัติศาสตร์
+          archaeological_site: แหล่งโบราณคดี
+          bomb_crater: หลุมระเบิดประวัติศาสตร์
           battlefield: สนามรบ
           boundary_stone: หินแสดงขอบเขต
           building: อาคารประวัติศาสตร์
-          bunker: บังเกอร์
+          bunker: หลุมหลบภัย
+          cannon: ปืนใหญ่ประวัติศาสตร์
           castle: ปราสาท
+          charcoal_pile: กองถ่านหินประวัติศาสตร์
           church: โบสถ์
           city_gate: ประตูเมือง
           citywalls: กำแพงเมือง
           fort: ป้อม
           heritage: สถานที่มรดก
+          hollow_way: ทางลาดต่ำ
           house: บ้าน
-          manor: บ้านสวน
-          memorial: อนุสรณ์
+          manor: คฤหาสน์
+          memorial: อนุสรณ์อนุสรณ์สถาน
+          milestone: หลักกิโลประวัติศาสตร์
           mine: เหมือง
-          mine_shaft: ปล่องเหมืองเก่า
+          mine_shaft: ปล่องเหมือง
           monument: อนุสาวรีย์
+          railway: รางรถไฟประวัติศาสตร์
           roman_road: ถนนโรมัน
           ruins: ซากโบราณสถาน
+          rune_stone: หินรูน
           stone: หลักหิน
           tomb: สุสาน
           tower: หอคอย
-          wayside_cross: กางเขนข้างทาง
-          wayside_shrine: ศาลเจ้าข้างทาง
+          wayside_chapel: โบสถ์เล็กริมทาง
+          wayside_cross: ไม้กางเขนริมทาง
+          wayside_shrine: ศาลเจ้าริมทาง
           wreck: ซากปรักหักพัง
           "yes": สถานที่ประวัติศาสตร์
         junction:
           "yes": ทางแยก
         landuse:
-          allotments: ที่ดินแบ่งใช้
-          basin: แอ่ง
-          brownfield: พื้นที่อุตสาหกรรมเดิม
+          allotments: สวนจัดสรร
+          aquaculture: เพาะเลี้ยงสัตว์น้ำ
+          basin: อ่าง
+          brownfield: ที่ดินถม
           cemetery: สุสาน
           commercial: พื้นที่พาณิชยกรรม
           conservation: พื้นที่อนุรักษ์
           construction: พื้นที่ก่อสร้าง
           farmland: ไร่นา
-          farmyard: à¸¥à¸²à¸\99à¹\84รà¹\88à¸\99า
-          forest: ป่า
+          farmyard: à¸\9eืà¹\89à¸\99à¸\97ีà¹\88à¸\9fารà¹\8cม
+          forest: ป่าไม้
           garages: โรงรถ
           grass: หญ้า
-          greenfield: à¸\9eืà¹\89à¸\99à¸\97ีà¹\88สีà¹\80à¸\82ียว
+          greenfield: à¸\97ีà¹\88à¸\94ิà¸\99à¸\96มรà¸\81รà¹\89าà¸\87
           industrial: พื้นที่อุตสาหกรรม
           landfill: บ่อขยะ
-          meadow: ทุ่งหญ้า
+          meadow: ทุ่ง
           military: เขตทหาร
           mine: เหมือง
           orchard: สวนผลไม้
+          plant_nursery: สถานเพาะชำพืช
           quarry: เหมืองเปิด
           railway: ทางรถไฟ
           recreation_ground: พื้นที่สันทนาการ
+          religious: พื้นที่ศาสนสถาน
           reservoir: อ่างเก็บน้ำ
           reservoir_watershed: สันปันน้ำ
-          residential: à¹\80à¸\82à¸\95à¸\97ีà¹\88à¸\9eัà¸\81อาศัย
-          retail: à¸\9eืà¹\89à¸\99à¸\97ีà¹\88รà¹\89าà¸\99à¸\84à¹\89า
-          village_green: à¸¥à¸²à¸\99หà¸\8dà¹\89าà¹\83à¸\99à¹\80à¸\82à¸\95หมู่บ้าน
+          residential: à¸\9eืà¹\89à¸\99à¸\97ีà¹\88อยูà¹\88อาศัย
+          retail: à¸\9eืà¹\89à¸\99à¸\97ีà¹\88à¸\84à¹\89าà¸\9bลีà¸\81
+          village_green: à¸¥à¸²à¸\99หà¸\8dà¹\89าà¸\81ลาà¸\87หมู่บ้าน
           vineyard: ไร่องุ่น
-          "yes": à¸\81ารà¹\83à¸\8aà¹\89à¸\9bระà¹\82ยà¸\8aà¸\99à¹\8cà¸\97ีà¹\88à¸\94ิà¸\99
+          "yes": การใช้ที่ดิน
         leisure:
-          beach_resort: สถานตากอากาศชายหาด
+          adult_gaming_centre: ศูนย์การพนันสำหรับผู้ใหญ่
+          amusement_arcade: อาร์เคด
+          bandstand: เวทีศาลา
+          beach_resort: รีสอร์ทริมชายหาด
           bird_hide: บังไพรดูนก
+          bleachers: อัฒจันทร์กลางแจ้ง
+          bowling_alley: ลานโบว์ลิ่ง
           common: พื้นที่สาธารณประโยชน์
+          dance: ลานเต้นรำ
           dog_park: สวนสุนัข
-          firepit: à¸\88ุà¸\94à¸\81à¹\88อà¸\81อà¸\87ไฟ
+          firepit: à¸«à¸¥à¸¸à¸¡ไฟ
           fishing: พื้นที่ตกปลา
-          fitness_centre: à¸¨à¸¹à¸\99ยà¹\8cออà¸\81à¸\81ำลัà¸\87à¸\81าย
-          fitness_station: à¸¨à¸¹à¸\99ยà¹\8cออกกำลังกาย
+          fitness_centre: à¸¢à¸´à¸¡/à¸\9fิà¸\95à¹\80à¸\99ส
+          fitness_station: à¸ªà¸\96าà¸\99à¸\97ีà¹\88ออกกำลังกาย
           garden: สวน
           golf_course: สนามกอล์ฟ
-          horse_riding: สนามม้า
+          horse_riding: à¸ªà¸\99ามà¸\82ีà¹\88มà¹\89า
           ice_rink: ลานสเก็ตน้ำแข็ง
-          marina: à¸\97ีà¹\88จอดเรือ
-          miniature_golf: à¸ªà¸\99ามà¸\81อลà¹\8cà¸\9fà¹\80ลà¹\87à¸\81
+          marina: à¸¥à¸²à¸\99จอดเรือ
+          miniature_golf: à¸ªà¸\99ามมิà¸\99ิà¸\81อลà¹\8cà¸\9f
           nature_reserve: พื้นที่สงวนธรรมชาติ
+          outdoor_seating: ที่นั่งกลางแจ้ง
           park: สวนสาธารณะ
+          picnic_table: โตีะปิกนิก
           pitch: ลานกีฬา
           playground: สนามเด็กเล่น
-          recreation_ground: à¸ªà¸\99ามสำหรัà¸\9aà¹\80ลà¹\88à¸\99
-          resort: à¸ªà¸\96าà¸\99à¸\97ีà¹\88à¸\9eัà¸\81à¸\9cà¹\88อà¸\99
-          sauna: à¸ªà¸\96าà¸\99à¸\97ีà¹\88อà¸\9aà¸\95ัว
+          recreation_ground: à¸\9eืà¹\89à¸\99à¸\97ีà¹\88สัà¸\99à¸\97à¸\99าà¸\81าร
+          resort: à¸£à¸µà¸ªà¸­à¸£à¹\8cà¸\97
+          sauna: à¸\8bาวà¸\99à¹\88า
           slipway: ทางลาดสำหรับเรือ
           sports_centre: ศูนย์กีฬา
           stadium: สนามกีฬา
           swimming_pool: สระว่ายน้ำ
-          track: à¸\97าà¸\87วิ่ง
+          track: à¸¥à¸¹à¹\88วิ่ง
           water_park: สวนน้ำ
           "yes": สถานที่เพื่อนันทนาการ
         man_made:
           adit: ทางระบายน้ำในเหมือง
+          advertising: การโฆษณา
+          antenna: เสาอากาศ
+          avalanche_protection: การป้องกันหิมะถล่ม
           beacon: เสาไฟสัญญาณ
-          beehive: คอนเลี้ยงผึ้ง
+          beam: คาน
+          beehive: รังผึ้ง
           breakwater: เขื่อนกันคลื่น
           bridge: สะพาน
           bunker_silo: หลุมหลบภัย
+          cairn: กองหินสัญลักษณ์
           chimney: ปล่องไฟ
+          clearcut: ป่าเตียน
+          communications_tower: เสาสื่อสาร
           crane: ปั้นจั่น
+          cross: ไม้กางเขน
           dolphin: หลักผูกเรือ
           dyke: กำแพงกันฝั่ง
           embankment: คันดิน
           flagpole: เสาธง
-          gasometer: à¸\96ุงเก็บแก๊ส
+          gasometer: à¸\96ังเก็บแก๊ส
           groyne: รอดักทราย
           kiln: เตาเผา
-          lighthouse: ประภาคาร/กระโจมไฟ
+          lighthouse: ประภาคาร
+          manhole: หลุมท่อ
           mast: เสา
           mine: เหมือง
           mineshaft: ปล่องเหมือง
           monitoring_station: สถานีตรวจอากาศ
           petroleum_well: บ่อน้ำมัน
           pier: ท่าเรือ
-          pipeline: ท่อส่งน้ำมัน
-          silo: ยุ้งฉาง
+          pipeline: ท่อ
+          pumping_station: สถานีสูบ
+          reservoir_covered: อ่างเก็บน้ำคลุมปิด
+          silo: ไซโล
+          snow_cannon: ปืนใหญ่หิมะ
+          snow_fence: รั้วหิมะ
           storage_tank: ถังกักเก็บ
-          surveillance: กล้องวงจรปิด
+          street_cabinet: ตู้ริมถนน
+          surveillance: การสอดส่องความปลอดภัย
+          telescope: กล้องโทรทรรศน์
           tower: หอคอย
+          utility_pole: เสาไฟฟ้า
           wastewater_plant: โรงบำบัดน้ำเสีย
           watermill: กังหันน้ำ
-          water_tower: หอเก็บน้ำ
+          water_tap: ก๊อกน้ำ
+          water_tower: หอแทงค์เก็บน้ำ
           water_well: บ่อน้ำ
           water_works: โรงประปา
           windmill: กังหันลม
@@ -864,82 +1124,105 @@ th:
           airfield: สนามบินทหาร
           barracks: โรงทหาร
           bunker: หลุมหลบภัย
+          checkpoint: ด่านตรวจทหาร
+          trench: คูหลุมทหาร
           "yes": เขตทหาร
         mountain_pass:
-          "yes": à¸\8aà¹\88อà¸\87เขา
+          "yes": à¸\88ุà¸\94ยอà¸\94เขา
         natural:
+          atoll: อะทอลล์
+          bare_rock: หินเปลือย
           bay: อ่าว
-          beach: หาด
-          cape: à¸\96à¹\89ำ
-          cave_entrance: à¸\97าà¸\87à¹\80à¸\82à¹\89าถ้ำ
+          beach: à¸\8aายหาà¸\94
+          cape: à¹\81หลม
+          cave_entrance: à¸\9bาà¸\81ถ้ำ
           cliff: หน้าผา
-          crater: หลุมอุกกาบาต
+          coastline: ชายฝั่ง
+          crater: หลุม
           dune: เนินทราย
-          fell: ทุ่งหญ้า
+          fell: ทุ่งหญ้าขั่วโลก
           fjord: ฟยอร์ด
-          forest: à¸\9bà¹\88าà¸\94ิà¸\9a
-          geyser: น้ำพุร้อน
+          forest: à¸\9bà¹\88าà¹\84มà¹\89
+          geyser: น้ำพุร้อนไกเซอร์
           glacier: ธารน้ำแข็ง
           grassland: ทุ่งหญ้า
           heath: ทุ่งไม้พุ่ม
           hill: เนินเขา
+          hot_spring: บ่อน้ำร้อน
           island: เกาะ
+          isthmus: คอคอด
           land: ที่ดิน
-          marsh: à¸\97ีà¹\88ลุà¹\88มà¸\99à¹\89ำà¸\82ัà¸\87
-          moor: à¸\97ุà¹\88à¸\87หà¸\8dà¹\89าà¸\97ีà¹\88สูà¸\87
+          marsh: à¸\97ุà¹\88à¸\87ลุà¹\88มà¸\8aืà¹\89à¸\99à¹\81à¸\89ะ
+          moor: à¸\97ุà¹\88à¸\87หà¸\8dà¹\89าà¸\99à¸\97ีà¹\88ราà¸\9aสูà¸\87à¹\80à¸\82à¸\95อà¸\9aอุà¹\88à¸\99
           mud: โคลน
           peak: ยอดเขา
           peninsula: คาบสมุทร
           point: จุด
-          reef: à¹\81à¸\99วà¸\9bะà¸\81ารัà¸\87
+          reef: à¸\9eืà¸\94หิà¸\99à¹\83à¸\95à¹\89à¸\99à¹\89ำ
           ridge: สันเขา
-          rock: à¸«à¸¥à¸±à¸\81หิน
+          rock: à¸\81à¹\89อà¸\99หิน
           saddle: หุบโค้ง
           sand: ทราย
           scree: ลาดหินร่วง
-          scrub: ป่าไม้พุ่ม
+          scrub: ป่าละเมาะ
+          shingle: กรวดชายฝั่ง
           spring: น้ำพุธรรมชาติ
-          stone: à¸«à¸¥à¸±à¸\81หิà¸\99
+          stone: หิน
           strait: ช่องแคบ
           tree: ต้นไม้
+          tree_row: แถวต้นไม้
+          tundra: ทันดรา
           valley: หุบเขา
           volcano: ภูเขาไฟ
           water: น้ำ
           wetland: พื้นที่ชุ่มน้ำ
-          wood: ไม้
+          wood: ป่าไม้
+          "yes": คุณลักษณะธรรมชาติ
         office:
-          accountant: à¸\99ัà¸\81บัญชี
+          accountant: à¸ªà¸³à¸\99ัà¸\81à¸\87าà¸\99บัญชี
           administrative: การปกครอง
-          architect: สถาปนิก
+          advertising_agency: ตัวแทนโฆษณา
+          architect: สำนักงานสถาปนิก
           association: สมาคม
           company: บริษัท
+          diplomatic: สำนักงานการทูต
           educational_institution: สถาบันการศึกษา
-          employment_agency: บริษัทจัดหางาน
-          estate_agent: บริษัทอสังหาริมทรัพย์
-          government: สำนักงานของรัฐบาล
+          employment_agency: ตัวแทนจัดหางาน
+          energy_supplier: สำนักงานผู้จำหน่ายพลังงาน
+          estate_agent: ตัวแทนอสังหาริมทรัพย์
+          financial: สำนักงานการเงิน
+          government: สำนักงานข้าราชการ
           insurance: สำนักงานประกันภัย
-          it: สำนักงานสารสนเทศ
+          it: à¸ªà¸³à¸\99ัà¸\81à¸\87าà¸\99à¹\80à¸\97à¸\84à¹\82à¸\99à¹\82ลยีสารสà¸\99à¹\80à¸\97ศ
           lawyer: ทนายความ
-          ngo: สำนักงานองค์กรเอกชน
-          telecommunication: ที่ทำการโทรคมนาคม
-          travel_agent: ตัวแทนการเดินทาง
+          logistics: สำนักงานโลจิสติกส์
+          newspaper: บริษัทหนังสือพิมพ์
+          ngo: สำนักงานองค์การนอกภาครัฐ
+          notary: สำนักงานรับรองเอกสาร
+          religion: สำนักงานศาสนา
+          research: สำนักงานวิจัย
+          tax_advisor: สำนักงานปรึกษาภาษี
+          telecommunication: สำนักงานโทรคมนาคม
+          travel_agent: ตัวแทนท่องเที่ยว
           "yes": สำนักงาน
         place:
-          allotments: ที่ดินแบ่งใช้
+          allotments: สวนจัดสรร
+          archipelago: กลุ่มเกาะ
           city: เมือง
-          city_block: à¸\95ึà¸\81สำà¸\99ัà¸\81à¸\87าà¸\99
+          city_block: à¸\9aลà¹\87อà¸\81à¹\80มือà¸\87
           country: ประเทศ
           county: จังหวัด
           farm: ไร่นา
-          hamlet: à¸\8aุมà¸\8aนขนาดเล็ก
+          hamlet: à¸«à¸¡à¸¹à¹\88à¸\9aà¹\89านขนาดเล็ก
           house: บ้าน
-          houses: บ้าน
+          houses: à¸\81ลุà¹\88มà¸\9aà¹\89าà¸\99
           island: เกาะ
           islet: เกาะขนาดเล็ก
-          isolated_dwelling: à¸\97ีà¹\88อยูà¹\88อาศัยà¹\82à¸\94à¸\94
-          locality: à¸\8aุมà¸\8aà¸\99
+          isolated_dwelling: à¸«à¸¡à¸¹à¹\88à¸\9aà¹\89าà¸\99à¹\82à¸\94à¸\94à¹\80à¸\94ีà¹\88ยว
+          locality: à¸¥à¸°à¹\81วà¸\81
           municipality: เทศบาล
           neighbourhood: ชุมชน
+          plot: แปลง
           postcode: รหัสไปรษณีย์
           quarter: ย่าน
           region: ภูมิภาค
@@ -952,34 +1235,44 @@ th:
           village: หมู่บ้าน
           "yes": สถานที่
         railway:
-          abandoned: ทางรถไฟที่เลิกใช้แล้ว
+          abandoned: ทางรถไฟร้าง
+          buffer_stop: แป้นปะทะ
           construction: ทางรถไฟกำลังสร้าง
           disused: ทางรถไฟเลิกใช้แล้ว
-          funicular: à¸£à¸\96à¹\84à¸\9fà¸\82ึà¹\89à¸\99ลà¸\87à¹\80à¸\99ิà¸\99
+          funicular: à¸\97าà¸\87รà¸\96à¹\84à¸\9fà¹\84à¸\95à¹\88à¹\80à¸\82า
           halt: ที่หยุดรถไฟ
           junction: ชุมทางรถไฟ
           level_crossing: ทางผ่านเสมอระดับ
           light_rail: รถไฟเบา
           miniature: รถไฟเล็ก
-          monorail: à¸£à¸\96ราวหรือà¹\82มà¹\82à¸\99à¹\80รล
-          narrow_gauge: รถไฟรางแคบ
+          monorail: à¸£à¸\96à¹\84à¸\9fราà¸\87à¹\80à¸\94ีà¹\88ยว
+          narrow_gauge: à¸\97าà¸\87รà¸\96à¹\84à¸\9fราà¸\87à¹\81à¸\84à¸\9a
           platform: ชานชาลารถไฟ
           preserved: ทางรถไฟที่อนุรักษ์ไว้
           proposed: ทางรถไฟที่เสนอให้สร้าง
-          spur: ทางรถไฟสายย่อย
+          rail: ราง
+          spur: ทางรถไฟสายแยก
           station: สถานีรถไฟ
           stop: ที่หยุดรถไฟ
-          subway: à¸£à¸\96à¹\84à¸\9fà¹\83à¸\95à¹\89à¸\94ิà¸\99
-          subway_entrance: à¸\97าà¸\87à¹\80à¸\82à¹\89ารà¸\96à¹\84à¸\9fà¹\83à¸\95à¹\89à¸\94ิà¸\99
+          subway: à¸£à¸\96à¹\84à¸\9fà¸\9fà¹\89า
+          subway_entrance: à¸\97าà¸\87à¹\80à¸\82à¹\89ารà¸\96à¹\84à¸\9fà¸\9fà¹\89า
           switch: ประแจรถไฟ
           tram: ทางรถราง
           tram_stop: ที่หยุดรถราง
+          turntable: วงเวียนกลับรถจักร
+          yard: ลานรถไฟ
         shop:
+          agrarian: ร้านเกษตร
           alcohol: ร้านขายสุรา
           antiques: ร้านขายของเก่า
+          appliance: ร้านเครื่องใช้ไฟฟ้า
           art: ร้านขายงานศิลปะ
-          bakery: ร้านขายขนมอบ
+          baby_goods: ร้านสินค้าเด็ก
+          bag: ร้านกระเป๋า
+          bakery: เบเกอรี่
+          bathroom_furnishing: ร้านอุปกรณ์ห้องน้ำ
           beauty: ร้านเสริมสวย
+          bed: ร้านเครื่องนอน
           beverages: ร้านขายเครื่องดื่ม
           bicycle: ร้านจักรยาน
           bookmaker: ร้านทำหนังสือ
@@ -988,97 +1281,130 @@ th:
           butcher: ร้านขายเนื้อ
           car: ร้านรถยนต์
           car_parts: ร้านอะไหล่รถยนต์
-          car_repair: à¸£à¹\89าà¸\99รัà¸\9aà¸\8bà¹\88อมรà¸\96ยà¸\99à¸\95à¹\8c
+          car_repair: ร้านซ่อมรถยนต์
           carpet: ร้านขายพรม
           charity: ร้านการกุศล
+          cheese: ร้านชีส
           chemist: ร้านขายยา
+          chocolate: ร้านช็อคโกแลต
           clothes: ร้านขายเสื้อผ้า
+          coffee: ร้านกาแฟ
           computer: ร้านคอมพิวเตอร์
           confectionery: ร้านขายขนมหวาน
           convenience: ร้านสะดวกซื้อ
           copyshop: ร้านถ่ายเอกสาร
-          cosmetics: ร้านขายเครื่องสำอาง
-          deli: ร้านขายอาหารพิเศษ
+          cosmetics: ร้านเครื่องสำอาง
+          craft: ร้านขายอุปกรณ์งานศิลปะและงานฝีมือ
+          curtain: ร้านผ้าม่าน
+          dairy: ร้านขายผลิตภัณฑ์นม
+          deli: ร้านขายอาหารคัดสรร
           department_store: ห้างสรรพสินค้า
-          discount: à¸£à¹\89าà¸\99สิà¸\99à¸\84à¹\89าลà¸\94ราà¸\84า
-          doityourself: à¸£à¹\89าà¸\99อุà¸\9bà¸\81รà¸\93à¹\8cà¸\8aà¹\88าà¸\87à¸\9bระà¸\88ำà¸\9aà¹\89าà¸\99
+          discount: à¸£à¹\89าà¸\99à¸\82ายสิà¸\99à¸\84à¹\89าราà¸\84าà¸\96ูà¸\81
+          doityourself: à¸£à¹\89าà¸\99à¸\82ายà¸\82อà¸\87à¸\97ำมือ
           dry_cleaning: ร้านซักแห้ง
+          e-cigarette: ร้านบุหรี่ไฟฟ้า
           electronics: ร้านเครื่องไฟฟ้า
-          estate_agent: บริษัทอสังหาริมทรัพย์
-          farm: ร้านในไร่นา
-          fashion: ร้านแฟชั่น
+          erotic: ร้านขายของเล่นผู้ใหญ่
+          estate_agent: ตัวแทนอสังหาริมทรัพย์
+          fabric: ร้านขายผ้า
+          farm: ร้านเกษตร
+          fashion: ร้านเสื้อผ้าแฟชั่น
+          fishing: ร้านอุปกรณ์ตกปลา
           florist: ร้านขายดอกไม้
           food: ร้านขายอาหาร
-          funeral_directors: บริการจัดการศพ
-          furniture: เครื่องเรือน
-          garden_centre: ศูนย์การจัดสวน
+          frame: ร้านทำกรอบรูป
+          funeral_directors: บริการจัดงานศพ
+          furniture: ร้านเฟอร์นิเจอร์
+          garden_centre: ตลาดต้นไม้
+          gas: ร้านแก๊ส
           general: ร้านค้าทั่วไป
           gift: ร้านของฝาก
           greengrocer: ร้านขายผักผลไม้
-          grocery: ร้านชำ
+          grocery: à¸£à¹\89าà¸\99à¸\82ายà¸\82อà¸\87à¸\8aำ
           hairdresser: ร้านทำผม
-          hardware: ร้านวัสดุก่อสร้าง
-          hifi: เครื่องเสียง
-          houseware: ร้านขายเครื่องใช้ในบ้าน
-          interior_decoration: ร้านขายเครื่องตกแต่งภายใน
+          hardware: ร้านวัสดุภัณฑ์
+          health_food: ร้านอาหารเพื่อสุขภาพ
+          hearing_aids: เครื่องช่วยฟัง
+          herbalist: นักสมุนไพร
+          hifi: ร้านเครื่องเสียง
+          houseware: ร้านขายของใช้ในบ้าน
+          ice_cream: ร้านไอศครีม
+          interior_decoration: ร้านตกแต่งภายใน
           jewelry: ร้านเครื่องประดับ
           kiosk: ร้านแผงลอย
           kitchen: ร้านเครื่องครัว
           laundry: ร้านซักรีด
+          locksmith: ช่างทำกุญแจ
           lottery: ร้านขายสลาก
           mall: ศูนย์การค้า
           massage: ร้านนวด
+          medical_supply: ร้านเวชภัณฑ์
           mobile_phone: ร้านโทรศัพท์มือถือ
-          motorcycle: ร้านรถจักรยานยนต์
-          music: ร้านดนตรี
+          money_lender: ผู้ให้กู้ยืมเงิน
+          motorcycle: ร้านขายจักรยานยนต์
+          motorcycle_repair: ร้านซ่อมจักรยานยนต์
+          music: ร้านขายเพลง
+          musical_instrument: ร้านเครื่องดนตรี
           newsagent: ร้านขายหนังสือพิมพ์
+          nutrition_supplements: ร้านอาหารเสริม
           optician: ร้านแว่นตา
-          organic: à¸£à¹\89าà¸\99à¸\82ายอาหารอิà¸\99à¸\97รียà¹\8c
-          outdoor: à¸£à¹\89าà¸\99à¸\82ายอุà¸\9bà¸\81รà¸\93à¹\8cà¸\9cà¸\88à¸\8dภัย
+          organic: à¸£à¹\89าà¸\99à¸\82ายอาหารออรà¹\8cà¹\81à¸\81à¸\99ิà¸\84
+          outdoor: à¸£à¹\89าà¸\99à¸\84à¹\89าอุà¸\9bà¸\81รà¸\93à¹\8cà¸\81ลาà¸\87à¹\81à¸\88à¹\89à¸\87
           paint: ร้านขายสี
+          pastry: ร้านขนมอบ
           pawnbroker: โรงรับจำนำ
+          perfumery: ร้านน้ำหอม
           pet: ร้านขายสัตว์เลี้ยงและอุปกรณ์
+          pet_grooming: การดูแลสัตว์เลี้ยง
           photo: ร้านถ่ายภาพ
           seafood: ร้านขายอาหารทะเล
           second_hand: ร้านขายของมือสอง
+          sewing: ร้านเย็บผ้า
           shoes: ร้านขายรองเท้า
-          sports: ร้านขายอุปกรณ์กีฬา
-          stationery: ร้านขายเครื่องเขียน
-          supermarket: ซุปเปอร์มาร์เก็ต
-          tailor: ช่างตัดเสื้อผ้า
-          ticket: ร้านขายตั๋ว
-          tobacco: ร้านขายยาสูบ
-          toys: ร้านขายของเล่น
-          travel_agency: ตัวแทนบริษัทนำเที่ยว
+          sports: ร้านอุปกรณ์กีฬา
+          stationery: ร้านเครื่องเขียน
+          storage_rental: ห้องเช่าสำหรับเก็บของ
+          supermarket: ซูเปอร์มาร์เก็ต
+          tailor: ช่างตัดเสื้อ
+          tattoo: ร้านสักลาย
+          tea: ร้านชา
+          ticket: จำหน่ายตั๋ว
+          tobacco: ร้านยาสูบ
+          toys: ร้านของเล่น
+          travel_agency: ตัวแทนท่องเที่ยว
           tyres: ร้านขายยางรถ
-          vacant: à¸£à¹\89าà¸\99à¸\97ิà¹\89à¸\87รà¹\89าง
+          vacant: à¸£à¹\89าà¸\99วà¹\88าง
           variety_store: ร้านขายของจุกจิก
-          video: ร้านขายภาพยนตร์
-          wine: ร้านขายสุรา
+          video: ร้านภาพยนตร์
+          video_games: ร้านวิดีโอเกมส์
+          wholesale: ร้านขายส่ง
+          wine: ร้านไวน์
           "yes": ร้านค้า
         tourism:
           alpine_hut: กระท่อมป่าสน
-          apartment: à¸«à¹\89อà¸\87อยูà¹\88อาศัยวัà¸\99หยุà¸\94
+          apartment: à¸\9aà¹\89าà¸\99à¸\9eัà¸\81à¸\95าà¸\81อาà¸\81าศ
           artwork: งานศิลปะ
           attraction: แหล่งท่องเที่ยว
           bed_and_breakfast: เรือนพักพร้อมอาหาร
-          cabin: กระท่อม
+          cabin: กระท่อมนักท่องเที่ยว
+          camp_pitch: ลานกางเต็นท์
           camp_site: ลานตั้งค่าย
           caravan_site: ลานจอดรถบ้าน
-          chalet: à¸\81ระà¸\97à¹\88อมà¸\9eัà¸\81à¸\9cà¹\88อà¸\99/à¸\8aาà¹\80ลà¸\95à¹\8c
+          chalet: à¸\81ระà¸\97à¹\88อมภูà¹\80à¸\82า
           gallery: หอศิลป์
-          guest_house: à¹\80รือà¸\99à¸\9eัà¸\81
-          hostel: à¹\82รà¸\87à¹\81รมà¸\99อà¸\99รวม
+          guest_house: à¹\80à¸\81สà¸\95à¹\8cà¹\80ฮาสà¹\8c
+          hostel: à¹\82ฮสà¹\80à¸\97ล
           hotel: โรงแรม
           information: ประชาสัมพันธ์
-          motel: à¹\82รà¸\87à¹\81รมสำหรัà¸\9aà¸\9cูà¹\89à¹\80à¸\94ิà¸\99à¸\97าà¸\87
+          motel: à¹\82มà¹\80à¸\95à¹\87ล
           museum: พิพิธภัณฑ์
-          picnic_site: à¸ªà¸\96านที่ปิกนิก
+          picnic_site: à¸\9eืà¹\89นที่ปิกนิก
           theme_park: สวนสนุก
           viewpoint: จุดชมวิว
+          wilderness_hut: กระท่อมกลางป่า
           zoo: สวนสัตว์
         tunnel:
-          building_passage: à¸\97าà¸\87ลอà¸\94à¸\95ึà¸\81
+          building_passage: à¸\97าà¸\87ลอà¸\94à¹\83à¸\95à¹\89อาà¸\84าร
           culvert: ท่อระบายน้ำ
           "yes": อุโมงค์
         waterway:
@@ -1089,8 +1415,8 @@ th:
           derelict_canal: คลองเลิกใช้แล้ว
           ditch: คู
           dock: แอ่งจอดเรือ
-          drain: à¸\97าà¸\87ระà¸\9aายà¸\99à¹\89à¹\88ำ
-          lock: à¹\81อà¹\88à¸\87ยà¸\81à¹\80รือ
+          drain: ทางระบายน้ำ
+          lock: à¸¥à¹\87อà¸\84
           lock_gate: ประตูแอ่งยกเรือ
           mooring: หลักผูกเรือ
           rapids: แก่ง
@@ -1102,12 +1428,15 @@ th:
           "yes": ทางน้ำ
       admin_levels:
         level2: แนวเขตประเทศ
+        level3: แนวเขตภูมิภาค
         level4: แนวเขตรัฐ
         level5: แนวเขตภูมิภาค
         level6: แนวเขตจังหวัด
+        level7: แนวเขตเทศบาล
         level8: แนวเขตเมือง/อำเภอ
         level9: แนวเขตหมู่บ้าน
         level10: แนวเขตชานเมือง
+        level11: แนวเขตชุมชน
       types:
         cities: เมือง
         towns: เมือง
@@ -1130,10 +1459,10 @@ th:
       status: สถานะ
       reports: รายการปัญหาที่รับแจ้งจากผู้ใช้
       last_updated: ปรับปรุงล่าสุดเมื่อ
+      last_updated_time_ago_user_html: '%{time_ago}โดย%{user}'
       link_to_reports: ดูรายงาน
       reports_count:
-        one: 1 รายงาน
-        other: '%{count} รายงาน'
+        other: '%{count} การรายงาน'
       reported_item: รายการที่รายงาน
       states:
         ignored: ละเว้น
@@ -1142,9 +1471,8 @@ th:
     show:
       title: 'ปัญหา %{status} #%{issue_id}'
       reports:
-        zero: ไม่มีรายงาน
-        one: 1 รายงาน
-        other: '%{count} รายงาน'
+        other: '%{count} การรายงาน'
+      no_reports: ไม่มีรายงาน
       report_created_at_html: รายงานครั้งแรกเมื่อ %{datetime}
       last_resolved_at_html: ปิดเรื่องล่าสุดเมื่อ %{datetime}
       last_updated_at_html: ปรับปรุงล่าสุดเมื่อ %{datetime} โดย %{displayname}
@@ -1175,6 +1503,7 @@ th:
   issue_comments:
     create:
       comment_created: สร้างความคิดเห็นของคุณสำเร็จแล้ว
+      issue_reassigned: ความคิดเห็นของคุณถูกสร้างขึ้นและปัญหาได้รับการมอบหมายใหม่
   reports:
     new:
       title_html: แจ้งปัญหาเกี่ยวกับ %{link}
@@ -1232,6 +1561,10 @@ th:
     intro_header: ยินดีต้อนรับสู่ OpenStreetMap!
     intro_text: OpenStreetMap เป็นแผนที่โลกที่สร้างโดยผู้คนเช่นท่าน และใช้งานได้ไม่เสียค่าใช้จ่ายภายใต้สัญญาอนุญาตแบบเปิด
     intro_2_create_account: สร้างบัญชีผู้ใช้ใหม่
+    hosting_partners_2024_html: โฮสติ้งได้รับการสนับสนุนโดย %{fastly}, %{corpmembers}
+      และ %{partners}
+    partners_fastly: Fastly
+    partners_corpmembers: สมาชิกองค์กร OSMF
     partners_partners: องค์กรพันธมิตร
     tou: ข้อกำหนดการใช้งาน
     osm_offline: ฐานข้อมูลของ OpenStreetMap กำลังออฟไลน์เพื่อให้สามารถดำเนินการบำรุงรักษาตามปกติได้
@@ -1240,6 +1573,7 @@ th:
     help: วิธีใช้
     about: เกี่ยวกับ
     copyright: ลิขสิทธิ์
+    communities: ชุมชน
     community: ชุมชน
     community_blogs: บทความชุมชน
     community_blogs_title: บทความเพื่อชุมชนจากสมาชิก OpenStreetMap
@@ -1250,12 +1584,19 @@ th:
     more: เพิ่มเติม
   user_mailer:
     diary_comment_notification:
+      description: 'รายการบันทึก OpenStreetMap #%{id}'
       subject: '[OpenStreetMap] ผู้ใช้ %{user} แสดงความคิดเห็นต่อรายการบันทึก'
       hi: เรียนคุณ %{to_user},
       header: 'ผู้ใช้ %{from_user} ได้แสดงความคิดเห็นต่อบันทึก OpenStreetMap หัวเรื่อง
         %{subject}:'
-      footer: ท่านสามารถอ่านความคิดเห็นได้ที่ลิงก์ %{readurl} และแสดงความคิดเห็นตอบได้ที่
+      header_html: 'ผู้ใช้ %{from_user} ได้แสดงความคิดเห็นต่อบันทึก OpenStreetMap
+        หัวเรื่อง %{subject}:'
+      footer: คุณสามารถอ่านความคิดเห็นได้ที่ลิงก์ %{readurl} และแสดงความคิดเห็นตอบได้ที่
         %{commenturl} หรือตอบกลับได้ที่ %{replyurl}
+      footer_html: คุณสามารถอ่านความคิดเห็นได้ที่ลิงก์ %{readurl} และแสดงความคิดเห็นตอบได้ที่
+        %{commenturl} หรือตอบกลับหาผู้แสดงความคิดเห็นได้ที่ %{replyurl}
+      footer_unsubscribe: คุณสามารถยกเลิกการสมัครรับการอภิปรายได้ที่ %{unsubscribeurl}
+      footer_unsubscribe_html: คุณสามารถยกเลิกการสมัครรับการอภิปรายได้ที่ %{unsubscribeurl}
     message_notification:
       subject: '[OpenStreetMap] %{message_title}'
       hi: เรียนคุณ %{to_user},
@@ -1263,16 +1604,25 @@ th:
         %{subject}:'
       header_html: 'ผู้ใช้ %{from_user} ส่งข้อความหาท่านผ่านทาง OpenStreetMap โดยมีหัวเรื่อง
         %{subject}:'
-      footer_html: ท่านสามารถอ่านข้อความที่ลิงก์ %{readurl} และถ้าต้องการสามารถตอบกลับที่ลิงก์
+      footer: คุณยังสามารถอ่านข้อความที่ลิงก์ %{readurl} และสามารถตอบกลับที่ลิงก์
+        %{replyurl} หากต้องการ
+      footer_html: คุณสามารถอ่านข้อความที่ลิงก์ %{readurl} และถ้าต้องการสามารถตอบกลับที่ลิงก์
         %{replyurl}
     friendship_notification:
       hi: เรียนคุณ %{to_user},
-      subject: '[OpenStreetMap] %{user} เพิ่มท่านในรายการเพื่อน'
-      had_added_you: ผู้ใช้ %{user} เพิ่มท่านในรายการเพื่อนบน OpenStreetMap
-      see_their_profile: ท่านสามารถดูหน้าประวัติส่วนตัวของเขาได้ที่ %{userurl}.
-      befriend_them: นอกจากนี้ท่านสามารถเพิ่มเขาในรายการเพื่อนได้ที่ %{befriendurl}.
+      subject: '[OpenStreetMap] %{user} เพิ่มคุณในรายการเพื่อน'
+      had_added_you: ผู้ใช้ %{user} เพิ่มคุณในรายการเพื่อนบน OpenStreetMap
+      see_their_profile: สามารถดูหน้าโปรไฟล์ของผู้ใช้นี้ได้ที่ %{userurl}
+      see_their_profile_html: สามารถดูหน้าโปรไฟล์ของผู้ใช้นี้ได้ที่ %{userurl}
+      befriend_them: นอกจากนี้ คุณสามารถเพิ่มผู้ใช้นี้ในรายการเพื่อนได้ที่ %{befriendurl}.
+      befriend_them_html: คุณยังสามารถเพิ่มผู้ใช้นี้ไปในรายการเพื่อนได้ที่ %{befriendurl}
+    gpx_description:
+      description_with_tags_html: 'ดูเหมือนว่าไฟล์ GPX %{trace_name}ของคุณมีคำอธิบาย
+        %{trace_description} และมีแท็กต่อไปนี้: %{tags}'
+      description_with_no_tags_html: ดูเหมือนว่าไฟล์ GPX %{trace_name}ของคุณมีคำอธิบาย
+        %{trace_description} แต่ไม่มีแท็กแท็ก
     gpx_failure:
-      hi: à¸ªà¸§à¸±à¸ªà¸\94ี %{to_user}
+      hi: à¹\80รียà¸\99à¸\84ุà¸\93 %{to_user},
       failed_to_import: 'การนำเข้าล้มเหลว เนื่องจาก:'
       subject: '[OpenStreetMap] การนำเข้า GPX ล้มเหลว'
     gpx_success:
@@ -1464,8 +1814,8 @@ th:
       next: ถัดไป
       used_by_html: '%{name} ให้ข้อมูลแผนที่แก่เว็บไซต์ แอปพลิเคชั่นมือถือ และอุปกรณ์นับพัน'
       lede_text: OpenStreetMap เป็นโครงการซึ่งสร้างสรรค์ขึ้นจากชุมชนของผู้ใช้และผู้สนใจ
-        à¸\97ีà¹\88à¹\84à¸\94à¹\89à¸\97ำà¸\81ารสำรวà¸\88 à¸\9bรัà¸\9aà¸\9bรุà¸\87 à¹\81à¸\9aà¹\88à¸\87à¸\9bัà¸\99à¸\82à¹\89อมูลà¹\81à¸\9cà¸\99à¸\97ีà¹\88à¸\96à¸\99à¸\99 à¸\97าà¸\87หลวà¸\87 à¸\97าà¸\87à¹\80à¸\94ิà¸\99à¸\9bà¹\88า, à¸£à¸§à¸¡à¸\96ึà¸\87สà¸\96าà¸\99à¸\97ีà¹\88à¸\97ีà¹\88à¸\99à¹\88าสà¸\99à¹\83à¸\88อยà¹\88าà¸\87
-        à¸£à¹\89าà¸\99à¸\81าà¹\81à¸\9f à¸ªà¸\96าà¸\99ีรà¸\96à¹\84à¸\9f à¹\81ละอืà¹\88à¸\99à¹\86 à¸­à¸µà¸\81มาà¸\81มาย จากทั่วทุกมุมโลก
+        à¸\97ีà¹\88à¹\84à¸\94à¹\89à¸\97ำà¸\81ารสำรวà¸\88 à¸\9bรัà¸\9aà¸\9bรุà¸\87 à¹\81à¸\9aà¹\88à¸\87à¸\9bัà¸\99à¸\82à¹\89อมูลà¹\81à¸\9cà¸\99à¸\97ีà¹\88à¸\96à¸\99à¸\99 à¸\97าà¸\87หลวà¸\87 à¸\97าà¸\87à¹\80à¸\94ิà¸\99à¸\9bà¹\88า, à¸£à¹\89าà¸\99à¸\81าà¹\81à¸\9f,
+        à¸ªà¸\96าà¸\99ีรà¸\96à¹\84à¸\9f, à¹\81ละอืà¹\88à¸\99à¹\86 à¸­à¸µà¸\81มาà¸\81มายจากทั่วทุกมุมโลก
       local_knowledge_title: ความรู้จากท้องถิ่น
       local_knowledge_html: OpenStreetMap มุ่งเน้นส่งเสริมการใช้และเผยแพร่ความรู้จากคนท้องถิ่น
         โดยนักทำแผนที่ในท้องถิ่นสามารถใช้ทั้งภาพถ่ายดาวเทียม อุปกรณ์ระบุตำแหน่งจีพีเอส
@@ -1638,7 +1988,7 @@ th:
           construction: ถนนกำลังก่อสร้าง
           bicycle_shop: ร้านขายและเช่าจักรยาน
           bicycle_parking: ที่จอดจักรยาน
-          toilets: ห้องน้ำสาธารณะ
+          toilets: ห้องน้ำ
     welcome:
       title: ยินดีต้อนรับ!
       introduction: 'ยินดิต้อนรับสู่ OpenStreetMap, แผนที่โลกแบบเสรีที่ทุกคนสามารถแก้ไขได้
@@ -1731,7 +2081,6 @@ th:
     setup_user_auth:
       blocked: คุณถูกระงับการเข้าถึง API, กรุณาเข้าระบบทางหน้าเว็บหลักหากต้องการทราบสาเหตุที่ถูกระงับในครั้งนี้
     auth_providers:
-      openid_logo_alt: เข้าใช้งานด้วย OpenID
       openid:
         title: เข้าใช้งานด้วย OpenID
         alt: เข้าใช้งานด้วยลิงก์ OpenID
@@ -2068,8 +2417,8 @@ th:
       edit_tooltip: แก้ไขแผนที่
       edit_disabled_tooltip: ขยายเพื่อแก้ไขแผนที่
       createnote_tooltip: ใส่หมายเหตุลงในแผนที่
-      queryfeature_tooltip: à¹\81สà¸\94à¸\87สà¹\88วà¸\99à¸\9bระà¸\81อà¸\9a
-      queryfeature_disabled_tooltip: à¸\95à¹\89อà¸\87à¸\8bูมà¹\80à¸\82à¹\89ามาà¸\81à¸\81วà¹\88าà¸\99ีà¹\89 à¸\88ึà¸\87à¸\88ะà¸\95รวà¸\88สอà¸\9aสà¹\88วà¸\99à¸\9bระà¸\81อà¸\9aà¹\84à¸\94à¹\89
+      queryfeature_tooltip: à¹\80รียà¸\81à¸\94ูà¸\84ุà¸\93ลัà¸\81ษà¸\93ะ
+      queryfeature_disabled_tooltip: à¸\8bูมà¹\80à¸\82à¹\89าà¹\80à¸\9eืà¹\88อà¹\80รียà¸\81à¸\94ูà¸\84ุà¸\93ลัà¸\81ษà¸\93ะ
     directions:
       ascend: ลาดขึ้น
       engines:
@@ -2130,7 +2479,7 @@ th:
       node: หมุด
       way: เส้นทาง
       relation: ความสัมพันธ์
-      nothing_found: à¹\84มà¹\88à¸\9eà¸\9aสà¹\88วà¸\99à¸\9bระà¸\81อà¸\9a
+      nothing_found: à¹\84มà¹\88à¸\9eà¸\9aà¸\84ุà¸\93ลัà¸\81ษà¸\93ะ
       error: 'มีความผิดพลาดขณะติดต่อ %{server}: %{error}'
       timeout: หมดเวลาขณะพยายามติดต่อ %{server}
     context:
@@ -2138,7 +2487,7 @@ th:
       directions_to: เส้นทางมาที่นี่
       add_note: เพิ่มหมายเหตุตรงนี้
       show_address: แสดงที่อยู่
-      query_features: à¹\81สà¸\94à¸\87สà¹\88วà¸\99à¸\9bระà¸\81อà¸\9a
+      query_features: à¹\80รียà¸\81à¸\94ูà¸\84ุà¸\93ลัà¸\81ษà¸\93ะ
       centre_map: วางแผนที่ตรงกลางที่นี่
   redactions:
     edit:
index 8cfb2c84be372af1967c7f6c8e8d18a13d02e08d..65aedc8a719ce43806f395da3fdf5c9473d3cda6 100644 (file)
@@ -1788,7 +1788,6 @@ tl:
       account_settings: Mga Katakdaan ng Akawnt
       oauth2_authorizations: Mga pahintulot para sa OAuth 2
     auth_providers:
-      openid_logo_alt: Lumagda sa pamamagitan ng isang OpenID
       openid:
         title: Lumagda gamit ang OpenID
         alt: Lumagda gamit ang isang OpenID URL
index b7571c9c2a30fd365fdece7addd7bb30ab43b078..655bbd08a5872d05b262954dd9dd2771a48f0fbd 100644 (file)
@@ -2681,7 +2681,6 @@ tr:
       oauth2_authorizations: OAuth 2 yetkilendirmeleri
       muted_users: Sessize Alınan Kullanıcılar
     auth_providers:
-      openid_logo_alt: OpenID ile giriş
       openid_login_button: Devam et
       openid:
         title: OpenID ile giriş
index 6e53a7d20bd53c4679e3a28dbff3b7afeea26861..580c25f90cf311f32f23d412228ab8bf25ab5a0f 100644 (file)
@@ -2720,7 +2720,6 @@ uk:
       oauth2_authorizations: авторизації OAuth 2
       muted_users: Стишені учасники
     auth_providers:
-      openid_logo_alt: Увійти з OpenID
       openid_login_button: Продовжити
       openid:
         title: Увійти за OpenID
index d29bffb2b22f89e57afd59a9ff8654774fb90e8f..53ffcbdffc243cfc1f0ae2db55016e3e19b559c9 100644 (file)
@@ -64,6 +64,8 @@ vi:
       messages:
         invalid_email_address: hình như không phải là địa chỉ thư điện tử hợp lệ
         email_address_not_routable: không thể gửi đến
+        display_name_is_user_n: không thể là user_n trừ khi n là số người dùng của
+          bạn
       models:
         user_mute:
           is_already_muted: đã bị tắt tiếng
@@ -568,6 +570,8 @@ vi:
       title: Nhật ký của %{user} | %{title}
       user_title: Nhật ký của %{user}
       discussion: Thảo luận
+      subscribe: Theo dõi
+      unsubscribe: Ngừng theo dõi
       leave_a_comment: Để lại nhận xét
       login_to_leave_a_comment_html: '%{login_link} để nhận xét'
       login: Đăng nhập
@@ -664,6 +668,10 @@ vi:
       contact_the_community_html: Xin vui lòng %{contact_link} cộng đồng OpenStreetMap
         nếu bạn gặp liên kết hỏng hoặc lỗi phần mềm. Hãy ghi nhớ địa chỉ URL chính
         xác của yêu cầu máy chủ.
+    bad_request:
+      title: Yêu cầu hỏng
+      description: Bạn đã yêu cầu tác vụ không hợp lệ trên máy chủ OpenStreetMap (HTTP
+        400)
     forbidden:
       title: Cấm
       description: Tác vụ đuợc yêu cầu trên máy chủ OpenStreetMap chỉ khả dụng đối
@@ -1644,8 +1652,8 @@ vi:
           chú gần %{place}.'
         commented_note_html: '%{commenter} đã mở lại một ghi chú mà bạn đã bình luận,
           ghi chú gần %{place}.'
-      details: Xem chi tiết về ghi chú tại %{url}.
-      details_html: Xem chi tiết về ghi chú tại %{url}.
+      details: Trả lời hoặc tìm hiểu thêm về ghi chú tại %{url}.
+      details_html: Trả lời hoặc tìm hiểu thêm về ghi chú tại %{url}.
     changeset_comment_notification:
       description: 'Bộ thay đổi OpenStreetMap #%{id}'
       hi: Chào %{to_user},
@@ -1666,8 +1674,8 @@ vi:
         partial_changeset_with_comment: với lời bình luận “%{changeset_comment}”
         partial_changeset_with_comment_html: với lời bình luận “%{changeset_comment}”
         partial_changeset_without_comment: không có lời bình luận
-      details: Xem chi tiết về bộ thay đổi tại %{url}.
-      details_html: Xem chi tiết về bộ thay đổi tại %{url}.
+      details: Trả lời hoặc tìm hiểu thêm về bộ thay đổi tại %{url}.
+      details_html: Trả lời hoặc tìm hiểu thêm về bộ thay đổi tại %{url}.
       unsubscribe: Bạn có thể ngừng nhận các thông báo về bộ thay đổi này tại %{url}.
       unsubscribe_html: Bạn có thể ngừng nhận các thông báo về bộ thay đổi này tại
         %{url}.
@@ -1835,13 +1843,15 @@ vi:
     new:
       title: Đăng nhập
       tab_title: Đăng nhập
+      login_to_authorize_html: Đăng nhập vào OpenStreetMap để truy cập %{client_app_name}.
       email or username: Địa chỉ Thư điện tử hoặc Tên người dùng
       password: Mật khẩu
       remember: Nhớ tôi
       lost password link: Quên mất Mật khẩu?
       login_button: Đăng nhập
       register now: Mở tài khoản ngay
-      with external: 'Hoặc đăng nhập qua dịch vụ bên thứ ba:'
+      with external: hoặc đăng nhập qua dịch vụ bên thứ ba
+      or: hoặc
       auth failure: Rất tiếc, không thể đăng nhập với những chi tiết đó.
     destroy:
       title: Đăng xuất
@@ -2011,6 +2021,8 @@ vi:
         contributors_fi_nlsfi_license: Giấy phép NLSFI
         contributors_fr_france: Pháp
         contributors_hr_croatia: Croatia
+        contributors_hr_dgu: Cơ quan Quản lý Trắc địa Nhà nước Croatia
+        contributors_hr_open_data_portal: Cổng Dữ liệu Mở Quốc gia
         contributors_nl_credit_html: '%{netherlands}: Chứa dữ liệu &copy; AND, 2007
           (%{and_link})'
         contributors_nl_netherlands: Hà Lan
@@ -2021,6 +2033,7 @@ vi:
         contributors_nz_linz_data_service: Dịch vụ Dữ liệu LINZ
         contributors_nz_cc_by: CC BY 4.0
         contributors_rs_serbia: Serbia
+        contributors_rs_rgz: Cơ quan Trắc địa Serbia
         contributors_rs_open_data_portal: Cổng Dữ liệu Mở Quốc gia
         contributors_si_slovenia: Slovenia
         contributors_es_spain: Tây Ban Nha
@@ -2282,6 +2295,10 @@ vi:
         tag: Thẻ
       rules:
         title: Quy định!
+        para_1_html: OpenStreetMap có ít quy tắc chính thức nhưng yêu cầu mọi người
+          muốn tham gia phải cộng tác và liên lạc với cộng đồng. Nếu bạn đang tính
+          thực hiện tác vụ nào không phải sửa đổi thủ công, xin vui lòng đọc và tuân
+          theo các hướng dẫn tại %{imports_link} và %{automated_edits_link}.
         imports: Nhập Dữ liệu
         automated_edits: Sửa đổi Tự động
       start_mapping: Bắt đầu Đóng góp
@@ -2419,6 +2436,8 @@ vi:
         other: Tập tin GPX của %{user} có %{count} địa điểm
       description_without_count: Tập tin GPX của %{user}
   application:
+    basic_auth_disabled: 'Xác thực Cơ bản HTTP đã bị tắt: %{link}'
+    oauth_10a_disabled: 'OAuth 1.0 và 1.0a đã bị tắt: %{link}'
     permission_denied: Bạn không có quyền thực hiện tác vụ này
     require_cookies:
       cookies_needed: Hình như đã tắt cookie. Xin hãy bật lên chức năng cookie trong
@@ -2440,25 +2459,25 @@ vi:
       oauth2_authorizations: Ủy quyền OAuth 2
       muted_users: Người dùng bị Tắt tiếng
     auth_providers:
-      openid_logo_alt: Đăng nhập dùng OpenID
+      openid_login_button: Tiếp tục
       openid:
         title: Đăng nhập qua OpenID
-        alt: Đăng nhập dùng URL OpenID
+        alt: Biểu trưng OpenID
       google:
         title: Đăng nhập qua Google
-        alt: Đăng nhập dùng OpenID của Google
+        alt: Biểu trưng Google
       facebook:
         title: Đăng nhập qua Facebook
-        alt: Đăng nhập dùng tài khoản Facebook
+        alt: Biểu trưng Facebook
       microsoft:
         title: Đăng nhập qua Microsoft
-        alt: Đăng nhập dùng Tài khoản Microsoft
+        alt: Biểu trưng Microsoft
       github:
         title: Đăng nhập qua GitHub
-        alt: Đăng nhập dùng tài khoản GitHub
+        alt: Biểu trưng GitHub
       wikipedia:
         title: Đăng nhập qua Wikipedia
-        alt: Đăng nhập qua Tài khoản Wikipedia
+        alt: Biểu trưng Wikipedia
   oauth:
     authorize:
       title: Cho phép truy cập tài khoản của bạn
@@ -2499,6 +2518,8 @@ vi:
       write_redactions: Ẩn dữ liệu bản đồ
       read_email: Đọc địa chỉ thư điện tử của người dùng
       skip_authorization: Tự động chấp nhận đơn xin
+    for_roles:
+      moderator: Chỉ có điều hành viên có quyền thực hiện tác vụ này
   oauth_clients:
     new:
       title: Đăng ký chương trình mới
@@ -2595,31 +2616,45 @@ vi:
     new:
       title: Mở tài khoản
       tab_title: Mở tài khoản
+      signup_to_authorize_html: Mở tài khoản OpenStreetMap để truy cập %{client_app_name}.
       no_auto_account_create: Rất tiếc, chúng ta hiện không có khả năng tạo ra tài
         khoản tự động cho bạn.
       please_contact_support_html: Vui lòng liên hệ với %{support_link} để yêu cầu
         tạo tài khoản – chúng tôi sẽ cố gắng giải quyết yêu cầu nhanh nhất có thể.
       support: hỗ trợ
       about:
-        header: Tự do sử dụng và sửa đổi
+        header: Tự do sử dụng và sửa đổi.
         paragraph_1: Không giống như với các bản đồ kia, OpenStreetMap được xây dựng
           hoàn toàn nhờ những người như bạn, và mọi người có thể tự do sửa chữa, cập
           nhật, tải về, và sử dụng miễn phí.
-        paragraph_2: Hãy mở tài khoản để bắt đầu đóng góp. Chúng tôi sẽ gửi thư điện
-          tử cho bạn để xác nhận tài khoản của bạn.
+        paragraph_2: Hãy mở tài khoản để bắt đầu đóng góp.
+        welcome: Chào mừng đến OpenStreetMap
+      duplicate_social_email: Nếu bạn đã có tài khoản OpenStreetMap và muốn sử dụng
+        nhà cung cấp danh tính bên thứ ba, xin vui lòng đăng nhập dùng mật khẩu của
+        bạn và thay đổi tùy chọn tài khoản.
       display name description: Tên người dùng của bạn được hiển thị công khai. Bạn
         có thể thay đổi tên này về sau trong tùy chọn.
       by_signing_up:
+        html: Bằng cách mở tài khoản, bạn chấp nhận %{tou_link}, %{privacy_policy_link},
+          và %{contributor_terms_link} của chúng tôi.
         privacy_policy: quy định về quyền riêng tư
         privacy_policy_title: Quy định về quyền riêng tư của OSMF, bao gồm phần về
           địa chỉ thư điện tử
+        contributor_terms: các điều kiện đóng góp
+      tou: các điều khoản sử dụng
       external auth: 'Xác minh qua Dịch vụ Bên thứ ba:'
       continue: Mở tài khoản
       terms accepted: Cám ơn bạn đã chấp nhận các điều khoản đóng góp mới!
       email_help:
+        privacy_policy: quy định về quyền riêng tư
+        privacy_policy_title: Quy định về quyền riêng tư của OSMF, bao gồm phần về
+          địa chỉ thư điện tử
         html: Địa chỉ thư điện tử không được hiển thị công khai, xem thêm thông tin
           trong %{privacy_policy_link} của chúng tôi.
-      use external auth: Hoặc đăng nhập qua dịch vụ bên thứ ba
+      consider_pd_html: Tôi coi những đóng góp của mình thuộc về %{consider_pd_link}.
+      consider_pd: phạm vi công cộng
+      or: hoặc
+      use external auth: hoặc mở tài khoản qua dịch vụ bên thứ ba
     terms:
       title: Điều khoản
       heading: Điều khoản
@@ -2686,6 +2721,8 @@ vi:
       remove as friend: Hủy Kết Bạn
       add as friend: Kết Bạn
       mapper since: 'Tham gia:'
+      last map edit: 'Sửa đổi bản đồ cuối cùng:'
+      no activity yet: Chưa có hoạt động nào
       uid: 'Số người dùng:'
       ct status: 'Điều khoản đóng góp:'
       ct undecided: Chưa quyết định
@@ -2886,6 +2923,7 @@ vi:
       blocks_on_user: Tác vụ Cấm %{user}
       blocks_by_me: Tác vụ Cấm bởi Tôi
       blocks_by_user: Tác vụ Cấm bởi %{user}
+      block: Tác vụ cấm số %{id}
   user_mutes:
     index:
       title: Người dùng bị Tắt tiếng
@@ -2958,6 +2996,10 @@ vi:
       intro: Bản đồ có thiếu gì hay sai lầm không? Hãy báo cho chúng tôi để chúng
         tôi sửa chữa bản đồ. Chỉ việc kéo ghim vào vị trí đúng và viết lời giải thích
         vấn đề.
+      anonymous_warning_html: Bạn chưa đăng nhập. Để nhận được các thông báo về lời
+        ghi chú của bạn, xin vui lòng %{log_in} hoặc %{sign_up}.
+      anonymous_warning_log_in: đăng nhập
+      anonymous_warning_sign_up: mở tài khoản
       advice: Ghi chú của bạn được hiển thị công khai và có thể được sử dụng để cập
         nhật bản đồ. Xin đừng ghi thông tin cá nhân hoặc thông tin lấy từ bản đồ hay
         danh bạ có bản quyền.
index e86f1ec5755a1f70dd0c1747da3104bb2a0eff4f..ba56b9f243bb2c83697102e8861a994c5be826d9 100644 (file)
@@ -25,6 +25,7 @@
 # Author: GuoPC
 # Author: Hehua
 # Author: Hmgrmb
+# Author: Huajing
 # Author: Hudafu
 # Author: Hydra
 # Author: Hzy980512
@@ -452,7 +453,7 @@ zh-CN:
         way: 路径
         relation: 关系
     start_rjs:
-      feature_warning: 正在加载 %{num_features} 个要素,这可能会使您的浏览器变慢或无响应。确定要显示此数据吗?
+      feature_warning: 正在加载 %{num_features} 个要素,这可能会使您的浏览器变慢或无响应。确定要显示此数据吗?
       load_data: 加载数据
       loading: 加载中…
     tag_details:
@@ -674,6 +675,8 @@ zh-CN:
       comment: 评论
       newer_comments: 较新评论
       older_comments: 较旧评论
+    new:
+      heading: 在以下日记条目的讨论中留言吗?
   doorkeeper:
     errors:
       messages:
@@ -2467,26 +2470,26 @@ zh-CN:
       oauth2_authorizations: OAuth 2授权
       muted_users: 已忽视用户
     auth_providers:
-      openid_logo_alt: 使用 OpenID 登录
+      openid_url: OpenID URL
       openid_login_button: 继续
       openid:
         title: 使用OpenID登录
-        alt: 使用OpenID URL登录
+        alt: OpenID 标志
       google:
         title: 使用Google登录
-        alt: 使用Google OpenID登录
+        alt: Google 标志
       facebook:
         title: 使用Facebook登录
-        alt: 使用Facebook账户登录
+        alt: Facebook 标志
       microsoft:
         title: 使用Microsoft登录
-        alt: 使用Microsoft账户登录
+        alt: Microsoft 标志
       github:
         title: 使用GitHub登录
-        alt: 通过GitHub账户登录
+        alt: GitHub 标志
       wikipedia:
         title: 使用维基百科登录
-        alt: 使用维基百科账户登录
+        alt: 维基百科标志
   oauth:
     authorize:
       title: 授权访问您的账户
@@ -2637,6 +2640,8 @@ zh-CN:
       continue: 注册
       terms accepted: 感谢您接受新的贡献条款!
       email_help:
+        privacy_policy: 隐私政策
+        privacy_policy_title: OSM基金会隐私政策包括电子邮件地址部分
         html: 您的地址不会公开显示,请参阅我们的%{privacy_policy_link}了解更多信息。
       consider_pd_html: 我认为我的贡献应在 %{consider_pd_link} 中。
       consider_pd: 公有领域
index 8349afd1e9abc9c9f5aca7b4a615fb827e1168d3..aa2cdb13525e052adeac7faac8f8c971098ab00f 100644 (file)
@@ -629,6 +629,8 @@ zh-TW:
       comment: 評論
       newer_comments: 較新的評論
       older_comments: 較舊的評論
+    new:
+      heading: 在以下日記項目討論添加評論?
   doorkeeper:
     errors:
       messages:
@@ -2435,26 +2437,26 @@ zh-TW:
       oauth2_authorizations: OAuth 2 授權
       muted_users: 已忽視使用者
     auth_providers:
-      openid_logo_alt: 使用 OpenID 登入
+      openid_url: OpenID URL
       openid_login_button: 繼續
       openid:
         title: 使用 OpenID 登入
-        alt: 使用 OpenID 網址登入
+        alt: OpenID 標誌
       google:
         title: 使用 Google 登入
-        alt: 使用 Google OpenID 登入
+        alt: Google 標誌
       facebook:
         title: 使用臉書登入
-        alt: 使用臉書帳號登入
+        alt: 臉書標誌
       microsoft:
         title: 使用 Microsoft 登入
-        alt: 使用 Microsoft 帳號登入
+        alt: 微軟標誌
       github:
         title: 使用 GitHub 登入
-        alt: 使用 GitHub 帳號登入
+        alt: GitHub 標誌
       wikipedia:
         title: 使用維基百科登入
-        alt: 使用維基百科帳號登入
+        alt: 維基百科標誌
   oauth:
     authorize:
       title: 授權使用您的帳號
@@ -2599,7 +2601,6 @@ zh-TW:
       by_signing_up:
         html: 註冊即表示您同意我們的 %{tou_link}、%{privacy_policy_link} 與 %{contributor_terms_link}。
         privacy_policy: 隱私權政策
-        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: OSMF 隱私權政策包含電子郵件地址部份
         contributor_terms_url: https://wiki.osmfoundation.org/wiki/Licence/Contributor_Terms
         contributor_terms: 貢獻者條款
@@ -2609,7 +2610,6 @@ zh-TW:
       terms accepted: 感謝您接受新的貢獻條款!
       email_help:
         privacy_policy: 隱私權政策
-        privacy_policy_url: https://wiki.osmfoundation.org/wiki/Privacy_Policy
         privacy_policy_title: OSMF 隱私權政策包含電子郵件地址部份
         html: 您的地址不會公開顯示,請參閱我們的%{privacy_policy_link}來了解更多資訊。
       consider_pd_html: 我認為我的貢獻屬於 %{consider_pd_link}。
index 98c8ba15e07459a08e4c420d7a4f9289316b1023..0d1df9678de4d64c93351d46aa30858c729cb863 100644 (file)
@@ -237,7 +237,7 @@ OpenStreetMap::Application.routes.draw do
   scope "/user/:display_name" do
     resources :diary_entries, :path => "diary", :only => [:edit, :update, :show], :id => /\d+/
   end
-  post "/user/:display_name/diary/:id/newcomment" => "diary_entries#comment", :id => /\d+/, :as => :comment_diary_entry
+  post "/user/:display_name/diary/:id/newcomment" => "diary_comments#create", :id => /\d+/, :as => :comment_diary_entry
   post "/user/:display_name/diary/:id/hide" => "diary_entries#hide", :id => /\d+/, :as => :hide_diary_entry
   post "/user/:display_name/diary/:id/unhide" => "diary_entries#unhide", :id => /\d+/, :as => :unhide_diary_entry
   post "/user/:display_name/diary/:id/hidecomment/:comment" => "diary_comments#hide", :id => /\d+/, :comment => /\d+/, :as => :hide_diary_comment
index adb041da43857799d2bdbea0a8a1c018e1d536e6..5e4a18b519733d39e5fc7b770e0d3cfb61729c8d 100644 (file)
@@ -11,14 +11,16 @@ module Nominatim
       url = "#{Settings.nominatim_url}reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
 
       begin
-        response = Timeout.timeout(4) do
-          REXML::Document.new(Net::HTTP.get(URI.parse(url)))
+        response = OSM.http_client.get(URI.parse(url)) do |request|
+          request.options.timeout = 4
         end
+
+        results = REXML::Document.new(response.body) if response.success?
       rescue StandardError
-        response = nil
+        results = nil
       end
 
-      if response && result = response.get_text("reversegeocode/result")
+      if results && result = results.get_text("reversegeocode/result")
         result.value
       else
         "#{number_with_precision(lat, :precision => 3)}, #{number_with_precision(lon, :precision => 3)}"
index dd273418e52cc562c95f94b67ef1bba47218f1c3..46f37036f92d796243960cf1c7c8b63fdd91244e 100644 (file)
@@ -535,7 +535,8 @@ module OSM
 
   # Return the HTTP client to use
   def self.http_client
-    @http_client ||= Faraday.new(:request => { :timeout => 15 })
+    @http_client ||= Faraday.new(:request => { :timeout => 15 },
+                                 :headers => { :user_agent => Settings.server_url })
   end
 
   # Return the MaxMindDB database handle
index 58ef2b5143b7373104825aaa69649b213f28203e..cc981b792ceb6767fbe769a1238bf7ce03ab7667 100644 (file)
@@ -25,11 +25,11 @@ class GuestAbilityTest < AbilityTest
       assert ability.can?(action, DiaryComment), "should be able to #{action} DiaryComments"
     end
 
-    [:create, :edit, :comment, :subscribe, :unsubscribe, :hide, :unhide].each do |action|
+    [:create, :edit, :subscribe, :unsubscribe, :hide, :unhide].each do |action|
       assert ability.cannot?(action, DiaryEntry), "should not be able to #{action} DiaryEntries"
     end
 
-    [:hide, :unhide].each do |action|
+    [:create, :hide, :unhide].each do |action|
       assert ability.cannot?(action, DiaryComment), "should not be able to #{action} DiaryComments"
     end
   end
@@ -55,11 +55,11 @@ class UserAbilityTest < AbilityTest
   test "Diary permissions" do
     ability = Ability.new create(:user)
 
-    [:index, :rss, :show, :create, :edit, :comment, :subscribe, :unsubscribe].each do |action|
+    [:index, :rss, :show, :create, :edit, :subscribe, :unsubscribe].each do |action|
       assert ability.can?(action, DiaryEntry), "should be able to #{action} DiaryEntries"
     end
 
-    [:index].each do |action|
+    [:index, :create].each do |action|
       assert ability.can?(action, DiaryComment), "should be able to #{action} DiaryComments"
     end
 
@@ -100,11 +100,11 @@ end
 class AdministratorAbilityTest < AbilityTest
   test "Diary for an administrator" do
     ability = Ability.new create(:administrator_user)
-    [:index, :rss, :show, :create, :edit, :comment, :subscribe, :unsubscribe, :hide, :unhide].each do |action|
+    [:index, :rss, :show, :create, :edit, :subscribe, :unsubscribe, :hide, :unhide].each do |action|
       assert ability.can?(action, DiaryEntry), "should be able to #{action} DiaryEntries"
     end
 
-    [:index, :hide, :unhide].each do |action|
+    [:index, :create, :hide, :unhide].each do |action|
       assert ability.can?(action, DiaryComment), "should be able to #{action} DiaryComments"
     end
   end
index e2ad4c91bcb7dcb4764fc34aba80846fb5ce5258..2ebf52d16d4bfec427eda22530afacac11b551ae 100644 (file)
@@ -12,6 +12,10 @@ class DiaryCommentsControllerTest < ActionDispatch::IntegrationTest
       { :path => "/user/username/diary/comments", :method => :get },
       { :controller => "diary_comments", :action => "index", :display_name => "username" }
     )
+    assert_routing(
+      { :path => "/user/username/diary/1/newcomment", :method => :post },
+      { :controller => "diary_comments", :action => "create", :display_name => "username", :id => "1" }
+    )
     assert_routing(
       { :path => "/user/username/diary/1/hidecomment/2", :method => :post },
       { :controller => "diary_comments", :action => "hide", :display_name => "username", :id => "1", :comment => "2" }
@@ -69,6 +73,113 @@ class DiaryCommentsControllerTest < ActionDispatch::IntegrationTest
     end
   end
 
+  def test_create
+    user = create(:user)
+    other_user = create(:user)
+    entry = create(:diary_entry, :user => user)
+    create(:diary_entry_subscription, :diary_entry => entry, :user => user)
+
+    # Make sure that you are denied when you are not logged in
+    post comment_diary_entry_path(entry.user, entry)
+    assert_response :forbidden
+
+    session_for(other_user)
+
+    # Verify that you get a not found error, when you pass a bogus id
+    post comment_diary_entry_path(entry.user, :id => 9999)
+    assert_response :not_found
+    assert_select "div.content-heading", :count => 1 do
+      assert_select "h1", :text => "No entry with the id: 9999", :count => 1
+    end
+
+    # Now try an invalid comment with an empty body
+    assert_no_difference "ActionMailer::Base.deliveries.size" do
+      assert_no_difference "DiaryComment.count" do
+        assert_no_difference "entry.subscribers.count" do
+          perform_enqueued_jobs do
+            post comment_diary_entry_path(entry.user, entry, :diary_comment => { :body => "" })
+          end
+        end
+      end
+    end
+    assert_response :success
+    assert_template :new
+
+    # Now try again with the right id
+    assert_difference "ActionMailer::Base.deliveries.size", entry.subscribers.count do
+      assert_difference "DiaryComment.count", 1 do
+        assert_difference "entry.subscribers.count", 1 do
+          perform_enqueued_jobs do
+            post comment_diary_entry_path(entry.user, entry, :diary_comment => { :body => "New comment" })
+          end
+        end
+      end
+    end
+    assert_redirected_to diary_entry_path(entry.user, entry)
+    email = ActionMailer::Base.deliveries.first
+    assert_equal [user.email], email.to
+    assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
+    assert_match(/New comment/, email.text_part.decoded)
+    assert_match(/New comment/, email.html_part.decoded)
+    ActionMailer::Base.deliveries.clear
+    comment = DiaryComment.order(:id).last
+    assert_equal entry.id, comment.diary_entry_id
+    assert_equal other_user.id, comment.user_id
+    assert_equal "New comment", comment.body
+
+    # Now show the diary entry, and check the new comment is present
+    get diary_entry_path(entry.user, entry)
+    assert_response :success
+    assert_select ".diary-comment", :count => 1 do
+      assert_select "#comment#{comment.id}", :count => 1 do
+        assert_select "a[href='/user/#{ERB::Util.u(other_user.display_name)}']", :text => other_user.display_name, :count => 1
+      end
+      assert_select ".richtext", :text => /New comment/, :count => 1
+    end
+  end
+
+  def test_create_spammy
+    user = create(:user)
+    other_user = create(:user)
+    entry = create(:diary_entry, :user => user)
+    create(:diary_entry_subscription, :diary_entry => entry, :user => user)
+
+    session_for(other_user)
+
+    # Generate some spammy content
+    spammy_text = 1.upto(50).map { |n| "http://example.com/spam#{n}" }.join(" ")
+
+    # Try creating a spammy comment
+    assert_difference "ActionMailer::Base.deliveries.size", 1 do
+      assert_difference "DiaryComment.count", 1 do
+        perform_enqueued_jobs do
+          post comment_diary_entry_path(entry.user, entry, :diary_comment => { :body => spammy_text })
+        end
+      end
+    end
+    assert_redirected_to diary_entry_path(entry.user, entry)
+    email = ActionMailer::Base.deliveries.first
+    assert_equal [user.email], email.to
+    assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
+    assert_match %r{http://example.com/spam}, email.text_part.decoded
+    assert_match %r{http://example.com/spam}, email.html_part.decoded
+    ActionMailer::Base.deliveries.clear
+    comment = DiaryComment.order(:id).last
+    assert_equal entry.id, comment.diary_entry_id
+    assert_equal other_user.id, comment.user_id
+    assert_equal spammy_text, comment.body
+    assert_equal "suspended", User.find(other_user.id).status
+
+    # Follow the redirect
+    get diary_entries_path(:display_name => user.display_name)
+    assert_redirected_to :controller => :users, :action => :suspended
+
+    # Now show the diary entry, and check the new comment is not present
+    get diary_entry_path(entry.user, entry)
+    assert_response :success
+    assert_select ".diary-comment", :count => 0
+  end
+
   def test_hide
     user = create(:user)
     diary_entry = create(:diary_entry, :user => user)
index d0453bf08c6bd1b0ffe819918521960010968533..9acd72c67b630d1eb41a91813b8dfa31ee2280bc 100644 (file)
@@ -69,10 +69,6 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
       { :path => "/user/username/diary/1", :method => :put },
       { :controller => "diary_entries", :action => "update", :display_name => "username", :id => "1" }
     )
-    assert_routing(
-      { :path => "/user/username/diary/1/newcomment", :method => :post },
-      { :controller => "diary_entries", :action => "comment", :display_name => "username", :id => "1" }
-    )
     assert_routing(
       { :path => "/user/username/diary/1/hide", :method => :post },
       { :controller => "diary_entries", :action => "hide", :display_name => "username", :id => "1" }
@@ -340,113 +336,6 @@ class DiaryEntriesControllerTest < ActionDispatch::IntegrationTest
     assert_select "span[class=translation_missing]", false, "Missing translation in edit diary entry"
   end
 
-  def test_comment
-    user = create(:user)
-    other_user = create(:user)
-    entry = create(:diary_entry, :user => user)
-    create(:diary_entry_subscription, :diary_entry => entry, :user => user)
-
-    # Make sure that you are denied when you are not logged in
-    post comment_diary_entry_path(entry.user, entry)
-    assert_response :forbidden
-
-    session_for(other_user)
-
-    # Verify that you get a not found error, when you pass a bogus id
-    post comment_diary_entry_path(entry.user, :id => 9999)
-    assert_response :not_found
-    assert_select "div.content-heading", :count => 1 do
-      assert_select "h1", :text => "No entry with the id: 9999", :count => 1
-    end
-
-    # Now try an invalid comment with an empty body
-    assert_no_difference "ActionMailer::Base.deliveries.size" do
-      assert_no_difference "DiaryComment.count" do
-        assert_no_difference "entry.subscribers.count" do
-          perform_enqueued_jobs do
-            post comment_diary_entry_path(entry.user, entry, :diary_comment => { :body => "" })
-          end
-        end
-      end
-    end
-    assert_response :success
-    assert_template :show
-
-    # Now try again with the right id
-    assert_difference "ActionMailer::Base.deliveries.size", entry.subscribers.count do
-      assert_difference "DiaryComment.count", 1 do
-        assert_difference "entry.subscribers.count", 1 do
-          perform_enqueued_jobs do
-            post comment_diary_entry_path(entry.user, entry, :diary_comment => { :body => "New comment" })
-          end
-        end
-      end
-    end
-    assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
-    email = ActionMailer::Base.deliveries.first
-    assert_equal [user.email], email.to
-    assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
-    assert_match(/New comment/, email.text_part.decoded)
-    assert_match(/New comment/, email.html_part.decoded)
-    ActionMailer::Base.deliveries.clear
-    comment = DiaryComment.order(:id).last
-    assert_equal entry.id, comment.diary_entry_id
-    assert_equal other_user.id, comment.user_id
-    assert_equal "New comment", comment.body
-
-    # Now show the diary entry, and check the new comment is present
-    get diary_entry_path(entry.user, entry)
-    assert_response :success
-    assert_select ".diary-comment", :count => 1 do
-      assert_select "#comment#{comment.id}", :count => 1 do
-        assert_select "a[href='/user/#{ERB::Util.u(other_user.display_name)}']", :text => other_user.display_name, :count => 1
-      end
-      assert_select ".richtext", :text => /New comment/, :count => 1
-    end
-  end
-
-  def test_comment_spammy
-    user = create(:user)
-    other_user = create(:user)
-    entry = create(:diary_entry, :user => user)
-    create(:diary_entry_subscription, :diary_entry => entry, :user => user)
-
-    session_for(other_user)
-
-    # Generate some spammy content
-    spammy_text = 1.upto(50).map { |n| "http://example.com/spam#{n}" }.join(" ")
-
-    # Try creating a spammy comment
-    assert_difference "ActionMailer::Base.deliveries.size", 1 do
-      assert_difference "DiaryComment.count", 1 do
-        perform_enqueued_jobs do
-          post comment_diary_entry_path(entry.user, entry, :diary_comment => { :body => spammy_text })
-        end
-      end
-    end
-    assert_redirected_to :action => :show, :display_name => entry.user.display_name, :id => entry.id
-    email = ActionMailer::Base.deliveries.first
-    assert_equal [user.email], email.to
-    assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
-    assert_match %r{http://example.com/spam}, email.text_part.decoded
-    assert_match %r{http://example.com/spam}, email.html_part.decoded
-    ActionMailer::Base.deliveries.clear
-    comment = DiaryComment.order(:id).last
-    assert_equal entry.id, comment.diary_entry_id
-    assert_equal other_user.id, comment.user_id
-    assert_equal spammy_text, comment.body
-    assert_equal "suspended", User.find(other_user.id).status
-
-    # Follow the redirect
-    get diary_entries_path(:display_name => user.display_name)
-    assert_redirected_to :controller => :users, :action => :suspended
-
-    # Now show the diary entry, and check the new comment is not present
-    get diary_entry_path(entry.user, entry)
-    assert_response :success
-    assert_select ".diary-comment", :count => 0
-  end
-
   def test_index_all
     diary_entry = create(:diary_entry)
     geo_entry = create(:diary_entry, :latitude => 51.50763, :longitude => -0.10781)
index d32521c3bf42565e7663a0a529666ed3ffb537c5..ac9905589bd949cf7390ff9cedd140624e92c2dd 100644 (file)
@@ -60,6 +60,19 @@ class GeocoderControllerTest < ActionDispatch::IntegrationTest
     end
   end
 
+  ##
+  # Test identification of integer lat/lon pairs using N/E with degrees
+  def test_identify_latlon_ne_d_int_deg
+    [
+      "N50 E14",
+      "N50° E14°",
+      "50N 14E",
+      "50°N 14°E"
+    ].each do |code|
+      latlon_check code, 50, 14
+    end
+  end
+
   ##
   # Test identification of lat/lon pairs using N/W with degrees
   def test_identify_latlon_nw_d
@@ -223,6 +236,54 @@ class GeocoderControllerTest < ActionDispatch::IntegrationTest
     end
   end
 
+  ##
+  # Test identification of lat/lon pairs with missing fractions
+  def test_no_identify_latlon_ne_missing_fraction_part
+    [
+      "N50. E14.",
+      "N50.° E14.°",
+      "50.N 14.E",
+      "50.°N 14.°E",
+      "N50 1.' E14 2.'",
+      "N50° 1.' E14° 2.'",
+      "50N 1.' 14 2.'E",
+      "50° 1.'N 14° 2.'E",
+      "N50 1' 3,\" E14 2' 4.\"",
+      "N50° 1' 3.\" E14° 2' 4.\"",
+      "50N 1' 3.\" 14 2' 4.\"E",
+      "50° 1' 3.\"N 14° 2' 4.\"E"
+    ].each do |code|
+      get search_path(:query => code)
+      assert_response :success
+      assert_template :search
+      assert_template :layout => "map"
+      assert_equal %w[osm_nominatim], assigns(:sources).pluck(:name)
+    end
+  end
+
+  #
+  # Test identification of lat/lon pairs with mixed precision
+  def test_identify_latlon_ne_mixed_precision
+    latlon_check "N1 5 E15",    1.083333, 15
+    latlon_check "N1 5 9 E15",  1.085833, 15
+    latlon_check "N1 5 9 E1 5", 1.085833, 1.083333
+    latlon_check "N15 E1 5",    15, 1.083333
+    latlon_check "N15 E1 5 9",  15, 1.085833
+    latlon_check "N1 5 E1 5 9", 1.083333, 1.085833
+  end
+
+  #
+  # Test identification of lat/lon pairs with values close to zero
+  def test_identify_latlon_close_to_zero
+    [
+      "0.0000123 -0.0000456",
+      "+0.0000123 -0.0000456",
+      "N 0° 0' 0.4428\", W 0° 0' 1.6416\""
+    ].each do |code|
+      latlon_check code, 0.0000123, -0.0000456
+    end
+  end
+
   ##
   # Test identification of US zipcodes
   def test_identify_us_postcode
@@ -368,8 +429,10 @@ class GeocoderControllerTest < ActionDispatch::IntegrationTest
     assert_template :layout => "map"
     assert_equal %w[latlon osm_nominatim_reverse], assigns(:sources).pluck(:name)
     assert_nil @controller.params[:query]
-    assert_in_delta lat, @controller.params[:lat]
-    assert_in_delta lon, @controller.params[:lon]
+    assert_match(/^[+-]?\d+(?:\.\d+)?$/, @controller.params[:lat])
+    assert_match(/^[+-]?\d+(?:\.\d+)?$/, @controller.params[:lon])
+    assert_in_delta lat, @controller.params[:lat].to_f
+    assert_in_delta lon, @controller.params[:lon].to_f
 
     get search_path(:query => query), :xhr => true
     assert_response :success
@@ -377,8 +440,10 @@ class GeocoderControllerTest < ActionDispatch::IntegrationTest
     assert_template :layout => "xhr"
     assert_equal %w[latlon osm_nominatim_reverse], assigns(:sources).pluck(:name)
     assert_nil @controller.params[:query]
-    assert_in_delta lat, @controller.params[:lat]
-    assert_in_delta lon, @controller.params[:lon]
+    assert_match(/^[+-]?\d+(?:\.\d+)?$/, @controller.params[:lat])
+    assert_match(/^[+-]?\d+(?:\.\d+)?$/, @controller.params[:lon])
+    assert_in_delta lat, @controller.params[:lat].to_f
+    assert_in_delta lon, @controller.params[:lon].to_f
   end
 
   def search_check(query, sources)
index 09adfc14b5bab6d215238678dca6becf6a5696c0..53b9a823bc6476804b53b2736c39e112d83b3fe7 100644 (file)
@@ -109,15 +109,10 @@ class UserHelperTest < ActionView::TestCase
     assert_match %r{^<img .* width="50" height="50" .* />$}, thumbnail
   end
 
-  def test_openid_logo
-    logo = openid_logo
-    assert_match %r{^<img .* src="/images/openid.svg" .* />$}, logo
-  end
-
   def test_auth_button
     button = auth_button("google", "google")
     img_tag = "<img alt=\"Google logo\" class=\"rounded-1\" src=\"/images/google.svg\" width=\"36\" height=\"36\" />"
-    assert_equal("<a class=\"auth_button btn btn-light mx-1 p-2 d-block\" title=\"Log in with Google\" rel=\"nofollow\" data-method=\"post\" href=\"/auth/google\">#{img_tag}</a>", button)
+    assert_equal("<a class=\"auth_button btn btn-light p-2\" title=\"Log in with Google\" rel=\"nofollow\" data-method=\"post\" href=\"/auth/google\">#{img_tag}</a>", button)
   end
 
   private
diff --git a/test/lib/nominatim_test.rb b/test/lib/nominatim_test.rb
new file mode 100644 (file)
index 0000000..1ac775a
--- /dev/null
@@ -0,0 +1,29 @@
+require "test_helper"
+
+class NominatimTest < ActiveSupport::TestCase
+  def test_describe_location
+    stub_request(:get, %r{^https://nominatim\.example\.com/reverse\?})
+      .to_return(:body => "<reversegeocode><result>Target location</result></reversegeocode>")
+
+    with_settings(:nominatim_url => "https://nominatim.example.com/") do
+      location = Nominatim.describe_location(60, 30, 10, "en")
+      assert_equal "Target location", location
+    end
+
+    assert_requested :get, "https://nominatim.example.com/reverse?lat=60&lon=30&zoom=10&accept-language=en",
+                     :headers => { "User-Agent" => Settings.server_url }
+  end
+
+  def test_describe_location_no_result
+    stub_request(:get, %r{^https://nominatim\.example\.com/reverse\?})
+      .to_return(:body => "<reversegeocode><error>Unable to geocode</error></reversegeocode>")
+
+    with_settings(:nominatim_url => "https://nominatim.example.com/") do
+      location = Nominatim.describe_location(1, 2, 14, "en")
+      assert_equal "1.000, 2.000", location
+    end
+
+    assert_requested :get, "https://nominatim.example.com/reverse?lat=1&lon=2&zoom=14&accept-language=en",
+                     :headers => { "User-Agent" => Settings.server_url }
+  end
+end
index 0835df741779eb05d306ae670639d0ea163d5e1d..0e02b904f7f44a830fa5d2eba043fef1e7c70ba6 100644 (file)
@@ -8,4 +8,16 @@ class UserSignupTest < ApplicationSystemTestCase
 
     assert_content "Confirm Password"
   end
+
+  test "Show OpenID form when OpenID provider button is clicked" do
+    visit login_path
+
+    assert_no_field "OpenID URL"
+    assert_no_button "Continue"
+
+    click_on "Log in with OpenID"
+
+    assert_field "OpenID URL"
+    assert_button "Continue"
+  end
 end
index fe77c07e31c1d3b7526a3dd6bdee5b9b560025cd..a241e9c984b86d868a5dc45cbe77f79c03a4723e 100644 (file)
--- a/yarn.lock
+++ b/yarn.lock
   dependencies:
     eslint-visitor-keys "^3.3.0"
 
-"@eslint-community/regexpp@^4.6.1":
-  version "4.6.2"
-  resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.6.2.tgz#1816b5f6948029c5eaacb0703b850ee0cb37d8f8"
-  integrity sha512-pPTNuaAG3QMH+buKyBIGJs3g/S5y0caxw0ygM3YyE6yJFySwiGGSzA+mM3KJ8QQvzeLh3blwgSonkFjgQdxzMw==
+"@eslint-community/regexpp@^4.11.0":
+  version "4.11.0"
+  resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.11.0.tgz#b0ffd0312b4a3fd2d6f77237e7248a5ad3a680ae"
+  integrity sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==
 
 "@eslint/config-array@^0.17.0":
   version "0.17.0"
     minimatch "^3.1.2"
     strip-json-comments "^3.1.1"
 
-"@eslint/js@9.6.0":
-  version "9.6.0"
-  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.6.0.tgz#5b0cb058cc13d9c92d4e561d3538807fa5127c95"
-  integrity sha512-D9B0/3vNg44ZeWbYMpBoXqNP4j6eQD5vNwIlGAuFRRzK/WtT/jvDQW3Bi9kkf3PMDMlM7Yi+73VLUsn5bJcl8A==
+"@eslint/js@9.7.0":
+  version "9.7.0"
+  resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.7.0.tgz#b712d802582f02b11cfdf83a85040a296afec3f0"
+  integrity sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==
 
 "@eslint/object-schema@^2.1.4":
   version "2.1.4"
@@ -227,10 +227,10 @@ 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@^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==
+eslint-scope@^8.0.2:
+  version "8.0.2"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.2.tgz#5cbb33d4384c9136083a71190d548158fe128f94"
+  integrity sha512-6E4xmrTw5wtxnLA5wYL3WDfhZ/1bUBGOXV0zQvVRDOtrR8D0p6W7fs3JweNYhwRYeGvd/1CKX2se0/2s7Q/nJA==
   dependencies:
     esrecurse "^4.3.0"
     estraverse "^5.2.0"
@@ -246,15 +246,15 @@ eslint-visitor-keys@^4.0.0:
   integrity sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==
 
 eslint@^9.0.0:
-  version "9.6.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.6.0.tgz#9f54373afa15e1ba356656a8d96233182027fb49"
-  integrity sha512-ElQkdLMEEqQNM9Njff+2Y4q2afHk7JpkPvrd7Xh7xefwgQynqPxwf55J7di9+MEibWUGdNjFF9ITG9Pck5M84w==
+  version "9.7.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.7.0.tgz#bedb48e1cdc2362a0caaa106a4c6ed943e8b09e4"
+  integrity sha512-FzJ9D/0nGiCGBf8UXO/IGLTgLVzIxze1zpfA8Ton2mjLovXdAPlYDv+MQDcqj3TmrhAGYfOpz9RfR+ent0AgAw==
   dependencies:
     "@eslint-community/eslint-utils" "^4.2.0"
-    "@eslint-community/regexpp" "^4.6.1"
+    "@eslint-community/regexpp" "^4.11.0"
     "@eslint/config-array" "^0.17.0"
     "@eslint/eslintrc" "^3.1.0"
-    "@eslint/js" "9.6.0"
+    "@eslint/js" "9.7.0"
     "@humanwhocodes/module-importer" "^1.0.1"
     "@humanwhocodes/retry" "^0.3.0"
     "@nodelib/fs.walk" "^1.2.8"
@@ -263,7 +263,7 @@ eslint@^9.0.0:
     cross-spawn "^7.0.2"
     debug "^4.3.2"
     escape-string-regexp "^4.0.0"
-    eslint-scope "^8.0.1"
+    eslint-scope "^8.0.2"
     eslint-visitor-keys "^4.0.0"
     espree "^10.1.0"
     esquery "^1.5.0"
@@ -624,9 +624,9 @@ punycode@^2.1.0:
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
 qs@^6.9.4:
-  version "6.12.2"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.2.tgz#5443b587f3bf73ac68968de491e5b25bafe04478"
-  integrity sha512-x+NLUpx9SYrcwXtX7ob1gnkSems4i/mGZX5SlYxwIau6RrUSODO89TR/XDGGpn5RPWSYIB+aSfuSlV5+CmbTBg==
+  version "6.12.3"
+  resolved "https://registry.yarnpkg.com/qs/-/qs-6.12.3.tgz#e43ce03c8521b9c7fd7f1f13e514e5ca37727754"
+  integrity sha512-AWJm14H1vVaO/iNZ4/hO+HyaTehuy9nRqVdkTqlJt0HWvBiBIEXFmb4C0DGeYo3Xes9rrEW+TxHsaigCbN5ICQ==
   dependencies:
     side-channel "^1.0.6"