This commit is contained in:
Mikel Maron 2016-10-12 10:52:05 -04:00
commit be40536440
35 changed files with 786 additions and 521 deletions

View file

@ -28,7 +28,7 @@ class DiaryEntryController < ApplicationController
# Subscribe user to diary comments
@diary_entry.subscriptions.create(:user => @user)
redirect_to :controller => "diary_entry", :action => "list", :display_name => @user.display_name
redirect_to :action => "list", :display_name => @user.display_name
else
render :action => "edit"
end
@ -46,9 +46,9 @@ class DiaryEntryController < ApplicationController
@diary_entry = DiaryEntry.find(params[:id])
if @user != @diary_entry.user
redirect_to :controller => "diary_entry", :action => "view", :id => params[:id]
redirect_to :action => "view", :id => params[:id]
elsif params[:diary_entry] && @diary_entry.update_attributes(entry_params)
redirect_to :controller => "diary_entry", :action => "view", :id => params[:id]
redirect_to :action => "view", :id => params[:id]
end
set_map_location
@ -72,7 +72,7 @@ class DiaryEntryController < ApplicationController
# Add the commenter to the subscribers if necessary
@entry.subscriptions.create(:user => @user) unless @entry.subscribers.exists?(@user.id)
redirect_to :controller => "diary_entry", :action => "view", :display_name => @entry.user.display_name, :id => @entry.id
redirect_to :action => "view", :display_name => @entry.user.display_name, :id => @entry.id
else
render :action => "view"
end
@ -85,7 +85,7 @@ class DiaryEntryController < ApplicationController
diary_entry.subscriptions.create(:user => @user) unless diary_entry.subscribers.exists?(@user.id)
redirect_to :controller => "diary_entry", :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
rescue ActiveRecord::RecordNotFound
render :action => "no_such_entry", :status => :not_found
end
@ -95,7 +95,7 @@ class DiaryEntryController < ApplicationController
diary_entry.subscriptions.where(:user => @user).delete_all if diary_entry.subscribers.exists?(@user.id)
redirect_to :controller => "diary_entry", :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
rescue ActiveRecord::RecordNotFound
render :action => "no_such_entry", :status => :not_found
end
@ -232,7 +232,7 @@ class DiaryEntryController < ApplicationController
def require_administrator
unless @user.administrator?
flash[:error] = t("user.filter.not_an_administrator")
redirect_to :controller => "diary_entry", :action => "view"
redirect_to :action => "view"
end
end

View file

@ -25,7 +25,7 @@ class MessageController < ApplicationController
if @message.save
flash[:notice] = t "message.new.message_sent"
Notifier.message_notification(@message).deliver_now
redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
redirect_to :action => "inbox", :display_name => @user.display_name
end
end
end
@ -81,7 +81,7 @@ class MessageController < ApplicationController
@title = t "message.inbox.title"
if @user && params[:display_name] == @user.display_name
else
redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
redirect_to :action => "inbox", :display_name => @user.display_name
end
end
@ -90,7 +90,7 @@ class MessageController < ApplicationController
@title = t "message.outbox.title"
if @user && params[:display_name] == @user.display_name
else
redirect_to :controller => "message", :action => "outbox", :display_name => @user.display_name
redirect_to :action => "outbox", :display_name => @user.display_name
end
end
@ -107,7 +107,7 @@ class MessageController < ApplicationController
@message.message_read = message_read
if @message.save && !request.xhr?
flash[:notice] = notice
redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
redirect_to :action => "inbox", :display_name => @user.display_name
end
rescue ActiveRecord::RecordNotFound
@title = t "message.no_such_message.title"
@ -125,7 +125,7 @@ class MessageController < ApplicationController
if params[:referer]
redirect_to params[:referer]
else
redirect_to :controller => "message", :action => "inbox", :display_name => @user.display_name
redirect_to :action => "inbox", :display_name => @user.display_name
end
end
rescue ActiveRecord::RecordNotFound

View file

@ -316,7 +316,7 @@ class NotesController < ApplicationController
end
##
# Generate a condition to choose which bugs we want based
# Generate a condition to choose which notes we want based
# on their status and the user's request parameters
def closed_condition(notes)
closed_since = if params[:closed]

View file

@ -95,11 +95,11 @@ class TraceController < ApplicationController
@title = t "trace.view.title", :name => @trace.name
else
flash[:error] = t "trace.view.trace_not_found"
redirect_to :controller => "trace", :action => "list"
redirect_to :action => "list"
end
rescue ActiveRecord::RecordNotFound
flash[:error] = t "trace.view.trace_not_found"
redirect_to :controller => "trace", :action => "list"
redirect_to :action => "list"
end
def create

View file

@ -142,7 +142,7 @@ class UserController < ApplicationController
@user.data_public = true
@user.save
flash[:notice] = t "user.go_public.flash success"
redirect_to :controller => "user", :action => "account", :display_name => @user.display_name
redirect_to :action => "account", :display_name => @user.display_name
end
def lost_password
@ -423,7 +423,7 @@ class UserController < ApplicationController
if params[:referer]
redirect_to params[:referer]
else
redirect_to :controller => "user", :action => "view"
redirect_to :action => "view"
end
end
else
@ -446,7 +446,7 @@ class UserController < ApplicationController
if params[:referer]
redirect_to params[:referer]
else
redirect_to :controller => "user", :action => "view"
redirect_to :action => "view"
end
end
else
@ -459,14 +459,14 @@ class UserController < ApplicationController
def set_status
@this_user.status = params[:status]
@this_user.save
redirect_to :controller => "user", :action => "view", :display_name => params[:display_name]
redirect_to :action => "view", :display_name => params[:display_name]
end
##
# delete a user, marking them as deleted and removing personal data
def delete
@this_user.delete
redirect_to :controller => "user", :action => "view", :display_name => params[:display_name]
redirect_to :action => "view", :display_name => params[:display_name]
end
##
@ -628,7 +628,7 @@ class UserController < ApplicationController
# - If they were referred to the login, send them back there.
# - Otherwise, send them to the home page.
if REQUIRE_TERMS_SEEN && !user.terms_seen
redirect_to :controller => :user, :action => :terms, :referer => target
redirect_to :action => :terms, :referer => target
elsif user.blocked_on_view
redirect_to user.blocked_on_view, :referer => target
else
@ -740,12 +740,12 @@ class UserController < ApplicationController
flash[:error] = t("user.filter.not_an_administrator")
if params[:display_name]
redirect_to :controller => "user", :action => "view", :display_name => params[:display_name]
redirect_to :action => "view", :display_name => params[:display_name]
else
redirect_to :controller => "user", :action => "login", :referer => request.fullpath
redirect_to :action => "login", :referer => request.fullpath
end
elsif !@user
redirect_to :controller => "user", :action => "login", :referer => request.fullpath
redirect_to :action => "login", :referer => request.fullpath
end
end
@ -768,7 +768,7 @@ class UserController < ApplicationController
def lookup_user_by_name
@this_user = User.find_by_display_name(params[:display_name])
rescue ActiveRecord::RecordNotFound
redirect_to :controller => "user", :action => "view", :display_name => params[:display_name] unless @this_user
redirect_to :action => "view", :display_name => params[:display_name] unless @this_user
end
##

View file

@ -24,7 +24,7 @@ bn:
changeset_tag: পরিবর্তনধার্য ট্যাগ
country: দেশ
diary_comment: ডাইরি মন্তব্য
diary_entry: ডাইরি এন্ট্রি
diary_entry: ডাইরি ভুক্তি
friend: বন্ধু
language: ভাষা
message: বার্তা
@ -50,14 +50,14 @@ bn:
user_preference: ব্যবহারকারীর পছন্দ
user_token: ব্যবহারকারী টোকেন
way: রাস্তা
way_node: ওয়ে নোড
way_tag: ওয়ে ট্যাগ
way_node: রাস্তার নোড
way_tag: রাস্তার ট্যাগ
attributes:
diary_comment:
body: বডি
body: মূলাংশ
diary_entry:
user: ব্যবহারকারী
title: শিরোনাম
title: বিষয়
latitude: অক্ষাংশ
longitude: দ্রাঘিমাংশ
language: ভাষা
@ -105,8 +105,8 @@ bn:
closed_html: <abbr title='%{title}'>%{time} আগে</abbr> বন্ধ
created_by_html: '%{user} কর্তৃক <abbr title=''%{title}''>%{time} আগে</abbr> তৈরি'
deleted_by_html: '%{user} কর্তৃক <abbr title=''%{title}''>%{time}আগে</abbr> অপসারণ'
edited_by_html: '%{user} কর্তৃক <abbr title=''%{title}''>%{time}আগে</abbr> সম্পাদিত'
closed_by_html: '%{user} কর্তৃক <abbr title=''%{title}''>%{time}আগে</abbr> বন্ধ'
edited_by_html: '%{user} কর্তৃক <abbr title=''%{title}''>%{time} আগে</abbr> সম্পাদিত'
closed_by_html: '%{user} কর্তৃক <abbr title=''%{title}''>%{time} আগে</abbr> বন্ধ'
version: সংস্করণ
in_changeset: পরিবর্তনসমূহ
anonymous: নামহীন
@ -126,9 +126,9 @@ bn:
relation: সম্পর্ক (%{count}টি)
relation_paginated: সম্পর্ক (%{count}টির %{x}-%{y})
comment: মন্তব্য (%{count}টি)
hidden_commented_by: '%{user} থেকে মন্তব্য লুকান <abbr title=''%{exact_time}''>%{when}
আগে</abbr>'
commented_by: '%{user} থেকে মন্তব্য <abbr title=''%{exact_time}''>%{when} আগে</abbr>'
hidden_commented_by: '%{user} থেকে <abbr title=''%{exact_time}''>%{when} আগের</abbr>
মন্তব্য লুকান'
commented_by: <abbr title='%{exact_time}'>%{when} আগে</abbr> %{user} থেকে মন্তব্য
changesetxml: পরিবর্তনধার্য এক্সএমএল
osmchangexml: osmChange এক্সএমএল
feed:
@ -175,8 +175,8 @@ bn:
note: টীকা
redacted:
redaction: সম্পর্ক %{id}
message_html: কোনও কারণে %{type}-এর %{version} সংস্করণটি দেখানো যাবেনা। বিস্তারিত
জানতে %{redaction_link} লিংকটি দেখুন।
message_html: কোনও কারণে %{type}-এর %{version} সংস্করণটি দেখানো যাবে না। বিস্তারিত
জানতে %{redaction_link} দেখুন।
type:
node: সংযোগস্থল
way: দিক
@ -198,16 +198,16 @@ bn:
title: টীকা:%{id}
new_note: নতুন টীকা
description: 'বর্ণনা:'
open_title: অসমাধিত টীকা %{note_name}
closed_title: সমাধান করা টীকা#%{note_name}
hidden_title: লুকানো টীকা#%{note_name}
open_title: 'অমীমাংসিত টীকা #%{note_name}'
closed_title: 'মীমাংসিত টীকা #%{note_name}'
hidden_title: 'লুকানো টীকা #%{note_name}'
open_by: '%{user} কর্তৃক <abbr title=''%{exact_time}''>%{when} আগে</abbr> তৈরি'
open_by_anonymous: বেনামী ব্যবহারকারী কর্তৃক <abbr title='%{exact_time}'>%{when}
আগে</abbr> তৈরি
commented_by: '%{user} কর্তৃক <abbr title=''%{exact_time}''>%{when} আগে</abbr>
দেয়া মন্তব্য'
commented_by_anonymous: বেনাম ব্যবহারকারী কর্তৃক <abbr title='%{exact_time}'>%{when}
আগে</abbr> দেয়া মন্তব্য
commented_by: '%{user} কর্তৃক করা <abbr title=''%{exact_time}''>%{when} আগে</abbr>
মন্তব্য'
commented_by_anonymous: বেনামি ব্যবহারকারী কর্তৃক করা <abbr title='%{exact_time}'>%{when}
আগে</abbr> মন্তব্য
closed_by: '%{user} কর্তৃক <abbr title=''%{exact_time}''>%{when} আগে</abbr>
মীমাংসিত'
closed_by_anonymous: বেনামি ব্যবহারকারী দ্বারা <abbr title='%{exact_time}'>%{when}
@ -224,7 +224,7 @@ bn:
enclosing: আবদ্ধ বৈশিষ্ট্য
changeset:
changeset_paging_nav:
showing_page: '%{page} পাতা'
showing_page: '%{page}টি পাতা'
next: পরবর্তী »
previous: « পূর্ববর্তী
changeset:
@ -351,7 +351,7 @@ bn:
advice: 'যদি উপরের রপ্তানি ব্যর্থ হয়, দয়া করে নীচে তালিকাভুক্ত উৎসের কোন
একটি ব্যবহারের জন্য বিবেচনা করুন:'
planet:
title: ওএসএ জগৎ
title: ওএসএ জগৎ
description: সম্পূর্ণ ওপেনস্ট্রীটম্যাপ ডাটাবেসের নিয়মিত হালনাগাদের অনুলিপি
overpass:
title: ওভারপাস API
@ -361,7 +361,7 @@ bn:
title: অন্যান্য উৎস
description: ওপেনস্ট্রীটম্যাপ উইকিতে তালিকাভুক্ত অতিরিক্ত সূত্র
options: বিকল্প
format: 'ফরম্যাট:'
format: বিন্যাস
scale: স্কেল
max: সর্বোচ্চ
image_size: চিত্রের আকার
@ -442,10 +442,10 @@ bn:
gambling: জুয়াখেলার আড্ডা
grave_yard: কবরস্থান
gym: ব্যায়াম কেন্দ্র / জিমখানা
health_centre: স্বাস্থ কেন্দ্র
health_centre: স্বাস্থকেন্দ্র
hospital: হাসপাতাল
hunting_stand: শিকারশালা
ice_cream: আইস ক্রিম
ice_cream: আইসক্রিম
kindergarten: শিশুবিদ্যালয়
library: পাঠাগার
market: বাজার
@ -584,7 +584,7 @@ bn:
farmland: কৃষিজমি
forest: অরণ্য
garages: গ্যারেজ
grass:
grass:
greenfield: তৃণভূমি
industrial: শিল্পাঞ্চল
meadow: তৃণভূমি
@ -719,7 +719,7 @@ bn:
preserved: সংরক্ষিত রেলপথ
proposed: প্রস্তাবিত রেলপথ
station: রেল স্টেশন
stop: রেল স্টপ
stop: রেল থামার স্থান
subway: ভূগর্ভস্থ পথ
subway_entrance: ভূগর্ভস্থ পথের প্রবেশিকা
tram: ট্রামপথ
@ -757,7 +757,7 @@ bn:
general: সাধারণ দোকান
gift: উপহারের দোকান
greengrocer: সবজিওয়ালা
grocery: মুদি দোকান
grocery: মুদি দোকান
hairdresser: নাপিত
hardware: যন্ত্রাংশের দোকান
hifi: হাই-ফাই
@ -773,7 +773,7 @@ bn:
optician: চশমা বিক্রেতা
organic: জৈব খাদ্যের দোকান
pharmacy: ঔষধালয়
photo: ফটোশপ
photo: ছবির দোকান
salon: সালোন
second_hand: পুরনো-সামগ্রীর দোকান
shoes: জুতোর দোকান
@ -811,13 +811,14 @@ bn:
lock_gate: ফটক বন্ধ
mooring: নঙ্গরাবদ্ধকরণ
river: নদী
wadi: ওয়াদি
waterfall: জলপ্রপাত
"yes": জলপথ
admin_levels:
level2: রাষ্ট্রের সীমানা
level4: রাজ্যের সীমানা
level5: অঞ্চলের সীমানা
level6: প্রদের সীমানা
level6: প্রদেশের সীমানা
level8: নগরের সীমান
level9: গ্রামের সীমানা
level10: উপনগরের সীমানা
@ -922,9 +923,9 @@ bn:
notifier:
diary_comment_notification:
subject: '[OpenStreetMap] %{user} আপনার দিনলিপি ভুক্তিতে মন্তব্য করেছেন'
hi: হাই %{to_user}
hi: হাই %{to_user},
message_notification:
hi: হাই %{to_user}
hi: হাই %{to_user},
friend_notification:
had_added_you: '%{user} আপনাকে ওপেনস্ট্রীটম্যাপে বন্ধু হিসেবে যোগ করেছেন।'
see_their_profile: আপনি %{userurl}-এ তাদের প্রোফাইল দেখতে পারেন।
@ -968,6 +969,11 @@ bn:
outbox: আউটবক্স
subject: বিষয়
date: তারিখ
people_mapping_nearby: কাছাকাছি অবদানকারী
message_summary:
unread_button: অপঠিত হিসেবে চিহ্নিত করুন
read_button: পঠিত হিসেবে চিহ্নিত করুন
reply_button: প্রত্যুত্তর
site:
key:
table:
@ -1137,7 +1143,7 @@ bn:
destination_without_exit: গন্তব্যে পৌঁছানো
against_oneway_without_exit: '%{name}-এ একমুখীর বিরুদ্ধে যান'
end_oneway_without_exit: '%{name}-এর একমুখী শেষ'
unnamed: বেনামি সড়ক
unnamed: নামহীন সড়ক
time: সময়
query:
node: সংযোগস্থল

