Merged I18N branch to head.

This commit is contained in:
Tom Hughes 2009-05-31 17:26:41 +00:00
commit d0b845fc60
204 changed files with 11032 additions and 504 deletions

View file

@ -100,6 +100,19 @@ class ApplicationController < ActionController::Base
response.headers['Error'] = message
render :text => message, :status => status
end
def set_locale
if @user
if !@user.languages.empty?
request.user_preferred_languages = @user.languages
elsif !request.user_preferred_languages.empty?
@user.languages = request.user_preferred_languages
@user.save
end
end
I18n.locale = request.compatible_language_from(I18n.available_locales)
end
def api_call_handle_error
begin
@ -134,7 +147,6 @@ class ApplicationController < ActionController::Base
end
private
# extract authorisation credentials from headers, returns user = nil if none
def get_auth_data
if request.env.has_key? 'X-HTTP_AUTHORIZATION' # where mod_rewrite might have put it

View file

@ -2,6 +2,7 @@ class BrowseController < ApplicationController
layout 'site'
before_filter :authorize_web
before_filter :set_locale
before_filter { |c| c.check_database_readable(true) }
def start
@ -63,7 +64,7 @@ class BrowseController < ApplicationController
@way_pages, @ways = paginate(:old_ways, :conditions => {:changeset_id => @changeset.id}, :per_page => 20, :parameter => 'way_page')
@relation_pages, @relations = paginate(:old_relations, :conditions => {:changeset_id => @changeset.id}, :per_page => 20, :parameter => 'relation_page')
@title = "Changeset | #{@changeset.id}"
@title = "#{I18n.t('browse.changeset.title')} | #{@changeset.id}"
@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 }] )
rescue ActiveRecord::RecordNotFound

View file

@ -6,6 +6,7 @@ class ChangesetController < ApplicationController
session :off, :except => [:list, :list_user, :list_bbox]
before_filter :authorize_web, :only => [:list, :list_user, :list_bbox]
before_filter :set_locale, :only => [:list, :list_user, :list_bbox]
before_filter :authorize, :only => [:create, :update, :delete, :upload, :include, :close]
before_filter :require_public_data, :only => [:create, :update, :delete, :upload, :include, :close]
before_filter :check_api_writable, :only => [:create, :update, :delete, :upload, :include]

View file

@ -5,5 +5,4 @@ class ChangesetTagController < ApplicationController
@tags = ChangesetTag.find(:all, :limit => 11, :conditions => ["match(v) against (?)", params[:query][:query].to_s] )
end
end

View file

@ -2,12 +2,13 @@ class DiaryEntryController < ApplicationController
layout 'site', :except => :rss
before_filter :authorize_web
before_filter :set_locale
before_filter :require_user, :only => [:new, :edit]
before_filter :check_database_readable
before_filter :check_database_writable, :only => [:new, :edit]
def new
@title = 'New diary entry'
@title = I18n.t('diary_entry.list.new')
if params[:diary_entry]
@diary_entry = DiaryEntry.new(params[:diary_entry])
@ -19,23 +20,21 @@ class DiaryEntryController < ApplicationController
render :action => 'edit'
end
else
@diary_entry = DiaryEntry.new(:language_code => @user.preferred_language)
render :action => 'edit'
end
end
def edit
@title= 'Edit diary entry'
@title= I18n.t('diary_entry.edit.title')
@diary_entry = DiaryEntry.find(params[:id])
if @user != @diary_entry.user
redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
elsif params[:diary_entry]
@diary_entry.title = params[:diary_entry][:title]
@diary_entry.body = params[:diary_entry][:body]
@diary_entry.latitude = params[:diary_entry][:latitude]
@diary_entry.longitude = params[:diary_entry][:longitude]
if @diary_entry.save
params[:diary_entry][:language] = Language.find_by_code(params[:diary_entry][:language])
params[:diary_entry][:language] = Language.find_by_code("en") if params[:diary_entry][:language].nil?
if @diary_entry.update_attributes(params[:diary_entry])
redirect_to :controller => 'diary_entry', :action => 'view', :id => params[:id]
end
end
@ -71,7 +70,7 @@ class DiaryEntryController < ApplicationController
render :action => 'no_such_user', :status => :not_found
end
else
@title = "Users' diaries"
@title = I18n.t('diary_entry.list.title')
@entry_pages, @entries = paginate(:diary_entries, :include => :user,
:conditions => ["users.visible = ?", true],
:order => 'created_at DESC',
@ -93,6 +92,15 @@ class DiaryEntryController < ApplicationController
else
render :nothing => true, :status => :not_found
end
elsif params[:language]
@entries = DiaryEntry.find(:all, :include => :user,
:conditions => ["users.visible = ? AND diary_entries.language = ?", true, params[:language]],
:order => 'created_at DESC', :limit => 20)
@title = "OpenStreetMap diary entries in #{params[:language]}"
@description = "Recent diary entries from users of OpenStreetMap"
@link = "http://#{SERVER_URL}/diary/#{params[:language]}"
render :content_type => Mime::RSS
else
@entries = DiaryEntry.find(:all, :include => :user,
:conditions => ["users.visible = ?", true],
@ -110,7 +118,11 @@ class DiaryEntryController < ApplicationController
if user
@entry = DiaryEntry.find(:first, :conditions => ['user_id = ? AND id = ?', user.id, params[:id]])
@title = "Users' diaries | #{params[:display_name]}"
if @entry
@title = "Users' diaries | #{params[:display_name]}"
else
render :action => 'no_such_entry', :status => :not_found
end
else
@not_found_user = params[:display_name]

View file

@ -1,4 +1,8 @@
class ExportController < ApplicationController
before_filter :authorize_web
before_filter :set_locale
def start
end

View file

@ -2,6 +2,7 @@ class MessageController < ApplicationController
layout 'site'
before_filter :authorize_web
before_filter :set_locale
before_filter :require_user
before_filter :check_database_readable
before_filter :check_database_writable, :only => [:new, :reply, :mark]

View file

@ -1,5 +1,6 @@
class SiteController < ApplicationController
before_filter :authorize_web
before_filter :set_locale
before_filter :require_user, :only => [:edit]
def export

View file

@ -2,6 +2,7 @@ class TraceController < ApplicationController
layout 'site'
before_filter :authorize_web
before_filter :set_locale
before_filter :require_user, :only => [:mine, :create, :edit, :delete, :make_public]
before_filter :authorize, :only => [:api_details, :api_data, :api_create]
before_filter :check_database_readable, :except => [:api_details, :api_data, :api_create]

View file

@ -3,6 +3,7 @@ class UserController < ApplicationController
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]
before_filter :require_user, :only => [:set_home, :account, :go_public, :make_friend, :remove_friend, :upload_image, :delete_image]
before_filter :check_database_readable, :except => [:api_details, :api_gpx_files]
before_filter :check_database_writable, :only => [:login, :new, :set_home, :account, :go_public, :make_friend, :remove_friend, :upload_image, :delete_image]
@ -22,9 +23,10 @@ class UserController < ApplicationController
@user.data_public = true
@user.description = "" if @user.description.nil?
@user.creation_ip = request.remote_ip
@user.languages = request.user_preferred_languages
if @user.save
flash[:notice] = "User was successfully created. Check your email for a confirmation note, and you\'ll be mapping in no time :-)<br /><br />Please note that you won't be able to login until you've received and confirmed your email address.<br /><br />If you use an antispam system which sends confirmation requests then please make sure you whitelist webmaster@openstreetmap.org as we are unable to reply to any confirmation requests."
flash[:notice] = I18n.t('user.new.flash create success message')
Notifier.deliver_signup_confirm(@user, @user.tokens.create)
redirect_to :action => 'login'
else
@ -48,15 +50,18 @@ class UserController < ApplicationController
end
@user.description = params[:user][:description]
@user.languages = params[:user][:languages].split(",")
@user.home_lat = params[:user][:home_lat]
@user.home_lon = params[:user][:home_lon]
if @user.save
set_locale
if params[:user][:email] == @user.new_email
@notice = "User information updated successfully. Check your email for a note to confirm your new email address."
flash[:notice] = I18n.t('user.account.flash update success confirm needed')
Notifier.deliver_email_confirm(@user, @user.tokens.create)
else
@notice = "User information updated successfully."
flash[:notice] = I18n.t('user.account.flash update success')
end
end
end
@ -67,7 +72,7 @@ class UserController < ApplicationController
@user.home_lat = params[:user][:home_lat].to_f
@user.home_lon = params[:user][:home_lon].to_f
if @user.save
flash[:notice] = "Home location saved successfully."
flash[:notice] = I18n.t('user.set_home.flash success')
redirect_to :controller => 'user', :action => 'account'
end
end
@ -76,27 +81,27 @@ class UserController < ApplicationController
def go_public
@user.data_public = true
@user.save
flash[:notice] = 'All your edits are now public.'
flash[:notice] = I18n.t('user.go_public.flash success')
redirect_to :controller => 'user', :action => 'account', :display_name => @user.display_name
end
def lost_password
@title = 'lost password'
@title = I18n.t('user.lost_password.title')
if params[:user] and params[:user][:email]
user = User.find_by_email(params[:user][:email], :conditions => {:visible => true})
if user
token = user.tokens.create
Notifier.deliver_lost_password(user, token)
@notice = "Sorry you lost it :-( but an email is on its way so you can reset it soon."
flash[:notice] = I18n.t('user.lost_password.notice.email on way')
else
@notice = "Couldn't find that email address, sorry."
flash[:notice] = I18n.t('user.lost_password.notice email cannot find')
end
end
end
def reset_password
@title = 'reset password'
@title = I18n.t('user.reset_password.title')
if params['token']
token = UserToken.find_by_token(params[:token])
if token
@ -109,9 +114,9 @@ class UserController < ApplicationController
user.save!
token.destroy
Notifier.deliver_reset_password(user, pass)
flash[:notice] = "Your password has been changed and is on its way to your mailbox :-)"
flash[:notice] = I18n.t('user.reset_password.flash changed check mail')
else
flash[:notice] = "Didn't find that token, check the URL maybe?"
flash[:notice] = I18n.t('user.reset_password.flash token bad')
end
end

View file

@ -1,15 +1,18 @@
class DiaryEntry < ActiveRecord::Base
belongs_to :user
belongs_to :language, :foreign_key => 'language_code'
has_many :diary_comments, :include => :user,
:conditions => ["users.visible = ?", true],
:order => "diary_comments.id"
validates_presence_of :title, :body
validates_length_of :title, :within => 1..255
validates_length_of :language, :within => 2..3, :allow_nil => true
#validates_length_of :language, :within => 2..5, :allow_nil => false
validates_numericality_of :latitude, :allow_nil => true,
:greater_than_or_equal_to => -90, :less_than_or_equal_to => 90
validates_numericality_of :longitude, :allow_nil => true,
:greater_than_or_equal_to => -180, :less_than_or_equal_to => 180
validates_associated :user
validates_associated :language
end

View file

@ -108,6 +108,7 @@ private
def common_headers(recipient)
recipients recipient.email
locale recipient.preferred_language_from(I18n.available_locales)
from "webmaster@openstreetmap.org"
headers "return-path" => "bounces@openstreetmap.org",
"Auto-Submitted" => "auto-generated"

View file

@ -78,6 +78,22 @@ class User < ActiveRecord::Base
return el1
end
def languages
attribute_present?(:languages) ? read_attribute(:languages).split(",") : []
end
def languages=(languages)
write_attribute(:languages, languages.join(","))
end
def preferred_language
languages.find { |l| Language.find(:first, :conditions => { :code => l }) }
end
def preferred_language_from(array)
(languages & array.collect { |i| i.to_s }).first
end
def nearby(radius = 50, num = 10)
if self.home_lon and self.home_lat
gc = OSM::GreatCircle.new(self.home_lat, self.home_lon)

View file

@ -1,18 +1,18 @@
<table>
<tr>
<th>Created at:</th>
<td><%= h(changeset_details.created_at) %></td>
<th><%= t 'browse.changeset_details.created_at' %></th>
<td><%= l changeset_details.created_at %></td>
</tr>
<tr>
<th>Closed at:</th>
<td><%= h(changeset_details.closed_at) %></td>
<th><%= t 'browse.changeset_details.closed_at' %></th>
<td><%= l changeset_details.closed_at %></td>
</tr>
<% if changeset_details.user.data_public? %>
<tr>
<th>Belongs to:</th>
<th><%= t 'browse.changeset_details.belongs_to' %></th>
<td><%= link_to h(changeset_details.user.display_name), :controller => "user", :action => "view", :display_name => changeset_details.user.display_name %></td>
</tr>
<% end %>
@ -20,9 +20,9 @@
<%= render :partial => "tag_details", :object => changeset_details %>
<tr>
<th>Bounding box:</th>
<th><%= t 'browse.changeset_details.bounding_box' %></th>
<% unless changeset_details.has_valid_bbox? %>
<td>No bounding box has been stored for this changeset.</td>
<td><%= t 'browse.changeset_details.no_bounding_box' %></td>
<% else
minlon = changeset_details.min_lon/GeoRecord::SCALE.to_f
minlat = changeset_details.min_lat/GeoRecord::SCALE.to_f
@ -36,7 +36,7 @@
</tr>
<tr>
<td><%=minlon -%></td>
<td>(<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='show area box'>box</a>)</td>
<td>(<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='<%= t 'browse.changeset_details.show_area_box' %>'><%= t 'browse.changeset_details.box' %></a>)</td>
<td><%=maxlon -%></td>
</tr>
<tr>
@ -49,7 +49,7 @@
<% unless @nodes.empty? %>
<tr valign="top">
<th>Has the following <%= @node_pages.item_count %> nodes:</th>
<th><%= t 'browse.changeset_details.has_nodes', :node_count => @node_pages.item_count %></th>
<td>
<table cellpadding="0">
<% @nodes.each do |node| %>
@ -63,7 +63,7 @@
<% unless @ways.empty? %>
<tr valign="top">
<th>Has the following <%= @way_pages.item_count %> ways:</th>
<th><%= t 'browse.changeset_details.has_ways', :way_count => @way_pages.item_count %></th>
<td>
<table cellpadding="0">
<% @ways.each do |way| %>
@ -80,7 +80,7 @@
<% unless @relations.empty? %>
<tr valign="top">
<th>Has the following <%= @relation_pages.item_count %> relations:</th>
<th><%= t 'browse.changeset_details.has_relations', :relation_count => @relation_pages.item_count %></th>
<td>
<table cellpadding="0">
<% @relations.each do |relation| %>

View file

@ -1,22 +1,22 @@
<tr>
<th>Edited at:</th>
<td><%= h(common_details.timestamp) %></td>
<th><%= t 'browse.common_details.edited_at' %></th>
<td><%= l common_details.timestamp %></td>
</tr>
<% if common_details.changeset.user.data_public? %>
<tr>
<th>Edited by:</th>
<th><%= t 'browse.common_details.edited_by' %></th>
<td><%= link_to h(common_details.changeset.user.display_name), :controller => "user", :action => "view", :display_name => common_details.changeset.user.display_name %></td>
</tr>
<% end %>
<tr>
<th>Version:</th>
<th><%= t 'browse.common_details.version' %></th>
<td><%= h(common_details.version) %></td>
</tr>
<tr>
<th>In changeset:</th>
<th><%= t 'browse.common_details.in_changeset' %></th>
<td><%= link_to common_details.changeset_id, :action => :changeset, :id => common_details.changeset_id %></td>
</tr>

View file

@ -1,8 +1,8 @@
<tr>
<td>
<%= link_to "Relation " + h(printable_name(containing_relation.relation)), :action => "relation", :id => containing_relation.relation.id.to_s %>
<%= link_to t('browse.containing_relation.relation', :relation_name => h(printable_name(containing_relation.relation))), :action => "relation", :id => containing_relation.relation.id.to_s %>
<% unless containing_relation.member_role.blank? %>
(as <%= h(containing_relation.member_role) %>)
<%= t 'browse.containing_relation.relation_as', :relation_role => h(containing_relation.member_role) %>
<% end %>
</td>
</tr>

View file

@ -5,10 +5,10 @@
<% if map.instance_of? Changeset or map.visible %>
<div id="small_map" style="width:250px; height: 300px; border: solid 1px black">
</div>
<span id="loading">Loading...</span>
<span id="loading"><%= t 'browse.map.loading' %></span>
<a id="larger_map" href=""></a>
<% else %>
Deleted
<%= t 'browse.map.deleted' %>
<% end %>
</td>
<script type="text/javascript">
@ -30,7 +30,7 @@
$("loading").innerHTML = "";
$("larger_map").href = '/?minlon='+minlon+'&minlat='+minlat+'&maxlon='+maxlon+'&maxlat='+maxlat+'&box=yes';
$("larger_map").innerHTML = "View Larger Map";
$("larger_map").innerHTML = "<%= t 'browse.map.view_larger_map' %>";
<% else %>
var obj_type = "<%= map.class.name.downcase %>";
var obj_id = <%= map.id %>;
@ -63,7 +63,7 @@
var center = getMapCenter();
$("larger_map").href = '/?lat='+center.lat+'&lon='+center.lon+'&zoom='+this.map.getZoom();
$("larger_map").innerHTML = "View Larger Map";
$("larger_map").innerHTML = "<%= t 'browse.map.view_larger_map' %>";
} else {
$("small_map").style.display = "none";
}

View file

@ -3,13 +3,13 @@
<%= render :partial => "common_details", :object => node_details %>
<tr>
<th>Coordinates:</th>
<td><div class="geo"><a href="/?lat=<%= h(node_details.lat) %>&lon=<%= h(node_details.lon) %>&zoom=18"><span class="latitude"><%= h(node_details.lat) %></span>, <span class="longitude"><%= h(node_details.lon) %></span></a></div></td>
<th><%= t 'browse.node_details.coordinates' %></th>
<td><div class="geo"><%= link_to ("<span class='latitude'>#{number_with_delimiter(node_details.lat)}</span>, <span class='longitude'>#{number_with_delimiter(node_details.lon)}</span>"), {:controller => 'site', :action => 'index', :lat => h(node_details.lat), :lon => h(node_details.lon), :zoom => "18"} %></div></td>
</tr>
<% unless node_details.ways.empty? and node_details.containing_relation_members.empty? %>
<tr valign="top">
<th>Part of:</th>
<th><%= t 'browse.node_details.part_of' %></th>
<td>
<table cellpadding="0">
<% node_details.ways.each do |way| %>

View file

@ -1,12 +1,12 @@
<tr><td colspan='2'>
<% current_page = pages.current_page %>
Showing page
<%= t'browse.paging_nav.showing_page' %>
<%= current_page.number %> (<%= current_page.first_item %><%
if (current_page.first_item < current_page.last_item) # if more than 1 trace on page
%>-<%= current_page.last_item %><%
end %>
of <%= pages.item_count %>)
<%= t'browse.paging_nav.of'%> <%= pages.item_count %>)
<% if pages.page_count > 1 %>
| <%= pagination_links_each(pages, {}) { |n| link_to_page(n, page_param) } %>

View file

@ -4,7 +4,7 @@
<% unless relation_details.relation_members.empty? %>
<tr valign="top">
<th>Members:</th>
<th><%= t'browse.relation_details.members' %></th>
<td>
<table cellpadding="0">
<%= render :partial => "relation_member", :collection => relation_details.relation_members %>
@ -15,7 +15,7 @@
<% unless relation_details.containing_relation_members.empty? %>
<tr>
<th>Part of:</th>
<th><%= t'browse.relation_details.part_of' %></th>
<td>
<table cellpadding="0">
<%= render :partial => "containing_relation", :collection => relation_details.containing_relation_members %>

View file

@ -3,7 +3,7 @@
<%= relation_member.member_type.capitalize %>
<%= link_to h(printable_name(relation_member.member)), :action => relation_member.member_type.downcase, :id => relation_member.member_id.to_s %>
<% unless relation_member.member_role.blank? %>
as
<%= t'browse.relation_member.as' %>
<%= h(relation_member.member_role) %>
<% end %>
</td>

View file

@ -1,9 +1,9 @@
<div>
<div style="text-align: center">
<p style="margin-top: 10px; margin-bottom: 20px">
<a id="browse_select_view" href="#">View data for current map view</a>
<a id="browse_select_view" href="#"><%= t'browse.start.view_data' %></a>
<br />
<a id="browse_select_box" href="#">Manually select a different area</a>
<a id="browse_select_box" href="#"><%= t'browse.start.manually_select' %></a>
</p>
</div>
<div id="browse_status" style="text-align: center; display: none">

View file

@ -1,6 +1,6 @@
<% unless tag_details.tags.empty? %>
<tr valign="top">
<th>Tags:</th>
<th><%= t'browse.tag_details.tags' %></th>
<td>
<table cellpadding="0">
<%= render :partial => "tag", :collection => tag_details.tags.sort %>

View file

@ -3,7 +3,7 @@
<%= render :partial => "common_details", :object => way_details %>
<tr valign="top">
<th>Nodes:</th>
<th><%= t'browse.way_details.nodes' %></th>
<td>
<table cellpadding="0">
<% way_details.way_nodes.each do |wn| %>
@ -20,7 +20,7 @@
<% unless way_details.containing_relation_members.empty? %>
<tr valign="top">
<th>Part of:</th>
<th><%= t'browse.way_details.part_of' %></th>
<td>
<table cellpadding="0">
<%= render :partial => "containing_relation", :collection => way_details.containing_relation_members %>

View file

