]> git.openstreetmap.org Git - rails.git/commitdiff
Merge branch 'master' into openstreetbugs
authorTom Hughes <tom@compton.nu>
Wed, 20 Apr 2011 18:23:39 +0000 (19:23 +0100)
committerTom Hughes <tom@compton.nu>
Wed, 20 Apr 2011 18:23:39 +0000 (19:23 +0100)
587 files changed:
app/controllers/api_controller.rb
app/controllers/application_controller.rb
app/controllers/browse_controller.rb
app/controllers/changeset_controller.rb
app/controllers/geocoder_controller.rb
app/controllers/oauth_controller.rb
app/controllers/site_controller.rb
app/controllers/user_controller.rb
app/helpers/application_helper.rb
app/models/client_application.rb
app/models/user.rb
app/views/browse/_changeset_details.html.erb
app/views/browse/_map.html.erb
app/views/browse/_start.html.erb
app/views/browse/node.html.erb
app/views/browse/start.rjs
app/views/changeset/_changeset.html.erb
app/views/diary_entry/_location.html.erb
app/views/diary_entry/view.html.erb
app/views/layouts/_flash.html.erb [new file with mode: 0644]
app/views/layouts/_head.html.erb [new file with mode: 0644]
app/views/layouts/site.html.erb
app/views/layouts/slim.html.erb [new file with mode: 0644]
app/views/site/_key.html.erb
app/views/site/_potlatch.html.erb [new file with mode: 0644]
app/views/site/_potlatch2.html.erb [new file with mode: 0644]
app/views/site/_search.html.erb
app/views/site/edit.html.erb
app/views/site/index.html.erb
app/views/user/_contact.html.erb
app/views/user/_map.html.erb
app/views/user/_terms.html.erb
app/views/user/account.html.erb
app/views/user/login.html.erb
app/views/user/terms.html.erb
app/views/user/view.html.erb
config/environment.rb
config/environments/production.rb
config/example.application.yml
config/initializers/asset_tag_helper.rb [new file with mode: 0644]
config/initializers/i18n.rb
config/initializers/memcached.rb [new file with mode: 0644]
config/initializers/memory_limits.rb
config/initializers/postgresql_adapter.rb
config/key.yml
config/legales/FR.yml
config/legales/GB.yml
config/legales/IT.yml
config/locales/af.yml
config/locales/aln.yml
config/locales/ar.yml
config/locales/arz.yml
config/locales/ast.yml [new file with mode: 0644]
config/locales/be-TARASK.yml
config/locales/be.yml
config/locales/br.yml
config/locales/ca.yml
config/locales/cs.yml
config/locales/da.yml
config/locales/de.yml
config/locales/dsb.yml
config/locales/el.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/gl.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/lb.yml
config/locales/lt.yml
config/locales/mk.yml
config/locales/nl.yml
config/locales/no.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt.yml
config/locales/ru.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sq.yml
config/locales/sr-EC.yml
config/locales/sv.yml
config/locales/tl.yml [new file with mode: 0644]
config/locales/tr.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
config/potlatch/locales/af.yml
config/potlatch/locales/aln.yml
config/potlatch/locales/ar.yml
config/potlatch/locales/arz.yml
config/potlatch/locales/ast.yml [new file with mode: 0644]
config/potlatch/locales/be-TARASK.yml [new file with mode: 0644]
config/potlatch/locales/br.yml
config/potlatch/locales/ca.yml
config/potlatch/locales/da.yml
config/potlatch/locales/de.yml
config/potlatch/locales/dsb.yml
config/potlatch/locales/es.yml
config/potlatch/locales/eu.yml [new file with mode: 0644]
config/potlatch/locales/fa.yml [new file with mode: 0644]
config/potlatch/locales/fi.yml
config/potlatch/locales/fr.yml
config/potlatch/locales/gl.yml
config/potlatch/locales/he.yml
config/potlatch/locales/hr.yml
config/potlatch/locales/hsb.yml
config/potlatch/locales/hu.yml
config/potlatch/locales/ia.yml
config/potlatch/locales/id.yml
config/potlatch/locales/is.yml
config/potlatch/locales/it.yml
config/potlatch/locales/ja.yml
config/potlatch/locales/ko.yml
config/potlatch/locales/lb.yml
config/potlatch/locales/mk.yml
config/potlatch/locales/nl.yml
config/potlatch/locales/no.yml
config/potlatch/locales/oc.yml
config/potlatch/locales/pl.yml
config/potlatch/locales/pt-BR.yml
config/potlatch/locales/pt.yml
config/potlatch/locales/ru.yml
config/potlatch/locales/rue.yml
config/potlatch/locales/sk.yml
config/potlatch/locales/sl.yml
config/potlatch/locales/sr-EC.yml
config/potlatch/locales/sv.yml
config/potlatch/locales/tl.yml [new file with mode: 0644]
config/potlatch/locales/tr.yml
config/potlatch/locales/uk.yml
config/potlatch/locales/vi.yml
config/potlatch/locales/zh-CN.yml [new file with mode: 0644]
config/potlatch/locales/zh-hans.yml [new file with mode: 0644]
db/functions/Makefile
db/migrate/20101114011429_add_editor_preference_to_user.rb [new file with mode: 0644]
db/migrate/20110322001319_add_terms_seen_to_user.rb [new file with mode: 0644]
lib/diff_reader.rb
lib/editors.rb [new file with mode: 0644]
lib/potlatch2.rb [new file with mode: 0644]
public/clientaccesspolicy.xml [new file with mode: 0644]
public/images/key/osmarender/admin.png [new file with mode: 0644]
public/images/key/osmarender/allotments.png [new file with mode: 0644]
public/images/key/osmarender/bridleway.png [new file with mode: 0644]
public/images/key/osmarender/brownfield.png [new file with mode: 0644]
public/images/key/osmarender/building.png [new file with mode: 0644]
public/images/key/osmarender/byway.png [new file with mode: 0644]
public/images/key/osmarender/cemetery.png [new file with mode: 0644]
public/images/key/osmarender/centre.png [new file with mode: 0644]
public/images/key/osmarender/commercial.png [new file with mode: 0644]
public/images/key/osmarender/common.png [new file with mode: 0644]
public/images/key/osmarender/cycleway.png [new file with mode: 0644]
public/images/key/osmarender/farm.png [new file with mode: 0644]
public/images/key/osmarender/footway.png [new file with mode: 0644]
public/images/key/osmarender/forest.png [new file with mode: 0644]
public/images/key/osmarender/heathland.png [new file with mode: 0644]
public/images/key/osmarender/industrial.png [new file with mode: 0644]
public/images/key/osmarender/lake.png [new file with mode: 0644]
public/images/key/osmarender/mapkey.png [new file with mode: 0644]
public/images/key/osmarender/military.png [new file with mode: 0644]
public/images/key/osmarender/motorway.png
public/images/key/osmarender/park.png [new file with mode: 0644]
public/images/key/osmarender/pitch.png [new file with mode: 0644]
public/images/key/osmarender/primary.png [new file with mode: 0644]
public/images/key/osmarender/rail.png [new file with mode: 0644]
public/images/key/osmarender/reserve.png [new file with mode: 0644]
public/images/key/osmarender/resident.png [new file with mode: 0644]
public/images/key/osmarender/retail.png [new file with mode: 0644]
public/images/key/osmarender/school.png [new file with mode: 0644]
public/images/key/osmarender/secondary.png [new file with mode: 0644]
public/images/key/osmarender/station.png [new file with mode: 0644]
public/images/key/osmarender/subway.png [new file with mode: 0644]
public/images/key/osmarender/summit.png [new file with mode: 0644]
public/images/key/osmarender/tourist.png [new file with mode: 0644]
public/images/key/osmarender/track.png [new file with mode: 0644]
public/images/key/osmarender/tram.png [new file with mode: 0644]
public/images/key/osmarender/trunk.png [new file with mode: 0644]
public/images/key/osmarender/unsurfaced.png [new file with mode: 0644]
public/images/key/osmarender/wood.png [new file with mode: 0644]
public/images/sotm.png [new file with mode: 0644]
public/javascripts/map.js
public/javascripts/menu.js [new file with mode: 0644]
public/javascripts/site.js
public/openlayers/OpenLayers.js
public/openlayers/OpenStreetMap.js
public/openlayers/img/cloud-popup-relative.png
public/potlatch2/FontLibrary.swf [new file with mode: 0644]
public/potlatch2/bing_maps.png [new file with mode: 0644]
public/potlatch2/features/aeroway__aerodrome.png [new file with mode: 0644]
public/potlatch2/features/aeroway__apron.png [new file with mode: 0644]
public/potlatch2/features/aeroway__helipad.png [new file with mode: 0644]
public/potlatch2/features/aeroway__runway.png [new file with mode: 0644]
public/potlatch2/features/aeroway__taxiway.png [new file with mode: 0644]
public/potlatch2/features/aeroway__terminal.png [new file with mode: 0644]
public/potlatch2/features/amenity__bus_station.png [new file with mode: 0644]
public/potlatch2/features/amenity__parking.png [new file with mode: 0644]
public/potlatch2/features/barrier_generic.png [new file with mode: 0644]
public/potlatch2/features/bike-shop.png [new file with mode: 0644]
public/potlatch2/features/bugs/fixed.png [new file with mode: 0644]
public/potlatch2/features/bugs/invalid.png [new file with mode: 0644]
public/potlatch2/features/bugs/open.png [new file with mode: 0644]
public/potlatch2/features/highway__living_street.png [new file with mode: 0644]
public/potlatch2/features/highway__motorway.png [new file with mode: 0644]
public/potlatch2/features/highway__motorway_link.png [new file with mode: 0644]
public/potlatch2/features/highway__primary.png [new file with mode: 0644]
public/potlatch2/features/highway__primary_link.png [new file with mode: 0644]
public/potlatch2/features/highway__residential.png [new file with mode: 0644]
public/potlatch2/features/highway__secondary.png [new file with mode: 0644]
public/potlatch2/features/highway__secondary_link.png [new file with mode: 0644]
public/potlatch2/features/highway__service.png [new file with mode: 0644]
public/potlatch2/features/highway__tertiary.png [new file with mode: 0644]
public/potlatch2/features/highway__tertiary_link.png [new file with mode: 0644]
public/potlatch2/features/highway__track.png [new file with mode: 0644]
public/potlatch2/features/highway__trunk.png [new file with mode: 0644]
public/potlatch2/features/highway__trunk_link.png [new file with mode: 0644]
public/potlatch2/features/highway__unclassified.png [new file with mode: 0644]
public/potlatch2/features/highway__unknown.png [new file with mode: 0644]
public/potlatch2/features/manmade_lighthouse.png [new file with mode: 0644]
public/potlatch2/features/manmade_silo.png [new file with mode: 0644]
public/potlatch2/features/manmade_tower.png [new file with mode: 0644]
public/potlatch2/features/oneway__-1.png [new file with mode: 0644]
public/potlatch2/features/oneway__no.png [new file with mode: 0644]
public/potlatch2/features/oneway__yes.png [new file with mode: 0644]
public/potlatch2/features/paths__bike.png [new file with mode: 0644]
public/potlatch2/features/paths__bridleway.png [new file with mode: 0644]
public/potlatch2/features/paths__footway.png [new file with mode: 0644]
public/potlatch2/features/paths__pedestrian.png [new file with mode: 0644]
public/potlatch2/features/paths__steps.png [new file with mode: 0644]
public/potlatch2/features/paths__unofficial.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_alpinehut.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_bed_and_breakfast.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_camping.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_caravan_park.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_chalet.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_hotel.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_motel.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_shelter2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/accommodation_youth_hostel.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_bench.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_firestation2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_fountain2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_information.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_library.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_playground.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_police2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_post_box.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_post_office.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_recycling.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_telephone.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_toilets.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_town_hall.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/amenity_waste_bin.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_blocks.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_bollard.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_cattle_grid.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_cycle_barrier.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_gate.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_kissing_gate.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_lift_gate.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_stile.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/barrier_toll_booth.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/building_generic.png [new file with mode: 0644]
public/potlatch2/features/pois/education_nursery3.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/education_school.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/education_university.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/emergency-telephone-24.png [new file with mode: 0644]
public/potlatch2/features/pois/food_bar.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/food_cafe.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/food_drinkingtap.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/food_fastfood.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/food_pub.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/food_restaurant.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/health_hospital.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/health_pharmacy.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/landuse_coniferous.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/landuse_grass.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/money_atm.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/money_bank2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/place_of_worship_unknown.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/place_of_worship_unknown3.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_boundary_administrative.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_military_bunker.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_mine.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_place_city.p.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_place_hamlet.p.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_place_suburb.p.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_place_town.p.24.png [new file with mode: 0644]
public/potlatch2/features/pois/poi_place_village.p.24.png [new file with mode: 0644]
public/potlatch2/features/pois/power_station.png [new file with mode: 0644]
public/potlatch2/features/pois/power_substation.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/power_tower_high2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/power_tower_low.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/power_transformer.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_alcohol.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_bakery.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_bicycle.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_book.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_butcher.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_car.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_car_repair.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_clothes.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_confectionery.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_convenience.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_diy.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_fish.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_florist.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_garden_centre.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_gift.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_greengrocer.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_hairdresser.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_hifi.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_jewelry.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_kiosk.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_laundrette.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_marketplace.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_motorcycle.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_music.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_supermarket.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_toys.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/shopping_vending_machine.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/sport_golf.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/sport_leisure_centre.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/sport_shooting.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/sport_stadium.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/sport_swimming_outdoor.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_archaeological.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_art_gallery2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_attraction.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_battlefield.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_castle.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_cinema.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_memorial.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_monument.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_museum.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_picnic.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_ruin.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_theatre.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_theme_park.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_view_point.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/tourist_zoo.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_aerodrome.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_airport.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_airport_gate.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_airport_terminal.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_bus_station.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_bus_stop2.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_fuel.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_helicopter_pad.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_marina.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_miniroundabout_anticlockwise.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_parking_bicycle.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_parking_car.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_port.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_rental_bicycle.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_rental_car.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_slipway.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_speedbump.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_taxi_rank.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_traffic_calming.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_train_station.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_tram_stop.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_turning_circle.n.24.png [new file with mode: 0644]
public/potlatch2/features/pois/transport_weir.n.24.png [new file with mode: 0644]
public/potlatch2/features/power_high.png [new file with mode: 0644]
public/potlatch2/features/power_low.png [new file with mode: 0644]
public/potlatch2/features/railway__abandoned.png [new file with mode: 0644]
public/potlatch2/features/railway__disused.png [new file with mode: 0644]
public/potlatch2/features/railway__light.png [new file with mode: 0644]
public/potlatch2/features/railway__platform.png [new file with mode: 0644]
public/potlatch2/features/railway__preserved.png [new file with mode: 0644]
public/potlatch2/features/railway__rail.png [new file with mode: 0644]
public/potlatch2/features/railway__siding.png [new file with mode: 0644]
public/potlatch2/features/railway__spur.png [new file with mode: 0644]
public/potlatch2/features/railway__subway.png [new file with mode: 0644]
public/potlatch2/features/railway__tram.png [new file with mode: 0644]
public/potlatch2/features/restriction__no_left_turn.png [new file with mode: 0644]
public/potlatch2/features/restriction__no_right_turn.png [new file with mode: 0644]
public/potlatch2/features/restriction__no_straight_on.png [new file with mode: 0644]
public/potlatch2/features/restriction__no_u_turn.png [new file with mode: 0644]
public/potlatch2/features/restriction__only_left_turn.png [new file with mode: 0644]
public/potlatch2/features/restriction__only_right_turn.png [new file with mode: 0644]
public/potlatch2/features/restriction__only_straight_on.png [new file with mode: 0644]
public/potlatch2/features/route__bus.png [new file with mode: 0644]
public/potlatch2/features/route__lcn.png [new file with mode: 0644]
public/potlatch2/features/route__lwn.png [new file with mode: 0644]
public/potlatch2/features/route__ncn.png [new file with mode: 0644]
public/potlatch2/features/route__nwn.png [new file with mode: 0644]
public/potlatch2/features/route__rcn.png [new file with mode: 0644]
public/potlatch2/features/route__rwn.png [new file with mode: 0644]
public/potlatch2/features/transport__railway.png [new file with mode: 0644]
public/potlatch2/features/transport__railway_abandoned.png [new file with mode: 0644]
public/potlatch2/features/transport__railway_disused.png [new file with mode: 0644]
public/potlatch2/features/transport__railway_platform.png [new file with mode: 0644]
public/potlatch2/features/transport__subway.png [new file with mode: 0644]
public/potlatch2/features/transport__tram.png [new file with mode: 0644]
public/potlatch2/features/waterway__basin.png [new file with mode: 0644]
public/potlatch2/features/waterway__canal.png [new file with mode: 0644]
public/potlatch2/features/waterway__coastline.png [new file with mode: 0644]
public/potlatch2/features/waterway__dam.png [new file with mode: 0644]
public/potlatch2/features/waterway__dock.png [new file with mode: 0644]
public/potlatch2/features/waterway__drain.png [new file with mode: 0644]
public/potlatch2/features/waterway__lake.png [new file with mode: 0644]
public/potlatch2/features/waterway__marina.png [new file with mode: 0644]
public/potlatch2/features/waterway__reservoir.png [new file with mode: 0644]
public/potlatch2/features/waterway__river.png [new file with mode: 0644]
public/potlatch2/features/waterway__riverbank.png [new file with mode: 0644]
public/potlatch2/features/waterway__slipway.png [new file with mode: 0644]
public/potlatch2/features/waterway__stream.png [new file with mode: 0644]
public/potlatch2/features/waterway__weir.png [new file with mode: 0644]
public/potlatch2/fills/grass.jpg [new file with mode: 0644]
public/potlatch2/help/introduction.jpg [new file with mode: 0644]
public/potlatch2/help/introduction.mp4 [new file with mode: 0644]
public/potlatch2/icons/accommodation_alpinehut.n.16.png [new file with mode: 0644]
public/potlatch2/icons/accommodation_bed_and_breakfast.n.16.png [new file with mode: 0644]
public/potlatch2/icons/accommodation_blank.png [new file with mode: 0644]
public/potlatch2/icons/accommodation_camping.n.16.png [new file with mode: 0644]
public/potlatch2/icons/accommodation_caravan_park.n.16.png [new file with mode: 0644]
public/potlatch2/icons/accommodation_hotel.n.16.png [new file with mode: 0644]
public/potlatch2/icons/accommodation_youth_hostel.n.16.png [new file with mode: 0644]
public/potlatch2/icons/airport.png [new file with mode: 0644]
public/potlatch2/icons/amenity_firestation2.n.16.png [new file with mode: 0644]
public/potlatch2/icons/amenity_police2.n.16.png [new file with mode: 0644]
public/potlatch2/icons/amenity_post_box.n.16.png [new file with mode: 0644]
public/potlatch2/icons/amenity_recycling.n.16.png [new file with mode: 0644]
public/potlatch2/icons/atm.png [new file with mode: 0644]
public/potlatch2/icons/bank.png [new file with mode: 0644]
public/potlatch2/icons/bar.png [new file with mode: 0644]
public/potlatch2/icons/barrier_blocks.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_bollard.n.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_cattle_grid.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_cycle_barrier.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_gate.n.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_kissing_gate.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_lift_gate.n.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_stile.n.16.png [new file with mode: 0644]
public/potlatch2/icons/barrier_toll_booth.n.16.png [new file with mode: 0644]
public/potlatch2/icons/bus_stop.png [new file with mode: 0644]
public/potlatch2/icons/cafe.png [new file with mode: 0644]
public/potlatch2/icons/cattle_grid.png [new file with mode: 0644]
public/potlatch2/icons/cinema.png [new file with mode: 0644]
public/potlatch2/icons/convenience.png [new file with mode: 0644]
public/potlatch2/icons/education_school.n.16.png [new file with mode: 0644]
public/potlatch2/icons/fast_food.png [new file with mode: 0644]
public/potlatch2/icons/ferry_terminal.png [new file with mode: 0644]
public/potlatch2/icons/fire_station.png [new file with mode: 0644]
public/potlatch2/icons/food_bar.n.16.png [new file with mode: 0644]
public/potlatch2/icons/food_cafe.n.16.png [new file with mode: 0644]
public/potlatch2/icons/food_fastfood.n.16.png [new file with mode: 0644]
public/potlatch2/icons/food_pub.n.16.png [new file with mode: 0644]
public/potlatch2/icons/food_restaurant.n.16.png [new file with mode: 0644]
public/potlatch2/icons/gate.png [new file with mode: 0644]
public/potlatch2/icons/health_hospital.n.16.png [new file with mode: 0644]
public/potlatch2/icons/health_pharmacy.n.16.png [new file with mode: 0644]
public/potlatch2/icons/hospital.png [new file with mode: 0644]
public/potlatch2/icons/hotel.png [new file with mode: 0644]
public/potlatch2/icons/icons_grid.png [new file with mode: 0644]
public/potlatch2/icons/money_atm.n.16.png [new file with mode: 0644]
public/potlatch2/icons/money_bank2.n.16.png [new file with mode: 0644]
public/potlatch2/icons/museum.png [new file with mode: 0644]
public/potlatch2/icons/natural_blank.png [new file with mode: 0644]
public/potlatch2/icons/parking.png [new file with mode: 0644]
public/potlatch2/icons/parking_cycle.png [new file with mode: 0644]
public/potlatch2/icons/pharmacy.png [new file with mode: 0644]
public/potlatch2/icons/pharmacy_dispensing.png [new file with mode: 0644]
public/potlatch2/icons/place.png [new file with mode: 0644]
public/potlatch2/icons/place_of_worship.png [new file with mode: 0644]
public/potlatch2/icons/police.png [new file with mode: 0644]
public/potlatch2/icons/post_box.png [new file with mode: 0644]
public/potlatch2/icons/pub.png [new file with mode: 0644]
public/potlatch2/icons/recycling.png [new file with mode: 0644]
public/potlatch2/icons/restaurant.png [new file with mode: 0644]
public/potlatch2/icons/restriction.png [new file with mode: 0644]
public/potlatch2/icons/school.png [new file with mode: 0644]
public/potlatch2/icons/shopping_alcohol.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_bakery.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_bicycle.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_book.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_butcher.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_car.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_car_repair.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_clothes.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_confectionery.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_convenience.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_diy.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_fish.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_garden_centre.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_gift.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_greengrocer.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_hairdresser.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_hifi.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_jewelry.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_laundrette.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_motorcycle.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_music.n.16.png [new file with mode: 0644]
public/potlatch2/icons/shopping_supermarket.n.16.png [new file with mode: 0644]
public/potlatch2/icons/speed_hump_16.png [new file with mode: 0644]
public/potlatch2/icons/station.png [new file with mode: 0644]
public/potlatch2/icons/supermarket.png [new file with mode: 0644]
public/potlatch2/icons/taxi.png [new file with mode: 0644]
public/potlatch2/icons/telephone.png [new file with mode: 0644]
public/potlatch2/icons/theatre.png [new file with mode: 0644]
public/potlatch2/icons/tourist_archaeological.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_battlefield.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_castle.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_cinema.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_information.png [new file with mode: 0644]
public/potlatch2/icons/tourist_memorial.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_monument.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_museum.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_picnic.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_ruin.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_theatre.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_view_point.n.16.png [new file with mode: 0644]
public/potlatch2/icons/tourist_zoo.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_aerodrome.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_bus_station.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_bus_stop2.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_fuel.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_marina.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_parking_bicycle.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_parking_car.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_port.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_rental_bicycle.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_rental_car.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_taxi_rank.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_train_station.n.16.png [new file with mode: 0644]
public/potlatch2/icons/transport_tram_stop.n.16.png [new file with mode: 0644]
public/potlatch2/imagery.xml [new file with mode: 0644]
public/potlatch2/locales/de_DE.swf [new file with mode: 0644]
public/potlatch2/locales/en_GB.swf [new file with mode: 0644]
public/potlatch2/locales/en_US.swf [new file with mode: 0644]
public/potlatch2/locales/fr_FR.swf [new file with mode: 0644]
public/potlatch2/locales/pl_PL.swf [new file with mode: 0644]
public/potlatch2/map_features.xml [new file with mode: 0644]
public/potlatch2/map_features/amenities.xml [new file with mode: 0644]
public/potlatch2/map_features/barriers.xml [new file with mode: 0644]
public/potlatch2/map_features/buildings.xml [new file with mode: 0644]
public/potlatch2/map_features/landuse.xml [new file with mode: 0644]
public/potlatch2/map_features/man_made.xml [new file with mode: 0644]
public/potlatch2/map_features/paths.xml [new file with mode: 0644]
public/potlatch2/map_features/places.xml [new file with mode: 0644]
public/potlatch2/map_features/power.xml [new file with mode: 0644]
public/potlatch2/map_features/roads.xml [new file with mode: 0644]
public/potlatch2/map_features/shopping.xml [new file with mode: 0644]
public/potlatch2/map_features/tourism.xml [new file with mode: 0644]
public/potlatch2/map_features/transport.xml [new file with mode: 0644]
public/potlatch2/map_features/water.xml [new file with mode: 0644]
public/potlatch2/potlatch2.swf [new file with mode: 0644]
public/potlatch2/stylesheets.xml [new file with mode: 0644]
public/potlatch2/stylesheets/bikeshops.css [new file with mode: 0644]
public/potlatch2/stylesheets/bugs.css [new file with mode: 0644]
public/potlatch2/stylesheets/core_interactive.css [new file with mode: 0644]
public/potlatch2/stylesheets/core_landuse.css [new file with mode: 0644]
public/potlatch2/stylesheets/core_pois.css [new file with mode: 0644]
public/potlatch2/stylesheets/core_relations.css [new file with mode: 0644]
public/potlatch2/stylesheets/core_ways.css [new file with mode: 0644]
public/potlatch2/stylesheets/enhanced.css [new file with mode: 0644]
public/potlatch2/stylesheets/gpx.css [new file with mode: 0644]
public/potlatch2/stylesheets/network.css [new file with mode: 0644]
public/potlatch2/stylesheets/opencyclemap.css [new file with mode: 0644]
public/potlatch2/stylesheets/potlatch.css [new file with mode: 0644]
public/potlatch2/stylesheets/wireframe.css [new file with mode: 0644]
public/potlatch2/vectors.xml [new file with mode: 0644]
public/stylesheets/common.css
public/stylesheets/print.css
public/stylesheets/small.css
test/fixtures/users.yml
test/functional/api_controller_test.rb
test/functional/changeset_controller_test.rb
test/functional/diary_entry_controller_test.rb
test/functional/site_controller_test.rb
test/functional/user_controller_test.rb
test/integration/user_terms_seen_test.rb [new file with mode: 0644]
test/test_helper.rb
test/unit/user_test.rb

index d66fbb28fba73171b9155369f410958f5d9f3932..95cc88869c054e1b82d363961c109d1485f48347 100644 (file)
@@ -46,7 +46,7 @@ class ApiController < ApplicationController
     root = XML::Node.new 'gpx'
     root['version'] = '1.0'
     root['creator'] = 'OpenStreetMap.org'
-    root['xmlns'] = "http://www.topografix.com/GPX/1/0/"
+    root['xmlns'] = "http://www.topografix.com/GPX/1/0"
     
     doc.root = root
 
index 6c32b74b22f5c964b94ae008b99407a8e893fac0..8062c9fe3e4e16058cd1113b6b19303b906bb1ce 100644 (file)
@@ -15,6 +15,16 @@ class ApplicationController < ActionController::Base
         session_expires_automatically
 
         redirect_to :controller => "user", :action => "suspended"
+
+        # don't allow access to any auth-requiring part of the site unless
+        # the new CTs have been seen (and accept/decline chosen).
+      elsif !@user.terms_seen and flash[:showing_terms].nil?
+        flash[:notice] = t 'user.terms.you need to accept or decline'
+        if params[:referer]
+          redirect_to :controller => "user", :action => "terms", :referer => params[:referer]
+        else
+          redirect_to :controller => "user", :action => "terms", :referer => request.request_uri
+        end
       end
     elsif session[:token]
       @user = User.authenticate(:token => session[:token])
@@ -99,10 +109,21 @@ class ApplicationController < ActionController::Base
       end
     end
 
-    # check if the user has been banned
-    unless @user.nil? or @user.active_blocks.empty?
-      # NOTE: need slightly more helpful message than this.
-      render :text => t('application.setup_user_auth.blocked'), :status => :forbidden
+    # have we identified the user?
+    if @user
+      # check if the user has been banned
+      if not  @user.active_blocks.empty?
+        # NOTE: need slightly more helpful message than this.
+        report_error t('application.setup_user_auth.blocked'), :forbidden
+      end
+
+      # if the user hasn't seen the contributor terms then don't
+      # allow editing - they have to go to the web site and see
+      # (but can decline) the CTs to continue.
+      if REQUIRE_TERMS_SEEN and not @user.terms_seen
+        set_locale
+        report_error t('application.setup_user_auth.need_to_see_terms'), :forbidden
+      end
     end
   end
 
@@ -134,8 +155,7 @@ class ApplicationController < ActionController::Base
 
   def check_api_readable
     if STATUS == :database_offline or STATUS == :api_offline
-      response.headers['Error'] = "Database offline for maintenance"
-      render :nothing => true, :status => :service_unavailable
+      report_error "Database offline for maintenance", :service_unavailable
       return false
     end
   end
@@ -143,16 +163,14 @@ class ApplicationController < ActionController::Base
   def check_api_writable
     if STATUS == :database_offline or STATUS == :database_readonly or
        STATUS == :api_offline or STATUS == :api_readonly
-      response.headers['Error'] = "Database offline for maintenance"
-      render :nothing => true, :status => :service_unavailable
+      report_error "Database offline for maintenance", :service_unavailable
       return false
     end
   end
 
   def require_public_data
     unless @user.data_public?
-      response.headers['Error'] = "You must make your edits public to upload new data"
-      render :nothing => true, :status => :forbidden
+      report_error "You must make your edits public to upload new data", :forbidden
       return false
     end
   end
@@ -165,7 +183,18 @@ class ApplicationController < ActionController::Base
   def report_error(message, status = :bad_request)
     # Todo: some sort of escaping of problem characters in the message
     response.headers['Error'] = message
-    render :text => message, :status => status
+
+    if request.headers['X-Error-Format'] and
+       request.headers['X-Error-Format'].downcase == "xml"
+      result = OSM::API.new.get_xml_doc
+      result.root.name = "osmError"
+      result.root << (XML::Node.new("status") << interpret_status(status))
+      result.root << (XML::Node.new("message") << message)
+
+      render :text => result.to_s, :content_type => "text/xml"
+    else
+      render :text => message, :status => status
+    end
   end
   
   def set_locale
@@ -181,6 +210,24 @@ class ApplicationController < ActionController::Base
       end
     end
 
+    if request.compatible_language_from(I18n.available_locales).nil?
+      request.user_preferred_languages = request.user_preferred_languages.collect do |pl|
+        pls = [ pl ]
+
+        while pl.match(/^(.*)-[^-]+$/)
+          pls.push($1) if I18n.available_locales.include?($1.to_sym)
+          pl = $1
+        end
+
+        pls
+      end.flatten
+
+      if @user and not request.compatible_language_from(I18n.available_locales).nil?
+        @user.languages = request.user_preferred_languages
+        @user.save        
+      end
+    end
+
     I18n.locale = request.compatible_language_from(I18n.available_locales)
 
     response.headers['Content-Language'] = I18n.locale.to_s
index 2962c6836a9a1a4f7e202c728a226e9a3f150ae0..f6bd89d4de9396ef74b398dd9074aa2b93a42e0c 100644 (file)
@@ -72,8 +72,10 @@ class BrowseController < ApplicationController
     @next = Changeset.find(:first, :order => "id ASC", :conditions => [ "id > :id", { :id => @changeset.id }] ) 
     @prev = Changeset.find(:first, :order => "id DESC", :conditions => [ "id < :id", { :id => @changeset.id }] )
 
-    @next_by_user = Changeset.find(:first, :order => "id ASC", :conditions => [ "id > :id AND user_id = :user_id", {:id => @changeset.id, :user_id => @changeset.user_id }] )
-    @prev_by_user = Changeset.find(:first, :order => "id DESC", :conditions => [ "id < :id AND user_id = :user_id", {:id => @changeset.id, :user_id => @changeset.user_id }] )
+    if @changeset.user.data_public?
+      @next_by_user = Changeset.find(:first, :order => "id ASC", :conditions => [ "id > :id AND user_id = :user_id", { :id => @changeset.id, :user_id => @changeset.user_id }] )
+      @prev_by_user = Changeset.find(:first, :order => "id DESC", :conditions => [ "id < :id AND user_id = :user_id", { :id => @changeset.id, :user_id => @changeset.user_id }] )
+    end
   rescue ActiveRecord::RecordNotFound
     render :action => "not_found", :status => :not_found
   end
index 29b9c787bc447706ef04a26fe4501b58ac947bee..5a4dc36fb62a137d95a2dc1db2a858e61c22c990 100644 (file)
@@ -436,7 +436,7 @@ private
   # query changesets which are closed
   # ('closed at' time has passed or changes limit is hit)
   def conditions_closed(closed)
