activerecord (6.1.4)
activemodel (= 6.1.4)
activesupport (= 6.1.4)
- activerecord-import (1.1.0)
+ activerecord-import (1.2.0)
activerecord (>= 3.2)
activestorage (6.1.4)
actionpack (= 6.1.4)
autoprefixer-rails (10.2.5.1)
execjs (> 0)
aws-eventstream (1.1.1)
- aws-partitions (1.478.0)
+ aws-partitions (1.479.0)
aws-sdk-core (3.117.0)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
bootstrap_form (4.5.0)
actionpack (>= 5.2)
activemodel (>= 5.2)
- brakeman (5.0.4)
+ brakeman (5.1.1)
browser (5.3.1)
builder (3.2.4)
bzip2-ffi (1.1.0)
rubocop-ast (>= 1.7.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 3.0)
- rubocop-ast (1.7.0)
+ rubocop-ast (1.8.0)
parser (>= 3.0.1.1)
rubocop-minitest (0.14.0)
rubocop (>= 0.90, < 2.0)
ruby-progressbar (1.11.0)
ruby-vips (2.1.2)
ffi (~> 1.12)
- ruby2_keywords (0.0.4)
+ ruby2_keywords (0.0.5)
rubyzip (2.3.2)
sanitize (5.2.3)
crass (~> 1.0.2)
-//= require ohauth/ohauth
-
$(document).ready(function () {
var application_data = $("head").data();
- function makeAbsolute(url) {
- var a = document.createElement("a");
- a.href = url;
- return a.href;
- }
-
- if (application_data.token) {
- var headerGenerator = window.ohauth.headerGenerator({
- consumer_key: application_data.consumerKey,
- consumer_secret: application_data.consumerSecret,
- token: application_data.token,
- token_secret: application_data.tokenSecret
- });
-
- $.ajaxPrefilter(function (options, jqxhr) {
+ if (application_data.oauthToken) {
+ $.ajaxPrefilter(function (options) {
if (options.oauth) {
options.headers = options.headers || {};
- options.headers.Authorization = headerGenerator(options.type, makeAbsolute(options.url), jqxhr.data);
+ options.headers.Authorization = "Bearer " + application_data.oauthToken;
}
});
}
/* Overrides for pages that use new layout conventions */
-.users-new,
-.users-create,
-.users-terms,
-.users-confirm {
- .content-heading .content-inner {
- height: 200px;
- }
-}
-
.header-illustration {
background-position: 0 0;
background-repeat: no-repeat;
- position: absolute;
- height: 200px;
+ position: relative;
+ min-height: 200px;
width: 100%;
left: 0;
bottom: 0;
&.new-user-arm {
height: 110px;
width: 130px;
- left: 260px;
- top: 160px;
+ left: 280px;
+ top: 180px;
background-image: image-url("sign-up-illustration-arm.png");
+ position: absolute;
z-index: 100;
}
}
-# Update and read user preferences, which are arbitrayr key/val pairs
+# Update and read user preferences, which are arbitrary key/val pairs
module Api
class UserPreferencesController < ApiController
before_action :authorize
helper_method :current_user
helper_method :oauth_token
- helper_method :preferred_langauges
private
end
def require_oauth
- @oauth_token = current_user.access_token(Settings.oauth_key) if current_user && Settings.key?(:oauth_key)
+ @oauth_token = current_user.oauth_token(Settings.oauth_application) if current_user && Settings.key?(:oauth_application)
end
##
@new_comment = IssueComment.new(:issue => @issue)
end
- # Status Transistions
+ # Status Transitions
def resolve
if @issue.resolve
@issue.updated_by = current_user.id
end
data[:location] = session[:location] if session[:location]
-
- if oauth_token
- data[:token] = oauth_token.token
- data[:token_secret] = oauth_token.secret
- data[:consumer_key] = oauth_token.client_application.key
- data[:consumer_secret] = oauth_token.client_application.secret
- end
+ data[:oauth_token] = oauth_token.token if oauth_token
data
end
index = cval.to_i
cookies[ckey] = index - 1 if index.positive?
- # pick banner with mininum queue position
+ # pick banner with minimum queue position
next if index > min_index
# or if equal queue position, pick banner with soonest end date (i.e. next expiring)
# Generic checks that are run for the updates and deletes of
# node, ways and relations. This code is here to avoid duplication,
- # and allow the extention of the checks without having to modify the
+ # and allow the extension of the checks without having to modify the
# code in 6 places for all the updates and deletes. Some of these tests are
# needed for creates, but are currently not run :-(
# This will throw an exception if there is an inconsistency
has_many :client_applications
has_many :oauth_tokens, -> { order(:authorized_at => :desc).preload(:client_application) }, :class_name => "OauthToken"
- has_many :oauth2_applications, :class_name => Doorkeeper.config.application_model.name, :foreign_key => :owner_id
+ has_many :oauth2_applications, :class_name => Doorkeeper.config.application_model.name, :as => :owner
has_many :access_grants, :class_name => Doorkeeper.config.access_grant_model.name, :foreign_key => :resource_owner_id
has_many :access_tokens, :class_name => Doorkeeper.config.access_token_model.name, :foreign_key => :resource_owner_id
end
##
- # return an oauth access token for a specified application
+ # return an oauth 1 access token for a specified application
def access_token(application_key)
ClientApplication.find_by(:key => application_key).access_token_for_user(self)
end
+ ##
+ # return an oauth 2 access token for a specified application
+ def oauth_token(application_id)
+ application = Doorkeeper.config.application_model.find_by(:uid => application_id)
+
+ Doorkeeper.config.access_token_model.find_or_create_for(
+ :application => application,
+ :resource_owner => self,
+ :scopes => application.scopes
+ )
+ end
+
def fingerprint
digest = Digest::SHA256.new
digest.update(email)
+<% content_for :heading_class, "pb-0" %>
<% content_for :heading do %>
- <h1><%= t ".heading" %></h1>
- <div class='header-illustration confirm-main'></div>
+ <div class='header-illustration confirm-main'>
+ <h1><%= t ".heading" %></h1>
+ </div>
<% end %>
<% if params[:confirm_string] %>
<%= javascript_include_tag "messages" %>
<% end %>
+<% content_for :heading_class, "pb-0" %>
+
<% content_for :heading do %>
- <ul class="nav nav-pills">
+ <h1><%= t("users.show.my messages") %></h1>
+ <ul class="nav nav-tabs">
<li class="nav-item">
<a class="nav-link active"><%= t ".my_inbox" %></a>
</li>
<%= javascript_include_tag "messages" %>
<% end %>
+<% content_for :heading_class, "pb-0" %>
+
<% content_for :heading do %>
- <ul class="nav nav-pills">
+ <h1><%= t("users.show.my messages") %></h1>
+
+ <ul class="nav nav-tabs">
<li class="nav-item">
<%= link_to t(".my_inbox"), inbox_messages_path, :class => "nav-link" %>
</li>
-<% if current_user == @message.recipient %>
- <% content_for :heading do %>
- <h2><%= @message.title %></h2>
- <% end %>
+<% content_for :heading do %>
+ <h2><%= @message.title %></h2>
+<% end %>
+<% if current_user == @message.recipient %>
<div class='info-line clearfix'>
<%= user_thumbnail_tiny @message.sender %>
<%= link_to @message.sender.display_name, user_path(@message.sender) %></td>
</div>
</div>
- <div class="richtext"><%= @message.body.to_html %></div>
+ <div class="richtext text-break"><%= @message.body.to_html %></div>
<div>
<%= link_to t(".reply_button"), message_reply_path(@message), :class => "btn btn-primary" %>
<%= link_to t(".unread_button"), message_mark_path(@message, :mark => "unread"), :method => "post", :class => "btn btn-primary" %>
- <%= link_to t(".destroy_button"), message_path(@message), :method => "delete", :class => "btn btn-primary" %>
+ <%= link_to t(".destroy_button"), message_path(@message), :method => "delete", :class => "btn btn-danger" %>
<%= link_to t(".back"), inbox_messages_path, :class => "btn btn-link" %>
</div>
-
<% else %>
-
- <h2><%= @message.title %></h2>
-
<div class='info-line clearfix'>
<%= user_thumbnail_tiny @message.recipient %>
<%= link_to @message.recipient.display_name, user_path(@message.recipient) %></td>
<div class="richtext text-break"><%= @message.body.to_html %></div>
<div>
+ <%= link_to t(".destroy_button"), message_path(@message), :method => "delete", :class => "btn btn-danger" %>
<%= link_to t(".back"), outbox_messages_path, :class => "btn btn-link" %>
</div>
-
<% end %>
+<% content_for :heading_class, "pb-0" %>
<% content_for :heading do %>
- <h1><%= t "users.new.title" %></h1>
- <div class='header-illustration new-user-main'></div>
+ <div class='header-illustration new-user-main'>
+ <h1><%= t "users.new.title" %></h1>
+ </div>
<div class='header-illustration new-user-arm'></div>
<% end %>
<%= javascript_include_tag "user" %>
<% end %>
+<% content_for :heading_class, "pb-0" %>
<% content_for :heading do %>
- <h1><%= t ".title" %></h1>
- <div class='header-illustration new-user-main'></div>
+ <div class='header-illustration new-user-main'>
+ <h1><%= t ".title" %></h1>
+ </div>
<div class='header-illustration new-user-arm'></div>
<% end %>
<div class='userinformation-inner'>
<h1><%= @user.display_name %> <%= role_icons(@user) %></h1>
<% if current_user and @user.id == current_user.id %>
- <!-- Displaying user's own profile page to themself -->
+ <!-- Displaying user's own profile page -->
<ul class='secondary-actions clearfix'>
<li>
<%= link_to t(".my edits"), :controller => "changesets", :action => "index", :display_name => current_user.display_name %>
<%= javascript_include_tag "user" %>
<% end %>
+<% content_for :heading_class, "pb-0" %>
<% content_for :heading do %>
- <h1><%= t ".heading" %></h1>
- <div class='header-illustration new-user-terms'></div>
+ <div class='header-illustration new-user-terms'>
+ <h1><%= t ".heading" %></h1>
+ </div>
<% end %>
<%= form_tag({ :action => "save" }) do %>
my_tokens: আমার অনুমোদিত অ্যাপ্লিকেশনসমূহ
list_tokens: 'নিম্নলিখিত টোকেনগুলি আপনার নামে অধীনে অ্যাপ্লিকেশনগুলির জন্য তৈরী
করা হয়েছে:'
- application: অ্যাপলিকেশনের নাম
+ application: à¦\85à§\8dযাপà§\8dলিà¦\95à§\87শনà§\87র নাম
issued_at: অনুমোদনের তারিখ
users:
new:
railway: Historische Zugstrecke
roman_road: Römerstraße
ruins: Ruine
+ rune_stone: Runenstein
stone: Findling
tomb: Grabstätte
tower: Historischer Turm
trace:
tagstring: comma delimited
user_block:
- reason: The reason why the user is being blocked. Please be as calm and as reasonable as possible, giving as much detail as you can about the situation, remembering that the message will be publicly visible. Bear in mind that not all users understand the community jargon, so please try to use laymans terms.
+ reason: The reason why the user is being blocked. Please be as calm and as reasonable as possible, giving as much detail as you can about the situation, remembering that the message will be publicly visible. Bear in mind that not all users understand the community jargon, so please try to use layman's terms.
needs_view: Does the user need to log in before this block will be cleared?
user:
email_confirmation: 'Your address is not displayed publicly, see our <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy" title="OSMF privacy policy including section on email addresses">privacy policy</a> for more information.'
houseboat: "Houseboat"
hut: "Hut"
industrial: "Industrial Building"
- kindergarten: "Kindergarden Building"
+ kindergarten: "Kindergarten Building"
manufacture: "Manufacturing Building"
office: "Office Building"
public: "Public Building"
sport: "Sportsclub"
"yes": "Club"
craft:
- beekeper: "Beekeeper"
+ beekeeper: "Beekeeper"
blacksmith: "Blacksmith"
brewery: "Brewery"
carpenter: "Carpenter"
ambulance_station: "Ambulance Station"
assembly_point: "Assembly Point"
defibrillator: "Defibrillator"
- fire_xtinguisher: "Fire Extinguisher"
+ fire_extinguisher: "Fire Extinguisher"
fire_water_pond: "Fire Water Pond"
landing_site: "Emergency Landing Site"
life_ring: "Emergency Life Ring"
railway: "Historic Railway"
roman_road: "Roman Road"
ruins: "Ruins"
+ rune_stone: "Rune Stone"
stone: "Stone"
tomb: "Tomb"
tower: "Tower"
update: بروزرسانی
doorkeeper_application:
create: ثبتنام
- update: رÙ\88زآÙ\85دسازی
+ update: برÙ\88زرساÙ\86ی
redaction:
create: ایجاد پاکسازی
update: ذخیرهٔ پاکسازی
read_prefs: خواندن ترجیحات کاربر
write_prefs: تغییر ترجیحات کاربر
write_diary: ایجاد روزنوشت، نظردهی و افزودن دوست
- write_api: تغÛ\8cÛ\8cر نقشه
+ write_api: اصÙ\84Ø§Ø نقشه
read_gpx: خواندن ردهای جیپیاس خصوصی
write_gpx: آپلود ردهای جیپیاس
- write_notes: تغÛ\8cÛ\8cر یادداشتها
+ write_notes: اصÙ\84Ø§Ø یادداشتها
oauth_clients:
new:
title: ثبت اپلیکیشن تازه
client_application:
create: Rekisteröi
update: Päivitä
+ doorkeeper_application:
+ create: Rekisteröidy
+ update: Päivitä
redaction:
create: Luo redaktio
update: Tallenna redaktio
latitude: Leveyspiiri
longitude: Pituuspiiri
language: Kieli
+ doorkeeper/application:
+ name: Nimi
+ scopes: Käyttöoikeudet
friend:
user: Käyttäjä
friend: Kaveri
comment: Kommentti
newer_comments: Uudemmat kommentit
older_comments: Vanhemmat kommentit
+ doorkeeper:
+ flash:
+ applications:
+ create:
+ notice: Sovellus rekisteröity.
friendships:
make_friend:
heading: Lisätäänkö %{user} kaveriksi?
semidetached_house: Paritalo
service: Palvelurakennus
stable: Talli
+ static_caravan: Karavaani
temple: Temppelirakennus
terrace: Rivitalo
train_station: Rautatieasema
warehouse: Varasto
"yes": Rakennus
club:
+ sport: Urheiluseura
"yes": Klubi
craft:
+ beekeper: Mehiläishoitaja
brewery: Panimo
carpenter: Puuseppä
+ caterer: Pitopalvelu
+ confectionery: Makeiset
+ dressmaker: Ompelija
electrician: Sähköasentaja
gardener: Puutarhuri
+ handicraft: Käsityöt
painter: Taidemaalari
photographer: Valokuvaaja
plumber: Putkimies
sawmill: Sahalaitos
shoemaker: Suutari
tailor: Räätäli
+ winery: Viinitila
"yes": Käsityömyymälä
emergency:
ambulance_station: Ensihoitoasema
"yes": Risteys
landuse:
allotments: Siirtolapuutarha
+ aquaculture: Vesiviljely
basin: Syvänne
brownfield: Purettujen rakennusten alue
cemetery: Hautausmaa
"yes": Vapaa-aika
man_made:
adit: Suuaukko
+ advertising: Mainonta
antenna: Antenni
beacon: Majakka
beehive: ampiaispesä
flash: Olet poistanut sovelluksen %{application} käyttöoikeudet
permissions:
missing: Et ole sallinut sovelluksen käyttöoikeutta tähän palveluun
+ scopes:
+ write_api: Muokkaa karttaa
oauth_clients:
new:
title: Rekisteröi uusi sovellus
flash: Sovelluksen tiedot on päivitetty.
destroy:
flash: Sovelluksen käyttöoikeus on poistettu.
+ oauth2_applications:
+ index:
+ new: Rekisteröi uusi sovellus
+ name: Nimi
+ permissions: Käyttöoikeudet
+ application:
+ edit: Muokkaa
+ delete: Poista
+ confirm_delete: Poista tämä sovellus?
+ new:
+ title: Rekisteröi uusi sovellus
+ edit:
+ title: Muokkaa sovellustasi
+ show:
+ edit: Muokkaa
+ delete: Poista
+ confirm_delete: Poista tämä sovellus?
+ permissions: Oikeudet
+ oauth2_authorized_applications:
+ index:
+ application: Sovellus
+ permissions: Oikeudet
users:
new:
title: Rekisteröidy
italy: Italia
rest_of_world: Muu maailma
terms_declined_flash:
+ terms_declined_link: tämä wikisivu
terms_declined_url: https://wiki.openstreetmap.org/wiki/Fi:Contributor_Terms_Declined
no_such_user:
title: Haettua käyttäjää ei ole olemassa
suspended:
title: Käyttäjätili jäädytetty
heading: Käyttäjätili jäädytetty
+ support: tuki
body_html: |-
<p>
Pahoittelut, tilisi on automaattisesti suljettu
railway: Chemin de fer historique
roman_road: Voie romaine
ruins: Ruines
+ rune_stone: Pierre runique
stone: Pierre
tomb: Tombeau
tower: Tour
# Export driver: phpyaml
# Author: Amire80
# Author: Aude
+# Author: Avma
# Author: Dan.translate
# Author: Dekel E
# Author: Deror avi
errors:
messages:
invalid_email_address: זאת אינה כתובת דוא״ל תקנית
- email_address_not_routable: ×\90×\99 ×\90פשר ×\9c×\99צ×\95ר × ×ª×\99ב
+ email_address_not_routable: ×\9c×\90 ×\91×¨Ö¾× ×\99ת×\95ב
models:
acl: רשימת בקרת גישה
changeset: ערכת שינויים
changeset_tag: תג ערכת שינויים
country: מדינה
diary_comment: תגובה ליומן
- diary_entry: רש×\95×\9e×\94 ×\91יומן
+ diary_entry: רש×\95×\9eת יומן
friend: חבר
- issue: ×\93×\99×\95×\95×\97
+ issue: ס×\95×\92×\99×\99×\94
language: שפה
message: הודעה
node: נקודה
- node_tag: ת×\92 ש×\9c × ×§×\95×\93×\94
+ node_tag: ת×\92 צ×\95×\9eת
notifier: מתריע
- old_node: × ×§×\95×\93×\94 ×\99×©× ×\94
- old_node_tag: ת×\92 ש×\9c × ×§×\95×\93×\94 ×\99×©× ×\94
+ old_node: צ×\95×\9eת ×\99ש×\9f
+ old_node_tag: ת×\92 צ×\95×\9eת ×\99ש×\9f
old_relation: יחס ישן
old_relation_member: איבר יחס ישן
old_relation_tag: תג יחס ישן
- old_way: ק×\95 ×\99ש×\9f
+ old_way: ×\93ר×\9a ×\99×©× ×\94
old_way_node: נקודת קו ישנה
old_way_tag: תג קו ישן
relation: יחס
flash: '%{application}에 대한 토큰을 해제했습니다'
permissions:
missing: 이 애플리케이션이 이 기능을 사용할 수 있도록 승인하지 않았습니다
+ scopes:
+ write_prefs: 사용자 환경 설정 수정
oauth_clients:
new:
title: 새 애플리케이션 등록
flash: 클라이언트 애플리케이션 등록을 파기했습니다
oauth2_applications:
index:
+ title: 내 클라이언트 애플리케이션
name: 이름
permissions: 권한
application:
edit: 편집
+ new:
+ title: 새 애플리케이션 등록
+ edit:
+ title: 내 애플리케이션 편집
show:
edit: 편집
delete: 삭제
+ confirm_delete: 이 애플리케이션을 삭제하시겠습니까?
client_id: 클라이언트 ID
permissions: 권한
oauth2_authorizations:
title: 오류가 발생했습니다
oauth2_authorized_applications:
index:
+ application: 애플리케이션
permissions: 권한
users:
new:
save changes button: 변경사항 저장
make edits public button: 내 편집을 공개하기
return to profile: 프로필로 돌아가기
+ oauth1 settings: OAuth 1 설정
+ oauth2 applications: OAuth 2 애플리케이션
+ oauth2 authorizations: OAuth 2 인가
flash update success confirm needed: 사용자 정보를 성공적으로 업데이트했습니다. 새 이메일 주소를 확인하기
위해 이메일을 확인하세요.
flash update success: 사용자 정보를 성공적으로 업데이트했습니다.
suspended:
title: 계정 정지
heading: 계정 정지
+ support: 지원
body_html: |-
<p>
죄송합니다, 의심스러운 활동으로 인해 계정이 자동으로
language: Taal
doorkeeper/application:
name: Naam
+ redirect_uri: Omleidings-URI's
confidential: Vertrouwelijke toepassing?
scopes: Rechten
friend:
pass_crypt: Wachtwoord
pass_crypt_confirmation: Wachtwoord bevestigen
help:
+ doorkeeper/application:
+ confidential: Applicatie wordt gebruikt waar het clientgeheim vertrouwelijk
+ kan worden gehouden (native mobiele apps en apps met één pagina zijn niet
+ vertrouwelijk)
+ redirect_uri: Gebruik één regel per URI
trace:
tagstring: kommagescheiden
user_block:
success: Uw e-mailadreswijziging is bevestigd.
failure: Er is al een e-mailadres bevestigd met dit token.
unknown_token: De opgegeven bevestigingscode is verlopen of bestaat niet.
+ resend_success_flash:
+ confirmation_sent: We hebben een nieuwe bevestigingsnotitie naar %{email} gestuurd
+ en zodra u uw account bevestigt, kunt u een toewijzing krijgen.
+ whitelist: Als u een antispamsysteem gebruikt dat bevestigingsverzoeken verzendt,
+ zorg er dan voor dat u %{sender} op de witte lijst plaatst, aangezien we niet
+ kunnen reageren op bevestigingsverzoeken.
messages:
inbox:
title: Postvak IN
account not active: Uw gebruiker is helaas nog niet actief.<br />Klik op de
koppeling in de bevestiging om deze te activeren of <a href="%{reconfirm}">vraag
een nieuwe bevestiging per e-mail aan</a>.
- account is suspended: Uw gebruiker is automatisch opgeschort vanwege verdachte
- activiteit.<br />Neem contact op met de <a href="%{webmaster}">webmaster</a>
- als u deze handeling wilt bespreken.
+ account is suspended: Sorry, uw account is opgeschort vanwege verdachte activiteit.<br
+ /> Neem contact op met <a href="%{webmaster}">support</a> als u dit wilt bespreken.
auth failure: Met deze gegevens kunt u helaas niet aanmelden.
openid_logo_alt: Aanmelden met een OpenID
auth_providers:
in: in
index:
public_traces: Openbare gps-trajecten
- my_traces: Mijn gps-trajecten
+ my_traces: Mijn trajecten
public_traces_from: Openbare gps-trajecten van %{user}
description: Door recente gps-traject-uploads bladeren
tagged_with: ' gelabeld met %{tags}'
upload_trace: Traject uploaden
all_traces: Alle trajecten
traces_from: Openbare trajecten van %{user}
+ remove_tag_filter: Tagfilter verwijderen
destroy:
scheduled_for_deletion: Traject staat op de lijst voor verwijdering
make_public:
scopes:
read_prefs: Gebruikersvoorkeuren lezen
write_prefs: Gebruikersvoorkeuren wijzigen
+ write_diary: Dagboekberichten schrijven, reacties geven en vrienden maken
+ write_api: Wijzig de kaart
read_gpx: Persoonlijke gps-trajecten lezen
write_gpx: Gps-trajecten uploaden
+ write_notes: Notities wijzigen
oauth_clients:
new:
title: Nieuwe toepassing registreren
flash: Registratie van de client-toepassing verwijderd
oauth2_applications:
index:
+ title: Mijn client-toepassingen
+ no_applications_html: Heeft u een toepassing die u wilt registreren met de %{oauth2}-standaard?
+ Dan moet u uw webtoepassing registreren voordat u OAuth-verzoeken naar deze
+ dienst kunt maken.
+ new: Nieuwe toepassing registreren
name: Naam
permissions: Rechten
application:
delete: Verwijderen
confirm_delete: Deze toepassing verwijderen?
client_id: Client-ID
+ client_secret: Clientgeheim
+ client_secret_warning: Zorg ervoor dat u dit geheim opslaat - het zal niet meer
+ toegankelijk zijn
permissions: Rechten
+ redirect_uris: Omleidings-URI's
+ not_found:
+ sorry: Sorry, die applicatie kan niet worden gevonden.
oauth2_authorizations:
new:
title: Autorisatie vereist
+ introduction: '%{application} autoriseren om toegang te krijgen tot uw account
+ met de volgende machtigingen?'
authorize: Autoriseren
deny: Weigeren
error:
title: Mijn geautoriseerde toepassingen
application: Toepassing
permissions: Rechten
+ no_applications_html: U heeft nog geen %{oauth2}-applicaties geautoriseerd.
application:
revoke: Toegang intrekken
confirm_revoke: Toegang voor deze toepassing intrekken?
no_auto_account_create: Helaas is het niet mogelijk om automatisch een gebruiker
voor u aan te maken.
contact_support_html: Neem contact op met de <a href="%{support}">webmaster</a>
- om een account te laten maken. We proberen uw aanvraag dan zo snel mogelijk
+ om een account aan te maken - we zullen proberen het verzoek zo snel mogelijk
af te handelen.
about:
header: Open en te bewerken
suspended:
title: Gebruiker opgeschort
heading: Account opgeschort
+ support: ondersteuning
body_html: |-
- <p>Uw gebruiker is automatisch opgeschort vanwege verdachte activiteit.</p>
+ <p>Uw account is automatisch opgeschort vanwege verdachte activiteit.</p>
<p>Deze beslissing wordt snel beoordeeld door een beheerder, maar u kunt ook contact opnemen met de %{webmaster} als u deze handeling wilt bespreken.</p>
auth_failure:
connection_failed: Verbinding met authenticatieprovider mislukt
# Author: Sobloku
# Author: Spider
# Author: TarzanASG
+# Author: Thothsum
# Author: Tourorist
# Author: Valencia212
# Author: Vlad5250
активировать её, пожалуйста, нажмите на ссылку в отправленном вам письме,
или <a href="%{reconfirm}">запросите отправку нового письма-подтверждения</a>.
account is suspended: Извините, ваша учётная запись была приостановлена из-за
- подозрительной активности.<br />Пожалуйста, свяжитесь с <a href="%{webmaster}">веб-мастером</a>,
- если вы хотите выяснить подробности.
+ подозрительной активности.<br />Пожалуйста, свяжитесь со <a href="%{webmaster}">службой
+ поддеÑ\80жки</a>, еÑ\81ли вÑ\8b Ñ\85оÑ\82иÑ\82е вÑ\8bÑ\8fÑ\81ниÑ\82Ñ\8c подÑ\80обноÑ\81Ñ\82и.
auth failure: Извините, вход с этими именем или паролем невозможен.
openid_logo_alt: Войти с помощью OpenID
auth_providers:
scopes:
write_prefs: Изменить настройки пользователя
write_api: Изменить карту
+ read_gpx: Читать частные GPS-треки
write_gpx: Загрузить GPS-треки
write_notes: Изменить заметки
oauth_clients:
edit: Редактировать
delete: Удалить
confirm_delete: Удалить это приложение?
- client_secret: Секрет клиента
+ client_id: ID клиента
+ client_secret: Тайна клиента
client_secret_warning: Обязательно сохраните этот секрет - он больше не будет
доступен
permissions: Разрешения
oauth2_authorized_applications:
index:
title: Мои авторизованные приложения
+ permissions: Разрешения
no_applications_html: Вы еще не авторизовали ни одно приложение %{oauth2}.
users:
new:
title: Регистрация
no_auto_account_create: К сожалению, сейчас мы не можем автоматически создать
для вас учётную запись.
- contact_support_html: Пожалуйста, свяжитесь с <a href="%{support}">вебмастером</a>
- с просьбой создать подобную учётную запись. Мы попробуем и ответим настолько
- быстро, насколько сможем.
+ contact_support_html: Пожалуйста, свяжитесь со <a href="%{support}">службой
+ поддержки</a> с просьбой создать подобную учётную запись. Мы попробуем и ответим
+ наÑ\81Ñ\82олÑ\8cко бÑ\8bÑ\81Ñ\82Ñ\80о, наÑ\81колÑ\8cко Ñ\81можем.
about:
header: Свободно редактируемая
html: |-
location: Konum
use_map_link: Haritayı Kullan
index:
- title: Kullanıcıların günlükleri
+ title: Kullanıcı Günlükleri
title_friends: Arkadaşların günlükleri
title_nearby: Yakındaki kullanıcıların günlükleri
user_title: '%{user} kullanıcısının günlüğü'
kontrol edin ya da tıkladığınız bağlantı hatalı olabilir.
diary_entry:
posted_by_html: '%{link_user} tarafından %{created} tarihinde %{language_link}
- olarak gönderildi.'
+ dilinde gönderildi.'
updated_at_html: En son %{updated} tarihinde güncellendi.
comment_link: Bu girdiyi yorumla
reply_link: Yazara mesaj gönder
railway: Tarihi Demiryolu
roman_road: Roma Yolu
ruins: Harabe
+ rune_stone: Rün Taşı
stone: Taş
tomb: Mezar
tower: Kule
password: 'Parola:'
openid_html: '%{logo} OpenID:'
remember: Beni hatırla
- lost password link: Parolanızı mı kaybettiniz?
+ lost password link: Parolanı mı unuttun?
login_button: Oturum aç
register now: Şimdi kaydol
with username: 'OpenStreetMap hesabınız var mı? Lütfen kullanıcı adı ve parolanızla
oturum açın:'
- with external: 'Alternatif olarak, bir üçüncü parti uygulaması kullanarak oturum
- açın:'
+ with external: 'Alternatif olarak bir üçüncü parti uygulaması kullanarak oturum
+ aç:'
new to osm: OpenStreetMap sitesinde yeni misiniz?
to make changes: OpenStreetMap verileri değiştirmek için bir hesabın olması
gerekir.
copyright_html: <span>©</span>OpenStreetMap<br>katkıda bulunanları
used_by_html: '%{name} binlerce web sitesi, mobil uygulama ve donanım cihazı
için harita verileri sağlar'
- lede_text: OpenStreetMap; tüm dünyada yollar, yollar, kafeler, tren istasyonları
- ve daha pek çok şey hakkında veri sağlayan ve koruyan bir haritalar topluluğu
- tarafından oluşturulmuştur.
+ lede_text: OpenStreetMap; tüm dünyada yollar, patikalar, kafeler, tren istasyonları
+ ve çok daha fazlası hakkında veri sağlayan ve bunları koruyan bir haritacılar
+ topluluğu tarafından oluşturulmuştur.
local_knowledge_title: Yerel Bilgi
local_knowledge_html: |-
OpenStreetMap, piyasa bilgisi üzerinde durmaktadır. Katkıda bulunanlar,
kullanılamaz.
desktop_html: Potlatch'ı <a href="https://www.systemed.net/potlatch/">Mac ve
Windows için masaüstü uygulamasını indirerek</a> kullanmaya devam edebilirsiniz.
- id_html: Alternatif olarak, varsayılan düzenleyicinizi, daha önce Potlatch'ın
+ id_html: Alternatif olarak varsayılan düzenleyicinizi, daha önce Potlatch'ın
yaptığı gibi web tarayıcınızda çalışan iD olarak ayarlayabilirsiniz. <a href="%{settings_url}">Kullanıcı
ayarlarınızı buradan değiştirin</a>.
sidebar:
display name description: Herkes tarafından görünecek bir kullanıcı adı. Bu
adı istediğin zaman 'tercihlerim' bölümünde değiştirebilirsin.
external auth: 'Üçüncü Taraf Kimlik Doğrulaması:'
- use external auth: 'Alternatif olarak, bir üçüncü parti uygulaması kullanarak
- oturum açın:'
+ use external auth: 'Alternatif olarak bir üçüncü parti uygulaması kullanarak
+ oturum aç:'
auth no password: Üçüncü taraf kimlik doğrulamasında bir parola gerekli değildir,
ancak bazı ek araçlar veya sunucu için yine de bir parola gerekebilir.
continue: Kaydol
nominatim_url: "https://nominatim.openstreetmap.org/"
# Default editor
default_editor: "id"
-# OAuth consumer key for the web site
-#oauth_key: ""
+# OAuth application for the web site
+#oauth_application: ""
# OAuth consumer key for iD
#id_key: ""
# Imagery to return in capabilities as blacklisted
# Construct a random token of a given length
def self.make_token(length = 30)
- chars = "abcdefghijklmnopqrtuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+ chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
token = ""
length.times do
"js-cookie": "^2.2.1",
"leaflet": "^1.6.0",
"leaflet.locatecontrol": "^0.74.0",
- "ohauth": "^1.0.0",
"qs": "^6.9.4"
},
"devDependencies": {
"</changeset></osm>"
put changeset_create_path, :params => xml, :headers => auth_header
- assert_response :success, "Creation of changeset did not return sucess status"
+ assert_response :success, "Creation of changeset did not return success status"
newid = @response.body.to_i
# check end time, should be an hour ahead of creation time
# upload it
post changeset_upload_path(changeset), :params => diff, :headers => auth_header
assert_response :bad_request,
- "shoudln't be able to upload too long a tag to changeset: #{@response.body}"
+ "shouldn't be able to upload too long a tag to changeset: #{@response.body}"
end
##
<node id='-7' visible='true' changeset='#{changeset_id}' lat='51.49560784152179' lon='-0.18694719410005425' />
<node id='-8' visible='true' changeset='#{changeset_id}' lat='51.49567389979617' lon='-0.1860289771788006' />
<node id='-9' visible='true' changeset='#{changeset_id}' lat='51.49543761398892' lon='-0.186820684213126' />
- <way id='-10' action='modiy' visible='true' changeset='#{changeset_id}'>
+ <way id='-10' action='modify' visible='true' changeset='#{changeset_id}'>
<nd ref='-1' />
<nd ref='-2' />
<nd ref='-3' />
@goodbbox = %w[-0.1,-0.1,0.1,0.1 51.1,-0.1,51.2,0
-0.1,%20-0.1,%200.1,%200.1 -0.1edcd,-0.1d,0.1,0.1 -0.1E,-0.1E,0.1S,0.1N S0.1,W0.1,N0.1,E0.1]
# That last item in the goodbbox really shouldn't be there, as the API should
- # reall reject it, however this is to test to see if the api changes.
+ # really reject it, however this is to test to see if the api changes.
end
##
print @request.to_yaml
print @response.body
end
- assert_response :success, "Expected scucess with the map call"
+ assert_response :success, "Expected success with the map call"
assert_select "osm[version='#{Settings.api_version}'][generator='#{Settings.generator}']", :count => 1 do
assert_select "bounds[minlon='#{format('%<lon>.7f', :lon => minlon)}']" \
"[minlat='#{format('%<lat>.7f', :lat => minlat)}']" \
end
def test_create_invalid_xml
- ## Only test public user here, as test_create should cover what's the forbiddens
+ ## Only test public user here, as test_create should cover what's the forbidden
## that would occur here
user = create(:user)
##
# updates the relation (XML) +rel+ and
# yields the new version of that relation into the block.
- # the parsed XML doc is retured.
+ # the parsed XML doc is returned.
def with_update(rel, headers)
rel_id = rel.find("//osm/relation").first["id"].to_i
put api_relation_path(:id => rel_id), :params => rel.to_s, :headers => headers
##
# updates the relation (XML) +rel+ via the diff-upload API and
# yields the new version of that relation into the block.
- # the parsed XML doc is retured.
+ # the parsed XML doc is returned.
def with_update_diff(rel, headers)
rel_id = rel.find("//osm/relation").first["id"].to_i
cs_id = rel.find("//osm/relation").first["changeset"].to_i
@goodbbox = %w[-0.1,-0.1,0.1,0.1 51.1,-0.1,51.2,0
-0.1,%20-0.1,%200.1,%200.1 -0.1edcd,-0.1d,0.1,0.1 -0.1E,-0.1E,0.1S,0.1N S0.1,W0.1,N0.1,E0.1]
# That last item in the goodbbox really shouldn't be there, as the API should
- # reall reject it, however this is to test to see if the api changes.
+ # really reject it, however this is to test to see if the api changes.
end
##
assert_response :success
end
- # Check an anoymous trace can't be specifically fetched by another user
+ # Check an anonymous trace can't be specifically fetched by another user
def test_show_anon
anon_trace_file = create(:trace, :visibility => "private")
ActionMailer::Base.deliveries.clear
end
- def test_make_friend_unkown_user
+ def test_make_friend_unknown_user
# Should error when a bogus user is specified
session_for(create(:user))
get make_friend_path(:display_name => "No Such User")
assert_nil Friendship.where(:befriender => user, :befriendee => friend).first
end
- def test_remove_friend_unkown_user
+ def test_remove_friend_unknown_user
# Should error when a bogus user is specified
session_for(create(:user))
get remove_friend_path(:display_name => "No Such User")
# Check that the index of traces is displayed
def test_index
user = create(:user)
- # The fourth test below is surpisingly sensitive to timestamp ordering when the timestamps are equal.
+ # The fourth test below is surprisingly sensitive to timestamp ordering when the timestamps are equal.
trace_a = create(:trace, :visibility => "public", :timestamp => 4.seconds.ago) do |trace|
create(:tracetag, :trace => trace, :tag => "London")
end
# Check the RSS feed
def test_rss
user = create(:user)
- # The fourth test below is surpisingly sensitive to timestamp ordering when the timestamps are equal.
+ # The fourth test below is surprisingly sensitive to timestamp ordering when the timestamps are equal.
trace_a = create(:trace, :visibility => "public", :timestamp => 4.seconds.ago) do |trace|
create(:tracetag, :trace => trace, :tag => "London")
end
assert_not UTF8.valid?("\xC2\xC2") # 2-byte multibyte identifier, followed by another one
assert_not UTF8.valid?("\x4a\x82") # plain ASCII, followed by multibyte continuation
assert_not UTF8.valid?("\x82\x82") # multibyte continuations without multibyte identifier
- assert_not UTF8.valid?("\xe1\x82\x4a") # three-byte identifier, contination and (incorrectly) plain ASCII
+ assert_not UTF8.valid?("\xe1\x82\x4a") # three-byte identifier, continuation and (incorrectly) plain ASCII
end
end
"\xC2\xC2", # 2-byte multibyte identifier, followed by another one
"\x4a\x82", # plain ASCII, followed by multibyte continuation
"\x82\x82", # multibyte continuations without multibyte identifier
- "\xe1\x82\x4a"] # three-byte identifier, contination and (incorrectly) plain ASCII
+ "\xe1\x82\x4a"] # three-byte identifier, continuation and (incorrectly) plain ASCII
invalid_sequences.each do |char|
# create a message and save to the database
msg = make_message(char, 1)
assert tag.errors[:relation].any?
end
- def test_uniquness
+ def test_uniqueness
existing = create(:relation_tag)
tag = RelationTag.new
tag.relation_id = existing.relation_id
def test_display_name_valid
# Due to sanitisation in the view some of these that you might not
- # expact are allowed
+ # expect are allowed
# However, would they affect the xml planet dumps?
ok = ["Name", "'me", "he\"", "<hr>", "*ho", "\"help\"@",
"vergrößern", "ルシステムにも対応します", "輕觸搖晃的遊戲", "space space"]
# User doesn't exist
visit issues_path
- fill_in "search_by_user", :with => "Nonexistant User"
+ fill_in "search_by_user", :with => "Nonexistent User"
click_on "Search"
assert page.has_content?(I18n.t("issues.index.user_not_found"))
assert page.has_content?(I18n.t("issues.index.issues_not_found"))
##
# Used to check that the error header and the forbidden responses are given
- # when the owner of the changset has their data not marked as public
+ # when the owner of the changeset has their data not marked as public
def assert_require_public_data(msg = "Shouldn't be able to use API when the user's data is not public")
assert_response :forbidden, msg
assert_equal("You must make your edits public to upload new data", @response.headers["Error"], "Wrong error message")
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@eslint/eslintrc@^0.4.2":
- version "0.4.2"
- resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
- integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==
+"@eslint/eslintrc@^0.4.3":
+ version "0.4.3"
+ resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
+ integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
dependencies:
ajv "^6.12.4"
debug "^4.1.1"
integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
eslint@^7.3.1:
- version "7.30.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.30.0.tgz#6d34ab51aaa56112fd97166226c9a97f505474f8"
- integrity sha512-VLqz80i3as3NdloY44BQSJpFw534L9Oh+6zJOUaViV4JPd+DaHwutqP7tcpkW3YiXbK6s05RZl7yl7cQn+lijg==
+ version "7.31.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.31.0.tgz#f972b539424bf2604907a970860732c5d99d3aca"
+ integrity sha512-vafgJpSh2ia8tnTkNUkwxGmnumgckLh5aAbLa1xRmIn9+owi8qBNGKL+B881kNKNTy7FFqTEkpNkUvmw0n6PkA==
dependencies:
"@babel/code-frame" "7.12.11"
- "@eslint/eslintrc" "^0.4.2"
+ "@eslint/eslintrc" "^0.4.3"
"@humanwhocodes/config-array" "^0.5.0"
ajv "^6.10.0"
chalk "^4.0.0"
argparse "^1.0.7"
esprima "^4.0.0"
-jshashes@~1.0.8:
- version "1.0.8"
- resolved "https://registry.yarnpkg.com/jshashes/-/jshashes-1.0.8.tgz#f60d837428383abf73ab022e1542e6614bd75514"
- integrity sha512-btmQZ/w1rj8Lb6nEwvhjM7nBYoj54yaEFo2PWh3RkxZ8qNwuvOxvQYN/JxVuwoMmdIluL+XwYVJ+pEEZoSYybQ==
-
json-schema-traverse@^0.4.1:
version "0.4.1"
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a"
integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==
-ohauth@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/ohauth/-/ohauth-1.0.1.tgz#a5d4ab8e5390bb1cad68a58cc9c58630173c02f2"
- integrity sha512-R9ZUN3+FVCwzeOOHCJpzA9jw/byRxp5O9X06mTL6Sp/LIQn/rLrMv6cwYctX+hoIKzRUsalGJXZ1kG5wBmSskQ==
- dependencies:
- jshashes "~1.0.8"
-
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"