@ -1,7 +1,7 @@
<table width="100%">
<tr>
<td>
<h2>Changeset: <%= h(@changeset.id) %></h2>
<h2><%= t 'browse.changeset.changeset' %> <%= h(@changeset.id) %></h2>
</td>
<td>
<%= render :partial => "navigation" %>
@ -11,10 +11,8 @@
<td>
<%= render :partial => "changeset_details", :object => @changeset %>
<hr />
Download
<%= link_to "Changeset XML", :controller => "changeset", :action => "read" %>
or
<%= link_to "osmChange XML", :controller => "changeset", :action => "download" %>
<%= t 'browse.changeset.download', :changeset_xml_link => link_to(t('browse.changeset.changesetxml'), :controller => "changeset", :action => "read"),
:osmchange_xml_link => link_to(t('browse.changeset.osmchangexml'), :controller => "changeset", :action => "download") %>
</td>
<% if @changeset.has_valid_bbox? %>
<%= render :partial => "map", :object => @changeset %>

View file

@ -1,11 +1,11 @@
<%
@name = printable_name @node
@title = 'Node | ' + @name
@title = t('browse.node.node') + ' | ' + @name
%>
<table width="100%">
<tr>
<td>
<h2>Node: <%= h(@name) %></h2>
<h2><%= t'browse.node.node_title', :node_name => h(@name) %></h2>
</td>
<td>
<%= render :partial => "navigation" %>
@ -15,9 +15,8 @@
<td>
<%= render :partial => "node_details", :object => @node %>
<hr />
<%= link_to "Download XML", :controller => "node", :action => "read" %>
or
<%= link_to "view history", :action => "node_history" %>
<%= t'browse.node.download', :download_xml_link => link_to(t('browse.node.download_xml'), :controller => "node", :action => "read"),
:view_history_link => link_to(t('browse.node.view_history'), :action => "node_history") %>
</td>
<%= render :partial => "map", :object => @node %>
</tr>

View file

@ -1,6 +1,6 @@
<%
@name = printable_name @node
@title = 'Node History | ' + @name
@title = t('browse.node_history.node_history') + ' | ' + @name
%>
<h2>Node History: <%= h(@name) %></h2>
@ -11,9 +11,8 @@
<%= render :partial => "node_details", :object => node %>
<hr />
<% end %>
<%= link_to "Download XML", :controller => "old_node", :action => "history" %>
or
<%= link_to "view details", :action => "node" %>
<%= t 'browse.node_history.download', :download_xml_link => link_to(t('browse.node_history.download_xml'), :controller => "old_node", :action => "history"),
:view_details_link => link_to(t('browse.node_history.view_details'), :action => "node") %>
</td>
<%= render :partial => "map", :object => @node %>
</tr>

View file

@ -1 +1 @@
<p>Sorry, the <%= @type -%> with the id <%= params[:id] -%>, could not be found.</p>
<p><%= t'browse.not_found.sorry', :type=> @type , :id => params[:id] %></p>

View file

@ -1,11 +1,11 @@
<%
@name = printable_name @relation
@title = 'Relation | ' + @name
@title = t('browse.relation.relation') + ' | ' + @name
%>
<table width="100%">
<tr>
<td>
<h2>Relation: <%= h(@name) %></h2>
<h2><%= t'browse.relation.relation_title', :relation_name => h(@name) %></h2>
</td>
<td>
<%= render :partial => "navigation" %>
@ -15,9 +15,8 @@
<td>
<%= render :partial => "relation_details", :object => @relation %>
<hr />
<%= link_to "Download XML", :controller => "relation", :action => "read" %>
or
<%= link_to "view history", :action => "relation_history" %>
<%= t'browse.relation.download', :download_xml_link => link_to(t('browse.relation.download_xml'), :controller => "relation", :action => "read"),
:view_history_link => link_to(t('browse.relation.view_history'), :action => "relation_history") %>
</td>
<%= render :partial => "map", :object => @relation %>
</tr>

View file

@ -1,8 +1,8 @@
<%
@name = printable_name @relation
@title = 'Relation History | ' + @name
@title = t('browse.relation_history.relation_history') + ' | ' + @name
%>
<h2>Relation History: <%= h(@name) %></h2>
<h2><%= t'browse.relation_history.relation_history_title', :relation_name => h(@name) %></h2>
<table width="100%">
<tr valign="top">

View file

@ -1,4 +1,4 @@
page.replace_html :sidebar_title, 'Data'
page.replace_html :sidebar_title, t('browse.start_rjs.data_frame_title')
page.replace_html :sidebar_content, :partial => 'start'
page << <<EOJ
var browseBoxControl;
@ -41,7 +41,7 @@ page << <<EOJ
if (map.getZoom() >= 15) {
useMap();
} else {
setStatus("Zoom in or select an area of the map to view");
setStatus("#{I18n.t('browse.start_rjs.zoom_or_select')}");
}
}
}
@ -76,7 +76,7 @@ page << <<EOJ
}
function startDrag() {
$("browse_select_box").innerHTML='Drag a box on the map to select an area';
$("browse_select_box").innerHTML='#{I18n.t('browse.start_rjs.drag_a_box')}';
browseBoxControl.activate();
@ -121,7 +121,7 @@ page << <<EOJ
browseMode = "manual";
$("browse_select_box").innerHTML = "Manually select a different area";
$("browse_select_box").innerHTML = "#{I18n.t('browse.start_rjs.manually_select')}";
$("browse_select_view").style.display = "inline";
}
@ -131,12 +131,12 @@ page << <<EOJ
var div = document.createElement("div");
var p = document.createElement("p");
p.appendChild(document.createTextNode("You have loaded an area which contains " + browseFeatureList.length + " features. In general, some browsers may not cope well with displaying this quantity of data. Generally, browsers work best at displaying less than 100 features at a time: doing anything else may make your browser slow/unresponsive. If you are sure you want to display this data, you may do so by clicking the button below."));
p.appendChild(document.createTextNode("#{I18n.t('browse.start_rjs.loaded_an_area')} " + browseFeatureList.length + " #{I18n.t('browse.start_rjs.browsers')}"));
div.appendChild(p);
var input = document.createElement("input");
input.type = "submit";
input.value = "Load Data";
input.value = "#{I18n.t('browse.start_rjs.load_data')}";
input.onclick = loadFeatureList;
div.appendChild(input);
@ -187,14 +187,14 @@ page << <<EOJ
var size = projected.getWidth() * projected.getHeight();
if (size > 0.25) {
setStatus("Unable to load: Bounding box size of " + size + " is too large (must be smaller than 0.25)");
setStatus("#{I18n.t('browse.start_rjs.unable_to_load')} " + size + " #{I18n.t('must_be_smaller')}");
} else {
loadGML("/api/#{API_VERSION}/map?bbox=" + projected.toBBOX());
}
}
function loadGML(url) {
setStatus("Loading...");
setStatus("#{I18n.t('browse.start_rjs.loading')}");
$("browse_content").innerHTML = "";
if (!browseDataLayer) {
@ -381,7 +381,7 @@ page << <<EOJ
var link = document.createElement("a");
link.href = "/browse/" + type + "/" + feature.osm_id + "/history";
link.appendChild(document.createTextNode("Show history"));
link.appendChild(document.createTextNode("#{I18n.t('browse.start_rjs.show_history')}"));
link.onclick = OpenLayers.Function.bind(loadHistory, {
type: type, feature: feature, link: link
});
@ -394,7 +394,7 @@ page << <<EOJ
function loadHistory() {
this.link.href = "";
this.link.innerHTML = "Wait...";
this.link.innerHTML = "#{I18n.t('browse.start_rjs.wait')}";
new Ajax.Request("/api/#{API_VERSION}/" + this.type + "/" + this.feature.osm_id + "/history", {
onComplete: OpenLayers.Function.bind(displayHistory, this)
@ -421,7 +421,7 @@ page << <<EOJ
table.appendChild(tr);
var heading = document.createElement("td");
heading.appendChild(document.createTextNode("History for " + featureName(this.feature)));
heading.appendChild(document.createTextNode("#{I18n.t('browse.start_rjs.history_for')} " + featureName(this.feature)));
tr.appendChild(heading);
var td = document.createElement("td");
@ -430,7 +430,7 @@ page << <<EOJ
var link = document.createElement("a");
link.href = "/browse/" + this.type + "/" + this.feature.osm_id + "/history";
link.appendChild(document.createTextNode("Details"));
link.appendChild(document.createTextNode("#{I18n.t('browse.start_rjs.details')}"));
td.appendChild(link);
var div = document.createElement("div");
@ -439,10 +439,10 @@ page << <<EOJ
var nodes = doc.getElementsByTagName(this.type);
var history = document.createElement("ul");
for (var i = nodes.length - 1; i >= 0; i--) {
var user = nodes[i].getAttribute("user") || "private user";
var user = nodes[i].getAttribute("user") || "#{I18n.t('browse.start_rjs.private_user')}";
var timestamp = nodes[i].getAttribute("timestamp");
var item = document.createElement("li");
item.appendChild(document.createTextNode("Edited by " + user + " at " + timestamp));
item.appendChild(document.createTextNode("#{I18n.t('browse.start_rjs.edited_by')} " + user + " #{I18n.t('browse.start_rjs.at_timestamp')} " + timestamp));
history.appendChild(item);
}
div.appendChild(history);

View file

@ -1,11 +1,11 @@
<%
@name = printable_name @way
@title = 'Way | ' + @name
@title = t('browse.way.way') + ' | ' + @name
%>
<table width="100%">
<tr>
<td>
<h2>Way: <%= h(@name) %></h2>
<h2><%= t'browse.way.way_title', :way_name => h(@name) %></h2>
</td>
<td>
<%= render :partial => "navigation" %>
@ -15,9 +15,8 @@
<td>
<%= render :partial => "way_details", :object => @way %>
<hr />
<%= link_to "Download XML", :controller => "way", :action => "read" %>
or
<%= link_to "view history", :action => "way_history" %>
<%= t'browse.way.download', :download_xml_link => link_to(t('browse.way.download_xml'), :controller => "way", :action => "read"),
:view_history_link => link_to(t('browse.way.view_history'), :action => "way_history") %>
</td>
<%= render :partial => "map", :object => @way %>
</tr>

View file

@ -1,8 +1,8 @@
<%
@name = printable_name @way
@title = 'Way History | ' + @name
@title = t('browse.way_history.way_history') + ' | ' + @name
%>
<h2>Way History: <%= h(@name) %></h2>
<h2><%= t'browse.way_history.way_history_title', :way_name => h(@name) %></h2>
<table width="100%">
<tr valign="top">
@ -11,9 +11,8 @@
<%= render :partial => "way_details", :object => way %>
<hr />
<% end %>
<%= link_to "Download XML", :controller => "old_way", :action => "history" %>
or
<%= link_to "view details", :action => "way" %>
<%= t'browse.way_history.download', :download_xml_link => link_to(t('browse.way_history.download_xml'), :controller => "old_way", :action => "history"),
:view_details_link => link_to(t('browse.way_history.view_details'), :action => "way") %>
</td>
<%= render :partial => "map", :object => @way %>
</tr>

View file

@ -6,7 +6,7 @@
</td>
<td class="<%= cl %> date">
<% if changeset.closed_at > DateTime.now %> (still editing)
<% if changeset.closed_at > DateTime.now %> <%= t'changeset.changeset.still_editing' %>
<% else %><%= changeset.closed_at.strftime("%d %b %Y %H:%M") %><% end %>
</td>
@ -16,7 +16,7 @@
<% if changeset.user.data_public? %>
<%= link_to h(changeset.user.display_name), :controller => "changeset", :action => "list_user", :display_name => changeset.user.display_name %>
<% else %>
<i>Anonymous</i>
<i><%= t'changeset.changeset.anonymous' %></i>
<% end %>
</td>
<% end %>
@ -25,23 +25,23 @@
<% if changeset.tags['comment'] %>
<%= h(changeset.tags['comment']) %>
<% else %>
(none)
<%= t'changeset.changeset.no_comment' %>
<% end %>
</td>
<td class="<%= cl %> area">
<% if changeset.min_lat.nil? %>
(no edits)
<%= t'changeset.changeset.no_edits' %>
<% else
minlon = changeset.min_lon/GeoRecord::SCALE.to_f
minlat = changeset.min_lat/GeoRecord::SCALE.to_f
maxlon = changeset.max_lon/GeoRecord::SCALE.to_f
maxlat = changeset.max_lat/GeoRecord::SCALE.to_f
%>
<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='show area box'><%= format("%0.3f",minlon) -%>,<%= format("%0.3f",minlat) -%>,<%= format("%0.3f",maxlon) -%>,<%= format("%0.3f",maxlat) -%></a>
<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='<%= t'changeset.changset.show_area_box' %>'><%= format("%0.3f",minlon) -%>,<%= format("%0.3f",minlat) -%>,<%= format("%0.3f",maxlon) -%>,<%= format("%0.3f",maxlat) -%></a>
<!--<%=changeset.area%>-->
<% if changeset.area > 1500000000000 %>
(big)
<% t'changeset.changeset.big_area' %>
<%
end
end
@ -49,7 +49,7 @@
</td>
<td class="<%= cl %>">
<%= link_to 'more', {:controller => 'browse', :action => 'changeset', :id => changeset.id}, {:title => 'View changeset details'} %>
<%= link_to t('changeset.changeset.more'), {:controller => 'browse', :action => 'changeset', :id => changeset.id}, {:title => t('changeset.changeset.view_changeset_details')} %>
</td>
</tr>

View file

@ -1,11 +1,11 @@
<% current_page = @edit_pages.current_page %>
Showing page
<%= t'changeset.changeset_paging_nav.showing_page' %>
<%= current_page.number %> (<%= current_page.first_item %><%
if (current_page.first_item < current_page.last_item) # if more than 1 changeset on page
%>-<%= current_page.last_item %><%
end %>
of <%= @edit_pages.item_count %>)
<%= t'changeset.changeset_paging_nav.of'%> <%= @edit_pages.item_count %>)
<%
if @edit_pages.page_count > 1

View file

@ -1,14 +1,14 @@
<% showusername = true if showusername.nil? %>
<table id="changeset_list" cellpadding="3">
<tr>
<th>ID</th>
<th>Saved at</th>
<th><%= t'changeset.changesets.id' %></th>
<th><%= t'changeset.changesets.saved_at' %></th>
<% if showusername %>
<th>User</th>
<th><%= t'changeset.changesets.user' %></th>
<% end %>
<th>Comment</th>
<th>Area</th>
<th><%= t'changeset.changesets.comment' %></th>
<th><%= t'changeset.changesets.area' %></th>
<th></th>
</tr>
<%= render :partial => 'changeset', :locals => {:showusername => showusername}, :collection => @edits unless @edits.nil? %>
</table>
</table>

View file

@ -1,9 +1,7 @@
<h1>Recent Changes</h1>
<p>Recently edited changesets:</p>
<h1><%= t'changeset.list.recent_changes' %></h1>
<p><%= t'changeset.list.recently_edited_changesets' %></p>
<%= render :partial => 'changesets' %>
<p>
For more changesets, select a user and view their edits, or see the editing 'history' of a specific area.
</p>
<p><%= t'changeset.list.for_more_changesets' %></p>
<br>

View file

@ -1,4 +1,4 @@
<h1>History</h1>
<h1><%= t'changeset.list_bbox.history' %></h1>
<%
if @bbox!=nil
minlon = @bbox[0]
@ -8,20 +8,20 @@ if @bbox!=nil
%>
<p>
Changesets within the area:
(<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='show area box'><%= format("%0.3f",minlon) -%>,<%= format("%0.3f",minlat) -%>,<%= format("%0.3f",maxlon) -%>,<%= format("%0.3f",maxlat) -%></a>)
<%= t'changeset.list_bbox.changesets_within_the_area' %>
(<a href='/?minlon=<%= minlon %>&minlat=<%= minlat %>&maxlon=<%= maxlon %>&maxlat=<%= maxlat %>&box=yes' title='<%= t'changeset.list_bbox.show_area_box' %>'><%= format("%0.3f",minlon) -%>,<%= format("%0.3f",minlat) -%>,<%= format("%0.3f",maxlon) -%>,<%= format("%0.3f",maxlat) -%></a>)
</p>
<% if @edits.nil? or @edits.empty? %>
<p><b>No changesets</b></p>
<p><b><%= t'changeset.list_bbox.no_changesets' %></b></p>
<% else %>
<%= render :partial => 'changeset_paging_nav' %>
<%= render :partial => 'changesets' %>
<%= render :partial => 'changeset_paging_nav' %>
<p>For all changes everywhere see <%= link_to("Recent Changes", :controller => "browse", :action => "changesets") %> </p>
<p><%= t'changeset.list_bbox.all_changes_everywhere' , :recent_changes_link => link_to(t('changest.list_bbox.recent_changes'), :controller => "browse", :action => "changesets") %> </p>
<%
end
@ -30,9 +30,9 @@ else
#bbox is nil. happens if the user surfs to this page directly.
%>
<p>No area specified</p>
<p>First use the <a href="/" title="view the map">view tab</a> to pan and zoom to an area of interest, then click the history tab.</p>
<p>Alternatively view all <%= link_to("recent changes", :controller => "browse", :action => "changesets") %> </p>
<p><%= t'changeset.list_bbox.no_area_specified' %></p>
<p><%= t'changeset.list_bbox.first_use_view', :view_tab_link => '<a href="/" title="' + t('changeset.list_bbox.view_the_map') + '">' + t('changeset.list_bbox.view_tab') + '</a>' %></p>
<p><%= t'changeset.list_bbox.alternatively_view', :recent_changes_link => link_to(t('changeset.list_bbox.recent_changes'), :controller => "browse", :action => "changesets") %></p>
<%
end

View file

@ -1,13 +1,13 @@
<h1>Edits by <%= link_to(h(@display_name), {:controller=>'user', :action=>'view', :display_name=>@display_name}) %></h1>
<h1><%= t'changeset.list_user.edits_by_username', :username_link => link_to(h(@display_name), {:controller=>'user', :action=>'view', :display_name=>@display_name}) %></h1>
<% if not @edits or @edits.empty? %>
<p><b>No visible edits by <%= h(@display_name) %>.</b></p>
<p><b><%= t'changeset.list_user.no_visible_edits_by', :name => h(@display_name) %>.</b></p>
<% else %>
<%= render :partial => 'changeset_paging_nav' %>
<%= render :partial => 'changesets', :locals => {:showusername => false} %>
<%= render :partial => 'changeset_paging_nav' %>
<% end %>
<p>For changes by all users see <%= link_to("Recent Changes", :controller => "browse", :action => "changesets") %> </p>
<p><%= t'changeset.list_user.for_all_changes', :recent_changes_link => link_to(t('changeset.list_user.recent_changes'), :controller => "browse", :action => "changesets") %></p>
<br>

View file

@ -1,3 +1,3 @@
<h4 id="comment<%= diary_comment.id %>">Comment from <%= link_to h(diary_comment.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name %> at <%= diary_comment.created_at %></h4>
<h4 id="comment<%= diary_comment.id %>"><%= t('diary_entry.comment_from', :link_user => (link_to h(diary_comment.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name), :comment_created_at => l(diary_comment.created_at)) %></h4>
<%= htmlize(diary_comment.body) %>
<hr />

View file

@ -1,19 +1,19 @@
<b><%= link_to h(diary_entry.title), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id %></b><br />
<%= htmlize(diary_entry.body) %>
<% if diary_entry.latitude and diary_entry.longitude %>
Coordinates: <div class="geo" style="display: inline"><span class="latitude"><%= diary_entry.latitude %></span>; <span class="longitude"><%= diary_entry.longitude %></span></div> (<%=link_to 'map', :controller => 'site', :action => 'index', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %> / <%=link_to 'edit', :controller => 'site', :action => 'edit', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %>)<br/>
<%= t 'map.coordinates' %> <div class="geo" style="display: inline"><span class="latitude"><%= diary_entry.latitude %></span>; <span class="longitude"><%= diary_entry.longitude %></span></div> (<%=link_to (t 'map.view'), :controller => 'site', :action => 'index', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %> / <%=link_to (t 'map.edit'), :controller => 'site', :action => 'edit', :lat => diary_entry.latitude, :lon => diary_entry.longitude, :zoom => 14 %>)<br/>
<% end %>
Posted by <b><%= link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name %></b> at <%= diary_entry.created_at %>
<%= t 'diary_entry.posted_by', :link_user => (link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name), :created => l(diary_entry.created_at), :language => diary_entry.language.name %>
<% if params[:action] == 'list' %>
<br />
<%= link_to 'Comment on this entry', :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %>
<%= link_to t('diary_entry.comment_link'), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %>
|
<%= link_to 'Reply to this entry', :controller => 'message', :action => 'new', :user_id => diary_entry.user.id, :title => "Re: #{diary_entry.title}" %>
<%= link_to t('diary_entry.reply_link'), :controller => 'message', :action => 'new', :user_id => diary_entry.user.id, :title => "Re: #{diary_entry.title}" %>
|
<%= link_to pluralize(diary_entry.diary_comments.count, "comment"), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %>
<%= link_to t('diary_entry.comment_count', :count => diary_entry.diary_comments.count), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %>
<% end %>
<% if @user == diary_entry.user %>
| <%= link_to 'Edit this entry', :action => 'edit', :display_name => @user.display_name, :id => diary_entry.id %>
| <%= link_to t('diary_entry.edit_link'), :action => 'edit', :display_name => @user.display_name, :id => diary_entry.id %>
<% end %>
<br />
<hr />

View file

@ -5,26 +5,30 @@
<% form_for :diary_entry do |f| %>
<table>
<tr valign="top">
<td class="fieldName">Subject:</td>
<td class="fieldName"><%= t 'diary_entry.edit.subject' -%></td>
<td><%= f.text_field :title, :size => 60 %></td>
</tr>
<tr valign="top">
<td class="fieldName">Body:</td>
<td class="fieldName"><%= t 'diary_entry.edit.body' -%></td>
<td><%= f.text_area :body, :cols => 80 %></td>
</tr>
<tr valign="top">
<td class="fieldName">Location:</td>
<td class="fieldName"><%= t 'diary_entry.edit.language' -%></td>
<td><%= f.collection_select :language_code, Language.find(:all, :order => :english_name), :code, :name %></td>
</tr>
<tr valign="top">
<td class="fieldName"><%= t 'diary_entry.edit.location' -%></td>
<td>
<div id="map" style="border: 1px solid black; position: relative; width : 90%; height : 400px; display: none;"></div>
<span class="location">Latitude: <%= f.text_field :latitude, :size => 20, :id => "latitude" %> Longitude: <%= f.text_field :longitude, :size => 20, :id => "longitude" %></span>
<a href="javascript:openMap()" id="usemap">use map</a>
<span class="location"><%= t 'diary_entry.edit.latitude' -%> <%= f.text_field :latitude, :size => 20, :id => "latitude" %> <%= t 'diary_entry.edit.longitude' -%> <%= f.text_field :longitude, :size => 20, :id => "longitude" %></span>
<a href="javascript:openMap()" id="usemap"><%= t 'diary_entry.edit.use_map_link' -%></a>
<br/><br/>
</td>
</tr>
<tr>
<td></td>
<td>
<%= submit_tag 'Save' %>
<%= submit_tag t('diary_entry.edit.save_button') %>
<%# TODO: button should say 'publish' or 'save changes' depending on new/edit state %>
</td>
</tr>
@ -72,7 +76,7 @@
removeMarkerFromMap(marker);
}
marker = addMarkerToMap(lonlat, null, "Diary entry location");
marker = addMarkerToMap(lonlat, null, "<%= t 'diary_entry.edit.marker_text' -%>");
}
function openMap() {

View file

@ -7,27 +7,27 @@
<% if @this_user %>
<% if @user == @this_user %>
<%= link_to image_tag("new.png", :border=>0) + 'New diary entry', {:controller => 'diary_entry', :action => 'new', :display_name => @user.display_name}, {:title => 'Compose a new entry in your user diary'} %>
<%= link_to image_tag("new.png", :border=>0) + t('diary_entry.list.new'), {:controller => 'diary_entry', :action => 'new', :display_name => @user.display_name}, {:title => t('diary_entry.list.new_title')} %>
<% end %>
<% else %>
<% if @user %>
<%= link_to image_tag("new.png", :border=>0) + 'New diary entry', {:controller => 'diary_entry', :action => 'new', :display_name => @user.display_name}, {:title => 'Compose a new entry in your user diary'} %>
<%= link_to image_tag("new.png", :border=>0) + t('diary_entry.list.new'), {:controller => 'diary_entry', :action => 'new', :display_name => @user.display_name}, {:title => t('diary_entry.list.new_title')} %>
<% end %>
<% end %>
<% if @entries.empty? %>
<p>No diary entries</p>
<p><%= t 'diary_entry.list.no_entries' %></p>
<% else %>
<p>Recent diary entries:</p>
<p><%= t 'diary_entry.list.recent_entries' %></p>
<hr />
<%= render :partial => 'diary_entry', :collection => @entries %>
<%= link_to "Older Entries", { :page => @entry_pages.current.next } if @entry_pages.current.next %>
<%= link_to t('diary_entry.list.older_entries'), { :page => @entry_pages.current.next } if @entry_pages.current.next %>
<% if @entry_pages.current.next and @entry_pages.current.previous %>|<% end %>
<%= link_to "Newer Entries", { :page => @entry_pages.current.previous } if @entry_pages.current.previous %>
<%= link_to t('diary_entry.list.newer_entries'), { :page => @entry_pages.current.previous } if @entry_pages.current.previous %>
<br />
<% end %>

View file

@ -1,2 +1,2 @@
<h2>No entry with the id: <%= h(params[:id]) %></h2>
<p>Sorry, there is no diary entry or comment with the id <%=h params[:id] -%>, or no id was given. Please check your spelling, or maybe the link you clicked is wrong.</p>
<h2><%= t 'diary_entry.no_such_entry.heading', :id => h(params[:id]) %></h2>
<p><%= t 'diary_entry.no_such_entry.body', :id => h(params[:id]) %></p>

View file

@ -1,2 +1,2 @@
<h2><%= h(@not_found_user) %></h2>
<p>Sorry, there is no user with the name <%= @not_found_user -%>. Please check your spelling, or maybe the link you clicked is wrong.</p>
<p><%= t 'diary_entry.no_such_user.body', :user => @not_found_user %></p>

View file

@ -1,6 +1,6 @@
<% form_tag :action => "finish" do %>
<p class="export_heading">Area to Export</p>
<p class="export_heading"><%= t'export.start.area_to_export' %></p>
<div class="export_bounds">
<%= text_field_tag('maxlat', nil, :size => 10, :class => "export_bound") %>
@ -10,70 +10,70 @@
<br/>
<%= text_field_tag('minlat', nil, :size => 10, :class => "export_bound") %>
<p class="export_hint">
<a id='drag_box' href="#" onclick="return startBox();">Manually select a different area</a>
<a id='drag_box' href="#" onclick="return startBox();"><%= t'export.start.manually_select' %></a>
</p>
</div>
<p class="export_heading">Format to Export</p>
<p class="export_heading"><%= t'export.start.format_to_export' %></p>
<div class="export_details">
<p>
<%= radio_button_tag("format", "osm") %> OpenStreetMap XML Data
<%= radio_button_tag("format", "osm") %> <%= t'export.start.osm_xml_data' %>
<br/>
<%= radio_button_tag("format", "mapnik") %> Mapnik Image
<%= radio_button_tag("format", "mapnik") %> <%= t'export.start.mapnik_image' %>
<br/>
<%= radio_button_tag("format", "osmarender") %> Osmarender Image
<%= radio_button_tag("format", "osmarender") %> <%= t'export.start.osmarender_image' %>
<br/>
<%= radio_button_tag("format", "html") %> Embeddable HTML
<%= radio_button_tag("format", "html") %> <%= t'export.start.embeddable_html' %>
</p>
</div>
<div id="export_osm">
<p class="export_heading">Licence</p>
<p class="export_heading"><%= t'export.start.licence' %></p>
<div class="export_details">
<p>OpenStreetMap data is licensed under the <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0 license</a>.</p>
<p><%= t'export.start.export_details' %></p>
</div>
</div>
<div id="export_mapnik">
<p class="export_heading">Options</p>
<p class="export_heading"><%= t'export.start.options' %></p>
<div class="export_details">
<p>Format <%= select_tag("mapnik_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"], ["SVG", "svg"], ["PDF", "pdf"], ["Postscript", "ps"]], "png")) %></p>
<p>Scale 1 : <%= text_field_tag("mapnik_scale", nil, :size => 8) %> <span class="export_hint">(max 1 : <span id="mapnik_max_scale"></span>)</span></p>
<p>Image Size <span id="mapnik_image_width"></span> x <span id="mapnik_image_height"></span></p>
<p><%= t'export.start.format' %> <%= select_tag("mapnik_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"], ["SVG", "svg"], ["PDF", "pdf"], ["Postscript", "ps"]], "png")) %></p>
<p><%= t'export.start.scale' %> 1 : <%= text_field_tag("mapnik_scale", nil, :size => 8) %> <span class="export_hint">(<%= t'export.start.max' %> 1 : <span id="mapnik_max_scale"></span>)</span></p>
<p><%= t'export.start.image_size' %> <span id="mapnik_image_width"></span> x <span id="mapnik_image_height"></span></p>
</div>
</div>
<div id="export_osmarender">
<p class="export_heading">Options</p>
<p class="export_heading"><%= t'export.start.options' %></p>
<div class="export_details">
<p>Format <%= select_tag("osmarender_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"]], "png")) %></p>
<p>Zoom <%= select_tag("osmarender_zoom", options_for_select([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])) %></p>
<p><%= t'export.start.format' %> <%= select_tag("osmarender_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"]], "png")) %></p>
<p><%= t'export.start.zoom' %> <%= select_tag("osmarender_zoom", options_for_select([4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17])) %></p>
</div>
</div>
<div id="export_html">
<p class="export_heading">Options</p>
<p class="export_heading"><%= t'export.start.options' %></p>
<div class="export_details">
<p><a id="add_marker" href="#">Add a marker to the map</a></p>
<p><a id="add_marker" href="#"><%= t'export.start.add_marker' %></a></p>
<p id="marker_inputs" style="display:none">
Lat: <input type="text" id="marker_lat" size="9" />
Lon: <input type="text" id="marker_lon" size="9" />
<%= t'export.start.latitude' %> <input type="text" id="marker_lat" size="9" />
<%= t'export.start.longitude' %> <input type="text" id="marker_lon" size="9" />
</p>
</div>
<p class="export_heading">Output</p>
<p class="export_heading"><%= t'export.start.output' %></p>
<div class="export_details">
<p><input type="text" id="export_html_text" style="width:95%" /></p>
<p>Paste HTML to embed in website</p>
<p><%= t'export.start.paste_html' %></p>
</div>
</div>
<div class="export_buttons">
<p><%= submit_tag "Export", :id => "export_commit" %></p>
<p><%= submit_tag t('export.start.export_button'), :id => "export_commit" %></p>
</div>
<% end %>