View file

@ -9,6 +9,7 @@
# Author: Chase me ladies, I'm the Cavalry
# Author: E THP
# Author: EdLoach
# Author: Eduard Popov
# Author: Jagwar
# Author: Kosovastar
# Author: Macofe
@ -2389,7 +2390,7 @@ en-GB:
turn_left_without_exit: Turn left onto %{name}
offramp_left_without_exit: Take the sliproad on the left onto %{name}
onramp_left_without_exit: Turn left on the sliproad onto %{name}
endofroad_left_without_exit: At the end of the road turn left onto %{name}
endofroad_left_without_exit: В конце дороги поверните налево на %{name}
merge_left_without_exit: Merge left onto %{name}
fork_left_without_exit: At the fork turn left onto %{name}
slight_left_without_exit: Slight left onto %{name}

View file

@ -2191,7 +2191,7 @@ en:
key:
title: "Map Key"
tooltip: "Map Key"
tooltip_disabled: "Map Key available only for Standard layer"
tooltip_disabled: "Map Key not available for this layer"
map:
zoom:
in: Zoom In

View file

@ -94,13 +94,13 @@ eo:
default: Implicita (nune %{name})
potlatch:
name: Potlatch 1
description: Potlatch 1 (en-retumila redaktilo)
description: Potlatch 1 (en-foliumila redaktilo)
id:
name: iD
description: iD (en-retumila redaktilo)
description: iD (en-foliumila redaktilo)
potlatch2:
name: Potlatch 2
description: Potlatch 2 (en-retumila redaktilo)
description: Potlatch 2 (en-foliumila redaktilo)
remote:
name: ekstera redaktilo
description: ekstera redaktilo (JOSM aŭ Merkaartor)
@ -121,7 +121,7 @@ eo:
download_xml: Elŝuti XML-on
view_history: Vidi historion
view_details: Montri detalojn
location: 'Loko:'
location: 'Pozicio:'
changeset:
title: 'Ŝanĝaro: %{id}'
belongs_to: Aŭtoro
@ -191,7 +191,7 @@ eo:
way: linio
relation: rilato
start_rjs:
feature_warning: Ŝarĝanta %{num_features} eblojn, kiuj eblas igi vian retumilon
feature_warning: Ŝarĝanta %{num_features} eblojn, kiuj eblas igi vian foliumilon
malrapida aŭ nerespondebla. Ĉu vi certe volas montri tiujn ĉi datumojn?
load_data: Elŝuti datumojn
loading: Ŝargante...
@ -743,9 +743,9 @@ eo:
airport: Flughaveno
city: Urbego
country: Lando
county: Provinco
county: Distrikto
farm: Farmobieno
hamlet: Vilaĝego
hamlet: Vilaĝeto
house: Domo
houses: Domoj
island: Insulo
@ -754,13 +754,13 @@ eo:
locality: Ejo
moor: Arbustetaro
municipality: Municipo
neighbourhood: Kvartaleto
neighbourhood: Najbaraĵo
postcode: Poŝtkodo
region: Regiono
sea: Maro
state: Subŝtato
state: Provinco
subdivision: Kvartalo
suburb: Kvartalego
suburb: Suburbo
town: Urbo
unincorporated_area: Ekstermunicipa tereno
village: Vilaĝo
@ -909,13 +909,13 @@ eo:
weir: Riversojlo
"yes": Akvovojo
admin_levels:
level2: Limo de lando
level4: Limo de subŝtato
level5: Limo de regiono
level6: Limo de provinco
level8: Limo de urbo
level9: Limo de distrikto
level10: Limo de kvartalego
level2: Limo de lando (niv.2)
level4: Limo de provinco (niv.4)
level5: Limo de regiono (niv.5)
level6: Limo de distrikto (niv.6)
level8: Limo de urbo (niv.8)
level9: Limo de kvartalo (niv.9)
level10: Limo de subkvartalo (niv.10)
description:
title:
osm_nominatim: Loko el <a href="http://nominatim.openstreetmap.org/">OpenStreetMap
@ -998,7 +998,7 @@ eo:
href="http://osmfoundation.org/">OpenStreetMap Foundation</a> (OSMF).
intro_2_html: Vi rajtas kopii, disdoni, transdoni kaj modifi niajn datumojn,
nur se vi atribuos aŭtorecon al OpenStreetMap kaj ĝiaj kontribuintoj. Se vi
modifos aŭ uzos niajn datumojn, vi devos distribui la verkon sub la sama permesilo.
modifos aŭ uzos niajn datumojn, vi povos distribui la verkon sub la sama permesilo.
La plena <a href="http://opendatacommons.org/licenses/odbl/1.0/">interkonsento
de uzado</a> eksplikas viajn rajtojn kaj devojn.
intro_3_html: |-
@ -1006,45 +1006,338 @@ eo:
Commons Atribuite-Samkondiĉe 2.0</a> (CC BY-SA).
credit_title_html: Kiel atribui aŭtorecon
credit_1_html: 'Ni postulas, ke vi markos: &ldquo;&copy; Kontribuintoj de OpenStreetMap&rdquo;.'
credit_2_html: Vi ankaŭ devas klarigi, ke datumoj estas disponeblaj sub la permesilo
Open Database License, kaj kartografio de map-kaheloj sub la permesilo CC
BY-SA. Vi povas indiki tion per fari ligilon al <a href="http://www.openstreetmap.org/copyright">tiu
ĉi paĝo pri permesilo</a>. Alimaniere, se vi distribuas OSM en datuma formo,
vi povas mencii nomo(j)n kaj ligilo(j)n al la permesilo(j). Se ne estas eble
meti ligilojn (ekz. en paperaj mapoj), ni sugestas direkti viajn legantojn
al openstreetmap.org (eble meti plenan retadreson), al opendatacommons.org
kaj (se necesas) al creativecommons.org.
credit_3_html: |-
En esploreblaj elektronikaj mapoj, la aŭtorecon povas esti montrata ĉe la angulo de mapo.
Ekzemplo:
attribution_example:
alt: Ekzemplo kiel atribui OpenStreetMap sur retpaĝo
title: Ekzemplo de aŭtorec-atribuado
more_title_html: Sciigi pli
more_1_html: |-
Legu pli pri uzado de niaj datumoj kaj kiel atribui aŭtorecon, je la <a
href="http://osmfoundation.org/Licence">retpaĝo de OSMF Licence</a> kaj je la <a
href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">paĝo de oftaj demandoj pri leĝo</a>.
more_2_html: Kvankam la datumoj de OpenStreetMap estas liberaj, ni ne povas
liveri senpagan API-on por eksteraj programistoj. Legu nian <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">politikon
pri uzado de API</a>, <a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">politikon
pri uzado de kaheloj</a> kaj <a href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">poltikon
pri uzado de Nominatim</a>.
contributors_title_html: Kunlaborantoj
contributors_intro_html: 'Niaj kunlaborantoj estas miloj da homoj. Ni ankaŭ
inkludas datumoj sub malferma permesilo el landaj kartografiaj organizaĵoj
kaj el aliaj fontoj, inter ili:'
contributors_at_html: |-
<strong>Aŭstrujo</strong>: enhavas datumojn el <a href="http://data.wien.gv.at/">Stadt Wien</a> (sub <a href="http://creativecommons.org/licenses/by/3.0/at/deed.eo">CC BY</a>),
<a href="http://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">Land Vorarlberg</a> kaj
Land Tirol (sub <a href="http://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC BY AT kun postaj ŝanĝoj</a>).
contributors_ca_html: |-
<strong>Kanado</strong>: enhavas datumojn el
GeoBase&reg;, GeoGratis (&copy; Department of Natural
Resources Canada), CanVec (&copy; Department of Natural
Resources Canada), kaj StatCan (Geography Division,
Statistics Canada).
contributors_fi_html: |-
<strong>Suomujo</strong>: enhavas datumojn el
National Land Survey of Finland's Topographic Database kaj aliaj fontoj, sub la <a href="http://www.maanmittauslaitos.fi/en/NLS_open_data_licence_version1_20120501">NLSFI permesilo</a>.
contributors_fr_html: '<strong>Francujo</strong>: enhavas datumojn ricevitajn
el ''Direction Générale des Impôts''.'
contributors_nl_html: |-
<strong>Nederlando</strong>: enhavas datumojn el &copy; AND, 2007
(<a href="http://www.and.com">www.and.com</a>).
contributors_nz_html: '<strong>Nov-Zelando</strong>: enhavas datumojn ricevitajn
el ''Land Information New Zealand''. Crown Copyright reserved.'
contributors_si_html: |-
<strong>Slovenujo</strong>: enhavas datumojn el <a href="http://www.gu.gov.si/">Ofico de Termezurado kaj Kartografio</a> kaj
<a href="http://www.mkgp.gov.si/">Ministerio pri Terkulturo, Arbarkulturo kaj Proviantado</a>
(publikaj informoj de Slovenujo).
contributors_za_html: |-
<strong>Sud-Afriko</strong>: enhavas datumojn ricevitajn el <a href="http://www.ngi.gov.za/">Chief Directorate:
National Geo-Spatial Information</a>, landaj kopirajtoj rezervitaj.
contributors_gb_html: |-
<strong>Unuiĝinta Reĝlando</strong>: enhavas datumojn el 'Ordnance
Survey' &copy; Crown copyright and database right
2010-12.
contributors_footer_1_html: |-
Por pli da detaloj pri ĉi tiuj kaj aliaj fontoj uzitaj por plibonigi OpenStreetMap, bonvolu viziti la <a
href="http://wiki.openstreetmap.org/wiki/Contributors">paĝon pri kontribuintoj</a> en la OpenStreetMap-vikio.
contributors_footer_2_html: Inkludo de datumoj en OpenStreetMap ne indikas,
ke la provizanto de datumoj apogas OpenStreetMap, garantias por iu aŭ respondumas
por iu.
infringement_title_html: Rompo de kopirajtoj
infringement_1_html: OSM-kunlaborantoj memoru, por ke neniam aldonu datumojn
el iuj ajn fontoj protektataj de kopirajto (ekz. Google Maps aŭ paperaj mapoj)
sen klara permeso de posedanto de kopirajtoj.
infringement_2_html: Se ve pensas, ke datumoj protektataj per kopirajto estas
misaldonitaj al OpenStreetMap-datumbazo aŭ al tiu ĉi retpaĝo, bonvolu legi
pri <a href="http://www.osmfoundation.org/wiki/License/Takedown_procedure">proceduro
de forigado de datumoj</a> aŭ plenigi la <a href="http://dmca.openstreetmap.org/">enretan
formularon</a>.
trademarks_title_html: <span id="trademarks"></span>Registritaj markoj
trademarks_1_html: OpenStreetMap, la piktogramo de grandiga lenso kaj 'State
of the Map' estas registritaj markoj de Fondaĵo OpenStreetMap. Se vi havas
iujn demandojn pri uzado de niaj markoj, bonvolu sendi viajn demandojn al
la <a href="http://wiki.osmfoundation.org/wiki/Licensing_Working_Group">grupo
de laboro pri permesilo</a>.
welcome_page:
title: Bonvenon!
introduction_html: Bonvenon al OpenStreetMap, la libera kaj redaktebla mapo de
la mondo. Nun kiam vi registriĝis, vi eblas eki mapigadon. Jen estas mallonga
manlibreto kun la plej gravaj aĵoj kiuj vi povas scii.
whats_on_the_map:
title: Kio estas sur la mapo
on_html: OpenStreetMap estas loko por mapigi objektojn, kiuj estas <em>kaj realaj
kaj aktualaj</em> - tiu estas milionoj da konstruaĵoj, vojoj kaj aliaj detalaĵoj
pri lokoj. Vi povas mapigi ĉiujn elementojn de reala mondo kiuj interesas
vin.
off_html: Ni <em>ne povas</em> inkludi personajn taksojn, eksajn aŭ malcertajn
objektojn, kaj datumoj de kopirajtataj fontoj. Escepte se vi estas permesita,
ne kopiu datumoj el aliaj interretaj aŭ paperaj mapoj.
basic_terms:
title: Fundamentaj terminoj pri mapigado
paragraph_1_html: OpenStreetMap havas sian propran ĵargonon. Jen estas kelkaj
utilaj vorotoj.
editor_html: <strong>Redaktilo</strong> estas programo aŭ retpaĝo, kiun vi povas
uzi por modifi mapon.
node_html: <strong>Nodo</strong> (ang 'nodo') estas punkto sur la mapo, kiel
restoracio aŭ arbo.
way_html: <strong>Linio</strong> (ang. 'way') estas linio aŭ areo, kiel vojo,
rivereto, lago aŭ konstruaĵo.
tag_html: <strong>Etikedo</strong> (ang. 'tag') estas kolekto de datumoj priskribanta
nodon aŭ linion, kiel nomo de restoracio aŭ rapidlimo de vojo.
rules:
title: Reguloj!
paragraph_1_html: "OpenStreetMap havas malmultajn formalajn regulojn, tamen
ni esperas, ke ĉiuj kunlaboros kaj interparolos en la komunumo. Se vi planas
iujn agadojn aliajn ol permanajn redaktojn, bonvolu legi la sekvajn rekomendojn
pri <a href='http://wiki.openstreetmap.org/wiki/Import/Guidelines'>enportadoj</a>
kaj \n<a href='http://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct'>aŭtomataj
redaktoj</a>."
questions:
title: Iaj demandoj?
paragraph_1_html: OpenStreetMap havas kelkajn ejojn por lerni pri la projekto,
por demandi pri ion ajn kaj kune diskuti kaj dokumenti pri mapigado. <a href='%{help_url}'>Alklaku
por ricevi helpon</a>.
start_mapping: Eki mapigadon
add_a_note:
title: Ĉu mankas al vi tempo por ridaktado? Aldonu rimarkon!
paragraph_1_html: Se vi volas nur korekti iun etan kaj vi ne havas tempon por
registriĝi kaj lerni redaktadon, vi povas facile aldoni rimarkon.
paragraph_2_html: Simple iru al <a href='%{map_url}'>la mapo</a> kaj alklaku
la piktogramon <span class='icon note'></span>. Tio aldonos treneblan markon
al la mapo. Entajpu vian mesaĝon, konservu ĝin kaj aliaj mapigistoj okupiĝos
pri via rimarko.
fixthemap:
title: Raporti problemon / Korekti mapon
how_to_help:
title: Kiel helpi
join_the_community:
title: Aliĝi al la komunumo
explanation_html: Se vi rimarkis iun problemon kun niaj map-datumoj, ekzemple
strato aŭ adreso mankas, la plej bona rimedo estas aniĝi OpenStreetMap-komunumo
kaj redakti kaj ripari datumojn mem.
add_a_note:
instructions_html: Simple alklaku <a class='icon note'></a> aŭ la saman piktogramon
sur la mapo. Tio ĉi aldonos moveblan markon, aldonu vian mesaĝon, konservu
ĝin, kaj aliaj mapigistoj okupiĝos pri via rimarko.
other_concerns:
title: Aliaj aferoj
explanation_html: Se vi havas demandojn pri kial niaj datumoj aŭ enhavo estas
uzataj, bonvolu ekkoni <a href='/copyright'>paĝon pri kopirajto</a> por pliaj
leĝaj informoj, aŭ kontaktu la <a href='http://wiki.osmfoundation.org/wiki/Working_Groups'>OSMF-laborgrupon</a>.
help_page:
title: Akiri helpon
introduction: OpenStreetMap havas kelkajn ejojn por lerni pri la projekto, por
demandi pri ion ajn kaj kune diskuti kaj dokumenti pri mapigado.
welcome:
url: /welcome
title: Bonvenon al OSM
description: Komencu ekde tiu ĉi manlibreto ampleksanta fundamentojn de OpenStreetMap.
beginners_guide:
url: http://wiki.openstreetmap.org/wiki/Beginners%27_guide
title: Manlibro por komencantoj
description: Manlibro por komencantoj kreata de la komunumo (en la Angla).
help:
url: https://help.openstreetmap.org/
title: OpenStreetMap-helppaĝo
description: Demandu aŭ serĉu respondojn je retpaĝo de demandoj-kaj-respondoj
pri OSM.
mailing_lists:
title: Dissendolistoj
description: Demandu aŭ diskutu pri interesaj temoj en multaj pritemaj aŭ regionaj
dissendolistoj.
forums:
title: Forumoj
description: Demandoj kaj diskutoj por tiuj, kiuj preferas kutimaj diskutforumoj.
irc:
title: IRC
description: Interaga babilejo en multaj diversaj lingvoj kaj pri multaj temoj.
switch2osm:
title: switch2osm
description: Helpas firmaojn kaj organizaĵojn ŝanĝi al mapoj kaj aliaj servoj
de OpenStreetMap.
wiki:
url: https://wiki.openstreetmap.org/wiki/Eo:Main_Page
title: Vikio OpenStreetMap
description: Esploru vikion por akiri detalan dokumentadon de OSM.
about_page:
next: Sekva
copyright_html: <span>&copy;</span>OpenStreetMap<br>kontribuintoj
used_by: '%{name} liveras map-datumojn por miloj da retpaĝoj, poŝtelefonaj aplikaĵoj
kaj aparatoj'
lede_text: OpenStreetMap estas kreata de komunumo de mapigistoj kiuj aldonas kaj
prizorgas datumojn pri vojoj, kursoj, kafejoj, stacidomoj kaj pli da aliaj,
en la tuta mondo.
local_knowledge_title: Loka scio
local_knowledge_html: OpenStreetMap emfazas lokan scion. Kontribuantoj uzas aerfotojn,
GPS-aparatojn kaj normajn mapojn por verigi ĉu datumoj de OSM estas akurataj
kaj ĝisdatigaj.
community_driven_title: Kondukata de komunumo
community_driven_html: |-
La komunumo de OpenStreetMap estas diversa, pasia kaj kreskas tagon post tago. Inter niaj kontribuantoj estas amatoroj de mapoj, istoj de GIS, inĝenieroj prizorgantaj OSM-servilojn, helpistoj kiuj mapigas en terenoj de katastrofoj kaj pli da aliuloj. Por lerni pli pri la komunumo, vidu <a href='%{diary_path}'>ĵurnalojn de uzantoj</a>,
<a href='http://blogs.openstreetmap.org/'>komunumajn taglibrojn</a> kaj la retpaĝon de <a href='http://www.osmfoundation.org/'>Fundaĵo OSM</a>.
open_data_title: Malfermaj datumoj
open_data_html: 'OpenStreetMap estas <i>malfermaj datumoj</i>: vi povas uzi ĝin
kiamaniere vi volas sub la kondiĉo de vi atribuos aŭtorecon al OpenStreetMap
kaj ĝiaj kontribuintoj. Se vi modifos aŭ uzos niajn datumojn, vi povos distribui
la verkon nur sub la sama permesilo. Vidu la <a href=''%{copyright_path}''>paĝon
pri kopirajto kaj permesilo</a> por pli da detaloj.'
legal_title: Leĝaj demandoj
legal_html: Tiu ĉi retpaĝo kaj aliaj servoj estas formale administrata de la <a
href='http://osmfoundation.org/'>Fondaĵo OpenStreetMap</a> (OSMF) komisie de
la komunumo. Uzado de ĉiuj OSMF-servoj estas regulata per <a href="http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">Politiko
de uzado</a> kaj nia <a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy">Politiko
de privateco</a>. Bonvolu <a href='http://osmfoundation.org/Contact'>kontakti
kun OSMF</a>, se vi havas iun demandon pri permesilo, kopirajto aŭ leĝo.
partners_title: Kunlaborantoj
notifier:
diary_comment_notification:
subject: '[OpenStreetMap] %{user} komentis vian ĵurnal-afiŝon'
hi: Saluton %{to_user},
header: '%{from_user} komentis vian afiŝon en OpenStreetMap-ĵurnalo kun la temo
%{subject}:'
footer: Vi ankaŭ povas legi la komenton ĉe %{readurl} kaj komenti ĝin ĉe %{commenturl}
aŭ responde ĉe %{replyurl}
message_notification:
hi: Saluton %{to_user},
header: '%{from_user} sendis al vi mesaĝon tra OpenStreetMap kun la temo %{subject}:'
footer_html: Vi ankaŭ povas legi la mesaĝon ĉe %{readurl} kaj respondi ĉe %{replyurl}
friend_notification:
subject: '[OpenStreetMap] %{user} aldonis vin kiel amikon'
had_added_you: '%{user} aldonis vin kiel amikon je OpenStreetMap.'
see_their_profile: Vi povas vidi lian profilon ĉe %{userurl}.
befriend_them: Vi ankaŭ povas aldoni vin kiel amikon ĉe %{befriendurl}.
gpx_notification:
greeting: Saluton,
your_gpx_file: Ŝajnas, ke via GPX-dosiero
with_description: kun la priskribo
and_the_tags: 'kaj kun la sekvaj etikedoj:'
and_no_tags: kaj kun neniu etikedo.
failure:
subject: '[OpenStreetMap] Eraro dum enportado de GPX-dosiero'
failed_to_import: 'ne estas enportita sukcese. Eraro:'
more_info_1: Pli da informoj pri malsukceso de enportado de GPX-dosieroj kaj
kiel eviti
more_info_2: 'ilin vi povas trovi je:'
success:
subject: '[OpenStreetMap] GPX-dosiero enportita sukcese'
loaded_successfully: estas sukcese ŝargita kun %{trace_points} el %{possible_points}
punktoj.
signup_confirm:
subject: '[OpenStreetMap] Bonvenon al OpenStreetMap'
greeting: Saluton!
created: Iu (espereble vi) ĵus kreis konton je %{site_url}.
confirm: Unue devas konfirmi, ke tiu ĉi peto devenas de vi, do bonvolu alklaki
la ligilon sube por konfirmi vian konton.
welcome: Post konfirmo de konto, ni liveros al vi pliajn informojn kiel komenci.
email_confirm:
subject: '[OpenStreetMap] Konfirmi vian retpoŝtadreson'
subject: '[OpenStreetMap] Konfirmado de retpoŝtadreso'
email_confirm_plain:
greeting: Saluton,
hopefully_you: Iu (espereble vi) volas ŝanĝi vian retpoŝtadreson je %{server_url}
al %{new_address}.
click_the_link: Se tiu estas vi, bonvolu alklaku la ligilon sube por konfirmi
ŝanĝon de adreso.
email_confirm_html:
greeting: Saluton,
hopefully_you: Iu (espereble vi) volas ŝanĝi vian retpoŝtadreson je %{server_url}
al %{new_address}.
click_the_link: Se tiu estas vi, bonvolu alklaku la ligilon sube por konfirmi
ŝanĝon de adreso.
lost_password:
subject: '[OpenStreetMap] Peto pri restarigo de pasvorto'
lost_password_plain:
greeting: Saluton,
hopefully_you: Iu (espereble vi) volas restarigi la pasvorton por konto je openstreetmap.org
por tiu ĉi retpoŝtadreso.
click_the_link: Se tiu estas vi, bonvolu alklaki la ligilon sube por restarigi
la pasvorton.
lost_password_html:
greeting: Saluton,
hopefully_you: Iu (espereble vi) volas restarigi la pasvorton por konto je openstreetmap.org
por tiu ĉi retpoŝtadreso.
click_the_link: Se tiu estas vi, bonvolu alklaki la ligilon sube por restarigi
la pasvorton.
note_comment_notification:
anonymous: Anonimulo
greeting: Saluton,
commented:
subject_own: '[OpenStreetMap] %{commenter} komentis vian rimarkon'
subject_other: '[OpenStreetMap] %{commenter} komentis rimarkon pri kiu vi
interesiĝas'
your_note: '%{commenter} komentis vian rimarkon sur mapo ĉe %{place}.'
commented_note: '%{commenter} komentis rimarkon sur mapo pri kiu vi interesiĝas.
La rimarko troviĝas ĉe %{place}.'
closed:
subject_own: '[OpenStreetMap] %{commenter} solvis vian rimarkon'
subject_other: '[OpenStreetMap] %{commenter} solvis rimarkon pri kiu vi interesiĝas'
your_note: '%{commenter} solvis vian rimarkon sur mapo ĉe %{place}.'
commented_note: '%{commenter} solvis rimarkon sur mapo pri kiu vi interesiĝas.
La rimarko troviĝis ĉe %{place}.'
reopened:
subject_own: '[OpenStreetMap] %{commenter} remalfermis vian rimarkon'
subject_other: '[OpenStreetMap] %{commenter} remalfermis rimarkon pri kiu
vi interesiĝis'
your_note: '%{commenter} remalfermis vian rimarkon sur mapo ĉe %{place}.'
commented_note: '%{commenter} remalfermis rimarkon sur mapo pri kiu vi interesiĝis.
La rimarko troviĝis ĉe %{place}.'
details: Pli da detaloj pri la rimarko, vi povas trovi je %{url}.
changeset_comment_notification:
greeting: Saluton,
commented:
subject_own: '[OpenStreetMap] %{commenter} komentis vian ŝanĝaron'
subject_other: '[OpenStreetMap] %{commenter} komentis ŝanĝaron pri kiu vi
interesiĝas'
your_changeset: '%{commenter} komentis vian ŝanĝaron kreitan je %{time}'
commented_changeset: '%{commenter} komentis ŝanĝaron observatan de vi, kreitan
de %{changeset_author} je %{time}'
partial_changeset_with_comment: kun komento '%{changeset_comment}'
partial_changeset_without_comment: sen komento
details: Pli da detaloj pri la ŝanĝaro povas esti trovita ĉe %{url}.
message:
inbox:
title: Alvenkesto
my_inbox: Mia leterkesto
outbox: elirkesto
messages: Vi havas %{new_messages} kaj %{old_messages}
new_messages:
one: '%{count} novan mesaĝon'
other: '%{count} novajn mesaĝojn'
old_messages:
one: '%{count} malnovan mesaĝon'
other: '%{count} malnovajn mesaĝojn'
from: De
subject: Temo
date: Dato
no_messages_yet: Vi ankoraŭ ne havas iun mesaĝon. Eble kontaktu kun iu el %{people_mapping_nearby_link}?
people_mapping_nearby: proksimaj mapigistoj
message_summary:
unread_button: Marki kiel nelegitan
read_button: Marki kiel legitan
@ -1053,53 +1346,112 @@ eo:
new:
title: Sendi mesaĝon
send_message_to: Sendi novan mesaĝon al %{name}
subject: Temo
body: Enhavo
send_button: Sendi
back_to_inbox: Reen al mesaĝejo
back_to_inbox: Reen al alvenkesto
message_sent: Mesaĝo sendita
limit_exceeded: Vi antaŭnelonge sendis multajn mesaĝojn. Bonvolu atendi iom
da tempo antaŭ vi sendos pliajn.
no_such_message:
title: Neekzistanta mesaĝo
heading: Tiu ĉi mesaĝo ne ekzistas
body: Bedaŭrinde ne ekzistas mesaĝo kun tiu ĉi identigilo.
outbox:
title: Elirkesto
my_inbox: Mia %{inbox_link}
inbox: Alvenkesto
inbox: alvenkesto
outbox: elirkesto
messages:
one: Vi havas %{count} senditan mesaĝon
other: Vi havas %{count} senditajn mesaĝojn
to: Al
subject: Temo
date: Dato
no_sent_messages: Vi ankoraŭ ne sendis iun mesaĝon. Eble kontaktu kun iu el
%{people_mapping_nearby_link}?
people_mapping_nearby: proksimaj mapigistoj
reply:
wrong_user: Vi estas ensalutita kiel '%{user}', sed la mesaĝo, kiun vi volas
respondi, ne estas sendita al tiu uzanto. Bonvolu ensaluti kiel propra uzanto
por respondi ĝin.
read:
title: Legi mesaĝon
from: De
subject: Temo
date: Dato
reply_button: Respondi
unread_button: Marki kiel nelegita
unread_button: Marki kiel nelegitan
back: Reen
to: Al
wrong_user: Vi estas ensalutita kiel '%{user}', sed la mesaĝo, kiun vi volas
legi estas sendita al tiu uzanto. Bonvolu ensaluti kiel propra uzanto por
legi ĝin.
sent_message_summary:
delete_button: Forigi
mark:
as_read: Mesaĝo markita kiel legita
as_unread: Mesaĝo markita kiel nelegita
as_read: Mesaĝo markita kiel legitan
as_unread: Mesaĝo markita kiel nelegitan
delete:
deleted: Mesaĝo forigita
site:
index:
js_1: Vi aŭ uzas foliumilon, kiu ne subtenas Ĝavoskripton, aŭ vi havas ĝin malaktivan.
js_2: OpensStreetMap uzas Ĝavoskripton por montri ŝoveblan mapon.
permalink: Konstanta ligilo
shortlink: Mallonga ligilo
createnote: Aldoni rimarkon
license:
copyright: Kopirajto de OpenStreetMap kaj kontribuintoj, sub malferma permesilo
remote_failed: Redaktado malsukcesis - certigu ĉu JOSM aŭ Merkaartor estas startigita
kaj ĉu defora aliro estas aktiva
edit:
not_public: Vi ne agordis por viaj redaktoj estu publikaj.
not_public_description: Vi ne povas plu redakti la mapon. Vi povas agordi ilin
kiel publikan ĉe via %{user_page}.
user_page_link: uzantpaĝo
anon_edits_link_text: Tie ĉi vi sciigis kiel.
flash_player_required: Por uzi Potlatch, la OpenStreetMap-redaktilo, vi bezonas
la kromprogramon Flash. Vi povas <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">elŝuti
Flash Player el Adobe.com retpaĝo</a>. <a href="http://wiki.openstreetmap.org/wiki/Editing">Kelkaj
aliaj redaktiloj</a> estas disponeblaj por redakti OpenStreetMap.
potlatch_unsaved_changes: Vi havas nekonservitajn ŝanĝojn. (Por konservi ŝanĝojn
en Potlatch, malelektu nune elektitan linion aŭ punkton se vi redaktas en
'rekta reĝimo', aŭ alklaku butonon 'konservi', se ĝi videblas.)
potlatch2_not_configured: Potlatch 2 ne estas agordita - vidu http://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2
por pli da informoj
potlatch2_unsaved_changes: Vi havas nekonservitajn ŝanĝojn. (Por konservi ilin
en Potlatch 2, alklaku 'konservi'.)
id_not_configured: iD ne estas agordita
no_iframe_support: Via foliumilo ne subtenas 'HTML iframes', ili estas bezonataj
por tiu ĉi eblo.
sidebar:
search_results: Serĉrezultoj
close: Fermi
search:
search: Serĉi
get_directions: Difini la kurson
get_directions_title: Difinas la kurson inter du punktoj
from: El
to: Al
where_am_i: Kie mi estas?
where_am_i_title: Trovas la nunan pozicion per la foliumilo
submit_text: Ek
key:
table:
entry:
motorway: Aŭtovojo
main_road: Ĉefa vojo
primary: Strato de unua ordo
secondary: Strato de dua ordo
trunk: Vojo ekspresa
primary: Vojo unua-ranga
secondary: Vojo dua-ranga
unclassified: Vojo kvara-ranga
track: Vojo kampa
bridleway: Ĉevalvojo
cycleway: Bicikla vojo
cycleway_national: Bicikla vojo nacia
cycleway_regional: Bicikla vojo regiona
cycleway_local: Bicikla vojo loka
footway: Trotuaro
rail: Fervojo
subway: Metroo
@ -1107,7 +1459,14 @@ eo:
- Fervojo malpeza
- tramo
cable:
1: seĝtelfero
- Kablovojo
- seĝtelfero
runway:
- Avia dromo
- aŭtokur-strato
apron:
- Aviadil-parkumejo
- flugstacio
admin: Administra limo
forest: Kultiv-arbaro
wood: Arbaro
@ -1117,7 +1476,7 @@ eo:
common:
- Publika ripoza tereno
- herbejo
retail: Butikcentro
retail: Komercejo
industrial: Industria areo
commercial: Oficeja tereno
heathland: Erikejo
@ -1125,6 +1484,7 @@ eo:
- Lago
- akvorezervujo
farm: Farmobieno
brownfield: Antaŭ-konstruejo (post-malkonstruado)
cemetery: Tombejo
allotments: Familiaj ĝardenoj
pitch: Ludkampo
@ -1139,8 +1499,13 @@ eo:
summit:
- Montosupro
- montopinto
destination: Nur por lokaj loĝantoj
tunnel: Strekumita konturo - tunelo
bridge: Nigra konturo - ponto
private: Privata aliro
destination: Aliro nur al celo
construction: Vojoj dum konstruado
bicycle_shop: Bicikl-vendejo
bicycle_parking: Parkumejo bicikla
toilets: Necesejo
richtext_area:
edit: Redakti
@ -1303,17 +1668,18 @@ eo:
my diary: Mia ĵurnalo
new diary entry: nova ĵurnalrikordo
my edits: Miaj redaktoj
my traces: Miaj spuroj
my traces: Spuroj
my notes: Miaj rimarkoj
my messages: Mesaĝoj
my profile: Profilo
my settings: Miaj agordoj
my settings: Agordoj
my comments: Miaj komentoj
blocks on me: Blokas min
send message: Sendi mesaĝon
diary: Ĵurnalo
edits: Redaktoj
traces: Spuroj
notes: Map-rimarkoj
remove as friend: Eksamikigi
add as friend: Aldoni kiel amikon
mapper since: 'Mapigisto ekde:'
@ -1331,6 +1697,7 @@ eo:
role:
administrator: Ĉi tiu uzanto estas administranto
moderator: Ĉi tiu uzanto estas kontrolanto
comments: Komentoj
create_block: Bloki ĉi tiun uzanton
activate_user: Aktivigi tiun ĉi uzanton
deactivate_user: Malaktivigi tiun ĉi uzanton
@ -1357,7 +1724,7 @@ eo:
heading: Publika redaktado
profile description: 'Priskribo de profilo:'
preferred languages: 'Preferataj Lingvoj:'
home location: 'Hejma Loko:'
home location: 'Hejma pozicio:'
no home location: Vi ne enigis vian hejmlokon.
latitude: 'Latitudo:'
longitude: 'Longitudo:'
@ -1381,7 +1748,7 @@ eo:
success: Ŝanĝo de via retpoŝta adreso konfirmita!
failure: Retadreso jam estis konfirmita per tiu ĵetono.
set_home:
flash success: Hejma loko sukcese konservita
flash success: Pozicio de hejmo sukcese konservita
go_public:
flash success: Ĉiuj viaj redaktoj naŭ estas publikaj, kaj vi naŭ rajtas redakti.
make_friend:
@ -1436,6 +1803,7 @@ eo:
cancel: Nuligi
key:
title: Mapklarigo
tooltip: Mapklarigo
tooltip_disabled: Mapklarigo estas nur disponebla ĉe la norma tavolo
map:
zoom:

View file

@ -1230,7 +1230,10 @@ he:
לפי התנאים של אותו הרישיון. ר' את <a href='%{copyright_path}'>דף הרישיון וזכויות היוצרים</a> לפרטים נוספים.
legal_title: משפטי
legal_html: |-
האתר הזה ושירותים רבים אחרים מופעלים על־ידי <a href='http://osmfoundation.org/'>קרן OpenStreetMap</a>&rlm; (OSMF) בשם הקהילה.
האתר הזה ושירותים רבים אחרים מופעלים על־ידי <a href='http://osmfoundation.org/'>קרן OpenStreetMap</a>&rlm; (OSMF) בשם הקהילה. השימוש בכל השירותים במפעילה OSMF כפוף
ל־<a href="http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
מדיניות שימוש קביל</a> שלנו
ול־<a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy">Privacy Policy</a>מדיניות הפרטיות</a> שלנו
<br>
נא <a href='http://osmfoundation.org/Contact'>ליצור קשר עם OSMF</a> אם יש לך שאלות על רישוי, זכויות יוצרים או שאלות ובעיות משפטיות אחרות.
partners_title: שותפים
@ -1824,9 +1827,9 @@ he:
התרומה</a>.
email address: 'כתובת דוא״ל:'
confirm email address: 'אימות כתובת דוא״ל:'
not displayed publicly: לא מוצג בפומבי (ר׳ <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="wiki privacy policy including section on email addresses">מידיניות
פרטיות</a>)
not displayed publicly: הכתובת שלף לא מוצגת בפומבי, ר׳ את <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="OSMF privacy policy including section on email addresses">מידיניות
פרטיות</a> למידע נוסף
display name: 'שם התצוגה:'
display name description: שם המשתמש שלך, שמוצג בפומבי. אפשר לשנות את זה בהעפות
שלך.

View file

@ -1245,7 +1245,8 @@ id:
Hak Cipta dan Lisensi</a> untuk perinciannya.'
legal_title: Legal
legal_html: |-
Situs ini dan layanan terkait lainnya dioperasikan secara resmi oleh <a href='http://osmfoundation.org/'>OpenStreetMap Foundation</a> (OSMF) atas nama komunitas.
Situs ini dan layanan terkait lainnya dioperasikan secara resmi oleh <a href='http://osmfoundation.org/'>OpenStreetMap Foundation</a> (OSMF) atas nama komunitas. Menggunakan semua layanan yang dioperasikan oleh OSMF tunduk kepada <a href="http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
Kebijakan Penggunaan Diterima</a> dan <a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy">Kebijakan Privasi</a> kami
<br>
Silakan <a href='http://osmfoundation.org/Contact'>menghubungi OSMF</a> jika Anda punya pertanyaan seputar lisensi, hak cipta, atau isu dan pertanyaan hukum lainnya.
partners_title: Rekan
@ -1875,9 +1876,10 @@ id:
kontributor</a>.
email address: 'Alamat Email:'
confirm email address: 'Konfirmasi Alamat Email:'
not displayed publicly: Tidak dipajangkan secara umum (Lihat <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="wiki privacy policy including section on email addresses">kebijakan
privasi</a>)
not displayed publicly: Alamat Anda tidak dipajangkan secara umum, lihat <a
href="http://wiki.osmfoundation.org/wiki/Privacy_Policy" title="OSMF privacy
policy including section on email addresses">kebijakan privasi</a> kami untuk
informasi lebih lanjut
display name: 'Tampilan Nama:'
display name description: Username Anda yang ditampilkan pada publik. Anda dapat
mengubahnya dalam pengaturan.

View file

@ -33,6 +33,7 @@
# Author: Ricordisamoa
# Author: Rippitippi
# Author: Ruila
# Author: Selven
# Author: Shirayuki
# Author: Simone
# Author: SimoneSVC
@ -2050,6 +2051,8 @@ it:
gravatar:
gravatar: Usa Gravatar
link text: che cos'è questo?
disabled: Gravatar è stato disattivato.
enabled: La visualizzazione del vostro Gravatar è stata attivata.
new image: Aggiungi un'immagine
keep image: Mantieni l'immagine attuale
delete image: Rimuovi l'immagine attuale

View file

@ -22,6 +22,7 @@
# Author: Luk3
# Author: Macofe
# Author: Matheus Sousa L.T
# Author: NMaia
# Author: Nemo bis
# Author: Nighto
# Author: Rodrigo Avila
@ -1253,11 +1254,14 @@ pt-BR:
Se você alterar os dados ou criar algo com os dados, pode distribuir
o produto resultante apenas sob a mesma licença. Consulte <a href='%{copyright_path}'>a página sobre direitos de autor e licenciamento</a> para mais informações.
legal_title: Jurídico
legal_html: Esta página e vários outros serviços relacionados são formalmente
legal_html: "Esta página e vários outros serviços relacionados são formalmente
operados pela <a href='http://osmfoundation.org/'>OpenStreetMap Foundation</a>
(OSMF) em nome da comunidade. <br> Por favor <a href='http://osmfoundation.org/Contact'>contate
(OSMF) em nome da comunidade. O uso de todos os serviços operados pela OSMF
está sujeito às nossas <a href=\"http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">\nPolíticas
de Uso Aceitável</a> e à nossa <a href=\"http://wiki.osmfoundation.org/wiki/Privacy_Policy\">Política
de Privacidade</a>\n<br> \nPor favor <a href='http://osmfoundation.org/Contact'>contate
a OSMF</a> se tiver perguntas sobre licenciamento, direitos autorais ou outras
questões e problemas legais.
questões e problemas legais."
partners_title: Parceiros
notifier:
diary_comment_notification:
@ -1884,9 +1888,9 @@ pt-BR:
do Contribuidor</a>.
email address: 'Endereço de E-mail:'
confirm email address: 'Confirme o Endereço de E-mail:'
not displayed publicly: Não será exibido publicamente (veja a <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
not displayed publicly: Seu endereço não é exibido publicamente, veja a <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="política de privacidade no wiki incluindo a seção sobre endereços de
e-mail">política de privacidade</a>)
e-mail">política de privacidade</a> para mais informações
display name: 'Nome de Exibição:'
display name description: Seu nome de usuário disponível publicamente. Você
pode mudá-lo depois nas preferências.

View file

@ -1863,9 +1863,10 @@ pt-PT:
de Colaboração</a>.
email address: 'E-mail:'
confirm email address: 'Confirmar E-mail:'
not displayed publicly: Não será visível publicamente (ver <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="política de privacidade incluindo secção sobre endereços de e-mail">política
de privacidade</a>)
not displayed publicly: O seu endereço de IP não será visível publicamente.
Consulte a <a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy" title="política
de privacidade OSMF, incluindo secção sobre endereços de correio eletrónico">política
de privacidade</a> para mais informação.
display name: 'Nome de utilizador:'
display name description: O nome de utilizador será visível publicamente. Poderá
alterar o nome posteriormente nas preferências.

View file

@ -16,6 +16,7 @@
# Author: DCamer
# Author: Dmitry-s93
# Author: Dr&mx
# Author: Eduard Popov
# Author: Edward17
# Author: Eleferen
# Author: Ergo
@ -1569,6 +1570,8 @@ ru:
private: Частный доступ
destination: Целевой доступ
construction: Строительство дороги
bicycle_shop: Магазин велосипедов
bicycle_parking: Парковка для велосипедов
richtext_area:
edit: Изменить
preview: Предпросмотр
@ -2055,6 +2058,8 @@ ru:
gravatar:
gravatar: Использовать Gravatar
link text: что это?
disabled: Gravatar отключён.
enabled: Отображение вашего Gravatar включено.
new image: Добавить изображение
keep image: Оставить текущее изображение
delete image: Удалить текущее изображение
@ -2420,11 +2425,17 @@ ru:
instructions:
continue_without_exit: Продолжите по %{name}
slight_right_without_exit: Слегка направо на %{name}
endofroad_right_without_exit: В конце дороги поверните направо на %{name}
merge_right_without_exit: Перестройтесь направо на %{name}
fork_right_without_exit: На развилке поверните направо на %{name}
turn_right_without_exit: Поверните направо на %{name}
sharp_right_without_exit: Резко направо на %{name}
uturn_without_exit: Разворот по %{name}
sharp_left_without_exit: Резко налево на %{name}
turn_left_without_exit: Поверните налево на %{name}
endofroad_left_without_exit: В конце дороги поверните налево на %{name}
merge_left_without_exit: Перестройтесь налево на %{name}
fork_left_without_exit: На развилке поверните налево на %{name}
slight_left_without_exit: Слегка влево на %{name}
via_point_without_exit: (через точку)
follow_without_exit: Следуйте %{name}

View file

@ -8,6 +8,7 @@
# Author: Macofe
# Author: Mateju
# Author: Peter Klofutar
# Author: Pickle12
# Author: Ruila
# Author: Skalcaa
# Author: Stefanb
@ -1647,9 +1648,9 @@ sl:
sodelovanja</a>.
email address: 'E-poštni naslov:'
confirm email address: 'Potrdite naslov e-pošte:'
not displayed publicly: Ne bo javno objavljeno (glej <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="politika zasebnosti z razdelkom o naslovu elektronske pošte v wiki-ju">politiko
zasebnosti</a>)
not displayed publicly: Vaš naslov ne bo javno objavljen (za več informacij
glej <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="politika
zasebnosti z razdelkom o naslovu elektronske pošte v wiki-ju">politiko zasebnosti</a>)
display name: 'Prikazno ime:'
display name description: Javno prikazano uporabniško ime. To lahko spremenite
kasneje v nastavitvah.

View file

@ -1019,12 +1019,12 @@ zh-CN:
href="http://osmfoundation.org/Licence">OSMF许可协议页面</a>和<a
href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">法律常见问题</a>阅读更多关于使用我们的数据,以及如何表明我们是作者的信息。
more_2_html: 尽管 OpenStreetMap 开放数据,但是我们无法为第三方开发人员提供免费的地图 API。详见我们的 <a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">API使用政策</a>、<a
href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">图块使用政策</a>及<a
href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">名称服务使用政策</a>。
href="http://wiki.openstreetmap.org/wiki/Zh-hans:Tile_usage_policy">地图图块使用政策</a>及<a
href="http://wiki.openstreetmap.org/wiki/Zh-hans:Nominatim#使用政策">名称服务使用政策</a>。
contributors_title_html: 我们的贡献者
contributors_intro_html: 我们的数据来源于成千上万人的贡献。但我们也从国家测绘机构等处获取公共版权的数据,其中包括:
contributors_at_html: <strong>奥地利</strong>:包含来自 <a href="http://data.wien.gv.at/">Stadt
Wien</a>(<a href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC
Wien</a>(<a href="http://creativecommons.org/licenses/by/3.0/at/deed.zh">CC
BY</a>协议)、<a href="http://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">Land
Vorarlberg</a>及 Land Tirol (修订的 <a href="http://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC-BY
AT</a>协议)的数据。
@ -1044,7 +1044,7 @@ zh-CN:
contributors_gb_html: <strong>英国</strong>:包含来自 Ordnance 的调查数据,&copy; Crown 版权所有及数据库权利2010-12。
contributors_footer_1_html: |-
关于其进一步的细节,及其他被用来帮助提升 OpenStreetMap 的来源,详见 OpenStreetMap Wiki 的<a
href="http://wiki.openstreetmap.org/wiki/Contributors">贡献者页面</a>。
href="http://wiki.openstreetmap.org/wiki/Zh-hans:Contributors">贡献者页面</a>。
contributors_footer_2_html: OpenStreetMap 纳入数据并不意味着原始数据提供者认可 OpenStreetMap、提供任何担保或担负任何法律责任。
infringement_title_html: 著作权侵犯
infringement_1_html: OSM 的贡献者会被提醒,绝不要在没有著作权人的明确许可时添加来自任何有著作权的来源的数据(如谷歌地图或印刷地图)。
@ -1069,7 +1069,7 @@ zh-CN:
tag_html: <strong>标签</strong>是关于节点或路径的简短数据,例如餐馆的名字或者道路的速度限制。
rules:
title: 规则!
paragraph_1_html: OpenStreetMap很少有正式规则但我们期待所有参与者能合作并与社区沟通。如果在考虑任何除手工编辑的活动,请阅读并遵守<a
paragraph_1_html: OpenStreetMap很少有正式规则但我们期待所有参与者能合作并与社区沟通。如果在考虑任何除手工编辑的活动,请阅读并遵守<a
href='http://wiki.openstreetmap.org/wiki/Import/Guidelines'>导入</a>和<a href='http://wiki.openstreetmap.org/wiki/Automated_Edits_code_of_conduct'>自动编辑</a>的指导。
questions:
title: 还有疑问吗?
@ -1143,7 +1143,8 @@ zh-CN:
OpenStreetMap。如果您改变或者使用这些数据您必须按照相同的版权协议发布结果。详情请参见<a href='%{copyright_path}'>版权协议</a>。
legal_title: 法律
legal_html: |-
此网站和很多其他相关服务已由<a href='http://osmfoundation.org/'>OpenStreetMap基金会</a>OSMF正式代表社群运营。
此网站和很多其他相关服务已由<a href='http://osmfoundation.org/'>OpenStreetMap基金会</a>OSMF正式代表社群运营。使用所有由OSMF运营的服务均需符合我们的<a href="http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy">
可接受使用方针</a>和我们的<a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy">隐私政策</a>
<br>
如果您有许可协议、版权或其他法律问题,请<a href='http://osmfoundation.org/Contact'>联络OSMF</a>。
partners_title: 合作伙伴
@ -1512,7 +1513,7 @@ zh-CN:
public_traces_from: 来自 %{user} 的公开 GPS 轨迹
description: 浏览最近上传的 GPS 轨迹
tagged_with: 以 %{tags} 标记
empty_html: 尚无轨迹。<a href='%{upload_link}'>上传新轨迹</a>或在<a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>wiki页面</a>上了解
empty_html: 尚无轨迹。<a href='%{upload_link}'>上传新轨迹</a>或在<a href='http://wiki.openstreetmap.org/wiki/Zh-hans:Beginners_Guide_1.2'>wiki页面</a>上了解
GPS 轨迹。
delete:
scheduled_for_deletion: 计划删除的轨迹
@ -1698,8 +1699,8 @@ zh-CN:
license_agreement: 当您确认您的帐户时,您需要同意<a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">贡献者条款</a>。
email address: 电子邮件地址:
confirm email address: 确认电子邮件地址:
not displayed publicly: 不公开显示(参阅<a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="wiki privacy policy including section on email addresses">隐私政策</a>)
not displayed publicly: 您的地址未公开显示,请参见我们的<a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy"
title="OSMF隐私政策包含部分电子邮件地址">隐私政策</a>以获取更多信息
display name: 显示名称:
display name description: 您公开显示的用户名。您可以稍后在首选项中进行修改。
external auth: 第三方身份验证:
@ -1754,7 +1755,7 @@ zh-CN:
remove as friend: 删除朋友
add as friend: 添加朋友
mapper since: 绘图始于:
ago: (%{time_in_words_ago} 前)
ago: %{time_in_words_ago} 前)
ct status: 贡献者条款:
ct undecided: 未决定
ct declined: 已拒绝

View file

@ -990,8 +990,8 @@ zh-TW:
intro_2_html: |-
您可以自由地複製、散布、傳輸及修改我們的資料,前提是您須標明作者為 OpenStreetMap 及其貢獻者。若您在我們的資料上作修改或據之衍生其他資料
,則只可依相同授權條款散佈有關成果。授權的<a href="http://opendatacommons.org/licenses/odbl/1.0/">法律原文</a>詳述您的權責。
intro_3_html: 我們地圖影像塊的製圖法以及我們的文件,以<a href="http://creativecommons.org/licenses/by-sa/2.0/">共享創意-署名-相同方式共享
2.0</a>(CC BY-SA) 條款授權。
intro_3_html: 我們地圖影像塊的製圖法以及我們的文件,以<a href="http://creativecommons.org/licenses/by-sa/2.0/deed.zh_TW">創用CC
姓名標示-相同方式分享 (CC BY-SA) 2.0版</a>條款授權。
credit_title_html: 如何標明作者是 OpenStreetMap
credit_1_html: 我們要求您以&ldquo;&copy; OpenStreetMap 貢獻者&rdquo;標明作者。
credit_2_html: 您亦須清晰註明,有關資料可透過開放資料庫授權條款取得。若使用我們的影像塊,則須註明其製圖法是按 CC-BY-SA 授權。您可以透過連結至<a
@ -1007,15 +1007,16 @@ zh-TW:
more_title_html: 尋找更多
more_1_html: |-
在<a
href="http://wiki.openstreetmap.org/wiki/Legal_FAQ">常見法律問題</a>中,可閱讀更多關於使用我們的資料,以及如何標明我們是作者的資料。
href="http://osmfoundation.org/Licence">OSMF 授權條款頁面</a>與<a
href="http://wiki.openstreetmap.org/wiki/Zh-hant:Legal_FAQ">法律上的常見問題</a>中,可閱讀更多關於使用我們的資料,以及如何標明我們是作者的資料。
more_2_html: 雖然 OpenStreetMap 是開放資料,但我們無法為第三方開發人員提供免費的地圖 API。詳見我們的<a href="http://wiki.openstreetmap.org/wiki/API_usage_policy">API
使用政策</a>、<a href="http://wiki.openstreetmap.org/wiki/Tile_usage_policy">地圖影像塊使用政策</a>及<a
href="http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy">Nominatim
href="http://wiki.openstreetmap.org/wiki/Zh-hant:Nominatim#使用政策">Nominatim
服務使用政策</a>。
contributors_title_html: 我們的貢獻者
contributors_intro_html: 我們的貢獻者為成千上萬的人。我們也收納了從國家測繪機構及其他來源等取得的開放版權資料,其中包括:
contributors_at_html: <strong>奧地利</strong>:包含來自 <a href="http://data.wien.gv.at/">Stadt
Wien</a> (<a href="http://creativecommons.org/licenses/by/3.0/at/deed.de">CC
Wien</a> (<a href="http://creativecommons.org/licenses/by/3.0/at/deed.zh_TW">CC
BY</a>授權) 、<a href="http://www.vorarlberg.at/vorarlberg/bauen_wohnen/bauen/vermessung_geoinformation/weitereinformationen/services/wmsdienste.htm">Land
Vorarlberg</a>及 Land Tirol (修訂的<a href="http://www.tirol.gv.at/applikationen/e-government/data/nutzungsbedingungen/">CC-BY
AT</a>授權) 的資料。
@ -1161,8 +1162,9 @@ zh-TW:
及其貢獻者。若您在我們的資料上作修改或以之透過某些方式衍生其他資料,則只可依相同授權條款散佈有關成果。詳情請參閱<a href='%{copyright_path}'>版權及授權條款頁面</a>。
legal_title: 法律資訊
legal_html: "本站以及許多相關的服務正式由<a href='http://osmfoundation.org/'>OpenStreetMap 基金會</a>
(OSMF) 代表社群所營運。\n<br> \n若您有任何授權、版權或其他法律諮詢與問題請<a href='http://osmfoundation.org/Contact'>聯絡
OSMF</a>。"
(OSMF) 代表社群所營運。所有使用的OSMF運行服務皆符合我們的<a href=\"http://wiki.openstreetmap.org/wiki/Acceptable_Use_Policy\">可接受使用政策</a>和<a
href=\"http://wiki.osmfoundation.org/wiki/Privacy_Policy\">隱私政策</a>\n<br> \n若您有任何授權、版權或其他法律諮詢與問題請<a
href='http://osmfoundation.org/Contact'>聯絡 OSMF</a>。"
partners_title: 合作夥伴
notifier:
diary_comment_notification:
@ -1530,7 +1532,7 @@ zh-TW:
public_traces_from: '%{user} 的公開 GPS 軌跡'
description: 瀏覽最近的 GPS 軌跡上傳
tagged_with: 有如下標籤:%{tags}
empty_html: 還沒有軌跡。<a href='%{upload_link}'>上傳新的軌跡</a>或在 <a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>wiki
empty_html: 還沒有軌跡。<a href='%{upload_link}'>上傳新的軌跡</a>或在 <a href='http://wiki.openstreetmap.org/wiki/Zh-hant:Beginners_Guide_1.2'>wiki
頁面</a>上瞭解更多有關 GPS 軌跡的資訊。
delete:
scheduled_for_deletion: 軌跡已被排程刪除
@ -1717,8 +1719,8 @@ zh-TW:
email address: 電子郵件地址:
confirm email address: 確認電子郵件地址:
not displayed publicly: 不要公開顯示 (請看 <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
title="wiki privacy policy including section on email addresses">隱私權政策</a>)
not displayed publicly: 您的地址未公開顯示,請看我們的<a href="http://wiki.osmfoundation.org/wiki/Privacy_Policy"
title="包含部份電郵地址的OSMF隱私權政策">隱私權政策</a>來獲得更多訊息
display name: 顯示名稱:
display name description: 您公開顯示的使用者名稱。您可以稍後在偏好設定中改變它。
external auth: 第三方身份認證

View file

@ -85,32 +85,40 @@ class BrowseControllerTest < ActionController::TestCase
end
def test_read_note
browse_check "note", notes(:open_note).id, "browse/note"
open_note = create(:note_with_comments)
browse_check "note", open_note.id, "browse/note"
end
def test_read_hidden_note
get :note, :id => notes(:hidden_note_with_comment).id
hidden_note_with_comment = create(:note_with_comments, :status => "hidden")
get :note, :id => hidden_note_with_comment.id
assert_response :not_found
assert_template "browse/not_found"
assert_template :layout => "map"
xhr :get, :note, :id => notes(:hidden_note_with_comment).id
xhr :get, :note, :id => hidden_note_with_comment.id
assert_response :not_found
assert_template "browse/not_found"
assert_template :layout => "xhr"
session[:user] = users(:moderator_user).id
browse_check "note", notes(:hidden_note_with_comment).id, "browse/note"
browse_check "note", hidden_note_with_comment.id, "browse/note"
end
def test_read_note_hidden_comments
browse_check "note", notes(:note_with_hidden_comment).id, "browse/note"
note_with_hidden_comment = create(:note_with_comments, :comments_count => 2) do |note|
create(:note_comment, :note => note, :visible => false)
end
browse_check "note", note_with_hidden_comment.id, "browse/note"
assert_select "div.note-comments ul li", :count => 1
session[:user] = users(:moderator_user).id
browse_check "note", notes(:note_with_hidden_comment).id, "browse/note"
browse_check "note", note_with_hidden_comment.id, "browse/note"
assert_select "div.note-comments ul li", :count => 2
end

View file

@ -3,7 +3,7 @@ require "changeset_controller"
class ChangesetControllerTest < ActionController::TestCase
api_fixtures
fixtures :friends, :changeset_comments, :changesets_subscribers
fixtures :changeset_comments, :changesets_subscribers
##
# test all routes which lead to this controller

View file

@ -1,7 +1,7 @@
require "test_helper"
class DiaryEntryControllerTest < ActionController::TestCase
fixtures :users, :user_roles, :languages, :friends
fixtures :users, :user_roles, :languages
include ActionView::Helpers::NumberHelper
@ -440,7 +440,8 @@ class DiaryEntryControllerTest < ActionController::TestCase
end
def test_list_friends
diary_entry = create(:diary_entry, :user_id => friends(:normal_user_with_second_user).friend_user_id)
friend = create(:friend, :user_id => users(:normal_user).id)
diary_entry = create(:diary_entry, :user_id => friend.friend_user_id)
_other_entry = create(:diary_entry, :user_id => users(:second_public_user).id)
# Try a list of diary entries for your friends when not logged in

View file

@ -1,7 +1,7 @@
require "test_helper"
class NotesControllerTest < ActionController::TestCase
fixtures :users, :user_roles, :notes, :note_comments
fixtures :users, :user_roles
##
# test all routes which lead to this controller
@ -214,44 +214,50 @@ class NotesControllerTest < ActionController::TestCase
end
def test_comment_success
open_note_with_comment = create(:note_with_comments)
assert_difference "NoteComment.count", 1 do
assert_no_difference "ActionMailer::Base.deliveries.size" do
post :comment, :id => notes(:open_note_with_comment).id, :text => "This is an additional comment", :format => "json"
post :comment, :id => open_note_with_comment.id, :text => "This is an additional comment", :format => "json"
end
end
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:open_note_with_comment).id, js["properties"]["id"]
assert_equal open_note_with_comment.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 5, js["properties"]["comments"].count
assert_equal 2, js["properties"]["comments"].count
assert_equal "commented", js["properties"]["comments"].last["action"]
assert_equal "This is an additional comment", js["properties"]["comments"].last["text"]
assert_nil js["properties"]["comments"].last["user"]
get :show, :id => notes(:open_note_with_comment).id, :format => "json"
get :show, :id => open_note_with_comment.id, :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:open_note_with_comment).id, js["properties"]["id"]
assert_equal open_note_with_comment.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 5, js["properties"]["comments"].count
assert_equal 2, js["properties"]["comments"].count
assert_equal "commented", js["properties"]["comments"].last["action"]
assert_equal "This is an additional comment", js["properties"]["comments"].last["text"]
assert_nil js["properties"]["comments"].last["user"]
# Ensure that emails are sent to users
note_with_comments_by_users = create(:note) do |note|
create(:note_comment, :note => note, :author_id => users(:normal_user).id)
create(:note_comment, :note => note, :author_id => users(:second_public_user).id)
end
assert_difference "NoteComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 2 do
post :comment, :id => notes(:note_with_comments_by_users).id, :text => "This is an additional comment", :format => "json"
post :comment, :id => note_with_comments_by_users.id, :text => "This is an additional comment", :format => "json"
end
end
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:note_with_comments_by_users).id, js["properties"]["id"]
assert_equal note_with_comments_by_users.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 3, js["properties"]["comments"].count
assert_equal "commented", js["properties"]["comments"].last["action"]
@ -268,12 +274,12 @@ class NotesControllerTest < ActionController::TestCase
assert_equal 1, email.to.length
assert_equal "[OpenStreetMap] An anonymous user has commented on a note you are interested in", email.subject
get :show, :id => notes(:note_with_comments_by_users).id, :format => "json"
get :show, :id => note_with_comments_by_users.id, :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:note_with_comments_by_users).id, js["properties"]["id"]
assert_equal note_with_comments_by_users.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 3, js["properties"]["comments"].count
assert_equal "commented", js["properties"]["comments"].last["action"]
@ -286,14 +292,14 @@ class NotesControllerTest < ActionController::TestCase
assert_difference "NoteComment.count", 1 do
assert_difference "ActionMailer::Base.deliveries.size", 2 do
post :comment, :id => notes(:note_with_comments_by_users).id, :text => "This is an additional comment", :format => "json"
post :comment, :id => note_with_comments_by_users.id, :text => "This is an additional comment", :format => "json"
end
end
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:note_with_comments_by_users).id, js["properties"]["id"]
assert_equal note_with_comments_by_users.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 4, js["properties"]["comments"].count
assert_equal "commented", js["properties"]["comments"].last["action"]
@ -311,12 +317,12 @@ class NotesControllerTest < ActionController::TestCase
assert_equal 1, email.to.length
assert_equal "[OpenStreetMap] test2 has commented on a note you are interested in", email.subject
get :show, :id => notes(:note_with_comments_by_users).id, :format => "json"
get :show, :id => note_with_comments_by_users.id, :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:note_with_comments_by_users).id, js["properties"]["id"]
assert_equal note_with_comments_by_users.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 4, js["properties"]["comments"].count
assert_equal "commented", js["properties"]["comments"].last["action"]
@ -327,18 +333,20 @@ class NotesControllerTest < ActionController::TestCase
end
def test_comment_fail
open_note_with_comment = create(:note_with_comments)
assert_no_difference "NoteComment.count" do
post :comment, :text => "This is an additional comment"
end
assert_response :bad_request
assert_no_difference "NoteComment.count" do
post :comment, :id => notes(:open_note_with_comment).id
post :comment, :id => open_note_with_comment.id
end
assert_response :bad_request
assert_no_difference "NoteComment.count" do
post :comment, :id => notes(:open_note_with_comment).id, :text => ""
post :comment, :id => open_note_with_comment.id, :text => ""
end
assert_response :bad_request
@ -347,43 +355,49 @@ class NotesControllerTest < ActionController::TestCase
end
assert_response :not_found
hidden_note_with_comment = create(:note_with_comments, :status => "hidden")
assert_no_difference "NoteComment.count" do
post :comment, :id => notes(:hidden_note_with_comment).id, :text => "This is an additional comment"
post :comment, :id => hidden_note_with_comment.id, :text => "This is an additional comment"
end
assert_response :gone
closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now)
assert_no_difference "NoteComment.count" do
post :comment, :id => notes(:closed_note_with_comment).id, :text => "This is an additional comment"
post :comment, :id => closed_note_with_comment.id, :text => "This is an additional comment"
end
assert_response :conflict
end
def test_close_success
post :close, :id => notes(:open_note_with_comment).id, :text => "This is a close comment", :format => "json"
open_note_with_comment = create(:note_with_comments)
post :close, :id => open_note_with_comment.id, :text => "This is a close comment", :format => "json"
assert_response :unauthorized
basic_authorization(users(:public_user).email, "test")
post :close, :id => notes(:open_note_with_comment).id, :text => "This is a close comment", :format => "json"
post :close, :id => open_note_with_comment.id, :text => "This is a close comment", :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:open_note_with_comment).id, js["properties"]["id"]
assert_equal open_note_with_comment.id, js["properties"]["id"]
assert_equal "closed", js["properties"]["status"]
assert_equal 5, js["properties"]["comments"].count
assert_equal 2, js["properties"]["comments"].count
assert_equal "closed", js["properties"]["comments"].last["action"]
assert_equal "This is a close comment", js["properties"]["comments"].last["text"]
assert_equal "test2", js["properties"]["comments"].last["user"]
get :show, :id => notes(:open_note_with_comment).id, :format => "json"
get :show, :id => open_note_with_comment.id, :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:open_note_with_comment).id, js["properties"]["id"]
assert_equal open_note_with_comment.id, js["properties"]["id"]
assert_equal "closed", js["properties"]["status"]
assert_equal 5, js["properties"]["comments"].count
assert_equal 2, js["properties"]["comments"].count
assert_equal "closed", js["properties"]["comments"].last["action"]
assert_equal "This is a close comment", js["properties"]["comments"].last["text"]
assert_equal "test2", js["properties"]["comments"].last["user"]
@ -401,37 +415,43 @@ class NotesControllerTest < ActionController::TestCase
post :close, :id => 12345
assert_response :not_found
post :close, :id => notes(:hidden_note_with_comment).id
hidden_note_with_comment = create(:note_with_comments, :status => "hidden")
post :close, :id => hidden_note_with_comment.id
assert_response :gone
post :close, :id => notes(:closed_note_with_comment).id
closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now)
post :close, :id => closed_note_with_comment.id
assert_response :conflict
end
def test_reopen_success
post :reopen, :id => notes(:closed_note_with_comment).id, :text => "This is a reopen comment", :format => "json"
closed_note_with_comment = create(:note_with_comments, :status => "closed", :closed_at => Time.now)
post :reopen, :id => closed_note_with_comment.id, :text => "This is a reopen comment", :format => "json"
assert_response :unauthorized
basic_authorization(users(:public_user).email, "test")
post :reopen, :id => notes(:closed_note_with_comment).id, :text => "This is a reopen comment", :format => "json"
post :reopen, :id => closed_note_with_comment.id, :text => "This is a reopen comment", :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:closed_note_with_comment).id, js["properties"]["id"]
assert_equal closed_note_with_comment.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 2, js["properties"]["comments"].count
assert_equal "reopened", js["properties"]["comments"].last["action"]
assert_equal "This is a reopen comment", js["properties"]["comments"].last["text"]
assert_equal "test2", js["properties"]["comments"].last["user"]
get :show, :id => notes(:closed_note_with_comment).id, :format => "json"
get :show, :id => closed_note_with_comment.id, :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:closed_note_with_comment).id, js["properties"]["id"]
assert_equal closed_note_with_comment.id, js["properties"]["id"]
assert_equal "open", js["properties"]["status"]
assert_equal 2, js["properties"]["comments"].count
assert_equal "reopened", js["properties"]["comments"].last["action"]
@ -440,7 +460,9 @@ class NotesControllerTest < ActionController::TestCase
end
def test_reopen_fail
post :reopen, :id => notes(:hidden_note_with_comment).id
hidden_note_with_comment = create(:note_with_comments, :status => "hidden")
post :reopen, :id => hidden_note_with_comment.id
assert_response :unauthorized
basic_authorization(users(:public_user).email, "test")
@ -448,126 +470,138 @@ class NotesControllerTest < ActionController::TestCase
post :reopen, :id => 12345
assert_response :not_found
post :reopen, :id => notes(:hidden_note_with_comment).id
post :reopen, :id => hidden_note_with_comment.id
assert_response :gone
post :reopen, :id => notes(:open_note_with_comment).id
open_note_with_comment = create(:note_with_comments)
post :reopen, :id => open_note_with_comment.id
assert_response :conflict
end
def test_show_success
get :show, :id => notes(:open_note).id, :format => "xml"
open_note = create(:note_with_comments)
get :show, :id => open_note.id, :format => "xml"
assert_response :success
assert_equal "application/xml", @response.content_type
assert_select "osm", :count => 1 do
assert_select "note[lat='#{notes(:open_note).lat}'][lon='#{notes(:open_note).lon}']", :count => 1 do
assert_select "id", notes(:open_note).id
assert_select "url", note_url(notes(:open_note), :format => "xml")
assert_select "comment_url", comment_note_url(notes(:open_note), :format => "xml")
assert_select "close_url", close_note_url(notes(:open_note), :format => "xml")
assert_select "date_created", notes(:open_note).created_at.to_s
assert_select "status", notes(:open_note).status
assert_select "note[lat='#{open_note.lat}'][lon='#{open_note.lon}']", :count => 1 do
assert_select "id", open_note.id.to_s
assert_select "url", note_url(open_note, :format => "xml")
assert_select "comment_url", comment_note_url(open_note, :format => "xml")
assert_select "close_url", close_note_url(open_note, :format => "xml")
assert_select "date_created", open_note.created_at.to_s
assert_select "status", open_note.status
assert_select "comments", :count => 1 do
assert_select "comment", :count => 1
end
end
end
get :show, :id => notes(:open_note).id, :format => "rss"
get :show, :id => open_note.id, :format => "rss"
assert_response :success
assert_equal "application/rss+xml", @response.content_type
assert_select "rss", :count => 1 do
assert_select "channel", :count => 1 do
assert_select "item", :count => 1 do
assert_select "link", browse_note_url(notes(:open_note))
assert_select "guid", note_url(notes(:open_note))
assert_select "pubDate", notes(:open_note).created_at.to_s(:rfc822)
# assert_select "geo:lat", notes(:open_note).lat.to_s
# assert_select "geo:long", notes(:open_note).lon
# assert_select "georss:point", "#{notes(:open_note).lon} #{notes(:open_note).lon}"
assert_select "link", browse_note_url(open_note)
assert_select "guid", note_url(open_note)
assert_select "pubDate", open_note.created_at.to_s(:rfc822)
# assert_select "geo:lat", open_note.lat.to_s
# assert_select "geo:long", open_note.lon
# assert_select "georss:point", "#{open_note.lon} #{open_note.lon}"
end
end
end
get :show, :id => notes(:open_note).id, :format => "json"
get :show, :id => open_note.id, :format => "json"
assert_response :success
assert_equal "application/json", @response.content_type
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal "Point", js["geometry"]["type"]
assert_equal notes(:open_note).lat, js["geometry"]["coordinates"][0]
assert_equal notes(:open_note).lon, js["geometry"]["coordinates"][1]
assert_equal notes(:open_note).id, js["properties"]["id"]
assert_equal note_url(notes(:open_note), :format => "json"), js["properties"]["url"]
assert_equal comment_note_url(notes(:open_note), :format => "json"), js["properties"]["comment_url"]
assert_equal close_note_url(notes(:open_note), :format => "json"), js["properties"]["close_url"]
assert_equal notes(:open_note).created_at, js["properties"]["date_created"]
assert_equal notes(:open_note).status, js["properties"]["status"]
assert_equal open_note.lat, js["geometry"]["coordinates"][0]
assert_equal open_note.lon, js["geometry"]["coordinates"][1]
assert_equal open_note.id, js["properties"]["id"]
assert_equal note_url(open_note, :format => "json"), js["properties"]["url"]
assert_equal comment_note_url(open_note, :format => "json"), js["properties"]["comment_url"]
assert_equal close_note_url(open_note, :format => "json"), js["properties"]["close_url"]
assert_equal open_note.created_at.to_s, js["properties"]["date_created"]
assert_equal open_note.status, js["properties"]["status"]
get :show, :id => notes(:open_note).id, :format => "gpx"
get :show, :id => open_note.id, :format => "gpx"
assert_response :success
assert_equal "application/gpx+xml", @response.content_type
assert_select "gpx", :count => 1 do
assert_select "wpt[lat='#{notes(:open_note).lat}'][lon='#{notes(:open_note).lon}']", :count => 1 do
assert_select "wpt[lat='#{open_note.lat}'][lon='#{open_note.lon}']", :count => 1 do
assert_select "time", :count => 1
assert_select "name", "Note: #{notes(:open_note).id}"
assert_select "name", "Note: #{open_note.id}"
assert_select "desc", :count => 1
assert_select "link[href='http://www.openstreetmap.org/note/#{notes(:open_note).id}']", :count => 1
assert_select "link[href='http://www.openstreetmap.org/note/#{open_note.id}']", :count => 1
assert_select "extensions", :count => 1 do
assert_select "id", notes(:open_note).id
assert_select "url", note_url(notes(:open_note), :format => "gpx")
assert_select "comment_url", comment_note_url(notes(:open_note), :format => "gpx")
assert_select "close_url", close_note_url(notes(:open_note), :format => "gpx")
assert_select "id", open_note.id.to_s
assert_select "url", note_url(open_note, :format => "gpx")
assert_select "comment_url", comment_note_url(open_note, :format => "gpx")
assert_select "close_url", close_note_url(open_note, :format => "gpx")
end
end
end
end
def test_show_hidden_comment
get :show, :id => notes(:note_with_hidden_comment).id, :format => "json"
note_with_hidden_comment = create(:note) do |note|
create(:note_comment, :note => note, :body => "Valid comment for hidden note")
create(:note_comment, :note => note, :visible => false)
create(:note_comment, :note => note, :body => "Another valid comment for hidden note")
end
get :show, :id => note_with_hidden_comment.id, :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:note_with_hidden_comment).id, js["properties"]["id"]
assert_equal note_with_hidden_comment.id, js["properties"]["id"]
assert_equal 2, js["properties"]["comments"].count
assert_equal "Valid comment for note 5", js["properties"]["comments"][0]["text"]
assert_equal "Another valid comment for note 5", js["properties"]["comments"][1]["text"]
assert_equal "Valid comment for hidden note", js["properties"]["comments"][0]["text"]
assert_equal "Another valid comment for hidden note", js["properties"]["comments"][1]["text"]
end
def test_show_fail
get :show, :id => 12345
assert_response :not_found
get :show, :id => notes(:hidden_note_with_comment).id
get :show, :id => create(:note, :status => "hidden").id
assert_response :gone
end
def test_destroy_success
delete :destroy, :id => notes(:open_note_with_comment).id, :text => "This is a hide comment", :format => "json"
open_note_with_comment = create(:note_with_comments)
delete :destroy, :id => open_note_with_comment.id, :text => "This is a hide comment", :format => "json"
assert_response :unauthorized
basic_authorization(users(:public_user).email, "test")
delete :destroy, :id => notes(:open_note_with_comment).id, :text => "This is a hide comment", :format => "json"
delete :destroy, :id => open_note_with_comment.id, :text => "This is a hide comment", :format => "json"
assert_response :forbidden
basic_authorization(users(:moderator_user).email, "test")
delete :destroy, :id => notes(:open_note_with_comment).id, :text => "This is a hide comment", :format => "json"
delete :destroy, :id => open_note_with_comment.id, :text => "This is a hide comment", :format => "json"
assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "Feature", js["type"]
assert_equal notes(:open_note_with_comment).id, js["properties"]["id"]
assert_equal open_note_with_comment.id, js["properties"]["id"]
assert_equal "hidden", js["properties"]["status"]
assert_equal 5, js["properties"]["comments"].count
assert_equal 2, js["properties"]["comments"].count
assert_equal "hidden", js["properties"]["comments"].last["action"]
assert_equal "This is a hide comment", js["properties"]["comments"].last["text"]
assert_equal "moderator", js["properties"]["comments"].last["user"]
get :show, :id => notes(:open_note_with_comment).id, :format => "json"
get :show, :id => open_note_with_comment.id, :format => "json"
assert_response :gone
end
@ -585,11 +619,17 @@ class NotesControllerTest < ActionController::TestCase
delete :destroy, :id => 12345, :format => "json"
assert_response :not_found
delete :destroy, :id => notes(:hidden_note_with_comment).id, :format => "json"
hidden_note_with_comment = create(:note_with_comments, :status => "hidden")
delete :destroy, :id => hidden_note_with_comment.id, :format => "json"
assert_response :gone
end
def test_index_success
position = (1.1 * GeoRecord::SCALE).to_i
create(:note_with_comments, :latitude => position, :longitude => position)
create(:note_with_comments, :latitude => position, :longitude => position)
get :index, :bbox => "1,1,1.2,1.2", :format => "rss"
assert_response :success
assert_equal "application/rss+xml", @response.content_type
@ -623,6 +663,10 @@ class NotesControllerTest < ActionController::TestCase
end
def test_index_limit
position = (1.1 * GeoRecord::SCALE).to_i
create(:note_with_comments, :latitude => position, :longitude => position)
create(:note_with_comments, :latitude => position, :longitude => position)
get :index, :bbox => "1,1,1.2,1.2", :limit => 1, :format => "rss"
assert_response :success
assert_equal "application/rss+xml", @response.content_type
@ -707,29 +751,37 @@ class NotesControllerTest < ActionController::TestCase
end
def test_index_closed
create(:note_with_comments, :status => "closed", :closed_at => Time.now - 5.days)
create(:note_with_comments, :status => "closed", :closed_at => Time.now - 100.days)
create(:note_with_comments, :status => "hidden")
create(:note_with_comments)
# Open notes + closed in last 7 days
get :index, :bbox => "1,1,1.7,1.7", :closed => "7", :format => "json"
assert_response :success
assert_equal "application/json", @response.content_type
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "FeatureCollection", js["type"]
assert_equal 4, js["features"].count
assert_equal 2, js["features"].count
# Only open notes
get :index, :bbox => "1,1,1.7,1.7", :closed => "0", :format => "json"
assert_response :success
assert_equal "application/json", @response.content_type
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "FeatureCollection", js["type"]
assert_equal 4, js["features"].count
assert_equal 1, js["features"].count
# Open notes + all closed notes
get :index, :bbox => "1,1,1.7,1.7", :closed => "-1", :format => "json"
assert_response :success
assert_equal "application/json", @response.content_type
js = ActiveSupport::JSON.decode(@response.body)
assert_not_nil js
assert_equal "FeatureCollection", js["type"]
assert_equal 6, js["features"].count
assert_equal 3, js["features"].count
end
def test_index_bad_params
@ -759,14 +811,16 @@ class NotesControllerTest < ActionController::TestCase
end
def test_search_success
get :search, :q => "note 1", :format => "xml"
create(:note_with_comments)
get :search, :q => "note comment", :format => "xml"
assert_response :success
assert_equal "application/xml", @response.content_type
assert_select "osm", :count => 1 do
assert_select "note", :count => 1
end
get :search, :q => "note 1", :format => "json"
get :search, :q => "note comment", :format => "json"
assert_response :success
assert_equal "application/json", @response.content_type
js = ActiveSupport::JSON.decode(@response.body)
@ -774,7 +828,7 @@ class NotesControllerTest < ActionController::TestCase
assert_equal "FeatureCollection", js["type"]
assert_equal 1, js["features"].count
get :search, :q => "note 1", :format => "rss"
get :search, :q => "note comment", :format => "rss"
assert_response :success
assert_equal "application/rss+xml", @response.content_type
assert_select "rss", :count => 1 do
@ -783,7 +837,7 @@ class NotesControllerTest < ActionController::TestCase
end
end
get :search, :q => "note 1", :format => "gpx"
get :search, :q => "note comment", :format => "gpx"
assert_response :success
assert_equal "application/gpx+xml", @response.content_type
assert_select "gpx", :count => 1 do
@ -792,6 +846,8 @@ class NotesControllerTest < ActionController::TestCase
end
def test_search_no_match
create(:note_with_comments)
get :search, :q => "no match", :format => "xml"
assert_response :success
assert_equal "application/xml", @response.content_type
@ -836,12 +892,19 @@ class NotesControllerTest < ActionController::TestCase
end
def test_feed_success
position = (1.1 * GeoRecord::SCALE).to_i
create(:note_with_comments, :latitude => position, :longitude => position)
create(:note_with_comments, :latitude => position, :longitude => position)
position = (1.5 * GeoRecord::SCALE).to_i
create(:note_with_comments, :latitude => position, :longitude => position)
create(:note_with_comments, :latitude => position, :longitude => position)
get :feed, :format => "rss"
assert_response :success
assert_equal "application/rss+xml", @response.content_type
assert_select "rss", :count => 1 do
assert_select "channel", :count => 1 do
assert_select "item", :count => 10
assert_select "item", :count => 4
end
end
@ -850,7 +913,7 @@ class NotesControllerTest < ActionController::TestCase
assert_equal "application/rss+xml", @response.content_type
assert_select "rss", :count => 1 do
assert_select "channel", :count => 1 do
assert_select "item", :count => 5
assert_select "item", :count => 2
end
end
end
@ -870,13 +933,24 @@ class NotesControllerTest < ActionController::TestCase
end
def test_mine_success
create(:note) do |note|
create(:note_comment, :note => note, :author_id => users(:normal_user).id)
end
create(:note) do |note|
create(:note_comment, :note => note, :author_id => users(:second_public_user).id)
end
create(:note, :status => "hidden") do |note|
create(:note_comment, :note => note, :author_id => users(:second_public_user).id)
end
# Note that the table rows include a header row
get :mine, :display_name => "test"
assert_response :success
assert_select "table.note_list tr", :count => 2
get :mine, :display_name => "pulibc_test2"
assert_response :success
assert_select "table.note_list tr", :count => 3
assert_select "table.note_list tr", :count => 2
get :mine, :display_name => "non-existent"
assert_response :not_found
@ -889,7 +963,7 @@ class NotesControllerTest < ActionController::TestCase
get :mine, :display_name => "pulibc_test2"
assert_response :success
assert_select "table.note_list tr", :count => 4
assert_select "table.note_list tr", :count => 3
get :mine, :display_name => "non-existent"
assert_response :not_found

