# 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
@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
# 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
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
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
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
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
@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
@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
@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"
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
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]
@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
@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
if params[:referer]
redirect_to params[:referer]
else
- redirect_to :controller => "user", :action => "view"
+ redirect_to :action => "view"
end
end
else
if params[:referer]
redirect_to params[:referer]
else
- redirect_to :controller => "user", :action => "view"
+ redirect_to :action => "view"
end
end
else
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
##
# - 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
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
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
##
changeset_tag: পরিবর্তনধার্য ট্যাগ
country: দেশ
diary_comment: ডাইরি মন্তব্য
- diary_entry: ডাà¦\87রি à¦\8fনà§\8dà¦\9fà§\8dরি
+ diary_entry: ডাà¦\87রি à¦à§\81à¦\95à§\8dতি
friend: বন্ধু
language: ভাষা
message: বার্তা
user_preference: ব্যবহারকারীর পছন্দ
user_token: ব্যবহারকারী টোকেন
way: রাস্তা
- way_node: à¦\93য়à§\87 নোড
- way_tag: à¦\93য়à§\87 ট্যাগ
+ way_node: রাসà§\8dতার নোড
+ way_tag: রাসà§\8dতার ট্যাগ
attributes:
diary_comment:
- body: বডি
+ body: মà§\82লাà¦\82শ
diary_entry:
user: ব্যবহারকারী
- title: শিরà§\8bনাম
+ title: বিষয়
latitude: অক্ষাংশ
longitude: দ্রাঘিমাংশ
language: ভাষা
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: নামহীন
relation: সম্পর্ক (%{count}টি)
relation_paginated: সম্পর্ক (%{count}টির %{x}-%{y})
comment: মন্তব্য (%{count}টি)
- hidden_commented_by: '%{user} থেকে মন্তব্য লুকান <abbr title=''%{exact_time}''>%{when}
- à¦\86à¦\97à§\87</abbr>'
- commented_by: '%{user} থেকে মন্তব্য <abbr title=''%{exact_time}''>%{when} আগে</abbr>'
+ hidden_commented_by: '%{user} থেকে <abbr title=''%{exact_time}''>%{when} আগের</abbr>
+ মনà§\8dতবà§\8dয লà§\81à¦\95ান'
+ commented_by: <abbr title='%{exact_time}'>%{when} আগে</abbr> %{user} থেকে মন্তব্য
changesetxml: পরিবর্তনধার্য এক্সএমএল
osmchangexml: osmChange এক্সএমএল
feed:
note: টীকা
redacted:
redaction: সম্পর্ক %{id}
- message_html: কোনও কারণে %{type}-এর %{version} সংস্করণটি দেখানো যাবেনা। বিস্তারিত
- à¦\9cানতà§\87 %{redaction_link} লিà¦\82à¦\95à¦\9fি দà§\87à¦\96à§\81ন।
+ message_html: কোনও কারণে %{type}-এর %{version} সংস্করণটি দেখানো যাবে না। বিস্তারিত
+ জানতে %{redaction_link} দেখুন।
type:
node: সংযোগস্থল
way: দিক
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>
- দà§\87য়া মনà§\8dতবà§\8dয'
- commented_by_anonymous: বà§\87নামà§\80 বà§\8dযবহারà¦\95ারà§\80 à¦\95রà§\8dতà§\83à¦\95 <abbr title='%{exact_time}'>%{when}
- আগে</abbr> দেয়া মন্তব্য
+ commented_by: '%{user} কর্তৃক করা <abbr title=''%{exact_time}''>%{when} আগের</abbr>
+ মন্তব্য'
+ commented_by_anonymous: বà§\87নামি বà§\8dযবহারà¦\95ারà§\80 à¦\95রà§\8dতà§\83à¦\95 à¦\95রা <abbr title='%{exact_time}'>%{when}
+ আগের</abbr> মন্তব্য
closed_by: '%{user} কর্তৃক <abbr title=''%{exact_time}''>%{when} আগে</abbr>
মীমাংসিত'
closed_by_anonymous: বেনামি ব্যবহারকারী দ্বারা <abbr title='%{exact_time}'>%{when}
enclosing: আবদ্ধ বৈশিষ্ট্য
changeset:
changeset_paging_nav:
- showing_page: '%{page} পাতা'
+ showing_page: '%{page}টি পাতা'
next: পরবর্তী »
previous: « পূর্ববর্তী
changeset:
advice: 'যদি উপরের রপ্তানি ব্যর্থ হয়, দয়া করে নীচে তালিকাভুক্ত উৎসের কোন
একটি ব্যবহারের জন্য বিবেচনা করুন:'
planet:
- title: à¦\93à¦\8fসà¦\8fল জগৎ
+ title: à¦\93à¦\8fসà¦\8fম জগৎ
description: সম্পূর্ণ ওপেনস্ট্রীটম্যাপ ডাটাবেসের নিয়মিত হালনাগাদের অনুলিপি
overpass:
title: ওভারপাস API
title: অন্যান্য উৎস
description: ওপেনস্ট্রীটম্যাপ উইকিতে তালিকাভুক্ত অতিরিক্ত সূত্র
options: বিকল্প
- format: 'ফরম্যাট:'
+ format: বিন্যাস
scale: স্কেল
max: সর্বোচ্চ
image_size: চিত্রের আকার
gambling: জুয়াখেলার আড্ডা
grave_yard: কবরস্থান
gym: ব্যায়াম কেন্দ্র / জিমখানা
- health_centre: স্বাস্থ কেন্দ্র
+ health_centre: স্বাস্থকেন্দ্র
hospital: হাসপাতাল
hunting_stand: শিকারশালা
- ice_cream: আইস ক্রিম
+ ice_cream: আইসক্রিম
kindergarten: শিশুবিদ্যালয়
library: পাঠাগার
market: বাজার
farmland: কৃষিজমি
forest: অরণ্য
garages: গ্যারেজ
- grass: ঘস
+ grass: à¦\98াস
greenfield: তৃণভূমি
industrial: শিল্পাঞ্চল
meadow: তৃণভূমি
preserved: সংরক্ষিত রেলপথ
proposed: প্রস্তাবিত রেলপথ
station: রেল স্টেশন
- stop: রà§\87ল সà§\8dà¦\9fপ
+ stop: রà§\87ল থামার সà§\8dথান
subway: ভূগর্ভস্থ পথ
subway_entrance: ভূগর্ভস্থ পথের প্রবেশিকা
tram: ট্রামপথ
general: সাধারণ দোকান
gift: উপহারের দোকান
greengrocer: সবজিওয়ালা
- grocery: মুদির দোকান
+ grocery: মুদি দোকান
hairdresser: নাপিত
hardware: যন্ত্রাংশের দোকান
hifi: হাই-ফাই
optician: চশমা বিক্রেতা
organic: জৈব খাদ্যের দোকান
pharmacy: ঔষধালয়
- photo: ফà¦\9fà§\8bশপ
+ photo: à¦\9bবির দà§\8bà¦\95ান
salon: সালোন
second_hand: পুরনো-সামগ্রীর দোকান
shoes: জুতোর দোকান
lock_gate: ফটক বন্ধ
mooring: নঙ্গরাবদ্ধকরণ
river: নদী
+ wadi: ওয়াদি
waterfall: জলপ্রপাত
"yes": জলপথ
admin_levels:
level2: রাষ্ট্রের সীমানা
level4: রাজ্যের সীমানা
level5: অঞ্চলের সীমানা
- level6: পà§\8dরদসের সীমানা
+ level6: পà§\8dরদà§\87শের সীমানা
level8: নগরের সীমান
level9: গ্রামের সীমানা
level10: উপনগরের সীমানা
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}-এ তাদের প্রোফাইল দেখতে পারেন।
outbox: আউটবক্স
subject: বিষয়
date: তারিখ
+ people_mapping_nearby: কাছাকাছি অবদানকারী
+ message_summary:
+ unread_button: অপঠিত হিসেবে চিহ্নিত করুন
+ read_button: পঠিত হিসেবে চিহ্নিত করুন
+ reply_button: প্রত্যুত্তর
site:
key:
table:
destination_without_exit: গন্তব্যে পৌঁছানো
against_oneway_without_exit: '%{name}-এ একমুখীর বিরুদ্ধে যান'
end_oneway_without_exit: '%{name}-এর একমুখী শেষ'
- unnamed: বà§\87নামি সড়ক
+ unnamed: নামহà§\80ন সড়ক
time: সময়
query:
node: সংযোগস্থল
# Author: Chase me ladies, I'm the Cavalry
# Author: E THP
# Author: EdLoach
+# Author: Eduard Popov
# Author: Jagwar
# Author: Kosovastar
# Author: Macofe
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}
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
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)
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
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...
airport: Flughaveno
city: Urbego
country: Lando
- county: Provinco
+ county: Distrikto
farm: Farmobieno
- hamlet: Vilaĝego
+ hamlet: Vilaĝeto
house: Domo
houses: Domoj
island: Insulo
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
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
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: |-
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: “© Kontribuintoj de OpenStreetMap”.'
+ 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®, GeoGratis (© Department of Natural
+ Resources Canada), CanVec (© 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 © 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' © 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>©</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
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
- 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
common:
- Publika ripoza tereno
- herbejo
- retail: Butikcentro
+ retail: Komercejo
industrial: Industria areo
commercial: Oficeja tereno
heathland: Erikejo
- Lago
- akvorezervujo
farm: Farmobieno
+ brownfield: Antaŭ-konstruejo (post-malkonstruado)
cemetery: Tombejo
allotments: Familiaj ĝardenoj
pitch: Ludkampo
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
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:'
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
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:'
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:
cancel: Nuligi
key:
title: Mapklarigo
+ tooltip: Mapklarigo
tooltip_disabled: Mapklarigo estas nur disponebla ĉe la norma tavolo
map:
zoom:
לפי התנאים של אותו הרישיון. ר' את <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">Privacy Policy</a>מדיניות הפרטיות</a> שלנו
<br>
נא <a href='http://osmfoundation.org/Contact'>ליצור קשר עם OSMF</a> אם יש לך שאלות על רישוי, זכויות יוצרים או שאלות ובעיות משפטיות אחרות.
partners_title: שותפים
התרומה</a>.
email address: 'כתובת דוא״ל:'
confirm email address: 'אימות כתובת דוא״ל:'
- not displayed publicly: ×\9c×\90 ×\9e×\95צ×\92 ×\91פ×\95×\9e×\91×\99 (ר׳ <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
- title="wiki privacy policy including section on email addresses">מידיניות
- פרטיות</a>)
+ not displayed publicly: ×\94×\9bת×\95×\91ת ש×\9c×£ ×\9c×\90 ×\9e×\95צ×\92ת ×\91פ×\95×\9e×\91×\99, ר׳ ×\90ת <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy"
+ title="OSMF privacy policy including section on email addresses">מידיניות
+ פרטיות</a> למידע נוסף
display name: 'שם התצוגה:'
display name description: שם המשתמש שלך, שמוצג בפומבי. אפשר לשנות את זה בהעפות
שלך.
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
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.
# Author: Ricordisamoa
# Author: Rippitippi
# Author: Ruila
+# Author: Selven
# Author: Shirayuki
# Author: Simone
# Author: SimoneSVC
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
# Author: Luk3
# Author: Macofe
# Author: Matheus Sousa L.T
+# Author: NMaia
# Author: Nemo bis
# Author: Nighto
# Author: Rodrigo Avila
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:
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.
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.
# Author: DCamer
# Author: Dmitry-s93
# Author: Dr&mx
+# Author: Eduard Popov
# Author: Edward17
# Author: Eleferen
# Author: Ergo
private: Частный доступ
destination: Целевой доступ
construction: Строительство дороги
+ bicycle_shop: Магазин велосипедов
+ bicycle_parking: Парковка для велосипедов
richtext_area:
edit: Изменить
preview: Предпросмотр
gravatar:
gravatar: Использовать Gravatar
link text: что это?
+ disabled: Gravatar отключён.
+ enabled: Отображение вашего Gravatar включено.
new image: Добавить изображение
keep image: Оставить текущее изображение
delete image: Удалить текущее изображение
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}
# Author: Macofe
# Author: Mateju
# Author: Peter Klofutar
+# Author: Pickle12
# Author: Ruila
# Author: Skalcaa
# Author: Stefanb
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.
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>协议)的数据。
contributors_gb_html: <strong>英国</strong>:包含来自 Ordnance 的调查数据,© 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 的贡献者会被提醒,绝不要在没有著作权人的明确许可时添加来自任何有著作权的来源的数据(如谷歌地图或印刷地图)。
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: 还有疑问吗?
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: 合作伙伴
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: 计划删除的轨迹
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: 第三方身份验证:
remove as friend: 删除朋友
add as friend: 添加朋友
mapper since: 绘图始于:
- ago: (%{time_in_words_ago} 前)
+ ago: (%{time_in_words_ago} 前)
ct status: 贡献者条款:
ct undecided: 未决定
ct declined: 已拒绝
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: 我們要求您以“© OpenStreetMap 貢獻者”標明作者。
credit_2_html: 您亦須清晰註明,有關資料可透過開放資料庫授權條款取得。若使用我們的影像塊,則須註明其製圖法是按 CC-BY-SA 授權。您可以透過連結至<a
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>授權) 的資料。
及其貢獻者。若您在我們的資料上作修改或以之透過某些方式衍生其他資料,則只可依相同授權條款散佈有關成果。詳情請參閱<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:
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: 軌跡已被排程刪除
。
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: 第三方身份認證
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
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
require "test_helper"
class DiaryEntryControllerTest < ActionController::TestCase
- fixtures :users, :user_roles, :languages, :friends
+ fixtures :users, :user_roles, :languages
include ActionView::Helpers::NumberHelper
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
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
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"]
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"]
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"]
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"]
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
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"]
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"]
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")
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
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
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
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
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)
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
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
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
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
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
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
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
# 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
class UserControllerTest < ActionController::TestCase
api_fixtures
- fixtures :messages, :friends
+ fixtures :messages
##
# test all routes which lead to this controller
# 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
# 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
--- /dev/null
+FactoryGirl.define do
+ factory :friend do
+ # Fixme requires User Factory
+ user_id 1
+ friend_user_id 2
+ end
+end
--- /dev/null
+FactoryGirl.define do
+ factory :note_comment do
+ sequence(:body) { |n| "This is note comment #{n}" }
+ visible true
+ event "opened"
+ note
+ end
+end
--- /dev/null
+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
+++ /dev/null
-normal_user_with_second_user:
- id: 1
- user_id: 1
- friend_user_id: 2
+++ /dev/null
-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'
+++ /dev/null
-# 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
class FriendTest < ActiveSupport::TestCase
api_fixtures
- fixtures :friends
def test_friend_count
+ create(:friend)
assert_equal 1, Friend.count
end
end
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
"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
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
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
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
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
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))
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
fixtures :client_applications
fixtures :redactions
-
- fixtures :notes, :note_comments
end
##