-    return closed.nil? ? nil : ['closed_at < ? or num_changes > ?', 
+    return closed.nil? ? nil : ['(closed_at < ? or num_changes > ?)', 
                                 Time.now.getutc, Changeset::MAX_ELEMENTS]
   end
 
index d07b74f119d399e4c68e5b6a72fd7d6745c141ff..29e7648afed5878eecbcdc05bb43a2d2b869e47c 100644 (file)
@@ -234,7 +234,7 @@ class GeocoderController < ApplicationController
     end
 
     # ask nominatim
-    response = fetch_xml("http://nominatim.openstreetmap.org/search?format=xml&q=#{escape_query(query)}#{viewbox}#{exclude}&accept-language=#{request.user_preferred_languages.join(',')}")
+    response = fetch_xml("#{NOMINATIM_URL}search?format=xml&q=#{escape_query(query)}#{viewbox}#{exclude}&accept-language=#{request.user_preferred_languages.join(',')}")
 
     # create result array
     @results = Array.new
@@ -355,7 +355,7 @@ class GeocoderController < ApplicationController
     @results = Array.new
 
     # ask OSM namefinder
-    response = fetch_xml("http://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{request.user_preferred_languages.join(',')}")
+    response = fetch_xml("#{NOMINATIM_URL}reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{request.user_preferred_languages.join(',')}")
 
     # parse the response
     response.elements.each("reversegeocode/result") do |result|
index f70a644cdb4146f69cdb98fa2ed46e80ad620b8f..5c84be0cf4c27cb9c073dda4b3eae678ea8705bd 100644 (file)
@@ -1,5 +1,5 @@
 class OauthController < ApplicationController
-  layout 'site'
+  layout 'slim'
 
   before_filter :authorize_web, :only => [:oauthorize, :revoke]
   before_filter :set_locale, :only => [:oauthorize, :revoke]
index 1478c5773cda99cf2b59c9b15f6fbfc4eaba6cb3..73f38f78c6b0ccf4eee941270940a701e3936eaa 100644 (file)
@@ -30,4 +30,41 @@ class SiteController < ApplicationController
   def key
     expires_in 7.days, :public => true
   end
+
+  def edit
+    editor = params[:editor] || @user.preferred_editor || DEFAULT_EDITOR
+
+    if editor == "remote"
+      render :action => :index
+    else
+      # Decide on a lat lon to initialise potlatch with. Various ways of doing this
+      if params['lon'] and params['lat']
+        @lon = params['lon'].to_f
+        @lat = params['lat'].to_f
+        @zoom = params['zoom'].to_i
+
+      elsif params['mlon'] and params['mlat']
+        @lon = params['mlon'].to_f
+        @lat = params['mlat'].to_f
+        @zoom = params['zoom'].to_i
+
+      elsif params['gpx']
+        @lon = Trace.find(params['gpx']).longitude
+        @lat = Trace.find(params['gpx']).latitude
+
+      elsif cookies.key?("_osm_location")
+        @lon, @lat, @zoom, layers = cookies["_osm_location"].split("|")
+
+      elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil?
+        @lon = @user.home_lon
+        @lat = @user.home_lat
+
+      else
+        #catch all.  Do nothing.  lat=nil, lon=nil
+        #Currently this results in potlatch starting up at 0,0 (Atlantic ocean).
+      end
+
+      @zoom = '14' if @zoom.nil?
+    end
+  end
 end
index c8603afec560666d3dd54514b984f32452f96d28..de43fee144428780f1d27f36e669347d8b96a218 100644 (file)
@@ -1,6 +1,7 @@
 class UserController < ApplicationController
-  layout 'site', :except => :api_details
+  layout :choose_layout
 
+  before_filter :disable_terms_redirect, :only => [:terms, :save, :logout]
   before_filter :authorize, :only => [:api_details, :api_gpx_files]
   before_filter :authorize_web, :except => [:api_details, :api_gpx_files]
   before_filter :set_locale, :except => [:api_details, :api_gpx_files]
@@ -24,7 +25,7 @@ class UserController < ApplicationController
 
     if request.xhr?
       render :update do |page|
-        page.replace_html "contributorTerms", :partial => "terms", :locals => { :has_decline => params[:has_decline] }
+        page.replace_html "contributorTerms", :partial => "terms"
       end
     else
       @title = t 'user.terms.title'
@@ -53,17 +54,36 @@ class UserController < ApplicationController
     if Acl.find_by_address(request.remote_ip, :conditions => {:k => "no_account_creation"})
       render :action => 'new'
     elsif params[:decline]
-      redirect_to t('user.terms.declined')
+      if @user
+        @user.terms_seen = true
+
+        if @user.save
+          flash[:notice] = t 'user.new.terms declined', :url => t('user.new.terms declined url')
+        end
+
+        if params[:referer]
+          redirect_to params[:referer]
+        else
+          redirect_to :action => :account, :display_name => @user.display_name
+        end
+      else
+        redirect_to t('user.terms.declined')
+      end
     elsif @user
       if !@user.terms_agreed?
         @user.consider_pd = params[:user][:consider_pd]
         @user.terms_agreed = Time.now.getutc
+        @user.terms_seen = true
         if @user.save
           flash[:notice] = t 'user.new.terms accepted'
         end
       end
 
-      redirect_to :action => :account, :display_name => @user.display_name
+      if params[:referer]
+        redirect_to params[:referer]
+      else
+        redirect_to :action => :account, :display_name => @user.display_name
+      end
     else
       @user = User.new(params[:user])
 
@@ -73,13 +93,15 @@ class UserController < ApplicationController
       @user.creation_ip = request.remote_ip
       @user.languages = request.user_preferred_languages
       @user.terms_agreed = Time.now.getutc
-
+      @user.terms_seen = true
+      
       if @user.save
         flash[:notice] = t 'user.new.flash create success message', :email => @user.email
         Notifier.deliver_signup_confirm(@user, @user.tokens.create(:referer => params[:referer]))
-        redirect_to :action => 'login'
+        session[:token] = @user.tokens.create.token
+        redirect_to :action => 'login', :referer => params[:referer]
       else
-        render :action => 'new'
+        render :action => 'new', :referer => params[:referer]
       end
     end
   end
@@ -108,6 +130,12 @@ class UserController < ApplicationController
       @user.home_lat = params[:user][:home_lat]
       @user.home_lon = params[:user][:home_lon]
 
+      if params[:user][:preferred_editor] == "default"
+        @user.preferred_editor = nil
+      else
+        @user.preferred_editor = params[:user][:preferred_editor]
+      end
+
       if @user.save
         set_locale
 
@@ -207,15 +235,20 @@ class UserController < ApplicationController
         session[:user] = user.id
         session_expires_after 1.month if params[:remember_me]
 
-        # The user is logged in, if the referer param exists, redirect
-        # them to that unless they've also got a block on them, in
-        # which case redirect them to the block so they can clear it.
-        if user.blocked_on_view
-          redirect_to user.blocked_on_view, :referer => params[:referer]
-        elsif params[:referer]
-          redirect_to params[:referer]
+        target = params[:referer] || url_for(:controller => :site, :action => :index)
+
+        # The user is logged in, so decide where to send them:
+        #
+        # - If they haven't seen the contributor terms, send them there.
+        # - If they have a block on them, show them that.
+        # - If they were referred to the login, send them back there.
+        # - Otherwise, send them to the home page.
+        if REQUIRE_TERMS_SEEN and not user.terms_seen
+          redirect_to :controller => :user, :action => :terms, :referer => target
+        elsif user.blocked_on_view
+          redirect_to user.blocked_on_view, :referer => target
         else
-          redirect_to :controller => 'site', :action => 'index'
+          redirect_to target
         end
       elsif user = User.authenticate(:username => email_or_display_name, :password => pass, :pending => true)
         flash.now[:error] = t 'user.login.account not active', :reconfirm => url_for(:action => 'confirm_resend', :display_name => user.display_name)
@@ -264,14 +297,29 @@ class UserController < ApplicationController
           user.save!
           referer = token.referer
           token.destroy
-          session[:user] = user.id
 
-          unless referer.nil?
+          if session[:token] 
+            token = UserToken.find_by_token(session[:token])
+            session.delete(:token)
+          else
+            token = nil
+          end
+
+          if token.nil? or token.user != user
             flash[:notice] = t('user.confirm.success')
-            redirect_to referer
+            redirect_to :action => :login, :referer => referer
           else
-            flash[:notice] = t('user.confirm.success') + "<br /><br />" + t('user.confirm.before you start')
-            redirect_to :action => 'account', :display_name => user.display_name
+            token.destroy
+
+            session[:user] = user.id
+
+            if referer.nil?
+              flash[:notice] = t('user.confirm.success') + "<br /><br />" + t('user.confirm.before you start')
+              redirect_to :action => :account, :display_name => user.display_name
+            else
+              flash[:notice] = t('user.confirm.success')
+              redirect_to referer
+            end
           end
         end
       else
@@ -452,4 +500,28 @@ private
   rescue ActiveRecord::RecordNotFound
     redirect_to :controller => 'user', :action => 'view', :display_name => params[:display_name] unless @this_user
   end
+
+  ##
+  # Choose the layout to use. See
+  # https://rails.lighthouseapp.com/projects/8994/tickets/5371-layout-with-onlyexcept-options-makes-other-actions-render-without-layouts
+  def choose_layout
+    oauth_url = url_for(:controller => :oauth, :action => :oauthorize, :only_path => true)
+
+    if [ 'api_details' ].include? action_name
+      nil
+    elsif params[:referer] and URI.parse(params[:referer]).path == oauth_url
+      'slim'
+    else
+      'site'
+    end
+  end
+
+  ##
+  #
+  def disable_terms_redirect
+    # this is necessary otherwise going to the user terms page, when 
+    # having not agreed already would cause an infinite redirect loop.
+    # it's .now so that this doesn't propagate to other pages.
+    flash.now[:showing_terms] = true
+  end
 end
index 2ccfcca2b0a5b8e33107d6731ae5f6b297ccf594..c24e7ff5be26b7a504c620ede19ea95d66ba30b5 100644 (file)
@@ -119,6 +119,16 @@ module ApplicationHelper
     end
   end
 
+  def preferred_editor
+    if params[:editor]
+      params[:editor]
+    elsif @user and @user.preferred_editor
+      @user.preferred_editor
+    else
+      DEFAULT_EDITOR
+    end
+  end
+
 private
 
   def javascript_strings_for_key(key)
index 9474a01370ea692bf14e22c5585c4ddb3a34c0e7..09eec40d3e5f020a4445282a485a312d98a6590c 100644 (file)
@@ -2,6 +2,7 @@ require 'oauth'
 class ClientApplication < ActiveRecord::Base
   belongs_to :user
   has_many :tokens, :class_name => "OauthToken"
+  has_many :access_tokens
   validates_presence_of :name, :url, :key, :secret
   validates_uniqueness_of :key
   before_validation_on_create :generate_keys
@@ -53,6 +54,20 @@ class ClientApplication < ActiveRecord::Base
     RequestToken.create :client_application => self, :callback_url => self.token_callback_url
   end
 
+  def access_token_for_user(user)
+    unless token = access_tokens.find(:first, :conditions => { :user_id => user.id, :invalidated_at => nil })
+      params = { :user => user }
+
+      permissions.each do |p|
+        params[p] = true
+      end
+
+      token = access_tokens.create(params)
+    end
+    
+    token
+  end
+
   # the permissions that this client would like from the user
   def permissions
     ClientApplication.all_permissions.select { |p| self[p] }
index 1a50f70532184eacc6a0063c286ae135980052bf..d2535bbd48f2c41e585abe4135176f8434e19765 100644 (file)
@@ -10,7 +10,7 @@ class User < ActiveRecord::Base
   has_many :friends, :include => :befriendee, :conditions => "users.status IN ('active', 'confirmed')"
   has_many :tokens, :class_name => "UserToken"
   has_many :preferences, :class_name => "UserPreference"
-  has_many :changesets
+  has_many :changesets, :order => 'created_at DESC'
 
   has_many :client_applications
   has_many :oauth_tokens, :class_name => "OauthToken", :order => "authorized_at desc", :include => [:client_application]
@@ -33,6 +33,7 @@ class User < ActiveRecord::Base
   validates_numericality_of :home_lat, :allow_nil => true
   validates_numericality_of :home_lon, :allow_nil => true
   validates_numericality_of :home_zoom, :only_integer => true, :allow_nil => true
+  validates_inclusion_of :preferred_editor, :in => Editors::ALL_EDITORS, :allow_nil => true
 
   before_save :encrypt_password
 
@@ -106,7 +107,7 @@ class User < ActiveRecord::Base
     (languages & array.collect { |i| i.to_s }).first
   end
 
-  def nearby(radius = 50, num = 10)
+  def nearby(radius = NEARBY_RADIUS, num = NEARBY_USERS)
     if self.home_lon and self.home_lat 
       gc = OSM::GreatCircle.new(self.home_lat, self.home_lon)
       bounds = gc.bounds(radius)
@@ -202,4 +203,10 @@ class User < ActiveRecord::Base
 
     return score.to_i
   end
+
+  ##
+  # return an oauth access token for a specified application
+  def access_token(application_key)
+    return ClientApplication.find_by_key(application_key).access_token_for_user(self)
+  end
 end
index 6e3cbdb2ee0c2cd37247bb18194bfd449ddc01c2..9fb9cb860b1f0bc0e3e5a3ebda62c97884b85aa6 100644 (file)
@@ -84,7 +84,7 @@
       <td>
         <table cellpadding="0">
           <% @relations.each do |relation| %>
-          <tr><td><%= link_to h(printable_name(relation, true)), { :action => "relation", :id => relation.id.to_s }, :class => "relation " %></td></tr>
+          <tr><td><%= link_to h(printable_name(relation, true)), { :action => "relation", :id => relation.id.to_s }, :class => link_class('relation', relation), :title => link_title(relation) %></td></tr>
           <% end %>
         </table>
       </td>
index 0b7f76f238b80daf3416433d3194f275cde38835..2e20f07f38fc0a80ab7d1f1ca10a8f7d0676c379 100644 (file)
@@ -2,7 +2,7 @@
 <%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
 <%= javascript_include_tag 'map.js' %>
 <div id="browse_map">
-  <% if map.instance_of? Changeset or map.visible %>
+  <% if map.instance_of? Changeset or (map.instance_of? Node and map.version > 1) or map.visible %>
   <div id="small_map">
   </div>
   <span id="loading"><%= t 'browse.map.loading' %></span>
@@ -15,7 +15,7 @@
     <%= t 'browse.map.deleted' %>
   <% end %>
 </div>
-<% if map.instance_of? Changeset or map.visible %>
+<% if map.instance_of? Changeset or (map.instance_of? Node and map.version > 1) or map.visible %>
   <script type="text/javascript">
     OpenLayers.Lang.setCode("<%= I18n.locale.to_s %>");
 
       <% else %>
         var obj_type = "<%= map.class.name.downcase %>";
         var obj_id = <%= map.id %>;
+        var obj_version = <%= map.version %>;
+        var obj_visible = <%= map.visible %>;
         var url = "/api/<%= "#{API_VERSION}" %>/<%= map.class.name.downcase %>/<%= map.id %>";
 
         if (obj_type != "node") {
           url += "/full";
+        } else if (!obj_visible) {
+          var previous_version = obj_version - 1;
+          url += "/" + previous_version;
         }
 
         addObjectToMap(url, true, function(extent) {
index 9a1d50a828c1a21e757db3be2db65a044f07ba77..3777d710a3c04fdad917db673ed06374a23eee28 100644 (file)
@@ -4,6 +4,8 @@
       <a id="browse_select_view" href="#"><%= t'browse.start.view_data' %></a>
       <br />
       <a id="browse_select_box" href="#"><%= t'browse.start.manually_select' %></a>  
+      <br />
+      <a id="browse_hide_areas_box" href="#"><%= t'browse.start.hide_areas' %></a>  
     </p>
   </div>
   <div id="browse_status" style="text-align: center; display: none">
index d9faaf478423c7deb6ee2e881cf92bf30d645698..e9a5482bebbf31bfd898979dd1f171009de72beb 100644 (file)
@@ -10,7 +10,7 @@
 <%= render :partial => "map", :object => @node %>
 <%= render :partial => "node_details", :object => @node %>
 <hr />
-<%= t'browse.node.download', :download_xml_link => link_to(t('browse.node.download_xml'), :controller => "node", :action => "read"),
+<%= t'browse.node.download', :download_xml_link => link_to(t('browse.node.download_xml'), :controller => "old_node", :action => "version", :version => @node.version),
                              :view_history_link => link_to(t('browse.node.view_history'), :action => "node_history"),
                              :edit_link => link_to(t('browse.node.edit'), :controller => "site", :action => "edit", :lat => @node.lat, :lon => @node.lon, :zoom => 18, :node => @node.id)
 %>
index d4ef1f530ca85b1aa170d6393edbccec7a016fd8..b96e8c39c6ecd1d29859123264f4fd1d559bb898 100644 (file)
@@ -9,6 +9,7 @@ page << <<EOJ
   var browseDataLayer;
   var browseSelectControl;
   var browseObjectList;
+  var areasHidden = false;
 
   OpenLayers.Feature.Vector.style['default'].strokeWidth = 3;
   OpenLayers.Feature.Vector.style['default'].cursor = "pointer";
@@ -33,12 +34,16 @@ page << <<EOJ
 
     map.events.register("moveend", map, showData);
     map.events.triggerEvent("moveend");
+
+    $("browse_hide_areas_box").innerHTML = "#{I18n.t('browse.start_rjs.hide_areas')}";
+    $("browse_hide_areas_box").style.display = "inline";
+    $("browse_hide_areas_box").onclick = hideAreas;
   }
 
   function showData() {
     if (browseMode == "auto") {
       if (map.getZoom() >= 15) {
-          useMap();
+          useMap(false);
       } else {
           setStatus("#{I18n.t('browse.start_rjs.zoom_or_select')}");
       }    
@@ -56,7 +61,7 @@ page << <<EOJ
 
       if (browseBoxControl) {
        browseBoxControl.destroy();
-       browseBoxControl = null;
+        browseBoxControl = null;
       }                
 
       if (browseActiveFeature) {
@@ -84,7 +89,7 @@ page << <<EOJ
 
   $("browse_select_box").onclick = startDrag;
 
-  function useMap() {
+  function useMap(reload) {
     var bounds = map.getExtent();
     var projected = bounds.clone().transform(map.getProjectionObject(), epsg4326);
 
@@ -98,7 +103,7 @@ page << <<EOJ
                                              center.lat + (tileHeight / 2));
 
       browseBounds = tileBounds;
-      getData(tileBounds);
+      getData(tileBounds, reload);
 
       browseMode = "auto";
 
@@ -108,6 +113,26 @@ page << <<EOJ
     return false;
   }
 
+  function hideAreas() {
+      $("browse_hide_areas_box").innerHTML = "#{I18n.t('browse.start_rjs.show_areas')}";
+      $("browse_hide_areas_box").style.display = "inline";
+      $("browse_hide_areas_box").onclick = showAreas;
+
+      areasHidden = true;
+
+      useMap(true);
+  }
+
+  function showAreas() {
+      $("browse_hide_areas_box").innerHTML = "#{I18n.t('browse.start_rjs.hide_areas')}";
+      $("browse_hide_areas_box").style.display = "inline";
+      $("browse_hide_areas_box").onclick = hideAreas;
+
+      areasHidden = false;
+
+      useMap(true);
+  }
+
   $("browse_select_view").onclick = useMap;
 
   function endDrag(bbox) {
@@ -181,22 +206,29 @@ page << <<EOJ
     }
   }
 
-  function getData(bounds) {
+  function getData(bounds, reload) {
     var projected = bounds.clone().transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
     var size = projected.getWidth() * projected.getHeight();
 
     if (size > #{MAX_REQUEST_AREA}) {
       setStatus(i18n("#{I18n.t('browse.start_rjs.unable_to_load_size', :max_bbox_size => MAX_REQUEST_AREA)}", { bbox_size: size }));
     } else {
-      loadGML("/api/#{API_VERSION}/map?bbox=" + projected.toBBOX());
+      loadGML("/api/#{API_VERSION}/map?bbox=" + projected.toBBOX(), reload);
     }
   }
 
-  function loadGML(url) {
+  function loadGML(url, reload) {
     setStatus("#{I18n.t('browse.start_rjs.loading')}");
     $("browse_content").innerHTML = "";
 
-    if (!browseDataLayer) {
+    var formatOptions = {
+      checkTags: true,
+      interestingTagsExclude: ['source','source_ref','source:ref','history','attribution','created_by','tiger:county','tiger:tlid','tiger:upload_uuid']
+    };
+
+    if (areasHidden) formatOptions.areaTags = [];
+
+    if (!browseDataLayer || reload) {
       var style = new OpenLayers.Style();
 
       style.addRules([new OpenLayers.Rule({
@@ -207,12 +239,11 @@ page << <<EOJ
         }
       })]);
 
+      if (browseDataLayer) browseDataLayer.destroyFeatures();
+
       browseDataLayer = new OpenLayers.Layer.GML("Data", url, {
         format: OpenLayers.Format.OSM,
-        formatOptions: {
-          checkTags: true, 
-          interestingTagsExclude: ['source','source_ref','source:ref','history','attribution','created_by','tiger:county','tiger:tlid','tiger:upload_uuid']
-        },
+        formatOptions: formatOptions,
         maxFeatures: 100,
         requestSuccess: customDataLoader,
         displayInLayerSwitcher: false,
@@ -230,6 +261,8 @@ page << <<EOJ
       map.addControl(browseSelectControl);
       browseSelectControl.activate();
     } else {
+      browseDataLayer.destroyFeatures();
+      browseDataLayer.format(formatOptions);
       browseDataLayer.setUrl(url);
     }
 
index cbcfe74702079bf968b1512f1e699928ad9754f7..33d8cf129d80f51c7387e8f175cbe2fa961b79e1 100644 (file)
@@ -27,7 +27,7 @@
   <% end %>
     
   <td class="<%= cl %> comment">
-    <% if changeset.tags['comment'] %>
+    <% if changeset.tags['comment'].to_s != '' %>
       <%= linkify(h(changeset.tags['comment'])) %>
     <% else %>
       <%= t'changeset.changeset.no_comment' %>
index dfac3a198953bee5a4d55d05093003683ab2e5a1..4779471de2184b8b0c0d879abad9353b79433a76 100644 (file)
@@ -1,11 +1,9 @@
 <%= t 'diary_entry.location.location' %>
 
+<a href="<%= url_for :controller => 'site', :action => 'index', :lat => location.latitude, :lon => location.longitude, :zoom => 14 %>">
 <abbr class="geo" title="<%= number_with_precision(location.latitude, :precision => 4) %>; <%= number_with_precision(location.longitude, :precision => 4) %>">
 <% cache(:controller => 'diary_entry', :action => 'view', :display_name => location.user.display_name, :id => location.id, :part => "location") do %>
 <%= describe_location location.latitude, location.longitude, 14, location.language_code %>
 <% end %>
 </abbr>
-
-(<%=link_to t('diary_entry.location.view'), :controller => 'site', :action => 'index', :lat => location.latitude, :lon => location.longitude, :zoom => 14 %>
-/
-<%=link_to t('diary_entry.location.edit'), :controller => 'site', :action => 'edit', :lat => location.latitude, :lon => location.longitude, :zoom => 14 %>)
+</a>
index c3e49a22767852402a219a2ea2b63b101455ede7..1a8096d134a4b3bd81636eb9ac62eb074126f403 100644 (file)
@@ -1,6 +1,6 @@
 <%= user_image @entry.user, :style => "float: right" %>
 
-<h2><%= t 'diary_entry.view.user_title', :user => h(@entry.user.display_name) %></h2>
+<h2><%= link_to t('diary_entry.view.user_title', :user => h(@entry.user.display_name)), :action => :list %></h2>
 
 <%= render :partial => 'diary_entry', :object => @entry %>
 
diff --git a/app/views/layouts/_flash.html.erb b/app/views/layouts/_flash.html.erb
new file mode 100644 (file)
index 0000000..da559d5
--- /dev/null
@@ -0,0 +1,11 @@
+<% if flash[:error] %>
+  <div id="error"><%= flash[:error] %></div>
+<% end %>
+
+<% if flash[:warning] %>
+  <div id="warning"><%= flash[:warning] %></div>
+<% end %>
+
+<% if flash[:notice] %>
+  <div id="notice"><%= flash[:notice] %></div>
+<% end %>
diff --git a/app/views/layouts/_head.html.erb b/app/views/layouts/_head.html.erb
new file mode 100644 (file)
index 0000000..6c22a94
--- /dev/null
@@ -0,0 +1,18 @@
+<head>
+  <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"/>
+  <%= javascript_strings %>
+  <%= javascript_include_tag 'prototype' %>
+  <%= javascript_include_tag 'site' %>
+  <%= javascript_include_tag 'menu' %>
+  <!--[if lt IE 7]><%= javascript_include_tag 'pngfix' %><![endif]--> <!-- thanks, microsoft! -->
+  <%= stylesheet_link_tag 'common' %>
+  <!--[if IE]><%= stylesheet_link_tag 'large', :media => "screen" %><![endif]--> <!-- IE is totally broken with CSS media queries -->
+  <%= stylesheet_link_tag 'small', :media => "only screen and (max-width:641px)" %>
+  <%= stylesheet_link_tag 'large', :media => "screen and (min-width: 642px)" %> 
+  <%= stylesheet_link_tag 'print', :media => "print" %>
+  <%= tag("link", { :rel => "search", :type => "application/opensearchdescription+xml", :title => "OpenStreetMap Search", :href => "/opensearch/osm.xml" }) %>
+  <%= tag("meta", { :name => "description", :content => "OpenStreetMap is the free wiki world map." }) %>
+  <%= style_rules %>
+  <%= yield :head %>
+  <title><%= t 'layouts.project_name.title' %><%= ' | '+ h(@title) if @title %></title>
+</head>
index b514fef990943e7ab5dd22e24820a5ba0d6583b8..95289376e2d180898c257358a291bbda5bdf3135 100644 (file)
@@ -1,33 +1,13 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%= I18n.locale %>" lang="<%= I18n.locale %>" dir="<%= t'html.dir' %>">
-  <head>
-    <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"/>
-    <%= javascript_strings %>
-    <%= javascript_include_tag 'prototype' %>
-    <%= javascript_include_tag 'site' %>
-    <!--[if lt IE 7]><%= javascript_include_tag 'pngfix' %><![endif]--> <!-- thanks, microsoft! -->
-    <%= stylesheet_link_tag 'common' %>
-    <!--[if IE]><%= stylesheet_link_tag 'large', :media => "screen" %><![endif]--> <!-- IE is totally broken with CSS media queries -->
-    <%= stylesheet_link_tag 'small', :media => "only screen and (max-width: 481px)" %>
-    <%= stylesheet_link_tag 'large', :media => "screen and (min-width: 482px)" %> 
-    <%= stylesheet_link_tag 'print', :media => "print" %>
-    <%= tag("link", { :rel => "search", :type => "application/opensearchdescription+xml", :title => "OpenStreetMap Search", :href => "/opensearch/osm.xml" }) %>
-    <%= tag("meta", { :name => "description", :content => "OpenStreetMap is the free wiki world map." }) %>
-    <%= style_rules %>
-    <%= yield :head %>
-    <title><%= t 'layouts.project_name.title' %><%= ' | '+ h(@title) if @title %></title>
-  </head>
+  <%= render :partial => "layouts/head" %>
   <body>
+    <div id="small-title">
+      <%= link_to(image_tag("osm_logo.png", :size => "16x16", :border => 0, :alt => t('layouts.logo.alt_text')), :controller => 'site', :action => 'index') %>
+      <h1><%= t 'layouts.project_name.h1' %></h1>
+    </div>
     <div id="content">
-      <% if flash[:error] %>
-        <div id="error"><%= flash[:error] %></div>
-      <% end %>
-      <% if flash[:warning] %>
-        <div id="warning"><%= flash[:warning] %></div>
-      <% end %>
-      <% if flash[:notice] %>
-        <div id="notice"><%= flash[:notice] %></div>
-      <% end %>
+      <%= render :partial => "layouts/flash", :locals => { :flash => flash } %>
 
       <%= yield %>
     </div>
@@ -61,7 +41,7 @@
         diaryclass = 'active' if params['controller'] == 'diary_entry'
         %>
         <li><%= link_to t('layouts.view'), {:controller => 'site', :action => 'index'}, {:id => 'viewanchor', :title => t('layouts.view_tooltip'), :class => viewclass} %></li>
-        <li><%= link_to t('layouts.edit'), {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => t('javascripts.site.edit_tooltip'), :class => editclass} %></li>
+        <li><%= link_to t('layouts.edit') + '&nbsp;&#x25be;', {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => t('javascripts.site.edit_tooltip'), :class => editclass} %></li>
         <li><%= link_to t('layouts.history'), {:controller => 'changeset', :action => 'list' }, {:id => 'historyanchor', :title => t('javascripts.site.history_tooltip'), :class => historyclass} %></li>
         <% if params['controller'] == 'site' and (params['action'] == 'index' or params['action'] == 'export') %>
         <li><%= link_to_remote t('layouts.export'), {:url => {:controller => 'export', :action => 'start'}}, {:id => 'exportanchor', :title => t('layouts.export_tooltip'), :class => exportclass, :href => url_for(:controller => 'site', :action => 'export')} %></li>
       </ul>
     </div>
 
+    <div id="editmenu">
+      <ul>
+        <% Editors::ALL_EDITORS.each do |editor| %>
+          <li><%= link_to t('layouts.edit_with', :editor => t("editor.#{editor}.description")), {:controller => 'site', :action => 'edit', :editor => editor}, {:id => editor + 'anchor'} %></li>
+        <% end %>
+      </ul>
+    </div>
+
+    <script type="text/javascript">
+      createMenu("editanchor", "editmenu", 1000);
+    </script>
+
     <div id="left">
 
       <div id="logo">
       <% end %>
 
       <div id="left_menu" class="left_menu">
-        <%= t 'layouts.help_and_wiki',
-            :help => link_to(t('layouts.help'), t('layouts.help_url'), :title => t('layouts.help_title')),
-            :wiki => link_to(t('layouts.wiki'), t('layouts.wiki_url'), :title => t('layouts.wiki_title'))
-        %><br />
-        <%= link_to t('layouts.copyright'), {:controller => 'site', :action => 'copyright'} %><br />
-        <a href="http://blogs.openstreetmap.org/" title="<%= t 'layouts.news_blog_tooltip' %>"><%= t 'layouts.news_blog' %></a><br />
-        <a href="<%= t 'layouts.shop_url' %>" title="<%= t 'layouts.shop_tooltip' %>"><%= t 'layouts.shop' %></a><br />
-        <%= yield :left_menu %>
+        <ul>
+          <li><%= link_to(t('layouts.help_centre'), t('layouts.help_url'), :title => t('layouts.help_title')) %></li>
+          <li><%= link_to(t('layouts.documentation'), t('layouts.wiki_url'), :title => t('layouts.documentation_title')) %></li>
+          <li><%= link_to t('layouts.copyright'), {:controller => 'site', :action => 'copyright'} %></li>
+          <li><a href="http://blogs.openstreetmap.org/" title="<%= t 'layouts.community_blogs_title' %>"><%= t 'layouts.community_blogs' %></a></li>
+          <li><a href="http://www.osmfoundation.org" title="<%= t 'layouts.foundation_title' %>"><%= t 'layouts.foundation' %></a></li>
+          <%= yield :left_menu %>
+        </ul>
+      </div>
+
+      <div id="sotm">
+        <%= link_to image_tag("sotm.png", :alt => t('layouts.sotm2011'), :title => t('layouts.sotm2011'), :border => "0"), "http://stateofthemap.org/register-now/" %>
       </div>
 
       <%= yield :optionals %>
diff --git a/app/views/layouts/slim.html.erb b/app/views/layouts/slim.html.erb
new file mode 100644 (file)
index 0000000..862f55d
--- /dev/null
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<%= I18n.locale %>" lang="<%= I18n.locale %>" dir="<%= t'html.dir' %>">
+  <%= render :partial => "layouts/head" %>
+  <body class="slim">
+    <div id="slim_container">
+      <div id="slim_container_content">
+        <div id="slim_content">
+          <%= render :partial => "layouts/flash", :locals => { :flash => flash } %>
+
+          <%= yield %>
+        </div>
+
+        <div id="slim_header">
+          <h1><%= image_tag("osm_logo.png", :size => "60x60", :border => 0, :alt => t('layouts.logo.alt_text')) %><%= t 'layouts.project_name.h1' %></h1>
+        </div>
+      </div>
+    </div>
+  </body>
+</html>
index e990071c850b65dee3ba7dc2ac7cbbce7bb5497b..6fc70ef46f1b1d71092fffe40b2af5761eebc8af 100644 (file)
@@ -29,5 +29,5 @@
 </script>
 
 <% content_for :left_menu do %>
-  <%= link_to_function t('site.key.map_key'), "openMapKey()", :title => t('site.key.map_key_tooltip') %>
+  <li><%= link_to_function t('site.key.map_key'), "openMapKey()", :title => t('site.key.map_key_tooltip') %></li>
 <% end %>
diff --git a/app/views/site/_potlatch.html.erb b/app/views/site/_potlatch.html.erb
new file mode 100644 (file)
index 0000000..18e1c4c
--- /dev/null
@@ -0,0 +1,43 @@
+<div id="map">
+  <%= t 'site.edit.flash_player_required' %>
+</div>
+
+<%= javascript_include_tag 'swfobject.js' %>
+
+<% session[:token] = @user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token]) %>
+
+<script type="text/javascript" defer="defer">
+  var brokenContentSize = $("content").offsetWidth == 0;
+  var fo = new SWFObject("<%= asset_path("/potlatch/potlatch.swf") %>", "potlatch", "100%", "100%", "6", "#FFFFFF");
+  // 700,600 for fixed size, 100%,100% for resizable
+  var changesaved=true;
+  var winie=false; if (document.all && window.print) { winie=true; }
+  
+  window.onbeforeunload=function() {
+    if (!changesaved) {
+      return '<%= escape_javascript(t('site.edit.potlatch_unsaved_changes')) %>';
+    }
+  }
+
+  function markChanged(a) { changesaved=a; }
+
+  function doSWF(lat,lon,sc) {
+    if (sc < 11) sc = 11;
+    fo.addVariable('winie',winie);
+    fo.addVariable('scale',sc);
+    fo.addVariable('token','<%= session[:token] %>');
+    if (lat) { fo.addVariable('lat',lat); }
+    if (lon) { fo.addVariable('long',lon); }
+    <% if params['gpx']     %>fo.addVariable('gpx'     ,'<%= h(params['gpx']    ) %>');<% end %>
+    <% if params['way']     %>fo.addVariable('way'     ,'<%= h(params['way']    ) %>');<% end %>
+    <% if params['node']    %>fo.addVariable('node'    ,'<%= h(params['node']   ) %>');<% end %>
+    <% if params['tileurl'] %>fo.addVariable('custombg','<%= h(params['tileurl']) %>');<% end %>
+    fo.write("map");
+  }
+
+  doSWF(<%= @lat || 'null' %>,<%= @lon || 'null' %>,<%= @zoom %>);
+
+  function setPosition(lat, lon, zoom) {
+    doSWF(lat, lon, zoom || 15);
+  }
+</script>
diff --git a/app/views/site/_potlatch2.html.erb b/app/views/site/_potlatch2.html.erb
new file mode 100644 (file)
index 0000000..e648ed3
--- /dev/null
@@ -0,0 +1,65 @@
+<div id="map">
+  <%= t 'site.edit.flash_player_required' %>
+</div>
+
+<%= javascript_include_tag 'swfobject.js' %>
+
+<% if defined? POTLATCH2_KEY %>
+<% token = @user.access_token(POTLATCH2_KEY) %>
+<% else%>
+<script type="text/javascript">alert("<%= t 'site.edit.potlatch2_not_configured' %>")</script>
+<% end %>
+
+<% locale = request.compatible_language_from(Potlatch2::LOCALES.keys) || "en" %>
+
+<script type="text/javascript" defer="defer">
+  var brokenContentSize = $("content").offsetWidth == 0;
+  var fo = new SWFObject("<%= asset_path("/potlatch2/potlatch2.swf") %>", "potlatch", "100%", "100%", "9", "#FFFFFF");
+  // 700,600 for fixed size, 100%,100% for resizable
+  var changesaved=true;
+  
+  window.onbeforeunload=function() {
+    if (!changesaved) {
+      return '<%= escape_javascript(t('site.edit.potlatch2_unsaved_changes')) %>';
+    }
+  }
+
+  function markChanged(a) { changesaved=a; }
+
+  function doSWF(lat,lon,zoom) {
+    fo.addParam("base","/potlatch2");
+    if (lat) { fo.addVariable("lat",lat); }
+    if (lon) { fo.addVariable("lon",lon); }
+    fo.addVariable("locale", "<%= Potlatch2::LOCALES[locale] %>");
+    <% if params['gpx'] %>
+    fo.addVariable('gpx' ,'<%= h(params['gpx']) %>');
+    <% end %>
+    <% if params['tileurl'] %>
+    fo.addVariable('tileurl' ,'<%= h(params['tileurl']) %>');
+    <% end %>
+    fo.addVariable("zoom",zoom);
+    fo.addVariable("api","<%= request.protocol + request.host_with_port %>/api/<%= API_VERSION %>/");
+    fo.addVariable("policy","<%= request.protocol + request.host_with_port %>/api/crossdomain.xml");
+    fo.addVariable("connection","XML");
+    <% if token %>
+    fo.addVariable("oauth_token","<%= token.token %>");
+    fo.addVariable("oauth_token_secret","<%= token.secret %>");
+    fo.addVariable("oauth_consumer_key","<%= token.client_application.key %>");
+    fo.addVariable("oauth_consumer_secret","<%= token.client_application.secret %>");
+    <% end %>
+    fo.addVariable("maximise_function","maximiseMap");
+    fo.addVariable("minimise_function","minimiseMap");
+    fo.addVariable("move_function","mapMoved");
+    fo.write("map");
+  }
+
+  doSWF(<%= @lat || 'null' %>,<%= @lon || 'null' %>,<%= @zoom %>);
+
+  function setPosition(lat, lon, zoom) {
+    $("potlatch").setPosition(lat, lon, Math.max(zoom || 15, 13));
+  }
+
+  function mapMoved(lon, lat, zoom, minlon, minlat, maxlon, maxlat) {
+    updatelinks(lon, lat, zoom, null, minlon, minlat, maxlon, maxlat);
+  }
+</script>
index 31b5af16f9f3a92aad912dc97b681ac0e32a2f33..f487e8f4a2d2a407bb7d7c285bfa1400c7017aca 100644 (file)
@@ -41,7 +41,7 @@
                        :complete => "endSearch()",
                        :url => { :controller => :geocoder, :action => :search },
                        :html => { :method => "get", :action => url_for(:action => "index") }) do %>
-      <%= text_field_tag :query, h(params[:query]) %>
+      <%= text_field_tag :query, h(params[:query]), :tabindex => "1" %>
       <% if params[:action] == 'index' %>
         <%= hidden_field_tag :minlon %>
         <%= hidden_field_tag :minlat %>
index e5bffd1e4566c5490541e9a2c6e4322570308a6b..a9b915faf84413224bfac2eab1497378b65e48bf 100644 (file)
 <%= render :partial => 'sidebar', :locals => { :onopen => "resizeMap();", :onclose => "resizeMap();" } %>
 <%= render :partial => 'search' %>
 
-<%
-session[:token] = @user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token])
+<%= render :partial => preferred_editor %>
 
-# Decide on a lat lon to initialise potlatch with. Various ways of doing this
-if params['lon'] and params['lat']
-       lon =  h(params['lon']) 
-       lat =  h(params['lat']) 
-       zoom =  h(params['zoom'])
-
-elsif params['mlon'] and params['mlat'] 
-       lon =  h(params['mlon']) 
-       lat =  h(params['mlat']) 
-       zoom =  h(params['zoom'])
-       
-elsif params['gpx']
-       #use gpx id to locate (dealt with below)
-       
-elsif cookies.key?("_osm_location")
-       lon,lat,zoom,layers = cookies["_osm_location"].split("|")
-       
-elsif @user and !@user.home_lon.nil? and !@user.home_lat.nil? 
-       lon =  @user.home_lon
-       lat =  @user.home_lat
-
-else
-       #catch all.  Do nothing.  lat=nil, lon=nil
-       #Currently this results in potlatch starting up at 0,0 (Atlantic ocean).
-end
-
-zoom='14' if zoom.nil?
-%>
-
-<div id="map">
-       <%= t 'site.edit.flash_player_required' %>
-</div>
-
-<%= javascript_include_tag 'swfobject.js' %>
 <script type="text/javascript" defer="defer">
-  var brokenContentSize = $("content").offsetWidth == 0;
-  var fo = new SWFObject("/potlatch/potlatch.swf?d="+Math.round(Math.random()*1000), "potlatch", "100%", "100%", "6", "#FFFFFF");
-  // 700,600 for fixed size, 100%,100% for resizable
-  var changesaved=true;
-  var winie=false; if (document.all && window.print) { winie=true; }
-  
-  window.onbeforeunload=function() {
-    if (!changesaved) {
-      return '<%= escape_javascript(t('site.edit.potlatch_unsaved_changes')) %>';
-    }
-  }
-
-  function markChanged(a) { changesaved=a; }
-
-  function doSWF(lat,lon,sc) {
-    if (sc < 11) sc = 11;
-    fo.addVariable('winie',winie);
-    fo.addVariable('scale',sc);
-    fo.addVariable('token','<%= session[:token] %>');
-    if (lat) { fo.addVariable('lat',lat); }
-    if (lon) { fo.addVariable('long',lon); }
-    <% if params['gpx']     %>fo.addVariable('gpx'     ,'<%= h(params['gpx']    ) %>');<% end %>
-    <% if params['way']     %>fo.addVariable('way'     ,'<%= h(params['way']    ) %>');<% end %>
-    <% if params['node']    %>fo.addVariable('node'    ,'<%= h(params['node']   ) %>');<% end %>
-    <% if params['tileurl'] %>fo.addVariable('custombg','<%= h(params['tileurl']) %>');<% end %>
-    fo.write("map");
-  }
-
-  doSWF(<%= lat || 'null' %>,<%= lon || 'null' %>,<%= zoom %>);
-
-  function setPosition(lat, lon, zoom) {
-    doSWF(lat, lon, zoom || 15);
-  }
-
   function resizeContent() {
     var content = $("content");
     var rightMargin = parseInt(getStyle(content, "right"));
index 305df63c0fd3212a4c1e0d4cbd9f7b6e6e04d668..70402a1c94014a89fcb9e72e49fd4d2bd929d727 100644 (file)
@@ -1,6 +1,6 @@
 <% content_for :greeting do %>
 <% if @user and !@user.home_lon.nil? and !@user.home_lat.nil? %>
-  <%= link_to_function t('layouts.home'), "setPosition(#{@user.home_lat}, #{@user.home_lon}, 10)", { :title => t('layouts.home_tooltip') } %> |
+  <%= link_to_function t('layouts.home'), "setPosition(#{@user.home_lat}, #{@user.home_lon}, 15)", { :title => t('layouts.home_tooltip') } %> |
 <% end %>
 <% end %>
 
@@ -19,6 +19,9 @@
 <div id="map">
 </div>
 
+<iframe id="linkloader" style="display: none">
+</iframe>
+
 <div id="permalink">
   <a href="/" id="permalinkanchor"><%= t 'site.index.permalink' %></a><br/>
   <a href="/" id="shortlinkanchor"><%= t 'site.index.shortlink' %></a><br/>
@@ -64,18 +67,17 @@ if params['node'] or params['way'] or params['relation']
     end
 end
 
+# Decide on a lat lon to initialise the map with. Various ways of doing this
 if params['minlon'] and params['minlat'] and params['maxlon'] and params['maxlat']
     bbox = true
     minlon = h(params['minlon'])
     minlat = h(params['minlat'])
     maxlon = h(params['maxlon'])
     maxlat = h(params['maxlat'])
+    layers = h(params['layers'])
     box = true if params['box']=="yes"
     object_zoom = false
-end
-
-# Decide on a lat lon to initialise the map with. Various ways of doing this
-if params['lon'] and params['lat']
+elsif params['lon'] and params['lat']
     lon =  h(params['lon'])
     lat =  h(params['lat'])
     zoom =  h(params['zoom'] || '5')
@@ -299,10 +301,37 @@ end
     resizeMap();
   }
 
+  function remoteEditHandler(event) {
+    var extent = getMapExtent();
+    var loaded = false;
+
+    $("linkloader").observe("load", function () { loaded = true; });
+    $("linkloader").src = "http://127.0.0.1:8111/load_and_zoom?left=" + extent.left + "&top=" + extent.top + "&right=" + extent.right + "&bottom=" + extent.bottom;
+
+    setTimeout(function () {
+      if (!loaded) alert("<%= escape_javascript(t('site.index.remote_failed')) %>");
+    }, 1000);
+
+    event.stop();
+  }
+
+  function installEditHandler() {
+    $("remoteanchor").observe("click", remoteEditHandler);
+
+    <% if preferred_editor == "remote" %>
+      $("editanchor").observe("click", remoteEditHandler);
+
+      <% if params[:action] == "edit" %>
+        remoteEditHandler();
+      <% end %>
+    <% end %>
+  }
+
   mapInit();
 
-  window.onload = handleResize;
-  window.onresize = handleResize;
+  Event.observe(window, "load", installEditHandler);
+  Event.observe(window, "load", handleResize);
+  Event.observe(window, "resize", handleResize);
 
   <% if params['action'] == 'export' %>
   <%= remote_function :url => { :controller => 'export', :action => 'start' } %>
index e0babce7eefda4b92ba5992b472d86d5e9ba2a39..d720353eed82308a9fd6ea604bc09650b5cc39bd 100644 (file)
@@ -1,5 +1,5 @@
 <tr>
-  <td rowspan="2">
+  <td rowspan="3">
     <%= user_thumbnail contact %>
   </td>
   <td>
     <% end %>
   </td>
 </tr>
+<tr>
+  <td>
+    <% changeset = contact.changesets.first %>
+    <% if changeset %>
+      <%= t('user.view.latest edit', :ago => t('user.view.ago', :time_in_words_ago => time_ago_in_words(changeset.created_at))) %>
+      <% comment = changeset.tags['comment'].to_s != '' ? changeset.tags['comment'] : t('changeset.changeset.no_comment') %>
+      "<%= link_to(comment,
+                          {:controller => 'browse', :action => 'changeset', :id => changeset.id},
+                          {:title => t('changeset.changeset.view_changeset_details')})
+      %>"
+    <% else %>
+     <%= t'changeset.changeset.no_edits' %>
+    <% end %>
+  </td>
 <tr>
   <td>
     <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => contact.display_name %>
index 7c29526cf7d7a24d8da3acf1ee93992abdc217b6..6ab7139956a10854dcb9662baaa682e2dc148de3 100644 (file)
@@ -1,18 +1,17 @@
-<% friends = @user.friends.collect { |f| f.befriendee }.select { |f| !f.home_lat.nil? and !f.home_lon.nil? } %>
-<% nearest = @user.nearby - friends %>
-
-<% if @user.home_lat.nil? or @user.home_lon.nil? %>
-  <% lon = h(params['lon'] || '-0.1') %>
-  <% lat = h(params['lat'] || '51.5') %>
-  <% zoom = h(params['zoom'] || '4') %> 
-<% else %>
-  <% marker = true %>
-  <% mlon = @user.home_lon %> 
-  <% mlat = @user.home_lat %>
-  <% lon =  @user.home_lon %>
-  <% lat =  @user.home_lat %>
-  <% zoom =  '12' %>
-<% end %>
+<%
+if @user.home_lat.nil? or @user.home_lon.nil?
+  lon = h(params['lon'] || '0') 
+  lat = h(params['lat'] || '20') 
+  zoom = h(params['zoom'] || '1') 
+else 
+  marker = true
+  mlon = @user.home_lon 
+  mlat = @user.home_lat
+  lon =  @user.home_lon 
+  lat =  @user.home_lat 
+  zoom =  '12'
+end
+%>
 
 <%= javascript_include_tag '/openlayers/OpenLayers.js' %>
 <%= javascript_include_tag '/openlayers/OpenStreetMap.js' %>
 
     <% if marker %>
     marker = addMarkerToMap(
-      new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null,
-      '<%= escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>'
+      new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>)
+      <% if not setting_location %>
+        , null, '<%=escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>'
+      <% end %>
     );
     <% end %>
-
-    var near_icon = OpenLayers.Marker.defaultIcon();
-    near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";
-    <% nearest.each do |u| %>
-      addMarkerToMap(new OpenLayers.LonLat(
-        <%= u.home_lon %>, <%= u.home_lat %>), near_icon.clone(),
-        '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "nearby mapper" })) %>'
-      );
+    
+    <% if setting_location %>
+    map.events.register("click", map, setHome);
     <% end %>
-
-    var friend_icon = OpenLayers.Marker.defaultIcon();
-    friend_icon.url = OpenLayers.Util.getImagesLocation() + "marker-blue.png";
-    <% friends.each do |u| %>
-      addMarkerToMap(new OpenLayers.LonLat(
-        <%= u.home_lon %>, <%= u.home_lat %>), friend_icon.clone(),
-        '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "friend" })) %>'
-      );
+    
+    <% if show_other_users %>
+      <% friends = @user.friends.collect { |f| f.befriendee }.select { |f| !f.home_lat.nil? and !f.home_lon.nil? } %>
+      <% nearest = @user.nearby - friends %>
+
+      var near_icon = OpenLayers.Marker.defaultIcon();
+      near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";
+      <% nearest.each do |u| %>
+        addMarkerToMap(new OpenLayers.LonLat(
+          <%= u.home_lon %>, <%= u.home_lat %>), near_icon.clone(),
+          '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "nearby mapper" })) %>'
+        );
+      <% end %>
+
+      var friend_icon = OpenLayers.Marker.defaultIcon();
+      friend_icon.url = OpenLayers.Util.getImagesLocation() + "marker-blue.png";
+      <% friends.each do |u| %>
+        addMarkerToMap(new OpenLayers.LonLat(
+          <%= u.home_lon %>, <%= u.home_lat %>), friend_icon.clone(),
+          '<%= escape_javascript(render(:partial => "popup", :object => u, :locals => { :type => "friend" })) %>'
+        );
+      <% end %>
     <% end %>
-
-    if (document.getElementById('updatehome')) {
-      map.events.register("click", map, setHome);
-    }
   }        
 
+  <% if setting_location %>
   function setHome( e ) { 
     closeMapPopup();
 
         removeMarkerFromMap(marker);
       }
 
-      marker = addMarkerToMap(
-        lonlat, null, 
-        '<%= escape_javascript(render(:partial => "popup", :object => @user, :locals => { :type => "your location" })) %>'
-      );
+      marker = addMarkerToMap(lonlat);
     }
   }