View file

@ -1,4 +1,4 @@
page.replace_html :sidebar_title, 'Export'
page.replace_html :sidebar_title, t('export.start_rjs.export')
page.replace_html :sidebar_content, :partial => 'start'
page << <<EOJ
var vectors;
@ -77,7 +77,7 @@ page << <<EOJ
$("minlat").onchange = boundsChanged;
function startDrag() {
$("drag_box").innerHTML='Drag a box on the map to select an area';
$("drag_box").innerHTML='#{I18n.t('export.start_rjs.drag_a_box')}';
clearBox();
box.activate();
@ -94,11 +94,11 @@ page << <<EOJ
box.deactivate();
validateControls();
$("drag_box").innerHTML = "Manually select a different area";
$("drag_box").innerHTML = "#{I18n.t('export.start_rjs.manually_select')}";
}
function startMarker() {
$("add_marker").innerHTML='Click on the map to add a marker';
$("add_marker").innerHTML='#{I18n.t('export.start_rjs.click_add_marker')}';
if (!markerLayer) {
markerLayer = new OpenLayers.Layer.Vector("",{
@ -130,7 +130,7 @@ page << <<EOJ
function endMarker(event) {
markerControl.deactivate();
$("add_marker").innerHTML = "Change marker position";
$("add_marker").innerHTML = "#{I18n.t('export.start_rjs.change_marker')}";
$("marker_inputs").style.display = "block";
var epsg4326 = new OpenLayers.Projection("EPSG:4326");
@ -147,7 +147,7 @@ page << <<EOJ
$("marker_lon").value = "";
$("marker_lat").value = "";
$("marker_inputs").style.display = "none";
$("add_marker").innerHTML = "Add a marker to the map";
$("add_marker").innerHTML = "#{I18n.t('export.start_rjs.add_marker')}";
if (markerLayer) {
markerControl.destroy();
@ -248,7 +248,7 @@ page << <<EOJ
var layers = getMapLayers();
html += '<br /><small><a href="http://#{SERVER_URL}/?lat='+center.lat+'&lon='+center.lon+'&zoom='+zoom+'&layers='+layers+markerUrl+'">View Larger Map</a></small>';
html += '<br /><small><a href="http://#{SERVER_URL}/?lat='+center.lat+'&lon='+center.lon+'&zoom='+zoom+'&layers='+layers+markerUrl+'">#{I18n.t('export.start_rjs.view_larger_map')}</a></small>';
$("export_html_text").value = html;

View file

@ -1,9 +1,9 @@
<% results.each do |source| %>
<% type = source[:type] || "Results" %>
<p class="search_results_heading"><%= type %> from <%= link_to source[:source], source[:url] %></p>
<% type = source[:type] || t('geocoder.results.results') %>
<p class="search_results_heading"><%= t'geocoder.results.type_from_source', :type => type, :source_link => link_to(source[:source], source[:url]) %></p>
<% if source[:results] %>
<% if source[:results].empty? %>
<p class="search_results_entry">No results found</p>
<p class="search_results_entry"><%= t'geocoder.results.no_results' %></p>
<% else %>
<% source[:results].each do |result| %>
<p class="search_results_entry"><%= result_to_html(result) %></p>

View file

@ -22,14 +22,14 @@
<span id="greeting">
<% if @user and @user.id %>
Welcome, <%= link_to h(@user.display_name), {:controller => 'user', :action => 'view', :display_name => @user.display_name}%> |
<%= t 'layouts.welcome_user', :user_link => (link_to h(@user.display_name), {:controller => 'user', :action => 'view', :display_name => @user.display_name}) %> |
<% @inbox_weight = 'bold' if @user.new_messages.size > 0 %>
<%= yield :greeting %>
<%= link_to "inbox (#{@user.new_messages.size})", {:controller => 'message', :action => 'inbox', :display_name => @user.display_name}, {:style => "font-weight: #{@inbox_weight};" } %> |
<%= link_to 'logout', {:controller => 'user', :action => 'logout', :referer => request.request_uri}, {:id => 'logoutanchor'}%>
<% else %>
<%= link_to 'log in', {:controller => 'user', :action => 'login', :referer => request.request_uri}, {:id => 'loginanchor'}%> |
<%= link_to 'sign up', {:controller => 'user', :action => 'new'}, {:id => 'registeranchor'} %>
<%= link_to t('layouts.inbox', :size => @user.new_messages.size), {:controller => 'message', :action => 'inbox', :display_name => @user.display_name}, {:style => "font-weight: #{@inbox_weight};" } %> |
<%= link_to t('layouts.logout'), {:controller => 'user', :action => 'logout', :referer => request.request_uri}, {:id => 'logoutanchor'}%>
<% else %>
<%= link_to t('layouts.log_in'), {:controller => 'user', :action => 'login', :referer => request.request_uri}, {:id => 'loginanchor'}%> |
<%= link_to t('layouts.sign_up'), {:controller => 'user', :action => 'new'}, {:id => 'registeranchor'} %>
<% end %>
</span>
@ -48,16 +48,16 @@
traceclass = 'active' if params['controller'] == 'trace'
diaryclass = 'active' if params['controller'] == 'diary_entry'
%>
<li><%= link_to 'View', {:controller => 'site', :action => 'index'}, {:id => 'viewanchor', :title => 'view maps', :class => viewclass} %></li>
<li><%= link_to 'Edit', {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => 'edit maps', :class => editclass} %></li>
<li><%= link_to 'History', {:controller => 'changeset', :action => 'list_bbox' }, {:id => 'historyanchor', :title => 'changeset history', :class => historyclass} %></li>
<li><%= link_to t('layouts.view'), {:controller => 'site', :action => 'index'}, {:id => 'viewanchor', :title => 'view maps', :class => viewclass} %></li>
<li><%= link_to t('layouts.edit'), {:controller => 'site', :action => 'edit'}, {:id => 'editanchor', :title => 'edit maps', :class => editclass} %></li>
<li><%= link_to t('layouts.history'), {:controller => 'changeset', :action => 'list_bbox' }, {:id => 'historyanchor', :title => 'changeset history', :class => historyclass} %></li>
<% if params['controller'] == 'site' and (params['action'] == 'index' or params['action'] == 'export') %>
<li><%= link_to_remote 'Export', {:url => {:controller => 'export', :action => 'start'}}, {:id => 'exportanchor', :title => 'export map data', :class => exportclass, :href => url_for(:controller => 'site', :action => 'export')} %></li>
<li><%= link_to_remote t('layouts.export'), {:url => {:controller => 'export', :action => 'start'}}, {:id => 'exportanchor', :title => 'export map data', :class => exportclass, :href => url_for(:controller => 'site', :action => 'export')} %></li>
<% else %>
<li><%= link_to 'Export', {:controller => 'site', :action => 'export'}, {:id => 'exportanchor', :title => 'export map data', :class => exportclass} %></li>
<li><%= link_to t('layouts.export'), {:controller => 'site', :action => 'export'}, {:id => 'exportanchor', :title => 'export map data', :class => exportclass} %></li>
<% end %>
<li><%= link_to 'GPS Traces', {:controller => 'trace', :action => 'list'}, {:id => 'traceanchor', :title => 'manage traces', :class => traceclass} %></li>
<li><%= link_to 'User Diaries', {:controller => 'diary_entry', :action => 'list', :display_name => nil}, {:id => 'diaryanchor', :title => 'view user diaries', :class => diaryclass} %></li>
<li><%= link_to t('layouts.gps_traces'), {:controller => 'trace', :action => 'list'}, {:id => 'traceanchor', :title => 'manage traces', :class => traceclass} %></li>
<li><%= link_to t('layouts.user_diaries'), {:controller => 'diary_entry', :action => 'list', :display_name => nil}, {:id => 'diaryanchor', :title => 'view user diaries', :class => diaryclass} %></li>
</ul>
</div>
@ -67,64 +67,57 @@
<center>
<h1>OpenStreetMap</h1>
<%= link_to(image_tag("osm_logo.png", :size => "120x120", :border => 0), :controller => 'site', :action => 'index') %><br/>
<h2 class="nowrap">The Free Wiki World Map</h2>
<h2 class="nowrap"><%= t('layouts.tag_line') %></h2>
</center>
</div>
<% unless @user %>
<div id="intro">
<p>
OpenStreetMap is a free editable map of the whole world. It
is made by people like you.
<%= t 'layouts.intro_1' %>
</p>
<p>
OpenStreetMap allows you to view, edit and use geographical
data in a collaborative way from anywhere on Earth.
<%= t 'layouts.intro_2' %>.
</p>
<p>
OpenStreetMap's hosting is kindly supported by the
<a href="http://www.vr.ucl.ac.uk">UCL VR Centre</a> and
<a href="http://www.bytemark.co.uk">bytemark</a>.
<%= t 'layouts.intro_3',
:ucl => '<a href="http://www.vr.ucl.ac.uk">UCL VR Centre</a>',
:bytemark => '<a href="http://www.bytemark.co.uk">bytemark</a>' %>
</p>
</div>
<% end %>
<% if OSM_STATUS == :database_offline or OSM_STATUS == :api_offline %>
<div id="alert">
The OpenStreetMap database is currently offline while
essential database maintenance work is carried out.
<%= t 'layouts.offline' %>
</div>
<% elsif OSM_STATUS == :database_readonly or OSM_STATUS == :api_readonly %>
<div id="alert">
The OpenStreetMap database is currently in read-only mode while
essential database maintenance work is carried out.
</div>
<%= t 'layouts.read_only' %>
<% end %>
<% if false %>
<div id="donate" class="notice">
Support OpenStreetMap by
<a href="http://donate.openstreetmap.org/">donating</a>
to the Hardware Upgrade Fund.
<%= t 'layouts.donate', :link => "<a href=\"http://donate.openstreetmap.org/\">#{t('layouts.donate_link_text')}</a>" %>
</div>
<% end %>
<div id="left_menu" class="left_menu">
<a href="http://wiki.openstreetmap.org">Help &amp; Wiki</a><br />
<a href="http://www.opengeodata.org/">News blog</a><br />
<a href="http://wiki.openstreetmap.org/index.php/Merchandise">Shop</a><br />
<a href="http://wiki.openstreetmap.org"><%= t 'layouts.help_wiki' %></a><br />
<a href="http://www.opengeodata.org/"><%= t 'layouts.news_blog' %></a><br />
<a href="http://wiki.openstreetmap.org/index.php/Merchandise"><%= t 'layouts.shop' %></a><br />
<%= yield :left_menu %>
</div>
<div id="sotm" class="notice">
<%= link_to image_tag("sotm.png", :alt => "State of the Map", :border => "0"), "http://www.stateofthemap.org/" %>
<%= link_to image_tag("sotm.png", :alt => t('layouts.sotm'), :title => t('layouts.sotm'), :border => "0"), "http://www.stateofthemap.org/" %>
</div>
<%= yield :optionals %>
<center>
<div class="button" style="width: 115px">
<a href="http://donate.openstreetmap.org/"><img src="/images/donate.png" border="0" alt="Make a Donation" /></a>
<a href="http://donate.openstreetmap.org/"><img src="/images/donate.png" border="0" alt="<%= t 'layouts.alt_donation' %>" title="<%= t 'layouts.alt_donation' %>" /></a>
</div>
<div id="cclogo" class="button" style="width: 88px">

View file

@ -4,11 +4,11 @@
<tr class="inbox-row<%= "-unread" if not message_summary.message_read? %>">
<td class="inbox-sender" bgcolor="<%= this_colour %>"><%= link_to h(message_summary.sender.display_name), :controller => 'user', :action => message_summary.sender.display_name %></td>
<td class="inbox-subject" bgcolor="<%= this_colour %>"><%= link_to h(message_summary.title), :controller => 'message', :action => 'read', :message_id => message_summary.id %></td>
<td class="inbox-sent" bgcolor="<%= this_colour %>"><%= message_summary.sent_on %></td>
<td class="inbox-sent" bgcolor="<%= this_colour %>"><%= l message_summary.sent_on %></td>
<% if message_summary.message_read? %>
<td><%= button_to 'Mark as unread', :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread' %></td>
<td><%= button_to t('message.message_summary.unread_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread' %></td>
<% else %>
<td><%= button_to 'Mark as read', :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %></td>
<td><%= button_to t('message.message_summary.read_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %></td>
<% end %>
<td><%= button_to 'Reply', :controller => 'message', :action => 'reply', :message_id => message_summary.id %></td>
<td><%= button_to t('message.message_summary.reply_button'), :controller => 'message', :action => 'reply', :message_id => message_summary.id %></td>
</tr>

View file

@ -4,5 +4,5 @@
<tr class="inbox-row">
<td class="inbox-sender" bgcolor="<%= this_colour %>"><%= link_to h(sent_message_summary.recipient.display_name), :controller => 'user', :action => sent_message_summary.recipient.display_name %></td>
<td class="inbox-subject" bgcolor="<%= this_colour %>"><%= link_to h(sent_message_summary.title), :controller => 'message', :action => 'read', :message_id => sent_message_summary.id %></td>
<td class="inbox-sent" bgcolor="<%= this_colour %>"><%= sent_message_summary.sent_on %></td>
<td class="inbox-sent" bgcolor="<%= this_colour %>"><%= l sent_message_summary.sent_on %></td>
</tr>

View file

@ -1,14 +1,14 @@
<h2>My inbox/<%= link_to "outbox", url_for(:controller => "user", :action => "outbox", :id => @user.display_name) %></h2>
<h2><%= t'message.inbox.my_inbox'%>/<%= link_to t('message.inbox.outbox'), url_for(:controller => "user", :action => "outbox", :id => @user.display_name) %></h2>
<p>You have <%= @user.new_messages.size %> new messages and <%= @user.messages.size - @user.new_messages.size %> old messages</p>
<p><%= t'message.inbox.you_have', :new_count => @user.new_messages.size, :old_count => (@user.messages.size - @user.new_messages.size) %></p>
<% if @user.messages.size > 0 %>
<div id="messages">
<table class="messages">
<tr>
<th>From</th>
<th>Subject</th>
<th>Date</th>
<th><%= t'message.inbox.from' %></th>
<th><%= t'message.inbox.subject' %></th>
<th><%= t'message.inbox.date' %></th>
<th></th>
<th></th>
</tr>
@ -16,5 +16,5 @@
</table>
</div>
<% else %>
<div id="messages">You have no messages yet. Why not get in touch with some of the <%= link_to 'people mapping nearby', :controller => 'user', :action => 'view', :display_name => @user.display_name %>?</div>
<div id="messages"><%= t'message.inbox.no_messages_yet', :people_mapping_nearby_link => link_to(t('message.inbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name) %></div>
<% end %>

View file

@ -1,29 +1,24 @@
<h2>Send a new message to <%= h(@to_user.display_name) %></h2>
<% if params[:display_name] %>
<p>Writing a new message to <%= h(params[:display_name]) %></p>
<p>TODO: drop down box of your friends</p>
<%end%>
<h2><%= t'message.new.send_message_to', :name => h(@to_user.display_name) %></h2>
<%= error_messages_for 'message' %>
<% form_for :message, :url => { :action => "new", :user_id => @to_user.id } do |f| %>
<table>
<tr valign="top">
<th>Subject</th>
<th><%= t'message.new.subject' %></th>
<td><%= f.text_field :title, :size => 60, :value => @title %></td>
</tr>
<tr valign="top">
<th>Body</th>
<th><%= t'message.new.body' %></th>
<td><%= f.text_area :body, :cols => 80, :value => @body %></td>
</tr>
<tr>
<th></th>
<td><%= submit_tag 'Send' %></td>
<td><%= submit_tag t('message.new.send_button') %></td>
</tr>
</table>
<% end %>
<br />
<%= link_to 'Back to inbox', :controller => 'message', :action => 'inbox', :display_name => @user.display_name %>
<%= link_to t('message.new.back_to_inbox'), :controller => 'message', :action => 'inbox', :display_name => @user.display_name %>

View file

@ -1,2 +1,2 @@
<h1>No such user or message</h1>
<p>Sorry there is no user or message with that name or id</p>
<h1><%= t'message.no_such_user.no_such_user' %></h1>
<p><%= t'message.no_such_user.sorry' %></p>

View file

@ -1,18 +1,18 @@
<h2>My <%= link_to "inbox", url_for(:controller => "user", :action => "inbox", :id => @user.display_name) %>/outbox</h2>
<h2><%= t'message.outbox.my_inbox', :inbox_link => link_to(t('message.outbox.inbox'), url_for(:controller => "user", :action => "inbox", :id => @user.display_name)) %>/<%= t'message.outbox.outbox' %></h2>
<p>You have <%= @user.sent_messages.size %> sent messages
<p><%= t'message.outbox.you_have_sent_messages', :sent_count => @user.sent_messages.size %>
<% if @user.sent_messages.size > 0 %>
<div id="messages">
<table class="messages">
<tr>
<th>To</th>
<th>Subject</th>
<th>Date</th>
<th><%= t'message.outbox.to' %></th>
<th><%= t'message.outbox.subject' %></th>
<th><%= t'message.outbox.date' %></th>
</tr>
<%= render :partial => "sent_message_summary", :collection => @user.sent_messages %>
</table>
</div>
<% else %>
<div id="messages">You have no sent messages yet. Why not get in touch with some of the <%= link_to 'people mapping nearby', :controller => 'user', :action => 'view', :display_name => @user.display_name %>?</div>
<div id="messages"><%= t'message.outbox.no_sent_messages', :people_mapping_nearby_link => link_to(t('message.outbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name) %></div>
<% end %>

View file

@ -1,10 +1,10 @@
<% if @user == @message.recipient %>
<h2>Reading your messages</h2>
<h2><%= t'message.read.reading_your_messages' %></h2>
<table>
<tr>
<th align="right">From</th>
<th align="right"><%= t'message.read.from' %></th>
<td>
<% if @message.sender.image %>
<%= image_tag url_for_file_column(@message.sender, "image") %>
@ -13,12 +13,12 @@
<%= link_to h(@message.sender.display_name), :controller => 'user', :action => 'view', :display_name => @message.sender.display_name %></td>
</tr>
<tr>
<th align="right">Subject</th>
<th align="right"><%= t'message.read.subject' %></th>
<td><%= h(@message.title) %></td>
</tr>
<tr>
<th align="right">Date</th>
<td><%= @message.sent_on %></td>
<th align="right"><%= t'message.read.date' %></th>
<td><%= l @message.sent_on %></td>
</tr>
<tr>
<th></th>
@ -30,28 +30,28 @@
<table>
<tr>
<td><%= button_to 'Reply', :controller => 'message', :action => 'reply', :message_id => @message.id %></td>
<td><%= button_to 'Mark as unread', :controller => 'message', :action => 'mark', :message_id => @message.id, :mark => 'unread' %></td>
<td><%= link_to 'Back to inbox', :controller => 'message', :action => 'inbox', :display_name => @user.display_name %></td>
<td><%= button_to t('message.read.reply_button'), :controller => 'message', :action => 'reply', :message_id => @message.id %></td>
<td><%= button_to t('message.read.unread_button'), :controller => 'message', :action => 'mark', :message_id => @message.id, :mark => 'unread' %></td>
<td><%= link_to t('message.read.back_to_inbox'), :controller => 'message', :action => 'inbox', :display_name => @user.display_name %></td>
</tr>
</table>
<% else %>
<h2>Reading your sent messages</h2>
<h2><%= t'message.read.reading_your_sent_messages' %></h2>
<table>
<tr>
<th align="right">To</th>
<th align="right"><%= t'message.read.to' %></th>
<td><%= link_to h(@message.recipient.display_name), :controller => 'user', :action => 'view', :display_name => @message.recipient.display_name %></td>
</tr>
<tr>
<th align="right">Subject</th>
<th align="right"><%= t'message.read.subject' %></th>
<td><%= h(@message.title) %></td>
</tr>
<tr>
<th align="right">Date</th>
<td><%= @message.sent_on %></td>
<th align="right"><%= t'message.read.date' %></th>
<td><%= l @message.sent_on %></td>
</tr>
<tr>
<th></th>
@ -63,7 +63,7 @@
<table>
<tr>
<td><%= link_to 'Back to outbox', :controller => 'message', :action => 'outbox', :display_name => @user.display_name %></td>
<td><%= link_to t('message.read.back_to_outbox'), :controller => 'message', :action => 'outbox', :display_name => @user.display_name %></td>
</tr>
</table>

View file

@ -1,44 +1,25 @@
***************************************************************************
* *
* Please do not reply to this email. *
* Use the OpenStreetMap web site to reply. *
* *
* Bitte antworten Sie nicht auf diese E-Mail. *
* Verwenden Sie die OpenStreetMap Website zum Antworten. *
* *
* Por favor, no responda a este mensaje. *
* Utilice el OpenStreetMap sitio web para responder. *
* *
* Sil vous plaît de ne pas répondre à ce message. *
* Utilisez le OpenStreetMap site Web pour y répondre. *
<%= t'banner1' %>
<%= t'banner2' %>
* *
***************************************************************************
Hi <%= @to_user %>,
<%= @from_user %> has commented on your recent OpenStreetMap diary entry
with the subject "<%= @subject %>":
<%= t'notifier.diary.hi', :to_user => @to_user %>
<%= t'notifier.diary.header', :from_user => @from_user, :subject => @subject %>
==
<%= @body %>
==
You can also read the comment at <%= @readurl %>
and you can comment at <%= @commenturl %>
or reply at <%= @replyurl %>
<%= t'notifier.diary.header', :readurl => @readurl, :commenturl => @commenturl, :replyurl => @replyurl
***************************************************************************
* *
* Please do not reply to this email. *
* Use the OpenStreetMap web site to reply. *
* *
* Bitte antworten Sie nicht auf diese E-Mail. *
* Verwenden Sie die OpenStreetMap Website zum Antworten. *
* *
* Por favor, no responda a este mensaje. *
* Utilice el OpenStreetMap sitio web para responder. *
* *
* Sil vous plaît de ne pas répondre à ce message. *
* Utilisez le OpenStreetMap site Web pour y répondre. *
<%= t'banner1' %>
<%= t'banner2' %>
* *
***************************************************************************

View file

@ -1,18 +1,18 @@
<p>Hi there!</p>
<p><%= t'notifier.signup_confirm_html.greeting' %></p>
<p>Someone (hopefully you) would like to create an account over at
<p><%= t'notifier.signup_confirm_html.hopefully_you' %>
<%= SERVER_URL %>.</p>
<p>If this is you, welcome! Please click the link below to confirm that account and read on for more information about OpenStreetMap</p>
<p><%= t'notifier.signup_confirm_html.click_the_link' %></p>
<p><a href="<%= @url %>"><%= @url %></a></p>
<p>You can watch an introductory video to OpenStreetMap <a href="http://showmedo.com/videos/video?name=1800000&fromSeriesID=180">video here</a>. There are more <a href="http://showmedo.com/videos/series?name=mS2P1ZqS6">videos here</a>.
<p><%= t'notifier.signup_confirm_html.introductory_video', :introductory_video_link => ('<a href="http://showmedo.com/videos/video?name=1800000&fromSeriesID=180">' + t('notifier.signup_confirm_html.video_to_openstreetmap') + '</a>') %> <%= t'notifier.signup_confirm_html.more_videos', :more_videos_link => ('<a href="http://showmedo.com/videos/series?name=mS2P1ZqS6">' + t('notifier.signup_confirm_html.more_videos_here') + '</a>') %>
Get reading about OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">on the wiki</p> or <a href="http://www.opengeodata.org/">the opengeodata blog</a> which has <a href="http://www.opengeodata.org/?cat=13">podcasts to listen to</a> also!
<p><%= t'notifier.signup_confirm_html.get_reading' %></p>
<p>You may also want to <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">sign up to the OpenStreetMap wiki</a>.</p>
<p><%= t'notifier.signup_confirm_html.wiki_signup' %></p>
<p>It is recommended that you create a user wiki page, which includes category tags noting where you are, such as <a href="http://wiki.openstreetmap.org/index.php/Category:Users_in_London">[[Category:Users_in_London]]</a>.</p>
<p><%= t'notifier.signup_confirm_html.user_wiki_page' %></p>
<p>A list of current users in categories, based on where in the world they are, is available from <a href="http://wiki.openstreetmap.org/index.php/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.</p>
<p><%= t'notifier.signup_confirm_html.current_user' %></p>

View file

@ -1,37 +1,37 @@
Hi there!
<%= t'notifier.signup_confirm_plain.greeting' %>
Someone (hopefully you) would like to create an account over at
<%= t'notifier.signup_confirm_plain.hopefully_you' %>
<%= SERVER_URL %>
If this is you, welcome! Please click the link below to confirm that
account and read on for more information about OpenStreetMap.
<%= t'notifier.signup_confirm_plain.click_the_link_1' %>
<%= t'notifier.signup_confirm_plain.click_the_link_2' %>
<%= @url %>
You can watch an introductory video to OpenStreetMap here:
<%= t'notifier.signup_confirm_plain.introductory_video' %>
http://showmedo.com/videos/video?name=1800000&fromSeriesID=180
There are more videos here:
<%= t'notifier.signup_confirm_plain.more_videos' %>
http://showmedo.com/videos/series?name=mS2P1ZqS6
Get reading about OpenStreetMap on the wiki:
<%= t'notifier.signup_confirm_plain.the_wiki' %>
http://wiki.openstreetmap.org/wiki/Beginners%27_Guide
OpenGeoData.org is OpenStreetMap's blog, and it has podcasts too:
<%= t'notifier.signup_confirm_plain.opengeodata' %>
http://www.opengeodata.org/
You may also want to sign up to the OpenStreetMap wiki at:
<%= t'notifier.signup_confirm_plain.wiki_signup' %>
http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page
It is recommended that you create a user wiki page, which includes
category tags noting where you are, such as [[Category:Users_in_London]].
<%= t'notifier.signup_confirm_plain.user_wiki_1' %>
<%= t'notifier.signup_confirm_plain.user_wiki_2' %>
A list of current users in categories, based on where in the world
they are, is available from:
<%= t'notifier.signup_confirm_plain.current_user_1' %>
<%= t'notifier.signup_confirm_plain.current_user_2' %>
http://wiki.openstreetmap.org/index.php/Category:Users_by_geographical_region

View file

@ -1,5 +1,5 @@
<% content_for :left_menu do %>
<%= link_to_function "Map key", "showKey();" %>
<%= link_to_function t('site.key.map_key'), "showKey();" %>
<% end %>
<script type="text/javascript">

View file

@ -31,23 +31,21 @@
<% content_for "optionals" do %>
<div class="optionalbox">
<span class="oboxheader">Search</span>
<span class="whereami"><a href="javascript:describeLocation()">Where am I?</a></span>
<span class="oboxheader"><%= t 'site.search.search' %></span>
<span class="whereami"><a href="javascript:describeLocation()"><%= t 'site.search.where_am_i' %></a></span>
<div class="search_form">
<div id="search_field">
<% form_remote_tag(:loading => "startSearch()",
:complete => "endSearch()",
:url => { :controller => :geocoder, :action => :search }) do %>
<%= text_field_tag :query, h(params[:query]) %>
<%= submit_tag "Go" %>
<%= submit_tag t('site.search.submit_text') %>
<% end %>
</div>
<p id="search_active">Searching...</p>
<p id="search_active"><%= t 'site.search.searching' %></p>
</div>
<p class="search_help">
examples: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ',
or 'post offices near Lünen'
<a href="http://wiki.openstreetmap.org/index.php/Search">more examples...</a>
<%= t 'site.search.search_help' %>
</p>
</div>
<% end %>

View file

@ -1,8 +1,8 @@
<div id="sidebar">
<table class="sidebar_title" width="100%">
<tr>
<td align="left" id="sidebar_title">Search Results</td>
<td align="right"><a href="javascript:closeSidebar()">Close</a></td>
<td align="left" id="sidebar_title"><% t 'site.sidebar.search_results' %></td>
<td align="right"><a href="javascript:closeSidebar()"><%= t 'site.sidebar.close' %></a></td>
</tr>
</table>
<div id="sidebar_content">

View file

@ -1,16 +1,14 @@
<% if OSM_STATUS == :database_offline or OSM_STATUS == :api_offline %>
<p>The OpenStreetMap database is currently offline while
essential database maintenance work is carried out.
<p><%= t 'layouts.osm_offline' %>
</p>
<% elsif OSM_STATUS == :database_readonly or OSM_STATUS == :api_readonly %>
<p>The OpenStreetMap database is currently in read-only mode while
essential database maintenance work is carried out.
<p><%= t 'layouts.osm_read_only' %>
</p>
<% elsif !@user.data_public? %>
<p>You haven't set your edits to be public.</p>
<p>You can no longer edit the map unless you do so. You can set your edits as public from your
<%= link_to 'user page', {:controller => 'user', :action => 'account', :display_name => @user.display_name, :anchor => 'public'}%>.</p>
<p>(<a href="http://wiki.openstreetmap.org/index.php/Disabling_anonymous_edits">Find out why this is the case.</a>)</p>
<p><%= t 'site.edit.not_public' %></p>
<p><%= t 'site.edit.not_public_description',
:user_page => (link_to t('site.edit.user_page_link'), {:controller => 'user', :action => 'account', :display_name => @user.display_name, :anchor => 'public'}) %></p>
<p><%= t 'site.edit.anon_edits', :link => link_to(t('site.edit.anon_edit_link_text'), t('site.edit.anon_edits_link')) %> (<a href=""></a>)</p>
<% else %>
<% content_for :greeting do %>
<% if @user and !@user.home_lon.nil? and !@user.home_lat.nil? %>
@ -54,11 +52,7 @@ zoom='14' if zoom.nil?
%>
<div id="map">
You need a Flash player to use Potlatch, the
OpenStreetMap Flash editor. You can <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">download Flash Player from Adobe.com</a>.
<a href="http://wiki.openstreetmap.org/index.php/Editing">Several other options</a> are also available
for editing OpenStreetMap.
<%= t 'site.edit.flash_player_required' %>
</div>
<%= javascript_include_tag 'swfobject.js' %>
@ -71,7 +65,7 @@ zoom='14' if zoom.nil?
window.onbeforeunload=function() {
if (!changesaved && !winie) {
return "You have unsaved changes.";
return "<%= t 'site.edit.potlatch_unsaved_changes' %>";
}
}

View file

@ -10,14 +10,14 @@
<noscript>
<div id="noscript">
<p>You are either using a browser that doesn't support javascript, or you have disabled javascript.</p>
<p>OpenStreetMap uses javascript for its slippy map.</p>
<p>You may want to try the <a href="http://tah.openstreetmap.org/Browse/">Tiles@Home static tile browser</a> if you are unable to enable javascript.</p>
<p><%= t 'site.index.js_1' %></p>
<p><%= t 'site.index.js_2' %></p>
<p><%= t 'site.index.js_3' %></p>
</div>
</noscript>
<div id="map">
<div id="permalink"><a href="/" id="permalinkanchor">Permalink</a></div>
<div id="permalink"><a href="/" id="permalinkanchor"><%= t 'site.index.permalink' %></a></div>
</div>
<div id="attribution">
@ -27,7 +27,7 @@
<td align="right">http://openstreetmap.org/</td>
</tr>
<tr>
<td colspan="2" align="center">Licensed under the Creative Commons Attribution-Share Alike 2.0 license by the OpenStreetMap project and its contributors.</td>
<td colspan="2" align="center"><%= t 'site.index.license' %></td>
</tr>
</table>
</div>

View file

@ -1,9 +1,7 @@
<% if OSM_STATUS == :database_offline %>
<p>The OpenStreetMap database is currently offline while
essential database maintenance work is carried out.
<p><%= t 'layouts.osm_offline' %>
</p>
<% else %>
<p>The OpenStreetMap database is currently in read-only mode while
essential database maintenance work is carried out.
<p><%= t 'layouts.osm_read_only' %>
</p>
<% end %>

View file

@ -4,7 +4,7 @@
<% if trace.inserted %>
<a href="<%= url_for :controller => 'trace', :action => 'view', :id => trace.id, :display_name => trace.user.display_name %>"><img src="<%= url_for :controller => 'trace', :action => 'icon', :id => trace.id, :display_name => trace.user.display_name %>" border="0" alt="" /></a>
<% else %>
<span style="color:red">PENDING</span>
<span style="color:red"><%= t'trace.trace.pending' %></span>
<% end %>
</td>
<td class="<%= cl %>"><%= link_to trace.name, {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id} %>
@ -13,20 +13,20 @@
(<%= trace.size.to_s.gsub(/(\d)(?=(\d{3})+$)/,'\1,') %> points)
<% end %>
... <%= time_ago_in_words( trace.timestamp ) %> ago</span>
<%= link_to 'more', {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id}, {:title => 'View Trace Details'} %> /
<%= link_to_if trace.inserted?, 'map', {:controller => 'site', :action => 'index', :lat => trace.latitude, :lon => trace.longitude, :zoom => 14}, {:title => 'View Map'} %> /
<%= link_to 'edit', {:controller => 'site', :action => 'edit', :gpx => trace.id }, {:title => 'Edit Map'} %>
<%= link_to t('trace.trace.more'), {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id}, {:title => t('trace.trace.trace_details')} %> /
<%= link_to_if trace.inserted?, 'map', {:controller => 'site', :action => 'index', :lat => trace.latitude, :lon => trace.longitude, :zoom => 14}, {:title => t('trace.trace.view_map')} %> /
<%= link_to t('trace.trace.edit'), {:controller => 'site', :action => 'edit', :gpx => trace.id }, {:title => t('trace.trace.edit_map')} %>
<% if trace.public? %>
<span style="color:green">PUBLIC</span>
<span style="color:green"><%= t'trace.trace.public' %></span>
<% else %>
<span style="color:red">PRIVATE</span>
<span style="color:red"><%= t'trace.trace.private' %></span>
<% end %>
<br />
<%= h(trace.description) %>
<br />
by <%= link_to h(trace.user.display_name), {:controller => 'user', :action => 'view', :display_name => trace.user.display_name} %>
<%= t'trace.trace.by' %> <%=link_to h(trace.user.display_name), {:controller => 'user', :action => 'view', :display_name => trace.user.display_name} %>
<% if !trace.tags.empty? %>
in
<%= t'trace.trace.in' %>
<% trace.tags.each do |tag| %>
<%= link_to_tag tag.tag %>
<% end %>

View file

@ -1,9 +1,9 @@
<% form_for :trace, @trace, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>
<table>
<tr><td align="right">Upload GPX File</td><td><%= f.file_field :gpx_file, :size => 50, :maxlength => 255 %></td></tr>
<tr><td align="right">Description</td><td><%= f.text_field :description, :size => 50, :maxlength => 255 %></td></tr>
<tr><td align="right">Tags</td><td><%= f.text_field :tagstring, :size => 50, :maxlength => 255 %></td></tr>
<tr><td align="right">Public?</td><td><%= f.check_box :public %></td></tr>
<tr><td></td><td><%= submit_tag 'Upload' %> | <a href="http://wiki.openstreetmap.org/index.php/Upload">Help</a></td></tr>
<tr><td align="right"><%= t'trace.trace_form.upload_gpx' %></td><td><%= f.file_field :gpx_file, :size => 50, :maxlength => 255 %></td></tr>
<tr><td align="right"><%= t'trace.trace_form.description' %></td><td><%= f.text_field :description, :size => 50, :maxlength => 255 %></td></tr>
<tr><td align="right"><%= t'trace.trace_form.tags' %></td><td><%= f.text_field :tagstring, :size => 50, :maxlength => 255 %></td></tr>
<tr><td align="right"><%= t'trace.trace_form.public' %></td><td><%= f.check_box :public %></td></tr>
<tr><td></td><td><%= submit_tag t('trace.trace_form.upload_button') %> | <a href="http://wiki.openstreetmap.org/index.php/Upload"><%= t'trace.trace_form.help' %></a></td></tr>
</table>
<% end %>

View file

@ -7,20 +7,16 @@
<p>
<%= rss_link_to :action => 'georss', :display_name => @display_name, :tag => @tag %>
<% if @user.nil? or @display_name.nil? or @user.display_name != @display_name %>
| <%= link_to 'See just your traces, or upload a trace', :action => 'mine' %>
| <%= link_to t('trace.trace_header.see_just_your_traces'), :action => 'mine' %>
<% end %>
<% if @tag or @display_name %>
| <%= link_to 'See all traces', :controller => 'trace', :action => 'list' %>
| <%= link_to t('trace.trace_header.see_all_traces'), :controller => 'trace', :action => 'list' %>
<% end %>
<% if @tag and @user and @user.display_name == @display_name %>
| <%= link_to 'See all your traces', :controller => 'trace', :action => 'mine' %>
| <%= link_to t('trace.trace_header.see_your_traces'), :controller => 'trace', :action => 'mine' %>
<% end %>
</p>
<% if @user and @user.traces.count(:conditions => ["inserted=?", false]) > 4 %>
<p>
You have <%= @user.traces.count(:conditions => ["inserted=?", false]) %> traces
waiting for upload. Please consider waiting for these to finish before
uploading any more, so as not to block the queue for other users.
</p>
<p><%= t'trace.trace_header.traces_waiting', :count => @user.traces.count(:conditions => ["inserted=?", false]) %></p>
<% end %>

View file

@ -1,6 +1,6 @@
<% content_for "optionals" do %>
<div class="optionalbox">
<span class="oboxheader">Tags</span>
<span class="oboxheader"><%= t'trace.trace_optionals.tags' %></span>
<br />
<br />
<% if @all_tags %>

View file

@ -1,11 +1,11 @@
<% current_page = @trace_pages.current_page %>
Showing page
<%= t'trace.trace_paging_nav.showing' %>
<%= current_page.number %> (<%= current_page.first_item %><%
if (current_page.first_item < current_page.last_item) # if more than 1 trace on page
%>-<%= current_page.last_item %><%
end %>
of <%= @trace_pages.item_count %>)
<%= t'trace.trace_paging_nav.of' %> <%= @trace_pages.item_count %>)
<% if @trace_pages.page_count > 1 %>
| <%= pagination_links_each(@trace_pages, {}) { |n| link_to_page(n) } %>

View file

@ -1,4 +1,4 @@
<h1>Upload GPS Trace</h1>
<h1><%= t'trace.create.upload_trace' %></h1>
<%= error_messages_for 'trace' %>

View file

@ -6,28 +6,28 @@
<table border="0">
<tr>
<td>Filename:</td>
<td><%= t'trace.edit.filename' %></td>
<td><%= @trace.name %> (<%= link_to 'download', :controller => 'trace', :action => 'data', :id => @trace.id %>)</td>
</tr>
<tr>
<td>Uploaded at:</td>
<td><%= t'trace.edit.uploaded_at' %></td>
<td><%= @trace.timestamp %></td>
</tr>
<% if @trace.inserted? %>
<tr>
<td>Points:</td>
<td><%= t'trace.edit.points' %></td>
<td><%= @trace.size.to_s.gsub(/(\d)(?=(\d{3})+$)/,'\1,') %></td></tr>
<tr>
<td>Start coordinate:</td>
<td><div class="geo" style="display: inline"><span class="latitude"><%= @trace.latitude %></span>; <span class="longitude"><%= @trace.longitude %></span></div> (<%=link_to 'map', :controller => 'site', :action => 'index', :lat => @trace.latitude, :lon => @trace.longitude, :zoom => 14 %> / <%=link_to 'edit', :controller => 'site', :action => 'edit', :lat => @trace.latitude, :lon => @trace.longitude, :gpx=> @trace.id, :zoom => 14 %>)</td>
<td><%= t'trace.edit.start_coord' %>Start coordinate:</td>
<td><div class="geo" style="display: inline"><span class="latitude"><%= @trace.latitude %></span>; <span class="longitude"><%= @trace.longitude %></span></div> (<%=link_to 'map', :controller => 'site', :action => 'index', :lat => @trace.latitude, :lon => @trace.longitude, :zoom => 14 %> / <%=link_to t('trace.edit.edit'), :controller => 'site', :action => 'edit', :lat => @trace.latitude, :lon => @trace.longitude, :gpx=> @trace.id, :zoom => 14 %>)</td>
</tr>
<% end %>
<tr>
<td>Owner:</td>
<td><%= t'trace.edit.owner' %></td>
<td><%= link_to h(@trace.user.display_name), {:controller => 'user', :action => 'view', :display_name => @trace.user.display_name} %></td>
</tr>
<tr>
<td>Description:</td>
<td><%= t'trace.edit.description' %></td>
<td><%= f.text_field :description %></td>
</tr>
<tr>

View file

@ -1,2 +1,2 @@
<h2><%= h(@not_found_user) %></h2>
<p>Sorry, there is no user with the name <%= @not_found_user -%>. Please check your spelling, or maybe the link you clicked is wrong.</p>
<p><%= t'trace.no_such_user.no_such_user', :name => @not_found_user %></p>

View file

@ -3,44 +3,44 @@
<% if @trace.inserted %>
<img src="<%= url_for :controller => 'trace', :action => 'picture', :id => @trace.id, :display_name => @trace.user.display_name %>">
<% else %>
<span style="color:red">PENDING</span>
<span style="color:red"><%= t'trace.view.pending' %></span>
<% end %>
<table border="0">
<tr>
<td>Filename:</td>
<td><%= @trace.name %> (<%= link_to 'download', :controller => 'trace', :action => 'data', :id => @trace.id %>)</td>
<td><%= t'trace.view.filename' %></td>
<td><%= @trace.name %> (<%= link_to t('trace.view.download'), :controller => 'trace', :action => 'data', :id => @trace.id %>)</td>
</tr>
<tr>
<td>Uploaded at:</td>
<td><%= t'trace.view.uploaded' %></td>
<td><%= @trace.timestamp %></td>
</tr>
<% if @trace.inserted? %>
<tr>
<td>Points:</td>
<td><%= t'trace.view.points' %></td>
<td><%= @trace.size.to_s.gsub(/(\d)(?=(\d{3})+$)/,'\1,') %></td></tr>
<tr>
<td>Start coordinate:</td>
<td><div class="geo" style="display: inline"><span class="latitude"><%= @trace.latitude %></span>; <span class="longitude"><%= @trace.longitude %></span></div> (<%=link_to 'map', :controller => 'site', :action => 'index', :lat => @trace.latitude, :lon => @trace.longitude, :zoom => 14 %> / <%=link_to 'edit', :controller => 'site', :action => 'edit', :lat => @trace.latitude, :lon => @trace.longitude, :gpx=> @trace.id, :zoom => 14 %>)</td>
<td><%= t'trace.view.start_coordinates' %></td>
<td><div class="geo" style="display: inline"><span class="latitude"><%= @trace.latitude %></span>; <span class="longitude"><%= @trace.longitude %></span></div> (<%=link_to t('trace.view.map'), :controller => 'site', :action => 'index', :lat => @trace.latitude, :lon => @trace.longitude, :zoom => 14 %> / <%=link_to t('trace.view.edit'), :controller => 'site', :action => 'edit', :lat => @trace.latitude, :lon => @trace.longitude, :gpx=> @trace.id, :zoom => 14 %>)</td>
</tr>
<% end %>
<tr>
<td>Owner:</td>
<td><%= t'trace.view.owner' %></td>
<td><%= link_to h(@trace.user.display_name), {:controller => 'user', :action => 'view', :display_name => @trace.user.display_name} %></td>
</tr>
<tr>
<td>Description:</td>
<td><%= t'trace.view.description' %></td>
<td><%= h(@trace.description) %></td>
</tr>
<tr>
<td>Tags:</td>
<td><%= t'trace.view.tags' %></td>
<td>
<% if @trace.tags %>
<% @trace.tags.each do |tag| %>
<%= link_to tag.tag, { :controller => 'trace', :action => 'list', :tag => tag.tag, :id => nil } %>
<% end %>
<% else %>
None
<%= t'trace.view.none' %>
<% end %>
</td>
</tr>
@ -51,13 +51,13 @@
<table>
<tr>
<% unless @trace.public? %>
<td><%= button_to 'Make this track public permanently', :controller => 'trace', :action => 'make_public', :id => @trace.id %></td>
<td><%= button_to t('trace.view.make_public'), :controller => 'trace', :action => 'make_public', :id => @trace.id %></td>
<% end %>
<% if @trace.user == @user %>
<td><%= button_to 'Edit this track', :controller => 'trace', :action => 'edit', :id => @trace.id %></td>
<td><%= button_to t('trace.view.edit_track'), :controller => 'trace', :action => 'edit', :id => @trace.id %></td>
<% end %>
<% if @trace.user == @user %>
<td><%= button_to 'Delete this track', :controller => 'trace', :action => 'delete', :id => @trace.id %></td>
<td><%= button_to t('trace.view.delete_track'), :controller => 'trace', :action => 'delete', :id => @trace.id %></td>
<% end %>
</tr>
</table>

View file

@ -45,14 +45,14 @@
setMapCenter(centre, zoom);
<% if marker %>
marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null, "Your location");
marker = addMarkerToMap(new OpenLayers.LonLat(<%= mlon %>, <%= mlat %>), null, "<%= t 'user.friend_map.your location' %>");
<% end %>
var near_icon = OpenLayers.Marker.defaultIcon();
near_icon.url = OpenLayers.Util.getImagesLocation() + "marker-green.png";;
var i = nearest.length;
while( i-- ) {
var description = 'Nearby mapper: <a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a>'
var description = '<%= t 'user.friend_map.nearby mapper'%><a href="/user/'+nearest[i].display_name+'">'+nearest[i].display_name+'</a>'
var nearmarker = addMarkerToMap(new OpenLayers.LonLat(nearest[i].home_lon, nearest[i].home_lat), near_icon.clone(), description);
}
@ -75,7 +75,7 @@
removeMarkerFromMap(marker);
}
marker = addMarkerToMap(lonlat, null, "Your location");
marker = addMarkerToMap(lonlat, null, "<%= t 'user.friend_map.your location' %>");
}
}

View file

@ -1,33 +1,35 @@
<h2>My settings</h2>
<h2><%= t 'user.account.my settings' %></h2>
<%= error_messages_for 'user' %>
<% form_for :user, @user do |f| %>
<table id="accountForm">
<tr><td class="fieldName">Display Name : </td><td><%= f.text_field :display_name %></td></tr>
<tr><td class="fieldName">Email : </td><td><%= f.text_field :email, {:size => 50, :maxlength => 255} %> <span class="minorNote">(never displayed publicly)</span></td></tr>
<tr><td class="fieldName" style="padding-bottom:0px;">Password : </td><td style="padding-bottom:0px;"><%= f.password_field :pass_crypt, {:value => '', :size => 30, :maxlength => 255} %></td></tr>
<tr><td class="fieldName">Confirm Password : </td><td><%= f.password_field :pass_crypt_confirmation, {:value => '', :size => 30, :maxlength => 255} %></td></tr>
<tr><td class="fieldName"><%= t 'user.new.display name' %></td><td><%= f.text_field :display_name %></td></tr>
<tr><td class="fieldName"><%= t 'user.new.email address' %></td><td><%= f.text_field :email, {:size => 50, :maxlength => 255} %> <span class="minorNote"><%= t 'user.account.email never displayed publicly' %></span></td></tr>
<tr><td class="fieldName" style="padding-bottom:0px;"><%= t 'user.new.password' %></td><td style="padding-bottom:0px;"><%= f.password_field :pass_crypt, {:value => '', :size => 30, :maxlength => 255} %></td></tr>
<tr><td class="fieldName"><%= t 'user.new.confirm password' %></td><td><%= f.password_field :pass_crypt_confirmation, {:value => '', :size => 30, :maxlength => 255} %></td></tr>
<tr>
<td class="fieldName" valign="top">Public editing :</td>
<td class="fieldName" valign="top"><%= t 'user.account.public editing.heading' %></td>
<td>
<% if @user.data_public? %>
Enabled. Not anonymous <span class="minorNote">(<a href="http://wiki.openstreetmap.org/index.php/Disabling_anonymous_edits" target="_new">what's this?</a>)</span>
<%= t 'user.account.public editing.enabled' %> <span class="minorNote">(<a href="<%= t 'user.account.public editing.enabled link' %>" target="_new"><%= t 'user.account.public editing.enabled link text' %></a>)</span>
<% else %>
Disabled and anonymous. <span class="minorNote">(<a href="#public">why's this bad?</a>)</span>
<%= t 'user.account.public editing.disabled' %><span class="minorNote">(<a href="#public"><%= t 'user.account.public editing.disabled link text' %></a>)</span>
<% end %>
</td>
</tr>
<tr><td class="fieldName" valign="top">Profile Description : </td><td><%= f.text_area :description, :rows => '5', :cols => '60' %><br /><br /></td></tr>
<tr><td class="fieldName" valign="top"><%= t 'user.account.profile description' %></td><td><%= f.text_area :description, :rows => '5', :cols => '60' %></td></tr>
<tr id="homerow" <% unless @user.home_lat and @user.home_lon %> class="nohome" <%end%> ><td class="fieldName">Home Location : </td><td><em class="message">You have not entered your home location.</em><span class="location">Latitude: <%= f.text_field :home_lat, :size => 20, :id => "home_lat" %> Longitude <%= f.text_field :home_lon, :size => 20, :id => "home_lon" %></span></td></tr>
<tr><td class="fieldName" valign="top"><%= t 'user.account.preferred languages' %></td><td><%= f.text_field :languages %></td></tr>
<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></tr>
<tr><td></td><td>
<p>Update home location when I click on the map? <input type="checkbox" value="1" <% unless @user.home_lat and @user.home_lon %> checked="checked" <% end %> id="updatehome" /> </p>
<p><%= t 'user.account.update home location on click' %> <input type="checkbox" value="1" <% unless @user.home_lat and @user.home_lon %> checked="checked" <% end %> id="updatehome" /> </p>
<div id="map" style="border:1px solid black; position:relative; width:500px; height:400px;"></div>
</td></tr>
<tr><td></td><td align=right><br/></br><%= submit_tag 'Save Changes' %></td></tr>
<tr><td></td><td align=right><br/></br><%= submit_tag t('user.account.save changes button') %></td></tr>
</table>
<br/>
@ -42,10 +44,10 @@
Your email address will not be revealed by becoming public.<br />
This action cannot be reversed and all new users are now public by default.<br />
<br /><br />
<%= button_to "Make all my edits public", :action => :go_public %>
<%= button_to t('user.account.make all my edits public button'), :action => :go_public %>
<% end %>
<br/>
<br/>
<%= link_to 'return to profile', :controller => 'user', :action => @user.display_name %>
<%= link_to t('user.account.return to profile'), :controller => 'user', :action => @user.display_name %>
<br/>
<br/>

View file

@ -1,10 +1,10 @@
<h1>Confirm a user account</h1>
<h1><%= t 'user.confirm.heading' %></h1>
<p>Press the confirm button below to activate your account.</p>
<p><%= t 'user.confirm.press confirm button' %></p>
<form method="post">
<input type="hidden" name="confirm_string" value="<%= params[:confirm_string] %>">
<input type="submit" name="confirm_action" value="Confirm">
<input type="submit" name="confirm_action" value="<%= t 'user.confirm.button' %>">
</form>

View file

@ -1,8 +1,8 @@
<h1>Confirm a change of email address</h1>
<h1><%= t 'user.confirm email.heading' %></h1>
<p>Press the confirm button below to confirm your new email address.</p>
<p><%= t 'user.confirm email. press confirm button' %></p>
<form method="post">
<input type="hidden" name="confirm_string" value="<%= params[:confirm_string] %>">
<input type="submit" name="confirm_action" value="Confirm">
<input type="submit" name="confirm_action" value="<%= t 'user.confirm email.button' %>">
</form>

View file

@ -1,13 +1,13 @@
<h1>Login</h1>
<h1><%= t 'user.login.heading' %></h1>
<p>Please login or <%= link_to 'create an account', :controller => 'user', :action => 'new' %>.</p>
<p><%= t 'user.login.please login', :create_user_link => link_to(t('user.login.create_account'), :controller => 'user', :action => 'new') %></p>
<% form_tag :action => 'login' do %>
<%= hidden_field_tag('referer', h(params[:referer])) %>
<table>
<tr><td class="fieldName">Email Address or Username:</td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255, :tabindex => 1}) %></td></tr>
<tr><td class="fieldName">Password:</td><td><%= password_field('user', 'password',{:size => 28, :maxlength => 255, :tabindex => 2}) %> <span class="minorNote">(<%= link_to 'Lost your password?', :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
<tr><td class="fieldName"><%= t 'user.login.email or username' %></td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255, :tabindex => 1}) %></td></tr>
<tr><td class="fieldName"><%= t 'user.login.password' %></td><td><%= password_field('user', 'password',{: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 colspan=2>&nbsp;<!--vertical spacer--></td></tr>
<tr><td></td><td align="right"><%= submit_tag 'Login', :tabindex => 3 %></td></tr>
<tr><td></td><td align="right"><%= submit_tag t('user.login.login_button'), :tabindex => 3 %></td></tr>
</table>
<% end %>

View file

@ -1,9 +1,9 @@
<h1>Forgotten Password?</h1><br>
<h1><%= t 'user.lost_password.heading' %></h1><br>
<% form_tag :action => 'lost_password' do %>
<table>
<tr><td>Email Address:</td><td><%= text_field('user', 'email', {:size => 50, :maxlength => 255} ) %></td></tr>
<tr><td><%= t 'user.lost_password.email address' %></td><td><%= text_field('user', 'email', {:size => 50, :maxlength => 255} ) %></td></tr>
</table>
<br>
<input type="submit" value="Send me a new password">
<input type="submit" value="<%= t 'user.lost_password.new password button' %>">
<% end %>

View file

@ -1,44 +1,36 @@
<h1>Create a User Account</h1>
<h1><%= t 'user.new.heading' %></h1>
<% if Acl.find_by_address(request.remote_ip, :conditions => {:k => "no_account_creation"}) %>
<p>Unfortunately we are not currently able to create an account for
you automatically.
<p><%= t 'user.new.no_auto_account_create' %>
</p>
<p>Please contact the <a href="mailto:webmaster@openstreetmap.org">webmaster</a>
to arrange for an account to be created - we will try and deal with
the request as quickly as possible.
<p><%= t 'user.new.contact_webmaster' %>
</p>
<% else %>
<p>Fill in the form and we'll send you a quick email to activate your
account.
<p><%= t 'user.new.fill_form' %>
</p>
<p>By creating an account, you agree that all work uploaded to
openstreetmap.org and all data created by use of any tools which
connect to openstreetmap.org is to be (non-exclusively) licensed under
<a href="http://creativecommons.org/licenses/by-sa/2.0/">this Creative
Commons license (by-sa)</a>.
<p><%= t 'user.new.license_agreement' %>
</p>
<%= error_messages_for 'user' %>
<% form_tag :action => 'save' do %>
<table id="loginForm">
<tr><td class="fieldName">Email Address : </td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255, :tabindex => 1}) %></td></tr>
<tr><td class="fieldName">Confirm Email Address : </td><td><%= text_field('user', 'email_confirmation',{:size => 50, :maxlength => 255, :tabindex => 2}) %></td></tr>
<tr><td></td><td><span class="minorNote">Not displayed publicly (see <a href="http://wiki.openstreetmap.org/index.php/Privacy_Policy" title="wiki privacy policy including section on email addresses">privacy policy</a>)</span></td></tr>
<tr><td class="fieldName"><%= t 'user.new.email address' %></td><td><%= text_field('user', 'email',{:size => 50, :maxlength => 255, :tabindex => 1}) %></td></tr>
<tr><td class="fieldName"><%= t 'user.new.confirm email address' %></td><td><%= text_field('user', 'email_confirmation',{:size => 50, :maxlength => 255, :tabindex => 2}) %></td></tr>
<tr><td></td><td><span class="minorNote"><%= t 'user.new.not displayed publicly' %></span></td></tr>
<tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr>
<tr><td class="fieldName">Display Name : </td><td><%= text_field('user', 'display_name',{:size => 30, :maxlength => 255, :tabindex => 3}) %></td></tr>
<tr><td class="fieldName"><%= t 'user.new.display name' %></td><td><%= text_field('user', 'display_name',{:size => 30, :maxlength => 255, :tabindex => 3}) %></td></tr>
<tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr>
<tr><td class="fieldName">Password : </td><td><%= password_field('user', 'pass_crypt',{:size => 30, :maxlength => 255, :tabindex => 4}) %></td></tr>
<tr><td class="fieldName">Confirm Password : </td><td><%= password_field('user', 'pass_crypt_confirmation',{:size => 30, :maxlength => 255, :tabindex => 5}) %></td></tr>
<tr><td class="fieldName"><%= t 'user.new.password' %></td><td><%= password_field('user', 'pass_crypt',{:size => 30, :maxlength => 255, :tabindex => 4}) %></td></tr>
<tr><td class="fieldName"><%= t 'user.new.confirm password' %></td><td><%= password_field('user', 'pass_crypt_confirmation',{:size => 30, :maxlength => 255, :tabindex => 5}) %></td></tr>
<tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr>
<tr><td></td><td align=right><input type="submit" value="Signup" tabindex="6"></td></tr>
<tr><td></td><td align=right><input type="submit" value="<%= t'user.new.signup' %>" tabindex="6"></td></tr>
</table>
<% end %>

View file

@ -1,2 +1,2 @@
<h2><%= h(@not_found_user) %></h2>
<p>Sorry, there is no user with the name <%= @not_found_user -%>. Please check your spelling, or maybe the link you clicked is wrong.</p>
<p><%= t 'user.no_such_user.body', :user => @not_found_user %></p>

View file

@ -1,66 +1,65 @@
<% @this_user = User.find_by_display_name(@this_user.display_name) %>
<h2><%= h(@this_user.display_name) %></h2>
<div id="userinformation">
<% if @user and @this_user.id == @user.id %>
<!-- Displaying user's own profile page -->
<%= link_to 'my diary', :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
| <%= link_to 'new diary entry', :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
| <%= link_to 'my edits', :controller => 'changeset', :action => 'list_user', :display_name => @user.display_name %>
| <%= link_to 'my traces', :controller => 'trace', :action=>'mine' %>
| <%= link_to 'my settings', :controller => 'user', :action => 'account', :display_name => @user.display_name %>
<%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
| <%= link_to t('user.view.new diary entry'), :controller => 'diary_entry', :action => 'new', :display_name => @user.display_name %>
| <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list_user', :display_name => @user.display_name %>
| <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %>
| <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
<% else %>
<!-- Displaying another user's profile page -->
<%= link_to 'send message', :controller => 'message', :action => 'new', :user_id => @this_user.id %>
| <%= link_to 'diary', :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
| <%= link_to 'edits', :controller => 'changeset', :action => 'list_user', :display_name => @this_user.display_name %>
| <%= link_to 'traces', :controller => 'trace', :action => 'view', :display_name => @this_user.display_name %>
<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :user_id => @this_user.id %>
| <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
| <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list_user', :display_name => @this_user.display_name %>
| <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'view', :display_name => @this_user.display_name %>
| <% if @user and @user.is_friends_with?(@this_user) %>
<%= link_to 'remove as friend', :controller => 'user', :action => 'remove_friend', :display_name => @this_user.display_name %>
<%= link_to t('user.view.remove as friend'), :controller => 'user', :action => 'remove_friend', :display_name => @this_user.display_name %>
<% else %>
<%= link_to 'add as friend', :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %>
<%= link_to t('user.view.add as friend'), :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %>
<% end %>
<% end %>
</div>
<% if @this_user != nil %>
<P>
<b>Mapper since : </b><%= @this_user.creation_time %> (<%= time_ago_in_words(@this_user.creation_time) %> ago)
<b><%= t 'user.view.mapper since' %></b><%= l @this_user.creation_time %> <%= t 'user.view.ago', :time_in_words_ago => time_ago_in_words(@this_user.creation_time) %>
</P>
<% end %>
<h3>User image</h3>
<h3><%= t 'user.view.user image heading' %></h3>
<% if @this_user.image %>
<%= image_tag url_for_file_column(@this_user, "image") %>
<% if @user and @this_user.id == @user.id %>
<%= button_to 'Delete Image', :action => 'delete_image' %>
<%= button_to t('user.view.delete image'), :action => 'delete_image' %>
<% end %>
<% end %>
<br />
<% if @user and @this_user.id == @user.id %>
Upload an image<br />
<%= t 'user.view.upload an image' %><br />
<%= form_tag({:action=>'upload_image'}, :multipart => true)%>
<%= file_column_field 'user', 'image' %>
<%= submit_tag 'Add Image' %>
<%= submit_tag t('user.view.add image') %>
</form>
<% end %>
<h3>Description</h3>
<h3><%= t 'user.view.description' %></h3>
<div id="description"><%= htmlize(@this_user.description) %></div>
<% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %>
<h3>User location</h3>
<h3><%= t 'user.view.user location' %></h3>
No home location has been set.
<%= t 'user.view.no home location' %>
<% if @user and @this_user.id == @user.id %>
If you set your location, a pretty map and stuff will appear below. You can set your home location on your <%= link_to 'settings', :controller => 'user', :action => 'account', :display_name => @user.display_name %> page.
<%= 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) %>
<% end %>
<% else %>
<% if @user and @this_user.id == @user.id %>
<h3>Your friends</h3>
<h3><%= t 'user.view.your friends' %></h3>
<% if @this_user.friends.empty? %>
You have not added any friends yet.
<%= t 'user.view.no friends' %>
<% else %>
<table id="friends">
<% @this_user.friends.each do |friend| %>
@ -72,8 +71,8 @@
<% end %>
</td>
<td class="username"><%= link_to h(@friend.display_name), :controller => 'user', :action => 'view', :display_name => @friend.display_name %></td>
<td><% if @friend.home_lon and @friend.home_lat %><%= @this_user.distance(@friend).round %>km away<% end %></td>
<td class="message">(<%= link_to 'send message', :controller => 'message', :action => 'new', :user_id => @friend.id %>)</td>
<td><% if @friend.home_lon and @friend.home_lat %><%= t 'user.view.km away', :distance => l(@this_user.distance(@friend).round) %><% end %></td>
<td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :user_id => @friend.id %>)</td>
</tr>
<%end%>
</table>
@ -83,9 +82,9 @@
<% if @user and @this_user.id == @user.id %>
<h3>Nearby users:</h3>
<h3><%= t 'user.view.nearby users' %></h3>
<% if @this_user.nearby.empty? %>
There are no users who admit to mapping nearby yet.
<%= t 'user.view.no nearby users' %>
<% else %>
<div id="map" style="border: 1px solid black; position: relative; width : 90%; height : 400px;"></div>
@ -94,8 +93,8 @@
<% @this_user.nearby.each do |nearby| %>
<tr>
<td class="username"><%= link_to h(nearby.display_name), :controller => 'user', :action => 'view', :display_name => nearby.display_name %></td>
<td><%= @this_user.distance(nearby).round %>km away</td>
<td class="message">(<%= link_to 'send message', :controller => 'message', :action => 'new', :user_id => nearby.id %>)</td>
<td><%= t 'user.view.no nearby users', :distance => l(@this_user.distance(nearby).round) %></td>
<td class="message">(<%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :user_id => nearby.id %>)</td>
</tr>
<% end %>
</table>
@ -106,5 +105,5 @@
<br/>
<br/>
<% if @user and @this_user.id == @user.id %>
<%= link_to 'change your settings', :controller => 'user', :action => 'account', :display_name => @user.display_name %>
<%= link_to t('user.view.change your settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
<% end %>

View file

@ -14,3 +14,25 @@ module Net
end
end
end
# Monkey patch to allow sending of messages in specific locales
module ActionMailer
class Base
adv_attr_accessor :locale
private
alias_method :old_render_message, :render_message
def render_message(method_name, body)
old_locale= I18n.locale
begin
I18n.locale = @locale
message = old_render_message(method_name, body)
ensure
I18n.locale = old_locale
end
message
end
end
end

View file

@ -0,0 +1,4 @@
require 'globalize/i18n/missing_translations_log_handler'
I18n.missing_translations_logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
I18n.exception_handler = :missing_translations_log_handler

271
config/locales/de.yml Normal file
View file

@ -0,0 +1,271 @@
de:
map:
view: Karte
edit: Bearbeiten
coordinates: "Koordinaten:"
browse:
changeset:
changeset: "Changeset:"
download: "Download {{changeset_xml_link}} oder {{osmchange_xml_link}}"
changesetxml: "Changeset XML"
osmchangexml: "osmChange XML"
changeset_details:
created_at: "Erstellt am:"
closed_at: "Geschlossen am:"
belongs_to: "Erstellt von:"
bounding_box: "Zeichen-Box:"
no_bounding_box: "Es wurde keine Zeichen-Box für dieses Changeset gespeichert."
show_area_box: "Zeige Gebiet"
box: "Box"
has_nodes: "Enthält folgende {{node_count}} Knoten:"
has_ways: "Enthält folgende {{way_count}} Wege:"
has_relations: "Enthält folgende {{relation_count}} Relationen:"
common_details:
edited_at: "Bearbeitet am:"
edited_by: "Bearbeitet von:"
version: "Version:"
in_changeset: "In Changeset:"
containing_relation:
relation: "Relation {{relation_name}}"
relation_as: "(als {{relation_role}})"
map:
loading: "Lädt..."
deleted: "Gelöscht"
view_larger_map: "Größere Karte"
node_details:
part_of: "Teil von:"
node_history:
node_history: "Knoten Vergangenheit"
download: "{{download_xml_link}} oder {{view_details_link}}"
download_xml: "Download XML"
view_details: "Details"
node:
node: "Knoten"
node_title: "Knoten: {{node_name}}"
download: "{{download_xml_link}} oder {{view_history_link}}"
download_xml: "Download XML"
view_history: "Verlauf"
not_found:
sorry: "Sorry, das {{type}} mit der Nummer {{id}} konnte nicht gefunden werden."
paging_nav:
showing_page: "Zeige Seite"
of: "von"
relation_details:
members: "Mitglieder:"
part_of: "Teil von:"
relation_history:
relation_history: "Relation Vergangenheit"
relation_history_title: "Relation Vergangenheit: {{relation_name}}"
relation_member:
as: "als"
relation:
relation: "Relation"
relation_title: "Relation: {{relation_name}}"
download: "{{download_xml_link}} oder {{view_history_link}}"
download_xml: "Download XML"
view_history: "Vergangenheit"
start:
view_data: "Daten des aktuellen Kartenausschnittes"
manually_select: "Manuell einen anderen Kartenausschnitt auswählen"
start_rjs:
data_frame_title: "Daten"
zoom_or_select: "Zoom in or select an area of the map to view"
drag_a_box: "Drag a box on the map to select an area"
manually_select: "Manuell einen anderen Kartenausschnitt auswählen"
loaded_an_area: "You have loaded an area which contains"
browsers: "features. In general, some browsers may not cope well with displaying this quanity of data. Generally, browsers work best at displaying less than 100 features at a time: doing anything else may make your browser slow/unresponsive. If you are sure you want to display this data, you may do so by clicking the button below."
load_data: "Lade Daten"
unable_to_load: "Unable to load: Bounding box size of"
must_be_smaller: "is too large (must be smaller than 0.25)"
loading: "Loading..."
show_history: "Vergangenheit"
wait: "Warten..."
history_for: "Vergangenheit für"
details: "Details"
private_user: "private user"
edited_by: "Bearbeitet von"
at_timestamp: "at"
diary_entry:
list:
new: Neuer Tagebucheintrag
new_title: Verfasse einen neuen Tagebucheintrag
no_entries: Keine Tagebucheinträge
recent_entries: "Letzte Tagebucheinträge: "
older_entries: Ältere Einträge
newer_entries: Neuere Einträge
edit:
subject: "Betreff: "
body: "Text: "
language: "Sprache: "
location: "Ort: "
latitude: "Breitengrad: "
longitude: "Längengrad: "
use_map_link: "Karte nutzen"
save_button: "Speichern"
marker_text: Ort des Tagebucheintrages
no_such_entry:
heading: "Kein Eintrag mit der Nummer: {{id}}"
body: "Leider gibt es keinen Eintrag oder Kommentar mit dieser Nummer {{id}}. Bitte überprüfe deine Schreibweise oder der Link war beschädigt."
no_such_user:
body: "Es gibt leider keinen Benutzer mit dem Namen {{user}}. Bitte überprüfe deine Schreibweise oder der Link war beschädigt."
posted_by: "Verfasst von {{link_user}} am {{created}} in {{language}}"
comment_link: Kommentar zu diesem Eintrag
reply_link: Antworte auf diesen Eintrag
comment_count:
one: 1 Kommentar
other: "{{count}} Kommentare"
edit_link: Bearbeite diesen Eintrag
comment_from: "Kommentar von {{link_user}} um {{comment_created_at}}"
layouts:
welcome_user: "Willkommen, {{user_link}}"
inbox: "Posteingang ({{size}})"
logout: Abmelden
log_in: Anmelden
sign_up: Registrieren
view: Karte
edit: Bearbeiten
history: Verlauf
export: Export
gps_traces: GPS Tracks
user_diaries: Benutzer Tagebücher
tag_line: Die freie Wiki-Weltkarte
intro_1: "OpenStreetMap ist eine freie, editierbare Karte der gesamten Welt, die von Menschen wie dir erstellt wird."
intro_2: "OpenStreetMap ermöglicht es geographische Daten gemeinschaftlich von überall auf der Welt anzuschauen und zu bearbeiten."
intro_3: "Das Hosting der OpenStreetMap-Server wird freundlicherweise von {{ucl}} und {{bytemark}} unterstützt."
osm_offline: "Die OpenStreetMap Datenbank ist im Moment wegen wichtiger Wartungsarbeiten nicht verfügbar."
osm_read_only: 'Die OpenStreetMap Datenbank ist im Moment wegen wichtiger Wartungsarbeiten im "Nur-Lesen-Modus".'
donate: "Unterstütze OpenStreetMap mit einer {{link}} für die Hardware Spendenaktion."
donate_link_text: Spende
sotm: 'Komme zur OpenStreetMap Konferenz 2009, <a href="http://www.stateofthemap.org">The State of the Map</a>, am 10.-12. Juli in Amsterdam!'
alt_donation: Spenden
notifier:
diary:
banner1: "* Bitte antworte nicht auf diese E-Mail. *"
banner2: "* Verwende stattdessen die OpenStreetMap Website zum Antworten. *"
site:
index:
js_1: "Dein Browser unterstützt kein Javascript oder du hast es deaktiviert."
js_2: "OpenStreetMap nutzt Javascript für die Kartendarstellung."
js_3: 'Du kannst den <a href="http://tah.openstreetmap.org/Browse/">Tiles@Home static tile browser</a> nutzen, wenn du kein Javascript nutzen kannst.'
permalink: Permalink
license: "Lizenziert unter Creative Commons Attribution-Share Alike 2.0 Lizenz durch das OpenStreetMap Projekt und seine Mitwirkenden."
edit:
not_public: "Deine Einstellungen sind auf anonymes Bearbeiten gestellt."
not_public_description: "Du musst deine Einstellungen auf öffentliches Bearbeiten umstellen. Dies kannst du auf deiner Benutzerseite tun {{user_page}}."
user_page_link: Benutzerseite
anon_edits: "({{link}})"
anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
anon_edits_link_text: "Hier findest du mehr Infos dazu."
flash_player_required: 'Du benötigst den Flash Player um Potlatch, den OpenStreetMap Flash Editor zu benutzen. <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">Lade den Flash Player von Adobe.com herunter</a>. <a href="http://wiki.openstreetmap.org/wiki/DE:Editing">Einige andere Möglichkeiten</a>, um OpenStreetMap zu editieren, sind hier beschrieben.'
potlatch_unsaved_changes: "Du hast deine Arbeit noch nicht gespeichert. (Um sie in Potlach zu speichern, klicke auf eine leere Fläche bzw. deselektiere den Weg oder Punkt, wenn du im Live Modus editierst, oder klicke auf Speichern, wenn ein Speicherbutton vorhanden ist.)"
sidebar:
search_results: Suchergebnisse
close: Schließen
search:
search: Suchen
where_am_i: "Wo bin ich?"
submit_text: "Los"
searching: "Sucht..."
search_help: "Beispiele: 'München', 'Heinestraße, Würzburg', 'CB2 5AQ', or 'post offices near Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>mehr Beispiele...</a>"
key:
map_key: "Legende"
user:
login:
heading: Anmelden
please login: "Bitte melde dich an oder {{create_user_link}}."
create_account: erstelle ein Benutzerkonto
email or username: "E-Mail-Adresse oder Benutzername: "
password: "Passwort: "
lost password link: "Passwort vergessen?"
login_button: Anmelden
lost_password:
title: Passwort verloren
heading: "Passwort vergessen?"
email address: "E-Mail-Adresse:"
new password button: "Sende mir ein neues Passwort"
notice email on way: "Ärgerlich, dass du es verloren hast :-( aber eine E-Mail ist schon auf dem Weg, so dass du es bald zurücksetzen kannst."
notice email cannot find: "Konnte diese E-Mail-Adresse leider nicht finden."
reset_password:
title: Passwort zurücksetzen
flash changed check mail: "Dein Passwort wurde geändert und ist auf dem Weg in deinen E-Mail-Posteingang :-)"
flash token bad: "Konnte das Kürzel nicht finden, überprüfe bitte die URL?"
new:
heading: Erstelle ein Benutzerkonto
no_auto_account_create: "Leider ist das automatische Erstellen eines Benutzerkontos gerade nicht möglich."
contact_webmaster: 'Bitte kontaktiere den <a href="mailto:webmaster@openstreetmap.org">Webmaster</a> um ein Benutzerkonto erstellt zu bekommen - wir werden die Anfrage so schnell wie möglich bearbeiten. '
fill_form: "Fülle das Formular aus und dir wird eine kurze E-Mail zur Aktivierung deines Accounts geschickt."
license_agreement: 'Mit der Accounterstellung stimmst du zu, dass alle Daten, die du zu openstreetmap.org hochlädst und alle Daten, die du mit irgendeinem externem Programm, dass sich mit openstreetmap.org verbindet, erstellst, (nicht exklusiv) unter <a href="http://creativecommons.org/licenses/by-sa/2.0/">dieser Creative Commons Lizenz (by-sa)</a> lizenziert werden.'
email address: "E-Mail-Adresse: "
confirm email address: "Bestätige deine E-Mail-Adresse: "
not displayed publicly: 'Nicht öffentlich sichtbar (<a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">Datenschutzrichtlinie</a>)'
display name: "Benutzername: "
password: "Passwort: "
confirm password: "Passwort bestätigen: "
signup: Registieren
flash create success message: "Benutzer wurde erfolgreich erstellt. Ein Bestätigungscode wurde dier per E-Mail zugesendet, bitte bestätige diesen und du kannst mit dem Mappen beginnen<br /><br />Du kannst dich nicht einloggen bevor du deine E-Mail-Adresse mit dem Bestätigungscode bestätigt hast.<br /><br />Falls du ein Antispam System nutzt, dass Bestätigungsanfragen sendet, dann setze bitte webmaster@openstreetmap.org auf deine Whitelist, weil wir auf keine Bestätigungsanfrage antworten können."
no_such_user:
body: "Es gibt leider keinen Benutzer mit dem Namen {{user}}. Bitte überprüfe deine Schreibweise oder der Link war beschädigt."
view:
my diary: Mein Tagebuch
new diary entry: neuer Tagebucheintrag
my edits: Meine Bearbeitungen
my traces: Meine Tracks
my settings: Meine Einstellungen
send message: Sende Nachricht
diary: Tagebuch
edits: Bearbeitungen
traces: Tracks
remove as friend: Als Freund entfernen
add as friend: Als Freund hinzufügen
mapper since: "Mapper seit: "
user image heading: Benutzerbild
delete image: Lösche Bild
upload an image: Lade ein Bild hoch
add image: Füge ein Bild hinzu
description: Beschreibung
user location: Standort des Benutzers
no home location: "Es wurde kein Standort angegeben."
if set location: "Wenn du deinen Standort angegeben hast, erscheint eine Karte am Seitenende. Du kannst deinen Standort in deinen {{settings_link}} ändern."
settings_link_text: Einstellungen
your friends: Deine Freunde
no friends: Du hast bis jetzt keine Freunde hinzugefügt.
km away: "{{distance}}km entfernt"
nearby users: "Benutzer in der Nähe: "
no nearby users: "Es gibt bisher keine Benutzer, die einen Standort in deiner Nähe angegeben haben."
change your settings: Ändere deine Einstellungen
friend_map:
your location: Dein Standort
nearby mapper: "Mapper in der Nähe: "
account:
my settings: Meine Einstellungen
email never displayed publicly: "(nicht öffentlich sichtbar)"
public editing:
heading: "Öffentliches Bearbeiten: "
enabled: "Aktiviert. Nicht anonym, bearbeiten der Kartendaten möglich."
enabled link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
enabled link text: "Was ist das?"
disabled: "Deaktiviert, bearbeiten von Daten nicht möglich, alle bisherigen Bearbeitungen sind anonym."
disabled link text: "Warum kann ich nichts bearbeiten?"
profile description: "Profil Beschreibung: "
home location: "Standort: "
no home location: "Du hast noch keinen Standort angegeben."
latitude: "Breitengrad: "
longitude: "Längengrad: "
update home location on click: "Standort bei Klick auf die Karte aktualisieren?"
save changes button: Speichere Änderungen
make edits public button: Mache alle meine Bearbeitungen öffentlich
return to profile: Zurück zum Profil
flash update success confirm needed: "Benutzerinformationen erfolgreich aktualisiert. Du erzählst eine E-Mail, um deine neue E-Mail-Adresse zu bestätigen."
flash update success: "Benutzerinformationen erfolgreich aktualisiert."
confirm:
heading: Bestätige das Benutzerkonto
press confirm button: "Aktiviere dein Account, indem du auf den Bestätigungsbutton klickst."
button: Bestätigen
confirm email:
heading: Bestätige die Änderung der E-Mail-Adresse
press confirm button: "Bestätige deine neue E-Mail-Adresse, indem du auf den Bestätigungsbutton klickst."
button: Bestätigen
set_home:
flash success: "Standort erfolgreich gespeichert"
go_public:
flash success: "Alle deine Bearbeitungen sind nun öffentlich und du kannst nun die Kartendaten bearbeiten."

507
config/locales/en.yml Normal file
View file

@ -0,0 +1,507 @@
en:
map:
view: View
edit: Edit
coordinates: "Coordinates:"
browse:
changeset:
title: "Changeset"
changeset: "Changeset:"
download: "Download {{changeset_xml_link}} or {{osmchange_xml_link}}"
changesetxml: "Changeset XML"
osmchangexml: "osmChange XML"
changeset_details:
created_at: "Created at:"
closed_at: "Closed at:"
belongs_to: "Belongs to:"
bounding_box: "Bounding box:"
no_bounding_box: "No bounding box has been stored for this changeset."
show_area_box: "Show Area Box"
box: "box"
has_nodes: "Has the following {{node_count}} nodes:"
has_ways: "Has the following {{way_count}} ways:"
has_relations: "Has the following {{relation_count}} relations:"
common_details:
edited_at: "Edited at:"
edited_by: "Edited by:"
version: "Version:"
in_changeset: "In changeset:"
containing_relation:
relation: "Relation {{relation_name}}"
relation_as: "(as {{relation_role}})"
map:
loading: "Loading..."
deleted: "Deleted"
view_larger_map: "View Larger Map"
node_details:
coordinates: "Coordinates: "
part_of: "Part of:"
node_history:
node_history: "Node History"
download: "{{download_xml_link}} or {{view_details_link}}"
download_xml: "Download XML"
view_details: "view details"
node:
node: "Node"
node_title: "Node: {{node_name}}"
download: "{{download_xml_link}} or {{view_history_link}}"
download_xml: "Download XML"
view_history: "view history"
not_found:
sorry: "Sorry, the {{type}} with the id {{id}}, could not be found."
paging_nav:
showing_page: "Showing page"
of: "of"
relation_details:
members: "Members:"
part_of: "Part of:"
relation_history:
relation_history: "Relation History"
relation_history_title: "Relation History: {{relation_name}}"
relation_member:
as: "as"
relation:
relation: "Relation"
relation_title: "Relation: {{relation_name}}"
download: "{{download_xml_link}} or {{view_history_link}}"
download_xml: "Download XML"
view_history: "view history"
start:
view_data: "View data for current map view"
manually_select: "Manually select a different area"
start_rjs:
data_frame_title: "Data"
zoom_or_select: "Zoom in or select an area of the map to view"
drag_a_box: "Drag a box on the map to select an area"
manually_select: "Manually select a different area"
loaded_an_area: "You have loaded an area which contains"
browsers: "features. In general, some browsers may not cope well with displaying this quanity of data. Generally, browsers work best at displaying less than 100 features at a time: doing anything else may make your browser slow/unresponsive. If you are sure you want to display this data, you may do so by clicking the button below."
load_data: "Load Data"
unable_to_load: "Unable to load: Bounding box size of"
must_be_smaller: "is too large (must be smaller than 0.25)"
loading: "Loading..."
show_history: "Show History"
wait: "Wait..."
history_for: "History for"
details: "Details"
private_user: "private user"
edited_by: "Edited by"
at_timestamp: "at"
tag_details:
tags: "Tags:"
way_details:
nodes: "Nodes:"
part_of: "Part of:"
way_history:
way_history: "Way History"
way_history_title: "Way History: {{way_name}}"
download: "{{download_xml_link}} or {{view_details_link}}"
download_xml: "Download XML"
view_details: "view details"
way:
way: "Way"
way_title: "Way: {{way_name}}"
download: "{{download_xml_link}} or {{view_history_link}}"
download_xml: "Download XML"
view_history: "view history"
changeset:
changeset_paging_nav:
showing_page: "Showing page"
of: "of"
changeset:
still_editing: "(still editing)"
anonymous: "Anonymous"
no_comment: "(none)"
no_edits: "(no edits)"
show_area_box: "show area box"
big_area: "(big)"
view_changeset_details: "View changeset details"
more: "more"
changesets:
id: "ID"
saved_at: "Saved at"
user: "User"
comment: "Comment"
area: "Area"
list_bbox:
history: "History"
changesets_within_the_area: "Changesets within the area:"
show_area_box: "show area box"
no_changesets: "No changesets"
all_changes_everywhere: "For all changes everywhere see {{recent_changes_link}}"
recent_changes: "Recent Changes"
no_area_specified: "No area specified"
first_use_view: "First use the {{view_tab_link}} to pan and zoom to an area of interest, then click the history tab."
view_the_map: "view the map"
view_tab: "view tab"
alternatively_view: "Alternatively, view all {{recent_changes_link}}"
list:
recent_changes: "Recent Changes"
recently_edited_changesets: "Recently edited changesets:"
for_more_changesets: "For more changesets, select a user and view their edits, or see the editing 'history' of a specific area."
list_user:
edits_by_username: "Edits by {{username_link}}"
no_visible_edits_by: "No visible edits by {{name}}."
for_all_changes: "For changes by all users see {{recent_changes_link}}"
recent_changes: "Recent Changes"
diary_entry:
list:
title: "Users' diaries"
new: New Diary Entry
new_title: Compose a new entry in your user diary
no_entries: No diary entries
recent_entries: "Recent diary entries: "
older_entries: Older Entries
newer_entries: Newer Entries
edit:
title: "Edit diary entry"
subject: "Subject: "
body: "Body: "
language: "Language: "
location: "Location: "
latitude: "Latitude: "
longitude: "Longitude: "
use_map_link: "use map"
save_button: "Save"
marker_text: Diary entry location
no_such_entry:
heading: "No entry with the id: {{id}}"
body: "Sorry, there is no diary entry or comment with the id {{id}}. Please check your spelling, or maybe the link you clicked is wrong."
no_such_user:
body: "Sorry, there is no user with the name {{user}}. Please check your spelling, or maybe the link you clicked is wrong."
posted_by: "Posted by {{link_user}} at {{created}} in {{language}}"
comment_link: Comment on this entry
reply_link: Reply to this entry
comment_count:
one: 1 comment
other: "{{count}} comments"
edit_link: Edit this entry
comment_from: "Comment from {{link_user}} at {{comment_created_at}}"
export:
start:
area_to_export: "Area to Export"
manually_select: "Manually select a different area"
format_to_export: "Format to Export"
osm_xml_data: "OpenStreetMap XML Data"
mapnik_image: "Mapnik Image"
osmarender_image: "Osmarender Image"
embeddable_html: "Embeddable HTML"
licence: "Licence"
export_details: 'OpenStreetMap data is licensed under the <a href="http://creativecommons.org/licenses/by-sa/2.0/">Creative Commons Attribution-ShareAlike 2.0 license</a>.'
options: "Options"
format: "Format"
scale: "Scale"
max: "max"
image_size: "Image Size"
zoom: "Zoom"
add_marker: "Add a marker to the map"
latitude: "Lat:"
longitude: "Lon:"
output: "Output"
paste_html: "Paste HTML to embed in website"
export_button: "Export"
start_rjs:
export: "Export"
drag_a_box: "Drag a box on the map to select an area"
manually_select: "Manually select a different area"
click_add_marker: "Click on the map to add a marker"
change_marker: "Change marker position"
add_marker: "Add a marker to the map"
view_larger_map: "View Larger Map"
geocoder:
results:
results: "Results"
type_from_source: "{{type}} from {{source_link}}"
no_results: "No results found"
layouts:
welcome_user: "Welcome, {{user_link}}"
inbox: "inbox ({{size}})"
logout: logout
log_in: log in
sign_up: sign up
view: View
edit: Edit
history: History
export: Export
gps_traces: GPS Traces
user_diaries: User Diaries
tag_line: The Free Wiki World Map
intro_1: "OpenStreetMap is a free editable map of the whole world. It is made by people like you."
intro_2: "OpenStreetMap allows you to view, edit and use geographical data in a collaborative way from anywhere on Earth."
intro_3: "OpenStreetMap's hosting is kindly supported by the {{ucl}} and {{bytemark}}."
osm_offline: "The OpenStreetMap database is currently offline while essential database maintenance work is carried out."
osm_read_only: "The OpenStreetMap database is currently in read-only mode while essential database maintenance work is carried out."
donate: "Support OpenStreetMap by {{link}} to the Hardware Upgrade Fund."
donate_link_text: donating
help_wiki: "Help &amp; Wiki"
news_blog: "News blog"
shop: Shop
sotm: 'Come to the 2009 OpenStreetMap Conference, The State of the Map, July 10-12 in Amsterdam!'
alt_donation: Make a Donation
notifier:
diary:
banner1: "* Please do not reply to this email. *"
banner2: "* Use the OpenStreetMap web site to reply. *"
hi: "Hi {{to_user}},"
header: "{{from_user}} has commented on your recent OpenStreetMap diary entry with the subject {{subject}}:"
footer: "You can also read the comment at {{readurl}} and you can comment at {{commenturl}} or reply at {{replyurl}}"
signup_confirm_plain:
greeting: "Hi there!"
hopefully_you: "Someone (hopefully you) would like to create an account over at"
# next two translations run-on : please word wrap appropriately
click_the_link_1: "If this is you, welcome! Please click the link below to confirm your"
click_the_link_2: "account and read on for more information about OpenStreetMap."
introductory_video: "You can watch an introductory video to OpenStreetMap here:"
more_videos: "There are more videos here:"
the_wiki: "Get reading about OpenStreetMap on the wiki:"
opengeodata: "OpenGeoData.org is OpenStreetMap's blog, and it has podcasts too:"
wiki_signup: "You may also want to sign up to the OpenStreetMap wiki at:"
# next four translations are in pairs : please word wrap appropriately
user_wiki_1: "It is recommended that you create a user wiki page, which includes"
user_wiki_2: "category tags noting where you are, such as [[Category:Users_in_London]]."
current_user_1: "A list of current users in categories, based on where in the world"
current_user_2: "they are, is available from:"
signup_confirm_html:
greeting: "Hi there!"
hopefully_you: "Someone (hopefully you) would like to create an account over at"
click_the_link: "If this is you, welcome! Please click the link below to confirm that account and read on for more information about OpenStreetMap"
introductory_video: "You can watch an {{introductory_video_link}}."
video_to_openstreetmap: "introductory video to OpenStreetMap"
more_videos: "There are {{more_videos_link}}."
more_videos_here: "more videos here"
get_reading: 'Get reading about OpenStreetMap <a href="http://wiki.openstreetmap.org/wiki/Beginners%27_Guide">on the wiki</p> or <a href="http://www.opengeodata.org/">the opengeodata blog</a> which has <a href="http://www.opengeodata.org/?cat=13">podcasts to listen to</a> also!'
wiki_signup: 'You may also want to <a href="http://wiki.openstreetmap.org/index.php?title=Special:Userlogin&type=signup&returnto=Main_Page">sign up to the OpenStreetMap wiki</a>.'
user_wiki_page: 'It is recommended that you create a user wiki page, which includes category tags noting where you are, such as <a href="http://wiki.openstreetmap.org/wiki/Category:Users_in_London">[[Category:Users_in_London]]</a>.'
current_user: 'A list of current users in categories, based on where in the world they are, is available from <a href="http://wiki.openstreetmap.org/wiki/Category:Users_by_geographical_region">Category:Users_by_geographical_region</a>.'
message:
inbox:
my_inbox: "My inbox"
outbox: "outbox"
you_have: "You have {{new_count}} new messages and {{old_count}} old messages"
from: "From"
subject: "Subject"
date: "Date"
no_messages_yet: "You have no messages yet. Why not get in touch with some of the {{people_mapping_nearby_link}}?"
people_mapping_nearby: "people mapping nearby"
message_summary:
unread_button: "Mark as unread"
read_button: "Mark as read"
reply_button: "Reply"
new:
send_message_to: "Send a new message to {{name}}"
subject: "Subject"
body: "Body"
send_button: "Send"
back_to_inbox: "Back to inbox"
no_such_user:
no_such_user: "No such user or message"
sorry: "Sorry there is no user or message with that name or id"
outbox:
my_inbox: "My {{inbox_link}}"
inbox: "inbox"
outbox: "outbox"
you_have_sent_messages: "You have {{sent_count}} sent messages"
to: "To"
subject: "Subject"
date: "Date"
no_sent_messages: "You have no sent messages yet. Why not get in touch with some of the {{people_mapping_nearby_link}}?"
people_mapping_nearby: "people mapping nearby"
read:
reading_your_messages: "Reading your messages"
from: "From"
subject: "Subject"
date: "Date"
reply_button: "Reply"
unread_button: "Mark as unread"
back_to_inbox: "Back to inbox"
reading_your_sent_messages: "Reading your sent messages"
to: "To"
back_to_outbox: "Back to outbox"
site:
index:
js_1: "You are either using a browser that doesn't support javascript, or you have disabled javascript."
js_2: "OpenStreetMap uses javascript for its slippy map."
js_3: 'You may want to try the <a href="http://tah.openstreetmap.org/Browse/">Tiles@Home static tile browser</a> if you are unable to enable javascript.'
permalink: Permalink
license: "Licensed under the Creative Commons Attribution-Share Alike 2.0 license by the OpenStreetMap project and its contributors."
edit:
not_public: "You haven't set your edits to be public."
not_public_description: "You can no longer edit the map unless you do so. You can set your edits as public from your {{user_page}}."
user_page_link: user page
anon_edits: "({{link}})"
anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
anon_edits_link_text: "Find out why this is the case."
flash_player_required: 'You need a Flash player to use Potlatch, the OpenStreetMap Flash editor. You can <a href="http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash">download Flash Player from Adobe.com</a>. <a href="http://wiki.openstreetmap.org/wiki/Editing">Several other options</a> are also available for editing OpenStreetMap.'
potlatch_unsaved_changes: "You have unsaved changes. (To save in Potlatch, you should deselect the current way or point, if editing in list mode, or click save if you have a save button.)"
sidebar:
search_results: Search Results
close: Close
search:
search: Search
where_am_i: "Where am I?"
submit_text: "Go"
searching: "Searching..."
search_help: "examples: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ', or 'post offices near Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>more examples...</a>"
key:
map_key: "Map key"
trace:
create:
upload: "Upload GPS Trace"
edit:
filename: "Filename:"
uploaded_at: "Uploaded at:"
points: "Points:"
start_coord: "Start coordinate:"
edit: "edit"
owner: "Owner:"
description: "Description:"
tags: "Tags:"
save_button: "Save Changes"
no_such_user:
no_such_user: "Sorry, there is no user with the name {{name}}. Please check your spelling, or maybe the link you clicked is wrong."
trace_form:
upload_gpx: "Upload GPX File"
description: "Description"
tags: "Tags"
public: "Public?"
upload_button: "Upload"
help: "Help"
trace_header:
see_just_your_traces: "See just your traces, or upload a trace"
see_all_traces: "See all traces"
see_your_traces: "See all your traces"
traces_waiting: "You have {{count}} traces waiting for upload. Please consider waiting for these to finish before uploading any more, so as not to block the queue for other users."
trace_optionals:
tags: "Tags"
view:
pending: "PENDING"
filename: "Filename:"
download: "download"
uploaded: "Uploaded at:"
points: "Points:"
start_coordinates: "Start coordinate:"
map: "map"
edit: "edit"
owner: "Owner:"
description: "Description:"
tags: "Tags"
none: "None"
make_public: "Make this track public permanently"
edit_track: "Edit this track"
delete_track: "Delete this track"
trace_paging_nav:
showing: "Showing page"
of: "of"
trace:
pending: "PENDING"
more: "more"
trace_details: "View Trace Details"
view_map: "View Map"
edit: "edit"
edit_map: "Edit Map"
public: "PUBLIC"
pritate: "PRIVATE"
by: "by"
in: "in"
user:
login:
heading: "Login"
please login: "Please login or {{create_user_link}}."
create_account: "create an account"
email or username: "Email Address or Username: "
password: "Password: "
lost password link: "Lost your password?"
login_button: "Login"
lost_password:
title: "lost password"
heading: "Forgotten Password?"
email address: "Email Address:"
new password button: "Send me a new password"
notice email on way: "Sorry you lost it :-( but an email is on its way so you can reset it soon."
notice email cannot find: "Couldn't find that email address, sorry."
reset_password:
title: "reset password"
flash changed check mail: "Your password has been changed and is on its way to your mailbox :-)"
flash token bad: "Didn't find that token, check the URL maybe?"
new:
heading: "Create a User Account"
no_auto_account_create: "Unfortunately we are not currently able to create an account for you automatically."
contact_webmaster: 'Please contact the <a href="mailto:webmaster@openstreetmap.org">webmaster</a> to arrange for an account to be created - we will try and deal with the request as quickly as possible. '
fill_form: "Fill in the form and we'll send you a quick email to activate your account."
license_agreement: 'By creating an account, you agree that all work uploaded to openstreetmap.org and all data created by use of any tools which connect to openstreetmap.org is to be (non-exclusively) licensed under <a href="http://creativecommons.org/licenses/by-sa/2.0/">this Creative Commons license (by-sa)</a>.'
email address: "Email Address: "
confirm email address: "Confirm Email Address: "
not displayed publicly: 'Not displayed publicly (see <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">privacy policy</a>)'
display name: "Display Name: "
password: "Password: "
confirm password: "Confirm Password: "
signup: Signup
flash create success message: "User was successfully created. Check your email for a confirmation note, and you\'ll be mapping in no time :-)<br /><br />Please note that you won't be able to login until you've received and confirmed your email address.<br /><br />If you use an antispam system which sends confirmation requests then please make sure you whitelist webmaster@openstreetmap.org as we are unable to reply to any confirmation requests."
no_such_user:
body: "Sorry, there is no user with the name {{user}}. Please check your spelling, or maybe the link you clicked is wrong."
view:
my diary: my diary
new diary entry: new diary entry
my edits: my edits
my traces: my traces
my settings: my settings
send message: send message
diary: diary
edits: edits
traces: traces
remove as friend: remove as friend
add as friend: add as friend
mapper since: "Mapper since: "
ago: "({{time_in_words_ago}} ago)"
user image heading: User image
delete image: Delete Image
upload an image: Upload an image
add image: Add Image
description: Description
user location: User location
no home location: "No home location has been set."
if set location: "If you set your location, a pretty map and stuff will appear below. You can set your home location on your {{settings_link}} page."
settings_link_text: settings
your friends: Your friends
no friends: You have not added any friends yet.
km away: "{{distance}}km away"
nearby users: "Nearby users: "
no nearby users: "There are no users who admit to mapping nearby yet."
change your settings: change your settings
friend_map:
your location: Your location
nearby mapper: "Nearby mapper: "
account:
my settings: My settings
email never displayed publicly: "(never displayed publicly)"
public editing:
heading: "Public editing: "
enabled: "Enabled. Not anonymous and can edit data."
enabled link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
enabled link text: "what's this?"
disabled: "Disabled and cannot edit data, all previous edits are anonymous."
disabled link text: "why can't I edit?"
profile description: "Profile Description: "
preferred languages: "Preferred Languages: "
home location: "Home Location: "
no home location: "You have not entered your home location."
latitude: "Latitude: "
longitude: "Longitude: "
update home location on click: "Update home location when I click on the map?"
save changes button: Save Changes
make edits public button: Make all my edits public
return to profile: Return to profile
flash update success confirm needed: "User information updated successfully. Check your email for a note to confirm your new email address."
flash update success: "User information updated successfully."
confirm:
heading: Confirm a user account
press confirm button: "Press the confirm button below to activate your account."
button: Confirm
confirm email:
heading: Confirm a change of email address
press confirm button: "Press the confirm button below to confirm your new email address."
button: Confirm
set_home:
flash success: "Home location saved successfully"
go_public:
flash success: "All your edits are now public, and you are now allowed to edit."

6
config/locales/es.yml Normal file
View file

@ -0,0 +1,6 @@
es:
notifier:
diary:
banner1: "* Por favor, no responda a este mensaje. *"
banner2: "* Utilice el OpenStreetMap sitio web para responder. *"

259
config/locales/fr.yml Normal file
View file

@ -0,0 +1,259 @@
fr:
map:
view: "Voir"
edit: "Éditer"
coordinates: "Coordonnées"
browse:
changeset:
changeset: "Changeset:"
download: "Télécharger {{changeset_xml_link}} ou {{osmchange_xml_link}}"
changesetxml: "Changeset XML"
osmchangexml: "osmChange XML"
changeset_details:
created_at: "Créé le:"
closed_at: "Terminé le:"
belongs_to: "Appartient à:"
bounding_box: "Bounding box:"
no_bounding_box: "Aucune bounding box n'a été stockée pour ce changeset."
show_area_box: "Montrer la boite"
box: "boite"
has_nodes: "A les {{node_count}} points suivants:"
has_ways: "A les {{way_count}} ways suivants:"
has_relations: "A les {{relation_count}} relations suivantes:"
common_details:
edited_at: "Édité le:"
edited_by: "Édité par:"
version: "Version:"
in_changeset: "Dans le changeset:"
containing_relation:
relation: "Relation {{relation_name}}"
relation_as: "(en tant que {{relation_role}})"
map:
loading: "Chargement..."
deleted: "Effacé"
view_larger_map: "Agrandir la carte"
node_details:
part_of: "Faisant partie de:"
node_history:
node_history: "Historique des points"
download: "{{download_xml_link}} ou {{view_details_link}}"
download_xml: "Télécharger XML"
view_details: "voir détails"
node:
node: "Point"
node_title: "Point: {{node_name}}"
download: "{{download_xml_link}} ou {{view_history_link}}"
download_xml: "Télécharger XML"
view_history: "voir l'historique"
not_found:
sorry: "Désolé, le {{type}} avec l'id {{id}}, n'a pas pu être trouvé."
paging_nav:
showing_page: "Page en cours"
of: "de"
relation_details:
members: "Membres:"
part_of: "Faisant partie de:"
relation_history:
relation_history: "Historique des relations"
relation_history_title: "Historique des relations: {{relation_name}}"
start:
view_data: "Voir les données sur la carte actuelle"
manually_select: "Sélectionner manuellement une zone différente"
start_rjs:
data_frame_title: "Données"
zoom_or_select: "Zoomer ou sélectionner une zone de la carte pour la visualiser"
drag_a_box: "Dessiner une boite sur la carte pour sélectionner une zone"
manually_select: "Sélectionner manuellement une zone différente"
loaded_an_area: "Vous avez chargé une zone qui contient"
browsers: "un grand nombre d'éléments. En général, les navigateurs ne supportent pas bien l'affichage de tant de données, et travaillent mieux lorsqu'ils affichent moins de 100 éléments: accepter peut rendre votre navigateur lent ou non fonctionnel. Si vous etes sûr de vouloir afficher ces données, vous pouvez le faire en appuyant sur le bouton ci-dessous."
load_data: "Charger les données"
unable_to_load: "Impossible de charger les données: la Bounding box d'une taille de"
must_be_smaller: "est trop grande (elle doit être plus petite que 0.25)"
loading: "Chargement..."
show_history: "Montrer l'historique"
wait: "Patienter..."
history_for: "Historique pour"
details: "Détails"
private_user: "utilisateur privé"
edited_by: "Édité par"
at_timestamp: "le"
diary_entry:
list:
new: "Nouvelle entrée du journal"
new_title: "Ajouter une nouvelle entrée dans votre journal"
no_entries: "Aucune entrée dans votre journal"
recent_entries: "Entrées récentes:"
older_entries: "Entrées plus anciennes"
newer_entries: "Entrées plus récentes"
edit:
subject: "Sujet:"
body: "Message:"
language: "Langue:"
location: "Lieu:"
latitude: "Latitude:"
longitude: "Longitude:"
use_map_link: "Utiliser la carte"
save_button: "Sauvegarder"
marker_text: "Emplacement de l'entrée du journal"
no_such_entry:
heading: "Aucune entrée avec l'id: {{id}}"
body: "Desolé, il n'y a aucune entrée dans le journal ou commentaires avec l'id {{id}}. Veuillez vérifier l'orthographe, ou le lien que vous avez cliqué n'est pas valide."
no_such_user:
body: "Desolé, il n'y pas d'utilisateur avec le nom {{user}}. Veuillez vérifier l'orthographe, ou le lien que vous avez cliqué n'est pas valide."
posted_by: "Posté par {{link_user}} à {{created}} en {{language}}"
comment_link: "Commenter cette entrée"
reply_link: "Répondre a cette entrée"
comment_count:
one: "1 commentaire"
other: "{{count}} commentaires"
edit_link: "Éditer cette entrée"
comment_from: "Commentaire de {{link_user}} le {{comment_created_at}}"
layouts:
welcome_user: "Bienvenue, {{user_link}}"
inbox: "Boite aux lettres ({{size}})"
logout: "Déconnexion"
log_in: "Connexion"
sign_up: "S'inscrire"
view: "Voir"
edit: "Éditer"
history: "Historique"
export: "Exporter"
gps_traces: "Traces GPS"
user_diaries: "Journaux"
tag_line: La wiki carte du monde libre
intro_1: "OpenStreetMap est une carte du monde entier librement éditable, faite par des gens comme vous."
intro_2: "OpenStreetMap vous permet de voir, éditer et utiliser des données géographiques de n'importe quel endroit dans le monde."
intro_3: "OpenStreetMap est gracieusement hébergé par {{ucl}} et {{bytemark}}."
osm_offline: "La base de données de OpenStreetMap est actuellement hors ligne; une maintenance essentielle à son bon fonctionnement est en cours."
osm_read_only: "La base de données de OpenStreetMap est actuellement en mode lecture seule ; une maintenance essentielle à son bon fonctionnement est en cours."
donate: "Soutenez OpenStreetMap, {{link}} au fond pour améliorer le matériel."
donate_link_text: "participez"
help_wiki: "Aide &amp; Wiki"
news_blog: "Blog de nouvelles"
shop: "Boutique"
sotm: 'Venez a la conférence 2009 de OpenStreetMap, <a href="http://www.stateofthemap.org">The State of the Map</a>, 10-12 juillet à Amsterdam!'
alt_donation: "Faites une donation"
notifier:
diary:
banner1: "* Sil vous plaît de ne pas répondre à ce message. *"
banner2: "* Utilisez le OpenStreetMap site Web pour y répondre. *"
site:
index:
js_1: "Vous utilisez soit un navigateur qui ne supporte pas Javascript soit vous avez désactivé Javascript."
js_2: "OpenStreetMap utilise Javascript pour ses cartes glissantes."
js_3: "Si vous êtes dans l'incapacité d'utiliser Javascript, essayer d'utiliser le <a href='http://tah.openstreetmap.org/Browse/'>navigateur statique de Tiles@Home</a>."
permalink: "Permalink"
license: "Sous license Creative Commons Attribution-Share Alike 2.0 par le projet OpenStreetMap et ses contributeurs."
edit:
not_public: "Vous n'avez pas réglé vos éditions pour qu'elles soient publiques."
not_public_description: "Vous ne pouvez plus éditer la carte a moins que vous ne rendiez vos éditions publiques. Vous pouvez rendre vos éditions publiques à partir de votre {{user_page}}."
user_page_link: "page utilisateur"
anon_edits: "({{link}})"
anon_edits_link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
anon_edits_link_text: "Trouvez pourquoi ici."
flash_player_required: "Vous avez besoin d''un lecteur Flash pour utiliser Potlatch, l'éditeur Flash de OpenStreetMap. Vous pouvez <a href='http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash'>télécharger Flash Player sur le site d'Adobe</a>. <a href='http://wiki.openstreetmap.org/wiki/Editing'>D'autres options</a> sont également disponibles pour éditer OpenStreetMap."
potlatch_unsaved_changes: "Vous avez des modifications non sauvegardées. (Pour sauvegarder dans Potlatch, vous devez dé-sélectionner le way ou le node en cours si vous éditez en mode liste, ou cliquer sur sauvegarder si vous avez un bouton sauvegarder.)"
sidebar:
search_results: "Résultats de la recherche"
close: "Fermer"
search:
search: "Chercher"
where_am_i: "Où suis-je?"
submit_text: "Allez"
searching: "En cours de recherche..."
search_help: "exemples: 'Alkmaar', 'Regent Street, Cambridge', 'CB2 5AQ', ou 'bureaux de poste près de Lünen' <a href='http://wiki.openstreetmap.org/wiki/Search'>D'autres d'exemples...</a>"
key:
map_key: "Clé de la carte"
user:
login:
heading: "Connexion"
please login: "Veuillez vous connecter ou {{create_user_link}}."
create_account: "Créer un compte"
email or username: "Adresse e-mail ou nom d'utilisateur:"
password: "Mot de passe: "
lost password link: "Vous avez perdu votre mot de passe?"
login_button: "Se connecter"
lost_password:
heading: "Vous avez perdu votre mot de passe?"
email address: "Adresse e-mail:"
new password button: "Envoyer un nouveau mot de passe"
new:
heading: "Créer un compte utilisateur"
no_auto_account_create: "Malheureusement, nous sommes actuellement dans l'impossibilité de vous créer un compte automatiquement."
contact_webmaster: "Veuillez contacter le <a href='mailto:webmaster@openstreetmap.org'>webmaster</a> pour qu'il vous crée un compte - nous essaierons de traiter votre demande le plus rapidement possible."
fill_form: "Remplissez le formulaire et nous vous enverrons un e-mail pour activer votre compte."
license_agreement: "En créant un compte, vous acceptez que tout le travail envoyé sur Openstreetmap.org et toutes les données créées par l'utilisation d'outils qui se connectent à Openstreetmap.org soient sous la licence (non exclusive) <a href='http://creativecommons.org/licenses/by-sa/2.0/'>Creative Commons license (by-sa)</a>."
email address: "Adresse e-mail: "
confirm email address: "Confirmer l'adresse e-mail: "
not displayed publicly: 'Non affichée publiquement (voir <a href="http://wiki.openstreetmap.org/wiki/Privacy_Policy" title="wiki privacy policy including section on email addresses">notre charte sur la confidentialité</a>)'
display name: "Nom affiché: "
password: "Mot de passe: "
confirm password: "Confirmer le Mot de passe: "
signup: "S'inscrire"
flash create success message: "L'utilisateur a été créé avec succès. Vérifier votre e-mail de confirmation, et vous serez prêt à mapper dans peu de temps :-)<br /><br />Veuillez noter que vous ne serez pas capable de vous connecter tant que vous n'aurez pas recu le mail de confirmation et confirmé votre e-mail. <br /><br />Si vous utilisez un logiciel anti-spam qui envoie des requêtes de confirmation, veuillez mettre dans votre liste blanche webmaster@openstreetmap.org car nous sommes incapables de répondre à ces e-mails."
no_such_user:
body: "Désolé, il n'y a pas d'utilisateur avec le nom {{user}}. Veuillez vérifier l'orthographe, ou le lien que vous avez cliqué n'est pas valide."
view:
my diary: "Mon journal"
new diary entry: "Nouvelle entrée dans le journal"
my edits: "Mes éditions"
my traces: "Mes traces"
my settings: "Mes options"
send message: "Envoyer un message"
diary: "journal"
edits: "éditions"
traces: "traces"
remove as friend: "enlever en tant qu'ami"
add as friend: "ajouter en tant qu'ami"
mapper since: "Mappeur depuis: "
user image heading: "Image utilisateur"
delete image: "Effacer l'image"
upload an image: "Envoyer une image"
add image: "Ajouter une image"
description: Description
user location: "Emplacement de l'utilisateur"
no home location: "Aucun lieu n'a été défini."
if set location: "Si vous définissez un lieu, une jolie carte va apparaître en dessous. Vous pouvez définir votre lieu sur votre page {{settings_link}}."
settings_link_text: "options"
your friends: "Vos amis"
no friends: "Vous n'avez pas encore ajouté d'ami"
km away: "{{distance}} km"
nearby users: "Utilisateurs proches: "
no nearby users: "Il n'y a pas encore d'utilisateur à proximité."
change your settings: "modifiez vos options"
friend_map:
your location: "Votre emplacement"
nearby mapper: "Mappeur dans les environs: "
account:
my settings: "Mes options"
email never displayed publicly: "(jamais affiché publiquement)"
public editing:
heading: "Édition publique: "
enabled: "Activé. Non anonyme et peut éditer les données."
enabled link: "http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits"
enabled link text: "qu'est-ce que c'est?"
disabled: "Désactivé et ne peut pas éditer les données; toutes les précédentes éditions sont anonymes."
disabled link text: "pourquoi ne puis-je pas éditer?"
profile description: "Description du profil: "
home location: "Emplacement du domicile: "
no home location: "Vous n'avez pas entré l'emplacement de votre domicile."
latitude: "Latitude: "
longitude: "Longitude: "
update home location on click: "Mettre a jour l'emplacement de votre domicile quand vous cliquez sur la carte?"
save changes button: "Sauvegarder les changements"
make edits public button: "Rendre toutes mes éditions publiques"
return to profile: "Retourner au profil"
flash update success confirm needed: "Informations sur l'utilisateur mises à jour avec succès. Vérifiez votre boite mail afin de valider la vérification de votre nouvelle adresse e-mail."
flash update success: "Informations sur l'utilisateur mises à jour avec succès."
confirm:
heading: "Confirmer un compte utilisateur"
press confirm button: "Appuyer le bouton confirmer ci-dessous pour activer votre compte."
button: "Confirmer"
confirm email:
heading: "Confirmer le changement de votre adresse e-mail"
press confirm button: "Appuyer sur le bouton confirmer pour confirmer votre nouvelle adresse e-mail."
button: "Confirmer"
set_home:
flash success: "Emplacement de mon domicile sauvegardé avec succès"
go_public:
flash success: "Tous vos éditions sont dorénavant publiques et vous n'êtes pas autorisé a éditer."

View file

@ -85,6 +85,7 @@ ActionController::Routing::Routes.draw do |map|
map.connect '/browse/changesets', :controller => 'changeset', :action => 'list'
# web site
map.root :controller => 'site', :action => 'index'
map.connect '/', :controller => 'site', :action => 'index'
map.connect '/edit', :controller => 'site', :action => 'edit'
map.connect '/history', :controller => 'changeset', :action => 'list_bbox'

View file

@ -0,0 +1,15 @@
require 'lib/migrate'
class ChangeUserLocale < ActiveRecord::Migration
def self.up
remove_foreign_key :users, [:locale], :languages, [:code]
rename_column :users, :locale, :languages
end
def self.down
rename_column :users, :languages, :locale
add_foreign_key :users, [:locale], :languages, [:code]
end
end

View file

@ -21,6 +21,11 @@ module ActiveRecord
"REFERENCES #{reftbl} (#{quote_column_names(refcol || column_name)})"
end
def remove_foreign_key(table_name, column_name, reftbl, refcol = nil)
execute "ALTER TABLE #{table_name} DROP " +
"CONSTRAINT #{table_name}_#{column_name[0]}_fkey"
end
alias_method :old_options_include_default?, :options_include_default?
def options_include_default?(options)

View file

@ -1,13 +1,15 @@
# Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
one:
min_lat:
max_lat:
min_lon:
max_lon:
gb:
code: gb
min_lat: 49.9061889648438
max_lat: 60.8458099365234
min_lon: -8.62355613708496
max_lon: 1.75900018215179
two:
min_lat:
max_lat:
min_lon:
max_lon:
de:
code: de
min_lat: 47.2757720947266
max_lat: 55.0556411743164
min_lon: 5.865638256073
max_lon: 15.0398902893066

View file

@ -7,7 +7,7 @@ normal_user_entry_1:
updated_at: "2008-11-07 17:43:34"
latitude:
longitude:
language: en
language_code: en
normal_user_geo_entry:
id: 2
@ -18,4 +18,4 @@ normal_user_geo_entry:
updated_at: "2008-11-07 17:47:34"
latitude: 51.50763
longitude: -0.10781
language: de
language_code: de

View file

@ -72,6 +72,7 @@ class DiaryEntryControllerTest < ActionController::TestCase
assert_select "form[action='/diary_entry/#{diary_entries(:normal_user_entry_1).id}/edit'][method=post]", :count => 1 do
assert_select "input#diary_entry_title[name='diary_entry[title]'][value='#{diary_entries(:normal_user_entry_1).title}']", :count => 1
assert_select "textarea#diary_entry_body[name='diary_entry[body]']", :text => diary_entries(:normal_user_entry_1).body, :count => 1
assert_select "select#diary_entry_language_code", :count => 1
assert_select "input#latitude[name='diary_entry[latitude]']", :count => 1
assert_select "input#longitude[name='diary_entry[longitude]']", :count => 1
assert_select "input[name=commit][type=submit][value=Save]", :count => 1
@ -86,8 +87,10 @@ class DiaryEntryControllerTest < ActionController::TestCase
new_body = "This is a new body for the diary entry"
new_latitude = "1.1"
new_longitude = "2.2"
new_language_code = "en"
post(:edit, {:id => diary_entries(:normal_user_entry_1).id, 'commit' => 'save',
'diary_entry'=>{'title' => new_title, 'body' => new_body, 'latitude' => new_latitude, 'longitude' => new_longitude} },
'diary_entry'=>{'title' => new_title, 'body' => new_body, 'latitude' => new_latitude,
'longitude' => new_longitude, 'language_code' => new_language_code} },
{'user' => users(:normal_user).id})
assert_response :redirect
assert_redirected_to :action => :view, :id => diary_entries(:normal_user_entry_1).id
@ -142,21 +145,51 @@ class DiaryEntryControllerTest < ActionController::TestCase
end
def test_editing_creating_diary_comment
def test_edit_diary_entry_i18n
I18n.available_locales.each do |locale|
set_locale locale
get(:edit, {:id => diary_entries(:normal_user_entry_1).id}, {'user' => users(:normal_user).id})
assert_response :success
assert_select "span[class=translation_missing]", false, "Missing translation in edit diary entry"
end
end
def test_create_diary_entry
#post :new
end
def test_creating_diary_comment
end
# Check that you can get the expected response and template for all available languages
# Should test that there are no <span class="translation_missing">
def test_listing_diary_entries
I18n.available_locales.each do |locale|
set_locale locale
get :list
assert_response :success, "Should be able to list the diary entries in #{locale}"
assert_template 'list', "Should use the list template in #{locale}"
assert_select "span[class=translation_missing]", false, "Missing translation in list of diary entries"
# Now try to find a specific user's diary entry
get :list, {:display_name => users(:normal_user).display_name}
assert_response :success, "Should be able to list the diary entries for a user in #{locale}"
assert_template 'list', "Should use the list template for a user in #{locale}"
assert_select "span[class=translation_missing]", false, "Missing translation in list of diary entries for user"
end
end
def test_rss
get :rss
assert :success
assert_response :success
end
def test_viewing_diary_entry
get :view, {:display_name => users(:normal_user).display_name, :id => diary_entries(:normal_user_entry_1).id}
assert_response :success
assert_template 'view'
end
end

View file

@ -123,6 +123,10 @@ class Test::Unit::TestCase
@request.env["RAW_POST_DATA"] = c.to_s
end
def set_locale(l)
@request.env["HTTP_ACCEPT_LANGUAGE"] = l.to_s
end
# Used to check that the error header and the forbidden responses are given
# when the owner of the changset has their data not marked as public
def assert_require_public_data(msg = "Shouldn't be able to use API when the user's data is not public")

View file

@ -1,8 +1,9 @@
require 'test_helper'
require File.dirname(__FILE__) + '/../test_helper'
class CountryTest < ActiveSupport::TestCase
# Replace this with your real tests.
test "the truth" do
assert true
fixtures :countries
test "country count" do
assert_equal 2, Country.count
end
end

View file

@ -2,7 +2,7 @@ require File.dirname(__FILE__) + '/../test_helper'
class DiaryEntryTest < Test::Unit::TestCase
api_fixtures
fixtures :diary_entries
fixtures :diary_entries, :languages
def test_diary_entry_count
assert_equal 2, DiaryEntry.count
@ -27,7 +27,7 @@ class DiaryEntryTest < Test::Unit::TestCase
def diary_entry_valid(attrs, result = true)
entry = diary_entries(:normal_user_entry_1).clone
entry.attributes = attrs
assert_equal result, entry.valid?
assert_equal result, entry.valid?, "Expected #{attrs.inspect} to be #{result}"
end
end

4
vendor/plugins/globalize2/.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
doc
spec/spec/db/*
vendor
NOTES

21
vendor/plugins/globalize2/LICENSE vendored Normal file
View file

@ -0,0 +1,21 @@
The MIT License
Copyright (c) 2008, 2009 Joshua Harvey
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

Some files were not shown because too many files have changed in this diff Show more