View file

@ -265,7 +265,9 @@ class SiteControllerTest < ActionController::TestCase
# Test editing a specific note
def test_edit_with_note
user = users(:public_user)
note = notes(:open_note)
note = create(:note) do |n|
n.comments.create(:author_id => user.id)
end
get :edit, { :note => note.id }, { :user => user.id }
assert_response :success

View file

@ -2,7 +2,7 @@ require "test_helper"
class UserControllerTest < ActionController::TestCase
api_fixtures
fixtures :messages, :friends
fixtures :messages
##
# test all routes which lead to this controller
@ -1191,6 +1191,7 @@ class UserControllerTest < ActionController::TestCase
# Get users to work with
user = users(:normal_user)
friend = users(:public_user)
create(:friend, :user_id => user.id, :friend_user_id => friend.id)
# Check that the users are friends
assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first
@ -1231,6 +1232,7 @@ class UserControllerTest < ActionController::TestCase
# Get users to work with
user = users(:normal_user)
friend = users(:public_user)
create(:friend, :user_id => user.id, :friend_user_id => friend.id)
# Check that the users are friends
assert Friend.where(:user_id => user.id, :friend_user_id => friend.id).first

View file

@ -0,0 +1,7 @@
FactoryGirl.define do
factory :friend do
# Fixme requires User Factory
user_id 1
friend_user_id 2
end
end