+  <% end %>
 
   window.onload = init;
 // -->
index 2c6b0885cb2732608d6b1007dadc17789d55c177..0934cbf6f3f4be8722a304cd9a7972f8a4085943 100644 (file)
@@ -1,15 +1,21 @@
 <p id="first">
   <%= @text['intro'] %>
-  <% if has_decline %>
-    <%= @text['next_with_decline'] %>
-  <% else %>
-    <%= @text['next_without_decline'] %>
-  <% end %>
+  <%= @text['next_with_decline'] %>
 </p>
+<h3><%= @text['introduction'] %></h3>
 <ol>
   <li>
     <p><%= @text['section_1'] %></p>
+    <% unless @text['section_1a'].nil? %>
+    <ol style="list-style-type: lower-alpha">
+      <li><%= @text['section_1a'] %></li>
+      <li><%= @text['section_1b'] %></li>
+    </ol>
+    <% end %>
   </li>
+</ol>
+<h3><%= @text['rights_granted'] %></h3>
+<ol start="2">
   <li>
     <p><%= @text['section_2'] %></p>
   </li>
@@ -17,6 +23,7 @@
     <p><%= @text['section_3'] %></p>
     <p><%= @text['active_defn_1'] %></p>
     <p><%= @text['active_defn_2'] %></p>
+    </ul>
   </li>
   <li>
     <p><%= @text['section_4'] %></p>
   <li>
     <p><%= @text['section_5'] %></p>
   </li>
+</ol>
+<h3><%= @text['limitation_of_liability'] %></h3>
+<ol start="6">
+  <li><p><%= @text['section_6'] %></p></li>
+  <li><p><%= @text['section_7'] %></p></li>
+</ol>
+<h3><%= @text['miscellaneous'] %></h3>
+<ol start="8">
   <li>
-    <p><%= @text['section_6'] %></p>
-    <ol>
-      <li><p><%= @text['section_6_1'] %></p></li>
-      <li><p><%= @text['section_6_2'] %></p></li>
-    </ol>
-  </li>
-  <li>
-    <p id="last"><%= @text['section_7'] %></p>
+    <p id="last"><%= @text['section_8'] %></p>
   </li>
 </ol>
index d5bcb38216e32ebac4037b5632918c553190a13e..abece879f7622bb2362c36372b69f17acf5cfe73 100644 (file)
     <td><%= f.text_field :languages %></td>
   </tr>
 
+  <tr>
+    <td class="fieldName" valign="top"><%= t 'user.account.preferred editor' %></td>
+    <td><%= f.select :preferred_editor, [[t("editor.default", :name => t("editor.#{DEFAULT_EDITOR}.name")), 'default']] + Editors::ALL_EDITORS.collect { |e| [t("editor.#{e}.description"), e] } %></td>
+  </tr>
+
   <tr>
     <td class="fieldName" valign="top">
       <%= t 'user.account.image' %>
 
   <tr id="homerow" <% unless @user.home_lat and @user.home_lon %> class="nohome" <%end%> >
     <td class="fieldName"><%= t 'user.account.home location' %></td>
-    <td><em class="message"><%= t 'user.account.no home location' %></em><span class="location"><%= t 'user.account.latitude' %> <%= f.text_field :home_lat, :size => 20, :id => "home_lat" %><%= t 'user.account.longitude' %><%= f.text_field :home_lon, :size => 20, :id => "home_lon" %></span></td>
+    <td><em class="message"><%= t 'user.account.no home location' %></em><span class="location"><%= t 'user.account.latitude' %> <%= f.text_field :home_lat, :size => 20, :id => "home_lat" %> <%= t 'user.account.longitude' %><%= f.text_field :home_lon, :size => 20, :id => "home_lon" %></span></td>
   </tr>
 
   <tr>
 </table>
 <% end %>
 
-<%= render :partial => 'map' %>
+<%= render :partial => 'map', :locals => { :setting_location => true,  :show_other_users => false } %>
 
 <% unless @user.data_public? %>
 <a name="public"></a>
index cf7f4a8198097a2753e4bc4d20f46cc2de4f6d85..66a2fab9980bc0748da6df9e801466a2b46f3c79 100644 (file)
@@ -1,14 +1,25 @@
-<h1><%= t 'user.login.heading' %></h1>
+<div id="login_wrapper">
+  <div id="login_login">
+    <h1><%= t 'user.login.heading' %></h1>
 
-<p><%= t 'user.login.please login', :create_user_link => link_to(t('user.login.create_account'), :controller => 'user', :action => 'new', :referer => params[:referer]) %></p>
+    <p><%= t 'user.login.already have' %></p>
 
-<% form_tag :action => 'login' do %>
-<%= hidden_field_tag('referer', h(params[:referer])) %>
-<table id="loginForm">
-  <tr><td class="fieldName"><%= t 'user.login.email or username' %></td><td><%= text_field('user', 'email',{:value => "", :size => 28, :maxlength => 255, :tabindex => 1}) %></td></tr>
-  <tr><td class="fieldName"><%= t 'user.login.password' %></td><td><%= password_field('user', 'password',{:value => "", :size => 28, :maxlength => 255, :tabindex => 2}) %> <span class="minorNote">(<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
-  <tr><td class="fieldName"><label for="remember_me"><%= t 'user.login.remember' %></label></td><td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %></td></tr> 
-  <tr><td colspan="2">&nbsp;<!--vertical spacer--></td></tr>
-  <tr><td></td><td align="right"><%= submit_tag t('user.login.login_button'), :tabindex => 3 %></td></tr>
-</table>
-<% end %>
+    <% form_tag :action => 'login' do %>
+      <%= hidden_field_tag('referer', h(params[:referer])) %>
+      <table id="loginForm">
+        <tr><td class="fieldName"><%= t 'user.login.email or username' %></td><td><%= text_field('user', 'email',{:value => "", :size => 28, :maxlength => 255, :tabindex => 1}) %></td></tr>
+        <tr><td class="fieldName"><%= t 'user.login.password' %></td><td><%= password_field('user', 'password',{:value => "", :size => 28, :maxlength => 255, :tabindex => 2}) %> <span class="minorNote">(<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
+        <tr><td class="fieldName"><label for="remember_me"><%= t 'user.login.remember' %></label></td><td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %></td></tr>
+      </table>
+      <%= submit_tag t('user.login.login_button'), :tabindex => 3 %>
+    <% end %>
+    <br clear="both">
+  </div>
+  <div id="login_signup">
+    <h2><%= t 'user.login.new to osm' %></h2>
+    <p><%= t 'user.login.to make changes' %></p>
+    <p><%= t 'user.login.create account minute' %></p></p>
+    <p><%= button_to t('user.login.register now'), :action => :new, :referer => params[:referer] %></p>
+    <br clear="both">
+  </div>
+</div>
index 3b35851991257ee55942dc0f352deafd4b50f5b5..5160716d16abf14aa713daf5639933e30fee6934 100644 (file)
@@ -13,7 +13,7 @@
             :before => update_page do |page|
               page.replace_html 'contributorTerms', image_tag('searching.gif')
             end,
-            :url => {:legale => legale, :has_decline => params.has_key?(:user)}
+            :url => {:legale => legale}
           )
       %>
       <%= label_tag "legale_#{legale}", t('user.terms.legale_names.' + name) %>
@@ -22,7 +22,7 @@
 <% end %>
 
 <div id="contributorTerms">
-  <%= render :partial => "terms", :locals => { :has_decline =>params.has_key?(:user) }  %>
+  <%= render :partial => "terms" %>
 </div>
 
 <% form_tag({:action => "save"}, { :id => "termsForm" }) do %>
@@ -41,9 +41,7 @@
       <%= hidden_field('user', 'pass_crypt_confirmation') %>
     <% end %>
     <div id="buttons">
-      <% if params[:user] %>
-        <%= submit_tag(t('user.terms.decline'), :name => "decline", :id => "decline") %>
-      <% end %>
+      <%= submit_tag(t('user.terms.decline'), :name => "decline", :id => "decline") %>
       <%= submit_tag(t('user.terms.agree'), :name => "agree", :id => "agree") %>
     </div>
   </p>
index 2aca75f5322f26f75167ed1052b7f6d2b10473b3..2fe92de5bd4c2da0725d61d291bc6146f91ec6a5 100644 (file)
@@ -96,7 +96,7 @@
         <%= t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name) %>
       </p>
     <% else %>
-      <%= render :partial => 'map' %>
+      <%= render :partial => 'map', :locals => { :setting_location => false, :show_other_users => true } %>
     <% end %>
   </div>
 
index 6d6c952fb0143811374acf7b1862fa25cc4bfa59..ce5a89350dae69af277772029dbc2c1f3ebcdbd5 100644 (file)
@@ -25,7 +25,10 @@ Rails::Initializer.run do |config|
   config.gem 'httpclient'
   config.gem 'SystemTimer', :version => '>= 1.1.3', :lib => 'system_timer'
   config.gem 'sanitize'
-  config.gem 'i18n', :version => '>= 0.4.1'
+  config.gem 'i18n', :version => '>= 0.5.0'
+  if defined?(MEMCACHE_SERVERS)
+    config.gem 'memcached'
+  end
 
   # Only load the plugins named here, in the order given (default is alphabetical).
   # :all can be used as a placeholder for all plugins not explicitly named
index 5e549a91f73f920b43bffb544fae3a84f0af92f4..457966091416284b01c5f530bee50d30444002f4 100644 (file)
@@ -16,7 +16,10 @@ config.action_view.cache_template_loading            = true
 # config.logger = SyslogLogger.new
 
 # Use a different cache store in production
-# config.cache_store = :mem_cache_store
+if defined?(MEMCACHE_SERVERS)
+  MEMCACHE = Memcached::Rails.new(MEMCACHE_SERVERS, :binary_protocol => true)
+  config.cache_store = :mem_cache_store, MEMCACHE
+end
 
 # Enable serving of images, stylesheets, and javascripts from an asset server
 # config.action_controller.asset_host = "http://assets.example.com"
index 9b00beb58de2fccc8ef964fa25d1a9ead65dbe7b..13936cfa5dfaf240a39cd50aa105e507a89ba3c2 100644 (file)
@@ -41,6 +41,10 @@ standard_settings: &standard_settings
   # Quova authentication details
   #quova_username: ""
   #quova_password: ""
+  # Users to show as being nearby
+  nearby_users: 30
+  # Max radius, in km, for nearby users
+  nearby_radius: 50
   # Spam threshold
   spam_threshold: 50
   # Default legale (jurisdiction location) for contributor terms
@@ -55,12 +59,21 @@ standard_settings: &standard_settings
   #file_column_root: ""
   # Enable legacy OAuth 1.0 support
   oauth_10_support: true
+  # URL of Nominatim instance to use for geocoding
+  nominatim_url: "http://nominatim.openstreetmap.org/"
+  # Default editor
+  default_editor: "potlatch2"
+  # OAuth consumer key for Potlatch 2
+  #potlatch2_key: ""
+  # Whether to require users to view the CTs before continuing to edit...
+  require_terms_seen: false
 
 development:
   <<: *standard_settings
 
 production:
   <<: *standard_settings
+  require_terms_seen: false
 
 test:
   <<: *standard_settings
diff --git a/config/initializers/asset_tag_helper.rb b/config/initializers/asset_tag_helper.rb
new file mode 100644 (file)
index 0000000..c1c2c94
--- /dev/null
@@ -0,0 +1,9 @@
+module ActionView
+  module Helpers
+    module AssetTagHelper
+      def asset_path(source)
+        compute_public_path(source, nil)
+      end
+    end
+  end
+end
index 8aadeaacf8edcba856e819b196777b6bfa927522..37d3cdebfe48f7333aaea389fb68cc46c4633fb9 100644 (file)
@@ -1,4 +1,9 @@
 module I18n
+  original_verbosity = $VERBOSE
+  $VERBOSE = nil
+  INTERPOLATION_PATTERN = /\{\{(\w+)\}\}/
+  $VERBOSE = original_verbosity
+
   module Backend
     class Simple
       module Implementation
diff --git a/config/initializers/memcached.rb b/config/initializers/memcached.rb
new file mode 100644 (file)
index 0000000..03066a8
--- /dev/null
@@ -0,0 +1,9 @@
+if defined?(PhusionPassenger) and defined?(MEMCACHE_SERVERS)
+  PhusionPassenger.on_event(:starting_worker_process) do |forked|
+    if forked
+      MEMCACHE = MEMCACHE.clone
+      RAILS_CACHE = ActiveSupport::Cache::CompressedMemCacheStore.new(MEMCACHE)
+      ActionController::Base.cache_store = RAILS_CACHE
+    end
+  end
+end
index e2dcee23c1a438287099317bdffbe05f7fc340f5..d3bd7a16b27627539a11a6253bf1073e82e6f98e 100644 (file)
@@ -18,7 +18,7 @@ if defined?(SOFT_MEMORY_LIMIT) and defined?(PhusionPassenger)
       
       # Restart if we've hit our memory limit
       if resident_size > SOFT_MEMORY_LIMIT
-        Process.kill("USR1", 0)
+        Process.kill("USR1", Process.pid)
       end
       
       # Return the result of this request
index d8f84959cd83f18efc7d256e78fa04f1f91f31f2..75971e4bf115980f294c7e591b299a8434c7591b 100644 (file)
@@ -1,7 +1,14 @@
-if defined?(ActiveRecord::ConnectionAdaptors::PostgreSQLAdaptor)
+if defined?(ActiveRecord::ConnectionAdapters::PostgreSQLAdapter)
   module ActiveRecord
     module ConnectionAdapters
       class PostgreSQLAdapter
+        def supports_disable_referential_integrity?() #:nodoc:
+          version = query("SHOW server_version")[0][0].split('.')
+          (version[0].to_i >= 9 || (version[0].to_i == 8 && version[1].to_i >= 1)) ? true : false
+        rescue
+          return false
+        end
+
         def pk_and_sequence_for(table)
           # First try looking for a sequence with a dependency on the
           # given table's primary key.
index 83d47cdf5dfc0dfd6a2d8ef47f07a143ad02cbd9..f3dfc58edf627b90cffc329490473517ce7ed060 100644 (file)
@@ -53,3 +53,39 @@ mapnik:
 
 osmarender:
   - { min_zoom: 0, max_zoom: 18, name: motorway, image: motorway.png }
