source "https://rubygems.org"
# Require rails
-gem "rails", "6.0.3"
+gem "rails", "6.0.3.1"
# Require things which have moved to gems in ruby 1.9
gem "bigdecimal", "~> 1.1.0", :platforms => :ruby_19
SystemTimer (1.2.3)
aasm (5.0.8)
concurrent-ruby (~> 1.0)
- actioncable (6.0.3)
- actionpack (= 6.0.3)
+ actioncable (6.0.3.1)
+ actionpack (= 6.0.3.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
- actionmailbox (6.0.3)
- actionpack (= 6.0.3)
- activejob (= 6.0.3)
- activerecord (= 6.0.3)
- activestorage (= 6.0.3)
- activesupport (= 6.0.3)
+ actionmailbox (6.0.3.1)
+ actionpack (= 6.0.3.1)
+ activejob (= 6.0.3.1)
+ activerecord (= 6.0.3.1)
+ activestorage (= 6.0.3.1)
+ activesupport (= 6.0.3.1)
mail (>= 2.7.1)
- actionmailer (6.0.3)
- actionpack (= 6.0.3)
- actionview (= 6.0.3)
- activejob (= 6.0.3)
+ actionmailer (6.0.3.1)
+ actionpack (= 6.0.3.1)
+ actionview (= 6.0.3.1)
+ activejob (= 6.0.3.1)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0)
- actionpack (6.0.3)
- actionview (= 6.0.3)
- activesupport (= 6.0.3)
+ actionpack (6.0.3.1)
+ actionview (= 6.0.3.1)
+ activesupport (= 6.0.3.1)
rack (~> 2.0, >= 2.0.8)
rack-test (>= 0.6.3)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.2.0)
actionpack-page_caching (1.2.2)
actionpack (>= 5.0.0)
- actiontext (6.0.3)
- actionpack (= 6.0.3)
- activerecord (= 6.0.3)
- activestorage (= 6.0.3)
- activesupport (= 6.0.3)
+ actiontext (6.0.3.1)
+ actionpack (= 6.0.3.1)
+ activerecord (= 6.0.3.1)
+ activestorage (= 6.0.3.1)
+ activesupport (= 6.0.3.1)
nokogiri (>= 1.8.5)
- actionview (6.0.3)
- activesupport (= 6.0.3)
+ actionview (6.0.3.1)
+ activesupport (= 6.0.3.1)
builder (~> 3.1)
erubi (~> 1.4)
rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.1, >= 1.2.0)
active_record_union (1.3.0)
activerecord (>= 4.0)
- activejob (6.0.3)
- activesupport (= 6.0.3)
+ activejob (6.0.3.1)
+ activesupport (= 6.0.3.1)
globalid (>= 0.3.6)
- activemodel (6.0.3)
- activesupport (= 6.0.3)
- activerecord (6.0.3)
- activemodel (= 6.0.3)
- activesupport (= 6.0.3)
- activerecord-import (1.0.4)
+ activemodel (6.0.3.1)
+ activesupport (= 6.0.3.1)
+ activerecord (6.0.3.1)
+ activemodel (= 6.0.3.1)
+ activesupport (= 6.0.3.1)
+ activerecord-import (1.0.5)
activerecord (>= 3.2)
- activestorage (6.0.3)
- actionpack (= 6.0.3)
- activejob (= 6.0.3)
- activerecord (= 6.0.3)
+ activestorage (6.0.3.1)
+ actionpack (= 6.0.3.1)
+ activejob (= 6.0.3.1)
+ activerecord (= 6.0.3.1)
marcel (~> 0.3.1)
- activesupport (6.0.3)
+ activesupport (6.0.3.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (>= 0.7, < 2)
minitest (~> 5.1)
autoprefixer-rails (9.7.6)
execjs
aws-eventstream (1.1.0)
- aws-partitions (1.310.0)
- aws-sdk-core (3.94.1)
+ aws-partitions (1.321.0)
+ aws-sdk-core (3.96.1)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0)
aws-sigv4 (~> 1.1)
jmespath (~> 1.0)
- aws-sdk-kms (1.30.0)
+ aws-sdk-kms (1.31.0)
aws-sdk-core (~> 3, >= 3.71.0)
aws-sigv4 (~> 1.1)
- aws-sdk-s3 (1.63.1)
- aws-sdk-core (~> 3, >= 3.83.0)
+ aws-sdk-s3 (1.66.0)
+ aws-sdk-core (~> 3, >= 3.96.1)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1)
aws-sigv4 (1.1.3)
aws-eventstream (~> 1.0, >= 1.0.2)
- better_errors (2.7.0)
+ better_errors (2.7.1)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
rack (>= 0.9.0)
- better_html (1.0.14)
+ better_html (1.0.15)
actionview (>= 4.0)
activesupport (>= 4.0)
ast (~> 2.0)
autoprefixer-rails (>= 9.1.0)
popper_js (>= 1.14.3, < 2)
sassc-rails (>= 2.0.0)
- browser (4.0.0)
+ browser (4.1.0)
builder (3.2.4)
bzip2-ffi (1.0.0)
ffi (~> 1.0)
cancancan (3.1.0)
canonical-rails (0.2.8)
rails (>= 4.1, < 6.1)
- capybara (3.32.1)
+ capybara (3.32.2)
addressable
mini_mime (>= 0.1.3)
nokogiri (~> 1.8)
xpath (~> 3.2)
childprocess (3.0.0)
coderay (1.1.2)
- composite_primary_keys (12.0.1)
+ composite_primary_keys (12.0.2)
activerecord (~> 6.0.0)
concurrent-ruby (1.1.6)
config (2.2.1)
concurrent-ruby (~> 1.0)
dry-core (~> 0.2)
dry-equalizer (~> 0.2)
- dry-schema (1.5.0)
+ dry-schema (1.5.1)
concurrent-ruby (~> 1.0)
dry-configurable (~> 0.8, >= 0.8.3)
dry-core (~> 0.4)
dry-initializer (~> 3.0)
dry-schema (~> 1.5)
dynamic_form (1.1.4)
- erb_lint (0.0.32)
+ erb_lint (0.0.33)
activesupport
better_html (~> 1.0.7)
html_tokenizer
sprockets
image_size (2.0.2)
in_threads (1.5.4)
- jaro_winkler (1.5.4)
jbuilder (2.10.0)
activesupport (>= 5.0.0)
jmespath (1.4.0)
- jquery-rails (4.3.5)
+ jquery-rails (4.4.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
kgio (2.11.3)
kramdown (2.2.1)
rexml
- libxml-ruby (3.1.0)
+ libxml-ruby (3.2.0)
listen (3.2.1)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
mini_magick (4.10.1)
mini_mime (1.0.2)
mini_portile2 (2.4.0)
- minitest (5.14.0)
+ minitest (5.14.1)
msgpack (1.3.3)
multi_json (1.14.1)
multi_xml (0.6.0)
omniauth-oauth2 (~> 1.4)
openstreetmap-deadlock_retry (1.3.0)
parallel (1.19.1)
- parser (2.7.1.2)
+ parser (2.7.1.3)
ast (~> 2.4.0)
pg (1.2.3)
popper_js (1.16.0)
progress (3.5.2)
psych (3.1.0)
- public_suffix (4.0.4)
- puma (3.12.4)
+ public_suffix (4.0.5)
+ puma (3.12.6)
quad_tile (1.0.1)
r2 (0.2.7)
rack (2.2.2)
rack-test (1.1.0)
rack (>= 1.0, < 3)
rack-uri_sanitizer (0.0.2)
- rails (6.0.3)
- actioncable (= 6.0.3)
- actionmailbox (= 6.0.3)
- actionmailer (= 6.0.3)
- actionpack (= 6.0.3)
- actiontext (= 6.0.3)
- actionview (= 6.0.3)
- activejob (= 6.0.3)
- activemodel (= 6.0.3)
- activerecord (= 6.0.3)
- activestorage (= 6.0.3)
- activesupport (= 6.0.3)
+ rails (6.0.3.1)
+ actioncable (= 6.0.3.1)
+ actionmailbox (= 6.0.3.1)
+ actionmailer (= 6.0.3.1)
+ actionpack (= 6.0.3.1)
+ actiontext (= 6.0.3.1)
+ actionview (= 6.0.3.1)
+ activejob (= 6.0.3.1)
+ activemodel (= 6.0.3.1)
+ activerecord (= 6.0.3.1)
+ activestorage (= 6.0.3.1)
+ activesupport (= 6.0.3.1)
bundler (>= 1.3.0)
- railties (= 6.0.3)
+ railties (= 6.0.3.1)
sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.4)
actionpack (>= 5.0.1.x)
rails-i18n (4.0.2)
i18n (~> 0.6)
rails (>= 4.0)
- railties (6.0.3)
- actionpack (= 6.0.3)
- activesupport (= 6.0.3)
+ railties (6.0.3.1)
+ actionpack (= 6.0.3.1)
+ activesupport (= 6.0.3.1)
method_source
rake (>= 0.8.7)
thor (>= 0.20.3, < 2.0)
rinku (2.0.6)
rotp (6.0.0)
addressable (~> 2.7)
- rubocop (0.82.0)
- jaro_winkler (~> 1.5.1)
+ rubocop (0.84.0)
parallel (~> 1.10)
parser (>= 2.7.0.1)
rainbow (>= 2.2.2, < 4.0)
rexml
+ rubocop-ast (>= 0.0.3)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 1.4.0, < 2.0)
+ rubocop-ast (0.0.3)
+ parser (>= 2.7.0.1)
rubocop-minitest (0.9.0)
rubocop (>= 0.74)
- rubocop-performance (1.5.2)
+ rubocop-performance (1.6.0)
rubocop (>= 0.71.0)
rubocop-rails (2.5.2)
activesupport
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (>= 3.0.0)
- strong_migrations (0.6.4)
+ strong_migrations (0.6.8)
activerecord (>= 5)
sync (0.5.0)
term-ansicolor (1.7.1)
thor (1.0.1)
thread_safe (0.3.6)
tilt (2.0.10)
- tins (1.24.1)
+ tins (1.25.0)
sync
tzinfo (1.2.7)
thread_safe (~> 0.1)
addressable (>= 2.3.6)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
- websocket-driver (0.7.1)
+ websocket-driver (0.7.2)
websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.4)
xpath (3.2.0)
r2 (~> 0.2.7)
rack-cors
rack-uri_sanitizer
- rails (= 6.0.3)
+ rails (= 6.0.3.1)
rails-controller-testing
rails-i18n (~> 4.0.0)
rinku (>= 2.0.6)
around_action :better_errors_allow_inline, :if => proc { Rails.env.development? }
attr_accessor :current_user
+
helper_method :current_user
private
def user_avatar_file(user)
avatar = user&.avatar
if avatar&.attached?
- avatar.variant(:resize => "50x50>").blob.download
+ if avatar.variable?
+ image = avatar.variant(:resize => "50x50>").processed
+ image.service.download(image.key)
+ else
+ avatar.blob.download
+ end
else
File.read(Rails.root.join("app/assets/images/avatar_small.png"))
end
create:
upload_trace: Адаслаць GPS-след
trace_uploaded: Ваш GPX-файл быў адасланы і чакае ўстаўкі ў базу дадзеных. Гэта
- звычайна робіцца не больш за паўгадзіны. Вы атрымаеце працврджанне аб заканчэнні
- працэсу па электроннай пошце
+ звычайна робіцца не больш за паўгадзіны. Вы атрымаеце працверджанне аб заканчэнні
+ працэсу па электроннай пошце.
upload_failed: На жаль, загрузка GPX не атрымалася. Адміністратар быў праінфармаваны
пра памылку. Калі ласка, паспрабуйце яшчэ раз
traces_waiting: У вас %{count} след у чарзе. Калі ласка, пачакайце, пакуль яны
no_such_user:
title: Няма такога карыстальніка
heading: Карыстальнік %{user} не існуе
- body: Прабачце, карыстальнік %{user} не знойдзены. Please check your spelling,
- Ð\9aалÑ\96 лаÑ\81ка, пÑ\80авеÑ\80Ñ\86е Ñ\81вой пÑ\80авапÑ\96Ñ\81, Ñ\86Ñ\96, магÑ\87Ñ\8bма, вам далÑ\96 нÑ\8fпÑ\80авÑ\96лÑ\8cнÑ\83Ñ\8e Ñ\81паÑ\81Ñ\8bлкÑ\83.
+ body: Прабачце, карыстальнік %{user} не знойдзены. Калі ласка, праверце свой
+ правапіс, ці, магчыма, вам далі няправільную спасылку.
deleted: выдалены
show:
my diary: Мой дзённік
# Author: Fulup
# Author: Gwendal
# Author: Gwenn-Ael
+# Author: Iriep
# Author: Macofe
# Author: Nemo bis
# Author: Shirayuki
create: Krouiñ ar skridaozadenn
update: Enrollañ ar skridaozadenn
trace:
- create: Enporzhiañ
+ create: Pellgas
update: Enrollañ ar c'hemmoù
user_block:
create: Krouiñ ur stankadur
activerecord:
errors:
messages:
- invalid_email_address: Ne hañval ket bezañ ur chomlec'h postel reizh.
+ invalid_email_address: ne ziskouez ket bezañ ur chomlec'h postel mat
email_address_not_routable: n'haller ket routañ
models:
- acl: Roll kontroll moned
- changeset: Strollad kemmoù
- changeset_tag: Tikedenn ar strollad kemmoù
+ acl: Listenn kontroll moned
+ changeset: Hollad cheñchamantoù
+ changeset_tag: Tikedenn an hollad cheñchamantoù
country: Bro
- diary_comment: Addispleg eus an deizlevr
+ diary_comment: Evezhiadenn an deizlevr
diary_entry: Enmoned en deizlevr
friend: Mignon
issue: Kudenn
message: Kemennadenn
node: Skoulm
node_tag: Tikedenn ar skoulm
- notifier: Kemenn
+ notifier: Kemenner
old_node: Skoulm kozh
old_node_tag: Tikedenn ar skoulm kozh
old_relation: Darempred kozh
- old_relation_member: Ezel darempred kozh
+ old_relation_member: Ezel an darempred kozh
old_relation_tag: Tikedenn an darempred kozh
old_way: Hent kozh
old_way_node: Skoulm an hent kozh
relation: Darempred
relation_member: Ezel an darempred
relation_tag: Tikedenn an darempred
- report: Titourañ
+ report: Danevell
session: Dalc'h
trace: Roud
tracepoint: Poent eus ar roud
tracetag: Tikedenn ar roud
user: Implijer
- user_preference: Penndibaboù Implijer
+ user_preference: Arventennoù Implijer
user_token: Jedouer an implijer
way: Hent
- way_node: Skoulm eus an hent
+ way_node: Skoulm an hent
way_tag: Tikedenn an hent
attributes:
diary_comment:
diary_entry:
user: Implijer
title: Danvez
- latitude: Ledred
+ latitude: Lec'hed
longitude: Hedred
language: Yezh
friend:
visible: Gwelus
name: Anv
size: Ment
- latitude: Ledred
+ latitude: Lec'hed
longitude: Hedred
public: Foran
description: Deskrivadur
datetime:
distance_in_words_ago:
about_x_hours:
- one: war-dro un eurvezh zo zo
- other: war-dro %{count} eurvezh zo
+ one: war-dro un eurvezh 'zo 'zo
+ other: war-dro %{count} eurvezh 'zo
about_x_months:
- one: war-dro miz zo zo
- other: war-dro %{count} miz zo
+ one: war-dro miz 'zo 'zo
+ other: war-dro %{count} miz 'zo
about_x_years:
- one: bloaz zo bennak
- two: war-dro %{count} vloaz zo
- few: war-dro %{count} bloaz zo
- many: war-dro %{count} bloaz zo
- other: war-dro %{count} bloaz zo
+ one: bloaz 'zo bennak
+ two: war-dro %{count} 'vloaz zo
+ few: war-dro %{count} bloaz 'zo
+ many: war-dro %{count} bloaz 'zo
+ other: war-dro %{count} bloaz 'zo
almost_x_years:
- one: bloaz zo bennak
- two: war-dro %{count} vloaz zo
- few: war-dro %{count} bloaz zo
- many: war-dro %{count} bloaz zo
- other: war-dro %{count} bloaz zo
- half_a_minute: un hanter vunutenn zo
+ one: bloaz 'zo bennak
+ two: war-dro %{count} vloaz 'zo
+ few: war-dro %{count} bloaz 'zo
+ many: war-dro %{count} bloaz 'zo
+ other: war-dro %{count} bloaz 'zo
+ half_a_minute: un hanter vunutenn 'zo
less_than_x_seconds:
- one: nebeutoc'h eget un eilenn zo
- two: nebeutoc'h eget %{count} eilenn zo
- few: nebeutoc'h eget %{count} eilenn zo
- many: nebeutoc'h eget %{count} eilenn zo
- other: nebeutoc'h eget %{count} eilenn zo
+ one: nebeutoc'h eget un eilenn 'zo
+ two: nebeutoc'h eget %{count} eilenn 'zo
+ few: nebeutoc'h eget %{count} eilenn 'zo
+ many: nebeutoc'h eget %{count} eilenn 'zo
+ other: nebeutoc'h eget %{count} eilenn 'zo
less_than_x_minutes:
- one: nebeutoc'h eget un nunutenn zo
- two: nebeutoc'h eget %{count} vunutenn zo
- few: nebeutoc'h eget %{count} munutenn zo
- many: nebeutoc'h eget %{count} munutenn zo
- other: nebeutoc'h eget %{count} munutenn zo
+ one: nebeutoc'h eget un nunutenn 'zo
+ two: nebeutoc'h eget %{count} vunutenn 'zo
+ few: nebeutoc'h eget %{count} munutenn 'zo
+ many: nebeutoc'h eget %{count} munutenn 'zo
+ other: nebeutoc'h eget %{count} munutenn 'zo
over_x_years:
- one: ouzhpenn bloaz zo
- two: ouzhpenn %{count} vloaz zo
- few: ouzhpenn %{count} bloaz zo
- many: ouzhpenn %{count} bloaz zo
- other: ouzhpenn %{count} bloaz zo
+ one: ouzhpenn bloaz 'zo
+ two: ouzhpenn %{count} vloaz 'zo
+ few: ouzhpenn %{count} bloaz 'zo
+ many: ouzhpenn %{count} bloaz 'zo
+ other: ouzhpenn %{count} bloaz 'zo
x_seconds:
- one: un eilenn zo
- two: '%{count} eilenn zo'
- few: '%{count} eilenn zo'
- many: '%{count} eilenn zo'
- other: '%{count} eilenn zo'
+ one: un eilenn 'zo
+ two: '%{count} eilenn ''zo'
+ few: '%{count} eilenn ''zo'
+ many: '%{count} eilenn ''zo'
+ other: '%{count} eilenn ''zo'
x_minutes:
- one: ur vunutenn zo
- two: '%{count} vunutenn zo'
- few: '%{count} munutenn zo'
- many: '%{count} munutenn zo'
- other: '%{count} munutenn zo'
+ one: ur vunutenn 'zo
+ two: '%{count} vunutenn ''zo'
+ few: '%{count} munutenn ''zo'
+ many: '%{count} munutenn ''zo'
+ other: '%{count} munutenn ''zo'
x_days:
- one: un deiz zo
- two: '%{count} zeiz zo'
- few: '%{count} deiz zo'
- many: '%{count} deiz zo'
- other: '%{count} deiz zo'
+ one: un deiz 'zo
+ two: '%{count} zeiz ''zo'
+ few: '%{count} deiz ''zo'
+ many: '%{count} deiz ''zo'
+ other: '%{count} deiz ''zo'
x_months:
- one: miz zo
- two: '%{count} viz zo'
- few: '%{count} miz zo'
- many: '%{count} miz zo'
- other: '%{count} miz zo'
+ one: miz 'zo
+ two: '%{count} viz ''zo'
+ few: '%{count} miz ''zo'
+ many: '%{count} miz ''zo'
+ other: '%{count} miz ''zo'
x_years:
- one: bloaz zo
- two: '%{count} vloaz zo'
- few: '%{count} bloaz zo'
- many: '%{count} bloaz zo'
- other: '%{count} bloaz zo'
+ one: bloaz 'zo
+ two: '%{count} vloaz ''zo'
+ few: '%{count} bloaz ''zo'
+ many: '%{count} bloaz ''zo'
+ other: '%{count} bloaz ''zo'
editor:
default: Dre ziouer (%{name} er mare-mañ)
potlatch:
api:
notes:
comment:
- opened_at_html: Bet krouet %{when}zo
+ opened_at_html: Bet krouet %{when} 'zo
opened_at_by_html: Bet krouet %{when} gant %{user}
commented_at_html: Hizivaet %{when}
commented_at_by_html: Hizivaet %{when} gant %{user}
closed_at_html: Diskoulmet %{when}
closed_at_by_html: Diskoulmet %{when} gant %{user}
- reopened_at_html: adweredekaet %{when}
- reopened_at_by_html: Adweredekaet %{when} gant %{user}
+ reopened_at_html: Adenaouet %{when}
+ reopened_at_by_html: Adenaouet %{when} gant %{user}
rss:
title: Notennoù OpenStreetMap
description_area: Ur roll notennoù, addispleget, gant evezhiadennoù pe serret
opened: notenn nevez (tost da %{place})
commented: evezhiadenn nevez (tost da %{place})
closed: notenn serret (tost da %{place})
- reopened: notenn adweredekaet (tost da %{place})
+ reopened: notenn adenaouet (tost da %{place})
entry:
comment: Evezhiadenn
full: Notenn glok
edited_by_html: Aozet <abbr title='%{title}'>%{time}</abbr> gant %{user}
closed_by_html: Serret <abbr title='%{title}'>%{time}</abbr> gant %{user}
version: Stumm
- in_changeset: Strollad kemmoù
+ in_changeset: Hollad cheñchamantoù
anonymous: dizanv
- no_comment: (addispleg ebet)
+ no_comment: (evezhiadenn ebet)
part_of: Lodenn eus
download_xml: Pellgargañ XML
view_history: Gwelet an istor
view_details: ↓Gwelet ar munudoù
- location: 'Lec''h :'
+ location: 'Lec''hiadur:'
changeset:
- title: 'Strollad kemmoù : %{id}'
+ title: 'Hollad cheñchamantoù: %{id}'
belongs_to: Aozer
node: Skoulmoù (%{count})
node_paginated: Skoulmoù (%{x}-%{y} diwar %{count})
way_paginated: Hentoù (%{x}-%{y} diwar %{count})
relation: Darempredoù (%{count})
relation_paginated: Darempredoù (%{x}-%{y} diwar %{count})
- comment: Addisplegoù(%{count})
- hidden_commented_by: Addispleg kuzhet gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
- commented_by: Addispleg gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
- changesetxml: Strollad kemmoù XML
- osmchangexml: osmChange XML
+ comment: Evezhiadennoù(%{count})
+ hidden_commented_by: Evezhiadenn kuzhet gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
+ commented_by: Evezhiadenn gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
+ changesetxml: Hollad cheñchamantoù XML
+ osmchangexml: Cheñchoùosm XML
feed:
- title: Strollad kemmoù %{id}
- title_comment: Strollad kemmoù %{id} - %{comment}
- join_discussion: Kevreañ evit kaozeal
+ title: Hollad cheñchamantoù %{id}
+ title_comment: Hollad cheñchamantoù %{id} - %{comment}
+ join_discussion: Kevreit evit mont er gaozeadenn
discussion: Kaozeadenn
- still_open: Strollad kemmoù digor - an diviz a zigoro ur wech ma vo serret ar
- strollad kemmoù.
+ still_open: Hollad cheñchamantoù digor - an diviz a zigoro ur wech ma vo serret
+ an hollad cheñchamantoù.
node:
- title_html: 'Skoulm : %{name}'
- history_title_html: 'Istor ar skoulm : %{name}'
+ title_html: 'Skoulm: %{name}'
+ history_title_html: 'Istor ar skoulm: %{name}'
way:
- title_html: 'Hent : %{name}'
- history_title_html: 'Istor an hent : %{name}'
+ title_html: 'Hent: %{name}'
+ history_title_html: 'Istor an hent: %{name}'
nodes: Skoulmoù
also_part_of_html:
one: lodenn eus an hent %{related_ways}
other: lodenn eus an hentoù %{related_ways}
relation:
- title_html: 'Darempred : %{name}'
- history_title_html: 'Istor an darempred : %{name}'
+ title_html: 'Darempred: %{name}'
+ history_title_html: 'Istor an darempred: %{name}'
members: Izili
relation_member:
entry_role_html: '%{type} %{name} evel %{role}'
entry_html: Darempred %{relation_name}
entry_role_html: Darempred %{relation_name} (evel %{relation_role})
not_found:
- sorry: 'Ho tigarez, an %{type} #%{id} n''eo ket bet kavet.'
+ sorry: 'Ho tigarez, n''heller ket kavout %{type} #%{id}.'
type:
node: skoulm
way: hent
relation: darempred
- changeset: strollad kemmoù
+ changeset: hollad cheñchamantoù
note: notenn
timeout:
sorry: Digarezit, ar roadennoù evit ar seurt %{type} ha gant an id %{id} a
node: skoulm
way: hent
relation: darempred
- changeset: strollad kemmoù
+ changeset: hollad cheñchamantoù
note: notenn
redacted:
redaction: ↓Aozañ %{id}
message_html: ↓Stumm %{version} eus an %{type}-mañ na c'hall ket bezañ diskouezet
- evel m"eo bet aozet. Sellit ouzh %{redaction_link} evit gouzout hiroc'h, mar
+ evel m'eo bet aozet. Sellit ouzh %{redaction_link} evit gouzout hiroc'h, mar
plij.
type:
node: skoulm
relation: darempred
start_rjs:
feature_warning: Kargañ %{num_features} a elfennoù a ray d'ho merdeer bezañ
- gorrek. Ha sur oc'h e fell deoc'h dikwel ar roadenoù-se ?
+ gorrek. Ha sur oc'h e fell deoc'h diskwel ar roadennoù-se ?
load_data: Kargañ ar roadennoù
loading: O kargañ...
tag_details:
telephone_link: Gervel %{phone_number}
colour_preview: Rakwel al liv %{colour_value}
note:
- title: 'Notenn : %{id}'
+ title: 'Notenn: %{id}'
new_note: Notenn nevez
description: Deskrivadur
- open_title: 'Notenn n''eo ket diskoulmet : %{note_name}'
- closed_title: 'Notenn diskoulmet : %{note_name}'
+ open_title: 'Neket bet diskoulmet an notenn #%{note_name}'
+ closed_title: 'Notenn diskoulmet #%{note_name}'
hidden_title: 'Notenn kuzhet #%{note_name}'
- opened_by: Krouet gant %{user} <abbr title='%{exact_time}'>%{when} zo</abbr>
+ opened_by: Krouet gant %{user} <abbr title='%{exact_time}'>%{when} 'zo</abbr>
opened_by_anonymous: Krouet gant un den dianav <abbr title='%{exact_time}'>%{when}
- zo</abbr>
- commented_by: Addispleg gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
- commented_by_anonymous: Addispleg gant un den dianv <abbr title='%{exact_time}'>%{when}</abbr>
- closed_by: Diskoulmet gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
- closed_by_anonymous: Diskoulmet gant un den dianv <abbr title='%{exact_time}'>%{when}</abbr>
- reopened_by: Adweredekaet gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
- reopened_by_anonymous: Adweredekaet gant un den dianv <abbr title='%{exact_time}'>%{when}</abbr>
- hidden_by: Kuzhet gant %{user} <abbr title='%{exact_time}'>%{when}</abbr>
- report: Disklêriañ an notenn-mañ
+ 'zo</abbr>
+ commented_by: Evezhiadenn gant %{user} <abbr title='%{exact_time}'>%{when} 'zo</abbr>
+ commented_by_anonymous: Evezhiadenn gant un den dizanv <abbr title='%{exact_time}'>%{when}
+ 'zo</abbr>
+ closed_by: Diskoulmet gant %{user} <abbr title='%{exact_time}'>%{when} 'zo</abbr>
+ closed_by_anonymous: Diskoulmet gant un den dizanv <abbr title='%{exact_time}'>%{when}
+ 'zo</abbr>
+ reopened_by: Adenaouet gant %{user} <abbr title='%{exact_time}'>%{when} 'zo</abbr>
+ reopened_by_anonymous: Adenaouet gant un den dizanv <abbr title='%{exact_time}'>%{when}
+ 'zo</abbr>
+ hidden_by: Kuzhet gant %{user} <abbr title='%{exact_time}'>%{when} 'zo</abbr>
+ report: Signaliñ an notenn-mañ
query:
title: Arc'hweladurioù enklask
introduction: Klikit war ar gartenn evit kavout arc'hweladurioù e-kichen.
nearby: Arc'hweladurioù e-kichen
- enclosing: Arc'hweladurioù stag
+ enclosing: Arc'hweladurioù enklozañ
changesets:
changeset_paging_nav:
- showing_page: Pajenn%{page}
+ showing_page: Pajenn %{page}
next: War-lerc'h »
previous: « Kent
changeset:
anonymous: Dizanv
- no_edits: (kemm ebet)
- view_changeset_details: Gwelet munudoù ar strollad kemmoù
+ no_edits: (aozadenn ebet)
+ view_changeset_details: Gwelet munudoù an hollad cheñchamantoù
changesets:
id: ID
- saved_at: Enrollet da
+ saved_at: Enrollet an/ar
user: Implijer
- comment: Addispleg
+ comment: Evezhiadenn
area: Takad
index:
- title: Strollad kemmoù
- title_user: Strolladoù kemmoù gant %{user}
- title_friend: Strollad kemmoù degaset gant ma mignoned
- title_nearby: Strollad kemmoù deuet gant implijerien a-dost
- empty: N'eus ket kavet strollad kemmoù ebet.
- empty_area: Strollad kemmoù ebet en takad-mañ.
- empty_user: Strollad kemmoù ebet gant an implijer-mañ.
- no_more: N'eus ket bet kavet strolladoù kemmoù all.
- no_more_area: Strollad kemmoù all ebet ken en takad-mañ.
- no_more_user: Strollad kemmoù ebet all ken gant an implijer-mañ.
+ title: Hollad cheñchamantoù
+ title_user: Hollad cheñchamantoù %{user}
+ title_friend: Hollad cheñchamantoù degaset gant ma mignoned
+ title_nearby: Hollad cheñchamantoù graet gant implijerien a-dost
+ empty: N'eus bet kavet hollad cheñchamant ebet.
+ empty_area: Hollad cheñchamant ebet en takad-mañ.
+ empty_user: Hollad cheñchamant ebet gant an implijer-mañ.
+ no_more: N'eus bet kavet hollad cheñchamantoù ouzhpenn.
+ no_more_area: Hollad cheñchamant ouzhpenn ebet ken en takad-mañ.
+ no_more_user: Hollad cheñchamant ouzhpenn ebet ken gant an implijer-mañ.
load_more: Kargañ muioc'h
timeout:
sorry: Ho tigarez, re hir eo adtapout ar roll cheñchamantoù hoc'h eus goulennet.
changeset_comments:
comment:
- comment: 'Addispleg nevez diwar-benn ar strollad kemmoù #%{changeset_id} dre
- %{author}'
+ comment: 'Evezhiadenn nevez diwar-benn an hollad cheñchamantoù #%{changeset_id}
+ gant %{author}'
commented_at_by_html: Hizivaet %{when} gant %{user}
comments:
- comment: Addispleg nevez war ar strollad kemmoù %{changeset_id} gant %{author}
+ comment: Evezhiadenn nevez war an hollad cheñchamantoù %{changeset_id} gant
+ %{author}
index:
- title_all: Kaozeal diwar-benn an holl gemmoù degaset en OpenStreetMap
- title_particular: 'Kaoz diwar-benn an holl gemmoù #%{changeset_id}degaset en
- OpenStreetMap'
+ title_all: Kaozeadenn hollad cheñchamantoù OpenStreetMap
+ title_particular: 'Kaozeadenn hollad cheñchamantoù #%{changeset_id} OpenStreetMap'
timeout:
- sorry: Ho tigarez, re hir eo adtapout ar roll evezhiadennoù hoc'h eus goulennet.
+ sorry: Ho tigarez, re hir eo adtapout ar roll evezhiadennoù ho peus goulennet.
diary_entries:
new:
title: Enmoned nevez en deizlevr
form:
- subject: 'Danvez :'
- body: 'Korf :'
- language: 'Yezh :'
- location: 'Lec''hiadur :'
- latitude: 'Ledred :'
- longitude: 'Hedred :'
+ subject: 'Danvez:'
+ body: 'Korf:'
+ language: 'Yezh:'
+ location: 'Lec''hiadur:'
+ latitude: 'Lec''hed:'
+ longitude: 'Hedred:'
use_map_link: implijout ar gartenn
index:
title: Deizlevrioù an implijerien
title_friends: Deizlevrioù ar vignoned
- title_nearby: Deizlevrioù ar vignoned a-dost
+ title_nearby: Deizlevrioù ar vignoned tost
user_title: Deizlevr %{user}
- in_language_title: Enmonedoù en deizlevr e %{language}
- new: Enmoned nevez en deizlevr
- new_title: Ouzhpennañ un enmoned nevez d'ho teizlevr
- no_entries: Enmoned ebet en ho teizlevr
- recent_entries: 'Enmonedoù nevez en deizlevr :'
- older_entries: Enmonedoù koshañ
- newer_entries: Enmonedoù nevesañ
+ in_language_title: Enmontoù en deizlevr e %{language}
+ new: Enmont nevez en deizlevr
+ new_title: Ouzhpennañ un enmont nevez d'ho teizlevr
+ no_entries: Enmont ebet en ho teizlevr
+ recent_entries: 'Enmontoù nevez en deizlevr:'
+ older_entries: Enmont koshañ
+ newer_entries: Enmont nevesañ
edit:
- title: Kemmañ enmoned an deizlevr
- marker_text: Lec'hiadur an enmoned en deizlevr
+ title: Aozañ enmont an deizlevr
+ marker_text: Lec'hiadur an enmont en deizlevr
show:
title: Deizlevr %{user} | %{title}
user_title: Deizlevr %{user}
- leave_a_comment: Lezel un addispleg
- login_to_leave_a_comment_html: '%{login_link} evit lezel un addispleg'
+ leave_a_comment: Skrivañ un evezhiadenn
+ login_to_leave_a_comment_html: '%{login_link} evit skrivañ un evezhiadenn'
login: Kevreañ
no_such_entry:
- title: Enmoned ebet evel-se en deizlevr
- heading: 'Enmoned ebet gant an id : %{id}'
- body: Ho tigarez, n'eus enmoned deizlevr ebet nag addsiqpleg ebet gant an id
+ title: Enmont ebet en deizlevr kenglotus
+ heading: 'Enmont ebet gant an id: %{id}'
+ body: Ho tigarez, n'eus enmont deizlevr ebet nag evezhiadenn ebet gant an id
%{id}. Gwiriit hag-eñ eo skrivet mat, pe marteze hoc'h eus kliket war ul liamm
fall.
diary_entry:
posted_by_html: Postet gant %{link_user} da %{created} e %{language_link}
- comment_link: Addisplegañ an enmoned-mañ
- reply_link: Respont d'an enmoned-mañ
+ comment_link: Skrivañ un evezhiadenn d'an enmont-mañ
+ reply_link: Respont d'an enmont-mañ
comment_count:
one: Un addispleg
- zero: Addispleg ebet
- other: '%{count} addipleg'
- edit_link: Aozañ an enmoned-mañ
- hide_link: Kuzhat an enmoned-mañ
- unhide_link: Diguzhat an enmoned-mañ
+ zero: Evezhiadenn ebet
+ other: '%{count} evezhiadenn'
+ edit_link: Aozañ an enmont-mañ
+ hide_link: Kuzhat an enmont-mañ
+ unhide_link: Diguzhat an enmont-mañ
confirm: Kadarnaat
- report: Disklêriañ an enmoned-mañ
+ report: Signaliñ an enmont-mañ
diary_comment:
- comment_from_html: Addispleg gant %{link_user} d'an %{comment_created_at}
- hide_link: Kuzhat an addispleg-mañ
+ comment_from_html: Evezhiadenn a-berzh %{link_user} d'an %{comment_created_at}
+ hide_link: Kuzhat an evezhiadenn-mañ
unhide_link: Diguzhat an evezhiadenn-mañ
confirm: Kadarnaat
- report: Diskêriañ an evheziadenn-mañ
+ report: Signaliñ an evezhiadenn-mañ
location:
- location: 'Lec''hiadur :'
+ location: 'Lec''hiadur:'
view: Diskwel
- edit: Kemmañ
+ edit: Aozañ
feed:
user:
- title: Enmonedoù deizlevr OpenStreetMap evit %{user}
- description: Enmonedoù nevez e deizlevr OpenStreetMap gant %{user}
+ title: Enmontoù deizlevr OpenStreetMap gant %{user}
+ description: Enmontoù nevez e deizlevr OpenStreetMap gant %{user}
language:
- title: Enmonedoù deizlevr OpenStreetMap e %{language_name}
- description: Enmonedoù nevez a-walc'h e deizlevr implijerien OpenStreetMap
+ title: Enmontoù deizlevr OpenStreetMap e %{language_name}
+ description: Enmontoù nevez a-walc'h e deizlevr implijerien OpenStreetMap
e %{language_name}
all:
- title: Enmonedoù en deizlevr OpenStreetMap
- description: Enmonedoù nevez en deizlevr gant implijerien eus OpenStreetMap
+ title: Enmontoù en deizlevr OpenStreetMap
+ description: Enmontoù nevez en deizlevr gant implijerien OpenStreetMap
comments:
- has_commented_on: ↓%{display_name} en deus graet evezhiadennoù diwar-benn ar
- pennadoù deizlevr-mañ
- post: Postañ
- when: Peur
- comment: Addispleg
- newer_comments: Evezhiadennoù neveso'h
+ has_commented_on: ↓%{display_name} en deus skrivet evezhiadennoù diwar-benn
+ ar pennadoù deizlevr-mañ
+ post: Embann
+ when: Pegoulz
+ comment: Evezhiadenn
+ newer_comments: Evezhiadennoù nevesañ
older_comments: Evezhiadennoù koshañ
geocoder:
search:
title:
- latlon_html: Disoc'hoù diwar <a href="https://openstreetmap.org/">Internal</a>
+ latlon_html: Disoc'hoù diwar <a href="https://openstreetmap.org/">Diabarzh</a>
ca_postcode_html: Disoc'hoù diwar <a href="https://geocoder.ca/">Geocoder.CA</a>
osm_nominatim_html: Disoc'hoù diwar <a href="https://nominatim.openstreetmap.org/">OpenStreetMap
Nominatim</a>
search_osm_nominatim:
prefix:
aerialway:
- cable_car: Fungarr
+ cable_car: Karr-fun
chair_lift: fungador
drag_lift: Teleski
- gondola: Funlogell
+ gondola: Logell-fun
platter: Saver pladoù
pylon: Peul
- station: Arsav funlogell
- t-bar: Sav barrenn e T
+ station: Arsav logell-fun
+ t-bar: Sav barrennoù e T
aeroway:
aerodrome: Nijva
airstrip: Leurenn bradañ
hangar: Karrdi
helipad: biñsporzh
holding_position: Post gortoz
- parking_position: Plas parkañ
- runway: Leurenn
- taxiway: Roudenn evit an taksioù
- terminal: Termenva
+ parking_position: Plas parkva
+ runway: Hent
+ taxiway: Hent-taksioù aerborzh
+ terminal: Terminal
amenity:
- animal_shelter: Goudor evit al loened
- arts_centre: Kreizenn arz
- atm: Bilhedaouer
+ animal_shelter: Lec'h-goudor evit al loened
+ arts_centre: Kreizenn an arzoù
+ atm: Bilhedaouerezh
bank: Ti-bank
bar: Tavarn
bbq: Regezer
bench: Skaoñ
- bicycle_parking: Parklec'h evit ar beloioù
- bicycle_rental: Feurmiñ beloioù
- biergarten: Liorzh ar bier
- boat_rental: Feurmiñ bagoù
- brothel: Bordel
+ bicycle_parking: Parklec'h beloioù
+ bicycle_rental: Lec'h feurmiñ beloioù
+ biergarten: Braeerezh en aer vras
+ boat_rental: Lec'h feurmiñ bagoù
+ brothel: Bordell
bureau_de_change: Burev eskemm
bus_station: Arsav bus
cafe: Kafedi
- car_rental: Feurmiñ kirri
+ car_rental: Lec'h feurmiñ kirri
car_sharing: Leur genweturañ
- car_wash: Gwalc'hiñ kirri
+ car_wash: Lec'h gwalc'hiñ kirri
casino: Kazino
charging_station: Savlec'h adkargañ
childcare: Diwaller bugale
cinema: Sinema
clinic: Klinikenn
clock: Horolaj
- college: Skol-veur pe skol-uhel
+ college: Skol-veur
community_centre: Sal liezimplij
courthouse: Lez-varn
crematorium: Krematoriom
dentist: Dentour
doctors: Mezeien
drinking_water: Dour mat da evañ
- driving_school: Skol bleinañ
+ driving_school: Skol vleinañ
embassy: Kannati
- fast_food: Fast Food
+ fast_food: Pretierezh prim
ferry_terminal: Porzh karrlistri
fire_station: Kazarn pomperien
food_court: ↓Predva
fountain: Feunteun
- fuel: Trelosk
+ fuel: Dour-tan
gambling: C'hoari arc'hant
grave_yard: Bered
grit_bin: Bailh holen
monastery: Manati
motorcycle_parking: Parklec'h evit marc'hoù-tan
nightclub: Klub-noz
- nursing_home: Ti yec'hed
+ nursing_home: Ti-medisin ar retredidi
office: Burev
parking: Parklec'h
parking_entrance: Mont tre ur parklec'h
toilets: Privezioù
townhall: Ti-kêr
university: Skol-veur
- vending_machine: Ingaler emgefre
+ vending_machine: Mekanik gwerzhañ
veterinary: Surjianerezh evit al loened
village_hall: Sal ar gumun
waste_basket: Pod-lastez
assembly_point: Lec'h bodañ
defibrillator: Difibrilator
landing_site: Tachenn bradañ trumm
- phone: Pellgomzer evit an trummadoù
+ phone: Pellgomzer evit an urjañsoù
water_tank: Beol dour trumm
"yes": Trummadoù
highway:
cycleway: Roudenn divrodegoù
elevator: Pignerez
emergency_access_point: Poent moned trummadoù
- footway: Gwenodenn evit an droadeien
+ footway: Gwenodenn evit an dud war-droad
ford: Roudour
give_way: Panell "Lezit da dremen"
living_street: Straed annez
motorway_link: Gourhent
passing_place: Lec'h tremen
path: Gwenodenn
- pedestrian: Hent evit an droadeien
- platform: Leurenn
+ pedestrian: Hent evit an dud war-droad
+ platform: Pladfurm
primary: Hent kentañ renk
primary_link: Pennhent
proposed: Hent kinniget
kemmoù'
subject_other: '[OpenStreetMap] %{commenter} en deus addispleget unan eus
ho notennoù a sell ouzhoc''h'
- your_changeset: '[OpenStreetMap] %{commenter} en deus addispleget unan eus
- ho holladoù kemmoù krouet d''an %{time}'
- commented_changeset: '%{commenter} en deus lezet un evezhiadenn war un hollad
- cheñchamantoù kartenn emaoc''h oc''h evezhiañ, krouet gant %{changeset_author}
- d''an %{time}'
+ your_changeset: '%{commenter} en deus skrivet un evezhiadenn d''an/ar %{time}
+ war unan eus ho hollad cheñchamantoù'
+ commented_changeset: '%{commenter} en deus skrivet un evezhiadenn d''an/ar
+ %{time} war un hollad cheñchamantoù emaoc''h o sellet outañ hag a zo bet
+ krouet gant %{changeset_author}'
partial_changeset_with_comment: gant an addispleg '%{changeset_comment}'
partial_changeset_without_comment: Hep evezhiadenn
details: Muioc'h a ditouroù war an holl cheñchamantoù e %{url}.
ouzh <a href=''%{copyright_path}''>Aotre-eilañ ha pajenn an aotre-implij</a>
evit gouzout hiroc''h.'
legal_title: Lezennel
- legal_1_html: "Al lec'hienn-mañ hag e-leizh a servijoù all kar zo korvoet ent
- furmel gant an <a href=\"https://osmfoundation.org/\">Diazezaddur OpenStreetMap</a>
- (OSMF) \nen anv ar gumuniezh.\nEvit implijout an holl servijoù kinniget gant
- an OSMF e ranker doujañ d'hor \n<a href=\"https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">
- Politikerezh war an implijoù degemeret</a> ha d'hor <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\">Politikerzh
- prevezded</a>.\n<br>\nKit <a href=\"https://osmfoundation.org/Contact\">contacter
- l'OSMF</a> e darempred gant an OSMF</a>, mar plij, m'ho peus goulennoù da
- sevel diwar-benn an aotreoù-implijout, ar gwirioù oberour pe diwar-benn goulennoù
- lezennel all.\n<br>\nOpenStreetMap, al logo gant ar brasaer ha ''State of
- the Map'' zo<a href=\"https://wiki.osmfoundation.org/wiki/Trademark_Policy\">merkoù
- marilhet OSMF</a>."
+ legal_1_html: |-
+ Al lec'hienn-mañ ha kalz servijoù liammet ouzhpenn a vez operataet gant <a href='https://osmfoundation.org/'>Diazezadur OpenStreetMap</a> (OSMF)
+ en anv ar gumuniezh. Implijout hor servijoù operataet gant OSMF a zo suj d'hon
+ <a href="https://wiki.osmfoundation.org/wiki/Terms_of_Use">Termoù Implij</a>, <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
+ Politikerezh an implijoù degemeret</a> hag hon <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">Folitikerezh prevezded</a>.
partners_title: Kevelerien
copyright:
foreign:
changeset_paging_nav:
showing_page: АгӀо %{page}
next: ТӀехьа йогӀург →
- previous: ← Хьалха йоьдург
+ previous: ← Хьалхара
changeset:
anonymous: Аноним
no_edits: (нисдарш дац)
entry:
track: Ворданан некъ
richtext_area:
- preview: Хьалха хьажар
+ preview: Хьалххе хьажар
markdown_help:
subheading: Корталг
link: Хьажорг
password: 'Пароль:'
openid_html: '%{logo} OpenID:'
remember: 'Дагалаца со:'
- lost password link: Ð\9fаÑ\80олÑ\8c йиÑ\86елла?
+ lost password link: Ð\99иÑ\86Ñ\8aелла паÑ\80олÑ\8c?
login_button: ЧугӀо
register now: ДӀадазло
logout:
logout_button: Болх дӀаберзор
lost_password:
title: Пароль меттахӀоттаяр
- heading: Йицелла пароль?
+ heading: Йицъелла пароль?
email address: 'Электронан поштан адрес:'
new password button: Керла пароль кхосса соьга
reset_password:
revoker_name: ДӀаяьккхина блок
showing_page: АгӀо %{page}
next: ТӀехьа йогӀург →
- previous: ← Хьалха йоьдург
+ previous: ← Хьалхара
notes:
mine:
heading: '%{user} декъашхочун билгалонаш'
relation: Relace
relation_member: Člen relace
relation_tag: Tag relace
+ report: Hlášení
session: Relace
trace: Stopa
tracepoint: Bod stopy
one: více než před rokem
other: před více než %{count} lety
x_seconds:
- one: před vteřinou
- other: před %{count} vteřinami
+ one: před sekundou
+ other: před %{count} sekundami
x_minutes:
one: před minutou
other: před %{count} minutami
tag: Stránka s popisem značky %{key}=%{value} na wiki
wikidata_link: Položka %{page} na Wikidatech
wikipedia_link: Článek %{page} na Wikipedii
+ wikimedia_commons_link: Položka %{page} na Wikimedia Commons
telephone_link: Volat %{phone_number}
colour_preview: Náhled barvy %{colour_value}
note:
crane: Jeřáb
dolphin: Kotvicí bod
dyke: Hráz
- embankment: Nábřeží
+ embankment: Násep
flagpole: Vlajkový stožár
gasometer: Plynojem
groyne: Vlnolam
import_failures_url: http://wiki.openstreetmap.org/wiki/GPX_Import_Failures?uselang=cs
success:
subject: '[OpenStreetMap] Úspěšný import GPX'
- loaded_successfully: se úspěšně nahrál s %{trace_points} z možných %{possible_points}
- bodů.
+ loaded_successfully:
+ one: se úspěšně nahrál s %{trace_points} z možného 1 bodu.
+ other: se úspěšně nahrál s %{trace_points} z možných %{possible_points}
+ bodů.
signup_confirm:
subject: '[OpenStreetMap] Vítejte v OpenStreetMap'
greeting: Ahoj!
pod stejnou licencí. Podrobnosti najdete na stránce <a href=''%{copyright_path}''>Autorská
práva a licence</a>.'
legal_title: Právní informace
- legal_1_html: |-
- Tento web a mnoho dalších souvisejících služeb za komunitu oficiálně provozuje <a href='https://osmfoundation.org/'>OpenStreetMap Foundation</a> (OSMF). Použití všech služeb provozovaných OSMF podléhá našim <a href="https://wiki.osmfoundation.org/wiki/Terms_of_Use">Podmínkám užití</a>, <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">Pravidlům přijatelného užití</a> a našim <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">Pravidlům ochrany osobních údajů</a>.
- <br>
+ legal_1_html: Tento web a mnoho dalších souvisejících služeb za komunitu oficiálně
+ provozuje <a href='https://osmfoundation.org/'>OpenStreetMap Foundation</a>
+ (OSMF). Použití všech služeb provozovaných OSMF podléhá našim <a href="https://wiki.osmfoundation.org/wiki/Terms_of_Use">Podmínkám
+ užití</a>, <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">Pravidlům
+ přijatelného užití</a> a našim <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">Pravidlům
+ ochrany osobních údajů</a>.
+ legal_2_html: |-
Pokud máte problémy či dotazy týkající se licencování, autorských práv či jiných právních záležitostí, <a href='https://osmfoundation.org/Contact'>kontaktujte prosím OSMF</a>.
+ <br>
+ OpenStreetMap, logo s lupou a State of the Map jsou <a href="https://wiki.osmfoundation.org/wiki/Trademark_Policy">registrované ochranné známky OSMF</a>.
partners_title: Partneři
copyright:
foreign:
pending: ZPRACOVÁVÁ SE
count_points:
one: 1 bod
- other: '%{count} bodů'
+ few: '%{count} body'
+ many: '%{count} bodů'
more: více
trace_details: Zobrazit podrobnosti stopy
view_map: Zobrazit mapu
other: '%{count} hodiny'
days:
one: 1 den
- other: '%{count} dnů'
+ few: '%{count} dny'
+ many: '%{count} dnů'
weeks:
one: 1 týden
- other: '%{count} týdnů'
+ few: '%{count} týdny'
+ many: '%{count} týdnů'
months:
one: 1 měsíc
- other: '%{count} měsíců'
+ few: '%{count} měsíce'
+ many: '%{count} měsíců'
years:
one: 1 rok
- other: '%{count} let'
+ few: '%{count} roky'
+ many: '%{count} let'
blocks_on:
title: Zablokování uživatele %{name}
heading_html: Seznam zablokování uživatele %{name}
title: Ukázat moji polohu
metersPopup:
one: Od tohoto bodu jste vzdáleni metr
- other: Od tohoto bodu jste vzdáleni %{count} metrů
+ few: Od tohoto bodu jste vzdáleni %{count} metry
+ many: Od tohoto bodu jste vzdáleni %{count} metrů
feetPopup:
one: Od tohoto bodu jste vzdáleni jednu stopu
- other: Od tohoto bodu jste vzdáleni %{count} stop
+ few: Od tohoto bodu jste vzdáleni %{count} stopy
+ many: Od tohoto bodu jste vzdáleni %{count} stop
base:
standard: Standardní
cycle_map: Cyklomapa
copyright: © <a href='%{copyright_url}'>přispěvatelé OpenStreetMap</a>
donate_link_text: <a class='donate-attr' href='%{donate_url}'>Poskytněte dar</a>
terms: <a href='%{terms_url}' target='_blank'>Pravidla webu a API</a>
+ thunderforest: Dlaždice díky <a href='%{thunderforest_url}' target='_blank'>Andy
+ Allanovi</a>
+ hotosm: Styl dlaždic <a href='%{hotosm_url}' target='_blank'>Humanitárního týmu
+ OpenStreetMap</a> provozuje <a href='%{osmfrance_url}' target='_blank'>OpenStreetMap
+ Francie</a>
site:
edit_tooltip: Upravit mapu
edit_disabled_tooltip: Pro editaci mapy přejděte na větší měřítko
university: Uniwersita
vending_machine: Makineya Roten
veterinary: Veteriner
- village_hall: Wedey Dewer
+ village_hall: Wedaya Dewe
waste_basket: Tenkey Sıloy
waste_disposal: Cay sıloy
youth_centre: Merkezê Gencan
suburb: Mahle / Banliyö
town: bacar
unincorporated_area: Wareyo Yewnêbiyaye
- village: Dew
+ village: Dewe
"yes": Ca
railway:
abandoned: Asınraya Terkkerdiye
reply_button: Respondi
unread_button: Marki kiel nelegitan
destroy_button: Forigi
- back: Reen
+ back: Reveni
to: Al
wrong_user: Vi estas ensalutinta kiel '%{user}', sed la mesaĝo, kiun vi volas
legi estas sendita al tiu uzanto. Bonvolu ensaluti kiel propra uzanto por
auth:
providers:
none: هیچکدام
+ openid: OpenID
google: گوگل
facebook: فیسبوک
+ windowslive: ویندوز لایو
+ github: گیتهاب
wikipedia: ویکیپدیا
api:
notes:
platter: بالابر بشقابی
pylon: ستون
station: ایستگاه راه هوایی
+ t-bar: T-Bar چپ
aeroway:
aerodrome: فرودگاه هواپیما
+ airstrip: پایگاه هوایی
apron: پیشگاه
gate: ورودی
hangar: آشیانه هواپیما
fuel: پمپ بنزین
gambling: قمار
grave_yard: محوطهٔ گورستان
+ grit_bin: گریتبین
hospital: بیمارستان
hunting_stand: شکارگاه
ice_cream: بستنی فروشی
protected_area: منطقه حفاظتشده
bridge:
aqueduct: قنات
+ boardwalk: Boardwalk
suspension: پل معلق
swing: پل نوسان
viaduct: پل راه آهن روی دره
"yes": فروشگاه قایق
emergency:
ambulance_station: ایستگاه آمبولانس
+ assembly_point: نقطه جمعشدن
defibrillator: برگرداننده تپش قلب
landing_site: محوطه فرود اضطراری
phone: تلفن اضطراری
water_park: پارک آبی
"yes": فراغت
man_made:
+ adit: مدخل
beacon: نشانهٔ دریایی
beehive: کندو عسل
breakwater: موجشکن
bunker_silo: پناهگاه
chimney: دودکش
crane: جرثقیل
+ dolphin: محل پهلوگیری
dyke: خاکریز
+ embankment: پشته
flagpole: میله پرچم
gasometer: گازسنج
groyne: آبشکن
watermill: آسیاب آبی
water_tower: برج آب
water_well: خوب
+ water_works: مربوط به آب
windmill: آسیاب بادی
works: کارخانه
"yes": ساخت بشر
organic: فروشگاه مواد غذایی آلی
outdoor: فروشگاه رو باز
paint: رنگفروشی
+ pawnbroker: كارگشا
pet: فروشگاه حیوانات خانگی
pharmacy: داروخانه
photo: فروشگاه عکس
reopened: وضعیت مسئله روی «باز» تنظیم شد
comments:
comment_from_html: نظر از %{user_link} در %{comment_created_at}
+ reassign_param: مشکل تخصیص مجدد؟
reports:
reported_by_html: در %{updated_at}، %{user} آن را بهعنوان %{category} گزارش
کرد
visibility:
private: خصوصی (همرسانی فقط بهصورت گمنام، نقاط نامرتب)
public: عمومی (نمایش در لیست ردها اما گمنام، نقاط نامرتب)
- trackable: قابل ردیابی (همرسانی فقط بهصورت ناشناس، نقاط مرتب همراه با مهر زمان)
+ trackable: قابل ردیابی (همرسانی فقط بهصورت گمنام، نقاط مرتب همراه با مهر زمان)
identifiable: قابل شناسایی (نمایش در لیست ردها و قابل شناسایی، نقاط مرتب همراه
با مهر زمان)
new:
%{directions}
onramp_right_without_exit: از خروجی سمت راست به %{name} بپیچید
onramp_right_with_directions: به راست بپیچید و به رمپ بروید بهسمت %{directions}
+ onramp_right_with_name_directions: در رامپ به راست به %{name} بروید، بهسمت
+ %{directions}
+ onramp_right_without_directions: چرخش به راست به سوی رمپ
+ onramp_right: چرخش به راست به سوی رمپ
endofroad_right_without_exit: در انتهای مسیر به طرف راست به %{name} بپیچید
merge_right_without_exit: کمی به راست به %{name}
fork_right_without_exit: در محل جداشدن به طرف راست به %{name} بپیچید
sharp_left_without_exit: کاملاً به چپ به %{name} بپیچید
turn_left_without_exit: به چپ به %{name} بپیچید
offramp_left: انتخاب رمپ سمت چپ
+ offramp_left_with_exit: از خروجی %{exit} طرف چپ خارج شوید
+ offramp_left_with_exit_name: در چپ از خروجی %{exit} به %{name} بروید
+ offramp_left_with_exit_directions: در چپ از خروجی %{exit} بهسمت %{directions}
+ بروید
offramp_left_with_name: خروجی طرف چپ به %{name} را انتخاب کنید
onramp_left_without_exit: از خروجی سمت چپ به %{name} بپیچید
onramp_left_without_directions: چرخش به چپ به سمت رمپ
# Messages for Finnish (suomi)
# Exported from translatewiki.net
# Export driver: phpyaml
+# Author: 01miki10
# Author: Abijeet Patro
# Author: Alluk.
# Author: Antsa
diary_comment: Päiväkirjakommentti
diary_entry: Päiväkirjamerkintä
friend: Kaveri
+ issue: Ongelma
language: Kieli
message: Viesti
node: Piste
relation: Relaatio
relation_member: Relaation jäsen
relation_tag: Relaation tagi
+ report: Raportti
session: Istunto
trace: Jälki
tracepoint: Jälkipiste
remote:
name: Kauko-ohjaus
description: Kauko-ohjaus (JOSM tai Merkaartor)
+ auth:
+ providers:
+ none: Ei mitään
+ openid: OpenID
+ google: Google
+ facebook: Facebook
+ windowslive: Windows Live
+ github: GitHub
+ wikipedia: Wikipedia
api:
notes:
comment:
reopen:
reopened: Tapaus on merkitty käsittelyssä olevaksi
comments:
+ comment_from_html: Kommentti käyttäjältä %{user_link} %{comment_created_at}
reassign_param: Haluatko määrittää tapauksen tilan uudelleen?
reports:
- reported_by_html: Käyttäjä %{user} ilmiantanut merkinnällä %{category}
+ reported_by_html: Käyttäjä %{user} ilmiantanut merkinnällä %{category} %{updated_at}
helper:
reportable_title:
diary_comment: '%{entry_title}, kommenttitunnus %{comment_id}'
Lisätietoja on <a href=''%{copyright_path}''>Tekijänoikeus ja lisenssi</a>
-sivulla.'
legal_title: Lakitekninen jako
- legal_1_html: "Tämä ja monet muut OSM-sivustot ovat muodollisesti <a href='https://osmfoundation.org/'>OpenStreetMap-säätiön</a>
- (OSMF) hallinnoimia OSM-yhteisön puolesta. Kaikkien näiden sivustojen käyttöön
- sovelletaan <a href=\"https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">\nsallitun
- käytön käytäntöjä</a>, <a href=\"https://wiki.osmfoundation.org/wiki/Terms_of_Use\">käyttöehtoja</a>
- ja <a href=\"https://wiki.osmfoundation.org/wiki/Privacy_Policy\">tietosuojakäytäntöä</a>
- (molemmat sisällöt saatavilla vain englanniksi).\n<br> \n<a href='https://osmfoundation.org/Contact'>Ota
- yhteys OSMF:ään</a> lisensointi-, tekijänoikeus- ja muissa lakiteknisissä
- kysymyksissä.\n<br>\nNimi OpenStreetMap, suurennuslasilogo ja slogan State
- of the Map ovat <a href=\"https://wiki.osmfoundation.org/wiki/Trademark_Policy\">säätiön
- rekisteröimiä tavaramerkkejä</a>."
+ legal_1_html: |-
+ Tämä sivusto ja monet siihen liittyvät palvelut ovat muodollisesti <a href='https://osmfoundation.org/'>OpenStreetMap-säätiön</a> (OSMF) hallinnoimia OSM-yhteisön puolesta. Kaikkien OSMF:n hallinnoimien palveluiden käyttöön sovelletaan <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
+ sallitun käytön käytäntöjä</a>, <a href="https://wiki.osmfoundation.org/wiki/Terms_of_Use">käyttöehtoja</a> ja <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">tietosuojakäytäntöä</a> (molemmat sisällöt saatavilla vain englanniksi).
partners_title: Kumppanit
copyright:
foreign:
out: Loitonna
locate:
title: Näytä oma sijaintini
+ metersPopup:
+ one: Olet yhden metrin etäisyydellä tästä pisteessä
+ other: Olet %{count} metrin etäisyydellä tästä pisteestä
+ feetPopup:
+ one: Olet yhden jalan etäisyydellä tästä pisteestä
+ other: Olet %{count} jalan etäisyydellä tästä pisteestä
base:
standard: Perinteinen
cycle_map: Pyöräilykartta
old_messages:
one: egy régi üzeneted
other: '%{count} régi üzeneted'
- from: Innen
+ from: Feladó
subject: Tárgy
date: Érkezett
no_messages_yet_html: Nincs még üzeneted. Miért nem veszed fel a kapcsolatot
messages:
one: Egy elküldött üzeneted van
other: '%{count} elküldött üzeneted van'
- to: Ide
+ to: Címzett
subject: Tárgy
date: Elküldve
no_sent_messages_html: Nincs még elküldött üzeneted. Miért nem veszed fel a
jelentkezz be a helyes felhasználóval.
show:
title: Üzenet olvasása
- from: Innen
+ from: Feladó
subject: Tárgy
date: Érkezett
reply_button: Válasz
unread_button: Jelölés olvasatlanként
destroy_button: Törlés
back: Vissza
- to: Ide
+ to: Címzett
wrong_user: „%{user}” néven jelentkeztél be, de a levelet, amit lekérdeztél
olvasásra, nem ez a felhasználó küldte vagy kapta. Annak érdekében, hogy elolvashasd
a levelet, jelentkezz be a helyes felhasználóval.
create:
upload_trace: GPS nyomvonal feltöltése
trace_uploaded: A GPX fájl feltöltése megtörtént, és várakozik az adatbázisba
- való beillesztésre. Ez általában fél órán belül megtörténik, és fogsz kapni
+ való beillesztésre. Ez általában fél órán belül megtörténik, és kapni fogsz
egy e-mailt, amint elkészült.
upload_failed: A GPX feltöltése meghiúsult. Kérjük próbálja újra.
traces_waiting: '%{count} nyomvonalad várakozik feltöltésre. Kérlek fontold
# Author: Dewisulistio
# Author: Emirhartato
# Author: Farras
+# Author: Hanif Al Husaini
# Author: HarryMahar
# Author: Hidayatsrf
# Author: Ilham151096
activerecord:
errors:
messages:
+ invalid_email_address: tidak tampak sebagai alamat e-mail yang sah
email_address_not_routable: tidak dapat dirutekan
models:
acl: Daftar Kontrol Akses
diary_comment: Komentar pada Catatan Harian
diary_entry: Entri Catatan harian
friend: Teman
+ issue: Masalah
language: Bahasa
message: Pesan
node: Node/Titik
relation: Relasi
relation_member: Anggota Relasi
relation_tag: Tag Relasi
+ report: Laporan
session: Sesi
trace: Jejak
tracepoint: Titik Digitasi
pass_crypt: Kata Sandi
datetime:
distance_in_words_ago:
+ about_x_hours:
+ one: sekitar 1 jam yang lalu
+ other: sekitar %{count} jam yang lalu
+ about_x_months:
+ one: sekitar 1 bulan yang lalu
+ other: sekitar %{count} bulan yang lalu
+ about_x_years:
+ one: sekitar 1 tahun yang lalu
+ other: sekitar %{count} tahun yang lalu
+ almost_x_years:
+ one: hampir 1 tahun yang lalu
+ other: hampir %{count} tahun yang lalu
half_a_minute: setengah menit yang lalu
+ less_than_x_seconds:
+ one: tak sampai 1 detik yang lalu
+ other: tak sampai %{count} detik yang lalu
+ less_than_x_minutes:
+ one: tak sampai 1 menit yang lalu
+ other: tak sampai %{count} menit yang lalu
+ over_x_years:
+ one: lebih dari 1 tahun yang lalu
+ other: lebih dari %{count} tahun yang lalu
+ x_seconds:
+ one: 1 detik yang lalu
+ other: '%{count} detik yang lalu'
+ x_minutes:
+ one: 1 menit yang lalu
+ other: '%{count} menit yang lalu'
+ x_days:
+ one: 1 hari yang lalu
+ other: '%{count} hari yang lalu'
+ x_months:
+ one: 1 bulan yang lalu
+ other: '%{count} bulan yang lalu'
+ x_years:
+ one: 1 tahun yang lalu
+ other: '%{count} tahun yang lalu'
editor:
default: Standar (saat ini %{name})
potlatch:
remote:
name: Pengendali Jarak Jauh
description: Remote Control (JOSM atau Merkaartor)
+ auth:
+ providers:
+ none: Tidak ada
+ openid: OpenID
+ google: Google
+ facebook: Facebook
+ windowslive: Windows Live
+ github: GitHub
+ wikipedia: Wikipedia
api:
notes:
comment:
title_comment: Set Perubahan %{id} - %{comment}
join_discussion: Masuk untuk bergabung diskusi
discussion: Diskusi
+ still_open: Set perubahan masih terbuka - diskusi akan dibuka ketika set perubahan
+ telah ditutup.
node:
title_html: 'Simpul: %{name}'
history_title_html: 'Riwayat Simpul: %{name}'
tag: Deskripsi halaman wiki untuk %{key}=%{value} tag
wikidata_link: Item %{page} di Wikidata
wikipedia_link: Artikel %{page} di Wikipedia
+ wikimedia_commons_link: Item %{page} di Wikimedia Commons
telephone_link: Hubungi %{phone_number}
note:
title: 'Catatan: %{id}'
changeset_comments:
comment:
comment: 'Komentar baru di set perubahan #%{changeset_id} oleh %{author}'
- commented_at_by_html: Diperbarui %{when} yang lalu oleh %{user}
+ commented_at_by_html: Diperbarui %{when} oleh %{user}
comments:
comment: 'Komentar baru di set perubahan #%{changeset_id} oleh %{author}'
index:
gate: Gerbang
hangar: Hanggar
helipad: Helipad
+ parking_position: Posisi Parkir
runway: Landasan pacu
taxiway: Landas hubung
terminal: Terminal
crane: Derek
embankment: Tanggul
flagpole: Tiang Bendera
+ gasometer: Kilang
kiln: Tanur
lighthouse: Mercusuar
mine: Tambang
title: Isu
select_status: Pilih Status
select_type: Pilih Jenis
+ not_updated: Tidak Diperbarui
search: Cari
user_not_found: Pengguna tidak ada
issues_not_found: Isu tidak ditemukan
partners_ucl: UCL
partners_bytemark: Hosting Bytemark
partners_partners: mitra
+ tou: Ketentuan Penggunaan
osm_offline: Database OpenStreetMap saat ini sedang dimatikan karena sedang dilakukan
pekerjaan pemeliharaan database penting.
osm_read_only: OpenStreetMap database saat ini adalah pada mode read-only (hanya
where_am_i: Di mana ini?
where_am_i_title: Deskripsikan lokasi Anda saat ini menggunakan mesin pencari
submit_text: Lanjut
+ reverse_directions_text: Balikkan Arah
key:
table:
entry:
edit: Edit
preview: Tinjauan
markdown_help:
- title_html: Diurai dengan <a href="https://daringfireball.net/projects/markdown/">Markdown</a>
+ title_html: Diurai dengan <a href="https://kramdown.gettalong.org/quickref.html">kramdown</a>
headings: Judul
heading: Judul
subheading: Subjudul
identifiable: Dapat Diidentifikasi (ditampilkan dalam daftar jejak dan sebagai
diidentifikasi, mengatur poin dengan waktu pengambilan)
new:
+ upload_trace: Unggah Jejak GPS
upload_gpx: 'Unggah File GPX:'
description: Deskripsi
tags: 'Tags:'
tags_help: dipisahkan oleh koma
visibility: Visibilitas
visibility_help: apa artinya ini?
+ update:
+ updated: Jejak diperbarui
trace_optionals:
tags: 'Tags:'
show:
delete_trace: Hapus trek ini
trace_not_found: Jejak tidak ditemukan!
visibility: Visibilitas
+ confirm_delete: Hapus jejak ini?
trace_paging_nav:
showing_page: Halaman %{page}
older: Jejak-jejak Lama
directions:
ascend: Naik
engines:
+ fossgis_osrm_bike: Sepeda (OSRM)
fossgis_osrm_car: Mobil (OSRM)
+ fossgis_osrm_foot: Jalan Kaki (OSRM)
graphhopper_bicycle: Sepeda (GraphHopper)
graphhopper_car: Mobil (GraphHopper)
graphhopper_foot: Jalan Kaki (GraphHopper)
distance: Jarak
errors:
no_route: Gagal menemukan rute antara dua tempat tersebut.
- no_place: Maaf - tempat tidak ditemukan.
+ no_place: Maaf - '%{place}' tidak ditemukan.
instructions:
continue_without_exit: Lurus ke %{name}
slight_right_without_exit: Kanan sedikit ke %{name}
slight_left_without_exit: Kiri sedikit ke %{name}
via_point_without_exit: (lewat tempat)
follow_without_exit: Ikuti %{name}
- roundabout_without_exit: Di bundaran ambil %{name}
+ roundabout_without_exit: Di bundaran ambil keluar ke %{name}
leave_roundabout_without_exit: Tinggalkan bundaran - %{name}
stay_roundabout_without_exit: Tetap di bundaran - %{name}
- start_without_exit: Mulai di ujung %{name}
+ start_without_exit: Mulai di %{name}
destination_without_exit: Tiba di tujuan
against_oneway_without_exit: Lawan arah pada %{name}
end_oneway_without_exit: Akhir dari satu arah pada %{name}
diary_comment: Commento al diario
diary_entry: Voce del diario
friend: Amico
+ issue: Problema
language: Lingua
message: Messaggio
node: Nodo
relation: Relazione
relation_member: Membro della relazione
relation_tag: Etichetta della relazione
+ report: Segnalazione
session: Sessione
trace: Tracciato
tracepoint: Punto del tracciato
%{id}. Controlla la digitazione, oppure potrebbe essere che il collegamento
che si è seguito sia errato.
diary_entry:
- posted_by_html: Inviato da %{link_user} il %{created} in %{language_link}
+ posted_by_html: Pubblicato da %{link_user} il %{created} in %{language_link}
comment_link: Commenta questa voce
reply_link: Rispondi a questa voce
comment_count:
out: Zoom indietro
locate:
title: Mostra la mia posizione
+ metersPopup:
+ one: Ti trovi entro un metro da questo punto
+ other: Ti trovi entro %{count} metri da questo punto
+ feetPopup:
+ one: Ti trovi entro un piede da questo punto
+ other: Ti trovi entro %{count} piedi da questo punto
base:
standard: Standard
cycle_map: Mappa ciclabile
donate_link_text: <a class='donate-attr' href='%{donate_url}'>Fai una donazione</a>
terms: <a href='%{terms_url}' target='_blank'>Condizioni del sito web e delle
API</a>
+ thunderforest: Tasselli forniti da <a href='%{thunderforest_url}' target='_blank'>Andy
+ Allan</a>
+ hotosm: Stile dei tasselli di <a href='%{hotosm_url}' target='_blank'>Humanitarian
+ OpenStreetMap Team</a> ospitato da <a href='%{osmfrance_url}' target='_blank'>OpenStreetMap
+ France</a>
site:
edit_tooltip: Modifica la mappa
edit_disabled_tooltip: Zooma per modificare la mappa
queryfeature_disabled_tooltip: Ingrandisci sugli elementi della ricerca
changesets:
show:
- comment: Commento
+ comment: Commenta
subscribe: Iscriviti
unsubscribe: Cancella iscrizione
hide_comment: nascondi
diary_comment: 日記コメント
diary_entry: 日記エントリ
friend: 友達
+ issue: 問題点
language: 言語
message: メッセージ
node: ノード
relation: リレーション
relation_member: リレーションのメンバー
relation_tag: リレーションのタグ
+ report: 報告
session: セッション
trace: トレース
tracepoint: トレースポイント
description: 遠隔制御 (JOSM または Merkaartor)
auth:
providers:
+ none: なし
+ openid: OpenID
+ google: Google
+ facebook: Facebook
+ windowslive: Windows Live
+ github: GitHub
wikipedia: ウィキペディア
api:
notes:
tag: '%{key}=%{value} タグのウィキでの説明ページ'
wikidata_link: Wikidataの%{page}項目目
wikipedia_link: ウィキペディアの %{page} 記事
+ wikimedia_commons_link: ウィキメディアコモンズの項目The %{page}件
telephone_link: '%{phone_number}に電話'
colour_preview: 色彩%{colour_value}プレビュー
note:
reopen:
reopened: 問題の状態は「未解決」に設定されました
comments:
+ comment_from_html: '%{comment_created_at} の %{user_link} さんからのコメント'
reassign_param: 問題を再度、割り当てますか?
reports:
reported_by_html: '%{user}による %{category} として%{updated_at}に報告済み'
legal_1_html: このサイトおよびその他の関連サービスは、コミュニティを代表して<a href='https://osmfoundation.org/'>OpenStreetMap財団</a>
(OSMF) が運営しています。OpenStreetMap財団の運営するサービス利用者は、私たちの定める<a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">利用規定</a>ならびに当財団の<a
href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">プライバシーに関する規定</a>の対象となります。
+ legal_2_html: |-
+ ライセンス、著作権その他の法的案件のお問い合わせは<a href='https://osmfoundation.org/Contact'>OSMF</a>宛てにお願いします。
+ <br>
+ OpenStreetMap、拡大鏡のロゴならびにState of the Mapはいずれも<a href="https://wiki.osmfoundation.org/wiki/Trademark_Policy">OSMFの登録商標です</a>。
partners_title: パートナー
copyright:
foreign:
revoke: 取り消す!
my_apps: クライアント アプリケーション
no_apps_html: OSMのサイトで使用するアプリケーションを新しく %{oauth} で登録するにはOAuthリクエストの前にあらかじめwebから登録しておく必要があります。
+ oauth: OAuth
registered_apps: '以下のクライアント アプリケーションが登録済みです:'
register_new: アプリケーションの登録
form:
out: 縮小
locate:
title: 現在地を表示
+ metersPopup:
+ one: この地点は1メートル以内
+ other: この地点まで%{count}メートル
+ feetPopup:
+ one: この地点から1フット
+ other: この地点まで%{count}フィート
base:
standard: 標準
cycle_map: サイクリングマップ
copyright: © <a href='%{copyright_url}'>OpenStreetMap 協力者</a>
donate_link_text: <a class='donate-attr' href='%{donate_url}'>寄付する</a>
terms: <a href='%{terms_url}' target='_blank'>ウェブサイトおよびAPI規約</a>
+ thunderforest: タイルは <a href='%{thunderforest_url}' target='_blank'>Andy Allen</a>
+ のご好意による
+ hotosm: タイル様式のホストは<a href='%{osmfrance_url}' target='_blank'>OpenStreetMap フランス</a>であり<a
+ href='%{hotosm_url}' target='_blank'>人道OpenStreetMap チーム</a>のご好意による
site:
edit_tooltip: 地図を編集
edit_disabled_tooltip: 地図を編集するには拡大してください
# Author: Asdfqwer51
# Author: B891202
# Author: CYAN
+# Author: Codenstory
# Author: D6283
# Author: Freebiekr
# Author: Garam
# Author: 予弦
# Author: 神樂坂秀吉
# Author: 고솜
+# Author: 그냥기여자
+# Author: 렌즈
# Author: 밥풀떼기
# Author: 아라
# Author: 한림
user:
email: 이메일
active: 활성
- display_name: 표시 이름
+ display_name: 표시되는 이름
description: 설명
languages: 언어
pass_crypt: 비밀번호
약관</a>, <a href="https://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">허용할
수 있는 이용 정책</a> 및 <a href="https://wiki.osmfoundation.org/wiki/Privacy_Policy">개인정보처리방침</a>
조건 하에서 이루어집니다.
+ legal_2_html: |-
+ 라이선스나 저작권, 법률 관련 의문점이 있다면
+ <a href='https://osmfoundation.org/Contact'>오픈스트리트맵 재단으로 문의</a>해주세요.
+ <br>
+ 오픈스트리트맵, 돋보기와 지도 로고는 <a href="https://wiki.osmfoundation.org/wiki/Trademark_Policy">오픈스트리트맵 재단의 등록 상표입니다</a>.
partners_title: 파트너
copyright:
foreign:
go_public:
flash success: 지금 모든 편집을 공개하고, 편집을 허용하지 않습니다.
make_friend:
- heading: '%{user}님을 친구로 추가할까요?'
+ heading: '%{user} 님을 친구로 추가할까요?'
button: 친구 추가
success: '%{name}님은 이제 친구입니다!'
failed: 죄송합니다, %{name}님을 친구로 추가하는 데 실패했습니다.
models:
acl: अनुमति नियन्त्रण सूची
changeset: परिवर्तनहरू सूची
- changeset_tag: à¤\9aà¥\87नà¥\8dà¤\9cसà¥\87à¤\9f à¤\9fà¥\8dयाà¤\97
+ changeset_tag: परिवरà¥\8dतनसमà¥\82ह à¤\9aिनà¥\8b
country: देश
diary_comment: डायरी टिप्पणी
diary_entry: डायरी प्रविष्टी
language: भाषा
message: सन्देश
node: नोड
- node_tag: नà¥\8bड à¤\9fà¥\8dयाà¤\97
+ node_tag: नà¥\8bड à¤\9aिनà¥\8b
notifier: सुचक
old_node: पूरानो नोड
old_node_tag: पूरानो नोड ट्याग
old_way_tag: पूरानो बाटो ट्याग
relation: रिलेशन
relation_member: रिलेशन सदस्य
- relation_tag: रिलà¥\87शन à¤\9fà¥\8dयाà¤\97
+ relation_tag: समà¥\8dबनà¥\8dध à¤\9aिनà¥\8b
session: सत्र
trace: ट्रेस
tracepoint: ट्रेस बिन्दु
user_token: प्रयोगकर्ता टोकन
way: बाटो
way_node: बाटो नोड
- way_tag: बाà¤\9fà¥\8b à¤\9fà¥\8dयाà¤\97
+ way_tag: मारà¥\8dà¤\97 à¤\9aिनà¥\8b
attributes:
diary_comment:
body: बडी
tag_details:
tags: ट्यागहरू
wiki_link:
- key: '%{key} सà¤\82à¤\95à¥\87तको लागि विकि विवरण पृष्ठ'
+ key: '%{key} à¤\9aिनà¥\8bको लागि विकि विवरण पृष्ठ'
tag: '%{key}=%{value} संकेतको लागि विकि विवरण पृष्ठ'
wikidata_link: '%{page} वस्तु विकिडेटा मा'
wikipedia_link: '%{page}को बारेमा विकिपीडियामा भएको लेख'
books: Księgarnia
boutique: Butik
butcher: Sklep mięsny
- car: Sklep samochodowy
+ car: Sprzedaż samochodów
car_parts: Sklep z częściami samochodowymi
car_repair: Warsztat samochodowy
carpet: Sklep z dywanami
success:
subject: '[OpenStreetMap] Importação de GPX bem-sucedida'
loaded_successfully:
- one: carregado com sucesso com %{trace_points} de um 1 ponto possível.
- other: carregados com sucesso com %{trace_points} de %{possible_points}
- pontos possíveis.
+ one: carregado com %{trace_points} de entre um 1 ponto possível.
+ other: carregado com %{trace_points} de entre %{possible_points} pontos
+ possíveis.
signup_confirm:
subject: '[OpenStreetMap] Bem-vind@ ao OpenStreetMap'
greeting: Olá!
# Author: Alexey zakharenkov
# Author: Amire80
# Author: Andrewsh
+# Author: Banonotit
# Author: BushmanK
# Author: CM3X
# Author: Calibrator
import_failures_url: http://wiki.openstreetmap.org/wiki/GPX_Import_Failures
success:
subject: '[OpenStreetMap] Импорт GPX прошёл успешно'
- loaded_successfully: |-
- успешно загружено %{trace_points} точек из
- %{possible_points} возможных.
+ loaded_successfully:
+ one: успешно загружена %{trace_points} точка из 1 возможной.
+ few: успешно загружены %{trace_points} точки из %{possible_points} возможных.
+ many: успешно загружено %{trace_points} точек из %{possible_points} возможных.
signup_confirm:
subject: '[OpenStreetMap] Добро пожаловать в OpenStreetMap'
greeting: Привет!
allow_to: 'Разрешить этому приложению:'
allow_read_prefs: читать ваши пользовательские настройки
allow_write_prefs: изменять ваши настройки на сайте
- allow_write_diary: Ñ\81оздаваÑ\82Ñ\8c дневниковÑ\8bе запиÑ\81и, комменÑ\82аÑ\80ии, заводить друзей
- allow_write_api: изменять данные
- allow_read_gpx: читать ваши частные GPS-треки
+ allow_write_diary: Ñ\81оздаваÑ\82Ñ\8c запиÑ\81и в дневнике и комменÑ\82иÑ\80оваÑ\82Ñ\8c, заводить друзей
+ allow_write_api: редактировать карту.
+ allow_read_gpx: читать ваши частные GPS-треки.
allow_write_gpx: передавать GPS-треки на сервер
allow_write_notes: изменять заметки
grant_access: Предоставить доступ
delete: Удаление клиента
confirm: Вы уверены?
requests: 'Запрос следующих разрешений со стороны пользователя:'
- allow_read_prefs: читать их пользовательские настройки
+ allow_read_prefs: читать их пользовательские настройки.
allow_write_prefs: изменять их пользовательские настройки.
- allow_write_diary: создавать дневниковые записи, комментарии, устанавливать
- друзей
- allow_write_api: изменять карту
+ allow_write_diary: создавать записи в дневники и комментировать, заводить друзей.
+ allow_write_api: изменять карту.
allow_read_gpx: читать их частные GPS-треки
allow_write_gpx: передавать GPS-треки на сервер.
allow_write_notes: изменять заметки.
registered_apps: 'У вас зарегистрированы следующие клиентские приложения:'
register_new: Зарегистрировать ваше приложение
form:
- name: Ð\98мÑ\8f
- required: ТÑ\80ебÑ\83еÑ\82Ñ\81Ñ\8f
+ name: Ð\9dазвание
+ required: обÑ\8fзаÑ\82елÑ\8cно
url: Основной URL приложения
- callback_url: URL обратного вызова
- support_url: URL поддержки
+ callback_url: Callback URL
+ support_url: URL полÑ\8cзоваÑ\82елÑ\8cÑ\81кой поддеÑ\80жки
requests: 'Запросить у пользователя следующие разрешения:'
allow_read_prefs: читать их пользовательские настройки
allow_write_prefs: изменять их пользовательские настройки
allow_write_diary: создать дневниковые записи, комментарии, устанавливать друзей
allow_write_api: изменять карту.
- allow_read_gpx: читать их частные GPS-треки
+ allow_read_gpx: читать их частные GPS-треки.
allow_write_gpx: передавать GPS-треки на сервер.
allow_write_notes: изменять заметки.
not_found:
--- /dev/null
+# Messages for Sardinian (sardu)
+# Exported from translatewiki.net
+# Export driver: phpyaml
+# Author: Abijeet Patro
+# Author: L2212
+# Author: Placebo2
+# Author: Via maxima
+---
+sc:
+ time:
+ formats:
+ friendly: '%e %B %Y a is %H:%M'
+ helpers:
+ submit:
+ diary_comment:
+ create: Sarva
+ diary_entry:
+ create: Pùblica
+ update: Agiorna
+ issue_comment:
+ create: Agiunghe unu cumentu
+ message:
+ create: Imbia
+ client_application:
+ create: Registra·ti
+ update: Modìfica
+ redaction:
+ create: Crea una revisione
+ trace:
+ create: Càrriga
+ update: Sarva sas modìficas
+ user_block:
+ create: Crea unu blocu
+ update: Agiorna su blocu
+ activerecord:
+ errors:
+ messages:
+ invalid_email_address: non paret èssere un'indiritzu de posta eletrònica vàlidu
+ models:
+ acl: Lista de Controllu de Atzessu
+ country: Istadu
+ friend: Amigu
+ language: Limba
+ message: Messàgiu
+ node: Nodu
+ node_tag: Etichetta de su nodu
+ old_node: Nodu betzu
+ old_node_tag: Etichetta betza de su nodu
+ old_relation: Relata betza
+ old_relation_member: Membru de sa relata betza
+ old_relation_tag: Eticheta de sa relata betza
+ old_way: Caminu betzu
+ old_way_node: Nodu de su caminu betzu
+ old_way_tag: Eticheta de su caminu betzu
+ relation: Relata
+ relation_member: Membru de sa relata
+ relation_tag: Eticheta de sa relata
+ session: Sessione
+ trace: Sestadu
+ tracepoint: Puntu de su sestadu
+ tracetag: Eticheta de su sestadu
+ user: Impreadore
+ user_preference: Preferèntzias de s'impreadore
+ user_token: Còdighe de s'impreadore
+ way: Caminu
+ way_node: Nodu de su caminu
+ attributes:
+ diary_comment:
+ body: Corpus
+ diary_entry:
+ user: Impreadore
+ title: 'Sugetu:'
+ latitude: Latitùdine
+ longitude: Longitùdine
+ language: Limba
+ friend:
+ user: Impreadore
+ friend: Amigu
+ trace:
+ user: Impreadore
+ visible: Visìbile
+ name: Nùmene
+ size: Mannesa
+ latitude: Latitùdine
+ longitude: Longitùdine
+ public: Pùblicu
+ description: Descritzione
+ message:
+ title: Ogetu
+ body: Corpus
+ recipient: Destinatàriu
+ user:
+ email: E-lìtera
+ active: Ativu
+ description: Descritzione
+ languages: Limbas
+ pass_crypt: Crae
+ datetime:
+ distance_in_words_ago:
+ half_a_minute: mesu minutu a como
+ editor:
+ id:
+ name: |2-
+
+ iD
+ description: iD (acontzadore in lìnia)
+ potlatch2:
+ name: Potlatch 2
+ description: Potlatch 2 (acontzadore in lìnia)
+ remote:
+ name: Controllu Remotu
+ description: Controllu Remotu (JOSM o Merkaartor)
+ auth:
+ providers:
+ openid: OpenID
+ google: Google
+ facebook: Facebook
+ windowslive: Windows Live
+ github: GitHub
+ wikipedia: Wikipedia
+ api:
+ notes:
+ rss:
+ title: Notas de OpenStreetMap
+ entry:
+ comment: Cummentu
+ full: Nota intrea
+ browse:
+ created: Creadu
+ closed: Serradu
+ version: Versione
+ anonymous: anònimu
+ part_of: Parte de
+ download_xml: Iscàrriga XML
+ view_history: Càstia Istòria
+ view_details: Mustra Detàllios
+ location: 'Logu:'
+ changeset:
+ belongs_to: Autore
+ join_discussion: Intra pro t'aunire a s'arresonu
+ discussion: Arresonu
+ way:
+ nodes: Nodos
+ relation:
+ members: Membros
+ relation_member:
+ type:
+ node: Nodu
+ way: Caminu
+ relation: Relata
+ containing_relation:
+ entry_html: Relata %{relation_name}
+ entry_role_html: Relata %{relation_name} (as %{relation_role})
+ not_found:
+ type:
+ node: nodu
+ way: caminu
+ relation: relata
+ note: nota
+ timeout:
+ type:
+ node: nodu
+ way: caminu
+ relation: relata
+ note: nota
+ redacted:
+ redaction: Revisione %{id}
+ message_html: Sa versione %{version} de custa %{type} non podet èssere ammustrada
+ ca est istada revisionada. Pro praghere òompia·ti %{redaction_link} pro àteras
+ informatziones.
+ type:
+ node: nodu
+ way: caminu
+ relation: relata
+ start_rjs:
+ load_data: Càrriga Datos
+ loading: Carrigamentu...
+ tag_details:
+ tags: Etichetas
+ note:
+ title: 'Nota: %{id}'
+ new_note: Nota noa
+ description: Descritzione
+ changesets:
+ changeset_paging_nav:
+ showing_page: Pàgina %{page}
+ next: Imbeniente »
+ previous: « Pretzedente
+ changeset:
+ anonymous: Anònimu
+ changesets:
+ id: ID
+ user: Impitadore
+ comment: Cummentu
+ diary_entries:
+ form:
+ subject: 'Ogetu:'
+ body: 'Corpus:'
+ language: 'Limba:'
+ location: 'Logu:'
+ latitude: 'Latitùdine:'
+ longitude: 'Longitùdine:'
+ show:
+ leave_a_comment: Lassa unu cummentu
+ login: Intra
+ diary_entry:
+ confirm: Cunfirma
+ diary_comment:
+ confirm: Cunfirma
+ location:
+ location: 'Logu:'
+ edit: Càmbia
+ comments:
+ when: Cando
+ comment: Cummentu
+ newer_comments: Cummentos prus noos
+ older_comments: Cummentos prus antigos
+ geocoder:
+ search_osm_nominatim:
+ prefix:
+ aerialway:
+ cable_car: Funivia
+ chair_lift: Ascensore carrotzina
+ drag_lift: Sciovia
+ platter: Sciovia a piatellu
+ pylon: Turre de sa funivia
+ station: Istatzione sciovia
+ t-bar: Sciovia a àncora
+ aeroway:
+ aerodrome: Aeròdromu
+ helipad: Eliportu
+ parking_position: Positzione parchègiu
+ runway: Pista
+ taxiway: Carrera de furriada
+ terminal: Terminale
+ amenity:
+ animal_shelter: Imbaru pro animales
+ atm: Isportellu automàticu
+ bank: Banca
+ bar: Tzilleri
+ bench: Panchita/banchina
+ bicycle_parking: Parchègiu pro Bitzicletas
+ bicycle_rental: Afitu de Bitzicletas
+ boat_rental: Afitu de Imbarcatziones
+ brothel: Casinu
+ bureau_de_change: Cambia-dinare
+ bus_station: Istatzione de Postales
+ cafe: Cafeteria
+ car_rental: Afitu de Veturas
+ car_sharing: Cumpartzidura de veturas
+ car_wash: Autolavàgiu
+ casino: Casinò
+ charging_station: Istatzione de carrigamentu
+ childcare: Assistèntzia a sos pitzinnos
+ cinema: Tzìnema
+ clinic: Clìnica
+ clock: Relògiu
+ college: Iscola superiore
+ courthouse: Tribunale
+ crematorium: Crematòriu
+ dentist: Dentista
+ doctors: Dotores
+ drinking_water: Abba Potàbile
+ driving_school: Autoiscola
+ embassy: Ambasciada
+ ferry_terminal: Terminale navios
+ fire_station: Pompieres
+ food_court: Corte de màndigu (Food court)
+ fountain: Funtana
+ fuel: Carburante
+ gambling: Giogu de arriscu
+ grave_yard: Campusantu
+ grit_bin: Cassione de arena
+ hospital: Ispidale
+ hunting_stand: Posta de cassa
+ ice_cream: Geladeria
+ kindergarten: Parcu de giogos
+ library: Biblioteca
+ marketplace: Mercadu
+ monastery: Monastèriu
+ motorcycle_parking: Parchègiu pro Mototzicletas
+ nightclub: Locale noturnu
+ nursing_home: Domo de cura
+ office: Ufìtziu
+ parking: Parchègiu
+ parking_entrance: Intrada de su Parchègiu
+ parking_space: Parchègiu
+ pharmacy: Apotecaria
+ place_of_worship: Logu de cultu
+ police: Politzia
+ post_box: Cassita postale
+ post_office: Ufìtziu postale
+ prison: Presone
+ public_building: Telèfonu Pùblicu
+ recycling: Puntu de Retziclàgiu
+ restaurant: Ristorante
+ retirement_home: Residèntzia Geriàtrica
+ sauna: Sàuna
+ school: Iscola
+ shelter: Imbaru
+ shop: Butega
+ shower: Dòtzia
+ social_centre: Tzentru Sotziale
+ social_facility: Istrutura pro servìtzios sotziales
+ studio: Istùdiu
+ swimming_pool: Piscina
+ taxi: Taxi
+ telephone: Telèfonu Pùblicu
+ theatre: Teatru
+ toilets: Còmodu
+ townhall: Munitzìpiu
+ university: Universidade
+ vending_machine: Distribudore automàticu
+ veterinary: Chirurgia veterinària
+ village_hall: Munitzìpiu
+ waste_basket: Cuntenidore de Arga
+ waste_disposal: Cuntenidore de Arga
+ water_point: Puntu de abba
+ youth_centre: Tzentru Giovanile
+ boundary:
+ administrative: Lìmite Amministrativu
+ national_park: Parcu Natzionale
+ protected_area: Àrea amparada
+ bridge:
+ aqueduct: Acuedotu
+ boardwalk: 'Istrutura ponte: pontigra'
+ suspension: Ponte suspesu
+ swing: Ponte giratori
+ viaduct: Ponte
+ "yes": Ponte
+ building:
+ "yes": Edifitziu
+ craft:
+ brewery: Fàbrica de birra
+ carpenter: Mastru de linna
+ electrician: Eletritzista
+ gardener: Giardinere
+ painter: Pintore
+ photographer: Fotògrafu
+ plumber: Idràulicu
+ shoemaker: Cartzeraju
+ tailor: Draperi
+ "yes": Butega de artesania
+ emergency:
+ ambulance_station: Istatzione ambulàntzias
+ assembly_point: Puntu de reunione
+ defibrillator: Defibrillatore
+ landing_site: Logu de aterràgiu de emergèntzia
+ phone: Telèfonu de Emergèntzias
+ water_tank: Depòsitu de Abba de Emergèntzia
+ "yes": Emergèntzia
+ highway:
+ abandoned: Ferrovia abbandonada
+ bridleway: Caminu pro caddos
+ bus_stop: Firmada de su Postale
+ construction: Caminu in costrutzione
+ cycleway: Pista Tziclàbile
+ elevator: Ascensore
+ emergency_access_point: Logu de intrada de emergèntzia
+ ford: Badu
+ give_way: Sinnale de Tzèdere su Passu
+ living_street: Carrera Residentziale
+ motorway: Autostrada
+ motorway_junction: Nodu Viàriu
+ passing_place: Logu de coladòrgiu
+ path: Caminu
+ platform: Andana pro postale o tramvia
+ primary: Caminu printzipale
+ primary_link: Caminu printzipale
+ raceway: Tzircùitu automobilìsticu
+ residential: Carrera residentziale
+ rest_area: Àrea de Pasu
+ road: Carrera
+ secondary: Carrera segundària
+ secondary_link: Carrera segundària
+ service: Carrera de Servìtziu
+ speed_camera: Autovelox
+ steps: Iscalinos
+ stop: Signale de istop
+ street_lamp: Lampione
+ tertiary: Carrera Tertziària
+ tertiary_link: Carrera Tertziària
+ track: Sestadu
+ turning_loop: Rotonda de cambiamentu de sensu
+ unclassified: Carrera senza classificatzione
+ "yes": Carrera
+ historic:
+ archaeological_site: Sìtiu Archeològicu
+ battlefield: Campu de Batalla
+ boundary_stone: Pedra de làcana
+ castle: Casteddu
+ church: Crèsia
+ city_gate: Porta de sa Tzitade
+ citywalls: Murallas de sa Tzitade
+ fort: Forte
+ heritage: Patrimoniu de s'umanidade
+ house: Domo
+ icon: Icona
+ manor: Villa
+ memorial: Memoriale
+ monument: Monumentu
+ roman_road: Carreggiada romana
+ ruins: Ruinas
+ stone: Pedra
+ tomb: Tumba
+ tower: Turre
+ wayside_cross: Rughe istòrica
+ wayside_shrine: Tabernàculu istòricu
+ wreck: Relitu
+ "yes": Sìtiu Istòricu
+ junction:
+ "yes": Giuntura de su caminu
+ landuse:
+ allotments: Giardinos familiares
+ basin: Batzinu
+ cemetery: Campusantu
+ commercial: Zona Cummertziale
+ conservation: Cunservatzione
+ construction: Fraigada
+ farm: Fatoria
+ farmland: Terras de coltivu
+ farmyard: Corrale
+ forest: Litu
+ garages: Garàgios
+ grass: Erva
+ industrial: Zona Industriale
+ landfill: Muntonàrgiu
+ meadow: Pradu
+ military: Zona Militare
+ orchard: Frutedu
+ quarry: Cava
+ railway: Ferrovia
+ recreation_ground: Zona de recreu
+ reservoir: Batzinu
+ residential: Àrea residentziale
+ retail: Bèndida
+ village_green: Àrea birde comune de sa bidda
+ vineyard: Bìngia
+ "yes": Impreu de su terrinu
+ leisure:
+ beach_resort: Cumplessu turìsticu de marina
+ common: Terrinu comunale
+ dog_park: Parcu pro sos Canes
+ fishing: Àrea de Pisca
+ fitness_centre: Palestra
+ fitness_station: Palestra a s'abertu
+ garden: Giardinu
+ golf_course: Campu de golf
+ horse_riding: Ecuitatzione
+ ice_rink: Pista de Astra
+ marina: Marina (portu minore)
+ miniature_golf: Minigolf
+ nature_reserve: Reserva naturale
+ park: Parcu
+ playground: Parcu pro Pitzinnos
+ recreation_ground: Zona de recreu
+ resort: Cumplessu turìsticu
+ sauna: Sàuna
+ slipway: Lassinadòrgiu
+ sports_centre: Tzentru isportivu
+ stadium: Istàdiu
+ swimming_pool: Piscina
+ track: Pista pro cùrrere
+ water_park: Parcu de abba
+ "yes": Tempus lìberu
+ man_made:
+ adit: Intrada de una galleria minerària
+ beacon: Sinnale marinu
+ breakwater: Paraundas
+ bridge: Ponte
+ chimney: Fumajolu
+ crane: Grue
+ dyke: Àrgine
+ flagpole: Palu de bandera
+ gasometer: Gasòmetru
+ groyne: Paraundas (Groyne)
+ kiln: Furru (kiln)
+ lighthouse: Faru
+ mast: Àrbore (de sa nave)
+ monitoring_station: Istatzione de cuntrollu
+ petroleum_well: Putzu petrolìferu
+ pier: Pontinu
+ pipeline: Tubadura
+ silo: Lòssia
+ storage_tank: Serbatòiu
+ surveillance: Videobardiamentu
+ tower: Turre
+ wastewater_plant: Depuradore
+ watermill: Mulinu a abba
+ water_tower: Turre ìdrica
+ water_well: Putzu petrolìferu
+ water_works: Istrutura idràulica
+ windmill: Mulinu a bentu
+ works: Fàbrica
+ "yes": Artifitziale
+ military:
+ airfield: Aeroportu militare
+ barracks: Caserma
+ "yes": Militare
+ mountain_pass:
+ "yes": Coladòrgiu montanu
+ natural:
+ bay: Baja
+ beach: Marina
+ cape: Cabu
+ cave_entrance: Intrada de sa gruta
+ cliff: Iscameddu
+ crater: Cratere
+ dune: Duna
+ fjord: Costera
+ forest: Litu
+ glacier: Niera
+ grassland: Pradu
+ heath: Ghiddostraju
+ hill: Montigru
+ island: Ìsula
+ land: Terra
+ marsh: Benale
+ moor: Ormègiu
+ mud: Ludu
+ peak: Bicu
+ point: Puntu
+ reef: Costera
+ ridge: Serra de monte
+ rock: Roca
+ saddle: Sedda
+ sand: Arena
+ scrub: Prunitzàrgiu
+ spring: Bena
+ stone: Pedra
+ strait: Astrintura
+ tree: Àrbore
+ valley: Badde
+ volcano: Vulcanu
+ water: Abba
+ wetland: Paule
+ wood: Buscu
+ office:
+ accountant: Contàbile
+ administrative: Amministratzione
+ architect: Architetu
+ association: Assòtziu
+ company: Azienda
+ educational_institution: Istitutzione educativa
+ employment_agency: Agèntzia pro su traballu
+ estate_agent: Butega immobiliare
+ government: Ufìtziu guvernativu
+ it: Ufìtziu IT
+ lawyer: Abogadu
+ telecommunication: Ufìtziu de telecomunicatziones
+ travel_agent: Agèntzia de biàgios
+ "yes": Ufìtziu
+ place:
+ allotments: Giardinos familiares
+ city: Tzitade
+ country: Paisu
+ county: Contea
+ farm: Fatoria
+ hamlet: Bidditzolu
+ house: Domo
+ houses: Domos
+ island: Ìsula
+ islet: Isuledda
+ isolated_dwelling: Domo isolada
+ locality: Localidade
+ municipality: Munitzìpiu
+ neighbourhood: Bighinadu
+ postcode: Còdighe postale
+ quarter: Bighinadu
+ region: Regione
+ sea: Mare
+ square: Pratza
+ state: Istadu
+ subdivision: Partzidura
+ suburb: Trighinzu - apendìtziu
+ town: Tzitade
+ village: Bidda
+ "yes": Logu
+ railway:
+ abandoned: Ferrovia abbandonada
+ construction: Ferrandeu in costrutzione
+ disused: Ferrandeu in disavesu
+ halt: Firmada de sos trenos
+ junction: Nodu ferruviàriu
+ level_crossing: passagiù a livellu
+ light_rail: Trenu lèbiu
+ monorail: Monorotàia
+ narrow_gauge: Ferrovia abbandonada
+ subway: Metropolitana
+ subway_entrance: Intrada de sa metropolitana
+ tram_stop: Firmada de su tram
+ shop:
+ alcohol: Licorista
+ antiques: Anticuàriu
+ art: Butega de arte
+ bakery: Paneteri
+ beauty: Salone de bellesa
+ beverages: Butega de bèvidas
+ bicycle: Butega de bitzicletas
+ bookmaker: Iscummissas
+ books: Libreria
+ boutique: Boutique
+ butcher: Carnitzeria
+ car_parts: Cantos de ricàmbiu pro automòbiles
+ car_repair: Riparatzione màchina
+ clothes: Butega de bestires
+ computer: Butega de informàtica
+ convenience: Buteghedda
+ copyshop: Copisteria
+ deli: Gastronomia
+ department_store: Supermercadu
+ doityourself: Butega de bricolatge
+ dry_cleaning: Sabunadura "a sicu"
+ electronics: Butega de eletrònica
+ estate_agent: Butega immobiliare
+ florist: Froraju
+ food: Alimentares
+ funeral_directors: Pompas fùnebres
+ furniture: Mòbiles
+ gallery: Galleria
+ general: Empòriu
+ gift: Butega de donos
+ hairdresser: Pilucheri
+ hardware: Ferramenta
+ interior_decoration: Decoradura de internos
+ laundry: Samunadòrgiu
+ lottery: Loteria
+ mall: Tzentru cummertziale
+ market: Mercadu
+ massage: Messàgiu
+ motorcycle: Butega de mototzicletas
+ newsagent: Agentzia de imprenta
+ optician: Òticu
+ paint: Butega de Pinturas
+ pawnbroker: Monte de piedade
+ pharmacy: Apotecaria
+ photo: Fotògrafu
+ second_hand: Ogetos de segunda manu
+ supermarket: Supermercadu
+ tailor: Draperi
+ tobacco: Istancu
+ travel_agency: Agèntzia de biàgios
+ tyres: Butega de pneumàticos
+ variety_store: Butega de ogetos baratos
+ wine: Butega de binos
+ "yes": Butega
+ tourism:
+ alpine_hut: Pinnetu alpinu
+ artwork: Òpera de arte
+ attraction: Atratzione
+ bed_and_breakfast: Bed and Breakfast
+ cabin: Cabina
+ camp_site: Campègiu
+ caravan_site: Campeggio pro roulotte
+ gallery: Galleria
+ guest_house: Pensione
+ hostel: Ostellu
+ information: Informatziones
+ museum: Museu
+ picnic_site: Àrea de recreu
+ theme_park: Parcu temàticu
+ viewpoint: Puntu panoràmicu
+ tunnel:
+ "yes": Galleria
+ waterway:
+ boatyard: Cantiere navale
+ canal: Canale
+ dam: Diga
+ lock_gate: Ghenna de serradura
+ mooring: Ormègiu
+ rapids: Tràinos
+ river: Riu
+ stream: Traghinu/Trainu
+ waterfall: Istrampu
+ weir: Nassàrgiu
+ description:
+ types:
+ cities: Tzitades
+ towns: Tzitadinas
+ places: Logos
+ results:
+ no_results: Perunu resultadu agadadu
+ more_results: Àteros risultados
+ issues:
+ index:
+ title: Problemas
+ search: Chirca
+ status: Istadu
+ reports: Raportos
+ last_updated: Ùrtimu agiornamentu
+ link_to_reports: Abbàida su raportu
+ reports:
+ new:
+ categories:
+ diary_entry:
+ other_label: Àteru
+ diary_comment:
+ other_label: Àteru
+ user:
+ other_label: Àteru
+ note:
+ other_label: Àteru
+ layouts:
+ logo:
+ alt_text: Logotipu de OpenStreetMap
+ logout: Essi
+ log_in: Intra
+ sign_up: Iscrie·ti
+ edit: Modìfica
+ history: Cronologia
+ export: Esporta
+ issues: Problemas
+ data: Datos
+ tou: Conditziones de impreu
+ help: Agiudu
+ about: Informatziones
+ copyright: Deretu de autore
+ community: Comunidade
+ foundation: Fundatzione
+ learn_more: Leghe àteru
+ more: Àteru
+ notifier:
+ diary_comment_notification:
+ hi: Salude %{to_user},
+ header: '%{from_user} at cummentadu s''intrada cuotidiana de OpenStreetMap cun
+ su tema %{subject}:'
+ footer: Podes lèghere su cummentu fintzas in %{readurl} e cummentare in %{commenturl}
+ o rispònnere in %{replyurl}
+ message_notification:
+ hi: Salude %{to_user},
+ header: '%{from_user} at imbiadu unu messàgiu a traessu de OpenStreetMap cun
+ su tema %{subject}:'
+ footer_html: Podes lèghere su messàgiu fintzas in %{readurl} e podes rispònnere
+ in %{replyurl}
+ friend_notification:
+ hi: Salude %{to_user},
+ subject: '[OpenStreetMap] %{user} t''at annànghidu a sa lista de amigos'
+ had_added_you: '%{user} t''at annantu comente a amigu in OpenStreetMap.'
+ see_their_profile: Podes bìdere su profilu suo in %{userurl}.
+ befriend_them: Lu/a podes fintzas annànghere comente a amigu/a in %{befriendurl}.
+ gpx_notification:
+ greeting: Salude,
+ your_gpx_file: Paret chi fu GPX file tuo
+ with_description: cun sa descritzione
+ and_the_tags: 'e sas etichetas imbenientes:'
+ and_no_tags: e peruna eticheta.
+ failure:
+ subject: '[OpenStreetMap] Faddina de importatzione de GPX'
+ failed_to_import: 'non si podet importare. Sa faddina est istada:'
+ more_info_1: Prus informatzione in relatzione a errores de importatzione de
+ GPX e comente los evitare
+ more_info_2: 'los podes agatare a:'
+ success:
+ subject: '[OpenStreetMap] Importatzione de GPX curreta'
+ loaded_successfully: carrigadu in manera curreta cun %{trace_points} puntos
+ in unu totale de %{possible_points} puntos possìbiles.
+ signup_confirm:
+ subject: '[OpenStreetMap] Bene bènnidos a OpenStreetMap'
+ greeting: Salude!
+ created: Calicunu (isperamus tue matessi) at creadu commo·commo unu contu a
+ %{site_url}.
+ confirm: 'Primu de totu, depimus cunfirmare chi custa petitzione de creatzione
+ de contu est bostra; si l''est, incarcades subra su ligàmene imbeniente pro
+ la cunfirmare:'
+ email_confirm:
+ subject: '[OpenStreetMap] Cunfirma s''indiritzu de posta'
+ email_confirm_plain:
+ greeting: Salude,
+ hopefully_you: Calicunu (isperamus tue matessi) cheret cambiare s'indiritzu
+ eletrònicu tuo dae %{server_url} cun %{new_address}.
+ email_confirm_html:
+ greeting: Salude,
+ hopefully_you: Calicunu (isperamus tue matessi) cheret cambiare s'indiritzu
+ eletrònicu tuo dae %{server_url} cun %{new_address}.
+ lost_password_plain:
+ greeting: Salude,
+ lost_password_html:
+ greeting: Salude,
+ note_comment_notification:
+ greeting: Salude,
+ changeset_comment_notification:
+ hi: Salude %{to_user},
+ greeting: Salude,
+ messages:
+ inbox:
+ from: Dae
+ subject: 'Sugetu:'
+ date: Data
+ message_summary:
+ unread_button: Sinna comente no lèghidu
+ read_button: Sinna comente lèghidu
+ reply_button: Risponde
+ destroy_button: Cantzella
+ new:
+ title: Imbia messàgiu
+ send_message_to_html: Imbia unu messàgiu nou a %{name}
+ subject: 'Sugetu:'
+ body: Corpus
+ create:
+ message_sent: Messàgiu imbiadu
+ outbox:
+ to: Cara a
+ subject: 'Sugetu:'
+ date: Data
+ show:
+ from: Dae
+ subject: 'Sugetu:'
+ date: Data
+ reply_button: Risponde
+ unread_button: Sinna comente no lèghidu
+ destroy_button: Cantzella
+ back: In palas
+ to: Cara a
+ sent_message_summary:
+ destroy_button: Cantzella
+ destroy:
+ destroyed: Messàgiu iscantzelladu
+ site:
+ index:
+ createnote: Annanghe una nota
+ export:
+ title: Esporta
+ options: Optziones
+ format: Formadu
+ scale: Iscala
+ max: màssimu
+ image_size: Mannària de s'immàgine
+ zoom: Ismanniamentu
+ export_button: Esporta
+ fixthemap:
+ how_to_help:
+ title: Comente agiudare
+ join_the_community:
+ title: Auni·ti a sa comunidade
+ help:
+ welcome:
+ url: /bene bènnidu
+ sidebar:
+ search_results: Risultados de sa chirca
+ close: Serra
+ search:
+ search: Chirca
+ get_directions: Otene indicatziones
+ from: Dae
+ to: Cara a
+ submit_text: Bae
+ key:
+ table:
+ entry:
+ motorway: Autostrada
+ primary: Caminu printzipale
+ secondary: Carrera segundària
+ unclassified: Carrera chene classificatzione
+ track: Sestadu
+ bridleway: Caminu pro caddos
+ cycleway: Pista tziclàbile
+ footway: Caminu pro pedones
+ rail: Ferrovia
+ subway: Metropolitana
+ tram:
+ - Trenu lèbiu/metropolitana lèbia
+ - Tram
+ cable:
+ - Funivia
+ - ascensore carrotzina
+ runway:
+ 1: carrera de furriada
+ apron:
+ 1: terminale
+ admin: Làcana amministrativa
+ forest: Litu
+ wood: Buscu
+ golf: Campu de golf
+ park: Parcu
+ resident: Àrea de residèntzia
+ common:
+ - Comunu
+ - pradu
+ industrial: Àrea industriale
+ commercial: Àrea cummertziale
+ lake:
+ - Lagu
+ - batzinu
+ farm: Fatoria
+ cemetery: Campusantu
+ allotments: Giardinos familiares
+ centre: Tzentru isportivu
+ reserve: Reserva naturale
+ military: Zona militare
+ school:
+ - Iscola
+ - universidade
+ private: Atzessu privadu
+ destination: Atzessu pro sa destinatzione
+ bicycle_shop: Butega de bitzicletas
+ bicycle_parking: Parchègiu pro bitzicletas
+ toilets: Còmodu
+ richtext_area:
+ edit: Modìfica
+ preview: Anteprima
+ markdown_help:
+ link: Ligàmene
+ text: Testu
+ image: Immàgine
+ welcome:
+ title: Bene bènnidu!
+ rules:
+ title: Règulas!
+ add_a_note:
+ title: No Time To Edit? Annanghe una nota!
+ traces:
+ new:
+ description: 'Descritzione:'
+ tags: 'Etichetas:'
+ visibility: 'Visibilidade:'
+ visibility_help: ite cheret nàrrere?
+ help: Agiudu
+ create:
+ upload_failed: Sorry, the GPX upload failed. An administrator has been alerted
+ to the error. Torra·bi a proare.
+ edit:
+ filename: 'Nùmene documentu:'
+ download: iscàrriga
+ points: 'Puntos:'
+ map: mapa
+ edit: modìfica
+ owner: 'Mere:'
+ description: 'Descritzione:'
+ tags: 'Etichetas:'
+ visibility: 'Visibilidade:'
+ visibility_help: ite cheret nàrrere?
+ trace_optionals:
+ tags: Etichetas
+ show:
+ filename: 'Nùmene documentu:'
+ download: iscàrriga
+ points: 'Puntos:'
+ map: mapa
+ edit: modìfica
+ owner: 'Mere:'
+ description: 'Descritzione:'
+ tags: 'Etichetas:'
+ visibility: 'Visibilidade:'
+ trace_paging_nav:
+ showing_page: Pàgina %{page}
+ trace:
+ edit: modìfica
+ by: De
+ map: mapa
+ oauth_clients:
+ form:
+ name: Nùmene
+ users:
+ login:
+ title: Intra
+ heading: Intra
+ login_button: Intra
+ new:
+ title: Iscrie·ti
+ continue: Iscrie·ti
+ terms:
+ continue: Sighi
+ decline: Refuda
+ legale_names:
+ france: Frantza
+ italy: Itàlia
+ show:
+ my profile: Su profilu meu
+ edits: Modìficas
+ description: Descritzione
+ settings_link_text: impostatziones
+ confirm: Cunfirma
+ popup:
+ friend: Amigu
+ account:
+ latitude: 'Latitùdine:'
+ longitude: 'Longitùdine:'
+ save changes button: Sarva sas modìficas
+ confirm:
+ button: Cunfirma
+ confirm_email:
+ button: Cunfirma
+ user_role:
+ grant:
+ confirm: Cunfirma
+ revoke:
+ confirm: Cunfirma
+ user_blocks:
+ show:
+ created: Creadu
+ status: Istadu
+ edit: Modìfica
+ block:
+ edit: Modìfica
+ blocks:
+ creator_name: Creadore
+ status: Istadu
+ showing_page: Pàgina %{page}
+ next: Imbeniente »
+ previous: « Pretzedente
+ notes:
+ mine:
+ creator: Creadore
+ description: Descritzione
+ javascripts:
+ close: Serra
+ share:
+ title: Cumpartzi
+ cancel: Annulla
+ image: Immàgine
+ long_link: Ligàmene
+ short_link: Ligàmene curtzu
+ format: 'Formadu:'
+ scale: 'Iscala:'
+ download: Iscàrriga
+ short_url: URL curtzu
+ map:
+ locate:
+ title: Ammustra sa positzione mea
+ changesets:
+ show:
+ comment: Cummentu
+ subscribe: Sutaiscrie·ti
+ unsubscribe: Annulla sa sutiscritzione
+ hide_comment: cua
+ unhide_comment: ammustra
+ notes:
+ show:
+ hide: Cua
+ comment: Cummentu
+ directions:
+ engines:
+ fossgis_osrm_bike: Bitzicleta (OSRM)
+ fossgis_osrm_car: Màchina (OSRM)
+ fossgis_osrm_foot: A pee (OSRM)
+ graphhopper_bicycle: Bitzicleta (GraphHopper)
+ graphhopper_car: Màchina (GraphHopper)
+ graphhopper_foot: A pee (GraphHopper)
+ directions: Indicatziones
+ distance: Distàntzia
+ query:
+ node: Nodu
+ way: Caminu
+ relation: Relata
+ redactions:
+ edit:
+ description: Descritzione
+ heading: Modìfica sa revisione
+ title: Modìfica sa revisione
+ index:
+ empty: Non b'ant revisiones de ammustrare.
+ heading: Lista de revisiones
+ title: Lista de revisiones
+ new:
+ description: Descritzione
+ heading: Inserta informatziones pro una revisione noa
+ show:
+ description: 'Descritzione:'
+ heading: Ammustrende sa revisione "%{title}"
+ edit: Modìfica custa revisione
+ create:
+ flash: Revisione creada.
+ destroy:
+ not_empty: Sa revisione no est bòida. Pro praghere iscontza totu sas versiones
+ chi apartenent a custa revisione in antis de l'iscantzellare.
+ error: B'at àpidu una faddina in s'iscantzellamentu de custa revisione.
+...
# Exported from translatewiki.net
# Export driver: phpyaml
# Author: Abijeet Patro
+# Author: Chiak
# Author: Helix84
# Author: Jose1711
# Author: KuboF
diary_comment: Komentár k denníku
diary_entry: Záznam denníka
friend: Priateľ
+ issue: Problém
language: Jazyk
message: Správa
node: Uzol
relation: Relácia
relation_member: Člen relácie
relation_tag: Značka relácie
+ report: Hlásenie
session: Relácia
trace: Stopa
tracepoint: Bod stopy
description: Popis
languages: Jazyky
pass_crypt: Heslo
+ datetime:
+ distance_in_words_ago:
+ half_a_minute: pred pol minútou
editor:
default: Predvolený (v súčasnosti %{name})
potlatch:
remote:
name: Diaľkové ovládanie
description: Diaľkové ovládanie (JOSM alebo Merkaartor)
+ auth:
+ providers:
+ openid: OpenID
+ google: Google
+ facebook: Facebook
+ windowslive: Windows Live
+ github: GitHub
+ wikipedia: Wikipédia
api:
notes:
comment:
location:
location: 'Poloha:'
view: Zobraziť
- edit: Editovať
+ edit: Upraviť
feed:
user:
title: Záznamy OpenStreetMap denníka používateľa %{user}
charging_station: Nabíjacia stanica
cinema: Kino
clinic: Poliklinika
+ clock: Hodiny
college: Vysoká škola
community_centre: Kultúrne stredisko
courthouse: Súd
wayside_cross: Božie muky
wayside_shrine: Malá kaplnka pri ceste
wreck: Zrúcanina
+ junction:
+ "yes": Križovatka
landuse:
allotments: Záhradkárske osady
basin: Vodná nádrž
bird_hide: Vtáčia pozorovateľňa
common: Verejné priestranstvo
dog_park: Psí park
+ firepit: Ohnisko
fishing: Rybolov (športový)
fitness_centre: Fitnescentrum
fitness_station: Fitnes zastávka
swimming_pool: Plaváreň
track: Bežecká dráha
water_park: Aquapark
+ "yes": Voľný čas
man_made:
+ beacon: Maják
+ bridge: Most
+ bunker_silo: Bunker
+ chimney: Komín
+ crane: Žeriav
+ embankment: Násyp
+ gasometer: Plynojem
lighthouse: Maják
+ mast: Stožiar
mine: Baňa
mineshaft: Šachta bane
+ petroleum_well: Ropný vrt
pipeline: Vodovod
silo: Silo
tower: Veža
+ water_tower: Vodojem
+ water_well: Studňa
+ windmill: Veterný mlyn
works: Továreň
"yes": Vytvorené človekom
military:
postcode: PSČ
region: Región
sea: More
+ square: Námestie
state: Štát
subdivision: Pododdelenie
suburb: Mestský obvod
town: Mesto 10 tis.-100 tis.
unincorporated_area: Nezaradená oblasť
village: Obec 200-10 tis.
+ "yes": Miesto
railway:
abandoned: Zrušená železničná trať
construction: Železnica vo výstavbe
beauty: Salón krásy
beverages: Občerstvenie
bicycle: Obchod s bicyklami
+ bookmaker: Stávková kancelária
books: Kníhkupectvo
boutique: Butik
butcher: Mäsiarstvo
hairdresser: Kaderníctvo,holičstvo
hardware: Železiarstvo
hifi: Hi-Fi
+ houseware: Domáce potreby
jewelry: Zlatníctvo
kiosk: Novinový stánok
laundry: Práčovňa
+ lottery: Lotéria
mall: Pešia zóna
market: Obchod
+ massage: Masáž
mobile_phone: Obchod s mobilnými telefónmi
motorcycle: Motocyklový obchod
music: Hudobniny
optician: Očná optika
organic: Obchod so zdravou výživou
outdoor: Turistický obchod
+ pawnbroker: Záložňa
pet: Chovprodukt
pharmacy: Lekáreň
photo: Fotokino
stationery: Papierníctvo
supermarket: Supermarket
tailor: Krajčír
+ tobacco: Trafika
toys: Hračkárstvo
travel_agency: Cestovná kancelária
+ tyres: Pneuservis
video: Videopožičovňa, predaj DVD
- wine: Mimo povolenia
+ wine: Vináreň
"yes": Obchod
tourism:
alpine_hut: Vysokohorská chata
results:
no_results: Neboli nájdené žiadne výsledky
more_results: Viac výsledkov
+ issues:
+ index:
+ search: Hľadať
+ user_not_found: Používateľ neexistuje
+ status: Stav
+ states:
+ ignored: Ignorované
+ open: Otvorené
+ resolved: Vyriešené
+ show:
+ resolve: Vyriešiť
+ ignore: Ignorovať
+ reopen: Znovu otvoriť
reports:
new:
title_html: Nahlásiť %{link}
edit: Upraviť
history: História
export: Export
+ issues: Problémy
data: Údaje
export_data: Export údajov
gps_traces: GPS stopy
intro_text: OpenStreetMap je mapa sveta, vytvorené ľuďmi ako vy, voľne využiteľná
pod slobodnou licenciou.
intro_2_create_account: Založte si konto
- partners_ucl: VR centrum UCL
+ partners_ucl: UCL
partners_bytemark: Bytemark Hosting
partners_partners: partneri
+ tou: Podmienky používania
osm_offline: OpenStreetMap databáza je teraz offline, zatiaľ čo potrebná údržba
databázy naďalej prebieha.
osm_read_only: OpenStreetMap databáza je teraz len v móde čítania (bez možnosti
date: Dátum
reply_button: Odpovedať
unread_button: Označiť ako neprečítané
+ destroy_button: Zmazať
back: Späť
to: Komu
wrong_user: Ste prihlásený ako „%{user}“, ale správa, ktorú si chcete prečítať,
title: Pripojte sa ku komunite
help:
welcome:
+ url: /welcome
title: Vitajte na OSM
beginners_guide:
url: http://wiki.openstreetmap.org/wiki/Sk:Beginners%27_guide
title: Fóra
irc:
title: IRC
+ switch2osm:
+ title: switch2osm
wiki:
url: http://wiki.openstreetmap.org/
- title: wiki.openstreetmap.org
+ title: OpenStreetMap Wiki
sidebar:
search_results: Výsledky vyhľadávania
close: Zavrieť
get_directions_title: Vyhľadať trasu medzi dvoma bodmi
from: Odkiaľ
to: Kam
- where_am_i: Kde som?
+ where_am_i: Kde je toto?
where_am_i_title: Opis aktuálnej polohy pomocou vyhľadávača
submit_text: hľ.
reverse_directions_text: Obrátiť smer
no_apps_html: Máte nejakú aplikáciu, využívajúcu štandard %{oauth}, ktorá by
s nami mala spolupracovať? Aplikáciu je potrebné najprv zaregistrovať, až
potom sem bude môcť posielať OAuth požiadavky.
+ oauth: OAuth
registered_apps: 'Máte zaregistrované nasledujúce klientské aplikácie:'
register_new: Zaregistrovať aplikáciu
form:
previous: « Predchádzajúca stránka
notes:
mine:
+ id: ID
creator: Autor
description: Popis
created_at: Vytvorené
link: Odkaz alebo HTML
long_link: Odkaz
short_link: Krátky odkaz
+ geo_uri: Geo URI
embed: HTML
custom_dimensions: Nastaviť vlastné rozmery
format: 'Formát:'
createnote_disabled_tooltip: Pre vloženie poznámky priblížte mapu
changesets:
show:
+ subscribe: Odoberať
+ unsubscribe: Zrušiť odoberanie
hide_comment: skryť
unhide_comment: zobraziť
notes:
add: Pridať poznámku
show:
hide: Skryť
+ resolve: Vyriešiť
directions:
ascend: Stúpanie
engines:
+ fossgis_osrm_bike: Bicykel (OSRM)
fossgis_osrm_car: Automobil (OSRM)
+ fossgis_osrm_foot: Pešo (OSRM)
graphhopper_bicycle: Bicykel (GraphHopper)
+ graphhopper_car: Automobil (GraphHopper)
graphhopper_foot: Pešo (GraphHopper)
descend: Klesanie
directions: Trasa
# Author: Ufred
# Author: Umeaboy
# Author: VickyC
+# Author: Westis
# Author: WikiPhoenix
# Author: Zvenzzon
---
primary: Primär väg (riksväg)
secondary: Sekundär väg (större länsväg)
unclassified: Oklassificerad väg
- track: Spår
+ track: Traktorväg
bridleway: Ridstig
cycleway: Cykelväg
cycleway_national: Nationell cykelväg
description: OpenStreetMap kullanıcıların en son günlük girdileri
comments:
has_commented_on: '%{display_name} aşağıdaki günlük girdilerini yorumladı'
- post: Yazı
+ post: Gönder
when: Tarih
comment: Yorum
newer_comments: Daha Yeni Yorumlar
longitude: 'Boylam:'
output: Çıktı
paste_html: Yukarıdaki HTML kodu kopyalayıp websitesinde yapıştırabilir
- export_button: Çıkart
+ export_button: Dışa aktar
fixthemap:
title: Sorun bildir / Haritayı onar
how_to_help:
out: 缩小
locate:
title: 显示我的位置
+ metersPopup:
+ one: 你距离该点1米
+ other: 你距离该点%{count}米
feetPopup:
one: 你就在这个位置的一英尺范围内
other: 你就在这个位置的%{count}英尺范围内
copyright: © <a href='%{copyright_url}'>OpenStreetMap 贡献者</a>
donate_link_text: <a class='donate-attr' href='%{donate_url}'>捐赠</a>
terms: <a href='%{terms_url}' target='_blank'>网站和API使用条款</a>
+ thunderforest: 地图图块来源<a href='%{thunderforest_url}' target='_blank'>Andy Allan</a>
+ hotosm: 图块风格作者为<a href='%{hotosm_url}' target='_blank'>Humanitarian OpenStreetMap
+ Team</a>,由<a href='%{osmfrance_url}' target='_blank'>OpenStreetMap France</a>托管
site:
edit_tooltip: 编辑地图
edit_disabled_tooltip: 放大地图以编辑
end
post "gpx/create" => "api/traces#create"
- get "gpx/:id" => "api/traces#show", :id => /\d+/
+ get "gpx/:id" => "api/traces#show", :as => :api_trace, :id => /\d+/
put "gpx/:id" => "api/traces#update", :id => /\d+/
delete "gpx/:id" => "api/traces#destroy", :id => /\d+/
get "gpx/:id/details" => "api/traces#show", :id => /\d+/
- get "gpx/:id/data" => "api/traces#data"
+ get "gpx/:id/data" => "api/traces#data", :as => :api_trace_data
# AMF (ActionScript) API
post "amf/read" => "api/amf#amf_read"
post "/user/new" => "users#create"
get "/user/terms" => "users#terms"
post "/user/save" => "users#save"
- get "/user/:display_name/confirm/resend" => "users#confirm_resend"
+ get "/user/:display_name/confirm/resend" => "users#confirm_resend", :as => :user_confirm_resend
match "/user/:display_name/confirm" => "users#confirm", :via => [:get, :post]
match "/user/confirm" => "users#confirm", :via => [:get, :post]
match "/user/confirm-email" => "users#confirm_email", :via => [:get, :post]
get "/user/:display_name" => "users#show", :as => "user"
match "/user/:display_name/make_friend" => "users#make_friend", :via => [:get, :post], :as => "make_friend"
match "/user/:display_name/remove_friend" => "users#remove_friend", :via => [:get, :post], :as => "remove_friend"
- match "/user/:display_name/account" => "users#account", :via => [:get, :post]
+ match "/user/:display_name/account" => "users#account", :via => [:get, :post], :as => "user_account"
get "/user/:display_name/set_status" => "users#set_status", :as => :set_status_user
get "/user/:display_name/delete" => "users#delete", :as => :delete_user
@number = 1 unless @paginator.has_page_number? @number
end
attr_reader :paginator, :number
+
alias to_i number
# Compares two Page objects and returns true when they represent the
require "test_helper"
module Api
- class TracesControllerTest < ActionController::TestCase
+ class TracesControllerTest < ActionDispatch::IntegrationTest
# Use temporary directories with unique names for each test
# This allows the tests to be run in parallel.
def setup
public_trace_file = create(:trace, :visibility => "public")
# First with no auth
- get :show, :params => { :id => public_trace_file.id }
+ get api_trace_path(public_trace_file)
assert_response :unauthorized
# Now with some other user, which should work since the trace is public
- basic_authorization create(:user).display_name, "test"
- get :show, :params => { :id => public_trace_file.id }
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ get api_trace_path(public_trace_file), :headers => auth_header
assert_response :success
# And finally we should be able to do it with the owner of the trace
- basic_authorization public_trace_file.user.display_name, "test"
- get :show, :params => { :id => public_trace_file.id }
+ auth_header = basic_authorization_header public_trace_file.user.display_name, "test"
+ get api_trace_path(public_trace_file), :headers => auth_header
assert_response :success
end
anon_trace_file = create(:trace, :visibility => "private")
# First with no auth
- get :show, :params => { :id => anon_trace_file.id }
+ get api_trace_path(anon_trace_file)
assert_response :unauthorized
# Now try with another user, which shouldn't work since the trace is anon
- basic_authorization create(:user).display_name, "test"
- get :show, :params => { :id => anon_trace_file.id }
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ get api_trace_path(anon_trace_file), :headers => auth_header
assert_response :forbidden
# And finally we should be able to get the trace details with the trace owner
- basic_authorization anon_trace_file.user.display_name, "test"
- get :show, :params => { :id => anon_trace_file.id }
+ auth_header = basic_authorization_header anon_trace_file.user.display_name, "test"
+ get api_trace_path(anon_trace_file), :headers => auth_header
assert_response :success
end
deleted_trace_file = create(:trace, :deleted)
# Try first with no auth, as it should require it
- get :show, :params => { :id => 0 }
+ get api_trace_path(:id => 0)
assert_response :unauthorized
# Login, and try again
- basic_authorization deleted_trace_file.user.display_name, "test"
- get :show, :params => { :id => 0 }
+ auth_header = basic_authorization_header deleted_trace_file.user.display_name, "test"
+ get api_trace_path(:id => 0), :headers => auth_header
assert_response :not_found
# Now try a trace which did exist but has been deleted
- basic_authorization deleted_trace_file.user.display_name, "test"
- get :show, :params => { :id => deleted_trace_file.id }
+ auth_header = basic_authorization_header deleted_trace_file.user.display_name, "test"
+ get api_trace_path(deleted_trace_file), :headers => auth_header
assert_response :not_found
end
public_trace_file = create(:trace, :visibility => "public", :fixture => "a")
# First with no auth
- get :data, :params => { :id => public_trace_file.id }
+ get api_trace_data_path(public_trace_file)
assert_response :unauthorized
# Now with some other user, which should work since the trace is public
- basic_authorization create(:user).display_name, "test"
- get :data, :params => { :id => public_trace_file.id }
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ get api_trace_data_path(public_trace_file), :headers => auth_header
check_trace_data public_trace_file, "848caa72f2f456d1bd6a0fdf228aa1b9"
# And finally we should be able to do it with the owner of the trace
- basic_authorization public_trace_file.user.display_name, "test"
- get :data, :params => { :id => public_trace_file.id }
+ auth_header = basic_authorization_header public_trace_file.user.display_name, "test"
+ get api_trace_data_path(public_trace_file), :headers => auth_header
check_trace_data public_trace_file, "848caa72f2f456d1bd6a0fdf228aa1b9"
end
identifiable_trace_file = create(:trace, :visibility => "identifiable", :fixture => "d")
# Authenticate as the owner of the trace we will be using
- basic_authorization identifiable_trace_file.user.display_name, "test"
+ auth_header = basic_authorization_header identifiable_trace_file.user.display_name, "test"
# First get the data as is
- get :data, :params => { :id => identifiable_trace_file.id }
+ get api_trace_data_path(identifiable_trace_file), :headers => auth_header
check_trace_data identifiable_trace_file, "c6422a3d8750faae49ed70e7e8a51b93", "application/x-gzip", "gpx.gz"
# Now ask explicitly for XML format
- get :data, :params => { :id => identifiable_trace_file.id, :format => "xml" }
+ get api_trace_data_path(identifiable_trace_file, :format => "xml"), :headers => auth_header
check_trace_data identifiable_trace_file, "abd6675fdf3024a84fc0a1deac147c0d", "application/xml", "xml"
# Now ask explicitly for GPX format
- get :data, :params => { :id => identifiable_trace_file.id, :format => "gpx" }
+ get api_trace_data_path(identifiable_trace_file, :format => "gpx"), :headers => auth_header
check_trace_data identifiable_trace_file, "abd6675fdf3024a84fc0a1deac147c0d"
end
anon_trace_file = create(:trace, :visibility => "private", :fixture => "b")
# First with no auth
- get :data, :params => { :id => anon_trace_file.id }
+ get api_trace_data_path(anon_trace_file)
assert_response :unauthorized
# Now with some other user, which shouldn't work since the trace is anon
- basic_authorization create(:user).display_name, "test"
- get :data, :params => { :id => anon_trace_file.id }
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ get api_trace_data_path(anon_trace_file), :headers => auth_header
assert_response :forbidden
# And finally we should be able to do it with the owner of the trace
- basic_authorization anon_trace_file.user.display_name, "test"
- get :data, :params => { :id => anon_trace_file.id }
+ auth_header = basic_authorization_header anon_trace_file.user.display_name, "test"
+ get api_trace_data_path(anon_trace_file), :headers => auth_header
check_trace_data anon_trace_file, "db4cb5ed2d7d2b627b3b504296c4f701"
end
deleted_trace_file = create(:trace, :deleted)
# Try first with no auth, as it should require it
- get :data, :params => { :id => 0 }
+ get api_trace_data_path(:id => 0)
assert_response :unauthorized
# Login, and try again
- basic_authorization create(:user).display_name, "test"
- get :data, :params => { :id => 0 }
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ get api_trace_data_path(:id => 0), :headers => auth_header
assert_response :not_found
# Now try a trace which did exist but has been deleted
- basic_authorization deleted_trace_file.user.display_name, "test"
- get :data, :params => { :id => deleted_trace_file.id }
+ auth_header = basic_authorization_header deleted_trace_file.user.display_name, "test"
+ get api_trace_data_path(deleted_trace_file), :headers => auth_header
assert_response :not_found
end
user = create(:user)
# First with no auth
- post :create, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }
+ post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }
assert_response :unauthorized
# Rewind the file
# Now authenticated
create(:user_preference, :user => user, :k => "gps.trace.visibility", :v => "identifiable")
assert_not_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v
- basic_authorization user.display_name, "test"
- post :create, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }
+ auth_header = basic_authorization_header user.display_name, "test"
+ post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }, :headers => auth_header
assert_response :success
trace = Trace.find(response.body.to_i)
assert_equal "a.gpx", trace.name
# Now authenticated, with the legacy public flag
assert_not_equal "public", user.preferences.where(:k => "gps.trace.visibility").first.v
- basic_authorization user.display_name, "test"
- post :create, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 1 }
+ auth_header = basic_authorization_header user.display_name, "test"
+ post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 1 }, :headers => auth_header
assert_response :success
trace = Trace.find(response.body.to_i)
assert_equal "a.gpx", trace.name
# Now authenticated, with the legacy private flag
second_user = create(:user)
assert_nil second_user.preferences.where(:k => "gps.trace.visibility").first
- basic_authorization second_user.display_name, "test"
- post :create, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 0 }
+ auth_header = basic_authorization_header second_user.display_name, "test"
+ post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 0 }, :headers => auth_header
assert_response :success
trace = Trace.find(response.body.to_i)
assert_equal "a.gpx", trace.name
anon_trace_file = create(:trace, :visibility => "private")
# First with no auth
- put :update, :params => { :id => public_trace_file.id }, :body => create_trace_xml(public_trace_file)
+ put api_trace_path(public_trace_file), :params => create_trace_xml(public_trace_file)
assert_response :unauthorized
# Now with some other user, which should fail
- basic_authorization create(:user).display_name, "test"
- put :update, :params => { :id => public_trace_file.id }, :body => create_trace_xml(public_trace_file)
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ put api_trace_path(public_trace_file), :params => create_trace_xml(public_trace_file), :headers => auth_header
assert_response :forbidden
# Now with a trace which doesn't exist
- basic_authorization create(:user).display_name, "test"
- put :update, :params => { :id => 0 }, :body => create_trace_xml(public_trace_file)
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ put api_trace_path(:id => 0), :params => create_trace_xml(public_trace_file), :headers => auth_header
assert_response :not_found
# Now with a trace which did exist but has been deleted
- basic_authorization deleted_trace_file.user.display_name, "test"
- put :update, :params => { :id => deleted_trace_file.id }, :body => create_trace_xml(deleted_trace_file)
+ auth_header = basic_authorization_header deleted_trace_file.user.display_name, "test"
+ put api_trace_path(deleted_trace_file), :params => create_trace_xml(deleted_trace_file), :headers => auth_header
assert_response :not_found
# Now try an update with the wrong ID
- basic_authorization public_trace_file.user.display_name, "test"
- put :update, :params => { :id => public_trace_file.id }, :body => create_trace_xml(anon_trace_file)
+ auth_header = basic_authorization_header public_trace_file.user.display_name, "test"
+ put api_trace_path(public_trace_file), :params => create_trace_xml(anon_trace_file), :headers => auth_header
assert_response :bad_request,
"should not be able to update a trace with a different ID from the XML"
# And finally try an update that should work
- basic_authorization public_trace_file.user.display_name, "test"
+ auth_header = basic_authorization_header public_trace_file.user.display_name, "test"
t = public_trace_file
t.description = "Changed description"
t.visibility = "private"
- put :update, :params => { :id => t.id }, :body => create_trace_xml(t)
+ put api_trace_path(t), :params => create_trace_xml(t), :headers => auth_header
assert_response :success
nt = Trace.find(t.id)
assert_equal nt.description, t.description
def test_update_tags
tracetag = create(:tracetag)
trace = tracetag.trace
- basic_authorization trace.user.display_name, "test"
+ auth_header = basic_authorization_header trace.user.display_name, "test"
- put :update, :params => { :id => trace.id }, :body => create_trace_xml(trace)
+ put api_trace_path(trace), :params => create_trace_xml(trace), :headers => auth_header
assert_response :success
updated = Trace.find(trace.id)
public_trace_file = create(:trace, :visibility => "public")
# First with no auth
- delete :destroy, :params => { :id => public_trace_file.id }
+ delete api_trace_path(public_trace_file)
assert_response :unauthorized
# Now with some other user, which should fail
- basic_authorization create(:user).display_name, "test"
- delete :destroy, :params => { :id => public_trace_file.id }
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ delete api_trace_path(public_trace_file), :headers => auth_header
assert_response :forbidden
# Now with a trace which doesn't exist
- basic_authorization create(:user).display_name, "test"
- delete :destroy, :params => { :id => 0 }
+ auth_header = basic_authorization_header create(:user).display_name, "test"
+ delete api_trace_path(:id => 0), :headers => auth_header
assert_response :not_found
# And finally we should be able to do it with the owner of the trace
- basic_authorization public_trace_file.user.display_name, "test"
- delete :destroy, :params => { :id => public_trace_file.id }
+ auth_header = basic_authorization_header public_trace_file.user.display_name, "test"
+ delete api_trace_path(public_trace_file), :headers => auth_header
assert_response :success
# Try it a second time, which should fail
- basic_authorization public_trace_file.user.display_name, "test"
- delete :destroy, :params => { :id => public_trace_file.id }
+ auth_header = basic_authorization_header public_trace_file.user.display_name, "test"
+ delete api_trace_path(public_trace_file), :headers => auth_header
assert_response :not_found
end
require "test_helper"
-class UsersControllerTest < ActionController::TestCase
+class UsersControllerTest < ActionDispatch::IntegrationTest
##
# test all routes which lead to this controller
def test_routes
# The user creation page loads
def test_new_view
- get :new
+ get user_new_path
assert_response :redirect
assert_redirected_to user_new_path(:cookie_test => "true")
- get :new, :params => { :cookie_test => "true" }, :session => { :cookie_test => true }
+ get user_new_path, :params => { :cookie_test => "true" }
assert_response :success
assert_select "html", :count => 1 do
end
def test_new_view_logged_in
- session[:user] = create(:user).id
+ session_for(create(:user))
- get :new
- assert_response :redirect
- assert_redirected_to user_new_path(:cookie_test => "true")
- get :new, :params => { :cookie_test => "true" }
+ get user_new_path
assert_response :redirect
assert_redirected_to root_path
- get :new, :params => { :referer => "/test" }
- assert_response :redirect
- assert_redirected_to user_new_path(:referer => "/test", :cookie_test => "true")
- get :new, :params => { :referer => "/test", :cookie_test => "true" }
+ get user_new_path, :params => { :referer => "/test" }
assert_response :redirect
assert_redirected_to "/test"
end
def test_new_success
user = build(:user, :pending)
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_new_path, :params => { :user => user.attributes }
+ end
+ end
+ end
+
assert_difference "User.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :save, :session => { :new_user => user }, :params => { :read_ct => 1, :read_tou => 1 }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
end
end
end
def test_new_duplicate_email
user = build(:user, :pending)
- user.email = create(:user).email
+ create(:user, :email => user.email)
assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :save, :session => { :new_user => user }, :params => { :read_ct => 1, :read_tou => 1 }
+ post user_new_path, :params => { :user => user.attributes }
end
end
end
assert_select "form > fieldset > div.standard-form-row > input.field_with_errors#user_email"
end
- def test_new_duplicate_email_uppercase
+ def test_save_duplicate_email
user = build(:user, :pending)
- user.email = create(:user).email.upcase
+ # Set up our user as being half-way through registration
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_new_path, :params => { :user => user.attributes }
+ end
+ end
+ end
+
+ # Now create another user with that email
+ create(:user, :email => user.email)
+
+ # Check that the second half of registration fails
assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :save, :session => { :new_user => user }, :params => { :read_ct => 1, :read_tou => 1 }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
end
end
end
assert_select "form > fieldset > div.standard-form-row > input.field_with_errors#user_email"
end
- def test_new_duplicate_name
+ def test_save_duplicate_email_uppercase
user = build(:user, :pending)
- user.display_name = create(:user).display_name
+ # Set up our user as being half-way through registration
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_new_path, :params => { :user => user.attributes }
+ end
+ end
+ end
+
+ # Now create another user with that email, but uppercased
+ create(:user, :email => user.email.upcase)
+
+ # Check that the second half of registration fails
assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :save, :session => { :new_user => user }, :params => { :read_ct => 1, :read_tou => 1 }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ end
+ end
+ end
+
+ assert_response :success
+ assert_template "new"
+ assert_select "form > fieldset > div.standard-form-row > input.field_with_errors#user_email"
+ end
+
+ def test_save_duplicate_name
+ user = build(:user, :pending)
+
+ # Set up our user as being half-way through registration
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_new_path, :params => { :user => user.attributes }
+ end
+ end
+ end
+
+ # Now create another user with that display name
+ create(:user, :display_name => user.display_name)
+
+ # Check that the second half of registration fails
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
end
end
end
assert_select "form > fieldset > div.standard-form-row > input.field_with_errors#user_display_name"
end
- def test_new_duplicate_name_uppercase
+ def test_save_duplicate_name_uppercase
user = build(:user, :pending)
- user.display_name = create(:user).display_name.upcase
+ # Set up our user as being half-way through registration
assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :save, :session => { :new_user => user }, :params => { :read_ct => 1, :read_tou => 1 }
+ post user_new_path, :params => { :user => user.attributes }
+ end
+ end
+ end
+
+ # Now create another user with that display_name, but uppercased
+ create(:user, :display_name => user.display_name.upcase)
+
+ # Check that the second half of registration fails
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
end
end
end
assert_select "form > fieldset > div.standard-form-row > input.field_with_errors#user_display_name"
end
- def test_new_blocked_domain
+ def test_save_blocked_domain
user = build(:user, :pending, :email => "user@example.net")
+
+ # Set up our user as being half-way through registration
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_new_path, :params => { :user => user.attributes }
+ end
+ end
+ end
+
+ # Now block that domain
create(:acl, :domain => "example.net", :k => "no_account_creation")
+ # Check that the second half of registration fails
assert_no_difference "User.count" do
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :save, :session => { :new_user => user }, :params => { :read_ct => 1, :read_tou => 1 }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
end
end
end
def test_save_referer_params
user = build(:user, :pending)
+ # Set up our user as being half-way through registration
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_new_path, :params => { :user => user.attributes, :referer => "/edit?editor=id#map=1/2/3" }
+ end
+ end
+ end
+
assert_difference "User.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :save, :session => { :new_user => user,
- :referer => "/edit?editor=id#map=1/2/3" },
- :params => { :read_ct => 1, :read_tou => 1 }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
end
end
end
assert_equal welcome_path(:editor => "id", :zoom => 1, :lat => 2, :lon => 3),
- user.tokens.order("id DESC").first.referer
+ User.find_by(:email => user.email).tokens.order("id DESC").first.referer
ActionMailer::Base.deliveries.clear
end
def test_logout_without_referer
- post :logout
+ post logout_path
assert_response :redirect
assert_redirected_to root_path
end
def test_logout_with_referer
- post :logout, :params => { :referer => "/test" }
+ post logout_path, :params => { :referer => "/test" }
assert_response :redirect
assert_redirected_to "/test"
end
def test_logout_fallback_without_referer
- get :logout
+ get logout_path
assert_response :success
assert_template :logout
assert_select "input[name=referer][value=?]", ""
end
def test_logout_fallback_with_referer
- get :logout, :params => { :referer => "/test" }
+ get logout_path, :params => { :referer => "/test" }
assert_response :success
assert_template :logout
assert_select "input[name=referer][value=?]", "/test"
end
- def test_logout_with_token
- token = create(:user).tokens.create
-
- session[:token] = token.token
+ def test_logout_removes_session_token
+ user = build(:user, :pending)
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
- post :logout
+ assert_difference "User.find_by(:email => user.email).tokens.count", -1 do
+ post logout_path
+ end
assert_response :redirect
assert_redirected_to root_path
- assert_nil session[:token]
- assert_nil UserToken.where(:id => token.id).first
end
def test_confirm_get
- user = create(:user, :pending)
- confirm_string = user.tokens.create.token
+ user = build(:user, :pending)
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create.token
- @request.cookies["_osm_session"] = user.display_name
- get :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_response :success
assert_template :confirm
end
def test_confirm_get_already_confirmed
- user = create(:user)
- confirm_string = user.tokens.create.token
+ user = build(:user, :pending)
+ stub_gravatar_request(user.email)
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create.token
+
+ # Get the confirmation page
+ get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ assert_response :success
+ assert_template :confirm
- @request.cookies["_osm_session"] = user.display_name
- get :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ # Confirm the user
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ assert_redirected_to welcome_path
+
+ # Now try to get the confirmation page again
+ get user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to root_path
end
def test_confirm_success_no_token_no_referer
- user = create(:user, :pending)
+ user = build(:user, :pending)
stub_gravatar_request(user.email)
- confirm_string = user.tokens.create.token
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create.token
+
+ post logout_path
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to login_path
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_success_good_token_no_referer
- user = create(:user, :pending)
+ user = build(:user, :pending)
stub_gravatar_request(user.email)
- confirm_string = user.tokens.create.token
- token = user.tokens.create.token
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create.token
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to welcome_path
end
def test_confirm_success_bad_token_no_referer
- user = create(:user, :pending)
+ user = build(:user, :pending)
stub_gravatar_request(user.email)
- confirm_string = user.tokens.create.token
- token = create(:user).tokens.create.token
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create.token
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
+ post logout_path
+ session_for(create(:user))
+
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to login_path
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_success_no_token_with_referer
- user = create(:user, :pending)
+ user = build(:user, :pending)
stub_gravatar_request(user.email)
- confirm_string = user.tokens.create(:referer => new_diary_entry_path).token
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+
+ post logout_path
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to login_path(:referer => new_diary_entry_path)
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_success_good_token_with_referer
- user = create(:user, :pending)
+ user = build(:user, :pending)
stub_gravatar_request(user.email)
- confirm_string = user.tokens.create(:referer => new_diary_entry_path).token
- token = user.tokens.create.token
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to new_diary_entry_path
end
def test_confirm_success_bad_token_with_referer
- user = create(:user, :pending)
+ user = build(:user, :pending)
stub_gravatar_request(user.email)
- confirm_string = user.tokens.create(:referer => new_diary_entry_path).token
- token = create(:user).tokens.create.token
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+
+ post logout_path
+ session_for(create(:user))
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }, :session => { :token => token }
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to login_path(:referer => new_diary_entry_path)
assert_match(/Confirmed your account/, flash[:notice])
end
def test_confirm_expired_token
- user = create(:user, :pending)
- confirm_string = user.tokens.create(:expiry => 1.day.ago).token
+ user = build(:user, :pending)
+ stub_gravatar_request(user.email)
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create(:expiry => 1.day.ago).token
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to :action => "confirm"
assert_match(/confirmation code has expired/, flash[:error])
end
def test_confirm_already_confirmed
- user = create(:user)
- confirm_string = user.tokens.create(:referer => new_diary_entry_path).token
+ user = build(:user, :pending)
+ stub_gravatar_request(user.email)
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
+ confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ assert_redirected_to new_diary_entry_path
- @request.cookies["_osm_session"] = user.display_name
- post :confirm, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
+ post logout_path
+
+ confirm_string = User.find_by(:email => user.email).tokens.create(:referer => new_diary_entry_path).token
+ post user_confirm_path, :params => { :display_name => user.display_name, :confirm_string => confirm_string }
assert_redirected_to :action => "login"
assert_match(/already been confirmed/, flash[:error])
end
def test_confirm_resend_success
- user = create(:user, :pending)
- session[:token] = user.tokens.create.token
+ user = build(:user, :pending)
+ post user_new_path, :params => { :user => user.attributes }
+ post user_save_path, :params => { :read_ct => 1, :read_tou => 1 }
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- get :confirm_resend, :params => { :display_name => user.display_name }
+ get user_confirm_resend_path(user)
end
end
end
def test_confirm_resend_no_token
- user = create(:user, :pending)
+ user = build(:user, :pending)
+ # only complete first half of registration
+ post user_new_path, :params => { :user => user.attributes }
+
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- get :confirm_resend, :params => { :display_name => user.display_name }
+ get user_confirm_resend_path(user)
end
end
def test_confirm_resend_unknown_user
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- get :confirm_resend, :params => { :display_name => "No Such User" }
+ get user_confirm_resend_path(:display_name => "No Such User")
end
end
user = create(:user)
confirm_string = user.tokens.create.token
- get :confirm_email, :params => { :confirm_string => confirm_string }
+ get user_confirm_email_path, :params => { :confirm_string => confirm_string }
assert_response :success
assert_template :confirm_email
end
stub_gravatar_request(user.new_email)
confirm_string = user.tokens.create.token
- post :confirm_email, :params => { :confirm_string => confirm_string }
+ post user_confirm_email_path, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match(/Confirmed your change of email address/, flash[:notice])
user = create(:user)
confirm_string = user.tokens.create.token
- post :confirm_email, :params => { :confirm_string => confirm_string }
+ post user_confirm_email_path, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match(/already been confirmed/, flash[:error])
end
def test_confirm_email_bad_token
- post :confirm_email, :params => { :confirm_string => "XXXXX" }
+ post user_confirm_email_path, :params => { :confirm_string => "XXXXX" }
assert_response :success
assert_template :confirm_email
assert_match(/confirmation code has expired or does not exist/, flash[:error])
confirm_string = user.tokens.create.token
# precondition gravatar should be turned off
assert_not user.image_use_gravatar
- post :confirm_email, :params => { :confirm_string => confirm_string }
+ post user_confirm_email_path, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match(/Confirmed your change of email address/, flash[:notice])
confirm_string = user.tokens.create.token
# precondition gravatar should be turned on
assert user.image_use_gravatar
- post :confirm_email, :params => { :confirm_string => confirm_string }
+ post user_confirm_email_path, :params => { :confirm_string => confirm_string }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_match(/Confirmed your change of email address/, flash[:notice])
end
def test_terms_new_user
- get :terms, :session => { :new_user => User.new }
+ user = build(:user, :pending)
+
+ # Set up our user as being half-way through registration
+ assert_no_difference "User.count" do
+ assert_no_difference "ActionMailer::Base.deliveries.size" do
+ perform_enqueued_jobs do
+ post user_new_path, :params => { :user => user.attributes }
+ end
+ end
+ end
+
+ get user_terms_path
+
assert_response :success
assert_template :terms
end
def test_terms_agreed
user = create(:user, :terms_seen => true, :terms_agreed => Date.yesterday)
- session[:user] = user.id
+ session_for(user)
- get :terms
+ get user_terms_path
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
end
def test_terms_not_seen_without_referer
user = create(:user, :terms_seen => false, :terms_agreed => nil)
- session[:user] = user.id
+ session_for(user)
- get :terms
+ get user_terms_path
assert_response :success
assert_template :terms
- post :save, :params => { :user => { :consider_pd => true }, :read_ct => 1, :read_tou => 1 }
+ post user_save_path, :params => { :user => { :consider_pd => true }, :read_ct => 1, :read_tou => 1 }
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert_equal "Thanks for accepting the new contributor terms!", flash[:notice]
def test_terms_not_seen_with_referer
user = create(:user, :terms_seen => false, :terms_agreed => nil)
- session[:user] = user.id
+ session_for(user)
- get :terms, :params => { :referer => "/test" }
+ get user_terms_path, :params => { :referer => "/test" }
assert_response :success
assert_template :terms
- post :save, :params => { :user => { :consider_pd => true }, :referer => "/test", :read_ct => 1, :read_tou => 1 }
+ post user_save_path, :params => { :user => { :consider_pd => true }, :referer => "/test", :read_ct => 1, :read_tou => 1 }
assert_response :redirect
assert_redirected_to "/test"
assert_equal "Thanks for accepting the new contributor terms!", flash[:notice]
# that your request is redirected to view the terms
def test_terms_not_seen_redirection
user = create(:user, :terms_seen => false, :terms_agreed => nil)
- session[:user] = user.id
+ session_for(user)
- get :account, :params => { :display_name => user.display_name }
+ get user_account_path(user)
assert_response :redirect
assert_redirected_to :action => :terms, :referer => "/user/#{ERB::Util.u(user.display_name)}/account"
end
def test_go_public
user = create(:user, :data_public => false)
- post :go_public, :session => { :user => user }
+ session_for(user)
+
+ post user_go_public_path
+
assert_response :redirect
assert_redirected_to :action => :account, :display_name => user.display_name
assert User.find(user.id).data_public
def test_lost_password
# Test fetching the lost password page
- get :lost_password
+ get user_forgot_password_path
assert_response :success
assert_template :lost_password
assert_select "div#notice", false
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :lost_password, :params => { :user => { :email => user.email } }
+ post user_forgot_password_path, :params => { :user => { :email => user.email } }
end
end
assert_response :redirect
# that has the same address in a different case
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :lost_password, :params => { :user => { :email => user.email.upcase } }
+ post user_forgot_password_path, :params => { :user => { :email => user.email.upcase } }
end
end
assert_response :redirect
# for more than one user but not an exact match for either
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :lost_password, :params => { :user => { :email => user.email.titlecase } }
+ post user_forgot_password_path, :params => { :user => { :email => user.email.titlecase } }
end
end
assert_response :success
third_user = create(:user)
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :lost_password, :params => { :user => { :email => third_user.email } }
+ post user_forgot_password_path, :params => { :user => { :email => third_user.email } }
end
end
assert_response :redirect
# same (case insensitively unique) address in a different case
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :lost_password, :params => { :user => { :email => third_user.email.upcase } }
+ post user_forgot_password_path, :params => { :user => { :email => third_user.email.upcase } }
end
end
assert_response :redirect
def test_reset_password
user = create(:user, :pending)
# Test a request with no token
- get :reset_password
+ get user_reset_password_path
assert_response :bad_request
# Test a request with a bogus token
- get :reset_password, :params => { :token => "made_up_token" }
+ get user_reset_password_path, :params => { :token => "made_up_token" }
assert_response :redirect
assert_redirected_to :action => :lost_password
token = user.tokens.create
# Test a request with a valid token
- get :reset_password, :params => { :token => token.token }
+ get user_reset_password_path, :params => { :token => token.token }
assert_response :success
assert_template :reset_password
# Test that errors are reported for erroneous submissions
- post :reset_password, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "different_password" } }
+ post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "different_password" } }
assert_response :success
assert_template :reset_password
assert_select "div#errorExplanation"
# Test setting a new password
- post :reset_password, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "new_password" } }
+ post user_reset_password_path, :params => { :token => token.token, :user => { :pass_crypt => "new_password", :pass_crypt_confirmation => "new_password" } }
assert_response :redirect
assert_redirected_to root_path
assert_equal user.id, session[:user]
# Make sure that you are redirected to the login page when
# you are not logged in
- get :account, :params => { :display_name => user.display_name }
+ get user_account_path(user)
assert_response :redirect
assert_redirected_to :action => "login", :referer => "/user/#{ERB::Util.u(user.display_name)}/account"
# Make sure that you are blocked when not logged in as the right user
- get :account, :params => { :display_name => user.display_name }, :session => { :user => create(:user) }
+ session_for(create(:user))
+ get user_account_path(user)
assert_response :forbidden
# Make sure we get the page when we are logged in as the right user
- get :account, :params => { :display_name => user.display_name }, :session => { :user => user }
+ session_for(user)
+ get user_account_path(user)
assert_response :success
assert_template :account
assert_select "form#accountForm" do |form|
# Updating the description should work
user.description = "new description"
user.preferred_editor = "default"
- post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes }
assert_response :success
assert_template :account
assert_select "div#errorExplanation", false
# Changing to a invalid editor should fail
user.preferred_editor = "unknown"
- post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes }
assert_response :success
assert_template :account
assert_select ".notice", false
# Changing to a valid editor should work
user.preferred_editor = "potlatch2"
- post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes }
assert_response :success
assert_template :account
assert_select "div#errorExplanation", false
# Changing to the default editor should work
user.preferred_editor = "default"
- post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes }
assert_response :success
assert_template :account
assert_select "div#errorExplanation", false
# Changing to an uploaded image should work
image = Rack::Test::UploadedFile.new("test/gpx/fixtures/a.gif", "image/gif")
- post :account, :params => { :display_name => user.display_name, :avatar_action => "new", :user => user.attributes.merge(:avatar => image) }, :session => { :user => user }
+ post user_account_path(user), :params => { :avatar_action => "new", :user => user.attributes.merge(:avatar => image) }
assert_response :success
assert_template :account
assert_select "div#errorExplanation", false
assert_select "form#accountForm > fieldset > div.standard-form-row.accountImage input[name=avatar_action][checked][value=?]", "keep"
# Changing to a gravatar image should work
- post :account, :params => { :display_name => user.display_name, :avatar_action => "gravatar", :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :avatar_action => "gravatar", :user => user.attributes }
assert_response :success
assert_template :account
assert_select "div#errorExplanation", false
assert_select "form#accountForm > fieldset > div.standard-form-row.accountImage input[name=avatar_action][checked][value=?]", "gravatar"
# Removing the image should work
- post :account, :params => { :display_name => user.display_name, :avatar_action => "delete", :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :avatar_action => "delete", :user => user.attributes }
assert_response :success
assert_template :account
assert_select "div#errorExplanation", false
assert_select "form#accountForm > fieldset > div.standard-form-row.accountImage input[name=avatar_action][checked]", false
# Adding external authentication should redirect to the auth provider
- post :account, :params => { :display_name => user.display_name, :user => user.attributes.merge(:auth_provider => "openid", :auth_uid => "gmail.com") }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes.merge(:auth_provider => "openid", :auth_uid => "gmail.com") }
assert_response :redirect
assert_redirected_to auth_path(:provider => "openid", :openid_url => "https://www.google.com/accounts/o8/id", :origin => "/user/#{ERB::Util.u(user.display_name)}/account")
# Changing name to one that exists should fail
new_attributes = user.attributes.dup.merge(:display_name => create(:user).display_name)
- post :account, :params => { :display_name => user.display_name, :user => new_attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => new_attributes }
assert_response :success
assert_template :account
assert_select ".notice", false
# Changing name to one that exists should fail, regardless of case
new_attributes = user.attributes.dup.merge(:display_name => create(:user).display_name.upcase)
- post :account, :params => { :display_name => user.display_name, :user => new_attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => new_attributes }
assert_response :success
assert_template :account
assert_select ".notice", false
# Changing name to one that doesn't exist should work
new_attributes = user.attributes.dup.merge(:display_name => "new tester")
- post :account, :params => { :display_name => user.display_name, :user => new_attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => new_attributes }
assert_response :success
assert_template :account
assert_select "div#errorExplanation", false
user.new_email = create(:user).email
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes }
end
end
assert_response :success
user.new_email = create(:user).email.upcase
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes }
end
end
assert_response :success
user.new_email = "new_tester@example.com"
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :account, :params => { :display_name => user.display_name, :user => user.attributes }, :session => { :user => user }
+ post user_account_path(user), :params => { :user => user.attributes }
end
end
assert_response :success
# information for the user
def test_show
# Test a non-existent user
- get :show, :params => { :display_name => "unknown" }
+ get user_path(:display_name => "unknown")
assert_response :not_found
# Test a normal user
create(:friendship, :befriender => user, :befriendee => friend_user)
create(:changeset, :user => friend_user)
- get :show, :params => { :display_name => user.display_name }
+ get user_path(user)
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
# Test a user who has been blocked
blocked_user = create(:user)
create(:user_block, :user => blocked_user)
- get :show, :params => { :display_name => blocked_user.display_name }
+ get user_path(blocked_user)
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(blocked_user.display_name)}/history']", 1
# Test a moderator who has applied blocks
moderator_user = create(:moderator_user)
create(:user_block, :creator => moderator_user)
- get :show, :params => { :display_name => moderator_user.display_name }
+ get user_path(moderator_user)
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(moderator_user.display_name)}/history']", 1
end
# Login as a normal user
- session[:user] = user.id
+ session_for(user)
# Test the normal user
- get :show, :params => { :display_name => user.display_name }
+ get user_path(user)
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
end
# Login as a moderator
- session[:user] = create(:moderator_user).id
+ session_for(create(:moderator_user))
# Test the normal user
- get :show, :params => { :display_name => user.display_name }
+ get user_path(user)
assert_response :success
assert_select "div#userinformation" do
assert_select "a[href^='/user/#{ERB::Util.u(user.display_name)}/history']", 1
seen_user = create(:user, :terms_seen => true, :terms_agreed => nil)
not_seen_user = create(:user, :terms_seen => false, :terms_agreed => nil)
- get :show, :params => { :display_name => agreed_user.display_name }
+ get user_path(agreed_user)
assert_response :success
assert_select "div#userinformation" do
assert_select "p", :count => 0, :text => /Contributor terms/
end
- get :show, :params => { :display_name => seen_user.display_name }
+ get user_path(seen_user)
assert_response :success
# put @response.body
assert_select "div#userinformation" do
assert_select "p", /Declined/
end
- get :show, :params => { :display_name => not_seen_user.display_name }
+ get user_path(not_seen_user)
assert_response :success
assert_select "div#userinformation" do
assert_select "p", :count => 1, :text => /Contributor terms/
assert_nil Friendship.where(:befriender => user, :befriendee => friend).first
# When not logged in a GET should ask us to login
- get :make_friend, :params => { :display_name => friend.display_name }
+ get make_friend_path(friend)
assert_redirected_to :action => "login", :referer => make_friend_path(:display_name => friend.display_name)
# When not logged in a POST should error
- post :make_friend, :params => { :display_name => friend.display_name }
+ post make_friend_path(friend)
assert_response :forbidden
assert_nil Friendship.where(:befriender => user, :befriendee => friend).first
+ session_for(user)
+
# When logged in a GET should get a confirmation page
- get :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
+ get make_friend_path(friend)
assert_response :success
assert_template :make_friend
assert_select "form" do
# When logged in a POST should add the friendship
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
+ post make_friend_path(friend)
end
end
assert_redirected_to user_path(friend)
# A second POST should report that the friendship already exists
assert_no_difference "ActionMailer::Base.deliveries.size" do
perform_enqueued_jobs do
- post :make_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
+ post make_friend_path(friend)
end
end
assert_redirected_to user_path(friend)
# Get users to work with
user = create(:user)
friend = create(:user)
+ session_for(user)
# Check that the users aren't already friends
assert_nil Friendship.where(:befriender => user, :befriendee => friend).first
# The GET should preserve any referer
- get :make_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
+ get make_friend_path(friend), :params => { :referer => "/test" }
assert_response :success
assert_template :make_friend
assert_select "form" do
# When logged in a POST should add the friendship and refer us
assert_difference "ActionMailer::Base.deliveries.size", 1 do
perform_enqueued_jobs do
- post :make_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
+ post make_friend_path(friend), :params => { :referer => "/test" }
end
end
assert_redirected_to "/test"
def test_make_friend_unkown_user
# Should error when a bogus user is specified
- get :make_friend, :params => { :display_name => "No Such User" }, :session => { :user => create(:user) }
+ session_for(create(:user))
+ get make_friend_path(:display_name => "No Such User")
assert_response :not_found
assert_template :no_such_user
end
assert Friendship.where(:befriender => user, :befriendee => friend).first
# When not logged in a GET should ask us to login
- get :remove_friend, :params => { :display_name => friend.display_name }
+ get remove_friend_path(friend)
assert_redirected_to :action => "login", :referer => remove_friend_path(:display_name => friend.display_name)
# When not logged in a POST should error
- post :remove_friend, :params => { :display_name => friend.display_name }
+ post remove_friend_path, :params => { :display_name => friend.display_name }
assert_response :forbidden
assert Friendship.where(:befriender => user, :befriendee => friend).first
+ session_for(user)
+
# When logged in a GET should get a confirmation page
- get :remove_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
+ get remove_friend_path(friend)
assert_response :success
assert_template :remove_friend
assert_select "form" do
assert Friendship.where(:befriender => user, :befriendee => friend).first
# When logged in a POST should remove the friendship
- post :remove_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
+ post remove_friend_path(friend)
assert_redirected_to user_path(friend)
assert_match(/was removed from your friends/, flash[:notice])
assert_nil Friendship.where(:befriender => user, :befriendee => friend).first
# A second POST should report that the friendship does not exist
- post :remove_friend, :params => { :display_name => friend.display_name }, :session => { :user => user }
+ post remove_friend_path(friend)
assert_redirected_to user_path(friend)
assert_match(/is not one of your friends/, flash[:error])
assert_nil Friendship.where(:befriender => user, :befriendee => friend).first
user = create(:user)
friend = create(:user)
create(:friendship, :befriender => user, :befriendee => friend)
+ session_for(user)
# Check that the users are friends
assert Friendship.where(:befriender => user, :befriendee => friend).first
# The GET should preserve any referer
- get :remove_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
+ get remove_friend_path(friend), :params => { :referer => "/test" }
assert_response :success
assert_template :remove_friend
assert_select "form" do
assert Friendship.where(:befriender => user, :befriendee => friend).first
# When logged in a POST should remove the friendship and refer
- post :remove_friend, :params => { :display_name => friend.display_name, :referer => "/test" }, :session => { :user => user }
+ post remove_friend_path(friend), :params => { :referer => "/test" }
assert_redirected_to "/test"
assert_match(/was removed from your friends/, flash[:notice])
assert_nil Friendship.where(:befriender => user, :befriendee => friend).first
def test_remove_friend_unkown_user
# Should error when a bogus user is specified
- get :remove_friend, :params => { :display_name => "No Such User" }, :session => { :user => create(:user) }
+ session_for(create(:user))
+ get remove_friend_path(:display_name => "No Such User")
assert_response :not_found
assert_template :no_such_user
end
user = create(:user)
# Try without logging in
- get :set_status, :params => { :display_name => user.display_name, :status => "suspended" }
+ get set_status_user_path(user), :params => { :status => "suspended" }
assert_response :redirect
assert_redirected_to :action => :login, :referer => set_status_user_path(:status => "suspended")
# Now try as a normal user
- get :set_status, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => user }
+ session_for(user)
+ get set_status_user_path(user), :params => { :status => "suspended" }
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
# Finally try as an administrator
- get :set_status, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => create(:administrator_user) }
+ session_for(create(:administrator_user))
+ get set_status_user_path(user), :params => { :status => "suspended" }
assert_response :redirect
assert_redirected_to :action => :show, :display_name => user.display_name
assert_equal "suspended", User.find(user.id).status
user = create(:user, :home_lat => 12.1, :home_lon => 12.1, :description => "test")
# Try without logging in
- get :delete, :params => { :display_name => user.display_name, :status => "suspended" }
+ get delete_user_path(user), :params => { :status => "suspended" }
assert_response :redirect
assert_redirected_to :action => :login, :referer => delete_user_path(:status => "suspended")
# Now try as a normal user
- get :delete, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => user }
+ session_for(user)
+ get delete_user_path(user), :params => { :status => "suspended" }
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
# Finally try as an administrator
- get :delete, :params => { :display_name => user.display_name, :status => "suspended" }, :session => { :user => create(:administrator_user) }
+ session_for(create(:administrator_user))
+ get delete_user_path(user), :params => { :status => "suspended" }
assert_response :redirect
assert_redirected_to :action => :show, :display_name => user.display_name
assert_equal 7, User.count
# Shouldn't work when not logged in
- get :index
+ get users_path
assert_response :redirect
assert_redirected_to :action => :login, :referer => users_path
- session[:user] = user.id
+ session_for(user)
# Shouldn't work when logged in as a normal user
- get :index
+ get users_path
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
- session[:user] = moderator_user.id
+ session_for(moderator_user)
# Shouldn't work when logged in as a moderator
- get :index
+ get users_path
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
- session[:user] = administrator_user.id
+ session_for(administrator_user)
# Note there is a header row, so all row counts are users + 1
# Should work when logged in as an administrator
- get :index
+ get users_path
assert_response :success
assert_template :index
assert_select "table#user_list tr", :count => 7 + 1
# Should be able to limit by status
- get :index, :params => { :status => "suspended" }
+ get users_path, :params => { :status => "suspended" }
assert_response :success
assert_template :index
assert_select "table#user_list tr", :count => 1 + 1
# Should be able to limit by IP address
- get :index, :params => { :ip => "1.2.3.4" }
+ get users_path, :params => { :ip => "1.2.3.4" }
assert_response :success
assert_template :index
assert_select "table#user_list tr", :count => 1 + 1
:pass_crypt => "extraextra")
end
- session[:user] = create(:administrator_user).id
+ session_for(create(:administrator_user))
# 100 examples, an administrator, and a granter for the admin.
assert_equal 102, User.count
- get :index
+ get users_path
assert_response :success
assert_template :index
assert_select "table#user_list tr", :count => 51
- get :index, :params => { :page => 2 }
+ get users_path, :params => { :page => 2 }
assert_response :success
assert_template :index
assert_select "table#user_list tr", :count => 51
- get :index, :params => { :page => 3 }
+ get users_path, :params => { :page => 3 }
assert_response :success
assert_template :index
assert_select "table#user_list tr", :count => 3
# Shouldn't work when not logged in
assert_no_difference "User.active.count" do
- post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+ post users_path, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :forbidden
assert_equal "pending", inactive_user.reload.status
assert_equal "suspended", suspended_user.reload.status
- session[:user] = create(:user).id
+ session_for(create(:user))
# Shouldn't work when logged in as a normal user
assert_no_difference "User.active.count" do
- post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+ post users_path, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
assert_equal "pending", inactive_user.reload.status
assert_equal "suspended", suspended_user.reload.status
- session[:user] = create(:moderator_user).id
+ session_for(create(:moderator_user))
# Shouldn't work when logged in as a moderator
assert_no_difference "User.active.count" do
- post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+ post users_path, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
assert_equal "pending", inactive_user.reload.status
assert_equal "suspended", suspended_user.reload.status
- session[:user] = create(:administrator_user).id
+ session_for(create(:administrator_user))
# Should work when logged in as an administrator
assert_difference "User.active.count", 2 do
- post :index, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
+ post users_path, :params => { :confirm => 1, :user => { inactive_user.id => 1, suspended_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :index
# Shouldn't work when not logged in
assert_no_difference "User.active.count" do
- post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+ post users_path, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :forbidden
assert_equal "active", normal_user.reload.status
assert_equal "confirmed", confirmed_user.reload.status
- session[:user] = create(:user).id
+ session_for(create(:user))
# Shouldn't work when logged in as a normal user
assert_no_difference "User.active.count" do
- post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+ post users_path, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
assert_equal "active", normal_user.reload.status
assert_equal "confirmed", confirmed_user.reload.status
- session[:user] = create(:moderator_user).id
+ session_for(create(:moderator_user))
# Shouldn't work when logged in as a moderator
assert_no_difference "User.active.count" do
- post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+ post users_path, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :controller => :errors, :action => :forbidden
assert_equal "active", normal_user.reload.status
assert_equal "confirmed", confirmed_user.reload.status
- session[:user] = create(:administrator_user).id
+ session_for(create(:administrator_user))
# Should work when logged in as an administrator
assert_difference "User.active.count", -2 do
- post :index, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
+ post users_path, :params => { :hide => 1, :user => { normal_user.id => 1, confirmed_user.id => 1 } }
end
assert_response :redirect
assert_redirected_to :action => :index
assert_equal a.tags, b.tags, "tags on node #{a.id}"
end
- ##
- # set request headers for HTTP basic authentication
- def basic_authorization(user, pass)
- @request.env["HTTP_AUTHORIZATION"] = format("Basic %{auth}", :auth => Base64.encode64("#{user}:#{pass}"))
- end
-
##
# return request header for HTTP Basic Authorization
def basic_authorization_header(user, pass)