View file

@ -0,0 +1,8 @@
FactoryGirl.define do
factory :note_comment do
sequence(:body) { |n| "This is note comment #{n}" }
visible true
event "opened"
note
end
end

17
test/factories/notes.rb Normal file
View file

@ -0,0 +1,17 @@
FactoryGirl.define do
factory :note do
latitude 1 * GeoRecord::SCALE
longitude 1 * GeoRecord::SCALE
# tile QuadTile.tile_for_point(1,1)
factory :note_with_comments do
transient do
comments_count 1
end
after(:create) do |note, evaluator|
create_list(:note_comment, evaluator.comments_count, :note => note)
end
end
end
end

View file

@ -1,4 +0,0 @@
normal_user_with_second_user:
id: 1
user_id: 1
friend_user_id: 2

View file

@ -1,142 +0,0 @@
t1:
id: 1
note_id: 1
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_ip: '192.168.1.1'
body: 'This is the initial description of the note 1'
t2:
id: 2
note_id: 2
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_ip: '192.168.1.1'
body: 'This is the initial description of the note 2'
t3:
id: 3
note_id: 2
visible: true
event: opened
created_at: 2007-02-01 00:00:00
author_ip: '192.168.1.1'
body: 'This is an additional comment for note 2'
t4:
id: 4
note_id: 3
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_ip: '192.168.1.1'
body: 'This is the initial comment for note 3'
t5:
id: 5
note_id: 4
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_ip: '192.168.1.1'
body: 'Spam for note 4'
t6:
id: 6
note_id: 5
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_ip: '192.168.1.1'
body: 'Valid comment for note 5'
t7:
id: 7
note_id: 5
visible: false
event: commented
created_at: 2007-02-01 00:00:00
author_ip: '192.168.1.1'
body: 'Spam for note 5'
t8:
id: 8
note_id: 5
visible: true
event: commented
created_at: 2007-02-01 00:00:00
author_ip: '192.168.1.1'
body: 'Another valid comment for note 5'
t9:
id: 9
note_id: 6
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_id: 1
body: 'This is a note with from a logged-in user'
t10:
id: 10
note_id: 6
visible: true
event: commented
created_at: 2007-02-01 00:00:00
author_id: 4
body: 'A comment from another logged-in user'
t11:
id: 11
note_id: 7
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_ip: '192.168.1.1'
body: 'Initial note description'
t12:
id: 12
note_id: 7
visible: true
event: commented
created_at: 2007-02-01 00:00:00
author_ip: '192.168.1.1'
body: 'A comment description'
t13:
id: 13
note_id: 7
visible: true
event: closed
created_at: 2007-03-01 00:00:00
author_id: 4
t14:
id: 14
note_id: 8
visible: true
event: commented
created_at: 2007-02-01 00:00:00
author_id: 4
body: 'A comment description'
t15:
id: 15
note_id: 2
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_id: 10
body: 'This is a note with from a suspended user'
t16:
id: 16
note_id: 2
visible: true
event: opened
created_at: 2007-01-01 00:00:00
author_id: 11
body: 'This is a note with from a deleted user'

