Enabled: false
Naming/FileName:
Enabled: false
- Rails/OutputSafety:
- Enabled: false
Style/FrozenStringLiteralComment:
Enabled: false
SelfClosingTag:
bundler-cache: true
- name: Create base branch
run: |
- git fetch ${{ github.event.pull_request.base.repo.clone_url }} ${{ github.event.pull_request.base.ref }}:danger_base
+ git fetch ${{ github.event.pull_request.base.repo.clone_url }} ${{ github.event.pull_request.base.sha }}:danger_base
- name: Create head branch
run: |
- git fetch ${{ github.event.pull_request.head.repo.clone_url }} ${{ github.event.pull_request.head.ref }}:danger_head
+ git fetch ${{ github.event.pull_request.head.repo.clone_url }} ${{ github.event.pull_request.head.sha }}:danger_head
- name: Danger
env:
DANGER_GITHUB_BEARER_TOKEN: ${{ secrets.GITHUB_TOKEN }}
rubygems: 3.4.10
bundler-cache: true
- name: Run erblint
- run: bundle exec erblint .
+ run: bundle exec erb_lint .
eslint:
name: ESLint
runs-on: ubuntu-22.04
Rails/OutputSafety:
Exclude:
- 'app/helpers/application_helper.rb'
+ - 'app/helpers/user_mailer_helper.rb'
- 'lib/rich_text.rb'
- 'test/helpers/application_helper_test.rb'
specs:
aasm (5.5.0)
concurrent-ruby (~> 1.0)
- actioncable (7.2.2)
- actionpack (= 7.2.2)
- activesupport (= 7.2.2)
+ actioncable (7.2.2.1)
+ actionpack (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
nio4r (~> 2.0)
websocket-driver (>= 0.6.1)
zeitwerk (~> 2.6)
- actionmailbox (7.2.2)
- actionpack (= 7.2.2)
- activejob (= 7.2.2)
- activerecord (= 7.2.2)
- activestorage (= 7.2.2)
- activesupport (= 7.2.2)
+ actionmailbox (7.2.2.1)
+ actionpack (= 7.2.2.1)
+ activejob (= 7.2.2.1)
+ activerecord (= 7.2.2.1)
+ activestorage (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
mail (>= 2.8.0)
- actionmailer (7.2.2)
- actionpack (= 7.2.2)
- actionview (= 7.2.2)
- activejob (= 7.2.2)
- activesupport (= 7.2.2)
+ actionmailer (7.2.2.1)
+ actionpack (= 7.2.2.1)
+ actionview (= 7.2.2.1)
+ activejob (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
mail (>= 2.8.0)
rails-dom-testing (~> 2.2)
- actionpack (7.2.2)
- actionview (= 7.2.2)
- activesupport (= 7.2.2)
+ actionpack (7.2.2.1)
+ actionview (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
nokogiri (>= 1.8.5)
racc
rack (>= 2.2.4, < 3.2)
useragent (~> 0.16)
actionpack-page_caching (1.2.4)
actionpack (>= 4.0.0)
- actiontext (7.2.2)
- actionpack (= 7.2.2)
- activerecord (= 7.2.2)
- activestorage (= 7.2.2)
- activesupport (= 7.2.2)
+ actiontext (7.2.2.1)
+ actionpack (= 7.2.2.1)
+ activerecord (= 7.2.2.1)
+ activestorage (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
globalid (>= 0.6.0)
nokogiri (>= 1.8.5)
- actionview (7.2.2)
- activesupport (= 7.2.2)
+ actionview (7.2.2.1)
+ activesupport (= 7.2.2.1)
builder (~> 3.1)
erubi (~> 1.11)
rails-dom-testing (~> 2.2)
rails-html-sanitizer (~> 1.6)
active_record_union (1.3.0)
activerecord (>= 4.0)
- activejob (7.2.2)
- activesupport (= 7.2.2)
+ activejob (7.2.2.1)
+ activesupport (= 7.2.2.1)
globalid (>= 0.3.6)
- activemodel (7.2.2)
- activesupport (= 7.2.2)
- activerecord (7.2.2)
- activemodel (= 7.2.2)
- activesupport (= 7.2.2)
+ activemodel (7.2.2.1)
+ activesupport (= 7.2.2.1)
+ activerecord (7.2.2.1)
+ activemodel (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
timeout (>= 0.4.0)
- activerecord-import (1.8.1)
+ activerecord-import (2.0.0)
activerecord (>= 4.2)
- activestorage (7.2.2)
- actionpack (= 7.2.2)
- activejob (= 7.2.2)
- activerecord (= 7.2.2)
- activesupport (= 7.2.2)
+ activestorage (7.2.2.1)
+ actionpack (= 7.2.2.1)
+ activejob (= 7.2.2.1)
+ activerecord (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
marcel (~> 1.0)
- activesupport (7.2.2)
+ activesupport (7.2.2.1)
base64
benchmark (>= 0.3)
bigdecimal
autoprefixer-rails (10.4.19.0)
execjs (~> 2)
aws-eventstream (1.3.0)
- aws-partitions (1.1004.0)
- aws-sdk-core (3.212.0)
+ aws-partitions (1.1023.0)
+ aws-sdk-core (3.214.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
jmespath (~> 1, >= 1.6.1)
- aws-sdk-kms (1.95.0)
+ aws-sdk-kms (1.96.0)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sigv4 (~> 1.5)
- aws-sdk-s3 (1.170.1)
+ aws-sdk-s3 (1.176.1)
aws-sdk-core (~> 3, >= 3.210.0)
aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.5)
sprockets (> 3.0)
sprockets-rails
tilt
- date (3.4.0)
+ date (3.4.1)
debug (1.9.2)
irb (~> 1.10)
reline (>= 0.3.8)
activerecord (>= 3.0, < 9.0)
delayed_job (>= 3.0, < 5)
docile (1.4.1)
- doorkeeper (5.7.1)
+ doorkeeper (5.8.1)
railties (>= 5)
doorkeeper-i18n (5.2.7)
doorkeeper (>= 5.2)
- doorkeeper-openid_connect (1.8.9)
- doorkeeper (>= 5.5, < 5.8)
+ doorkeeper-openid_connect (1.8.10)
+ doorkeeper (>= 5.5, < 5.9)
jwt (>= 2.5)
drb (2.2.1)
dry-configurable (1.2.0)
factory_bot_rails (6.4.4)
factory_bot (~> 6.5)
railties (>= 5.0.0)
- faraday (2.12.0)
- faraday-net_http (>= 2.0, < 3.4)
+ faraday (2.12.2)
+ faraday-net_http (>= 2.0, < 3.5)
json
logger
faraday-http-cache (2.5.1)
faraday (>= 0.8)
- faraday-net_http (3.3.0)
- net-http
+ faraday-net_http (3.4.0)
+ net-http (>= 0.5.0)
ffi (1.17.0)
ffi-compiler (1.3.2)
ffi (>= 1.15.5)
rails-i18n
rainbow (>= 2.2.2, < 4.0)
terminal-table (>= 1.5.1)
- image_optim (0.31.3)
+ image_optim (0.31.4)
exifr (~> 1.2, >= 1.2.2)
fspath (~> 3.0)
image_size (>= 1.5, < 4)
image_size (3.4.0)
in_threads (1.6.0)
iniparse (1.5.0)
- io-console (0.7.2)
- irb (1.14.1)
+ io-console (0.8.0)
+ irb (1.14.2)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
jbuilder (2.13.0)
rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0)
thor (>= 0.14, < 2.0)
- json (2.8.1)
+ json (2.9.0)
jwt (2.9.3)
base64
kgio (2.11.4)
- kramdown (2.4.0)
- rexml
+ kramdown (2.5.1)
+ rexml (>= 3.3.9)
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
language_server-protocol (3.17.0.3)
listen (3.9.0)
rb-fsevent (~> 0.10, >= 0.10.3)
rb-inotify (~> 0.9, >= 0.9.10)
- logger (1.6.1)
+ logger (1.6.3)
logstasher (2.1.5)
activesupport (>= 5.2)
request_store
maxminddb (0.1.22)
mini_magick (4.13.2)
mini_mime (1.1.5)
- mini_portile2 (2.8.7)
+ mini_portile2 (2.8.8)
mini_racer (0.9.0)
libv8-node (~> 18.19.0.0)
- minitest (5.25.1)
+ minitest (5.25.4)
minitest-focus (1.4.0)
minitest (>= 4, < 6)
msgpack (1.7.5)
multi_xml (0.7.1)
bigdecimal (~> 3.1)
nap (1.1.0)
- net-http (0.5.0)
+ net-http (0.6.0)
uri
- net-imap (0.5.1)
+ net-imap (0.5.2)
date
net-protocol
net-pop (0.1.2)
net-smtp (0.5.0)
net-protocol
nio4r (2.7.4)
- nokogiri (1.16.7)
+ nokogiri (1.17.2)
mini_portile2 (~> 2.8.2)
racc (~> 1.4)
oauth (1.1.0)
pg (1.5.9)
popper_js (2.11.8)
progress (3.6.0)
- pstore (0.1.3)
- psych (5.2.0)
+ pstore (0.1.4)
+ psych (5.2.1)
+ date
stringio
public_suffix (6.0.1)
puma (5.6.9)
rackup (1.0.1)
rack (< 3)
webrick
- rails (7.2.2)
- actioncable (= 7.2.2)
- actionmailbox (= 7.2.2)
- actionmailer (= 7.2.2)
- actionpack (= 7.2.2)
- actiontext (= 7.2.2)
- actionview (= 7.2.2)
- activejob (= 7.2.2)
- activemodel (= 7.2.2)
- activerecord (= 7.2.2)
- activestorage (= 7.2.2)
- activesupport (= 7.2.2)
+ rails (7.2.2.1)
+ actioncable (= 7.2.2.1)
+ actionmailbox (= 7.2.2.1)
+ actionmailer (= 7.2.2.1)
+ actionpack (= 7.2.2.1)
+ actiontext (= 7.2.2.1)
+ actionview (= 7.2.2.1)
+ activejob (= 7.2.2.1)
+ activemodel (= 7.2.2.1)
+ activerecord (= 7.2.2.1)
+ activestorage (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
bundler (>= 1.15.0)
- railties (= 7.2.2)
+ railties (= 7.2.2.1)
rails-controller-testing (1.0.5)
actionpack (>= 5.0.1.rc1)
actionview (>= 5.0.1.rc1)
activesupport (>= 5.0.0)
minitest
nokogiri (>= 1.6)
- rails-html-sanitizer (1.6.0)
+ rails-html-sanitizer (1.6.2)
loofah (~> 2.21)
- nokogiri (~> 1.14)
+ nokogiri (>= 1.15.7, != 1.16.7, != 1.16.6, != 1.16.5, != 1.16.4, != 1.16.3, != 1.16.2, != 1.16.1, != 1.16.0.rc1, != 1.16.0)
rails-i18n (7.0.10)
i18n (>= 0.7, < 2)
railties (>= 6.0.0, < 8)
rails_param (1.3.1)
actionpack (>= 3.2.0)
activesupport (>= 3.2.0)
- railties (7.2.2)
- actionpack (= 7.2.2)
- activesupport (= 7.2.2)
+ railties (7.2.2.1)
+ actionpack (= 7.2.2.1)
+ activesupport (= 7.2.2.1)
irb (~> 1.13)
rackup (>= 1.0.0)
rake (>= 12.2)
rb-inotify (0.11.1)
ffi (~> 1.0)
rchardet (1.8.0)
- rdoc (6.7.0)
+ rdoc (6.9.1)
psych (>= 4.0.0)
- regexp_parser (2.9.2)
- reline (0.5.11)
+ regexp_parser (2.9.3)
+ reline (0.6.0)
io-console (~> 0.5)
request_store (1.7.0)
rack (>= 1.4)
- rexml (3.3.9)
+ rexml (3.4.0)
rinku (2.0.6)
rotp (6.3.0)
rouge (4.5.1)
rtlcss (0.2.1)
mini_racer (>= 0.6.3)
- rubocop (1.68.0)
+ rubocop (1.69.2)
json (~> 2.3)
language_server-protocol (>= 3.17.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
- regexp_parser (>= 2.4, < 3.0)
- rubocop-ast (>= 1.32.2, < 2.0)
+ regexp_parser (>= 2.9.3, < 3.0)
+ rubocop-ast (>= 1.36.2, < 2.0)
ruby-progressbar (~> 1.7)
- unicode-display_width (>= 2.4.0, < 3.0)
- rubocop-ast (1.35.0)
+ unicode-display_width (>= 2.4.0, < 4.0)
+ rubocop-ast (1.37.0)
parser (>= 3.3.1.0)
rubocop-capybara (2.21.0)
rubocop (~> 1.41)
rubocop-minitest (0.36.0)
rubocop (>= 1.61, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
- rubocop-performance (1.22.1)
+ rubocop-performance (1.23.0)
rubocop (>= 1.48.1, < 2.0)
rubocop-ast (>= 1.31.1, < 2.0)
rubocop-rails (2.27.0)
sawyer (0.9.2)
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
- securerandom (0.3.2)
+ securerandom (0.4.1)
selenium-webdriver (4.23.0)
base64 (~> 0.2)
logger (~> 1.4)
execjs (>= 0.3.0, < 3)
thor (1.3.2)
tilt (2.4.0)
- timeout (0.4.2)
+ timeout (0.4.3)
turbo-rails (2.0.11)
actionpack (>= 6.0.0)
railties (>= 6.0.0)
concurrent-ruby (~> 1.0)
unicode-display_width (2.6.0)
uri (0.13.1)
- useragent (0.16.10)
+ useragent (0.16.11)
validates_email_format_of (1.8.2)
i18n (>= 0.8.0)
simpleidn
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
- webrick (1.9.0)
+ webrick (1.9.1)
websocket (1.2.11)
websocket-driver (0.7.6)
websocket-extensions (>= 0.1.0)
zeitwerk (< 2.7)
BUNDLED WITH
- 2.5.16
+ 2.5.22
if user&.active?
can [:comment, :close, :reopen], Note
- can [:create, :show, :update, :destroy, :data], Trace
+ can [:create, :show, :update, :destroy], Trace
can [:details, :gpx_files], User
can [:index, :show, :update, :update_all, :destroy], UserPreference
if user&.active?
can [:create, :comment, :close, :reopen], Note if scope?(token, :write_notes)
+ can [:create, :destroy], NoteSubscription if scope?(token, :write_notes)
can [:show, :data], Trace if scope?(token, :read_gpx)
can [:create, :update, :destroy], Trace if scope?(token, :write_gpx)
can [:details], User if scope?(token, :read_prefs)
--- /dev/null
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 256 256">
+<rect width="240" height="240" stroke="#8888" fill="#fffc" stroke-width="16" ry="32" x="8" y="8"/>
+<circle cx="128" cy="128" r="024" fill="#bee6be" stroke="black" stroke-width="10"/>
+</svg>
--- /dev/null
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 256 256">
+<rect width="240" height="240" stroke="#8888" fill="#fffc" stroke-width="16" ry="32" x="8" y="8"/>
+<path d="M 068 068 L 196 062" stroke-width="16" stroke="#888"/>
+<path d="M 068 068 L 196 142" stroke-width="16" stroke="#888"/>
+<path d="M 068 068 L 062 196" stroke-width="16" stroke="#888"/>
+<path d="M 068 068 L 142 196" stroke-width="16" stroke="#888"/>
+<circle cx="196" cy="062" r="024" fill="black"/>
+<circle cx="196" cy="142" r="024" fill="black"/>
+<circle cx="062" cy="196" r="024" fill="black"/>
+<circle cx="142" cy="196" r="024" fill="black"/>
+<circle cx="072" cy="072" r="032" fill="#bee6be" stroke="black" stroke-width="8"/>
+</svg>
--- /dev/null
+<?xml version="1.0"?>
+<svg xmlns="http://www.w3.org/2000/svg" height="16" width="16" viewBox="0 0 256 256">
+<rect width="240" height="240" stroke="#8888" fill="#fffc" stroke-width="16" ry="32" x="8" y="8"/>
+<path stroke="#888" fill="none" stroke-width="16" d="M 169 058 L 057 145 L 195 199"/>
+<circle cx="169" cy="058" r="024" fill="black"/>
+<circle cx="057" cy="145" r="024" fill="black"/>
+<circle cx="195" cy="199" r="024" fill="black"/>
+</svg>
.containerNode(container)
.init();
+ if (parent === window) {
+ // iD not opened in an iframe -> skip setting of parent handlers
+ return;
+ }
+
+ var hashChangedAutomatically = false;
id.map().on("move.embed", parent.$.throttle(250, function () {
if (id.inIntro()) return;
var zoom = ~~id.map().zoom(),
// https://gist.github.com/jfirebaugh/5439412
var hash = parent.OSM.formatHash(llz);
if (hash !== parent.location.hash) {
+ hashChangedAutomatically = true;
parent.location.replace(parent.location.href.replace(/(#.*|$)/, hash));
}
}));
- parent.$("body").on("click", "a.set_position", function (e) {
- e.preventDefault();
- var data = parent.$(this).data();
-
+ function goToLocation(data) {
// 0ms timeout to avoid iframe JS context weirdness.
// https://gist.github.com/jfirebaugh/5439412
setTimeout(function () {
[data.lon, data.lat],
Math.max(data.zoom || 15, 13));
}, 0);
+ }
+
+ parent.$("body").on("click", "a.set_position", function (e) {
+ e.preventDefault();
+ var data = parent.$(this).data();
+ goToLocation(data);
+ });
+
+ parent.addEventListener("hashchange", function (e) {
+ if (hashChangedAutomatically) {
+ hashChangedAutomatically = false;
+ return;
+ }
+ e.preventDefault();
+ var data = parent.OSM.mapParams();
+ goToLocation(data);
});
}
});
if (OSM.MATOMO) {
map.on("layeradd", function (e) {
if (e.layer.options) {
- var goal = OSM.MATOMO.goals[e.layer.options.keyid];
+ var goal = OSM.MATOMO.goals[e.layer.options.layerId];
if (goal) {
$("body").trigger("matomogoal", goal);
});
function sendRemoteEditCommand(url, callback) {
- var iframe = $("<iframe>");
- var timeoutId = setTimeout(function () {
- alert(I18n.t("site.index.remote_failed"));
- iframe.remove();
- }, 5000);
-
- iframe
- .hide()
- .appendTo("body")
- .attr("src", url)
- .on("load", function () {
- clearTimeout(timeoutId);
- iframe.remove();
- if (callback) callback();
+ fetch(url, { mode: "no-cors", signal: AbortSignal.timeout(5000) })
+ .then(callback)
+ .catch(function () {
+ alert(I18n.t("site.index.remote_failed"));
});
}
};
function initialize(path, id) {
- content.find("button[type=submit]").on("click", function (e) {
+ content.find("button[name]").on("click", function (e) {
e.preventDefault();
var data = $(e.target).data();
- var form = e.target.form;
-
- $(form).find("button[type=submit]").prop("disabled", true);
-
- $.ajax({
+ var name = $(e.target).attr("name");
+ var ajaxSettings = {
url: data.url,
type: data.method,
oauth: true,
- data: { text: $(form.text).val() },
- success: function () {
- OSM.loadSidebarContent(path, function () {
+ success: () => {
+ OSM.loadSidebarContent(path, () => {
initialize(path, id);
moveToNote();
});
},
- error: function (xhr) {
- $(form).find("#comment-error")
+ error: (xhr) => {
+ content.find("#comment-error")
.text(xhr.responseText)
- .prop("hidden", false);
- updateButtons(form);
+ .prop("hidden", false)
+ .get(0).scrollIntoView({ block: "nearest" });
+ updateButtons();
}
- });
+ };
+
+ if (name !== "subscribe" && name !== "unsubscribe" && name !== "reopen") {
+ ajaxSettings.data = { text: $("textarea").val() };
+ }
+
+ content.find("button[name]").prop("disabled", true);
+ $.ajax(ajaxSettings);
});
content.find("textarea").on("input", function (e) {
}
}
- function updateButtons(form) {
- $(form).find("button[type=submit]").prop("disabled", false);
- if ($(form.text).val() === "") {
- $(form.close).text($(form.close).data("defaultActionText"));
- $(form.comment).prop("disabled", true);
+ function updateButtons() {
+ var resolveButton = content.find("button[name='close']");
+ var commentButton = content.find("button[name='comment']");
+
+ content.find("button[name]").prop("disabled", false);
+ if (content.find("textarea").val() === "") {
+ resolveButton.text(resolveButton.data("defaultActionText"));
+ commentButton.prop("disabled", true);
} else {
- $(form.close).text($(form.close).data("commentActionText"));
- $(form.comment).prop("disabled", false);
+ resolveButton.text(resolveButton.data("commentActionText"));
}
}
map.whenReady(function () {
var miniMap = L.map(mapContainer[0], { attributionControl: false, zoomControl: false, keyboard: false })
- .addLayer(new layer.constructor({ apikey: layer.options.apikey }));
+ .addLayer(new layer.constructor(layer.options));
miniMap.dragging.disable();
miniMap.touchZoom.disable();
initialize: function (id, options) {
L.Map.prototype.initialize.call(this, id, options);
- var copyright_link = $("<a>", {
- href: "/copyright",
- text: I18n.t("javascripts.map.openstreetmap_contributors")
- }).prop("outerHTML");
- var copyright = I18n.t("javascripts.map.copyright_text", { copyright_link: copyright_link });
-
- var donate = $("<a>", {
- "href": "https://supporting.openstreetmap.org",
- "class": "donate-attr",
- "text": I18n.t("javascripts.map.make_a_donation")
- }).prop("outerHTML");
-
- var terms = $("<a>", {
- href: "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
- text: I18n.t("javascripts.map.website_and_api_terms")
- }).prop("outerHTML");
-
- var cyclosm_link = $("<a>", {
- href: "https://www.cyclosm.org",
- target: "_blank",
- text: I18n.t("javascripts.map.cyclosm_name")
- }).prop("outerHTML");
- var osm_france_link = $("<a>", {
- href: "https://openstreetmap.fr/",
- target: "_blank",
- text: I18n.t("javascripts.map.osm_france")
- }).prop("outerHTML");
- var cyclosm = I18n.t("javascripts.map.cyclosm_credit", { cyclosm_link: cyclosm_link, osm_france_link: osm_france_link });
-
- var thunderforest_link = $("<a>", {
- href: "https://www.thunderforest.com/",
- target: "_blank",
- text: I18n.t("javascripts.map.andy_allan")
- }).prop("outerHTML");
- var thunderforest = I18n.t("javascripts.map.thunderforest_credit", { thunderforest_link: thunderforest_link });
-
- var tracestrack_link = $("<a>", {
- href: "https://www.tracestrack.com/",
- target: "_blank",
- text: I18n.t("javascripts.map.tracestrack")
- }).prop("outerHTML");
- var tracestrack = I18n.t("javascripts.map.tracestrack_credit", { tracestrack_link: tracestrack_link });
-
- var hotosm_link = $("<a>", {
- href: "https://www.hotosm.org/",
- target: "_blank",
- text: I18n.t("javascripts.map.hotosm_name")
- }).prop("outerHTML");
- var hotosm = I18n.t("javascripts.map.hotosm_credit", { hotosm_link: hotosm_link, osm_france_link: osm_france_link });
-
this.baseLayers = [];
- this.baseLayers.push(new L.OSM.Mapnik({
- attribution: copyright + " ♥ " + donate + ". " + terms,
- code: "M",
- keyid: "mapnik",
- name: I18n.t("javascripts.map.base.standard")
- }));
-
- this.baseLayers.push(new L.OSM.CyclOSM({
- attribution: copyright + ". " + cyclosm + ". " + terms,
- code: "Y",
- keyid: "cyclosm",
- name: I18n.t("javascripts.map.base.cyclosm")
- }));
-
- if (OSM.THUNDERFOREST_KEY) {
- this.baseLayers.push(new L.OSM.CycleMap({
- attribution: copyright + ". " + thunderforest + ". " + terms,
- apikey: OSM.THUNDERFOREST_KEY,
- code: "C",
- keyid: "cyclemap",
- name: I18n.t("javascripts.map.base.cycle_map")
- }));
-
- this.baseLayers.push(new L.OSM.TransportMap({
- attribution: copyright + ". " + thunderforest + ". " + terms,
- apikey: OSM.THUNDERFOREST_KEY,
- code: "T",
- keyid: "transportmap",
- name: I18n.t("javascripts.map.base.transport_map")
- }));
- }
+ for (const layerDefinition of OSM.LAYER_DEFINITIONS) {
+ if (layerDefinition.apiKeyId && !OSM[layerDefinition.apiKeyId]) continue;
+
+ let layerConstructor = L.OSM.TileLayer;
+ const layerOptions = {};
+
+ for (const [property, value] of Object.entries(layerDefinition)) {
+ if (property === "credit") {
+ layerOptions.attribution = makeAttribution(value);
+ } else if (property === "nameId") {
+ layerOptions.name = I18n.t(`javascripts.map.base.${value}`);
+ } else if (property === "apiKeyId") {
+ layerOptions.apikey = OSM[value];
+ } else if (property === "leafletOsmId") {
+ layerConstructor = L.OSM[value];
+ } else {
+ layerOptions[property] = value;
+ }
+ }
- if (OSM.TRACESTRACK_KEY) {
- this.baseLayers.push(new L.OSM.TracestrackTopo({
- attribution: copyright + ". " + tracestrack + ". " + terms,
- apikey: OSM.TRACESTRACK_KEY,
- code: "P",
- keyid: "tracestracktopo",
- name: I18n.t("javascripts.map.base.tracestracktop_topo")
- }));
+ const layer = new layerConstructor(layerOptions);
+ this.baseLayers.push(layer);
}
- this.baseLayers.push(new L.OSM.HOT({
- attribution: copyright + ". " + hotosm + ". " + terms,
- code: "H",
- keyid: "hot",
- name: I18n.t("javascripts.map.base.hot")
- }));
-
this.noteLayer = new L.FeatureGroup();
this.noteLayer.options = { code: "N" };
this.setMaxZoom(event.layer.options.maxZoom);
}
});
+
+ function makeAttribution(credit) {
+ let attribution = "";
+
+ attribution += I18n.t("javascripts.map.copyright_text", {
+ copyright_link: $("<a>", {
+ href: "/copyright",
+ text: I18n.t("javascripts.map.openstreetmap_contributors")
+ }).prop("outerHTML")
+ });
+
+ attribution += credit.donate ? " ♥ " : ". ";
+ attribution += makeCredit(credit);
+ attribution += ". ";
+
+ attribution += $("<a>", {
+ href: "https://wiki.osmfoundation.org/wiki/Terms_of_Use",
+ text: I18n.t("javascripts.map.website_and_api_terms")
+ }).prop("outerHTML");
+
+ return attribution;
+ }
+
+ function makeCredit(credit) {
+ const children = {};
+ for (const childId in credit.children) {
+ children[childId] = makeCredit(credit.children[childId]);
+ }
+ const text = I18n.t(`javascripts.map.${credit.id}`, children);
+ if (credit.href) {
+ const link = $("<a>", {
+ href: credit.href,
+ text: text
+ });
+ if (credit.donate) {
+ link.addClass("donate-attr");
+ } else {
+ link.attr("target", "_blank");
+ }
+ return link.prop("outerHTML");
+ } else {
+ return text;
+ }
+ }
},
updateLayers: function (layerParam) {
getMapBaseLayerId: function () {
var baseLayerId;
this.eachLayer(function (layer) {
- if (layer.options && layer.options.keyid) baseLayerId = layer.options.keyid;
+ if (layer.options && layer.options.layerId) baseLayerId = layer.options.layerId;
});
return baseLayerId;
},
//= depend_on settings.yml
//= depend_on settings.local.yml
+//= depend_on layers.yml
//= depend_on key.yml
//= require qs/dist/qs
TRACESTRACK_KEY: <%= Settings.tracestrack_key.to_json %>,
<% end %>
+ LAYER_DEFINITIONS: <%= YAML.load_file(Rails.root.join("config/layers.yml")).to_json %>,
LAYERS_WITH_MAP_KEY: <%= YAML.load_file(Rails.root.join("config/key.yml")).keys.to_json %>,
MARKER_GREEN: <%= image_path("marker-green.png").to_json %>,
+++ /dev/null
-$map-sidebar-icons: (
-
- /* Nodes (and ways as areas) */
-
- ".aeroway.aerodrome": ("filename": "aerodrome.p.16.png"),
-
- ".amenity.atm": ("filename": "amenity_atm.16.png", "invert": true),
- ".amenity.bank": ("filename": "amenity_bank.16.png", "invert": true),
- ".amenity.bar": ("filename": "amenity_bar.16.png", "invert": true),
- ".amenity.bench": ("filename": "amenity_bench.16.png", "invert": true),
- ".amenity.biergarten": ("filename": "amenity_biergarten.16.png", "invert": true),
- ".amenity.bicycle_parking": ("filename": "amenity_bicycle_parking.16.png"),
- ".amenity.bicycle_rental": ("filename": "transport_rental_bicycle.16.png"),
- ".amenity.bus_station": ("filename": "bus_station.n.16.png"),
- ".amenity.cafe": ("filename": "amenity_cafe.16.png", "invert": true),
- ".amenity.car_rental": ("filename": "transport_rental_car.16.png"),
- ".amenity.car_sharing": ("filename": "car_share.p.16.png"),
- ".amenity.childcare": ("filename": "amenity_childcare.p.16.png"),
- ".amenity.cinema": ("filename": "amenity_cinema.16.png", "invert": true),
- ".amenity.courthouse": ("filename": "amenity_courthouse.16.png", "invert": true),
- ".amenity.dentist": ("filename": "amenity_dentist.16.png"),
- ".amenity.doctors": ("filename": "amenity_doctors.16.png"),
- ".amenity.drinking_water": ("filename": "amenity_drinking_water.16.png", "invert": true),
- ".amenity.fast_food": ("filename": "amenity_fast_food.16.png", "invert": true),
- ".amenity.fire_station": ("filename": "amenity_fire_station.16.png", "invert": true),
- ".amenity.fuel": ("filename": "amenity_fuel.16.png"),
- ".amenity.hospital": ("filename": "amenity_hospital.16.png"),
- ".amenity.kindergarten": ("filename": "amenity_childcare.p.16.png"),
- ".amenity.library": ("filename": "library.p.16.png", "invert": true),
- ".amenity.nightclub": ("filename": "amenity_nightclub.16.png", "invert": true),
- ".amenity.parking": ("filename": "parking.p.16.png"),
- ".amenity.pharmacy": ("filename": "amenity_pharmacy.16.png"),
- ".amenity.place_of_worship": ("filename": "amenity_place_of_worship.16.png", "invert": true),
- ".amenity.police": ("filename": "amenity_police.16.png", "invert": true),
- ".amenity.post_box": ("filename": "post_box.p.16.png", "invert": true),
- ".amenity.post_office": ("filename": "post_office.p.16.png", "invert": true),
- ".amenity.prison": ("filename": "amenity_prison.16.png", "invert": true),
- ".amenity.pub": ("filename": "amenity_pub.16.png", "invert": true),
- ".amenity.restaurant": ("filename": "amenity_restaurant.16.png", "invert": true),
- ".amenity.recycling": ("filename": "amenity_recycling.16.png", "invert": true),
- ".amenity.school": ("filename": "education_school.p.16.png"),
- ".amenity.shelter": ("filename": "shelter2.p.16.png"),
- ".amenity.taxi": ("filename": "amenity_taxi.16.png"),
- ".amenity.telephone": ("filename": "telephone.p.16.png", "invert": true),
- ".amenity.theatre": ("filename": "amenity_theatre.16.png", "invert": true),
- ".amenity.toilets": ("filename": "amenity_toilets.16.png", "invert": true),
- ".amenity.townhall": ("filename": "amenity_townhall.16.png", "invert": true),
- ".amenity.university": ("filename": "education_university.p.16.png"),
- ".amenity.veterinary": ("filename": "health_veterinary.p.16.png"),
- ".amenity.waste_basket": ("filename": "amenity_waste_basket.16.png", "invert": true),
-
- ".barrier.gate": ("filename": "gate2.p.16.png", "invert": true),
-
- ".highway.bus_stop": ("filename": "highway_bus_stop.16.png"),
- ".highway.mini_roundabout": ("filename": "mini_round.p.16.png"),
- ".highway.traffic_signals": ("filename": "traffic_light.png", "invert": true),
- ".highway.turning_circle": ("filename": "turning_circle.p.16.png"),
-
- ".historic.archaeological_site": ("filename": "historic_archaeological_site.16.png", "invert": true),
- ".historic.castle": ("filename": "tourist_castle.p.16.png", "invert": true),
- ".historic.memorial": ("filename": "historic_memorial.16.png", "invert": true),
- ".historic.monument": ("filename": "historic_monument.16.png", "invert": true),
- ".historic.ruins": ("filename": "tourist_ruins.p.16.png", "invert": true),
- ".historic.wreck": ("filename": "tourist_wreck.p.16.png", "invert": true),
-
- ".man_made.lighthouse": ("filename": "man_made_lighthouse.16.png"),
- ".man_made.water_tower": ("filename": "man_made_water_tower.16.png", "invert": true),
- ".man_made.windmill": ("filename": "man_made_windmill.16.png", "invert": true),
-
- ".natural.tree": ("filename": "tree.p.16.png"),
-
- ".office.diplomatic": ("filename": "office_diplomatic.16.png"),
- ".office.estate_agent": ("filename": "shop_estateagent.16.png"),
-
- ".railway.halt": ("filename": "halt.p.16.png"),
- ".railway.station": ("filename": "station.p.16.png"),
- ".railway.level_crossing": ("filename": "level_crossing.p.16.png", "invert": true),
-
- ".shop": ("filename": "shop_convenience.p.16.png"),
- ".shop.alcohol": ("filename": "shop_alcohol.16.png"),
- ".shop.bakery": ("filename": "shop_bakery.16.png"),
- ".shop.bicycle": ("filename": "shop_bicycle.16.png"),
- ".shop.books": ("filename": "shop_books.16.png"),
- ".shop.butcher": ("filename": "shop_butcher.p.16.png"),
- ".shop.clothes": ("filename": "shop_clothes.16.png"),
- ".shop.car_parts": ("filename": "shop_car_parts.16.png"),
- ".shop.car_repair": ("filename": "shop_car_repair.16.png"),
- ".shop.convenience": ("filename": "shop_convenience.p.16.png"),
- ".shop.doityourself": ("filename": "shop_doityourself.16.png"),
- ".shop.electronics": ("filename": "shop_electronics.16.png"),
- ".shop.estate_agent": ("filename": "shop_estateagent.16.png"),
- ".shop.fashion": ("filename": "shop_clothes.16.png"),
- ".shop.florist": ("filename": "shop_florist.16.png"),
- ".shop.furniture": ("filename": "shop_furniture.16.png"),
- ".shop.garden_centre": ("filename": "shop_florist.16.png"),
- ".shop.gift": ("filename": "shop_gift.16.png"),
- ".shop.greengrocer": ("filename": "shop_greengrocer.p.16.png"),
- ".shop.hardware": ("filename": "shop_doityourself.16.png"),
- ".shop.hairdresser": ("filename": "shop_hairdresser.16.png"),
- ".shop.jewelry": ("filename": "shop_jewelry.16.png"),
- ".shop.mobile_phone": ("filename": "shop_mobile_phone.16.png"),
- ".shop.optician": ("filename": "shop_optician.16.png"),
- ".shop.pet": ("filename": "shop_pet.16.png"),
- ".shop.seafood": ("filename": "shop_seafood.16.png"),
- ".shop.shoes": ("filename": "shop_shoes.16.png"),
- ".shop.supermarket": ("filename": "shop_supermarket.p.16.png"),
-
- ".tourism.alpine_hut": ("filename": "tourism_alpine_hut.16.png"),
- ".tourism.camp_site": ("filename": "tourism_camp_site.16.png"),
- ".tourism.caravan_site": ("filename": "tourism_caravan_site.16.png"),
- ".tourism.hostel": ("filename": "tourism_hostel.16.png"),
- ".tourism.hotel": ("filename": "tourism_hotel.16.png"),
- ".tourism.motel": ("filename": "tourism_motel.16.png"),
- ".tourism.museum": ("filename": "tourism_museum.16.png", "invert": true),
- ".tourism.picnic_site": ("filename": "tourism_picnic_site.16.png", "invert": true),
- ".tourism.viewpoint": ("filename": "view_point.p.16.png", "invert": true),
- ".tourism.wilderness_hut": ("filename": "tourism_wilderness_hut.16.png"),
-
- /* Ways */
-
- ".aeroway.runway": ("filename": "runway.20.png"),
- ".aeroway.taxiway": ("filename": "taxiway.20.png"),
-
- ".barrier.wall": ("filename": "wall.20.png"),
-
- ".building": ("filename": "building.png"),
-
- ".highway.bridleway": ("filename": "bridleway.20.png"),
- ".highway.cycleway": ("filename": "cycleway.20.png"),
- ".highway.footway": ("filename": "footway.20.png"),
- ".highway.motorway": ("filename": "motorway.20.png"),
- ".highway.motorway_link": ("filename": "motorway.20.png"),
- ".highway.path": ("filename": "path.20.png"),
- ".highway.pedestrian": ("filename": "service.20.png"),
- ".highway.primary": ("filename": "primary.20.png"),
- ".highway.primary_link": ("filename": "primary.20.png"),
- ".highway.residential": ("filename": "unclassified.20.png"),
- ".highway.secondary": ("filename": "secondary.20.png"),
- ".highway.secondary_link": ("filename": "secondary.20.png"),
- ".highway.service": ("filename": "service.20.png"),
- ".highway.tertiary": ("filename": "tertiary.20.png"),
- ".highway.track": ("filename": "track.20.png"),
- ".highway.trunk": ("filename": "trunk.20.png"),
- ".highway.trunk_link": ("filename": "trunk.20.png"),
- ".highway.unclassified": ("filename": "unclassified.20.png"),
-
- ".landuse.brownfield": ("filename": "brownfield.png"),
- ".landuse.cemetery": ("filename": "cemetery.png"),
- ".landuse.commercial": ("filename": "commercial.png"),
- ".landuse.farmland": ("filename": "farmland.png"),
- ".landuse.farmyard": ("filename": "farmyard.png"),
- ".landuse.forest": ("filename": "forest.png"),
- ".landuse.grass": ("filename": "grass.png"),
- ".landuse.industrial": ("filename": "industrial.png"),
- ".landuse.meadow": ("filename": "meadow.png"),
- ".landuse.military": ("filename": "military.png"),
- ".landuse.residential": ("filename": "residential.png"),
- ".landuse.retail": ("filename": "retail.png"),
- ".landuse.tourism": ("filename": "tourism.png"),
-
- ".leisure.golf_course": ("filename": "golf.png"),
- ".leisure.park": ("filename": "park.png"),
- ".leisure.picnic_table": ("filename": "tourism_picnic_site.16.png", "invert": true),
- ".leisure.playground": ("filename": "leisure_playground.16.png", "invert": true),
- ".leisure.pitch": ("filename": "pitch.png"),
- ".leisure.nature_reserve": ("filename": "reserve.png"),
- ".leisure.water_park": ("filename": "leisure_water_park.16.png", "invert": true),
-
- ".natural.grassland": ("filename": "grassland.png"),
- ".natural.heath": ("filename": "heathland.png"),
- ".natural.scrub": ("filename": "scrub.png"),
- ".natural.water": ("filename": "lake.png"),
- ".natural.wood": ("filename": "wood.png"),
-
- ".railway.light_rail": ("filename": "light_rail.20.png"),
- ".railway.rail": ("filename": "rail.20.png"),
- ".railway.subway": ("filename": "subway.20.png"),
- ".railway.tram": ("filename": "tram.20.png"),
-
-)
@use "sass:map";
@import "parameters";
-@import "browse";
@import "bootstrap";
@import "rails_bootstrap_forms";
body {
font-size: $typeheight;
+ --dark-mode-map-filter: brightness(.8);
}
time[title] {
.search_forms {
display: block;
}
+
+ .username {
+ max-width: unset;
+ }
}
#sidebar .search_forms {
}
@include color-mode(dark) {
- .leaflet-tile-container .leaflet-tile,
- .mapkey-table-entry td:first-child > * {
- filter: brightness(.8);
- }
-
.leaflet-container .leaflet-control-attribution a {
color: var(--bs-link-color);
}
}
}
+@mixin dark-map-color-scheme {
+ .leaflet-tile-container,
+ .mapkey-table-entry td:first-child > * {
+ filter: var(--dark-mode-map-filter);
+ }
+
+ .leaflet-tile-container .leaflet-tile {
+ filter: none;
+ }
+}
+
+body[data-map-theme="dark"] {
+ @include dark-map-color-scheme;
+}
+
+@include color-mode(dark) {
+ body:not([data-map-theme]) {
+ @include dark-map-color-scheme;
+ }
+}
+
/* Rules for attribution text under the main map shown on printouts */
.donate-attr { color: darken($green, 10%) !important; }
}
}
-/* Rules for block pages */
+/* Rules for tables with usernames */
+.messages-table .username,
#block_list .username {
max-width: 20em;
}
-/* Rules for tabs inside secondary background sections */
+/* Rules for navigation tabs */
+
+.nav-tabs .username {
+ max-width: 20em;
+}
.bg-body-secondary .nav-tabs {
--bs-border-color: var(--bs-secondary-border-subtle);
/* Rules for map sidebar icons */
-.browse-section {
- .node::before,
- .way::before,
- .relation::before {
- display: inline-block;
- width: 25px;
- margin-left: -25px;
- }
+.browse-section .browse-element-list {
+ line-height: 1.25rem;
- .node, .way, .relation {
- margin-left: 25px;
+ .browse-icon {
+ height: 1.25rem;
}
-}
-@each $class, $item in $map-sidebar-icons {
- .browse-section #{$class}::before {
- content: image-url('browse/#{map.get($item, "filename")}');
+ .d-flex > .browse-icon {
+ height: max(20px, 1.25rem);
}
- @if map.get($item, "invert") {
- @include color-mode(dark) {
- .browse-section #{$class}::before {
- filter: invert(.8) hue-rotate(180deg);
- }
+ @include color-mode(dark) {
+ .browse-icon-invertible {
+ filter: invert(.8) hue-rotate(180deg);
}
}
}
$list-group-hover-bg: rgba(var(--bs-emphasis-color-rgb), .075);
$enable-negative-margins: true;
-$color-mode-type: media-query;
--- /dev/null
+@use "common" with (
+ $color-mode-type: media-query
+);
--- /dev/null
+@use "common" with (
+ $color-mode-type: media-query
+);
+++ /dev/null
-@import "common";
--- /dev/null
+@use "common" with (
+ $color-mode-type: data
+);
--- /dev/null
+@use "common" with (
+ $color-mode-type: data
+);
+++ /dev/null
-@import "common";
--- /dev/null
+module Api
+ class NoteSubscriptionsController < ApiController
+ before_action :check_api_writable
+ before_action :authorize
+
+ authorize_resource
+
+ def create
+ note_id = params[:note_id].to_i
+ note = Note.find(note_id)
+ note.subscribers << current_user
+ rescue ActiveRecord::RecordNotFound
+ report_error "Note #{note_id} not found.", :not_found
+ rescue ActiveRecord::RecordNotUnique
+ report_error "You are already subscribed to note #{note_id}.", :conflict
+ end
+
+ def destroy
+ note_id = params[:note_id].to_i
+ note = Note.find(note_id)
+ count = note.subscriptions.where(:user => current_user).delete_all
+ report_error "You are not subscribed to note #{note_id}.", :not_found if count.zero?
+ rescue ActiveRecord::RecordNotFound
+ report_error "Note #{note_id} not found.", :not_found
+ end
+ end
+end
end
def update
- logger.debug request.raw_post
-
relation = Relation.find(params[:id])
new_relation = Relation.from_xml(request.raw_post)
--- /dev/null
+module Api
+ module Traces
+ class DataController < ApiController
+ before_action :set_locale
+ before_action :authorize
+
+ authorize_resource :trace
+
+ before_action :offline_error
+
+ def show
+ trace = Trace.visible.find(params[:trace_id])
+
+ if trace.public? || trace.user == current_user
+ if request.format == Mime[:xml]
+ send_data(trace.xml_file.read, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => "attachment")
+ elsif request.format == Mime[:gpx]
+ send_data(trace.xml_file.read, :filename => "#{trace.id}.gpx", :type => request.format.to_s, :disposition => "attachment")
+ elsif trace.file.attached?
+ redirect_to rails_blob_path(trace.file, :disposition => "attachment")
+ else
+ send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => "attachment")
+ end
+ else
+ head :forbidden
+ end
+ end
+
+ private
+
+ def offline_error
+ report_error "GPX files offline for maintenance", :service_unavailable if Settings.status == "gpx_offline"
+ end
+ end
+ end
+end
authorize_resource
- before_action :offline_error, :only => [:create, :destroy, :data]
+ before_action :offline_error, :only => [:create, :destroy]
skip_around_action :api_call_timeout, :only => :create
def show
end
end
- def data
- trace = Trace.visible.find(params[:id])
-
- if trace.public? || trace.user == current_user
- if request.format == Mime[:xml]
- send_data(trace.xml_file.read, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => "attachment")
- elsif request.format == Mime[:gpx]
- send_data(trace.xml_file.read, :filename => "#{trace.id}.gpx", :type => request.format.to_s, :disposition => "attachment")
- elsif trace.file.attached?
- redirect_to rails_blob_path(trace.file, :disposition => "attachment")
- else
- send_file(trace.trace_name, :filename => "#{trace.id}#{trace.extension_name}", :type => trace.mime_type, :disposition => "attachment")
- end
- else
- head :forbidden
- end
- end
-
private
def do_create(file, tags, description, visibility)
def self.allow_thirdparty_images(**options)
content_security_policy(options) do |policy|
- policy.img_src("*")
+ policy.img_src("*", :data)
end
end
def map_layout
policy = request.content_security_policy.clone
- policy.child_src(*policy.child_src, "http://127.0.0.1:8111", "https://127.0.0.1:8112")
- policy.frame_src(*policy.frame_src, "http://127.0.0.1:8111", "https://127.0.0.1:8112")
- policy.connect_src(*policy.connect_src, Settings.nominatim_url, Settings.overpass_url, Settings.fossgis_osrm_url, Settings.graphhopper_url, Settings.fossgis_valhalla_url)
+ policy.connect_src(*policy.connect_src, "http://127.0.0.1:8111", Settings.nominatim_url, Settings.overpass_url, Settings.fossgis_osrm_url, Settings.graphhopper_url, Settings.fossgis_valhalla_url)
policy.form_action(*policy.form_action, "render.openstreetmap.org")
policy.style_src(*policy.style_src, :unsafe_inline)
end
end
- helper_method :preferred_editor
+ def preferred_color_scheme(subject)
+ if current_user
+ current_user.preferences.find_by(:k => "#{subject}.color_scheme")&.v || "auto"
+ else
+ "auto"
+ end
+ end
+
+ helper_method :preferred_editor, :preferred_color_scheme
def update_totp
if Settings.key?(:totp_key)
@title = t ".title"
@issue_types = []
- @issue_types.push("Note", "User") if current_user.moderator?
- @issue_types.push("DiaryEntry", "DiaryComment", "User") if current_user.administrator?
+ @issue_types |= %w[Note User] if current_user.moderator?
+ @issue_types |= %w[DiaryEntry DiaryComment User] if current_user.administrator?
@users = User.joins(:roles).where(:user_roles => { :role => current_user.roles.map(&:role) }).distinct
@issues = Issue.visible_to(current_user)
end
def show
- @title = t ".title", :status => @issue.status.humanize, :issue_id => @issue.id
+ @title = t ".title.#{@issue.status}", :issue_id => @issue.id
@read_reports = @issue.read_reports
@unread_reports = @issue.unread_reports
@comments = @issue.comments
render :template => "browse/not_found", :status => :not_found
end
- def new; end
+ def new
+ render :action => :new_readonly if api_status != "online"
+ end
end
allow_all_form_action :only => :new
authorize_resource :class => false
+
+ before_action :check_database_writable
end
else
params[:user][:preferred_editor]
end
- if current_user.save
+
+ success = current_user.save
+
+ if params[:site_color_scheme]
+ site_color_scheme_preference = current_user.preferences.find_or_create_by(:k => "site.color_scheme")
+ success &= site_color_scheme_preference.update(:v => params[:site_color_scheme])
+ end
+
+ if params[:map_color_scheme]
+ map_color_scheme_preference = current_user.preferences.find_or_create_by(:k => "map.color_scheme")
+ success &= map_color_scheme_preference.update(:v => params[:map_color_scheme])
+ end
+
+ if success
# Use a partial so that it is rendered during the next page load in the correct language.
flash[:notice] = { :partial => "preferences/update_success_flash" }
redirect_to preferences_path
module BrowseHelper
+ def element_icon(type, object)
+ selected_icon_data = { :filename => "#{type}.svg", :priority => 1 }
+
+ unless object.redacted?
+ target_tags = object.tags.find_all { |k, _v| BROWSE_ICONS.key? k }.sort
+ title = target_tags.map { |k, v| "#{k}=#{v}" }.to_sentence unless target_tags.empty?
+
+ target_tags.each do |k, v|
+ icon_data = BROWSE_ICONS[k][v] || BROWSE_ICONS[k][:*]
+ selected_icon_data = icon_data if icon_data && icon_data[:priority] > selected_icon_data[:priority]
+ end
+ end
+
+ image_tag "browse/#{selected_icon_data[:filename]}",
+ :size => 20,
+ :class => ["align-bottom object-fit-none browse-icon", { "browse-icon-invertible" => selected_icon_data[:invert] }],
+ :title => title
+ end
+
def element_single_current_link(type, object)
- link_to object, { :class => element_class(type, object), :title => element_title(object), :rel => (link_follow(object) if type == "node") } do
+ link_to object, { :rel => (link_follow(object) if type == "node") } do
element_strikethrough object do
printable_element_name object
end
end
end
- def element_list_item(type, object, &block)
- tag.li :class => element_class(type, object), :title => element_title(object) do
- element_strikethrough object, &block
+ def element_list_item(type, object, &)
+ tag.li(tag.div(element_icon(type, object) + tag.div(:class => "align-self-center", &), :class => "d-flex gap-1"))
+ end
+
+ def element_list_item_with_strikethrough(type, object, &)
+ element_list_item type, object do
+ element_strikethrough object, &
end
end
end
end
- def element_class(type, object)
- classes = [type]
- classes += icon_tags(object).flatten.map { |t| h(t) } unless object.redacted?
- classes.join(" ")
- end
-
- def element_title(object)
- if object.redacted?
- ""
- else
- h(icon_tags(object).map { |k, v| "#{k}=#{v}" }.to_sentence)
- end
- end
-
def link_follow(object)
"nofollow" if object.tags.empty?
end
private
- ICON_TAGS = %w[aeroway amenity barrier building highway historic landuse leisure man_made natural office railway shop tourism waterway].freeze
-
- def icon_tags(object)
- object.tags.find_all { |k, _v| ICON_TAGS.include? k }.sort
- end
-
def name_locales(object)
object.tags.keys.map { |k| Regexp.last_match(1) if k =~ /^name:(.*)$/ }.flatten
end
if changeset.user.status == "deleted"
t("users.no_such_user.deleted")
elsif changeset.user.data_public?
- link_to changeset.user.display_name, changeset.user
+ link_to changeset.user.display_name, changeset.user, :class => "mw-100 d-inline-block align-bottom text-truncate text-wrap", :dir => "auto"
else
t("browse.anonymous")
end
elsif author.status == "deleted"
t("users.no_such_user.deleted")
else
- link_to h(author.display_name), link_options.merge(:controller => "/users", :action => "show", :display_name => author.display_name)
+ link_to h(author.display_name), link_options.merge(:controller => "/users", :action => "show", :display_name => author.display_name),
+ :class => "mw-100 d-inline-block align-bottom text-truncate text-wrap", :dir => "auto"
end
end
end
end
end
+ def block_short_status(block)
+ if block.active?
+ if block.needs_view?
+ if block.ends_at > Time.now.utc
+ t("user_blocks.helper.short.active_unread")
+ else
+ t("user_blocks.helper.short.expired_unread")
+ end
+ else
+ t("user_blocks.helper.short.active")
+ end
+ else
+ if block.revoker_id.nil?
+ if block.updated_at > block.ends_at
+ t("user_blocks.helper.short.read_html", :time => block_short_time_in_past(block.updated_at))
+ else
+ t("user_blocks.helper.short.ended")
+ end
+ else
+ t("user_blocks.helper.short.revoked_html", :name => link_to(block.revoker.display_name, block.revoker,
+ :class => "username d-inline-block text-truncate text-wrap align-bottom",
+ :dir => "auto"))
+ end
+ end
+ end
+
+ def block_short_time_in_future(time)
+ tag.time l(time.to_date),
+ :datetime => time.xmlschema,
+ :title => t("user_blocks.helper.short.time_in_future_title",
+ :time_absolute => l(time, :format => :friendly),
+ :time_relative => time_ago_in_words(time))
+ end
+
+ def block_short_time_in_past(time)
+ tag.time l(time.to_date),
+ :datetime => time.xmlschema,
+ :title => t("user_blocks.helper.short.time_in_past_title",
+ :time_absolute => l(time, :format => :friendly),
+ :time_relative => time_ago_in_words(time, :scope => :"datetime.distance_in_words_ago"))
+ end
+
def block_duration_in_words(duration)
# Ensure the requested duration isn't negative, even by a millisecond
duration = 0 if duration.negative?
# Because we can't use stylesheets in HTML emails, we need to inline the
# styles. Rather than copy-paste the same string of CSS into every message,
# we apply it once here, after the message has been composed.
- html.gsub("<p>", '<p style="color: black; margin: 0.75em 0; font-family: \'Helvetica Neue\', Arial, Sans-Serif">')
+ html.gsub("<p>", '<p style="color: black; margin: 0.75em 0; font-family: \'Helvetica Neue\', Arial, Sans-Serif">').html_safe
end
def style_left
class UserBlock < ApplicationRecord
validate :moderator_permissions
- validates :reason, :characters => true
+ validates :reason, :characters => true, :length => { :maximum => 10000 }
validates :deactivates_at, :comparison => { :greater_than_or_equal_to => :ends_at }, :unless => -> { needs_view }
validates :deactivates_at, :absence => true, :if => -> { needs_view }
-<li><%= linked_name = link_to printable_element_name(containing_relation.relation), containing_relation.relation
- if containing_relation.member_role.blank?
- t ".entry_html", :relation_name => linked_name
- else
- t ".entry_role_html", :relation_name => linked_name, :relation_role => containing_relation.member_role
- end %>
-</li>
+<%= element_list_item "relation", containing_relation.relation do %>
+ <%= linked_name = link_to printable_element_name(containing_relation.relation), containing_relation.relation
+ if containing_relation.member_role.blank?
+ linked_name
+ else
+ t ".entry_role_html", :relation_name => linked_name, :relation_role => containing_relation.member_role
+ end %>
+<% end %>
<% unless node.ways.empty? %>
<details <%= "open" if node.ways.count < 10 %>>
<summary><%= t "browse.part_of_ways", :count => node.ways.uniq.count %></summary>
- <ul class="list-unstyled">
+ <ul class="list-unstyled browse-element-list">
<% node.ways.uniq.each do |way| %>
- <li><%= element_single_current_link "way", way %></li>
+ <%= element_list_item "way", way do %>
+ <%= element_single_current_link "way", way %>
+ <% end %>
<% end %>
</ul>
</details>
<% unless node.containing_relation_members.empty? %>
<details <%= "open" if node.containing_relation_members.count < 10 %>>
<summary><%= t "browse.part_of_relations", :count => node.containing_relation_members.uniq.count %></summary>
- <ul class="list-unstyled">
+ <ul class="list-unstyled browse-element-list">
<%= render :partial => "browse/containing_relation", :collection => node.containing_relation_members.uniq %>
</ul>
</details>
<h4><%= t "browse.part_of" %></h4>
<details <%= "open" if relation.containing_relation_members.count < 10 %>>
<summary><%= t "browse.part_of_relations", :count => relation.containing_relation_members.uniq.count %></summary>
- <ul class="list-unstyled">
+ <ul class="list-unstyled browse-element-list">
<%= render :partial => "browse/containing_relation", :collection => relation.containing_relation_members.uniq %>
</ul>
</details>
<h4><%= t ".members" %></h4>
<details <%= "open" if relation.relation_members.count < 10 %>>
<summary><%= t ".members_count", :count => relation.relation_members.count %></summary>
- <ul class="list-unstyled">
+ <ul class="list-unstyled browse-element-list">
<%= render :partial => "browse/relation_member", :collection => relation.relation_members %>
</ul>
</details>
<% linked_name = link_to printable_element_name(relation_member.member), relation_member.member, { :rel => link_follow(relation_member.member) }
type_str = t ".type.#{relation_member.member_type.downcase}" %>
-<%= element_list_item relation_member.member_type.downcase, relation_member.member do %>
+<%= element_list_item_with_strikethrough relation_member.member_type.downcase, relation_member.member do %>
<%= if relation_member.member_role.blank?
t ".entry_html", :type => type_str, :name => linked_name
else
<h4><%= t "browse.part_of" %></h4>
<details <%= "open" if way.containing_relation_members.count < 10 %>>
<summary><%= t "browse.part_of_relations", :count => way.containing_relation_members.uniq.count %></summary>
- <ul class="list-unstyled">
+ <ul class="list-unstyled browse-element-list">
<%= render :partial => "browse/containing_relation", :collection => way.containing_relation_members.uniq %>
</ul>
</details>
<h4><%= t ".nodes" %></h4>
<details <%= "open" if way.way_nodes.count < 10 %>>
<summary><%= t ".nodes_count", :count => way.way_nodes.count %></summary>
- <ul class="list-unstyled">
+ <ul class="list-unstyled browse-element-list">
<% way.way_nodes.each do |wn| %>
- <li>
+ <%= element_list_item "node", wn.node do %>
<%= element_single_current_link "node", wn.node %>
<% related_ways = wn.node.ways.reject { |w| w.id == wn.way_id } %>
+ <% icon_connector = " " %>
<% if related_ways.size > 0 then %>
(<%= t ".also_part_of_html",
:count => related_ways.size,
- :related_ways => to_sentence(related_ways.map { |w| element_single_current_link "way", w }) %>)
+ :related_ways => to_sentence(related_ways.map { |w| element_icon("way", w) + icon_connector + element_single_current_link("way", w) }) %>)
<% end %>
- </li>
+ <% end %>
<% end %>
</ul>
</details>
<%= turbo_frame_tag "changeset_#{type.pluralize}" do %>
<%= render :partial => "paging_nav", :locals => { :type => type, :pages => pages } %>
- <ul class="list-unstyled" data-turbo="false">
+ <ul class="list-unstyled browse-element-list" data-turbo="false">
<% elements.each do |element| %>
- <%= element_list_item type, element do
- t "printable_name.current_and_old_links_html",
+ <%= element_list_item_with_strikethrough type, element do %>
+ <%= t "printable_name.current_and_old_links_html",
:current_link => link_to(printable_element_name(element), :controller => type.pluralize, :action => :show, :id => element.id[0]),
- :old_link => link_to(printable_element_version(element), :controller => "old_#{type.pluralize}", :action => :show, :id => element.id[0], :version => element.version)
- end %>
+ :old_link => link_to(printable_element_version(element), :controller => "old_#{type.pluralize}", :action => :show, :id => element.id[0], :version => element.version) %>
+ <% end %>
<% end %>
</ul>
<% end %>
</div>
<div class="mb-3 col-md-auto">
<%= select_tag :issue_type,
- options_for_select(@issue_types, params[:issue_type]),
+ options_for_select(@issue_types.map { |issue_type| [issue_type.constantize.model_name.human, issue_type] }, params[:issue_type]),
:include_blank => t(".select_type"),
:data => { :behavior => "category_dropdown" },
:class => "form-select" %>
<% content_for :heading do %>
-<h1><%= t ".title", :status => @issue.status.humanize, :issue_id => @issue.id %></h1>
+<h1><%= @title %></h1>
<p><%= @issue.reportable.model_name.human %> : <%= link_to reportable_title(@issue.reportable), reportable_url(@issue.reportable) %></p>
<p class="text-body-secondary">
<small>
<%= javascript_include_tag "turbo", :type => "module" %>
<%= javascript_include_tag "application" %>
<%= javascript_include_tag "i18n/#{I18n.locale}" %>
- <%= stylesheet_link_tag "screen-#{dir}", :media => "screen" %>
+ <% if preferred_color_scheme(:site) == "auto" %>
+ <%= stylesheet_link_tag "screen-auto-#{dir}", :media => "screen" %>
+ <% else %>
+ <%= stylesheet_link_tag "screen-manual-#{dir}", :media => "screen" %>
+ <% end %>
<%= stylesheet_link_tag "print-#{dir}", :media => "print" %>
<%= stylesheet_link_tag "leaflet-all", :media => "screen, print" %>
<%= render :partial => "layouts/meta" %>
</ul>
<% if current_user && current_user.id %>
<div class='d-inline-flex dropdown user-menu logged-in'>
- <button class='d-flex gap-1 align-items-center justify-content-center dropdown-toggle btn btn-outline-secondary border-secondary-subtle bg-body text-secondary px-2 py-1 flex-grow-1' type='button' data-bs-toggle='dropdown'>
+ <button class='d-flex gap-1 align-items-center justify-content-center dropdown-toggle btn btn-outline-secondary border-secondary-subtle bg-body text-secondary px-2 py-1 flex-grow-1 mw-100' type='button' data-bs-toggle='dropdown'>
<%= user_thumbnail_tiny(current_user, :class => "user_thumbnail_tiny rounded-1 bg-body") %>
<% if current_user.new_messages.size > 0 %>
<span class="badge count-number position-static m-1"><%= current_user.new_messages.size %></span>
<% end %>
- <span class='username align-middle text-truncate'>
+ <span class='username align-middle text-truncate' dir='auto'>
<%= current_user.display_name %>
</span>
</button>
<!DOCTYPE html>
-<html lang="<%= I18n.locale %>" dir="<%= dir %>">
+<%= tag.html :lang => I18n.locale,
+ :dir => dir,
+ :data => { :bs_theme => (preferred_color_scheme(:site) if preferred_color_scheme(:site) != "auto") } do %>
<%= render :partial => "layouts/head" %>
- <body class="<%= body_class %>">
+ <%= tag.body :class => body_class,
+ :data => { :map_theme => (preferred_color_scheme(:map) if preferred_color_scheme(:map) != "auto") } do %>
<%= render :partial => "layouts/header" %>
<%= render :partial => "layouts/content" %>
<% if defined?(Settings.matomo) -%>
<noscript><p><img src="<%= request.protocol %><%= Settings.matomo["location"] %>/matomo.php?idsite=<%= Settings.matomo["site"] %>" class="matomo" alt="" /></p></noscript>
<% end -%>
- </body>
-</html>
+ <% end %>
+<% end %>
<table style="background-color: #fff; color: #222; border: solid 1px #ccc; border-collapse: separate">
<tr>
<td style="text-align: <%= style_left %>; padding: 0px 15px 5px 15px">
- <%= raw style_message(yield) %>
+ <%= style_message(yield) %>
</td>
</tr>
</table>
<%= tag.tr(:id => "inbox-#{message.id}", :class => { "table-success" => !message.message_read? }) do %>
- <td><%= link_to message.sender.display_name, user_path(message.sender) %></td>
+ <td><%= link_to message.sender.display_name, user_path(message.sender), :class => "username d-inline-block text-truncate text-wrap align-bottom", :dir => "auto" %></td>
<td><%= link_to message.title, message_path(message) %></td>
<td class="text-nowrap"><%= l message.sent_on, :format => :friendly %></td>
<td class="text-nowrap">
<%= tag.tr(:id => "outbox-#{message.id}") do %>
- <td><%= link_to message.recipient.display_name, user_path(message.recipient) %></td>
+ <td><%= link_to message.recipient.display_name, user_path(message.recipient), :class => "username d-inline-block text-truncate text-wrap align-bottom", :dir => "auto" %></td>
<td><%= link_to message.title, message_path(message) %></td>
<td class="text-nowrap"><%= l message.sent_on, :format => :friendly %></td>
<td class="text-nowrap">
--- /dev/null
+<% set_title(t(".title")) %>
+
+<%= render "sidebar_header", :title => t(".title") %>
+
+<div class="note">
+ <p class="alert alert-warning"><%= t(".warning") %></p>
+</div>
</div>
<div class="details" data-coordinates="<%= @note.lat %>,<%= @note.lon %>" data-status="<%= @note.status %>">
- <ul class="list-unstyled">
- <li><%= note_event("opened", @note.created_at, @note.author) %></li>
- <% if @note.status == "closed" %>
- <li><%= note_event(@note.status, @note.closed_at, @note.all_comments.last.author) %></li>
- <% end %>
- <li>
- <%= t "browse.location" %>
- <%= link_to(t(".coordinates_html",
- :latitude => tag.span(number_with_delimiter(@note.lat), :class => "latitude"),
- :longitude => tag.span(number_with_delimiter(@note.lon), :class => "longitude")),
- root_path(:anchor => "map=18/#{@note.lat}/#{@note.lon}")) %>
- </li>
- </ul>
+ <p class="mb-2"><%= note_event("opened", @note.created_at, @note.author) %></p>
+ <% if @note.status == "closed" %>
+ <p class="mb-2"><%= note_event(@note.status, @note.closed_at, @note.all_comments.last.author) %></p>
+ <% end %>
+ <p>
+ <%= t "browse.location" %>
+ <%= link_to t(".coordinates_html",
+ :latitude => tag.span(number_with_delimiter(@note.lat), :class => "latitude"),
+ :longitude => tag.span(number_with_delimiter(@note.lon), :class => "longitude")),
+ root_path(:anchor => "map=18/#{@note.lat}/#{@note.lon}") %>
+ </p>
</div>
<% if @note_comments.find { |comment| comment.author.nil? } -%>
<p class='alert alert-warning'><%= t ".anonymous_warning" %></p>
<% end -%>
+ <div class="row">
+ <div class="col">
+ <h4><%= t(".discussion") %></h4>
+ </div>
+
+ <% if current_user %>
+ <div class="col-auto">
+ <% if @note.subscribers.exists?(current_user.id) %>
+ <%= tag.button t(".unsubscribe"),
+ :type => "button",
+ :class => "btn btn-sm btn-primary",
+ :name => "unsubscribe",
+ :data => { :method => "DELETE",
+ :url => api_note_subscription_path(@note) } %>
+ <% else %>
+ <%= tag.button t(".subscribe"),
+ :type => "button",
+ :class => "btn btn-sm btn-primary",
+ :name => "subscribe",
+ :data => { :method => "POST",
+ :url => api_note_subscription_path(@note) } %>
+ <% end %>
+ </div>
+ <% end %>
+ </div>
+
<% if @note_comments.length > 1 %>
<div class='note-comments'>
<ul class="list-unstyled">
<%= f.text_field :languages %>
+ <div class="mb-3">
+ <%= label_tag "site_color_scheme", t("preferences.show.preferred_site_color_scheme"), :class => "form-label" %>
+ <%= select_tag "site_color_scheme",
+ options_for_select(%w[auto light dark].map { |scheme| [t("preferences.show.site_color_schemes.#{scheme}"), scheme] },
+ preferred_color_scheme(:site)),
+ :class => "form-select" %>
+ </div>
+
+ <div class="mb-3">
+ <%= label_tag "map_color_scheme", t("preferences.show.preferred_map_color_scheme"), :class => "form-label" %>
+ <%= select_tag "map_color_scheme",
+ options_for_select(%w[auto light dark].map { |scheme| [t("preferences.show.map_color_schemes.#{scheme}"), scheme] },
+ preferred_color_scheme(:map)),
+ :class => "form-select" %>
+ </div>
+
<%= f.primary t(".save") %>
<%= link_to t(".cancel"), preferences_path, :class => "btn btn-link" %>
<% end %>
<li><%= locale %></li>
<% end %>
</ul>
+ </dd>
+ <dt class="col-sm-4"><%= t ".preferred_site_color_scheme" %></dt>
+ <dd class="col-sm-8">
+ <%= t ".site_color_schemes.#{preferred_color_scheme(:site)}" %>
+ </dd>
+
+ <dt class="col-sm-4"><%= t ".preferred_map_color_scheme" %></dt>
+ <dd class="col-sm-8">
+ <%= t ".map_color_schemes.#{preferred_color_scheme(:map)}" %>
</dd>
</dl>
</li>
<% end %>
<li class="nav-item">
- <%= link_to t(".traces_from", :user => @target_user&.display_name), { :controller => "traces", :action => "index", :display_name => @target_user&.display_name }, { :class => "nav-link active" } %>
+ <%= link_to t(".traces_from_html", :user => tag.span(@target_user.display_name, :class => "username text-truncate d-inline-block align-bottom", :dir => "auto")),
+ { :controller => "traces", :action => "index", :display_name => @target_user.display_name }, { :class => "nav-link active" } %>
</li>
<% end %>
</ul>
<tr>
<% if @show_user_name %>
- <td><%= link_to block.user.display_name, block.user, :class => "username d-inline-block text-truncate text-wrap" %></td>
+ <td><%= link_to block.user.display_name, block.user, :class => "username d-inline-block text-truncate text-wrap", :dir => "auto" %></td>
<% end %>
<% if @show_creator_name %>
- <td><%= link_to block.creator.display_name, block.creator, :class => "username d-inline-block text-truncate text-wrap" %></td>
+ <td><%= link_to block.creator.display_name, block.creator, :class => "username d-inline-block text-truncate text-wrap", :dir => "auto" %></td>
<% end %>
<td><%= h truncate(block.reason) %></td>
- <td><%= h block_status(block) %></td>
- <td>
- <% if block.revoker_id.nil? %>
- <%= t(".not_revoked") %>
- <% else %>
- <%= link_to block.revoker.display_name, block.revoker %>
- <% end %>
- </td>
+ <td><%= block_short_time_in_past(block.created_at) %></td>
+ <% if block.ends_at > Time.now.utc %>
+ <td><%= block_short_time_in_future(block.ends_at) %></td>
+ <% else %>
+ <td><%= block_short_time_in_past(block.ends_at) %></td>
+ <% end %>
+ <td><%= h block_short_status(block) %></td>
<td><%= link_to t(".show"), block %></td>
<td><% if can?(:edit, block) %><%= link_to t(".edit"), edit_user_block_path(block) %><% end %></td>
</tr>
<% on_user = @user || @user_block&.user %>
<% if on_user != current_user && on_user&.blocks&.exists? %>
<li class="nav-item">
- <%= link_to t(".blocks_on_user", :user => on_user.display_name),
+ <%= link_to t(".blocks_on_user_html", :user => tag.span(on_user.display_name, :class => "username text-truncate d-inline-block align-bottom", :dir => "auto")),
user_blocks_on_path(on_user),
:class => ["nav-link", { :active => action_name == "blocks_on" }] %>
</li>
<% by_user = @user || @user_block&.creator %>
<% if by_user != current_user && by_user&.blocks_created&.exists? %>
<li class="nav-item">
- <%= link_to t(".blocks_by_user", :user => by_user.display_name),
+ <%= link_to t(".blocks_by_user_html", :user => tag.span(by_user.display_name, :class => "username text-truncate d-inline-block align-bottom", :dir => "auto")),
user_blocks_by_path(by_user),
:class => ["nav-link", { :active => action_name == "blocks_by" }] %>
</li>
<th><%= t ".creator_name" %></th>
<% end %>
<th><%= t ".reason" %></th>
+ <th><%= t ".start" %></th>
+ <th><%= t ".end" %></th>
<th><%= t ".status" %></th>
- <th><%= t ".revoker_name" %></th>
<th></th>
<th></th>
</tr>
--- /dev/null
+aeroway:
+ aerodrome: { filename: "aerodrome.p.16.png" }
+
+ runway: { filename: "runway.20.png" }
+ taxiway: { filename: "taxiway.20.png" }
+
+amenity:
+ atm: { filename: "amenity_atm.16.png", invert: true }
+ bank: { filename: "amenity_bank.16.png", invert: true }
+ bar: { filename: "amenity_bar.16.png", invert: true }
+ bench: { filename: "amenity_bench.16.png", invert: true }
+ biergarten: { filename: "amenity_biergarten.16.png", invert: true }
+ bicycle_parking: { filename: "amenity_bicycle_parking.16.png" }
+ bicycle_rental: { filename: "transport_rental_bicycle.16.png" }
+ bus_station: { filename: "bus_station.n.16.png" }
+ cafe: { filename: "amenity_cafe.16.png", invert: true }
+ car_rental: { filename: "transport_rental_car.16.png" }
+ car_sharing: { filename: "car_share.p.16.png" }
+ childcare: { filename: "amenity_childcare.p.16.png" }
+ cinema: { filename: "amenity_cinema.16.png", invert: true }
+ courthouse: { filename: "amenity_courthouse.16.png", invert: true }
+ dentist: { filename: "amenity_dentist.16.png" }
+ doctors: { filename: "amenity_doctors.16.png" }
+ drinking_water: { filename: "amenity_drinking_water.16.png", invert: true }
+ fast_food: { filename: "amenity_fast_food.16.png", invert: true }
+ fire_station: { filename: "amenity_fire_station.16.png", invert: true }
+ fuel: { filename: "amenity_fuel.16.png" }
+ hospital: { filename: "amenity_hospital.16.png" }
+ kindergarten: { filename: "amenity_childcare.p.16.png" }
+ library: { filename: "library.p.16.png", invert: true }
+ nightclub: { filename: "amenity_nightclub.16.png", invert: true }
+ parking: { filename: "parking.p.16.png" }
+ pharmacy: { filename: "amenity_pharmacy.16.png" }
+ place_of_worship: { filename: "amenity_place_of_worship.16.png", invert: true }
+ police: { filename: "amenity_police.16.png", invert: true }
+ post_box: { filename: "post_box.p.16.png", invert: true }
+ post_office: { filename: "post_office.p.16.png", invert: true }
+ prison: { filename: "amenity_prison.16.png", invert: true }
+ pub: { filename: "amenity_pub.16.png", invert: true }
+ restaurant: { filename: "amenity_restaurant.16.png", invert: true }
+ recycling: { filename: "amenity_recycling.16.png", invert: true }
+ school: { filename: "education_school.p.16.png" }
+ shelter: { filename: "shelter2.p.16.png" }
+ taxi: { filename: "amenity_taxi.16.png" }
+ telephone: { filename: "telephone.p.16.png", invert: true }
+ theatre: { filename: "amenity_theatre.16.png", invert: true }
+ toilets: { filename: "amenity_toilets.16.png", invert: true }
+ townhall: { filename: "amenity_townhall.16.png", invert: true }
+ university: { filename: "education_university.p.16.png" }
+ veterinary: { filename: "health_veterinary.p.16.png" }
+ waste_basket: { filename: "amenity_waste_basket.16.png", invert: true }
+
+barrier:
+ gate: { filename: "gate2.p.16.png", invert: true }
+
+ wall: { filename: "wall.20.png" }
+
+building:
+ :*: { filename: "building.png" }
+
+highway:
+ bus_stop: { filename: "highway_bus_stop.16.png" }
+ mini_roundabout: { filename: "mini_round.p.16.png" }
+ traffic_signals: { filename: "traffic_light.png", invert: true }
+ turning_circle: { filename: "turning_circle.p.16.png" }
+
+ bridleway: { filename: "bridleway.20.png" }
+ cycleway: { filename: "cycleway.20.png" }
+ footway: { filename: "footway.20.png" }
+ motorway: { filename: "motorway.20.png" }
+ motorway_link: { filename: "motorway.20.png" }
+ path: { filename: "path.20.png" }
+ pedestrian: { filename: "service.20.png" }
+ primary: { filename: "primary.20.png" }
+ primary_link: { filename: "primary.20.png" }
+ residential: { filename: "unclassified.20.png" }
+ secondary: { filename: "secondary.20.png" }
+ secondary_link: { filename: "secondary.20.png" }
+ service: { filename: "service.20.png" }
+ tertiary: { filename: "tertiary.20.png" }
+ track: { filename: "track.20.png" }
+ trunk: { filename: "trunk.20.png" }
+ trunk_link: { filename: "trunk.20.png" }
+ unclassified: { filename: "unclassified.20.png" }
+
+historic:
+ archaeological_site: { filename: "historic_archaeological_site.16.png", invert: true }
+ castle: { filename: "tourist_castle.p.16.png", invert: true }
+ memorial: { filename: "historic_memorial.16.png", invert: true }
+ monument: { filename: "historic_monument.16.png", invert: true }
+ ruins: { filename: "tourist_ruins.p.16.png", invert: true }
+ wreck: { filename: "tourist_wreck.p.16.png", invert: true }
+
+landuse:
+ brownfield: { filename: "brownfield.png" }
+ cemetery: { filename: "cemetery.png" }
+ commercial: { filename: "commercial.png" }
+ farmland: { filename: "farmland.png" }
+ farmyard: { filename: "farmyard.png" }
+ forest: { filename: "forest.png" }
+ grass: { filename: "grass.png" }
+ industrial: { filename: "industrial.png" }
+ meadow: { filename: "meadow.png" }
+ military: { filename: "military.png" }
+ residential: { filename: "residential.png" }
+ retail: { filename: "retail.png" }
+ tourism: { filename: "tourism.png" }
+
+leisure:
+ golf_course: { filename: "golf.png" }
+ park: { filename: "park.png" }
+ picnic_table: { filename: "tourism_picnic_site.16.png", invert: true }
+ playground: { filename: "leisure_playground.16.png", invert: true }
+ pitch: { filename: "pitch.png" }
+ nature_reserve: { filename: "reserve.png" }
+ water_park: { filename: "leisure_water_park.16.png", invert: true }
+
+man_made:
+ lighthouse: { filename: "man_made_lighthouse.16.png" }
+ water_tower: { filename: "man_made_water_tower.16.png", invert: true }
+ windmill: { filename: "man_made_windmill.16.png", invert: true }
+
+natural:
+ tree: { filename: "tree.p.16.png" }
+
+ grassland: { filename: "grassland.png" }
+ heath: { filename: "heathland.png" }
+ scrub: { filename: "scrub.png" }
+ water: { filename: "lake.png" }
+ wood: { filename: "wood.png" }
+
+office:
+ diplomatic: { filename: "office_diplomatic.16.png" }
+ estate_agent: { filename: "shop_estateagent.16.png" }
+
+railway:
+ halt: { filename: "halt.p.16.png" }
+ station: { filename: "station.p.16.png" }
+ level_crossing: { filename: "level_crossing.p.16.png", invert: true }
+
+ light_rail: { filename: "light_rail.20.png" }
+ rail: { filename: "rail.20.png" }
+ subway: { filename: "subway.20.png" }
+ tram: { filename: "tram.20.png" }
+
+shop:
+ :*: { filename: "shop_convenience.p.16.png", priority: 20 }
+ alcohol: { filename: "shop_alcohol.16.png" }
+ bakery: { filename: "shop_bakery.16.png" }
+ bicycle: { filename: "shop_bicycle.16.png" }
+ books: { filename: "shop_books.16.png" }
+ butcher: { filename: "shop_butcher.p.16.png" }
+ clothes: { filename: "shop_clothes.16.png" }
+ car_parts: { filename: "shop_car_parts.16.png" }
+ car_repair: { filename: "shop_car_repair.16.png" }
+ convenience: { filename: "shop_convenience.p.16.png" }
+ doityourself: { filename: "shop_doityourself.16.png" }
+ electronics: { filename: "shop_electronics.16.png" }
+ estate_agent: { filename: "shop_estateagent.16.png" }
+ fashion: { filename: "shop_clothes.16.png" }
+ florist: { filename: "shop_florist.16.png" }
+ furniture: { filename: "shop_furniture.16.png" }
+ garden_centre: { filename: "shop_florist.16.png" }
+ gift: { filename: "shop_gift.16.png" }
+ greengrocer: { filename: "shop_greengrocer.p.16.png" }
+ hardware: { filename: "shop_doityourself.16.png" }
+ hairdresser: { filename: "shop_hairdresser.16.png" }
+ jewelry: { filename: "shop_jewelry.16.png" }
+ mobile_phone: { filename: "shop_mobile_phone.16.png" }
+ optician: { filename: "shop_optician.16.png" }
+ pet: { filename: "shop_pet.16.png" }
+ seafood: { filename: "shop_seafood.16.png" }
+ shoes: { filename: "shop_shoes.16.png" }
+ supermarket: { filename: "shop_supermarket.p.16.png" }
+
+tourism:
+ alpine_hut: { filename: "tourism_alpine_hut.16.png" }
+ camp_site: { filename: "tourism_camp_site.16.png" }
+ caravan_site: { filename: "tourism_caravan_site.16.png" }
+ hostel: { filename: "tourism_hostel.16.png" }
+ hotel: { filename: "tourism_hotel.16.png" }
+ motel: { filename: "tourism_motel.16.png" }
+ museum: { filename: "tourism_museum.16.png", invert: true }
+ picnic_site: { filename: "tourism_picnic_site.16.png", invert: true }
+ viewpoint: { filename: "view_point.p.16.png", invert: true }
+ wilderness_hut: { filename: "tourism_wilderness_hut.16.png" }
--- /dev/null
+begin
+ BROWSE_ICONS = YAML.load_file(Rails.root.join("config/browse_icons.yml")).transform_values do |tag_key_data|
+ transformed_tag_key_data = {}
+ tag_key_data.each do |tag_value, tag_value_data|
+ tag_value_data = tag_value_data.deep_symbolize_keys
+ tag_value_data[:priority] ||= tag_value == :* ? 10 : 100
+ transformed_tag_key_data[tag_value] = tag_value_data
+ end
+ transformed_tag_key_data
+ end
+rescue StandardError
+ BROWSE_ICONS = {}.freeze
+end
--- /dev/null
+- leafletOsmId: "Mapnik"
+ code: "M"
+ layerId: "mapnik"
+ nameId: "standard"
+ credit:
+ id: "make_a_donation"
+ href: "https://supporting.openstreetmap.org"
+ donate: true
+
+- leafletOsmId: "CyclOSM"
+ code: "Y"
+ layerId: "cyclosm"
+ nameId: "cyclosm"
+ credit:
+ id: "cyclosm_credit"
+ children:
+ cyclosm_link:
+ id: "cyclosm_name"
+ href: "https://www.cyclosm.org"
+ osm_france_link:
+ id: "osm_france"
+ href: "https://openstreetmap.fr/"
+
+- leafletOsmId: "CycleMap"
+ code: "C"
+ layerId: "cyclemap"
+ nameId: "cycle_map"
+ apiKeyId: "THUNDERFOREST_KEY"
+ credit:
+ id: "thunderforest_credit"
+ children:
+ thunderforest_link:
+ id: "andy_allan"
+ href: "https://www.thunderforest.com/"
+
+- leafletOsmId: "TransportMap"
+ code: "T"
+ layerId: "transportmap"
+ nameId: "transport_map"
+ apiKeyId: "THUNDERFOREST_KEY"
+ credit:
+ id: "thunderforest_credit"
+ children:
+ thunderforest_link:
+ id: "andy_allan"
+ href: "https://www.thunderforest.com/"
+
+- leafletOsmId: "TracestrackTopo"
+ code: "P"
+ layerId: "tracestracktopo"
+ nameId: "tracestracktop_topo"
+ apiKeyId: "TRACESTRACK_KEY"
+ credit:
+ id: "tracestrack_credit"
+ children:
+ tracestrack_link:
+ id: "tracestrack"
+ href: "https://www.tracestrack.com/"
+
+- leafletOsmId: "HOT"
+ code: "H"
+ layerId: "hot"
+ nameId: "hot"
+ credit:
+ id: "hotosm_credit"
+ children:
+ hotosm_link:
+ id: "hotosm_name"
+ href: "https://www.hotosm.org/"
+ osm_france_link:
+ id: "osm_france"
+ href: "https://openstreetmap.fr/"
way: Weg
relation: Verwantskap
containing_relation:
- entry_html: Verwantskap %{relation_name}
entry_role_html: Verwantskap %{relation_name} (as %{relation_role})
not_found:
title: Kon nie gevind word
other: '%{count} verslae'
reported_item: Gerapporteerde item
show:
- title: '%{status} Probleem #%{issue_id}'
report_created_at_html: Eerste vermelding op %{datetime}
last_resolved_at_html: Laas geregmaak op %{datetime}
last_updated_at_html: Laaste opgedateer op %{datetime} deur %{displayname}
tagged_with: gemerk met %{tags}
upload_trace: Laai 'n GPS-spoor op
my_traces: My Spore
- traces_from: Openbare spore van %{user}
+ traces_from_html: Openbare spore van %{user}
destroy:
scheduled_for_deletion: Spoor is vir verwydering geoormerk
application:
reason: 'Rede agter die versperring:'
revoker: 'Herroep deur:'
block:
- not_revoked: (nie herroep nie)
show: Wys
edit: Redigeer
page:
creator_name: Skepper
reason: Rede vir die versperring
status: Status
- revoker_name: Herroep deur
notes:
index:
heading: Notas van %{user}
way: Udhë
relation: Lidhje
containing_relation:
- entry_html: Lidhja %{relation_name}
entry_role_html: Lidhja %{relation_name} (sikur %{relation_role})
not_found:
sorry: Na vjen keq, %{type} me ID %{id}, nuk mujti me u gjetë.
reason: 'Arsyeja për bllok:'
revoker: 'Revoker:'
block:
- not_revoked: (Jo revokuar)
show: Tregoj
edit: Redaktoj
page:
creator_name: Krijuesi
reason: Arsyeja për bllok
status: Statusi
- revoker_name: Revokuar nga ana
notes:
notes_paging_nav:
showing_page: Tu e shfaq faqen %{page}
# Author: McDutchie
# Author: Meno25
# Author: Mido
+# Author: Mohammed Qays
# Author: Mohammed Qubati
# Author: Mutarjem horr
# Author: NEHAOUA
message: الرسالة
node: عقدة
node_tag: وسم عقدة
+ note: ملاحظة
old_node: عقدة قديمة
old_node_tag: وسم عقدة قديمة
old_relation: علاقة قديمة
way: طريق
relation: علاقة
containing_relation:
- entry_html: العلاقة %{relation_name}
- entry_role_html: العلاقة %{relation_name} (كــ%{relation_role})
+ entry_role_html: '%{relation_name} (مثل %{relation_role})'
not_found:
title: لم يتم العثور عليه
sorry: 'عفوًا، تعذر العثور على %{type} #%{id}.'
other: '%{count} بلاغ'
reported_item: شيء تم الابلاغ عنه
show:
- title: '%{status} المشكلة #%{issue_id}'
reports:
zero: صفر تقرير
one: تقرير واحد
reason: 'سبب العرقلة:'
revoker: 'المبطل:'
block:
- not_revoked: (لم تلغ)
show: اعرض
edit: تعديل
page:
creator_name: المنشئ
reason: السبب العرقلة
status: الحالة
- revoker_name: مُبطل بواسطة
user_mutes:
index:
title: المستخدمون الممنوعون
way: طريق
relation: علاقة
containing_relation:
- entry_html: العلاقه %{relation_name}
- entry_role_html: العلاقه %{relation_name} (كــ %{relation_role})
+ entry_role_html: '%{relation_name} (كــ %{relation_role})'
not_found:
sorry: عفوًا، لم يتم العثور على %{type} بالمعرّف %{id}.
type:
reason: 'سبب العرقلة:'
revoker: 'المبطل:'
block:
- not_revoked: (لم تلغ)
show: اعرض
edit: عدّل
page:
creator_name: المنشئ
reason: السبب للعرقلة
status: الحالة
- revoker_name: مُبطل بواسطة
notes:
notes_paging_nav:
showing_page: الصفحه %{page}
way: Vía
relation: Rellación
containing_relation:
- entry_html: Rellación %{relation_name}
entry_role_html: Rellación %{relation_name} (como %{relation_role})
not_found:
sorry: Sentímoslo, el/la %{type} númberu %{id} nun pudo alcontrase.
other: '%{count} Informes'
reported_item: Elementu reportáu
show:
- title: '%{status} Problema #%{issue_id}'
reports:
zero: Nun hai informes
one: 1 informe
reason: 'Motivu del bloquéu:'
revoker: 'Desaniciador:'
block:
- not_revoked: (non desaniciáu)
show: Amosar
edit: Editar
page:
creator_name: Creador
reason: Motivu del bloquéu
status: Estáu
- revoker_name: Desaniciáu por
notes:
index:
title: Notes unviaes o comentaes por %{user}
update: Dəyişiklikləri yadda saxla
user_block:
create: Blok yarat
- update: Bloku yenilən
+ update: Bloku yenilə
activerecord:
models:
acl: Giriş Məhdudiyyətləri siyahısı
way: Xətt
relation: Əlaqə
containing_relation:
- entry_html: Əlaqəsi %{relation_name}
entry_role_html: Əlaqəsi %{relation_name} (%{relation_role} kimi)
not_found:
sorry: Təəsüf ki, %{id} %{type} tapılmadı.
title: '%{block_on}, %{block_by} tərəfindən blok edilib'
status: Status
block:
- not_revoked: (ləgv edilməyib)
show: Göstər
edit: Redaktə et
page:
creator_name: Yaradıcı
reason: Bloklanma səbəbi
status: Status
- revoker_name: Tərəfindən ləgv edilib
notes:
show:
description: Təsvir
way: Һыҙат
relation: Мөнәсәбәт
containing_relation:
- entry_html: Мөнәсәбәт %{relation_name}
entry_role_html: Мөнәсәбәт %{relation_name} (ролендә %{relation_role})
not_found:
title: Табылманы
open: Асыҡ
resolved: Хәл ителде
show:
- title: '%{status} Мәсьәлә #%{issue_id}'
reports:
one: '%{count} хәбәр'
other: '%{count} хәбәрҙәр'
way: Шлях
relation: Адносіны
containing_relation:
- entry_html: Адносіны %{relation_name}
entry_role_html: Адносіны %{relation_name} (як %{relation_role})
not_found:
title: Ня знойдзена
reason: 'Прычына блякаваньня:'
revoker: 'Адклікаўшы:'
block:
- not_revoked: (не адкліканае)
show: Паказаць
edit: Рэдагаваць
page:
creator_name: Стваральнік
reason: Прычына блякаваньня
status: Статус
- revoker_name: Адкліканае
notes:
show:
title: 'Нататка: %{id}'
way: Лінія
relation: Дачыненне
containing_relation:
- entry_html: Дачыненне %{relation_name}
entry_role_html: Дачыненне %{relation_name} (як %{relation_role})
not_found:
title: Не знойдзена
other: '%{count} скаргі(-аў)'
reported_item: Скарга
show:
- title: '%{status} Праблема #%{issue_id}'
reports:
one: '%{count} скарга'
few: '%{count} скаргі'
reason: 'Прычына блакіроўкі:'
revoker: 'Адклікаўшы:'
block:
- not_revoked: (не адкліканы)
show: Паказаць
edit: Рэдагаваць
page:
creator_name: Стваральнік
reason: Прычына блакіроўкі
status: Статус
- revoker_name: Адкліканы
user_mutes:
index:
table:
way: Път
relation: Релация
containing_relation:
- entry_html: Релация %{relation_name}
entry_role_html: Релация %{relation_name} (като %{relation_role})
not_found:
sorry: Съжаляваме, %{type} № %{id} не е намерен.
other: '%{count} доклада'
reported_item: Докладван елемент
show:
- title: '%{status} Проблем #%{issue_id}'
reports:
one: '%{count} доклад'
other: '%{count} доклада'
way: রাস্তা
relation: সম্পর্ক
containing_relation:
- entry_html: সম্পর্ক %{relation_name}
entry_role_html: সম্পর্ক %{relation_name} (যখন %{relation_role})
not_found:
title: পাওয়া যায়নি
closed_title: 'মীমাংসিত টীকা #%{note_name}'
hidden_title: 'লুকানো টীকা #%{note_name}'
report: এই নোট সম্পর্কে অভিযোগ জানান
+ discussion: আলোচনা
hide: লুকান
resolve: মিমাংসা করুন
reactivate: পুনঃসক্রিয়
way: Hent
relation: Darempred
containing_relation:
- entry_html: Darempred %{relation_name}
entry_role_html: Darempred %{relation_name} (evel %{relation_role})
not_found:
title: N'eo ket bet kavet
open: Digor
resolved: Diskoulmet
show:
- title: '%{status} Kudenn #%{issue_id}'
reports:
one: 1 danevell
two: 2 zanevell
upload_trace: Kas ur roud
all_traces: An holl roudoù
my_traces: Ma roudoù
- traces_from: Roudoù GPS foran gant %{user}
+ traces_from_html: Roudoù GPS foran gant %{user}
remove_tag_filter: Lemel ar sil tikedennoù
destroy:
scheduled_for_deletion: Roudenn da vezañ dilamet
reason: 'Abeg ar stankadur :'
revoker: 'Torrer :'
block:
- not_revoked: (n'eo ket torret)
show: Diskouez
edit: Aozañ
page:
creator_name: Krouer
reason: Abeg evit stankañ
status: Statud
- revoker_name: Torret gant
navigation:
all_blocks: An holl stankadurioù
blocks_on_me: Stankadurioù evidon
- blocks_on_user: Stankadurioù evit %{user}
+ blocks_on_user_html: Stankadurioù evit %{user}
blocks_by_me: Stankadurioù graet ganin
- blocks_by_user: Stankadurioù gant %{user}
+ blocks_by_user_html: Stankadurioù gant %{user}
block: 'Stankadur #%{id}'
new_block: Stankadenn nevez
user_mutes:
way: Putanja
relation: Relacija
containing_relation:
- entry_html: Relacija %{relation_name}
entry_role_html: Relacija %{relation_name} (kao %{relation_role})
not_found:
sorry: 'Žao nam je, ali %{type} #%{id} se ne može naći.'
reason: Razlog za blokadu
revoker: 'Opozivalac:'
block:
- not_revoked: (nije opozvano)
show: Pokazati
edit: Urediti
page:
creator_name: Kreator
reason: Razlog za blokadu
status: Stanje
- revoker_name: Opozvano od strane
notes:
index:
id: Id
way: Via
relation: Relació
containing_relation:
- entry_html: Relació %{relation_name}
entry_role_html: Relació %{relation_name} (com a %{relation_role})
not_found:
title: No s'ha trobat
other: '%{count} Informes'
reported_item: Element denunciat
show:
- title: '%{status} Incidència #%{issue_id}'
reports:
one: '%{count} informe'
other: '%{count} informes'
upload_trace: Puja una traça
all_traces: Totes les traces
my_traces: Les meves traces
- traces_from: Traces públiques de %{user}
+ traces_from_html: Traces públiques de %{user}
remove_tag_filter: Elimina el filtre d'etiquetes
destroy:
scheduled_for_deletion: Traça programada per a ser suprimida
reason: 'Motiu del blocatge:'
revoker: 'Revoker:'
block:
- not_revoked: (no revocat)
show: Mostra
edit: Edita
page:
creator_name: Creador
reason: Motiu del blocatge
status: Estat
- revoker_name: Revocat per
navigation:
all_blocks: Tots els bloquejos
blocks_on_me: Bloquejos a mi
- blocks_on_user: Bloquejos a %{user}
+ blocks_on_user_html: Bloquejos a %{user}
blocks_by_me: Bloquejos fets per mi
- blocks_by_user: Bloquejos fets per %{user}
+ blocks_by_user_html: Bloquejos fets per %{user}
block: 'Bloqueig #%{id}'
user_mutes:
index:
way: Сиз
relation: Хилар
containing_relation:
- entry_html: Хилар %{relation_name}
entry_role_html: Хилар %{relation_name} (ролехь %{relation_role})
not_found:
title: Цакарийна
"yes": Йолу меттиг
railway:
abandoned: ДӀасабаькхна цӀерпоштан некъ
- buffer_stop: Ð\91Ñ\83Ñ\84еÑ\80ан Ñ\81аÑ\86аÑ\80
+ buffer_stop: Ð\91Ñ\83Ñ\84еÑ\80ан Ñ\81оÑ\86Ñ\83нгÓ\80а
construction: Баьш болу цӀерпоштнекъ
disused: ДӀатесна цӀерпоштан некъ
funicular: Фуникулер
rail: Рельс
spur: ЦӀерпоштан лини
station: ЦӀерпоштан вокзал
- stop: ЦÓ\80еÑ\80поÑ\88Ñ\82ан Ñ\81аÑ\86аÑ\80
+ stop: ЦÓ\80еÑ\80поÑ\88Ñ\82ан Ñ\81оÑ\86Ñ\83нгÓ\80а
subway: Метро
subway_entrance: Метро чувола меттиг
switch: ЦӀерпоштан коммутатор
tram: Трамвай
- tram_stop: ТÑ\80амвайан Ñ\81аÑ\86аÑ\80
+ tram_stop: ТÑ\80амвайн Ñ\81оÑ\86Ñ\83нгÓ\80а
turntable: Чуваьрзу гуо
yard: ЦӀерпоштан керт
shop:
open: Йиллина
resolved: Кечйина
show:
- title: '%{status} проблема #%{issue_id}'
reports:
one: '%{count} хаам'
other: '%{count} хаамаш'
hospital: Госпиталь
building: Мехала гӀишло
station: ЦӀерпоштан вокзал
+ railway_halt: ЦӀерпоштан соцунгӀа
+ subway_station: Метрон станци
+ tram_stop: Трамвайн соцунгӀа
summit: Бохь
peak: Ломан бохь
tunnel: Пунктирни турба = тоннель
other: Хьан %{count} лараш йу чуйахаре сатуьйсуш. Дехар ду, кхин дӀа чудалале,
уьш чекхдовларе сатуьйсийла хьажа, кхечу лелочарна рагӀ дӀа ца йайтархьама.
edit:
- cancel: Ð\94Ó\80адаккха
+ cancel: Ð\99Ñ\83Ñ\85айаккха
title: Трек нисайа %{name}
heading: Трек нисайар %{name}
visibility_help: хӀара хӀун бохург ду?
upload_trace: Чуйаккха трек
all_traces: Ерриге а трекаш
my_traces: Сан трекаш
- traces_from: '%{user}-ан йукъара трекаш'
+ traces_from_html: '%{user}-ан йукъара трекаш'
remove_tag_filter: ДӀаяккха теган фильтр
destroy:
scheduled_for_deletion: ДӀаяккха лерина трек
reason: 'Блоктохаран бахьана:'
revoker: 'БлокдӀайаьккхинарг:'
block:
- not_revoked: (блок дIа ца йаьккхина)
show: Гайта
edit: Нисйан
page:
creator_name: Автор
reason: Блоктохаран бахьана
status: Статус
- revoker_name: ДӀайаьккхина блок
navigation:
all_blocks: Ерриге а блокаш
blocks_on_me: Сан блоктохарш
- blocks_on_user: Блокаш йу %{user} тӀехь
+ blocks_on_user_html: Блокаш йу %{user} тӀехь
blocks_by_me: Сан блоктохарш
- blocks_by_user: Блокаш йина %{user}
+ blocks_by_user_html: Блокаш йина %{user}
block: 'Блок #%{id}'
new_block: Керла блок
user_mutes:
description: Цуьнах лаьцна
created_at: Кхоьллина
last_changed: Хийцина
+ status: Статус
show:
title: 'Билгалдаккхар: %{id}'
description: Цуьнах лаьцна
message: Zpráva
node: Uzel
node_tag: Tag uzlu
+ note: Poznámka
old_node: Starý uzel
old_node_tag: Tag starého uzlu
old_relation: Stará relace
way: Cesta
relation: Relace
containing_relation:
- entry_html: Relace %{relation_name}
entry_role_html: Relace %{relation_name} (jako %{relation_role})
not_found:
title: Nenalezeno
open: Otevřeno
resolved: Vyřešeno
show:
- title: '%{status} Problém #%{issue_id}'
reports:
one: '%{count} hlášení'
few: '%{count} hlášení'
upload_trace: Nahrát stopu
all_traces: Všechny stopy
my_traces: Moje stopy
- traces_from: Veřejné stopy uživatele %{user}
+ traces_from_html: Veřejné stopy uživatele %{user}
remove_tag_filter: Vymazat filtr tagů
destroy:
scheduled_for_deletion: Stopa označena ke smazání
reason: 'Důvod bloku:'
revoker: 'Zrušil:'
block:
- not_revoked: (nezrušeno)
show: Zobrazit
edit: Upravit
page:
creator_name: Autor
reason: Důvod pro blok
status: Stav
- revoker_name: Zrušil
navigation:
all_blocks: Všechny bloky
blocks_on_me: Moje zablokování
- blocks_on_user: Bloky uživatele %{user}
+ blocks_on_user_html: Bloky uživatele %{user}
blocks_by_me: Zablokování mnou
- blocks_by_user: Bloky od uživatele %{user}
+ blocks_by_user_html: Bloky od uživatele %{user}
block: 'Blok #%{id}'
new_block: Nové blokování
user_mutes:
description: Popis
created_at: Vytvořeno
last_changed: Poslední změna
+ apply: Použít
+ all: Všechny
+ open: Otevřené
+ closed: Uzavřené
+ status: Stav
show:
title: 'Poznámka: %{id}'
description: Popis
report: nahlásit tuto poznámku
anonymous_warning: Tato poznámka zahrnuje komentáře anonymních uživatelů, které
by se měly nezávisle ověřit.
+ discussion: Diskuse
+ subscribe: Odebírat
+ unsubscribe: Zrušit odebírání
hide: Skrýt
resolve: Vyřešit
reactivate: Reaktivovat
create: Cyhoeddi
update: Diweddaru
issue_comment:
- create: Ychwanegu sylw
+ create: Ychwanegu Sylw
message:
create: Anfon
client_application:
message: Neges
node: Nod
node_tag: Tag Nod
+ note: Nodyn
old_node: Hen Nod
old_node_tag: Tag Hen Nod
old_relation: Hen Berthynas
show:
title: Dileu fy nghyfrif
warning: Rhybudd! Mae'r broses dileu cyfrif yn derfynol, ac ni ellir ei gwrthdroi.
- delete_account: Dileu cyfrif
+ delete_account: Dileu Cyfrif
delete_introduction: 'Gallwch chi ddileu eich cyfrif OpenStreetMap gan ddefnyddio''r
botwm isod. Nodwch y manylion canlynol:'
delete_profile: Bydd eich gwybodaeth broffil, gan gynnwys eich afatar, disgrifiad
yn y Parth Cyhoeddus.
link text: beth yw hwn?
save changes button: Cadw newidiadau
- delete_account: Dileu cyfrif...
+ delete_account: Dileu Cyfrif...
go_public:
heading: Golygu cyhoeddus
currently_not_public: Ar hyn o bryd mae eich golygiadau yn ddienw ac ni all
no_comment: (dim sylw)
part_of: Rhan o
part_of_relations:
- zero: '%{count} perthnasoedd'
+ zero: '%{count} perthnasau'
one: '%{count} perthynas'
two: '%{count} berthynas'
few: '%{count} pherthynas'
way: Llwybr
relation: Perthynas
containing_relation:
- entry_html: Perthynas %{relation_name}
- entry_role_html: Perthynas %{relation_name} (fel %{relation_role})
+ entry_role_html: '%{relation_name} (fel %{relation_role})'
not_found:
title: Heb ei Ganfod
sorry: 'Ymddiheurwn, ni ellir canfod %{type} #%{id}.'
colour_preview: Rhagolwg lliw %{colour_value}
email_link: E-bost %{email}
query:
- title: Nodweddion Ymholiad
- introduction: Cliciwch ar y map i ddarganfod nodweddion gerllaw.
+ title: Ymholiad Nodweddion
+ introduction: Cliciwch ar y map i weld nodweddion gerllaw.
nearby: Nodweddion gerllaw
enclosing: Nodweddion amgáu
nodes:
closed_ago_html: Caëwyd %{time_ago}
created_ago_by_html: Crëwyd %{time_ago} gan %{user}
closed_ago_by_html: Caëwyd %{time_ago} gan %{user}
- discussion: Sgwrs
- join_discussion: Mewngofnodwch i ymuno â'r sgwrs
+ discussion: Trafodaeth
+ join_discussion: Mewngofnodwch i ymuno â'r drafodaeth
still_open: Mae'r grŵp newid dal ar agor - bydd trafodaeth yn agor pan fydd
y grŵp newid wedi cau.
subscribe: Tanysgrifio
nodes_paginated: Nodau (%{x}-%{y} o %{count})
ways: Llwybrau (%{count})
ways_paginated: Llwybrau (%{x}-%{y} o %{count})
- relations: Perthnasoedd (%{count})
- relations_paginated: Perthnasoedd (%{x}-%{y} o %{count})
+ relations: Perthnasau (%{count})
+ relations_paginated: Perthnasau (%{x}-%{y} o %{count})
timeout:
sorry: Mae'n ddrwg gennym, cymerodd y rhestr o grwpiau newid y gofynnoch amdanynt
rhy hir i'w hadalw.
show:
title: Dyddiadur %{user} | %{title}
user_title: Dyddiadur %{user}
- discussion: Sgwrs
+ discussion: Trafodaeth
subscribe: Tanysgrifio
unsubscribe: Dad-danysgrifio
leave_a_comment: Sylw
post: Post
when: Pryd
comment: Sylw
+ new:
+ heading: Ychwanegu sylw at y drafodaeth cofnod dyddiadur canlynol?
doorkeeper:
flash:
applications:
office: Adeilad Swyddfa
public: Adeilad Cyhoeddus
residential: Adeilad Preswyl
- retail: Adeilad Adwerthu
+ retail: Adeilad Manwerthu
roof: To
ruins: Adeilad Adfeiliedig
school: Adeilad Ysgol
reservoir: Cronfa Ddŵr
reservoir_watershed: Gwahanfa Ddŵr
residential: Ardal Breswyl
- retail: Parc Adwerthu
+ retail: Ardal Fanwerthu
village_green: Llain Pentref
vineyard: Gwinllan
"yes": Defnydd Tir
open: Agored
resolved: Wedi datrys
show:
- title: '%{status} Gwall #%{issue_id}'
+ title:
+ open: 'Mater agored #%{issue_id}'
+ ignored: 'Mater wedi''i anwybyddu #%{issue_id}'
+ resolved: 'Mater wedi''i ddatrys #%{issue_id}'
reports:
zero: '%{count} adroddiad'
one: '%{count} adroddiad'
title: Dewisiadau
preferred_editor: Hoff Olygydd
preferred_languages: Ieithoedd
+ preferred_site_color_scheme: Dewis Lliw Gwefan
+ site_color_schemes:
+ auto: Awtomatig
+ light: Golau
+ dark: Tywyll
+ preferred_map_color_scheme: Dewis Lliw Map
+ map_color_schemes:
+ auto: Awtomatig
+ light: Golau
+ dark: Tywyll
edit_preferences: Golygu Dewisiadau
edit:
title: Golygu Dewisiadau
common: Comin
built_up: Ardal Adeiledig
resident: Ardal breswyl
- retail: Ardal adwerthu
+ retail: Ardal fanwerthu
industrial: Ardal ddiwydiannol
commercial: Ardal fasnachol
heathland: Rhos
upload_trace: Uwchlwytho ôl
all_traces: Pob Ôl
my_traces: Fy Olion
- traces_from: Olion Cyhoeddus gan %{user}
+ traces_from_html: Olion Cyhoeddus gan %{user}
remove_tag_filter: Dileu Hidlydd Tagiau
destroy:
scheduled_for_deletion: Mae'r ôl wedi'i drefnu i'w ddileu
few: '%{count} blynedd'
many: '%{count} blynedd'
other: '%{count} blynedd'
+ short:
+ time_in_future_title: '%{time_absolute}; ymhen %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Blociau ar %{name}
heading_html: Rhestr Blociau ar %{name}
reason: 'Rheswm dros y bloc:'
revoker: 'Dad-flociwr:'
block:
- not_revoked: (heb ei ddirymu)
show: Dangos
edit: Golygu
page:
display_name: Defnyddiwr wedi'i blocio
creator_name: Crëwr
reason: Rheswm dros flocio
+ start: Dechrau
+ end: Diwedd
status: Statws
- revoker_name: Dirymwyd gan
navigation:
all_blocks: Pob Bloc
blocks_on_me: Blociau arnaf i
- blocks_on_user: Blociau ar %{user}
+ blocks_on_user_html: Blociau ar %{user}
blocks_by_me: Blociau gennyf i
- blocks_by_user: Blociau gan %{user}
+ blocks_by_user_html: Blociau gan %{user}
block: 'Bloc #%{id}'
new_block: Bloc Newydd
user_mutes:
few: Rydych chi wedi anwybyddu %{count} defnyddiwr
many: Rydych chi wedi anwybyddu %{count} defnyddiwr
other: Rydych chi wedi anwybyddu %{count} defnyddiwr
+ user_mute_admins_and_moderators: Gallwch anwybyddu'r Gweinyddwyr a Chymedrolwyr
+ ond ni fydd eu negeseuon yn cael eu hanwybyddu.
table:
thead:
muted_user: Defnyddiwr ag Anwybyddwyd
description: Disgrifiad
created_at: Crëwyd
last_changed: Newidiwyd ddiwethaf
+ apply: Rhoi ar waith
+ all: Popeth
+ open: Agored
+ closed: Wedi cau
+ status: Statws
show:
title: 'Nodyn: %{id}'
description: Disgrifiad
report: roi gwybod am y nodyn hwn
anonymous_warning: Mae'r nodyn hwn yn cynnwys sylwadau gan ddefnyddwyr dienw
y dylid eu gwirio'n annibynnol.
+ discussion: Trafodaeth
+ subscribe: Tanysgrifio
+ unsubscribe: Dad-danysgrifio
hide: Cuddio
resolve: Datrys
reactivate: Ail agor
createnote_disabled_tooltip: Chwyddwch mewn i ychwanegu nodyn i'r map
map_notes_zoom_in_tooltip: Chwyddwch mewn i weld nodiadau'r map
map_data_zoom_in_tooltip: Chwyddwch mewn i weld data'r map
- queryfeature_tooltip: Manylion nodweddion
- queryfeature_disabled_tooltip: Chwyddwch i mewn i gael manylion nodweddion
+ queryfeature_tooltip: Ymholiad nodweddion
+ queryfeature_disabled_tooltip: Chwyddwch i mewn i wneud ymholiad nodweddion
embed_html_disabled: Nid yw mewnosod HTML ar gael ar gyfer yr haen fap hon
edit_help: Symudwch y map a chwyddwch i mewn i leoliad rydych chi am ei olygu,
yna cliciwch yma.
directions_to: Cyfarwyddiadau i yma
add_note: Ychwanegu nodyn yma
show_address: Dangos cyfeiriad
- query_features: Manylion nodweddion
+ query_features: Ymholiad nodweddion
centre_map: Canoli'r map yma
redactions:
edit:
diary_comment: Blogkommentar
diary_entry: Blogindlæg
friend: Ven
- issue: Problem
+ issue: Sag
language: Sprog
message: Meddelelse
node: Punkt
node_tag: Punktegenskab
+ note: Bemærkning
old_node: Tidligere punkt
old_node_tag: Tidligere punktegenskab
old_relation: Tidligere relation
way: Vej
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
- entry_role_html: Relation %{relation_name} (som %{relation_role})
+ entry_role_html: '%{relation_name} (som %{relation_role})'
not_found:
title: Ikke fundet
sorry: Beklager, %{type} med id %{id} blev ikke fundet.
more_results: Flere resultater
issues:
index:
- title: Problemer
+ title: Sager
select_status: Vælg status
select_type: Vælg type
select_last_updated_by: Vælg sidst opdateret af
search_guidance: 'Søgning blandt sager:'
states:
ignored: Ignoréret
- open: Åbn
+ open: Åben
resolved: Løst
page:
user_not_found: Brugeren findes ikke
open: Åben
resolved: Løst
show:
- title: '%{status} Sag #%{issue_id}'
+ title:
+ open: Åben sag %{issue_id}
+ ignored: 'Ignoreret sag #%{issue_id}'
+ resolved: Løst sag %{issue_id}
reports:
one: '%{count} rapport'
other: '%{count} rapporter'
edit: Redigér
history: Historik
export: Eksportér
- issues: Problemer
+ issues: Sager
gps_traces: GPS-spor
user_diaries: Brugerblogs
edit_with: Redigér med %{editor}
title: Mine præferencer
preferred_editor: Foretrukken editor
preferred_languages: Foretrukne sprog
+ preferred_site_color_scheme: Foretrukket farvetema for webside
+ site_color_schemes:
+ auto: Auto
+ light: Lyst
+ dark: Mørkt
+ preferred_map_color_scheme: Foretrukket farvetema for kort
+ map_color_schemes:
+ auto: Auto
+ light: Lyst
+ dark: Mørkt
edit_preferences: Rediger præferencer
edit:
title: Rediger præferencer
older: Ældre indlæg
newer: Nyere indlæg
issues:
- older: Ældre problemer
- newer: Nyere problemer
+ older: Ældre sager
+ newer: Nyere sager
traces:
older: Ældre spor
newer: Nyere spor
upload_trace: Overfør et spor
all_traces: Alle GPS-spor
my_traces: Mine spor
- traces_from: Offentlige GPS-spor fra %{user}
+ traces_from_html: Offentlige GPS-spor fra %{user}
remove_tag_filter: Fjern tag-filter
destroy:
scheduled_for_deletion: Spor planlagt til at blive slettet
years:
one: '%{count} år'
other: '%{count} år'
+ short:
+ ended: ophørt
+ revoked_html: ophævet af %{name}
+ active: aktiv
+ active_unread: aktiv ulæst
+ expired_unread: udløbet ulæst
+ read_html: læst %{time}
+ time_in_future_title: '%{time_absolute}; om %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Blokeringer af %{name}
heading_html: Liste over blokeringer af %{name}
reason: 'Årsag til blokering:'
revoker: 'Tilbagekalder:'
block:
- not_revoked: (ikke tilbagekaldt)
show: Vis
edit: Redigér
page:
display_name: Blokkeret bruger
creator_name: Oprettet af
reason: Årsag til blokering
+ start: Start
+ end: Slut
status: Status
- revoker_name: Tilbagekaldt af
navigation:
all_blocks: Alle blokeringer
blocks_on_me: Blokeringer af mig
- blocks_on_user: Blokeringer af %{user}
+ blocks_on_user_html: Blokeringer af %{user}
blocks_by_me: Blokeringer udført af mig
- blocks_by_user: Blokeringer udført af %{user}
+ blocks_by_user_html: Blokeringer udført af %{user}
block: 'Blokering #%{id}'
new_block: Ny blokering
user_mutes:
description: Beskrivelse
created_at: Oprettet den
last_changed: Sidst ændret
+ apply: Anvend
+ all: Alle
+ open: Åben
+ closed: Lukket
+ status: Status
show:
title: 'Bemærkning: %{id}'
description: Beskrivelse
report: rapportere denne bemærkning
anonymous_warning: Denne bemærkning indeholder kommentarer fra anonyme brugere
som bør undergå en uafhængig kontrol af oplysningerne.
+ discussion: Diskussion
+ subscribe: Abonner
+ unsubscribe: Afmeld abonnement
hide: Skjul
resolve: Løs
reactivate: Genaktiver
- comment_and_resolve: Kommentere på og løse
+ comment_and_resolve: Kommenter og løs
comment: Kommenter
log_in_to_comment: Log ind for at kommentere på denne bemærkning
report_link_html: Hvis denne bemærkning indeholder følsomme oplysninger, der
# Author: Milet
# Author: Mormegil
# Author: Nadjita
+# Author: Nielkrokodil
# Author: Onefloid
# Author: P24
# Author: Pczaja
way: Weg
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
entry_role_html: Relation %{relation_name} (als %{relation_role})
not_found:
title: Nicht gefunden
open: Offen
resolved: Erledigt
show:
- title: '%{status} Problem Nr. %{issue_id}'
reports:
one: Eine Meldung
other: '%{count} Meldungen'
tunnel: Gestrichelter Rand = Tunnel
bridge: Schwarzer Rand = Brücke
private: Privater Zugang
- destination: Nur für Anrainer
+ destination: Nur Zufahrt gestattet
construction: Straßen im Bau
bus_stop: Bushaltestelle
bicycle_shop: Fahrradladen
upload_trace: Lade einen Track hoch
all_traces: Alle Tracks
my_traces: Meine Tracks
- traces_from: Öffentliche Tracks von %{user}
+ traces_from_html: Öffentliche Tracks von %{user}
remove_tag_filter: Tag-Filter entfernen
destroy:
scheduled_for_deletion: Für die Löschung vorgesehener Track
reason: 'Grund der Sperre:'
revoker: 'Aufgehoben von:'
block:
- not_revoked: (nicht aufgehoben)
show: Anzeigen
edit: Bearbeiten
page:
creator_name: Urheber
reason: Grund der Sperre
status: Status
- revoker_name: Aufgehoben von
navigation:
all_blocks: Alle Sperren
blocks_on_me: Meine Sperren
- blocks_on_user: Sperren für %{user}
+ blocks_on_user_html: Sperren für %{user}
blocks_by_me: Sperren von mir
- blocks_by_user: Sperren von %{user}
+ blocks_by_user_html: Sperren von %{user}
block: 'Sperre #%{id}'
new_block: Neue Sperre
user_mutes:
description: Hinweis
created_at: Erstellt am
last_changed: Zuletzt geändert
+ apply: Anwenden
+ all: Alle
+ open: Offen
+ closed: Geschlossen
+ status: Status
show:
title: 'Hinweis: %{id}'
description: Beschreibung
report: diesen Hinweis melden
anonymous_warning: Dieser Hinweis enthält Kommentare von anonymen Benutzern,
die unabhängig geprüft werden sollten.
+ discussion: Diskussion
+ subscribe: Abonnieren
+ unsubscribe: Abbestellen
hide: Verstecken
resolve: Erledigt
reactivate: Reaktivieren
way: Ray
relation: Elaqe
containing_relation:
- entry_html: Elaqe %{relation_name}
entry_role_html: Eleqe %{relation_name} (%{relation_role} deye)
not_found:
title: Nêvineya
edit: Bıvurne
revoker: 'Terkner:'
block:
- not_revoked: (nê terkiyayo)
show: Bımocne
edit: Bıvurne
page:
display_name: Karberê kılitbiyayey
creator_name: Vıraştoğ
status: Weziyet
- revoker_name: Terknoğ
notes:
index:
description: Şınasnayış
way: Puś
relation: Relacija
containing_relation:
- entry_html: Relacija %{relation_name}
entry_role_html: Relacija %{relation_name} (ako %{relation_role})
not_found:
sorry: 'Bóžko %{type} #%{id} njejo se dał namakaś.'
reason: 'Pśicyna za blokěrowanje:'
revoker: 'Anulěrowaŕ:'
block:
- not_revoked: (nic wótpórany)
show: Pokazaś
edit: Wobźěłaś
page:
creator_name: Blokěrowaŕ
reason: Pśicyna za blokěrowanje
status: Status
- revoker_name: Wótpórany wót
notes:
index:
title: Pokazki, kótarež su se wót %{user} dali abo komentěrowali
message: Μήνυμα
node: Κόμβος
node_tag: Ετικέτα κόμβου
+ note: Σημείωση
old_node: Παλαιός κόμβος
old_node_tag: Παλαιά ετικέτα κόμβου
old_relation: Παλαιά σχέση
way: Γραμμή
relation: Σχέση
containing_relation:
- entry_html: Σχέση %{relation_name}
- entry_role_html: Σχέση %{relation_name} (ως %{relation_role})
+ entry_role_html: '%{relation_name} (ως %{relation_role})'
not_found:
title: Δεν βρέθηκε
sorry: 'Λυπάμαι, το %{type} #%{id} δεν βρέθηκε.'
open: Ανοιχτό
resolved: Επιλυμένο
show:
- title: '%{status} Ζήτημα #%{issue_id}'
+ title:
+ open: 'Ανοιχτό ζήτημα #%{issue_id}'
+ ignored: 'Αγνοημένο ζήτημα #%{issue_id}'
+ resolved: 'Επιλυμένο ζήτημα #%{issue_id}'
reports:
one: '%{count} αναφορά'
other: '%{count} αναφορές'
title: Οι προτιμήσεις μου
preferred_editor: Προτιμώμενος επεξεργαστής
preferred_languages: Προτιμώμενες γλώσσες
+ preferred_site_color_scheme: Προτιμώμενος συνδυασμός χρωμάτων ιστότοπου
+ site_color_schemes:
+ auto: Αυτόματο
+ light: Φωτεινό
+ dark: Σκοτεινό
+ preferred_map_color_scheme: Προτιμώμενος συνδυασμός χρωμάτων χάρτη
+ map_color_schemes:
+ auto: Αυτόματο
+ light: Φωτεινό
+ dark: Σκοτεινό
edit_preferences: Επεξεργασία προτιμήσεων
edit:
title: Επεξεργασία προτιμίσεων
upload_trace: Αποστολή ίχνους
all_traces: Όλα τα ίχνη
my_traces: Τα ίχνη μου
- traces_from: Δημόσια ίχνη από %{user}
+ traces_from_html: Δημόσια ίχνη από %{user}
remove_tag_filter: Κατάργηση φίλτρου ετικετών
destroy:
scheduled_for_deletion: Το ίχνος προγραμματίστηκε για διαγραφή
years:
one: '%{count} χρόνος'
other: '%{count} χρόνια'
+ short:
+ ended: τελείωσε
+ revoked_html: ανακλήθηκε από %{name}
+ active: ενεργή
+ active_unread: ενεργή μη αναγνωσμένη
+ expired_unread: έληξε μη αναγνωσμένη
+ read_html: διαβάστηκε στις %{time}
+ time_in_future_title: '%{time_absolute}; σε %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Φραγές στον %{name}
heading_html: Κατάλογος φραγών στον %{name}
reason: 'Αιτία φραγής:'
revoker: 'Έκανε την ανάκληση:'
block:
- not_revoked: (δεν έχει ανακληθεί)
show: Εμφάνιση
edit: Επεξεργασία
page:
display_name: Αποκλεισμένος Χρήστης
creator_name: Δημιουργός
reason: Αιτία φραγής
+ start: Έναρξη
+ end: Τέλος
status: Κατάσταση
- revoker_name: Ανακλήθηκε από
navigation:
all_blocks: Όλες οι φραγές
blocks_on_me: Φραγές σε μένα
- blocks_on_user: Φραγές σε %{user}
+ blocks_on_user_html: Φραγές σε %{user}
blocks_by_me: Φραγές από μένα
- blocks_by_user: Φραγές από %{user}
+ blocks_by_user_html: Φραγές από %{user}
block: 'Φραγή #%{id}'
new_block: Νέα Φραγή
user_mutes:
description: Περιγραφή
created_at: Δημιουργήθηκε στις
last_changed: Τελευταία αλλαγή
+ apply: Εφαρμογή
+ all: Όλα
+ open: Ανοιχτή
+ closed: Κλειστή
+ status: Κατάσταση
show:
title: 'Σημείωση: %{id}'
description: Περιγραφή
report: αναφορά αυτής της σημείωσης
anonymous_warning: Αυτό η σημείωση περιλαμβάνει σχόλια από ανώνυμους χρήστες
που πρέπει να επαληθεύονται ανεξάρτητα.
+ discussion: Συζήτηση
+ subscribe: Εγγραφή
+ unsubscribe: Κατάργηση εγγραφής
hide: Απόκρυψη
resolve: Επιλύστε
reactivate: Επανενεργοποίηση
comment_and_resolve: Σχολιάστε και Επιλύστε
- comment: Σχολιάζω
+ comment: Σχολιάστε
log_in_to_comment: Συνδεθείτε για να σχολιάσετε σε αυτή την σημείωση
report_link_html: Εάν αυτή η σημείωση περιέχει ευαίσθητες πληροφορίες που πρέπει
να αφαιρεθούν, μπορείτε %{link}.
way: Way
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
entry_role_html: Relation %{relation_name} (as %{relation_role})
not_found:
title: Not Found
reason: 'Reason for block:'
revoker: 'Revoker:'
block:
- not_revoked: (not revoked)
show: Show
edit: Edit
page:
creator_name: Creator
reason: Reason for block
status: Status
- revoker_name: Revoked by
notes:
index:
title: Notes submitted or commented on by %{user}
message: "Message"
node: "Node"
node_tag: "Node Tag"
+ note: "Note"
old_node: "Old Node"
old_node_tag: "Old Node Tag"
old_relation: "Old Relation"
way: "Way"
relation: "Relation"
containing_relation:
- entry_html: "Relation %{relation_name}"
- entry_role_html: "Relation %{relation_name} (as %{relation_role})"
+ entry_role_html: "%{relation_name} (as %{relation_role})"
not_found:
title: Not Found
sorry: "Sorry, %{type} #%{id} could not be found."
wayside_shrine: "Wayside Shrine"
wreck: "Wreck"
"yes": "Historic Site"
+ information:
+ guidepost: "Guidepost"
+ board: "Information Board"
+ map: "Map"
+ office: "Tourist Office"
+ terminal: "Information Terminal"
+ sign: "Information Sign"
+ stele: "Information Stele"
junction:
"yes": "Junction"
landuse:
track: "Running Track"
water_park: "Water Park"
"yes": "Leisure"
+ lock:
+ "yes": "Lock"
man_made:
adit: "Adit"
advertising: "Advertising"
building_passage: "Building Passage"
culvert: "Culvert"
"yes": "Tunnel"
+ water:
+ lake: "Lake"
+ pond: "Pond"
+ reservoir: "Reservoir"
+ basin: "Water basin"
+ fishpond: "Fish Pond"
+ lagoon: "Lagoon"
+ wastewater: "Waste Water"
+ oxbow: "Oxbow"
+ stream_pool: "Stream Pool"
+ lock: "Lock"
waterway:
artificial: "Artificial Waterway"
boatyard: "Boatyard"
open: Open
resolved: Resolved
show:
- title: "%{status} Issue #%{issue_id}"
+ title:
+ open: "Open Issue #%{issue_id}"
+ ignored: "Ignored Issue #%{issue_id}"
+ resolved: "Resolved Issue #%{issue_id}"
reports:
one: "%{count} report"
other: "%{count} reports"
title: My Preferences
preferred_editor: Preferred Editor
preferred_languages: Preferred Languages
+ preferred_site_color_scheme: Preferred Website Color Scheme
+ site_color_schemes:
+ auto: Auto
+ light: Light
+ dark: Dark
+ preferred_map_color_scheme: Preferred Map Color Scheme
+ map_color_schemes:
+ auto: Auto
+ light: Light
+ dark: Dark
edit_preferences: Edit Preferences
edit:
title: Edit Preferences
upload_trace: "Upload a trace"
all_traces: "All Traces"
my_traces: "My Traces"
- traces_from: "Public Traces from %{user}"
+ traces_from_html: "Public Traces from %{user}"
remove_tag_filter: "Remove Tag Filter"
destroy:
scheduled_for_deletion: "Trace scheduled for deletion"
years:
one: "%{count} year"
other: "%{count} years"
+ short:
+ ended: "ended"
+ revoked_html: "revoked by %{name}"
+ active: "active"
+ active_unread: "active unread"
+ expired_unread: "expired unread"
+ read_html: "read at %{time}"
+ time_in_future_title: "%{time_absolute}; in %{time_relative}"
+ time_in_past_title: "%{time_absolute}; %{time_relative}"
blocks_on:
title: "Blocks on %{name}"
heading_html: "List of Blocks on %{name}"
reason: "Reason for block:"
revoker: "Revoker:"
block:
- not_revoked: "(not revoked)"
show: "Show"
edit: "Edit"
page:
display_name: "Blocked User"
creator_name: "Creator"
reason: "Reason for block"
+ start: "Start"
+ end: "End"
status: "Status"
- revoker_name: "Revoked by"
navigation:
all_blocks: "All Blocks"
blocks_on_me: "Blocks on Me"
- blocks_on_user: "Blocks on %{user}"
+ blocks_on_user_html: "Blocks on %{user}"
blocks_by_me: "Blocks by Me"
- blocks_by_user: "Blocks by %{user}"
+ blocks_by_user_html: "Blocks by %{user}"
block: "Block #%{id}"
new_block: "New Block"
user_mutes:
report: report this note
coordinates_html: "%{latitude}, %{longitude}"
anonymous_warning: This note includes comments from anonymous users which should be independently verified.
+ discussion: Discussion
+ subscribe: Subscribe
+ unsubscribe: Unsubscribe
hide: Hide
resolve: Resolve
reactivate: Reactivate
anonymous_warning_sign_up: "sign up"
advice: "Your note is public and may be used to update the map, so don't enter personal information, or information from copyrighted maps or directory listings."
add: Add Note
+ new_readonly:
+ title: "New Note"
+ warning: "New notes cannot be created because the OpenStreetMap API is currently in read-only mode."
notes_paging_nav:
showing_page: "Page %{page}"
next: "Next"
message: Mesaĝo
node: Nodo
node_tag: Etikedo de nodo
+ note: Rimarko
old_node: Malnova nodo
old_node_tag: Etikedo de malnova nodo
old_relation: Malnova rilato
way: Linio
relation: Rilato
containing_relation:
- entry_html: Rilato %{relation_name}
- entry_role_html: Rilato %{relation_name} (kiel %{relation_role})
+ entry_role_html: '%{relation_name} (kiel %{relation_role})'
not_found:
title: Ne trovita
sorry: Bedaŭrinde la %{type} kun id %{id} ne troveblas.
open: Malfermita
resolved: Solvita
show:
- title: '%{status} problemo #%{issue_id}'
+ title:
+ open: 'Malfermita problemo #%{issue_id}'
+ ignored: 'Ignorita problemo #%{issue_id}'
+ resolved: 'Solvita problemo #%{issue_id}'
reports:
one: '%{count} raporto'
other: '%{count} raportoj'
button: Konfirmi
success: Via konto estas konfirmita, multan dankon por vi registrado!
already active: Ĉi tiu konto jam estas konfirmita.
- unknown token: Ĉi tiu konfirma kodo malvalidiĝis aŭ ne ekzistas.
+ unknown token: Tiu ĉi konfirma kodo eksvalidiĝis aŭ ne ekzistas.
resend_html: Se vi volas, ke ni resendu la konfirman retleteron, %{reconfirm_link}.
click_here: alklaku tie ĉi
confirm_resend:
button: Konfirmi
success: Ŝanĝo de via retpoŝta adreso konfirmita!
failure: Retadreso jam estis konfirmita per tiu ĵetono.
- unknown_token: Ĉi tiu konfirma kodo malvalidiĝis aŭ ne ekzistas.
+ unknown_token: Tiu ĉi konfirma kodo eksvalidiĝis aŭ ne ekzistas.
resend_success_flash:
confirmation_sent: Ni sendis novan konfirman kodon al %{email}. Tuj kiam vi
konfirmos vian konton, vi povos ekigi mapigadon.
title: Miaj preferoj
preferred_editor: Preferata redaktilo
preferred_languages: Preferataj lingvoj
+ preferred_site_color_scheme: Preferata kolorskemo de retejo
+ site_color_schemes:
+ auto: aŭtomate
+ light: hela
+ dark: malhela
+ preferred_map_color_scheme: Preferata kolorskemo de mapo
+ map_color_schemes:
+ auto: aŭtomate
+ light: hela
+ dark: malhela
edit_preferences: Redakti preferojn
edit:
title: Redakti preferojn
upload_trace: Alŝuti spuron
all_traces: Ĉiuj spuroj
my_traces: Miaj spuroj
- traces_from: Publikaj spuroj de %{user}
+ traces_from_html: Publikaj spuroj de %{user}
remove_tag_filter: Forigi filtrilon de etikedoj
destroy:
scheduled_for_deletion: Spuro forviŝota
kaj poste kunligi la konton kun via identigilo en agordoj de uzanto.
user_role:
filter:
- not_a_role: La ĉeno `%{role}' ne estas valida rolo.
+ not_a_role: La ĉeno '%{role}' ne estas ĝusta rolo.
already_has_role: La uzanto jam rolas %{role}.
doesnt_have_role: La uzanto ne rolas %{role}.
not_revoke_admin_current_user: Ne povas nuligi rolon de administranto de nuna
uzanto.
grant:
- are_you_sure: Ĉu vi certe volas doni la rolon '%{role}' al la uzanto '%{name}'?
+ are_you_sure: Ĉu vi certe volas doni la rolon '%{role}' al la uzanto '%{name}'?
revoke:
are_you_sure: Ĉu vi certe volas nuligi la rolon '%{role}' de la uzanto '%{name}'?
user_blocks:
years:
one: '%{count} jaro'
other: '%{count} jaroj'
+ short:
+ ended: finita
+ revoked_html: nuligita de %{name}
+ active: aktiva
+ active_unread: aktiva, nelegita
+ expired_unread: eksvalida, nelegita
+ read_html: legita je %{time}
+ time_in_future_title: '%{time_absolute}; post %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Blokadoj por %{name}
heading_html: Listo de blokadoj por %{name}
reason: 'Kialo de blokado:'
revoker: 'Malblokanto:'
block:
- not_revoked: (ne nuligita)
show: Montri
edit: Redakti
page:
display_name: Blokita uzanto
creator_name: Kreinto
reason: Kialo de blokado
+ start: Komenco
+ end: Fino
status: Stato
- revoker_name: Nuligita de
navigation:
all_blocks: Ĉiuj blokadoj
blocks_on_me: Blokadoj por mi
- blocks_on_user: Blokadoj por %{user}
+ blocks_on_user_html: Blokadoj por %{user}
blocks_by_me: Blokadoj de mi
- blocks_by_user: Blokadoj de %{user}
+ blocks_by_user_html: Blokadoj de %{user}
block: 'Blokado #%{id}'
new_block: Nova blokado
user_mutes:
description: Priskribo
created_at: Kreita je
last_changed: Laste ŝanĝita
+ apply: Apliki
+ all: ĉia
+ open: malfermita
+ closed: fermita
+ status: Stato
show:
title: 'Rimarko: %{id}'
description: Priskribo
coordinates_html: '%{latitude}; %{longitude}'
anonymous_warning: Ĉi tiu rimarko enhavas komentojn de anonimuloj, kiuj devas
esti kontrolitaj sendepende.
+ discussion: Diskuto
+ subscribe: Observi
+ unsubscribe: Malobservi
hide: Kaŝi
resolve: Solvi
reactivate: Remalfermi
way: Vía
relation: Relación
containing_relation:
- entry_html: Relación %{relation_name}
entry_role_html: Relación %{relation_name} (como %{relation_role})
not_found:
title: No encontrado
open: Abierto
resolved: Resuelto
show:
- title: '%{status} Incidencia n.º %{issue_id}'
reports:
one: '%{count} reporte'
other: '%{count} reportes'
upload_trace: Subir una traza
all_traces: Todas las trazas
my_traces: Mis trazas
- traces_from: Trazas Públicos de %{user}
+ traces_from_html: Trazas Públicos de %{user}
remove_tag_filter: Eliminar Filtro de Etiquetas
destroy:
scheduled_for_deletion: Traza programada para eliminación
reason: 'Razón del bloqueo:'
revoker: 'Revocador:'
block:
- not_revoked: (no revocado)
show: Mostrar
edit: Editar
page:
creator_name: Creador
reason: Razón del bloqueo
status: Estado
- revoker_name: Revocado por
navigation:
all_blocks: Todos los bloqueos
blocks_on_me: Bloqueos sobre mí
- blocks_on_user: Bloqueos en %{user}
+ blocks_on_user_html: Bloqueos en %{user}
blocks_by_me: Bloqueados por mí
- blocks_by_user: Bloqueos por %{user}
+ blocks_by_user_html: Bloqueos por %{user}
block: 'Bloqueo #%{id}'
new_block: Nuevo bloqueo
user_mutes:
way: joon
relation: relatsioon
containing_relation:
- entry_html: Relatsioon %{relation_name}
entry_role_html: Relatsioon %{relation_name} (kui %{relation_role})
not_found:
title: Ei leidu
upload_trace: Lisa GPS-rada
all_traces: Kõik rajad
my_traces: Minu rajad
- traces_from: Kasutaja %{user} avalikud rajad
+ traces_from_html: Kasutaja %{user} avalikud rajad
remove_tag_filter: Eemalda sildifilter
destroy:
scheduled_for_deletion: Raja kustutamine kantud tööplaani.
reason: 'Blokeerimise põhjus:'
revoker: Tühistaja
block:
- not_revoked: (pole tühistatud)
show: Näita
edit: Redigeeri
page:
creator_name: Blokeerija
reason: Blokeerimise põhjus
status: Olek
- revoker_name: Tühistanud
navigation:
all_blocks: Kõik blokeeringud
blocks_on_me: Mulle seatud blokeeringud
- blocks_on_user: Blokeeritava %{user} blokeeringud
+ blocks_on_user_html: Blokeeritava %{user} blokeeringud
blocks_by_me: Minu seatud blokeeringud
- blocks_by_user: Blokeerija %{user} blokeeringud
+ blocks_by_user_html: Blokeerija %{user} blokeeringud
block: 'Blokeering #%{id}'
user_mutes:
index:
way: Bide
relation: Erlazio
containing_relation:
- entry_html: '%{relation_name} erlazioa'
entry_role_html: '%{relation_name} erlazioa (%{relation_role} rolean)'
not_found:
title: Ez da aurkitu
other: '%{count} txosten'
reported_item: Salatutako elementua
show:
- title: '%{status} %{issue_id} arazoa'
reports:
one: '%{count} report'
other: '%{count} jakinarazpen'
upload_trace: Aztarna bat igo
all_traces: Aztarna guztiak
my_traces: Nire aztarnak
- traces_from: '%{user} erabiltzailearen GPS aztarna publikoak'
+ traces_from_html: '%{user} erabiltzailearen GPS aztarna publikoak'
remove_tag_filter: Kendu etiketa-iragazkia
destroy:
scheduled_for_deletion: Ezabatzear dauden aztarnak
reason: 'Blokeatzeko arrazoia:'
revoker: 'Ezeztatu duena:'
block:
- not_revoked: (ez da ezeztatu)
show: Erakutsi
edit: Aldatu
page:
creator_name: Egilea
reason: Blokeatzeko arrazoia
status: Egoera
- revoker_name: -k ezeztatua
notes:
index:
title: '%{user}k igotako edo iruzkinak utzitako oharrak'
way: راه
relation: رابطه
containing_relation:
- entry_html: رابطهٔ %{relation_name}
entry_role_html: رابطهٔ %{relation_name} (با نقش %{relation_role})
not_found:
title: یافت نشد
other: '%{count} گزارش'
reported_item: مورد گزارششده
show:
- title: '%{status} موضوع #%{issue_id}'
reports:
one: '%{count} گزارش'
other: '%{count} گزارش'
upload_trace: بارگذاری یک رد
all_traces: همهٔ ردها
my_traces: ردهای من
- traces_from: ردهای عمومی %{user}
+ traces_from_html: ردهای عمومی %{user}
remove_tag_filter: حذف پالایهٔ برچسب
destroy:
scheduled_for_deletion: این رد در زمانبندی حذف قرار گرفت
reason: 'دلیل مسدودی:'
revoker: 'باطلکننده:'
block:
- not_revoked: (باطل نشده)
show: نمایش
edit: ویرایش
page:
creator_name: ایجادکننده
reason: دلیل مسدودی
status: وضعیت
- revoker_name: باطلکننده
navigation:
all_blocks: تمام قطع دسترسیها
blocks_on_me: قطع دسترسیهای من
- blocks_on_user: قطع دسترسیهای %{user}
+ blocks_on_user_html: قطع دسترسیهای %{user}
blocks_by_me: |-
Blocks by Me
بسته شدها یا مسدود شدهها
- blocks_by_user: |-
+ blocks_by_user_html: |-
Blocks by %{user}
بستن توسط یا مسدود شدن توسط
way: Polku
relation: Relaatio
containing_relation:
- entry_html: Relaatio %{relation_name}
entry_role_html: Relaatio %{relation_name} (rooli %{relation_role})
not_found:
title: Ei löytynyt
other: '%{count} ilmiantoa'
reported_item: Ilmiannettu kohde
show:
- title: '%{status} Tapaus #%{issue_id}'
reports:
one: '%{count} ilmianto'
other: '%{count} ilmiantoa'
upload_trace: Lisää GPS-jälki
all_traces: Kaikki jäljet
my_traces: Omat jäljet
- traces_from: Julkiset jäljet käyttäjältä %{user}
+ traces_from_html: Julkiset jäljet käyttäjältä %{user}
remove_tag_filter: Poista tunnistesuodatin
destroy:
scheduled_for_deletion: Jälki on poistojonossa.
reason: 'Syy estoon:'
revoker: 'Estäjä:'
block:
- not_revoked: (ei kumottu)
show: Näytä
edit: Muokkaa
page:
creator_name: Tekijä
reason: Eston syy
status: Tila
- revoker_name: Eston tehnyt
user_mutes:
index:
table:
way: Polku
relation: Relaatio
containing_relation:
- entry_html: Relaatio %{relation_name}
entry_role_html: Relaatio %{relation_name} (rooli %{relation_role})
not_found:
sorry: 'Pahoittelemme, %{type} #%{id} ei ole olemassa.'
one: 1 ilmotus
other: '%{count} ilmiantoa'
show:
- title: '%{status} Tapaus #%{issue_id}'
reports:
zero: Ei ilmiantoa
one: Yksi ilmianto
# Author: Yodaspirine
# Author: Yvecai
# Author: Zarisi
+# Author: Zorun
---
fr:
html:
message: Message
node: Nœud
node_tag: Attribut du nœud
+ note: Note
old_node: Ancien nœud
old_node_tag: Attribut de l’ancien nœud
old_relation: Ancienne relation
way: Chemin
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
- entry_role_html: Relation %{relation_name} (avec le rôle %{relation_role})
+ entry_role_html: '%{relation_name} (avec le rôle %{relation_role})'
not_found:
title: Non trouvé
sorry: Désolé, l’objet %{type} nº %{id} n’a pas pu être trouvé.
note: note
timeout:
title: Erreur de dépassement du délai d’attente
- sorry: Désolé, l'extraction des données pour le %{type} avec l'identifiant %{id}
- a pris trop de temps.
+ sorry: Désolé, l’extraction des données pour l’objet de type « %{type} » avec
+ l’identifiant %{id} a pris trop de temps.
type:
node: nœud
way: chemin
bus_station: Arrêt de bus
cafe: Café
car_rental: Location de voiture
- car_sharing: Covoiturage
+ car_sharing: Autopartage
car_wash: Lavage de voiture
casino: Casino
charging_station: Station de recharge
open: Ouvert
resolved: Résolu
show:
- title: Problème %{status} nº %{issue_id}
+ title:
+ open: 'Problème ouvert n° #%{issue_id}'
+ ignored: 'Problème ignoré n° #%{issue_id}'
+ resolved: 'Problème résolu n° #%{issue_id}'
reports:
one: '%{count} rapport'
other: '%{count} rapports'
title: Mes préférences
preferred_editor: Éditeur préféré
preferred_languages: Langues préférées
+ preferred_site_color_scheme: Système de couleurs préféré pour le site Internet
+ site_color_schemes:
+ auto: Auto
+ light: Clair
+ dark: Sombre
+ preferred_map_color_scheme: Système de couleurs préféré pour la cartographie
+ map_color_schemes:
+ auto: Auto
+ light: Clair
+ dark: Sombre
edit_preferences: Modifier les préférences
edit:
title: Modifier les préférences
upload_trace: Téléverser une trace
all_traces: Toutes les traces
my_traces: Mes traces
- traces_from: Traces publiques de %{user}
+ traces_from_html: Traces publiques de %{user}
remove_tag_filter: Retirer le filtre de balises
destroy:
scheduled_for_deletion: Trace planifiée pour suppression
years:
one: '%{count} année'
other: '%{count} années'
+ short:
+ ended: terminé
+ revoked_html: révoqué par %{name}
+ active: actif
+ active_unread: actif non lu
+ expired_unread: expiré non lu
+ read_html: lu à %{time}
+ time_in_future_title: '%{time_absolute}; dans %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Blocages de « %{name} »
heading_html: Liste des blocages sur « %{name} »
reason: 'Raison du blocage :'
revoker: 'Révocateur :'
block:
- not_revoked: (non révoqué)
show: Afficher
edit: Modifier
page:
display_name: Utilisateur bloqué
creator_name: Créateur
reason: Motif du blocage
+ start: Début
+ end: Fin
status: État
- revoker_name: Révoqué par
navigation:
all_blocks: Tous les blocages
blocks_on_me: Blocages me concernant
- blocks_on_user: Blocages sur %{user}
+ blocks_on_user_html: Blocages sur %{user}
blocks_by_me: Blocages de ma part
- blocks_by_user: Blocages effectués par %{user}
+ blocks_by_user_html: Blocages effectués par %{user}
block: 'Blocage #%{id}'
new_block: Nouveau blocage
user_mutes:
description: Description
created_at: Créée le
last_changed: Dernière modification
+ apply: Appliquer
+ all: Tous
+ open: Ouvert
+ closed: Fermé
+ status: État
show:
title: 'Note : %{id}'
description: Description
coordinates_html: '%{latitude} ; %{longitude}'
anonymous_warning: Cette note comprend des commentaires d’utilisateurs anonymes,
qui devraient être vérifiés de façon indépendante.
+ discussion: Discussion
+ subscribe: S’abonner
+ unsubscribe: Se désabonner
hide: Masquer
resolve: Marquer comme résolue
reactivate: Réactiver
way: Vie
relation: Relazion
containing_relation:
- entry_html: Relazion %{relation_name}
entry_role_html: Relazion %{relation_name} (come %{relation_role})
not_found:
title: No cjatât
upload_trace: Cjame un percors
all_traces: Ducj i percors
my_traces: I miei percors
- traces_from: Percors publics di %{user}
+ traces_from_html: Percors publics di %{user}
georss:
title: Percors GPS di OpenStreetMap
description:
reason: 'Reson dal bloc:'
revoker: 'Chel che al à revocât:'
block:
- not_revoked: (no revocât)
show: Mostre
edit: Cambie
page:
creator_name: Creadôr
reason: Reson dal bloc
status: Stât
- revoker_name: Revocât di
user_mutes:
index:
table:
way: Line
relation: Relaasje
containing_relation:
- entry_html: Relaasje %{relation_name}
entry_role_html: Relaasje %{relation_name} (as %{relation_role})
not_found:
title: Net fûn
other: '%{count} meldings'
reported_item: Meld elemint
show:
- title: '%{status} probleem #%{issue_id}'
reports:
one: 1 melding
other: '%{count} meldings'
upload_trace: Trajekt oplade
all_traces: Alle trajekten
my_traces: Myn trajekten
- traces_from: Iepenbiere trajekten fan %{user}
+ traces_from_html: Iepenbiere trajekten fan %{user}
remove_tag_filter: Lebelfilter weilitte
destroy:
scheduled_for_deletion: Trajekt ynplend om te wiskjen
reason: 'Reden foar útsluting:'
revoker: 'Ynlûker:'
block:
- not_revoked: (net ynlutsen)
show: Werjaan
edit: Bewurkje
page:
creator_name: Oanmakker
reason: Reden foar útsluting
status: Status
- revoker_name: Ynlutsen troch
notes:
index:
title: Troch %{user} yntsjinne as op reägearre notysjes
way: Bealach
relation: Gaol
containing_relation:
- entry_html: Gaol %{relation_name}
entry_role_html: Gaol %{relation_name} (mar %{relation_role})
not_found:
sorry: 'Ár leithscéil, níorbh fhéidir %{type} #%{id} a aimsiú.'
page:
last_updated: Nuashonrú deireanach
show:
- title: '%{status} Fadhb #%{issue_id}'
reports:
zero: Tuairisc ar bith
one: Tuairisc amháin
one: uair amháin an chloig
other: '%{count} uair an chloig'
block:
- not_revoked: (nár tarraingíodh siar)
show: Taispeáin
edit: Cuir in Eagar
page:
creator_name: Cruthaitheoir
reason: Cúis don bhac
status: Stádas
- revoker_name: Tarraingthe siar ag
notes:
index:
id: ID
type:
way: Chimen
containing_relation:
- entry_html: Rèlasion %{relation_name}
entry_role_html: Rèlasion %{relation_name} (adan wol %{relation_role})
not_found:
sorry: Désolé, l’objet %{type} nº %{id} n’a pas pu être trouvé.
way: Slighe
relation: Dàimh
containing_relation:
- entry_html: Dàimh %{relation_name}
entry_role_html: Dàimh %{relation_name} ('na %{relation_role})
not_found:
sorry: Duilich ach cha deach %{type} àireamh %{id} a lorg.
reason: 'Adhbhar a'' bhacaidh:'
revoker: 'Cùl-ghairm le:'
block:
- not_revoked: (cha deach a chùl-ghairm)
show: Seall
edit: Deasaich
page:
creator_name: Cruthadair
reason: Adhbhar a' bhacaidh
status: Staid
- revoker_name: Air a chùl-ghairm le
notes:
index:
title: Nòtaichean a chuir %{user} a-null no a thug %{user} beachd dhaibh
message: Mensaxe
node: Nó
node_tag: Etiqueta do nó
+ note: Nota
old_node: Nó vello
old_node_tag: Etiqueta do nó vello
old_relation: Relación vella
way: Vía
relation: Relación
containing_relation:
- entry_html: Relación %{relation_name}
- entry_role_html: Relación %{relation_name} (como %{relation_role})
+ entry_role_html: '%{relation_name} (como %{relation_role})'
not_found:
title: Non atopado
sorry: Sentímolo, non se puido atopar o/a %{type} co n.º %{id}.
open: Aberto
resolved: Resolto
show:
- title: '%{status} Erro n.º %{issue_id}'
+ title:
+ open: Problema aberto n.º %{issue_id}
+ ignored: Problema ignorado n.º %{issue_id}
+ resolved: Problema resolto n.º %{issue_id}
reports:
one: '%{count} denuncia'
other: '%{count} denuncias'
old_messages:
one: '%{count} mensaxe vella'
other: '%{count} mensaxes vellas'
- no_messages_yet_html: Aínda non ten ningunha mensaxe. Por que non se pon en
+ no_messages_yet_html: Aínda non tes ningunha mensaxe. Por que non te pos en
contacto con algunhas das %{people_mapping_nearby_link}?
people_mapping_nearby: persoas preto de ti
messages_table:
back_to_inbox: Volver á caixa de entrada
create:
message_sent: Mensaxe enviada
- limit_exceeded: Estivo enviando unha morea de mensaxes recentemente. Agarde
+ limit_exceeded: Enviaches unha morea de mensaxes dun tempo a esta parte. Agarda
uns intres denantes de tentar enviar máis.
no_such_message:
title: Non se atopou a mensaxe
heading: Non se atopou a mensaxe
- body: Non hai ningunha mensaxe con esa ID.
+ body: Non hai ningunha mensaxe con ese identificador.
outbox:
title: Caixa de saída
messages:
one: Enviaches %{count} mensaxe
other: Enviaches %{count} mensaxes
- no_sent_messages_html: Aínda non enviou ningunha mensaxe. Por que non se pon
- en contacto con algunhas das %{people_mapping_nearby_link}?
+ no_sent_messages_html: Aínda non enviaches ningunha mensaxe. Por que non te
+ pos en contacto con algunhas das %{people_mapping_nearby_link}?
people_mapping_nearby: persoas preto de ti
muted:
title: Mensaxes silenciadas
title: As miñas preferencias
preferred_editor: Editor preferido
preferred_languages: Linguas preferidas
+ preferred_site_color_scheme: Esquema de cores preferido para o sitio web
+ site_color_schemes:
+ auto: Automático
+ light: Claro
+ dark: Escuro
+ preferred_map_color_scheme: Esquema de cores preferido para o mapa
+ map_color_schemes:
+ auto: Automático
+ light: Claro
+ dark: Escuro
edit_preferences: Editar preferencias
edit:
title: Editar preferencias
upload_trace: Subir unha pista
all_traces: Todas as pistas
my_traces: As miñas pistas GPS
- traces_from: Pistas públicas de %{user}
+ traces_from_html: Pistas públicas de %{user}
remove_tag_filter: Eliminar etiqueta do filtro
destroy:
scheduled_for_deletion: Pista agardando a súa eliminación
not_revoke_admin_current_user: Non se puido revogar os dereitos de administrador
do usuario actual.
grant:
- are_you_sure: Ten a certeza de querer concederlle o rol "%{role}" ó usuario
- "%{name}"?
+ are_you_sure: Queres concederlle o rol "%{role}" ó usuario "%{name}"?
revoke:
- are_you_sure: Ten a certeza de querer revogarlle o rol "%{role}" ó usuario "%{name}"?
+ are_you_sure: Queres quitarlle o rol "%{role}" ó usuario "%{name}"?
user_blocks:
model:
non_moderator_update: Cómpre ser moderador para crear ou actualizar un bloqueo.
years:
one: '%{count} ano'
other: '%{count} anos'
+ short:
+ ended: finalizado
+ revoked_html: revogado por %{name}
+ active: activo
+ active_unread: activo sen ler
+ expired_unread: caducado sen ler
+ read_html: lido ás %{time}
+ time_in_future_title: '%{time_absolute}; en %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Bloqueos feitos a %{name}
heading_html: Listaxe dos bloqueos feitos a %{name}
reason: 'Motivo para o bloqueo:'
revoker: 'Autor da revogación:'
block:
- not_revoked: (non revogado)
show: Amosar
edit: Editar
page:
display_name: Usuario bloqueado
creator_name: Creador
reason: Motivo para o bloqueo
+ start: Inicio
+ end: Fin
status: Estado
- revoker_name: Revogado por
navigation:
all_blocks: Todos os bloqueos
blocks_on_me: Os meus bloqueos
- blocks_on_user: Bloqueos feitos a %{user}
+ blocks_on_user_html: Bloqueos feitos a %{user}
blocks_by_me: Bloqueos efectuados
- blocks_by_user: Bloqueos feitos por %{user}
+ blocks_by_user_html: Bloqueos feitos por %{user}
block: Bloqueo n.º %{id}
new_block: Novo bloqueo
user_mutes:
description: Descrición
created_at: Creado o
last_changed: Última modificación
+ apply: Aplicar
+ all: Todas
+ open: Abertas
+ closed: Pechadas
+ status: Estado
show:
title: 'Nota: %{id}'
description: Descrición
report: denunciar esta nota
anonymous_warning: Esta nota inclúe comentarios de usuarios anónimos que deben
verificarse de xeito independente.
+ discussion: Conversa
+ subscribe: Subscribirse
+ unsubscribe: Cancelar a subscrición
hide: Agochar
resolve: Resolver
reactivate: Reactivar
way: Wäg
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
entry_role_html: Relation %{relation_name} (as %{relation_role})
not_found:
sorry: '%{type} mit de Nummer %{id} konnt leider net gfunde wärre.'
message: הודעה
node: נקודה
node_tag: תג נקודה
+ note: הערה
old_node: נקודה ישנה
old_node_tag: תג צומת ישן
old_relation: יחס ישן
way: קו
relation: יחס
containing_relation:
- entry_html: יחס %{relation_name}
- entry_role_html: יחס %{relation_name} (בתור %{relation_role})
+ entry_role_html: '%{relation_name} (בתור %{relation_role})'
not_found:
title: לא נמצא
sorry: אנו מתנצלים, אך לא מצאנו %{type} מספר %{id}.
open: פתוח
resolved: פתור
show:
- title: בעיה במצב %{status} מס׳ %{issue_id}
+ title:
+ open: בעיה פתוחה %{issue_id}
+ ignored: בעיה חסרת־השפעה %{issue_id}
+ resolved: בעיה פתורה %{issue_id}
reports:
one: דו״ח אחד
two: '%{count} דו״חות'
title: ההעדפות שלי
preferred_editor: עורך מועדף
preferred_languages: שפות מועדפות
+ preferred_site_color_scheme: ערכת צבעי האתר המועדפת
+ site_color_schemes:
+ auto: אוטומטית
+ light: בהירה
+ dark: כהה
+ preferred_map_color_scheme: ערכת צבעי המפה המועדפת
+ map_color_schemes:
+ auto: אוטומטית
+ light: בהירה
+ dark: כהה
edit_preferences: עריכת העדפות
edit:
title: עריכת העדפות
license:
copyright: 'זכויות היוצרים: מיזם OpenStreetMap ותורמיו, בכפוף לרישיון פתוח'
remote_failed: העריכה נכשלה – נא לוודא כי JOSM או Merkaartor נטענו ושאפשרות
- ×\94ש×\9c×\99×\98×\94 ×\9eק×\97×\95ר מופעלת
+ ×\94ש×\9c×\99×\98×\94 ×\9eר×\97×\95ק מופעלת
edit:
not_public: לא הגדרת את העריכות שלך כציבוריות.
not_public_description_html: לא תהיה לך אפשרות להמשיך לערוך את המפה לפני שזה
upload_trace: העלאת מסלול
all_traces: כל המסלולים
my_traces: המסלולים שלי
- traces_from: מסלולים ציבוריים מאת %{user}
+ traces_from_html: מסלולים ציבוריים מאת %{user}
remove_tag_filter: הסרת סינון לפי תג
destroy:
scheduled_for_deletion: מסלול מיועד למחיקה
paragraph_1: בניגוד למפות אחרות, OpenStreetMap נוצרה לחלוטין על־ידי אנשים
כמוך והיא חופשית לתיקונים, עדכונים, הורדה ושימוש של כל מי שחפץ.
paragraph_2: אפשר להירשם כדי להתחיל לתרום.
- welcome: ברוך בואך ל־OoenStreetMap
+ welcome: ברוך בואך ל־OpenStreetMap
duplicate_social_email: אם כבר יש לך חשבון OpenStreetMap וברצונך להשתמש בספק
זהות של צד שלישי, נא להתחבר באמצעות הסיסמה שלך ולשנות את הגדרות החשבון שלך.
display name description: שם המשתמש שלך, שמוצג בפומבי. אפשר לשנות את זה בהעדפות
two: שנתיים
many: '%{count} שנה'
other: '%{count} שנים'
+ short:
+ ended: הסתיימה
+ revoked_html: בוטלה על־ידי %{name}
+ active: פעילה
+ active_unread: פעילה, לא נקראה
+ expired_unread: פגה, לא נקראה
+ read_html: נקראה ב־%{time}
+ time_in_future_title: '%{time_absolute}; ב־%{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: חסימות של %{name}
heading_html: רשימת החסימות של %{name}
reason: 'סיבה לחסימה:'
revoker: 'מבטל:'
block:
- not_revoked: (לא בוטלה)
show: הצגה
edit: עריכה
page:
display_name: משתמש חסום
creator_name: יוצר
reason: סיבה לחסימה
+ start: התחלה
+ end: סיום
status: מצב
- revoker_name: בוטלה על־ידי
navigation:
all_blocks: כל החסימות
blocks_on_me: חסימות שלי
- blocks_on_user: חסימות של %{user}
+ blocks_on_user_html: חסימות של %{user}
blocks_by_me: חסימות שעשיתי
- blocks_by_user: חסימות שנעשו על־ידי %{user}
+ blocks_by_user_html: חסימות שנעשו על־ידי %{user}
block: חסימה מס׳ %{id}
new_block: חסימה חדשה
user_mutes:
description: תיאור
created_at: 'יצירה:'
last_changed: 'שינוי אחרון:'
+ apply: החלה
+ all: הכול
+ open: פתוחה
+ closed: סגורה
+ status: מצב
show:
title: 'הערה: %{id}'
description: תיאור
report: לדווח על ההערה הזאת
anonymous_warning: ההערה הזאת כוללת תגובות ממשתמשים אלמוניים שצריך לאמת באופן
עצמאי.
+ discussion: דיון
+ subscribe: מינוי
+ unsubscribe: ביטול מינוי
hide: להסתיר
resolve: לפתור
reactivate: הפעלה מחדש
way: रेखा
relation: संबंध
containing_relation:
- entry_html: संबंध %{relation_name}
entry_role_html: संबंध %{relation_name} (as %{relation_role})
not_found:
title: नहीं मिला
filter:
not_revoke_admin_current_user: वर्तमान उपयोगकर्ता के द्वारा व्यवस्थापक भूमिका
को रद्द नहीं कर सकता है|
+ user_blocks:
+ page:
+ end: अन्त
notes:
index:
created_at: 'निर्माण का समय:'
last_changed: अंतिम परिवर्तन
+ apply: लागू करें
+ all: सभी
+ open: खोलें
+ closed: बंद किया हुआ
+ status: स्थिति
show:
title: 'नोट: %{id}'
description: विवरण
closed_title: 'सुलझा नोट #%{note_name}'
hidden_title: 'छिपाया नोट #%{note_name}'
report: इस नोट को रिपोर्ट कर
+ discussion: चर्चा
+ subscribe: सदस्यता लें
+ unsubscribe: सदस्यता छोड़ें
hide: छुपाएँ
resolve: समाधान करें
reactivate: 'पुन: सक्रिय करें'
way: Put
relation: Relacija
containing_relation:
- entry_html: Relacija %{relation_name}
entry_role_html: Relacija %{relation_name} (kao %{relation_role})
not_found:
sorry: 'Nažalost, %{type} #%{id} nije pronađen.'
reason: 'Razlog za blokadu:'
revoker: 'Opozivatelj:'
block:
- not_revoked: (nije opozvano)
show: Prikaži
edit: Uredi
page:
creator_name: Tvorac
reason: Razlog za blokadu
status: Status
- revoker_name: Opozvao
notes:
index:
title: Bilješke stvorio ili komentirao %{user}
way: Puć
relation: Relacija
containing_relation:
- entry_html: Relacija %{relation_name}
entry_role_html: Relacija %{relation_name} (jako %{relation_role})
not_found:
title: Njenamakane
other: '%{count} rozprawow'
reported_item: Zjewjeny objekt
show:
- title: '%{status} Problem čo. %{issue_id}'
reports:
one: '%{count} rozprawa'
two: '%{count} rozprawje'
upload_trace: Ćěr nahrać
all_traces: Wšě ćěrje
my_traces: Moje ćěrje
- traces_from: Zjawne ćěrje wot %{user}
+ traces_from_html: Zjawne ćěrje wot %{user}
destroy:
scheduled_for_deletion: Čara předwidźana za zničenje
offline_warning:
reason: 'Přičina za blokowanje:'
revoker: 'Zeběracy wužiwar:'
block:
- not_revoked: (njezběhnjeny)
show: Pokazać
edit: Wobdźěłać
page:
creator_name: Blokowar
reason: Přičina za blokowanje
status: Status
- revoker_name: Zběhnjene wot
user_mutes:
index:
title: Zněmjeni wužiwarjo
is_already_muted: már el van némítva
models:
acl: Hozzáférés-szabályzási lista
- changeset: Módosításkészlet
- changeset_tag: Módosításkészlet címkéje
+ changeset: Módosításcsomag
+ changeset_tag: Módosításcsomag címkéje
country: Ország
diary_comment: Hozzászólás a naplóhoz
diary_entry: Naplóbejegyzés
trace:
tagstring: vesszővel elválasztva
user_block:
- reason: A felhasználó letiltásának oka. Kérjük, légy a lehető legnyugodtabb
- és észszerűbb, adj meg minél több részletet a helyzetről, és ne feledd,
- hogy az üzenet nyilvánosan látható lesz. Gondolj arra, hogy nem minden felhasználó
- érti a közösségi szakzsargont, ezért kérjük, próbálj laikus kifejezéseket
- használni.
+ reason: A felhasználó letiltásának oka. Légy a lehető legnyugodtabb és ésszerűbb,
+ adj meg minél több részletet a helyzetről, és ne feledd, hogy az üzenet
+ nyilvánosan látható lesz. Gondolj arra, hogy nem minden felhasználó érti
+ a közösségi szakzsargont, ezért kérjük, próbálj laikus kifejezéseket használni.
needs_view: Be kell-e jelentkeznie a felhasználónak, mielőtt a blokkolás feloldódik?
user:
new_email: (soha nem jelenik meg nyilvánosan)
reopened_at_by_html: 'Újraaktiválta %{user} ekkor: %{when}'
rss:
title: OpenStreetMap jegyzetek
- description_all: Jelentett, kommentált vagy lezárt feljegyzések listája
+ description_all: Jelentett, kommentált vagy lezárt jegyzetek listája
description_area: Bejelentett, hozzászólással ellátott vagy lezárt jegyzetek
a területeden [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
- description_item: RSS hírcsatorna a %{id} jegyzethez
- opened: új megjegyzés (%{place} közelében)
+ description_item: RSS hírcsatorna a(z) %{id} jegyzethez
+ opened: új jegyzet (%{place} közelében)
commented: új hozzászólás (%{place} közelében)
closed: lezárt jegyzet (%{place} közelében)
reopened: újraaktivált jegyzet (%{place} közelében)
megmaradnak, de nem lesznek láthatóak.
retain_notes: Térképjegyzeteid és jegyzethozzászólásaid (ha vannak) megmaradnak,
de nem lesznek láthatóak.
- retain_changeset_discussions: A módosításkészletekhez fűzött hozzászólásaid
+ retain_changeset_discussions: A módosításcsomagokhoz fűzött hozzászólásaid
(ha vannak) megőrződnek.
retain_email: Az e-mail-címed is megmarad.
recent_editing_html: Mivel nemrégiben szerkesztettél, fiókod jelenleg nem
edited_ago_by_html: Szerkesztette %{user} %{time_ago}
version: Verzió
redacted_version: Szerkesztett verzió
- in_changeset: Módosításkészlet
+ in_changeset: Módosításcsomag
anonymous: névtelen
no_comment: (nincs hozzászólás)
part_of: 'Része ennek:'
view_redaction_message: Adattörlési üzenet megtekintése
location: 'Hely:'
node:
- title_html: '%{name} pont'
+ title_html: 'Pont: %{name}'
history_title_html: '%{name} pont előzményei'
way:
- title_html: '%{name} vonal'
+ title_html: 'Vonal: %{name}'
history_title_html: '%{name} vonal előzményei'
nodes: Pontok
nodes_count:
one: '%{related_ways} vonal része'
other: '%{related_ways} vonalak része'
relation:
- title_html: '%{name} kapcsolat'
+ title_html: 'Kapcsolat: %{name}'
history_title_html: '%{name} kapcsolat előzményei'
members: Tagok
members_count:
way: 'Vonal:'
relation: 'Kapcsolat:'
containing_relation:
- entry_html: '%{relation_name} kapcsolat'
entry_role_html: '%{relation_name} kapcsolat (mint %{relation_role})'
not_found:
title: Nem található
node: pont
way: vonal
relation: kapcsolat
- changeset: módosításkészlet
+ changeset: módosításcsomag
note: jegyzet
timeout:
title: Időtúllépési hiba
node: pont
way: vonal
relation: kapcsolat
- changeset: módosításkészlet
+ changeset: módosításcsomag
note: jegyzet
redacted:
redaction: '%{id} adattörlési művelet'
enclosing: A helyet körülvevő objektumok
nodes:
timeout:
- sorry: Sajnáljuk, a %{id} azonosítójú csomópont adatainak lekérése túl sokáig
+ sorry: Sajnáljuk, a(z) %{id} azonosítójú pont adatainak lekérése túl sokáig
tartott.
old_nodes:
not_found:
sorry: 'Sajnáljuk, nem található meg #%{id} pont %{version} verziója.'
timeout:
- sorry: Sajnáljuk, a %{id} azonosítójú csomópont előzményeinek lekérése túl sokáig
+ sorry: Sajnáljuk, a(z) %{id} azonosítójú pont előzményeinek lekérése túl sokáig
tartott.
ways:
timeout:
changeset_comments:
feeds:
comment:
- comment: 'Új hozzászólás #%{changeset_id} módosításkészlethez %{author} felhasználótól'
+ comment: 'Új hozzászólás #%{changeset_id} módosításcsomaghoz %{author} felhasználótól'
commented_at_by_html: '%{user} frissítette ekkor: %{when}'
show:
- title_all: OpenStreetMap módosításkészlet-megbeszélés
- title_particular: 'A #%{changeset_id} OpenStreetMap módosításkészlethez tartozó
+ title_all: OpenStreetMap módosításcsomag-megbeszélés
+ title_particular: 'A #%{changeset_id} OpenStreetMap módosításcsomaghoz tartozó
megbeszélés'
timeout:
- sorry: Sajnáljuk, túl sokáig tartott az általad kért módosításkészlet-hozzászólások
+ sorry: Sajnáljuk, túl sokáig tartott az általad kért módosításcsomag-hozzászólások
listájának lekérése.
changesets:
changeset:
no_edits: (nincs szerkesztés)
- view_changeset_details: Módosításkészlet részleteinek megtekintése
+ view_changeset_details: Módosításcsomag részleteinek megtekintése
index:
- title: Módosításkészletek
- title_user: '%{user} módosításkészletei'
- title_user_link_html: '%{user_link} módosításkészletei'
- title_friend: Ismerősök módosításkészletei
- title_nearby: Közeli felhasználók módosításkészletei
- empty: Nem található módosításkészlet
- empty_area: Ezen a területen nincs módosításkészlet.
- empty_user: Ettől a felhasználótól nincs módosításkészlet.
- no_more: Nem találtunk több módosításkészletet.
- no_more_area: Ezen a területen nincs több módosításkészlet.
- no_more_user: Ettől a felhasználótól nincs több módosításkészlet.
+ title: Módosításcsomagok
+ title_user: '%{user} módosításcsomagjai'
+ title_user_link_html: '%{user_link} módosításcsomagjai'
+ title_friend: Ismerősök módosításcsomagjai
+ title_nearby: Közeli felhasználók módosításcsomagjai
+ empty: Nem található módosításcsomag.
+ empty_area: Ezen a területen nincs módosításcsomag.
+ empty_user: Ettől a felhasználótól nincs módosításcsomag.
+ no_more: Nem található több módosításcsomag.
+ no_more_area: Ezen a területen nincs több módosításcsomag.
+ no_more_user: Ettől a felhasználótól nincs több módosításcsomag.
load_more: Továbbiak betöltése
feed:
- title: '%{id} módosításkészlet'
- title_comment: '%{id} módosításkészlet - %{comment}'
+ title: '%{id} módosításcsomag'
+ title_comment: '%{id} módosításcsomag – %{comment}'
created: Létrehozva
closed: Lezárva
belongs_to: Szerző
subscribe:
- heading: Feliratkozol a következő módosításkészlet megbeszélésére?
+ heading: Feliratkozol a következő módosításcsomag-megbeszélésére?
button: Feliratkozás a megbeszélésre
unsubscribe:
- heading: Leiratkozol a következő módosításkészlet megbeszéléséről?
+ heading: Leiratkozol a következő módosításcsomag-megbeszéléséről?
button: Leiratkozás a megbeszélésről
heading:
- title: '%{id} számú módosításkészlet'
+ title: '%{id} számú módosításcsomag'
created_by_html: 'Létrehozta: %{link_user} (%{created}).'
no_such_entry:
heading: Nincs %{id} azonosítójú naplóbejegyzés
- body: Sajnáljuk, nincs %{id} azonosítójú módosításkészlet. Ellenőrizd a helyességét.
- Az is lehet, hogy rossz linkre kattintottál.
+ body: Sajnáljuk, nincs %{id} azonosítójú módosításcsomag. Ellenőrizd, hogy jól
+ írtad-e. Az is lehet, hogy rossz linkre kattintottál.
show:
- title: '%{id} módosításkészlet'
+ title: 'Módosításcsomag: %{id}'
created: 'Létrehozva: %{when}'
closed: 'Lezárva: %{when}'
created_ago_html: Létrehozva %{time_ago}
closed_ago_by_html: Lezárta %{user} %{time_ago}
discussion: Megbeszélés
join_discussion: Jelentkezz be, hogy bekapcsolódhass a megbeszélésbe
- still_open: A módosításkészlet még nyitva van – a megbeszélés akkor nyílik meg,
- ha a módosításkészlet lezárul.
+ still_open: A módosításcsomag még nyitva van – a megbeszélés akkor nyílik meg,
+ ha a módosításcsomag lezárul.
subscribe: Feliratkozás
unsubscribe: Leiratkozás
comment_by_html: Hozzászólt %{user} %{time_ago}
hide_comment: elrejtés
unhide_comment: megjelenítés
comment: Hozzászólás
- changesetxml: Módosításkészlet adatai (XML)
- osmchangexml: Módosításkészlet tartalma (osmChange XML)
+ changesetxml: Módosításcsomag XML-ben
+ osmchangexml: osmChange XML
paging_nav:
nodes: Pontok (%{count})
nodes_paginated: 'Pontok (%{x}-%{y} ennyiből: %{count})'
relations: Kapcsolatok (%{count})
relations_paginated: 'Kapcsolatok (%{x}-%{y} ennyiből: %{count})'
timeout:
- sorry: Sajnáljuk, az általad kért módosításkészletek listájának beolvasása túl
+ sorry: Sajnáljuk, az általad kért módosításcsomagok listájának lekérése túl
sokáig tartott.
dashboards:
contact:
nearby users: További közeli felhasználók
no nearby users: Még nincsenek más felhasználók, akik megadták, hogy a közelben
szerkesztenek.
- friends_changesets: ismerősök módosításkészletei
+ friends_changesets: ismerősök módosításcsomagjai
friends_diaries: ismerősök naplóbejegyzései
- nearby_changesets: közeli felhasználók módosításkészletei
+ nearby_changesets: közeli felhasználók módosításcsomagjai
nearby_diaries: közeli felhasználók naplóbejegyzései
diary_entries:
new:
title: Nincs ilyen naplóbejegyzés
heading: 'Nincs naplóbejegyzés ezzel az azonosítóval: %{id}'
body: Sajnáljuk, de nincs %{id} azonosítójú naplóbejegyzés vagy hozzászólás.
- Kérjük, ellenőrizd a kifejezés helyességét. Az is lehet, hogy rossz linkre
- kattintottál.
+ Ellenőrizd, hogy jól írtad-e. Az is lehet, hogy rossz linkre kattintottál.
diary_entry:
posted_by_html: '%{link_user} bejegyzése %{language_link} nyelven ekkor: %{created}'
updated_at_html: 'Utolsó frissítés: %{updated}'
contact_url_title: A különféle kapcsolatfelvételi csatornák magyarázata
contact: kapcsolat
contact_the_community_html: Nyugodtan keresd fel az OpenStreetMap közösséget
- (%{contact_link}), ha hibás linket vagy más hibát találtál. Kérjük, ne felejtsd
- el feljegyezni a hibás oldal pontos URL-jét.
+ (%{contact_link}), ha hibás linket vagy más hibát találtál. Ne felejtsd el
+ feljegyezni a hibás oldal pontos URL-jét.
bad_request:
title: Rossz kérés
description: Az OpenStreetMap szerveren kért művelet nem érvényes (HTTP 400)
open: Nyitva
resolved: Megoldva
show:
- title: '#%{issue_id} probléma %{status}'
reports:
one: '%{count} bejelentés'
other: '%{count} bejelentés'
helper:
reportable_title:
diary_comment: '%{entry_title} naplóbejegyzés, #%{comment_id} hozzászólás'
- note: 'Megjegyzés #%{note_id}'
+ note: '#%{note_id} jegyzet'
issue_comments:
create:
comment_created: Hozzászólásod sikeresen létrehozva
title_html: '%{link} bejelentése'
missing_params: Nem hozhatsz létre új bejelentést
disclaimer:
- intro: 'Mielőtt elküldöd a bejelentést, kérjük, győződj meg a következőkről:'
+ intro: 'Mielőtt elküldöd a bejelentést, győződj meg a következőkről:'
not_just_mistake: Biztos vagy abban, hogy a probléma nem csupán egy hiba
unable_to_fix: A problémát nem tudod megoldani a sem magad, sem a közösség
tagjainak segítségével
vandal_label: Ez a felhasználó vandál
other_label: Egyéb
note:
- spam_label: A megjegyzés spam
- personal_label: A megjegyzés személyes adatot tartalmaz
- abusive_label: A megjegyzés sértő
+ spam_label: A jegyzet spam
+ personal_label: A jegyzet személyes adatot tartalmaz
+ abusive_label: A jegyzet sértő
other_label: Egyéb
create:
successful_report: Bejelentésedet sikeresen regisztráltuk
%{trace_description} leírású, címke nélküli fájlod
gpx_failure:
hi: Szia %{to_user}!
- failed_to_import: 'nem sikerült GPS nyomkövetési fájlként importálni. Kérjük,
- ellenőrizze, hogy a fájl egy érvényes GPX-fájl vagy egy GPX-fájl(oka)t tartalmazó
- archívum a támogatott formátumban (.tar.gz, .tar.bz2, .tar, .zip, .gpx.gz,
- .gpx.bz2). . Formátum- vagy szintaktikai probléma lehet a fájllal? Itt van
- az importálási hiba:'
+ failed_to_import: 'nem sikerült GPS nyomkövetési fájlként importálni. Ellenőrizd,
+ hogy a fájl egy érvényes GPX-fájl vagy egy GPX-fájl(oka)t tartalmazó archívum
+ a támogatott formátumban (.tar.gz, .tar.bz2, .tar, .zip, .gpx.gz, .gpx.bz2).
+ . Formátum- vagy szintaktikai probléma lehet a fájllal? Itt látható az importálási
+ hiba:'
more_info: 'További információ a GPX importálási hibáiról és azok elkerüléséről
itt található: %{url}.'
more_info_html: 'A GPX importálási hibákról és elkerülésükről további tájékoztatás
click_the_link: Ha ez Te vagy, akkor a jelszó alaphelyzetbe állításához kattints
az alábbi hivatkozásra.
note_comment_notification:
- description: 'OpenStreetMap megjegyzés #%{id}'
+ description: 'OpenStreetMap jegyzet #%{id}'
anonymous: Egy névtelen felhasználó
greeting: Szia!
commented:
details: 'Válaszolj, vagy tudj meg többet a jegyzetről itt: %{url}.'
details_html: 'Válaszolj, vagy tudj meg többet a jegyzetről itt: %{url}.'
changeset_comment_notification:
- description: 'OpenStreetMap módosításkészlet #%{id}'
+ description: 'OpenStreetMap módosításcsomag #%{id}'
hi: Szia %{to_user}!
commented:
- subject_own: '[OpenStreetMap] %{commenter} hozzászólt az egyik módosításkészletedhez'
- subject_other: '[OpenStreetMap] %{commenter} hozzászólt egy módosításkészlethez,
+ subject_own: '[OpenStreetMap] %{commenter} hozzászólt az egyik módosításcsomagodhoz'
+ subject_other: '[OpenStreetMap] %{commenter} hozzászólt egy módosításcsomaghoz,
amely téged is érdekel'
- your_changeset: '%{commenter} hozzászólt az egyik módosításkészletedhez ekkor:
+ your_changeset: '%{commenter} hozzászólt az egyik módosításcsomagodhoz ekkor:
%{time}'
- your_changeset_html: '%{commenter} hozzászólt az egyik módosításkészletedhez
+ your_changeset_html: '%{commenter} hozzászólt az egyik módosításcsomagodhoz
ekkor: %{time}'
commented_changeset: '%{commenter} hozzászólt %{changeset_author} általad
- is figyelt módosításkészletéhez ekkor: %{time}'
+ is figyelt módosításcsomagjához ekkor: %{time}'
commented_changeset_html: '%{commenter} hozzászólt %{changeset_author} általad
- is figyelt módosításkészletéhez ekkor: %{time}'
+ is figyelt módosításcsomagjához ekkor: %{time}'
partial_changeset_with_comment: „%{changeset_comment}” hozzászólással
partial_changeset_with_comment_html: '%{changeset_comment} hozzászólással'
partial_changeset_without_comment: hozzászólás nélkül
- details: 'Válaszolj, vagy tudj meg többet a módosításkészletről itt: %{url}.'
- details_html: 'Válaszolj, vagy tudj meg többet a módosításkészletről itt: %{url}.'
- unsubscribe: 'A módosításkészlet frissüléseiről leiratkozhatsz itt: %{url}.'
- unsubscribe_html: 'A módosításkészlet frissüléseiről leiratkozhatsz itt: %{url}.'
+ details: 'Válaszolj, vagy tudj meg többet a módosításcsomagról itt: %{url}.'
+ details_html: 'Válaszolj, vagy tudj meg többet a módosításcsomagról itt: %{url}.'
+ unsubscribe: 'A módosításcsomag frissüléseiről leiratkozhatsz itt: %{url}.'
+ unsubscribe_html: 'A módosításcsomag frissüléseiről leiratkozhatsz itt: %{url}.'
confirmations:
confirm:
heading: Nézd meg az e-mailjeidet!
failure: Ezzel a tokennel már meg lett erősítve egy e-mail cím.
unknown_token: Ez a megerősítő kód lejárt, vagy nem létezik.
resend_success_flash:
- confirmation_sent: Küldtünk egy új megerősítő megjegyzést a(z) %{email} címre.
+ confirmation_sent: Küldtünk egy új megerősítő üzenetet a(z) %{email} címre.
Amint megerősíted fiókodat, kezdhetsz is térképezni.
whitelist: Ha olyan antispam rendszert használsz, amely visszaigazolási kéréseket
küld, akkor kérjük, ellenőrizd, hogy a(z) %{sender} az engedélyezett listán
adatokat tartalmazza, az állam szerzői joga fenntartva.'
contributors_za_south_africa: Dél-Afrika
contributors_za_ngi: 'Chief Directorate: National Geo-Spatial Information'
+ contributors_gb_credit_html: "%{united_kingdom}: Térképészeti Szolgálat adatai
+ © Királyi szerzői és adatbázisjog \n2010-2023."
contributors_gb_united_kingdom: Egyesült Királyság
contributors_2_html: Ezekről és más, az OpenStreetMap fejlesztésére használt
forrásokról további részletekért tekintsd meg a %{contributors_page_link}
trace_uploaded: A GPX-fájl feltöltődött, és várakozik az adatbázisba való beillesztésre.
Ez általában fél órán belül megtörténik, és kapni fogsz egy e-mailt, amint
elkészült.
- upload_failed: A GPX feltöltése meghiúsult. Kérjük, próbáld meg újra.
- traces_waiting: '%{count} nyomvonalad várakozik feltöltésre. Kérjük, fontold
- meg, hogy megvárod, amíg ezek befejeződnek mielőtt feltöltesz továbbiakat,
- hogy így ne tartsd fel a többi felhasználót a sorban.'
+ upload_failed: A GPX feltöltése meghiúsult. A rendszergazda értesítést kapott
+ a hibáról. Próbáld meg újra.
+ traces_waiting:
+ one: '%{count} nyomvonalad várakozik feltöltésre. Kérjük, várd meg, amíg ezek
+ befejeződnek, mielőtt feltöltesz továbbiakat, hogy ne tartsd fel a többi
+ felhasználót a sorban.'
+ other: '%{count} nyomvonalad várakozik feltöltésre. Kérjük, várd meg, amíg
+ ezek befejeződnek, mielőtt feltöltesz továbbiakat, hogy ne tartsd fel a
+ többi felhasználót a sorban.'
edit:
cancel: Mégse
title: 'Nyomvonal szerkesztése: %{name}'
upload_trace: Nyomvonal feltöltése
all_traces: Minden nyomvonal
my_traces: Saját nyomvonalak
- traces_from: '%{user} nyilvános nyomvonalai'
+ traces_from_html: '%{user} nyilvános nyomvonalai'
remove_tag_filter: Címkeszűrő eltávolítása
destroy:
scheduled_for_deletion: A nyomvonal törlésre kijelölve
paragraph_2: Regisztrálj a közreműködés megkezdéséhez.
welcome: Üdvözlünk az OpenStreetMapen
duplicate_social_email: Ha már rendelkezel OpenStreetMap fiókkal, és külső identitásszolgáltatót
- szeretnél használni, kérjük, jelentkezz be jelszavaddal, és módosítsd fiókod
- beállításait.
+ szeretnél használni, jelentkezz be jelszavaddal, és módosítsd fiókod beállításait.
display name description: A nyilvánosan megjelenített felhasználóneved. A beállításaidban
később megváltoztathatod.
by_signing_up:
reason: 'Blokkolás indoklása:'
revoker: 'Visszavonó:'
block:
- not_revoked: (nincs visszavonva)
show: Megjelenítés
edit: Szerkesztés
page:
creator_name: Készítő
reason: Blokkolás indoklása
status: Állapot
- revoker_name: 'Visszavonta:'
navigation:
all_blocks: Minden blokk
blocks_on_me: Engem sújtó blokkolások
- blocks_on_user: '%{user} blokkolásai'
+ blocks_on_user_html: '%{user} blokkolásai'
blocks_by_me: Általam kiosztott blokkolások
- blocks_by_user: '%{user} blokkolásai'
+ blocks_by_user_html: '%{user} blokkolásai'
block: '#%{id} blokk'
new_block: Újabb blokkolások
user_mutes:
description: Leírás
created_at: Létrehozva ekkor
last_changed: Utoljára módosítva
+ apply: Alkalmaz
+ all: Összes
+ open: Nyitva
+ closed: Lezárva
+ status: Állapot
show:
- title: '%{id} jegyzet'
+ title: 'Jegyzet: %{id}'
description: Leírás
- open_title: '%{note_name} megoldatlan jegyzet'
- closed_title: '%{note_name} megoldott jegyzet'
- hidden_title: '%{note_name} rejtett jegyzet'
+ open_title: 'Megoldatlan jegyzet: %{note_name}'
+ closed_title: 'Megoldott jegyzet: %{note_name}'
+ hidden_title: Elrejtett jegyzet %{note_name}
event_opened_by_html: Létrehozta %{user} %{time_ago}
event_opened_by_anonymous_html: Létrehozta egy névtelen felhasználó %{time_ago}
event_commented_by_html: Hozzászólt %{user} %{time_ago}
report: jegyzet bejelentése
anonymous_warning: Ez a jegyzet névtelen felhasználók hozzászólásait is tartalmazza,
amelyeket független módon kell ellenőrizni.
+ discussion: Megbeszélés
+ subscribe: Feliratkozás
+ unsubscribe: Leiratkozás
hide: Elrejtés
resolve: Megoldás
reactivate: Újraaktiválás
way: Via
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
entry_role_html: Relation %{relation_name} (como %{relation_role})
not_found:
title: Non trovate
open: Aperte
resolved: Resolvite
show:
- title: '%{status} Problema №%{issue_id}'
reports:
one: '%{count} reporto'
other: '%{count} reportos'
upload_trace: Incargar un tracia
all_traces: Tote le tracias
my_traces: Mi tracias
- traces_from: Tracias public de %{user}
+ traces_from_html: Tracias public de %{user}
remove_tag_filter: Remover filtro de etiquettas
destroy:
scheduled_for_deletion: Tracia programmate pro deletion
reason: 'Motivo del blocada:'
revoker: 'Revocator:'
block:
- not_revoked: (non revocate)
show: Monstrar
edit: Modificar
page:
creator_name: Creator
reason: Motivo del blocada
status: Stato
- revoker_name: Revocate per
navigation:
all_blocks: Tote le blocadas
blocks_on_me: Blocadas sur me
- blocks_on_user: Blocadas sur %{user}
+ blocks_on_user_html: Blocadas sur %{user}
blocks_by_me: Blocadas facite per me
- blocks_by_user: Blocadas facite per %{user}
+ blocks_by_user_html: Blocadas facite per %{user}
block: Blocada №%{id}
new_block: Nove blocada
user_mutes:
way: Way/Garis
relation: Relasi
containing_relation:
- entry_html: Relasi %{relation_name}
entry_role_html: Relasi %{relation_name} (as %{relation_role})
not_found:
title: Tidak Ditemukan
other: '%{count} Laporan'
reported_item: Butir dilaporkan
show:
- title: '%{status} Isu #%{issue_id}'
reports:
other: '%{count} laporan'
no_reports: Tidak ada laporan
upload_trace: Unggah jejak GPS
all_traces: Semua Jejak
my_traces: Jejak Saya
- traces_from: Jejak Publik dari %{user}
+ traces_from_html: Jejak Publik dari %{user}
remove_tag_filter: Hapus Filter Tag
destroy:
scheduled_for_deletion: Trek yang dijadwalkan untuk dihapus
reason: 'Alasan untuk blokir:'
revoker: 'Pembatal:'
block:
- not_revoked: (tidak dicabut)
show: Tampilkan
edit: Edit
page:
creator_name: Pencipta
reason: Alasan untuk blokir
status: Status
- revoker_name: Dibatalkan oleh
user_mutes:
index:
title: Pengguna yang Dibisukan
way: Leið
relation: Vensl
containing_relation:
- entry_html: Venslin %{relation_name}
entry_role_html: Venslin %{relation_name} (sem „%{relation_role}“)
not_found:
title: Fannst ekki
other: '%{count} skýrslur'
reported_item: Tilkynnt atriði
show:
- title: '%{status} vandamál #%{issue_id}'
reports:
one: '%{count} skýrsla'
other: '%{count} skýrslur'
upload_trace: Senda inn feril
all_traces: Allar ferlar
my_traces: Ferlarnir mínir
- traces_from: Opinberir ferlar frá %{user}
+ traces_from_html: Opinberir ferlar frá %{user}
remove_tag_filter: Fjarlægja merkjasíu
destroy:
scheduled_for_deletion: Þessum feril verður eitt
reason: 'Ástæða banns:'
revoker: 'Eytt af:'
block:
- not_revoked: (ekki eytt)
show: Sýna
edit: Breyta
page:
creator_name: Búið til af
reason: Ástæða banns
status: Staða
- revoker_name: Eytt af
navigation:
all_blocks: Öll bönn
blocks_on_me: Bönn gegn mér
- blocks_on_user: Bönn gegn %{user}
+ blocks_on_user_html: Bönn gegn %{user}
blocks_by_me: Bönn eftir mig
- blocks_by_user: Bönn eftir %{user}
+ blocks_by_user_html: Bönn eftir %{user}
block: 'Bann #%{id}'
user_mutes:
index:
# Author: Fringio
# Author: Frubino
# Author: Gianfranco
+# Author: HaukweKwor
# Author: Isiond
# Author: JackLantern
# Author: Jlrb+
message: Messaggio
node: Nodo
node_tag: Etichetta del nodo
+ note: Nota
old_node: Vecchio nodo
old_node_tag: Vecchia etichetta del nodo
old_relation: Vecchia relazione
link: https://osmfoundation.org/wiki/Licence/Contributor_Terms/IT
link text: che cos'è questo?
save changes button: Salva modifiche
- delete_account: Elimina account...
+ delete_account: Elimina Utenza...
go_public:
heading: Modifica pubblica
currently_not_public: Attualmente le tue modifiche sono anonime e le persone
way: Percorso
relation: Relazione
containing_relation:
- entry_html: Relazione %{relation_name}
- entry_role_html: Relazione %{relation_name} (come %{relation_role})
+ entry_role_html: '%{relation_name} (come %{relation_role})'
not_found:
title: Non trovato
sorry: 'Impossibile trovare %{type} #%{id}.'
open: Aperto
resolved: Risolto
show:
- title: '%{status} Problema #%{issue_id}'
reports:
one: '%{count} segnalazione'
other: '%{count} segnalazioni'
title: Preferenze
preferred_editor: Editor preferito
preferred_languages: Lingue preferite
+ preferred_site_color_scheme: Schema di colori preferito per il sito web
+ site_color_schemes:
+ auto: Automatico
+ light: Chiaro
+ dark: Scuro
+ map_color_schemes:
+ auto: Automatico
+ light: Chiaro
+ dark: Scuro
edit_preferences: Modifica preferenze
edit:
title: Modifica preferenze
upload_trace: Carica un tracciato
all_traces: Tutti i tracciati
my_traces: I miei tracciati
- traces_from: Tracciati pubblici di %{user}
+ traces_from_html: Tracciati pubblici di %{user}
remove_tag_filter: Rimuovi filtro delle etichette
destroy:
scheduled_for_deletion: Tracciato in attesa di essere eliminato
years:
one: '%{count} anno'
other: '%{count} anni'
+ short:
+ ended: terminato
+ revoked_html: revocato da %{name}
+ active: attivo
+ active_unread: attivo non letto
+ expired_unread: scaduto non letto
+ read_html: letto alle %{time}
+ time_in_future_title: '%{time_absolute}; in %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Blocchi su %{name}
heading_html: Lista dei blocchi su %{name}
reason: 'Motivazione del blocco:'
revoker: 'Revocatore:'
block:
- not_revoked: (non revocato)
show: Mostra
edit: Modifica
page:
display_name: Utente bloccato
creator_name: Autore
reason: Motivo del blocco
+ start: Inizio
+ end: Fine
status: Stato
- revoker_name: Revocato da
navigation:
all_blocks: Tutti i blocchi
blocks_on_me: Blocchi su di me
- blocks_on_user: Blocchi su %{user}
+ blocks_on_user_html: Blocchi su %{user}
blocks_by_me: Blocchi applicati da me
- blocks_by_user: Blocchi imposti da %{user}
+ blocks_by_user_html: Blocchi imposti da %{user}
block: 'Blocco #%{id}'
new_block: Nuovo blocco
user_mutes:
description: Descrizione
created_at: Creata il
last_changed: Modificata per l'ultima volta
+ apply: Applica
+ all: Tutto
+ open: Aperto
+ closed: Chiuso
+ status: Stato
show:
title: 'Nota: %{id}'
description: Descrizione
report: segnalare questa nota
anonymous_warning: Questa nota include commenti da parte di utenti anonimi che
devono essere verificati in modo indipendente.
+ discussion: Discussione
+ subscribe: Iscriviti
+ unsubscribe: Annulla iscrizione
hide: Nascondi
resolve: Risolta
reactivate: Riattiva
way: ウェイ
relation: リレーション
containing_relation:
- entry_html: リレーション %{relation_name}
entry_role_html: リレーション %{relation_name} (%{relation_role} として)
not_found:
title: 見つかりません
open: 開く
resolved: 解決済
show:
- title: '%{status} 問題 #%{issue_id}'
reports:
other: '%{count}件のレポート'
no_reports: 報告はありません
upload_trace: トレースをアップロード
all_traces: 全てのトレース
my_traces: 自分のトレース
- traces_from: '%{user}さんによる公開GPSトレース'
+ traces_from_html: '%{user}さんによる公開GPSトレース'
remove_tag_filter: タグフィルターの削除
destroy:
scheduled_for_deletion: トレースの削除準備を行いました
reason: 'ブロックの理由:'
revoker: '取消:'
block:
- not_revoked: (取り消されていません)
show: 表示する
edit: 編集
page:
creator_name: 作成者
reason: ブロックされた理由
status: 状態
- revoker_name: 取り消し者
user_mutes:
index:
title: ミュートした利用者
way: გზა
relation: ურთიერთობა
containing_relation:
- entry_html: ურთიერთობა %{relation_name}
entry_role_html: ურთიერთობა %{relation_name} (როგორც %{relation_role})
not_found:
sorry: 'სამწუხაროდ, %{type} #%{id} ვერ მოიძებნა.'
reason: 'დაბლოკვის მიზეზი:'
revoker: 'განმბლოკველი:'
block:
- not_revoked: (არ არის განბლოკილი)
show: ჩვენება
edit: რედაქტირება
page:
creator_name: შემქმნელი
reason: დაბლოკვის მიზეზი
status: სტატუსი
- revoker_name: განბლოკილია
notes:
index:
creator: შემქმნელი
way: Abrid
relation: Assaɣ
containing_relation:
- entry_html: Assaɣ %{relation_name}
entry_role_html: Assaɣ %{relation_name} (am %{relation_role})
not_found:
sorry: 'Suref-aɣ, %{type} #%{id} ulac-it.'
creator_name: Amernay
reason: Taɣzint n usewḥel
status: Addad
- revoker_name: Isewḥel-it
notes:
index:
heading: Tizmilin n %{user}
node: Нүкте
way: Сызық
relation: Қатынас
- containing_relation:
- entry_html: Қатынас %{relation_name}
not_found:
title: Табылмады
type:
way: ផ្លូវ
relation: ទំនាក់ទំនង
containing_relation:
- entry_html: ទំនាក់ទំនង %{relation_name}
entry_role_html: ទំនាក់ទំនង %{relation_name} (ជា %{relation_role})
not_found:
sorry: សូមទោស រកមិនឃើញ %{type}%{id} ទេ។
type:
way: ರಸ್ತೆ
relation: ಸಂಬಂಧ
- containing_relation:
- entry_html: ಸಂಬಂಧ %{relation_name}
not_found:
title: ಸಿಗಲಿಲ್ಲ
sorry: 'ಕ್ಷಮಿಸಿ, %{type} #%{id} ಸಿಗುತ್ತಿಲ್ಲ.'
way: 길
relation: 관계
containing_relation:
- entry_html: 관계 %{relation_name}
entry_role_html: (%{relation_role}로서) 관계 %{relation_name}
not_found:
title: 찾을 수 없음
doorkeeper:
errors:
messages:
+ account_selection_required: 인가 서버에는 최종 사용자의 계정 선택이 필요합니다
consent_required: 인가 서버에는 최종 사용자의 동의가 필요합니다
interaction_required: 인가 서버에는 최종 사용자의 소통이 필요합니다
login_required: 인가 서버에는 최종 사용자의 인증이 필요합니다
알려주십시오. 요청의 정확한 URL을 기록해 두십시오.
bad_request:
title: 잘못된 요청
+ description: 오픈스트리트맵 서버에서 요청하신 작업이 유효하지 않습니다 (HTTP 400)
forbidden:
title: 접근 거부됨
description: 오픈스트리트맵 서버에 요청한 이 작업은 관리자만 사용할 수 있습니다(HTTP 403).
lawyer: 변호사 사무실
newspaper: 신문사
ngo: 비정부 기구 사무실
+ religion: 종교 사무소
research: 연구실
tax_advisor: 세무사
telecommunication: 통신 회사 사옥
massage: 안마시술소
medical_supply: 의료용품 공급점
mobile_phone: 휴대폰 상점
+ money_lender: 대금업자
motorcycle: 이륜자동차(오토바이) 상점
motorcycle_repair: 오토바이 수리점
music: 음반 가게
page:
user_not_found: 사용자가 존재하지 않습니다
issues_not_found: 해당 이슈를 찾을 수 없습니다
+ reported_user: 신고된 사용자
status: 상태
reports: 보고서
last_updated: 최근 업데이트
reports_count:
other: 신고 %{count}건
reported_item: 항목 신고함
+ states:
+ ignored: 무시됨
+ open: 열림
+ resolved: 해결됨
show:
- title: '%{status} 문제 #%{issue_id}'
reports:
other: 신고 %{count}건
no_reports: 보고서 없음
title: 내 환경 설정
preferred_editor: 선호하는 편집기
preferred_languages: 선호하는 언어
+ preferred_site_color_scheme: 선호하는 웹사이트 색상 구성표
+ site_color_schemes:
+ auto: 자동
+ light: 밝음
+ dark: 어두움
+ preferred_map_color_scheme: 선호하는 지도 색상 구성표
+ map_color_schemes:
+ auto: 자동
+ light: 밝음
+ dark: 어두움
edit_preferences: 환경 설정 편집
edit:
title: 환경 설정 편집
upload_trace: 궤적 올리기
all_traces: 모든 궤적
my_traces: 내 발자취
- traces_from: '%{user}님의 공개 GPS 궤적'
+ traces_from_html: '%{user}님의 공개 GPS 궤적'
remove_tag_filter: 태그 필터 제거
destroy:
scheduled_for_deletion: 삭제 계획중인 궤적
reason: '차단 이유:'
revoker: '해제:'
block:
- not_revoked: (철회하지 않음)
show: 보기
edit: 편집
page:
creator_name: 만든이
reason: 차단 이유
status: 상태
- revoker_name: 해제자
navigation:
all_blocks: 모든 차단
blocks_on_me: 나의 차단내역
- blocks_on_user: '%{user}님의 차단내역'
+ blocks_on_user_html: '%{user}님의 차단내역'
blocks_by_me: 내가 차단한 내역
- blocks_by_user: '%{user}님이 차단한 내역'
+ blocks_by_user_html: '%{user}님이 차단한 내역'
block: '#%{id} 차단'
new_block: 최근 차단
user_mutes:
description: 설명
created_at: 만든 날짜
last_changed: 마지막으로 바뀜
+ apply: 적용
+ all: 모두
+ open: 열림
+ closed: 닫힘
+ status: 상태
show:
title: '참고: %{id}'
description: 설명
event_hidden_by_html: '%{time_ago} %{user}님이 숨김 처리함'
report: 이 참고 신고
anonymous_warning: 이 참고는 익명 사용자의 댓글을 포함하므로 별도로 확인해야 합니다.
+ discussion: 토론
+ subscribe: 구독
+ unsubscribe: 구독 해지
hide: 숨기기
resolve: 해결
reactivate: 다시 활성화
way: Rê
relation: Eleqe
containing_relation:
- entry_html: Eleqe %{relation_name}
entry_role_html: Eleqe %{relation_name} (wekî %{relation_role})
not_found:
title: Nehate dîtin
other: '%{count} Rapor'
reported_item: Hêmanê Raporkirî
show:
- title: '%{status} Pirsgirêk #%{issue_id}'
reports:
one: '%{count} rapor'
other: '%{count} raporan'
upload_trace: Şopek GPSê bar bike
all_traces: Temamê Şopan
my_traces: Şopên min
- traces_from: Şopên Giştî ji %{user}
+ traces_from_html: Şopên Giştî ji %{user}
remove_tag_filter: Parzûna etîketê rake
destroy:
scheduled_for_deletion: Şop ji bo jêbirinê hate plankirin
reason: 'Sedema astengkirinê:'
revoker: Yê ku rakiriyeː
block:
- not_revoked: (ne betalkirî)
show: Nîşan bide
edit: Biguherîne
page:
creator_name: Çêker
reason: Sedema astengkirinê
status: Rewş
- revoker_name: Yê ku betal kiriyeː
notes:
index:
title: Notên ku ji aliyê %{user} ve hatine şandin an jî şirovekirin
way: Wee
relation: Relatioun
containing_relation:
- entry_html: Relatioun %{relation_name}
- entry_role_html: Relatioun %{relation_name} (als %{relation_role})
+ entry_role_html: '%{relation_name} (als %{relation_role})'
not_found:
title: Net fonnt
sorry: Pardon, den %{type}#%{id}, konnt net fonnt ginn.
open: Oppen
resolved: Geléist
show:
- title: '%{status} Problem Nr. %{issue_id}'
reports:
one: '%{count} Meldung'
other: '%{count} Meldungen'
title: Meng Benotzerastellungen
preferred_editor: Liblingseditor
preferred_languages: Léifste Sproochen
+ site_color_schemes:
+ auto: Automatesch
+ light: Hell
+ dark: Däischter
+ map_color_schemes:
+ auto: Automatesch
+ light: Hell
+ dark: Däischter
edit_preferences: Benotzerastellungen änneren
edit:
title: Benotzerastellungen änneren
wiki_page: Wiki-Säit
all_traces: All Spuren
my_traces: Meng Spueren
- traces_from: Ëffentlech Spuere vum %{user}
+ traces_from_html: Ëffentlech Spuere vum %{user}
remove_tag_filter: Tag-Filter ewechhuelen
destroy:
scheduled_for_deletion: Fir d'Läsche bestëmmt Spuer
years:
one: '%{count} Joer'
other: '%{count} Joren'
+ short:
+ active: aktiv
blocks_on:
title: Späre vum %{name}
empty: '%{name} gouf bis elo nach net gespaart.'
edit: Änneren
reason: 'Grond fir d''Spär:'
block:
- not_revoked: (net opgehuewen)
show: Weisen
edit: Änneren
page:
display_name: Gespaarte Benotzer
reason: Grond fir d'Spär
status: Status
- revoker_name: Opgehuewe vum
user_mutes:
index:
table:
no_notes: Keng Notizen
description: Beschreiwung
last_changed: Lescht Ännerung
+ status: Status
show:
title: 'Notiz: %{id}'
description: Beschreiwung
closed_title: 'Geléisten Hiweis #%{note_name}'
hidden_title: Verstoppt Notiz N° %{note_name}
report: Dësen Hiweis mellen
+ discussion: Diskussioun
+ subscribe: Abonéieren
+ unsubscribe: Ofbestellen
hide: Verstoppen
resolve: Léisen
reactivate: Reaktivéieren
way: Kelias
relation: Ryšys
containing_relation:
- entry_html: Ryšys %{relation_name}
entry_role_html: Ryšys %{relation_name} (kaip %{relation_role})
not_found:
title: Nerasta
open: Atidaryta
resolved: Išspręsta
show:
- title: '%{status} Problema #%{issue_id}'
reports:
one: '{%count} pranešimas'
few: '%{count} pranešimai'
upload_trace: Įkelti pėdsaką
all_traces: Visi pėdsakai
my_traces: Mano GPS pėdsakai
- traces_from: Vieši naudotojo %{user} pėdsakai
+ traces_from_html: Vieši naudotojo %{user} pėdsakai
remove_tag_filter: Pašalinti žymų filtrą
destroy:
scheduled_for_deletion: Trasa, numatyta ištrinimui
reason: 'Blokavimo priežastis:'
revoker: 'Atšaukėjas:'
block:
- not_revoked: (neatšauktas)
show: Rodyti
edit: Keisti
page:
creator_name: Kūrėjas
reason: Blokavimo priežastis
status: Būsena
- revoker_name: Atšaukė
navigation:
all_blocks: Visi blokavimai
blocks_on_me: Mano blokavimai
- blocks_on_user: '%{user} blokavimai'
+ blocks_on_user_html: '%{user} blokavimai'
blocks_by_me: Mano sukurti blokavimai
- blocks_by_user: '%{user} sukurti blokavimai'
+ blocks_by_user_html: '%{user} sukurti blokavimai'
block: 'Blokavimas #%{id}'
new_block: Naujas blokavimas
user_mutes:
way: Līnija
relation: Relācija
containing_relation:
- entry_html: Relācija %{relation_name}
entry_role_html: Relācija %{relation_name} (kā %{relation_role})
not_found:
sorry: 'Atvainojiet, %{type} ar id #%{id} nevarējām atrast.'
reason: 'Bloķēšanas iemesls:'
revoker: 'Atsaucējs:'
block:
- not_revoked: (nav atsaukts)
show: Rādīt
edit: Labot
page:
creator_name: Autors
reason: Iemesls liegumam
status: Statuss
- revoker_name: Atsaucis
notes:
index:
title: Piezīmes, kuras veidojis vai komentējis %{user}
message: Порака
node: Јазол
node_tag: Ознака на јазол
+ note: Напомена
old_node: Стар јазол
old_node_tag: Стара ознака за јазол
old_relation: Стар однос
way: Пат
relation: Однос
containing_relation:
- entry_html: Однос %{relation_name}
- entry_role_html: Однос %{relation_name} (како %{relation_role})
+ entry_role_html: '%{relation_name} (како %{relation_role})'
not_found:
title: Не е најдено
sorry: За жал, не да најдам %{type} со бр. %{id}.
open: Отворено
resolved: Решено
show:
- title: '%{status} Проблем бр. #%{issue_id}'
+ title:
+ open: Отворен проблем бр. %{issue_id}
+ ignored: Занемарен проблем бр. %{issue_id}
+ resolved: Решен проблем бр. %{issue_id}
reports:
one: '%{count} пријава'
other: '%{count} пријави'
title: Мои нагодувања
preferred_editor: Претпочитан уредник
preferred_languages: Претпочитани јазици
+ preferred_site_color_scheme: Претпочитана бојна шема на мрежното место
+ site_color_schemes:
+ auto: Автоматски
+ light: Светло
+ dark: Темно
+ preferred_map_color_scheme: Претпочитана бојна шема на картите
+ map_color_schemes:
+ auto: Автоматски
+ light: Светло
+ dark: Темно
edit_preferences: Измени нагодувања
edit:
title: Измени нагодувања
upload_trace: Подигни трага
all_traces: Сите траги
my_traces: Мои траги
- traces_from: Јавни траги од %{user}
+ traces_from_html: Јавни траги од %{user}
remove_tag_filter: Отстрани филтер за ознаки
destroy:
scheduled_for_deletion: Трагата е закажана за бришење
not_revoke_admin_current_user: Не можам да му ја одземам администраторската
улога на тековниот корисник.
grant:
- are_you_sure: Дали сигурно сакае да му ја доделите улогата `%{role}' на корисникот
- `%{name}'?
+ are_you_sure: Дали сигурно сакае да му ја доделите улогата „%{role}“ на корисникот
+ „%{name}“?
revoke:
- are_you_sure: Дали сигурно сакате да го лишите корисникот `%{name}' од улогата
- `%{role}' ?
+ are_you_sure: Дали сигурно сакате да го лишите корисникот „%{name}“ од улогата
+ „%{role}“?
user_blocks:
model:
non_moderator_update: Морате да бидете модератор за да правите или подновувате
years:
one: '%{count} година'
other: '%{count} години'
+ short:
+ ended: завршен
+ revoked_html: отповикано од %{name}
+ active: активен
+ active_unread: активен непрочитан
+ expired_unread: истечен непрочитан
+ read_html: порочитај во %{time}
+ time_in_future_title: '%{time_absolute}; за %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Блокови за %{name}
heading_html: Список на блокови за %{name}
reason: 'Причина за блокирање:'
revoker: 'Поништувач:'
block:
- not_revoked: (не се поништува)
show: Прикажи
edit: Уреди
page:
display_name: Блокиран корисник
creator_name: Создавач
reason: Причина за блокирање
+ start: Почеток
+ end: Крај
status: Статус
- revoker_name: 'Поништил:'
navigation:
all_blocks: Сите блокови
blocks_on_me: Добиени блокови
- blocks_on_user: Блокови за %{user}
+ blocks_on_user_html: Блокови за %{user}
blocks_by_me: Извршени болокови
- blocks_by_user: Блокови од %{user}
+ blocks_by_user_html: Блокови од %{user}
block: Блок бр. %{id}
new_block: Нов блок
user_mutes:
description: Опис
created_at: Создадена
last_changed: Изменета
+ apply: Примени
+ all: Сите
+ open: Отворено
+ closed: Затворено
+ status: Статус
show:
title: 'Белешка: %{id}'
description: Опис
report: пријави ја белешкава
anonymous_warning: Оваа белешка има коментари од анонимни корисници што треба
независно да се проверат.
+ discussion: Разговор
+ subscribe: Претплати се
+ unsubscribe: Отпиши се
hide: Скриј
resolve: Решена
reactivate: Преактивирај
way: Кале
relation: Релацие
containing_relation:
- entry_html: Релация %{relation_name}
entry_role_html: Релация %{relation_name} (ын ролул %{relation_role})
not_found:
type:
way: मार्ग
relation: संबंध
containing_relation:
- entry_html: संबंध %{relation_name}
entry_role_html: संबंध %{relation_name} (%{relation_role} म्हणून)
not_found:
sorry: 'क्षमा असावी, %{type} #%{id} सापडले नाही.'
way: Jalan
relation: Hubungan
containing_relation:
- entry_html: Hubungan %{relation_name}
entry_role_html: Hubungan %{relation_name} (sebagai %{relation_role})
not_found:
title: Tidak Dijumpai
reason: 'Sebab sekatan:'
revoker: 'Penarik balik:'
block:
- not_revoked: (tidak ditarik balik)
show: Tunjukkan
edit: Sunting
page:
creator_name: Pembuat
reason: Sebab sekatan
status: Status
- revoker_name: Ditarik balik oleh
user_mutes:
index:
title: Pengguna yang Diredamkan
way: Linje
relation: Relasjon
containing_relation:
- entry_html: Relasjon %{relation_name}
entry_role_html: Relasjon %{relation_name} (som %{relation_role})
not_found:
title: Ikke funnet
other: '%{count} rapporter'
reported_item: Rapportert element
show:
- title: '%{status} Sak #%{issue_id}'
reports:
one: '%{count} rapport'
other: '%{count} rapporter'
reason: 'Årsak for blokkering:'
revoker: 'Tilbakekaller:'
block:
- not_revoked: (ikke tilbakekalt)
show: Vis
edit: Rediger
page:
creator_name: Opprettet av
reason: Årsak for blokkering
status: Status
- revoker_name: Tilbakekalt av
notes:
index:
title: Merknader sendt inn eller kommentert på av %{user}
way: बाटो
relation: सम्बन्ध
containing_relation:
- entry_html: सम्बन्ध %{relation_name}
entry_role_html: सम्बन्ध %{relation_name} (as %{relation_role})
not_found:
title: फेला परेन
message: Bericht
node: Knooppunt
node_tag: Knooppuntlabel
+ note: Opmerking
old_node: Oud knooppunt
old_node_tag: Oud knooppuntlabel
old_relation: Oude relatie
way: Weg
relation: Relatie
containing_relation:
- entry_html: Relatie %{relation_name}
- entry_role_html: Relatie %{relation_name} (als %{relation_role})
+ entry_role_html: '%{relation_name} (als %{relation_role})'
not_found:
title: Kon niet gevonden worden
sorry: 'De %{type} #%{id} kon helaas niet worden gevonden.'
introduction: Klik op de kaart om nabije objecten te vinden.
nearby: Objecten in de buurt
enclosing: Omsluitende objecten
+ nodes:
+ timeout:
+ sorry: Het ophalen van de gegevens voor het ID %{id} duurde te lang.
old_nodes:
not_found:
sorry: 'Sorry, knooppunt #%{id} versie %{version} kon niet worden gevonden.'
+ timeout:
+ sorry: Het ophalen van de gegevens voor knooppunt met het ID %{id} duurde te
+ lang.
+ ways:
+ timeout:
+ sorry: Het ophalen van de gegevens voor de weg met het ID %{id} duurde te lang.
old_ways:
not_found:
sorry: 'Sorry, weg #%{id} versie %{version} niet kon worden gevonden.'
+ timeout:
+ sorry: Het ophalen van de geschiedenis voor de weg met het ID %{id} duurde te
+ lang.
+ relations:
+ timeout:
+ sorry: Het ophalen van de relatie met het ID %{id} duurde te lang.
old_relations:
not_found:
sorry: 'Sorry, relatie #%{id} versie %{version} kon niet worden gevonden.'
+ timeout:
+ sorry: Het ophalen van de geschiedenis voor de relatie met het ID %{id} duurde
+ te lang.
changeset_comments:
feeds:
comment:
latest_edit_html: 'Laatste bewerking (%{ago}):'
popup:
your location: Uw locatie
- nearby mapper: Dichtbijzijnde mapper
+ nearby mapper: Nabije kaartmaker
friend: Vriend
show:
title: Mijn dashboard
edit_your_profile: Pas uw profiel aan
my friends: Mijn vrienden
no friends: U hebt nog geen vrienden toegevoegd.
- nearby users: Andere dichtbijzijnde gebruikers
+ nearby users: Andere nabije gebruikers
no nearby users: Er zijn nog geen andere gebruikers die hebben opgegeven in
de buurt te mappen.
friends_changesets: wijzigingensets van vrienden
open: Open
resolved: Opgelost
show:
- title: '%{status} Probleem #%{issue_id}'
+ title:
+ open: 'Open probleem #%{issue_id}'
+ ignored: 'Genegeerd probleem #%{issue_id}'
+ resolved: 'Opgelost probleem #%{issue_id}'
reports:
one: '%{count} rapport'
other: '%{count} rapporten'
other: '%{count} oude berichten'
no_messages_yet_html: U hebt nog geen berichten. Waarom legt u geen contact
met %{people_mapping_nearby_link}?
- people_mapping_nearby: dichtbijzijnde mappers
+ people_mapping_nearby: nabije kaartmakers
messages_table:
from: Van
to: Aan
other: U hebt %{count} verzonden berichten
no_sent_messages_html: U hebt nog geen berichten verzonden. Waarom legt u geen
contact met %{people_mapping_nearby_link}?
- people_mapping_nearby: dichtbijzijnde mappers
+ people_mapping_nearby: nabije kaartmakers
muted:
title: Gedempte berichten
messages:
title: Mijn voorkeuren
preferred_editor: Voorkeursprogramma voor kaartbewerking
preferred_languages: Voorkeurstalen
+ preferred_site_color_scheme: Het gewenste kleurenschema voor de website
+ site_color_schemes:
+ auto: Automatisch
+ light: Licht
+ dark: Donker
+ preferred_map_color_scheme: Het gewenste kleurenschema voor de kaart
+ map_color_schemes:
+ auto: Automatisch
+ light: Licht
+ dark: Donker
edit_preferences: Voorkeuren instellen
edit:
title: Voorkeuren instellen
heading_html: '%{copyright}OpenStreetMap- %{br} bijdragers'
used_by_html: '%{name} levert kaartgegevens aan duizenden websites, mobiele
apps en hardware-apparaten'
- lede_text: OpenStreetMap wordt gemaakt door een gemeenschap van mappers die
- gegevens over wegen, paden, cafés, treinstations en nog veel meer, over de
- hele wereld bijdragen en onderhouden.
+ lede_text: OpenStreetMap wordt gemaakt door een gemeenschap van kaartmakers
+ die gegevens over wegen, paden, cafés, treinstations en nog veel meer, over
+ de hele wereld bijdragen en onderhouden.
local_knowledge_title: Lokale kennis
local_knowledge_html: OpenStreetMap legt de nadruk op lokale kennis. Bijdragers
gebruiken luchtfoto's, gps-apparaten en low-tech veldkaarten om te controleren
U kunt teruggaan naar de %{native_link} van deze pagina, of u kunt ophouden
met lezen over de auteursrechten en %{mapping_link}.
native_link: Nederlandstalige versie
- mapping_link: begin met mappen
+ mapping_link: beginnen met mappen
legal_babble:
introduction_1_html: |-
OpenStreetMap%{registered_trademark_link} is %{open_data}, in licentie gegeven onder de
instructions_1_html: |-
Klik op %{note_icon} of hetzelfde pictogram op de kaartweergave.
Er wordt een markering toegevoegd aan de kaart die u kunt verplaatsen
- door haar te verslepen. Voeg uw bericht toe, klik op "opslaan" en andere mappers zullen uw melding nagaan.
+ door deze te verslepen. Voeg uw bericht toe en klik op “Opslaan”, dan zullen andere kaartmakers uw melding nagaan.
other_concerns:
title: Andere aangelegenheden
concerns_html: |-
hospital: Ziekenhuis
building: Belangrijk gebouw
station: Spoorwegstation
+ railway_halt: Spoorweghalte
+ subway_station: Metrostation
+ tram_stop: Tramhalte
summit: Top
peak: Piek
tunnel: Tunnel
toevoegen.
para_2_html: |-
Ga naar %{map_link} en klik op het opmerkingssymbool:
- %{note_icon}. Er wordt een markering toegevoegd aan de kaart die u kunt verplaatsen door te slepen. Voeg uw bericht toe en klik dan op Opslaan, zodat andere mappers het kunnen onderzoeken.
+ %{note_icon}. Er wordt een markering toegevoegd aan de kaart die u kunt verplaatsen door te slepen. Voeg uw bericht toe en klik op “Opslaan”, dan zullen andere kaartmakers uw melding nagaan.
the_map: de kaart
communities:
title: Gemeenschappen
local_chapters:
title: Lokale Afdelingen
about_text: |-
- Lokale Afdelingen zijn groepen op land- of regioniveau die de formele stap hebben gezet om juridische entiteiten zonder winstoogmerk op te richten. Ze vertegenwoordigen de kaart en kaartenmakers van het gebied wanneer te maken heeft met de lokale overheid, het bedrijfsleven en de media. Ze hebben ook een affiliatie
- met de OpenStreetMap Foundation (OSMF), waardoor ze een link hebben met de wettelijke en auteursrechtelijke-overheidsinstantie.
+ Lokale Afdelingen zijn groepen op land- of regioniveau die de formele stap hebben gezet om juridische entiteiten zonder winstoogmerk op te richten. Ze vertegenwoordigen de kaart en kaartmakers van het gebied bij het omgaan met de lokale overheid, het bedrijfsleven en de media. Ze hebben ook een affiliatie
+ met de OpenStreetMap Foundation (OSMF), waardoor ze een link hebben met de wettelijke en auteursrechtelijke overheidsinstantie.
list_text: 'De volgende gemeenschappen zijn formeel opgericht als Lokale Afdelingen:'
other_groups:
title: Andere Groepen
upload_trace: Traject uploaden
all_traces: Alle trajecten
my_traces: Mijn trajecten
- traces_from: Openbare trajecten van %{user}
+ traces_from_html: Openbare trajecten van %{user}
remove_tag_filter: Labelfilter verwijderen
destroy:
scheduled_for_deletion: Traject staat op de lijst voor verwijdering
readable_summary: voor mensen leesbare samenvatting
informal_translations: informele vertalingen
continue: Doorgaan
+ cancel: Annuleren
you need to accept or decline: Lees de nieuwe Bijdragersvoorwaarden en besluit
daarna deze te accepteren of te verwerpen voordat u door kunt gaan.
legale_select: 'Selecteer het land waarin u woont:'
notes: Kaartopmerkingen
remove as friend: Vriend verwijderen
add as friend: Vriend toevoegen
- mapper since: 'Mapper sinds:'
+ mapper since: 'Kaartmaker sinds:'
last map edit: 'Recentste bewerking:'
no activity yet: Nog geen activiteit
uid: 'Gebruikers-ID:'
years:
one: '%{count} jaar'
other: '%{count} jaar'
+ short:
+ ended: beëindigd
+ revoked_html: ingetrokken door %{name}
+ active: actief
+ active_unread: actief ongelezen
+ expired_unread: verlopen ongelezen
+ read_html: gelezen op %{time}
+ time_in_future_title: '%{time_absolute}; in %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Blokkades voor %{name}
heading_html: Lijst met blokkades voor %{name}
reason: 'Reden voor blokkade:'
revoker: 'Ingetrokken door:'
block:
- not_revoked: (niet ingetrokken)
show: Weergeven
edit: Bewerken
page:
display_name: Geblokkeerde gebruiker
creator_name: Auteur
reason: Reden voor blokkade
+ start: Begin
+ end: Einde
status: Status
- revoker_name: Ingetrokken door
navigation:
all_blocks: Alle blokkades
blocks_on_me: Blokkades voor u
- blocks_on_user: Blokkades voor %{user}
+ blocks_on_user_html: Blokkades voor %{user}
blocks_by_me: Blokkades door u
- blocks_by_user: Blokkades door %{user}
+ blocks_by_user_html: Blokkades door %{user}
block: 'Blokkade #%{id}'
new_block: Nieuwe blokkade
user_mutes:
description: Beschrijving
created_at: Aangemaakt op
last_changed: Laatste wijziging
+ apply: Toepassen
+ all: Alle
+ open: Open
+ closed: Gesloten
+ status: Status
show:
title: 'Opmerking: %{id}'
description: Beschrijving
coordinates_html: '%{latitude}; %{longitude}'
anonymous_warning: In deze opmerking staan reacties van anonieme gebruikers
die moeten worden gecontroleerd.
+ discussion: Overleg
+ subscribe: Abonneren
+ unsubscribe: Uitschrijven
hide: Verbergen
resolve: Oplossen
reactivate: Opnieuw activeren
%{disappear_in}.
new:
title: Nieuwe opmerking
- intro: Een fout gezien of ontbreekt er iets? Laat het andere mappers weten zodat
- wij het kunnen oplossen. Verplaats de markering naar de correcte positie en
- beschrijf het probleem.
+ intro: Een fout gezien? Ontbreekt er iets? Laat het andere kaartmakers weten
+ zodat wij het kunnen verbeteren. Verplaats de markering naar de juiste positie
+ en beschrijf het probleem.
anonymous_warning_html: U bent niet aangemeld. Als u updates van uw aantekening
wilt ontvangen, kunt u %{log_in} of %{sign_up}.
anonymous_warning_log_in: aanmelden
add: Opmerking toevoegen
notes_paging_nav:
showing_page: Pagina %{page}
+ next: Volgende
+ previous: Vorige
javascripts:
close: Sluiten
share:
empty: Geen weer te geven redigeringen.
heading: Lijst met redigeringen
title: Lijst met redigeringen
+ new: Nieuwe redactie
new:
heading: Gegevens voor nieuwe redigering invoeren
title: Aanmaak van een nieuwe redigering
way: Veg
relation: Relasjon
containing_relation:
- entry_html: Relasjon %{relation_name}
entry_role_html: Relasjon %{relation_name} (som %{relation_role})
not_found:
title: Ikkje funne
other: '%{count} meldingar'
reported_item: Meld objekt
show:
- title: '%{status} Sak #%{issue_id}'
reports:
one: '%{count} melding'
other: '%{count} meldingar'
reason: 'Årsak for blokkering:'
revoker: 'Tilbakekaller:'
block:
- not_revoked: (ikkje tilbakekalt)
show: Vis
edit: Rediger
page:
creator_name: Oppretta av
reason: Årsak for blokkering
status: Status
- revoker_name: Tilbakekalt av
notes:
index:
heading: '%{user} sine merknadar'
way: ߛߌߟߊ
relation: ߕߍߓߊ߯ߦߊ
containing_relation:
- entry_html: ߕߍߓߊ߯ߦߊ %{relation_name}
entry_role_html: ߕߍߓߊ߯ߦߊ %{relation_role} %{relation_name} ߘߌ߫
not_found:
title: ߡߊ߫ ߛߐ߬ߘߐ߲߫
last_updated: ߟߏ߲ߘߐߦߊߟߌ ߞߐ߯ߟߕߊ
reported_item: ߝߛߌ߬ ߟߊߞߏߝߐߣߍ߲
show:
- title: '%{status} ߝߌ߬ߛߌ #%{issue_id}'
report_created_at_html: ߞߏߝߐߟߌ߫ ߝߟߐ ߞߍ߫ ߘߊ߫ %{datetime}
last_resolved_at_html: ߢߊߓߐߟߌ߫ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ %{datetime}
last_updated_at_html: ߊ߬ ߟߊߛߋ߫ ߟߊߓߊ߲ ߞߍ߫ ߘߊ߫ ߘߊߞߎ߲ ߘߐ߫ %{datetime} ߊ߬ ߣߌ߫ %{displayname}
upload_trace: ߜߋ߬ߙߋ ߘߏ߫ ߟߊߦߟߍ߬
all_traces: ߜߋ߬ߙߋ ߟߎ߬ ߓߍ߯
my_traces: ߒ ߝߏ߲߬ߝߏ߲ ߠߎ߬
- traces_from: ߜߍߘߐ߫ ߜߙߋ ߟߎ߬ ߞߊ߬ ߝߘߊ߫ %{user} ߟߊ߫
+ traces_from_html: ߜߍߘߐ߫ ߜߙߋ ߟߎ߬ ߞߊ߬ ߝߘߊ߫ %{user} ߟߊ߫
destroy:
scheduled_for_deletion: ߜߋ߬ߙߋ ߟߐ߯ߟߊߟߌ ߖߏ߰ߛߌ߬ ߞߊ߲ߡߊ߬
offline_warning:
way: Linha
relation: Relacion
containing_relation:
- entry_html: Relacion %{relation_name}
entry_role_html: Relacion %{relation_name} (per %{relation_role})
not_found:
title: S'es pas trobat
other: '%{count} rapòrts'
reported_item: Element raportat
show:
- title: '%{status} Incidéncia #%{issue_id}'
reports:
zero: Ges de rapòrt
one: 1 rapport
upload_trace: Mandar una traça
all_traces: Totei lei traças
my_traces: Mei traças GPS
- traces_from: Traças GPS publicas de %{user}
+ traces_from_html: Traças GPS publicas de %{user}
remove_tag_filter: Elimina lo filtre d'etiquetas
destroy:
scheduled_for_deletion: Pista prevista per la supression
reason: 'Motiu del blocatge :'
revoker: 'Revocador :'
block:
- not_revoked: (pas revocat)
show: Mostrar
edit: Modificar
page:
creator_name: Creator
reason: Motiu del blocatge
status: Estatut
- revoker_name: Revocat per
notes:
index:
title: Nòtas somesas o comentadas per %{user}
way: ਰਾਹ
relation: ਸਬੰਧ
containing_relation:
- entry_html: ਸਬੰਧ %{relation_name}
entry_role_html: ਸਬੰਧ %{relation_name} (%{relation_role} ਵਜੋਂ)
not_found:
title: ਨਹੀਂ ਲੱਭਿਆ
open: ਖੋਲ੍ਹੋ
resolved: ਹੱਲ-ਕੱਢਿਆ ਗਿਆ
show:
- title: '%{status} ਮੁੱਦਾ #%{issue_id}'
+ title:
+ open: 'ਮੁੱਦਾ ਖੋਲ੍ਹੋ #%{issue_id}'
+ ignored: 'ਮੁੱਦਾ ਨਜ਼ਰਅੰਦਾਜ਼ ਕੀਤਾ #%{issue_id}'
+ resolved: 'ਮੁੱਦਾ ਹੱਲ ਕੀਤਾ ਗਿਆ #%{issue_id}'
no_reports: ਕੋਈ ਇਤਲਾਹ ਨਹੀਂ
report_created_at_html: ਪਹਿਲੀ ਵਾਰ %{datetime} ਨੂੰ ਇਤਲਾਹ ਕੀਤੀ ਗਈ
last_resolved_at_html: ਆਖਰੀ ਵਾਰ %{datetime} 'ਤੇ ਹੱਲ ਕੀਤਾ ਗਿਆ
show:
title: ਮੇਰੀਆਂ ਤਰਜੀਹਾਂ
preferred_languages: ਤਰਜੀਹੀ ਬੋਲੀਆਂ
+ site_color_schemes:
+ auto: ਆਪਣੇ-ਆਪ
+ light: ਚਾਨਣ
+ dark: ਗੂੜ੍ਹਾ
+ map_color_schemes:
+ auto: ਆਪਣੇ-ਆਪ
+ light: ਚਾਨਣ
+ dark: ਗੂੜ੍ਹਾ
edit_preferences: ਤਰਜੀਹਾਂ ਨੂੰ ਸੋਧੋ
edit:
title: ਤਰਜੀਹਾਂ ਨੂੰ ਸੋਧੋ
upload_trace: ਕੋਈ ਖੁਰਾ-ਖੋਜ ਚੜ੍ਹਾਉ
all_traces: ਸਾਰੇ ਖੁਰਾ-ਖੋਜ
my_traces: ਮੇਰੇ ਖੁਰਾ-ਖੋਜ
- traces_from: '%{user} ਤੋਂ ਜਨਤਕ ਖੁਰਾ-ਖੋਜ'
+ traces_from_html: '%{user} ਤੋਂ ਜਨਤਕ ਖੁਰਾ-ਖੋਜ'
georss:
title: OpenStreetMap GPS ਖੁਰਾ-ਖੋਜ
description:
years:
one: '%{count} ਸਾਲ'
other: '%{count} ਸਾਲ'
+ short:
+ ended: ਖਤਮ ਹੋ ਗਿਆ/ਗਈ
+ active: ਸਰਗਰਮ
+ expired_unread: ਨਹੀਂ-ਪੜ੍ਹਿਆ ਦੀ ਮਿਆਦ ਪੁੱਗ ਗਈ
show:
created: 'ਬਣਾਇਆ ਗਿਆ:'
duration: 'ਮਿਆਦ:'
display_name: ਰੋਕਿਆ ਵਰਤੋਂਕਾਰ
creator_name: ਸਿਰਜਣਹਾਰ
reason: ਰੋਕ ਦਾ ਕਾਰਨ
+ start: ਸ਼ੁਰੂ ਕਰੋ
+ end: ਖ਼ਤਮ
status: ਦਰਜਾ
user_mutes:
index:
message: Wiadomość
node: Węzeł
node_tag: Znacznik węzła
+ note: Uwaga
old_node: Stary węzeł
old_node_tag: Znacznik wcześniejszego węzła
old_relation: Stara relacja
way: Linia
relation: Relacja
containing_relation:
- entry_html: Relacja %{relation_name}
entry_role_html: Relacja %{relation_name} (jako %{relation_role})
not_found:
title: Nie znaleziono
open: Otwórz
resolved: Rozwiązane
show:
- title: '%{status} sprawa #%{issue_id}'
+ title:
+ open: Otwarta sprawa %{issue_id}
+ ignored: Zignorowana sprawa %{issue_id}
+ resolved: Rozwiązana sprawa %{issue_id}
reports:
one: '%{count} zgłoszenie'
few: '%{count} zgłoszenia'
title: Preferencje
preferred_editor: 'Preferowane edytowanie w:'
preferred_languages: 'Preferowane języki:'
+ preferred_site_color_scheme: Preferowany układ kolorystyczny strony
+ site_color_schemes:
+ auto: automatyczny
+ light: jasny
+ dark: ciemny
+ preferred_map_color_scheme: Preferowana kolorystyka mapy
+ map_color_schemes:
+ auto: automatyczna
+ light: jasna
+ dark: ciemna
edit_preferences: Edytuj preferencje
edit:
title: Edycja preferencji
upload_trace: Wyślij ślad
all_traces: Wszystkie ślady
my_traces: Moje ślady GPS
- traces_from: Publiczne ślady GPS użytkownika %{user}
+ traces_from_html: Publiczne ślady GPS użytkownika %{user}
remove_tag_filter: Usuń filtr tagów
destroy:
scheduled_for_deletion: Ślad oczekuje na usunięcie
few: '%{count} lata'
many: '%{count} lat'
other: '%{count} roku'
+ short:
+ ended: zakończona
+ revoked_html: odwołana przez %{name}
+ active: aktywna
+ active_unread: aktywna, nieprzeczytana
+ expired_unread: wygasła, nieprzeczytana
+ read_html: przeczytana %{time}
+ time_in_future_title: '%{time_absolute}; za %{time_relative}'
+ time_in_past_title: '%{time_absolute}; %{time_relative}'
blocks_on:
title: Blokady na użytkownika %{name}
heading_html: Lista blokad na użytkownika %{name}
reason: 'Przyczyna blokady:'
revoker: 'Cofający uprawnienia:'
block:
- not_revoked: (nieodwołana)
show: Pokaż
edit: Edytuj
page:
display_name: Zablokowany użytkownik
creator_name: Twórca
reason: Powód blokady
+ start: Początek
+ end: Koniec
status: Status
- revoker_name: Odwołana przez
navigation:
all_blocks: Wszystkie blokady
blocks_on_me: Blokady nałożone na mnie
- blocks_on_user: Blokady na %{user}
+ blocks_on_user_html: Blokady na %{user}
blocks_by_me: Blokady nałożone przeze mnie
- blocks_by_user: Blokady nałożone przez %{user}
+ blocks_by_user_html: Blokady nałożone przez %{user}
block: Blokada nr %{id}
new_block: Nowy blok
user_mutes:
description: Opis
created_at: Utworzono w dniu
last_changed: Ostatnio zmieniono
+ apply: Zastosuj
+ all: Wszystkie
+ open: Otwarte
+ closed: Zamknięte
+ status: Status
show:
title: 'Uwaga: %{id}'
description: 'Opis:'
report: ją zgłosić
anonymous_warning: Uwaga zawiera informacje od anonimowych użytkowników, które
należy zweryfikować przed wprowadzeniem zmian na mapie.
+ discussion: Dyskusja
+ subscribe: Obserwuj
+ unsubscribe: Nie obserwuj
hide: Ukryj
resolve: Oznacz jako rozwiązaną
reactivate: Ponownie aktywuj
way: راہ
relation: سمبندھ
containing_relation:
- entry_html: سمبندھ «%{relation_name}»
entry_role_html: سمبندھ «%{relation_name}» وچ «%{relation_role}» رول
not_found:
title: کجھ نہیں لبھیا
other: '%{count} رپورٹاں'
reported_item: رپورٹ دی چیز
show:
- title: '[%{status}] مسئلہ: %{issue_id}'
reports:
other: zeroرپورٹ نہیں
one: اِکّ رپورٹ
upload_trace: کھرا چڑھایو
all_traces: سارے کھرے کھوجاں
my_traces: میرے کھرے
- traces_from: «%{user}» دے عوام کھرے
+ traces_from_html: «%{user}» دے عوام کھرے
remove_tag_filter: فلٹر ہٹاؤ
georss:
title: کھرے کھوجاں
edit: سودھو
revoker: 'پرتاؤݨ والا:'
block:
- not_revoked: (نہیں پرتائی دتی گئی)
show: وکھاؤ
edit: سودھو
page:
longitude: Longitude
public: Público
description: Descrição
- gpx_file: Enviar ficheiro GPX
+ gpx_file: Escolher ficheiro GPX
visibility: Visibilidade
tagstring: Etiquetas
message:
way: Linha
relation: Relação
containing_relation:
- entry_html: Relação %{relation_name}
entry_role_html: Relação %{relation_name} (como %{relation_role})
not_found:
title: Não encontrado
timeout:
sorry: Lamentamos, mas o histórico do nó com o id %{id} demorou muito para ser
obido.
+ ways:
+ timeout:
+ sorry: Os dados para a linha com o id %{id} levaram demasiado tempo a ser carregados.
old_ways:
not_found:
sorry: 'Desculpe, não foi possível encontrar #%{id} versão %{version}.'
+ timeout:
+ sorry: O histórico da linha com o id %{id} levou demasiado tempo a ser carregado.
+ relations:
+ timeout:
+ sorry: Os dados para a relação com o id %{id} levaram demasiado tempo a ser
+ carregados.
old_relations:
not_found:
sorry: 'Desculpe, a relação #%{id} versão %{version} não foi encontrada.'
+ timeout:
+ sorry: O histórico da relação com o id %{id} levou demasiado tempo a ser carregado.
changeset_comments:
feeds:
comment:
open: Aberta
resolved: Resolvida
show:
- title: '%{status} Denúncia #%{issue_id}'
reports:
one: '%{count} denúncia'
other: '%{count} denúncias'
befriend_them: Também podes adicioná-lo como amigo em %{befriendurl}.
befriend_them_html: Também podes adicionar este utilizador como amigo em %{befriendurl}.
gpx_description:
- description_with_tags: 'Parece que o teu ficheiro GPX %{trace_name} com a descrição
- %{trace_description} e as seguintes etiquetas: %{tags}'
- description_with_tags_html: 'Parece que o teu ficheiro GPX %{trace_name} com
- a descrição %{trace_description} e as etiquetas: %{tags}'
- description_with_no_tags: Parece que o teu ficheiro GPX %{trace_name} com a
+ description_with_tags: 'Parece que o teu ficheiro %{trace_name} com a descrição
+ %{trace_description} e as etiquetas: %{tags}'
+ description_with_tags_html: 'Parece que o teu ficheiro %{trace_name} com a descrição
+ %{trace_description} e as etiquetas: %{tags}'
+ description_with_no_tags: Parece que o teu ficheiro %{trace_name} com a descrição
+ %{trace_description} e sem etiquetas
+ description_with_no_tags_html: Parece que o teu ficheiro %{trace_name} com a
descrição %{trace_description} e sem etiquetas
- description_with_no_tags_html: Parece que o teu ficheiro GPX %{trace_name} com
- a descrição %{trace_description} e sem etiquetas
gpx_failure:
hi: Olá, %{to_user}.
- failed_to_import: 'falhou na importação. Eis o erro:'
+ failed_to_import: 'não pôde ser importado como ficheiro de rota GPS. Verifica
+ se o teu ficheiro é um ficheiro GPX válido ou um arquivo com ficheiro(s) GPX
+ no formato suportado (.tar.gz, .tar.bz2, .tar, .zip, .gpx.gz, .gpx.bz2). Será
+ que existe algum problema de formato ou sintaxe com o ficheiro? Este é o erro
+ de importação:'
more_info: Podes encontrar mais informações sobre falhas de importação de ficheiros
GPX e como as evitar em %{url}.
more_info_html: Podes encontrar mais informações sobre falhas de importação
one: '%{count} mensagem silenciada'
other: Tens %{count} mensagens silenciadas
reply:
- wrong_user: Estás autenticado como `%{user}', mas a mensagem a que pretendes
+ wrong_user: Iniciaste sessão como `%{user}', mas a mensagem a que pretendes
responder não foi enviada para esse utilizador. Por favor, entra na conta
correta para poderes responder.
show:
unread_button: Marcar como não lida
destroy_button: Eliminar
back: Voltar
- wrong_user: Estás autenticado como `%{user}', mas a mensagem que pediste para
+ wrong_user: Iniciaste sessão como `%{user}', mas a mensagem que pediste para
ler não foi enviada por ou para esse utilizador. Por favor, entra na conta
correta para poderes ler a mensagem.
sent_message_summary:
hospital: Hospital
building: Edifício importante
station: Estação ferroviária
+ railway_halt: Paragem ferroviária
+ subway_station: Estação de metro
+ tram_stop: Paragem de elétrico
summit: Cume
peak: Pico
tunnel: Linha tracejada = túnel
upload_trace: Enviar rota GPS
all_traces: Todas as Rotas
my_traces: As Minhas Rotas
- traces_from: Rotas Públicas de %{user}
+ traces_from_html: Rotas Públicas de %{user}
remove_tag_filter: Eliminar filtro de etiqueta
destroy:
scheduled_for_deletion: Rota programada para eliminação
informal_translations: traduções informais
continue: Continuar
declined: https://wiki.openstreetmap.org/wiki/Pt:Contributor_Terms_Declined
+ cancel: Cancelar
you need to accept or decline: Por favor, lê e, em seguida, aceita ou recusa
os novos Termos do Contribuidor para continuar.
legale_select: 'País de residência:'
ao teu ID nas tuas definições de utilizador.
user_role:
filter:
- not_a_role: A expressão `%{role}' não é um cargo válido.
+ not_a_role: O texto `%{role}' não corresponde a um cargo válido.
already_has_role: O utilizador já tem o cargo %{role}.
doesnt_have_role: O utilizador não tem o cargo %{role}.
not_revoke_admin_current_user: Não foi possível retirar os direitos de administrador
do atual utilizador.
grant:
- are_you_sure: Tens a certeza de que pretendes conceder o cargo `%{role}' ao
+ are_you_sure: Tens a certeza de que pretendes atribuir o cargo `%{role}' ao
utilizador `%{name}'?
revoke:
are_you_sure: Tens a certeza de que pretendes retirar o cargo `%{role}' ao utilizador
reason: 'Razão do bloqueio:'
revoker: 'Quem revogou:'
block:
- not_revoked: (não revogado)
show: Mostrar
edit: Editar
page:
creator_name: Criador
reason: Motivo do bloqueio
status: Estado
- revoker_name: Revogado por
navigation:
all_blocks: Todos os bloqueios
blocks_on_me: Quem me bloqueou
- blocks_on_user: Bloqueios a %{user}
+ blocks_on_user_html: Bloqueios a %{user}
blocks_by_me: Os meus bloqueios
- blocks_by_user: Bloqueios de %{user}
+ blocks_by_user_html: Bloqueios de %{user}
block: 'Bloqueio #%{id}'
new_block: Novo Bloqueio
user_mutes:
description: Descrição
created_at: Criada em
last_changed: Última alteração
+ apply: Aplicar
+ all: Todas
+ open: Abrir
+ closed: Encerrada
+ status: Estado
show:
title: 'Nota: %{id}'
description: Descrição
report: denunciar esta nota
anonymous_warning: Esta nota inclui comentários de utilizadores anónimos que
devem ser confirmados por fonte independente.
+ discussion: Discussão
+ subscribe: Subscrever
+ unsubscribe: Cancelar subscrição
hide: Esconder
resolve: Marcar como resolvida
reactivate: Reabrir
add: Adicionar Nota
notes_paging_nav:
showing_page: Página %{page}
+ next: Próxima
+ previous: Anterior
javascripts:
close: Fechar
share:
empty: Não existem supressões para mostrar.
heading: Lista de supressões
title: Lista de supressões
+ new: Nova redação
new:
heading: Introduza a informação da nova supressão
title: A criar uma nova supressão
way: Linha
relation: Relação
containing_relation:
- entry_html: Relação %{relation_name}
entry_role_html: Relação %{relation_name} (como %{relation_role})
not_found:
title: Não encontrado
open: Abrir
resolved: Resolvido
show:
- title: '%{status} Problema #%{issue_id}'
reports:
one: '%{count} denúncia'
other: '%{count} denúncias'
one: '%{count} mensagem silenciada'
other: Você tem %{count} mensagens silenciadas
reply:
- wrong_user: Você está conectado como `%{user}' mas a mensagem que você quer
+ wrong_user: Você está conectado como '%{user}' mas a mensagem que você quer
responder não foi enviada para este usuário. Entre com o usuário correto para
poder responder.
show:
unread_button: Marcar como não lida
destroy_button: Apagar
back: Voltar
- wrong_user: Você está conectado como `%{user}' mas a mensagem que você quer
+ wrong_user: Você está conectado como '%{user}' mas a mensagem que você quer
ler não foi enviada para ou por este usuário. Entre com o usuário correto
para poder ler.
sent_message_summary:
upload_trace: Enviar uma trilha
all_traces: Todos os traços
my_traces: Minhas trilhas
- traces_from: Traços públicos de %{user}
+ traces_from_html: Traços públicos de %{user}
remove_tag_filter: Remova o filtro de marcações
destroy:
scheduled_for_deletion: Trilha marcada para ser apagada
com o seu ID em suas configurações de usuário.
user_role:
filter:
- not_a_role: O texto "%{role}" não é um papel válido.
+ not_a_role: O texto '%{role}' não é um papel válido.
already_has_role: O usuário já tem o papel %{role}.
doesnt_have_role: O usuário não tem o papel %{role}.
not_revoke_admin_current_user: Não foi possível retirar os direitos de administrador
do atual usuário.
grant:
- are_you_sure: Deseja mesmo dar o papel "%{role}" ao usuário "%{name}"?
+ are_you_sure: Deseja mesmo dar o papel '%{role}' ao usuário '%{name}'?
revoke:
are_you_sure: Deseja mesmo retirar o papel "%{role}" do usuário "%{name}"?
user_blocks:
reason: 'Razão do bloqueio:'
revoker: 'Quem retirou:'
block:
- not_revoked: (não retirado)
show: Exibir
edit: Editar
page:
creator_name: Criador
reason: Razão para o bloqueio
status: Status
- revoker_name: Retirado por
navigation:
all_blocks: Todos os bloqueios
blocks_on_me: Bloqueios sobre mim
- blocks_on_user: Bloqueios em %{user}
+ blocks_on_user_html: Bloqueios em %{user}
blocks_by_me: Bloqueios por mim
- blocks_by_user: Bloqueios por %{user}
+ blocks_by_user_html: Bloqueios por %{user}
block: 'Bloqueio #%{id}'
new_block: Novo bloqueio
user_mutes:
description: Descrição
created_at: Criada em
last_changed: Última alteração
+ apply: Aplicar
+ all: Todos
+ open: Abrir
+ closed: Fechado
+ status: Estado
show:
title: 'Nota: %{id}'
description: Descrição
report: denunciar esta nota
anonymous_warning: Esta nota contém comentários de usuários anônimos que devem
ser conferidos separadamente.
+ discussion: Discussão
+ subscribe: Inscrever-se
+ unsubscribe: Cancelar inscrição
hide: Esconder
resolve: Resolver
reactivate: Reativar
way: Cale
relation: Relație
containing_relation:
- entry_html: Relația %{relation_name}
entry_role_html: Relația %{relation_name} (ca %{relation_role})
not_found:
title: Nu a fost găsit
open: Deschis
resolved: Rezolvat
show:
- title: '%{status} Problema #%{issue_id}'
reports:
one: '%{count} raport'
few: '%{count} raporturi'
upload_trace: Încărcați urma
all_traces: Toate track-urile
my_traces: Înregistrările mele GPS
- traces_from: Traseele GPS publice de la %{user}
+ traces_from_html: Traseele GPS publice de la %{user}
remove_tag_filter: Eliminați filtrul de etichete
destroy:
scheduled_for_deletion: Traseul este programat pentru ștergere
reason: 'Motivul blocării:'
revoker: Revocă!
block:
- not_revoked: (nu este revocată)
show: Arată
edit: Modificare
page:
creator_name: Creator
reason: Motivul blocării
status: Stare
- revoker_name: Revocat de
user_mutes:
index:
table:
# Author: Alexey zakharenkov
# Author: Amire80
# Author: Andrewsh
+# Author: Anton Khorev
# Author: Ashed
# Author: Banonotit
# Author: BushmanK
# Author: Okras
# Author: Pacha Tchernof
# Author: Parukhin
+# Author: Pavel200071
# Author: Perevod16
# Author: PlushBoy
# Author: Pplex.vhs
message: Сообщение
node: Точка
node_tag: Тег точки
+ note: Заметка
old_node: Старая точка
old_node_tag: Старый тег точки
old_relation: Старое отношение
way: Линия
relation: Отношение
containing_relation:
- entry_html: Отношение %{relation_name}
- entry_role_html: Отношение %{relation_name} (в роли %{relation_role})
+ entry_role_html: '%{relation_name} (в роли %{relation_role})'
not_found:
title: Не найдено
sorry: 'К сожалению, %{type} #%{id} не найден.'
introduction: Нажмите на карту, чтобы найти ближайшие объекты
nearby: Ближайшие объекты
enclosing: Окружающие объекты
+ nodes:
+ timeout:
+ sorry: Извините, данные для точки с id %{id} потребовали слишком много времени
+ для извлечения.
old_nodes:
not_found:
sorry: 'К сожалению, узел #%{id} версии %{version} не найден.'
+ timeout:
+ sorry: Извините, история точки с id %{id} потребовала слишком много времени
+ для извлечения.
+ ways:
+ timeout:
+ sorry: Извините, данные для линии с id %{id} потребовали слишком много времени
+ для извлечения.
old_ways:
not_found:
sorry: 'К сожалению, путь #%{id} версии %{version} не найден.'
+ timeout:
+ sorry: Извините, история линии с id %{id} потребовала слишком много времени
+ для извлечения.
+ relations:
+ timeout:
+ sorry: Извините, данные для отношения с id %{id} потребовали слишком много времени
+ для извлечения.
old_relations:
not_found:
sorry: 'К сожалению, отношение #%{id} версии %{version} не найдено.'
+ timeout:
+ sorry: Извините, история отношения с id %{id} потребовала слишком много времени
+ для извлечения.
changeset_comments:
feeds:
comment:
other: '%{count} сообщений'
reported_item: Элемент в сообщении
show:
- title: '%{status} Проблема #%{issue_id}'
+ title:
+ open: 'Открытая проблема #%{issue_id}'
+ ignored: 'Проигнорированная проблема #%{issue_id}'
+ resolved: 'Разрешённая проблема #%{issue_id}'
reports:
one: 1 сообщение
few: '%{count} сообщения'
muted:
title: Заглушённые сообщения
reply:
- wrong_user: Ð\92Ñ\8b воÑ\88ли как `%{user}', но оÑ\82веÑ\82 на ваÑ\88 вопÑ\80оÑ\81 бÑ\8bл оÑ\82пÑ\80авлен не
- этому пользователю. Пожалуйста, войдите как соответствующий вашему вопросу
- полÑ\8cзоваÑ\82елÑ\8c, Ñ\87Ñ\82обÑ\8b пÑ\80оÑ\87иÑ\82аÑ\82Ñ\8c оÑ\82веÑ\82.
+ wrong_user: Ð\92Ñ\8b воÑ\88ли в Ñ\81иÑ\81Ñ\82емÑ\83 под именем '%{user}', но Ñ\81ообÑ\89ение, на коÑ\82оÑ\80ое
+ вы просили ответить, не было отправлено этому пользователю. Пожалуйста, войдите
+ в Ñ\81иÑ\81Ñ\82емÑ\83 под пÑ\80авилÑ\8cнÑ\8bм именем, Ñ\87Ñ\82обÑ\8b оÑ\82веÑ\82иÑ\82Ñ\8c.
show:
title: Просмотр сообщения
reply_button: Ответить
unread_button: Пометить как непрочитанное
destroy_button: Удалить
back: Назад
- wrong_user: Ð\92Ñ\8b воÑ\88ли как полÑ\8cзоваÑ\82елÑ\8c `%{user}', но оÑ\82веÑ\82 на ваÑ\88 вопÑ\80оÑ\81 бÑ\8bл
- оÑ\82пÑ\80авлен не Ñ\8dÑ\82им или не Ñ\8dÑ\82омÑ\83 полÑ\8cзоваÑ\82елÑ\8e. Ð\9fожалÑ\83йÑ\81Ñ\82а, войдиÑ\82е как Ñ\81ооÑ\82веÑ\82Ñ\81Ñ\82вÑ\83Ñ\8eÑ\89ий
- вашему вопросу пользователь, чтобы прочитать его.
+ wrong_user: Ð\92Ñ\8b воÑ\88ли в Ñ\81иÑ\81Ñ\82емÑ\83 под именем '%{user}', но Ñ\81ообÑ\89ение, коÑ\82оÑ\80ое вÑ\8b
+ пÑ\80оÑ\81или пÑ\80оÑ\87иÑ\82аÑ\82Ñ\8c, не бÑ\8bло оÑ\82пÑ\80авлено Ñ\8dÑ\82им полÑ\8cзоваÑ\82елем. Ð\9fожалÑ\83йÑ\81Ñ\82а, войдиÑ\82е
+ в систему под правильным именем, чтобы прочитать его.
sent_message_summary:
destroy_button: Удалить
heading:
traces:
older: Более старые треки
newer: Более новые треки
+ user_blocks:
+ older: Более старые блокировки
+ newer: Более новые блокировки
users:
older: Участники с большим стажем
newer: Новые участники
upload_trace: Загрузить треки
all_traces: Все треки
my_traces: Мои треки
- traces_from: Общедоступные трассировки от %{user}
+ traces_from_html: Общедоступные трассировки от %{user}
remove_tag_filter: Удалить фильтр тегов
destroy:
scheduled_for_deletion: Запланировано к удалению
настройках.
user_role:
filter:
- not_a_role: Строка «%{role}» не является допустимой ролью.
+ not_a_role: Строка '%{role}' не является допустимой ролью.
already_has_role: Пользователь уже имеет роль %{role}.
doesnt_have_role: У пользователя нет роли %{role}.
not_revoke_admin_current_user: Невозможно отозвать роль отозвать администратора
reason: 'Причина блокировки:'
revoker: 'Разблокировавший:'
block:
- not_revoked: (не разблокирован)
show: Показать
edit: Править
page:
creator_name: Автор
reason: Причина блокировки
status: Состояние
- revoker_name: Разблокировал
user_mutes:
index:
title: Заглушённые пользователи
description: Описание
created_at: Создана
last_changed: Изменена
+ apply: Применить
+ all: Все
+ open: Незакрытые
+ closed: Закрытые
show:
title: 'Заметка: %{id}'
description: Описание
report: пожаловаться на эту заметку
anonymous_warning: Заметка содержит комментарии анонимных участников. Требуется
независимая проверка сведений.
+ discussion: Обсуждение
+ subscribe: Подписаться
+ unsubscribe: Отписаться
hide: Скрыть
resolve: Закрыть
reactivate: Открыть снова
add: Добавить заметку
notes_paging_nav:
showing_page: Страница %{page}
+ next: Следующая
+ previous: Предыдущая
javascripts:
close: Закрыть
share:
way: ᱦᱚᱨ
relation: ᱥᱟᱹᱜᱟᱹᱭ
containing_relation:
- entry_html: ᱥᱟᱹᱜᱟᱹᱭ %{relation_name}
entry_role_html: ᱥᱟᱹᱜᱟᱹᱭ %{relation_name} (as %{relation_role})
not_found:
title: ᱵᱟᱝ ᱧᱟᱢ ᱞᱮᱱᱟ
way: Lìnia
relation: Relata
containing_relation:
- entry_html: Relata %{relation_name}
entry_role_html: Relata %{relation_name} (comente %{relation_role})
not_found:
title: No agatadu
other: '%{count} sinnalatziones'
reported_item: Elementu sinnaladu
show:
- title: '%{status} Problema #%{issue_id}'
reports:
one: '%{count} sinnalatzione'
other: '%{count} sinnalatziones'
upload_trace: Càrriga una rasta
all_traces: Totu sas rastas
my_traces: Sas rastas meas
- traces_from: Rastas pùblicas de %{user}
+ traces_from_html: Rastas pùblicas de %{user}
remove_tag_filter: Boga su filtru de etichetas
destroy:
scheduled_for_deletion: Rasta programmada pro s'iscantzelladura
reason: 'Resone de su blocu:'
revoker: 'Revocadore:'
block:
- not_revoked: (non revocadu)
show: Ammustra
edit: Modìfica
page:
creator_name: Creadore
reason: Resone de su blocu
status: Istadu
- revoker_name: Revocadu dae
navigation:
all_blocks: Totu sos blocos
blocks_on_me: Blocos subra a mene
# Exported from translatewiki.net
# Export driver: phpyaml
# Author: Ajeje Brazorf
+# Author: GianAntonucci
# Author: Gmelfi
# Author: LametinoWiki
# Author: Macofe
friendly: '%e %B %Y ê %H:%M'
helpers:
file:
- prompt: Scegghi file
+ prompt: Scarta lu file
submit:
diary_comment:
create: Cummenta
diary_entry:
create: Pùbblica
- update: Agghiorna
+ update: Attualizza
issue_comment:
- create: Agghiunci cummentu
+ create: Agghiunci un cummentu
message:
create: Manna
client_application:
- create: Riggistra
- update: Agghiorna
+ create: Riggìstrati
+ update: Attualizza
oauth2_application:
- create: Riggistrati
- update: Aggiorna
+ create: Riggìstrati
+ update: Attualizza
redaction:
- create: Crea l'occultamentu
- update: Sarva occultamentu
+ create: Crea u redact
+ update: Sarba u redact
trace:
create: Càrrica
- update: Sarva li canciamenti
+ update: Sarba i canci
user_block:
- create: Crea lu bloccu
- update: Aggiorna lu bloccu
+ create: Crea u bloccu
+ update: Attualizza u bloccu
activerecord:
+ errors:
+ messages:
+ display_name_is_user_n: nun po èssiri user_n abbestra ca si n nun è u to ID
+ utenti
+ models:
+ user_mute:
+ is_already_muted: già sta mutu
models:
- acl: Lista di cuntrollu d'accessu
- changeset: Gruppu di canciamenti
- changeset_tag: Etichetta dû gruppu di canciamenti
- country: Paisi
- diary_comment: Cummentu ntô diariu
+ acl: Lista di cuntrollu di l’accessi
+ changeset: Gruppu dî canci
+ changeset_tag: Etichetta dû gruppu dî canci
+ country: Pajisi
+ diary_comment: Cummentu nnô diariu
diary_entry: Vuci dû diariu
friend: Amicu
+ issue: Prubblema
language: Lingua
message: Missaggiu
node: Gruppu
old_node: Gruppu vecchiu
old_node_tag: Etichetta vecchia dû gruppu
old_relation: Rilazzioni vecchia
- old_relation_member: Membru vecchiu dâ rilazzioni
+ old_relation_member: Mèmmiru vecchiu dâ rilazzioni
old_relation_tag: Etichetta vecchia dâ rilazzioni
old_way: Caminu vecchiu
old_way_node: Gruppu vecchiu dû caminu
old_way_tag: Etichetta vecchia dû caminu
relation: Rilazzioni
- relation_member: Membru dâ rilazzioni
+ relation_member: Mèmmiru dâ rilazzioni
relation_tag: Etichetta dâ rilazzioni
+ report: Signalazzioni
session: Sissioni
- trace: Tracciatu
- tracepoint: Puntu dû tracciatu
- tracetag: Etichetta dû tracciatu
+ trace: Traccia
+ tracepoint: Puntu dâ traccia
+ tracetag: Etichetta dâ traccia
user: Utenti
user_preference: Prifirenza di l'utenti
- user_token: Lassa-passari di l'utenti
+ user_token: Còdici di l'utenti
way: Caminu
way_node: Gruppu dû caminu
way_tag: Etichetta dû caminu
attributes:
client_application:
- callback_url: URL di callback
- support_url: URL di l'assistenza
- allow_write_prefs: canciari li mpustazzioni d'utenti.
- allow_write_diary: criari vuci dû diariu, cummenti e fari amici.
- allow_write_api: cancia la cartina
- allow_read_gpx: lèggi li sò tracciati GPS privati.
- allow_write_gpx: càrrica li tracciati GPS
- allow_write_notes: cancia li noti
+ name: Nomu (ubblicatoriu)
+ url: Nnirizzu URL mastru di l’applicazzioni (ubblicatoriu)
+ callback_url: Nnirizzu URL di richiamata
+ support_url: Nnirizzu URL pi l’assistenza
+ allow_read_prefs: leggi i so prifirenzi di l’utenti
+ allow_write_prefs: cancia i so mpustazzioni di l’utenti.
+ allow_write_diary: criari pàggini dû diariu, cummenti e fàrisi amici
+ allow_write_api: cancia a carta
+ allow_read_gpx: leggi i so tracci GPS privati
+ allow_write_gpx: càrrica i traccia GPS
+ allow_write_notes: cancia i noti
diary_comment:
body: Corpu
diary_entry:
user: Utenti
- title: Oggettu
+ title: Uggettu
body: Corpu
latitude: Latitùdini
- longitude: Loncitùdini
+ longitude: Luncitùdini
language_code: Lingua
doorkeeper/application:
name: Nomu
redirect_uri: URI di rimannu
+ confidential: Applicazzioni cunfidinziali?
+ scopes: Pirmisi
friend:
user: Utenti
friend: Amicu
name: Nomu dû file
size: Grannizza
latitude: Latitùdini
- longitude: Loncitùdini
+ longitude: Luncitùdini
public: Pùbblicu
description: Discrizzioni
- gpx_file: Carricari file GPX
+ gpx_file: Scarta lu file dâ traccia GPS
visibility: Visibbilità
tagstring: Etichetti
message:
sender: Mittenti
- title: Oggettu
+ title: Uggettu
body: Corpu
- recipient: Distinatariu
+ recipient: Ricàpitu
redaction:
title: Tìtulu
description: Discrizzioni
+ report:
+ category: Scarta na scaciuni pâ to signalazzioni
+ details: Dinni cchiù assai ncapu ô prubblema (ubblicatoriu).
user:
- email: Posta elittrònica
- new_email: Nnirizzu di posta elittrònica novu
+ auth_provider: Tranzuntaturi
+ auth_uid: UID di tranzuntazzioni
+ email: E-mail
+ new_email: Nnirizzu e-mail novu
active: Attivu
display_name: Nomu ammustratu
description: Discrizzioni dû prufilu
home_lat: Latitùdini
home_lon: Luncitùdini
languages: Lingui prifiruti
- pass_crypt: Palora d'òrdini
- pass_crypt_confirmation: Cunferma password
+ preferred_editor: Edituri prifirutu
+ pass_crypt: Chiavi d’accessu
+ pass_crypt_confirmation: Cunferma chiavi d’accessu
help:
+ doorkeeper/application:
+ redirect_uri: Usa un ringu pi ogni URI
trace:
tagstring: spartuti câ vìrgula
user_block:
- needs_view: Havi a tràsiri l'utenti avanti chi stu bloccu veni livatu?
+ needs_view: A l'utenti serbi di tràsiri prima ca si leva ssu bloccu?
user:
- new_email: (nun veni ammustratu mai pubblicamenti)
+ new_email: (mai fattu vìdiri ô pùbblicu)
datetime:
distance_in_words_ago:
x_minutes:
one: 1 annu fa
other: '%{count} anni fa'
editor:
- default: Pridifinutu (com'a ora %{name})
+ default: Pridifinutu (camora %{name})
id:
name: iD
- description: iD (editor ntô browser)
+ description: iD (edituri nnô browser)
remote:
- name: Telecumannu
- description: Telecumannu (JOSM, Potlatch, Merkaartor)
+ name: Cuntrollu di luntanu
+ description: Cuntrollu di luntanu (JOSM, Potlatch, Merkaartor)
auth:
providers:
none: Nuḍḍu
api:
notes:
comment:
- opened_at_html: Criatu %{when}
- opened_at_by_html: Criatu %{when} di %{user}
- commented_at_html: Aggiurnatu %{when}
- commented_at_by_html: Aggiurnatu %{when} di %{user}
- closed_at_html: Arrisurvuta %{when}
- closed_at_by_html: Arrisurvuta %{when} di %{user}
- reopened_at_html: Rigraputa %{when}
- reopened_at_by_html: Rigraputa %{when} di %{user}
+ opened_at_html: Criata %{when}
+ opened_at_by_html: Criata %{when} di %{user}
+ commented_at_html: Attualizzata %{when}
+ commented_at_by_html: Attualizzata %{when} di %{user}
+ closed_at_html: Risurbuta %{when}
+ closed_at_by_html: Risurbuta %{when} di %{user}
+ reopened_at_html: Graputa arrè %{when}
+ reopened_at_by_html: Graputa arrè %{when} di %{user}
rss:
- title: Noti d'OpenStreetMap
- description_area: N’elencu dî noti signalati, cummintati o arrisurvuti ntâ
- tò zona [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
- description_item: Un flussu RSS pâ nota %{id}
+ title: Noti di OpenStreetMap
+ description_area: Na lista di noti, signalati, cummintati o risurbuti nnâ
+ to zona [(%{min_lat}|%{min_lon}) -- (%{max_lat}|%{max_lon})]
+ description_item: Un feed RSS pâ nota %{id}
opened: nota nova (vicinu a %{place})
commented: cummentu novu (vicinu a %{place})
- closed: nota arrisurvuta (vicinu a %{place})
- reopened: nota riattivata (vicinu a %{place})
+ closed: nota risurbuta (vicinu a %{place})
+ reopened: nota graputa arrè (vicinu a %{place})
entry:
comment: Cummentu
full: Nota cumpleta
account:
deletions:
show:
- title: Cancella lu mè cuntu
- delete_account: Cancella cuntu
- confirm_delete: Sî sicuru?
- cancel: Annulla
+ title: Scancella u me cuntu
+ delete_account: Scancella u cuntu
+ confirm_delete: Sicuru sì?
+ cancel: Sfai
accounts:
edit:
- title: Cancia lu cuntu
- my settings: Li mè mpustazzioni
- current email address: Nnirizzu email attuali
- external auth: Autinticazzioni esterna
+ title: Cancia u cuntu
+ my settings: Mpustazzioni
+ current email address: Nnirizzu e-mail attuali
+ external auth: Tranzuntari di fora
openid:
- link: http://wiki.openstreetmap.org/wiki/IT:OpenID
- link text: chi voli diri?
+ link: http://wiki.openstreetmap.org/wiki/OpenID
+ link text: zoccu è chissu?
public editing:
- heading: Canciamenti pùbblici
- enabled: Attivati. Nun sî anònimu e poi canciari li dati.
- enabled link text: chi voli diri?
- disabled: Disattivati, e nun poi canciari li dati, tutti li canciamenti pricidenti
- sunnu anònimi.
- disabled link text: pirchì nun pozzu fari canciamenti?
+ heading: Canciu pùbblicu
+ enabled: Abbilitati. Senza anònimu e cû pirmisu pi canciari i dati.
+ enabled link text: zoccu è chissu?
+ disabled: Disabbilitati e senza u pirmisu pi canciari i dati, tutti i canci
+ d’avanti sunnu anònimi.
+ disabled link text: picchì nun pozzu fari canci?
contributor terms:
- heading: Cunnizzioni di cuntribbuzzioni
- agreed: Accittasti li cunnizzioni di cuntribbuzzioni novi.
- not yet agreed: Ancora nun accittasti li cunnizzioni di cuntribbuzzioni novi.
- review link text: Quannu voi tu vai nta stu link pi lèggiri e accittari li
- cunnizzioni di cuntribbuzzioni novi.
- agreed_with_pd: Dichiarasti macari chi cunzìddiri li tò canciamenti ntô Duminiu
- Pùbblicu.
- link text: chi voli diri?
- save changes button: Sarva li canciamenti
- delete_account: Cancella cuntu...
+ heading: Règuli pî cuntribbuti
+ agreed: Accittasti i règuli pî cuntribbuti novi.
+ not yet agreed: Ancora nun accittasti i règuli pî cuntribbuti novi.
+ review link text: Quannu rinesci ammacca sta lijami pi ti lèggiri i règuli
+ pî cuntribbuti novi e p’accittalli.
+ agreed_with_pd: Dicisti macari ca cunzìddiri i to canci comu si sunnu di duminiu
+ pùbblicu.
+ link text: zoccu è chissu?
+ save changes button: Sarba i canci
+ delete_account: Scancella u cuntu...
go_public:
- heading: Canciamenti pùbblici
- make_edits_public_button: Arrenni tutti li mè canciamenti pùbblici
+ heading: Canciu pùbblicu
+ make_edits_public_button: Tutti i me canci falli pùbblici
update:
- success_confirm_needed: Li nfurmazzioni di l'utenti foru aggiurnati boni. Cuntrolla
- la tò posta elittrònica chi t'havi a arrivari nu missaggiu pi cunfirmari lu
- nnirizzu di posta novu.
- success: Li nfurmazzioni di l'utenti foru aggiurnati boni.
+ success_confirm_needed: Nfurmazzioni di l'utenti attualizzati. Cuntrolla a to
+ e-mail pi cunfirmari u to nnirizzu di posta elittrònica novu.
+ success: Nfurmazzioni di l'utenti attualizzati.
destroy:
- success: Cuntu cancillatu.
+ success: Cuntu scancillatu.
browse:
version: Virsioni
- in_changeset: Gruppu di canciamenti
+ in_changeset: Gruppu dî canci
anonymous: anònimu
- no_comment: (nuḍḍu cummentu)
- part_of: Fa parti di
- download_xml: Scàrrica ntô furmatu XML
- view_history: Talìa la crunuluggìa
- view_details: Talìa li dittagghî
+ no_comment: (senza cummentu)
+ part_of: Parti di
+ download_xml: Scàrrica XML
+ view_history: Talìa a storia
+ view_details: Talìa i minutagghi
location: 'Locu:'
node:
title_html: 'Gruppu: %{name}'
- history_title_html: 'Crunuluggìa dû gruppu: %{name}'
+ history_title_html: 'Storia dû gruppu: %{name}'
way:
title_html: 'Caminu: %{name}'
- history_title_html: 'Crunuluggìa dû caminu: %{name}'
- nodes: Gruppa
+ history_title_html: 'Storia dû caminu: %{name}'
+ nodes: Gruppi
also_part_of_html:
one: parti dû caminu %{related_ways}
other: parti dî camini %{related_ways}
relation:
title_html: 'Rilazzioni: %{name}'
- history_title_html: 'Crunuluggìa dâ rilazzioni: %{name}'
+ history_title_html: 'Storia dâ rilazzioni: %{name}'
members: Mèmmiri
members_count:
one: 1 mèmmiru
way: Caminu
relation: Rilazzioni
containing_relation:
- entry_html: Rilazzioni %{relation_name}
entry_role_html: Rilazzioni %{relation_name} (comu %{relation_role})
not_found:
- title: Nun attruvatu
- sorry: 'Purtroppu, %{type} #%{id} nun si potti attruvari.'
+ title: Senza truvatu
+ sorry: 'Purtroppu, %{type} #%{id} nun si potti truvari.'
type:
- node: lu gruppu
- way: lu caminu
+ node: gruppu
+ way: caminu
relation: la rilazzioni
changeset: lu gruppu di canciamenti
note: nota
"yes": Passu di muntagna
natural:
bay: Gulfu
- beach: Praia
- cape: Capu
+ beach: Praja
+ cape: Punta
cave_entrance: Trasuta dâ grutta
cliff: Sdirrupu
crater: Crateri
glacier: Ghiacciaiu
grassland: Pratu
heath: Brughiera
- hill: Cullina
+ hill: Muntagnola
island: Ìsula
land: Terra
marsh: Margiu
accountant: Raggiuneri
administrative: Ufficiu pùbblicu lucali
architect: Architettu
- company: Sucità
+ company: Azzienna
+ diplomatic: Ufficiu diplumàticu
employment_agency: Agginzìa pû travagghiu
estate_agent: Agginzìa Mmubbiliari
government: Ufficiu pùbblicu
intro_text: OpenStreetMap è na cartina dû munnu, criata di genti comu a tìa e
lìbbira a adupirari secunnu na licenza graputa.
partners_partners: cullabburatura
+ tou: Cunnizzioni pi l’usu
osm_offline: La basi di dati d'OpenStreetMap comu a ora nun è n lìnia pirchì si
stannu facennu travagghî di manutinzioni funnamintali.
osm_read_only: La basi di dati d'OpenStreetMap comu a ora è ntâ mudalità di sula
littura pirchì si stannu facennu travagghî di manutinzioni funnamintali.
+ nothing_to_preview: Nenti di vìdiri.
help: Guida
about: Nfurmazzioni
copyright: Dritti d'auturi
learn_more: Sapìrinni cchiossai
- more: Àutri cosi
+ more: Autru
user_mailer:
diary_comment_notification:
subject: '[OpenStreetMap] %{user} cummintau na vuci dû tò diariu'
no home location: Ancora nun mpustasti la tò pusizzioni basi.
update home location on click: Aggiorna la pusizzioni basi quannu cliccu supra
â carta?
+ show: Fa’ vìdiri
+ delete: Scancella
+ update:
+ success: Cuntu attualizzatu.
sessions:
new:
tab_title: Trasi
email or username: 'Nnirizzu di posta elittrònica o nomu utenti:'
- password: 'Palora d''òrdini:'
+ password: 'Chiavi d’accessu:'
remember: Arricòrdati di mìa
lost password link: Pirdisti la tò palora d'òrdini?
login_button: Trasi
aggiurnatu.
community_driven_title: Guidatu dâ cumunità
open_data_title: Dati graputi
+ open_data_open_data: dati graputi
legal_title: Noti ligali
partners_title: Cullabburatura
copyright:
html: Stai taliannu la virsioni n lingua ngrisa dâ pàggina dû drittu d'auturi.
Poi turnari â %{native_link} di sta pàggina o puru poi finiri di nfurmàriti
supra ô drittu d'auturi e %{mapping_link}.
- native_link: virsioni n sicilianu
+ native_link: virsioni 'n sicilianu
mapping_link: accuminzari a mappari
legal_babble:
credit_title_html: Comu s'attribbuisci a OpenStreetMap
contributors_intro_html: 'Li nostri cuntribbutura sunnu migghiara di genti.
Pigghiamu macari dati cu licenza graputa furnuti di l''agginzìi cartugràfichi
nazziunali e d''àutri fonti, tra dî quali:'
+ contributors_nz_new_zealand: Nova Zilanna
+ contributors_rs_serbia: Serbia
+ contributors_si_slovenia: Sluvenia
+ contributors_es_spain: Spagna
contributors_footer_2_html: La nclusioni dî dati nta OpenStreetMap nun ìmplica
ca lu sò furnituri origginali susteni OpenStreetMap, furnisci na quarchi
garanzìa, o accetta na quarchi rispunzabbilità.
taxiway: pista di rullaggiu
apron: Ària di parcheggiu ariupurtuali
admin: Cunfini amministrativu
+ capital: Capitali
forest: Furesta
wood: Voscu
+ sand: Rina
golf: Campu di golf
park: Villa
common: Cumuni
reason: 'Mutivu dû bloccu:'
revoker: 'Rivucaturi:'
block:
- not_revoked: (nun arrivucatu)
show: Ammustra
edit: Cancia
page:
creator_name: Criaturi
reason: Mutivu dû bloccu
status: Statu
- revoker_name: Arrivucatu di
notes:
index:
title: Noti scritti o cummintati di l'utenti %{user}
create:
flash: Occultamentu criatu.
update:
- flash: Canciamenti sarvati.
+ flash: Canci sarbati.
destroy:
- not_empty: St'occultamentu nun è vacanti. Pi favuri leva di l'occultamentu tutti
- li virsioni chi nni fannu parti avanti chi lu distrudi.
- flash: Occultamentu distruiutu.
- error: Ammattìu n'erruri ntô distrùiri st'occultamentu.
+ not_empty: Sta rivisioni nun è vacanti. Leva a rivisioni a tutti i virsioni
+ chi ci appartèninu avanti ca a distrudi.
+ flash: Rivisioni distruduta.
+ error: Cci fu nu sbagghiu ntô mentri ca scancillava ssa rivisioni.
+ validations:
+ leading_whitespace: àvi nu spazziu jancu ô principiu
+ trailing_whitespace: àvi nu spazziu jancu â fini
+ url_characters: àvi caràttari URL spiciali (%{characters})
...
way: Wey
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
entry_role_html: Relation %{relation_name} (as %{relation_role})
not_found:
sorry: 'Sorry, %{type} #%{id} could nae be foond.'
-# Messages for Serbo-Croatian (srpskohrvatski / српскохрватски)
+# Messages for Serbo-Croatian (Latin script) (srpskohrvatski (latinica))
# Exported from translatewiki.net
# Export driver: phpyaml
# Author: Vlad5250
way: Cesta
relation: Relácia
containing_relation:
- entry_html: Relácia %{relation_name}
entry_role_html: Relácia %{relation_name} (ako %{relation_role})
not_found:
title: Nenájdené
open: Otvorené
resolved: Vyriešené
show:
- title: '%{status} Problém #%{issue_id}'
reports:
one: '%{count} hlásenie'
few: '%{count} hlásenia'
upload_trace: Nahrať stopu
all_traces: Všetky stopy
my_traces: Moje stopy
- traces_from: Verejné stopy od %{user}
+ traces_from_html: Verejné stopy od %{user}
remove_tag_filter: Odstrániť filter značiek
destroy:
scheduled_for_deletion: Stopa plánovaná na vymazanie
reason: 'Dôvod blokovania:'
revoker: 'Odvolal:'
block:
- not_revoked: (nezrušený)
show: Zobraziť
edit: Upraviť
page:
creator_name: Tvorca
reason: Dôvod pre blokovanie
status: Stav
- revoker_name: Zrušil
user_mutes:
index:
title: Stlmení používatelia
title: Poznámky vytvorené alebo komentované používateľom %{user}
heading: Poznámky používateľa %{user}
subheading_html: Poznámky %{submitted} alebo %{commented}používateľom %{user}
+ subheading_submitted: vytvorené
+ subheading_commented: komentované
no_notes: Žiadne poznámky
id: ID
creator: Autor
description: Popis
created_at: Vytvorené
last_changed: Posledná zmena
+ apply: Použiť
+ all: Všetky
+ open: Otvorené
+ closed: Uzavreté
+ status: Stav
show:
title: 'Poznámka: %{id}'
description: Popis
report: nahlásiť túto poznámku
anonymous_warning: Táto poznámka zahŕňa komentáre anonymných používateľov, ktoré
by sa mali nezávisle preveriť.
+ discussion: Diskusia
+ subscribe: Sledovať
+ unsubscribe: Zrušiť sledovanie
hide: Skryť
resolve: Vyriešiť
reactivate: Opätovne aktivovať
comment_and_resolve: Okomentovať a vyriešiť
comment: Okomentovať
+ log_in_to_comment: Ak chcete komentovať túto poznámku, prihláste sa
report_link_html: Ak táto poznámka obsahuje citlivé údaje, ktoré by mali byť
odstránené, môžete %{link}.
other_problems_resolve: Pre všetky ostatné problémy s poznámkou, prosím vyriešte
intro: Zahliadli ste chybu alebo že niečo chýba? Dajte to vedieť ostatným používateľom,
aby sme to mohli opraviť. Umiestnite značku na správnu pozíciu a zapíšte poznámku
na vysvetlenie problému.
+ anonymous_warning_html: Nie ste prihlásený. Prosím, %{log_in} alebo %{sign_up},
+ ak chcete dostávať aktualizácie vašej poznámky.
+ anonymous_warning_log_in: prihláste sa
+ anonymous_warning_sign_up: zaregistrujte sa
advice: Vaša poznámka je verejná a môže slúžiť na úpravu mapy, preto nevkladajte
žiadne osobné údaje ani informácie z máp alebo databáz chránených autorskými
právami.
message: سنیہہ
node: نوڈ
node_tag: نوڈ ٹیگ
+ note: نوٹ
old_node: پراݨا نوڈ
old_node_tag: پراݨا نوڈ ٹیگ
old_relation: پراݨا رشتہ
title: میݙیاں ترجیحاں
preferred_editor: ترجیحی ایڈیٹر
preferred_languages: ترجیحی زباناں
+ site_color_schemes:
+ auto: خود کار
+ light: پھکّا
+ dark: ڳوڑھا
+ map_color_schemes:
+ auto: خود بخود
+ light: پھکّا
+ dark: ڳوڑھا
edit_preferences: ترجیحاں وچ تبدیلی کرو
edit:
save: ترجیحاں اپ ڈیٹ کرو
notes:
index:
subheading_submitted: جمع تھی ڳیا
+ apply: لاڳو کرو
+ all: یکے
+ open: کھولو
+ closed: بند تھیا
+ status: حیثیت
show:
title: نوٹ:%{id}
description: تفصیل
+ discussion: بحث مباحثہ
+ subscribe: سبسکرائب کرو
+ unsubscribe: اݨ سبسکرائب کرو
hide: لُکاؤ
resolve: حل کرو
comment: تبصرہ
way: Pot
relation: Relacija
containing_relation:
- entry_html: Relacija %{relation_name}
entry_role_html: Relacija %{relation_name} (kot %{relation_role})
not_found:
title: Ni najdeno
other: '%{count} poročil'
reported_item: Prijavljeni predmet
show:
- title: '%{status} Težava #%{issue_id}'
reports:
one: '%{count} prijava'
two: '%{count} prijavi'
contributors_rs_open_data_portal: Nacionalni portal odprtih podatkov
contributors_si_credit_html: |-
%{slovenia}: Vsebuje podatke iz %{gu_link} in %{mkgp_link}
- (javne informacije v Sloveniji).
+ (javne informacije Slovenije).
contributors_si_slovenia: Slovenija
contributors_si_gu: Geodetska uprava
contributors_si_gu_url: https://www.gov.si/drzavni-organi/organi-v-sestavi/geodetska-uprava/
upload_trace: Naloži sled GPS
all_traces: Vse sledi
my_traces: Moje sledi
- traces_from: Javne sledi uporabnika %{user}
+ traces_from_html: Javne sledi uporabnika %{user}
remove_tag_filter: Odstrani filter oznak
destroy:
scheduled_for_deletion: Sled bo izbrisana
reason: 'Razlog za blokiranje:'
revoker: 'Preklical:'
block:
- not_revoked: (ni preklicano)
show: Prikaži
edit: Uredi
page:
creator_name: Ustvarjalec
reason: Razlog za blokiranje
status: Stanje
- revoker_name: Preklical
navigation:
block: 'Blokiraj #%{id}'
user_mutes:
way: Rruga
relation: Lidhja
containing_relation:
- entry_html: Lidhja %{relation_name}
entry_role_html: Lidhja %{relation_name} (sikur %{relation_role})
not_found:
sorry: 'Na vjen keq, %{type} #%{id} nuk mund të gjendet.'
edit: Redakto
page:
status: Statusi
- revoker_name: Revokuar nga
notes:
show:
title: 'Shënim: %{id}'
way: Putanja
relation: Odnos
containing_relation:
- entry_html: Odnos %{relation_name}
entry_role_html: Odnos %{relation_name} (kao %{relation_role})
not_found:
sorry: Žao nam je, ali %{type} s IB %{id} nije pronađen.
reason: 'Razlog za blokiranje:'
revoker: 'Opozivalac:'
block:
- not_revoked: (nije opozvano)
show: Prikaži
edit: Uredi
page:
creator_name: Tvorac
reason: Razlozi za blokiranje
status: Stanje
- revoker_name: Opozvao
notes:
notes_paging_nav:
showing_page: Prikaz stranice %{page}
message: Порука
node: Чвор
node_tag: Ознака тачке
+ note: Напомена
old_node: Стари чвор
old_node_tag: Ознака старе тачке
old_relation: Стари однос
way: Линија
relation: Однос
containing_relation:
- entry_html: Однос %{relation_name}
- entry_role_html: Однос %{relation_name} (као %{relation_role})
+ entry_role_html: '%{relation_name} (као %{relation_role})'
not_found:
title: Није нађено
sorry: 'Нажалост, %{type} #%{id} није пронађен.'
title: Моја подешавања
preferred_editor: Жељени уређивач
preferred_languages: Жељени језици
+ site_color_schemes:
+ dark: Тамна
+ map_color_schemes:
+ auto: Аутоматски
+ light: Светла
edit_preferences: Уреди подешавања
edit:
title: Моја подешавања
reason: 'Разлог за блокирање:'
revoker: 'Опозивалац:'
block:
- not_revoked: (није опозвано)
show: Прикажи
edit: Уреди
page:
creator_name: Творац
reason: Разлози за блокирање
status: Стање
- revoker_name: Опозвао
user_mutes:
index:
title: Пригушени корисници
way: Sträcka
relation: Relation
containing_relation:
- entry_html: Relation %{relation_name}
entry_role_html: Relation %{relation_name} (som %{relation_role})
not_found:
title: Hittades inte
open: Öppen
resolved: Löst
show:
- title: '%{status} Ärende nr %{issue_id}'
reports:
one: '%{count} rapport'
other: '%{count} rapporter'
upload_trace: Ladda upp GPS-spår
all_traces: Alla spår
my_traces: Mina spår
- traces_from: Offentliga GPS-spår från %{user}
+ traces_from_html: Offentliga GPS-spår från %{user}
remove_tag_filter: Ta bort taggfilter
destroy:
scheduled_for_deletion: GPS-spår schemalagt för radering
reason: 'Anledning för blockering:'
revoker: 'Återkallare:'
block:
- not_revoked: (Inte återkallat)
show: Visa
edit: Redigera
page:
creator_name: Skapare
reason: Orsak till blockering
status: Status
- revoker_name: Återkallad av
navigation:
all_blocks: Alla blockeringar
blocks_on_me: Blockeringar på mig
- blocks_on_user: Blockeringar på %{user}
+ blocks_on_user_html: Blockeringar på %{user}
blocks_by_me: Blockeringar av mig
- blocks_by_user: Blockeringar av %{user}
+ blocks_by_user_html: Blockeringar av %{user}
block: 'Blockering #%{id}'
new_block: Ny blockering
user_mutes:
way: வழி
relation: தொடர்பு
containing_relation:
- entry_html: தொடர்பு %{relation_name}
entry_role_html: தொடர்பு %{relation_name} (%{relation_role} ஆக)
not_found:
title: காணப்படவில்லை
way: దారి
relation: సంబంధం
containing_relation:
- entry_html: '%{relation_name} సంబంధం'
entry_role_html: '%{relation_name} సంబంధం (%{relation_role} లాగా)'
not_found:
title: కనబడలేదు
other: '%{count} ఫిర్యాదులు'
reported_item: అంశంపై ఫిర్యాదు చేసారు
show:
- title: '%{status} అంశం #%{issue_id}'
report_created_at_html: '%{datetime} న మొదటిసారి ఫిర్యాదు చేసారు'
last_resolved_at_html: '%{datetime} న చివరిగా పరిష్కరించారు'
last_updated_at_html: చివరిగా %{displayname} గారు %{datetime} కు తాజాకరించారు
upload_trace: ఓ ట్రేసును ఎక్కించండి
all_traces: ట్రేసులన్నీ
my_traces: నా ట్రేసులు
- traces_from: '%{user} గారి బహిరంగ ట్రేసులు'
+ traces_from_html: '%{user} గారి బహిరంగ ట్రేసులు'
remove_tag_filter: ట్యాగు వడపోతను తీసెయ్యి
destroy:
scheduled_for_deletion: ఈ ట్రేసు తొలగింపు కోసం వేచి ఉంది
reason: 'నిరోధానికి కారణం:'
revoker: 'ఎత్తివేసేవారు:'
block:
- not_revoked: (ఎత్తివేయలేదు)
show: చూపించు
edit: మార్చు
page:
creator_name: సృష్టికర్త
reason: నిరోధానికి కారణం
status: స్థితి
- revoker_name: ఎత్తివేసినవారు
notes:
index:
title: గమనికలు సమర్పించినది లేదా వ్యాఖ్యానించినది %{user}
longitude: ลองติจูด
public: สาธารณะ
description: คำอธิบาย
- gpx_file: 'อัปโหลดไฟล์ GPX:'
+ gpx_file: เลือกไฟล์การติดตาม GPS
visibility: 'สถานะการแสดง:'
tagstring: แท็ก
message:
disabled: ปิดใช้ และไม่สามารถแก้ไขแผนที่ได้อีก โดยการแก้ไขในอดีตทั้งหมดจะยังคงความนิรนามไว้
disabled link text: ทำไมถึงแก้ไขไม่ได้?
contributor terms:
- heading: à¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89มีสà¹\88วà¸\99รà¹\88วม
- agreed: à¸\84ุà¸\93à¹\84à¸\94à¹\89ยà¸à¸¡à¸£à¸±à¸\9aà¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89มีสà¹\88วà¸\99รà¹\88วมใหม่แล้ว
- not yet agreed: à¸\84ุà¸\93ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89ยà¸à¸¡à¸£à¸±à¸\9aà¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89มีสà¹\88วà¸\99รà¹\88วมใหม่
+ heading: à¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥
+ agreed: à¸\84ุà¸\93à¹\84à¸\94à¹\89ยà¸à¸¡à¸£à¸±à¸\9aà¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥ใหม่แล้ว
+ not yet agreed: à¸\84ุà¸\93ยัà¸\87à¹\84มà¹\88à¹\84à¸\94à¹\89ยà¸à¸¡à¸£à¸±à¸\9aà¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥ใหม่
review link text: โปรดเข้าลิงก์นี้ตามความสะดวกของคุณเพื่อตรวจสอบและยอมรับข้อกำหนดของผู้ร่วมให้ข้อมูลใหม่
- agreed_with_pd: คุณยังได้ประกาศด้วยว่า คุณถือว่าการแก้ไขของคุณเป็นสาธารณสมบัติ
+ agreed_with_pd: à¸\84ุà¸\93ยัà¸\87à¹\84à¸\94à¹\89à¸\9bระà¸\81าศà¸\94à¹\89วยวà¹\88า à¸\84ุà¸\93à¸\96ืà¸à¸§à¹\88าà¸\81ารà¹\81à¸\81à¹\89à¹\84à¸\82à¸\82à¸à¸\87à¸\84ุà¸\93à¸\96ืà¸à¸§à¹\88าà¹\80à¸\9bà¹\87à¸\99สาà¸\98ารà¸\93สมà¸\9aัà¸\95ิ
link text: นี่คืออะไร?
save changes button: บันทึกการเปลี่ยนแปลง
delete_account: ลบบัญชี...
way: เส้นทาง
relation: ความสัมพันธ์
containing_relation:
- entry_html: ความสัมพันธ์%{relation_name}
entry_role_html: ความสัมพันธ์%{relation_name} (ในฐานะ%{relation_role})
not_found:
title: ไม่พบข้อมูล
other: '%{count} การรายงาน'
reported_item: รายการที่รายงาน
show:
- title: 'ปัญหา %{status} #%{issue_id}'
reports:
other: '%{count} การรายงาน'
no_reports: ไม่มีรายงาน
new:
tab_title: ลงชื่อเข้าใช้
email or username: 'อีเมลหรือชื่อผู้ใช้:'
- password: 'รหัสผ่าน:'
+ password: รหัสผ่าน
remember: จดจำฉันไว้ในระบบ
lost password link: ลืมรหัสผ่านหรือ?
login_button: ลงชื่อเข้าใช้
newer: รอยทางที่ใหม่กว่า
site:
about:
+ heading_html: ผู้ร่วมให้ข้อมูล %{br}%{copyright}OpenStreetMap
used_by_html: '%{name} ให้ข้อมูลแผนที่แก่เว็บไซต์ แอปพลิเคชั่นมือถือ และอุปกรณ์นับพัน'
lede_text: OpenStreetMap เป็นโครงการซึ่งสร้างสรรค์ขึ้นจากชุมชนของผู้ใช้และผู้สนใจ
ที่ได้ทำการสำรวจ ปรับปรุง แบ่งปันข้อมูลแผนที่ถนน ทางหลวง ทางเดินป่า, ร้านกาแฟ,
สถานีรถไฟ, และอื่นๆ อีกมากมายจากทั่วทุกมุมโลก
local_knowledge_title: ความรู้จากท้องถิ่น
local_knowledge_html: OpenStreetMap มุ่งเน้นส่งเสริมการใช้และเผยแพร่ความรู้จากคนท้องถิ่น
- à¹\82à¸\94ยà¸\99ัà¸\81à¸\97ำà¹\81à¸\9cà¸\99à¸\97ีà¹\88à¹\83à¸\99à¸\97à¹\89à¸à¸\87à¸\96ิà¹\88à¸\99สามารถใช้ทั้งภาพถ่ายดาวเทียม อุปกรณ์ระบุตำแหน่งจีพีเอส
+ à¹\82à¸\94ยà¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥สามารถใช้ทั้งภาพถ่ายดาวเทียม อุปกรณ์ระบุตำแหน่งจีพีเอส
หรือแม้แต่ผังกระดาษ เพื่อเดินสำรวจ เพิ่มเติม และปรับปรุงข้อมูลแผนที่ OpenStreetMap
ให้ละเอียด ถูกต้อง ทันสมัยอยู่เสมอได้ด้วยตนเอง ทุกที่ ทุกเวลา
community_driven_title: ผลักดันโดยชุมชน
+ community_driven_1_html: ชุมชน OpenStreetMap นั้นมีความหลากหลาย มีความกระตือรือร้น
+ และเติบใหญ่ขึ้นในทุกๆ วัน ผู้ร่วมให้ข้อมูลของเราประกอบด้วยผู้รักการทำแผนที่ผ
+ ผู้เชี่ยวชาญด้าน GIS วิศวกรที่ดูแลเซิร์ฟเวอร์ OSM ผู้ทำแผนที่พื้นที่ที่ได้รับผลกระทบจากภัยพิบัติ
+ และอื่นๆ อีกมากมาย หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับชุมชน โปรดดูที่เว็บไซต์%{osm_blog_link},%{user_diaries_link},%{community_blogs_link}
+ และ %{osm_foundation_link}
open_data_title: ข้อมูลเปิดเผย
+ open_data_1_html: OpenStreetMap อนุญาตให้ใช้ตามหลักเกณฑ์%{open_data} โดยจะนำไปใช้ในวัตถุประสงค์อื่นใดก็ได้
+ แต่ต้องแสดงทีมาและเครดิตต่อ OpenStreetMap และผู้ร่วมให้ข้อมูล ถ้าท่านปรับแก้
+ เพิ่มข้อมูล หรือกระทำการให้เกิดสิ่งอื่นใดใหม่ขึ้นต่องานที่มีนี้ ท่านสามารถแจกจ่ายได้แต่เพียงภายใต้สัญญาอนุญาตเดียวกันเท่านั้น
+ โปรดดู%{copyright_license_link}สำหรับลายละเอียดเพิ่มเติม
legal_title: ข้อกำหนดทางกฎหมาย
partners_title: องค์กรพันธมิตร
copyright:
native_link: รุ่นภาษาTHIS_LANGUAGE_NAME_HERE
mapping_link: เริ่มการทำแผนที่
legal_babble:
+ introduction_2_html: คุณสามารถคัดลอก แจกจ่าย ถ่ายทอด และดัดแปลงข้อมูลของเราได้อย่างเสรี
+ ตราบใดที่คุณให้อ้างอิงเครดิต OpenStreetMap และผู้ร่วมให้ข้อมูล ถ้าคุณแก้ไข
+ หรือสร้างข้อมูลต่อจากข้อมูลของเรา คุณสามารถเผยแพร่ผลลัพธ์ภายใต้สัญญาเดิมเท่านั้น
+ คำอธิบายเพิ่มเติมเกี่ยวกับสิทธิและความรับผิดชอบของคุณสามารถเข้าถึงได้ที่%{legal_code_link}
credit_title_html: วิธีการแสดงที่มาหรือคำขอบคุณ OpenStreetMap
credit_1_html: |-
เราจำเป็นต้องให้ท่านแสดงที่มาหรือคำขอบคุณแก่ “© ผู้ร่วมสร้างสรรค์ OpenStreetMap
alt: ตัวอย่างการอ้างอิง OpenStreetMap บนหน้าเว็บ
title: ตัวอย่างการอ้างอิง
more_title_html: ค้นหาเพิ่มเติม
- contributors_title_html: ผู้ร่วมสร้างสรรค์ของเรา
- contributors_intro_html: |-
- ผู้มีส่วนร่วมของเราคือบุคคลนับพัน เรายังมีข้อมูลที่ใช้สัญญาอนุญาตแบบเปิดเผย
- จากตัวแทนการทำแผนที่ของชาติต่าง ๆ และแหล่งข้อมูลอื่น ๆ ต่อไปนี้:
- contributors_footer_2_html: |-
- การรวมข้อมูลใน OpenStreetMap ไม่ได้หมายความว่าผู้ให้บริการข้อมูลดั้งเดิม
- จะรับรอง OpenStreetMap รับประกัน หรือรับผิดชอบใด ๆ
+ contributors_title_html: ผู้ร่วมให้ข้อมูลของเรา
+ contributors_intro_html: 'ผู้ร่วมให้ข้อมูลของเรามีอยู่หลายพันคน เรายังมีข้อมูลที่ใช้สัญญาอนุญาตแบบเปิด
+ จากตัวแทนการทำแผนที่ของชาติต่าง ๆ และแหล่งข้อมูลอื่น ๆ ต่อไปนี้:'
+ contributors_at_credit_html: '%{austria}: มีข้อมูลจาก%{stadt_wien_link} (ภายใต้
+ %{cc_by_link}), %{land_vorarlberg_link} และ Land Tirol (ภายใต้ %{cc_by_at_with_amendments_link})'
+ contributors_at_austria: ออสเตรีย
+ contributors_at_stadt_wien: เมืองเวียนนา
+ contributors_at_land_vorarlberg: แลนด์ ฟอร์อาร์ลแบร์ค
+ contributors_at_cc_by_at_with_amendments: CC BY AT with amendments
+ contributors_footer_2_html: การรวมข้อมูลใน OpenStreetMap ไม่ได้หมายความว่าผู้ให้บริการข้อมูลดั้งเดิมจะรับรอง
+ OpenStreetMap รับประกัน หรือรับผิดชอบใด ๆ
infringement_title_html: การละเมิดลิขสิทธิ์
- infringement_1_html: |-
- ผู้มีส่วนร่วม OSM จะถูกเตือนไม่ให้เพิ่มข้อมูลจากแหล่งข้อมูลที่มีลิขสิทธิ์
- (เช่น Google Maps หรือแผนที่แบบพิมพ์) โดยไม่ได้รับอนุญาตอย่าง
- ชัดเจนจากเจ้าของลิขสิทธิ์
+ infringement_1_html: ผู้ร่วมให้ข้อมูล OSM จะถูกเตือนไม่ให้เพิ่มข้อมูลจากแหล่งข้อมูลที่มีลิขสิทธิ์
+ (เช่น Google Maps หรือแผนที่แบบพิมพ์) โดยไม่ได้รับอนุญาตอย่างชัดเจนจากเจ้าของลิขสิทธิ์
index:
js_1: ท่านกำลังใช้เบราว์เซอร์ที่ไม่รองรับจาวาสคริปต์ หรือท่านปิดใช้งานจาวาสคริปต์
js_2: OpenStreetMap ใช้จาวาสคริปต์ในการแสดงแผนที่
license:
- copyright: สà¸\87วà¸\99ลิà¸\82สิà¸\97à¸\98ิà¹\8cà¹\82à¸\94ย OpenStreetMap à¹\81ละà¸\9cูà¹\89มีสà¹\88วà¸\99รà¹\88วม ภายใต้สัญญาอนุญาตแบบเปิด
+ copyright: สà¸\87วà¸\99ลิà¸\82สิà¸\97à¸\98ิà¹\8cà¹\82à¸\94ย OpenStreetMap à¹\81ละà¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥ ภายใต้สัญญาอนุญาตแบบเปิด
remote_failed: การแก้ไขล้มเหลว - ตรวจสอบให้แน่ใจว่าได้โหลด JOSM หรือ Merkaartor
และได้เปิดใช้งานตัวเลือกการควบคุมระยะไกลแล้ว
edit:
header: เสรีและแก้ไขได้
display name description: ชื่อที่แสดงต่อสาธารณะ ท่านสามารถเปลี่ยนในภายหลังได้ในหน้าการตั้งค่า
continue: สมัครบัญชี
- terms accepted: à¸\82à¸à¸\9aà¸\84ุà¸\93สำหรัà¸\9aà¸\81ารà¸\95à¸à¸\9aรัà¸\9aà¹\80à¸\87ืà¹\88à¸à¸\99à¹\84à¸\82à¸\9cูà¹\89รà¹\88วมสรà¹\89าà¸\87สรรà¸\84à¹\8c!
+ terms accepted: à¸\82à¸à¸\9aà¸\84ุà¸\93สำหรัà¸\9aà¸\81ารà¸\95à¸à¸\9aรัà¸\9aà¹\80à¸\87ืà¹\88à¸à¸\99à¹\84à¸\82à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥!
use external auth: นอกจากนี้ ท่านสามารถใช้บัญชีผู้ใช้จากเว็บอื่นในการเข้าใช้งานได้
terms:
title: ข้อกำหนด
heading: ข้อกำหนด
- heading_ct: à¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89มีสà¹\88วà¸\99รà¹\88วม
+ heading_ct: à¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥
read_tou: ข้าพเจ้าได้อ่านและเห็นด้วยในข้อกำหนดการใช้งาน
consider_pd: นอกเหนือจากข้อความข้างต้น ข้าพเจ้ายินดีสละการสร้างสรรค์ของข้าพเจ้าให้เป็นงานอันไม่มีลิขสิทธิ์
consider_pd_why: นี้คืออะไร?
continue: ถัดไป
- you need to accept or decline: à¸\81รุà¸\93าà¸\95รวà¸\88à¸\97าà¸\99à¹\81ละà¹\80ลืà¸à¸\81ยà¸à¸¡à¸£à¸±à¸\9aหรืà¸à¹\84มà¹\88ยà¸à¸¡à¸£à¸±à¸\9aà¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\82à¸à¸\87à¸\9cูà¹\89มีสà¹\88วà¸\99รà¹\88วมเพื่อไปต่อ
+ you need to accept or decline: à¸\81รุà¸\93าà¸\95รวà¸\88à¸\97าà¸\99à¹\81ละà¹\80ลืà¸à¸\81ยà¸à¸¡à¸£à¸±à¸\9aหรืà¸à¹\84มà¹\88ยà¸à¸¡à¸£à¸±à¸\9aà¸\82à¹\89à¸à¸\81ำหà¸\99à¸\94à¸\82à¸à¸\87à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥เพื่อไปต่อ
legale_select: 'ประเทศที่พำนัก:'
legale_names:
france: ฝรั่งเศส
remove as friend: ลบจากรายการเพื่อน
add as friend: เพิ่มเข้ารายการเพื่อน
mapper since: 'ทำแผนที่นี้ตั้งแต่:'
- ct status: 'à¹\80à¸\87ืà¹\88à¸à¸\99à¹\84à¸\82à¸\9cูà¹\89รà¹\88วมสรà¹\89าà¸\87สรรà¸\84à¹\8c:'
+ ct status: 'à¹\80à¸\87ืà¹\88à¸à¸\99à¹\84à¸\82à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥:'
ct undecided: ยังไม่ตัดสินใจ
ct declined: ไม่ยอมรับ
email address: 'ที่อยู่อีเมล:'
edit: แก้ไข
reason: 'เหตุผลสำหรับการระงับใช้งาน:'
block:
- not_revoked: (ไม่ได้มีการยกเลิก)
show: แสดง
edit: แก้ไข
page:
creator_name: ผู้สั่งให้ระงับ
reason: เหตุผลที่ต้องระงับใช้งาน
status: สถานะ
- revoker_name: ยกเลิกโดย
notes:
index:
heading: หมายเหตุของ %{user}
gps: รอยทาง GPS สาธารณะ
overlays: 'ซ้อนชั้นข้อมูลพิเศษเพื่อช่วยในการแก้ปัญหาแผนที่:'
title: ชั้นแผนที่
- openstreetmap_contributors: à¸\9cูà¹\89มีสà¹\88วà¸\99รà¹\88วม OpenStreetMap
+ openstreetmap_contributors: à¸\9cูà¹\89รà¹\88วมà¹\83หà¹\89à¸\82à¹\89à¸à¸¡à¸¹à¸¥ OpenStreetMap
site:
edit_tooltip: แก้ไขแผนที่
edit_disabled_tooltip: ขยายเพื่อแก้ไขแผนที่
# Author: Leeheonjin
# Author: Macofe
# Author: McDutchie
+# Author: Yivan000
# Author: 아라
---
tl:
diary_entry:
user: Tagagamit
title: Paksa
+ body: Katawan
latitude: Latitud
longitude: Longhitud
language_code: Wika
way: Daan
relation: Kaugnayan
containing_relation:
- entry_html: Kaugnayan %{relation_name}
entry_role_html: Kaugnayan %{relation_name} (bilang %{relation_role})
not_found:
title: Hindi Matagpuan
other: '%{count} mga Ulat'
reported_item: Naiulat na bagay
show:
- title: '%{status} Isyu #%{issue_id}'
reports:
one: 1 ulat
other: '%{count} mga ulat'
tagged_with: tinatakan ng %{tags}
upload_trace: Magkargang paitaas ng isang bakas
all_traces: Lahat ng mga Bakas
- traces_from: Pangmadlang Pagbakas mula kay %{user}
+ traces_from_html: Pangmadlang Pagbakas mula kay %{user}
destroy:
scheduled_for_deletion: Itinakda ang bakas para sa pagtatanggal
offline_warning:
reason: 'Dahilan ng paghadlang:'
revoker: 'Tagapagbawi:'
block:
- not_revoked: (hindi binawi)
show: Ipakita
edit: Baguhin
page:
creator_name: Tagapaglikha
reason: Dahilan ng pagharang
status: Kalagayan
- revoker_name: Binawi ni
notes:
index:
title: Mga tala na isinumite o pinuna ni %{user}
way: Yol
relation: İlişki
containing_relation:
- entry_html: İlişki %{relation_name}
entry_role_html: İlişki %{relation_name} (%{relation_role} olarak)
not_found:
title: Bulunamadı
open: Aç
resolved: Çözüldü
show:
- title: '%{status} Sorun #%{issue_id}'
reports:
one: '%{count} rapor'
other: '%{count} rapor'
upload_trace: GPS izi gönder
all_traces: Tüm İzler
my_traces: GPS İzlerim
- traces_from: '%{user} kullanıcısına ait herkese açık izler'
+ traces_from_html: '%{user} kullanıcısına ait herkese açık izler'
remove_tag_filter: Etiket Filtresini Kaldır
destroy:
scheduled_for_deletion: İz, silme işlemi için ayarlandı
reason: 'Engellenme sebebi:'
revoker: 'Geri alan:'
block:
- not_revoked: (iptal edilmemiş)
show: Göster
edit: Düzenle
page:
creator_name: Oluşturan
reason: Engellenme sebebi
status: Durum
- revoker_name: İptal eden
navigation:
all_blocks: Tüm Engellemeler
blocks_on_me: Engellendiklerim
- blocks_on_user: '%{user} kişisinin engelleri'
+ blocks_on_user_html: '%{user} kişisinin engelleri'
blocks_by_me: Engellediklerim
- blocks_by_user: '%{user} tarafından engellenenler'
+ blocks_by_user_html: '%{user} tarafından engellenenler'
block: 'Engel #%{id}'
new_block: Yeni Engel
user_mutes:
way: Юл
relation: Мөнәсәбәт
containing_relation:
- entry_html: Мөнәсәбәт %{relation_name}
entry_role_html: Мөнәсәбәт %{relation_name} (%{relation_role} сыйфатында)
not_found:
title: Табылмады
message: Повідомлення
node: Точка
node_tag: Теґ точки
+ note: Примітка
old_node: Стара точка
old_node_tag: Старий теґ точки
old_relation: Старий зв’язок
way: Лінія
relation: Зв’язок
containing_relation:
- entry_html: Зв’язок %{relation_name}
entry_role_html: Зв’язок %{relation_name} (як %{relation_role})
not_found:
title: Не знайдено
open: Відкрито
resolved: Вирішено
show:
- title: 'Звернення #%{issue_id} - %{status}'
reports:
one: '%{count} скарга'
few: '%{count} скарги'
upload_trace: Надіслати GPS-трек на сервер
all_traces: Всі GPS-треки
my_traces: Мої GPS-треки
- traces_from: Загальнодоступні GPS треки %{user}
+ traces_from_html: Загальнодоступні GPS треки %{user}
remove_tag_filter: Прибрати фільтри
destroy:
scheduled_for_deletion: Заплановано для вилучення
reason: 'Причина блокування:'
revoker: 'Розблокував:'
block:
- not_revoked: (не розблокований)
show: Показати
edit: Редагувати
page:
creator_name: Автор
reason: Причина блокування
status: Стан
- revoker_name: Розблокував
navigation:
all_blocks: Всі блокування
blocks_on_me: Мої блокування
- blocks_on_user: Блокування для %{user}
+ blocks_on_user_html: Блокування для %{user}
blocks_by_me: Заблокований(а) мною
- blocks_by_user: Блокування, що їх наклав %{user}
+ blocks_by_user_html: Блокування, що їх наклав %{user}
block: Блокування №%{id}
new_block: Нове блокування
user_mutes:
description: Опис
created_at: Створено
last_changed: Остання зміна
+ apply: Застосувати
+ all: Всі
+ open: Відкриті
+ closed: Закриті
+ status: Стан
show:
title: 'Нотатка: %{id}'
description: Опис
report: поскаржитися на цю нотатку
anonymous_warning: Ця нотатка містить коментарі від анонімних учасників. Потрібна
додаткова перевірка відомостей.
+ discussion: Обговорення
+ subscribe: Підписатися
+ unsubscribe: Відписатись
hide: Приховати
resolve: Опрацьовано
reactivate: Поновити
message: Thư
node: Nốt
node_tag: Thẻ Nốt
+ note: Ghi chú
old_node: Nốt Cũ
old_node_tag: Thẻ Nốt Cũ
old_relation: Quan hệ Cũ
way: Lối
relation: Quan hệ
containing_relation:
- entry_html: Quan hệ %{relation_name}
- entry_role_html: 'Quan hệ %{relation_name} (vai trò: %{relation_role})'
+ entry_role_html: '%{relation_name} (vai trò: %{relation_role})'
not_found:
title: Không Tìm thấy
sorry: 'Rất tiếc, không tìm thấy %{type} #%{id}.'
note: ghi chú
timeout:
title: Lỗi Hết Thời gian Chờ
- sorry: Rất tiếc, việc lấy dữ liệu loại %{type} có ID %{id} vượt quá thời gian
- cho phép.
+ sorry: Rất tiếc, việc lấy dữ liệu cho phần tử kiểu %{type} số %{id} vượt quá
+ thời gian cho phép.
type:
node: nốt
way: lối
enclosing: Yếu tố bao gồm
nodes:
timeout:
- sorry: Rất tiếc, việc lấy dữ liệu cho node có ID %{id} vượt quá thời gian cho
- phép.
+ sorry: Rất tiếc, việc lấy dữ liệu cho nốt số %{id} vượt quá thời gian cho phép.
old_nodes:
not_found:
sorry: 'Rất tiếc, không tìm thấy nốt #%{id} phiên bản %{version}.'
timeout:
- sorry: Rất tiếc, việc lấy lịch sử cho node có ID %{id} vượt quá thời gian cho
- phép.
+ sorry: Rất tiếc, việc lấy lịch sử cho nốt số %{id} vượt quá thời gian cho phép.
+ ways:
+ timeout:
+ sorry: Rất tiếc, việc lấy dữ liệu cho lối số %{id} vượt quá thời gian cho phép.
old_ways:
not_found:
sorry: 'Rất tiếc, không tìm thấy lối #%{id} phiên bản %{version}.'
+ timeout:
+ sorry: Rất tiếc, việc lấy lịch sử cho lối số %{id} vượt quá thời gian cho phép.
+ relations:
+ timeout:
+ sorry: Rất tiếc, việc lấy dữ liệu cho quan hệ số %{id} vượt quá thời gian cho
+ phép.
old_relations:
not_found:
sorry: 'Rất tiếc, không tìm thấy #%{id} phiên bản %{version}.'
+ timeout:
+ sorry: Rất tiếc, việc lấy lịch sử cho quan hệ số %{id} vượt quá thời gian cho
+ phép.
changeset_comments:
feeds:
comment:
post: Mục nhật ký
when: Lúc đăng
comment: Nhận xét
+ new:
+ heading: Thêm bình luận vào cuộc thảo luận về mục nhật ký sau đây?
doorkeeper:
errors:
messages:
page:
user_not_found: Người dùng không tồn tại
issues_not_found: Không tìm thấy vấn đề
+ reported_user: Người dùng Báo cáo
status: Trạng thái
reports: Báo cáo
last_updated: Lần Cập nhật Cuối
reports_count:
other: '%{count} Báo cáo'
reported_item: Mục Báo cáo
+ states:
+ ignored: Bỏ qua
+ open: Mở
+ resolved: Giải quyết
show:
- title: 'Vấn đề %{status} #%{issue_id}'
+ title:
+ open: 'Vấn đề Mở #%{issue_id}'
+ ignored: 'Vấn đề Bỏ qua #%{issue_id}'
+ resolved: 'Vấn đề Giải quyết #%{issue_id}'
reports:
other: '%{count} báo cáo'
no_reports: Không có báo cáo
hiện những công việc bảo quản cơ sở dữ liệu cần thiết.
osm_read_only: Cơ sở dữ liệu OpenStreetMap đang bị khóa không được sửa đổi trong
lúc đang thực hiện những công việc bảo quản cơ sở dữ liệu cần thiết.
+ nothing_to_preview: Không có gì để xem trước.
help: Trợ giúp
about: Giới thiệu
copyright: Bản quyền
befriend_them_html: Bạn cũng có thể thêm họ vào danh sách bạn bè của bạn tại
%{befriendurl}.
gpx_description:
- description_with_tags_html: 'Hình như tập tin GPX %{trace_name} của bạn có lời
- miêu tả %{trace_description} và các thẻ sau: %{tags}'
- description_with_no_tags_html: Hình như tập tin GPX %{trace_name} của bạn có
- lời miêu tả %{trace_description} và không có thẻ
+ description_with_tags: 'Hình như tập tin %{trace_name} của bạn có lời miêu tả
+ %{trace_description} và các thẻ sau: %{tags}'
+ description_with_tags_html: 'Hình như tập tin %{trace_name} của bạn có lời miêu
+ tả %{trace_description} và các thẻ sau: %{tags}'
+ description_with_no_tags: Hình như tập tin %{trace_name} của bạn có lời miêu
+ tả %{trace_description} và không có thẻ
+ description_with_no_tags_html: Hình như tập tin %{trace_name} của bạn có lời
+ miêu tả %{trace_description} và không có thẻ
gpx_failure:
hi: Chào %{to_user},
- failed_to_import: 'không nhập thành công. Đã gặp lỗi này:'
+ failed_to_import: 'không nhập thành công là tập tin tuyến GPS. Vui lòng kiểm
+ tra rằng tập tin của bạn là tập tin GPX hợp lệ hoặc gói chứa (các) tập tin
+ dưới định dạng được hỗ trợ (.tar.gz, .tar.bz2, .tar, .zip, .gpx.gz, .gpx.bz2).
+ Tập tin của bạn có phải có vấn đề định dạng hoặc cú pháp không? Lỗi nhập là:'
+ more_info: Tìm hiểu thêm về lỗi nhập GPX và cách tránh lỗi tại %{url}.
more_info_html: Tìm hiểu thêm về lỗi nhập GPX và cách tránh lỗi tại %{url}.
import_failures_url: https://wiki.openstreetmap.org/wiki/GPX_Import_Failures?uselang=vi
subject: '[OpenStreetMap] Nhập GPX thất bại'
hi: Chào %{to_user},
loaded:
other: tải thành công với %{trace_points} điểm trên tổng số %{count} điểm.
+ trace_location: Tuyến GPX của bạn có sẵn tại %{trace_url}
+ all_your_traces: Bạn có thể truy cập tất cả các tuyến GPX mà bạn đã tải lên
+ thành công tại %{url}
all_your_traces_html: Bạn có thể truy cập tất cả các tuyến GPX mà bạn đã tải
lên thành công tại %{url}.
subject: '[OpenStreetMap] Nhập GPX thành công'
title: Tùy chỉnh
preferred_editor: Trình vẽ Ưu tiên
preferred_languages: Ngôn ngữ Ưu tiên
+ preferred_site_color_scheme: Bộ màu Trang Ưa thích
+ site_color_schemes:
+ auto: Tự động
+ light: Sáng
+ dark: Tối
+ preferred_map_color_scheme: Bộ màu Bản đồ Ưa thích
+ map_color_schemes:
+ auto: Tự động
+ light: Sáng
+ dark: Tối
edit_preferences: Thay đổi Tùy chỉnh
edit:
title: Thay đổi Tùy chỉnh
richtext_field:
edit: Sửa đổi
preview: Xem trước
+ help: Trợ giúp
pagination:
diary_comments:
older: Các Nhận xét Cũ hơn
diary_entries:
older: Mục cũ hơn
newer: Mục mới hơn
+ issues:
+ older: Vấn đề Cũ hơn
+ newer: Vấn đề Mới hơn
traces:
older: Tuyến đường Cũ hơn
newer: Tuyến đường Mới hơn
infringement_1_html: Những người đóng góp vào OSM được khuyên không bao giờ
bổ sung dữ liệu từ những nguồn có bản quyền (chẳng hạn Bản đồ Google hoặc
các bản đồ trên giấy) trước khi các nhà giữ bản quyền cho phép rõ ràng.
+ infringement_2_1_takedown_procedure: thủ tục tháo gỡ
+ infringement_2_1_online_filing_page: trang nộp đơn trực tuyến
trademarks_title: Nhãn hiệu
trademarks_1_1_html: |-
OpenStreetMap, biểu trưng kính lúp, và State of the Map là các nhãn hiệu do Quỹ OpenStreetMap đăng ký. Nếu bạn có thắc mắc về việc sử dụng các nhãn hiệu, xin vui lòng xem
upload_trace: Tải lên tuyến đường
all_traces: Tất cả các Tuyến đường
my_traces: Tuyến đường của Tôi
- traces_from: Tuyến đường Công khai của %{user}
+ traces_from_html: Tuyến đường Công khai của %{user}
remove_tag_filter: Loại bỏ Bộ lọc Thẻ
destroy:
scheduled_for_deletion: Tuyến đường chờ được xóa
oauth2_authorizations: Ủy quyền OAuth 2
muted_users: Người dùng bị Tắt tiếng
auth_providers:
+ openid_url: Địa chỉ OpenID
openid_login_button: Tiếp tục
openid:
title: Đăng nhập qua OpenID
informal_translations: bản dịch không chính thức
continue: Tiếp tục
declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined?uselang=vi
+ cancel: Hủy bỏ
you need to accept or decline: Để tiếp tục, xin vui lòng đọc các Điều khoản
Đóng góp mới và chấp nhận hoặc từ chối chúng.
legale_select: 'Vui lòng chọn quốc gia cư trú:'
reason: 'Lý do cấm:'
revoker: 'Người bỏ cấm:'
block:
- not_revoked: (không bị hủy)
show: Hiện
edit: Sửa đổi
page:
display_name: Người bị cấm
creator_name: Người cấm
reason: Lý do cấm
+ start: Bắt đầu
+ end: Kết thúc
status: Trạng thái
- revoker_name: Người bỏ cấm
navigation:
all_blocks: Tất cả các Tác vụ Cấm
blocks_on_me: Tác vụ Cấm Tôi
- blocks_on_user: Tác vụ Cấm %{user}
+ blocks_on_user_html: Tác vụ Cấm %{user}
blocks_by_me: Tác vụ Cấm bởi Tôi
- blocks_by_user: Tác vụ Cấm bởi %{user}
+ blocks_by_user_html: Tác vụ Cấm bởi %{user}
block: Tác vụ cấm số %{id}
+ new_block: Tác vụ Cấm Mới
user_mutes:
index:
title: Người dùng bị Tắt tiếng
description: Miêu tả
created_at: Lúc tạo
last_changed: Thay đổi gần đây nhất
+ apply: Áp dụng
+ all: Tất cả
+ open: Mở
+ closed: Đóng
+ status: Trạng thái
show:
title: 'Ghi chú: %{id}'
description: Miêu tả
report: báo cáo ghi chú này
anonymous_warning: Ghi chú này có bình luận của người dùng vô danh đóng góp;
các bình luận này cần được xác nhận lại.
+ discussion: Thảo luận
+ subscribe: Theo dõi
+ unsubscribe: Ngừng theo dõi
hide: Ẩn
resolve: Giải quyết
reactivate: Mở lại
add: Thêm Ghi chú
notes_paging_nav:
showing_page: Trang %{page}
+ next: Sau
+ previous: Trước
javascripts:
close: Đóng
share:
custom_dimensions: Tùy biến kích thước
format: 'Định dạng:'
scale: 'Tỷ lệ:'
- image_dimensions: Hình của lớp tiêu chuẩn với kích thước %{width}×%{height}
+ image_dimensions: Hình của lớp %{layer} với kích thước %{width}×%{height}
download: Tải về
short_url: URL Ngắn gọn
include_marker: Ghim trên bản đồ
center_marker: Chuyển ghim vào giữa bản đồ
paste_html: Dán HTML để nhúng vào trang Web
view_larger_map: Xem Bản đồ Rộng hơn
- only_standard_layer: Chỉ có thể xuất lớp chuẩn ra hình ảnh
+ only_standard_layer: Chỉ có thể xuất các lớp Chuẩn, Bản đồ Xe đạp, và Bản đồ
+ Giao thông ra hình ảnh
embed:
report_problem: Báo vấn đề
key:
way: რზა
relation: ურთიართობა
containing_relation:
- entry_html: ურთიართობა %{relation_name}
entry_role_html: ურთიართობა %{relation_name} (მუჭოთ %{relation_role})
not_found:
title: ვეგორჷ
# Author: SkyEye FAST
# Author: StarrySky
# Author: StephDC
+# Author: TFX202X
# Author: TianyinLee
# Author: Tntchn
# Author: TsuyaMarisa
message: 消息
node: 节点
node_tag: 节点标签
+ note: 注释
old_node: 旧节点
old_node_tag: 旧节点标签
old_relation: 旧关系
way: 路径
relation: 关系
containing_relation:
- entry_html: 关系 %{relation_name}
- entry_role_html: 关系 %{relation_name} (作为 %{relation_role})
+ entry_role_html: '%{relation_name} (作为 %{relation_role})'
not_found:
title: 未找到
sorry: '抱歉,无法找到 %{type} #%{id}。'
open: 开放
resolved: 已解决
show:
- title: '%{status}问题#%{issue_id}'
reports:
one: '%{count}个举报'
other: '%{count}个举报'
upload_trace: 上传轨迹
all_traces: 所有轨迹
my_traces: 我的轨迹
- traces_from: 来自%{user}的公开轨迹
+ traces_from_html: 来自%{user}的公开轨迹
remove_tag_filter: 移除标签过滤器
destroy:
scheduled_for_deletion: 计划删除的轨迹
reason: 封禁的原因:
revoker: 撤销者:
block:
- not_revoked: (未撤销)
show: 显示
edit: 编辑
page:
creator_name: 创建者
reason: 封禁的原因
status: 状态
- revoker_name: 撤销者
navigation:
all_blocks: 所有封禁
blocks_on_me: 对我的封禁
- blocks_on_user: 对%{user}的封禁
+ blocks_on_user_html: 对%{user}的封禁
blocks_by_me: 由我做出的封禁
- blocks_by_user: 由%{user}做出的封禁
+ blocks_by_user_html: 由%{user}做出的封禁
block: 封禁#%{id}
new_block: 新封禁
user_mutes:
description: 描述
created_at: 创建于
last_changed: 最后更改于
+ apply: 应用
+ all: 全部
+ open: 打开
+ closed: 关闭
+ status: 状态
show:
title: 注记:%{id}
description: 描述
event_hidden_by_html: 由%{user}%{time_ago}隐藏
report: 举报此注记
anonymous_warning: 该注记包含匿名用户的评论,应独立地予以核实。
+ discussion: 讨论
+ subscribe: 订阅
+ unsubscribe: 取消订阅
hide: 隐藏
resolve: 解决
reactivate: 重启
way: 路徑
relation: 關聯
containing_relation:
- entry_html: 關聯 %{relation_name}
entry_role_html: 關聯 %{relation_name} (作為 %{relation_role})
not_found:
title: 找不到
open: 開放
resolved: 已解決
show:
- title: '%{status} 問題 #%{issue_id}'
reports:
one: '%{count} 份回報'
other: '%{count} 份回報'
upload_trace: 上傳軌跡
all_traces: 所有軌跡
my_traces: 我的軌跡
- traces_from: 來自 %{user} 的公開軌跡
+ traces_from_html: 來自 %{user} 的公開軌跡
remove_tag_filter: 移除標籤篩選
destroy:
scheduled_for_deletion: 軌跡已被排程刪除
reason: 封鎖的理由:
revoker: 撤銷者:
block:
- not_revoked: (沒有撤銷)
show: 顯示
edit: 編輯
page:
creator_name: 建立者
reason: 封鎖的理由
status: 狀態
- revoker_name: 撤銷者
navigation:
all_blocks: 所有封鎖
blocks_on_me: 對我的封鎖
- blocks_on_user: 對%{user}的封鎖
+ blocks_on_user_html: 對%{user}的封鎖
blocks_by_me: 由我做出的封鎖
- blocks_by_user: 由%{user}做出的封鎖
+ blocks_by_user_html: 由%{user}做出的封鎖
block: 封鎖#%{id}
new_block: 新封鎖
user_mutes:
end
post "/user/messages/:id" => "messages#update", :as => :api_message_update
-
- post "gpx/create" => "traces#create"
- get "gpx/:id" => "traces#show", :as => :api_trace, :id => /\d+/
- put "gpx/:id" => "traces#update", :id => /\d+/
- delete "gpx/:id" => "traces#destroy", :id => /\d+/
- get "gpx/:id/details" => "traces#show", :id => /\d+/
- get "gpx/:id/data" => "traces#data", :as => :api_trace_data
end
namespace :api, :path => "api/0.6" do
+ resources :traces, :path => "gpx", :only => [:create, :show, :update, :destroy], :id => /\d+/ do
+ scope :module => :traces do
+ resource :data, :only => :show
+ end
+ end
+ post "gpx/create" => "traces#create", :id => /\d+/, :as => :trace_create
+ get "gpx/:id/details" => "traces#show", :id => /\d+/, :as => :trace_details
+
# Map notes API
resources :notes, :except => [:new, :edit, :update], :id => /\d+/, :controller => "notes" do
collection do
post "close"
post "reopen"
end
+
+ resource :subscription, :only => [:create, :destroy], :controller => "note_subscriptions"
end
resources :user_blocks, :only => :show, :id => /\d+/, :controller => "user_blocks"
--- /dev/null
+require "test_helper"
+
+module Api
+ class NoteSubscriptionsControllerTest < ActionDispatch::IntegrationTest
+ def test_routes
+ assert_routing(
+ { :path => "/api/0.6/notes/1/subscription", :method => :post },
+ { :controller => "api/note_subscriptions", :action => "create", :note_id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/notes/1/subscription", :method => :delete },
+ { :controller => "api/note_subscriptions", :action => "destroy", :note_id => "1" }
+ )
+ end
+
+ def test_create
+ user = create(:user)
+ auth_header = bearer_authorization_header user
+ note = create(:note_with_comments)
+ assert_empty note.subscribers
+
+ assert_difference "NoteSubscription.count", 1 do
+ assert_difference "note.subscribers.count", 1 do
+ post api_note_subscription_path(note), :headers => auth_header
+ assert_response :success
+ end
+ end
+ assert_equal user, note.subscribers.last
+ end
+
+ def test_create_fail_anonymous
+ note = create(:note_with_comments)
+
+ assert_no_difference "NoteSubscription.count" do
+ assert_no_difference "note.subscribers.count" do
+ post api_note_subscription_path(note)
+ assert_response :unauthorized
+ end
+ end
+ end
+
+ def test_create_fail_no_scope
+ user = create(:user)
+ auth_header = bearer_authorization_header user, :scopes => %w[read_prefs]
+ note = create(:note_with_comments)
+
+ assert_no_difference "NoteSubscription.count" do
+ assert_no_difference "note.subscribers.count" do
+ post api_note_subscription_path(note), :headers => auth_header
+ assert_response :forbidden
+ end
+ end
+ end
+
+ def test_create_fail_note_not_found
+ user = create(:user)
+ auth_header = bearer_authorization_header user
+
+ assert_no_difference "NoteSubscription.count" do
+ post api_note_subscription_path(999111), :headers => auth_header
+ assert_response :not_found
+ end
+ assert_match "not found", @response.body
+ end
+
+ def test_create_fail_already_subscribed
+ user = create(:user)
+ auth_header = bearer_authorization_header user
+ note = create(:note_with_comments)
+ create(:note_subscription, :user => user, :note => note)
+
+ assert_no_difference "NoteSubscription.count" do
+ assert_no_difference "note.subscribers.count" do
+ post api_note_subscription_path(note), :headers => auth_header
+ assert_response :conflict
+ end
+ end
+ assert_match "already subscribed", @response.body
+ end
+
+ def test_destroy
+ user = create(:user)
+ auth_header = bearer_authorization_header user
+ other_user = create(:user)
+ note = create(:note_with_comments)
+ other_note = create(:note_with_comments)
+ create(:note_subscription, :user => user, :note => note)
+ create(:note_subscription, :user => other_user, :note => note)
+ create(:note_subscription, :user => user, :note => other_note)
+
+ assert_difference "NoteSubscription.count", -1 do
+ assert_difference "note.subscribers.count", -1 do
+ delete api_note_subscription_path(note), :headers => auth_header
+ assert_response :success
+ end
+ end
+ note.reload
+ assert_equal [other_user], note.subscribers
+ assert_equal [user], other_note.subscribers
+ end
+
+ def test_destroy_fail_anonymous
+ note = create(:note_with_comments)
+
+ delete api_note_subscription_path(note)
+ assert_response :unauthorized
+ end
+
+ def test_destroy_fail_no_scope
+ user = create(:user)
+ auth_header = bearer_authorization_header user, :scopes => %w[read_prefs]
+ note = create(:note_with_comments)
+ create(:note_subscription, :user => user, :note => note)
+
+ assert_no_difference "NoteSubscription.count" do
+ assert_no_difference "note.subscribers.count" do
+ delete api_note_subscription_path(note), :headers => auth_header
+ assert_response :forbidden
+ end
+ end
+ end
+
+ def test_destroy_fail_note_not_found
+ user = create(:user)
+ auth_header = bearer_authorization_header user
+
+ delete api_note_subscription_path(999111), :headers => auth_header
+ assert_response :not_found
+ assert_match "not found", @response.body
+ end
+
+ def test_destroy_fail_not_subscribed
+ user = create(:user)
+ auth_header = bearer_authorization_header user
+ note = create(:note_with_comments)
+
+ delete api_note_subscription_path(note), :headers => auth_header
+ assert_response :not_found
+ assert_match "not subscribed", @response.body
+ end
+ end
+end
--- /dev/null
+require "test_helper"
+
+module Api
+ module Traces
+ class DataControllerTest < ActionDispatch::IntegrationTest
+ ##
+ # test all routes which lead to this controller
+ def test_routes
+ assert_routing(
+ { :path => "/api/0.6/gpx/1/data", :method => :get },
+ { :controller => "api/traces/data", :action => "show", :trace_id => "1" }
+ )
+ assert_routing(
+ { :path => "/api/0.6/gpx/1/data.xml", :method => :get },
+ { :controller => "api/traces/data", :action => "show", :trace_id => "1", :format => "xml" }
+ )
+ end
+
+ # Test downloading a trace through the api
+ def test_show
+ public_trace_file = create(:trace, :visibility => "public", :fixture => "a")
+
+ # First with no auth
+ get api_trace_data_path(public_trace_file)
+ assert_response :unauthorized
+
+ # Now with some other user, which should work since the trace is public
+ auth_header = bearer_authorization_header
+ get api_trace_data_path(public_trace_file), :headers => auth_header
+ follow_redirect!
+ follow_redirect!
+ check_trace_data public_trace_file, "848caa72f2f456d1bd6a0fdf228aa1b9"
+
+ # And finally we should be able to do it with the owner of the trace
+ auth_header = bearer_authorization_header public_trace_file.user
+ get api_trace_data_path(public_trace_file), :headers => auth_header
+ follow_redirect!
+ follow_redirect!
+ check_trace_data public_trace_file, "848caa72f2f456d1bd6a0fdf228aa1b9"
+ end
+
+ # Test downloading a compressed trace through the api
+ def test_data_compressed
+ identifiable_trace_file = create(:trace, :visibility => "identifiable", :fixture => "d")
+
+ # Authenticate as the owner of the trace we will be using
+ auth_header = bearer_authorization_header identifiable_trace_file.user
+
+ # First get the data as is
+ get api_trace_data_path(identifiable_trace_file), :headers => auth_header
+ follow_redirect!
+ follow_redirect!
+ check_trace_data identifiable_trace_file, "c6422a3d8750faae49ed70e7e8a51b93", "application/gzip", "gpx.gz"
+
+ # Now ask explicitly for XML format
+ get api_trace_data_path(identifiable_trace_file, :format => "xml"), :headers => auth_header
+ check_trace_data identifiable_trace_file, "abd6675fdf3024a84fc0a1deac147c0d", "application/xml", "xml"
+
+ # Now ask explicitly for GPX format
+ get api_trace_data_path(identifiable_trace_file, :format => "gpx"), :headers => auth_header
+ check_trace_data identifiable_trace_file, "abd6675fdf3024a84fc0a1deac147c0d"
+ end
+
+ # Check an anonymous trace can't be downloaded by another user through the api
+ def test_data_anon
+ anon_trace_file = create(:trace, :visibility => "private", :fixture => "b")
+
+ # First with no auth
+ get api_trace_data_path(anon_trace_file)
+ assert_response :unauthorized
+
+ # Now with some other user, which shouldn't work since the trace is anon
+ auth_header = bearer_authorization_header
+ get api_trace_data_path(anon_trace_file), :headers => auth_header
+ assert_response :forbidden
+
+ # And finally we should be able to do it with the owner of the trace
+ auth_header = bearer_authorization_header anon_trace_file.user
+ get api_trace_data_path(anon_trace_file), :headers => auth_header
+ follow_redirect!
+ follow_redirect!
+ check_trace_data anon_trace_file, "db4cb5ed2d7d2b627b3b504296c4f701"
+ end
+
+ # Test downloading a trace that doesn't exist through the api
+ def test_data_not_found
+ deleted_trace_file = create(:trace, :deleted)
+
+ # Try first with no auth, as it should require it
+ get api_trace_data_path(0)
+ assert_response :unauthorized
+
+ # Login, and try again
+ auth_header = bearer_authorization_header
+ get api_trace_data_path(0), :headers => auth_header
+ assert_response :not_found
+
+ # Now try a trace which did exist but has been deleted
+ auth_header = bearer_authorization_header deleted_trace_file.user
+ get api_trace_data_path(deleted_trace_file), :headers => auth_header
+ assert_response :not_found
+ end
+
+ private
+
+ def check_trace_data(trace, digest, content_type = "application/gpx+xml", extension = "gpx")
+ assert_response :success
+ assert_equal digest, Digest::MD5.hexdigest(response.body)
+ assert_equal content_type, response.media_type
+ assert_equal "attachment; filename=\"#{trace.id}.#{extension}\"; filename*=UTF-8''#{trace.id}.#{extension}", @response.header["Content-Disposition"]
+ end
+ end
+ end
+end
# test all routes which lead to this controller
def test_routes
assert_routing(
- { :path => "/api/0.6/gpx/create", :method => :post },
+ { :path => "/api/0.6/gpx", :method => :post },
{ :controller => "api/traces", :action => "create" }
)
+ assert_recognizes(
+ { :controller => "api/traces", :action => "create" },
+ { :path => "/api/0.6/gpx/create", :method => :post }
+ )
assert_routing(
{ :path => "/api/0.6/gpx/1", :method => :get },
{ :controller => "api/traces", :action => "show", :id => "1" }
{ :controller => "api/traces", :action => "show", :id => "1" },
{ :path => "/api/0.6/gpx/1/details", :method => :get }
)
- assert_routing(
- { :path => "/api/0.6/gpx/1/data", :method => :get },
- { :controller => "api/traces", :action => "data", :id => "1" }
- )
- assert_routing(
- { :path => "/api/0.6/gpx/1/data.xml", :method => :get },
- { :controller => "api/traces", :action => "data", :id => "1", :format => "xml" }
- )
end
# Check getting a specific trace through the api
assert_response :not_found
end
- # Test downloading a trace through the api
- def test_data
- public_trace_file = create(:trace, :visibility => "public", :fixture => "a")
-
- # First with no auth
- get api_trace_data_path(public_trace_file)
- assert_response :unauthorized
-
- # Now with some other user, which should work since the trace is public
- auth_header = bearer_authorization_header
- get api_trace_data_path(public_trace_file), :headers => auth_header
- follow_redirect!
- follow_redirect!
- check_trace_data public_trace_file, "848caa72f2f456d1bd6a0fdf228aa1b9"
-
- # And finally we should be able to do it with the owner of the trace
- auth_header = bearer_authorization_header public_trace_file.user
- get api_trace_data_path(public_trace_file), :headers => auth_header
- follow_redirect!
- follow_redirect!
- check_trace_data public_trace_file, "848caa72f2f456d1bd6a0fdf228aa1b9"
- end
-
- # Test downloading a compressed trace through the api
- def test_data_compressed
- identifiable_trace_file = create(:trace, :visibility => "identifiable", :fixture => "d")
-
- # Authenticate as the owner of the trace we will be using
- auth_header = bearer_authorization_header identifiable_trace_file.user
-
- # First get the data as is
- get api_trace_data_path(identifiable_trace_file), :headers => auth_header
- follow_redirect!
- follow_redirect!
- check_trace_data identifiable_trace_file, "c6422a3d8750faae49ed70e7e8a51b93", "application/gzip", "gpx.gz"
-
- # Now ask explicitly for XML format
- get api_trace_data_path(identifiable_trace_file, :format => "xml"), :headers => auth_header
- check_trace_data identifiable_trace_file, "abd6675fdf3024a84fc0a1deac147c0d", "application/xml", "xml"
-
- # Now ask explicitly for GPX format
- get api_trace_data_path(identifiable_trace_file, :format => "gpx"), :headers => auth_header
- check_trace_data identifiable_trace_file, "abd6675fdf3024a84fc0a1deac147c0d"
- end
-
- # Check an anonymous trace can't be downloaded by another user through the api
- def test_data_anon
- anon_trace_file = create(:trace, :visibility => "private", :fixture => "b")
-
- # First with no auth
- get api_trace_data_path(anon_trace_file)
- assert_response :unauthorized
-
- # Now with some other user, which shouldn't work since the trace is anon
- auth_header = bearer_authorization_header
- get api_trace_data_path(anon_trace_file), :headers => auth_header
- assert_response :forbidden
-
- # And finally we should be able to do it with the owner of the trace
- auth_header = bearer_authorization_header anon_trace_file.user
- get api_trace_data_path(anon_trace_file), :headers => auth_header
- follow_redirect!
- follow_redirect!
- check_trace_data anon_trace_file, "db4cb5ed2d7d2b627b3b504296c4f701"
- end
-
- # Test downloading a trace that doesn't exist through the api
- def test_data_not_found
- deleted_trace_file = create(:trace, :deleted)
-
- # Try first with no auth, as it should require it
- get api_trace_data_path(:id => 0)
- assert_response :unauthorized
-
- # Login, and try again
- auth_header = bearer_authorization_header
- get api_trace_data_path(:id => 0), :headers => auth_header
- assert_response :not_found
-
- # Now try a trace which did exist but has been deleted
- auth_header = bearer_authorization_header deleted_trace_file.user
- get api_trace_data_path(deleted_trace_file), :headers => auth_header
- assert_response :not_found
- end
-
# Test creating a trace through the api
def test_create
# Get file to use
user = create(:user)
# First with no auth
- post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }
+ post api_traces_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }
assert_response :unauthorized
# Rewind the file
# Create trace and import tracepoints in background job
perform_enqueued_jobs do
- post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }, :headers => auth_header
+ post api_traces_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }, :headers => auth_header
end
assert_response :success
# Now authenticated, with the legacy public flag
assert_not_equal "public", user.preferences.find_by(:k => "gps.trace.visibility").v
auth_header = bearer_authorization_header user
- post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 1 }, :headers => auth_header
+ post api_traces_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 1 }, :headers => auth_header
assert_response :success
trace = Trace.find(response.body.to_i)
assert_equal "a.gpx", trace.name
second_user = create(:user)
assert_nil second_user.preferences.find_by(:k => "gps.trace.visibility")
auth_header = bearer_authorization_header second_user
- post gpx_create_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 0 }, :headers => auth_header
+ post api_traces_path, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 0 }, :headers => auth_header
assert_response :success
trace = Trace.find(response.body.to_i)
assert_equal "a.gpx", trace.name
private
- def check_trace_data(trace, digest, content_type = "application/gpx+xml", extension = "gpx")
- assert_response :success
- assert_equal digest, Digest::MD5.hexdigest(response.body)
- assert_equal content_type, response.media_type
- assert_equal "attachment; filename=\"#{trace.id}.#{extension}\"; filename*=UTF-8''#{trace.id}.#{extension}", @response.header["Content-Disposition"]
- end
-
##
# build XML for traces
# this builds a minimum viable XML for the tests in this suite
assert_select "p", "The requested scope is invalid, unknown, or malformed."
end
+ def test_new_db_readonly
+ application = create(:oauth_application, :scopes => "write_api")
+
+ session_for(create(:user))
+
+ with_settings(:status => "database_readonly") do
+ get oauth_authorization_path(:client_id => application.uid,
+ :redirect_uri => application.redirect_uri,
+ :response_type => "code",
+ :scope => "write_api")
+ assert_redirected_to offline_path
+ end
+ end
+
def test_create
application = create(:oauth_application, :scopes => "write_api")
def test_update_preferred_editor
user = create(:user, :languages => [])
+ user.preferences.create(:k => "site.color_scheme", :v => "light")
+ user.preferences.create(:k => "map.color_scheme", :v => "light")
session_for(user)
# Changing to a invalid editor should fail
assert_select ".alert-success", false
assert_select ".alert-danger", true
assert_select "form > div > select#user_preferred_editor > option[selected]", false
+ assert_equal "light", user.preferences.find_by(:k => "site.color_scheme")&.v
+ assert_equal "light", user.preferences.find_by(:k => "map.color_scheme")&.v
# Changing to a valid editor should work
user.preferred_editor = "id"
assert_template :show
assert_select ".alert-success", /^Preferences updated/
assert_select "dd", "iD (in-browser editor)"
+ assert_equal "light", user.preferences.find_by(:k => "site.color_scheme")&.v
+ assert_equal "light", user.preferences.find_by(:k => "map.color_scheme")&.v
# Changing to the default editor should work
user.preferred_editor = "default"
assert_template :show
assert_select ".alert-success", /^Preferences updated/
assert_select "dd", "Default (currently iD)"
+ assert_equal "light", user.preferences.find_by(:k => "site.color_scheme")&.v
+ assert_equal "light", user.preferences.find_by(:k => "map.color_scheme")&.v
+ end
+
+ def test_update_preferred_site_color_scheme
+ user = create(:user, :languages => [])
+ session_for(user)
+ assert_nil user.preferences.find_by(:k => "site.color_scheme")
+
+ # Changing when previously not defined
+ put preferences_path, :params => { :user => user.attributes, :site_color_scheme => "light" }
+ assert_redirected_to preferences_path
+ follow_redirect!
+ assert_template :show
+ assert_select ".alert-success", /^Preferences updated/
+ assert_equal "light", user.preferences.find_by(:k => "site.color_scheme")&.v
+
+ # Changing when previously defined
+ put preferences_path, :params => { :user => user.attributes, :site_color_scheme => "auto" }
+ assert_redirected_to preferences_path
+ follow_redirect!
+ assert_template :show
+ assert_select ".alert-success", /^Preferences updated/
+ assert_equal "auto", user.preferences.find_by(:k => "site.color_scheme")&.v
+ end
+
+ def test_update_preferred_map_color_scheme
+ user = create(:user, :languages => [])
+ session_for(user)
+ assert_nil user.preferences.find_by(:k => "map.color_scheme")
+
+ # Changing when previously not defined
+ put preferences_path, :params => { :user => user.attributes, :map_color_scheme => "light" }
+ assert_redirected_to preferences_path
+ follow_redirect!
+ assert_template :show
+ assert_select ".alert-success", /^Preferences updated/
+ assert_equal "light", user.preferences.find_by(:k => "map.color_scheme")&.v
+
+ # Changing when previously defined
+ put preferences_path, :params => { :user => user.attributes, :map_color_scheme => "auto" }
+ assert_redirected_to preferences_path
+ follow_redirect!
+ assert_template :show
+ assert_select ".alert-success", /^Preferences updated/
+ assert_equal "auto", user.preferences.find_by(:k => "map.color_scheme")&.v
end
end
assert_equal "<s>test</s>", deleted_output
end
- def test_element_class
+ def test_element_icon
node = create(:node, :with_history, :version => 2)
node_v1 = node.old_nodes.find_by(:version => 1)
node_v2 = node.old_nodes.find_by(:version => 2)
add_old_tags_selection(node_v2)
add_old_tags_selection(node_v1)
- assert_equal "node", element_class("node", create(:node))
- assert_equal "node", element_class("node", create(:node, :deleted))
-
- assert_equal "node building yes shop gift tourism museum", element_class("node", node)
- assert_equal "node building yes shop gift tourism museum", element_class("node", node_v2)
- assert_equal "node", element_class("node", node_v1)
- end
-
- def test_element_title
- node = create(:node, :with_history, :version => 2)
- node_v1 = node.old_nodes.find_by(:version => 1)
- node_v2 = node.old_nodes.find_by(:version => 2)
- node_v1.redact!(create(:redaction))
-
- add_tags_selection(node)
- add_old_tags_selection(node_v2)
- add_old_tags_selection(node_v1)
-
- assert_equal "", element_title(create(:node))
- assert_equal "", element_title(create(:node, :deleted))
-
- assert_equal "building=yes, shop=gift, and tourism=museum", element_title(node)
- assert_equal "building=yes, shop=gift, and tourism=museum", element_title(node_v2)
- assert_equal "", element_title(node_v1)
- end
-
- def test_icon_tags
- node = create(:node, :with_history, :version => 2)
- node_v1 = node.old_nodes.find_by(:version => 1)
- node_v2 = node.old_nodes.find_by(:version => 2)
- node_v1.redact!(create(:redaction))
+ icon = element_icon("node", create(:node))
+ icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
+ assert_dom icon_dom, "img:root", :count => 1 do
+ assert_dom "> @title", 0
+ end
- add_tags_selection(node)
+ icon = element_icon("node", create(:node, :deleted))
+ icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
+ assert_dom icon_dom, "img:root", :count => 1 do
+ assert_dom "> @title", 0
+ end
- tags = icon_tags(node)
- assert_equal 3, tags.count
- assert_includes tags, %w[building yes]
- assert_includes tags, %w[tourism museum]
- assert_includes tags, %w[shop gift]
+ icon = element_icon("node", node)
+ icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
+ assert_dom icon_dom, "img:root", :count => 1 do
+ assert_dom "> @title", "building=yes, shop=gift, and tourism=museum"
+ end
- add_old_tags_selection(node_v2)
- add_old_tags_selection(node_v1)
+ icon = element_icon("node", node_v2)
+ icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
+ assert_dom icon_dom, "img:root", :count => 1 do
+ assert_dom "> @title", "building=yes, shop=gift, and tourism=museum"
+ end
- tags = icon_tags(node_v2)
- assert_equal 3, tags.count
- assert_includes tags, %w[building yes]
- assert_includes tags, %w[tourism museum]
- assert_includes tags, %w[shop gift]
-
- tags = icon_tags(node_v1)
- assert_equal 3, tags.count
- assert_includes tags, %w[building yes]
- assert_includes tags, %w[tourism museum]
- assert_includes tags, %w[shop gift]
+ icon = element_icon("node", node_v1)
+ icon_dom = Rails::Dom::Testing.html_document_fragment.parse(icon)
+ assert_dom icon_dom, "img:root", :count => 1 do
+ assert_dom "> @title", 0
+ end
end
private
class ChangesetsHelperTest < ActionView::TestCase
def test_changeset_user_link
changeset = create(:changeset)
- assert_equal %(<a href="/user/#{ERB::Util.u(changeset.user.display_name)}">#{changeset.user.display_name}</a>), changeset_user_link(changeset)
+ changeset_user_link_dom = Rails::Dom::Testing.html_document_fragment.parse changeset_user_link(changeset)
+ assert_dom changeset_user_link_dom, "a:root", :text => changeset.user.display_name do
+ assert_dom "> @href", "/user/#{ERB::Util.u(changeset.user.display_name)}"
+ end
changeset = create(:changeset, :user => create(:user, :data_public => false))
assert_equal "anonymous", changeset_user_link(changeset)
changeset = create(:changeset, :created_at => Time.utc(2007, 1, 1, 0, 0, 0), :user => create(:user, :data_public => false))
# We need to explicitly reset the closed_at to some point in the future, and avoid the before_save callback
changeset.update_column(:closed_at, Time.now.utc + 1.day) # rubocop:disable Rails/SkipsModelValidations
-
- assert_match %r{^Created <time title="Mon, 01 Jan 2007 00:00:00 \+0000" datetime="2007-01-01T00:00:00Z">.*</time> by anonymous$}, changeset_details(changeset)
+ changeset_details_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{changeset_details(changeset)}</div>"
+ assert_dom changeset_details_dom, ":root", :text => /^Created .* by anonymous$/ do
+ assert_dom "> time", :count => 1 do
+ assert_dom "> @title", "Mon, 01 Jan 2007 00:00:00 +0000"
+ assert_dom "> @datetime", "2007-01-01T00:00:00Z"
+ end
+ assert_dom "> a", :count => 0
+ end
changeset = create(:changeset, :created_at => Time.utc(2007, 1, 1, 0, 0, 0), :closed_at => Time.utc(2007, 1, 2, 0, 0, 0))
- user_link = %(<a href="/user/#{ERB::Util.u(changeset.user.display_name)}">#{changeset.user.display_name}</a>)
-
- assert_match %r{^Closed <time title="Created: Mon, 01 Jan 2007 00:00:00 \+0000 Closed: Tue, 02 Jan 2007 00:00:00 \+0000" datetime="2007-01-02T00:00:00Z">.*</time> by #{user_link}$}, changeset_details(changeset)
+ changeset_details_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{changeset_details(changeset)}</div>"
+ assert_dom changeset_details_dom, ":root", :text => /^Closed .* by #{changeset.user.display_name}$/ do
+ assert_dom "> time", :count => 1 do
+ assert_dom "> @title", "Created: Mon, 01 Jan 2007 00:00:00 +0000\nClosed: Tue, 02 Jan 2007 00:00:00 +0000"
+ assert_dom "> @datetime", "2007-01-02T00:00:00Z"
+ end
+ assert_dom "> a", :count => 1, :text => changeset.user.display_name do
+ assert_dom "> @href", "/user/#{ERB::Util.u(changeset.user.display_name)}"
+ end
+ end
end
end
date = Time.utc(2014, 3, 5, 21, 37, 45)
user = create(:user)
- assert_match %r{^Created by anonymous <time title=" 5 March 2014 at 21:37" datetime="2014-03-05T21:37:45Z">.* ago</time>$}, note_event("opened", date, nil)
- assert_match %r{^Resolved by <a href="/user/#{ERB::Util.u(user.display_name)}">#{user.display_name}</a> <time title=" 5 March 2014 at 21:37" datetime="2014-03-05T21:37:45Z">.* ago</time>$}, note_event("closed", date, user)
+ note_event_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{note_event('opened', date, nil)}</div>"
+ assert_dom note_event_dom, ":root", :text => /^Created by anonymous .* ago$/ do
+ assert_dom "> a", :count => 0
+ assert_dom "> time", :count => 1 do
+ assert_dom "> @title", "5 March 2014 at 21:37"
+ assert_dom "> @datetime", "2014-03-05T21:37:45Z"
+ end
+ end
+
+ note_event_dom = Rails::Dom::Testing.html_document_fragment.parse "<div>#{note_event('closed', date, user)}</div>"
+ assert_dom note_event_dom, ":root", :text => /^Resolved by #{user.display_name} .* ago$/ do
+ assert_dom "> a", :count => 1, :text => user.display_name do
+ assert_dom "> @href", "/user/#{ERB::Util.u(user.display_name)}"
+ end
+ assert_dom "> time", :count => 1 do
+ assert_dom "> @title", "5 March 2014 at 21:37"
+ assert_dom "> @datetime", "2014-03-05T21:37:45Z"
+ end
+ end
end
def test_note_author
user = create(:user)
assert_equal "", note_author(nil)
+
assert_equal "deleted", note_author(deleted_user)
- assert_equal "<a href=\"/user/#{ERB::Util.u(user.display_name)}\">#{user.display_name}</a>", note_author(user)
- assert_equal "<a href=\"http://test.host/user/#{ERB::Util.u(user.display_name)}\">#{user.display_name}</a>", note_author(user, :only_path => false)
+
+ note_author_dom = Rails::Dom::Testing.html_document_fragment.parse note_author(user)
+ assert_dom note_author_dom, "a:root", :text => user.display_name do
+ assert_dom "> @href", "/user/#{ERB::Util.u(user.display_name)}"
+ end
+
+ note_author_dom = Rails::Dom::Testing.html_document_fragment.parse note_author(user, :only_path => false)
+ assert_dom note_author_dom, "a:root", :text => user.display_name do
+ assert_dom "> @href", "http://test.host/user/#{ERB::Util.u(user.display_name)}"
+ end
end
end
--- /dev/null
+require "application_system_test_case"
+
+class CreateNoteTest < ApplicationSystemTestCase
+ test "can create note" do
+ visit new_note_path(:anchor => "map=18/0/0")
+
+ assert_button "Add Note", :disabled => true
+
+ fill_in "text", :with => "Some newly added note description"
+ click_on "Add Note"
+
+ assert_content "Unresolved note ##{Note.last.id}"
+ assert_content "Some newly added note description"
+ end
+
+ test "cannot create note when api is readonly" do
+ with_settings(:status => "api_readonly") do
+ visit new_note_path(:anchor => "map=18/0/0")
+
+ assert_no_button "Add Note", :disabled => true
+ end
+ end
+end
end
end
- def test_add_comment
+ test "can add comment" do
note = create(:note_with_comments)
user = create(:user)
sign_in_as(user)
assert_button "Reactivate", :disabled => false
end
end
+
+ test "no subscribe button when not logged in" do
+ note = create(:note_with_comments)
+ visit note_path(note)
+
+ within_sidebar do
+ assert_no_button "Subscribe"
+ assert_no_button "Unsubscribe"
+ end
+ end
+
+ test "can subscribe" do
+ note = create(:note_with_comments)
+ user = create(:user)
+ sign_in_as(user)
+ visit note_path(note)
+
+ within_sidebar do
+ assert_button "Subscribe"
+ assert_no_button "Unsubscribe"
+
+ click_on "Subscribe"
+
+ assert_no_button "Subscribe"
+ assert_button "Unsubscribe"
+ end
+ end
+
+ test "can unsubscribe" do
+ note = create(:note_with_comments)
+ user = create(:user)
+ create(:note_subscription, :note => note, :user => user)
+ sign_in_as(user)
+ visit note_path(note)
+
+ within_sidebar do
+ assert_no_button "Subscribe"
+ assert_button "Unsubscribe"
+
+ click_on "Unsubscribe"
+
+ assert_button "Subscribe"
+ assert_no_button "Unsubscribe"
+ end
+ end
end
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
-"@eslint/js@9.15.0":
- version "9.15.0"
- resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.15.0.tgz#df0e24fe869143b59731942128c19938fdbadfb5"
- integrity sha512-tMTqrY+EzbXmKJR5ToI8lxu7jaN5EdmrBFJpQk5JmSlyLsx6o4t27r883K5xsLuCYCpfKBCGswMSWXsM+jB7lg==
+"@eslint/js@9.17.0":
+ version "9.17.0"
+ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.17.0.tgz#1523e586791f80376a6f8398a3964455ecc651ec"
+ integrity sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==
"@eslint/object-schema@^2.1.4":
version "2.1.4"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
-cross-spawn@^7.0.5:
- version "7.0.5"
- resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82"
- integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==
+cross-spawn@^7.0.6:
+ version "7.0.6"
+ resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
+ integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
dependencies:
path-key "^3.1.0"
shebang-command "^2.0.0"
integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==
eslint@^9.0.0:
- version "9.15.0"
- resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.15.0.tgz#77c684a4e980e82135ebff8ee8f0a9106ce6b8a6"
- integrity sha512-7CrWySmIibCgT1Os28lUU6upBshZ+GxybLOrmRzi08kS8MBuO8QA7pXEgYgY5W8vK3e74xv0lpjo9DbaGU9Rkw==
+ version "9.17.0"
+ resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.17.0.tgz#faa1facb5dd042172fdc520106984b5c2421bb0c"
+ integrity sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.12.1"
"@eslint/config-array" "^0.19.0"
"@eslint/core" "^0.9.0"
"@eslint/eslintrc" "^3.2.0"
- "@eslint/js" "9.15.0"
+ "@eslint/js" "9.17.0"
"@eslint/plugin-kit" "^0.2.3"
"@humanfs/node" "^0.16.6"
"@humanwhocodes/module-importer" "^1.0.1"
"@types/json-schema" "^7.0.15"
ajv "^6.12.4"
chalk "^4.0.0"
- cross-spawn "^7.0.5"
+ cross-spawn "^7.0.6"
debug "^4.3.2"
escape-string-regexp "^4.0.0"
eslint-scope "^8.2.0"
type-check "^0.4.0"
osm-community-index@^5.2.0:
- version "5.8.0"
- resolved "https://registry.yarnpkg.com/osm-community-index/-/osm-community-index-5.8.0.tgz#59fbf71ab9f359b307fcd0415fbce6f43dda94f6"
- integrity sha512-7hg+D7u2vooujuihGTgKWDYjPUidlWuTjBrMP/drsHP/cVJI94ehsDulNkcKH0Od05n6vBl/ZyJJjdJvqcrMaA==
+ version "5.9.0"
+ resolved "https://registry.yarnpkg.com/osm-community-index/-/osm-community-index-5.9.0.tgz#cf70a560baca5ec029cd16eecab8c2aa84d6bbc2"
+ integrity sha512-/P09ig/iCtD17AvmihBcvz6617c1NCJkqNNk3G6veY4MBWH6Djhl+xz69FLOGy8Xt4jHV57zP1PU6UATqby5aQ==
dependencies:
diacritics "^1.3.0"