+  - { min_zoom: 0, max_zoom: 18, name: trunk, image: trunk.png }
+  - { min_zoom: 7, max_zoom: 18, name: primary, image: primary.png }
+  - { min_zoom: 9, max_zoom: 18, name: secondary, image: secondary.png }
+  - { min_zoom: 13, max_zoom: 18, name: unsurfaced, image: unsurfaced.png }
+  - { min_zoom: 13, max_zoom: 18, name: track, image: track.png }
+  - { min_zoom: 13, max_zoom: 18, name: byway, image: byway.png }
+  - { min_zoom: 13, max_zoom: 18, name: bridleway, image: bridleway.png }
+  - { min_zoom: 13, max_zoom: 18, name: cycleway, image: cycleway.png }
+  - { min_zoom: 13, max_zoom: 18, name: footway, image: footway.png }
+  - { min_zoom: 8, max_zoom: 18, name: rail, image: rail.png }
+  - { min_zoom: 13, max_zoom: 18, name: subway, image: subway.png }
+  - { min_zoom: 13, max_zoom: 18, name: tram, image: tram.png }
+  - { min_zoom: 0, max_zoom: 18, name: admin, image: admin.png }
+  - { min_zoom: 9, max_zoom: 18, name: forest, image: forest.png }
+  - { min_zoom: 10, max_zoom: 18, name: wood, image: wood.png }
+  - { min_zoom: 10, max_zoom: 18, name: park, image: park.png }
+  - { min_zoom: 8, max_zoom: 18, name: resident, image: resident.png }
+  - { min_zoom: 10, max_zoom: 18, name: tourist, image: tourist.png }
+  - { min_zoom: 10, max_zoom: 18, name: common, image: common.png }
+  - { min_zoom: 10, max_zoom: 18, name: retail, image: retail.png }
+  - { min_zoom: 10, max_zoom: 18, name: industrial, image: industrial.png }
+  - { min_zoom: 10, max_zoom: 18, name: commercial, image: commercial.png }
+  - { min_zoom: 10, max_zoom: 18, name: heathland, image: heathland.png }
+  - { min_zoom: 7, max_zoom: 18, name: lake, image: lake.png }
+  - { min_zoom: 10, max_zoom: 18, name: farm, image: farm.png }
+  - { min_zoom: 10, max_zoom: 18, name: brownfield, image: brownfield.png }
+  - { min_zoom: 11, max_zoom: 18, name: cemetery, image: cemetery.png }
+  - { min_zoom: 11, max_zoom: 18, name: allotments, image: allotments.png }
+  - { min_zoom: 11, max_zoom: 18, name: pitch, image: pitch.png }
+  - { min_zoom: 11, max_zoom: 18, name: centre, image: centre.png }
+  - { min_zoom: 11, max_zoom: 18, name: reserve, image: reserve.png }
+  - { min_zoom: 11, max_zoom: 18, name: military, image: military.png }
+  - { min_zoom: 12, max_zoom: 18, name: school, image: school.png }
+  - { min_zoom: 12, max_zoom: 18, name: building, image: building.png }
+  - { min_zoom: 12, max_zoom: 18, name: station, image: station.png }
+  - { min_zoom: 12, max_zoom: 18, name: summit, image: summit.png }
index c4b60d567706a3fbf2957154c0391c02ee9d9a90..28e4f597f07d0deaa441408452be5e792bc0ccad 100644 (file)
@@ -1,14 +1,18 @@
-intro: "Nous vous remercions de votre intérêt pour la base de données géographiques du projet OpenStreetMap (« le Projet ») et pour votre volonté d’y intégrer des données et/ou tout autre contenu (collectivement « les Contenus »). Cet accord de contribution (« l’Accord ») est conclu entre vous (ci-après « Vous ») et la Fondation OpenStreetMap (« OSMF ») et a pour objectif de définir l’étendue des droits de propriété intellectuelle relatifs aux Contenus que vous déciderez de soumettre au Projet."
+intro: "Nous vous remercions de votre intérêt pour la base de données géographiques du projet OpenStreetMap (« le Projet ») et pour votre volonté d’y intégrer des données et/ou tout autre contenu (collectivement « les Contenus »). Cet accord de contribution (« l’Accord ») est conclu entre vous (ci-après « Vous ») et la Fondation OpenStreetMap (« OSMF ») et a pour objectif de définir l’étendue des droits de propriété intellectuelle relatifs aux Contenus que vous déciderez de soumettre au Projet avec ce compte utilisateur." 
 next_with_decline: "Lisez attentivement les articles suivants et si vous en acceptez les termes, cliquez sur le bouton « J’accepte » en bas de la page afin de continuer."
-next_without_decline: "Lisez attentivement les articles du contrat. Si vous acceptez les termes du contrat, cliquez sur \"j'accepte\", sinon retournez à la page précédente ou fermer cette fenêtre."
-section_1: "Dans le cas où des Contenus comprennent des éléments soumis à un droit d’auteur, Vous acceptez de n’ajouter que des Contenus dont Vous possédez la propriété intellectuelle. Vous garantissez le fait que Vous êtes légalement habilité à octroyer une licence telle que définie à l’Article 2 des Présentes et que cette licence ne contrevient à aucune loi, à aucune disposition contractuelle ni, à votre connaissance, à aucun droit d’un tiers. Si Vous n’êtes pas détenteur des droits de propriété intellectuelle, Vous devez garantir le fait que vous avez obtenu l’accord exprès et préalable d’utiliser les droits de propriété intellectuelle afférents au Contenu et de concéder une licence d’utilisation de ce Contenu."
-section_2: "Droits concédés. Vous concédez à OSMF, dans les conditions définies à l’article 3, de manière irrévocable et perpétuelle, une licence internationale, non soumise aux droits patrimoniaux d’auteur et non exclusive, portant sur tout acte relatif au Contenu, quel que soit le support. La concession porte notamment sur une éventuelle utilisation commerciale du Contenu ainsi que sur le droit de sous-licencier l’ensemble des contributions à des tiers ou sous-traitants. Vous acceptez de ne pas user de votre droit moral à l’encontre de OSMF ou de ses sous-traitants si la loi ou les conventions vous donne un tel droit relativement aux Contenus."
-section_3: "OSMF consent à utiliser ou sous-licencier votre Contenu comme partie de la base de données et seulement par le biais d’une des licences suivantes : ODbL 1.0 pour la base de données et DbCL 1.0 pour les contenus individuels de la base de données ; CC-BY-SA 2.0 ; ou toute autre licence libre et ouverte choisie à la majorité par vote des membres OSMF puis adoptée par une majorité de 2/3 des contributeurs actifs."
+introduction: "Introduction"
+section_1: "Parce que nous respectons les droits relatifs à la propriété intellectuelle de toute personne et qu’il s’avère indispensable que nous soyons à même de répondre à toute contestation de titulaire de droits de propriété intellectuelle:"
+section_1a: "Votre apport de données ne doit pas porter atteinte aux droit des tiers. Dans le cas d’un apport de Contenus, Vous garantissez le fait que, à votre connaissance, Vous êtes habilité à autoriser OSMF à utiliser et diffuser ces Contenus selon les conditions de notre licence. Si vous n’êtes pas habilité, vous risquez de voir votre apport effacé. (cf. alinéa b)"  
+section_1b: "Nous vous rappelons que OSMF n’a pas l’obligation d’inclure les Contenus de Vos contributions au Projet et qu’OSMF peut à tout moment supprimer Vos contributions. Ainsi, s’il existe des suspicions d’incompatibilité d’une quelconque donnée  (empêchant donc la poursuite en toute légalité de sa diffusion) avec l’une des licences utilisées ou toute autre licence (voir modalités évoquées aux articles 3 et 4) il sera possible d’effacer cette donnée."
+rights_granted: "Droits concédés"
+section_2: "Vous concédez à OSMF, dans les conditions définies aux articles 3 et 4, de manière irrévocable et perpétuelle, une licence internationale, non exclusive et non soumise aux droits patrimoniaux d’auteur, aux droits des auteurs de bases de données ou à tout autre droit, relatif à un élément du Contenu, quel que soit le support. La concession porte notamment sur une éventuelle utilisation commerciale du Contenu ainsi que sur le droit de sous-licencier l’ensemble des contributions à des tiers ou sous-traitants. Vous acceptez de ne pas user de votre droit moral à l’encontre de OSMF ou de ses sous-traitants si la loi ou les conventions vous donne un tel droit relativement aux Contenus."
+section_3: "OSMF consent à n’utiliser ou sous-licencier votre Contenu que comme partie de la base de données et seulement par le biais d’une ou des licences suivantes : ODbL 1.0 pour la base de données et DbCL 1.0 pour les contenus individuels de la base de données ; CC-BY-SA 2.0 ; ou toute autre licence libre et ouverte de même type (comme, par exemple, http://www.opendefinition.org/okd/) qui pourra être ponctuellement choisie par une majorité de 2/3 des contributeurs actifs parmi les membres d’OSMF."
 active_defn_1: "Un contributeur actif est défini comme suit:"
-active_defn_2: "Une personne physique (utilisant un ou plusieurs comptes, agissant pour son compte ou au nom d’un tiers pouvant être une société) qui, ayant une adresse email valide dans son profil enregistré a, dans 3 des 12 derniers mois, modifié le Projet, ce qui démontre ainsi son intérêt réel et renouvelé dans le projet et qui, lorsqu’elle est sollicitée répond dans un délai maximal de 3 semaines."
-section_4: "OSMF accepte de Vous citer ou de citer le titulaire des droits d’auteur, selon Votre souhait ou celui du titulaire des droits. Le procédé d'attribution sera fourni ultérieurement. Actuellement, il s'agit de la <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">page web</a>."
+active_defn_2: "Une personne physique (utilisant un ou plusieurs comptes, agissant pour son compte ou au nom d’un tiers pouvant être une société) qui, ayant une adresse email valide dans son profil enregistré a, dans 3 des 12 derniers mois, modifié le Projet, ce qui démontre ainsi son intérêt réel et renouvelé dans le projet et qui, lorsqu’elle est sollicitée pour voter répond dans un délai maximal de 3 semaines."
+section_4: "OSMF accepte de Vous citer ou de citer le titulaire des droits d’auteur, selon Votre souhait ou celui du titulaire des droits. La citation s’effectue par le biais de la page web <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">http://wiki.openstreetmap.org/wiki/Attribution</a>."
 section_5: "Nonobstant les cas prévus dans les Présentes, Vous conservez les droits et intérêts à agir relatifs à vos Contenus."
-section_6: "Limitation de responsabilité"
-section_6_1: "A l’exception des garanties prévues  à l’Article 1 des Présentes et dans les limites permises par la loi, Vous fournissez les Contenus en l’état sans aucune garantie d’aucune sorte, expresse ou tacite, notamment sans garantie de valeur commerciale, d’adéquation à un usage ou à besoin quelconque."
-section_6_2: "En cas de responsabilité ne pouvant être limitée ou exclue par la loi, aucun préjudice particulier, indirect ou punitif, lorsque ces termes s’appliquent, ne pourra Vous être imputé ou être imputé à OSMF dans le cadre de cet Accord. Cette limitation de responsabilité s’applique même si chaque Partie était avisée de la possibilité de réalisation d’un tel dommage."
-section_7: "Divers. Cet Accord est régi par le Droit Anglais, nonobstant les règles en vigueur relatives aux conflits de Lois. Vous convenez que la Convention des Nations Unies sur les Ventes Internationales de Marchandises de 1980 est intégralement inapplicable à cet Accord. Cet Accord entre Vous et OSMF remplace et annule tout accord antérieur, qu’il soit oral ou écrit, concernant l’objet de cet Accord."
+limitation_of_liability: "Limitation de responsabilité"
+section_6: "Dans les limites permises par la loi, Vous fournissez les Contenus en l’état sans aucune garantie d’aucune sorte, expresse ou tacite, notamment sans garantie de valeur commerciale, d’adéquation à un usage ou à besoin quelconque."
+section_7: "En cas de responsabilité ne pouvant être limitée ou exclue par la loi, aucun préjudice particulier, indirect ou punitif, lorsque ces termes s’appliquent, ne pourra Vous être imputé ou être imputé à OSMF dans le cadre de cet Accord. Cette limitation de responsabilité s’applique même si chaque Partie était avisée de la possibilité de réalisation d’un tel dommage."
+miscellaneous: "Divers"
+section_8: "Cet Accord est régi par le Droit Anglais, nonobstant les règles en vigueur relatives aux conflits de Lois. Vous convenez que la Convention des Nations Unies sur les Ventes Internationales de Marchandises de 1980 est intégralement inapplicable à cet Accord. Cet Accord entre Vous et OSMF remplace et annule tout accord antérieur, qu’il soit oral, écrit, ou tacite, concernant l’objet de cet Accord."
index 76ccdf5670715aaada6d6893d85817a999979ca2..e4a25f70f5e6e19421c2802716421a60462eef18 100644 (file)
@@ -1,14 +1,19 @@
-intro: "Thank you for your interest in contributing data and/or any other content (collectively, 'Contents') to the geo-database of the OpenStreetMap project (the 'Project'). This contributor agreement (the 'Agreement') is made between you ('You') and The OpenStreetMap Foundation ('OSMF') and clarifies the intellectual property rights in any Contents that You choose to submit to the Project."
+intro: "Thank you for your interest in contributing data and/or any other content (collectively, 'Contents') to the geo-database of the OpenStreetMap project (the 'Project'). This contributor agreement (the 'Agreement') is made between you ('You') and The OpenStreetMap Foundation ('OSMF') and clarifies the intellectual property rights in any Contents that You choose to submit to the Project in this user account."
 next_with_decline: "Please read the following terms and conditions carefully and click either the 'Accept' or 'Decline' button at the bottom to continue."
-next_without_decline: "Please read the following terms and conditions carefully. If you agree, click the 'Accept'  button at the bottom to continue.  Otherwise, use your browser's Back button or just close this page."
-section_1: "You agree to only add Contents for which You are the copyright holder (to the extent the Contents include any copyrightable elements). You represent and warrant that You are legally entitled to grant the licence in Section 2 below and that such licence does not violate any law, breach any contract, or, to the best of Your knowledge, infringe any third party’s rights. If You are not the copyright holder of the Contents, You represent and warrant that You have explicit permission from the rights holder to submit the Contents and grant the licence below."
-section_2: "Rights granted. Subject to Section 3 below, You hereby grant to OSMF a worldwide, royalty-free, non-exclusive, perpetual, irrevocable licence to do any act that is restricted by copyright over anything within the Contents, whether in the original medium or any other. These rights explicitly include commercial use, and do not exclude any field of endeavour. These rights include, without limitation, the right to sublicense the work through multiple tiers of sublicensees.  To the extent allowable under applicable local laws and copyright conventions, You also waive and/or agree not to assert against OSMF or its licensees any moral rights that You may have in the Contents."
-section_3: "OSMF agrees to use or sub-license Your Contents as part of a database and only under the terms of one of the following licences: ODbL 1.0 for the database and DbCL 1.0 for the individual contents of the database; CC-BY-SA 2.0; or another free and open licence. Which other free and open licence is chosen by a vote of the OSMF membership and approved by at least a 2/3 majority vote of active contributors."
+introduction: "Introduction"
+section_1: "We respect the intellectual property rights of others and we need to be able to respond to any objections by intellectual property owners. This means that:"
+section_1a: "Your contribution of data should not infringe the intellectual property rights of anyone else. If you contribute Contents, You are indicating that, as far as You know, You have the right to authorize OSMF to use and distribute those Contents under our current licence terms.  If You do not have that right, You risk having Your contribution deleted (see below)."
+section_1b: "Please note that OSMF does not have to include Contents You contribute in the Project, and may remove Your contributions from the Project at any time.  For example, if we suspect that any contributed data is incompatible, (in the sense that we could not continue to lawfully distribute it), with whichever licence or licences we are then using (see sections 3 and 4), then we may delete that data."
+rights_granted: "Rights Granted"
+section_2: "Subject to Section 3 and 4 below, You hereby grant to OSMF a worldwide, royalty-free, non-exclusive, perpetual, irrevocable licence to do any act that is restricted by copyright, database right or any related right over anything within the Contents, whether in the original medium or any other. These rights explicitly include commercial use, and do not exclude any field of endeavour. These rights include, without limitation, the right to sub-license the work through multiple tiers of sub-licensees and to sue for any copyright violation directly connected with OSMF's rights under these terms.  To the extent allowable under applicable local laws and copyright conventions, You also waive and/or agree not to assert against OSMF or its licensees any moral rights that You may have in the Contents."
+section_3: "OSMF agrees that it may only use or sub-license Your Contents as part of a database and only under the terms of one or more of the following licences: ODbL 1.0 for the database and DbCL 1.0  for the individual contents of the database; CC-BY-SA 2.0; or such other free and open licence (for example, http://www.opendefinition.org/okd/) as may from time to time be chosen by a vote of the OSMF membership and approved by at least a 2/3 majority vote of active contributors."
 active_defn_1: "An 'active contributor' is defined as:"
-active_defn_2: "a natural person (whether using a single or multiple accounts) who has edited the Project in any 3 calendar months from the last 12 months (i.e. there is a demonstrated interest over time); and has maintained a valid email address in their registration profile and responds within 3 weeks."
-section_4: "At Your or the copyright holder’s option, OSMF agrees to attribute You or the copyright holder. A mechanism will be provided, currently a <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">web page</a>."
+active_defn_2: "a natural person (whether using a single or multiple accounts) who has edited the Project in any three calendar months from the last 12 months (i.e. there is a demonstrated interest over time); and has maintained a valid email address in their registration profile and responds  to a request to vote within 3 weeks."
+section_4: "At Your or the copyright owner’s option, OSMF agrees to attribute You or the copyright owner. A mechanism will be provided, currently a web page <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">http://wiki.openstreetmap.org/wiki/Attribution</a>."
 section_5: "Except as set forth herein, You reserve all right, title, and interest in and to Your Contents."
-section_6: "Limitation of Liability"
-section_6_1: "To the extent permitted by applicable law, except as provided above in Section 1, You provide the Contents 'as is' without warranty of any kind, either express or implied, including without limitation any warranties or conditions of merchantability, fitness for a particular purpose, or otherwise."
-section_6_2: "Subject to any liability that may not be excluded or limited by law, neither You nor OSMF shall be liable for any special, indirect, incidental, consequential, punitive, or exemplary damages under this Agreement, however caused and under any theory of liability. This exclusion applies even if either party has been advised of the possibility of such damages."
-section_7: "Miscellaneous. This Agreement shall be governed by English law without regard to principles of conflict of law. You agree that the United Nations Convention on Contracts for the International Sale of Goods (1980) is hereby excluded in its entirety from application to this Agreement. In the event of invalidity of any provision of this Agreement, the parties agree that such invalidity shall not affect the validity of the remaining portions of this Agreement. This is the entire agreement between You and OSMF which supersedes any prior agreement, whether written or oral, relating to the subject matter of this agreement."
+limitation_of_liability: "Limitation of Liability"
+section_6: "To the extent permitted by applicable law, You provide the Contents 'as is' without warranty of any kind, either express or implied, including without limitation any warranties or conditions of merchantability, fitness for a particular purpose, or otherwise."
+section_7: "Subject to any liability that may not be excluded or limited by law, neither You nor OSMF shall be liable for any special, indirect, incidental, consequential, punitive, or exemplary damages under this Agreement, however caused and under any theory of liability. This exclusion applies even if either party has been advised of the possibility of such damages."
+miscellaneous: "Miscellaneous"
+section_8: "This Agreement shall be governed by English law without regard to principles of conflict of law. You agree that the United Nations Convention on Contracts for the International Sale of Goods (1980) is hereby excluded in its entirety from application to this Agreement. In the event of invalidity of any provision of this Agreement, the parties agree that such invalidity shall not affect the validity of the remaining portions of this Agreement. This is the entire agreement between You and OSMF which supersedes any prior agreement, whether written, oral or other, relating to the subject matter of this agreement."
+
index 22ac90322c7db543ba89ce5b4c23f5b6ada228a9..1c046d5adc97159a94dbfedc76678d5d88025feb 100644 (file)
@@ -1,15 +1,17 @@
 intro: "Ti ringraziamo per la tua disponibilità a fornire dati e/o qualunque altro contenuto (di seguito indicati collettivamente “Contenuti”) al database geografico del progetto OpenStreetMap (di seguito “Progetto”).. Il presente accordo per la contribuzione di dati (di seguito “Accordo”) si conclude fra Te e la OpenStreetMap Foundation (“OSMF”) e disciplina i diritti sui Contenuti che Tu decidi di apportare al progetto."
 next_with_decline: "Leggi per favore le seguenti condizioni generali e premi il tasto “Accetto” o “Rifiuto” posto in fondo al testo per proseguire."
-next_without_decline: "Si prega di leggere attentamente i seguenti termini e condizioni. Se siete d'accordo, fare clic sul pulsante 'Agree' in basso, al fine di continuare. In caso contrario, utilizzare il tasto 'Indietro' del browser web o semplicemente chiudere questa pagina."
+introduction: "Introduzione"
 section_1: "Sei impegnato ad apportare esclusivamente contenuti rispetto ai quali Tu sia titolare dei relativi diritti di autore (nella misura in cui i Contenuti riguardino dati o elementi suscettibili di protezione secondo il diritto di autore). Tu dichiari e garantisci di poter validamente concedere la licenza di cui al successivo Articolo 2 e dichiari e garantisci altresì che tale licenza non viola nessuna legge e/o nessun contratto e, per quanto sia di Tua conoscenza, non viola alcun diritto di terzi. Nel caso Tu non sia titolare dei diritti di autore rispetto ai Contenuti, Tu dichiari e garantisci di avere ricevuto del titolare di tali diritti l’espressa autorizzazione di apportare i Contenuti e concederne la licenza di cui al successivo punto 2."
-section_2: "Diritti concessi. Con il presente Accordo Tu, nei limiti di cui al successivo punto 3, concedi a OSMF in via NON esclusiva una licenza gratuita, valida su tutto il territorio mondiale e di carattere perpetuo e irrevocabile a compiere qualunque atto riservato ai titolari dei diritti di autore sopra i Contenuti e/o qualunque loro singola parte,  da effettuarsi su qualunque supporto e mezzo di comunicazione ivi compresi quelli ulteriori e diversi rispetto all’originale."
+rights_granted: "Diritti concessi"
+section_2: "Con il presente Accordo Tu, nei limiti di cui al successivo punto 3, concedi a OSMF in via NON esclusiva una licenza gratuita, valida su tutto il territorio mondiale e di carattere perpetuo e irrevocabile a compiere qualunque atto riservato ai titolari dei diritti di autore sopra i Contenuti e/o qualunque loro singola parte,  da effettuarsi su qualunque supporto e mezzo di comunicazione ivi compresi quelli ulteriori e diversi rispetto all’originale."
 section_3: "OSMF userà o concederà in sub-licenza i tuoi Contenuti come parte di un database e solamente nel rispetto di una di queste licenze: ODbl 1.0 per quanto riguarda il database e DdCL 1.0 per i contenuti individuali del database; CC-BY-SA 2.0; o una altra licenza gratuita e di carattere aperto. I membri di OMSF potranno scegliere altre licenze gratuite e di carattere aperto, le quali saranno si intenderanno approvate con il voto della maggioranza dei 2/3 dei voti dei contributori attivi."
 active_defn_1: "Per “contributore attivo” deve intendersi:"
 active_defn_2: "una persona fisica (indipendentemente dal fatto che usi uno o più account) con i seguenti requisiti cumulativi: 1) che negli ultimi dodici mesi ha fornito in almeno tre diverse circostanze verificatesi in tre diversi mesi propri Contenuti pubblicati nel Progetto (dimostrando così un interesse continuato nel tempo); 2) che ha sempre mantenuto un valido indirizzo email nel suo profilo di registrazione rispondendo a eventuali messaggi entro tre settimane dal loro invio."
 section_4: "OSMF riconoscerà  la esistenza dei diritti di autore sui Contenuti apportati, e a tal fine indicherà Te o il loro eventuale titolare originario, a scelta di quest’ultimo o Tua. In questo senso verrà attuato un apposito meccanismo di attribuzione, che al momento risulta dalla <a href=\"http://wiki.openstreetmap.org/wiki/Attribution\">pagina web</a>."
 section_5: "Salvo quanto stabilito nel presente Accordo, Tu conservi ogni eventuale altro diritto o prerogativa relativa ai Contenuti da Te apportati."
-section_6: "Limitazione di responsabilità"
-section_6_1: "Nei limiti consentiti dalla legge applicabile, e senza pregiudizio a quanto previsto dal precedente articolo 1; Tu fornisci i Contenuti senza garanzie esplicite o implicite di nessun tipo per quanto riguarda – a titolo esemplificativo – la loro qualità, assenza di vizi o difetti, adeguatezza e conformità al loro scopo o altro."
-section_6_2: "Fatte salve le responsabilità che la legge non permette di escludere o derogare, né Tu né OSMF potranno intendersi responsabili di eventuali danni, siano essi diretti o indiretti, a titolo contrattuale o extracontrattuale, morali o materiali, e a qualunque genere essi appartengano. La presente esclusione di responsabilità sarà valida anche nel caso in cui una delle parti sia stata avvertita della possibilità che tali danni si verifichino."
-section_7: "Varie. Il presente Accordo è disciplinato dalla legge vigente in Inghilterra – Regno Unito, senza possibilità di applicazione delle relative norme di diritto internazionale privato. Si conviene espressamente che al presente Accordo non potrà essere applicata la Convenzione delle Nazioni Unit."
+limitation_of_liability: "Limitazione di responsabilità"
+section_6: "Nei limiti consentiti dalla legge applicabile, e senza pregiudizio a quanto previsto dal precedente articolo 1; Tu fornisci i Contenuti senza garanzie esplicite o implicite di nessun tipo per quanto riguarda – a titolo esemplificativo – la loro qualità, assenza di vizi o difetti, adeguatezza e conformità al loro scopo o altro."
+section_7: "Fatte salve le responsabilità che la legge non permette di escludere o derogare, né Tu né OSMF potranno intendersi responsabili di eventuali danni, siano essi diretti o indiretti, a titolo contrattuale o extracontrattuale, morali o materiali, e a qualunque genere essi appartengano. La presente esclusione di responsabilità sarà valida anche nel caso in cui una delle parti sia stata avvertita della possibilità che tali danni si verifichino."
+miscellaneous: "Varie"
+section_8: "Il presente Accordo è disciplinato dalla legge vigente in Inghilterra – Regno Unito, senza possibilità di applicazione delle relative norme di diritto internazionale privato. Si conviene espressamente che al presente Accordo non potrà essere applicata la Convenzione delle Nazioni Unit."
 
index 0bd7d1fd1be45e8455bb333fa2a907348637fdc1..61d5a7d024a54e2577152cc5cebd923769d5a1d0 100644 (file)
@@ -1,6 +1,6 @@
 # Messages for Afrikaans (Afrikaans)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: Firefishy
 # Author: Naudefj
 # Author: Nroets
@@ -471,7 +471,6 @@ af:
           tower: Toring
           train_station: Spoorwegstasie
           university: Universiteitsgebou
-          "yes": Gebou
         highway: 
           bridleway: Ruiterpad
           bus_stop: Bushalte
@@ -779,11 +778,7 @@ af:
     make_a_donation: 
       text: Maak 'n donasie
       title: Ondersteun OpenStreetMap met'n geldelike donasie
-    news_blog: Nuusjoernale
-    news_blog_tooltip: Nuusjoernaal oor OpenStreetMap, vrye geografiese data, ensovoorts.
     osm_read_only: Die OpenStreetMap-databasis kan op die oomblik slegs gelees word aangesien noodsaaklik onderhoud tans uitgevoer word.
-    shop: Winkel
-    shop_tooltip: Winkel met OpenStreetMap-produkte
     sign_up: registreer
     sign_up_tooltip: Skep 'n rekening vir wysigings
     tag_line: Die vrye wiki-wêreldkaart
@@ -1026,7 +1021,6 @@ af:
           unclassified: Ongeklassifiseerde pad
           unsurfaced: Grondpad
           wood: Bos
-        heading: Sleutel vir z{{zoom_level}}
     search: 
       search: Soek
       search_help: "voorbeelde: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ', or 'post offices near Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>meer voorbeelde...</a>"
index 529cbd7aa152947b3a4dca9efbb23f1308178981..ae377f69692b4fa31d59803ce30ffee2484a3e43 100644 (file)
@@ -1,6 +1,6 @@
 # Messages for Gheg Albanian (Gegë)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: Albiona
 # Author: Alket
 # Author: Ardian
@@ -552,7 +552,6 @@ aln:
           tower: Kullë
           train_station: Stacion hekurudhor
           university: Universiteti për ndërtim
-          "yes": Ndërtesë
         highway: 
           bridleway: Rruge pa osfallt
           bus_guideway: Lane udhëzoi Autobuseve
@@ -906,12 +905,8 @@ aln:
     make_a_donation: 
       text: Bëni një donacion
       title: OpenStreetMap Mbështetje me një donacion monetar
-    news_blog: Lajme blog
-    news_blog_tooltip: blog Lajmet rreth OpenStreetMap, të dhëna pa pagesë gjeografike, etj
     osm_offline: Baza e të dhanave të OpenStreetMap niher për niher jasht funksioni derisa disa punë themelore po kryhen në bazën e të dhanave.
     osm_read_only: Baza e të dhënave OpenStreetMap është aktualisht në mënyrë read-only ndërsa thelbësor bazës së të dhënave mirëmbajtjen puna është kryer.
-    shop: Dyqan
-    shop_tooltip: Dyqan me mallra të markës OpenStreetMap
     sign_up: regjistrohu
     sign_up_tooltip: Krijo një llogari për përpunim
     tag_line: Free Harta Wiki Botërore
@@ -1233,7 +1228,6 @@ aln:
           unclassified: Udhë e paklasifikume
           unsurfaced: rrugë Unsurfaced
           wood: Druri
-        heading: Legjenda për z{{zoom_level}}
     search: 
       search: Kërko
       search_help: "shembuj: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ', ose 'zyrat e postës pranë Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>shembuj më shumë ...</a>"
@@ -1381,7 +1375,6 @@ aln:
       update home location on click: Ndryshoma venin kur të klikoj në hart?
     confirm: 
       button: Konfirmo
-      failure: Ni akount i shfrytzuesit me ket token veqse osht i konfirmum.
       heading: Konfirmo nje akount te shfrytezuesit
       press confirm button: Shtype butonin e konfirmimit ma posht që me mujt me aktivizue akountin e juej
       success: Akounti juaj u konfirmua, ju falemnderit për regjistrim!
index 2240f320edd7abd9d96b65b4002f76337a196b72..01492eb3a3c6688a0a6317acd3fd5844177567ee 100644 (file)
@@ -1,12 +1,13 @@
 # Messages for Arabic (العربية)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: Aude
 # Author: Bassem JARKAS
 # Author: Grille chompa
 # Author: Majid Al-Dharrab
 # Author: Mutarjem horr
 # Author: OsamaK
+# Author: ترجمان05
 ar: 
   activerecord: 
     attributes: 
@@ -222,6 +223,7 @@ ar:
           node: عقدة
           way: طريق
       private_user: مستخدم الخاص
+      show_areas: أظهر المناطق
       show_history: أظهر التاريخ
       unable_to_load_size: "غير قادر على التحميل: حجم مربع الإحاطة [[bbox_size]] كبير جدًا (يجب أن يكون أصغر من {{max_bbox_size}})"
       wait: انتظر...
@@ -557,7 +559,6 @@ ar:
           tower: برج
           train_station: محطة قطار
           university: مبنى جامعة
-          "yes": مبنى
         highway: 
           bridleway: مسلك خيول
           bus_guideway: مسار خاص للحافلات
@@ -915,12 +916,8 @@ ar:
     make_a_donation: 
       text: تبرع
       title: ادعم خريطة الشارع المفتوحة بهبة نقدية
-    news_blog: مدونة الأخبار
-    news_blog_tooltip: مدونة أخبار حول خريطة الشارع المفتوحة، بيانات جغرافية حرة، وما إلى ذلك.
     osm_offline: حاليًا قاعدة بيانات خريطة الشارع المفتوحة مغلقة بينما يتم الانتهاء من أعمال الصيانة الأساسية لقاعدة البيانات.
     osm_read_only: حاليًا قاعدة بيانات خريطة الشارع المفتوحة في وضع القراءة بينما يتم الانتهاء من أعمال الصيانة الأساسية لقاعدة البيانات.
-    shop: المتجر
-    shop_tooltip: تسوق بضائع داعمة لخريطة الشارع المفتوحة
     sign_up: أنشئ حسابًا
     sign_up_tooltip: أنشئ حسابًا كي تستطيع المساهمة
     tag_line: ويكي خريطة العالم الحرة
@@ -1240,7 +1237,6 @@ ar:
           unclassified: طريق غير مصنّف
           unsurfaced: طريق غير معبد
           wood: غابة
-        heading: الدليل للدرجة {{zoom_level}}
     search: 
       search: ابحث
       search_help: "أمثلة: 'الحرية'، 'شارع الحمراء, بيروت'، 'مدرسة, القاهرة' <a href='http://http://wiki.openstreetmap.org/wiki/Ar:Search?uselang=ar'>المزيد من الأمثلة...</a>"
@@ -1394,7 +1390,6 @@ ar:
       update home location on click: حدّث موقع المنزل عندما أنقر على الخريطة؟
     confirm: 
       button: أكّد
-      failure: حساب مستخدم قد أُكّد سابقًا بهذا النموذج.
       heading: أكّد حساب المستخدم
       press confirm button: اضغط على زر التأكيد أدناه لتنشيط حسابك.
       success: تم تأكيد حسابك، شكرًا للاشتراك!
index 0f7f853ecac9e703f98f44bc75a10357562f741c..e624a273c6f57aa84cc78078f20197cf982bab3a 100644 (file)
@@ -1,6 +1,6 @@
 # Messages for Egyptian Spoken Arabic (مصرى)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: Meno25
 arz: 
   activerecord: 
@@ -528,7 +528,6 @@ arz:
           tower: برج
           train_station: محطه قطار
           university: مبنى جامعة
-          "yes": مبنى
         highway: 
           bridleway: مسلك خيول
           bus_stop: موقف نزول/صعود من/إلى حافلات
@@ -846,12 +845,8 @@ arz:
     make_a_donation: 
       text: تبرع
       title: ادعم خريطه الشارع المفتوحه بهبه نقدية
-    news_blog: مدونه الأخبار
-    news_blog_tooltip: مدونه أخبار حول خريطه الشارع المفتوحه، بيانات جغرافيه حره، وما إلى ذلك.
     osm_offline: حاليًا قاعده بيانات خريطه الشارع المفتوحه مغلقه بينما يتم الانتهاء من أعمال الصيانه الأساسيه لقاعده البيانات.
     osm_read_only: حاليًا قاعده بيانات خريطه الشارع المفتوحه فى وضع القراءه بينما يتم الانتهاء من أعمال الصيانه الأساسيه لقاعده البيانات.
-    shop: المتجر
-    shop_tooltip: تسوق بضائع داعمه لخريطه الشارع المفتوحة
     sign_up: أنشئ حسابًا
     sign_up_tooltip: أنشئ حسابًا كى تستطيع المساهمة
     tag_line: ويكى خريطه العالم الحرة