View file

@ -1,113 +0,0 @@
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
<% SCALE = 10000000 unless defined?(SCALE) %>
open_note:
id: 1
latitude: <%= 1*SCALE %>
longitude: <%= 1*SCALE %>
status: open
tile: <%= QuadTile.tile_for_point(1,1) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-01-01 00:00:00
open_note_with_comment:
id: 2
latitude: <%= 1.1*SCALE %>
longitude: <%= 1.1*SCALE %>
status: open
tile: <%= QuadTile.tile_for_point(1.1,1.1) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-02-01 00:00:00
closed_note_with_comment:
id: 3
latitude: <%= 1.2*SCALE %>
longitude: <%= 1.2*SCALE %>
status: closed
tile: <%= QuadTile.tile_for_point(1.2,1.2) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
closed_at: 2007-03-01 00:00:00
hidden_note_with_comment:
id: 4
latitude: <%= 1.3*SCALE %>
longitude: <%= 1.3*SCALE %>
status: hidden
tile: <%= QuadTile.tile_for_point(1.3,1.3) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
note_with_hidden_comment:
id: 5
latitude: <%= 1.4*SCALE %>
longitude: <%= 1.4*SCALE %>
status: open
tile: <%= QuadTile.tile_for_point(1.4,1.4) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
note_with_comments_by_users:
id: 6
latitude: <%= 1.5*SCALE %>
longitude: <%= 1.5*SCALE %>
status: open
tile: <%= QuadTile.tile_for_point(1.5,1.5) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
note_closed_by_user:
id: 7
latitude: <%= 1.6*SCALE %>
longitude: <%= 1.6*SCALE %>
status: closed
tile: <%= QuadTile.tile_for_point(1.6,1.6) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
closed_at: 2007-03-01 00:00:00
hidden_note_with_comment:
id: 4
latitude: <%= 1.3*SCALE %>
longitude: <%= 1.3*SCALE %>
status: hidden
tile: <%= QuadTile.tile_for_point(1.3,1.3) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
note_with_hidden_comment:
id: 5
latitude: <%= 1.4*SCALE %>
longitude: <%= 1.4*SCALE %>
status: open
tile: <%= QuadTile.tile_for_point(1.4,1.4) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
note_with_comments_by_users:
id: 6
latitude: <%= 1.5*SCALE %>
longitude: <%= 1.5*SCALE %>
status: open
tile: <%= QuadTile.tile_for_point(1.5,1.5) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
note_closed_by_user:
id: 7
latitude: <%= 1.6*SCALE %>
longitude: <%= 1.6*SCALE %>
status: closed
tile: <%= QuadTile.tile_for_point(1.6,1.6) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00
closed_at: 2007-03-01 00:00:00
hidden_note_with_comment_by_user:
id: 8
latitude: <%= 1.3*SCALE %>
longitude: <%= 1.3*SCALE %>
status: hidden
tile: <%= QuadTile.tile_for_point(1.3,1.3) %>
created_at: 2007-01-01 00:00:00
updated_at: 2007-03-01 00:00:00

