jobs:
danger:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
jobs:
test:
name: Docker
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
env:
- os: ubuntu-22.04
ruby: '3.1'
jobs:
rubocop:
name: RuboCop
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
rubygems: 3.4.10
bundler-cache: true
- name: Cache node modules
- uses: actions/cache@v4
+ uses: actions/setup-node@v4
with:
- path: node_modules
- key: yarn-${{ env.os }}-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- yarn-${{ env.os }}-
+ cache: yarn
- name: Install node modules
run: bundle exec bin/yarn install
- name: Create dummy database configuration
cancel-in-progress: true
jobs:
test:
- name: Ubuntu ${{ matrix.ubuntu }}, Ruby ${{ matrix.ruby }}
+ name: Ruby ${{ matrix.ruby }}
strategy:
matrix:
- ubuntu: [22.04, 24.04]
- ruby: ['3.1', '3.2', '3.3']
- runs-on: ubuntu-${{ matrix.ubuntu }}
+ ruby: ['3.1', '3.2', '3.3', '3.4']
+ runs-on: ubuntu-latest
env:
RAILS_ENV: test
OPENSTREETMAP_MEMCACHE_SERVERS: 127.0.0.1
rubygems: 3.4.10
bundler-cache: true
- name: Cache node modules
- uses: actions/cache@v4
+ uses: actions/setup-node@v4
with:
- path: node_modules
- key: yarn-ubuntu-${{ matrix.ubuntu }}-${{ hashFiles('yarn.lock') }}
- restore-keys: |
- yarn-ubuntu-${{ matrix.ubuntu }}-
+ cache: yarn
- name: Install packages
run: |
sudo apt-get -yqq update
uses: coverallsapp/github-action@v2.3.6
with:
github-token: ${{ secrets.github_token }}
- flag-name: ubuntu-${{ matrix.ubuntu }}-ruby-${{ matrix.ruby }}
+ flag-name: ruby-${{ matrix.ruby }}
format: lcov
parallel: true
finish:
enabled: true
EsLint:
enabled: true
- command: ["bin/yarn", "eslint", "-c", "config/eslint.js"]
+ command: ["bin/yarn", "eslint", "-c", "config/eslint.config.mjs"]
exclude:
- vendor/**/*.js
RailsSchemaUpToDate:
inherit_from: .rubocop_todo.yml
-require:
- - rubocop-capybara
- - rubocop-factory_bot
+plugins:
- rubocop-minitest
- rubocop-performance
- rubocop-rails
- rubocop-rake
+
+require:
+ - rubocop-capybara
+ - rubocop-factory_bot
- ./.rubocop/specific_action_names.rb
AllCops:
- 'app/controllers/api/changeset_comments_controller.rb'
- 'app/controllers/api/changesets_controller.rb'
- 'app/controllers/api/notes_controller.rb'
- - 'app/controllers/api/old_elements_controller.rb'
- 'app/controllers/api/user_preferences_controller.rb'
- 'app/controllers/api/users_controller.rb'
- 'app/controllers/browse_controller.rb'
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
-# Work around erblint issues.
-# https://github.com/openstreetmap/openstreetmap-website/issues/2472
-require:
- - rubocop-minitest
- - rubocop-performance
- - rubocop-rails
- - rubocop-rake
-
# Offense count: 13
# Configuration parameters: Include, MaxAmount.
# Include: **/*_spec.rb, **/spec/**/*, **/test/**/*, **/features/support/factories/**/*.rb
{
"eslint.options": {
- "overrideConfigFile": "config/eslint.js"
+ "overrideConfigFile": "config/eslint.config.mjs"
}
}
autoprefixer-rails (10.4.19.0)
execjs (~> 2)
aws-eventstream (1.3.1)
- aws-partitions (1.1050.0)
+ aws-partitions (1.1051.0)
aws-sdk-core (3.218.1)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
net-smtp (0.5.1)
net-protocol
nio4r (2.7.4)
- nokogiri (1.18.2)
+ nokogiri (1.18.3)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oauth (1.1.0)
open4 (1.3.4)
openstreetmap-deadlock_retry (1.3.1)
ostruct (0.6.1)
- overcommit (0.66.0)
+ overcommit (0.67.0)
childprocess (>= 0.6.3, < 6)
iniparse (~> 1.4)
rexml (>= 3.3.9)
io-console (~> 0.5)
request_store (1.7.0)
rack (>= 1.4)
- rexml (3.4.0)
+ rexml (3.4.1)
rinku (2.0.6)
rotp (6.3.0)
rouge (4.5.1)
rtlcss (0.2.1)
mini_racer (>= 0.6.3)
- rubocop (1.72.0)
+ rubocop (1.72.2)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
rubocop (~> 1.41)
rubocop-factory_bot (2.26.1)
rubocop (~> 1.61)
- rubocop-minitest (0.36.0)
- rubocop (>= 1.61, < 2.0)
- rubocop-ast (>= 1.31.1, < 2.0)
- rubocop-performance (1.23.1)
- rubocop (>= 1.48.1, < 2.0)
- rubocop-ast (>= 1.31.1, < 2.0)
- rubocop-rails (2.29.1)
+ rubocop-minitest (0.37.1)
+ lint_roller (~> 1.1)
+ rubocop (>= 1.72.1, < 2.0)
+ rubocop-ast (>= 1.38.0, < 2.0)
+ rubocop-performance (1.24.0)
+ lint_roller (~> 1.1)
+ rubocop (>= 1.72.1, < 2.0)
+ rubocop-ast (>= 1.38.0, < 2.0)
+ rubocop-rails (2.30.1)
activesupport (>= 4.2.0)
+ lint_roller (~> 1.1)
rack (>= 1.1)
- rubocop (>= 1.52.0, < 2.0)
- rubocop-ast (>= 1.31.1, < 2.0)
- rubocop-rake (0.6.0)
- rubocop (~> 1.0)
+ rubocop (>= 1.72.1, < 2.0)
+ rubocop-ast (>= 1.38.0, < 2.0)
+ rubocop-rake (0.7.1)
+ lint_roller (~> 1.1)
+ rubocop (>= 1.72.1)
ruby-openid (2.9.2)
ruby-progressbar (1.13.0)
ruby-vips (2.2.3)
can [:read, :create, :update, :destroy], :oauth2_application
can [:read, :destroy], :oauth2_authorized_application
can [:read, :create, :destroy], :oauth2_authorization
- can [:update, :destroy], :account
+ can [:read, :update, :destroy], :account
can :update, :account_terms
can :create, :account_pd_declaration
can :read, :dashboard
can :destroy, Note if scopes.include?("write_notes")
- can :redact, [OldNode, OldWay, OldRelation] if user.terms_agreed? && scopes.include?("write_redactions")
+ can [:create, :destroy], :element_version_redaction if user.terms_agreed? && scopes.include?("write_redactions")
can :create, UserBlock if scopes.include?("write_blocks")
end
const hashArgs = OSM.parseHash(location.hash);
const mapParams = OSM.mapParams();
const params = new URLSearchParams();
- let { zoom, lat, lon } = mapParams;
+ let zoom, lat, lon;
+ if (idData.lat && idData.lon) {
+ ({ zoom, lat, lon } = idData);
+ } else if (!mapParams.object) {
+ ({ zoom, lat, lon } = mapParams);
+ }
if (mapParams.object) {
params.set("id", mapParams.object.type + "/" + mapParams.object.id);
if (hashArgs.center) ({ zoom, center: { lat, lng: lon } } = hashArgs);
- } else if (idData.lat && idData.lon) {
- ({ zoom, lat, lon } = { zoom: 16, ...idData });
}
- params.set("map", [zoom || 17, lat, lon].join("/"));
+ if (lat && lon) params.set("map", [zoom || 17, lat, lon].join("/"));
const passThroughKeys = ["background", "comment", "disable_features", "gpx", "hashtags", "locale", "maprules", "notes", "offset", "photo", "photo_dates", "photo_overlay", "photo_username", "presets", "source", "validationDisable", "validationWarning", "validationError", "walkthrough"];
for (const key of passThroughKeys) {
});
if (object && object.type !== "note") query.set("select", object.type + object.id); // can't select notes
- sendRemoteEditCommand(remoteEditHost + "/load_and_zoom?" + query, function () {
- if (object && object.type === "note") {
- const noteQuery = new URLSearchParams({ url: osmHost + OSM.apiUrl(object) });
- sendRemoteEditCommand(remoteEditHost + "/import?" + noteQuery);
- }
- });
+ sendRemoteEditCommand(remoteEditHost + "/load_and_zoom?" + query)
+ .then(() => {
+ if (object && object.type === "note") {
+ const noteQuery = new URLSearchParams({ url: osmHost + OSM.apiUrl(object) });
+ sendRemoteEditCommand(remoteEditHost + "/import?" + noteQuery);
+ }
+ })
+ .catch(() => {
+ // eslint-disable-next-line no-alert
+ alert(I18n.t("site.index.remote_failed"));
+ });
- function sendRemoteEditCommand(url, callback) {
- fetch(url, { mode: "no-cors", signal: AbortSignal.timeout(5000) })
- .then(callback)
- .catch(function () {
- // eslint-disable-next-line no-alert
- alert(I18n.t("site.index.remote_failed"));
- });
+ function sendRemoteEditCommand(url) {
+ return fetch(url, { mode: "no-cors", signal: AbortSignal.timeout(5000) });
}
return false;
$(".directions_form .btn-close").on("click", function (e) {
e.preventDefault();
- $(".describe_location").toggle(!endpoints[0].value);
- $(".search_form input[name='query']").val(endpoints[0].value);
+ $(".describe_location").toggle(!endpoints[1].value);
+ $(".search_form input[name='query']").val(endpoints[1].value);
OSM.router.route("/" + OSM.formatHash(map));
});
e.preventDefault();
const query = $(this).closest("form").find("input[name=query]").val();
let search = "";
- if (query) search = "?" + new URLSearchParams({ from: query });
+ if (query) search = "?" + new URLSearchParams({ to: query });
OSM.router.route("/directions" + search + OSM.formatHash(map));
});
> ul {
height: auto;
+ justify-content: center;
}
.user-menu, .login-menu {
end
end
- redirect_to edit_account_path
+ redirect_to account_path
end
end
end
if current_user.terms_agreed?
# Already agreed to terms, so just show settings
- redirect_to edit_account_path
+ redirect_to account_path
end
end
end
referer = safe_referer(params[:referer]) if params[:referer]
- redirect_to referer || edit_account_path
+ redirect_to referer || account_path
end
end
end
before_action :check_database_readable
before_action :check_database_writable, :only => [:update]
- allow_thirdparty_images :only => [:edit, :update]
- allow_social_login :only => [:edit, :update]
+ allow_thirdparty_images :only => [:show, :update]
+ allow_social_login :only => [:show, :update]
- def edit
+ def show
if errors = session.delete(:user_errors)
errors.each do |attribute, error|
current_user.errors.add(attribute, error)
params[:user][:auth_uid] == current_user.auth_uid)
update_user(current_user, user_params)
if current_user.errors.empty?
- redirect_to edit_account_path
+ redirect_to account_path
else
- render :edit
+ render :show
end
else
session[:new_user_settings] = user_params.to_h
--- /dev/null
+module Api
+ module OldElements
+ class RedactionsController < ApiController
+ before_action :check_api_writable
+ before_action :authorize
+
+ authorize_resource :class => :element_version_redaction
+
+ before_action :lookup_old_element
+
+ def create
+ redaction_id = params["redaction"]
+ if redaction_id
+ redaction = Redaction.find(redaction_id.to_i)
+ @old_element.redact!(redaction)
+ head :ok
+ elsif params["allow_delete"]
+ # legacy unredact if no redaction ID was provided for /api/0.6/:element_type/:id/:version/redact paths mapped here
+ destroy
+ else
+ raise OSM::APIBadUserInput, "No redaction was given" unless redaction_id
+ end
+ end
+
+ def destroy
+ @old_element.redact!(nil)
+ head :ok
+ end
+ end
+ end
+end
# nodes, ways and relations are basically identical.
module Api
class OldElementsController < ApiController
- before_action :check_api_writable, :only => [:redact]
- before_action :setup_user_auth, :only => [:index, :show]
- before_action :authorize, :only => [:redact]
+ before_action :setup_user_auth
authorize_resource
before_action :lookup_old_element, :except => [:index]
before_action :lookup_old_element_versions, :only => [:index]
- before_action :set_request_formats, :except => [:redact]
+ before_action :set_request_formats
def index
# the .where() method used in the lookup_old_element_versions
end
end
- def redact
- redaction_id = params["redaction"]
- if redaction_id.nil?
- # if no redaction ID was provided, then this is an unredact
- # operation.
- @old_element.redact!(nil)
- else
- # if a redaction ID was specified, then set this element to
- # be redacted in that redaction.
- redaction = Redaction.find(redaction_id.to_i)
- @old_element.redact!(redaction)
- end
-
- # just return an empty 200 OK for success
- head :ok
- end
-
private
def show_redactions?
--- /dev/null
+module Api
+ module OldNodes
+ class RedactionsController < OldElements::RedactionsController
+ private
+
+ def lookup_old_element
+ @old_element = OldNode.find([params[:node_id], params[:version]])
+ end
+ end
+ end
+end
--- /dev/null
+module Api
+ module OldRelations
+ class RedactionsController < OldElements::RedactionsController
+ private
+
+ def lookup_old_element
+ @old_element = OldRelation.find([params[:relation_id], params[:version]])
+ end
+ end
+ end
+end
--- /dev/null
+module Api
+ module OldWays
+ class RedactionsController < OldElements::RedactionsController
+ private
+
+ def lookup_old_element
+ @old_element = OldWay.find([params[:way_id], params[:version]])
+ end
+ end
+ end
+end
flash[:error] = t ".unknown_token"
end
- redirect_to edit_account_path
+ redirect_to account_path
end
end
before_action :check_database_readable
def show
- @user = current_user
+ @followings = current_user.followings
+ @nearby_users = current_user.nearby - @followings
end
end
@report.issue.reopen unless @report.issue.open?
@report.issue.save!
+ @report.issue.reported_user&.spam_check
+
redirect_to helpers.reportable_url(@report.issue.reportable), :notice => t(".successful_report")
else
flash.now[:notice] = t(".provide_details")
@muted_users = current_user.muted_users
@title = t ".title"
- redirect_to edit_account_path unless @muted_users.any?
+ redirect_to account_path unless @muted_users.any?
end
def create
current_user.data_public = true
current_user.save
flash[:notice] = t ".flash success"
- redirect_to edit_account_path
+ redirect_to account_path
end
##
session[:user_errors] = current_user.errors.as_json
- redirect_to edit_account_path
+ redirect_to account_path
else
user = User.find_by(:auth_provider => provider, :auth_uid => uid)
trace_score = traces.size * 50
diary_entry_score = diary_entries.visible.inject(0) { |acc, elem| acc + elem.body.spam_score }
diary_comment_score = diary_comments.visible.inject(0) { |acc, elem| acc + elem.body.spam_score }
- report_score = Report.where(:category => "spam", :issue => issues.with_status("open")).count * 20
+ report_score = Report.where(:category => "spam", :issue => issues.with_status("open")).distinct.count(:user_id) * 20
score = description.spam_score / 4.0
score += diary_entries.visible.where("created_at > ?", 1.day.ago).count * 10
<button class="btn btn-secondary" disabled><%= t(".delete_account") %></button>
<% end %>
-<%= link_to t(".cancel"), edit_account_path, :class => "btn btn-link" %>
+<%= link_to t(".cancel"), account_path, :class => "btn btn-link" %>
</label>
<%= hidden_field_tag("referer", params[:referer], :autocomplete => "off") %>
<%= text_field_tag("openid_url", "https://", :tabindex => 20, :autocomplete => "on", :class => "form-control") %>
- <span class="form-text text-body-secondary">(<a href="<%= t "accounts.edit.openid.link" %>" target="_new"><%= t "accounts.edit.openid.link text" %></a>)</span>
+ <span class="form-text text-body-secondary">(<a href="<%= t "accounts.show.openid.link" %>" target="_new"><%= t "accounts.show.openid.link text" %></a>)</span>
</div>
<%= submit_tag t(".openid_login_button"), :tabindex => 21, :class => "btn btn-primary" %>
<% content_for :heading do %>
<ul class="nav nav-tabs flex-column flex-sm-row">
<li class="nav-item">
- <%= link_to t(".account_settings"), edit_account_path, :class => "nav-link #{'active' if %w[accounts deletions].include?(controller_name)}" %>
+ <%= link_to t(".account_settings"), account_path, :class => "nav-link #{'active' if %w[accounts deletions].include?(controller_name)}" %>
</li>
<li class="nav-item">
<%= link_to t(".oauth2_applications"), oauth_applications_path, :class => "nav-link #{'active' if controller_name == 'oauth2_applications'}" %>
<div class="col">
<p class='text-body-secondary mb-0'>
<%= link_to contact.display_name, contact %>
- <% if @user.home_location? and contact.home_location? %>
- <% distance = @user.distance(contact) %>
+ <% if current_user.home_location? and contact.home_location? %>
+ <% distance = current_user.distance(contact) %>
<% if distance < 1 %>
(<%= t ".m away", :count => (distance * 1000).round %>)
<% else %>
<% end %>
<div class="row">
- <% if current_user and @user.id == current_user.id %>
- <div class="col-md order-md-last">
- <% if !@user.home_location? %>
- <div id="map" class="content_map border border-secondary-subtle">
- <p class="m-3"><%= t(".no_home_location_html", :edit_profile_link => link_to(t(".edit_your_profile"), edit_profile_path)) %></p>
- </div>
- <% else %>
- <% content_for :head do %>
- <%= javascript_include_tag "user" %>
- <% end %>
- <% user_data = {
- :lon => current_user.home_lon,
- :lat => current_user.home_lat,
- :icon => image_path("marker-red.png"),
- :description => render(:partial => "popup", :object => current_user, :locals => { :type => "your location" })
- } %>
- <%= tag.div "", :id => "map", :class => "content_map border border-secondary-subtle rounded z-0", :data => { :user => user_data } %>
+ <div class="col-md order-md-last">
+ <% if !current_user.home_location? %>
+ <div id="map" class="content_map border border-secondary-subtle">
+ <p class="m-3"><%= t(".no_home_location_html", :edit_profile_link => link_to(t(".edit_your_profile"), edit_profile_path)) %></p>
+ </div>
+ <% else %>
+ <% content_for :head do %>
+ <%= javascript_include_tag "user" %>
<% end %>
+ <% user_data = {
+ :lon => current_user.home_lon,
+ :lat => current_user.home_lat,
+ :icon => image_path("marker-red.png"),
+ :description => render(:partial => "popup", :object => current_user, :locals => { :type => "your location" })
+ } %>
+ <%= tag.div "", :id => "map", :class => "content_map border border-secondary-subtle rounded z-0", :data => { :user => user_data } %>
+ <% end %>
+ </div>
- <% followings = @user.followings %>
- <% nearby = @user.nearby - followings %>
- </div>
+ <div class="col-md">
+ <h2><%= t ".followings" %></h2>
- <div class="col-md">
- <h2><%= t ".followings" %></h2>
+ <% if @followings.empty? %>
+ <%= t ".no followings" %>
+ <% else %>
+ <nav class='secondary-actions mb-3'>
+ <ul class='clearfix'>
+ <li><%= link_to t(".followed_changesets"), friend_changesets_path %></li>
+ <li><%= link_to t(".followed_diaries"), friends_diary_entries_path %></li>
+ </ul>
+ </nav>
+ <div>
+ <%= render :partial => "contact", :collection => @followings, :locals => { :type => "following" } %>
+ </div>
+ <% end %>
- <% if followings.empty? %>
- <%= t ".no followings" %>
- <% else %>
- <nav class='secondary-actions mb-3'>
- <ul class='clearfix'>
- <li><%= link_to t(".followed_changesets"), friend_changesets_path %></li>
- <li><%= link_to t(".followed_diaries"), friends_diary_entries_path %></li>
- </ul>
- </nav>
- <div>
- <%= render :partial => "contact", :collection => followings, :locals => { :type => "following" } %>
- </div>
- <% end %>
-
- <hr>
+ <hr>
- <h2><%= t ".nearby users" %></h2>
+ <h2><%= t ".nearby users" %></h2>
- <% if nearby.empty? %>
- <%= t ".no nearby users" %>
- <% else %>
- <nav class='secondary-actions mb-3'>
- <ul class='clearfix'>
- <li><%= link_to t(".nearby_changesets"), nearby_changesets_path %></li>
- <li><%= link_to t(".nearby_diaries"), nearby_diary_entries_path %></li>
- </ul>
- </nav>
- <div id="nearbyusers">
- <%= render :partial => "contact", :collection => nearby, :locals => { :type => "nearby mapper" } %>
- </div>
- <% end %>
- </div>
- <% end %>
+ <% if @nearby_users.empty? %>
+ <%= t ".no nearby users" %>
+ <% else %>
+ <nav class='secondary-actions mb-3'>
+ <ul class='clearfix'>
+ <li><%= link_to t(".nearby_changesets"), nearby_changesets_path %></li>
+ <li><%= link_to t(".nearby_diaries"), nearby_diary_entries_path %></li>
+ </ul>
+ </nav>
+ <div id="nearbyusers">
+ <%= render :partial => "contact", :collection => @nearby_users, :locals => { :type => "nearby mapper" } %>
+ </div>
+ <% end %>
+ </div>
</div>
<span class='badge count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
<% end %>
<%= link_to t("users.show.my profile"), current_user, :class => "dropdown-item" %>
- <%= link_to t("users.show.my_account"), edit_account_path, :class => "dropdown-item" %>
+ <%= link_to t("users.show.my_account"), account_path, :class => "dropdown-item" %>
<%= link_to t("users.show.my_preferences"), preferences_path, :class => "dropdown-item" %>
<div class="dropdown-divider"></div>
<% if current_user.home_location? %>
<% data = { :configured => Settings.key?(:id_application) }
data[:lat] = @lat if @lat
data[:lon] = @lon if @lon
+ data[:zoom] = @zoom if @zoom
data[:gpx] = trace_data_url(params[:gpx], :format => :xml) if params[:gpx]
data[:url] = id_url(:locale => params[:locale]) %>
<%= tag.iframe "", :frameBorder => 0, :id => "id-embed", :class => "w-100 h-100", :allowfullscreen => "", :data => data %>
<p><%= t ".not_public" %></p>
-<p><%= t ".not_public_description_html", :user_page => (link_to t(".user_page_link"), edit_account_path(:anchor => "public")) %></p>
+<p><%= t ".not_public_description_html", :user_page => (link_to t(".user_page_link"), account_path(:anchor => "public")) %></p>
<p><%= t ".anon_edits_html", :link => link_to(t(".anon_edits_link_text"), t(".anon_edits_link")) %></p>
<span class='badge count-number'><%= number_with_delimiter(current_user.diary_comments.size) %></span>
</li>
<li>
- <%= link_to t(".my_account"), edit_account_path %>
+ <%= link_to t(".my_account"), account_path %>
</li>
<% if current_user.blocks.exists? %>
-const globals = require("globals");
-const js = require("@eslint/js");
-const erb = require("eslint-plugin-erb");
-const stylisticJs = require("@stylistic/eslint-plugin-js");
+import globals from "globals";
+import js from "@eslint/js";
+import erb from "eslint-plugin-erb";
+import stylisticJs from "@stylistic/eslint-plugin-js";
-module.exports = [
+export default [
js.configs.recommended,
erb.configs.recommended,
{
}
},
{
- files: ["config/eslint.js"],
+ files: ["config/eslint.config.mjs"],
languageOptions: {
- ecmaVersion: 2019,
- sourceType: "commonjs",
- globals: {
- ...globals.commonjs
- }
+ sourceType: "module"
},
rules: {
"sort-keys": ["error", "asc", { minKeys: 5 }]
comment: Kommentaar
full: Volle nota
accounts:
- edit:
+ show:
title: Redigeer rekening
- my settings: My instellings
current email address: Huidige e-posadres
external auth: Ekserne veriviering.
contributor terms:
my traces: My Spore
my notes: My notas
my profile: My profiel
- my settings: My Instellings
my comments: My kommentaar
my_preferences: My voorkeure
my_dashboard: My paneelbord
show:
title: Gebruikers
heading: Gebruikers
- empty: Geen gebruikers gevind nie
page:
confirm: Bevestig geselekteerde gebruikers
hide: Versteek verkose gebruikers
+ empty: Geen gebruikers gevind nie
user:
summary_html: '%{name} geskep vanaf %{ip_address} op %{date}'
summary_no_ip_html: '%{name} geskep op %{date}'
entry:
comment: Koment
accounts:
- edit:
+ show:
title: Ndrysho akountin
- my settings: Preferencat e mia
current email address: 'Email adresa e tanishme:'
save changes button: Ruaj Ndryshimet
go_public:
terms:
show:
heading: rregullat për Pjesëmarrës
- consider_pd: Unë e konsideroj kontributet e mia të jenë në domenin publik
- consider_pd_why: çka o kjo?
legale_select: 'Ju lutem zgjidhni vendin tuaj të banimit:'
legale_names:
france: Franca
my diary: ditari im
my edits: ndryshimet e mia
my traces: gjurmët e mia
- my settings: preferencat e mia
blocks on me: bllokimet e mia
blocks by me: bllokimet e dhana nga un
send message: dërgo mesazh
show:
title: Perdoruesit
heading: Perdoruesit
- empty: Asni perputhje e perdoruesve nuk asht gjetun
page:
confirm: Konfirmo Anëtarët e Selektum
hide: Mshefi Perdorust e Zgjedhun
+ empty: Asni perputhje e perdoruesve nuk asht gjetun
user:
summary_html: '%{name} u kriju prej %{ip_address} në %{date}'
summary_no_ip_html: '%{name} u krijue me %{date}'
comment: التعليق
full: ملاحظة كاملة
accounts:
- edit:
+ show:
title: عدل الحساب
- my settings: إعداداتي
current email address: عنوان البريد الإلكرتروني الحالي
external auth: مصادقة خارجية
openid:
الأخرى التي يوفرها مؤسسة خريطة الشارع المفتوحة، يُرجَى النقر على الرابط،
وقراءة والموافقة على النص.
read_tou: قرأت شروط الاستخدام وأوافق عليها.
- consider_pd: بالإضافة إلى ما طُرح أعلاه، أريد أن أنوه أنني أعتبر مساهماتي
- ملكية عامة.
- consider_pd_why: ما هذا؟
continue: استمر
you need to accept or decline: الرجاء القراءة ومن ثم قبول أو رفض شروط المساهمة
الجديدة للمتابعة.
my notes: ملاحظاتي
my messages: رسائلي
my profile: ملفي الشخصي
- my settings: إعداداتي
my comments: تعليقاتي
blocks on me: عمليات منعي
blocks by me: عمليات المنع بواسطتي
show:
title: المستخدمون
heading: المستخدمون
- empty: لم يتم العثور على مستخدمين متطابقين
page:
confirm: تأكيد المستخدمين المحددين
hide: إخفاء المستخدمين المحددين
+ empty: لم يتم العثور على مستخدمين متطابقين
user:
summary_html: '%{name} تم إنشاؤها من %{ip_address} في %{date}'
summary_no_ip_html: '%{name} تم إنشاؤه في %{date}'
user:
new_email: (لا يظهر علنًا)
accounts:
- edit:
+ show:
title: عدّل الحساب
- my settings: إعداداتي
save changes button: حفظ التغييرات
go_public:
heading: 'تعديل عام:'
my diary: يوميتي
my edits: مساهمات
my traces: آثاري
- my settings: إعداداتي
blocks on me: العرقلات علي
blocks by me: العرقلات بواسطتي
send message: أرسل رسالة
comment: Comentariu
full: Nota completa
accounts:
- edit:
+ show:
title: Editar la cuenta
- my settings: Les mios preferencies
current email address: Direición de corréu electrónicu actual
external auth: Autenticación esterna
openid:
infraestructura forníos pola OSMF. Por favor, pulsia nel enllaz, y llei
y aceuta'l testu.
read_tou: Lleí y toi d'alcuerdu colos Términos d'Usu
- consider_pd: Amás de lo anterior, considero que les mios collaboraciones pasen
- a ser Dominiu Públicu
- consider_pd_why: ¿qué ye esto?
continue: Siguir
you need to accept or decline: Por favor, llei y aceuta o refuga les nueves
Condiciones de Collaboración pa siguir.
my notes: Les mios notes
my messages: Los mios mensaxes
my profile: El mio perfil
- my settings: Les mios preferencies
my comments: Los mios comentarios
blocks on me: Bloqueos recibíos
blocks by me: Bloqueos puestos
show:
title: Usuarios
heading: Usuarios
- empty: Nun s'atoparon usuarios que concasen
page:
confirm: Confirmar los usuarios esbillaos
hide: Anubrir los usuarios esbillaos
+ empty: Nun s'atoparon usuarios que concasen
user:
summary_html: '%{name} creáu dende %{ip_address} el %{date}'
summary_no_ip_html: '%{name} creáu el %{date}'
comment: Şərh
full: Tam qeydlər
accounts:
- edit:
+ show:
current email address: Hazırki E-Poçt Ünvanı
openid:
link text: bu nədir?
success: Hesab silindi.
terms:
show:
- consider_pd_why: bu nədir?
legale_names:
france: Fransa
italy: İtaliya
comment: Комментарий
full: Тулы текст
accounts:
- edit:
+ show:
title: Аккаунтты үҙгәртергә
- my settings: Минең көйләүҙәр
current email address: Ағымдағы электрон почта адресы
external auth: Тышҡы аутентификация
openid:
allow_write_prefs: зьмяняць іх налады ўдзельніка
allow_write_diary: ствараць запісы і камэнтары ў дзёньніку
allow_write_api: зьмяняць мапу
+ allow_write_changeset_comments: камэнтаваць наборы зьменаў
allow_read_gpx: чытаць іх прыватныя GPS-трэкі
allow_write_gpx: загружаць GPS-трэкі
allow_write_notes: зьмяняць нататкі
comment: Камэнтар
full: Поўны тэкст
accounts:
- edit:
+ show:
title: Рэдагаваньне рахунку
- my settings: Мае налады
+ my_account: Мой уліковы запіс
current email address: Цяперашні адрас электроннай пошты
external auth: Вонкавая аўтэнтыфікацыя
openid:
show:
title: Умовы
heading: Умовы
- consider_pd: У дадатак да прыведзенага вышэй, я пацьвярджаю, што мой унёсак
- знаходзіцца ў грамадзкім набытку
- consider_pd_why: што гэта?
you need to accept or decline: Калі ласка, прачытайце, а потым згадзіцеся
ці адхіліце новыя ўмовы супрацоўніцтва для працягу.
legale_select: 'Калі ласка, выберыце сваю краіну пражываньня:'
rest_of_world: Астатні сьвет
update:
terms accepted: Дзякуй за тое, што прынялі новыя ўмовы супрацоўніцтва!
+ pd_declarations:
+ show:
+ confirm: Пацьвердзіць
browse:
version: Вэрсія
in_changeset: Набор зьменаў
my diary: Мой дзёньнік
my edits: Мае рэдагаваньні
my traces: Мае трэкі
- my settings: Мае налады
blocks on me: Атрыманыя блякаваньні
blocks by me: Заблякаваныя мной
send message: Адаслаць паведамленьне
show:
title: Удзельнікі
heading: Карыстальнікі
- empty: Адпаведныя карыстальнікі ня знойдзеныя
page:
confirm: Пацьвердзіць выбраных карыстальнікаў
hide: Схаваць выбраных карыстальнікаў
+ empty: Адпаведныя карыстальнікі ня знойдзеныя
user:
summary_html: '%{name} створаны з %{ip_address}, %{date}'
summary_no_ip_html: '%{name} створаны %{date}'
comment: Каментар
full: Тлумачэнне
accounts:
- edit:
+ show:
title: Рэдагаваць уліковы запіс
- my settings: Мае налады
current email address: Бягучы адрас электроннай пошты
external auth: Знешняя Аўтэнтыфікацыя
openid:
tou_explain_html: '%{tou_link} кіруе сайтам і іншай інфраструктурай OSMF.
Калі ласка, прайдзіце па спасылцы і азнаёмцеся з тэкстам.'
read_tou: Я згаджаюся з Умовамі выкарыстання
- consider_pd: У праграму да прыведзенага пагаднення, я пацвярджаю, што мой
- уклад знаходзіцца ў грамадскім набытку
- consider_pd_why: што гэта?
continue: Працягнуць
you need to accept or decline: Калі ласка, прачытайце, а потым згадзіцеся
ці адхіліце новыя ўмовы супрацоўніцтва для працягу.
privacy_policy: палітыкі прыватнасці
html: Адрас вашай электроннай пошты не будзе паказвацца іншым карыстальнікам,
звярніцеся да %{privacy_policy_link} за больш дэтальнай інфармацыяй.
- consider_pd_html: Я пагаджаюся з тым, што мой унёсак будзе часткай %{consider_pd_link}.
- consider_pd: грамадскага набытку
or: або
use external auth: У якасці альтэрнатывы выкарыстайце для ўваходу старонні сервіс
no_such_user:
my notes: Мае заўвагі
my messages: Паведамленні
my profile: Мой профіль
- my settings: Мае налады
my comments: Мае каментары
my_preferences: Мае параметры
my_dashboard: Мая панэль
show:
title: Удзельнікі
heading: Удзельнікі
- empty: Адпаведныя карыстальнікі не знойдзеныя
page:
confirm: Пацвердзіць выбраных карыстальнікаў
hide: Схаваць выбраных карыстальнікаў
+ empty: Адпаведныя карыстальнікі не знойдзеныя
user:
summary_html: '%{name} створана з %{ip_address} %{date}'
summary_no_ip_html: '%{name} створаны %{date}'
comment: Коментар
full: Цялата бележка
accounts:
- edit:
+ show:
title: Промяна на профил
- my settings: Моите настройки
current email address: Текуща електронна поща
external auth: Удостоверяване от външен източник
openid:
title: Условия
heading: Условия
heading_ct: Условия за сътрудничество
- consider_pd_why: какво е това?
continue: Продължаване
you need to accept or decline: За да продължите, моля, прочетете, а след това
се съгласете или откажете новите условия за сътрудничество.
my notes: Моите бележки
my messages: Съобщения
my profile: Профил
- my settings: Настройки
my comments: Моите коментари
my_preferences: Предпочитания
blocks on me: Блокирани от мен
show:
title: Потребители
heading: Потребители
- empty: Не са открити съвпадащи профили
page:
hide: Скрий избраните потребители
+ empty: Не са открити съвпадащи профили
user:
summary_no_ip_html: '%{name} създадено на %{date}'
changeset_comments:
comment: মন্তব্য
full: পূর্ণ টীকা
accounts:
- edit:
+ show:
title: অ্যাকাউন্ট সম্পাদনা করুন
- my settings: আমার সেটিংস
current email address: বর্তমান ই-মেইল ঠিকানা
external auth: বাহ্যিক প্রমাণীকরণ
openid:
শর্তাদি নিয়ন্ত্রণ করে।
read_ct: আমি উপরোক্ত অবদানকারীর শর্তাবলী পড়েছি এবং তাতে সম্মত
read_tou: আমি ব্যবহারের শর্তাবলী পড়েছি এবং সম্মত
- consider_pd: উপরোক্ত ছাড়াও, আমি আমার অবদানগুলিকে পাবলিক ডোমেনে বলে মনে করি৷
- consider_pd_why: এটি কী?
informal_translations: অনানুষ্ঠানিক অনুবাদ
continue: অব্যাহত রাখুন
cancel: বাতিল
করার সিদ্ধান্ত নিয়েছেন। আরও তথ্যের জন্য, অনুগ্রহ করে %{terms_declined_link}
দেখুন।
terms_declined_link: এই উইকি পাতা
+ pd_declarations:
+ show:
+ confirm: নিশ্চিত করুন
browse:
deleted_ago_by_html: '%{user} কর্তৃক %{time_ago} অপসারিত'
edited_ago_by_html: '%{user} কর্তৃক %{time_ago} সম্পাদিত'
application:
settings_menu:
account_settings: অ্যাকাউন্ট সেটিংস
+ oauth2_applications: ওআউথ ২ অ্যাপ্লিকেশন
auth_providers:
openid:
alt: ওপেনআইডি লোগো
my notes: আমার নোট
my messages: আমার বার্তাসমূহ
my profile: আমার প্রোফাইল
- my settings: আমার সেটিংস
+ my_account: আমার অ্যাকাউন্ট
my comments: আমার মন্তব্যসমূহ
my_preferences: আমার পছন্দ
edit_profile: পরিলেখ সম্পাদনা করুন
show:
title: ব্যবহারকারীগণ
heading: ব্যবহারকারীগণ
- empty: কোনো সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
+ states:
+ deleted: অপসারিত
+ search: অনুসন্ধান
page:
confirm: নির্বাচিত ব্যবহারকারীদের নিশ্চিত করুন
hide: নির্বাচিত ব্যবহারকারীদের লুকান
+ empty: কোনো সাদৃশ্যপূর্ণ ব্যবহারকারী পাওয়া যায়নি
user:
summary_html: '%{ip_address} থেকে %{date} তারিখে %{name} তৈরি করেছেন'
summary_no_ip_html: '%{date}-এ %{name} তৈরি হয়েছে'
context:
add_note: এখানে একটি টীকা যোগ করুন
show_address: ঠিকানা দেখান
+ home:
+ marker_title: আমার বাড়ির অবস্থান
redactions:
edit:
heading: সম্পাদনা সম্পাদন করুন
comment: Evezhiadenn
full: Notenn glok
accounts:
- edit:
+ show:
title: Aozañ ar gont
- my settings: Ma arventennoù
current email address: Chomlec'h postel a-vremañ
external auth: Dilesadur diavaez
openid:
heading_ct: Reolennoù ar c'henlabourer
read_ct: Lennet eo bet ganin ar reolennoù kenlabourat hag asantiñ a ran dezho
read_tou: Lennet em eus ar reolennoù implijout hag asantiñ a ran doujañ dezho
- consider_pd: Ouzhpenn an asant amañ a-us, ez anavezan emañ ma zegasadennoù
- en domani foran
- consider_pd_why: petra eo se ?
readable_summary: diverrañ a c'hall bezañ lennet gant tud
informal_translations: troidigezhioù diofisiel
continue: Kenderc'hel
privacy_policy: Politikerezh prevezded
html: Ho chomlec'h ne vo ket hewel d'an holl, sellit ouzh %{privacy_policy_link}
evit gouzout hiroc'h.
- consider_pd: domani foran
or: pe
use external auth: 'pe kevreit gant un tredeour:'
no_such_user:
my notes: Ma notennoù
my messages: Ma c'hemennadennoù
my profile: Ma frofil
- my settings: Ma arventennoù
my comments: Ma evezhiadennoù
my_preferences: Ma fenndibaboù
my_dashboard: Ma zaolenn-vourzh
show:
title: Implijerien
heading: Implijerien
- empty: N'eo bet kavet implijer klotaus ebet !
page:
found_users:
one: '%{count} implijer kavet'
other: '%{count} implijer'
confirm: Kadarnaat an implijerien diuzet
hide: Kuzhat an implijerien diuzet
+ empty: N'eo bet kavet implijer klotaus ebet !
user:
summary_html: '%{name} krouet eus %{ip_address} d''an %{date}'
summary_no_ip_html: '%{name} krouet d''an %{date}'
comment:
opened_at_html: Kreirano %{when}
accounts:
- edit:
+ show:
title: Urediti korisnički račun
- my settings: Moja podešavanja
current email address: Trenutna adresa e-pošte
openid:
link text: Šta je ovo?
show:
title: Uslovi za doprinosioce
heading: Uslovi za doprinosioce
- consider_pd: Osim gore navedenog ugovora, smatram da su moji doprinosi u javnom
- vlasništvu (Public Domain)
- consider_pd_why: Šta je ovo?
you need to accept or decline: Molimo pročitajte i onda ili prihvatite ili
odbijte nove Uslove za doprinosioce da bi ste nastavili.
legale_select: 'Molimo odaberite Vašu zemlju prebivališta:'
my edits: Moje promjene
my traces: Moje trase
my profile: Moj profil
- my settings: Moja podešavanja
my comments: Moji komentari
blocks on me: Blokade na mene
blocks by me: Blokade koje sam postavio/la
show:
title: Korisnici
heading: Korisnici
- empty: Nisu pronađeni odgovarajući korisnici.
page:
confirm: Potvrditi odabrane korisnike
hide: Sakriti odabrane korisnike
+ empty: Nisu pronađeni odgovarajući korisnici.
user:
summary_html: '%{name} napravljeno sa %{ip_address} dana %{date}'
summary_no_ip_html: '%{name} napravljeno %{date}'
comment: Comentari
full: Nota sencera
accounts:
- edit:
+ show:
title: Edita el compte
- my settings: La meva configuració
current email address: Adreça electrònica actual
external auth: Autenticació externa
openid:
infraestructures proporcionades per l'OSFM. Cliqueu l'enllaç, llegiu el
text i accepteu-lo.
read_tou: He llegit i accepto les condicions d'us
- consider_pd: A més de tot l'anterior, accepto que les meves contribucions
- siguin de domini públic
- consider_pd_why: què és això?
guidance_info_html: 'Informació per ajudar a entendre aquests termes: un %{readable_summary_link}
i algunes %{informal_translations_link}'
readable_summary: resum llegible per humans
email_help:
html: La vostra adreça no es mostrarà públicament, consulteu la nostra %{privacy_policy_link}
per obtenir més informació.
- consider_pd: domini públic
or: o
use external auth: o inicieu la sessió mitjançant un tercer
no_such_user:
my notes: Les meves notes de mapa
my messages: Els meus missatges
my profile: El meu perfil
- my settings: La meva configuració
my comments: Els meus comentaris
my_preferences: Les meves preferències
my_dashboard: El meu tauler
show:
title: Usuaris
heading: Usuaris
- empty: No hi ha usuaris que coincideixin s'ha trobat
page:
confirm: Confirmar usuaris seleccionats
hide: Amaga els usuaris seleccionats
+ empty: No hi ha usuaris que coincideixin s'ha trobat
user:
summary_html: '%{name} creat a partir de %{ip_address} el %{date}'
summary_no_ip_html: '%{name} creat el %{date}'
comment: Коммент
full: Йуьззина текст
accounts:
- edit:
+ show:
title: Аккаунт хийца
- my settings: Сан нисдаран гӀирс
current email address: Карара электронан поштан адрес
external auth: Арахьара аутентификаци
openid:
tou_explain_html: '%{tou_link} урхалла до веб-сайтан а, OSMF-о луш йолчу кхечу
инфраструктуран а. Дехар ду, ссылка тӀе а таӀийна, хьажа текстана тIех долчунна.'
read_tou: Со реза ву Лелоран хьолашна
- consider_pd: Лакхахь дийцинарг доцург, ас къобалдо, сан дакъалацар йукъараллин
- хьолах хилар
- consider_pd_why: хӀун ду хӀара?
guidance_info_html: 'ХӀокху терминех кхета гӀо дан лерина хаамаш: цхьа %{readable_summary_link}
а, цхьайолу %{informal_translations_link} а'
readable_summary: адамо еша йиш йолу чулацам
адресех лаьцна дакъа а
html: Хьан адрес нахана гойтуш дац, хьажа тхан %{privacy_policy_link} кхин
дӀа информаци хаа.
- consider_pd_html: Ас сайн агӀонаш %{consider_pd_link} чохь лору.
- consider_pd: йукъара домен
or: йа
use external auth: я кхечу сайтан агӀонца дIавазало
no_such_user:
my notes: Сан билгалонаш
my messages: Сан хаамаш
my profile: Сан профиль
- my settings: Сан нисдаран гӀирс
my comments: Сан комменташ
my_preferences: Суна хазахеттарш
my_dashboard: Сан панель
show:
title: Декъашхой
heading: Декъашхой
- empty: ЦхьаьнабогӀуш болу декъашхой ца карийна
page:
found_users:
one: '%{count} декъашхо карийна'
other: '%{count} декъашхоша карийна'
confirm: Хаьржина декъашхой тӀечӀагӀбе
hide: Хаьржина декъашхой къейлабаха
+ empty: ЦхьаьнабогӀуш болу декъашхой ца карийна
user:
summary_html: '%{name} кхоьллина %{date}, %{ip_address} адрес чуьра'
summary_no_ip_html: '%{name} кхоьллина %{date}'
user: 'Кхоьллина:'
edit: ХӀара редакци хийца
destroy: ДӀаяккха хӀара редакци
- confirm: Ð\91акÑ\8aалла лаÑ\8cий Ñ\85Ó\80Ñ\83на?
+ confirm: Ð¥Ñ\8cо Ñ\82еÑ\88на вÑ\83й?
create:
flash: Редакци кхоьллина.
update:
comment: Komentář
full: Celá poznámka
accounts:
- edit:
+ show:
title: Upravit účet
- my settings: Moje nastavení
current email address: Stávající e-mailová adresa
external auth: Externí autentizace
openid:
poskytované OSMF. Klikněte prosím na odkaz, přečtěte si text a odsouhlaste
ho.
read_tou: Přečetl jsem si Podmínky užití a souhlasím s nimi
- consider_pd: Navíc k výše uvedenému považuji své příspěvky za volné dílo.
- consider_pd_why: co to znamená?
guidance_info_html: 'Informace, které pomohou tyto podmínky pochopit: %{readable_summary_link}
a nějaké %{informal_translations_link}'
readable_summary: lidsky čitelné shrnutí
e-mailových adresách
html: Vaše adresa se nezobrazuje veřejně, více informací získáte na stránce
s našimi %{privacy_policy_link}.
- consider_pd_html: Své příspěvky považuji za %{consider_pd_link}.
- consider_pd: volné dílo
or: nebo
use external auth: nebo se přihlaste prostřednictvím třetí strany
no_such_user:
my notes: Moje poznámky k mapě
my messages: Moje zprávy
my profile: Můj profil
- my settings: Moje nastavení
my comments: Moje komentáře
my_preferences: Moje preference
my_dashboard: Moje nástěnka
show:
title: Uživatelé
heading: Uživatelé
- empty: Nebyli nalezeni žádní uživatelé vyhovující podmínkám
page:
found_users:
one: Nalezen %{count} uživatel
other: Nalezeno %{count} uživatelů
confirm: Potvrdit vybrané uživatele
hide: Skrýt vybrané uživatele
+ empty: Nebyli nalezeni žádní uživatelé vyhovující podmínkám
user:
summary_html: '%{name} vytvořeno %{date} z %{ip_address}'
summary_no_ip_html: '%{name} vytvořen %{date}'
comment: Sylw
full: Nodyn llawn
accounts:
- edit:
+ show:
title: Golygu cyfrif
- my settings: Fy Ngosodiadau
current email address: Cyfeiriad E-bost Cyfredol
external auth: Dilysu Allanol
openid:
heading_ct: Telerau Cyfranwyr
read_ct: Rwyf wedi darllen ac yn cytuno â'r telerau cyfranwyr uchod
read_tou: Rwyf wedi darllen ac yn cytuno â'r Telerau Defnyddio
- consider_pd: Yn ogystal â'r uchod, ystyriaf fod fy nghyfraniadau yn y Parth
- Cyhoeddus
- consider_pd_why: beth yw hwn?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Gwybodaeth i helpu i ddeall y termau hyn: %{readable_summary_link}
a rhai %{informal_translations_link}'
readable_summary: crynodeb darllenadwy
terms_declined_flash:
terms_declined_link: y dudalen wici hon
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
browse:
deleted_ago_by_html: Dilëwyd %{time_ago} gan %{user}
edited_ago_by_html: Golygwyd %{time_ago} gan %{user}
privacy_policy: polisi preifatrwydd
html: Ni chaiff eich cyfeiriad e-bost ei arddangos yn gyhoeddus, gweler ein
%{privacy_policy_link} am ragor o wybodaeth.
- consider_pd_html: Rwy'n ystyried fy nghyfraniadau i fod yn y %{consider_pd_link}.
- consider_pd: parth cyhoeddus
or: neu
use external auth: neu gofrestru gyda thrydydd parti
no_such_user:
my notes: Nodiadau
my messages: Negeseuon
my profile: Proffil
- my settings: Gosodiadau
my comments: Sylwadau
my_preferences: Dewisiadau
my_dashboard: Dangosfwrdd
show:
title: Defnyddwyr
heading: Defnyddwyr
- empty: Heb ganfod unrhyw defnyddwyr sy'n cyfateb
page:
found_users:
zero: Canfuwyd %{count} defnyddiwr
other: Canfuwyd %{count} defnyddiwr
confirm: Cadarnhau Defnyddwyr Dewisiedig
hide: Cuddio Defnyddwyr Dewisiedig
+ empty: Heb ganfod unrhyw defnyddwyr sy'n cyfateb
user:
summary_html: Crëwyd %{name} o %{ip_address} ar %{date}
summary_no_ip_html: '%{name} wedi''i greu ar %{date}'
anonymous_warning_sign_up: gofrestrwch
counter_warning_guide_link:
url: https://wiki.openstreetmap.org/wiki/Beginners%27_guide
- counter_warning_forum_link:
- url: https://community.openstreetmap.org/
advice: Mae eich nodyn yn gyhoeddus a gellid ei ddefnyddio i ddiweddaru'r map,
felly peidiwch ag ysgrifennu gwybodaeth bersonol, na gwybodaeth o fapiau hawlfreintiedig
neu gyfeiriaduron.
allow_write_prefs: ændre deres brugeralternativer
allow_write_diary: oprette blogindlæg og kommentarer
allow_write_api: ændre kortet
+ allow_write_changeset_comments: kommenter på ændringssæt
allow_read_gpx: læse deres private GPS-spor
allow_write_gpx: overføre GPS-spor
allow_write_notes: ændre bemærkninger
comment: Kommentar
full: Fuld bemærkning
accounts:
- edit:
+ show:
title: Rediger konto
- my settings: Mine indstillinger
+ my_account: Min konto
current email address: Nuværende e-mailadresse
external auth: Ekstern godkendelse
openid:
agreed_with_pd: Du har også erklæret at du anser dine ændringer for at være
fælleseje/uden ophavsret.
link text: hvad er dette?
+ not_agreed_with_pd: Du har ikke erklæret, at du anser dine ændringer for at
+ være i det offentlige domæne, dvs. fælleseje/uden ophavsret.
+ pd_link_text: erklær
save changes button: Gem ændringer
delete_account: Slet konto
go_public:
hjemmeside og anden infrastruktur stillet til rådighed af OSMF. Klik venligst
på linket, læs og samtyk med vilkårene.
read_tou: Jeg har læst og samtykker med brugsvilkårene
- consider_pd: I tillæg til ovennævnte anser jeg mit bidrag for at være fælleseje/frit
- for ophavsret (public domain)
- consider_pd_why: hvad er dette?
guidance_info_html: 'Oplysninger til at hjælpe med at forstå disse udtryk:
et %{readable_summary_link} og nogle %{informal_translations_link}'
readable_summary: menneskeligt læsbart sammendrag
%{terms_declined_link}.
terms_declined_link: denne wiki-side
terms_declined_url: https://wiki.openstreetmap.org/wiki/Da:Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ title: Betragt mine bidrag for at være i det offentlige domæne
+ consider_pd: Jeg anser mine bidrag for at være i det offentlige domæne
+ consider_pd_why: Hvorfor skulle jeg gerne have, at mine bidrag er i det offentlige
+ domæne?
+ confirm: Bekræft
+ create:
+ successfully_declared: Du har erklæret, at du anser dine redigeringer for
+ at være i det offentlige domæne.
+ already_declared: Du har allerede erklæret, at du anser dine redigeringer
+ for at være i det offentlige domæne.
+ did_not_confirm: Du har ikke bekræftet, at du anser dine redigeringer for
+ at være i det offentlige domæne.
browse:
deleted_ago_by_html: Slettet %{time_ago} af %{user}
edited_ago_by_html: Redigeret %{time_ago} af %{user}
write_prefs: Ændre brugerpræferencer
write_diary: Udgiv blogindlæg og kommentarer
write_api: Ændre kortet
+ write_changeset_comments: Kommenter på ændringssæt
read_gpx: Læse private GPS-spor
write_gpx: Overføre GPS-spor
write_notes: Ændre bemærkninger
write_redactions: Rediger kortdata
+ write_blocks: Opret og ophæv brugerblokeringer
read_email: Læse brugerens e-mailadresse
consume_messages: Læs, opdater status og slet brugerbeskeder
send_messages: Send private beskeder til andre brugere
users:
new:
title: Opret konto
- tab_title: Opret en konto
+ tab_title: Opret konto
signup_to_authorize_html: Tilmeld dig OpenStreetMap for at få adgang til %{client_app_name}.
no_auto_account_create: Vi kan desværre ikke oprette en konto automatisk for
dig pt.
privacy_policy_title: OSMF privatlivspolitik inklusiv afsnit om e-mailadresser
html: Din adresse vises ikke offentligt. Se vores %{privacy_policy_link} for
flere oplysninger.
- consider_pd_html: Jeg anser mine bidrag for at være i %{consider_pd_link}.
- consider_pd: offentligt domæne
or: eller
use external auth: eller tilmeld dig med en tredjepart
no_such_user:
my notes: Mine bemærkninger
my messages: Mine meddelelser
my profile: Min profil
- my settings: Mine indstillinger
+ my_account: Min konto
my comments: Mine kommentarer
my_preferences: Mine præferencer
my_dashboard: Mit kontrolpanel
show:
title: Brugere
heading: Brugere
- empty: Ingen brugere fundet
+ select_status: Vælg status
+ states:
+ pending: Afventer
+ active: Aktiv
+ confirmed: Bekræftet
+ suspended: Suspenderet
+ deleted: Slettet
+ ip_address: IP-adresse
+ search: Søg
page:
found_users:
one: '%{count} bruger fundet'
other: '%{count} brugere fundet'
confirm: Bekræft valgte brugere
hide: Skjul valgte brugere
+ empty: Ingen brugere fundet
user:
summary_html: '%{name} oprettet fra %{ip_address} på %{date}'
summary_no_ip_html: '%{name} oprettet på %{date}'
show_address: Vis adresse
query_features: Find kortobjekter
centre_map: Centrer kort her
+ home:
+ marker_title: Mit hjemsted
+ not_set: Hjemsted er ikke angivet for din konto
redactions:
edit:
heading: Rediger omarbejdelse
# Author: Alefar
# Author: Als-Holder
# Author: Amilopowers
+# Author: AnnaTheProgrammer777
# Author: AnupamM
# Author: Apmon
# Author: Atomkraftzwerg
allow_write_prefs: Ihre Benutzereinstellungen verändern
allow_write_diary: Blogeinträge und Kommentare erstellen
allow_write_api: Karte bearbeiten
+ allow_write_changeset_comments: Kommentieren von Änderungssätzen
allow_read_gpx: Zugriff auf ihre privaten GPS-Tracks
allow_write_gpx: GPS-Track hochladen
allow_write_notes: Notizen bearbeiten
comment: Kommentar
full: Vollständiger Hinweis
accounts:
- edit:
+ show:
title: Benutzerkonto bearbeiten
- my settings: Einstellungen
+ my_account: Mein Benutzerkonto
current email address: Aktuelle E-Mail-Adresse
external auth: Externe Authentifikation
openid:
(unter Public Domain stellst).
link: https://wiki.osmfoundation.org/w/index.php?title=Licence/Contributor_Terms&uselang=de
link text: Was bedeutet dies?
+ not_agreed_with_pd: Du hast nicht erklärt, dass du deine Bearbeitungen als
+ gemeinfrei betrachtest.
+ pd_link_text: erklären
save changes button: Änderungen speichern
delete_account: Konto löschen …
go_public:
Infrastruktur, die von der OSMF zur Verfügung gestellt wird. Klicke bitte
auf den Link, lies den Text und stimme dann zu.
read_tou: Ich habe die Nutzungsbedingungen gelesen und stimme ihnen zu
- consider_pd: Zusätzlich zu den oben genannten Bedingungen betrachte ich meine
- Beiträge als gemeinfrei (Public Domain)
- consider_pd_why: Was bedeutet dies?
- consider_pd_why_url: https://wiki.openstreetmap.org/wiki/DE:Editing_Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Informationen zum Verständnis dieser Begriffe: ein %{readable_summary_link}
und einige %{informal_translations_link}'
readable_summary: menschenlesbare Zusammenfassung
findest du auf %{terms_declined_link}.
terms_declined_link: diese Wiki-Seite
terms_declined_url: https://wiki.openstreetmap.org/wiki/DE:Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ title: Betrachte meine Beiträge als gemeinfrei
+ consider_pd: Ich betrachte meine Beiträge als gemeinfrei
+ consider_pd_why: Warum sollte ich wollen, dass meine Beiträge gemeinfrei sind?
+ consider_pd_why_url: https://wiki.openstreetmap.org/wiki/DE:Editing_Why_would_I_want_my_contributions_to_be_public_domain
+ confirm: Bestätigen
+ create:
+ successfully_declared: Du hast zudem erklärt, dass du deine Beiträge gemeinfrei
+ veröffentlichst (unter Public Domain stellst).
+ already_declared: Du hast zudem erklärt, dass du deine Beiträge gemeinfrei
+ veröffentlichst (unter Public Domain stellst).
+ did_not_confirm: Du hast nicht bestätigt, dass du deine Bearbeitungen als
+ gemeinfrei betrachtest.
browse:
deleted_ago_by_html: Gelöscht %{time_ago} von %{user}
edited_ago_by_html: Bearbeitet %{time_ago} von %{user}
write_prefs: Benutzereinstellungen verändern
write_diary: Benutzereinträge und Kommentare erstellen
write_api: Karte bearbeiten
+ write_changeset_comments: Kommentar zu Änderungen
read_gpx: Private GPS-Tracks lesen
write_gpx: GPS-Tracks hochladen
write_notes: Notizen bearbeiten
write_redactions: Kartendaten redigieren
+ write_blocks: Benutzersperren erstellen und aufheben
read_email: Lesen der Benutzer-E-Mail-Adresse
consume_messages: Lesen, Aktualisieren des Status und Löschen von Benutzernachrichten
send_messages: Private Nachrichten an andere Benutzer senden
privacy_policy_title: OSMF-Datenschutzrichtlinie mit Abschnitt über E-Mail-Adressen
html: Deine Adresse wird nicht öffentlich angezeigt. Weitere Informationen
findest du in unserer %{privacy_policy_link}.
- consider_pd_html: Ich betrachte meine Beiträge als %{consider_pd_link}.
- consider_pd: gemeinfrei
or: oder
use external auth: oder melde dich über einen Drittanbieter an
no_such_user:
my notes: Meine Hinweise
my messages: Nachrichten
my profile: Profil
- my settings: Einstellungen
+ my_account: Mein Benutzerkonto
my comments: Meine Kommentare
my_preferences: Benutzereinstellungen
my_dashboard: Meine Übersichtsseite
show:
title: Benutzer
heading: Benutzer
- empty: Keine übereinstimmenden Benutzer gefunden
+ select_status: Status auswählen
+ states:
+ pending: Ausstehend
+ active: Aktiv
+ confirmed: Bestätigt
+ suspended: Ausgesetzt
+ deleted: Gelöscht
+ ip_address: IP-Adresse
+ search: Suchen
page:
found_users:
one: '%{count} Benutzer gefunden'
other: '%{count} Benutzer gefunden'
confirm: Bestätige ausgewählte Benutzer
hide: Ausgewählte Benutzer ausblenden
+ empty: Keine übereinstimmenden Benutzer gefunden
user:
summary_html: '%{name} erstellt von %{ip_address} am %{date}'
summary_no_ip_html: '%{name} erstellt am %{date}'
url: https://wiki.openstreetmap.org/wiki/DE:Beginners%27_guide
counter_warning_forum_link:
text: die Gemeinschaft kann dir helfen
- url: https://community.openstreetmap.org/
advice: Deine Meldung ist öffentlich und kann zur Aktualisierung der Karte verwendet
werden. Gib deshalb keine persönlichen oder urheberrechtlich geschützten Informationen
von anderen Karten oder Verzeichnislisten an.
show_address: Adresse anzeigen
query_features: Objektabfrage
centre_map: Karte hier zentrieren
+ home:
+ marker_title: Mein Heimatort
+ not_set: Der Heimatort ist für dein Konto nicht festgelegt
redactions:
edit:
heading: Redaction bearbeiten
comment: Mışewre
full: Note pêro
accounts:
- edit:
+ show:
title: Hesabi bıvurne
- my settings: Eyarê mı
current email address: 'E-postay şımaya newki:'
openid:
link text: no çıko?
show:
title: Terimi
heading: Terimi
- consider_pd_why: no çıko?
continue: Dewam ke
legale_names:
france: Fransa
my diary: Rocekê mı
my edits: İştırakê mı
my traces: GPS rêçê mı
- my settings: Eyarê Mı
my comments: Mışewrey mı
blocks on me: Bloqeyê mı
blocks by me: Bloqe kerdışê mı
comment: Komentar
full: Dopołna pokazka
accounts:
- edit:
+ show:
title: Konto wobźěłaś
- my settings: Móje nastajenja
current email address: 'Aktualna e-mailowa adresa:'
openid:
link text: Co to jo?
show:
title: Wuměnjenja za sobustatkujucych
heading: Wuměnjenja za pśinosowarjow
- consider_pd: Pśidatnje ku górjejce dojadnanjeju, mam swóje pśinoski za zjawnosć
- pśistupne.
- consider_pd_why: Co to jo?
you need to accept or decline: Pšosym pśecytaj nowe wužywarske wuměnjenja
a akceptěruj abo wótpokaž je, nježli až dalej cyniš.
legale_select: 'Pšosym wubjeŕ kraj swójogo bydleńskego sedla:'
my notes: Móje pokazki
my messages: Móje powěsći
my profile: Mój profil
- my settings: Móje nastajenja
my comments: Móje komentary
my_preferences: Móje preference
my_dashboard: Mój pśeglědowy bok
show:
title: Wužywarje
heading: Wužywarje
- empty: Žedne wótpowědujuce wužywarje namakane
page:
confirm: Wubranych wužywarjow wobkšuśiś
hide: Wubranych wužywarjow schowaś
+ empty: Žedne wótpowědujuce wužywarje namakane
user:
summary_html: '%{name} wót %{ip_address} dnja %{date} napórany'
summary_no_ip_html: '%{name} dnja %{date} napórany'
allow_write_prefs: τροποποίηση των προτιμήσεων χρήστη
allow_write_diary: δημιουργία καταχωρήσεων ημερολογίου και σχολίων
allow_write_api: τροποποίηση του χάρτη
+ allow_write_changeset_comments: σχολιάζει στα σύνολα αλλαγών
allow_read_gpx: ανάγνωση των προσωπικών ιχνών GPS
allow_write_gpx: μεταφόρτωση ιχνών GPS
allow_write_notes: τροποποίηση σημειώσεων
comment: Σχόλιο
full: Πλήρης σημείωση
accounts:
- edit:
+ show:
title: Επεξεργασία λογαριασμού
- my settings: Οι ρυθμίσεις μου
+ my_account: Ο λογαριασμός μου
current email address: Τρέχουσα διεύθυνση ηλεκτρονικού ταχυδρομείου
external auth: Εξωτερική επαλήθευση ταυτότητας
openid:
+ link: https://wiki.openstreetmap.org/wiki/OpenID
link text: τι είναι αυτό;
contributor terms:
heading: Όροι Συνεισφοράς
σας και την αποδοχή των νέων Όρων Συνεισφοράς.
agreed_with_pd: Δηλώσατε επίσης ότι αποδέχεστε ότι οι τροποποιήσεις σας αποτελούν
κοινό κτήμα.
+ link: https://osmfoundation.org/wiki/Licence/Contributor_Terms
link text: τι είναι αυτό;
+ not_agreed_with_pd: Δεν έχετε δηλώσει ότι θεωρείτε ότι οι τροποποιήσεις σας
+ ανήκουν στον Δημόσιο Τομέα.
+ pd_link_text: δηλώστε
save changes button: Αποθήκευση αλλαγών
delete_account: Διαγραφή λογαριασμού...
go_public:
άλλης υποδομής που προσφέρει η OSMF. Παρακαλούμε ακολουθήστε τον σύνδεσμο,
διαβάστε και αποδεχτείτε το κείμενο.
read_tou: Έχω διαβάσει και αποδέχομαι τους όρους χρήσης
- consider_pd: Και επιπρόσθετα στην παραπάνω συμφωνία, καταστώ τις συνεισφορές
- μου στο κοινό κτήμα (για ελεύθερη χρήση)
- consider_pd_why: τι είναι αυτό;
guidance_info_html: 'Πληροφορίες για να βοηθήσουν να κατανοήσετε αυτούς τους
όρους: μια %{readable_summary_link} και μερικές %{informal_translations_link}'
readable_summary: περίληψη αναγνώσιμη από τον άνθρωπο
terms_declined_html: Λυπούμαστε που αποφασίσατε να μην αποδεχτείτε τους νέους
Όρους Συνεισφοράς. Για περισσότερες πληροφορίες, ανατρέξτε στο %{terms_declined_link}.
terms_declined_link: αυτή η σελίδα wiki
+ terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ title: Θεωρήστε τις συνεισφορές μου να είναι στον Δημόσιο Τομέα
+ consider_pd: Θεωρώ ότι οι συνεισφορές μου είναι στον Δημόσιο Τομέα
+ consider_pd_why: Γιατί θα ήθελα οι συνεισφορές μου να είναι στον Δημόσιο Τομέα;
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
+ confirm: Επιβεβαίωση
+ create:
+ successfully_declared: Δηλώσατε επιτυχώς ότι θεωρείτε ότι οι τροποποιήσεις
+ σας ανήκουν στον Δημόσιο Τομέα.
+ already_declared: Έχετε ήδη δηλώσει ότι θεωρείτε ότι οι τροποποιήσεις σας
+ ανήκουν στον Δημόσιο Τομέα.
+ did_not_confirm: Δεν έχετε επιβεβαιώσει ότι θεωρείτε ότι οι τροποποιήσεις
+ σας ανήκουν στον Δημόσιο Τομέα.
browse:
deleted_ago_by_html: Διαγράφηκε %{time_ago} από %{user}
edited_ago_by_html: Επεξεργάστηκε %{time_ago} από %{user}
bridleway: Μονοπάτι για άλογα
bus_guideway: Λωρίδα καθοδηγούμενου λεωφορείου
bus_stop: Στάση λεωφορείου
+ busway: Λεωφορειόδρομος
construction: Δρόμος υπό κατασκευή
corridor: Διάδρομος
crossing: Διάβαση
communities: Κοινότητες
learn_more: Μάθετε περισσότερα
more: Περισσότερα
+ offline_flash:
+ osm_offline: Η βάση δεδομένων του OpenStreetMap είναι προσωρινά εκτός λειτουργίας
+ λόγω απαραίτητων εργασιών συντήρησης.
+ osm_read_only: Η βάση δεδομένων του OpenStreetMap έχει τεθεί προσωρινά σε λειτουργία
+ «μόνο για ανάγνωση» λόγω απαραίτητων εργασιών συντήρησης.
+ expected_restore_html: Οι υπηρεσίες αναμένεται να αποκατασταθούν σε %{time}.
+ announcement: Μπορείτε να διαβάσετε την ανακοίνωση εδώ.
user_mailer:
diary_comment_notification:
description: 'OpenStreetMap Καταχώριση Ημερολογίου #%{id}'
not_public_description_html: Δεν μπορείτε πλέον να επεξεργαστείτε το χάρτη αν
δεν το κάνετε. Μπορείτε να κάνετε τις επεξεργασίες σας δημόσιες από την %{user_page}.
user_page_link: σελίδα χρήστη
+ anon_edits_html: (%{link})
+ anon_edits_link: https://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits
anon_edits_link_text: Μάθετε γιατί συμβαίνει αυτό.
edit:
id_not_configured: Ο iD δεν έχει ρυθμιστεί
write_prefs: Τροποποιεί τις προτιμήσεις χρήστη
write_diary: Δημιουργεί καταχωρήσεις ημερολογίου και σχόλια
write_api: Τροποποίηση του χάρτη
+ write_changeset_comments: Σχολιάζει στα σύνολα αλλαγών
read_gpx: Ανάγνωση προσωπικών ιχνών GPS
write_gpx: Μεταφόρτωση ιχνών GPS
write_notes: Τροποποίηση σημειώσεων
write_redactions: Αφαίρεση και απόκρυψη δεδομένων χάρτη
+ write_blocks: Δημιουργία και ανάκληση φραγών χρηστών
read_email: Διαβάζει τη διεύθυνση email χρήστη
consume_messages: Ανάγνωση, ενημέρωση της κατάστασης και διαγραφή των μηνυμάτων
χρήστη
για τις διευθύνσεις ηλεκτρονικού ταχυδρομείου
html: Η διεύθυνσή σας δεν εμφανίζεται δημόσια, ανατρέξτε στην %{privacy_policy_link}
για περισσότερες πληροφορίες.
- consider_pd_html: Θεωρώ τις συνεισφορές μου να είναι στο %{consider_pd_link}.
- consider_pd: κοινό κτήμα
or: ή
use external auth: ή συνδεθείτε μέσω τρίτης υπηρεσίας
no_such_user:
my notes: Οι σημειώσεις μου
my messages: Τα μηνύματά μου
my profile: Το προφίλ μου
- my settings: Οι ρυθμίσεις μου
+ my_account: Ο λογαριασμός μου
my comments: Τα σχόλιά μου
my_preferences: Οι προτιμήσεις μου
my_dashboard: Το ταμπλό μου
show:
title: Χρήστες
heading: Χρήστες
- empty: Δεν βρέθηκαν χρήστες που να ταιριάζουν
+ select_status: Επιλογή κατάστασης
+ states:
+ pending: Σε εκκρεμότητα
+ active: Ενεργός
+ confirmed: Επιβεβαιωμένος
+ suspended: Σε αναστολή
+ deleted: Διαγραμμένος
+ ip_address: Διεύθυνση IP
+ search: Αναζήτηση
page:
found_users:
one: '%{count} χρήστης βρέθηκε'
other: '%{count} χρήστες βρέθηκαν'
confirm: Επιβεβαίωση επιλεγμένων χρηστών
hide: Απόκρυψη επιλεγμένων χρηστών
+ empty: Δεν βρέθηκαν χρήστες που να ταιριάζουν
user:
summary_html: '%{name} δημιουργήθηκε από την διεύθυνση IP %{ip_address} στις
%{date}'
show_address: Εμφάνιση διεύθυνσης
query_features: Πληροφορίες χαρακτηριστικών
centre_map: Κεντράρισμα χάρτη εδώ
+ home:
+ marker_title: Τοποθεσία του σπιτιού μου
+ not_set: Η τοποθεσία του σπιτιού δεν έχει οριστεί για τον λογαριασμό σας
redactions:
edit:
heading: Επεξεργασία παράληψης
comment: Comment
full: Full note
accounts:
- edit:
+ show:
title: Edit account
- my settings: My settings
external auth: External Authentication
openid:
link text: what is this?
show:
title: Terms
heading: Terms
- consider_pd: In addition to the above, I consider my contributions to be in
- the Public Domain
- consider_pd_why: what's this?
you need to accept or decline: Please read and then either accept or decline
the new Contributor Terms to continue.
legale_select: 'Country of residence:'
my notes: My Notes
my messages: My Messages
my profile: My Profile
- my settings: My Settings
my comments: My Comments
blocks on me: Blocks on Me
blocks by me: Blocks by Me
show:
title: Users
heading: Users
- empty: No matching users found
page:
confirm: Confirm Selected Users
hide: Hide Selected Users
+ empty: No matching users found
user:
summary_html: '%{name} created from %{ip_address} on %{date}'
summary_no_ip_html: '%{name} created on %{date}'
comment: Comment
full: Full note
accounts:
- edit:
+ show:
title: "Edit account"
my_account: My Account
current email address: "Current Email Address"
allow_write_prefs: modifi preferojn de uzantoj
allow_write_diary: afiŝi en taglibro kaj komenti
allow_write_api: redakti la mapon
+ allow_write_changeset_comments: komenti ŝanĝarojn
allow_read_gpx: legi privatajn GPS-spurojn
allow_write_gpx: alŝuti GPS-spurojn
allow_write_notes: modifi rimarkojn
comment: Komento
full: Tuta rimarko
accounts:
- edit:
+ show:
title: Redakti konton
- my settings: Miaj agordoj
+ my_account: Mia konto
current email address: Aktuala retpoŝta adreso
external auth: Ekstera aŭtentigo
openid:
interkonsenton pri uzado.
agreed_with_pd: Vi ankaŭ deklaris, ke viaj kontribuaĵoj estas en la publika
havaĵo.
- link text: Pliaj informoj
+ link text: pliaj informoj
+ not_agreed_with_pd: Vi ne deklaris, por ke viaj kontribuaĵoj estu en la publika
+ havaĵo.
+ pd_link_text: deklari
save changes button: Konservi ŝanĝojn
delete_account: Forigi konton…
go_public:
infrastrukturo provizata de la Fondaĵo OSM. Bonvolu alklaki la ligilon,
legi, kaj konsenti la tekston.
read_tou: Mi legis kaj konsentas la Uzkondiĉojn
- consider_pd: Krom la ĉi-supro, mi konfirmas, ke miaj kontribuaĵoj apartenas
- al la publika havaĵo
- consider_pd_why: Pliaj informoj
guidance_info_html: 'Pliaj informoj helpantaj kompreni ilin: %{readable_summary_link}
kaj kelkaj %{informal_translations_link}'
readable_summary: konciza sumiĝo
terms_declined_html: Bedaŭrinde vi ne akceptis la novan interkonsenton pri
kontribuado. Por pli da informoj, ekkonu kun %{terms_declined_link}.
terms_declined_link: tiu ĉi viki‑paĝo
+ pd_declarations:
+ show:
+ title: Deklari miajn kontribuaĵojn kiel la publikan havaĵon
+ consider_pd: Mi deklaras, por ke miaj kontribuaĵoj (redaktoj) estu en la publika
+ havaĵo.
+ consider_pd_why: Kiel vi volus, ke miaj kontribuaĵoj estu publikaj?
+ confirm: Konfirmi
browse:
deleted_ago_by_html: Forigita %{time_ago} de %{user}
edited_ago_by_html: Redaktita %{time_ago} de %{user}
de retpoŝta adreso
html: Via retpoŝta adreso ne estas publike montrata, legu nian %{privacy_policy_link}
por pli da informoj.
- consider_pd_html: Mi konsideras ke miaj kontribuoj estu eldonitaj en la %{consider_pd_link}.
- consider_pd: publika havaĵo
or: aŭ
use external auth: 'registriĝi per ekstera liveranto:'
no_such_user:
my notes: Miaj rimarkoj
my messages: Mesaĝoj
my profile: Profilo
- my settings: Agordoj
my comments: Miaj komentoj
my_preferences: Preferoj
my_dashboard: Panelo
show:
title: Uzantoj
heading: Uzantoj
- empty: Kongruaj uzantoj ne trovitaj
page:
found_users:
one: '%{count} trovita uzanto'
other: '%{count} trovitaj uzantoj'
confirm: Konfirmi elektitajn uzantojn
hide: Kaŝi elektitajn uzantojn
+ empty: Kongruaj uzantoj ne trovitaj
user:
summary_html: '%{name} kreita de %{ip_address} je %{date}'
summary_no_ip_html: '%{name} kreita je %{date}'
comment: Comentario
full: Nota completa
accounts:
- edit:
+ show:
title: Editar Cuenta
- my settings: Mis configuraciones
current email address: Dirección de correo electrónico actual
external auth: Autentificación externa
openid:
tou_explain_html: Estos %{tou_link} rigen el uso del sitio web y de la infraestructura
provista por OSMF. Haz clic en el enlace, lee y acepta el texto.
read_tou: He leído y estoy de acuerdo con los Términos de Uso
- consider_pd: Además del acuerdo anterior, considero que mis contribuciones
- se encuentran en Dominio Público.
- consider_pd_why: ¿Qué es esto?
guidance_info_html: 'Información para ayudar a comprender estos términos:
un %{readable_summary_link} y algunas %{informal_translations_link}'
readable_summary: resumen legible por humanos
sobre direcciones de correo electrónico
html: Tu dirección no se mostrará públicamente, consulta nuestra %{privacy_policy_link}
para obtener más información.
- consider_pd_html: Considero que mis contribuciones estén en el %{consider_pd_link}.
- consider_pd: dominio público
- consider_pd_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain
or: o
use external auth: o registrarse con un tercero
no_such_user:
my notes: Mis notas
my messages: Mis mensajes
my profile: Mi perfil
- my settings: Mis configuraciones
my comments: Mis comentarios
my_preferences: Mis preferencias
my_dashboard: Mi tablero
show:
title: Usuarios
heading: Usuarios
- empty: No hay usuarios coincidentes
page:
found_users:
one: '%{count} usuario encontrado'
other: '%{count} usuarios encontrados'
confirm: Confirmar usuarios seleccionados
hide: Ocultar usuarios seleccionados
+ empty: No hay usuarios coincidentes
user:
summary_html: '%{name} creado desde %{ip_address} el %{date}'
summary_no_ip_html: '%{name} creado el %{date}'
comment: Kommentaar
full: Täielik tekst
accounts:
- edit:
+ show:
title: Konto muutmine
- my settings: Minu sätted
current email address: Praegune e-posti aadress
external auth: Väline autentimine
openid:
pakutava infrastruktuuri kasutamist. Palun klõpsa lingil, loe tekst läbi
ja nõustu sellega.
read_tou: Ma olen lugenud kasutustingimusi ja nõustun nendega
- consider_pd: Eelnevale lisaks leian, et minu kaastöö kuulub avalikku omandisse
- (Public Domain)
- consider_pd_why: mis see on?
guidance_info_html: 'Teave, mis aitab mõista neid tingimusi: %{readable_summary_link}
ja mõned %{informal_translations_link}'
readable_summary: inimloetav kokkuvõte
privacy_policy_title: OSMF-i andmekaitsereeglid, sealhulgas peatükk e-posti
aadresside kohta
html: Sinu aadressi ei kuvata avalikult, tutvu meie %{privacy_policy_link}.
- consider_pd_html: Pean enda kaastööd %{consider_pd_link} kuuluvaks.
- consider_pd: avalikku omandisse
use external auth: või registreeru kolmanda osapoole kaudu
no_such_user:
title: Sellist kasutajat ei ole
my notes: Minu märkused
my messages: Minu sõnumid
my profile: Minu profiil
- my settings: Minu sätted
my comments: Minu kommentaarid
my_preferences: Minu eelistused
my_dashboard: Minu andmelaud
show:
title: Kasutajad
heading: Kasutajad
- empty: Sobivaid kasutajaid ei leitud!
page:
found_users:
one: '%{count} kasutaja leitud'
other: '%{count} kasutajat leitud'
confirm: Kinnita valitud kasutajad
hide: Peida valitud Kasutajad
+ empty: Sobivaid kasutajaid ei leitud!
user:
summary_html: '%{name} loodud IP-aadressilt %{ip_address} (%{date})'
summary_no_ip_html: '%{name} loodud (%{date})'
comment: Iruzkina
full: Ohar osoa
accounts:
- edit:
+ show:
title: Kontua aldatu
- my settings: Nire aukerak
current email address: Egungo posta helbidea
external auth: Kanpoko Autentifikazioa
openid:
beste azpiegituren erabilera arautzen du. Mesedez, egin klik estekan, irakurri
eta onartu testua.'
read_tou: Irakurri ditut eta onartzen ditut Erabilera Baldintzak
- consider_pd: Goikoaz gain, nire ekarpenak Domeinu Publikoan egon behar direla
- uste dut
- consider_pd_why: zer da hau?
guidance_info_html: 'Termino hauek ulertzen laguntzeko informazioa: %{readable_summary_link}
eta %{informal_translations_link}'
informal_translations: itzulpen informalak
my notes: Nire oharrak
my messages: Nire mezuak
my profile: Nire profila
- my settings: Nire Hobespenak
my comments: Nire Iruzkinak
my_preferences: Nire hobespenak
my_dashboard: Nire Arbela
show:
title: Erabiltzaileak
heading: Erabiltzaileak
- empty: No matching users found
page:
confirm: Berretsi Hautatutako Erabiltzaileak
hide: Ezkutatu Hautatutako Erabiltzaileak
+ empty: No matching users found
user:
summary_html: '%{date}n %{ip_address}tik %{name} sortu da'
summary_no_ip_html: '%{name} %{date} datan sortua'
comment: نظر
full: یادداشت کامل
accounts:
- edit:
+ show:
title: ویرایش حساب
- my settings: تنظیمات من
current email address: رایانامهٔ کنونی
external auth: احراز هویت خارجی
openid:
ارائهشده از سوی OSMF نافذ است. لطفاً روی پیوند کلیک کنید، متن را بخوانید
و آن را بپذیرید.
read_tou: شرایط استفاده را خواندهام و آن را میپذیرم
- consider_pd: علاوه بر موارد بالا، میپذیرم که مشارکتهایم در مالکیت عمومی
- باشد.
- consider_pd_why: این چیست؟
continue: ادامه
you need to accept or decline: برای ادامه لطفاً بخوانید و سپس شرایط جدید مشارکتکننده
را بپذیرید یا رد کنید.
terms_declined_html: از اینکه تصمیم گرفتهاید شرایط جدید مشارکتکننده را نپذیرید،
متأسف هستیم. برای اطلاعات بیشتر، لطفاً %{terms_declined_link} را ببینید.
terms_declined_link: این صفحهٔ ویکی
+ pd_declarations:
+ show:
+ title: مشارکتهای من را در مالکیت عمومی در نظر بگیر
+ consider_pd: من مشارکتهای خود را در مالکیت عمومی در نظر میگیرم
+ consider_pd_why: چرا باید بخواهم که مشارکتهایم در مالکیت عمومی قرار گیرد؟
+ confirm: تأیید
+ create:
+ successfully_declared: شما با موفقیت اعلام کردید که ویرایشهای خود را در مالکیت
+ عمومی در نظر میگیرید.
+ already_declared: شما هماکنون اعلام کردهاید که ویرایشهای خود را در مالکیت
+ عمومی در نظر میگیرید.
+ did_not_confirm: شما این که مشارکتهایتان در مالکیت عمومی قرار گیرد را تأیید
+ نکردهاید.
browse:
deleted_ago_by_html: '%{time_ago} %{user} حذفش کرد'
edited_ago_by_html: '%{time_ago} %{user} ویرایشش کرد'
bridleway: راه حیوان رو
bus_guideway: خط هدایت کننده اتوبوس
bus_stop: ایستگاه اتوبوس
+ busway: مسیر اتوبوس
construction: راه در دست ساخت
corridor: راهرو
cycleway: مسیر دوچرخه
failure: ذخیرهسازی نمایه انجام نشد.
sessions:
new:
- tab_title: ورود
+ tab_title: ورود به سامانه
email or username: نشانی رایانامه یا نام کاربری
password: رمز عبور
remember: مرا به خاطر بسپار
read_gpx: خواندن ردهای جیپیاس خصوصی
write_gpx: بارگذاری ردهای جیپیاس
write_notes: اصلاح یادداشتها
+ write_blocks: ایجاد و برداشتن قطع دسترسیهای کاربر
read_email: خواندن نشانی رایانامهٔ کاربر
skip_authorization: برنامه با تأیید خودکار
oauth2_applications:
users:
new:
title: ثبت نام
+ tab_title: ثبت نام
no_auto_account_create: متأسفانه در حال حاضر نمیتوانیم بهصورت خودکار برای
شما حساب کاربری بسازیم.
about:
my notes: یادداشتهای من
my messages: پیامهای من
my profile: نمایهٔ من
- my settings: تنظیمات من
+ my_account: حساب من
my comments: نظرات من
my_preferences: ترجیحات من
my_dashboard: پیشخوان من
show:
title: کاربران
heading: کاربران
- empty: هیچ کاربر منطبقی یافت نشد
+ select_status: انتخاب وضعیت
+ states:
+ pending: در انتظار
+ active: فعال
+ confirmed: تأییدشده
+ suspended: تعلیقشده
+ deleted: حذفشده
+ ip_address: نشانی آیپی
+ search: جستجو
page:
confirm: تأیید کاربران انتخابشده
hide: پنهانکردن کاربران انتخابشده
+ empty: هیچ کاربر منطبقی یافت نشد
user:
summary_html: '%{name} با آیپی %{ip_address} در %{date} ایجاد شد'
summary_no_ip_html: '%{name} در %{date} ایجاد شد'
+ comments:
+ index:
+ diary_entries: مدخلهای روزنوشت
changeset_comments:
page:
when: زمان
show_address: نمایش نشانی
query_features: پرسوجو برای عارضهها
centre_map: اینجا را مرکز نقشه کن
+ home:
+ marker_title: محل خانهٔ من
+ not_set: محل خانهٔ حساب شما تنظیم نشده است
redactions:
edit:
heading: ویرایش پاکسازی
comment: Kommentti
full: Koko karttailmoitus
accounts:
- edit:
+ show:
title: Asetusten muokkaus
- my settings: Käyttäjäasetukset
current email address: Nykyinen sähköpostiosoite
external auth: Kolmannen osapuolen tunnukset kirjautuessa
openid:
tarjoaman infrastruktuurin käyttöä. Napsauta linkkiä, lue ja suostu tekstin
sisältöön.
read_tou: Olen lukenut ja hyväksynyt käyttöehdot
- consider_pd: Edellisen lisäksi katson lisäyksieni olevan tekijänoikeudettomia
- Public Domain -lisenssillä
- consider_pd_why: Mikä tämä on?
guidance_info_html: 'Vaihtoehtoisia lukutapoja: %{readable_summary_link} ja
%{informal_translations_link}'
readable_summary: selkokielinen yhteenveto (englanniksi)
email_help:
privacy_policy: tietosuojakäytäntö
html: Osoitetta ei näytetä julkisesti, lisätietoja on sivulla %{privacy_policy_link}.
- consider_pd_html: Pidän tuotoksiani %{consider_pd_link}.
or: tai
use external auth: Kirjaudu toisen palvelun tunnuksilla
no_such_user:
my notes: Omat karttailmoitukset
my messages: Viestit
my profile: Käyttäjäsivu
- my settings: Käyttäjäasetukset
my comments: Omat kommentit
my_preferences: Asetukset
my_dashboard: Tapahtumat
show:
title: Käyttäjät
heading: Käyttäjät
- empty: Käyttäjiä ei löytynyt.
page:
confirm: Vahvista valitut käyttäjät
hide: Piilota valitut käyttäjät
+ empty: Käyttäjiä ei löytynyt.
user:
summary_html: '%{name} luotu %{date} osoitteesta %{ip_address}'
summary_no_ip_html: '%{name} luotu %{date}'
comment: Kommentti
full: Koko karttailmoitus
accounts:
- edit:
+ show:
title: Mookkaa konttua
- my settings: Minun inställninkit
current email address: 'Nykynen e-postiatressi:'
save changes button: Säästä muutokset
go_public:
my notes: Minun karttailmoitukset
my messages: Minun viestit
my profile: Minun profiili
- my settings: Minun inställninkit
my comments: Minun kommentit
send message: Lähätä viesti
edits: Mookkaukset
comment: Commentaire
full: Note complète
accounts:
- edit:
+ show:
title: Modifier le compte
- my settings: Mes paramètres
current email address: Adresse de courriel actuelle
external auth: Authentification externe
openid:
autres infrastructures fournies par OSMF. Veuillez cliquer sur le lien pour
les lire et accepter le texte.
read_tou: J’ai lu et j’accepte les Conditions d’utilisation
- consider_pd: En plus de l’accord ci-dessus, je considère mes contributions
- comme étant dans le domaine public.
- consider_pd_why: qu’est-ce que ceci ?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Informations pour aider à comprendre ces termes : un
%{readable_summary_link} et quelques %{informal_translations_link}'
readable_summary: résumé lisible par un humain
consulter %{terms_declined_link}.
terms_declined_link: cette page du wiki
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
browse:
deleted_ago_by_html: Supprimé %{time_ago} par %{user}
edited_ago_by_html: Modifié %{time_ago} par %{user}
openid: Se connecter avec OpenStreetMap
read_prefs: Lire les préférences de l’utilisateur
write_prefs: Modifier les préférences de l’utilisateur
- write_diary: créer des entrées du journal et des commentaires
+ write_diary: Écrire dans le journal et créer des commentaires
write_api: Modifier la carte
read_gpx: Lire les traces GPC privées
write_gpx: Mettre à jour les traces GPC
sur les adresses e-mail
html: Votre adresse n’est pas affichée publiquement, consultez notre %{privacy_policy_link}
pour plus d’informations.
- consider_pd_html: Je considère que mes contributions se situent dans le %{consider_pd_link}.
- consider_pd: domaine public
or: ou
use external auth: ou vous pouvez vous connecter avec un service tiers.
no_such_user:
my notes: Mes notes
my messages: Mes messages
my profile: Mon profil
- my settings: Mes options
my comments: Mes commentaires
my_preferences: Mes préférences
my_dashboard: Mon tableau de bord
show:
title: Utilisateurs
heading: Utilisateurs
- empty: Aucun utilisateur correspondant n’a été trouvé
page:
found_users:
one: '%{count} utilisateur trouvé'
other: '%{count} utilisateurs trouvés'
confirm: Confirmer les utilisateurs sélectionnés
hide: Masquer les utilisateurs sélectionnés
+ empty: Aucun utilisateur correspondant n’a été trouvé
user:
summary_html: '%{name} créé depuis %{ip_address} le %{date}'
summary_no_ip_html: '%{name} créé le %{date}'
comment: Coment
full: Note complete
accounts:
- edit:
+ show:
title: Modifiche profîl
- my settings: Mês impostazions
current email address: Direzion di pueste eletroniche atuâl
external auth: Autenticazion esterne
openid:
show:
title: Tiermins
heading: Tiermins
- consider_pd: In plui di dut ce che al è parsore, jo o consideri i miei contribûts
- come di Public Domini
- consider_pd_why: ce isal chest?
continue: Va indevant
you need to accept or decline: Par plasê lei e po acete o refude i gnûfs Tiermins
par Contribuî par lâ indevant.
my notes: Lis mês notis
my messages: I miei messaçs
my profile: Il gno profîl
- my settings: Impostazions
my comments: I mei coments
my_preferences: Preferencis
my_dashboard: La mê pagjine iniziâl
# Author: Danieldegroot2
# Author: PiefPafPier
# Author: Robin van der Vliet
+# Author: Wutsje
---
fy:
time:
comment: Reäksje
full: Folsleine notysje
accounts:
- edit:
+ show:
title: Akkount bewurkje
- my settings: Myn ynstellings
current email address: Hjoeddeisk e-mailadres
external auth: Autentifikaasje om utens
openid:
ynfrastruktuer beskikber steld troch de OSMF. Klik op 'e keppeling, lês
de tekst en gean akkoart.
read_tou: Ik haw de Gebrûksbetingsten lêzen en gean der akkoart mei
- consider_pd: Njonken it boppesteande, beskôgje ik myn bydragen as part fan
- it Publyk Domein
- consider_pd_why: wat is dat?
continue: Fierder
you need to accept or decline: Lês de nije Bydragersbetingsten; jo kinne fierder
nei it akseptearjen of ôfwizen derfan.
my notes: Myn notysjes
my messages: Myn berjochten
my profile: Myn profyl
- my settings: Myn ynstellings
my comments: Myn reäksjes
my_preferences: Myn foarkarren
my_dashboard: Myn oersjochpaniel
show:
title: Meidoggers
heading: Meidoggers
- empty: Gjin oerienkommende meidoggers fûn
page:
confirm: Selektearre meidoggers befêstigje
hide: Selektearre meidoggers ferbergje
+ empty: Gjin oerienkommende meidoggers fûn
user:
summary_html: '%{name} oanmakke fan %{ip_address} op %{date}'
summary_no_ip_html: '%{name} oanmakke op %{date}'
open_title: 'Unoploste notysje #%{note_name}'
closed_title: 'Oploste notysje #%{note_name}'
hidden_title: 'Ferburgen notysje #%{note_name}'
+ description_when_author_is_deleted: wiske
report: dizze notysje melde
anonymous_warning: Dizze notysje befettet reäksjes fan anonime meidoggers dy't
apart neigien wurde moatte.
comment: Nóta tráchta
full: An nóta iomlán
accounts:
- edit:
+ show:
title: Cuir an cuntas in eagar
- my settings: Mo chuid socruithe
current email address: An seoladh ríomhphoist reatha
external auth: Fíordheimhniú Seachtrach
openid:
show:
title: Téarmaí
heading: Téarmaí
- consider_pd_why: céard é seo?
legale_select: 'Tír chónaithe:'
legale_names:
france: An Fhrainc
my notes: Mo Nótaí
my messages: Mo Theachtaireachtaí
my profile: Mo Phróifíl
- my settings: Mo Shocruithe
my comments: Mo Nótaí Tráchta
blocks on me: Baic Orm
blocks by me: Baic a Rinne Mé
entry:
comment: Komantasyon
accounts:
- edit:
+ show:
title: Modifyé kont a-w la
- my settings: Mes options
openid:
link text: Ka sa yé?
contributor terms:
my edits: Édision an mwen
my traces: Chimen an mwen
my messages: Sé mésaj a-w la
- my settings: Opsion an mwen
my_preferences: Sa ou simyé
send message: Voyé on mésaj
diary: Jounal
comment: Beachd
full: Nòta slàn
accounts:
- edit:
+ show:
title: Deasaich an cunntas
- my settings: Na roghainnean agam
current email address: An seòladh puist-d làithreach
external auth: Dearbhadh taobh a-muigh
openid:
title: Teirmichean
heading: Teirmichean
heading_ct: Teirmichean a' chom-pàirtiche
- consider_pd: A bharrachd air an aonta gu h-àrd, aontaichidh mi gun dèid na
- bheir mi dhuibh 'nam cho-thabhartaiche a chur sa Public Domain
- consider_pd_why: Dè th`ann?
cancel: Sguir dheth
you need to accept or decline: Feuch an leugh thu teirmichean ùra a' chom-pàirtiche
agus an uairsin aontaich no nach gabh riutha mus lean thu air adhart.
my notes: Na nòtaichean agam
my messages: Na teachdaireachdan agam
my profile: A' phròifil agam
- my settings: Na roghainnean agam
my comments: Na beachdan agam
blocks on me: Bacaidhean orm
blocks by me: Bacaidhean a rinn mi
show:
title: Cleachdaichean
heading: Cleachdaichean
- empty: Cha deach cleachdaiche a fhreagras a lorg
page:
confirm: Dearbhaich na cleachdaichean a thagh thu
hide: Falaich na cleachdaichean a thagh thu
+ empty: Cha deach cleachdaiche a fhreagras a lorg
user:
summary_html: Chaidh %{name} a chruthachadh o %{ip_address} %{date}
summary_no_ip_html: Chaidh %{name} a chruthachadh %{date}
allow_write_prefs: modificar as súas preferencias de usuario
allow_write_diary: crear entradas de diario e comentarios
allow_write_api: modificar o mapa
+ allow_write_changeset_comments: comentar os conxuntos de cambios
allow_read_gpx: ler as súas pistas GPS privadas
allow_write_gpx: subir pistas GPS
allow_write_notes: modificar notas
comment: Comentario
full: Nota completa
accounts:
- edit:
+ show:
title: Editar a conta
- my settings: Os meus axustes
current email address: Enderezo de correo electrónico actual
external auth: Autenticación externa
openid:
tou_explain_html: Estes %{tou_link} rexen o uso da páxina/sitio web e outras
infraestruturas fornecidas pola OSMF. Preme na ligazón, le e acepta o texto.
read_tou: Lin e acepto os Termos de uso
- consider_pd: Ademais do anterior, coido que as miñas contribucións están baixo
- dominio público
- consider_pd_why: que é isto?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Información para axudar a comprender estes termos: un
%{readable_summary_link} e algunhas %{informal_translations_link}'
readable_summary: resumo lexible por humanos
dos colaboradores. Para obter máis información, consulta %{terms_declined_link}.
terms_declined_link: esta páxina do wiki
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
browse:
deleted_ago_by_html: Borrado %{time_ago} por %{user}
edited_ago_by_html: Editado %{time_ago} por %{user}
write_prefs: Modificar preferencias de usuario
write_diary: Crear entradas de diario e comentarios
write_api: Modificar o mapa
+ write_changeset_comments: Comentar os conxuntos de cambios
read_gpx: Ler pistas GPS privadas
write_gpx: Subir pistas GPS
write_notes: Modificar notas
unha sección sobre os enderezos de correo electrónico
html: O teu enderezo non se mostra publicamente; consulta a nosa %{privacy_policy_link}
para obter máis información.
- consider_pd_html: Acepto que as miñas contribucións estean no %{consider_pd_link}.
- consider_pd: dominio publico
or: ou
use external auth: ou rexístrate cun servizo de terceiros
no_such_user:
my notes: As miñas notas do mapa
my messages: As miñas mensaxes
my profile: O meu perfil
- my settings: Os meus axustes
my comments: Os meus comentarios
my_preferences: As miñas preferencias
my_dashboard: O meu panel de control
show:
title: Usuarios
heading: Usuarios
- empty: Non se atoparon usuarios que coincidisen
page:
found_users:
one: Atopouse %{count} usuario
other: Atopáronse %{count} usuarios
confirm: Confirmar os usuarios seleccionados
hide: Agochar os usuarios seleccionados
+ empty: Non se atoparon usuarios que coincidisen
user:
summary_html: '%{name} creado dende %{ip_address} o %{date}'
summary_no_ip_html: '%{name} creado o %{date}'
url: https://wiki.openstreetmap.org/wiki/Beginners%27_guide
counter_warning_forum_link:
text: a comunidade pode axudarche
- url: https://community.openstreetmap.org/
advice: A túa nota será pública e poderá empregarse para actualizar o mapa;
por conseguinte, non insiras información persoal, nin datos de mapas protexidos
por dereitos de autoría ou listaxes de directorios.
entry:
comment: ટિપ્પણી
accounts:
- edit:
+ show:
openid:
link text: આ શું છે?
contributor terms:
comment: תגובה
full: הערה מלאה
accounts:
- edit:
+ show:
title: עריכת חשבון
- my settings: ההגדרות שלי
current email address: כתובת דוא״ל נוכחית
external auth: אימות חיצוני
openid:
tou_explain_html: '%{tou_link} האלה מאגדים את תנאי השימוש באתר ובתשתית נוספת
שמסופקת על־ידי ה־OSMF. נא ללחוץ על הקישור, לקרוא ולהסכים לטקסט.'
read_tou: קראתי את תנאי השימוש ואני מסכימ/ה לתנאים אלו
- consider_pd: בנוסף לכתוב לעיל, מבחינתי כל עריכותיי שייכות לנחלת הכלל
- consider_pd_why: מה זה?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'מידע שיעזור להבין את המונחים האלה: %{readable_summary_link}
וכמה %{informal_translations_link}'
readable_summary: תקציר קריא לבני־אדם
נא לפנות אל %{terms_declined_link}
terms_declined_link: דף הוויקי הזה
terms_declined_url: https://wiki.openstreetmap.org/wiki/He:Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
browse:
deleted_ago_by_html: נמחקה %{time_ago} על־ידי %{user}
edited_ago_by_html: נערכה %{time_ago} על־ידי %{user}
privacy_policy_title: מדיניות הפרטיות של OSMF כוללת סעיף על כתובות דוא״ל
html: הכתובת שלך אינה מוצגת בפומבי, ר' את %{privacy_policy_link} שלנו למידע
נוסף.
- consider_pd_html: מבחינתי, התרומות שלי נמצאות ב%{consider_pd_link}.
- consider_pd: נחלת הכלל
or: או
use external auth: לחלופין, אפשר להשתמש בצד שלישי כדי להירשם
no_such_user:
my notes: הערות המפה שלי
my messages: ההודעות שלי
my profile: הפרופיל שלי
- my settings: ההגדרות שלי
my comments: ההערות שלי
my_preferences: ההעדפות שלי
my_dashboard: לוח הבקרה שלי
show:
title: משתמשים
heading: משתמשים
- empty: לא נמצאו משתמשים תואמים
page:
found_users:
one: נמצא משתמש אחד
other: נמצאו %{count} משתמשים
confirm: אישור משתמשים נבחרים
hide: הסתרת משתמשים נבחרים
+ empty: לא נמצאו משתמשים תואמים
user:
summary_html: '%{name} נוצר מכתובת %{ip_address} ב־%{date}'
summary_no_ip_html: '%{name} נוצר ב־%{date}'
ended: הסתיימה
revoked_html: בוטלה על־ידי %{name}
active: פעילה
- active_until_read: פעיל עד לקריאה
+ active_until_read: פעילה עד לקריאה
read_html: נקראה ב־%{time}
time_in_future_title: '%{time_absolute}; ב־%{time_relative}'
time_in_past_title: '%{time_absolute}; %{time_relative}'
intro: יש פה טעות או שחסר משהו? אנו מבקשים ממך לספר את זה לממפים אחרים. לשם
כך צריך להזיז את הסמן למקום הנכון ולכתוב הערה שמסבירה את הבעיה.
anonymous_warning_html: לא נכנסת לחשבון. נא %{log_in} או %{sign_up} לקבלת עדכונים
- ×¢×\9c ×\94×\94ער×\94 ש×\9c×\9a ×\95×\9c×¢×\96×\95ר ×\9c×\9eת×\9b× ×ª×\99 ×\94×\9eפ×\95ת לפתור את זה.
+ ×¢×\9c ×\94×\94ער×\94 ש×\9c×\9a ×\95×\9c×¢×\96×\95ר ×\9c×\9e×\9eפ×\99×\9d לפתור את זה.
anonymous_warning_log_in: להיכנס לחשבון
anonymous_warning_sign_up: להירשם
counter_warning_forum_link:
text: הקהילה יכולה לעזור לך
- url: https://community.openstreetmap.org/
advice: /start
add: הוספת הערה
new_readonly:
comment: टिप्पणी
full: पूरा नोट
accounts:
- edit:
+ show:
contributor terms:
link text: यह क्या है?
save changes button: बदलाव सहेजें
show:
title: सदस्य
heading: सदस्य
- empty: ऐसे कोई सदस्य नहीं मिले
+ states:
+ active: सक्रिय
+ deleted: हटाया गया
page:
confirm: इन सदस्यों को चुनें
hide: इन सदस्यों को न दिखाएं
+ empty: ऐसे कोई सदस्य नहीं मिले
changeset_comments:
page:
when: कब
comment: Komentar
full: Cijela bilješka
accounts:
- edit:
+ show:
title: Uredi korisnički račun
- my settings: Moje postavke
current email address: Trenutna adresa e-pošte
openid:
link text: što je ovo?
show:
title: Uvjeti doprinositelja
heading: Uvjeti
- consider_pd: Osim gore navedenog ugovora, smatram da su moji doprinosi u javnom
- vlasništvu (Public Domain)
- consider_pd_why: što je ovo?
continue: Nastavi
you need to accept or decline: Molim pročitaj, a zatim ili prihvati ili odbij
nove Uvjete doprinošenja.
my notes: Moje bilješke
my messages: Moje poruke
my profile: Moj profil
- my settings: Moje postavke
my comments: Moji komentari
blocks on me: Osobne blokade
blocks by me: Blokade koje sam postavio
show:
title: Korisnici
heading: Korisnici
- empty: Nema pronađenih odgovarajućih korisnika
page:
confirm: Potvrdi odabrane korisnike
hide: Sakrij odabrane korisnike
+ empty: Nema pronađenih odgovarajućih korisnika
user:
summary_html: '%{name} napravljeno sa %{ip_address} dana %{date}'
summary_no_ip_html: '%{name} napravljeno %{date}'
comment: Komentar
full: Dospołna pokazka
accounts:
- edit:
+ show:
title: Konto wobdźěłać
- my settings: Moje nastajenja
current email address: Aktualna e-mejlowa adresa
external auth: Eksterna awtentifikacija
openid:
heading: Wuměnjenja
heading_ct: Wuměnjenja za sobuskutkowarjow
read_tou: Sym wužiwanske wuměnjenja přečitał a sym z nimi přezjedny|přezjedna
- consider_pd: Přidatnje k horjeka mjenowanym wuměnjenjam, mam swoje přinoški
- za powšitkownosći wužitne.
- consider_pd_why: Što to je?
continue: Dale
you need to accept or decline: Prošu přečitaj nowe wužiwarske wuměnjenja a
akceptuj abo wotpokazaj je, prjedy hač dale činiš.
my notes: Moje pokazki
my messages: Moje powěsće
my profile: Mój profil
- my settings: Moje nastajenja
my comments: Moje komentary
my_preferences: Moje preferency
my_dashboard: Moja přehladna strona
show:
title: Wužiwarjo
heading: Wužiwarjo
- empty: Žani wotpowědowacy wužiwarjo namakani
page:
confirm: Wubranych wužiwarjow wobkrućic
hide: Wubranych wužiwarjow schować
+ empty: Žani wotpowědowacy wužiwarjo namakani
user:
summary_html: '%{name} wot %{ip_address} dnja %{date} wutworjeny'
summary_no_ip_html: '%{name} dnja %{date} wutworjeny'
comment: Hozzászólás
full: Teljes jegyzet
accounts:
- edit:
+ show:
title: Fiók szerkesztése
- my settings: Személyes beállítások
current email address: Jelenlegi e-mail-cím
external auth: Külső hitelesítés
openid:
használatát ezek a %{tou_link} szabályozzák. Kérjük, kattints a linkre,
majd olvasd el és fogadd el a szöveget.
read_tou: Elolvastam és elfogadom a felhasználási feltételeket
- consider_pd: A fenti megállapodáson felül, a hozzájárulásaimat közkinccsé
- nyilvánítom
- consider_pd_why: mi ez?
guidance_info_html: 'Információk a kifejezések megértéséhez: egy %{readable_summary_link}
és néhány %{informal_translations_link}'
readable_summary: ember által olvasható összefoglaló
címekről szóló részt
html: Címed nem jelenik meg nyilvánosan; további információért tekintsd meg
a %{privacy_policy_link} oldalunkat.
- consider_pd_html: Úgy vélem, hogy szerkesztéseim a %{consider_pd_link} kategóriába
- tartoznak.
- consider_pd: közkincs
or: vagy
use external auth: vagy használhatsz külső fiókokat a bejelentkezéshez
no_such_user:
my notes: Saját jegyzetek
my messages: Üzenetek
my profile: Profil
- my settings: Személyes beállítások
my comments: Saját hozzászólások
my_preferences: Megjelenési beállítások
my_dashboard: Irányítópult
show:
title: Felhasználók
heading: Felhasználók
- empty: Nem találtam egyező felhasználót
page:
found_users:
one: '%{count} felhasználó található'
other: '%{count} felhasználó található'
confirm: Kijelölt felhasználók megerősítése
hide: Kijelölt felhasználók elrejtése
+ empty: Nem találtam egyező felhasználót
user:
summary_html: '%{name} létrejött innen: %{ip_address}, ekkor: %{date}'
summary_no_ip_html: '%{name} letrejött ekkor: %{date}'
comment: Commento
full: Nota complete
accounts:
- edit:
+ show:
title: Modificar conto
- my settings: Mi parametros
current email address: Adresse de e-mail actual
external auth: Authentication externe
openid:
fornite per OSMF. Per favor, clicca sur le ligamine, lege le texto, e declara
te de accordo.
read_tou: Io ha legite e io accepta le Conditiones de uso
- consider_pd: In addition a lo que precede, io considera mi contributiones
- como essente in le dominio public
- consider_pd_why: que es isto?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Information pro adjutar a comprender iste terminos: un
%{readable_summary_link} e qualque %{informal_translations_link}'
readable_summary: summario legibile per humanos
Conditiones de contributor. Pro plus informationes, per favor vide %{terms_declined_link}.
terms_declined_link: iste pagina wiki
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
browse:
deleted_ago_by_html: Delite %{time_ago} per %{user}
edited_ago_by_html: Modificate %{time_ago} per %{user}
sur adresses de e-mail
html: Tu adresse non es monstrate publicamente. Consulta nostre %{privacy_policy_link}
pro plus information.
- consider_pd_html: Io considera que mi contributiones es in le %{consider_pd_link}.
- consider_pd: dominio public
or: o
use external auth: o usa un tertio pro aperir session
no_such_user:
my notes: Mi notas
my messages: Mi messages
my profile: Mi profilo
- my settings: Mi parametros
my comments: Mi commentos
my_preferences: Mi preferentias
my_dashboard: Mi pannello
show:
title: Usatores
heading: Usatores
- empty: Nulle usator correspondente trovate
page:
found_users:
one: '%{count} usator trovate'
other: '%{count} usatores trovate'
confirm: Confirmar usatores seligite
hide: Celar usatores seligite
+ empty: Nulle usator correspondente trovate
user:
summary_html: '%{name} create ab %{ip_address} le %{date}'
summary_no_ip_html: '%{name} create le %{date}'
comment: Komentar
full: Catatan lengkap
accounts:
- edit:
+ show:
title: Edit akun
- my settings: Pengaturan saya
current email address: Alamat surel saat ini
external auth: Autentikasi Eksternal
openid:
lainnya yang disediakan oleh OSMF. Tolong tekan tautannya, baca dan setujui
teksnya.'
read_tou: Saya telah membaca dan menyetujui Ketentuan Penggunaan
- consider_pd: Sebagai tambahan perjanjian di atas, saya menganggap kontribusi
- saya berada di dalam Domain Publik
- consider_pd_why: apa ini?
guidance_info_html: 'Informasi untuk membantu Anda memahami ketentuan ini:
%{readable_summary_link} dan %{informal_translations_link}'
readable_summary: ringkasan dasar
my notes: Catatanku
my messages: Pesanku
my profile: Profilku
- my settings: Pengaturanku
my comments: Komentarku
my_preferences: Preferensi Saya
my_dashboard: Dasbor Saya
show:
title: Pengguna
heading: Pengguna
- empty: Tidak ditemukan pengguna yang sesuai
page:
confirm: Konfirmasi Pengguna yang Dipilih
hide: Sembunyikan Pengguna yang Dipilih
+ empty: Tidak ditemukan pengguna yang sesuai
user:
summary_html: '%{name} dibuat dari %{ip_address} pada %{date}'
summary_no_ip_html: '%{name} dibuat pada %{date}'
comment: Athugasemd
full: Allur minnispunkturinn
accounts:
- edit:
+ show:
title: Stillingar
- my settings: Mínar stillingar
current email address: Núverandi póstfang
external auth: Ytri auðkenning
openid:
tou_explain_html: Þessi %{tou_link} stýra notkuninni á vefsvæðinu ásamt öðrum
stoðkerfum OSMF. Smelltu á tengilinn, lestu síðan og samþykktu textann.
read_tou: Ég hef lesið og samþykki notkunarskilmálana
- consider_pd: Til viðbótar við ofangreint samkomulag, lít ég svo á að framlög
- mín verði í almenningseigu (Public Domain)
- consider_pd_why: hvað þýðir þetta?
guidance_info_html: 'Upplýsingar sem hjálpa til við að skilja þessi hugtök:
%{readable_summary_link} á mannamáli og nokkrar %{informal_translations_link}'
readable_summary: læsilegt yfirlit
tölvupóstföng
html: Netfangið þitt er ekki birt opinberlega, skoðaðu síðuna um %{privacy_policy_link}
til að sjá nánari upplýsingar.
- consider_pd_html: Ég lít svo á að framlög mín verði í %{consider_pd_link}.
- consider_pd: almenningseign
- consider_pd_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
or: eða
use external auth: eða nýskráð þig með utanaðkomandi þjónustu
no_such_user:
my notes: Minnispunktarnir mínir
my messages: Skilaboðin mín
my profile: Notandasniðið mitt
- my settings: Stillingarnar mínar
my comments: Athugasemdir mínar
my_preferences: Valmöguleikar
my_dashboard: Stjórnborðið mitt
show:
title: Notendur
heading: Notendur
- empty: Engir samsvarandi notendur fundust
page:
found_users:
one: '%{count} notandi fannst'
other: '%{count} notendur fundust'
confirm: Staðfesta valda notendur
hide: Fela valda notendur
+ empty: Engir samsvarandi notendur fundust
user:
summary_html: '%{name} var útbúinn frá %{ip_address} þann %{date}'
summary_no_ip_html: '%{name} útbúinn þann %{date}'
allow_write_prefs: modifica le sue preferenze utente
allow_write_diary: creare pagine di diario e commenti
allow_write_api: modificare la mappa
+ allow_write_changeset_comments: commentare i gruppi di modifiche
allow_read_gpx: visualizza le sue tracce GPS private
allow_write_gpx: carica tracce GPS
allow_write_notes: modificare le note
comment: Commento
full: Nota completa
accounts:
- edit:
+ show:
title: Modifica profilo
- my settings: Impostazioni
+ my_account: Il mio profilo
current email address: Indirizzo email attuale
external auth: Autenticazione esterna
openid:
fossero di pubblico dominio.
link: https://osmfoundation.org/wiki/Licence/Contributor_Terms/IT
link text: che cos'è questo?
+ not_agreed_with_pd: Non hai dichiarato se considerare le tue modifiche come
+ fossero di pubblico dominio.
+ pd_link_text: dichiara
save changes button: Salva modifiche
delete_account: Elimina Utenza...
go_public:
di altre infrastrutture fornite dalla OSMF. Clicca sul collegamento, leggi
il testo e accetta.
read_tou: Ho letto e accetto le Condizioni d'uso
- consider_pd: In aggiunta a quanto sopra, considero i miei contributi come
- fossero di pubblico dominio
- consider_pd_why: cos'è questo?
guidance_info_html: 'Informazioni per aiutarti a comprendere queste condizioni:
un %{readable_summary_link} e alcune %{informal_translations_link}'
readable_summary: riassunto leggibile da un essere umano
i nuovi termini di contribuzione. Per ulteriori informazioni consultare
%{terms_declined_link}.
terms_declined_link: questa pagina wiki
+ pd_declarations:
+ show:
+ title: Considera i miei contributi di pubblico dominio
+ consider_pd: Io considero i miei contributi di pubblico dominio
+ consider_pd_why: Perché dovrei volere che i miei contributi fossero di pubblico
+ dominio?
+ confirm: Conferma
+ create:
+ successfully_declared: Hai dichiarato di considerare le tue modifiche come
+ fossero di pubblico dominio.
+ already_declared: Hai già dichiarato di considerare le tue modifiche come
+ fossero di pubblico dominio.
+ did_not_confirm: Non hai confermato di considerare le tue modifiche come fossero
+ di pubblico dominio.
browse:
deleted_ago_by_html: Cancellato %{time_ago} da %{user}
edited_ago_by_html: Modificato %{time_ago} da %{user}
feature_warning: Caricamento di %{num_features} caratteristiche, che possono
rendere il tuo browser lento o che non risponde. Sei sicuro di voler visualizzare
questi dati?
+ feature_error: 'Impossibile caricare gli elementi: %{message}'
load_data: Carica dati
loading: Caricamento in corso...
tag_details:
reports: Segnalazioni
last_updated: Ultima modifica
last_updated_time_ago_user_html: '%{time_ago} da %{user}'
+ reporting_users: Utenti segnalatori
reports_count:
one: '%{count} segnalazione'
other: '%{count} segnalazioni'
+ more_reporters: e altri %{count}
reported_item: Elemento segnalato
states:
ignored: Ignorato
reopened: Lo stato del problema è stato impostato su ‘Aperto’
comments:
comment_from_html: Commento di %{user_link} il %{comment_created_at}
+ reassign_to_moderators: Riassegna il problema ai moderatori
+ reassign_to_administrators: Riassegna il problema agli amministratori
reports:
reported_by_html: Segnalato come %{category} da %{user} il %{updated_at}
helper:
communities: Comunità
learn_more: Ulteriori informazioni
more: Altro
+ offline_flash:
+ osm_offline: Per permettere lo svolgimento di essenziali lavori di manutenzione,
+ il database di OpenStreetMap è attualmente offline.
+ osm_read_only: Per permettere lo svolgimento di essenziali lavori di manutenzione,
+ il database di OpenStreetMap è attualmente in modalità sola-lettura.
+ expected_restore_html: Si prevede che i servizi verranno ripristinati in %{time}.
+ announcement: Potete leggere l'annuncio qui.
user_mailer:
diary_comment_notification:
description: 'Voce del diario OpenStreetMap #%{id}'
write_prefs: Modificare le preferenze dell'utente
write_diary: Creare voci del diario e commenti
write_api: Modificare la mappa
+ write_changeset_comments: Commentare i gruppi di modifiche
read_gpx: Leggere tracciati GPS privati
write_gpx: Caricare tracciati GPS
write_notes: Modificare le note
write_redactions: Rimuovere dati cartografici
+ write_blocks: Creare e revocare blocchi di utenze
read_email: Leggere indirizzo di posta elettronica dell'utente
consume_messages: Leggere, aggiornare lo stato e cancellare i messaggi dell'utente
send_messages: Inviare messaggi privati ad altri utenti
sugli indirizzi e-mail
html: Il tuo indirizzo non viene visualizzato pubblicamente, consulta la nostra
%{privacy_policy_link} per ulteriori informazioni.
- consider_pd_html: Considero i miei contributi in %{consider_pd_link}.
- consider_pd: pubblico dominio
or: o
use external auth: o registrati tramite terze parti
no_such_user:
my notes: Le mie note
my messages: I miei messaggi
my profile: Il mio profilo
- my settings: Impostazioni
+ my_account: Il mio profilo
my comments: I miei commenti
my_preferences: Preferenze
my_dashboard: La mia dashboard
show:
title: Utenti
heading: Utenti
- empty: Nessun utente corrispondente trovato
+ select_status: Seleziona stato
+ states:
+ pending: In attesa
+ active: Attivo
+ confirmed: Confermato
+ suspended: Sospeso
+ deleted: Cancellato
+ ip_address: Indirizzo IP
+ search: Cerca
page:
found_users:
one: '%{count} utente trovato'
other: '%{count} utenti trovati'
confirm: Conferma Utenti Selezionati
hide: Nascondi Utenti Selezionati
+ empty: Nessun utente corrispondente trovato
user:
summary_html: '%{name} creato da %{ip_address} il %{date}'
summary_no_ip_html: '%{name} creato il %{date}'
show_address: Mostra indirizzo
query_features: Ricerca di elementi
centre_map: Centra la mappa qui
+ home:
+ marker_title: La mia posizione di casa
+ not_set: La posizione di casa non è impostata per la tua utenza
redactions:
edit:
heading: Modifica revisione
comment: コメント
full: メモ全文
accounts:
- edit:
+ show:
title: アカウントの編集
- my settings: 設定
current email address: 現在のメールアドレス
external auth: 外部認証
openid:
read_ct: 私は以下の貢献者同意を読み終え、これに同意します
tou_explain_html: これらの%{tou_link}では、OSMFによって提供されているウェブサイトおよびその他のインフラストラクチャの利用について定めています。リンクをクリックして、読み、文書に同意してください。
read_tou: 私は利用規約を読み終え、これに同意します
- consider_pd: 上記に加え、私の投稿をパブリック ドメインとします
- consider_pd_why: これは何ですか?
guidance_info_html: 'これらの用語を理解するのに役立つ情報: %{readable_summary_link} といくつかの %{informal_translations_link}'
readable_summary: 人間が読める要約
informal_translations: 非公式の翻訳
privacy_policy: プライバシー・ポリシー
privacy_policy_title: OSMFのプライバシーポリシー(メールアドレスに関するセクションを含む)
html: あなたのアドレスは公開されません。詳細については、%{privacy_policy_link} をご覧ください。
- consider_pd_html: 私の貢献は %{consider_pd_link} にあるとみなします。
- consider_pd: パブリックドメイン
or: または
use external auth: サードパーティのアカウントでもログインできます。
no_such_user:
my notes: 自分のメモ
my messages: 自分のメッセージ
my profile: 自分のプロフィール
- my settings: 設定
my comments: 自分のコメント
my_preferences: 個人設定
my_dashboard: 私のダッシュボード
show:
title: 利用者
heading: 利用者
- empty: 該当する利用者が見つかりません
page:
confirm: 選択した利用者を承認
hide: 選択した利用者を非表示
+ empty: 該当する利用者が見つかりません
user:
summary_html: '%{name} は %{ip_address}から%{date}に作成されました。'
summary_no_ip_html: '%{name} は%{date}に作成されました。'
entry:
comment: კომენტარი
accounts:
- edit:
+ show:
title: ანგარიშის რედაქტირება
- my settings: ჩემი პარამეტრები
current email address: 'ელ-ფოსტის ამჟამინდელი მისამართი:'
openid:
link: http://wiki.openstreetmap.org/wiki/KA:OpenID
save changes button: ცვლილებების შენახვა
terms:
show:
- consider_pd_why: რა არის ეს?
legale_select: 'გთხოვთ, აირჩიეთ თქვენი ქვეყანა:'
legale_names:
france: საფრანგეთი
show:
my diary: ჩემი დღიური
my edits: ჩემი რედაქტირება
- my settings: ჩემი პარამეტრები
my comments: ჩემი კომენტარები
send message: შეტყობინების გაგზავნა
diary: დღიური
comment: Awennit
full: Tazmilt tummiḍt
accounts:
- edit:
+ show:
title: Ẓreg amiḍan
- my settings: Iɣewwaṛen-iw
current email address: Tansa imayl n tura
openid:
link text: d acu-t wa?
show:
title: Tiwtilin n iwiziw
heading: Tiwtilin n iwiziw
- consider_pd_why: d acu-t wa?
legale_select: 'Tamurt n tnezduɣt:'
legale_names:
france: Fṛansa
my notes: Tizmilin-iw
my messages: Iznan-iw
my profile: Amaɣnu-iw
- my settings: Iɣewwaṛen-iw
my comments: Iwenniten-iw
blocks on me: Asewḥel i y-iɛnan
blocks by me: Asewḥel sɣur-i
show:
title: Iseqdacen
heading: Iseqdacen
- empty: Ulac aseqdac d-yefɣen deg unadi
page:
confirm: Sentem iseqdacen yettwafernen
hide: Ffer iseqdacen yettwafernen
+ empty: Ulac aseqdac d-yefɣen deg unadi
user:
summary_html: '%{name} yettwarna si %{ip_address} di %{date}'
summary_no_ip_html: '%{name} yettwarna di %{date}'
entry:
comment: Пікір
accounts:
- edit:
- my settings: Баптауларым
+ show:
current email address: Ағымдағы е-пошта мекенжайы
openid:
link text: бұл не?
cancel: Болдырмау
terms:
show:
- consider_pd_why: бұл не?
continue: Жалғастыру
legale_names:
france: Франция
my notes: Ескертпелерім
my messages: Хаттарым
my profile: Бейінім
- my settings: Баптауларым
my_preferences: Қалауларым
send message: Хат жіберу
diary: Күнделік
languages: ភាសា
pass_crypt: ពាក្យសម្ងាត់
accounts:
- edit:
+ show:
title: កែប្រែគណនី
update:
success_confirm_needed: ព័ត៌មានអ្នកប្រើប្រាស់ បានបន្ទាន់សម័យដោយជោគជ័យ។ សូមពិនិត្យមើលអ៊ីមែលរបស់អ្នក
comment: ಅಭಿಪ್ರಾಯ
full: ಪೂರ್ತಿ ಟಿಪ್ಪಣಿ
accounts:
- edit:
+ show:
title: ಖಾತೆಯನ್ನು ಸಂಪಾದಿಸಿ
- my settings: ನನ್ನ ಸೆಟ್ಟಿಂಗ್ಗಳು
current email address: ಪ್ರಸ್ತುತ ಇಮೇಲ್ ವಿಳಾಸ
external auth: ಬಾಹ್ಯ ದೃಢೀಕರಣ
openid:
comment: 의견
full: 전체 참고
accounts:
- edit:
+ show:
title: 계정 편집
- my settings: 프로필 설정
+ my_account: 내 계정
current email address: 현재 이메일 주소
external auth: 외부 인증
openid:
tou_explain_html: 이러한 %{tou_link}는 오픈스트리트맵 재단에서 제공하는 웹사이트 및 기타 인프라 사용을 관리합니다.
링크를 클릭하여 텍스트를 읽고 동의하십시오.
read_tou: 이용약관을 읽었으며 동의합니다
- consider_pd: 위의 내용 외에도 내 기여가 퍼블릭 도메인에 있다고 간주합니다
- consider_pd_why: 무엇인가요?
guidance_info_html: '이러한 용어를 이해하는 데 도움이 되는 정보: %{readable_summary_link} /
일부 %{informal_translations_link}'
readable_summary: 해석 요약본
terms_declined_html: 새 기여자 약관에 동의하지 않기로 결정하셨습니다. 자세한 내용은 %{terms_declined_link}를
참조하세요.
terms_declined_link: 이 위키 문서
+ pd_declarations:
+ show:
+ consider_pd: 내 기여를 퍼블릭 도메인에 속하는 것으로 간주합니다
+ confirm: 확인
browse:
deleted_ago_by_html: '%{time_ago}에 %{user}님이 삭제함'
edited_ago_by_html: '%{time_ago}에 %{user}님이 편집함'
write_gpx: GPS 궤적 업로드
write_notes: 참고 수정
write_redactions: 지도 데이터 삭제
+ write_blocks: 사용자 차단 생성 및 취소
read_email: 사용자 이메일 주소 읽기
consume_messages: 사용자 메시지 읽기, 상태 업데이트 및 삭제
send_messages: 다른 사용자에게 개인 메시지 보내기
privacy_policy: 개인정보처리방침
privacy_policy_title: 이메일 주소 섹션을 포함한 OSMF 개인 정보 보호 정책
html: 당신의 주소는 공개적으로 노출되지 않습니다. 자세한 내용은 %{privacy_policy_link}를 참조하세요.
- consider_pd_html: 내 기여가 %{consider_pd_link}에 속함을 선언합니다.
- consider_pd: 퍼블릭 도메인
or: 혹은
use external auth: 다른 제3자 로그인 방식 사용하기
no_such_user:
my notes: 내 참고
my messages: 내 메시지
my profile: 내 프로필
- my settings: 프로필 설정
+ my_account: 내 계정
my comments: 내 의견
my_preferences: 내 환경 설정
my_dashboard: 내 대시보드
show:
title: 사용자
heading: 사용자
- empty: 일치하는 사용자를 찾을 수 없습니다
+ states:
+ pending: 보류 중
+ confirmed: 확인됨
+ suspended: 정지됨
+ deleted: 삭제됨
+ ip_address: IP 주소
+ search: 검색
page:
found_users:
other: 사용자 %{count}명 찾음
confirm: 선택한 사용자 확인
hide: 선택한 사용자 숨기기
+ empty: 일치하는 사용자를 찾을 수 없습니다
user:
summary_html: '%{name}님이 %{date}에 %{ip_address}에서 만들어짐'
summary_no_ip_html: '%{name}이(가) %{date}에 만들어짐'
languages: Schprohche
pass_crypt: Paßwoot
accounts:
- edit:
+ show:
external auth: 'Donn övver en anndere Schtäll de Dahte för et Enlogge pröhve
lasse:'
terms:
comment: Şîrove
full: Temamiya notê
accounts:
- edit:
+ show:
title: Hesabê biguherîne
- my settings: Hevyazên min
current email address: Navnîşana e-nameyê yê niha
external auth: Teyîdkirina xaricî
openid:
OSMF ve tê temînkirin bi rê ve dibe. Ji kerema xwe bitikîne ser lînkê, nivîsê
bixwîne û qebûl bike.
read_tou: Min Şertûmercên Bikaranînê xwend û qebûl kir
- consider_pd: Tevî evên li jorê, tu dikarî bibijêrî ku beşdariyên te wek Malê
- Giştî (malê ku ne aîdî şexsekî ye) were qebûlkirin.
- consider_pd_why: Ev çi ye?
readable_summary: kurteya xwendinbar ê li gor însanan
informal_translations: tercimeyên nefermî
continue: Dewam bike
my notes: Notên min
my messages: Peyamên min
my profile: Profîla min
- my settings: Hevyazên min
my comments: Şîroveyên min
my_preferences: Tercîhên min
my_dashboard: Panela Kontrolê
show:
title: Bikarhêner
heading: Bikarhêner
- empty: Bikarhênerek ku lê were nehate dîtin
page:
confirm: Bikarhênerên bijartî bipejirîne
hide: Bikarhênerên bijartî veşêre
+ empty: Bikarhênerek ku lê were nehate dîtin
user:
summary_html: '%{name} ji aliyê %{ip_address} ve di %{date} de hate çêkirin'
summary_no_ip_html: '%{name} di %{date} de hate çêkirin'
comment: Bemierkung
full: Vollstännegen Hiweis
accounts:
- edit:
+ show:
title: Benotzerkont änneren
- my settings: Meng Astellungen
current email address: Aktuell E-Mail-Adress
external auth: Extern Authentifikatioun
openid:
terms:
show:
heading: Bedingungen
- consider_pd: Zousätzlech zu den uewe genannte Konditioune betruechten ech
- meng Bäiträg als gemengfräi (domaine public).
- consider_pd_why: wat ass dat?
informal_translations: informell Iwwersetzungen
continue: Weider
cancel: Ofbriechen
rest_of_world: Rescht vun der Welt
terms_declined_flash:
terms_declined_link: dës Wiki-Säit
+ pd_declarations:
+ show:
+ confirm: Confirméieren
browse:
deleted_ago_by_html: '%{time_ago} vum %{user} geläscht'
edited_ago_by_html: '%{time_ago} vum %{user} geännert'
bridleway: Wee fir Päerd
bus_guideway: Busspur
bus_stop: Busarrêt
+ busway: Busspuer
construction: Autobunn (am Bau)
corridor: Couloir
crossing: Kräizung
application:
settings_menu:
account_settings: Astellunge vum Benotzerkont
- oauth2_applications: OAuth 2 Applikatiounen
- oauth2_authorizations: OAuth 2 Autorisatiounen
+ oauth2_applications: OAuth-2-Applikatiounen
+ oauth2_authorizations: OAuth-2-Autorisatiounen
auth_providers:
openid_url: OpenID-URL
openid_login_button: Virufueren
my notes: Meng Notizen
my messages: Meng Messagen
my profile: Mäi Profil
- my settings: Meng Astellungen
my comments: Meng Bemierkungen
my_preferences: Meng Benotzerastellungen
my_dashboard: Meng Iwwersiichtssäit
show:
title: Benotzer
heading: Benotzer
- empty: Et goufe keng sou Benotzer fonnt
+ select_status: Status auswielen
+ states:
+ active: Aktiv
+ confirmed: Confirméiert
+ deleted: Geläscht
+ ip_address: IP-Adress
+ search: Sichen
page:
found_users:
one: '%{count} Benotzer fonnt'
other: '%{count} Benotzer fonnt'
confirm: Erausgesicht Benotzer confirméieren
hide: Erausgesicht Benotzer vrstoppen
+ empty: Et goufe keng sou Benotzer fonnt
changeset_comments:
page:
when: Wéini
comment: Komentaras
full: Pilna pastaba
accounts:
- edit:
+ show:
title: Keisti paskyrą
- my settings: Mano nustatymai
current email address: Dabartinis el. pašto adresas
external auth: Išorinė autentikacija
openid:
infrastruktūros naudojimą. Prašome paspausti nuorodą, perskaityti ir sutikti
su tekstu.
read_tou: Aš perskaičiau ir sutinku su naudojimo sąlygomis
- consider_pd: Be pirmiau paminėtų, laikau, kad mano indėlis būtų Viešo Naudojimo
- consider_pd_why: kas tai?
guidance_info_html: 'Informacija, padedanti suprasti šiuos terminus: %{readable_summary_link}
ir kai kurie %{informal_translations_link}'
readable_summary: žmogui skirta santrauka
privacy_policy_title: OSMF privatumo politika, įskaitant skyrių apie el. pašto
adresus
html: Jūsų adresas nerodomas viešai, daugiau informacijos rasite mūsų %{privacy_policy_link}.
- consider_pd_html: Manau, kad mano indėlis yra %{consider_pd_link}.
- consider_pd: viešo domeno
or: ar
use external auth: arba prisijunkite naudodami trečiąją šalį
no_such_user:
my notes: Mano žemėlapio pastabos
my messages: Mano pranešimai
my profile: Mano profilis
- my settings: Mano nustatymai
my comments: Mano komentarai
my_preferences: Mano parinktys
my_dashboard: Mano valdymo skydelis
show:
title: Naudotojai
heading: Naudotojai
- empty: Nerasta atitinkančių naudotojų
page:
confirm: Patvirtinti pažymėtus naudotojus
hide: Slėpti parinktus naudotojus
+ empty: Nerasta atitinkančių naudotojų
user:
summary_html: '%{name} sukurta %{ip_address} %{date}'
summary_no_ip_html: '%{name} sukurta %{date}'
comment: Komentārs
full: Pilna piezīme
accounts:
- edit:
+ show:
title: Rediģēt kontu
- my settings: Mani iestatījumi
current email address: Pašreizējā e-pasta adrese
external auth: Ārējā autentifikācija
openid:
show:
title: Dalībnieka noteikumi
heading: Dalībnieka noteikumi
- consider_pd: Papildinājumā augstākminētajai vienošanai, Es pieņemu mana devuma
- būšanu Publiskajā Domēnā
- consider_pd_why: kas tas ir?
informal_translations: neformāli tulkojumi
you need to accept or decline: Lūdzu izlasi un vai nu pieņem vai noraidi jaunos
Veidotāju Noteikumus, lai turpinātu.
my notes: Manas piezīmes
my messages: Manas ziņas
my profile: Mans profils
- my settings: Mani iestatījumi
my comments: Mani komentāri
my_preferences: Mani iestatījumi
my_dashboard: Mans vadības panelis
show:
title: Lietotāji
heading: Lietotāji
- empty: Nav atrasti atbilstoši lietotāji
page:
confirm: Apstiprināt atlasītos lietotājus
hide: Paslēpt atlasītos lietotājus
+ empty: Nav atrasti atbilstoši lietotāji
user:
summary_html: '%{name} izveidoja no %{ip_address} @ %{date}'
summary_no_ip_html: '%{name} izveidoja @ %{date}'
comment: Коментар
full: Целата белешка
accounts:
- edit:
+ show:
title: Уреди сметка
- my settings: Мои нагодувања
current email address: Тековна е-пошта
external auth: Надворешна заверка
openid:
на мрежното место и останатата инфраструктура на OSMF. Стиснете на врската,
прочитајте го текстот и согласете се со него.
read_tou: Ги прочитав Условите на употреба и се согласувам со нив
- consider_pd: Покрај горенаведеното, моите придонеси ги сметам за јавна сопственост
- consider_pd_why: Што е ова?
guidance_info_html: 'Информации што ќе ви помогнат да ги разберете овие поими:
%{readable_summary_link} и некои %{informal_translations_link}'
readable_summary: човечки читлив опис
privacy_policy_title: Правилата за лични податоци на OSMF, со одделот за е-поштенски
адреси
html: Вашата адреса не се прикажува јавно. Повеќе ќе дознаете на %{privacy_policy_link}.
- consider_pd_html: Моите придонеси ги сметам за %{consider_pd_link}.
- consider_pd: јавна сопственост
or: или
use external auth: или зачленете се преку надворешно место
no_such_user:
my notes: Мои белешки
my messages: Мои пораки
my profile: Мојот профил
- my settings: Мои поставки
my comments: Мои коментари
my_preferences: Мои нагодувања
my_dashboard: Моја управувачница
show:
title: Корисници
heading: Корисници
- empty: Нема најдено такви корисници
page:
found_users:
one: Најдов %{count} корисник
other: Најдов %{count} корисници
confirm: Потврди ги одбраните корисници
hide: Скриј одбрани корисници
+ empty: Нема најдено такви корисници
user:
summary_html: '%{name} создадено од %{ip_address} на %{date}'
summary_no_ip_html: '%{name} создадено на %{date}'
user:
new_email: (ну се афишязэ публик)
accounts:
- edit:
- my settings: Реглажеле меле
+ show:
current email address: 'Адреса де поштэ електроникэ курентэ:'
external auth: 'Ынтраря ын конт екстернэ:'
openid:
my diary: Журналул меу
my messages: Месажеле меле
my profile: Профилул меу
- my settings: Реглажеле меле
my comments: Коментарииле меле
changeset_comments:
page:
entry:
comment: टिप्पणी
accounts:
- edit:
+ show:
title: खाते संपादा
- my settings: माझ्या मांडण्या
current email address: वर्तमान ईमेल पत्ता
openid:
link text: हे काय आहे?
show:
title: योगदात्यांसाठी अटी
heading: योगदात्यांसाठी अटी
- consider_pd_why: हे काय आहे?
legale_select: 'राहण्याचा देश:'
legale_names:
france: फ्रान्स
my notes: माझ्या टीपा
my messages: माझे संदेश
my profile: माझी रूपरेखा
- my settings: माझ्या मांडण्या
my comments: माझे अभिप्राय
my_preferences: माझे प्राधान्ये
my_dashboard: माझे फलक
comment: Komen
full: Nota penuh
accounts:
- edit:
+ show:
title: Sunting akaun
- my settings: Tetapan saya
current email address: 'Alamat E-Mel Sekarang:'
external auth: Pengesahan Luaran
openid:
show:
title: Terma-terma penyumbang
heading: Terma-terma penyumbang
- consider_pd: Selain perjanjian di atas, saya sudi menyerahkan sumbangan-sumbangan
- saya dalam Domain Awam
- consider_pd_why: apakah ini?
readable_summary: ringkasan yang boleh dibaca manusia
informal_translations: penterjemahan tidak formal
continue: Sambung
my notes: Nota Saya
my messages: Pesanan Saya
my profile: Profil Saya
- my settings: Tetapan Saya
my comments: Komen Saya
my_preferences: Keutamaan Saya
my_dashboard: Papan Pemuka Saya
show:
title: Pengguna
heading: Pengguna
- empty: Tiada pengguna sepadan yang dijumpai
page:
confirm: Sahkan Pengguna-Pengguna Terpilih
hide: Sorokkan Pengguna-Pengguna Terpilih
+ empty: Tiada pengguna sepadan yang dijumpai
user:
summary_html: '%{name} diwujudkan dari %{ip_address} pada %{date}'
summary_no_ip_html: '%{name} diwujudkan pada %{date}'
comment: မှတ်ချက်
full: မှတ်စု အပြည့်အစုံ
accounts:
- edit:
+ show:
title: အကောင့်ကို ပြင်ဆင်ရန်
current email address: လက်ရှိ အီးမေးလ်လိပ်စာ
save changes button: ပြောင်းလဲမှုများကို သိမ်းရန်
comment: Kommentar
full: Fullstendig merknad
accounts:
- edit:
+ show:
title: Rediger konto
- my settings: Mine innstillinger
current email address: Nåværende e-postadresse
external auth: Ekstern autentisering
openid:
tou_explain_html: Disse %{tou_link} beskriver bruken av nettstedet og annen
infrastruktur som tilbys av OSMF. Trykk på lenka, les og samtykk til teksten.
read_tou: Jeg har lest og samtykker til bruksvilkårene
- consider_pd: I tillegg til det ovennevnte anser jeg mine bidrag for å være
- i public domain
- consider_pd_why: hva er dette?
continue: Fortsett
you need to accept or decline: Les og deretter enten godta eller avslå de
nye bidragsytervilkårene for å fortsette.
my notes: Mine merknader
my messages: Mine meldinger
my profile: Min profil
- my settings: Mine innstillinger
my comments: Mine kommentarer
blocks on me: Mine blokkeringer
blocks by me: Blokkeringer opprettet av meg
show:
title: Brukere
heading: Brukere
- empty: Ingen samsvarende brukere funnet
page:
confirm: Bekreft valgte brukere
hide: Skjul valgte brukere
+ empty: Ingen samsvarende brukere funnet
user:
summary_html: '%{name} opprettet fra %{ip_address} den %{date}'
summary_no_ip_html: '%{name} opprettet %{date}'
github: GitHub
wikipedia: Wikipedia
accounts:
- edit:
+ show:
title: Brukerkonto ännern
save changes button: Ännern spiekern
go_public:
comment: टिप्पणी
full: पूर्ण टिप्पणी
accounts:
- edit:
+ show:
title: खाता सम्पादन गर्नुहोस्
- my settings: मेरो सेटिङहरू
current email address: हालको इमेल ठेगाना
external auth: वाह्य अथेन्टिकेसन
openid:
title: सर्तहरू
heading: सर्तहरू
heading_ct: योगदानकर्ता सर्तहरू
- consider_pd_why: यो के हो ?
continue: जारी राख्ने
legale_names:
france: फ्रान्स
my notes: मेरा टिपोटहरू
my messages: मेरा सन्देशहरू
my profile: मेरो प्रोफाइल
- my settings: मेरो सेटिङहरू
my comments: मेरा टिप्पणीहरू
edits: सम्पादनहरू
traces: ट्रेसहरू
comment: Opmerking
full: Volledige opmerking
accounts:
- edit:
+ show:
title: Account bewerken
- my settings: Mijn instellingen
current email address: Huidig e-mailadres
external auth: Externe authenticatie
openid:
infrastructuur die door de OSMF wordt aangeboden. Klik op de link, lees
en ga akkoord met de tekst.
read_tou: Ik heb de gebruiksvoorwaarden gelezen en ga hiermee akkoord
- consider_pd: Met inachtneming van bovenstaande, bevinden mijn bijdragen zich
- in het publieke domein
- consider_pd_why: wat is dit?
guidance_info_html: 'Informatie om deze termen te helpen begrijpen: een %{readable_summary_link}
en enkele %{informal_translations_link}'
readable_summary: voor mensen leesbare samenvatting
privacy_policy_title: OSMF-privacybeleid, met een sectie over e-mailadressen
html: Uw adres wordt niet openbaar gemaakt, zie ons %{privacy_policy_link}
voor meer informatie.
- consider_pd_html: Ik beschouw mijn bijdragen als onderdeel van het %{consider_pd_link}.
- consider_pd: publiek domein
or: of
use external auth: of schrijf u in via een derde partij
no_such_user:
my notes: Mijn opmerkingen
my messages: Mijn berichten
my profile: Mijn profiel
- my settings: Mijn instellingen
my comments: Mijn reacties
my_preferences: Mijn voorkeuren
my_dashboard: Mijn dashboard
show:
title: Gebruikers
heading: Gebruikers
- empty: Geen gebruikers gevonden
page:
found_users:
one: '%{count} gebruiker gevonden'
other: '%{count} gebruikers gevonden'
confirm: Geselecteerde gebruikers bevestigen
hide: Gelelecteerde gebruikers verbergen
+ empty: Geen gebruikers gevonden
user:
summary_html: '%{name} aangemaakt vanaf %{ip_address} op %{date}'
summary_no_ip_html: '%{name} aangemaakt op %{date}'
url: https://wiki.openstreetmap.org/wiki/NL:Beginnershandleiding
counter_warning_forum_link:
text: de community helpt je graag
- url: https://community.openstreetmap.org/
advice: Deze opmerking is openbaar en kan gebruikt worden om de kaart bij te
werken. Vul hier dus geen persoonlijke informatie in, en ook geen informatie
uit kaarten of telefoonboeken waar auteursrechtelijke bescherming op rust.
comment: Kommentar
full: Fullstendig merknad
accounts:
- edit:
+ show:
title: Rediger konto
- my settings: Innstellingane mine
current email address: Noverande e-postadresse
external auth: Ekstern autentisering
openid:
show:
title: Bidragsytervilkår
heading: Bidragsytervilkåra
- consider_pd: I tillegg til den ovannemnde avtala ansar eg bidraga mine for
- å vere i public domain
- consider_pd_why: kva er dette?
you need to accept or decline: Les og deretter anten godta eller avslå dei
nye bidragsytervilkåra for å halde fram.
legale_select: 'Vel ditt bostedsland:'
my notes: Mine merknadar
my messages: Mine meldingar
my profile: Min profil
- my settings: Mine innstillingar
my comments: Mine kommentarar
blocks on me: Mine blokeringar
blocks by me: blokkeringar utført av meg
show:
title: Brukarar
heading: Brukarar
- empty: Ingen samsvarande brukarar funne
page:
confirm: Stadfest valde brukarar
hide: Skjul valde brukarar
+ empty: Ingen samsvarande brukarar funne
user:
summary_html: '%{name} oppretta frå %{ip_address} den %{date}'
summary_no_ip_html: '%{name} oppretta %{date}'
comment: ߡߙߌߣߊ߲
full: ߦߟߌߣߐ ߘߝߊߣߍ߲
accounts:
- edit:
+ show:
title: ߖߊ߬ߕߋ߬ߘߊ ߡߊߦߟߍ߬ߡߊ߲߬
- my settings: ߒ ߠߊ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߎ߬
current email address: ߕߋ߲߭ߕߋ߲߭ ߢߎߡߍߙߋ߲߫ ߞߏ߲ߘߏ
external auth: ߞߐߞߊ߲ߠߊ ߕߎ߬ߡߊ߬ߢߐ߲߰ߦߊ߬ߟߌ
openid:
read_ct: ߒ ߓߘߊ߫ ߛߊ߲ߝߍ߫ ߓߟߏߓߌߟߊߢߐ߲߯ߞߊ߲ ߛߙߊߕߌ ߟߎ߬ ߘߐߞߊ߬ߙߊ߲߬ ߊ߬ ߣߌ߫ ߞߊ߬ ߘߌ߬ߢߍ߬
ߊ߬ ߡߊ߬ ߝߣߊ߫.
read_tou: ߒ ߓߘߊ߫ ߟߊ߬ߓߊ߰ߙߊ߬ߟߌ ߛߙߊߕߌ ߘߐߞߊ߬ߙߊ߲߬ ߊ߬ ߣߌ߫ ߞߊ߬ ߘߌ߬ߢߍ߬ ߊ߬ ߡߊ߬
- consider_pd: ߛߊ߲ߝߍߟߊ ߏ߬ ߡߊߞߊ߬ߝߏ߬ߟߌ ߘߐ߫ ߌ ߞߐ߫߸ ߒ ߧߋ߫ ߒ ߠߊ߫ ߓߟߏߡߊߜߍ߲ ߖߊ߬ߕߋ߬
- ߟߴߊ߬ ߞߍ ߘߐ߫ ߖߊ߬ߡߊ ߘߍ߬ߒ߬ߡߊ߬ߝߋ߲ ߘߌ߫
- consider_pd_why: ߣߌ߲߬ ߦߋ߫ ߡߎ߲߬ ߘߌ߫؟
continue: ߊ߬ ߘߊߓߊ߲߫
legale_select: 'ߌ ߛߌ߰ߣߍ߲߬ ߦߋ߫ ߖߡߊ߬ߣߊ ߡߍ߲ ߘߐ߫:'
legale_names:
my notes: ߒ ߠߊ߫ ߦߟߌߣߐ ߟߎ߫
my messages: ߒ ߠߊ߫ ߗߋߛߓߍ ߟߎ߬
my profile: ߒ ߠߊ߫ ߢߊߞߙߍ
- my settings: ߒ ߠߊ߫ ߟߊ߬ߓߍ߲߬ߢߐ߲߰ߡߦߊ߬ߘߊ ߟߎ߬
my comments: ߒ ߠߊ߫ ߡߙߌߣߊ߲ ߠߎ߬
my_preferences: ߒ ߠߊ߫ ߝߌ߬ߛߊ߬ߡߊ߲߬ߕߋ ߟߎ߬
blocks on me: ߓߊ߬ߟߊ߲߬ߠߌ߲ ߡߍ߲ ߦߋ߫ ߒ ߞߊ߲߬
show:
title: ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߎ߬
heading: ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ ߟߎ߬
- empty: ߕߙߏ߬ߞߏ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߡߊ߫ ߛߐ߬ߘߐ߲߫
page:
confirm: ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߓߊߕߐ߬ߡߐ߲߬ߣߍ߲ ߠߎ߬ ߟߊߛߙߋߦߊ߫
hide: ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߓߊߕߐ߬ߡߐ߲߬ߣߍ߲ ߠߎ߬ ߢߡߊߘߏ߲߰
+ empty: ߕߙߏ߬ߞߏ ߟߊ߬ߓߊ߰ߙߊ߬ߟߊ߫ ߡߊ߫ ߛߐ߬ߘߐ߲߫
user:
summary_html: '%{name} ߛߌ߲ߘߌߣߍ߲߫ ߦߋ߫ %{ip_address} ߟߋ߬ ߡߊ߬ %{date} ߟߊ߫'
summary_no_ip_html: '%{name} ߛߌ߲ߘߌߣߍ߲߫ ߦߋ߫ %{date} ߟߋ߬ ߟߊ߫'
comment: Comentari
full: Nòta completa
accounts:
- edit:
+ show:
title: Modificar lo compte
- my settings: Meis opcions
current email address: 'Adreiça de corrier electronic actuala:'
external auth: 'Autentificacion extèrna:'
openid:
show:
title: Tèrmes del contributor
heading: Tèrmes del contributor
- consider_pd: En mai de l’acòrd çaisús, considèri mas contribucions coma essent
- dins lo domeni public
- consider_pd_why: qu’es aquò ?
continue: Contunhar
you need to accept or decline: Legissètz e puèi, siá acceptatz o refusatz
las novèlas condicions de contributor per contunhar.
my notes: Mas nòtas de mapa
my messages: Mos messatges
my profile: Mon perfil
- my settings: Mas opcions
my comments: Mos comentaris
blocks on me: Mos blocatges
blocks by me: Mos blocatges
show:
title: Utilizaires
heading: Utilizaires
- empty: Cap d'utilizaire correspondent es pas estat trobat
page:
confirm: Confirmar los utilizaires seleccionats
hide: Amagar los utilizaires seleccionats
+ empty: Cap d'utilizaire correspondent es pas estat trobat
user:
summary_html: '%{name} creat dempuèi %{ip_address} lo %{date}'
summary_no_ip_html: '%{name} creat lo %{date}'
comment: ਟਿੱਪਣੀ
full: ਪੂਰੀ ਟਿੱਪਣੀ
accounts:
- edit:
+ show:
title: ਖਾਤਾ ਸੋਧੋ
- my settings: ਮੇਰੀਆਂ ਸੈਟਿੰਗਾਂ
current email address: 'ਮੌਜੂਦਾ ਈਮੇਲ ਪਤਾ:'
external auth: ਬਾਹਰੀ ਪ੍ਰਮਾਣਿਕਤਾ
openid:
read_ct: ਮੈਂ ਉਪਰੋਕਤ ਯੋਗਦਾਨ ਪਾਉਣ ਵਾਲੀਆਂ ਸ਼ਰਤਾਂ ਨੂੰ ਪਡ਼੍ਹਿਆ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਸਹਿਮਤ
ਹਾਂ।
read_tou: ਮੈਂ ਵਰਤੋਂ ਦੀਆਂ ਸ਼ਰਤਾਂ ਨੂੰ ਪੜ੍ਹ ਲਿਆ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਸਹਿਮਤ ਹਾਂ
- consider_pd: ਉਪਰੋਕਤ ਤੋਂ ਇਲਾਵਾ, ਮੈਂ ਆਪਣੇ ਯੋਗਦਾਨ ਨੂੰ ਜਨਤਕ ਖੇਤਰ ਵਿੱਚ ਮੰਨਦਾ ਹਾਂ
- consider_pd_why: ਇਹ ਕੀ ਹੈ?
guidance_info_html: 'ਇਹਨਾਂ ਸ਼ਰਤਾਂ ਨੂੰ ਸਮਝਣ ਲਈ ਜਾਣਕਾਰੀ: ਇੱਕ %{readable_summary_link}
ਅਤੇ ਕੁਝ %{informal_translations_link}'
readable_summary: ਮਨੁੱਖੀ ਪਡ਼੍ਹਨਯੋਗ ਸੰਖੇਪ
ਨੂੰ ਸਵੀਕਾਰ ਨਾ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕੀਤਾ ਹੈ। ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ, ਕਿਰਪਾ ਕਰਕੇ %{terms_declined_link}
ਵੇਖੋ।
terms_declined_link: ਇਹ ਵਿਕੀ ਸਫ਼ਾ
+ pd_declarations:
+ show:
+ consider_pd: ਮੈਂ ਆਪਣੇ ਯੋਗਦਾਨਾਂ ਨੂੰ ਜਨਤਕ ਖੇਤਰ ਵਿੱਚ ਮੰਨਦਾ ਹਾਂ।
+ confirm: ਤਸਦੀਕ ਕਰੋ
browse:
deleted_ago_by_html: '%{time_ago} ਨੂੰ %{user} ਵੱਲੋਂ ਮਿਟਾਇਆ ਗਿਆ'
edited_ago_by_html: '%{time_ago} ਨੂੰ %{user} ਵੱਲੋਂ ਸੋਧਿਆ ਗਿਆ'
ਹਨ
html: ਤੁਹਾਡਾ ਪਤਾ ਜਨਤਕ ਤੌਰ 'ਤੇ ਪ੍ਰਦਰਸ਼ਿਤ ਨਹੀਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਵਧੇਰੇ ਜਾਣਕਾਰੀ ਲਈ
ਸਾਡਾ %{privacy_policy_link} ਵੇਖੋ।
- consider_pd_html: ਮੈਂ ਆਪਣੇ ਯੋਗਦਾਨਾਂ ਨੂੰ %{consider_pd_link} ਵਿੱਚ ਮੰਨਦਾ ਹਾਂ।
- consider_pd: ਜਨਤਕ ਖੇਤਰ
or: ਜਾਂ
use external auth: ਜਾਂ ਕਿਸੇ ਤੀਜੀ ਧਿਰ ਨਾਲ ਦਾਖਲ ਹੋਵੋ
no_such_user:
my notes: ਮੇਰੇ ਨੋਟ
my messages: ਮੇਰੇ ਸੁਨੇਹੇ
my profile: ਮੇਰੀ ਪ੍ਰੋਫ਼ਾਈਲ
- my settings: ਮੇਰੀਆਂ ਸੈਟਿੰਗਾਂ
+ my_account: ਮੇਰਾ ਖਾਤਾ
my comments: ਮੇਰੀਆਂ ਟਿੱਪਣੀਆਂ
my_preferences: ਮੇਰੀਆਂ ਤਰਜੀਹਾਂ
blocks on me: ਮੇਰੇ ਉੱਤੇ ਰੋਕਾਂ
show:
title: ਵਰਤੋਂਕਾਰ
heading: ਵਰਤੋਂਕਾਰ
- empty: ਕੋਈ ਮੇਲ ਖਾਂਦੇ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਲੱਭੇ
+ states:
+ pending: ਬਕਾਇਆ
+ active: ਸਰਗਰਮ
+ confirmed: ਤਸਦੀਕ ਕੀਤੀ ਗਈ
+ suspended: ਬਰਖਾਸਤ ਕੀਤਾ ਗਿਆ
+ deleted: ਮਿਟਾਇਆ ਗਿਆ
+ ip_address: IP ਪਤਾ
+ search: ਖੋਜੋ
page:
found_users:
one: '%{count} ਵਰਤੋਂਕਾਰ ਲੱਭੇ'
other: '%{count} ਵਰਤੋਂਕਾਰ ਲੱਭੇ'
confirm: ਚੁਣੇ ਹੋਏ ਵਰਤੋਂਕਾਰਾਂ ਦੀ ਤਸਦੀਕ ਕਰੋ
hide: ਚੁਣੇ ਹੋਏ ਵਰਤੋਂਕਾਰ ਲੁਕਾਉ
+ empty: ਕੋਈ ਮੇਲ ਖਾਂਦੇ ਵਰਤੋਂਕਾਰ ਨਹੀਂ ਲੱਭੇ
user:
summary_html: '%{date} ਨੂੰ %{ip_address} ਤੋਂ %{name} ਬਣਾਇਆ ਗਿਆ'
summary_no_ip_html: '%{name} ਨੂੰ %{date} ਨੂੰ ਬਣਾਇਆ ਗਿਆ'
+ comments:
+ index:
+ diary_entries: ਰੋਜ਼ਨਾਮਚਾ ਇੰਦਰਾਜ
changeset_comments:
page:
when: ਕਦੋਂ
show_address: ਪਤਾ ਦਿਖਾਓ
query_features: ਪੁੱਛਗਿੱਛ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ
centre_map: ਨਕਸ਼ੇ ਦਾ ਕੇਂਦਰ ਇੱਥੇ
+ home:
+ marker_title: ਮੇਰੇ ਘਰ ਦਾ ਟਿਕਾਣਾ
+ not_set: ਤੁਹਾਡੇ ਖਾਤੇ ਲਈ ਘਰ ਦਾ ਟਿਕਾਣਾ ਕਾਇਮ ਨਹੀਂ ਹੈ।
redactions:
edit:
heading: ਸੁਧਾਈ ਸੋਧੋ
allow_write_prefs: Modyfikowanie ich ustawień
allow_write_diary: Tworzenie wpisów w dzienniku i dodawanie komentarzy
allow_write_api: Modyfikowanie mapy
+ allow_write_changeset_comments: Komentowanie zestawów zmian
allow_read_gpx: Odczytywanie ich prywatnych śladów GPS
allow_write_gpx: Przesyłanie śladów GPS
allow_write_notes: Modyfikowanie uwag
name: Nazwa
redirect_uri: URI przekierowań
confidential: Poufna aplikacja?
- scopes: 'Żądanie następujących uprawnień od użytkowników:'
+ scopes: Uprawnienia
friend:
user: Użytkownik
friend: Znajomy
comment: Komentarz
full: Pełna treść uwagi
accounts:
- edit:
+ show:
title: Zmiana ustawień konta
- my settings: Ustawienia
+ my_account: Moje konto
current email address: Aktualny adres e-mail
external auth: Zewnętrzne uwierzytelnienie
openid:
agreed_with_pd: Zadeklarowałeś, że swoje edycje publikujesz w domenie publicznej.
link: https://osmfoundation.org/wiki/Licence/Contributor_Terms
link text: co to jest?
+ not_agreed_with_pd: Nie zadeklarowałeś, że uznajesz swoje zmiany za należące
+ do domeny publicznej.
+ pd_link_text: zadeklaruj
save changes button: Zapisz zmiany
delete_account: Usuń konto...
go_public:
i innej infrastruktury zapewnianej przez OSMF. Kliknij link, przeczytaj
i zaakceptuj tekst.
read_tou: Przeczytałem i akceptuję Warunki użytkowania
- consider_pd: Oprócz powyższych warunków, stwierdzam również, że mój wkład
- jest w domenie publicznej
- consider_pd_why: co to oznacza?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Informacje pomocne w zrozumieniu tych terminów: %{readable_summary_link}
i %{informal_translations_link}'
readable_summary: czytelne podsumowanie
nowych Warunków uczestnictwa. Więcej informacji możesz znaleźć %{terms_declined_link}.
terms_declined_link: na tej stronie
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ title: Uznaj mój wkład za należący do domeny publicznej
+ consider_pd: Uznaję swój wkład za należący do domeny publicznej
+ consider_pd_why: Dlaczego miałbym chcieć, aby mój wkład był w domenie publicznej?
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
+ confirm: Potwierdzam
+ create:
+ successfully_declared: Pomyślnie zadeklarowałeś, że uznajesz swoje zmiany
+ za należące do domeny publicznej.
+ already_declared: Oświadczyłeś już, że uważasz swoje zmiany za należące do
+ domeny publicznej.
+ did_not_confirm: Nie potwierdziłeś, że uważasz swoje zmiany za należące do
+ domeny publicznej.
browse:
deleted_ago_by_html: Usunięte %{time_ago} przez %{user}
edited_ago_by_html: Edytowane %{time_ago} przez %{user}
bridleway: Droga dla koni
bus_guideway: Droga dla autobusów
bus_stop: Przystanek autobusowy
+ busway: Droga dla autobusów
construction: Droga w trakcie budowy
corridor: Korytarz
crossing: Przejście
zmienić je na publiczne na %{user_page}.
user_page_link: stronie użytkownika
anon_edits_html: (%{link})
+ anon_edits_link: https://wiki.openstreetmap.org/wiki/Anonymous_edits
anon_edits_link_text: Tu dowiesz się dlaczego.
edit:
id_not_configured: iD nie został skonfigurowany
permissions:
missing: Nie zezwoliłeś aplikacji na dostęp do tej funkcji
scopes:
- openid: Zaloguj się za pomocą OpenStreetMap
+ openid: Logowanie się za pomocą OpenStreetMap
read_prefs: Odczytywanie preferencji użytkownika
write_prefs: Modyfikowanie preferencji użytkownika
write_diary: Tworzenie wpisów w dzienniku i dodawanie komentarzy
write_api: Modyfikowanie mapy
- read_gpx: Odczytywanie ich prywatnych śladów GPS
+ write_changeset_comments: Komentowanie zestawów zmian
+ read_gpx: Odczytywanie prywatnych śladów GPS
write_gpx: Przesyłanie śladów GPS
write_notes: Modyfikowanie uwag
write_redactions: Redagowanie danych mapy
+ write_blocks: Tworzenie i odwoływanie blokad użytkowników
read_email: Odczytywanie adresu e-mail użytkownika
- consume_messages: Czytaj, aktualizuj status i usuwaj wiadomości użytkownika
- send_messages: Wysyłaj prywatne wiadomości do innych użytkowników
+ consume_messages: Czytanie, zmiana statusu i usuwanie wiadomości użytkownika
+ send_messages: Wysyłanie prywatnych wiadomości do innych użytkowników
skip_authorization: Automatycznie akceptuj aplikację
for_roles:
moderator: To uprawnienie dotyczy działań dostępnych wyłącznie dla moderatorów
e-mail
html: Twój adres nie jest wyświetlany publicznie, zobacz naszą %{privacy_policy_link},
aby uzyskać więcej informacji.
- consider_pd_html: Uznaję mój wkład za należący do %{consider_pd_link}
- consider_pd: domeny publicznej
- consider_pd_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
or: lub
use external auth: 'Alternatywnie, zarejestruj się przez:'
no_such_user:
my notes: Uwagi
my messages: Wiadomości
my profile: Profil
- my settings: Ustawienia
+ my_account: Ustawienia konta
my comments: Komentarze
my_preferences: Preferencje
my_dashboard: Mój panel
show:
title: Użytkownicy
heading: Użytkownicy
- empty: Nie znaleziono pasujących użytkowników
page:
found_users:
one: Znaleziono %{count} użytkownika
other: Znaleziono %{count} użytkowników
confirm: Zatwierdź zaznaczonych użytkowników
hide: Ukryj zaznaczonych użytkowników
+ empty: Nie znaleziono pasujących użytkowników
user:
summary_html: '%{name} utworzony z adresu %{ip_address} dnia %{date}'
summary_no_ip_html: '%{name} utworzony %{date}'
url: https://wiki.openstreetmap.org/wiki/Pl:Przewodnik_dla_pocz%C4%85tkuj%C4%85cych
counter_warning_forum_link:
text: społeczność może ci pomóc
- url: https://community.openstreetmap.org/
+ url: https://community.openstreetmap.org
advice: Twoja uwaga jest publiczna i może zostać użyta do zaktualizowania mapy,
nie podawaj tu więc informacji osobistych oraz informacji z map i źródeł chronionych
prawami autorskimi.
comment: ٹپݨی
full: پورا نوٹ
accounts:
- edit:
+ show:
title: کھاتہ سودھو
- my settings: سیٹِنگاں
current email address: حالاں ایمیل پتہ
external auth: باہرلی تصدیق
openid:
title: شرطنامہ
heading: شرطنامہ
heading_ct: لیکھکاں لئی شرطنامہ
- consider_pd: اگے، میریاں ساریاں سودھاں عام ورتوں ہوواںگیاں سی (سارے ورتوں
- نہیں منع)۔
- consider_pd_why: ایہہ کیہ اے؟
continue: اگے
legale_select: 'تسیں کیہ دیش رہندے:'
legale_names:
my notes: نوٹ
my messages: سنیہے
my profile: شخصی صفحہ
- my settings: سیٹِنگاں
my comments: ٹپݨیاں
my_preferences: ترجیحاں
my_dashboard: ڈیش بورڈ
show:
title: ورتنوالے
heading: ورتنوالے
- empty: کوئی میل کھاندے ورتنوالے نہیں لبھے
page:
confirm: چݨے ہوۓ ورتنوالیاں دی تصدیق کرو
hide: چݨے ہوۓ ورتنوالے لُکاؤ
+ empty: کوئی میل کھاندے ورتنوالے نہیں لبھے
changeset_comments:
page:
when: کدوں
id:
name: iD
accounts:
- edit:
- my settings: زما امستنې
+ show:
openid:
link text: دا څه دی؟
contributor terms:
passwords:
new:
heading: آيا پټنوم مو هېر شوی؟
- email address: 'برېښليک پته:'
+ email address: برېښليکپته
profiles:
edit:
image: 'انځور:'
my messages: زما پيغامونه
send message: پيغام لېږل
edits: سمونونه
- email address: 'برېښليک پته:'
+ email address: 'برېښليکپته:'
status: 'دريځ:'
block_history: فعاله بنديزونه
moderator_history: لگېدلي بنديزونه
comment: Comentário
full: Nota completa
accounts:
- edit:
+ show:
title: Editar conta
- my settings: Definições
current email address: E-mail atual
external auth: Autenticação externa
openid:
infraestruturas fornecidas pela OSMF. Por favor, clica na hiperligação,
lê e aceita o texto.
read_tou: Li e aceito os Termos de Utilização
- consider_pd: Além do referido anteriormente, considero que as minhas contribuições
- fazem parte âmbito do Domínio Público.
- consider_pd_why: O que é isto?
guidance_info_html: 'Informações para ajudar a entender estes termos: um %{readable_summary_link}
e algumas %{informal_translations_link}'
readable_summary: sumário legível por humanos
endereços de email
html: O seu endereço não é mostrado publicamente. Consulte a nossa %{privacy_policy_link}
para mais informações.
- consider_pd_html: Considero que as minhas contribuições estão no %{consider_pd_link}.
- consider_pd: domínio público
or: ou
use external auth: ou regista-te com um serviço externo
no_such_user:
my notes: Notas
my messages: Mensagens
my profile: Perfil
- my settings: Definições
my comments: Comentários
my_preferences: Preferências
my_dashboard: Painel de controlo
show:
title: Utilizadores
heading: Utilizadores
- empty: Não foram encontrados utilizadores correspondentes
page:
found_users:
one: '%{count} utilizador encontrado'
other: '%{count} utilizadores encontrados'
confirm: Confirmar utilizadores selecionados
hide: Ocultar utilizadores selecionados
+ empty: Não foram encontrados utilizadores correspondentes
user:
summary_html: '%{name} criado com o ip %{ip_address} em %{date}'
summary_no_ip_html: '%{name} criado em %{date}'
support_url: URL de suporte
allow_read_prefs: ler preferências do usuário
allow_write_prefs: modificar preferências do usuário
- allow_write_diary: criar publicações no diário, comentários e adicionar amigos
+ allow_write_diary: criar publicações no diário e comentários
allow_write_api: modificar o mapa
+ allow_write_changeset_comments: comentar os conjuntos de alterações
allow_read_gpx: ler as rotas GPS privadas do usuário
allow_write_gpx: enviar rotas GPS
allow_write_notes: modificar notas
comment: Comentário
full: Nota completa
accounts:
- edit:
+ show:
title: Editar conta
- my settings: Minhas configurações
+ my_account: Minha conta
current email address: Endereço de e-mail atual
external auth: Autenticação externa
openid:
e aceitar os novos Termos de Contribuição.
agreed_with_pd: Você também declara que considera suas edições em Domínio
Público.
+ link: https://wiki.openstreetmap.org/wiki/Pt:Open_Database_License/Contributor_Terms
link text: o que é isso?
+ not_agreed_with_pd: Você não declarou que considera suas edições como sendo
+ de Domínio Público.
+ pd_link_text: declarar
save changes button: Salvar alterações
delete_account: Eliminar Conta...
go_public:
retain_edits: Suas edições ao banco de dados de mapas, se houverem, serão
mantidas.
retain_traces: Seus rastros enviados, caso existam, serão retidos.
- retain_diary_entries: Seus diários e comentários em diários, se existirem,
+ retain_diary_entries: Suas publicações e comentários no diário, se existirem,
serão retidos mas escondidos.
retain_notes: Suas notas de mapa e comentários das notas, se existirem, serão
retidas mas escondidas.
tou_explain_html: Esses %{tou_link} governam o uso do site e de outras infraestruturas
fornecidas pelo OSMF. Por favor, clique no link, leia e concorde com o texto.
read_tou: Li e aceito os Termos de uso
- consider_pd: Além do acima, considero minhas contribuições como Public Domain
- consider_pd_why: o que é isso?
guidance_info_html: 'Informações para ajudar a entender estes termos: um %{readable_summary_link}
e alguns %{informal_translations_link}'
readable_summary: resumo legível para humanos
contribuidor. Para mais informações, consulta %{terms_declined_link}.
terms_declined_link: esta página wiki
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=pt-br
+ pd_declarations:
+ show:
+ title: Considerar minhas contribuições como sendo de Domínio Público
+ consider_pd: Eu considero que minhas contribuições são de Domínio Público
+ consider_pd_why: Por que eu gostaria que minhas contribuições fossem de Domínio
+ Público?
+ confirm: Confirmar
+ create:
+ successfully_declared: Você declarou com sucesso que considera suas edições
+ como sendo de Domínio Público.
+ already_declared: Você já declarou que considera suas edições como sendo de
+ Domínio Público.
+ did_not_confirm: Você não confirmou que considera suas edições como sendo
+ de Domínio Público.
browse:
deleted_ago_by_html: Excluído há %{time_ago} por %{user}
edited_ago_by_html: Editado %{time_ago} por %{user}
start_rjs:
feature_warning: Carregando %{num_features} elementos, o que pode deixar seu
navegador lento ou travado. Deseja mesmo exibir estes dados?
+ feature_error: 'Os elementos não puderam ser carregados: %{message}'
load_data: Carregar dados
loading: Carregando...
tag_details:
view_redacted_data: Ver dados reduzidos
view_redaction_message: Ver mensagem de redação
nodes:
+ not_found_message:
+ sorry: 'Desculpe, não foi possível encontrar o nó #%{id}.'
timeout:
sorry: Desculpe, os dados para o nó com id %{id} demoraram demais para ser obtidos.
old_nodes:
timeout:
sorry: Desculpe, o histórico do nó com id %{id} demorou demais para ser obtido.
ways:
+ not_found_message:
+ sorry: 'Desculpe, não foi possível encontrar o caminho #%{id}.'
timeout:
sorry: Desculpe, os dados do caminho com o id %{id} demoraram muito para serem
recuperados.
sorry: Desculpe, o histórico do caminho com o id %{id} levou muito tempo para
ser recuperado.
relations:
+ not_found_message:
+ sorry: 'Desculpe, não foi possível encontrar a relação #%{id}.'
timeout:
sorry: Desculpe, os dados do caminho com o id %{id} demoraram muito para serem
recuperados.
title: Conjuntos de alterações
title_user: Conjuntos de alterações de %{user}
title_user_link_html: Conjuntos de alterações de %{user_link}
+ title_followed: Conjuntos de alterações das pessoas que sigo
title_nearby: Conjuntos de alterações de usuários próximos
empty: Nenhum conjunto de alterações encontrado.
empty_area: Nenhum conjunto de alterações nesta área.
ways_paginated: Linhas (%{x}-%{y} de %{count})
relations: Relações (%{count})
relations_paginated: Relações (%{x}-%{y} de %{count})
+ not_found_message:
+ sorry: 'Desculpe, não foi possível encontrar o conjunto de alteração #%{id}.'
timeout:
sorry: A lista de conjuntos de alterações solicitada está demorando demais para
chegar.
popup:
your location: Sua localização
nearby mapper: Mapeador próximo
+ following: Seguindo
show:
title: Meu painel
no_home_location_html: '%{edit_profile_link} e defina seu local de origem para
ver usuários próximos.'
edit_your_profile: Editar seu perfil
+ followings: Pessoas que sigo
+ no followings: Você ainda não seguiu nenhum usuário.
nearby users: Outros usuários próximos
no nearby users: Ainda não há outros usuários mapeando por perto.
+ followed_changesets: conjuntos de alterações
+ followed_diaries: publicações no diário
nearby_changesets: conjuntos de alterações de usuários próximos
nearby_diaries: publicações no diário dos usuários próximos
diary_entries:
use_map_link: Usar mapa
index:
title: Diários dos usuários
+ title_followed: Diários das pessoas que sigo
title_nearby: Diários dos usuários próximos
user_title: Diário de %{user}
- in_language_title: Publicações de Diário em %{language}
+ in_language_title: Publicações no diário em %{language}
new: Nova publicação no diário
new_title: Escrever uma nova entrada no meu diário de usuário
my_diary: Meu diário
location: 'Local:'
feed:
user:
- title: Publicações do diário do OpenStreetMap de %{user}
+ title: Publicações no diário do OpenStreetMap de %{user}
description: Publicações recentes no diário do OpenStreetMap de %{user}
language:
title: Publicações no diário do OpenStreetMap em %{language_name}
- description: Publicações de diário recentes de usuários do OpenStreetMap em
+ description: Publicações no diário recentes de usuários do OpenStreetMap em
%{language_name}
all:
title: Publicações no diário do OpenStreetMap
title: Arquivo não encontrado
description: Não foi possível encontrar uma operação de arquivo/diretório/API
com esse nome no servidor OpenStreetMap (HTTP 404)
+ follows:
+ show:
+ follow:
+ heading: Você quer seguir %{user}?
+ button: Seguir usuário
+ unfollow:
+ heading: Você quer deixar de seguir %{user}?
+ button: Deixar de seguir usuário
+ create:
+ success: Agora você está seguindo %{name}!
+ failed: Desculpe, sua solicitação para seguir %{name} falhou.
+ already_followed: Você já segue %{name}.
+ limit_exceeded: Você seguiu muitos usuários recentemente. Por favor, espere
+ um pouco antes de tentar seguir alguém mais.
+ destroy:
+ success: Você deixou de seguir %{name} com sucesso.
+ not_followed: Você não está seguindo %{name}.
geocoder:
search:
title:
bridleway: Hipovia
bus_guideway: Guiamento de Ônibus
bus_stop: Ponto de ônibus
+ busway: Via exclusiva de ônibus
construction: Via em Construção
corridor: Corredor
crossing: Faixa de pedestres
wreck: Naufrágio
"yes": Local Histórico
information:
+ guidepost: Poste de sinalização
board: Painel de informação
map: Mapa
office: Informações Turísticas
terminal: Terminal de informações
sign: Sinal de informação
+ stele: Estela informativa
junction:
"yes": Entroncamento
landuse:
lake: Lago
pond: Lagoa
reservoir: Lago Artificial
+ basin: Bacia artificial
fishpond: Tanque de peixes
lagoon: Lagoa
wastewater: Agua residual
hi: Olá %{to_user},
see_their_profile: Você pode ver o perfil dele(a) em %{userurl}.
see_their_profile_html: Você pode ver o perfil dele(a) em %{userurl}.
+ gpx_details:
+ filename: Nome do arquivo
+ url: URL
+ description: Descrição
+ tags: Etiquetas
+ total_points: Número total de pontos
+ imported_points: Número de pontos importados
gpx_failure:
hi: Olá %{to_user},
failed_to_import: 'falha na importação do arquivo de rastreamento de GPS. Por
preview: Pré-visualizar
help: Ajuda
pagination:
+ changeset_comments:
+ older: Comentários mais antigos
+ newer: Comentários mais recentes
diary_comments:
older: Comentários mais antigos
newer: Comentários mais recentes
openid: Iniciar sessão usando OpenStreetMap
read_prefs: Ler preferências de usuário
write_prefs: Modificar preferências de usuário
- write_diary: Criar entradas de diário, comentar e fazer amigos
+ write_diary: Criar publicações e comentários no diário
write_api: Modificar o mapa
+ write_changeset_comments: Comentar os conjuntos de alterações
read_gpx: Ler rotas GPS privadas
write_gpx: Enviar rotas GPS
write_notes: Modificar notas
write_redactions: Rever dados do mapa
+ write_blocks: Criar e revogar bloqueios de usuários
read_email: Ler o endereço de e-mail do usuário
consume_messages: Ver, atualizar o status e apagar mensagens de usuários
send_messages: Enviar mensagens privadas para outros usuários
endereços de e-mail
html: Seu endereço não é exibido publicamente, consulte nossa %{privacy_policy_link}
para obter mais informações.
- consider_pd_html: Considero que minhas contribuições estão no %{consider_pd_link}.
- consider_pd: domínio público
or: ou
use external auth: ou inscreva-se com um terceiro
no_such_user:
my notes: Minhas notas de mapa
my messages: Minhas mensagens
my profile: Meu perfil
- my settings: Minhas configurações
+ my_account: Minha conta
my comments: Meus comentários
my_preferences: Minhas preferências
my_dashboard: Meu painel
edits: Edições
traces: Trilhas
notes: Notas de Mapa
+ unfollow: Deixar de seguir
+ follow: Seguir
mapper since: 'Mapeador desde:'
last map edit: 'Última edição do mapa:'
no activity yet: Ainda sem atividade
show:
title: Usuários
heading: Usuários
- empty: Não há usuários correspondentes
+ select_status: Selecionar status
+ states:
+ pending: Pendente
+ active: Ativo
+ confirmed: Confirmado
+ suspended: Suspenso
+ deleted: Excluído
+ ip_address: Endereço IP
+ search: Pesquisar
page:
found_users:
one: '%{count} usuário encontrado'
other: '%{count} usuários encontrados'
confirm: Confirmar Usuários Selecionados
hide: Ocultar Usuários Selecionados
+ empty: Não há usuários correspondentes
user:
summary_html: '%{name} criado no computador %{ip_address} em %{date}'
summary_no_ip_html: '%{name} criado em %{date}'
+ comments:
+ index:
+ heading_html: Comentários de %{user}
+ changesets: Conjuntos de alterações
+ diary_entries: Publicações no diário
+ no_comments: Sem comentários
changeset_comments:
+ index:
+ title: Comentários em conjuntos de alterações feitos por %{user}
page:
+ changeset: Conjunto de alterações
when: Quando
comment: Comentário
diary_comments:
title: Comentários no diário feitos por %{user}
page:
post: Entrada
+ when: Quando
+ comment: Comentário
suspended:
title: Conta suspensa
heading: Conta suspensa
ended: finalizado
revoked_html: revogado por %{name}
active: ativo
+ active_until_read: ativo até ler
read_html: Lido em %{time}
time_in_future_title: '%{time_absolute}; em %{time_relative}'
time_in_past_title: '%{time_absolute}; %{time_relative}'
open_title: 'Nota não resolvida #%{note_name}'
closed_title: 'Nota resolvida #%{note_name}'
hidden_title: 'Nota oculta #%{note_name}'
+ description_when_author_is_deleted: excluído
event_opened_by_html: Criado por %{user} há %{time_ago}
event_opened_by_anonymous_html: Criado por anônimo há %{time_ago}
event_commented_by_html: Comentário de %{user} há %{time_ago}
isso possa ser corrigido. Mova o marcador para a posição correta e digite
uma nota para explicar o problema.
anonymous_warning_html: Você não iniciou sessão. Por favor, %{log_in} ou %{sign_up}
- se você deseja receber atualizações sobre sua nota.
+ se você deseja receber atualizações sobre sua nota e ajudar outros mapeadores
+ a resolvê-la.
anonymous_warning_log_in: entre
anonymous_warning_sign_up: crie uma conta
+ counter_warning_html: Você já postou pelo menos %{x_anonymous_notes}, isso é
+ ótimo para a comunidade, obrigado! Agora, nós o encorajamos a %{contribute_by_yourself},
+ não é tão complicado, e %{community_can_help}.
+ x_anonymous_notes:
+ one: '%{count} nota anônima'
+ other: '%{count} notas anônimas'
+ counter_warning_guide_link:
+ text: contribuir por si mesmo
+ url: https://wiki.openstreetmap.org/wiki/Pt:Beginners%27_guide
+ counter_warning_forum_link:
+ text: a comunidade pode lhe ajudar
advice: A sua nota será pública e pode ser usada para atualizar o mapa, portanto,
não insira informações pessoais ou dados de mapas protegidos por direitos
autorais ou listas de diretórios.
showing_page: Página %{page}
next: Próxima
previous: Anterior
+ not_found_message:
+ sorry: 'Desculpe, não foi possível encontrar a nota #%{id}.'
javascripts:
close: Fechar
share:
show_address: Mostrar endereço
query_features: Consultar elementos
centre_map: Centralizar o mapa aqui
+ home:
+ marker_title: A localização da minha casa
+ not_set: A localização da casa não está definido para sua conta
redactions:
edit:
heading: Editar anulação
comment: Comentariu
full: Notă completă
accounts:
- edit:
+ show:
title: Modificare cont
- my settings: Setările mele
current email address: Adresa de e-mail actuală
external auth: Autentificare externă
openid:
a altor infrastructuri furnizate de OSMF. Faceți clic pe link, citiți și
agregați textul.
read_tou: Am citit și sunt de acord cu Termenii și condițiile
- consider_pd: Pe lângă acordul de mai sus, consider că contribuțiile mele sunt
- în Domeniul Public
- consider_pd_why: Ce este aceasta?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Informații pentru a ajuta la înțelegerea acestor termeni:
un %{readable_summary_link} și câteva %{informal_translations_link}'
readable_summary: rezumat care poate fi citit de om
de Contributor. Pentru mai multe informații, consultați %{terms_declined_link}.
terms_declined_link: această pagină wiki
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
browse:
deleted_ago_by_html: Șters %{time_ago} de %{user}
edited_ago_by_html: Editat %{time_ago} de %{user}
privind adresele de e-mail
html: Adresa dvs. nu este afișată public, consultați %{privacy_policy_link}
pentru mai multe informații.
- consider_pd_html: Consider că contribuțiile mele sunt în %{consider_pd_link}.
- consider_pd: domeniul public
or: sau
use external auth: sau înregistrați-vă cu o terță parte
no_such_user:
my notes: Notițele mele
my messages: Mesajele mele
my profile: Profilul meu
- my settings: Setările mele
my comments: Comentariile mele
my_preferences: Preferințele mele
my_dashboard: Dashboardul meu
show:
title: Utilizatori
heading: Utilizatori
- empty: Nu au fost găsiți utilizatori potriviți
page:
found_users:
one: '%{count} utilizator găsit'
other: ""
confirm: Confirmați utilizatorii selectați
hide: Ascundeți utilizatorii selectați
+ empty: Nu au fost găsiți utilizatori potriviți
user:
summary_html: '%{name} creat de %{ip_address} pe %{date}'
summary_no_ip_html: '%{name} creat pe %{date}'
comment: Комментарий
full: Полный текст
accounts:
- edit:
+ show:
title: Изменить учетную запись
- my settings: Мои настройки
current email address: Текущий адрес электронной почты
external auth: 'Внешняя аутентификация:'
openid:
tou_explain_html: '%{tou_link} управляет сайтом и иной инфраструктурой, предоставляемой
OSMF. Пожалуйста, перейдите по ссылке и ознакомьтесь с текстом.'
read_tou: Я соглашаюсь с Условиями использования
- consider_pd: В дополнение к вышеизложенному, я принимаю во внимание, что мой
- вклад находится в общественном достоянии
- consider_pd_why: что это значит?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Информация, помогающая понять эти условия: %{readable_summary_link}
и некоторые %{informal_translations_link}'
readable_summary: краткое содержание
Для получения дополнительной информации смотрите %{terms_declined_link}.
terms_declined_link: эта страница вики
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=ru
+ pd_declarations:
+ show:
+ title: Считайте мои вклады общественным достоянием
+ consider_pd: Я считаю , мои вклады общественным достоянием.
+ consider_pd_why: Почему я хотел бы, чтобы мои материалы стали общественным
+ достоянием?
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
+ confirm: Подтвердить
+ create:
+ successfully_declared: Вы успешно заявили, что считаете свои правки общественным
+ достоянием.
+ already_declared: Вы уже заявили, что считаете свои правки общественным достоянием.
+ did_not_confirm: Вы не подтвердили, что считаете свои редактирования общественным
+ достоянием.
browse:
deleted_ago_by_html: Удален %{time_ago} пользователем %{user}
edited_ago_by_html: Редактировал %{time_ago} %{user}
write_gpx: Загрузить GPS-треки
write_notes: Изменить заметки
write_redactions: Редактировать данные карты
+ write_blocks: Создание и отмена блокировок пользователей
read_email: Читать адрес электронной почты пользователя
consume_messages: Читать, обновлять статус и удалять сообщения пользователей
send_messages: Отправлять личные сообщения другим пользователям
my notes: Мои заметки
my messages: Мои сообщения
my profile: Мой профиль
- my settings: Мои настройки
my comments: Мои комментарии
my_preferences: Мои предпочтения
my_dashboard: Мой пульт
show:
title: Пользователи
heading: Пользователи
- empty: Не найдено соответствующих пользователей
+ states:
+ pending: В ожидании
+ confirmed: Подтверждено
+ suspended: Приостановлено
+ deleted: Удалено
+ ip_address: IP-адрес
+ search: Поиск
page:
confirm: Подтвердить выделенных пользователей
hide: Скрыть выделенных пользователей
+ empty: Не найдено соответствующих пользователей
user:
summary_html: '%{name} создан %{date}, с адреса %{ip_address}'
summary_no_ip_html: '%{name} создан %{date}'
+ comments:
+ index:
+ diary_entries: Записи в дневнике
changeset_comments:
page:
when: Когда
anonymous_warning_sign_up: зарегистрироваться
counter_warning_guide_link:
url: https://wiki.openstreetmap.org/wiki/RU:%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%BD%D0%BE%D0%B2%D0%B8%D1%87%D0%BA%D0%B0
- counter_warning_forum_link:
- url: https://community.openstreetmap.org/
advice: Ваша заметка является общедоступной и может использоваться для обновления
карты, поэтому не вводите личную информацию, информацию из защищённых авторскими
правами карт или справочников.
show_address: Показать адрес
query_features: Что здесь?
centre_map: Центрировать карту
+ home:
+ not_set: Установка места нахождения не установлена для вашей учётной записи
redactions:
edit:
heading: Редактировать исправление
comment: ᱚᱠᱛᱟ
full: ᱜᱚᱴᱟ ᱠᱷᱟᱴᱟᱹ ᱚᱞ
accounts:
- edit:
+ show:
title: ᱠᱷᱟᱛᱟ ᱥᱟᱯᱲᱟᱣ ᱢᱮ
- my settings: ᱤᱧᱟᱜ ᱥᱟᱡᱟᱣᱠᱚ
current email address: 'ᱱᱮᱛᱚᱜ-ᱟᱜ ᱤᱢᱮᱞ ᱴᱷᱤᱠᱟᱹᱬᱟ:'
openid:
link text: ᱱᱤᱭᱟᱹ ᱫᱚ ᱪᱮᱫ?
save changes button: ᱵᱚᱫᱚᱞᱠᱚ ᱪᱟᱺᱪᱟᱣ ᱢᱮ
terms:
show:
- consider_pd_why: ᱱᱤᱭᱟᱹ ᱫᱚ ᱪᱮᱫ?
continue: ᱞᱮᱛᱟᱲ
browse:
anonymous: ᱵᱟᱝ ᱵᱟᱰᱟᱭ
my notes: ᱤᱧᱭᱟᱜ ᱠᱷᱟᱴᱟᱹ ᱚᱞᱠᱚ
my messages: ᱤᱧᱭᱟᱜ ᱠᱷᱚᱵᱚᱨ ᱠᱚ
my profile: ᱤᱧᱭᱟᱜ ᱢᱚᱦᱲᱟ
- my settings: ᱤᱧᱟᱜ ᱥᱟᱡᱟᱣᱠᱚ
my comments: ᱤᱧᱭᱟᱜ ᱚᱠᱛᱟ ᱠᱚ
send message: ᱠᱷᱚᱵᱚᱨ ᱠᱩᱞ ᱢᱮ
diary: ᱰᱟᱭᱨᱤ
# Messages for Sardinian (sardu)
# Exported from translatewiki.net
# Export driver: phpyaml
+# Author: Eic17H
# Author: Gravitystorm
# Author: L2212
# Author: Larentzu
comment: Cummentu
full: Nota intrea
accounts:
- edit:
+ show:
title: Modìfica su profilu
- my settings: Preferèntzias meas
+ my_account: Su contu meu
current email address: Indiritzu de posta eletrònica atuale
external auth: Autenticatzione esterna
openid:
àteras infrastruturas frunidas dae s'OSFM. Incarca in su ligàmene, leghe
su testu e atzetade·lu.
read_tou: Apo letu e atzeto sas cunditziones de impreu
- consider_pd: Paris a totu su chi b'at inoghe in subra, atzeto chi sos contributos
- meos siant de domìniu pùblicu
- consider_pd_why: ite est custu?
guidance_info_html: 'Informatziones pro t''agiuare a cumprèndere custas cunditziones:
unu %{readable_summary_link} e unas cantas %{informal_translations_link}'
readable_summary: resumu chi un'èssere umanu podet lèghere
my notes: Sas notas meas
my messages: Sos messàgios meos
my profile: Su profilu meu
- my settings: Sas impostatziones meas
+ my_account: Su contu meu
my comments: Sos cummentos meos
my_preferences: Sas preferèntzias meas
my_dashboard: Su pannellu de controllu meu
show:
title: Utentes
heading: Utentes
- empty: Non b'at perunu utente chi currispondat
page:
confirm: Cunfirma sos utentes seletzionados
hide: Cua sos utentes seletzionados
+ empty: Non b'at perunu utente chi currispondat
user:
summary_html: '%{name} creadu dae %{ip_address} su %{date}'
summary_no_ip_html: '%{name} creadu su %{date}'
comment: Cummentu
full: Nota cumpleta
accounts:
- edit:
+ show:
title: Cancia u cuntu
- my settings: Mpustazzioni
current email address: Nnirizzu e-mail attuali
external auth: Tranzuntari di fora
openid:
show:
title: Cunnizzioni
heading: Cunnizzioni
- consider_pd: Sparti dû cuntrattu ccassupra, cunzìddiru chi li mè cuntribbuti
- sunnu ntô Duminiu Pùbblicu
- consider_pd_why: chi voli diri?
you need to accept or decline: Pi cuntinuari, pi favuri leggi li cunnizzioni
di cuntribbuzzioni novi e appoi accèttali o rifiùtali.
legale_select: 'Paisi di risidenza:'
my notes: Li mè noti
my messages: Li mè missaggi
my profile: Lu mè prufilu
- my settings: Li mè mpustazzioni
my comments: Li mè cummenti
my_preferences: Li mè prifirenzi
blocks on me: Cu blocca a mìa
show:
title: Utenti
heading: Utenti
- empty: Nun fu attruvatu nuḍḍu utenti chi currispunni
page:
confirm: Cunferma a l'utenti scigghiuti
hide: Ammuccia a l'utenti scigghiuti
+ empty: Nun fu attruvatu nuḍḍu utenti chi currispunni
user:
summary_html: '%{name} criatu di %{ip_address} lu %{date}'
summary_no_ip_html: '%{name} criatu lu %{date}'
name: Remote Control
description: Remote Control (JOSM or Merkaartor)
accounts:
- edit:
+ show:
title: Edit accoont
browse:
version: Vairsion
comment: Komentar
full: Cijela napomena
accounts:
- edit:
+ show:
title: Uredi račun
- my settings: Moje postavke
current email address: Trenutna adresa e-pošte
openid:
link text: šta je ovo?
comment: Komentár
full: Celá poznámka
accounts:
- edit:
+ show:
title: Upraviť účet
- my settings: Moje nastavenia
current email address: Aktuálna e-mailová adresa
external auth: Externá autentifikácia
openid:
používania, po dokončení začiarknite obe políčka a potom stlačte tlačidlo
pokračovať.
read_tou: Prečítal som si Podmienky používania a súhlasím s nimi
- consider_pd: Navyše k vyššie uvedenému vyhlasujem, že považujem svoje príspevky
- za slobodné dielo (Public Domain).
- consider_pd_why: čo to znamená?
continue: Pokračovať
cancel: Zrušiť
you need to accept or decline: Pre pokračovanie si prosím prečítajte a príjmite,
email_help:
html: Vaša adresa sa nezobrazuje verejne, pre ďalšie informácie venujte pozornosť
našim %{privacy_policy_link}.
- consider_pd_html: Moje príspevky považujem za %{consider_pd_link}.
- consider_pd: Verejná doména
or: alebo
use external auth: prípadne využite na registráciu služby tretích strán
no_such_user:
my notes: Moje poznámky k mape
my messages: Moje správy
my profile: Môj profil
- my settings: Moje nastavenia
my comments: Moje komentáre
my_preferences: Moje predvoľby
my_dashboard: Moja nástenka
show:
title: Používatelia
heading: Používatelia
- empty: Žiadni používatelia vyhovujúci podmienkam neboli nájdení
page:
confirm: Potvrdiť zvolených používateľov
hide: Skryť vybraných používateľov
+ empty: Žiadni používatelia vyhovujúci podmienkam neboli nájdení
user:
summary_html: '%{name} založené %{date} z %{ip_address}'
summary_no_ip_html: '%{name} založený %{date}'
comment: رائے
full: پورا نوٹ
accounts:
- edit:
+ show:
title: کھاتے وچ تبدیلی کرو
- my settings: میݙیاں ترتیباں
+ my_account: میݙا کھاتہ
current email address: موجودہ ای میل پتہ
external auth: باہرلی تصدیق
openid:
undelete: بحال
sessions:
new:
- tab_title: لاگ ان
+ tab_title: لاگ ان تھیوو
email or username: ای میل پتہ یا ورتݨ ناں
password: پاس ورڈ
remember: میکوں یاد رکھو
or: یا
show:
my profile: میݙی پروفائل
- my settings: میݙیاں ترتیباں
+ my_account: میݙا کھاتہ
my comments: میݙے تبصرے
+ lists:
+ show:
+ select_status: حیثیت چݨو
+ states:
+ active: فعال
+ deleted: مٹا ݙتے
+ ip_address: آئی پی پتہ
comments:
index:
+ diary_entries: ڈائری دی انٹری
no_comments: کوئی تبصرہ کائنی
changeset_comments:
page:
comment: Komentar
full: Celotna opomba
accounts:
- edit:
+ show:
title: Urejanje uporabniškega računa
- my settings: Moje nastavitve
current email address: Trenutni e-poštni naslov
external auth: Zunanja avtentikacija
openid:
infrastrukturo, ki jo zagotavlja OSMF. Kliknite povezavo, preberite jih
in potrdite strinjanje z besedilom.
read_tou: Prebral sem pogoje uporabe in soglašam z njimi
- consider_pd: Poleg zgoraj navedenega menim, da so moji prispevki v javni domeni
- consider_pd_why: kaj je to?
guidance_info_html: 'Informacije za lažje razumevanje teh izrazov: %{readable_summary_link}
in nekaj %{informal_translations_link}'
readable_summary: človeško berljiv povzetek
privacy_policy_title: Pravilnik o zasebnosti OSMF, vključno z razdelkom o
e-poštnih naslovih
html: Vaš naslov ni javno prikazan, za več informacij glejte naš %{privacy_policy_link}.
- consider_pd_html: Svoje prispevke štejem za %{consider_pd_link}.
- consider_pd: javna domena
or: ali
use external auth: ali se prijavite prek tretje osebe
no_such_user:
my notes: Moje opombe
my messages: Sporočila
my profile: Moj profil
- my settings: Moje nastavitve
my comments: Moji komentarji
my_preferences: Moje prilagoditve
my_dashboard: Moja nadzorna plošča
show:
title: Uporabniki
heading: Uporabniki
- empty: Nobenega uporabnika ni bilo mogoče najti
page:
confirm: Potrdi izbrane uporabnike
hide: Skrij izbrane uporabnike
+ empty: Nobenega uporabnika ni bilo mogoče najti
user:
summary_html: '%{name} ustvarjen iz %{ip_address} dne %{date}'
summary_no_ip_html: '%{name} ustvarjen dne %{date}'
name: Kontroll nga Larg
description: Kontrollo nga larg (JOSM, Potlatch, Merkaartor)
accounts:
- edit:
+ show:
title: Redakto llogarinë
- my settings: Preferencat e mia
current email address: Adresa e Tanishme e Emailit
openid:
link text: çfarë është kjo?
show:
title: Kushtet
heading: Kushtet
- consider_pd: Përveç marrëveshjes së mësipërme, unë i konsideroj kontributet
- e mia të jenë në Domeinin Publik
- consider_pd_why: çfarë është kjo?
legale_select: 'Vendi i banimit:'
legale_names:
france: Francë
my notes: Shënimet e mia
my messages: Mesazhet e mia
my profile: Profili im
- my settings: Preferencat e mia
my comments: Komentet e mia
blocks on me: Blloqet mbi mua
blocks by me: Bllokimet nga unë
show:
title: Përdoruesi
heading: Përdorues
- empty: Asnjë përdorues që përputhet nuk u gjet
page:
confirm: Konfirmo përdoruesit e zgjedhur
hide: Fshih përdoruesit e zgjedhur
+ empty: Asnjë përdorues që përputhet nuk u gjet
user:
summary_html: '%{name} krijuar nga %{ip_address} më %{date}'
summary_no_ip_html: '%{name} krijuar më %{date}'
name: Daljinsko upravljanje
description: Daljinsko upravljanje (JOSM ili Merkaartor)
accounts:
- edit:
+ show:
title: Uredi nalog
- my settings: Postavke
current email address: 'Trenutna e-adresa:'
openid:
link text: šta je ovo?
show:
title: Uslovi uređivanja
heading: Uslovi uređivanja
- consider_pd: Prema gorenavedenom ugovoru, smatram da moji doprinosi pripadaju
- javnom vlasništvu
- consider_pd_why: šta je ovo?
you need to accept or decline: Molimo vas da pročitate ugovor pre nego što
ga prihvatite.
legale_select: 'Izaberite zemlju prebivališta:'
my diary: moj dnevnik
my edits: moje izmene
my traces: moji tragovi
- my settings: moje postavke
my comments: moji komentari
blocks on me: blokiranja na mene
blocks by me: moja blokiranja
show:
title: Korisnici
heading: Korisnici
- empty: Nije pronađen nijedan korisnik
page:
confirm: Potvrdi izabrane korisnike
hide: Sakrij izabrane korisnike
+ empty: Nije pronađen nijedan korisnik
user:
summary_html: '%{name} napravljeno od %{ip_address} dana %{date}'
summary_no_ip_html: '%{name} napravljeno %{date}'
comment: Коментар
full: Потпуна белешка
accounts:
- edit:
+ show:
title: Уреди налог
- my settings: Поставке
current email address: Тренутна имејл адреса
external auth: Спољна аутентификација
openid:
heading: Услови
read_ct: Прочитао сам и прихватам горе наведене услове
read_tou: Прочитао сам и прихватам Услове коришћења
- consider_pd: Према горенаведеном, сматрам да моји доприноси припадају јавном
- власништву
- consider_pd_why: шта је ово?
guidance_info_html: 'Информације за разумевање ових услова: a %{readable_summary_link}
и %{informal_translations_link}'
readable_summary: сумарум
terms accepted: Хвала вам што прихватате нове услове уређивања.
terms_declined_flash:
terms_declined_url: http://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=sr-ec
+ pd_declarations:
+ show:
+ confirm: Потврди
browse:
edited_ago_by_html: Уређено %{time_ago} од %{user}
version: Верзија
continue: Отвори налог
email_help:
privacy_policy: политика приватности
- consider_pd: јавно власништво
or: или
use external auth: или се региструјте путем треће стране
no_such_user:
my notes: Моје белешке
my messages: Моје поруке
my profile: Мој профил
- my settings: Моје поставке
my comments: Моји коментари
my_preferences: Моја подешавања
my_dashboard: Tабла
show:
title: Корисници
heading: Корисници
- empty: Није пронађен ниједан корисник
+ states:
+ deleted: Обрисано
+ ip_address: IP адреса
+ search: Претрага
page:
confirm: Потврди изабране кориснике
hide: Сакриј изабране кориснике
+ empty: Није пронађен ниједан корисник
user:
summary_html: '%{name} направљено од %{ip_address} дана %{date}'
summary_no_ip_html: '%{name} направљено %{date}'
comment: Kommentar
full: Hela anteckningen
accounts:
- edit:
+ show:
title: Redigera konto
- my settings: Mina inställningar
current email address: Nuvarande e-postadress
external auth: Extern autentisering
openid:
och andra infrastrukturer från OSMF får användas. Klicka på länken, läs
och godkänn villkoren.
read_tou: Jag har läst och samtycker med användarvillkoren.
- consider_pd: Utöver ovan nämnda avtal, anser jag att mina bidrag är inom allmän
- egendom.
- consider_pd_why: vad är det här?
guidance_info_html: 'Information som hjälper dig att förstå dessa termer:
en %{readable_summary_link} och några %{informal_translations_link}'
readable_summary: mänskligt läsbar sammanfattning
privacy_policy_title: OSMF:s integritetspolicy inkluderingsavsnitt om e-postadresser
html: Din adress visas inte offentligt, se vår %{privacy_policy_link} för
mer information.
- consider_pd_html: Jag anser mina bidrag vara i %{consider_pd_link}.
- consider_pd: public domain
or: eller
use external auth: eller registrera med en tredje part
no_such_user:
my notes: Mina kartanteckningar
my messages: Mina meddelanden
my profile: Min profil
- my settings: Mina inställningar
my comments: Mina kommentarer
my_preferences: Mina alternativ
my_dashboard: Min kontrollpanel
show:
title: Användare
heading: Användare
- empty: Inga motsvarande användare hittades
page:
found_users:
one: '%{count} användare hittade'
other: '%{count} användare hittade'
confirm: Bekräfta valda användare
hide: Dölj valda användare
+ empty: Inga motsvarande användare hittades
user:
summary_html: '%{name} skapades från %{ip_address} den %{date}'
summary_no_ip_html: '%{name} skapad den %{date}'
opened_at_html: '%{when} உருவாக்கப்பட்டது'
opened_at_by_html: '%{when} %{user} பயனரால் உருவாக்கப்பட்டது'
accounts:
- edit:
+ show:
title: கணக்கை திருத்து
- my settings: என் அமைப்புகள்
current email address: 'தற்பொழுதுள்ள மின்னஞ்சல் முகவரி:'
openid:
link text: இது என்ன?
show:
my diary: எனது நாட்குறிப்பேடு
my edits: என் திருத்தங்கள்
- my settings: என் அமைப்புகள்
create_mute: இப்பயனரை மௌனி
destroy_mute: இப்பயனரை ஓசையாக்கு
diary: நாட்குறிப்பேடு
comment: వ్యాఖ్య
full: పూర్తి గమనిక
accounts:
- edit:
+ show:
title: ఖాతా మార్పు
- my settings: నా అమరికలు
current email address: ప్రస్తుత ఈమెయిలు చిరునామా
external auth: బయటి ఆథెంటికేషను
openid:
show:
heading: నియమాలు
read_tou: నేను వాడుక నియమాలను చదివాను, వాటికి అంగీకరిస్తున్నాను
- consider_pd_why: ఇది ఏమిటి?
informal_translations: అనధికారిక అనువాదాలు
continue: కొనసాగించు
legale_select: 'నివసించే దేశం:'
my notes: నా గమనికలు
my messages: నా సందేశాలు
my profile: నా ప్రొఫైలు
- my settings: నా అమరికలు
my comments: నా వ్యాఖ్యలు
my_preferences: నా అభీష్టాలు
my_dashboard: నా డ్యాష్బోర్డు
show:
title: వాడుకరులు
heading: వాడుకరులు
- empty: సరిపోలే వాడుకరులు కనబడలేదు
page:
confirm: ఎంచుకున్న వాడూకరులను ధ్రువీకరించు
hide: ఎంచుకున్న వాడుకరులను దాచు
+ empty: సరిపోలే వాడుకరులు కనబడలేదు
user:
summary_html: '%{name}, %{date} న %{ip_address} నుండి సృష్టించారు'
summary_no_ip_html: '%{name} %{date} న సృష్టించారు'
message: ข้อความ
node: โหนด
node_tag: ป้ายกำกับโหนด
+ note: หมายเหตุ
old_node: โหนดเก่า
old_node_tag: แท็กกำกับโหนดเก่า
old_relation: ความสัมพันธ์เดิม
support_url: ที่อยู่ URL สนับสนุน
allow_read_prefs: อ่านการตั้งค่าของผู้ใช้
allow_write_prefs: แก้ไขการตั้งค่าของผู้ใช้
- allow_write_diary: สรà¹\89าà¸\87รายà¸\81ารà¸\9aัà¸\99à¸\97ึà¸\81 à¸\82à¹\89à¸à¸\84ิà¸\94à¹\80หà¹\87à¸\99 à¹\81ละà¸\9eà¸\9aà¹\80à¸\9eืà¹\88à¸à¸\99à¹\83หมà¹\88
+ allow_write_diary: สรà¹\89าà¸\87รายà¸\81ารà¸\9aัà¸\99à¸\97ึà¸\81 à¸\82à¹\89à¸à¸\84ิà¸\94à¹\80หà¹\87à¸\99 à¹\81ละà¹\81สà¸\94à¸\87à¸\84วามà¸\84ิà¸\94à¹\80หà¹\87à¸\99
allow_write_api: แก้ไขแผนที่
+ allow_write_changeset_comments: เพิ่มความคิดเห็นเกี่ยวกับชุดการเปลี่ยนแปลง
allow_read_gpx: อ่านรอยทาง GPS ส่วนบุคคล
allow_write_gpx: อัปโหลดรอยทาง GPS
allow_write_notes: แก้ไขโน้ต
comment: ความคิดเห็น
full: เนื้อความเต็มในโน้ต
accounts:
- edit:
+ show:
title: แก้ไขบัญชี
- my settings: การตั้งค่าของฉัน
current email address: ที่อยู่อีเมลปัจจุบัน
external auth: การยืนยันตัวตนด้วยบริการภายนอก
openid:
title: ข้อกำหนด
heading: ข้อกำหนด
heading_ct: ข้อกำหนดผู้ร่วมให้ข้อมูล
+ read and accept with tou: โปรดอ่านข้อตกลงผู้มีส่วนร่วมให้ข้อมูลและเงื่อนไขการใช้งาน
+ ทำเครื่องหมายทั้งสองช่องเมื่อเสร็จสิ้น จากนั้นกดปุ่มดำเนินการต่อ
+ contributor_terms_explain: ข้อตกลงนี้ใช้บังคับกับข้อกำหนดสำหรับการมีส่วนร่วมในปัจจุบันและในอนาคตของคุณ
+ read_ct: ฉันได้อ่านและยอมรับเงื่อนไขของผู้มีส่วนร่วมให้ข้อมูลข้างต้นแล้ว
read_tou: ข้าพเจ้าได้อ่านและเห็นด้วยในข้อกำหนดการใช้งาน
- consider_pd: นอกเหนือจากข้อความข้างต้น ข้าพเจ้ายินดีสละการสร้างสรรค์ของข้าพเจ้าให้เป็นงานอันไม่มีลิขสิทธิ์
- consider_pd_why: นี้คืออะไร?
continue: ถัดไป
+ cancel: ยกเลิก
you need to accept or decline: กรุณาตรวจทานและเลือกยอมรับหรือไม่ยอมรับข้อกำหนดของผู้ร่วมให้ข้อมูลเพื่อไปต่อ
legale_select: 'ประเทศที่พำนัก:'
legale_names:
way: เส้นทาง
relation: ความสัมพันธ์
containing_relation:
- entry_role_html: à¸\84วามสัมà¸\9eัà¸\99à¸\98à¹\8c%{relation_name} (à¹\83à¸\99à¸\90าà¸\99ะ%{relation_role})
+ entry_role_html: à¸\84วามสัมà¸\9eัà¸\99à¸\98à¹\8c%{relation_name} (à¹\83à¸\99à¸\9aà¸\97à¸\9aาà¸\97%{relation_role})
not_found:
title: ไม่พบข้อมูล
timeout:
title: ชุดการเปลี่ยนแปลง %{id}
title_comment: ชุดการเปลี่ยนแปลง %{id} - %{comment}
created: สร้างเมื่อ
- closed: ปิดเมื่อ
+ closed: ปิด
belongs_to: ผู้สร้าง
show:
title: 'ชุดการเปลี่ยนแปลง: %{id}'
popup:
your location: ตำแหน่งของคุณ
nearby mapper: คนทำแผนที่ ที่อยู่ใกล้เคียง
+ following: ติดตาม
show:
title: แผงควบคุมของฉัน
no_home_location_html: '%{edit_profile_link} และตั้งตำแหน่งบ้านของให้ผู้ใช้ไกล้เคียงเห็น'
edit_your_profile: แก้ไขโปรไฟล์ของคุณ
+ followings: การติดตาม
+ no followings: คุณยังไม่ได้ติดตามผู้ใช้คนใดเลย
nearby users: ผู้ใช้อื่นที่ใกล้เคียง
no nearby users: ไม่ได้มีผู้ใดแสดงตัวว่าทำแผนที่อยู่ใกล้เคียง
+ followed_changesets: ชุดการเปลี่ยนแปลง
+ followed_diaries: รายการบันทึก
nearby_changesets: ชุดการเปลี่ยนแปลงของผู้ใช้ใกล้เคียง
nearby_diaries: บันทึกของผู้ใช้ใกล้เคียง
diary_entries:
reset: ตั้งรหัสผ่านใหม่
update:
flash changed: เปลี่ยนรหัสผ่านของคุณแล้วเรียบร้อย
+ preferences:
+ show:
+ title: การตั้งค่าของฉัน
+ preferred_site_color_scheme: โทนสีของเว็บไซต์ที่ต้องการ
+ preferred_map_color_scheme: โทนสีของแผนที่ที่ต้องการ
profiles:
edit:
image: 'รูปภาพ:'
my notes: หมายเหตุของฉัน
my messages: ข้อความของฉัน
my profile: ประวัติของฉัน
- my settings: การตั้งค่าของฉัน
my comments: ความคิดเห็นของฉัน
+ my_preferences: การตั้งค่าของฉัน
+ my_dashboard: แผงควบคุมของฉัน
blocks on me: การถูกระงับของฉัน
blocks by me: ผู้ใช้ที่ข้าพเจ้ากีดกัน
send message: ส่งข้อความ
show:
title: ผู้ใช้
heading: ผู้ใช้
- empty: ไม่พบผู้ใช้ตรงตามที่กำหนด
page:
confirm: ยืนยันผู้ใช้ที่เลือก
hide: ซ่อนผู้ใช้ที่เลือก
+ empty: ไม่พบผู้ใช้ตรงตามที่กำหนด
user:
summary_html: '%{name} สร้างจากไอพี %{ip_address} เมื่อ %{date}'
changeset_comments:
entry:
full: Buong tala
accounts:
- edit:
+ show:
title: Baguhin ang akawnt
- my settings: Mga pagtatakda ko
current email address: Pangkasalukuyang Tirahan ng E-liham
external auth: Panlabas na Pagpapatunay
openid:
title: 'Mga tuntunin:'
heading: Mga tuntunin
heading_ct: Mga tuntunin sa taga-ambag
- consider_pd: Bukod sa nabanggit, itinuturing ko ang mga ambag ko bilang nasa
- Nasasaklawan ng Madla.
- consider_pd_why: ano ba ito?
continue: Magpatuloy
you need to accept or decline: Mangyaring basahin at pagkaraan ay tanggipin
o tanggihan ang bagong mga Tuntunin ng Tagapag-ambag upang makapagpatuloy.
my traces: Mga Bakas Ko
my notes: Aking Talaan
my messages: Aking mga Mensahe
- my settings: mga pagtatakda ko
my comments: mga puna ko
my_dashboard: Aking Tapalodo
blocks on me: mga paghadlang sa akin
show:
title: Mga tagagamit
heading: Mga tagagamit
- empty: Walang natagpuan na katugmang mga tagagamit
page:
confirm: Tiyakin ang Napiling mga Tagagamit
hide: Itago ang Napiling mga Tagagamit
+ empty: Walang natagpuan na katugmang mga tagagamit
user:
summary_html: Nilikha ang %{name} mula sa %{ip_address} noong %{date}
summary_no_ip_html: Nilikha ang %{name} noong %{date}
comment: Yorum
full: Notun tamamı
accounts:
- edit:
+ show:
title: Hesabı düzenle
- my settings: Ayarlarım
current email address: Geçerli E-posta Adresi
external auth: Harici Kimlik Doğrulama
openid:
diğer altyapıların kullanımını yönetmektedir. Lütfen bağlantıya tıklayın,
metni okuyun ve kabul edin.
read_tou: Kullanım Şartlarını okudum ve kabul ediyorum
- consider_pd: Yukarıdakilere ek olarak katkılarınızın kamu malı olarak kabul
- edilmesini de seçebilirsiniz
- consider_pd_why: bu nedir?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 'Bu terimleri anlamanıza yardımcı olacak bilgiler: %{readable_summary_link}
ve bazı %{informal_translations_link}'
readable_summary: okunabilir özet
Daha fazla bilgi için lütfen %{terms_declined_link} sayfasına bakınız.
terms_declined_link: bu wiki sayfası
terms_declined_url: https://wiki.openstreetmap.org/wiki/Tr:Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
browse:
deleted_ago_by_html: '%{user} tarafından %{time_ago} silindi'
edited_ago_by_html: '%{user} tarafından %{time_ago} düzenlendi'
politikası
html: Adresiniz herkese açık olarak görüntülenmiyor, daha fazla bilgi için
%{privacy_policy_link} sayfasına bakın.
- consider_pd_html: Katkılarımın %{consider_pd_link} içinde olduğunu düşünüyorum.
- consider_pd: kamu malı
or: veya
use external auth: veya üçüncü bir parti uygulamasıyla kaydolun
no_such_user:
my notes: Notlarım
my messages: Mesajlarım
my profile: Profilim
- my settings: Ayarlarım
my comments: Yorumlarım
my_preferences: Tercihlerim
my_dashboard: Gösterge Panelim
show:
title: Kullanıcılar
heading: Kullanıcılar
- empty: Eşleşen kullanıcı bulunamadı
page:
found_users:
one: '%{count} kullanıcı bulundu'
other: '%{count} kullanıcı bulundu'
confirm: Seçili Kullanıcıları Doğrulayın
hide: Seçilen Kullanıcıları Gizle
+ empty: Eşleşen kullanıcı bulunamadı
user:
summary_html: '%{name}, %{date} tarihinde %{ip_address} tarafından oluşturuldu.'
summary_no_ip_html: '%{name} %{date} tarihinde oluşturuldu.'
url: https://wiki.openstreetmap.org/wiki/Tr:Beginners%27_guide
counter_warning_forum_link:
text: topluluk size yardımcı olabilir
- url: https://community.openstreetmap.org/
advice: Notunuz herkese açıktır ve haritayı güncellemek için kullanılabilir,
bu nedenle kişisel bilgilerinizi veya telif hakkıyla korunan haritalar veya
dizin listelerinden bilgi girmeyin.
comment: Шәрех
full: Тулы текст
accounts:
- edit:
+ show:
title: Хисапъязманы үзгәртергә
- my settings: Көйләнмәләрем
current email address: Хәзерге электрон почта адресы
external auth: Тышкы аутентификация
openid:
my diary: Көндәлегем
my edits: Төзәтмәләрем
my messages: Хәбәрләрем
- my settings: Көйләнмәләрем
send message: Хәбәр җибәрү
diary: Көндәлек
edits: Төзәтмәләр
comment: Коментар
full: Повний текст
accounts:
- edit:
+ show:
title: Редагувати обліковий запис
- my settings: Налаштування
current email address: Поточна адреса електронної пошти
external auth: Стороння автентифікація
openid:
іншої інфраструктури, що надається за підтримки OSMF. Натисніть на посилання,
прочитайте та погодьтесь з текстом.'
read_tou: Я уважно ознайомився та згоден з Умовами використання
- consider_pd: На додачу до зазначеного, прошу вважати мій внесок суспільним
- надбанням
- consider_pd_why: що це?
- consider_pd_why_url: https://wiki.openstreetmap.org/wiki/Uk:Чому_я_хочу,_щоб_мої_внески_були_суспільним_надбанням
guidance_info_html: 'Інформація, що допоможе зрозуміти ці терміни: %{readable_summary_link}
та %{informal_translations_link}'
readable_summary: простою мовою
Докладніше дивіться %{terms_declined_link}.
terms_declined_link: цю вікі-сторінку.
terms_declined_url: https://wiki.openstreetmap.org/wiki/Uk:Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://wiki.openstreetmap.org/wiki/Uk:Чому_я_хочу,_щоб_мої_внески_були_суспільним_надбанням
browse:
deleted_ago_by_html: Вилучив(ла) %{time_ago} %{user}
edited_ago_by_html: Змінено %{user} %{time_ago}
електронної пошти
html: Ваша адреса ніколи не показуватиметься публічно. Ознайомтесь з нашою
%{privacy_policy_link} для отримання докладної інформації.
- consider_pd_html: Я вважаю свій внесок %{consider_pd_link}.
- consider_pd: суспільним надбанням
or: або
use external auth: або використовуйте, облікові записи з інших ресурсів для
входу
my notes: Мої нотатки
my messages: Повідомлення
my profile: Профіль
- my settings: Налаштування
my comments: Мої коментарі
my_preferences: Вподобання
my_dashboard: Інфо панель
show:
title: Учасники
heading: Учасники
- empty: Не знайдено учасників відповідно до критеріїв пошуку
page:
found_users:
one: знайдено %{count} користувача
other: 'знайдено '
confirm: Підтвердити вибір учасників
hide: Сховати вибраних учасників
+ empty: Не знайдено учасників відповідно до критеріїв пошуку
user:
summary_html: '%{name} зареєстровано з %{ip_address}, %{date}'
summary_no_ip_html: '%{name} зареєстровано %{date}'
comment: Bình luận
full: Ghi chú đầy đủ
accounts:
- edit:
+ show:
title: Chỉnh sửa tài khoản
- my settings: Tùy chọn
current email address: Địa chỉ Thư điện tử Hiện tại
external auth: Xác minh Bên ngoài
openid:
sở hạ tầng khác do OSMF cung cấp. Xin vui lòng mở liên kết và đọc và chấp
nhận thỏa thuận.
read_tou: Tôi đã đọc và chấp nhận Điều khoản sử dụng
- consider_pd: Bên ngoài các điều bên trên, tôi coi rằng các đóng góp của tôi
- thuộc về phạm vi công cộng
- consider_pd_why: đây là gì?
guidance_info_html: 'Thông tin giúp hiểu các thuật ngữ này: a %{readable_summary_link}
và một số %{informal_translations_link}'
readable_summary: bản tóm tắt dễ đọc
địa chỉ thư điện tử
html: Địa chỉ thư điện tử không được hiển thị công khai, xem thêm thông tin
trong %{privacy_policy_link} của chúng tôi.
- consider_pd_html: Tôi coi những đóng góp của mình thuộc về %{consider_pd_link}.
- consider_pd: phạm vi công cộng
or: hoặc
use external auth: hoặc mở tài khoản qua dịch vụ bên thứ ba
no_such_user:
my notes: Ghi chú của Tôi
my messages: Hộp Tin nhắn
my profile: Trang của Tôi
- my settings: Tùy chọn
my comments: Bình luận của Tôi
my_preferences: Tùy chỉnh
my_dashboard: Bảng điều khiển
show:
title: Người dùng
heading: Người dùng
- empty: Không tìm thấy người dùng.
page:
found_users:
other: Đã tìm thấy %{count} người dùng
confirm: Xác nhận những Người dùng Được chọn
hide: Ẩn những Người dùng Được chọn
+ empty: Không tìm thấy người dùng.
user:
summary_html: '%{name} do %{ip_address} mở ngày %{date}'
summary_no_ip_html: '%{name} mở ngày %{date}'
comment: კომენტარი
full: ედომუშამი ტექსტი
accounts:
- edit:
+ show:
title: ანგარიშიშ რედაქტირაფა
- my settings: ჩქიმი პარამეტრეფი
current email address: ელ-ფოსტაშ ასეიანი მიოწურაფუ
external auth: გალენი აუთენტიფიკაცია
openid:
# Author: 七八年再来一次
# Author: 乌拉跨氪
# Author: 予弦
+# Author: 人间百态
# Author: 列维劳德
# Author: 夢蝶葬花
# Author: 孟天皓
allow_write_prefs: 修改其用户偏好
allow_write_diary: 创建日记和评论
allow_write_api: 修改地图
+ allow_write_changeset_comments: 评论变更集
allow_read_gpx: 读取他们的私人GPS轨迹
allow_write_gpx: 上传GPS轨迹
allow_write_notes: 修改注记
comment: 评论
full: 完整注记
accounts:
- edit:
+ show:
title: 编辑账户
- my settings: 我的设置
+ my_account: 我的账户
current email address: 当前电子邮件地址
external auth: 外部身份验证
openid:
read_ct: 我已了解并同意贡献者条款
tou_explain_html: 这些%{tou_link}适用于网站方面的使用,与其它由OSMF提供的基础内容。请点击链接,阅读并同意该条款。
read_tou: 我已阅读并同意使用条款
- consider_pd: 除了上述协议,我同意将我的贡献释于公有领域
- consider_pd_why: 这是什么?
- consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 有助于理解这些术语的信息:一个 %{readable_summary_link} 和一些 %{informal_translations_link}
readable_summary: 人类可读的摘要
informal_translations: 非正式翻译
terms_declined_html: 我们很遗憾您已决定不接受新的贡献者条款。有关详细信息,请参阅%{terms_declined_link}。
terms_declined_link: 此wiki页面
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
+ confirm: 确认
+ create:
+ successfully_declared: 您已成功声明您的编辑属于公共领域。
browse:
deleted_ago_by_html: 由 %{user} 删除于 %{time_ago}
edited_ago_by_html: 由%{user} 编辑于 %{time_ago}
popup:
your location: 您的位置
nearby mapper: 附近绘图者
+ following: 关注中的用户
show:
title: 我的综合面板
no_home_location_html: '%{edit_profile_link}并设定你的家庭地址来查看附近的用户。'
edit_your_profile: 编辑你的档案
+ followings: 关注中的用户
+ no followings: 您还没有关注任何用户。
nearby users: 其他附近的用户
no nearby users: 附近没有在进行制图的用户。
followed_changesets: 变更集
+ followed_diaries: 日记条目
nearby_changesets: 附近用户的变更集
nearby_diaries: 附近用户的日记文章
diary_entries:
use_map_link: 使用地图
index:
title: 用户日记
+ title_followed: 关注中的用户的日记
title_nearby: 附近用户的日记
user_title: '%{user}的日记'
in_language_title: '%{language}日记文章'
not_found:
title: 文件未找到
description: 在 OpenStreetMap 服务器上找不到该名称的文件、目录或API 操作(HTTP 404)
+ follows:
+ show:
+ follow:
+ heading: 您想要关注%{user}吗?
+ button: 关注用户
+ unfollow:
+ heading: 您想要取消关注%{user}吗?
+ button: 取消关注用户
geocoder:
search:
title:
bridleway: 马道
bus_guideway: 导轨公交车道
bus_stop: 公共汽车站
+ busway: 公交专用道
construction: 在建公路
corridor: 走廊
crossing: 十字路口
reports: 举报
last_updated: 最后更新
last_updated_time_ago_user_html: 由 %{user} 于 %{time_ago}
+ reporting_users: 举报用户
reports_count:
one: '%{count}个举报'
other: '%{count}个举报'
+ more_reporters: 以及%{count}个
reported_item: 举报项
states:
ignored: 已忽略
communities: 社区
learn_more: 了解更多
more: 更多
+ offline_flash:
+ announcement: 您可以在此阅读公告。
user_mailer:
diary_comment_notification:
description: 'OpenStreetMap 日记 #%{id}'
preview: 预览
help: 帮助
pagination:
+ changeset_comments:
+ older: 较旧评论
+ newer: 较新评论
diary_comments:
older: 较旧评论
newer: 较新评论
not_public: 您尚未公开您的编辑。
not_public_description_html: 您将无法再编辑此地图,直到您做到如上所述。您可以通过您的%{user_page}公开您的编辑。
user_page_link: 用户页面
- anon_edits_link: http://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits
+ anon_edits_link: https://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits
anon_edits_link_text: 了解为什么这很重要。
edit:
id_not_configured: iD 尚未配置
write_prefs: 修改用户首选项
write_diary: 创建日记和评论
write_api: 修改地图
+ write_changeset_comments: 评论变更集
read_gpx: 读取私人GPS轨迹
write_gpx: 上传GPS轨迹
write_notes: 修改备注
write_redactions: 隐删地图数据
+ write_blocks: 创建与撤销用户封禁
read_email: 查看用户邮箱地址
consume_messages: 读取、更新状态和删除用户留言
send_messages: 向其他用户发送私信
privacy_policy: 隐私政策
privacy_policy_title: OSM基金会隐私政策包括电子邮件地址部分
html: 您的地址不会公开显示,请参阅我们的%{privacy_policy_link}了解更多信息。
- consider_pd_html: 我认为我的贡献应在 %{consider_pd_link} 中。
- consider_pd: 公有领域
- consider_pd_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
or: 或
use external auth: 或使用第三方服务登录
no_such_user:
my notes: 我的注记
my messages: 我的消息
my profile: 我的资料
- my settings: 我的设置
+ my_account: 我的账户
my comments: 我的评论
my_preferences: 我的偏好
my_dashboard: 我的综合面板
edits: 编辑
traces: 轨迹
notes: 地图注记
+ unfollow: 取消关注
+ follow: 关注
mapper since: 绘图者注册于:
last map edit: 最后地图编辑于:
no activity yet: 尚无活动
show:
title: 用户
heading: 用户
- empty: 未找到匹配用户
+ select_status: 选择状态
+ ip_address: IP地址
+ search: 搜索
page:
found_users:
one: 找到%{count}位用户
other: 找到%{count}位用户
confirm: 确认所选用户
hide: 隐藏所选用户
+ empty: 未找到匹配用户
user:
summary_html: '%{name}在%{date}从%{ip_address}创建'
summary_no_ip_html: '%{name} 创建于 %{date}'
comments:
index:
+ heading_html: '%{user} 的评论'
changesets: 变更集
+ diary_entries: 日记条目
no_comments: 没有评论
changeset_comments:
+ index:
+ title: '%{user} 添加的变更集评论'
page:
changeset: 变更集
when: 时间
title: '%{user} 已添加日记评论'
page:
post: 发布
+ when: 时间
+ comment: 评论
suspended:
title: 帐户已暂停
heading: 帐户已暂停
open_title: '未解决注记 #%{note_name}'
closed_title: '已解决注记 #%{note_name}'
hidden_title: '隐藏注记 #%{note_name}'
+ description_when_author_is_deleted: 已删除
event_opened_by_html: 由%{user}%{time_ago}创建
event_opened_by_anonymous_html: 由匿名用户%{time_ago}创建
event_commented_by_html: 来自%{user}%{time_ago}的评论
url: https://wiki.openstreetmap.org/wiki/Beginners%27_guide
counter_warning_forum_link:
text: 社区可以帮助你
- url: https://community.openstreetmap.org/
advice: 您的注释会公开,并可能用于更新地图,所以不要输入个人信息,或是来自版权保护地图的信息或目录列表。
add: 添加注记
new_readonly:
show_address: 显示地址
query_features: 查询要素
centre_map: 将此处置于地图中间
+ home:
+ marker_title: 我家位置
redactions:
edit:
heading: 编辑隐删
entry:
comment: 評論
accounts:
- edit:
+ show:
title: 編輯帳號
- my settings: 我的設定
current email address: 現在的電郵地址
external auth: 外部認證
openid:
heading: 條款
heading_ct: 貢獻者條款
read_tou: 我已經閱讀過並同意使用條款
- consider_pd: 除上述條款之外,我會把我的貢獻釋放到公共領域(Public Domain)
continue: 繼續
legale_select: 請選擇您的居住地:
legale_names:
body: 抱歉,沒有名為%{user}的用戶。請檢查您的拼寫,或者您可能按到了錯誤的連結。
show:
my notes: 我的註記
- my settings: 我的設定
notes: 地圖註記
report: 舉報此用戶
lists:
allow_write_prefs: 修改使用者偏好設定
allow_write_diary: 建立日記、評論
allow_write_api: 修改地圖
+ allow_write_changeset_comments: 在變更集上留言
allow_read_gpx: 讀取個人 GPS 軌跡
allow_write_gpx: 上傳 GPS 軌跡
allow_write_notes: 修改註記
reopened_at_html: 於%{when}重新開啟
reopened_at_by_html: 於%{when}由%{user}重新開啟
rss:
- title: OpenStreetMap 註記
+ title: 開放街圖註記
description_all: 報告、評論、或關閉的註記清單
description_area: 在你的區域[(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]所報告、評論或關閉的註記的清單
description_item: 註記 %{id} 的 RSS feed
comment: 評論
full: 註記原文
accounts:
- edit:
+ show:
title: 編輯帳號
- my settings: 我的設定值
+ my_account: 我的帳號
current email address: 目前的電子郵件地址
external auth: 外部認證
openid:
title: 刪除我的帳號
warning: 警告!帳號刪除程序不可逆轉,無法復原。
delete_account: 刪除帳號
- delete_introduction: 你可以使用下方按鈕來刪除你的 OpenStreetMap 帳號。並請留意以下細節:
+ delete_introduction: 你可以使用下方按鈕來刪除你的開放街圖帳號。並請留意以下細節:
delete_profile: 你的個人檔案資訊,包含:例如你的頭像圖片、描述,以及住家位置將會移除。
delete_display_name: 你的顯示名稱將會移除,並且會被其他帳號拿來重覆使用。
- retain_caveats: 然而,即使你的帳號被刪除後,一些關於你的資訊仍會繼續保留在 OpenStreetMap 裡:
+ retain_caveats: 然而,即使你的帳號被刪除後,一些關於你的資訊仍會繼續保留在開放街圖裡:
retain_edits: 你對於地圖資料庫的編輯次數,假如存在,這將會繼續保留。
retain_traces: 若有你上傳過的軌跡資料內容,這將會繼續保留。
retain_diary_entries: 若有你的日誌項目與日誌評論內容,這將會繼續保留。
read_ct: 我已閱讀過並同意以上的貢獻者條款
tou_explain_html: 這些%{tou_link}適用於網站方面的使用,與其它由 OSMF 提供的基礎內容。請在連結上點擊,閱讀並同意該文字。
read_tou: 我已經閱讀過並同意使用條款
- consider_pd: 除上述內容之外,我同意將我的貢獻放到公共領域
- consider_pd_why: 這是什麼?
- consider_pd_why_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
guidance_info_html: 有助於理解這些術語的資訊:一個%{readable_summary_link}和一些%{informal_translations_link}
readable_summary: 人類可讀的摘要
informal_translations: 非正式翻譯
terms_declined_html: 我們很遺憾你已決定不接受新的貢獻者條款。有關詳細資訊,請參閱 %{terms_declined_link}。
terms_declined_link: 此 wiki 頁面
terms_declined_url: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined
+ pd_declarations:
+ show:
+ consider_pd_why_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
+ confirm: 確認
browse:
deleted_ago_by_html: 由%{user}%{time_ago}刪除
edited_ago_by_html: 由%{user}%{time_ago}編輯
relation: 關聯
start_rjs:
feature_warning: 載入 %{num_features} 項物件的資料,可能會使你的瀏覽器延遲或無法回應。你確定要顯示這些資料嗎?
+ feature_error: 無法載入圖徵:%{message}
load_data: 載入資料
loading: 正在載入…
tag_details:
comment: '由 %{author} 對變更集 #%{changeset_id} 發表的新評論'
commented_at_by_html: 於%{when}由%{user}更新
show:
- title_all: OpenStreetMap 變更集討論
- title_particular: OpenStreetMap 變更集 %{changeset_id} 討論
+ title_all: 開放貼圖變更集討論
+ title_particular: 開放街圖變更集 %{changeset_id} 討論
timeout:
sorry: 很抱歉,你請求的變更集評論過長無法讀取
changesets:
title: 變更集
title_user: '%{user} 的變更集'
title_user_link_html: '%{user_link} 的變更集'
+ title_followed: 追蹤者的變更集
title_nearby: 附近使用者的變更集
empty: 查無變更集。
empty_area: 此區域沒有變更集。
popup:
your location: 你的位置
nearby mapper: 附近的製圖者
+ following: 追蹤者
show:
title: 我的功能面板
no_home_location_html: '%{edit_profile_link}並編輯你的家位置,來查看附近的使用者。'
edit_your_profile: 編輯你的個人檔案
+ followings: 追蹤者
+ no followings: 您尚未追蹤任何使用者。
nearby users: 其他附近的使用者
no nearby users: 附近沒有已加入製圖的使用者。
+ followed_changesets: 變更集
+ followed_diaries: 日記條目
nearby_changesets: 附近使用者的變更集
nearby_diaries: 附近使用者的日記項目
diary_entries:
use_map_link: 使用地圖
index:
title: 使用者日記
+ title_followed: 追蹤者的日記
title_nearby: 附近的使用者的日記
user_title: '%{user} 的日記'
in_language_title: 語言為%{language}的日記項目
location: 位置:
feed:
user:
- title: '%{user} 的 OpenStreetMap 日記項目'
- description: '%{user} 最近的 OpenStreetMap 日記項目'
+ title: '%{user} 的開放街圖日記項目'
+ description: '%{user} 最近的開放街圖日記項目'
language:
- title: 語言為%{language_name}的OpenStreetMap 日記項目
- description: 語言為%{language_name}的 OpenStreetMap 使用者最近日記項目
+ title: 語言為%{language_name}的開放街圖日記項目
+ description: 語言為%{language_name}的開放街圖使用者最近日記項目
all:
- title: OpenStreetMap 日記項目
- description: OpenStreetMap 使用者最近的日記項目
+ title: 開放街圖日記項目
+ description: 開放街圖使用者最近的日記項目
subscribe:
heading: 訂閱以下日記項目討論?
button: 訂閱討論
button: 取消訂閱討論
diary_comments:
new:
- heading: å\9c¨ä»¥ä¸\8bæ\97¥è¨\98é \85ç\9b®è¨\8eè«\96æ·»å\8a è©\95è«\96?
+ heading: å\9c¨ä»¥ä¸\8bæ\97¥è¨\98é \85ç\9b®è¨\8eè«\96æ\96°å¢\9eç\95\99è¨\80?
doorkeeper:
errors:
messages:
contact:
contact_url_title: 各種聯絡管道說明
contact: 聯絡
- contact_the_community_html: 如果你發現有損壞的連結/錯誤,請隨時%{contact_link}OpenStreetMap 社群。並請記下你的請求的確切
- URL 網址。
+ contact_the_community_html: 如果你發現有損壞的連結/錯誤,請隨時%{contact_link}開放街圖社群。並請記下你的請求的確切
+ URL。
bad_request:
title: 錯誤請求
- description: 你在 OpenStreetMap 伺服器上請求的操作無效 (HTTP 400)
+ description: 你在開放街圖伺服器上請求的操作無效 (HTTP 400)
forbidden:
title: Forbidden
- description: 你在 OpenStreetMap 伺服器上請求的運作僅限管理員使用 (HTTP 403}
+ description: 你在開放街圖伺服器上請求的運作僅限管理員使用 (HTTP 403}
internal_server_error:
title: 應用程式錯誤
- description: OpenStreetMap 伺服器遇到意外情況,而無法滿足請求 (HTTP 500)
+ description: 開放街圖伺服器遇到意外情況,而無法滿足請求 (HTTP 500)
not_found:
title: 檔案未找到
- description: 在 OpenStreetMap 伺服器上找不到該名稱的檔案/目錄/API 操作 (HTTP 404)
+ description: 在開放街圖伺服器上找不到該名稱的檔案/目錄/API 操作 (HTTP 404)
+ follows:
+ show:
+ follow:
+ heading: 您想要追蹤 %{user} 嗎?
+ button: 追蹤使用者
+ unfollow:
+ heading: 您想要取消追蹤 %{user} 嗎?
+ button: 取消追蹤使用者
+ create:
+ success: 您正在追蹤 %{name}!
+ failed: 抱歉,您追蹤 %{name} 的請求失敗。
+ already_followed: 您已追蹤 %{name}。
+ limit_exceeded: 您最近追蹤了大量的使用者。請在嘗試追蹤更多人之前稍等。
+ destroy:
+ success: 您成功取消追蹤了 %{name}。
+ not_followed: 您並未追蹤 %{name}。
geocoder:
search:
title:
bridleway: 騎馬道
bus_guideway: 導軌巴士車道
bus_stop: 公車站牌
+ busway: 公車專用道
construction: 興建中道路
corridor: 走廊
crossing: 行人穿越道
reports: 回報
last_updated: 上一次更新
last_updated_time_ago_user_html: 由%{user}%{time_ago}
+ reporting_users: 回報使用者
reports_count:
one: '%{count} 份回報'
other: '%{count} 份回報'
+ more_reporters: 以及 %{count} 個
reported_item: 已回報項目
states:
ignored: 已忽略
show:
title:
open: '未決問題 #%{issue_id}'
+ ignored: '已忽略的問題 #%{issue_id}'
+ resolved: '已解決的問題 #%{issue_id}'
reports:
one: '%{count} 份回報'
other: '%{count} 份回報'
reopened: 問題狀態已設定成「開啟」
comments:
comment_from_html: 由 %{user_link} 於 %{comment_created_at} 發表的評論
+ reassign_to_moderators: 重新指派問題給仲裁者
+ reassign_to_administrators: 重新指派問題給管理員
reports:
reported_by_html: 由 %{user} 於 %{updated_at} 回報為 %{category}
helper:
reportable_title:
- diary_comment: '%{entry_title},評論 #%{comment_id}'
+ diary_comment: '%{entry_title},留言 #%{comment_id}'
note: '註記 #%{note_id}'
issue_comments:
create:
title: OpenStreetMap 開放街圖
h1: OpenStreetMap 開放街圖
logo:
- alt_text: OpenStreetMap 標誌
+ alt_text: 開放街圖標誌
home: 移至家的位置
logout: 登出
log_in: 登入
gps_traces: GPS 軌跡
user_diaries: 日記
edit_with: 以 %{editor} 編輯
- intro_header: 歡迎來到 OpenStreetMap!
- intro_text: OpenStreetMap 是一份全世界的地圖,由像你這樣的人們所建立,在開放授權下可以自由使用。
+ intro_header: 歡迎來到開放街圖!
+ intro_text: 開放街圖是一份全世界的地圖,由像你這樣的人們所建立,在開放授權下可以自由使用。
hosting_partners_2024_html: 由%{fastly}、%{corpmembers},和其他%{partners}支援代管。
partners_fastly: Fastly
partners_corpmembers: OSMF 團體成員
communities: 社群
learn_more: 瞭解更多
more: 更多
+ offline_flash:
+ osm_offline: 開放街圖資料庫目前已離線,正在進行必要的維護工作。
+ osm_read_only: 開放街圖資料庫目前處於唯讀模式,正在進行必要的維護工作。
+ expected_restore_html: 服務預計於 %{time} 內恢復。
+ announcement: 您可以在此閱讀公告。
user_mailer:
diary_comment_notification:
- description: 'OpenStreetMap 日記項目 #%{id}'
- subject: '[OpenStreetMap] %{user} 已評論日記項目'
+ description: '開放街圖日記項目 #%{id}'
+ subject: '[開放街圖] %{user} 已評論日記項目'
hi: '%{to_user} 你好,'
- header: '%{from_user} 評論主旨為 %{subject} 的 OpenStreetMap 日記項目:'
- header_html: '%{from_user} 評論主旨為 %{subject} 的 OpenStreetMap 日記項目:'
+ header: '%{from_user} 評論主旨為 %{subject} 的開放街圖日記項目:'
+ header_html: '%{from_user} 評論主旨為 %{subject} 的開放街圖日記項目:'
footer: 你也可以在 %{readurl} 閱讀評論,並且在 %{commenturl} 留下評論,或在 %{replyurl} 發送訊息給作者
footer_html: 你也可以在 %{readurl} 閱讀評論,並且在 %{commenturl} 留下評論,或在 %{replyurl} 發送訊息給作者
footer_unsubscribe: 你可以在%{unsubscribeurl}取消訂閱討論
footer_unsubscribe_html: 你可以在%{unsubscribeurl}取消訂閱討論
message_notification:
- subject: '[OpenStreetMap] %{message_title}'
+ subject: '[開放街圖] %{message_title}'
hi: '%{to_user} 您好,'
- header: '%{from_user} 透過 OpenStreetMap 寄給你主旨為 %{subject} 的訊息:'
- header_html: '%{from_user} 透過 OpenStreetMap 寄給你主旨為 %{subject} 的訊息:'
+ header: '%{from_user} 透過開放街圖寄給你主旨為 %{subject} 的訊息:'
+ header_html: '%{from_user} 透過開放街圖寄給你主旨為 %{subject} 的訊息:'
footer: 你也可以在 %{readurl} 閱讀訊息,並且在 %{replyurl} 發送訊息給作者
footer_html: 你也可以在 %{readurl} 閱讀訊息,並且在 %{replyurl} 發送訊息給作者
follow_notification:
hi: 嗨 %{to_user},
+ subject: '[開放街圖] %{user} 已追蹤您'
+ followed_you: '%{user} 現在正在開放街圖上追蹤您。'
see_their_profile: 你可以在 %{userurl} 查看他的基本資料。
see_their_profile_html: 你可以在 %{userurl} 查看他的基本資料。
+ follow_them: 您也可以透過 %{followurl} 追蹤他們。
+ follow_them_html: 您也可以透過 %{followurl} 追蹤他們。
+ gpx_details:
+ details: 您的檔案詳細資訊:
+ filename: 檔案名稱
+ url: URL
+ description: 描述
+ tags: 標籤
+ total_points: 點總數
+ imported_points: 匯入點的數量
gpx_failure:
hi: '%{to_user} 你好,'
failed_to_import: 您的文件似乎無法以GPS軌跡匯入。
+ verify: 請驗證您的檔案是否為有效的 GPX 檔案,或者是否為含有 GPX 檔案的支援格式封存檔 (.tar.gz, .tar.bz2, .tar,
+ .zip, .gpx.gz, .gpx.bz2)。您的檔案是否有格式或語法問題?此為匯入的錯誤內容:
more_info: 有更多關於GPX匯入失敗的資訊與如何避免,可在 %{url} 查詢
more_info_html: 更多關於 GPX 匯入失敗的資訊與如何避免,可在 %{url} 查詢。
- subject: '[OpenStreetMap] GPX 匯入失敗'
+ subject: '[開放街圖] GPX 匯入失敗'
gpx_success:
hi: '%{to_user} 您好,'
+ imported_successfully: 看來您的檔案已成功匯入為 GPS 軌跡。
all_your_traces: 你可以在 %{url} 找到所有上傳成功的 GPX 軌跡
all_your_traces_html: 你可以在 %{url} 找到所有上傳成功的 GPX 軌跡。
- subject: '[OpenStreetMap] GPX 匯入成功'
+ subject: '[開放街圖] GPX 匯入成功'
signup_confirm:
- subject: '[OpenStreetMap] 歡迎加入 OpenStreetMap'
+ subject: '[開放街圖] 歡迎加入開放街圖'
greeting: 你好!
created: 有人 (希望是你) 剛在 %{site_url} 建立了帳號。
confirm: 在我們作出任何動作之前,我們需要確認這是你提出的要求。如果確實是這樣,請按以下連結,以確認你的帳號:
- welcome: 在確認你的帳號後,我們將提供一些額外的訊息,幫助你開始使用 OpenStreetMap。
+ welcome: 在確認您的帳號後,我們將提供一些額外的資訊,協助您開始使用開放街圖。
email_confirm:
- subject: '[OpenStreetMap] 確認你的電子郵件信箱'
+ subject: '[開放街圖] 確認你的電子郵件信箱'
greeting: 您好,
hopefully_you: 有人 (希望是你) 想在 %{server_url} 更改電子郵件信箱為 %{new_address} 。
click_the_link: 如果這是你,請按下列連結確認此變更。
lost_password:
- subject: '[OpenStreetMap] 密碼重設要求'
+ subject: '[開放街圖] 密碼重設要求'
greeting: 你好,
hopefully_you: 有人 (或許是你) 要求將這個電子郵件信箱註冊的 openstreetmap.org 帳號重設密碼。
click_the_link: 如果這是你,請按下列連結重設密碼。
note_comment_notification:
- description: 'OpenStreetMap 註記 #%{id}'
+ description: '開放街圖註記 #%{id}'
anonymous: 匿名使用者
greeting: 你好,
commented:
- subject_own: '[OpenStreetMap] %{commenter} 對你的註記做了評論'
- subject_other: '[OpenStreetMap] %{commenter} 對你感興趣的註記做了評論'
+ subject_own: '[開放街圖] %{commenter} 對你的註記做了評論'
+ subject_other: '[開放街圖] %{commenter} 對你感興趣的註記做了評論'
your_note: '%{commenter} 對 %{place} 附近的地圖註記做了評論。'
your_note_html: '%{commenter} 對 %{place} 附近的地圖註記做了評論。'
commented_note: '%{commenter} 對你感興趣的地圖註記做了評論。該註記在 %{place} 附近。'
commented_note_html: '%{commenter} 對你感興趣的地圖註記做了評論。該註記在 %{place} 附近。'
closed:
- subject_own: '[OpenStreetMap] %{commenter} 解決你其中一筆註記 %{commenter}'
- subject_other: '[OpenStreetMap]%{commenter} 已解決一項你感興趣的註記'
+ subject_own: '[開放街圖] %{commenter} 解決你其中一筆註記 %{commenter}'
+ subject_other: '[開放街圖] %{commenter} 已解決一項你感興趣的註記'
your_note: '%{commenter} 已解決你在 %{place} 附近的註記之一。'
your_note_html: '%{commenter} 已解決你在 %{place} 附近的註記之一。'
commented_note: '%{commenter} 已解決你留言過的地圖註記。該註記在 %{place} 附近。'
commented_note_html: '%{commenter} 已解決你留言過的地圖註記。該註記在 %{place} 附近。'
reopened:
- subject_own: '[OpenStreetMap] %{commenter} 再次開啟你其中一筆註記。'
- subject_other: '[OpenStreetMap] %{commenter} 再次開啟你感興趣的註記。'
+ subject_own: '[開放街圖] %{commenter} 再次開啟你其中一筆註記。'
+ subject_other: '[開放街圖] %{commenter} 再次開啟你感興趣的註記。'
your_note: '%{commenter} 已經再次開啟你其中一筆接近 %{place} 的地圖註記。'
your_note_html: '%{commenter} 已經再次開啟你其中一筆接近 %{place} 的地圖註記。'
commented_note: '%{commenter} 重新開啟了一個你曾評論的地圖註記。該註記位於 %{place} 附近。'
details: 關於註記的更多詳細資料可在 %{url} 找到。
details_html: 在%{url}回覆或是瞭解更多有關註記的訊息。
changeset_comment_notification:
- description: 'OpenStreetMap 變更集 #%{id}'
+ description: '開放街圖變更集 #%{id}'
hi: 嗨 %{to_user},
commented:
- subject_own: '[OpenStreetMap] %{commenter} 對你的變更集做了評論'
- subject_other: '[OpenStreetMap] %{commenter} 對你感興趣的變更集做了評論'
+ subject_own: '[開放街圖] %{commenter} 對你的變更集做了評論'
+ subject_other: '[開放街圖] %{commenter} 對你感興趣的變更集做了評論'
your_changeset: '%{commenter}於 %{time} 在你的變更集做了評論'
your_changeset_html: '%{commenter}於 %{time} 在你的變更集做了評論'
commented_changeset: '%{commenter}於 %{time} 在你監視、由%{changeset_author}建立的變更集做了評論'
preferences:
show:
title: 我的偏好設定
+ preferred_site_color_scheme: 偏好的網站配色
+ site_color_schemes:
+ auto: 自動
+ light: 淺色
+ dark: 深色
+ preferred_map_color_scheme: 偏好的地圖配色
map_color_schemes:
auto: 自動
light: 明亮
sessions:
new:
tab_title: 登入
- login_to_authorize_html: 登入 OpenStreetMap 以存取 %{client_app_name}。
+ login_to_authorize_html: 登入開放街圖以存取 %{client_app_name}。
email or username: 電子郵件地址或使用者名稱
password: 密碼
remember: 記住我
auth failure: 很抱歉,無法以這些資料登入。
destroy:
title: 登出
- heading: 從 OpenStreetMap 登出
+ heading: 從開放街圖登出
logout_button: 登出
suspended_flash:
suspended: 抱歉,由於可疑活動,你的帳戶已被暫停。
preview: 預覽
help: 說明
pagination:
+ changeset_comments:
+ older: 較舊的留言
+ newer: 較新的留言
diary_comments:
older: 較舊的評論
newer: 較新的評論
newer: 新使用者
site:
about:
- heading_html: '%{copyright}OpenStreetMap %{br} 貢獻者'
+ heading_html: '%{copyright}開放街圖 %{br} 貢獻者'
used_by_html: '%{name} 為數以千計的網站、行動應用程式和硬體提供地圖資料'
- lede_text: OpenStreetMap 是由製圖者社群所建立,他們提供及不斷更新包括有關世界各地的道路、路徑、咖啡館、火車站等等的資料。
+ lede_text: 開放街圖是由圖客社群所建立,他們提供及不斷更新包括有關世界各地的道路、路徑、咖啡館、火車站等等的資料。
local_knowledge_title: 地方知識
local_knowledge_html: |-
- OpenStreetMap 強調地方知識。貢獻者們使用
+ 開放街圖強調地方知識。貢獻者們使用
航照圖、GPS 裝置與低技術的實地考察製圖,來檢驗 OSM
是準確而且最新的。
community_driven_title: 社群推動
community_driven_1_html: |-
- OpenStreetMap 的社群多元化、懷有熱情,而且日益壯大。我們的貢獻者包括地圖製作愛好者,地理訊息系統的專業人員,提供 OSM 伺服器的工程師,為受災害影響區域製圖的人道主義志願人士,以及其他各界人士。
+ 開放街圖的社群多元化、懷有熱情,而且日益壯大。我們的貢獻者包括地圖製作愛好者,地理訊息系統的專業人員,提供 OSM 伺服器的工程師,為受災害影響區域製圖的人道主義志願人士,以及其他各界人士。
想進一步了解這個社群,請參閱%{osm_blog_link}、%{user_diaries_link}、
%{community_blogs_link},以及%{osm_foundation_link}網站。
- community_driven_osm_blog: OpenStreetMap 部落格
+ community_driven_osm_blog: 開放街圖部落格
community_driven_user_diaries: 使用者日記
community_driven_community_blogs: 社群部落格
community_driven_osm_foundation: OSM 基金會
open_data_title: 開放資料
- open_data_1_html: OpenStreetMap 是%{open_data}的:你可以自由地使用作任何用途,前提是必須標明作者為 OpenStreetMap
+ open_data_1_html: 開放街圖是%{open_data}的:你可以自由地使用作任何用途,前提是必須標明作者為 OpenStreetMap
及其貢獻者。若你在我們的資料上作修改或以之透過某些方式衍生其他資料,則只可依相同授權條款散佈有關成果。詳情請參閱%{copyright_license_link}。
open_data_open_data: 開放資料
open_data_copyright_license: 版權與授權條款頁面
legal_title: 法律資訊
legal_1_1_html: 本站以及許多相關的服務正式由%{openstreetmap_foundation_link} (OSMF) 代表社群所營運。所有使用的
OSMF 運行服務皆符合我們的%{terms_of_use_link}、%{aup_link}、和%{privacy_policy_link}。
- legal_1_1_openstreetmap_foundation: OpenStreetMap 基金會
+ legal_1_1_openstreetmap_foundation: 開放街圖基金會
legal_1_1_terms_of_use: 使用條款
legal_1_1_aup: 可接受使用方針
legal_1_1_privacy_policy: 隱私權政策
legal_2_1_html: 若你有授權、版權、或其他法律上的問題,請%{contact_the_osmf_link}。
legal_2_1_contact_the_osmf: 聯絡 OSMF
- legal_2_2_html: OpenStreetMap,查看地圖狀態的放大鏡模樣標誌是%{registered_trademarks_link}。
+ legal_2_2_html: 開放街圖、放大鏡標誌與 State of the Map 是%{registered_trademarks_link}。
legal_2_2_registered_trademarks: OSMF 的註冊商標
partners_title: 合作夥伴
copyright:
native_link: 繁體中文版
mapping_link: 開始製圖
legal_babble:
- introduction_1_html: OpenStreetMap%{registered_trademark_link}是%{open_data},透過%{osm_foundation_link}
- (OSMF) 在%{odc_odbl_link}(ODbL)下授權。
+ introduction_1_html: 開放街圖%{registered_trademark_link}是%{open_data},透過%{osm_foundation_link}
+ (OSMF) 以%{odc_odbl_link}(ODbL)授權。
introduction_1_open_data: 開放資料
introduction_1_odc_odbl: 開放資料共享開放資料庫授權
- introduction_1_osm_foundation: OpenStreetMap 基金會
- introduction_2_html: 你可以自由複製、散布、傳輸及修改我們的資料,前提是必須標明作者為 OpenStreetMap 及其貢獻者。若在我們的資料上作變動或以此來建立其他資料,你只能依照相同授權條款來散佈成果。%{legal_code_link}有詳述你的權責。
+ introduction_1_osm_foundation: 開放街圖基金會
+ introduction_2_html: 你可以自由複製、散布、傳輸及修改我們的資料,前提是必須標明作者為開放街圖及其貢獻者。若在我們的資料上作變動或以此來建立其他資料,你只能依照相同授權條款來散佈成果。%{legal_code_link}有詳述你的權責。
introduction_2_legal_code: 法律條款
introduction_3_html: 我們的文件是依據 %{creative_commons_link} 授權條款(CC BY-SA 2.0)獲得許可。
introduction_3_creative_commons: 創用 CC 姓名標示-相同方式分享
introduction_3_creative_commons_url: https://creativecommons.org/licenses/by-sa/2.0/deed.zh_TW
- credit_title_html: 如何標明作者是 OpenStreetMap
- credit_1_html: 當你使用 OpenStreetMap 的資料,你會被要求遵循兩件事:
- credit_2_1: 透過顯示我們的版權聲明為 OpenStreetMap 提供屬名。
+ credit_title_html: 如何標明作者是開放街圖
+ credit_1_html: 當你使用開放街圖的資料,你會被要求遵循兩件事:
+ credit_2_1: 透過顯示我們的版權聲明為開放街圖提供署名。
credit_2_2: 明確資料在開放資料共享開放資料庫授權下可用。
credit_3_html: 對於版權聲明的顯示,我們會依據你如何使用我們的資料,而有不同的要求。例如:不同的規則要如何顯示版權聲明,具體取決於你是否有建立可瀏覽的地圖、列印的地圖、或靜態圖片。完整的詳細資訊要求可以在%{attribution_guidelines_link}上查看。
credit_3_attribution_guidelines: 姓名標示指南
在此範例中,版權相關聲明會出現在地圖的角落處。
credit_4_1_this_copyright_page: 此版權頁面
attribution_example:
- alt: 如何在網頁上署名 OpenStreetMap 的例子
+ alt: 如何在網頁上署名開放街圖的例子
title: 姓名標示例子
more_title_html: 尋找更多
more_1_1_html: 在%{osmf_licence_page_link}閱讀更多關於使用我們的資料,以及如何屬名我們的方式。
more_1_1_osmf_licence_page: OSMF 授權條款頁面
more_2_1_html: |-
- 儘管 OpenStreetMap 是開放資料,我們不對第三方提供免費的地圖 API。
- 請參閱我們的%{api_usage_policy_link}、%{tile_usage_policy_link}、和%{nominatim_usage_policy_link}。
+ 儘管開放街圖是開放資料,但我們不對第三方提供免費的地圖 API。
+ 請參閱我們的%{api_usage_policy_link}、%{tile_usage_policy_link}以及%{nominatim_usage_policy_link}。
more_2_1_api_usage_policy: API 使用方針
more_2_1_tile_usage_policy: 圖磚使用方針
more_2_1_nominatim_usage_policy: 提名使用方針
contributors_za_ngi: 總局:國家地理空間資訊局
contributors_gb_credit_html: '%{united_kingdom}:包含軍械調查資料©皇家版權與資料庫版權 2010-2023。'
contributors_gb_united_kingdom: 英國
- contributors_2_html: 關於這些的進一步詳細資訊,與其他已使用來改善 OpenStreetMap 的來源,請參閱 OpenStreetMap
- Wiki 上的%{contributors_page_link}。
+ contributors_2_html: 關於這些的進一步詳細資訊,與其他已使用來改善開放街圖的來源,請參閱開放街圖 Wiki 上的%{contributors_page_link}。
contributors_2_contributors_page: 貢獻者頁面
- contributors_footer_2_html: OpenStreetMap 收錄一項資料,並不意味原本的資料提供者認可 OpenStreetMap、提供任何保證或承擔任何法律責任。
+ contributors_footer_2_html: 開放街圖收錄一項資料,並不意味原本的資料提供者認可開放街圖、提供任何保證或承擔任何法律責任。
infringement_title_html: 侵犯版權
infringement_1_html: OSM 的貢獻者會被提醒,絕不要在沒有版權所有人的明確淮許下,加入來自任何有版權的來源的資料 (如 Google
地圖或印刷地圖)。
- infringement_2_1_html: 如果你認為有受版權保護的素材被不恰當地加到 OpenStreetMap 資料庫或本網站,請參考我們的%{takedown_procedure_link},或直接在我們的%{online_filing_page_link}反應。
+ infringement_2_1_html: 如果你認為有受版權保護的素材被不恰當地加到開放街圖資料庫或本網站,請參考我們的%{takedown_procedure_link},或直接在我們的%{online_filing_page_link}反應。
infringement_2_1_takedown_procedure: 侵權處理程序
infringement_2_1_online_filing_page: 線上申請頁面
trademarks_title: 商標
- trademarks_1_1_html: OpenStreetMap、網站上的放大鏡標誌,和 State of the Map 是 OpenStreetMap
- 基金會的註冊商標。如果你對商標的使用有任何疑問,請參閱我們的%{trademark_policy_link}。
+ trademarks_1_1_html: 開放街圖、網站上的放大鏡標誌以及 State of the Map 是開放街圖基金會的註冊商標。如果你對商標的使用有任何疑問,請參閱我們的%{trademark_policy_link}。
trademarks_1_1_trademark_policy: 商標方針
index:
js_1: 你使用不支援 JavaScript 的瀏覽器,或者停用了 JavaScript。
- js_2: OpenStreetMap 使用 JavaScript 讓地圖更平順。
+ js_2: 開放街圖使用 JavaScript 讓地圖更平順。
license:
- copyright: 版權所有,由 OpenStreetMap 及貢獻者根據開放的授權協議提供
+ copyright: 版權所有,由開放街圖及貢獻者根據開放的授權協議提供
remote_failed: 編輯失敗 - 請確定已載入 JOSM 或 Merkaartor 並開啟遠端控制選項
not_public_flash:
not_public: 你尚未將你的編輯設為公開。
not_public_description_html: 在你這麼做之前將無法再編輯地圖,可以在你的 %{user_page} 將自己的編輯設定為公開。
user_page_link: 使用者頁面
+ anon_edits_html: (%{link})
+ anon_edits_link: https://wiki.openstreetmap.org/wiki/Disabling_anonymous_edits
anon_edits_link_text: 瞭解為什麼這很重要。
edit:
id_not_configured: iD 尚未設定
odbl: 開放資料共享開放資料庫授權
too_large:
advice: 若以上匯出失敗,請考慮使用下列來源:
- body: 這個區域太大,無法匯出 OpenStreetMap XML 資料。請放大或選擇一個較小的區域,或使用下列大量資料下載源:
+ body: 這個區域太大,無法匯出開放街圖 XML 資料。請放大或選擇一個較小的區域,或使用下列大量資料下載源:
planet:
title: 地球 OSM
- description: 定期更新的完整 OpenStreetMap 資料庫副本
+ description: 定期更新的完整開放街圖資料庫副本
overpass:
title: Overpass API
- description: 從 OpenStreetMap 資料庫的鏡像,下載此區域
+ description: 從開放街圖資料庫的鏡像,下載此區域
geofabrik:
title: Geofabrik 下載
description: 定期更新的洲、國家及特定城市之摘錄資料
other:
title: 其他來源
- description: OpenStreetMap wiki 上列出的其他來源
+ description: 開放街圖 wiki 上列出的其他來源
export_button: 匯出
fixthemap:
title: 回報問題/改進地圖
title: 如何協助
join_the_community:
title: 加入社群
- explanation_html: 如果你發現我們的地圖資料有問題,例如缺少某條道路或者你的地址,最好的方法就是加入 OpenStreetMap
- 社群,然後自己加入或者改進資料。
+ explanation_html: 如果你發現我們的地圖資料有問題,例如缺少某條道路或者你的地址,最好的方法就是加入開放街圖社群,然後自己加入或者改進資料。
add_a_note:
instructions_1_html: |-
只需點選%{note_icon}或地圖上顯示的同一圖示,
working_group: OSMF 工作小組
help:
title: 取得協助
- introduction: OpenStreetMap 有一些資源,可用於學習本專案、提出和回答問題,以及討論和紀錄與製作地圖相關的話題。
+ introduction: 開放街圖有一些資源,可用於學習本專案、提出和回答問題,以及討論和紀錄與製作地圖相關的話題。
welcome:
url: /welcome
title: 歡迎來到開放街圖
description: 社群維護的新手指南
community:
title: 幫助與社群論壇
- description: 尋求幫助與討論有關 OpenStreetMap 的分享場所。
+ description: 尋求幫助與討論有關開放街圖的分享場所。
mailing_lists:
title: 郵件論壇
description: 在不同主題或是地區的郵件論壇問問題或是討論有趣的事物。
description: 使用各種不同語言在各種主題聊天互動。
switch2osm:
title: switch2osm
- description: 協助公司與組織改用 OpenStreetMap 為基礎的地圖與相關服務。
+ description: 協助公司與組織改用開放街圖為基礎的地圖與相關服務。
welcomemat:
title: 對於組織
- description: 想要以組織來對 OpenStreetMap 製作計劃嗎?請在 Welcome Mat 查找你所需要的事項。
+ description: 想要以組織來對開放街圖製作計劃嗎?請在 Welcome Mat 查找你所需要的事項。
wiki:
title: 開放街圖 Wiki
description: 瀏覽 wiki,取得詳盡的開放街圖文件。
doesnt: 不會
basic_terms:
title: 繪製地圖的基本術語
- paragraph_1: OpenStreetMap 有自己的術語。以下是一些常用的關鍵詞。
+ paragraph_1: 開放街圖有自己的術語。以下是一些常用的關鍵詞。
an_editor_html: '%{editor}是你可以用於編輯地圖的程式或網站。'
a_node_html: '%{node}是地圖上的一個點,例如一間餐廳或是一棵樹。'
a_way_html: '%{way}是一條線或是區域,例如一條道路、一條溪、一個湖泊或是一棟建築物。'
rules:
title: 規則!
para_1_html: |-
- OpenStreetMap 幾乎沒有正式規則,但我們希望所有參與者都能與社群合作與溝通!。如果你正在考慮
+ 開放街圖幾乎沒有正式規則,但我們希望所有參與者都能與社群合作與溝通!。如果你正在考慮
除手動編輯之外的任何活動,請閱讀並遵循
%{imports_link} 和 %{automated_edits_link}指南。
imports: 匯入
communities:
title: 社群
lede_text: |-
- 來自世界各地的人們都在貢獻或使用 OpenStreetMap。
+ 來自世界各地的人們都在貢獻或使用開放街圖。
雖然許多人以個人身份參與,但其他人則組成了社群。
這些團體的規模各不相同,代表了小到城鎮大到大型多國地區的地域。
它們也可以是正式的或非正式的。
local_chapters:
title: 地方分會
- about_text: 地方分會是已採取正式步驟建立非營利法人實體的國家級或地區級團體。在與地方政府、企業和媒體打交道時,他們代表該地區的地圖和製圖者。他們還與
- OpenStreetMap 基金會 (OSMF) 締結聯繫,使他們能夠與法律和版權管理機構建立聯繫。
+ about_text: 地方分會是已採取正式步驟建立非營利法人實體的國家級或地區級團體。在與地方政府、企業和媒體打交道時,他們代表該地區的地圖和製圖者。他們還與開放街圖基金會
+ (OSMF) 締結聯繫,使他們能夠與法律和版權管理機構建立聯繫。
list_text: 以下社群已經正式成立地方分會:
other_groups:
title: 其他團體
message: GPX 檔案儲存,上傳系統目前無法使用。
feeds:
show:
- title: OpenStreetMap GPS 軌跡
+ title: 開放街圖 GPS 軌跡
description:
description_with_count:
one: 由 %{user} 上傳的 GPX 檔案,含有 %{count} 點
require_cookies:
cookies_needed: 你似乎已停用 cookies - 請在瀏覽器中開啟 cookies 後再繼續。
setup_user_auth:
- blocked_zero_hour: 你在 OpenStreetMap 網站有一個緊急訊息。在儲存你的編輯內容前請先閱讀該訊息。
+ blocked_zero_hour: 你在開放街圖網站有一個緊急訊息。在儲存你的編輯內容前請先閱讀該訊息。
blocked: 你已經被封鎖使用 API。請登入網頁介面以瞭解更多資訊。
need_to_see_terms: 我們已暫時中止你使用 API 的權限,請登入網頁介面查閱貢獻者條款,你不需要同意有關條款,但必須查閱它們。
settings_menu:
permissions:
missing: 你尚未允許應用程式來訪問此設施
scopes:
- openid: 使用 OpenStreetMap 登入
+ openid: 使用開放街圖登入
read_prefs: 讀取使用者偏好設定
write_prefs: 修改使用者偏好設定
write_diary: 建立日記並評論
write_api: 修改地圖
+ write_changeset_comments: 在變更集上留言
read_gpx: 讀取私人 GPS 軌跡
write_gpx: 上傳 GPS 軌跡
write_notes: 修改註記
write_redactions: 編寫地圖資料
+ write_blocks: 建立與撤銷使用者封鎖
read_email: 讀取使用者電子郵件位址
consume_messages: 讀取、更新狀態、與刪除使用者訊息
send_messages: 傳送私人訊息給其他使用者
new:
title: 註冊
tab_title: 註冊
- signup_to_authorize_html: 註冊 OpenStreetMap 以存取 %{client_app_name}。
+ signup_to_authorize_html: 註冊開放街圖以存取 %{client_app_name}。
no_auto_account_create: 很不幸的,我們現在無法自動為你建立帳號。
please_contact_support_html: 請聯繫 %{support_link} 來安排建立帳號 - 我們會盡快處理這份請求。
support: 支援
about:
header: 自由且可編輯。
- paragraph_1: 不像其他地圖,開放街圖是完全由像你我這類創建,而且任何都能修正、更新、下載與使用。
+ paragraph_1: 不像其他地圖,開放街圖是完全由像你我這樣的人建立,而且任何人都能修正、更新、下載與使用。
paragraph_2: 註冊並開始貢獻。
- welcome: 歡迎來到 OpenStreetMap
- duplicate_social_email: 若你已有 OpenStreetMap 帳號,並希望使用第三方身份提供者,請使用你的密碼登入並修改帳號的設定。
+ welcome: 歡迎來到開放街圖
+ duplicate_social_email: 若你已有開放街圖帳號,並希望使用第三方身份提供者,請使用你的密碼登入並修改帳號的設定。
display name description: 你公開顯示的使用者名稱,之後可以在偏好設定中改變它。
by_signing_up:
html: 註冊即表示你同意我們的 %{tou_link}、%{privacy_policy_link} 與 %{contributor_terms_link}。
privacy_policy: 隱私權政策
privacy_policy_title: OSMF 隱私權政策包含電子郵件地址部份
html: 你的地址不會公開顯示,請參閱我們的%{privacy_policy_link}來了解更多資訊。
- consider_pd_html: 我認為我的貢獻屬於 %{consider_pd_link}。
- consider_pd: 公有領域
- consider_pd_url: https://wiki.osmfoundation.org/wiki/Licence_and_Legal_FAQ/Why_would_I_want_my_contributions_to_be_public_domain
or: 或
use external auth: 或者使用第三方服務註冊
no_such_user:
my notes: 我的註記
my messages: 我的訊息
my profile: 我的基本資料
- my settings: 我的設定值
+ my_account: 我的帳號
my comments: 我的評論
my_preferences: 我的偏好設定
my_dashboard: 我的功能面板
edits: 編輯
traces: 軌跡
notes: 地圖註記
+ unfollow: 取消追蹤
+ follow: 追蹤
mapper since: 註冊為製圖者日期:
last map edit: 最後地圖編輯於:
no activity yet: 尚無活動
show:
title: 使用者
heading: 使用者
- empty: 找不到符合的使用者
+ ip_address: IP 位址
+ search: 搜尋
page:
found_users:
one: 找到 %{count} 位使用者
other: 找到 %{count} 位使用者
confirm: 確認選取的使用者
hide: 隱藏選取的使用者
+ empty: 找不到符合的使用者
user:
summary_html: '%{name} 由 %{ip_address} 於 %{date} 建立'
summary_no_ip_html: '%{name} 建立於:%{date}'
+ comments:
+ index:
+ heading_html: '%{user} 的留言'
+ changesets: 變更集
+ diary_entries: 日記項目
+ no_comments: 沒有留言
changeset_comments:
+ index:
+ title: '%{user} 新增的變更集留言'
page:
+ changeset: 變更集
when: 於
comment: 評論
diary_comments:
index:
- title: æ\97¥è¨\98è©\95è«\96ç\94±%{user}æ·»å\8a
+ title: æ\97¥è¨\98è©\95è«\96ç\94±%{user}æ\96°å¢\9e
page:
post: 貼文
+ when: 於
+ comment: 留言
suspended:
title: 帳號已暫停
heading: 帳號已暫停
invalid_scope: 無效範圍
unknown_error: 驗證失敗
auth_association:
- heading: 你的 ID 尚未與 OpenStreetMap 帳號關聯。
- option_1: 如果你是新來到 OpenStreetMap,請使用下方表單建立一個帳號。
+ heading: 你的 ID 尚未與開放街圖帳號關聯。
+ option_1: 如果你是新來到開放街圖,請使用下方表單建立一個帳號。
option_2: 如果你已擁有一個帳號,可以用你的使用者名稱與密碼登入你的帳號,並在使用者設定中關連你的 ID。
user_role:
filter:
revoked_html: 已被 %{name} 撤銷
active: 活躍的
active_until_read: 直到讀取後才活躍
+ read_html: 已讀於 %{time}
+ time_in_future_title: '%{time_absolute};於 %{time_relative}'
+ time_in_past_title: '%{time_absolute};%{time_relative}'
show:
title: '%{block_by}封鎖了%{block_on}'
heading_html: '%{block_by}封鎖了%{block_on}'
display_name: 被封鎖的使用者
creator_name: 建立者
reason: 封鎖的理由
+ start: 開始
+ end: 結束
status: 狀態
navigation:
all_blocks: 所有封鎖
description: 說明
created_at: 建立於:
last_changed: 最新變更
+ apply: 套用
+ all: 全部
+ open: 開放
+ closed: 已關閉
+ status: 狀態
show:
title: 註記:%{id}
description: 說明
open_title: 未解決的註記:#%{note_name}
closed_title: 已解決的註記:#%{note_name}
hidden_title: 已隱藏的註記:#%{note_name}
+ description_when_author_is_deleted: 已刪除
event_opened_by_html: 由%{user}%{time_ago}建立
event_opened_by_anonymous_html: 由匿名使用者%{time_ago}建立
event_commented_by_html: 來自%{user}%{time_ago}的評論
event_hidden_by_html: 由%{user} %{time_ago}隱藏
report: 回報此註記
anonymous_warning: 此項註記包含來自匿名使用者的評論,應作獨立核實。
+ discussion: 討論
+ subscribe: 訂閱
+ unsubscribe: 取消訂閱
hide: 隱藏
resolve: 解決
reactivate: 重新開啟
anonymous_warning_html: 你尚未登入。請%{log_in}或%{sign_up}以便收到你的註記的更新內容並協助其他的地圖編輯者解決問題。
anonymous_warning_log_in: 登入
anonymous_warning_sign_up: 註冊
+ counter_warning_html: 您已張貼了至少 %{x_anonymous_notes},這對社群來說很棒,謝謝!現在,我們鼓勵您%{contribute_by_yourself},這並不複雜,而且%{community_can_help}。
+ x_anonymous_notes:
+ one: '%{count} 則匿名註記'
+ other: '%{count} 則匿名註記'
+ counter_warning_guide_link:
+ text: 自己做出貢獻
+ url: https://wiki.openstreetmap.org/wiki/Beginners%27_guide
+ counter_warning_forum_link:
+ text: 社群可以協助您
advice: 你的註記已公開並可用於更新地圖,因此請不要輸入個人訊息,或是來自於具版權保護地圖的訊息以及目錄清單。
add: 送出註記
+ new_readonly:
+ title: 新增註記
+ warning: 無法建立新註記,因為開放街圖 API 目前處於唯讀模式。
notes_paging_nav:
showing_page: 第 %{page} 頁
next: 下一頁
previous: 上一頁
+ not_found_message:
+ sorry: '抱歉,找不到註記 #%{id}。'
javascripts:
close: 關閉
share:
center_marker: 將標記設為地圖中心點
paste_html: 貼上 HTML 以嵌入網站
view_larger_map: 查看更大的地圖
+ only_layers_exported_as_image: 僅以下圖層可匯出為影像:
embed:
report_problem: 回報問題
key:
gps: 公開GPS軌跡
overlays: 開啟覆蓋層,以為地圖解決問題
title: 圖層
- openstreetmap_contributors: OpenStreetMap 貢獻者
+ openstreetmap_contributors: 開放街圖貢獻者
make_a_donation: 捐款
website_and_api_terms: 網站和 API 條款
cyclosm_credit: 由 %{osm_france_link} 代管的 %{cyclosm_link} 所提供圖磚樣式
- osm_france: OpenStreetMap 法國
+ osm_france: 開放街圖法國
thunderforest_credit: '%{thunderforest_link} 提供的圖磚'
andy_allan: Andy Allan
tracestrack_credit: '%{tracestrack_link} 提供的圖磚'
tracestrack: 蹤跡地圖
hotosm_credit: 由 %{osm_france_link} 代管的 %{hotosm_link} 所提供圖磚樣式
- hotosm_name: OpenStreetMap 人道主義團隊
+ hotosm_name: 開放街圖人道主義團隊
site:
edit_tooltip: 編輯地圖
edit_disabled_tooltip: 放大以編輯地圖
show_address: 顯示地址
query_features: 查詢圖徵
centre_map: 置此於地圖中央
+ home:
+ marker_title: 我家位置
redactions:
edit:
heading: 編輯修訂
get "capabilities" => "capabilities#show"
get "permissions" => "permissions#show"
- put "changeset/create" => "changesets#create"
post "changeset/:id/upload" => "changesets#upload", :as => :changeset_upload, :id => /\d+/
get "changeset/:id/download" => "changesets#download", :as => :changeset_download, :id => /\d+/
get "changeset/:id" => "changesets#show", :as => :changeset_show, :id => /\d+/
post "changeset/:id/unsubscribe" => "changesets#unsubscribe", :as => :api_changeset_unsubscribe, :id => /\d+/
put "changeset/:id" => "changesets#update", :id => /\d+/
put "changeset/:id/close" => "changesets#close", :as => :changeset_close, :id => /\d+/
- get "changesets" => "changesets#index"
post "changeset/:id/comment" => "changeset_comments#create", :as => :changeset_comment, :id => /\d+/
post "changeset/comment/:id/hide" => "changeset_comments#destroy", :as => :changeset_comment_hide, :id => /\d+/
post "changeset/comment/:id/unhide" => "changeset_comments#restore", :as => :changeset_comment_unhide, :id => /\d+/
-
- post "node/:node_id/:version/redact" => "old_nodes#redact", :as => :node_version_redact, :version => /\d+/, :node_id => /\d+/
-
- post "way/:way_id/:version/redact" => "old_ways#redact", :as => :way_version_redact, :version => /\d+/, :id => /\d+/
-
- post "relation/:relation_id/:version/redact" => "old_relations#redact", :as => :relation_version_redact, :version => /\d+/, :id => /\d+/
end
namespace :api, :path => "api/0.6" do
+ resources :changesets, :only => [:index, :create]
+ put "changeset/create" => "changesets#create", :as => nil
+
resources :changeset_comments, :only => :index
resources :nodes, :only => [:index, :create]
resources :relations, :only => :index
end
resources :versions, :path => "history", :controller => :old_nodes, :only => :index
- resources :versions, :path => "", :version => /\d+/, :param => :version, :controller => :old_nodes, :only => :show
+ resource :version, :path => ":version", :version => /\d+/, :controller => :old_nodes, :only => :show do
+ resource :redaction, :module => :old_nodes, :only => [:create, :destroy]
+ end
end
put "node/create" => "nodes#create", :as => nil
+ post "node/:node_id/:version/redact" => "old_nodes/redactions#create", :node_id => /\d+/, :version => /\d+/, :allow_delete => true, :as => nil
resources :ways, :only => [:index, :create]
resources :ways, :path => "way", :id => /\d+/, :only => [:show, :update, :destroy] do
resources :relations, :only => :index
end
resources :versions, :path => "history", :controller => :old_ways, :only => :index
- resources :versions, :path => "", :version => /\d+/, :param => :version, :controller => :old_ways, :only => :show
+ resource :version, :path => ":version", :version => /\d+/, :controller => :old_ways, :only => :show do
+ resource :redaction, :module => :old_ways, :only => [:create, :destroy]
+ end
end
put "way/create" => "ways#create", :as => nil
+ post "way/:way_id/:version/redact" => "old_ways/redactions#create", :way_id => /\d+/, :version => /\d+/, :allow_delete => true, :as => nil
resources :relations, :only => [:index, :create]
resources :relations, :path => "relation", :id => /\d+/, :only => [:show, :update, :destroy] do
resources :relations, :only => :index
end
resources :versions, :path => "history", :controller => :old_relations, :only => :index
- resources :versions, :path => "", :version => /\d+/, :param => :version, :controller => :old_relations, :only => :show
+ resource :version, :path => ":version", :version => /\d+/, :controller => :old_relations, :only => :show do
+ resource :redaction, :module => :old_relations, :only => [:create, :destroy]
+ end
end
put "relation/create" => "relations#create", :as => nil
+ post "relation/:relation_id/:version/redact" => "old_relations/redactions#create", :relation_id => /\d+/, :version => /\d+/, :allow_delete => true, :as => nil
resource :map, :only => :show
resource :status, :only => :update
end
end
- get "/user/:display_name/account", :to => redirect(:path => "/account/edit")
+ get "/user/:display_name/account", :to => redirect(:path => "/account")
get "/user/:display_name/diary/comments(/:page)", :page => /[1-9][0-9]*/, :to => redirect(:path => "/user/%{display_name}/diary_comments")
- resource :account, :only => [:edit, :update, :destroy] do
+ resource :account, :only => [:show, :update, :destroy] do
scope :module => :accounts do
resource :terms, :only => [:show, :update]
resource :pd_declaration, :only => [:show, :create]
resource :home, :only => :show
end
end
+ get "/account/edit", :to => redirect(:path => "/account"), :as => nil
resource :dashboard, :only => [:show]
resource :preferences, :only => [:show, :update]
# Raised when to delete an already-deleted object.
class APIAlreadyDeletedError < APIError
- def initialize(object = "object", object_id = "")
- @object = object
- @object_id = object_id
+ def initialize(type = "object", id = "")
+ @type = type
+ @id = id
- super("The #{object} with the id #{object_id} has already been deleted")
+ super("The #{type} with the id #{id} has already been deleted")
end
- attr_reader :object, :object_id
+ attr_reader :type, :id
def status
:gone
+# frozen_string_literal: true
+
module RichText
SPAMMY_PHRASES = [
"Business Description:", "Additional Keywords:"
end
def truncated_text_content(element)
- text = ""
+ text = +""
append_text = lambda do |child|
if child.type == :text
+# frozen_string_literal: true
+
##
# Encodes and decodes locations from Morton-coded "quad tile" strings. Each
# variable-length string encodes to a precision of one pixel per tile (roughly,
# keep support for old shortlinks which use the @ character, now
# replaced by the ~ character because twitter is horribly broken
# and we can't have that.
- str.tr!("@", "~")
+ str = str.tr("@", "~")
str.each_char do |c|
t = ARRAY.index c
def encode(lon, lat, z)
code = interleave_bits(((lon + 180.0) * (2**32) / 360.0).to_i,
((lat + 90.0) * (2**32) / 180.0).to_i)
- str = ""
+ str = +""
# add eight to the zoom level, which approximates an accuracy of
# one pixel in a tile.
((z + 8) / 3.0).ceil.times do |i|
end
def config_file
- Rails.root.join("config/eslint.js").to_s
+ Rails.root.join("config/eslint.config.mjs").to_s
end
namespace "eslint" do
"osm-community-index": "^5.2.0"
},
"devDependencies": {
+ "@types/jquery": "^3.5.0",
+ "@types/leaflet": "^1.9.0",
"eslint": "^9.0.0",
"eslint-plugin-erb": "^2.1.0",
- "@stylistic/eslint-plugin-js": "^3.0.0",
+ "@stylistic/eslint-plugin-js": "^4.0.0",
"eslint-formatter-compact": "^8.40.0"
}
}
end
class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
+ include ActionMailer::TestCase::ClearTestDeliveries
+
driven_by :selenium, :using => Settings.system_test_headless ? :headless_firefox : :firefox do |options|
options.add_preference("intl.accept_languages", "en")
options.binary = Settings.system_test_firefox_binary if Settings.system_test_firefox_binary
post account_pd_declaration_path
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert_nil flash[:notice]
assert_equal "You didn't confirm that you consider your edits to be in the Public Domain.", flash[:warning]
session_for(user)
get account_terms_path
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
end
def test_show_not_seen_without_referer
session_for(user)
put account_terms_path, :params => { :read_ct => 1, :read_tou => 1 }
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert_equal "Thanks for accepting the new contributor terms!", flash[:notice]
user.reload
user = create(:user, :terms_seen => false, :terms_agreed => nil)
session_for(user)
- get edit_account_path
- assert_redirected_to account_terms_path(:referer => "/account/edit")
+ get account_path
+ assert_redirected_to account_terms_path(:referer => account_path)
end
end
end
# test all routes which lead to this controller
def test_routes
assert_routing(
- { :path => "/account/edit", :method => :get },
- { :controller => "accounts", :action => "edit" }
+ { :path => "/account", :method => :get },
+ { :controller => "accounts", :action => "show" }
)
assert_routing(
{ :path => "/account", :method => :put },
{ :controller => "accounts", :action => "update" }
)
+ assert_routing(
+ { :path => "/account", :method => :delete },
+ { :controller => "accounts", :action => "destroy" }
+ )
+
+ get "/account/edit"
+ assert_redirected_to "/account"
end
- def test_account
+ def test_show_and_update
# Get a user to work with - note that this user deliberately
# conflicts with uppercase_user in the email and display name
# fields to test that we can change other fields without any
# Make sure that you are redirected to the login page when
# you are not logged in
- get edit_account_path
- assert_redirected_to login_path(:referer => "/account/edit")
+ get account_path
+ assert_redirected_to login_path(:referer => account_path)
# Make sure we get the page when we are logged in as the right user
session_for(user)
- get edit_account_path
+ get account_path
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select "form#accountForm" do |form|
assert_equal "post", form.attr("method").to_s
assert_select "input[name='_method']", true
# Updating the description using GET should fail
user.description = "new description"
user.preferred_editor = "default"
- get edit_account_path, :params => { :user => user.attributes }
+ get account_path, :params => { :user => user.attributes }
assert_response :success
- assert_template :edit
+ assert_template :show
assert_not_equal user.description, User.find(user.id).description
# Adding external authentication should redirect to the auth provider
new_attributes = user.attributes.dup.merge(:display_name => create(:user).display_name)
patch account_path, :params => { :user => new_attributes }
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_display_name"
new_attributes = user.attributes.dup.merge(:display_name => create(:user).display_name.upcase)
patch account_path, :params => { :user => new_attributes }
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_display_name"
# Changing name to one that doesn't exist should work
new_attributes = user.attributes.dup.merge(:display_name => "new tester")
patch account_path, :params => { :user => new_attributes }
- assert_redirected_to edit_account_url
- get edit_account_path
+ assert_redirected_to account_path
+ follow_redirect!
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select ".alert-success", /^User information updated successfully/
assert_select "form#accountForm > div > input#user_display_name[value=?]", "new tester"
end
end
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_new_email"
end
end
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select ".alert-success", false
assert_select "form#accountForm > div > input.is-invalid#user_new_email"
patch account_path, :params => { :user => user.attributes }
end
end
- assert_redirected_to edit_account_url
- get edit_account_path
+ assert_redirected_to account_path
+ follow_redirect!
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select ".alert-success", /^User information updated successfully/
assert_select "form#accountForm > div > input#user_new_email[value=?]", user.new_email
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal user.new_email, email.to.first
- ActionMailer::Base.deliveries.clear
end
- def test_private_account
+ def test_show_private_account
user = create(:user, :data_public => false)
# Make sure that you are redirected to the login page when
# you are not logged in
- get edit_account_path
- assert_redirected_to login_path(:referer => "/account/edit")
+ get account_path
+ assert_redirected_to login_path(:referer => account_path)
# Make sure we get the page when we are logged in as the right user
session_for(user)
- get edit_account_path
+ get account_path
assert_response :success
- assert_template :edit
+ assert_template :show
assert_select "form#accountForm" do |form|
assert_equal "post", form.attr("method").to_s
assert_select "input[name='_method']", true
assert_equal 1, email.to.length
assert_equal "[OpenStreetMap] #{commenter_user.display_name} has commented on one of your changesets", email.subject
assert_equal creator_user.email, email.to.first
-
- ActionMailer::Base.deliveries.clear
end
def test_create_on_changeset_with_changeset_creator_and_other_user_subscribers
assert_not_nil email
assert_equal 1, email.to.length
assert_equal "[OpenStreetMap] #{commenter_user.display_name} has commented on a changeset you are interested in", email.subject
-
- ActionMailer::Base.deliveries.clear
end
##
# test all routes which lead to this controller
def test_routes
assert_routing(
- { :path => "/api/0.6/changeset/create", :method => :put },
+ { :path => "/api/0.6/changesets", :method => :get },
+ { :controller => "api/changesets", :action => "index" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/changesets.json", :method => :get },
+ { :controller => "api/changesets", :action => "index", :format => "json" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/changesets", :method => :post },
{ :controller => "api/changesets", :action => "create" }
)
assert_routing(
{ :path => "/api/0.6/changeset/1/close", :method => :put },
{ :controller => "api/changesets", :action => "close", :id => "1" }
)
- assert_routing(
- { :path => "/api/0.6/changesets", :method => :get },
- { :controller => "api/changesets", :action => "index" }
- )
- assert_routing(
- { :path => "/api/0.6/changesets.json", :method => :get },
- { :controller => "api/changesets", :action => "index", :format => "json" }
+
+ assert_recognizes(
+ { :controller => "api/changesets", :action => "create" },
+ { :path => "/api/0.6/changeset/create", :method => :put }
)
end
+ ##
+ # test the query functionality of changesets
+ def test_index
+ private_user = create(:user, :data_public => false)
+ private_user_changeset = create(:changeset, :user => private_user)
+ private_user_closed_changeset = create(:changeset, :closed, :user => private_user)
+ user = create(:user)
+ changeset = create(:changeset, :user => user)
+ closed_changeset = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
+ changeset2 = create(:changeset, :min_lat => (5 * GeoRecord::SCALE).round, :min_lon => (5 * GeoRecord::SCALE).round, :max_lat => (15 * GeoRecord::SCALE).round, :max_lon => (15 * GeoRecord::SCALE).round)
+ changeset3 = create(:changeset, :min_lat => (4.5 * GeoRecord::SCALE).round, :min_lon => (4.5 * GeoRecord::SCALE).round, :max_lat => (5 * GeoRecord::SCALE).round, :max_lon => (5 * GeoRecord::SCALE).round)
+
+ get api_changesets_path(:bbox => "-10,-10, 10, 10")
+ assert_response :success, "can't get changesets in bbox"
+ assert_changesets_in_order [changeset3, changeset2]
+
+ get api_changesets_path(:bbox => "4.5,4.5,4.6,4.6")
+ assert_response :success, "can't get changesets in bbox"
+ assert_changesets_in_order [changeset3]
+
+ # not found when looking for changesets of non-existing users
+ get api_changesets_path(:user => User.maximum(:id) + 1)
+ assert_response :not_found
+ assert_equal "text/plain", @response.media_type
+ get api_changesets_path(:display_name => " ")
+ assert_response :not_found
+ assert_equal "text/plain", @response.media_type
+
+ # can't get changesets of user 1 without authenticating
+ get api_changesets_path(:user => private_user.id)
+ assert_response :not_found, "shouldn't be able to get changesets by non-public user (ID)"
+ get api_changesets_path(:display_name => private_user.display_name)
+ assert_response :not_found, "shouldn't be able to get changesets by non-public user (name)"
+
+ # but this should work
+ auth_header = bearer_authorization_header private_user
+ get api_changesets_path(:user => private_user.id), :headers => auth_header
+ assert_response :success, "can't get changesets by user ID"
+ assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
+
+ get api_changesets_path(:display_name => private_user.display_name), :headers => auth_header
+ assert_response :success, "can't get changesets by user name"
+ assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
+
+ # test json endpoint
+ get api_changesets_path(:display_name => private_user.display_name), :headers => auth_header, :params => { :format => "json" }
+ assert_response :success, "can't get changesets by user name"
+
+ js = ActiveSupport::JSON.decode(@response.body)
+ assert_not_nil js
+
+ assert_equal Settings.api_version, js["version"]
+ assert_equal Settings.generator, js["generator"]
+ assert_equal 2, js["changesets"].count
+
+ # check that the correct error is given when we provide both UID and name
+ get api_changesets_path(:user => private_user.id,
+ :display_name => private_user.display_name), :headers => auth_header
+ assert_response :bad_request, "should be a bad request to have both ID and name specified"
+
+ get api_changesets_path(:user => private_user.id, :open => true), :headers => auth_header
+ assert_response :success, "can't get changesets by user and open"
+ assert_changesets_in_order [private_user_changeset]
+
+ get api_changesets_path(:time => "2007-12-31"), :headers => auth_header
+ assert_response :success, "can't get changesets by time-since"
+ assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
+
+ get api_changesets_path(:time => "2008-01-01T12:34Z"), :headers => auth_header
+ assert_response :success, "can't get changesets by time-since with hour"
+ assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
+
+ get api_changesets_path(:time => "2007-12-31T23:59Z,2008-01-02T00:01Z"), :headers => auth_header
+ assert_response :success, "can't get changesets by time-range"
+ assert_changesets_in_order [closed_changeset]
+
+ get api_changesets_path(:open => "true"), :headers => auth_header
+ assert_response :success, "can't get changesets by open-ness"
+ assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset]
+
+ get api_changesets_path(:closed => "true"), :headers => auth_header
+ assert_response :success, "can't get changesets by closed-ness"
+ assert_changesets_in_order [private_user_closed_changeset, closed_changeset]
+
+ get api_changesets_path(:closed => "true", :user => private_user.id), :headers => auth_header
+ assert_response :success, "can't get changesets by closed-ness and user"
+ assert_changesets_in_order [private_user_closed_changeset]
+
+ get api_changesets_path(:closed => "true", :user => user.id), :headers => auth_header
+ assert_response :success, "can't get changesets by closed-ness and user"
+ assert_changesets_in_order [closed_changeset]
+
+ get api_changesets_path(:changesets => "#{private_user_changeset.id},#{changeset.id},#{closed_changeset.id}"), :headers => auth_header
+ assert_response :success, "can't get changesets by id (as comma-separated string)"
+ assert_changesets_in_order [changeset, private_user_changeset, closed_changeset]
+
+ get api_changesets_path(:changesets => ""), :headers => auth_header
+ assert_response :bad_request, "should be a bad request since changesets is empty"
+ end
+
+ ##
+ # test the query functionality of changesets with the limit parameter
+ def test_index_limit
+ user = create(:user)
+ changeset1 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
+ changeset2 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 2, 1, 0, 0, 0), :closed_at => Time.utc(2008, 2, 2, 0, 0, 0))
+ changeset3 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 3, 1, 0, 0, 0), :closed_at => Time.utc(2008, 3, 2, 0, 0, 0))
+ changeset4 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 4, 1, 0, 0, 0), :closed_at => Time.utc(2008, 4, 2, 0, 0, 0))
+ changeset5 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 5, 1, 0, 0, 0), :closed_at => Time.utc(2008, 5, 2, 0, 0, 0))
+
+ get api_changesets_path
+ assert_response :success
+ assert_changesets_in_order [changeset5, changeset4, changeset3, changeset2, changeset1]
+
+ get api_changesets_path(:limit => "3")
+ assert_response :success
+ assert_changesets_in_order [changeset5, changeset4, changeset3]
+
+ get api_changesets_path(:limit => "0")
+ assert_response :bad_request
+
+ get api_changesets_path(:limit => Settings.max_changeset_query_limit)
+ assert_response :success
+ assert_changesets_in_order [changeset5, changeset4, changeset3, changeset2, changeset1]
+
+ get api_changesets_path(:limit => Settings.max_changeset_query_limit + 1)
+ assert_response :bad_request
+ end
+
+ ##
+ # test the query functionality of sequential changesets with order and time parameters
+ def test_index_order
+ user = create(:user)
+ changeset1 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
+ changeset2 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 2, 1, 0, 0, 0), :closed_at => Time.utc(2008, 2, 2, 0, 0, 0))
+ changeset3 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 3, 1, 0, 0, 0), :closed_at => Time.utc(2008, 3, 2, 0, 0, 0))
+ changeset4 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 4, 1, 0, 0, 0), :closed_at => Time.utc(2008, 4, 2, 0, 0, 0))
+ changeset5 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 5, 1, 0, 0, 0), :closed_at => Time.utc(2008, 5, 2, 0, 0, 0))
+ changeset6 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 6, 1, 0, 0, 0), :closed_at => Time.utc(2008, 6, 2, 0, 0, 0))
+
+ get api_changesets_path
+ assert_response :success
+ assert_changesets_in_order [changeset6, changeset5, changeset4, changeset3, changeset2, changeset1]
+
+ get api_changesets_path(:order => "oldest")
+ assert_response :success
+ assert_changesets_in_order [changeset1, changeset2, changeset3, changeset4, changeset5, changeset6]
+
+ [
+ # lower time bound at the opening time of a changeset
+ ["2008-02-01T00:00:00Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3, changeset2], [changeset5, changeset4, changeset3, changeset2]],
+ # lower time bound in the middle of a changeset
+ ["2008-02-01T12:00:00Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3, changeset2], [changeset5, changeset4, changeset3]],
+ # lower time bound at the closing time of a changeset
+ ["2008-02-02T00:00:00Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3, changeset2], [changeset5, changeset4, changeset3]],
+ # lower time bound after the closing time of a changeset
+ ["2008-02-02T00:00:01Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3], [changeset5, changeset4, changeset3]],
+ # upper time bound in the middle of a changeset
+ ["2007-09-09T12:00:00Z", "2008-04-01T12:00:00Z", [changeset4, changeset3, changeset2, changeset1], [changeset4, changeset3, changeset2, changeset1]],
+ # empty range
+ ["2009-02-02T00:00:01Z", "2018-05-15T00:00:00Z", [], []]
+ ].each do |from, to, interval_changesets, point_changesets|
+ get api_changesets_path(:time => "#{from},#{to}")
+ assert_response :success
+ assert_changesets_in_order interval_changesets
+
+ get api_changesets_path(:from => from, :to => to)
+ assert_response :success
+ assert_changesets_in_order point_changesets
+
+ get api_changesets_path(:from => from, :to => to, :order => "oldest")
+ assert_response :success
+ assert_changesets_in_order point_changesets.reverse
+ end
+ end
+
+ ##
+ # test the query functionality of overlapping changesets with order and time parameters
+ def test_index_order_overlapping
+ user = create(:user)
+ changeset1 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 4, 17, 0, 0), :closed_at => Time.utc(2015, 6, 4, 17, 0, 0))
+ changeset2 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 4, 16, 0, 0), :closed_at => Time.utc(2015, 6, 4, 18, 0, 0))
+ changeset3 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 4, 14, 0, 0), :closed_at => Time.utc(2015, 6, 4, 20, 0, 0))
+ changeset4 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 3, 23, 0, 0), :closed_at => Time.utc(2015, 6, 4, 23, 0, 0))
+ create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 2, 23, 0, 0), :closed_at => Time.utc(2015, 6, 3, 23, 0, 0))
+
+ get api_changesets_path(:time => "2015-06-04T00:00:00Z")
+ assert_response :success
+ assert_changesets_in_order [changeset1, changeset2, changeset3, changeset4]
+
+ get api_changesets_path(:from => "2015-06-04T00:00:00Z")
+ assert_response :success
+ assert_changesets_in_order [changeset1, changeset2, changeset3]
+
+ get api_changesets_path(:from => "2015-06-04T00:00:00Z", :order => "oldest")
+ assert_response :success
+ assert_changesets_in_order [changeset3, changeset2, changeset1]
+
+ get api_changesets_path(:time => "2015-06-04T16:00:00Z,2015-06-04T17:30:00Z")
+ assert_response :success
+ assert_changesets_in_order [changeset1, changeset2, changeset3, changeset4]
+
+ get api_changesets_path(:from => "2015-06-04T16:00:00Z", :to => "2015-06-04T17:30:00Z")
+ assert_response :success
+ assert_changesets_in_order [changeset1, changeset2]
+
+ get api_changesets_path(:from => "2015-06-04T16:00:00Z", :to => "2015-06-04T17:30:00Z", :order => "oldest")
+ assert_response :success
+ assert_changesets_in_order [changeset2, changeset1]
+ end
+
+ ##
+ # check that errors are returned if garbage is inserted
+ # into query strings
+ def test_index_invalid
+ ["abracadabra!",
+ "1,2,3,F",
+ ";drop table users;"].each do |bbox|
+ get api_changesets_path(:bbox => bbox)
+ assert_response :bad_request, "'#{bbox}' isn't a bbox"
+ end
+
+ ["now()",
+ "00-00-00",
+ ";drop table users;",
+ ",",
+ "-,-"].each do |time|
+ get api_changesets_path(:time => time)
+ assert_response :bad_request, "'#{time}' isn't a valid time range"
+ end
+
+ ["me",
+ "foobar",
+ "-1",
+ "0"].each do |uid|
+ get api_changesets_path(:user => uid)
+ assert_response :bad_request, "'#{uid}' isn't a valid user ID"
+ end
+
+ get api_changesets_path(:order => "oldest", :time => "2008-01-01T00:00Z,2018-01-01T00:00Z")
+ assert_response :bad_request, "cannot use order=oldest with time"
+ end
+
# -----------------------
# Test simple changeset creation
# -----------------------
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_require_public_data
auth_header = bearer_authorization_header
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success, "Creation of changeset did not return success status"
newid = @response.body.to_i
def test_create_invalid
auth_header = bearer_authorization_header create(:user, :data_public => false)
xml = "<osm><changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_require_public_data
## Try the public user
auth_header = bearer_authorization_header
xml = "<osm><changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :bad_request, "creating a invalid changeset should fail"
end
def test_create_invalid_no_content
## First check with no auth
- put changeset_create_path
+ post api_changesets_path
assert_response :unauthorized, "shouldn't be able to create a changeset with no auth"
## Now try to with a non-public user
auth_header = bearer_authorization_header create(:user, :data_public => false)
- put changeset_create_path, :headers => auth_header
+ post api_changesets_path, :headers => auth_header
assert_require_public_data
## Try an inactive user
auth_header = bearer_authorization_header create(:user, :pending)
- put changeset_create_path, :headers => auth_header
+ post api_changesets_path, :headers => auth_header
assert_inactive_user
## Now try to use a normal user
auth_header = bearer_authorization_header
- put changeset_create_path, :headers => auth_header
+ post api_changesets_path, :headers => auth_header
assert_response :bad_request, "creating a changeset with no content should fail"
end
def test_create_wrong_method
auth_header = bearer_authorization_header
- get changeset_create_path, :headers => auth_header
+ put api_changesets_path, :headers => auth_header
assert_response :not_found
assert_template "rescues/routing_error"
+ end
- post changeset_create_path, :headers => auth_header
- assert_response :not_found
- assert_template "rescues/routing_error"
+ def test_create_legacy_path
+ auth_header = bearer_authorization_header
+ xml = "<osm><changeset></changeset></osm>"
+
+ assert_difference "Changeset.count", 1 do
+ put "/api/0.6/changeset/create", :params => xml, :headers => auth_header
+ end
+
+ assert_response :success, "Creation of changeset did not return success status"
+ assert_equal Changeset.last.id, @response.body.to_i
end
##
# one hidden comment not included because not asked for
comment2.update(:visible => false)
+ changeset.reload
get changeset_show_path(changeset), :params => { :include_discussion => true }
assert_response :success, "cannot get closed changeset with comments"
end
end
+ def test_show_tags
+ changeset = create(:changeset, :closed)
+ create(:changeset_tag, :changeset => changeset, :k => "created_by", :v => "JOSM/1.5 (18364)")
+ create(:changeset_tag, :changeset => changeset, :k => "comment", :v => "changeset comment")
+
+ get changeset_show_path(changeset)
+
+ assert_response :success
+ assert_dom "osm[version='#{Settings.api_version}'][generator='#{Settings.generator}']", 1
+ assert_single_changeset changeset do
+ assert_dom "> tag", 2
+ assert_dom "> tag[k='created_by'][v='JOSM/1.5 (18364)']", 1
+ assert_dom "> tag[k='comment'][v='changeset comment']", 1
+ end
+ end
+
def test_show_json
changeset = create(:changeset)
# one hidden comment not included because not asked for
comment1.update(:visible => false)
+ changeset.reload
get changeset_show_path(changeset), :params => { :format => "json", :include_discussion => true }
assert_response :success, "cannot get closed changeset with comments"
assert js["changeset"]["comments"][2]["visible"]
end
- def test_show_tag_and_discussion_json
+ def test_show_tags_json
changeset = create(:changeset, :closed)
create(:changeset_tag, :changeset => changeset, :k => "created_by", :v => "JOSM/1.5 (18364)")
create(:changeset_tag, :changeset => changeset, :k => "comment", :v => "changeset comment")
- create_list(:changeset_comment, 3, :changeset_id => changeset.id)
- get changeset_show_path(changeset), :params => { :format => "json", :include_discussion => true }
- assert_response :success, "cannot get closed changeset with comments"
+ get changeset_show_path(changeset, :format => "json")
+ assert_response :success
js = ActiveSupport::JSON.decode(@response.body)
-
assert_not_nil js
assert_equal Settings.api_version, js["version"]
assert_equal Settings.generator, js["generator"]
assert_single_changeset_json changeset, js
assert_equal 2, js["changeset"]["tags"].count
- assert_equal 3, js["changeset"]["comments"].count
- assert_equal 3, js["changeset"]["comments_count"]
- assert_equal 0, js["changeset"]["changes_count"]
- assert_not_nil js["changeset"]["comments"][0]["uid"]
- assert_not_nil js["changeset"]["comments"][0]["user"]
- assert_not_nil js["changeset"]["comments"][0]["text"]
+ assert_equal "JOSM/1.5 (18364)", js["changeset"]["tags"]["created_by"]
+ assert_equal "changeset comment", js["changeset"]["tags"]["comment"]
end
def test_show_bbox_json
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
assert_difference "Changeset.count", 1 do
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
end
assert_response :success
end
create(:changeset, :user => user, :created_at => Time.now.utc - 28.days)
# create a changeset
- put changeset_create_path, :params => "<osm><changeset/></osm>", :headers => auth_header
+ post api_changesets_path, :params => "<osm><changeset/></osm>", :headers => auth_header
assert_response :success, "Should be able to create a changeset: #{@response.body}"
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :forbidden
## Now try with a normal user
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
xml = "<osm><changeset>" \
"<tag k='created_by' v='osm test suite checking changesets'/>" \
"</changeset></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success
changeset_id = @response.body.to_i
# create a new changeset
xml = "<osm><changeset/></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success, "Creating of changeset failed."
changeset_id = @response.body.to_i
assert_select "osm>changeset[max_lat='0.3000000']", 1
end
- ##
- # test the query functionality of changesets
- def test_query
- private_user = create(:user, :data_public => false)
- private_user_changeset = create(:changeset, :user => private_user)
- private_user_closed_changeset = create(:changeset, :closed, :user => private_user)
- user = create(:user)
- changeset = create(:changeset, :user => user)
- closed_changeset = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
- changeset2 = create(:changeset, :min_lat => (5 * GeoRecord::SCALE).round, :min_lon => (5 * GeoRecord::SCALE).round, :max_lat => (15 * GeoRecord::SCALE).round, :max_lon => (15 * GeoRecord::SCALE).round)
- changeset3 = create(:changeset, :min_lat => (4.5 * GeoRecord::SCALE).round, :min_lon => (4.5 * GeoRecord::SCALE).round, :max_lat => (5 * GeoRecord::SCALE).round, :max_lon => (5 * GeoRecord::SCALE).round)
-
- get changesets_path(:bbox => "-10,-10, 10, 10")
- assert_response :success, "can't get changesets in bbox"
- assert_changesets_in_order [changeset3, changeset2]
-
- get changesets_path(:bbox => "4.5,4.5,4.6,4.6")
- assert_response :success, "can't get changesets in bbox"
- assert_changesets_in_order [changeset3]
-
- # not found when looking for changesets of non-existing users
- get changesets_path(:user => User.maximum(:id) + 1)
- assert_response :not_found
- assert_equal "text/plain", @response.media_type
- get changesets_path(:display_name => " ")
- assert_response :not_found
- assert_equal "text/plain", @response.media_type
-
- # can't get changesets of user 1 without authenticating
- get changesets_path(:user => private_user.id)
- assert_response :not_found, "shouldn't be able to get changesets by non-public user (ID)"
- get changesets_path(:display_name => private_user.display_name)
- assert_response :not_found, "shouldn't be able to get changesets by non-public user (name)"
-
- # but this should work
- auth_header = bearer_authorization_header private_user
- get changesets_path(:user => private_user.id), :headers => auth_header
- assert_response :success, "can't get changesets by user ID"
- assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
-
- get changesets_path(:display_name => private_user.display_name), :headers => auth_header
- assert_response :success, "can't get changesets by user name"
- assert_changesets_in_order [private_user_changeset, private_user_closed_changeset]
-
- # test json endpoint
- get changesets_path(:display_name => private_user.display_name), :headers => auth_header, :params => { :format => "json" }
- assert_response :success, "can't get changesets by user name"
-
- js = ActiveSupport::JSON.decode(@response.body)
- assert_not_nil js
-
- assert_equal Settings.api_version, js["version"]
- assert_equal Settings.generator, js["generator"]
- assert_equal 2, js["changesets"].count
-
- # check that the correct error is given when we provide both UID and name
- get changesets_path(:user => private_user.id,
- :display_name => private_user.display_name), :headers => auth_header
- assert_response :bad_request, "should be a bad request to have both ID and name specified"
-
- get changesets_path(:user => private_user.id, :open => true), :headers => auth_header
- assert_response :success, "can't get changesets by user and open"
- assert_changesets_in_order [private_user_changeset]
-
- get changesets_path(:time => "2007-12-31"), :headers => auth_header
- assert_response :success, "can't get changesets by time-since"
- assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
-
- get changesets_path(:time => "2008-01-01T12:34Z"), :headers => auth_header
- assert_response :success, "can't get changesets by time-since with hour"
- assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset, private_user_closed_changeset, closed_changeset]
-
- get changesets_path(:time => "2007-12-31T23:59Z,2008-01-02T00:01Z"), :headers => auth_header
- assert_response :success, "can't get changesets by time-range"
- assert_changesets_in_order [closed_changeset]
-
- get changesets_path(:open => "true"), :headers => auth_header
- assert_response :success, "can't get changesets by open-ness"
- assert_changesets_in_order [changeset3, changeset2, changeset, private_user_changeset]
-
- get changesets_path(:closed => "true"), :headers => auth_header
- assert_response :success, "can't get changesets by closed-ness"
- assert_changesets_in_order [private_user_closed_changeset, closed_changeset]
-
- get changesets_path(:closed => "true", :user => private_user.id), :headers => auth_header
- assert_response :success, "can't get changesets by closed-ness and user"
- assert_changesets_in_order [private_user_closed_changeset]
-
- get changesets_path(:closed => "true", :user => user.id), :headers => auth_header
- assert_response :success, "can't get changesets by closed-ness and user"
- assert_changesets_in_order [closed_changeset]
-
- get changesets_path(:changesets => "#{private_user_changeset.id},#{changeset.id},#{closed_changeset.id}"), :headers => auth_header
- assert_response :success, "can't get changesets by id (as comma-separated string)"
- assert_changesets_in_order [changeset, private_user_changeset, closed_changeset]
-
- get changesets_path(:changesets => ""), :headers => auth_header
- assert_response :bad_request, "should be a bad request since changesets is empty"
- end
-
- ##
- # test the query functionality of changesets with the limit parameter
- def test_query_limit
- user = create(:user)
- changeset1 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
- changeset2 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 2, 1, 0, 0, 0), :closed_at => Time.utc(2008, 2, 2, 0, 0, 0))
- changeset3 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 3, 1, 0, 0, 0), :closed_at => Time.utc(2008, 3, 2, 0, 0, 0))
- changeset4 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 4, 1, 0, 0, 0), :closed_at => Time.utc(2008, 4, 2, 0, 0, 0))
- changeset5 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 5, 1, 0, 0, 0), :closed_at => Time.utc(2008, 5, 2, 0, 0, 0))
-
- get changesets_path
- assert_response :success
- assert_changesets_in_order [changeset5, changeset4, changeset3, changeset2, changeset1]
-
- get changesets_path(:limit => "3")
- assert_response :success
- assert_changesets_in_order [changeset5, changeset4, changeset3]
-
- get changesets_path(:limit => "0")
- assert_response :bad_request
-
- get changesets_path(:limit => Settings.max_changeset_query_limit)
- assert_response :success
- assert_changesets_in_order [changeset5, changeset4, changeset3, changeset2, changeset1]
-
- get changesets_path(:limit => Settings.max_changeset_query_limit + 1)
- assert_response :bad_request
- end
-
- ##
- # test the query functionality of sequential changesets with order and time parameters
- def test_query_order
- user = create(:user)
- changeset1 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 1, 1, 0, 0, 0), :closed_at => Time.utc(2008, 1, 2, 0, 0, 0))
- changeset2 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 2, 1, 0, 0, 0), :closed_at => Time.utc(2008, 2, 2, 0, 0, 0))
- changeset3 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 3, 1, 0, 0, 0), :closed_at => Time.utc(2008, 3, 2, 0, 0, 0))
- changeset4 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 4, 1, 0, 0, 0), :closed_at => Time.utc(2008, 4, 2, 0, 0, 0))
- changeset5 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 5, 1, 0, 0, 0), :closed_at => Time.utc(2008, 5, 2, 0, 0, 0))
- changeset6 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2008, 6, 1, 0, 0, 0), :closed_at => Time.utc(2008, 6, 2, 0, 0, 0))
-
- get changesets_path
- assert_response :success
- assert_changesets_in_order [changeset6, changeset5, changeset4, changeset3, changeset2, changeset1]
-
- get changesets_path(:order => "oldest")
- assert_response :success
- assert_changesets_in_order [changeset1, changeset2, changeset3, changeset4, changeset5, changeset6]
-
- [
- # lower time bound at the opening time of a changeset
- ["2008-02-01T00:00:00Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3, changeset2], [changeset5, changeset4, changeset3, changeset2]],
- # lower time bound in the middle of a changeset
- ["2008-02-01T12:00:00Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3, changeset2], [changeset5, changeset4, changeset3]],
- # lower time bound at the closing time of a changeset
- ["2008-02-02T00:00:00Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3, changeset2], [changeset5, changeset4, changeset3]],
- # lower time bound after the closing time of a changeset
- ["2008-02-02T00:00:01Z", "2008-05-15T00:00:00Z", [changeset5, changeset4, changeset3], [changeset5, changeset4, changeset3]],
- # upper time bound in the middle of a changeset
- ["2007-09-09T12:00:00Z", "2008-04-01T12:00:00Z", [changeset4, changeset3, changeset2, changeset1], [changeset4, changeset3, changeset2, changeset1]],
- # empty range
- ["2009-02-02T00:00:01Z", "2018-05-15T00:00:00Z", [], []]
- ].each do |from, to, interval_changesets, point_changesets|
- get changesets_path(:time => "#{from},#{to}")
- assert_response :success
- assert_changesets_in_order interval_changesets
-
- get changesets_path(:from => from, :to => to)
- assert_response :success
- assert_changesets_in_order point_changesets
-
- get changesets_path(:from => from, :to => to, :order => "oldest")
- assert_response :success
- assert_changesets_in_order point_changesets.reverse
- end
- end
-
- ##
- # test the query functionality of overlapping changesets with order and time parameters
- def test_query_order_overlapping
- user = create(:user)
- changeset1 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 4, 17, 0, 0), :closed_at => Time.utc(2015, 6, 4, 17, 0, 0))
- changeset2 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 4, 16, 0, 0), :closed_at => Time.utc(2015, 6, 4, 18, 0, 0))
- changeset3 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 4, 14, 0, 0), :closed_at => Time.utc(2015, 6, 4, 20, 0, 0))
- changeset4 = create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 3, 23, 0, 0), :closed_at => Time.utc(2015, 6, 4, 23, 0, 0))
- create(:changeset, :closed, :user => user, :created_at => Time.utc(2015, 6, 2, 23, 0, 0), :closed_at => Time.utc(2015, 6, 3, 23, 0, 0))
-
- get changesets_path(:time => "2015-06-04T00:00:00Z")
- assert_response :success
- assert_changesets_in_order [changeset1, changeset2, changeset3, changeset4]
-
- get changesets_path(:from => "2015-06-04T00:00:00Z")
- assert_response :success
- assert_changesets_in_order [changeset1, changeset2, changeset3]
-
- get changesets_path(:from => "2015-06-04T00:00:00Z", :order => "oldest")
- assert_response :success
- assert_changesets_in_order [changeset3, changeset2, changeset1]
-
- get changesets_path(:time => "2015-06-04T16:00:00Z,2015-06-04T17:30:00Z")
- assert_response :success
- assert_changesets_in_order [changeset1, changeset2, changeset3, changeset4]
-
- get changesets_path(:from => "2015-06-04T16:00:00Z", :to => "2015-06-04T17:30:00Z")
- assert_response :success
- assert_changesets_in_order [changeset1, changeset2]
-
- get changesets_path(:from => "2015-06-04T16:00:00Z", :to => "2015-06-04T17:30:00Z", :order => "oldest")
- assert_response :success
- assert_changesets_in_order [changeset2, changeset1]
- end
-
- ##
- # check that errors are returned if garbage is inserted
- # into query strings
- def test_query_invalid
- ["abracadabra!",
- "1,2,3,F",
- ";drop table users;"].each do |bbox|
- get changesets_path(:bbox => bbox)
- assert_response :bad_request, "'#{bbox}' isn't a bbox"
- end
-
- ["now()",
- "00-00-00",
- ";drop table users;",
- ",",
- "-,-"].each do |time|
- get changesets_path(:time => time)
- assert_response :bad_request, "'#{time}' isn't a valid time range"
- end
-
- ["me",
- "foobar",
- "-1",
- "0"].each do |uid|
- get changesets_path(:user => uid)
- assert_response :bad_request, "'#{uid}' isn't a valid user ID"
- end
-
- get changesets_path(:order => "oldest", :time => "2008-01-01T00:00Z,2018-01-01T00:00Z")
- assert_response :bad_request, "cannot use order=oldest with time"
- end
-
##
# check updating tags on a changeset
def test_changeset_update
# open a new changeset
xml = "<osm><changeset/></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success, "can't create a new changeset"
cs_id = @response.body.to_i
assert_dom "> @open", "false"
assert_dom "> @closed_at", changeset.closed_at.xmlschema
end
+ assert_dom "> @comments_count", changeset.comments.length.to_s
+ assert_dom "> @changes_count", changeset.num_changes.to_s
yield if block_given?
end
end
assert_not js["changeset"]["open"]
assert_equal changeset.closed_at.xmlschema, js["changeset"]["closed_at"]
end
+ assert_equal changeset.comments.length, js["changeset"]["comments_count"]
+ assert_equal changeset.num_changes, js["changeset"]["changes_count"]
end
##
assert_equal "commented", js["properties"]["comments"].last["action"]
assert_equal "This is an additional comment", js["properties"]["comments"].last["text"]
assert_equal third_user.display_name, js["properties"]["comments"].last["user"]
-
- ActionMailer::Base.deliveries.clear
end
def test_comment_with_notifications_success
assert_equal "commented", js["properties"]["comments"].last["action"]
assert_equal "This is an additional comment", js["properties"]["comments"].last["text"]
assert_equal third_user.display_name, js["properties"]["comments"].last["user"]
-
- ActionMailer::Base.deliveries.clear
end
def test_comment_twice_success
--- /dev/null
+require "test_helper"
+
+module Api
+ module OldNodes
+ class RedactionsControllerTest < ActionDispatch::IntegrationTest
+ ##
+ # test all routes which lead to this controller
+ def test_routes
+ assert_routing(
+ { :path => "/api/0.6/node/1/2/redaction", :method => :post },
+ { :controller => "api/old_nodes/redactions", :action => "create", :node_id => "1", :version => "2" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/node/1/2/redaction", :method => :delete },
+ { :controller => "api/old_nodes/redactions", :action => "destroy", :node_id => "1", :version => "2" }
+ )
+
+ assert_recognizes(
+ { :controller => "api/old_nodes/redactions", :action => "create", :node_id => "1", :version => "2", :allow_delete => true },
+ { :path => "/api/0.6/node/1/2/redact", :method => :post }
+ )
+ end
+
+ ##
+ # test that, even as moderator, the current version of a node
+ # can't be redacted.
+ def test_create_on_current_version
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 2)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post api_node_version_redaction_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
+ assert_nil old_node.reload.redaction
+ end
+
+ def test_create_without_redaction_id
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post api_node_version_redaction_path(*old_node.id), :headers => auth_header
+
+ assert_response :bad_request, "should need redaction ID to redact."
+ assert_nil old_node.reload.redaction
+ end
+
+ ##
+ # test the redaction of an old version of a node, while not being
+ # authorised.
+ def test_create_by_unauthorised
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+
+ post api_node_version_redaction_path(*old_node.id), :params => { :redaction => redaction.id }
+
+ assert_response :unauthorized, "should need to be authenticated to redact."
+ assert_nil old_node.reload.redaction
+ end
+
+ def test_create_by_normal_user_without_write_redactions_scope
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:user), :scopes => %w[read_prefs write_api]
+
+ post api_node_version_redaction_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to redact."
+ assert_nil old_node.reload.redaction
+ end
+
+ def test_create_by_normal_user_with_write_redactions_scope
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:user), :scopes => %w[write_redactions]
+
+ post api_node_version_redaction_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to redact."
+ assert_nil old_node.reload.redaction
+ end
+
+ def test_create_by_moderator_without_write_redactions_scope
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user), :scopes => %w[read_prefs write_api]
+
+ post api_node_version_redaction_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to have write_redactions scope to redact."
+ assert_nil old_node.reload.redaction
+ end
+
+ def test_create_by_moderator_with_write_redactions_scope
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user), :scopes => %w[write_redactions]
+
+ post api_node_version_redaction_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
+ assert_equal redaction, old_node.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a node, while not being
+ # authorised.
+ def test_destroy_by_unauthorised
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+ old_node.redact!(redaction)
+
+ delete api_node_version_redaction_path(*old_node.id)
+
+ assert_response :unauthorized, "should need to be authenticated to unredact."
+ assert_equal redaction, old_node.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a node, while being
+ # authorised as a normal user.
+ def test_destroy_by_normal_user
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ redaction = create(:redaction)
+ old_node.redact!(redaction)
+ auth_header = bearer_authorization_header
+
+ delete api_node_version_redaction_path(*old_node.id), :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to unredact."
+ assert_equal redaction, old_node.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a node, while being
+ # authorised as a moderator.
+ def test_destroy_by_moderator
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ old_node.redact!(create(:redaction))
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ delete api_node_version_redaction_path(*old_node.id), :headers => auth_header
+
+ assert_response :success, "should be OK to unredact old version as moderator."
+ assert_nil old_node.reload.redaction
+ end
+
+ def test_destroy_at_legacy_route
+ node = create(:node, :with_history, :version => 2)
+ old_node = node.old_nodes.find_by(:version => 1)
+ old_node.redact!(create(:redaction))
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post "/api/0.6/node/#{old_node.node_id}/#{old_node.version}/redact", :headers => auth_header
+
+ assert_response :success, "should be OK to unredact old version as moderator."
+ assert_nil old_node.reload.redaction
+ end
+ end
+ end
+end
{ :path => "/api/0.6/node/1/2.json", :method => :get },
{ :controller => "api/old_nodes", :action => "show", :node_id => "1", :version => "2", :format => "json" }
)
- assert_routing(
- { :path => "/api/0.6/node/1/2/redact", :method => :post },
- { :controller => "api/old_nodes", :action => "redact", :node_id => "1", :version => "2" }
- )
end
def test_index
assert_match(/lon="0.0000800"/, response.body)
end
- ##
- # test that, even as moderator, the current version of a node
- # can't be redacted.
- def test_redact_node_current_version
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 2)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header create(:moderator_user)
-
- post node_version_redact_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
- assert_nil old_node.reload.redaction
- end
-
- ##
- # test the redaction of an old version of a node, while not being
- # authorised.
- def test_redact_node_unauthorised
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- redaction = create(:redaction)
-
- post node_version_redact_path(*old_node.id), :params => { :redaction => redaction.id }
-
- assert_response :unauthorized, "should need to be authenticated to redact."
- assert_nil old_node.reload.redaction
- end
-
- def test_redact_node_by_regular_without_write_redactions_scope
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:user), :scopes => %w[read_prefs write_api])
-
- post node_version_redact_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to redact."
- assert_nil old_node.reload.redaction
- end
-
- def test_redact_node_by_regular_with_write_redactions_scope
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:user), :scopes => %w[write_redactions])
-
- post node_version_redact_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to redact."
- assert_nil old_node.reload.redaction
- end
-
- def test_redact_node_by_moderator_without_write_redactions_scope
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:moderator_user), :scopes => %w[read_prefs write_api])
-
- post node_version_redact_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to have write_redactions scope to redact."
- assert_nil old_node.reload.redaction
- end
-
- def test_redact_node_by_moderator_with_write_redactions_scope
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:moderator_user), :scopes => %w[write_redactions])
-
- post node_version_redact_path(*old_node.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
- assert_equal redaction, old_node.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a node, while not being
- # authorised.
- def test_unredact_node_unauthorised
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- redaction = create(:redaction)
- old_node.redact!(redaction)
-
- post node_version_redact_path(*old_node.id)
-
- assert_response :unauthorized, "should need to be authenticated to unredact."
- assert_equal redaction, old_node.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a node, while being
- # authorised as a normal user.
- def test_unredact_node_normal_user
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- redaction = create(:redaction)
- old_node.redact!(redaction)
- auth_header = bearer_authorization_header
-
- post node_version_redact_path(*old_node.id), :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to unredact."
- assert_equal redaction, old_node.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a node, while being
- # authorised as a moderator.
- def test_unredact_node_moderator
- node = create(:node, :with_history, :version => 2)
- old_node = node.old_nodes.find_by(:version => 1)
- old_node.redact!(create(:redaction))
- auth_header = bearer_authorization_header create(:moderator_user)
-
- post node_version_redact_path(*old_node.id), :headers => auth_header
-
- assert_response :success, "should be OK to unredact old version as moderator."
- assert_nil old_node.reload.redaction
- end
-
private
def check_not_found_id_version(id, version)
--- /dev/null
+require "test_helper"
+
+module Api
+ module OldWays
+ class RedactionsControllerTest < ActionDispatch::IntegrationTest
+ ##
+ # test all routes which lead to this controller
+ def test_routes
+ assert_routing(
+ { :path => "/api/0.6/relation/1/2/redaction", :method => :post },
+ { :controller => "api/old_relations/redactions", :action => "create", :relation_id => "1", :version => "2" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/relation/1/2/redaction", :method => :delete },
+ { :controller => "api/old_relations/redactions", :action => "destroy", :relation_id => "1", :version => "2" }
+ )
+
+ assert_recognizes(
+ { :controller => "api/old_relations/redactions", :action => "create", :relation_id => "1", :version => "2", :allow_delete => true },
+ { :path => "/api/0.6/relation/1/2/redact", :method => :post }
+ )
+ end
+
+ ##
+ # test that, even as moderator, the current version of a relation
+ # can't be redacted.
+ def test_create_on_current_version
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 2)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post api_relation_version_redaction_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
+ assert_nil old_relation.reload.redaction
+ end
+
+ def test_create_without_redaction_id
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post api_relation_version_redaction_path(*old_relation.id), :headers => auth_header
+
+ assert_response :bad_request, "should need redaction ID to redact."
+ assert_nil old_relation.reload.redaction
+ end
+
+ ##
+ # test the redaction of an old version of a relation, while not being
+ # authorised.
+ def test_create_by_unauthorised
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ redaction = create(:redaction)
+
+ post api_relation_version_redaction_path(*old_relation.id), :params => { :redaction => redaction.id }
+
+ assert_response :unauthorized, "should need to be authenticated to redact."
+ assert_nil old_relation.reload.redaction
+ end
+
+ def test_create_by_normal_user_without_write_redactions_scope
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:user), :scopes => %w[read_prefs write_api]
+
+ post api_relation_version_redaction_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to redact."
+ assert_nil old_relation.reload.redaction
+ end
+
+ def test_create_by_normal_user_with_write_redactions_scope
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:user), :scopes => %w[write_redactions]
+
+ post api_relation_version_redaction_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to redact."
+ assert_nil old_relation.reload.redaction
+ end
+
+ def test_create_by_moderator_without_write_redactions_scope
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user), :scopes => %w[read_prefs write_api]
+
+ post api_relation_version_redaction_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to have write_redactions scope to redact."
+ assert_nil old_relation.reload.redaction
+ end
+
+ def test_create_by_moderator_with_write_redactions_scope
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user), :scopes => %w[write_redactions]
+
+ post api_relation_version_redaction_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
+ assert_equal redaction, old_relation.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a relation, while not being
+ # authorised.
+ def test_destroy_by_unauthorised
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ redaction = create(:redaction)
+ old_relation.redact!(redaction)
+
+ delete api_relation_version_redaction_path(*old_relation.id)
+
+ assert_response :unauthorized, "should need to be authenticated to unredact."
+ assert_equal redaction, old_relation.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a relation, while being
+ # authorised as a normal user.
+ def test_destroy_by_normal_user
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ redaction = create(:redaction)
+ old_relation.redact!(redaction)
+ auth_header = bearer_authorization_header
+
+ delete api_relation_version_redaction_path(*old_relation.id), :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to unredact."
+ assert_equal redaction, old_relation.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a relation, while being
+ # authorised as a moderator.
+ def test_destroy_by_moderator
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ old_relation.redact!(create(:redaction))
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ delete api_relation_version_redaction_path(*old_relation.id), :headers => auth_header
+
+ assert_response :success, "should be OK to unredact old version as moderator."
+ assert_nil old_relation.reload.redaction
+ end
+
+ def test_destroy_at_legacy_route
+ relation = create(:relation, :with_history, :version => 2)
+ old_relation = relation.old_relations.find_by(:version => 1)
+ old_relation.redact!(create(:redaction))
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post "/api/0.6/relation/#{old_relation.relation_id}/#{old_relation.version}/redact", :headers => auth_header
+
+ assert_response :success, "should be OK to unredact old version as moderator."
+ assert_nil old_relation.reload.redaction
+ end
+ end
+ end
+end
{ :path => "/api/0.6/relation/1/2.json", :method => :get },
{ :controller => "api/old_relations", :action => "show", :relation_id => "1", :version => "2", :format => "json" }
)
- assert_routing(
- { :path => "/api/0.6/relation/1/2/redact", :method => :post },
- { :controller => "api/old_relations", :action => "redact", :relation_id => "1", :version => "2" }
- )
end
##
assert_response :success, "Redacted relation should not be gone for moderator, when flag passed."
end
-
- ##
- # test that, even as moderator, the current version of a relation
- # can't be redacted.
- def test_redact_relation_current_version
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 2)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header create(:moderator_user)
-
- post relation_version_redact_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
- assert_nil old_relation.reload.redaction
- end
-
- ##
- # test the redaction of an old version of a relation, while not being
- # authorised.
- def test_redact_relation_unauthorised
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- redaction = create(:redaction)
-
- post relation_version_redact_path(*old_relation.id), :params => { :redaction => redaction.id }
-
- assert_response :unauthorized, "should need to be authenticated to redact."
- assert_nil old_relation.reload.redaction
- end
-
- def test_redact_relation_by_regular_without_write_redactions_scope
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:user), :scopes => %w[read_prefs write_api])
-
- post relation_version_redact_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to redact."
- assert_nil old_relation.reload.redaction
- end
-
- def test_redact_relation_by_regular_with_write_redactions_scope
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:user), :scopes => %w[write_redactions])
-
- post relation_version_redact_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to redact."
- assert_nil old_relation.reload.redaction
- end
-
- def test_redact_relation_by_moderator_without_write_redactions_scope
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:moderator_user), :scopes => %w[read_prefs write_api])
-
- post relation_version_redact_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to have write_redactions scope to redact."
- assert_nil old_relation.reload.redaction
- end
-
- def test_redact_relation_by_moderator_with_write_redactions_scope
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:moderator_user), :scopes => %w[write_redactions])
-
- post relation_version_redact_path(*old_relation.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
- assert_equal redaction, old_relation.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a relation, while not being
- # authorised.
- def test_unredact_relation_unauthorised
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- redaction = create(:redaction)
- old_relation.redact!(redaction)
-
- post relation_version_redact_path(*old_relation.id)
-
- assert_response :unauthorized, "should need to be authenticated to unredact."
- assert_equal redaction, old_relation.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a relation, while being
- # authorised as a normal user.
- def test_unredact_relation_normal_user
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- redaction = create(:redaction)
- old_relation.redact!(redaction)
- auth_header = bearer_authorization_header
-
- post relation_version_redact_path(*old_relation.id), :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to unredact."
- assert_equal redaction, old_relation.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a relation, while being
- # authorised as a moderator.
- def test_unredact_relation_moderator
- relation = create(:relation, :with_history, :version => 2)
- old_relation = relation.old_relations.find_by(:version => 1)
- old_relation.redact!(create(:redaction))
- auth_header = bearer_authorization_header create(:moderator_user)
-
- post relation_version_redact_path(*old_relation.id), :headers => auth_header
-
- assert_response :success, "should be OK to unredact old version as moderator."
- assert_nil old_relation.reload.redaction
- end
end
end
--- /dev/null
+require "test_helper"
+
+module Api
+ module OldWays
+ class RedactionsControllerTest < ActionDispatch::IntegrationTest
+ ##
+ # test all routes which lead to this controller
+ def test_routes
+ assert_routing(
+ { :path => "/api/0.6/way/1/2/redaction", :method => :post },
+ { :controller => "api/old_ways/redactions", :action => "create", :way_id => "1", :version => "2" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/way/1/2/redaction", :method => :delete },
+ { :controller => "api/old_ways/redactions", :action => "destroy", :way_id => "1", :version => "2" }
+ )
+
+ assert_recognizes(
+ { :controller => "api/old_ways/redactions", :action => "create", :way_id => "1", :version => "2", :allow_delete => true },
+ { :path => "/api/0.6/way/1/2/redact", :method => :post }
+ )
+ end
+
+ ##
+ # test that, even as moderator, the current version of a way
+ # can't be redacted.
+ def test_create_on_current_version
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 2)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post api_way_version_redaction_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
+ assert_nil old_way.reload.redaction
+ end
+
+ def test_create_without_redaction_id
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post api_way_version_redaction_path(*old_way.id), :headers => auth_header
+
+ assert_response :bad_request, "should need redaction ID to redact."
+ assert_nil old_way.reload.redaction
+ end
+
+ ##
+ # test the redaction of an old version of a way, while not being
+ # authorised.
+ def test_create_by_unauthorised
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ redaction = create(:redaction)
+
+ post api_way_version_redaction_path(*old_way.id), :params => { :redaction => redaction.id }
+
+ assert_response :unauthorized, "should need to be authenticated to redact."
+ assert_nil old_way.reload.redaction
+ end
+
+ def test_create_by_normal_user_without_write_redactions_scope
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:user), :scopes => %w[read_prefs write_api]
+
+ post api_way_version_redaction_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to redact."
+ assert_nil old_way.reload.redaction
+ end
+
+ def test_create_by_normal_user_with_write_redactions_scope
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:user), :scopes => %w[write_redactions]
+
+ post api_way_version_redaction_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to redact."
+ assert_nil old_way.reload.redaction
+ end
+
+ def test_create_by_moderator_without_write_redactions_scope
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user), :scopes => %w[read_prefs write_api]
+
+ post api_way_version_redaction_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :forbidden, "should need to have write_redactions scope to redact."
+ assert_nil old_way.reload.redaction
+ end
+
+ def test_create_by_moderator_with_write_redactions_scope
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ redaction = create(:redaction)
+ auth_header = bearer_authorization_header create(:moderator_user), :scopes => %w[write_redactions]
+
+ post api_way_version_redaction_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
+
+ assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
+ assert_equal redaction, old_way.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a way, while not being
+ # authorised.
+ def test_destroy_by_unauthorised
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ redaction = create(:redaction)
+ old_way.redact!(redaction)
+
+ delete api_way_version_redaction_path(*old_way.id)
+
+ assert_response :unauthorized, "should need to be authenticated to unredact."
+ assert_equal redaction, old_way.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a way, while being
+ # authorised as a normal user.
+ def test_destroy_by_normal_user
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ redaction = create(:redaction)
+ old_way.redact!(redaction)
+ auth_header = bearer_authorization_header
+
+ delete api_way_version_redaction_path(*old_way.id), :headers => auth_header
+
+ assert_response :forbidden, "should need to be moderator to unredact."
+ assert_equal redaction, old_way.reload.redaction
+ end
+
+ ##
+ # test the unredaction of an old version of a way, while being
+ # authorised as a moderator.
+ def test_destroy_by_moderator
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ old_way.redact!(create(:redaction))
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ delete api_way_version_redaction_path(*old_way.id), :headers => auth_header
+
+ assert_response :success, "should be OK to unredact old version as moderator."
+ assert_nil old_way.reload.redaction
+ end
+
+ def test_destroy_at_legacy_route
+ way = create(:way, :with_history, :version => 2)
+ old_way = way.old_ways.find_by(:version => 1)
+ old_way.redact!(create(:redaction))
+ auth_header = bearer_authorization_header create(:moderator_user)
+
+ post "/api/0.6/way/#{old_way.way_id}/#{old_way.version}/redact", :headers => auth_header
+
+ assert_response :success, "should be OK to unredact old version as moderator."
+ assert_nil old_way.reload.redaction
+ end
+ end
+ end
+end
{ :path => "/api/0.6/way/1/2.json", :method => :get },
{ :controller => "api/old_ways", :action => "show", :way_id => "1", :version => "2", :format => "json" }
)
- assert_routing(
- { :path => "/api/0.6/way/1/2/redact", :method => :post },
- { :controller => "api/old_ways", :action => "redact", :way_id => "1", :version => "2" }
- )
end
##
check_history_equals_versions(way_with_versions.id)
end
- ##
- # test that, even as moderator, the current version of a way
- # can't be redacted.
- def test_redact_way_current_version
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 2)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header create(:moderator_user)
-
- post way_version_redact_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
- assert_nil old_way.reload.redaction
- end
-
- ##
- # test the redaction of an old version of a way, while not being
- # authorised.
- def test_redact_way_unauthorised
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- redaction = create(:redaction)
-
- post way_version_redact_path(*old_way.id), :params => { :redaction => redaction.id }
-
- assert_response :unauthorized, "should need to be authenticated to redact."
- assert_nil old_way.reload.redaction
- end
-
- def test_redact_way_by_regular_without_write_redactions_scope
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:user), :scopes => %w[read_prefs write_api])
-
- post way_version_redact_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to redact."
- assert_nil old_way.reload.redaction
- end
-
- def test_redact_way_by_regular_with_write_redactions_scope
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:user), :scopes => %w[write_redactions])
-
- post way_version_redact_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to redact."
- assert_nil old_way.reload.redaction
- end
-
- def test_redact_way_by_moderator_without_write_redactions_scope
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:moderator_user), :scopes => %w[read_prefs write_api])
-
- post way_version_redact_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :forbidden, "should need to have write_redactions scope to redact."
- assert_nil old_way.reload.redaction
- end
-
- def test_redact_way_by_moderator_with_write_redactions_scope
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- redaction = create(:redaction)
- auth_header = bearer_authorization_header(create(:moderator_user), :scopes => %w[write_redactions])
-
- post way_version_redact_path(*old_way.id), :params => { :redaction => redaction.id }, :headers => auth_header
-
- assert_response :success, "should be OK to redact old version as moderator with write_redactions scope."
- assert_equal redaction, old_way.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a way, while not being
- # authorised.
- def test_unredact_way_unauthorised
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- redaction = create(:redaction)
- old_way.redact!(redaction)
-
- post way_version_redact_path(*old_way.id)
-
- assert_response :unauthorized, "should need to be authenticated to unredact."
- assert_equal redaction, old_way.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a way, while being
- # authorised as a normal user.
- def test_unredact_way_normal_user
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- redaction = create(:redaction)
- old_way.redact!(redaction)
- auth_header = bearer_authorization_header
-
- post way_version_redact_path(*old_way.id), :headers => auth_header
-
- assert_response :forbidden, "should need to be moderator to unredact."
- assert_equal redaction, old_way.reload.redaction
- end
-
- ##
- # test the unredaction of an old version of a way, while being
- # authorised as a moderator.
- def test_unredact_way_moderator
- way = create(:way, :with_history, :version => 2)
- old_way = way.old_ways.find_by(:version => 1)
- old_way.redact!(create(:redaction))
- auth_header = bearer_authorization_header create(:moderator_user)
-
- post way_version_redact_path(*old_way.id), :headers => auth_header
-
- assert_response :success, "should be OK to unredact old version as moderator."
- assert_nil old_way.reload.redaction
- end
-
private
##
# that the bounding box will be newly-generated.
with_controller(Api::ChangesetsController.new) do
xml = "<osm><changeset/></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :forbidden, "shouldn't be able to create changeset for modify test, as should get forbidden"
end
# that the bounding box will be newly-generated.
changeset_id = with_controller(Api::ChangesetsController.new) do
xml = "<osm><changeset/></osm>"
- put changeset_create_path, :params => xml, :headers => auth_header
+ post api_changesets_path, :params => xml, :headers => auth_header
assert_response :success, "couldn't create changeset for modify test"
@response.body.to_i
end
email = ActionMailer::Base.deliveries.last
assert_equal user.email, email.to.first
-
- ActionMailer::Base.deliveries.clear
end
def test_confirm_resend_deleted
confirm_string = user.generate_token_for(:new_email)
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert_match(/Confirmed your change of email address/, flash[:notice])
end
confirm_string = user.generate_token_for(:new_email)
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert_match(/already been confirmed/, flash[:error])
end
def test_confirm_email_bad_token
post user_confirm_email_path, :params => { :confirm_string => "XXXXX" }
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert_match(/confirmation code has expired or does not exist/, flash[:error])
end
# precondition gravatar should be turned off
assert_not user.image_use_gravatar
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert_match(/Confirmed your change of email address/, flash[:notice])
# gravatar use should now be enabled
assert User.find(user.id).image_use_gravatar
# precondition gravatar should be turned on
assert user.image_use_gravatar
post user_confirm_email_path, :params => { :confirm_string => confirm_string }
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert_match(/Confirmed your change of email address/, flash[:notice])
# gravatar use should now be disabled
assert_not User.find(user.id).image_use_gravatar
{ :controller => "dashboards", :action => "show" }
)
end
+
+ def test_show_unauthorized
+ get dashboard_path
+
+ assert_redirected_to login_path(:referer => dashboard_path)
+ end
end
assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
assert_match(/New comment/, email.text_part.decoded)
assert_match(/New comment/, email.html_part.decoded)
- ActionMailer::Base.deliveries.clear
assert_equal entry.id, comment.diary_entry_id
assert_equal other_user.id, comment.user_id
assert_equal "New comment", comment.body
assert_equal "[OpenStreetMap] #{other_user.display_name} commented on a diary entry", email.subject
assert_match %r{http://example.com/spam}, email.text_part.decoded
assert_match %r{http://example.com/spam}, email.html_part.decoded
- ActionMailer::Base.deliveries.clear
assert_equal entry.id, comment.diary_entry_id
assert_equal other_user.id, comment.user_id
assert_equal spammy_text, comment.body
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal follow.email, email.to.first
- ActionMailer::Base.deliveries.clear
# A second POST should report that the follow already exists
assert_no_difference "ActionMailer::Base.deliveries.size" do
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal follow.email, email.to.first
- ActionMailer::Base.deliveries.clear
end
def test_follow_unknown_user
assert_match(/Test message body/, e.text_part.decoded)
assert_match(/Test message body/, e.html_part.decoded)
assert_match %r{#{Settings.server_url}/messages/[0-9]+}, e.text_part.decoded
- ActionMailer::Base.deliveries.clear
+
m = Message.last
assert_equal user.id, m.from_user_id
assert_equal recipient_user.id, m.to_user_id
email = ActionMailer::Base.deliveries.first
assert_equal 1, email.to.count
assert_equal third_user.email, email.to.first
- ActionMailer::Base.deliveries.clear
end
def test_reset_password
assert_equal 2, issue.reports.count
end
+
+ def test_spam_reports_can_suspend
+ target_user = create(:user)
+
+ session_for(create(:user))
+
+ post reports_path(:report => {
+ :details => "Spammer",
+ :category => "spam",
+ :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+ })
+ assert_equal "active", target_user.reload.status
+
+ session_for(create(:user))
+
+ post reports_path(:report => {
+ :details => "Spammer",
+ :category => "spam",
+ :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+ })
+ assert_equal "active", target_user.reload.status
+
+ post reports_path(:report => {
+ :details => "Spammer",
+ :category => "spam",
+ :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+ })
+ assert_equal "active", target_user.reload.status
+
+ session_for(create(:user))
+
+ post reports_path(:report => {
+ :details => "Spammer",
+ :category => "spam",
+ :issue => { :reportable_id => target_user.id, :reportable_type => "User" }
+ })
+ assert_equal "suspended", target_user.reload.status
+ end
end
# Check the page
assert_redirected_to :controller => :confirmations, :action => :confirm, :display_name => user.display_name
-
- ActionMailer::Base.deliveries.clear
end
def test_create_duplicate_email
perform_enqueued_jobs
end
end
-
- ActionMailer::Base.deliveries.clear
end
def test_go_public
post user_go_public_path
- assert_redirected_to edit_account_path
+ assert_redirected_to account_path
assert User.find(user.id).data_public
end
assert_select "a[href='/user/#{ERB::Util.u(moderator_user.display_name)}/traces']", 1
assert_select "a[href='/user/#{ERB::Util.u(moderator_user.display_name)}/diary']", 1
assert_select "a[href='/user/#{ERB::Util.u(moderator_user.display_name)}/diary_comments']", 1
- assert_select "a[href='/user/#{ERB::Util.u(moderator_user.display_name)}/account']", 0
+ assert_select "a[href='/account']", 0
assert_select "a[href='/user/#{ERB::Util.u(moderator_user.display_name)}/blocks']", 0
assert_select "a[href='/user/#{ERB::Util.u(moderator_user.display_name)}/blocks_by']", 1
assert_select "a[href='/user_blocks/new/#{ERB::Util.u(moderator_user.display_name)}']", 0
assert_select "a[href='/traces/mine']", 1
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/diary']", 1
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/diary_comments']", 1
- assert_select "a[href='/account/edit']", 1
+ assert_select "a[href='/account']", 1
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/blocks']", 0
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/blocks_by']", 0
assert_select "a[href='/user_blocks/new/#{ERB::Util.u(user.display_name)}']", 0
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/traces']", 1
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/diary']", 1
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/diary_comments']", 1
- assert_select "a[href='/account/edit']", 0
+ assert_select "a[href='/account']", 0
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/blocks']", 0
assert_select "a[href='/user/#{ERB::Util.u(user.display_name)}/blocks_by']", 0
assert_select "a[href='/user_blocks/new/#{ERB::Util.u(user.display_name)}']", 1
found_confirmation_url = register_email.parts.first.parts.first.to_s =~ %r{\shttp://test.host(/\S+)\s}
assert found_confirmation_url
confirmation_url = Regexp.last_match(1)
- ActionMailer::Base.deliveries.clear
post confirmation_url
assert_response :success
assert_template "confirmations/confirm"
- ActionMailer::Base.deliveries.clear
-
# Go to the confirmation page
get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
assert_response :success
# Check the page
assert_redirected_to :controller => :confirmations, :action => :confirm, :display_name => display_name
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_openid_duplicate_email
assert_response :success
assert_template "users/new"
assert_select "form > div > input.is-invalid#user_email"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_openid_failure
end
end
end
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_openid_redirect
assert_response :success
assert_template "confirmations/confirm"
- ActionMailer::Base.deliveries.clear
-
# Go to the confirmation page
get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
assert_response :success
# Check the page
assert_response :success
assert_template "site/welcome"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_google_duplicate_email
assert_response :success
assert_template "users/new"
assert_select "form > div > input.is-invalid#user_email"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_google_failure
end
end
end
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_google_redirect
assert_response :success
assert_template "confirmations/confirm"
- ActionMailer::Base.deliveries.clear
-
# Go to the confirmation page
get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
assert_response :success
# Check the page
assert_response :success
assert_template "site/welcome"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_facebook_duplicate_email
assert_response :success
assert_template "users/new"
assert_select "form > div > input.is-invalid#user_email"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_facebook_failure
end
end
end
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_facebook_redirect
assert_response :success
assert_template "confirmations/confirm"
- ActionMailer::Base.deliveries.clear
-
# Go to the confirmation page
get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
assert_response :success
# Check the page
assert_response :success
assert_template "site/welcome"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_microsoft_duplicate_email
assert_response :success
assert_template "users/new"
assert_select "form > div > input.is-invalid#user_email"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_microsoft_failure
end
end
end
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_microsoft_redirect
assert_response :success
assert_template "confirmations/confirm"
- ActionMailer::Base.deliveries.clear
-
# Go to the confirmation page
get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
assert_response :success
# Check the page
assert_response :success
assert_template "site/welcome"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_github_duplicate_email
assert_response :success
assert_template "users/new"
assert_select "form > div > input.is-invalid#user_email"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_github_failure
end
end
end
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_github_redirect
assert_response :success
assert_template "confirmations/confirm"
- ActionMailer::Base.deliveries.clear
-
# Go to the confirmation page
get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
assert_response :success
assert_response :success
assert_template "users/new"
assert_select "form > div > input.is-invalid#user_email"
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_wikipedia_failure
end
end
end
-
- ActionMailer::Base.deliveries.clear
end
def test_user_create_wikipedia_redirect
assert_response :success
assert_template "confirmations/confirm"
- ActionMailer::Base.deliveries.clear
-
# Go to the confirmation page
get "/user/#{display_name}/confirm", :params => { :referer => "/welcome", :confirm_string => confirm_string }
assert_response :success
end
test "the status is deleted and the personal data removed" do
- visit edit_account_path
+ visit account_path
click_on "Delete Account..."
accept_confirm do
end
test "the user is signed out after deletion" do
- visit edit_account_path
+ visit account_path
click_on "Delete Account..."
accept_confirm do
end
test "the user is shown a confirmation flash message" do
- visit edit_account_path
+ visit account_path
click_on "Delete Account..."
accept_confirm do
test "can delete with any delay setting value if the user has no changesets" do
with_user_account_deletion_delay(10000) do
travel 1.hour do
- visit edit_account_path
+ visit account_path
click_on "Delete Account..."
create(:changeset, :user => @user)
travel 1.hour do
- visit edit_account_path
+ visit account_path
click_on "Delete Account..."
create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
travel 12.hours do
- visit edit_account_path
+ visit account_path
click_on "Delete Account..."
create(:changeset, :user => @user, :created_at => Time.now.utc, :closed_at => Time.now.utc + 1.hour)
travel 10.hours do
- visit edit_account_path
+ visit account_path
click_on "Delete Account..."
--- /dev/null
+require "application_system_test_case"
+
+class BrowseCommentLinksTest < ApplicationSystemTestCase
+ test "visiting changeset comment link should pan to changeset" do
+ changeset = create(:changeset, :min_lat => 60 * GeoRecord::SCALE, :min_lon => 30 * GeoRecord::SCALE,
+ :max_lat => 60 * GeoRecord::SCALE, :max_lon => 30 * GeoRecord::SCALE)
+ comment = create(:changeset_comment, :changeset => changeset, :body => "Linked changeset comment")
+
+ visit changeset_path(changeset, :anchor => "c#{comment.id}")
+
+ within_sidebar do
+ assert_text "Linked changeset comment"
+ end
+ assert_match %r{map=\d+/60\.\d+/30\.\d+}, current_url
+ end
+
+ test "visiting note comment link should pan to note" do
+ note = create(:note, :latitude => 59 * GeoRecord::SCALE, :longitude => 29 * GeoRecord::SCALE)
+ create(:note_comment, :note => note, :body => "Note description")
+ comment = create(:note_comment, :note => note, :body => "Linked note comment", :event => "commented")
+
+ visit note_path(note, :anchor => "c#{comment.id}")
+
+ within_sidebar do
+ assert_text "Linked note comment"
+ end
+ assert_match %r{map=\d+/59\.\d+/29\.\d+}, current_url
+ end
+end
sign_in_as(user)
assert_emails 1 do
- visit edit_account_path
+ visit account_path
fill_in "New Email Address", :with => "new_tester@example.com"
click_on "Save Changes"
assert_equal "new_tester@example.com", user.reload.new_email
if email.parts[0].parts[0].decoded =~ %r{(/user/confirm-email\?confirm_string=[A-Za-z0-9\-_%]+)\s}
visit Regexp.last_match(1)
- assert page.has_css?("body.accounts-edit")
+ assert page.has_css?("body.accounts-show")
end
assert_equal "new_tester@example.com", user.reload.email
-
- ActionMailer::Base.deliveries.clear
end
end
click_on "Mute this User"
assert_content "You muted #{other_user.display_name}"
- visit edit_account_path
+ visit account_path
assert_content "Muted Users"
click_on "Muted Users"
assert_content "You have muted 1 User"
assert_content "You unmuted #{other_user.display_name}"
refute_content "Muted Users"
- assert_current_path edit_account_path
+ assert_current_path account_path
end
test "messages sent by muted users are set `muted` and do not cause notification emails" do
test "User shown a message when suspended mid-session" do
user = create(:user)
sign_in_as(user)
- visit edit_account_path
+ visit account_path
assert_content "My Account"
user.suspend!
- visit edit_account_path
+ visit account_path
assert_content "This decision will be reviewed by an administrator shortly"
end
end
resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b"
integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==
-"@stylistic/eslint-plugin-js@^3.0.0":
- version "3.1.0"
- resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-js/-/eslint-plugin-js-3.1.0.tgz#b36292b09bd810ea1b34e0720512f137335ef745"
- integrity sha512-lQktsOiCr8S6StG29C5fzXYxLOD6ID1rp4j6TRS+E/qY1xd59Fm7dy5qm9UauJIEoSTlYx6yGsCHYh5UkgXPyg==
+"@stylistic/eslint-plugin-js@^4.0.0":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@stylistic/eslint-plugin-js/-/eslint-plugin-js-4.0.1.tgz#c55e59ad2f00914f9eb103ba9e7be00aff7715dd"
+ integrity sha512-2EGKM6WHnZSidWKCu6ePJCqdpgWiEU1Bt26ktWEfTpCmRP+2vRQ6ViK8X6DLwu4+F0zPLy/Txe2HhI3qJFUvqA==
dependencies:
eslint-visitor-keys "^4.2.0"
espree "^10.3.0"
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50"
integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==
+"@types/geojson@*":
+ version "7946.0.16"
+ resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-7946.0.16.tgz#8ebe53d69efada7044454e3305c19017d97ced2a"
+ integrity sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==
+
+"@types/jquery@^3.5.0":
+ version "3.5.32"
+ resolved "https://registry.yarnpkg.com/@types/jquery/-/jquery-3.5.32.tgz#3eb0da20611b92c7c49ebed6163b52a4fdc57def"
+ integrity sha512-b9Xbf4CkMqS02YH8zACqN1xzdxc3cO735Qe5AbSUFmyOiaWAbcpqh9Wna+Uk0vgACvoQHpWDg2rGdHkYPLmCiQ==
+ dependencies:
+ "@types/sizzle" "*"
+
"@types/json-schema@^7.0.15":
version "7.0.15"
resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841"
integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==
+"@types/leaflet@^1.9.0":
+ version "1.9.16"
+ resolved "https://registry.yarnpkg.com/@types/leaflet/-/leaflet-1.9.16.tgz#3e3abc103e106523cde01625057e2294f332ec3b"
+ integrity sha512-wzZoyySUxkgMZ0ihJ7IaUIblG8Rdc8AbbZKLneyn+QjYsj5q1QU7TEKYqwTr10BGSzY5LI7tJk9Ifo+mEjdFRw==
+ dependencies:
+ "@types/geojson" "*"
+
+"@types/sizzle@*":
+ version "2.3.9"
+ resolved "https://registry.yarnpkg.com/@types/sizzle/-/sizzle-2.3.9.tgz#d4597dbd4618264c414d7429363e3f50acb66ea2"
+ integrity sha512-xzLEyKB50yqCUPUJkIsrVvoWNfFUbIZI+RspLWt8u+tIW/BetMBZtgV2LY/2o+tYH8dRvQ+eoPf3NdhQCcLE2w==
+
acorn-jsx@^5.3.2:
version "5.3.2"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"