@@ -1135,7 +1130,6 @@ arz:
           unclassified: طريق غير مصنّف
           unsurfaced: طريق غير معبد
           wood: غابة
-        heading: الدليل للدرجه {{zoom_level}}
     search: 
       search: ابحث
       search_help: "أمثلة: 'الحرية'، 'شارع الحمراء, بيروت'، 'مدرسة, القاهرة' <a href='http://http://wiki.openstreetmap.org/wiki/Ar:Search?uselang=ar'>المزيد من الأمثله...</a>"
@@ -1266,7 +1260,6 @@ arz:
       update home location on click: حدّث موقع المنزل عندما أنقر على الخريطة؟
     confirm: 
       button: أكّد
-      failure: حساب مستخدم قد أُكّد سابقًا بهذه المعلومات.
       heading: أكّد حساب المستخدم
       press confirm button: اضغط على زر التأكيد أدناه لتنشيط حسابك.
       success: تم تأكيد حسابك، شكرًا للاشتراك!
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
new file mode 100644 (file)
index 0000000..f40359c
--- /dev/null
@@ -0,0 +1,804 @@
+# Messages for Asturian (Asturianu)
+# Exported from translatewiki.net
+# Export driver: syck-pecl
+# Author: Xuacu
+ast: 
+  activerecord: 
+    attributes: 
+      diary_comment: 
+        body: Cuerpu
+      diary_entry: 
+        language: Llingua
+        latitude: Llatitú
+        longitude: Llonxitú
+        title: Títulu
+        user: Usuariu
+      friend: 
+        friend: Collaciu
+        user: Usuariu
+      message: 
+        body: Cuerpu
+        recipient: Destinatariu
+        sender: Remitente
+        title: Títulu
+      trace: 
+        description: Descripción
+        latitude: Llatitú
+        longitude: Llonxitú
+        name: Nome
+        public: Públicu
+        size: Tamañu
+        user: Usuariu
+        visible: Visible
+      user: 
+        active: Activu
+        description: Descripción
+        display_name: Nome a amosar
+        email: Corréu
+        languages: Llingües
+        pass_crypt: Contraseña
+    models: 
+      acl: Llista de Control d'Accesu
+      changeset: Conxuntu de cambeos
+      changeset_tag: Etiqueta del conxuntu de cambeos
+      country: País
+      diary_comment: Comentariu del diariu
+      diary_entry: Entrada del diariu
+      friend: Collaciu
+      language: Llingua
+      message: Mensaxe
+      node: Nodu
+      node_tag: Etiqueta del nodu
+      notifier: Avisador
+      old_node: Nodu antiguu
+      old_node_tag: Etiqueta del nodu antiguu
+      old_relation: Rellación antigua
+      old_relation_member: Miembru de la rellación antigua
+      old_relation_tag: Etiqueta de la rellación antigua
+      old_way: Vía antigua
+      old_way_node: Nodu de via antigua
+      old_way_tag: Etiqueta de vía antigua
+      relation: Rellación
+      relation_member: Miembru de la rellación
+      relation_tag: Etiqueta de la rellación
+      session: Sesión
+      trace: Traza
+      tracepoint: Puntu de traza
+      tracetag: Etiqueta de traza
+      user: Usuariu
+      user_preference: Preferencia d'usuariu
+      user_token: Token d'usuariu
+      way: Vía
+      way_node: Nodu de vía
+      way_tag: Etiqueta de vía
+  browse: 
+    changeset: 
+      changeset: "Conxuntu de cambeos: {{id}}"
+      changesetxml: Conxuntu de cambeos XML
+      download: Descargar {{changeset_xml_link}} o {{osmchange_xml_link}}
+      feed: 
+        title: Conxuntu de cambeos {{id}}
+        title_comment: Conxuntu de cambeos {{id}} - {{comment}}
+      osmchangexml: osmChange XML
+      title: Conxuntu de cambeos
+    changeset_details: 
+      belongs_to: "Pertenez a:"
+      bounding_box: "Cuadru de llende:"
+      box: cuadru
+      closed_at: "Zarrao el:"
+      created_at: "Creao el:"
+      has_nodes: 
+        one: "Tien el nodu darréu:"
+        other: "Tien los nodos {{count}} darréu:"
+      has_relations: 
+        one: "Tien la rellación darréu:"
+        other: "Tien les {{count}} rellaciones darréu:"
+      has_ways: 
+        one: "Tien la vía darréu:"
+        other: "Tien les {{count}} víes darréu:"
+      no_bounding_box: Nun se guardó un cuadru de llende pal conxuntu de cambeos.
+      show_area_box: Ver cuadru d'área
+    common_details: 
+      changeset_comment: "Comentariu:"
+      edited_at: "Editao el:"
+      edited_by: "Editao por:"
+      in_changeset: "Nel conxuntu de cambeos:"
+      version: "Versión:"
+    containing_relation: 
+      entry: Rellación {{relation_name}}
+      entry_role: Rellación {{relation_name}} (como {{relation_role}})
+    map: 
+      deleted: Desaniciáu
+      larger: 
+        area: Ver área nun mapa más grande
+        node: Ver nodu nun mapa más grande
+        relation: Ver rellación nun mapa más grande
+        way: Ver la vía nun mapa más grande
+      loading: Cargando…
+    navigation: 
+      all: 
+        next_changeset_tooltip: Conxuntu de cambeos siguiente
+        next_node_tooltip: Nodu siguiente
+        next_relation_tooltip: Rellación siguiente
+        next_way_tooltip: Vía siguiente
+        prev_changeset_tooltip: Conxuntu de cambeos anterior
+        prev_node_tooltip: Nodu anterior
+        prev_relation_tooltip: Rellación anterior
+        prev_way_tooltip: Vía anterior
+      user: 
+        name_changeset_tooltip: Ver les ediciones de {{user}}
+        next_changeset_tooltip: Siguiente edición de {{user}}
+        prev_changeset_tooltip: Edición anterior de {{user}}
+    node: 
+      download: "{{download_xml_link}}, {{view_history_link}} o {{edit_link}}"
+      download_xml: Descargar XML
+      edit: editar
+      node: Nodu
+      node_title: "Nodu: {{node_name}}"
+      view_history: ver historial
+    node_details: 
+      coordinates: "Coordenaes:"
+      part_of: "Parte de:"
+    node_history: 
+      download: "{{download_xml_link}} o {{view_details_link}}"
+      download_xml: Descargar XML
+      node_history: Historial del nodu
+      node_history_title: "Historial del nodu: {{node_name}}"
+      view_details: ver detalles
+    not_found: 
+      sorry: Perdón, el/la {{type}}  con id {{id}} nun se pudo alcontrar.
+      type: 
+        changeset: conxuntu de cambeos
+        node: nodu
+        relation: rellación
+        way: vía
+    paging_nav: 
+      of: de
+      showing_page: Amosando páxina
+    relation: 
+      download: "{{download_xml_link}} o {{view_history_link}}"
+      download_xml: Descargar XML
+      relation: Rellación
+      relation_title: "Rellación: {{relation_name}}"
+      view_history: ver historial
+    relation_details: 
+      members: "Miembros:"
+      part_of: "Parte de:"
+    relation_history: 
+      download: "{{download_xml_link}} o {{view_details_link}}"
+      download_xml: Descargar XML
+      relation_history: Historial de rellación
+      relation_history_title: "Historial de rellación: {{relation_name}}"
+      view_details: ver detalles
+    relation_member: 
+      entry_role: "{{type}} {{name}} como {{role}}"
+      type: 
+        node: nodu
+        relation: Rellación
+        way: Vía
+    start: 
+      manually_select: Seleiciona manualmente un área distinta
+      view_data: Ver datos de la vista actual del mapa
+    start_rjs: 
+      data_frame_title: Datos
+      data_layer_name: Datos
+      details: Detalles
+      drag_a_box: Arrastra un cuadru nel mapa pa seleicionar un área
+      edited_by_user_at_timestamp: Editao por [[user]] el [[timestamp]]
+      hide_areas: Anubrir árees
+      history_for_feature: Historial de [[feature]]
+      load_data: Cargar datos
+      loaded_an_area_with_num_features: "Cargasti un área que contién [[num_features]] carauterístiques. Polo xeneral, los restoladores nun pueden amosar bien esta cantidá de datos. Normalmente los restoladores funcionen meyor amosando menos de 100 carauterístiques al tiempu: d'otra miente se tornen lentos/dexen de responder. Si tas seguru d'amosar los datos, pues facelo calcando nel botón d'abaxo."
+      loading: Cargando…
+      manually_select: Seleiciona manualmente un área distinta
+      object_list: 
+        api: Recuperar esti área de l'API
+        back: Amosar llista d'oxetos
+        details: Detalles
+        heading: Llista d'oxetos
+        history: 
+          type: 
+            node: Nodu [[id]]
+            way: Vía [[id]]
+        selected: 
+          type: 
+            node: Nodu [[id]]
+            way: Vía [[id]]
+        type: 
+          node: Nodu
+          way: Vía
+      private_user: usuariu priváu
+      show_areas: Amosar árees
+      show_history: Ver historial
+      unable_to_load_size: "Nun se pue cargar: El tamañu del cuadru de llende [[bbox_size]] ye demasiao grande (tien de ser menor de {{max_bbox_size}})"
+      wait: Espera...
+      zoom_or_select: Amplía o seleiciona un área del mapa pa velu
+    tag_details: 
+      tags: "Etiquetes:"
+      wiki_link: 
+        key: La páxina wiki de descripción de la etiqueta {{key}}
+        tag: La páxina wiki de descripción de la etiqueta {{key}}={{value}}
+      wikipedia_link: L'artículu {{page}} en Wikipedia
+    timeout: 
+      sorry: Perdón, los datos pa {{type}} con id {{id}}, tardaron demasiao en descargase.
+      type: 
+        changeset: conxuntu de cambeos
+        node: nodu
+        relation: rellación
+        way: vía
+    way: 
+      download: "{{download_xml_link}}, {{view_history_link}} o {{edit_link}}"
+      download_xml: Descargar XML
+      edit: editar
+      view_history: ver historial
+      way: Vía
+      way_title: "Vía: {{way_name}}"
+    way_details: 
+      also_part_of: 
+        one: tamién ye parte de la vía {{related_ways}}
+        other: tamién ye parte de les víes {{related_ways}}
+      nodes: "Nodos:"
+      part_of: "Parte de:"
+    way_history: 
+      download: "{{download_xml_link}} o {{view_details_link}}"
+      download_xml: Descargar XML
+      view_details: ver detalles
+      way_history: Historial de la vía
+      way_history_title: "Historial de la vía: {{way_name}}"
+  changeset: 
+    changeset: 
+      anonymous: Anónimu
+      big_area: (grande)
+      no_comment: (nengún)
+      no_edits: (ensin ediciones)
+      show_area_box: ver cuadru d'área
+      still_editing: (editando entá)
+      view_changeset_details: Ver detalles del conxuntu de cambeos
+    changeset_paging_nav: 
+      next: Siguiente &raquo;
+      previous: "&laquo; Anterior"
+      showing_page: Tas na páxina {{page}}
+    changesets: 
+      area: Área
+      comment: Comentariu
+      id: ID
+      saved_at: Guardao el
+      user: Usuariu
+    list: 
+      description: Cambeos recientes
+      description_bbox: Conxuntos de cambeos en {{bbox}}
+      description_user: Conxuntos de cambeos de {{user}}
+      description_user_bbox: Conxuntos de cambeos de {{user}} en {{bbox}}
+      heading: Conxuntos de cambeos
+      heading_bbox: Conxuntos de cambeos
+      heading_user: Conxuntos de cambeos
+      heading_user_bbox: Conxuntos de cambeos
+      title: Conxuntos de cambeos
+      title_bbox: Conxuntos de cambeos en {{bbox}}
+      title_user: Conxuntos de cambeos de {{user}}
+      title_user_bbox: Conxuntos de cambeos de {{user}} en {{bbox}}
+    timeout: 
+      sorry: Llevó demasiao tiempu baxar la llista de conxuntos de cambeos que pidisti.
+  diary_entry: 
+    diary_comment: 
+      comment_from: Comentariu de {{link_user}} el {{comment_created_at}}
+      confirm: Confirmar
+      hide_link: Anubrir esti comentariu
+    diary_entry: 
+      comment_count: 
+        one: 1 comentariu
+        other: "{{count}} comentarios"
+      comment_link: Comentar esta entrada
+      confirm: Confirmar
+      edit_link: Editar esta entrada
+      hide_link: Anubrir esta entrada
+      posted_by: Unviáu por {{link_user}} el {{created}} en {{language_link}}
+      reply_link: Responder a esta entrada
+    edit: 
+      body: "Cuerpu:"
+      language: "Llingua:"
+      latitude: "Llatitú:"
+      location: "Allugamientu:"
+      longitude: "Llonxitú:"
+      marker_text: Allugamientu de la entrada del diariu
+      save_button: Guardar
+      subject: "Asuntu:"
+      title: Editar entrada del diariu
+      use_map_link: usar mapa
+    feed: 
+      all: 
+        description: Entraes recientes nel diariu d'usuarios d'OpenStreetMap
+        title: Entraes nel diariu d'OpenStreetMap
+      language: 
+        description: Entraes recientes nel diariu d'usuarios d'OpenStreetMap en {{language_name}}
+        title: Entraes nel diariu d'OpenStreetMap en {{language_name}}
+      user: 
+        description: Entraes recientes nel diariu d'OpenStreetMap de {{user}}
+        title: Entraes nel diariu d'OpenStreetMap de {{user}}
+    list: 
+      in_language_title: Entraes del diariu en {{language}}
+      new: Nueva entrada del diariu
+      new_title: Escribir una entrada nueva nel to diariu d'usuariu
+      newer_entries: Entraes más nueves
+      no_entries: Nun hai entraes nel diariu
+      older_entries: Entraes anteriores
+      recent_entries: "Entraes recientes del diariu:"
+      title: Diarios d'usuarios
+      user_title: Diariu de {{user}}
+    location: 
+      edit: Editar
+      location: "Allugamientu:"
+      view: Ver
+    new: 
+      title: Nueva entrada del diariu
+    no_such_entry: 
+      body: Lo siento, nun hai denguna entrada del diariu cola id {{id}}. Comprueba la escritura o si calcasti nun enllaz enquivocáu, seique.
+      heading: "Nun esiste la entrada con id: {{id}}"
+      title: Nun esiste la entrada del diariu
+    no_such_user: 
+      body: Lo siento, nun hai dengún usuariu col nome {{user}}. Comprueba la escritura o si calcasti nun enllaz enquivocáu, seique.
+      heading: L'usuariu {{user}} nun esiste
+      title: Nun esiste l'usuariu
+    view: 
+      leave_a_comment: Dexar un comentariu
+      login: Entrar
+      login_to_leave_a_comment: "{{login_link}} pa dexar un comentariu"
+      save_button: Guardar
+      title: Diariu de {{user}} | {{title}}
+      user_title: Diariu de {{user}}
+  editor: 
+    default: Predetermináu (anguaño {{name}})
+    potlatch: 
+      description: Potlatch 1 (editor nel restolador)
+      name: Potlatch 1
+    potlatch2: 
+      description: Potlatch 2 (editor nel restolador)
+      name: Potlatch 2
+    remote: 
+      description: Control remotu (JOSM o Merkaartor)
+      name: Control remotu
+  export: 
+    start: 
+      add_marker: Amestar un marcador al mapa
+      area_to_export: Área a esportar
+      embeddable_html: HTML empotrable
+      export_button: Esportar
+      export_details: Los datos d'OpenStreetMap tan llicenciaos embaxo la <a href="http://creativecommons.org/licenses/by-sa/2.0/">llicencia Creative Commons Attribution-ShareAlike 2.0</a>.
+      format: Formatu
+      format_to_export: Formatu a esportar
+      image_size: Tamañu d'imaxe
+      latitude: "Llat:"
+      licence: Llicencia
+      longitude: "Llon:"
+      manually_select: Seleiciona manualmente un área distinta
+      mapnik_image: Imaxe de Mapnik
+      max: máx
+      options: Opciones
+      osm_xml_data: Datos XML d'OpenStreetMap
+      osmarender_image: Imaxe d'Osmarender
+      output: Salida
+      paste_html: Pegar el HTML pa empotrar nun sitiu web
+      scale: Escala
+      too_large: 
+        body: Esti área ye abondo grande pa esportase como Datos XML d'OpenStreetMap. Acerca'l mapa o esbilla un área menor.
+        heading: Área demasiao grande
+      zoom: Zoom
+    start_rjs: 
+      add_marker: Amestar un marcador al mapa
+      change_marker: Camudar la posición del marcador
+      click_add_marker: Calca nel mapa p'amestar un marcador
+      drag_a_box: Arrastra un cuadru nel mapa pa seleicionar un área
+      export: Esportar
+      manually_select: Seleiciona manualmente un área distinta
+      view_larger_map: Ver mapa mayor
+  geocoder: 
+    search: 
+      title: 
+        ca_postcode: Resultaos de <a href="http://geocoder.ca/">Geocoder.CA</a>
+        geonames: Resultaos de <a href="http://www.geonames.org/">GeoNames</a>
+        latlon: Resultaos <a href="http://openstreetmap.org/">internos</a>
+        osm_namefinder: Resultaos de <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>
+        osm_nominatim: Resultaos de <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
+        uk_postcode: Resultaos de <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>
+        us_postcode: Resultaos de <a href="http://geocoder.us/">Geocoder.us</a>
+    search_osm_namefinder: 
+      suffix_parent: "{{suffix}} ({{parentdistance}} {{parentdirection}} de {{parentname}})"
+      suffix_place: ", {{distance}} al {{direction}} de {{placename}}"
+    search_osm_nominatim: 
+      prefix: 
+        amenity: 
+          airport: Aeropuertu
+          arts_centre: Centru d'arte
+          atm: Caxeru automáticu
+          auditorium: Auditoriu
+          bank: Bancu
+          bar: Bar
+          bench: Bancu
+          bicycle_parking: Aparcaderu de bicicletes
+          bicycle_rental: Alquiler de bicicletes
+          bureau_de_change: Troquéu de moneda
+          bus_station: Estación d'autobús
+          cafe: Café
+          car_rental: Alquiler de coches
+          car_sharing: Compartir coche
+          car_wash: Llaváu de coches
+          casino: Casino
+          cinema: Cine
+          clinic: Clínica
+          club: Club
+          college: Colexu universitariu
+          community_centre: Centru comunitariu
+          courthouse: Xulgáu
+          crematorium: Crematoriu
+          dentist: Dentista
+          doctors: Ambulatoriu
+          dormitory: Dormitoriu
+          drinking_water: Agua potable
+          driving_school: Autoescuela
+          embassy: Embaxada
+          emergency_phone: Teléfonu d'emerxencia
+          fast_food: Comida rápida
+          ferry_terminal: Terminal de ferry
+          fire_hydrant: Boca d'incendios
+          fire_station: Bomberos
+          fountain: Fonte
+          fuel: Combustible
+          grave_yard: Cementeriu
+          gym: Ximnasiu / Fitness
+          health_centre: Centru de salú
+          hospital: Hospital
+          hotel: Hotel
+          hunting_stand: Puestu de caza
+          ice_cream: Xelaos
+          kindergarten: Guardería
+          library: Biblioteca
+          market: Mercáu
+          marketplace: Mercáu
+          mountain_rescue: Salvamentu nel monte
+          nightclub: Sala de fiestes
+          nursery: Preescolar
+          nursing_home: Residencia asistencial
+          office: Oficina
+          park: Parque
+          parking: Aparcaderu
+          pharmacy: Farmacia
+          place_of_worship: Llugar de cultu
+          police: Policía
+          post_box: Buzón
+          post_office: Oficina de correos
+          preschool: Preescolar
+          prison: Cárcel
+          pub: Pub
+          public_building: Edificiu públicu
+          public_market: Mercáu públicu
+          reception_area: Llugar de recepción
+          recycling: Puntu llimpiu
+          restaurant: Restaurán
+          retirement_home: Residencia de mayores
+          sauna: Sauna
+          school: Escuela
+          shelter: Abellugu
+          shop: Tienda
+          shopping: Compres
+          social_club: Club social
+          studio: Estudiu
+          supermarket: Supermercáu
+          taxi: Taxi
+          telephone: Teléfonu públicu
+          theatre: Teatru
+          toilets: Servicios
+          townhall: Casa conceyu
+          university: Universidá
+          vending_machine: Venta automática
+          veterinary: Ciruxía veterinaria
+          village_hall: Casa de la villa
+          waste_basket: Papelera
+          wifi: Accesu WiFi
+          youth_centre: Centru de mocedá
+        boundary: 
+          administrative: Llende alministrativa
+        building: 
+          apartments: Bloque d'apartamentos
+          block: Bloque de viviendes
+          bunker: Bunker
+          chapel: Capiella
+          church: Ilesia
+          city_hall: Casa del conceyu
+          commercial: Edificiu comercial
+          dormitory: Dormitoriu
+          entrance: Accesu al edificiu
+          faculty: Facultá
+          farm: Casería
+          flats: Pisos
+          garage: Garaxe
+          hospital: Hospital
+          hotel: Hotel
+          house: Casa
+          industrial: Edificiu industrial
+          office: Edificiu d'oficines
+          public: Edificiu públicu
+          residential: Edificiu residencial
+          retail: Edificiu comercial
+          school: Edificiu escolar
+          shop: Tienda
+          stadium: Estadiu
+          store: Almacén
+          terrace: Terraza
+          tower: Torre
+          train_station: Estación de tren
+          university: Edificiu universitariu
+        highway: 
+          bridleway: Caleya
+          bus_guideway: Carril bus con guía
+          bus_stop: Parada d'autobús
+          byway: Camín
+          construction: Carretera'n construcción
+          cycleway: Sienda ciclista
+          distance_marker: Marca de distancia
+          footway: Sienda
+          ford: Vau
+          gate: Puerta
+          living_street: Cai residencial
+          minor: Carretera menor
+          motorway: Autopista
+          motorway_junction: Enllaz d'autopista
+          motorway_link: Autopista
+          path: Camín
+          pedestrian: Vía peatonal
+          platform: Andén
+          primary: Carretera primaria
+          primary_link: Carretera primaria
+          raceway: Pista de carreres
+          residential: Residencial
+          road: Carretera
+          secondary: Carretera secundaria
+          secondary_link: Carretera secundaria
+          service: Carretera de serviciu
+          services: Servicios n'autopista
+          steps: Escaleres
+          tertiary: Carretera terciaria
+          track: Pista
+          trail: Camín
+          trunk: Carretera nacional
+          trunk_link: Carretera nacional
+          unclassified: Carretera ensin clasificar
+          unsurfaced: Carretera ensin asfaltar
+        historic: 
+          archaeological_site: Llugar arqueolóxicu
+          battlefield: Campu de batalla
+          boundary_stone: Finxu
+          building: Edificiu
+          castle: Castiellu
+          church: Ilesia
+          house: Casa
+          icon: Iconu
+          manor: Casona
+          memorial: Monumentu
+          mine: Mina
+          monument: Monumentu
+          museum: Muséu
+          ruins: Ruines
+          tower: Torre
+          wayside_cross: Cruceru
+          wayside_shrine: Ermita
+          wreck: Naufraxu
+        landuse: 
+          allotments: Güertes d'ociu
+          basin: Conca
+          brownfield: Terrén en derribu
+          cemetery: Cementeriu
+          commercial: Área comercial
+          conservation: Conservación
+          construction: Construcción
+          farm: Casería
+          farmland: Tierres de llabor
+          farmyard: Corral
+          forest: Área forestal
+          grass: Yerba
+          greenfield: Plan d'espansión
+          industrial: Área industrial
+          landfill: Vertederu
+          meadow: Prau
+          military: Área militar
+          mine: Mina
+          mountain: Monte
+          nature_reserve: Reserva natural
+          park: Parque
+          piste: Pista
+          plaza: Plaza
+          quarry: Cantera
+          railway: Ferrocarril
+          reservoir: Banzáu
+          residential: Área residencial
+          retail: Área comercial
+          vineyard: Viña
+          wetland: Llamuerga
+          wood: Viesca
+        leisure: 
+          beach_resort: Facilidaes de playa
+          fishing: Área de pesca
+          garden: Xardín
+          golf_course: Campu de golf
+          ice_rink: Pista de xelu
+          marina: Puertu deportivu
+          miniature_golf: Mini golf
+          nature_reserve: Reserva natural
+          park: Parque
+          pitch: Campu deportivu
+          playground: Xuegos infantiles
+          slipway: Rampla de botadura
+          sports_centre: Centru deportivu
+          stadium: Estadiu
+          swimming_pool: Piscina
+          track: Pista de carreres
+          water_park: Parque acuáticu
+        natural: 
+          beach: Playa
+          cape: Cabu
+          cave_entrance: Boca de cueva
+          channel: Canal
+          cliff: Cantil
+          coastline: Llinia de costa
+          crater: Crater
+          fell: Braña
+          fjord: Fiordu
+          geyser: Guéiser
+          glacier: Glaciar
+          heath: Berezal
+          hill: Llomba
+          island: Islla
+          land: Tierra
+          marsh: Llamuerga
+          moor: Amarradera
+          mud: Barru
+          peak: Picu
+          point: Puntu
+          reef: Petón
+          ridge: Cordal
+          river: Ríu
+          rock: Roca
+          scree: Llera
+          scrub: Cotollal
+          shoal: Baxu
+          spring: Fonte
+  license_page: 
+    foreign: 
+      english_link: l'orixinal n'inglés
+      text: En casu d'haber un conflictu ente esta páxina traducida y {{english_original_link}}, la páxina n'inglés tendrá prioridá
+      title: Tocante a esta traducción
+    native: 
+      mapping_link: principiar col mapéu
+      native_link: versión n'asturianu
+      text: Tas viendo la versión n'inglés de la páxina de copyright. Pues tornar a la {{native_link}} d'esta páxina o pues dexar de lleer sobro'l copyright y {{mapping_link}}.
+      title: Tocante a esta páxina
+  time: 
+    formats: 
+      friendly: "%e de %B de %Y a les %H:%M"
+  trace: 
+    create: 
+      trace_uploaded: El to ficheru GPX se xubió y ta esperando p'amestase a la base de datos. De vezu, esto tendría d'asoceder en media hora, y se t'unviará un corréu al completase.
+      upload_trace: Xubir traza GPS
+    delete: 
+      scheduled_for_deletion: Traza marcada pa desaniciar
+    edit: 
+      description: "Descripción:"
+      download: descargar
+      edit: editar
+      filename: "Nome del ficheru:"
+      heading: Editando la traza {{name}}
+      map: mapa
+      owner: "Propietariu:"
+      points: "Puntos:"
+      save_button: Guardar cambeos
+      start_coord: "Coordenada d'aniciu:"
+      tags: "Etiquetes:"
+      tags_help: llendáu con comes
+      title: Editando la traza {{name}}
+      uploaded_at: "Xubida:"
+      visibility: "Visibilidá:"
+      visibility_help: ¿qué ye esto?
+    list: 
+      public_traces: Traces GPS públiques
+      public_traces_from: Traces GPS públiques de {{user}}
+      tagged_with: " etiquetao con {{tags}}"
+      your_traces: Les tos traces GPS
+    make_public: 
+      made_public: Traza fecha pública
+    no_such_user: 
+      body: Lo siento, nun hai dengún usuariu col nome {{user}}. Comprueba la escritura o si calcasti nun enllaz enquivocáu, seique.
+      heading: L'usuariu {{user}} nun esiste
+      title: Nun esiste l'usuariu
+    offline_warning: 
+      message: El sistema pa xubir ficheros GPX nun ta disponible anguaño
+    trace: 
+      ago: hai {{time_in_words_ago}}
+      by: por
+      count_points: "{{count}} puntos"
+      edit: editar
+      edit_map: Editar el Mapa
+      identifiable: IDENTIFICABLE
+      in: en
+      map: mapa
+      more: más
+      pending: PENDIENTE
+      private: PRIVÁU
+      public: PÚBLICU
+      trace_details: Amosar detalles de la traza
+      trackable: RASTREABLE
+      view_map: Ver el Mapa
+    trace_form: 
+      description: Descripción
+      help: Ayuda
+      tags: Etiquetes
+      tags_help: llendáu con comes
+      upload_button: Xubir
+      upload_gpx: Xubir ficheru GPX
+      visibility: Visibilidá
+      visibility_help: ¿qué ye esto?
+    trace_header: 
+      see_all_traces: Ver toles traces
+      see_your_traces: Ver toles tos traces
+      traces_waiting: Tienes {{count}} traces esperando pa xubir. Considera esperar a qu'eses terminen enantes de xubir más, col envís de nun bloquiar la cola pa otros usuarios.
+      upload_trace: Xubir una traza
+      your_traces: Ver namái les tos traces
+    trace_optionals: 
+      tags: Etiquetes
+    trace_paging_nav: 
+      next: Siguiente &raquo;
+      previous: "&laquo; Anterior"
+      showing_page: Tas na páxina {{page}}
+    view: 
+      delete_track: Desaniciar esta traza
+      description: "Descripción:"
+      download: descargar
+      edit: editar
+      edit_track: Editar esta traza
+      filename: "Nome del ficheru:"
+      heading: Amosando la traza {{name}}
+      map: mapa
+      none: Dengunu
+      owner: "Propietariu:"
+      pending: PENDIENTE
+      points: "Puntos:"
+      start_coordinates: "Coordenada d'aniciu:"
+      tags: "Etiquetes:"
+      title: Amosando la traza {{name}}
+      trace_not_found: ¡Nun s'alcontró la traza!
+      uploaded: "Xubida:"
+      visibility: "Visibilidá:"
+    visibility: 
+      identifiable: Identificable (amosar na llista de traces y como identificable, puntos axeitaos con marques d'hora)
+      private: Priváu (compartíu sólo como anónimu, puntos ensin axeitar)
+      public: Públicu (amosar na llista de traces y como anónimu, puntos ensin axeitar)
+      trackable: Rastreable (compartíu sólo como anónimu, puntos axeitaos con marques d'hora)
+  user: 
+    go_public: 
+      flash success: Agora toles ediciones tuyes son públiques, y nun tienes permisu pa editar.
+    lost_password: 
+      email address: "Direición de corréu:"
+      heading: ¿Escaecisti la contraseña?
+      help_text: Escribi les señes de corréu qu'usasti pa date d'alta, t'unviaremos un enllaz que pues usar pa reaniciar la contraseña.
+      new password button: Reaniciar contraseña
+      notice email cannot find: Nun s'alcontró esa direición de corréu.
+      notice email on way: Sentimos que la perdieres :-( pero hai un corréu en camín pa que puedas reaniciala ceo.
+      title: Contraseña perdida
+    terms: 
+      consider_pd_why: ¿Qué ye esto?
+  user_role: 
+    filter: 
+      already_has_role: L'usuariu yá tien el rol {{role}}.
+      doesnt_have_role: L'usuariu nun tien el rol {{role}}.
+      not_a_role: La cadena "{{role}}" nun ye un rol válidu.
+      not_an_administrator: Namái los alministradores pueden xestionar los roles, y nun yes alministrador.
+    grant: 
+      are_you_sure: ¿Seguro que quies da-y el rol "{{role}}" al usuariu "{{name}}"?
+      confirm: Confirmar
+      fail: Nun pues da-y el rol "{{role}}" al usuariu "{{name}}". Comprueba que tanto l'usuariu como'l rol son válidos.
+      heading: Confirmar dar rol
+      title: Confirmar dar rol
+    revoke: 
+      are_you_sure: ¿Seguro que quies quita-y el rol "{{role}}" al usuariu "{{name}}"?
+      confirm: Confirmar
+      fail: Nun pues quita-y el rol "{{role}}" al usuariu "{{name}}". Comprueba que tanto l'usuariu como'l rol son válidos.
+      heading: Confirmar quitar rol
+      title: Confirmar quitar rol
index b41bed97cec5f6cb809d44e1a71345bc74ccbb96..cf07f0b3fe7499e3fedf87a1b4e4b2e0b36e59bc 100644 (file)
-# Messages for Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
+# Messages for Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: EugeneZelenko
 # Author: Jim-by
 # Author: Wizardist
 be-TARASK: 
   activerecord: 
     attributes: 
+      diary_comment: 
+        body: Тэкст
       diary_entry: 
         language: Мова
         latitude: Шырата
         longitude: Даўгата
+        title: Назва
+        user: Удзельнік
+      friend: 
+        friend: Сябар
+        user: Удзельнік
+      message: 
+        body: Тэкст
+        recipient: Атрымальнік
+        sender: Адпраўшчык
+        title: Загаловак
       trace: 
         description: Апісаньне
         latitude: Шырата
         longitude: Даўгата
+        name: Назва
+        public: Публічны
+        size: Памер
+        user: Карыстальнік
+        visible: Бачны
       user: 
+        active: Актыўны
         description: Апісаньне
+        display_name: Бачнае імя
+        email: Электронная пошта
         languages: Мовы
         pass_crypt: Пароль
     models: 
+      acl: Сьпіс абмежаваньня доступу
+      changeset: Набор зьменаў
+      changeset_tag: Тэг набору зьменаў
       country: Краіна
+      diary_comment: Камэнтар у дзёньніку
+      diary_entry: Запіс у дзёньніку
+      friend: Сябар
       language: Мова
+      message: Паведамленьне
       node: Вузел
+      node_tag: Тэг вузла
+      notifier: Абвяшчальнік
+      old_node: Стары вузел
+      old_node_tag: Стары тэг вузла
+      old_relation: Старая сувязь
+      old_relation_member: Стары ўдзельнік сувязі
+      old_relation_tag: Стары тэг сувязі
+      old_way: Старая дарога
+      old_way_node: Вузел старой дарогі
+      old_way_tag: Тэг старой дарогі
+      relation: Сувязь
+      relation_member: Удзельнік сувязі
+      relation_tag: Тэг сувязі
       session: Сэсыя
+      trace: Трэк
+      tracepoint: Пункт трэку
+      tracetag: Тэг трэку
+      user: Карыстальнік
+      user_preference: Налады карыстальніка
+      user_token: Код пацьверджаньня карыстальніка
       way: Шлях
+      way_node: Вузел дарогі
+      way_tag: Тэг дарогі
   browse: 
+    changeset: 
+      changeset: "Набор зьменаў: {{id}}"
+      changesetxml: Набор зьменаў у фармаце XML
+      download: Загрузіць {{changeset_xml_link}} ці {{osmchange_xml_link}}
+      feed: 
+        title: Набор зьменаў {{id}}
+        title_comment: Набор зьменаў {{id}} - {{comment}}
+      osmchangexml: osmChange XML
+      title: Набор зьменаў
+    changeset_details: 
+      belongs_to: "Належыць да:"
+      bounding_box: "Межы абшару:"
+      box: поле
+      closed_at: "Закрыты:"
+      created_at: "Створана:"
+      has_nodes: 
+        one: "Мае наступны {{count}} вузел:"
+        other: "Мае наступныя {{count}} вузлы:"
+      has_relations: 
+        one: "Мае наступную {{count}} сувязь:"
+        other: "Мае наступныя {{count}} сувязі:"
+      has_ways: 
+        one: "Мае наступную {{count}} дарогу:"
+        other: "Мае наступныя {{count}} дарогі:"
+      no_bounding_box: Гэта набор зьменаў быў захаваны без вызначаных межаў.
+      show_area_box: Паказаць выдзелены абшар
     common_details: 
       changeset_comment: "Камэнтар:"
+      edited_at: "Рэдагавалася:"
+      edited_by: "Рэдагавалася:"
+      in_changeset: "У наборы зьменаў:"
       version: "Вэрсія:"
+    containing_relation: 
+      entry: Адносіны {{relation_name}}
+      entry_role: Адносіны {{relation_name}} (як {{relation_role}})
     map: 
       deleted: Выдаленая
       larger: 
+        area: Паказаць абшар на большай мапе
+        node: Паказаць пункт на большай мапе
+        relation: Прагляд адносінаў на большай мапе
         way: Паказаць шлях на большай мапе
       loading: Загрузка…
+    navigation: 
+      all: 
+        next_changeset_tooltip: Наступны набор зьменаў
+        next_node_tooltip: Наступны вузел
+        next_relation_tooltip: Наступныя адносіны
+        next_way_tooltip: Наступная дарога
+        prev_changeset_tooltip: Папярэдні набор зьменаў
+        prev_node_tooltip: Папярэдні вузел
+        prev_relation_tooltip: Папярэднія адносіны
+        prev_way_tooltip: Папярэдняя дарога
+      user: 
+        name_changeset_tooltip: Прагляд рэдагаваньняў {{user}}
+        next_changeset_tooltip: Наступнае рэдагаваньне {{user}}
+        prev_changeset_tooltip: Папярэдняе рэдагаваньне {{user}}
     node: 
+      download: "{{download_xml_link}}, {{view_history_link}} ці {{edit_link}}"
       download_xml: Загрузіць XML
       edit: рэдагаваць
       node: Вузел
@@ -42,18 +140,37 @@ be-TARASK:
       view_history: паказаць гісторыю
     node_details: 
       coordinates: "Каардынаты:"
+      part_of: "Частка:"
     node_history: 
+      download: "{{download_xml_link}} ці {{view_details_link}}"
       download_xml: Загрузіць XML
+      node_history: Гісторыя вузла
+      node_history_title: "Гісторыя пункту: {{node_name}}"
       view_details: паказаць падрабязнасьці
     not_found: 
+      sorry: Прабачце, {{type}} з ідэнтыфікатарам {{id}} ня знойдзены.
       type: 
+        changeset: набор зьменаў
         node: вузел
+        relation: адносіны
         way: шлях
+    paging_nav: 
+      of: з
+      showing_page: Паказ старонкі
     relation: 
+      download: "{{download_xml_link}} ці {{view_history_link}}"
       download_xml: Загрузіць XML
+      relation: Адносіны
+      relation_title: "Адносіны: {{relation_name}}"
       view_history: паказаць гісторыю
+    relation_details: 
+      members: "Элемэнты:"
+      part_of: "Частка:"
     relation_history: 
+      download: "{{download_xml_link}} ці {{view_details_link}}"
       download_xml: Загрузіць XML
+      relation_history: Гісторыя сувязі
+      relation_history_title: "Гісторыя сувязі: {{relation_name}}"
       view_details: паказаць падрабязнасьці
     relation_member: 
       entry_role: "{{type}} {{name}} як {{role}}"
@@ -61,13 +178,26 @@ be-TARASK:
         node: Вузел
         relation: Адносіны
         way: Шлях
+    start: 
+      manually_select: Выбраць іншы абшар
+      view_data: Паказаць зьвесткі для цяперашняга выгляду мапы
     start_rjs: 
       data_frame_title: Зьвесткі
       data_layer_name: Зьвесткі
       details: Падрабязнасьці
+      drag_a_box: Расьцягніце рамку для выбару абшару
+      edited_by_user_at_timestamp: Рэдагаваны [[user]] у [[timestamp]]
+      hide_areas: Схаваць вобласьці
+      history_for_feature: Гісторыя [[feature]]
+      load_data: Загрузіць зьвесткі
+      loaded_an_area_with_num_features: Вы загрузілі мясцовасьць, якая ўтрымлівае [[num_features]] аб'ектаў. Увогуле, некаторыя браўзэры ня змогуць апрацаваць такую колькасьць зьвестак. Звычайна, найлепшы вынік назіраецца, калі аб'ектаў менш за 100, пры большай колькасьці браўзэр можа страціць хуткасьць. Калі Вы ўпэўненыя, што жадаеце паказаць гэтыя зьвесткі, націсьніце кнопку ніжэй.
       loading: Загрузка…
+      manually_select: Выбраць іншы абшар
       object_list: 
+        api: Атрымаць гэты абшар з API
+        back: Паказаць сьпіс аб'ектаў
         details: Падрабязнасьці
+        heading: Сьпіс аб'ектаў
         history: 
           type: 
             node: Вузел [[id]]
@@ -79,9 +209,25 @@ be-TARASK:
         type: 
           node: Вузел
           way: Шлях
-      wait: Пачакайце...
+      private_user: прыватны карыстальнік
+      show_areas: Паказаць вобласьці
+      show_history: Паказаць гісторыю
+      unable_to_load_size: "Немагчыма загрузіць: памер абшару [[bbox_size]] занадта вялікі (павінен быць меней чым {{max_bbox_size}})"
+      wait: Пачакайце…
+      zoom_or_select: Павялічце маштаб ці выберыце абшар на мапе для прагляду
     tag_details: 
       tags: "Меткі:"
+      wiki_link: 
+        key: Старонка вікі, якая апісвае тэг {{key}}
+        tag: Старонка вікі, якая апісвае тэг {{key}}={{value}}
+      wikipedia_link: Артыкул {{page}} у Вікіпэдыі
+    timeout: 
+      sorry: Прабачце, зьвесткі для {{type}} з ідэнтыфікатарам {{id}} занадта доўгія для атрыманьня.
+      type: 
+        changeset: набор зьменаў
+        node: вузел
+        relation: адносіны
+        way: дарога
     way: 
       download: "{{download_xml_link}}, {{view_history_link}} ці {{edit_link}}"
       download_xml: Загрузіць XML
@@ -90,13 +236,32 @@ be-TARASK:
       way: Шлях
       way_title: "Шлях: {{way_name}}"
     way_details: 
+      also_part_of: 
+        one: таксама частка дарогі {{related_ways}}
+        other: таксама частка дарогаў {{related_ways}}
       nodes: "Вузлы:"
       part_of: "Частка:"
     way_history: 
+      download: "{{download_xml_link}} ці {{view_details_link}}"
       download_xml: Загрузіць XML
       view_details: паказаць падрабязнасьці
+      way_history: Гісторыя зьменаў дарогі
       way_history_title: "Гісторыя зьменаў шляху: {{way_name}}"
   changeset: 
+    changeset: 
+      anonymous: Ананім
+      big_area: (вялікі)
+      no_comment: (няма)
+      no_edits: (без рэдагаваньняў)
+      show_area_box: паказаць межы абшару
+      still_editing: (яшчэ рэдагуецца)
+      view_changeset_details: Прагляд падрабязнасьці набору зьменаў
+    changeset_paging_nav: 
+      next: Наступная &raquo;
+      previous: "&laquo; Папярэдняя"
+      showing_page: Паказаная старонка {{page}}
+    changesets: 
+      id: Ідэнтыфікатар
     list: 
       description: Апошнія зьмены
   diary_entry: 
@@ -108,18 +273,85 @@ be-TARASK:
       subject: "Тэма:"
     view: 
       save_button: Захаваць
+  editor: 
+    default: Па змоўчваньні (цяпер {{name}})
+    potlatch: 
+      description: Potlatch 1 (рэдактар у браўзэры)
+      name: Potlatch 1
+    potlatch2: 
+      description: Potlatch 2 (рэдактар у браўзэры)
+      name: Potlatch 2
+    remote: 
+      description: Аддаленае кіраваньне (JOSM ці Merkaartor)
+      name: Аддаленае кіраваньне
   export: 
     start: 
+      add_marker: Дадаць маркер на мапу
+      area_to_export: Абшар для экспарту
+      embeddable_html: HTML-код для ўстаўкі
       export_button: Экспартаваць
+      export_details: Зьвесткі OpenStreetMap даступныя на ўмовах ліцэнзіі <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0</a>.
       format: Фармат
+      format_to_export: Фармат экспарту
+      image_size: "Памер выявы:"
+      latitude: "Шырата:"
       licence: Ліцэнзія
+      longitude: "Даўгата:"
+      manually_select: Выбраць іншы абшар
+      mapnik_image: Выява Mapnik
+      max: максымум
       options: Устаноўкі
+      osm_xml_data: Зьвесткі OpenStreetMap у фармаце XML
+      osmarender_image: Выява Osmarender
+      output: Вывад
+      paste_html: HTML-код для ўстаўкі ў вэб-сайт
+      scale: Маштаб
+      too_large: 
+        body: Гэты абшар занадта вялікі для экспарту ў фармаце XML OpenStreetMap. Калі ласка, зьменшыце маштаб ці выберыце меншы абшар.
+        heading: Абшар занадта вялікі
+      zoom: Маштаб
     start_rjs: 
+      add_marker: Дадаць маркер на мапу
+      change_marker: Зьмяніць пазыцыю маркера
+      click_add_marker: Націсьніце на мапе, каб дадаць маркер
+      drag_a_box: Расьцягніце рамку для выбару абшару
       export: Экспартаваць
+      manually_select: Выбраць іншы абшар
+      view_larger_map: Паказаць большую мапу
+  geocoder: 
+    direction: 
+      east: усход
+      north: поўнач
+      north_east: паўночны ўсход
+      north_west: паўночны захад
+      south: поўдзень
+      south_east: паўднёвы ўсход
+      south_west: паўднёвы захад
+      west: захад
+    search: 
+      title: 
+        ca_postcode: Вынікі з <a href="http://geocoder.ca/">Geocoder.CA</a>
+        geonames: Вынікі з <a href="http://www.geonames.org/">GeoNames</a>
+        latlon: Вынікі з <a href="http://openstreetmap.org/">Internal</a>
+        osm_namefinder: Вынікі з <a href="http://gazetteer.openstreetmap.org/namefinder/">OpenStreetMap Namefinder</a>
+        osm_nominatim: Вынікі з <a href="http://nominatim.openstreetmap.org/">OpenStreetMap Nominatim</a>
+        uk_postcode: Вынікі з <a href="http://www.npemap.org.uk/">NPEMap / FreeThe Postcode</a>
+        us_postcode: Вынікі з <a href="http://geocoder.us/">Geocoder.us</a>
   layouts: 
     edit: Рэдагаваць
     export: Экспартаваць
     history: Гісторыя
+  license_page: 
+    foreign: 
+      english_link: арыгінальная ангельская вэрсія
+      text: У выпадку канфлікту паміж гэтай перакладзенай старонкай і {{english_original_link}}, старонка на ангельскай мове павінна мець перавагу
+      title: Пра гэты пераклад
+    legal_babble: "<h2>Аўтарскія правы і ліцэнзія</h2>\n<p>\n   OpenStreetMap прадстаўляе <i>вольныя зьвесткі</i>, на ўмовах ліцэнзіі <a\n   href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n   Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA).\n</p>\n<p>\n  Вы можаце капіяваць, распаўсюджваць, перадаваць і зьмяняць нашыя мапы\n  і зьвесткі, да той пары, пакуль Вы спасылаецеся на OpenStreetMap і яе\n  ўдзельнікаў. Калі Вы зьмяняеце ці выкарыстоўваеце нашыя мапы і зьвесткі, Вы можаце \n  распаўсюджваць вынікі толькі на ўмовах такой жа ліцэнзіі. Поўны тэкст ліцэнзіі\n  <a\n  href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">legal\n  code</a> растлумачыць Вам правы і адказнасьці.\n</p>\n\n<h3>Як спасылацца на OpenStreetMap</h3>\n<p>\n  Калі Вы выкарыстоўваеце выявы мапаў OpenStreetMap, мы патрабуем, каб\n  Вы рабілі спасылку хаця б &ldquo;&copy; удзельнікі OpenStreetMap\n  , CC-BY-SA&rdquo;. Калі Вы выкарыстоўваеце толькі картаграфічныя зьвесткі,\n  мы патрабуем наяўнасьць &ldquo;Картаграфічныя зьвесткі &copy; Удзельнікі OpenStreetMap,\n  CC-BY-SA&rdquo;.\n</p>\n\n<p>\n  Дзе магчыма, павінна быць гіпэр-спасылка на OpenStreetMap <a\n  href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n  і на CC-BY-SA <a\n  href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>. Калі\n  Вы выкарыстоўваеце носьбіты, дзе выкарыстаньне спасылак немагчымае (напр. \n  друкаваныя працы), мы прапануем накіроўваць Вашым чытачоў на\n  www.openstreetmap.org (магчымае выкарыстаньне поўнага адрасу\n  &lsquo;OpenStreetMap&rsquo;) і на\n  www.creativecommons.org.\n</p>\n\n<h3>Даведацца болей</h3>\n<p>\n  Даведайцеся болей пра выкарыстаньне нашых зьвестак на <a\n  href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">старонцы адказаў\n  і пытаньняў</a>.\n</p>\n<p>\n  Удзельнікі OSM павінны памятаць пра тое, што забаронена дадаваць зьвесткі\n  з любых крыніцаў абароненых аўтарскім правам (напрыклад, Google Maps ці друкаваных мапаў)\n  без папярэдняга дазволу ўладальнікаў аўтарскіх правоў.\n</p>\n<p>\n  Ня гледзячы на тое, што OpenStreetMap утрымлівае вольныя зьвесткі, мы ня можам\n  дазволіць бясплатны API да нашых мапаў для староньніх распрацоўшчыкаў.\n\n  Глядзіце нашыя <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">Умовы выкарыстаньня</a>,\n  <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">Умовы выкарыстаньня частак мапаў</a>\n  і <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">Умовы выкарыстаньня Nominatim</a>.\n</p>\n\n<h3>Нашыя ўдзельнікі</h3>\n<p>\n  Нашая ліцэнзія CC-BY-SA патрабуе ад Вас &ldquo;падаць арыгінальнага аўтара \n  у адпаведнасьці з асаблівасьцямі носьбітаў інфармацыі ці іншых выкарыстоўваемых сродкаў\n  &rdquo;. Звычайныя ўдзельнікі OSM не патрабуюць пазначэньня аўтарства\n  болей чым &ldquo;удзельнікі OpenStreetMap\n  &rdquo;, але ў OpenStreetMap ёсьць зьвесткі з нацыянальных \n  картаграфічных агенцтваў ці іншых падобных крыніцаў, \n  таму, магчыма, мае сэнс спасылацца непасрэдна на іх\n  як на крыніцу, ці дадаць спасылку на гэтую старонку.\n</p>\n\n<!--\nІнфармацыя для рэдактараў\n\nДалей знаходзяцца сьпісы толькі тых арганізацыяў, якія патрабуюць спасылкі\nна сваё аўтарства, як умова выкарыстаньня іх зьвестак у OpenStreetMap. \nГэта не агульны каталёг імпартаваных зьвестак, і ён не павінен выкарыстоўвацца,\nза выключэньнем калі паданьне аўтарства зьяўляецца ўмовай ліцэнзіі\nна імпартаваныя зьвесткі.\n\nЛюбыя дапаўненьні павінны быць абмеркаваныя, спачатку, з сыстэмнымі адміністратарамі OSM.\n-->\n\n<ul id=\"contributors\">\n    <li><strong>Аўстралія</strong>: Утрымлівае зьвесткі пра прыгарады ад\n    Аўстралійскага бюро статыстыкі.</li>\n    <li><strong>Канада</strong>: Утрымлівае зьвесткі\n    GeoBase&reg;, GeoGratis (&copy; Дэпартамэнта прыродных рэсурсаў\n    Канады), CanVec (&copy; Дэпартамэнта прыродных рэсурсаў\n    Канады), і StatCan (Статыстычнага падразьдзяленьня Канады).</li>\n    <li><strong>Новая Зэляндыя</strong>: Утрымлівае зьвесткі пра\n    зямельныя рэсурсы Новай Зэляндыі. Crown Copyright reserved.</li>\n    <li><strong>Польшча</strong>: Утрымлівае зьвесткі з <a\n    href=\"http://ump.waw.pl/\">мапы UMP-pcPL</a>. Copyright\n    удзельнікі UMP-pcPL.</li>\n    <li><strong>Вялікабрытанія</strong>: Утрымлівае зьвесткі Ordnance \n    Survey &copy; Crown copyright and database right\n    2010.</li>\n</ul>\n\n<p>\n  Уключэньне зьвестак у OpenStreetMap не азначае, што пастаўшчыкі пачатковых зьвестак\n  якім-небудзь чынам падтрымліваюць OpenStreetMap, прадстаўляюць гарантыі, ці\n  прымаюць на сябе якую-небудзь адказнасьць.\n</p>"
+    native: 
+      mapping_link: пачаць стварэньне мапы
+      native_link: беларускай вэрсіі
+      text: Вы праглядаеце ангельскую вэрсію старонкі аўтарскіх правоў. Вы можаце вярнуцца да {{native_link}} гэтай старонкі ці спыніць чытаньне пра аўтарскія правы і {{mapping_link}}.
+      title: Пра гэтую старонку
   message: 
     inbox: 
       subject: Тэма
@@ -138,46 +370,343 @@ be-TARASK:
   oauth_clients: 
     edit: 
       submit: Рэдагаваць
+  time: 
+    formats: 
+      friendly: "%e %B %Y у %H:%M"
   trace: 
     create: 
+      trace_uploaded: Ваш GPX-файл быў загружаны і чакае ўстаўкі ў базу зьвестак. Звычайна гэта адбываецца на працягу паўгадзіны, і Вам будзе дасланы электронны ліст з абвяшчэньнем пра завяршэньне.
       upload_trace: Загрузіць GPS-трэк
+    delete: 
+      scheduled_for_deletion: Трэк заплянаваны на выдаленьне
     edit: 
       description: "Апісаньне:"
       download: загрузіць
       edit: рэдагаваць
       filename: "Назва файла:"
+      heading: Рэдагаваньне трэку {{name}}
       map: мапа
+      owner: "Уладальнік:"
+      points: "Пункты:"
       save_button: Захаваць зьмены
+      start_coord: "Пачатковыя каардынаты:"
+      tags: "Тэгі:"
+      tags_help: падзеленыя коскамі
+      title: Рэдагаваньне трэку {{name}}
+      uploaded_at: "Загружаны:"
+      visibility: "Бачнасьць:"
+      visibility_help: што гэта азначае?
+    list: 
+      public_traces: Публічныя GPS-трэкі
+      public_traces_from: Публічныя GPS-трэкі ўдзельніка {{user}}
+      tagged_with: " пазначаныя {{tags}}"
+      your_traces: Вашыя GPS-трэкі
+    make_public: 
+      made_public: Трэк зроблены публічным
+    no_such_user: 
+      body: Прабачце, няма ўдзельніка з імем {{user}}. Калі ласка, праверце дакладнасьць напісаньня, ці, магчыма, спасылка па якой Вы перайшлі, няслушная.
+      heading: Удзельнік {{user}} не існуе
+      title: Няма такога удзельніка
+    offline: 
+      heading: GPX-сховішча адключанае
+      message: Сховішча GPX-файлаў і сыстэма іх загрузкі, у цяперашні момант, недаступная.
+    offline_warning: 
+      message: Сыстэма загрузкі GPX-файлаў у цяперашні момант недаступная
     trace: 
+      ago: "{{time_in_words_ago}} таму"
+      by: аўтар
+      count_points: "{{count}} пунктаў"
       edit: рэдагаваць
+      edit_map: Рэдагаваць мапу
+      identifiable: ІДЭНТЫФІКАВАНЫ
+      in: у
       map: мапа
+      more: болей
+      pending: ЧАКАЕ
+      private: ПРЫВАТНЫ
+      public: ПУБЛІЧНЫ
+      trace_details: Паказаць падрабязнасьці трэку
+      trackable: МАГЧЫМА САЧЫЦЬ
+      view_map: Прагляд мапы
     trace_form: 
       description: Апісаньне
       help: Дапамога
+      tags: Тэгі
+      tags_help: падзеленае коскамі
+      upload_button: Загрузіць
+      upload_gpx: Загрузіць GPX-файл
+      visibility: Бачнасьць
+      visibility_help: што гэта азначае?
+    trace_header: 
+      see_all_traces: Паказаць усе трэкі
+      see_your_traces: Паказаць усе Вашыя трэкі
+      traces_waiting: У Вас {{count}} трэкаў, якія чакаюць загрузкі. Калі ласка, пачакайце сканчэньня перадачы гэтых трэкаў, перад тым як загружаць іншыя, гэта дазволіць не блякаваць чаргу для іншых удзельнікаў.
+      upload_trace: Загрузіць трэк
+      your_traces: Паказаць толькі Вашыя трэкі
+    trace_optionals: 
+      tags: Тэгі
+    trace_paging_nav: 
+      next: Наступная &raquo;
+      previous: "&laquo; Папярэдняя"
+      showing_page: Паказаная старонка {{page}}
     view: 
+      delete_track: Выдаліць гэты трэк
       description: "Апісаньне:"
       download: загрузіць
       edit: рэдагаваць
+      edit_track: Рэдагаваць гэты трэк
       filename: "Назва файла:"
+      heading: Прагляд трэку {{name}}
       map: мапа
+      none: Няма
+      owner: "Уладальнік:"
+      pending: ЧАКАЕ
+      points: "Пункты:"
+      start_coordinates: "Пачатковыя каардынаты:"
+      tags: "Тэгі:"
+      title: Прагляд трэку {{name}}
+      trace_not_found: Трэк ня знойдзены!
+      uploaded: "Загружаны:"
+      visibility: "Бачнасьць:"
+    visibility: 
+      identifiable: Які можна ідэнтыфікаваць (паказаны толькі ў сьпісе трэкаў і як той, які можна ідэнтыфікаваць, уладкаваныя пункты з пазначэньнямі часу)
+      private: Прыватны (даступны толькі ананімна, неўладкаваныя пункты)
+      public: Публічны (паказаны ў сьпісе трэкаў і як ананімны, неўладкаваныя пункты)
+      trackable: За якім можна сачыць (даступна толькі ананімна, уладкаваныя пункты з пазначэньнямі часу)
   user: 
     account: 
+      contributor terms: 
+        agreed: Вы пагадзіліся з новымі ўмовамі супрацоўніцтва.
+        agreed_with_pd: Вы таксама заяўляеце, што перадаеце Вашыя рэдагаваньні ў грамадзкі набытак.
+        heading: "Умовы супрацоўніцтва:"
+        link text: што гэта?
+        not yet agreed: Вы яшчэ не пагадзіліся з новымі ўмовамі супрацоўніцтва.
+        review link text: Калі ласка, перайдзіце па гэтай спасылцы ў зручны для Вас час і пацьвердзіце згоду з новымі ўмовамі супрацоўніцтва.
+      current email address: "Цяперашні адрас электроннай пошты:"
+      delete image: Выдаліць цяперашнюю выяву
+      email never displayed publicly: (ніколі ня будзе паказаны публічна)
+      flash update success: Зьвесткі пра карыстальніка пасьпяхова абноўленыя.
+      flash update success confirm needed: Інфармацыя карыстальніка была абноўленая пасьпяхова. Праверце Вашую электронную пошту каб пацьвердзіць Ваш новы адрас электроннай пошты.
+      home location: "Асноўнае месцазнаходжаньне:"
+      image: "Выява:"
+      image size hint: (найлепей пасуюць квадратныя выявы памерам 100×100)
+      keep image: Пакінуць цяперашнюю выяву
       latitude: "Шырата:"
       longitude: "Даўгата:"
+      make edits public button: Зрабіць усе мае рэдагаваньні публічнымі
       my settings: Мае ўстаноўкі
+      new email address: "Новы адрас электроннай пошты:"
+      new image: Дадаць выяву
+      no home location: Вы не падалі Вашае месцазнаходжаньне.
+      preferred editor: "Пажаданы рэдактар:"
+      preferred languages: "Абраныя мовы:"
+      profile description: "Апісаньне профілю:"
+      public editing: 
+        disabled: Забаронены і ня можа рэдагаваць зьвесткі, усе папярэднія рэдагаваньні былі ананімнымі.
+        disabled link text: чаму я не магу рэдагаваць?
+        enabled: Уключана. Вы не ананім і можаце рэдагаваць зьвесткі.
+        enabled link: http://wiki.openstreetmap.org/wiki/Anonymous_edits
+        enabled link text: што гэта?
+        heading: "Публічнае рэдагаваньне:"
+      public editing note: 
+        heading: Публічнае рэдагаваньне
+        text: У цяперашні момант Вашыя рэдагаваньні зьяўляюцца ананімнымі і людзі ня могуць дасылаць Вам паведамленьні, ці бачыць Вашае месцазнаходжаньне. Каб быў бачны Ваш унёсак і людзі маглі кантактаваць з Вамі праз ўэб-сайт, націсьніце кнопку ніжэй. <b>Пасьля зьменаў API вэрсіі 0.6, толькі даступныя для сувязі карыстальнікі могуць рэдагаваць зьвесткі на мапе</b>. (<a href="http://wiki.openstreetmap.org/wiki/Anonymous_edits">даведацца чаму</a>).<ul><li>Ваш адрас электроннай пошты ня будзе паказвацца публічна.</li><li>Гэтае дзеяньне ня можа быць адмененае і ўсе новыя карыстальнікі цяпер даступныя для сувязі па змоўчваньні.</li></ul>
+      replace image: Замяніць цяперашнюю выяву
+      return to profile: Вярнуцца да рахунку
       save changes button: Захаваць зьмены
+      title: Рэдагаваньне рахунку
+      update home location on click: Абнаўляць маё месцазнаходжаньне, калі як націскаю на мапу?
+    confirm: 
+      already active: Гэты рахунак ужо пацьверджаны.
+      before you start: Мы ведаем, што Вы жадаеце хутчэй пачаць картаграфаваньне, але перад гэтым, верагодна Вам захочацца падаць некаторыя зьвесткі пра сябе ў форме ніжэй.
+      button: Пацьвердзіць
+      heading: Пацьверджаньне рахунку
+      press confirm button: Націсьніце кнопку «Пацьвердзіць» для актывацыі Вашага рахунку.
+      reconfirm: Калі ўжо прайшоў некаторы час з моманту Вашай рэгістрацыі, верагодна Вам неабходна <a href="{{reconfirm}}">даслаць сабе новае пацьверджаньне па электроннай пошце</a>.
+      success: Ваш рахунак пацьверджаны, дзякуй за рэгістрацыю!
+      unknown token: Выглядае, што гэты ключ не існуе.
+    confirm_email: 
+      button: Пацьвердзіць
+      failure: Адрас электроннай пошты ужо быў пацьверджаны гэтым ключом.
+      heading: Пацьвердзіць зьмену адрасу электроннай пошты
+      press confirm button: Націсьніце кнопку пацьверджаньня ніжэй, каб пацьвердзіць Ваш новы адрас электроннай пошты.
+      success: Ваш адрас электроннай пошты пацьверджаны, дзякуй за рэгістрацыю!
+    confirm_resend: 
+      failure: Удзельнік {{name}} ня знойдзены.
+      success: Мы даслалі новы ліст з пацьверджаньнем на адрас {{email}} і, як толькі Вы пацьвердзіце Ваш рахунак, Вы зможаце пачаць працаваць з мапамі.<br /><br />Калі Вы карыстаецеся сыстэмай абароны ад спаму, якая дасылае запыты на пацьверджаньне, калі ласка, упэўніцеся, што адрас  webmaster@openstreetmap.org знаходзіцца ў Вашым давераным сьпісе, таму што мы ня маем магчымасьці адказваць на любыя запыты.
+    filter: 
+      not_an_administrator: Вам неабходна быць адміністратарам, каб выканаць гэтае дзеяньне.
+    go_public: 
+      flash success: Усе Вашыя рэдагаваньні цяпер публічныя, і цяпер Вам дазволена рэдагаваньне.
+    list: 
+      confirm: Пацьвердзіць выбраных карыстальнікаў
+      empty: Адпаведныя карыстальнікі ня знойдзеныя
+      heading: Карыстальнікі
+      hide: Схаваць выбраных карыстальнікаў
+      showing: 
+        one: Паказаная старонка {{page}} з ({{first_item}} {{items}})
+        other: Паказаныя старонкі {{page}} ({{first_item}}-{{last_item}} з {{items}})
+      summary: "{{name}} створаны з {{ip_address}}, {{date}}"
+      summary_no_ip: "{{name}} створаны {{date}}"
+      title: Удзельнікі
     login: 
+      account not active: Прабачце, Ваш рахунак пакуль што не актывізаваны.<br />Калі ласка, каб яго актывізаваць, карыстайцеся спасылкай у дасланым Ваш электронным лісьце, ці <a href="{{reconfirm}}">падайце запыт на новы электронны ліст з пацьверджаньнем</a>.
+      account suspended: Прабачце, але Ваш рахунак быў заблякаваны з-за падазронай актыўнасьці.<br />Калі ласка, зьвяжыцеся з {{webmaster}} калі Вы жадаеце гэта аспрэчыць.
+      already have: Ужо маеце рахунак на OpenStreetMap? Увайдзіце, калі ласка.
+      auth failure: Прабачце, немагчыма ўвайсьці з такім адрасам і паролем.
+      create account minute: Стварыць рахунак. Гэта зойме ня болей хвіліны.
+      create_account: стварыць рахунак
+      email or username: "Адрас электроннай пошты ці імя карыстальніка:"
+      heading: Уваход
+      login_button: Увайсьці
+      lost password link: Забылі пароль?
+      new to osm: Упершыню на OpenStreetMap?
+      notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Даведайцеся болей пра плянуемыя зьмены ліцэнзіі OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">пераклады</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">абмеркаваньні</a>)
       password: "Пароль:"
+      please login: Калі ласка, увайдзіце ці {{create_user_link}}.
+      register now: Зарэгістравацца зараз
+      remember: "Запамятаць мяне:"
+      title: Увайсьці
+      to make changes: Каб рабіць зьмены ў зьвестках OpenStreetMap, Вам неабходна мець рахунак.
+      webmaster: ўэб-майстар
+    logout: 
+      heading: Выйсьці з OpenStreetMap
+      logout_button: Выйсьці
+      title: Выйсьці
     lost_password: 
+      email address: "Адрас электроннай пошты:"
+      heading: Забылі пароль?
+      help_text: Увядзіце адрас электроннай пошты, які Вы выкарыстоўвалі пры рэгістрацыі, і мы вышлем Вам спасылку, якую Вы зможаце выкарыстаць для зьмены паролю.
       new password button: Ачысьціць пароль
+      notice email cannot find: Прабачце, не атрымалася знайсьці такога адрасу электроннай пошты.
+      notice email on way: Шкада, што Вы яго згубілі, але электронны ліст ужо дасланы, таму Вы хутка зможаце яго зьмяніць.
+      title: Згублены пароль
+    make_friend: 
+      already_a_friend: Вы ўжо сябруеце з {{name}}.
+      failed: Прабачце, немагчыма дадаць {{name}} да сьпісу сяброў.
+      success: Цяпер {{name}} — Ваш сябар.
     new: 
+      confirm email address: "Пацьвердзіць адрас электроннай пошты:"
+      confirm password: "Пацьверджаньне паролю:"
+      contact_webmaster: Калі ласка, зьвяжыцеся з <a href="mailto:webmaster@openstreetmap.org">вэбмайстрам</a> з запытам на стварэньне падобнага рахунку. Мы паспрабуем стварыць Вам рахунак як мага хутчэй.
+      continue: Працягнуць
+      display name: "Бачнае імя:"
+      display name description: Вашае імя, якое будзе бачнае ўсім. Вы можаце зьмяніць яго потым ў Вашых наладах.
+      email address: "Адрас электроннай пошты:"
+      fill_form: Запоўніце форму, і мы дашлем Вам электронны ліст, каб актывізаваць Ваш рахунак.
+      flash create success message: Дзякуй за рэгістрацыю. Мы даслалі ліст з пацьверджаньнем на адрас {{email}} і, як толькі Вы пацьвердзіце Ваш рахунак, Вы зможаце пачаць працу з мапамі.<br /><br />Калі Вы карыстаецеся сыстэмай барацьбы са спамам, якая дасылае запыты на пацьверджаньне, калі ласка, упэўніцеся, што адрас webmaster@openstreetmap.org знаходзіцца ў Вашым белым сьпісе, таму што мы ня можам адказваць на такія запыты.
+      heading: Стварэньне рахунку
+      license_agreement: Калі Вы пацьвердзіце Ваш рахунак, Вам трэба будзе пагадзіцца з <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">умовамі супрацоўніцтва</a>.
+      no_auto_account_create: На жаль, мы зараз ня можам стварыць для Вас рахунак аўтаматычна.
+      not displayed publicly: Не паказваецца публічна (глядзіце <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="правілы адносна прыватнасьці вікі, у тым ліку сэкцыя пра адрасы электроннай пошты">правілы адносна прыватнасьці</a>)
       password: "Пароль:"
+      terms accepted: Дзякуй за тое, што прынялі новыя ўмовы супрацоўніцтва!
+      title: Стварыць рахунак
+    no_such_user: 
+      body: Прабачце, няма ўдзельніка з іменем {{user}}. Калі ласка, праверце дакладнасьць напісаньня, ці, магчыма, спасылка па якой Вы перайшлі, няслушная.
+      heading: Удзельнік {{user}} не існуе
+      title: Няма такога карыстальніка
+    popup: 
+      friend: Сябар
+      nearby mapper: Бліжэйшы стваральнік мапаў
+      your location: Вашае месцазнаходжаньне
+    remove_friend: 
+      not_a_friend: "{{name}} не зьяўляецца Вашым сябрам."
+      success: "{{name}} быў выдалены з Вашага сьпісу сяброў."
     reset_password: 
+      confirm password: "Пацьверджаньне паролю:"
+      flash changed: Ваш пароль быў зьменены.
+      flash token bad: Немагчыма знайсьці такі ключ, можа праверце URL-адрас?
+      heading: Скінуць пароль для {{user}}
       password: "Пароль:"
       reset: Ачысьціць пароль
       title: Ачысьціць пароль
+    set_home: 
+      flash success: Вашае месцазнаходжаньне пасьпяхова захаванае
+    suspended: 
+      body: "<p>\n  Прабачце, але Ваш рахунак быў аўтаматычна заблякаваны, з-за \n  падазронай актыўнасьці.\n</p>\n<p>\n  Гэтае рашэньне можа быць хутка перагледжанае адміністратарам, ці\n  Вы можаце зьвязацца з {{webmaster}}, калі жадаеце гэта абмеркаваць.\n</p>"
+      heading: Рахунак заблякаваны
+      title: Рахунак заблякаваны
+      webmaster: ўэб-майстар
+    terms: 
+      agree: Згодны
+      consider_pd: У дадатак да прыведзенага пагадненьня, я пацьвярджаю, што мой унёсак знаходзіцца ў грамадзкім набытку
+      consider_pd_why: што гэта?
+      decline: Адхіліць
+      heading: Умовы супрацоўніцтва
+      legale_names: 
+        france: Францыя
+        italy: Італія
+        rest_of_world: Астатні сьвет
+      legale_select: "Калі ласка, выберыце сваю краіну пражываньня:"
+      read and accept: Калі ласка, пачытайце пагадненьне ніжэй і націсьніце кнопку «Згодны», каб пацьвердзіць што Вы пагаджаецеся з умовамі гэтага пагадненьня адносна Вашага існуючага і будучых ўнёскаў.
+      title: Умовы супрацоўніцтва
     view: 
+      activate_user: актывізаваць гэтага удзельніка
+      add as friend: дадаць у сябры
+      ago: ({{time_in_words_ago}} таму)
+      block_history: паказаць атрыманыя блякаваньні
+      blocks by me: заблякаваныя мной
+      blocks on me: атрыманыя блякаваньні
+      confirm: Пацьвердзіць
+      confirm_user: пацьвердзіць гэтага карыстальніка
+      create_block: заблякаваць гэтага удзельніка
+      created from: "Створана з:"
+      deactivate_user: дэактывізаваць гэтага удзельніка
+      delete_user: выдаліць гэтага ўдзельніка
       description: Апісаньне
+      diary: дзёньнік
       edits: рэдагаваньні
+      email address: "Адрас электроннай пошты:"
+      hide_user: схаваць гэтага ўдзельніка
+      if set location: Калі Вы пазначыце Вашае месцазнаходжаньне, тут зьявіцца прыгожая мапа і дадатковыя інструмэнты. Вы можаце пазначыць Вашае месцазнаходжаньне на Вашай старонцы {{settings_link}}.
+      km away: "{{count}}км ад Вас"
+      latest edit: "Апошняе рэдагаваньне {{ago}}:"
+      m away: "{{count}}м ад Вас"
+      mapper since: "Стварае мапы з:"
+      moderator_history: паказаць пададзеныя блякаваньні
+      my diary: мой дзёньнік
+      my edits: мае рэдагаваньні
       my settings: мае ўстаноўкі
+      my traces: мае трэкі
+      nearby users: Іншыя бліжэйшыя карыстальнікі
+      new diary entry: новы запіс у дзёньніку
+      no friends: Пакуль што Вы не дадалі нікога ў сябры.
+      no nearby users: Няма іншых карыстальнікаў, якія прызнаюць, што займаюцца складаньнем мапы каля Вас.
+      oauth settings: налады OAuth
+      remove as friend: выдаліць зь сяброў
+      role: 
+        administrator: Гэты карыстальнік зьяўляецца адміністратарам
+        grant: 
+          administrator: Надаць правы адміністратара
+          moderator: Надаць правы мадэратара
+        moderator: Гэты карыстальнік зьяўляецца мадэратарам
+        revoke: 
+          administrator: Скасаваць правы адміністратара
+          moderator: Скасаваць доступ мадэратара
+      send message: даслаць паведамленьне
       settings_link_text: устаноўкі
+      spam score: "Адзнака спаму:"
+      status: "Статус:"
+      traces: трэкі
+      unhide_user: паказаць гэтага ўдзельніка
+      user location: Меcцазнаходжаньне ўдзельніка
+      your friends: Вашыя сябры
+  user_role: 
+    filter: 
+      already_has_role: Карыстальнік ужо мае ролю {{role}}.
+      doesnt_have_role: Карыстальнік ня мае ролі {{role}}.
+      not_a_role: Радок «{{role}}» не зьяўляецца слушнай роляй.
+      not_an_administrator: Толькі адміністратары могуць кіраваць ролямі карыстальнікаў, а Вы не зьяўляецеся адміністратарам.
+    grant: 
+      are_you_sure: Вы ўпэўнены, што жадаеце надаць ролю `{{role}}' удзельніку `{{name}}'?
+      confirm: Пацьвердзіць
+      fail: Немагчыма надаць ролю `{{role}}' удзельніку `{{name}}'. Калі ласка, праверце каб удзельнік і роля былі слушнымі.
+      heading: Пацьвердзіць наданьне ролі
+      title: Пацьвердзіць наданьне ролі
+    revoke: 
+      are_you_sure: Вы ўпэўнены, што жадаеце адмяніць ролю `{{role}}' удзельніка `{{name}}'?
+      confirm: Пацьвердзіць
+      fail: Не магчыма адмяніць ролю `{{role}}' удзельніка `{{name}}'. Калі ласка, праверце каб удзельнік і роля былі слушнымі.
+      heading: Пацьвердзіць адмену ролі
+      title: Пацьвердзіць адмену ролі
index 87683bf5589edaa925d88162b5c338ff6acc66dd..e39c50ad045c830eff114a65a21efad627713258 100644 (file)
@@ -1,6 +1,8 @@
 # Messages for Belarusian (Беларуская)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
+# Author: Jim-by
+# Author: Тест
 be: 
   activerecord: 
     attributes: 
@@ -251,7 +253,7 @@ be:
       embeddable_html: HTML для ўстаўкі
       export_button: Экспарт
       export_details: Дадзеныя праекту OpenStreetMap распаўсюджваюцца па ліцэнзіі <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0</a>.
-      format: Фармат
+      format: "Фармат:"
       format_to_export: Фармат для экспарту
       image_size: Памер выявы
       latitude: "Шыр:"
@@ -264,7 +266,7 @@ be:
       osm_xml_data: OpenStreetMap XML
       osmarender_image: выява Osmarender
       output: Вывад
-      paste_html: Ð£Ñ\81Ñ\82авÑ\96Ñ\86Ñ\8c HTML Ð´Ð»Ñ\8f Ñ\83будовы у вэб-сайт
+      paste_html: Ð£Ñ\81Ñ\82авÑ\96Ñ\86Ñ\8c HTML Ð´Ð»Ñ\8f Ñ\9eбудовы у вэб-сайт
       scale: Маштаб
       zoom: маштаб
     start_rjs: 
@@ -306,12 +308,8 @@ be:
     logout_tooltip: выйсці
     make_a_donation: 
       text: Зрабіць ахвяраванне
-    news_blog: Блог навінаў
-    news_blog_tooltip: Блог навін OpenStreetMap, дармовыя геаданыя, і г.д.
     osm_offline: База дадзеных OpenStreetMap зараз па-за сецівам, таму што праходзіць неабходная тэхнічная праца.
     osm_read_only: База дадзеных OpenStreetMap зараз даступная толькі для чытання, таму што праходзіць неабходная тэхнічная праца.
-    shop: Крама
-    shop_tooltip: Крама з фірмовай сімволікай OpenStreetMap
     sign_up: Зарэгістравацца
     sign_up_tooltip: Стварыць акаўнт для рэдагавання
     tag_line: Свабодная Wiki-карта свету
@@ -571,13 +569,12 @@ be:
       update home location on click: Абнавіць каардэнаты, калі я пстрыкну па карце?
     confirm: 
       button: Пацвердзіць
-      failure: Рахунак карыстальніка з такім ключом ужо пацверджаны.
       heading: Пацверджанне рахунку
       press confirm button: Націсніце кнопку, каб актывізаваць рахунак.
       success: Рахунак пацверджаны, дзякуй за рэгістрацыю!
     confirm_email: 
       button: Пацвердзіць
-      failure: Ð\9fаÑ\88Ñ\82овÑ\8b Ð°Ð´Ñ\80аÑ\81 Ñ\83жо Ð±Ñ\8bÑ\9e Ð¿Ð°Ñ\86аерджаны гэтым ключом.
+      failure: Ð\9fаÑ\88Ñ\82овÑ\8b Ð°Ð´Ñ\80аÑ\81 Ñ\83жо Ð±Ñ\8bÑ\9e Ð¿Ð°Ñ\86верджаны гэтым ключом.
       heading: Пацвердзіць змену паштовага адрасу
       press confirm button: Націсніце кнопку, каб пацвердзіць ваш новы паштовы адрас.
       success: Ваш адрас пацверджаны, дзякуй за рэгістрацыю!
index fca620a87da41489b2a2141985e4c20bd94cc278..e8c1ae03c7ee85bb2beda821a0f3207598b44ef8 100644 (file)
@@ -1,6 +1,6 @@
 # Messages for Breton (Brezhoneg)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: Fohanno
 # Author: Fulup
 # Author: Y-M D
@@ -78,6 +78,7 @@ br:
       cookies_needed: Diweredekaet eo an toupinoù ganeoc'h war a seblant - gweredekait an toupinoù en ho merdeer a-raok mont pelloc'h, mar plij.
     setup_user_auth: 
       blocked: Stanket eo bet ho moned d'an API. Kevreit ouzh an etrefas web evit gouzout hiroc'h.
+      need_to_see_terms: Evit ar mare n'oc'h ket aotreet da vont war an API ken. Kevreit d'an etrefas Web da sellet ouzh Termenoù an implijerien. Marteze ne viot ket a-du ganto met ret eo deoc'h bezañ lennet anezho.
   browse: 
     changeset: 
       changeset: "Strollad kemmoù : {{id}}"
@@ -192,6 +193,7 @@ br:
       details: Munudoù
       drag_a_box: Tresit ur voest war ar gartenn evit diuzañ un takad
       edited_by_user_at_timestamp: Aozet gant [[user]] da [[timestamp]]
+      hide_areas: Kuzhat an takadoù
       history_for_feature: Istor evit [[feature]]
       load_data: Kargañ ar roadennoù
       loaded_an_area_with_num_features: Karget hoc'h eus un takad zo ennañ [[num_features]] elfenn. Peurliesañ o devez poan ar merdeerioù o tiskwel kemend-all a roadennoù, ha labourat a reont gwelloc'h pa vez nebeutoc'h a 100 elfenn da ziskwel, a-hend-all e c'hall ho merdeer bezañ gorrek pe chom hep respont. Ma'z oc'h sur hoc'h eus c'hoant da ziskwel ar roadennoù-mañ, e c'hallit ober dre glikañ war ar bouton amañ dindan.
@@ -214,6 +216,7 @@ br:
           node: Skoulm
           way: Hent
       private_user: implijer prevez
+      show_areas: Diskouez an takadoù
       show_history: Diskouez an istor
       unable_to_load_size: "Ne c'haller ket kargañ : re vras eo ment ar voest bevenniñ ([[bbox_size]]). Ret eo dezhi bezañ bihanoc'h eget {{max_bbox_size}})"
       wait: Gortozit...
@@ -282,6 +285,8 @@ br:
       title_bbox: Strolladoù kemmoù e-barzh {{bbox}}
       title_user: Strolladoù kemmoù gant {{user}}
       title_user_bbox: Strolladoù kemmoù gant {{user}} e-barzh {{bbox}}
+    timeout: 
+      sorry: Ho tigarez, re hir eo adtapout ar roll cheñchamantoù hoc'h eus goulennet.
   diary_entry: 
     diary_comment: 
       comment_from: Addispleg gant {{link_user}}  d'an {{comment_created_at}}
@@ -349,6 +354,17 @@ br:
       save_button: Enrollañ
       title: Deizlevr {{user}} | {{title}}
       user_title: Deizlevr {{user}}
+  editor: 
+    default: Dre ziouer ({{name}} er mare-mañ)
+    potlatch: 
+      description: Potlatch 1 (aozer enframmet er merdeer)
+      name: Potlatch 1
+    potlatch2: 
+      description: Potlatch 2 (aozer enframmet er merdeer)
+      name: Potlatch 2
+    remote: 
+      description: Aozer diavaez (JOSM pe Merkaartor)
+      name: Aozer diavaez
   export: 
     start: 
       add_marker: Ouzhpennañ ur merker d'ar gartenn
@@ -372,6 +388,7 @@ br:
       paste_html: Pegañ HTML evit bezañ enkorfet en ul lec'hienn web
       scale: Skeuliad
       too_large: 
+        body: Re vras eo an takad-mañ evit bezañ ezporzhiet evel roadennoù XML OpenStreetMap. Zoumit, mar plij, pe diuzit un takad bihanoc'h.
         heading: Zonenn re vras
       zoom: Zoum
     start_rjs: 
@@ -548,7 +565,6 @@ br:
           tower: Tour
           train_station: Porzh-houarn
           university: Savadur Skol-Veur
-          "yes": Savadur
         highway: 
           bridleway: Hent evit ar varc'hegerien
           bus_guideway: Roudenn vus heñchet
@@ -871,16 +887,23 @@ br:
       history_tooltip: Gwelet ar c'hemmoù er zonenn-se
       history_zoom_alert: Ret eo deoc'h zoumañ evit gwelet istor an aozadennoù
   layouts: 
+    community_blogs: Blogoù ar gumuniezh
+    community_blogs_title: Blogoù izili kumuniezh OpenStreetMap
     copyright: Copyright &amp; Aotre-implijout
+    documentation: Teuliadur
+    documentation_title: Teuliadur ar raktres
     donate: Skoazellit OpenStreetMap dre {{link}} d'an Hardware Upgrade Fund.
     donate_link_text: oc'h ober un donezon
     edit: Aozañ
+    edit_with: Kemmañ gant {{editor}}
     export: Ezporzhiañ
     export_tooltip: Ezporzhiañ roadennoù ar gartenn
+    foundation: Diazezadur
+    foundation_title: Diazezadur OpenStreetMap
     gps_traces: Roudoù GPS
     gps_traces_tooltip: Merañ ar roudoù GPS
     help: Skoazell
-    help_and_wiki: "{{help}} & {{wiki}}"
+    help_centre: Kreizenn skoazell
     help_title: Lec'hienn skoazell evit ar raktres
     history: Istor
     home: degemer
@@ -905,14 +928,11 @@ br:
     make_a_donation: 
       text: Ober un donezon
       title: Skoazellañ OpenStreetMap gant ur road arc'hant
-    news_blog: Blog keleier
-    news_blog_tooltip: Blog keleier diwar-benn OpenStreetMap, roadennoù douaroniel digoust, hag all.
     osm_offline: Ezlinenn eo diaz roadennoù OpenStreetMap evit bremañ e-pad ma pleder gant ul labour kempenn bras.
     osm_read_only: Diaz roadennoù OpenStreetMap zo da lenn hepken evit bremañ evit bremañ abalamour da labourioù kempenn bras.
-    shop: Stal
-    shop_tooltip: Stal gant produioù OpenStreetMap
     sign_up: En em enskrivañ
     sign_up_tooltip: Krouiñ ur gont evit aozañ
+    sotm2011: Kemerit perzh e kendalc'h OpenStreetMap 2011, Stad ar gartenn, d'an 11 a viz Gwengolo e Denver !
     tag_line: Kartenn digoust eus ar bed Wiki
     user_diaries: Deizlevrioù an implijer
     user_diaries_tooltip: Gwelet deizlevrioù an implijerien
@@ -925,10 +945,13 @@ br:
   license_page: 
     foreign: 
       english_link: orin e Saozneg
+      text: Ma vez digendalc'h etre ar bajenn troet-mañ hag {{english_original_link}} e teuio ar bajenn saoznek da gentañ
       title: Diwar-benn an droidigezh-mañ
+    legal_babble: "<h2>Copyright hag aotre-implijout</h2>\n<p>\n   OpenStreetMap zo un hollad <i>roadennoù digor</i>, a c'haller kaout dindan an aotre-implijout <a\n   href=\"http://creativecommons.org/licenses/by-sa/2.0/\">Creative\n   Commons Attribution-ShareAlike 2.0</a> (CC-BY-SA).\n</p>\n<p>\n  Libr oc'h da gopiañ, da skignañ, da gas ha da azasaat hor c'hartennoù\n  hag hor roadennoù, gant ma root kred da OpenStreetMap ha d'e\n  genlabourerien. Ma kemmit pe ma implijit hor c'hartennoù pe hor roadennoù e labourioù all,\n  ne c'hallit ket skignañ ar re-se dindan un aotre-implijout all. En \n  <a href=\"http://creativecommons.org/licenses/by-sa/2.0/legalcode\">destenn reolennoù\n  klok</a> e kavot munudoù ho kwirioù hag ho teverioù.\n</p>\n\n<h3>Penaos reiñ kred da OpenStreetMap</h3>\n<p>\n  Ma'z implijit skeudennoù OpenStreetMap, e c'houlennomp diganeoc'h\n  lakaat en ho kred ar meneg &ldquo;&copy; kenlabourerien OpenStreetMap\n  CC-BY-SA&rdquo;. Ma ne implijit nemet roadennoù ar c'hartennoù,\n  e c'houlennomp diganeoc'h lakaat &ldquo;Roadennoù ar gartenn &copy; kenlabourerien OpenStreetMap,\n  CC-BY-SA&rdquo;.\n</p>\n<p>\n  Pa vez posupl e tle OpenStreetMap bezañ ur gourliamm war-du <a\n  href=\"http://www.openstreetmap.org/\">http://www.openstreetmap.org/</a>\n  ha CC-BY-SA war-du <a\n  href=\"http://creativecommons.org/licenses/by-sa/2.0/\">http://creativecommons.org/licenses/by-sa/2.0/</a>.\n  Ma'z implijit ur skor ma ne c'haller ket krouiñ liammoù (da skouer :\n  un destenn moullet), ez aliomp ac'hanoc'h da gas ho lennerien da\n  www.openstreetmap.org (marteze en ur astenn\n  &lsquo;OpenStreetMap&rsquo; ar chomlec'h klok) ha da\n  www.creativecommons.org.\n</p>\n\n<h3>Titouroù ouzhpenn</h3>\n<p>\n  Ma fell deoc'h kaout muioc'h a ditouroù diwar-benn adimplij hor roadennoù, lennit <a\n  href=\"http://wiki.openstreetmap.org/wiki/Legal_FAQ\">FAG ar reolennoù</a>.\n</p>\n<p>\n  Degad a reomp da soñj da genlabourerien OSM ne zleont morse lakaat roadennoù a zeu\n  eus mammennoù dindan (da sk. : Google Maps pe kartennoù moullet) hep aotre\n  ezpleg ar re zo ar c'h-copyright ganto.\n</p>\n<p>\n  Daoust da OpenStreetMap bezañ un hollad roadennoù digor, n'omp ket evit pourchas\n  un API digoust evit an diorroerien diavaez.\n\n  Sellit ouzh hor <a href=\"http://wiki.openstreetmap.org/wiki/API_usage_policy\">reolennoù evit implijout an API</a>,\n  <a href=\"http://wiki.openstreetmap.org/wiki/Tile_usage_policy\">reolennoù evit implijout ar gartenn</a>\n  ha <a href=\"http://wiki.openstreetmap.org/wiki/Nominatim#Usage_Policy\">reolennoù evit implijout Nominatim</a>.\n</p>\n\n<h3>Hor c'henlabourerien</h3>\n<p>\n  Hervez hon aotre-implijout CC-BY-SA e tleit &ldquo;reiñ kred a-walc'h \n  d'an aozer orin diouzh ar media a implijit&rdquo;.\n  Kartennourien hiniennel OSM ne c'houlennont ket\n  kred panevet &ldquo;kenlabourerien OpenStreetMap&rdquo;,\n  met pa vez ebarzhet roadennoù eus un ajañs kartennañ broadel\n  pe ur vammenn veur all en OpenStreetMap,\n  e c'hall bezañ fur reiñ kred dezho war-eeun\n  en doare a c'houlennont pe dre ul liamm war-du ar bajenn-mañ.\n</p>\n\n<!--\nTitouroù evit ar re a gemm ar bajenn-mañ\n\nEr roll-mañ ne gaver nemet an aozadurioù a c'houlenn an dereiñ\nevit ma vefe o roadennoù en OpenStreetMap. N'eo ket ur\nc'hatalog hollek eus an ouzhpennadennoù, ha ne zle ket bezañ implijet,\nnemet pa vez ret an dereiñ evit doujañ da aotre-implijout ar roadennoù enporzhiet.\n\nKement ouzhpennadenn graet amañ a zle bezañ breutaet a-raok gant merourien OSM.\n-->\n\n<ul id=\"contributors\">\n   <li><strong>Australia</strong>: Ennañ ar roadennoù diwar-benn an bannlevioù\n   diazezet war roadennoù Australian Bureau of Statistics.</li>\n   <li><strong>Kanada</strong>: Ennañ roadennoù eus\n   GeoBase&reg;, GeoGratis (&copy; Department of Natural\n   Resources Canada), CanVec (&copy; Department of Natural\n   Resources Canada), ha StatCan (Geography Division,\n   Statistics Canada).</li>\n   <li><strong>Zeland-Nevez</strong>: Ennañ roadennoù eus\n   Land Information New Zealand. Crown Copyright reserved.</li>\n   <li><strong>Polonia</strong>: Ennañ roadennoù eus <a\n   href=\"http://ump.waw.pl/\">kartennoù UMP-pcPL</a>. Copyright\n   kenlabourerien UMP-pcPL.</li>\n   <li><strong>Rouantelezh-Unanet</strong>: Ennañ roadennoù eus Ordnance\n   Survey data &copy; Crown copyright and database right 2010.</li>\n</ul>\n\n<p>\n  Ebarzhiñ roadennoù en OpenStreetMap ne dalvez ket eo aprouet OpenStreetMap gant ar bourchaserien orin.\n</p>"
     native: 
       mapping_link: kregiñ da gemer perzh
       native_link: Stumm brezhonek
+      text: Emaoc'h o lenn stumm saoznek ar bajenn copyright. Gallout a rit distreiñ da {{native_link}} ar bajenn-mañ pe paouez da lenn ar bajenn-mañ ha {{mapping_link}}.
       title: Diwar-benn ar bajenn-mañ
   message: 
     delete: 
@@ -991,6 +1014,9 @@ br:
       title: Lenn ar gemennadenn
       to: Da
       unread_button: Merkañ evel anlennet
+      wrong_user: Kevreet oc'h evel "{{user}}", met ar gemennadenn a fell deoc'h lenn n'eo ket bet kaset na gant na d'an implijer-se. Mar plij kevreit gant ar gont reizh evit gellout lenn anezhi.
+    reply: 
+      wrong_user: Kevreet oc'h evel "{{user}}", met ar gemennadenn a fell deoc'h respont outi n'eo ket bet kaset d'an implijer-se. Mar plij kevreit gant ar gont reizh evit gellout respont.
     sent_message_summary: 
       delete_button: Dilemel
   notifier: 
@@ -1048,6 +1074,7 @@ br:
     signup_confirm: 
       subject: "[OpenStreetMap] Kadarnaat ho chomlec'h postel"
     signup_confirm_html: 
+      ask_questions: Gellout a rit sevel an holl goulennoù ho pefe diwar-benn OpenStreetMap war <a href="http://help.openstreetmap.org/">hol lec'hienn goulennoù-respontoù</a>.
       click_the_link: Ma'z eo c'hwi, degemer mat deoc'h ! Klikit war al liamm amañ dindan evit kadarnaat krouidigezh ho kont ha gouzout hiroc'h diwar-benn OpenStreetMap
       current_user: Ur roll eus an implijerien red dre rummadoù, diazezet war al lec'h m'emaint er bed, a c'haller kaout diwar <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.
       get_reading: Muioc'h a ditouroù diwar-benn OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/FR:Beginners_Guide">war ar wiki</a> pe <a href="http://www.opengeodata.org/">war ar blog opengeodata</a> a ginnig ivez  <a href="http://www.opengeodata.org/?cat=13">podskignadennoù da selaou</a> !
@@ -1060,6 +1087,7 @@ br:
       video_to_openstreetmap: video evit kregiñ gant OpenStreetMap
       wiki_signup: Gallout a rit ivez <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">krouiñ ur gont war wiki OpenStreetMap</a>.
     signup_confirm_plain: 
+      ask_questions: "Gellout a rit sevel an holl goulennoù ho pefe diwar-benn OpenStreetMap war hol lec'hienn goulennoù-respontoù :"
       blog_and_twitter: "Tapout ar c'heleier diwezhañ diwar blog OpenStreetMap pe Twitter :"
       click_the_link_1: Ma'z eo c'hwi, degemer mat deoc'h ! Klikit war al liamm amañ dindan evit kadarnaat ho
       click_the_link_2: kont ha lenn muioc'h a ditouroù diwar-benn OpenStreetMap.
@@ -1133,7 +1161,7 @@ br:
       allow_write_prefs: kemmañ o fenndibaboù implijerien.
       authorize_url: "URL aotren :"
       edit: Aozañ ar munudoù
-      key: "Alc'hwez an implijer :"
+      key: "Alc'hwez implijer :"
       requests: "O c'houlenn an aotreoù-mañ digant an implijer :"
       secret: "Sekred an implijer :"
       support_notice: Skorañ a reomp HMAC-SHA1 (erbedet) hag an destenn diaoz er mod ssl.
@@ -1145,8 +1173,11 @@ br:
     edit: 
       anon_edits_link_text: Kavit perak.
       flash_player_required: Ezhomm hoc'h eus eus ul lenner Flash evit implijout Potlatch, aozer flash OpenStreetMap. Gallout a rit <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">pellgargañ Flash Player diwar Adobe.com</a>. <a href="http://wiki.openstreetmap.org/wiki/Editing">Meur a zibarzh</a> a c'haller kaout evit aozañ OpenStreetMap.
+      no_iframe_support: N'eo ket ho merdeer evit ober gant iframmoù HTML, hag ezhomm zo eus ar re-se evit an arc'hweladur-mañ.
       not_public: N'hoc'h eus ket lakaet hoc'h aozadennoù da vezañ foran.
       not_public_description: Ne c'hallit ket ken aozañ ar gartenn nemet e lakafec'h hoc'h aozadennoù da vezañ foran. Gallout a rit lakaat hoc'h aozadennoù da vezañ foran diwar ho {{user_page}}.
+      potlatch2_not_configured: Potlatch 2 n'eo ket bet kefluniet - sellit ouzh http://wiki.openstreetmap.org/wiki/The_Rails_Port#Potlatch_2 da c'houzout hiroc'h
+      potlatch2_unsaved_changes: Kemmoù n'int ket enrollet zo ganeoc'h. (Evit enrollañ ho kemmoù e Potlach2, klikit war enrollañ)
       potlatch_unsaved_changes: Kemmoù n'int ket bet enrollet zo ganeoc'h. (Evit enrollañ e Potlatch, e tlefec'h diziuzañ an hent pe ar poent red m'emaoc'h oc'h aozañ er mod bev, pe klikañ war enrollañ ma vez ur bouton enrollañ ganeoc'h.)
       user_page_link: pajenn implijer
     index: 
@@ -1154,14 +1185,15 @@ br:
       js_2: OpenStreetMap a implij JavaScript evit e gartenn risklus.
       js_3: Ma ne c'hallit ket gweredekaat JavaScrip e c'hallit esaeañ gant ar <a href="http://tah.openstreetmap.org/Browse/">merdeer statek Tiles@Home</a>.
       license: 
-        license_name: Creative Commons Attribution-Share Alike 2.0
+        license_name: Creative Commons Attribution-ShareAlike 2.0
         notice: Dindan aotre-implijout {{license_name}} gant an {{project_name}} hag e genobererien.
         project_name: raktres OpenStreetMap
       permalink: Permalink
+      remote_failed: C'hwitet eo ar c'hemm - gwiriit hag-eñ eo karget JOSM or Merkaartor ha gweredekaet an dibarzh kontroll a-bell
       shortlink: Liamm berr
     key: 
       map_key: Alc'hwez ar gartenn
-      map_key_tooltip: Alc'hwez evit ar mapnik gant al live zoum-mañ
+      map_key_tooltip: Alc'hwez ar gartenn
       table: 
         entry: 
           admin: Bevenn velestradurel
@@ -1228,7 +1260,6 @@ br:
           unclassified: Hent n'eo ket rummet
           unsurfaced: Hent n'eo ket goloet
           wood: Koad
-        heading: Alc'hwez evit z{{zoom_level}}
     search: 
       search: Klask
       search_help: "da skouer : 'Kemper', 'Straed Siam, Brest', 'CB2 5AQ', pe 'tiez-post tost da Roazhon' <a href='http://wiki.openstreetmap.org/wiki/Search'>muioc'h a skouerioù...</a>"
@@ -1301,7 +1332,7 @@ br:
       help: Skoazell
       tags: Balizennoù
       tags_help: bevennet gant virgulennoù
-      upload_button: Kas
+      upload_button: Enporzhiañ
       upload_gpx: Kas ar restr GPX
       visibility: Gwelusted
       visibility_help: Petra a dalvez ?
@@ -1344,7 +1375,12 @@ br:
   user: 
     account: 
       contributor terms: 
+        agreed: Degemeret hoc'h eus diferadennoù nevez ar c'henlabourer.
+        agreed_with_pd: Disklêriet hoc'h eus ivez emañ ho tegasadennoù en domani foran.
+        heading: "Diferadennoù ar c'henlabourer :"
         link text: Petra eo se ?
+        not yet agreed: N'hoc'h eus ket degemeret c'hoazh diferadennoù nevez ar c'henlabourer.
+        review link text: Heuilhit al liamm-mañ evel ma karot evit sellet ouzh diferadennoù nevez ar c'henlabourer hag asantiñ dezho.
       current email address: "Chomlec'h postel a-vremañ :"
       delete image: Dilemel ar skeudenn a-vremañ
       email never displayed publicly: (n'eo ket diskwelet d'an holl morse)
@@ -1361,6 +1397,7 @@ br:
       new email address: "Chomlec'h postel nevez :"
       new image: Ouzhpennañ ur skeudenn
       no home location: N'hoc'h eus ket ebarzhet lec'hiadur ho kêr.
+      preferred editor: "Aozer karetañ :"
       preferred languages: "Yezhoù gwellañ karet :"
       profile description: "Deskrivadur ar profil :"
       public editing: 
@@ -1379,17 +1416,23 @@ br:
       title: Aozañ ar gont
       update home location on click: Hizivaat lec'hiadur ho kêr pa glikit war ar gartenn ?
     confirm: 
+      already active: Kadarnaet eo bet dija ar gont-mañ.
+      before you start: Gouzout a reomp ez eus mall warnoc'h kregiñ da gartennañ moarvat, met a-raok e c'hallfec'h reiñ muioc'h a ditouroù diwar ho penn er furmskrid amañ dindan.
       button: Kadarnaat
-      failure: Ur gont implijer gant ar jedouer-mañ zo bet kadarnaet dija.
       heading: Kadarnaat kont un implijer
       press confirm button: Pouezit war ar bouton kadarnaat amañ dindan evit gweredekaat ho kont.
+      reconfirm: Ma'z oc'h enskrivet abaoe pell ho pefe kaout ezhomm da <a href="{{reconfirm}}">gas deoc'h-c'hwi ur postel kadarnaat all</a>.
       success: Kadarnaet eo ho kont, trugarez evit bezañ en em enskrivet !
+      unknown token: N'eus ket eus ar jedouer-se war a seblant.
     confirm_email: 
       button: Kadarnaat
       failure: Kadarnaet ez eus bet ur chomlec'h postel dija gant art jedouer-mañ.
       heading: Kadarnaat ur c'hemm chomlec'h postel
       press confirm button: Pouezit war ar bouton kadarnaat evit kadarnaat ho chomlec'h postel nevez.
       success: Kadarnaet eo ho chomlec'h postel, trugarez evit bezañ en em enskrivet !
+    confirm_resend: 
+      failure: N'eo ket bet kavet an implijer {{name}}.
+      success: Kaset hon eus ur postel kadarnaat da {{email}}. Kerkent ha kadarnaet ho kont e c'hallot kregiñ da gartennañ.<br /><br />Ma implijit ur reizhiad enep-strob hag a gas goulennoù kadarnaat, lakait webmaster@openstreetmap.org en ho listenn wenn, mar plij, rak n'omp ket evit respont d'ar posteloù-se.
     filter: 
       not_an_administrator: Ret eo deoc'h bezañ merour evit kas an ober-mañ da benn.
     go_public: 
@@ -1406,22 +1449,29 @@ br:
       summary_no_ip: "{{name}} krouet d'an {{date}}"
       title: Implijerien
     login: 
-      account not active: Ho tigarez, n'eo ket oberiant ho kont c'hoazh. <br/>Klikit war al liamm er postel kadarnaat, mar plij, evit gweredekaat ho kont.
+      account not active: Ho tigarez, n'eo ket oberiant ho kont c'hoazh. <br/>Klikit war al liamm er postel kadarnaat, mar plij, evit gweredekaat ho kont, pe <a href="{{reconfirm}}">goulennit ur postel kadarnaat all</a> .
+      account suspended: Digarezit, arsavet eo bet ho kont abalamour d'un obererezh arvarus.<br />Kit e darempred gant ar {{webmaster}}, mar plij, m'hoc'h eus c'hoant da gaozeal diwar-benn an dra-se.
+      already have: Ur gont OpenStreetMap hoc'h eus dija ? Trugarez da gevreañ.
       auth failure: Ho tigarez, met n'eus ket bet gallet hoc'h anavezout gant an titouroù pourchaset.
+      create account minute: Krouiñ ur gont. Ne bad nemet ur vunutenn.
       create_account: krouiñ ur gont
       email or username: "Chomlec'h postel pe anv implijer :"
       heading: Kevreañ
       login_button: Kevreañ
-      lost password link: Kollet hoc'h eus ho ker-tremen ?
+      lost password link: Ankouaet ho ker-tremen ganeoc'h ?
+      new to osm: Nevez war OpenStreetMap ?
+      notice: <a href="http://www.osmfoundation.org/wiki/License/We_Are_Changing_The_License">Gouzout hiroc'h diwar-benn ar cheñchamant aotre-implijout da zont gant OpenStreetMap</a> (<a href="http://wiki.openstreetmap.org/wiki/ODbL/We_Are_Changing_The_License">troidigezhioù</a>) (<a href="http://wiki.openstreetmap.org/wiki/Talk:ODbL/Upcoming">kendiviz</a>)
       password: "Ger-tremen :"
       please login: Kevreit, mar plij, pe {{create_user_link}}.
+      register now: En em enskrivañ bremañ
       remember: "Derc'hel soñj ac'hanon :"
       title: Kevreañ
+      to make changes: Evit kemmañ roadennoù OpenStreetMap e rankit kaout ur gont.
       webmaster: webmaster
     logout: 
       heading: Kuitaat OpenStreetMap
-      logout_button: Kuitaat
-      title: Kuitaat
+      logout_button: Digevreañ
+      title: Digevreañ
     lost_password: 
       email address: "Chomlec'h postel :"
       heading: Ankouaet hoc'h eus ho ker-tremen ?
@@ -1443,17 +1493,19 @@ br:
       display name description: Emañ hoc'h anv implijer a-wel d'an holl. Se a c'hallit cheñch diwezhatoc'h en ho penndibaboù.
       email address: "Chomlec'h postel :"
       fill_form: Leugnit ar furmskrid hag e kasimp deoc'h ur postel evit gweredekaat ho kont.
-      flash create success message: Krouet eo bet an implijer.  Gwelit ha resevet hoc'h eus ho postel kadarnaat, ha prest e viot da gartennañ diouzhtu.:-)<br /><br />Ho pezet soñj ne c'hallot ket kevreañ keit ha n'ho po ket resevet ar postel kadarnaat ha kadarnaet ho chomlec'h postel.<br /><br />Ma implijit ur reizhiad enep-strob hag a gas goulennoù kadarnaat, lakait webmaster@openstreetmap.org en ho liestenn wenn, mar plij, rak n'omp ket evit respont d'ar posteloù-se.
+      flash create success message: Trugarez deoc'h evit en em enskrivañ ! Kaset hon eus ur postel kadarnaat da {{email}}. Kerkent ha kadarnaet ho kont e c'hallot kregiñ da gartennañ.<br /><br />Ma implijit ur reizhiad enep-strob hag a gas goulennoù kadarnaat, lakait webmaster@openstreetmap.org en ho listenn wenn, mar plij, rak n'omp ket evit respont d'ar posteloù-se.
       heading: Krouiñ ur gont implijer
-      license_agreement: Dre grouiñ ur gont ez asantit e vefe an holl roadennoù a gasit d'ar raktres OpenStreetMap dindan an aotre-implijout <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons license (by-sa)</a> (peurgetket).
+      license_agreement: Pa gadarnaot ho kont e tleot asantiñ da <a href="http://www.osmfoundation.org/wiki/License/Contributor_Terms">ziferadennoù ar c'henlabourer</a>.
       no_auto_account_create: Siwazh n'omp ket evit krouiñ ur gont evidoc'h ent emgefreek.
       not displayed publicly: N'eo ket diskwelet d'an holl (gwelet <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">hor c'harta prevezded</a>)
       password: "Ger-tremen :"
+      terms accepted: Trugarez deoc'h evit bezañ asantet da ziferadennoù nevez ar c'henlabourer !
+      terms declined: Un druez eo deomp gwelet hoc'h eus nac'het degemer Termenoù ar berzhidi nevez. Evit muioc'h a ditouroù, sellit ouzh <a href="{{url}}">ar bajenn wiki-mañ</a>.
       title: Krouiñ ur gont
     no_such_user: 
       body: Ho tigarez, n'eus implijer ebet en anv {{user}}. Gwiriit hag-eñ eo skrivet mat, pe marteze hoc'h eus kliket war ul liamm fall.
       heading: N'eus ket eus an implijer {{user}}
-      title: N'eus ket un implijer evel-se
+      title: N'eus implijer ebet evel hemañ
     popup: 
       friend: Mignon
       nearby mapper: Kartennour en ardremez
@@ -1472,16 +1524,24 @@ br:
     set_home: 
       flash success: Enrollet eo bet lec'hiadur ar gêr
     suspended: 
+      body: "<p>\n  Ho tigarez, arsavet eo bet ho kont abalamour d'un obererezh arvarus.\n</p>\n<p>\nGwiriet e vo an diviz-se a-benn nebeut gant ur merour. Gallout a rit mont e darempred gant ar{{webmaster}} m'hoc'h eus c'hoant da gaozeal diwar-benn an dra-se.\n</p>"
+      heading: Kont arsavet
+      title: Kont arsavet
       webmaster: webmaster
     terms: 
       agree: Mat eo din
+      consider_pd: Ouzhpenn an asant amañ a-us, ez anavezan emañ ma zegasadennoù en domani foran
       consider_pd_why: petra eo se ?
       decline: Nac'h
+      heading: Diferadennoù ar c'henlabourer
       legale_names: 
         france: Bro-C'hall
         italy: Italia
         rest_of_world: Peurrest ar bed
       legale_select: "Mar plij diuzit ar vro e lec'h m'emaoc'h o chom :"
+      read and accept: Lennit ar gevrat amañ dindan, mar plij, ha klikit war ar bouton asantiñ evit kadarnaat eo mat diferadennoù ar gevrat deoc'h evit a sell ho tegasadennoù tremenet ha da zont.
+      title: Diferadennoù ar c'henlabourer
+      you need to accept or decline: Lennit da gentañ Termenoù ar berzhidi nevez ha goude-se nac'hit pe asantit evit gallout kenderc'hel.
     view: 
       activate_user: gweredekaat an implijer-mañ
       add as friend: Ouzhpennañ evel mignon
@@ -1502,6 +1562,7 @@ br:
       hide_user: kuzhat an implijer-mañ
       if set location: Ma lakait ho lec'hiadur e teuio ur gartenn vrav war wel dindani. Gallout a rit lakaat ho lec'hiadur war ho pajenn {{settings_link}}.
       km away: war-hed {{count}} km
+      latest edit: "Kemm ziwezhañ {{ago}} :"
       m away: war-hed {{count}} m
       mapper since: "Kartennour abaoe :"
       moderator_history: gwelet ar stankadurioù roet
index bc54193c48e607a71d9f32515560b2ef61ef9160..614465e74ba9f87c0629437b62d63bd26870cd08 100644 (file)
@@ -1,7 +1,8 @@
 # Messages for Catalan (Català)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: Jmontane
+# Author: Martorell
 # Author: PerroVerd
 # Author: SMP
 # Author: Ssola
@@ -116,7 +117,13 @@ ca:
     navigation: 
       all: 
         next_changeset_tooltip: Conjunt de canvis següent
+        next_node_tooltip: Node següent
+        next_relation_tooltip: Relació següent
+        next_way_tooltip: Via següent
         prev_changeset_tooltip: Conjunt de canvis anterior
+        prev_node_tooltip: Node anterior
+        prev_relation_tooltip: Relació anterior
+        prev_way_tooltip: Via anterior
       user: 
         name_changeset_tooltip: Visualitza les edicions feter per {{user}}
         prev_changeset_tooltip: Edició anterior per l'usuari {{user}}
@@ -201,6 +208,7 @@ ca:
       zoom_or_select: Ampliar o seleccionar una àrea del mapa per veure
     tag_details: 
       tags: "Etiquetes:"
+      wikipedia_link: L'article {{page}} a la Viquipèdia
     timeout: 
       sorry: Hem trigat massa en obtenir les dades pel tipus {{type}} amb identificador {{id}}.
       type: 
@@ -269,6 +277,13 @@ ca:
     view: 
       login: Accés
       save_button: Desa
+  editor: 
+    default: Predeterminat (actualment {{name}})
+    potlatch: 
+      name: Potlatch 1
+    potlatch2: 
+      description: Potlatch 2 (editor al navegador)
+      name: Potlatch 2
   export: 
     start: 
       area_to_export: Àrea a exportar
@@ -407,12 +422,12 @@ ca:
           industrial: Edifici industrial
           public: Edifici públic
           school: Edifici escolar
+          shop: Botiga
           stadium: Estadi
           store: Magatzem
           tower: Torre
           train_station: Estació de tren
           university: Edifici universitari
-          "yes": Edifici
         highway: 
           bus_stop: Parada d'autobús
           cycleway: Ruta per a bicicletes
@@ -544,13 +559,16 @@ ca:
           chemist: Farmàcia
           fish: Peixateria
           florist: Floristeria
+          gift: Botiga de regals
           hairdresser: Perruqueria o barberia
           jewelry: Joieria
           laundry: Bugaderia
           mall: Centre comercial
           market: Mercat
+          optician: Òptica
           shoes: Sabateria
           supermarket: Supermercat
+          toys: Botiga de joguines
           travel_agency: Agència de viatges
         tourism: 
           alpine_hut: Cabanya alpina
@@ -588,9 +606,12 @@ ca:
         cycle_map: Cycle Map
         noname: NoName
   layouts: 
+    documentation: Documentació
+    donate_link_text: donatius
     edit: Modificació
     export: Exporta
     gps_traces: Traces de GPS
+    help: Ajuda
     history: Historial
     home: Inici
     intro_1: L'OpenStreetMap és un mapa editable i lliure de tot el món. Està fet per gent com vós.
@@ -601,7 +622,6 @@ ca:
     logout_tooltip: Sortir
     make_a_donation: 
       text: Fer una donació
-    shop: Botiga
     user_diaries: DIaris de usuari
     view: Veure
     view_tooltip: Visualitza els mapes
@@ -611,6 +631,8 @@ ca:
     foreign: 
       english_link: l'original en anglès
       title: Sobre aquesta traducció
+    native: 
+      title: Sobre aquesta pàgina
   message: 
     delete: 
       deleted: Missatge esborrat
@@ -670,6 +692,8 @@ ca:
       greeting: Hola,
     message_notification: 
       hi: Hola {{to_user}},
+    signup_confirm_html: 
+      more_videos_here: més de vídeos aquí
     signup_confirm_plain: 
       more_videos: "Hi ha més videos aquí:"
   oauth_clients: 
@@ -722,6 +746,9 @@ ca:
     sidebar: 
       close: Tanca
       search_results: Resultats de la cerca
+  time: 
+    formats: 
+      friendly: "%e %B %Y a les %H.%M"
   trace: 
     create: 
       upload_trace: Pujar traça de GPS
@@ -804,12 +831,14 @@ ca:
       visibility: "Visibilitat:"
   user: 
     account: 
+      contributor terms: 
+        link text: què és això?
       current email address: "Adreça de correu electrònic actual:"
       email never displayed publicly: (no es mostrarà mai en públic)
       image: "Imatge:"
       latitude: "Latitud:"
       longitude: "Longitud:"
-      my settings: La meva configuració
+      my settings: Preferències
       new image: Afegir una imatge
       preferred languages: "Llengües preferents:"
       profile description: "Descripció del perfil:"
@@ -872,6 +901,7 @@ ca:
       reset: Restablir contrasenya
       title: Restablir la contrasenya
     terms: 
+      agree: D'acord
       decline: Declinar
       legale_names: 
         france: França
@@ -935,6 +965,7 @@ ca:
       heading: Confirmi la concessió de rol
       title: Confirmi la concessió de rol
     revoke: 
+      are_you_sure: Esteu segur que voleu revocar el rol `{{role}}' de l'usuari `{{name}}'?
       confirm: Confirmar
       heading: Confirmar revocació de rol
       title: Confirmar revocació de rol
index c474d6a55599d9e56fc3ee494818b06bbab0e7ef..4db2858369df853e8f5ed9793cc4f7036102584c 100644 (file)
@@ -1,13 +1,16 @@
 # Messages for Czech (Česky)
 # Exported from translatewiki.net
-# Export driver: syck
+# Export driver: syck-pecl
 # Author: Bilbo
 # Author: Masox
 # Author: Mormegil
 # Author: Mr. Richard Bolla
+# Author: Veritaslibero
 cs: 
   activerecord: 
     attributes: 
+      diary_comment: 
+        body: Text
       diary_entry: 
         language: Jazyk
         latitude: Šířka
@@ -18,27 +21,33 @@ cs:
         friend: Přítel
         user: Uživatel
       message: 
+        body: Text
         recipient: Příjemce
         sender: Odesílatel
-        title: Nadpis
+        title: Předmět
       trace: 
         description: Popis
         latitude: Šířka
         longitude: Délka
         name: Název
+        public: Veřejná
         size: Velikost
         user: Uživatel
         visible: Viditelnost
       user: 
         active: Aktivní
         description: Popis
+        display_name: Zobrazované jméno
         email: E-mail
         languages: Jazyky
         pass_crypt: Heslo
     models: 
+      acl: Seznam přístupových práv
       changeset: Sada změn
       changeset_tag: Tag sady změn
       country: Země
+      diary_comment: Komentář k deníčku
+      diary_entry: Deníčkový záznam
       friend: Přítel
       language: Jazyk
       message: Zpráva
@@ -55,10 +64,20 @@ cs:
       relation: Relace
       relation_member: Člen relace
       relation_tag: Tag relace
+      trace: Stopa
+      tracepoint: Bod stopy
+      tracetag: Značka stopy
       user: Uživatel
+      user_preference: Uživatelské nastavení
+      user_token: Uživatelský token
       way: Cesta
       way_node: Uzel cesty
       way_tag: Tag cesty
+  application: 
+    require_cookies: 
+      cookies_needed: Vypadá to, že máte zakázány cookies – před pokračováním si je v prohlížeči zapněte.
+    setup_user_auth: 
+      blocked: Váš přístup k API byl zablokován. Další informace zjistíte přihlášením do webového rozhraní.
   browse: 
     changeset: 
       changeset: "Sada změn: {{id}}"
@@ -268,12 +287,17 @@ cs:
   diary_entry: 
     diary_comment: 
       comment_from: Komentář od {{link_user}} z {{comment_created_at}}
+      confirm: Potvrdit
+      hide_link: Skrýt tento komentář
     diary_entry: 
       comment_count: 
         few: "{{count}} komentáře"
         one: 1 komentář
         other: "{{count}} komentářů"
       comment_link: Okomentovat tento zápis
+      confirm: Potvrdit
+      edit_link: Upravit tento záznam
+      hide_link: Skrýt tento záznam
       posted_by: Zapsal {{link_user}} {{created}} v jazyce {{language_link}}
       reply_link: Odpovědět na tento zápis
     edit: 
@@ -285,6 +309,7 @@ cs:
       marker_text: Místo deníčkového záznamu
       save_button: Uložit
       subject: "Předmět:"
+      title: Upravit deníčkový záznam
       use_map_link: použít mapu
     feed: 
       all: 
@@ -300,7 +325,9 @@ cs:
       in_language_title: Deníčkové záznamy v jazyce {{language}}
       new: Nový záznam do deníčku
       new_title: Sepsat nový záznam do vašeho uživatelského deníčku
+      newer_entries: Novější záznamy
       no_entries: Žádné záznamy v deníčku
+      older_entries: Starší záznamy
       recent_entries: "Aktuální deníčkové záznamy:"
       title: Deníčky uživatelů
       user_title: Deníček uživatele {{user}}
@@ -310,6 +337,10 @@ cs:
       view: Zobrazit
     new: 
       title: Nový záznam do deníčku
+    no_such_entry: 
+      body: Je mi líto, ale žádný deníčkový záznam či komentář s ID {{id}} neexistuje. Zkontrolujte překlepy nebo jste možná klikli na chybný odkaz.
+      heading: Záznam s ID {{id}} neexistuje
+      title: Deníčkový záznam nenalezen
     no_such_user: 
       body: Lituji, ale uživatel se jménem {{user}} neexistuje. Zkontrolujte překlepy nebo jste možná klikli na chybný odkaz.
       heading: Uživatel {{user}} neexistuje
@@ -321,6 +352,17 @@ cs:
       save_button: Uložit
       title: Deníček uživatele {{user}} | {{title}}
       user_title: Deníček uživatele {{user}}
+  editor: 
+    default: Výchozí (v současné době {{name}})
+    potlatch: 
+      description: Potlatch 1 (editor v prohlížeči)
+      name: Potlatch 1
+    potlatch2: 
+      description: Potlatch 2 (editor v prohlížeči)
+      name: Potlatch 2
+    remote: 
+      description: Dálkové ovládání (JOSM nebo Merkaartor)
+      name: Dálkové ovládání
   export: 
     start: 
       add_marker: Přidat do mapy značku
@@ -400,52 +442,81 @@ cs:
           atm: Bankomat
           bank: Banka
           bench: Lavička
+          bicycle_parking: Parkoviště pro kola
           bicycle_rental: Půjčovna kol
+          brothel: Nevěstinec
+          bureau_de_change: Směnárna
           bus_station: Autobusové nádraží
           cafe: Kavárna
+          car_wash: Automyčka
           cinema: Kino
           courthouse: Soud
           crematorium: Krematorium
           dentist: Zubař
+          doctors: Lékař
+          dormitory: Kolej
+          drinking_water: Pitná voda
           driving_school: Autoškola
           embassy: Velvyslanectví
+          fast_food: Rychlé občerstvení
           ferry_terminal: Přístaviště přívozu
+          fire_hydrant: Požární hydrant
           fire_station: Hasičská stanice
           fountain: Fontána
           fuel: Čerpací stanice
           grave_yard: Hřbitov
+          health_centre: Zdravotní středisko
           hospital: Nemocnice
+          hotel: Hotel
           hunting_stand: Posed
+          ice_cream: Zmrzlinárna
           kindergarten: Mateřská škola
           library: Knihovna
+          marketplace: Tržiště
           mountain_rescue: Horská služba
+          nursing_home: Pečovatelský dům
           park: Park
           parking: Parkoviště
+          pharmacy: Lékárna
           place_of_worship: Náboženský objekt
           police: Policie
           post_box: Poštovní schránka
           post_office: Pošta
           prison: Věznice
           pub: Hospoda
+          public_building: Veřejná budova
+          recycling: Tříděný odpad
           restaurant: Restaurace
           retirement_home: Domov důchodců
           school: Škola
+          shelter: Přístřeší
+          studio: Studio
           telephone: Telefonní automat
           theatre: Divadlo
           toilets: Toalety
           townhall: Radnice
+          vending_machine: Prodejní automat
+          veterinary: Veterinární ordinace
+          waste_basket: Odpadkový koš
         boundary: 
           administrative: Administrativní hranice
         building: 
+          church: Kostel
           city_hall: Radnice
+          dormitory: Kolej
           entrance: Vstup do objektu
+          garage: Garáž
           hospital: Nemocniční budova
+          industrial: Průmyslová budova
+          office: Kancelářská budova
           public: Veřejná budova
+          school: Školní budova
           stadium: Stadion
           tower: Věž
           train_station: Železniční stanice
-          "yes": Budova
+          university: Univerzitní budova
         highway: 
+          bridleway: Koňská stezka
           bus_guideway: Autobusová dráha
           bus_stop: Autobusová zastávka
           construction: Silnice ve výstavbě
@@ -455,12 +526,16 @@ cs:
           ford: Brod
           gate: Brána
           living_street: Obytná zóna
+          minor: Vedlejší silnice
           motorway: Dálnice
           motorway_junction: Dálniční křižovatka
           motorway_link: Dálnice
+          path: Pěšina
+          pedestrian: Pěší zóna
           platform: Nástupiště
           primary: Silnice první třídy
           primary_link: Silnice první třídy
+          raceway: Závodní dráha
           residential: Ulice
           secondary: Silnice druhé třídy
           secondary_link: Silnice druhé třídy
@@ -468,23 +543,35 @@ cs:
           services: Dálniční odpočívadlo
           steps: Schody
           tertiary: Silnice třetí třídy
+          track: Cesta
           trunk: Významná silnice
           trunk_link: Významná silnice
+          unclassified: Silnice
           unsurfaced: Nezpevněná cesta
         historic: 
+          archaeological_site: Archeologické naleziště
           battlefield: Bojiště
+          boundary_stone: Hraniční kámen
           building: Budova
           memorial: Památník
           museum: Muzeum
+          ruins: Zřícenina
+          wayside_shrine: Boží muka
           wreck: Vrak
         landuse: 
           allotments: Zahrádkářská kolonie
           cemetery: Hřbitov
+          conservation: Chráněné území
           construction: Staveniště
           landfill: Skládka
           military: Vojenský prostor
+          mountain: Hory
           piste: Sjezdovka
+          quarry: Lom
+          reservoir: Zásobník na vodu
+          residential: Rezidenční oblast
           vineyard: Vinice
+          wetland: Mokřad
         leisure: 
           garden: Zahrada
           golf_course: Golfové hřiště
@@ -506,6 +593,7 @@ cs:
           cave_entrance: Vstup do jeskyně
           cliff: Útes
           coastline: Pobřežní čára
+          crater: Kráter
           fell: See http://wiki.openstreetmap.org/wiki/Tag:natural=fell
           fjord: Fjord
           geyser: Gejzír
@@ -548,31 +636,56 @@ cs:
           town: Město
           village: Vesnice
         railway: 
+          abandoned: Zrušená železniční trať
+          construction: Železnice ve výstavbě
+          disused: Nepoužívaná železniční trať
+          disused_station: Nepoužívaná železniční stanice
           funicular: Lanová dráha
           halt: Železniční zastávka
+          junction: Kolejové rozvětvení
           level_crossing: Železniční přejezd
           light_rail: Rychlodráha
           monorail: Monorail
           narrow_gauge: Úzkorozchodná dráha
+          platform: Železniční nástupiště
+          preserved: Historická železnice
           spur: Železniční vlečka
+          station: Železniční stanice
           subway: Stanice metra
           subway_entrance: Vstup do metra
+          switch: Výhybka
           tram: Tramvajová trať
           tram_stop: Tramvajová zastávka
         shop: 
           bakery: Pekařství
+          bicycle: Cykloobchod
+          books: Knihkupectví
+          butcher: Řeznictví
+          car_repair: Autoservis
+          carpet: Obchod s koberci
+          copyshop: Copycentrum
+          dry_cleaning: Chemická čistírna
+          estate_agent: Realitní kancelář
+          fish: Rybárna
+          florist: Květinářství
+          food: Potraviny
+          funeral_directors: Pohřební služba
           hairdresser: Kadeřnictví
           jewelry: Klenotnictví
+          laundry: Prádelna
           optician: Oční optika
+          outdoor: Outdoorový obchod
+          shoes: Obuvnictví
           toys: Hračkářství
           travel_agency: Cestovní kancelář
+          wine: Vinárna
         tourism: 
           alpine_hut: Vysokohorská chata
           artwork: Umělecké dílo
           attraction: Turistická atrakce
           camp_site: Tábořiště, kemp
           caravan_site: Autokemping
-          chalet: Velká chata
+          chalet: Chalupa
           guest_house: Penzion
           hostel: Hostel
           hotel: Hotel
@@ -586,13 +699,20 @@ cs:
           viewpoint: Místo s dobrým výhledem
           zoo: Zoo
         waterway: 
+          boatyard: Loděnice
+          canal: Kanál
+          dam: Přehrada
           derelict_canal: Opuštěný kanál
+          ditch: Meliorační kanál
           lock: Zdymadlo
           lock_gate: Vrata plavební komory
+          rapids: Peřeje
           river: Řeka
           riverbank: Břeh řeky
+          stream: Potok
           wadi: Vádí
           waterfall: Vodopád
+          weir: Jez
   javascripts: 
     map: 
       base: 
@@ -606,13 +726,23 @@ cs:
       history_tooltip: Zobrazit editace této oblasti
       history_zoom_alert: Zobrazit editace této oblasti můžete jen ve větším přiblížení
   layouts: 
+    community_blogs: Komunitní blogy
+    community_blogs_title: Blogy členů komunity OpenStreetMap
     copyright: Copyright &amp; licence
+    documentation: Dokumentace
+    documentation_title: Dokumentace k projektu
+    donate: Podpořte OpenStreetMap {{link}} Fondu na upgrady hardwaru
+    donate_link_text: příspěvkem
     edit: Upravit
+    edit_with: Upravit pomocí {{editor}}
     export: Export
     export_tooltip: Exportovat mapová data
+    foundation: Nadace
+    foundation_title: Nadace OpenStreetMap Foundation
     gps_traces: GPS stopy
+    gps_traces_tooltip: Spravovat GPS stopy
     help: Nápověda
-    help_and_wiki: "{{help}} & {{wiki}}"
+    help_centre: Centrum nápovědy
     help_title: Stránky s nápovědou k tomuto projektu
     history: Historie
     home: domů
@@ -640,12 +770,8 @@ cs:
     make_a_donation: 
       text: Pošlete příspěvek
       title: Podpořte OpenStreetMap finančním příspěvkem
-    news_blog: Novinkový blog
-    news_blog_tooltip: Blog s novinkami o OpenStreetMap, svobodných geografických datech atd.
     osm_offline: Databáze OpenStreetMap je momentálně kvůli probíhající neodkladné údržbě mimo provoz.
     osm_read_only: Databáze OpenStreetMap je momentálně kvůli probíhající neodkladné údržbě pouze pro čtení.
-    shop: Obchod
-    shop_tooltip: Obchod se zbožím s logem OpenStreetMap
     sign_up: zaregistrovat se
     sign_up_tooltip: Vytvořit si uživatelský účet pro editaci
     tag_line: Otevřená wiki-mapa světa
@@ -698,6 +824,14 @@ cs:
       send_message_to: Poslat novou zprávu uživateli {{name}}
       subject: Předmět
       title: Odeslat zprávu
+    no_such_message: 
+      body: Je mi líto, ale žádná zpráva s tímto ID neexistuje.
+      heading: Zpráva neexistuje
+      title: Zpráva neexistuje
+    no_such_user: 
+      body: Je mi líto, ale žádný uživatel s tímto jménem neexistuje.
+      heading: Uživatel nenalezen
+      title: Uživatel nenalezen
     outbox: 
       date: Datum
       inbox: doručená pošta
@@ -718,6 +852,7 @@ cs:
       reading_your_sent_messages: Čtení odeslaných zpráv
       reply_button: Odpovědět
       subject: Předmět
+      title: Čtení zprávy
       to: Komu
       unread_button: Označit jako nepřečtené
       wrong_user: Jste přihlášeni jako „{{user}}“, ale zpráva, kterou si chcete přečíst, není ani od, ani pro tohoto uživatele. Pokud si ji chcete přečíst, přihlaste se pod správným účtem.
@@ -726,27 +861,89 @@ cs:
     sent_message_summary: 
       delete_button: Smazat
   notifier: 
+    diary_comment_notification: 
+      footer: Také si můžete komentář přečíst na {{readurl}}, komentovat na {{commenturl}} nebo odpovědět na {{replyurl}}
+      header: "{{from_user}} okomentoval váš nedávný záznam v deníčku na OpenStreetMap s předmětem {{subject}}:"
+      hi: Ahoj, uživateli {{to_user}},
+      subject: "[OpenStreetMap] {{user}} okomentoval váš deníčkový záznam"
     email_confirm: 
       subject: "[OpenStreetMap] Potvrzení vaší e-mailové adresy"
+    email_confirm_html: 
+      click_the_link: Pokud jste to byli vy, potvrďte změnu kliknutím na následující odkaz.
+      greeting: Ahoj,
+      hopefully_you: Někdo (snad vy) požádal o změnu e-mailové adresy na serveru {{server_url}} na {{new_address}}.
     email_confirm_plain: 
-      greeting: Dobrý den,
+      click_the_link: Pokud jste to byli vy, potvrďte změnu kliknutím na následující odkaz.
+      greeting: Ahoj,
+      hopefully_you_1: Někdo (snad vy) požádal o změnu e-mailové adresy na serveru
+      hopefully_you_2: "{{server_url}} na {{new_address}}."
     friend_notification: 
       befriend_them: Můžete si ho/ji také přidat jako přítele na {{befriendurl}}.
       had_added_you: "{{user}} si vás na OpenStreetMap přidal(a) jako přítele."
       see_their_profile: Jeho/její profil si můžete prohlédnout na {{userurl}}.
       subject: "[OpenStreetMap] {{user}} si vás přidal jako přítele"
+    gpx_notification: 
+      and_no_tags: a bez štítků
+      and_the_tags: "a následujícími štítky:"
+      failure: 
+        failed_to_import: "se nepodařilo nahrát. Chybové hlášení následuje:"
+        more_info_1: Další informace o chybách při importu GPX a rady, jak se
+        more_info_2: "jim vyhnout, naleznete na:"
+        subject: "[OpenStreetMap] Neúspěšný import GPX"
+      greeting: Ahoj,
+      success: 
+        loaded_successfully: se úspěšně nahrál s {{trace_points}} z možných {{possible_points}} bodů.
+        subject: "[OpenStreetMap] Úspěšný import GPX"
+      with_description: s popisem
+      your_gpx_file: Vypadá to, že váš GPX soubor
     lost_password: 
       subject: "[OpenStreetMap] Žádost o nové heslo"
     lost_password_html: 
       click_the_link: Pokud tedy chcete, kliknutím na níže uvedený odkaz získáte nové heslo.
+      greeting: Ahoj,
       hopefully_you: Někdo (patrně vy) požádal o vygenerování nového hesla pro uživatele serveru openstreetmap.org s touto e-mailovou adresou.
+    lost_password_plain: 
+      click_the_link: Pokud tedy chcete, kliknutím na níže uvedený odkaz získáte nové heslo.
+      greeting: Ahoj,
+      hopefully_you_1: Někdo (patrně vy) požádal o vygenerování nového hesla pro uživatele
+      hopefully_you_2: serveru openstreetmap.org s touto e-mailovou adresou.
     message_notification: 
       footer1: Také si můžete zprávu přečíst na {{readurl}}
       footer2: a můžete odpovědět na {{replyurl}}
       header: "{{from_user}} vám poslal(a) prostřednictvím OpenStreetMap zprávu s předmětem {{subject}}:"
       hi