View file

@ -2,9 +2,9 @@ require "test_helper"
class FriendTest < ActiveSupport::TestCase
api_fixtures
fixtures :friends
def test_friend_count
create(:friend)
assert_equal 1, Friend.count
end
end

View file

@ -2,20 +2,20 @@
require "test_helper"
class NoteCommentTest < ActiveSupport::TestCase
fixtures :users, :notes, :note_comments
fixtures :users
def test_event_valid
ok = %w(opened closed reopened commented hidden)
bad = %w(expropriated fubared)
ok.each do |event|
note_comment = note_comments(:t1)
note_comment = create(:note_comment)
note_comment.event = event
assert note_comment.valid?, "#{event} is invalid, when it should be"
end
bad.each do |event|
note_comment = note_comments(:t1)
note_comment = create(:note_comment)
note_comment.event = event
assert !note_comment.valid?, "#{event} is valid when it shouldn't be"
end
@ -28,13 +28,13 @@ class NoteCommentTest < ActiveSupport::TestCase
"foo\ufffebar", "foo\uffffbar"]
ok.each do |body|
note_comment = note_comments(:t1)
note_comment = create(:note_comment)
note_comment.body = body
assert note_comment.valid?, "#{body} is invalid, when it should be"
end
bad.each do |body|
note_comment = note_comments(:t1)
note_comment = create(:note_comment)
note_comment.body = body
assert !note_comment.valid?, "#{body} is valid when it shouldn't be"
end

View file

@ -2,27 +2,27 @@
require "test_helper"
class NoteTest < ActiveSupport::TestCase
fixtures :users, :notes, :note_comments
fixtures :users
def test_status_valid
ok = %w(open closed hidden)
bad = %w(expropriated fubared)
ok.each do |status|
note = notes(:open_note)
note = create(:note)
note.status = status
assert note.valid?, "#{status} is invalid, when it should be"
end
bad.each do |status|
note = notes(:open_note)
note = create(:note)
note.status = status
assert !note.valid?, "#{status} is valid when it shouldn't be"
end
end
def test_close
note = notes(:open_note)
note = create(:note)
assert_equal "open", note.status
assert_nil note.closed_at
note.close
@ -31,7 +31,7 @@ class NoteTest < ActiveSupport::TestCase
end
def test_reopen
note = notes(:closed_note_with_comment)
note = create(:note, :status => "closed", :closed_at => Time.now)
assert_equal "closed", note.status
assert_not_nil note.closed_at
note.reopen
@ -40,23 +40,29 @@ class NoteTest < ActiveSupport::TestCase
end
def test_visible?
assert_equal true, notes(:open_note).visible?
assert_equal true, notes(:note_with_hidden_comment).visible?
assert_equal false, notes(:hidden_note_with_comment).visible?
assert_equal true, create(:note, :status => "open").visible?
assert_equal true, create(:note, :status => "closed").visible?
assert_equal false, create(:note, :status => "hidden").visible?
end
def test_closed?
assert_equal true, notes(:closed_note_with_comment).closed?
assert_equal false, notes(:open_note).closed?
assert_equal true, create(:note, :status => "closed", :closed_at => Time.now).closed?
assert_equal false, create(:note, :status => "open", :closed_at => nil).closed?
end
def test_author
assert_nil notes(:open_note).author
assert_equal users(:normal_user), notes(:note_with_comments_by_users).author
comment = create(:note_comment)
assert_nil comment.note.author
comment = create(:note_comment, :author_id => users(:normal_user).id)
assert_equal users(:normal_user), comment.note.author
end
def test_author_ip
assert_equal IPAddr.new("192.168.1.1"), notes(:open_note).author_ip
assert_nil notes(:note_with_comments_by_users).author_ip
comment = create(:note_comment)
assert_nil comment.note.author_ip
comment = create(:note_comment, :author_ip => IPAddr.new("192.168.1.1"))
assert_equal IPAddr.new("192.168.1.1"), comment.note.author_ip
end
end

View file

@ -5,7 +5,7 @@ class UserTest < ActiveSupport::TestCase
include Rails::Dom::Testing::Assertions::SelectorAssertions
api_fixtures
fixtures :friends, :languages, :user_roles
fixtures :languages, :user_roles
def test_invalid_with_empty_attributes
user = User.new
@ -106,6 +106,7 @@ class UserTest < ActiveSupport::TestCase
end
def test_friend_with
create(:friend, :user_id => users(:normal_user).id, :friend_user_id => users(:public_user).id)
assert users(:normal_user).is_friends_with?(users(:public_user))
assert !users(:normal_user).is_friends_with?(users(:inactive_user))
assert !users(:public_user).is_friends_with?(users(:normal_user))
@ -129,14 +130,11 @@ class UserTest < ActiveSupport::TestCase
def test_friends_with
# normal user is a friend of second user
# it should be a one way friend accossitation
assert_equal 1, Friend.count
# it should be a one way friend associatation
norm = users(:normal_user)
sec = users(:public_user)
# friend = Friend.new
# friend.befriender = norm
# friend.befriendee = sec
# friend.save
create(:friend, :user_id => norm.id, :friend_user_id => sec.id)
assert_equal 1, Friend.count
assert_equal [sec], norm.friend_users
assert_equal 1, norm.friend_users.size
assert_equal 1, Friend.count

View file

@ -60,8 +60,6 @@ module ActiveSupport
fixtures :client_applications
fixtures :redactions
fixtures :notes, :note_comments
end
##