add www directory

This commit is contained in:
kamba4 2024-09-12 19:22:07 +00:00
commit 832c581044
219 changed files with 12487 additions and 0 deletions

View file

@ -0,0 +1,23 @@
Copyright (c) 2010-2021, Vladimir Agafonkin
Copyright (c) 2010-2011, CloudMade
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

@ -0,0 +1,32 @@
<img width="600" src="https://rawgit.com/Leaflet/Leaflet/master/src/images/logo.svg" alt="Leaflet" />
Leaflet is the leading open-source JavaScript library for **mobile-friendly interactive maps**.
Weighing just about 39 KB of gzipped JS plus 4 KB of gzipped CSS code, it has all the mapping [features][] most developers ever need.
Leaflet is designed with *simplicity*, *performance* and *usability* in mind.
It works efficiently across all major desktop and mobile platforms out of the box,
taking advantage of HTML5 and CSS3 on modern browsers while being accessible on older ones too.
It can be extended with a huge amount of [plugins][],
has a beautiful, easy to use and [well-documented][] API
and a simple, readable [source code][] that is a joy to [contribute][] to.
For more info, docs and tutorials, check out the [official website][].<br>
For **Leaflet downloads** (including the built master version), check out the [download page][].
We're happy to meet new contributors.
If you want to **get involved** with Leaflet development, check out the [contribution guide][contribute].
Let's make the best mapping library that will ever exist,
and push the limits of what's possible with online maps!
[![Build Status](https://travis-ci.org/Leaflet/Leaflet.svg?branch=master)](https://travis-ci.org/Leaflet/Leaflet)
[contributors]: https://github.com/Leaflet/Leaflet/graphs/contributors
[features]: http://leafletjs.com/#features
[plugins]: http://leafletjs.com/plugins.html
[well-documented]: http://leafletjs.com/reference.html "Leaflet API reference"
[source code]: https://github.com/Leaflet/Leaflet "Leaflet GitHub repository"
[hosted on GitHub]: http://github.com/Leaflet/Leaflet
[contribute]: https://github.com/Leaflet/Leaflet/blob/master/CONTRIBUTING.md "A guide to contributing to Leaflet"
[official website]: http://leafletjs.com
[download page]: http://leafletjs.com/download.html

View file

@ -0,0 +1,640 @@
/* required styles */
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas,
.leaflet-zoom-box,
.leaflet-image-layer,
.leaflet-layer {
position: absolute;
left: 0;
top: 0;
}
.leaflet-container {
overflow: hidden;
}
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
-webkit-user-drag: none;
}
/* Prevents IE11 from highlighting tiles in blue */
.leaflet-tile::selection {
background: transparent;
}
/* Safari renders non-retina tile on retina better with this, but Chrome is worse */
.leaflet-safari .leaflet-tile {
image-rendering: -webkit-optimize-contrast;
}
/* hack that prevents hw layers "stretching" when loading new tiles */
.leaflet-safari .leaflet-tile-container {
width: 1600px;
height: 1600px;
-webkit-transform-origin: 0 0;
}
.leaflet-marker-icon,
.leaflet-marker-shadow {
display: block;
}
/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */
/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */
.leaflet-container .leaflet-overlay-pane svg,
.leaflet-container .leaflet-marker-pane img,
.leaflet-container .leaflet-shadow-pane img,
.leaflet-container .leaflet-tile-pane img,
.leaflet-container img.leaflet-image-layer,
.leaflet-container .leaflet-tile {
max-width: none !important;
max-height: none !important;
}
.leaflet-container.leaflet-touch-zoom {
-ms-touch-action: pan-x pan-y;
touch-action: pan-x pan-y;
}
.leaflet-container.leaflet-touch-drag {
-ms-touch-action: pinch-zoom;
/* Fallback for FF which doesn't support pinch-zoom */
touch-action: none;
touch-action: pinch-zoom;
}
.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {
-ms-touch-action: none;
touch-action: none;
}
.leaflet-container {
-webkit-tap-highlight-color: transparent;
}
.leaflet-container a {
-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);
}
.leaflet-tile {
filter: inherit;
visibility: hidden;
}
.leaflet-tile-loaded {
visibility: inherit;
}
.leaflet-zoom-box {
width: 0;
height: 0;
-moz-box-sizing: border-box;
box-sizing: border-box;
z-index: 800;
}
/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */
.leaflet-overlay-pane svg {
-moz-user-select: none;
}
.leaflet-pane { z-index: 400; }
.leaflet-tile-pane { z-index: 200; }
.leaflet-overlay-pane { z-index: 400; }
.leaflet-shadow-pane { z-index: 500; }
.leaflet-marker-pane { z-index: 600; }
.leaflet-tooltip-pane { z-index: 650; }
.leaflet-popup-pane { z-index: 700; }
.leaflet-map-pane canvas { z-index: 100; }
.leaflet-map-pane svg { z-index: 200; }
.leaflet-vml-shape {
width: 1px;
height: 1px;
}
.lvml {
behavior: url(#default#VML);
display: inline-block;
position: absolute;
}
/* control positioning */
.leaflet-control {
position: relative;
z-index: 800;
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;
}
.leaflet-top,
.leaflet-bottom {
position: absolute;
z-index: 1000;
pointer-events: none;
}
.leaflet-top {
top: 0;
}
.leaflet-right {
right: 0;
}
.leaflet-bottom {
bottom: 0;
}
.leaflet-left {
left: 0;
}
.leaflet-control {
float: left;
clear: both;
}
.leaflet-right .leaflet-control {
float: right;
}
.leaflet-top .leaflet-control {
margin-top: 10px;
}
.leaflet-bottom .leaflet-control {
margin-bottom: 10px;
}
.leaflet-left .leaflet-control {
margin-left: 10px;
}
.leaflet-right .leaflet-control {
margin-right: 10px;
}
/* zoom and fade animations */
.leaflet-fade-anim .leaflet-tile {
will-change: opacity;
}
.leaflet-fade-anim .leaflet-popup {
opacity: 0;
-webkit-transition: opacity 0.2s linear;
-moz-transition: opacity 0.2s linear;
transition: opacity 0.2s linear;
}
.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {
opacity: 1;
}
.leaflet-zoom-animated {
-webkit-transform-origin: 0 0;
-ms-transform-origin: 0 0;
transform-origin: 0 0;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
will-change: transform;
}
.leaflet-zoom-anim .leaflet-zoom-animated {
-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);
-moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);
transition: transform 0.25s cubic-bezier(0,0,0.25,1);
}
.leaflet-zoom-anim .leaflet-tile,
.leaflet-pan-anim .leaflet-tile {
-webkit-transition: none;
-moz-transition: none;
transition: none;
}
.leaflet-zoom-anim .leaflet-zoom-hide {
visibility: hidden;
}
/* cursors */
.leaflet-interactive {
cursor: pointer;
}
.leaflet-grab {
cursor: -webkit-grab;
cursor: -moz-grab;
cursor: grab;
}
.leaflet-crosshair,
.leaflet-crosshair .leaflet-interactive {
cursor: crosshair;
}
.leaflet-popup-pane,
.leaflet-control {
cursor: auto;
}
.leaflet-dragging .leaflet-grab,
.leaflet-dragging .leaflet-grab .leaflet-interactive,
.leaflet-dragging .leaflet-marker-draggable {
cursor: move;
cursor: -webkit-grabbing;
cursor: -moz-grabbing;
cursor: grabbing;
}
/* marker & overlays interactivity */
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-image-layer,
.leaflet-pane > svg path,
.leaflet-tile-container {
pointer-events: none;
}
.leaflet-marker-icon.leaflet-interactive,
.leaflet-image-layer.leaflet-interactive,
.leaflet-pane > svg path.leaflet-interactive,
svg.leaflet-image-layer.leaflet-interactive path {
pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */
pointer-events: auto;
}
/* visual tweaks */
.leaflet-container {
background: #ddd;
outline: 0;
}
.leaflet-container a {
color: #0078A8;
}
.leaflet-container a.leaflet-active {
outline: 2px solid orange;
}
.leaflet-zoom-box {
border: 2px dotted #38f;
background: rgba(255,255,255,0.5);
}
/* general typography */
.leaflet-container {
font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif;
}
/* general toolbar styles */
.leaflet-bar {
box-shadow: 0 1px 5px rgba(0,0,0,0.65);
border-radius: 4px;
}
.leaflet-bar a,
.leaflet-bar a:hover {
background-color: #fff;
border-bottom: 1px solid #ccc;
width: 26px;
height: 26px;
line-height: 26px;
display: block;
text-align: center;
text-decoration: none;
color: black;
}
.leaflet-bar a,
.leaflet-control-layers-toggle {
background-position: 50% 50%;
background-repeat: no-repeat;
display: block;
}
.leaflet-bar a:hover {
background-color: #f4f4f4;
}
.leaflet-bar a:first-child {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
}
.leaflet-bar a:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
border-bottom: none;
}
.leaflet-bar a.leaflet-disabled {
cursor: default;
background-color: #f4f4f4;
color: #bbb;
}
.leaflet-touch .leaflet-bar a {
width: 30px;
height: 30px;
line-height: 30px;
}
.leaflet-touch .leaflet-bar a:first-child {
border-top-left-radius: 2px;
border-top-right-radius: 2px;
}
.leaflet-touch .leaflet-bar a:last-child {
border-bottom-left-radius: 2px;
border-bottom-right-radius: 2px;
}
/* zoom control */
.leaflet-control-zoom-in,
.leaflet-control-zoom-out {
font: bold 18px 'Lucida Console', Monaco, monospace;
text-indent: 1px;
}
.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {
font-size: 22px;
}
/* layers control */
.leaflet-control-layers {
box-shadow: 0 1px 5px rgba(0,0,0,0.4);
background: #fff;
border-radius: 5px;
}
.leaflet-control-layers-toggle {
background-image: url(images/layers.png);
width: 36px;
height: 36px;
}
.leaflet-retina .leaflet-control-layers-toggle {
background-image: url(images/layers-2x.png);
background-size: 26px 26px;
}
.leaflet-touch .leaflet-control-layers-toggle {
width: 44px;
height: 44px;
}
.leaflet-control-layers .leaflet-control-layers-list,
.leaflet-control-layers-expanded .leaflet-control-layers-toggle {
display: none;
}
.leaflet-control-layers-expanded .leaflet-control-layers-list {
display: block;
position: relative;
}
.leaflet-control-layers-expanded {
padding: 6px 10px 6px 6px;
color: #333;
background: #fff;
}
.leaflet-control-layers-scrollbar {
overflow-y: scroll;
overflow-x: hidden;
padding-right: 5px;
}
.leaflet-control-layers-selector {
margin-top: 2px;
position: relative;
top: 1px;
}
.leaflet-control-layers label {
display: block;
}
.leaflet-control-layers-separator {
height: 0;
border-top: 1px solid #ddd;
margin: 5px -10px 5px -6px;
}
/* Default icon URLs */
.leaflet-default-icon-path {
background-image: url(images/marker-icon.png);
}
/* attribution and scale controls */
.leaflet-container .leaflet-control-attribution {
background: #fff;
background: rgba(255, 255, 255, 0.7);
margin: 0;
}
.leaflet-control-attribution,
.leaflet-control-scale-line {
padding: 0 5px;
color: #333;
}
.leaflet-control-attribution a {
text-decoration: none;
}
.leaflet-control-attribution a:hover {
text-decoration: underline;
}
.leaflet-container .leaflet-control-attribution,
.leaflet-container .leaflet-control-scale {
font-size: 11px;
}
.leaflet-left .leaflet-control-scale {
margin-left: 5px;
}
.leaflet-bottom .leaflet-control-scale {
margin-bottom: 5px;
}
.leaflet-control-scale-line {
border: 2px solid #777;
border-top: none;
line-height: 1.1;
padding: 2px 5px 1px;
font-size: 11px;
white-space: nowrap;
overflow: hidden;
-moz-box-sizing: border-box;
box-sizing: border-box;
background: #fff;
background: rgba(255, 255, 255, 0.5);
}
.leaflet-control-scale-line:not(:first-child) {
border-top: 2px solid #777;
border-bottom: none;
margin-top: -2px;
}
.leaflet-control-scale-line:not(:first-child):not(:last-child) {
border-bottom: 2px solid #777;
}
.leaflet-touch .leaflet-control-attribution,
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
box-shadow: none;
}
.leaflet-touch .leaflet-control-layers,
.leaflet-touch .leaflet-bar {
border: 2px solid rgba(0,0,0,0.2);
background-clip: padding-box;
}
/* popup */
.leaflet-popup {
position: absolute;
text-align: center;
margin-bottom: 20px;
}
.leaflet-popup-content-wrapper {
padding: 1px;
text-align: left;
border-radius: 12px;
}
.leaflet-popup-content {
margin: 13px 19px;
line-height: 1.4;
}
.leaflet-popup-content p {
margin: 18px 0;
}
.leaflet-popup-tip-container {
width: 40px;
height: 20px;
position: absolute;
left: 50%;
margin-left: -20px;
overflow: hidden;
pointer-events: none;
}
.leaflet-popup-tip {
width: 17px;
height: 17px;
padding: 1px;
margin: -10px auto 0;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
transform: rotate(45deg);
}
.leaflet-popup-content-wrapper,
.leaflet-popup-tip {
background: white;
color: #333;
box-shadow: 0 3px 14px rgba(0,0,0,0.4);
}
.leaflet-container a.leaflet-popup-close-button {
position: absolute;
top: 0;
right: 0;
padding: 4px 4px 0 0;
border: none;
text-align: center;
width: 18px;
height: 14px;
font: 16px/14px Tahoma, Verdana, sans-serif;
color: #c3c3c3;
text-decoration: none;
font-weight: bold;
background: transparent;
}
.leaflet-container a.leaflet-popup-close-button:hover {
color: #999;
}
.leaflet-popup-scrolled {
overflow: auto;
border-bottom: 1px solid #ddd;
border-top: 1px solid #ddd;
}
.leaflet-oldie .leaflet-popup-content-wrapper {
-ms-zoom: 1;
}
.leaflet-oldie .leaflet-popup-tip {
width: 24px;
margin: 0 auto;
-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";
filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);
}
.leaflet-oldie .leaflet-popup-tip-container {
margin-top: -1px;
}
.leaflet-oldie .leaflet-control-zoom,
.leaflet-oldie .leaflet-control-layers,
.leaflet-oldie .leaflet-popup-content-wrapper,
.leaflet-oldie .leaflet-popup-tip {
border: 1px solid #999;
}
/* div icon */
.leaflet-div-icon {
background: #fff;
border: 1px solid #666;
}
/* Tooltip */
/* Base styles for the element that has a tooltip */
.leaflet-tooltip {
position: absolute;
padding: 6px;
background-color: #fff;
border: 1px solid #fff;
border-radius: 3px;
color: #222;
white-space: nowrap;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
pointer-events: none;
box-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.leaflet-tooltip.leaflet-clickable {
cursor: pointer;
pointer-events: auto;
}
.leaflet-tooltip-top:before,
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
position: absolute;
pointer-events: none;
border: 6px solid transparent;
background: transparent;
content: "";
}
/* Directions */
.leaflet-tooltip-bottom {
margin-top: 6px;
}
.leaflet-tooltip-top {
margin-top: -6px;
}
.leaflet-tooltip-bottom:before,
.leaflet-tooltip-top:before {
left: 50%;
margin-left: -6px;
}
.leaflet-tooltip-top:before {
bottom: 0;
margin-bottom: -12px;
border-top-color: #fff;
}
.leaflet-tooltip-bottom:before {
top: 0;
margin-top: -12px;
margin-left: -6px;
border-bottom-color: #fff;
}
.leaflet-tooltip-left {
margin-left: -6px;
}
.leaflet-tooltip-right {
margin-left: 6px;
}
.leaflet-tooltip-left:before,
.leaflet-tooltip-right:before {
top: 50%;
margin-top: -6px;
}
.leaflet-tooltip-left:before {
right: 0;
margin-right: -12px;
border-left-color: #fff;
}
.leaflet-tooltip-right:before {
left: 0;
margin-left: -12px;
border-right-color: #fff;
}

File diff suppressed because one or more lines are too long

View file

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

View file

@ -0,0 +1,83 @@
Leaflet-Semicircle.
-------------------
Allows drawing semicircles on leaflet maps.
It's an extension of Leaflet's [`L.Circle`](http://leafletjs.com/reference-1.1.0.html#circle),
and behaves like `L.Circle` if the a semicircle of almost 360 degrees is displayed.
Updated for use with leaflet 1.1.0.
## Provided classes: ##
<table>
<tr>
<td>
<code>L.SemiCircle</code>/
<code>L.SemiCircleMarker</code><br />
factories: <code>L.semiCircle</code>/<code>L.SemiCircleMarker</code>
</td>
<td>
Options:<br />
<code>startAngle</code>: start angle of the semicircle <br />
<code>stopAngle</code>: stop angle of the semicircle<br />
Angles are defined like compass courses: 0 = north, 90 = east, etc.
</td>
</tr>
## Provided methods: ##
<table>
<tr>
<td><code>L.SemiCircle.setStartAngle(angle)</code></td>
<td>Set the start angle of the circle to <code>angle</code> and redraw.</td>
</tr>
<tr>
<td><code>L.Circle.setStopAngle(angle)</code></td>
<td>Set the stop angle of the circle to <code>angle</code> and redraw.</td>
</tr>
<tr>
<td><code>L.Circle.setDirection(direction, size)</code></td>
<td>Set the <code>startAngle</code> to <code>direction - (0.5 * size)</code> and the <code>stopAngle</code> to <code>direction + (0.5 * size)</code> and redraw.</td>
</tr>
</table>
## Usage:
The plugin provides two ways to only display a part of the circle:
1. Use the `options` map and set `startAngle` and `stopAngle`.
2. Use `setDirection(direction, size)` to display a semicircle of `size` degrees at `direction`.
## Example:
[Live demo](http://jieter.github.com/Leaflet-semicircle/examples/semicircle.html)
Using `options.startAngle` and `options.stopAngle`:
```
L.semiCircle([51.5, -0.09], {
radius: 500,
startAngle: 45,
stopAngle: 135
}).addTo(map);
```
Draw the same semicircle using `setDirection(direction, size)`:
```
L.semiCircle([51.5, -0.09], {radius: 500})
.setDirection(90, 90)
.addTo(map);
```
## Screenshot:
[Live demo](http://jieter.github.com/Leaflet-semicircle/examples/semicircle.html)
![Semicircles screenshot](screenshot.png)
## Changelog
### 2.0.2 (2017-09-01)
- Fixed #24: instance check for canvas renderer
### 2.0.1 (2017-07-22)
- Fixed #14: Poleward displacement of circle center when radius is large.
### 2.0.0 (2017-07-09)
- Changed the API to stand-alone classes rather than overwriting `L.Circle` with an extension of itself.
- Added support for Leaflet 1.1.0

View file

@ -0,0 +1,196 @@
/**
* Semicircle extension for L.Circle.
* Jan Pieter Waagmeester <jieter@jieter.nl>
*
* This version is tested with leaflet 1.0.2
*/
(function (factory) {
if (typeof define === 'function' && define.amd) {
// AMD
define(['leaflet'], factory);
} else if (typeof module !== 'undefined' && typeof require !== 'undefined') {
// Node/CommonJS
module.exports = factory(require('leaflet'));
} else {
// Browser globals
if (typeof window.L === 'undefined') {
throw 'Leaflet must be loaded first';
}
factory(window.L);
}
})(function (L) {
var DEG_TO_RAD = Math.PI / 180;
// make sure 0 degrees is up (North) and convert to radians.
function fixAngle (angle) {
return (angle - 90) * DEG_TO_RAD;
}
// rotate point [x + r, y+r] around [x, y] by `angle` radians.
function rotated (p, angle, r) {
return p.add(
L.point(Math.cos(angle), Math.sin(angle)).multiplyBy(r)
);
}
L.Point.prototype.rotated = function (angle, r) {
return rotated(this, angle, r);
};
var semicircle = {
options: {
startAngle: 0,
stopAngle: 359.9999
},
startAngle: function () {
if (this.options.startAngle < this.options.stopAngle) {
return fixAngle(this.options.startAngle);
} else {
return fixAngle(this.options.stopAngle);
}
},
stopAngle: function () {
if (this.options.startAngle < this.options.stopAngle) {
return fixAngle(this.options.stopAngle);
} else {
return fixAngle(this.options.startAngle);
}
},
setStartAngle: function (angle) {
this.options.startAngle = angle;
return this.redraw();
},
setStopAngle: function (angle) {
this.options.stopAngle = angle;
return this.redraw();
},
setDirection: function (direction, degrees) {
if (degrees === undefined) {
degrees = 10;
}
this.options.startAngle = direction - (degrees / 2);
this.options.stopAngle = direction + (degrees / 2);
return this.redraw();
},
getDirection: function () {
return this.stopAngle() - (this.stopAngle() - this.startAngle()) / 2;
},
isSemicircle: function () {
var startAngle = this.options.startAngle,
stopAngle = this.options.stopAngle;
return (
!(startAngle === 0 && stopAngle > 359) &&
!(startAngle === stopAngle)
);
},
_containsPoint: function (p) {
function normalize (angle) {
while (angle <= -Math.PI) {
angle += 2.0 * Math.PI;
}
while (angle > Math.PI) {
angle -= 2.0 * Math.PI;
}
return angle;
}
var angle = Math.atan2(p.y - this._point.y, p.x - this._point.x);
var nStart = normalize(this.startAngle());
var nStop = normalize(this.stopAngle());
if (nStop <= nStart) {
nStop += 2.0 * Math.PI;
}
if (angle <= nStart) {
angle += 2.0 * Math.PI;
}
return (
nStart < angle && angle <= nStop &&
p.distanceTo(this._point) <= this._radius + this._clickTolerance()
);
}
};
L.SemiCircle = L.Circle.extend(semicircle);
L.SemiCircleMarker = L.CircleMarker.extend(semicircle);
L.semiCircle = function (latlng, options) {
return new L.SemiCircle(latlng, options);
};
L.semiCircleMarker = function (latlng, options) {
return new L.SemiCircleMarker(latlng, options);
};
var _updateCircleSVG = L.SVG.prototype._updateCircle;
var _updateCircleCanvas = L.Canvas.prototype._updateCircle;
L.SVG.include({
_updateCircle: function (layer) {
// If we want a circle, we use the original function
if (!(layer instanceof L.SemiCircle || layer instanceof L.SemiCircleMarker) ||
!layer.isSemicircle()) {
return _updateCircleSVG.call(this, layer);
}
if (layer._empty()) {
return this._setPath(layer, 'M0 0');
}
var p = layer._map.latLngToLayerPoint(layer._latlng),
r = layer._radius,
r2 = Math.round(layer._radiusY || r),
start = p.rotated(layer.startAngle(), r),
end = p.rotated(layer.stopAngle(), r);
var largeArc = (layer.options.stopAngle - layer.options.startAngle >= 180) ? '1' : '0';
var d = 'M' + p.x + ',' + p.y +
// line to first start point
'L' + start.x + ',' + start.y +
'A ' + r + ',' + r2 + ',0,' + largeArc + ',1,' + end.x + ',' + end.y +
' z';
this._setPath(layer, d);
}
});
L.Canvas.include({
_updateCircle: function (layer) {
// If we want a circle, we use the original function
if (!(layer instanceof L.SemiCircle || layer instanceof L.SemiCircleMarker) ||
!layer.isSemicircle()) {
return _updateCircleCanvas.call(this, layer);
}
if (!this._drawing || layer._empty()) { return; }
var p = layer._point,
ctx = this._ctx,
r = layer._radius,
s = (layer._radiusY || r) / r,
start = p.rotated(layer.startAngle(), r);
if (s !== 1) {
ctx.save();
ctx.scale(1, s);
}
ctx.beginPath();
ctx.moveTo(p.x, p.y);
ctx.lineTo(start.x, start.y);
ctx.arc(p.x, p.y, r, layer.startAngle(), layer.stopAngle());
ctx.lineTo(p.x, p.y);
if (s !== 1) {
ctx.restore();
}
this._fillStroke(ctx, layer);
}
});
});

299
www/sunders/add-lists.php Normal file
View file

@ -0,0 +1,299 @@
<?php
// Convert the content of the symbology JSON file to HTML.
function addListSymbology($jsonPath, $i18n, $i18nDefault) {
global $pathToWebFolder;
$decodedJSON = getDecodedJSON($jsonPath);
echo '<div class="slider-item slider-list">';
// Loop over the lists to display.
foreach($decodedJSON as $listObject) {
echo '<div class="slider-list-title">'.translate($i18n, $i18nDefault, $listObject->{'listTitle'}, [], [], []).'</div>';
// Loop over the entries of the current list.
foreach($listObject->{'listEntries'} as $listEntryObject) {
echo '<div class="slider-list-entry">
<div class="w-45">';
// Loop over the icons of the current list entry.
foreach($listEntryObject->{'icons'} as $icon) {
echo '<img src="'.$pathToWebFolder.'images/'.$icon->{'src'}.'" alt="'.translate($i18n, $i18nDefault, $icon->{'alt'}, [], [], []).'">';
}
echo '</div>
<div class="pl-20 w-315">'.translate($i18n, $i18nDefault, $listEntryObject->{'description'}, [], [], []).'</div>
</div>';
}
}
echo '</div>';
}
// Convert the content of the manual JSON file to HTML.
function addListManual($jsonPath, $i18n, $i18nDefault) {
global $pathToWebFolder;
$decodedJSON = getDecodedJSON($jsonPath);
echo '<div class="slider-item slider-list text-small">';
// Loop over the lists to display.
foreach($decodedJSON as $listObject) {
echo '<div class="slider-list-title">'.translate($i18n, $i18nDefault, $listObject->{'listTitle'}, [], [], []).'</div>';
// Loop over the entries of the current list.
foreach($listObject->{'listEntries'} as $listEntryObject) {
$keysAsHTMLArray = array();
$valuesAsHTMLArray = array();
// Loop over the keys of the current list entry.
foreach($listEntryObject->{'keys'} as $key) {
if (is_null($key->{'href'})) {
array_push($keysAsHTMLArray, translate($i18n, $i18nDefault, $key->{'key'}, [], [], []));
} else {
array_push($keysAsHTMLArray, translate($i18n, $i18nDefault, $key->{'key'}, [$key->{'href'}], [], []));
}
}
// Loop over the values of the current list entry.
foreach($listEntryObject->{'values'} as $value) {
if (is_null($value->{'href'})) {
array_push($valuesAsHTMLArray, translate($i18n, $i18nDefault, $value->{'value'}, [], [], []));
} else {
array_push($valuesAsHTMLArray, translate($i18n, $i18nDefault, $value->{'value'}, [$value->{'href'}], [], []));
}
}
echo '<div class="slider-list-entry">
<div class="w-120">';
echo implode('<br>', $keysAsHTMLArray);
echo '</div>';
// Some lists have an icon column.
if ($listObject->{'isListWithIcons'}) {
echo '<div class="pl-20 w-240">'
.implode('<br>', $valuesAsHTMLArray).'
</div>
<div class="w-20">';
$iconObject = $listEntryObject->{'icon'};
if (!is_null($iconObject)){
echo '<img src="'.$pathToWebFolder.'images/'.$iconObject->{'src'}.'" alt="'.translate($i18n, $i18nDefault, $iconObject->{'alt'}, [], [], []).'">';
}
} else {
echo '<div class="pl-20 w-260">'
.implode('<br>', $valuesAsHTMLArray).'';
}
echo '</div>
</div>';
}
// Some lists end with examples, i.e. 3 images with descriptions.
if (!is_null($listObject->{'examples'})) {
$examplesObject = $listObject->{'examples'};
$examplesObjectImages = $examplesObject->{'images'};
$examplesObjectDescriptions = $examplesObject->{'descriptions'};
echo '<div class="slider-list-entry">
<div>
<br>'.translate($i18n, $i18nDefault, 'examples', [], [], []).':
</div>
</div>
<div class="slider-list-entry">
<div class="example-boxes">';
for($i = 0; $i < count($examplesObjectImages); ++$i) {
$linesAsHTMLArray = array();
foreach($examplesObjectDescriptions[$i]->{'lines'} as $line) {
array_push($linesAsHTMLArray, translate($i18n, $i18nDefault, $line, [], [], []));
}
echo '<div class="example-box">
<div class="example-box-image">
<img src="'.$pathToWebFolder.'images/'.$examplesObjectImages[$i]->{'src'}.'" alt="'.translate($i18n, $i18nDefault, $examplesObjectImages[$i]->{'alt'}, [], [], []).'">
</div>
<div class="example-box-description">'
.implode('<br>', $linesAsHTMLArray).'
</div>
</div>';
}
echo ' </div>
</div>';
}
}
echo '</div>';
}
// Convert the content of the links JSON file to HTML.
/* function addListLinks($jsonPath, $i18n, $i18nDefault) {
global $pathToWebFolder;
$expandSectionCounter = 0;
$decodedJSON = getDecodedJSON($jsonPath);
echo '<div class="slider-item slider-list">';
// Loop over the lists to display.
foreach($decodedJSON as $listObject) {
echo '<div class="slider-list-title">'.translate($i18n, $i18nDefault, $listObject->{'listTitle'}, [], [], []).'</div>';
// Loop over the sections of the current list.
foreach($listObject->{'sections'} as $sectionObject) {
if ($sectionObject->{'isExpandable'}) {
$sectionToggleChecked = '';
if ($sectionObject->{'isExpandedByDefault'}) {
$sectionToggleChecked = 'checked="checked"';
}
echo '<input class="slider-list-section-toggle" id="section'.$expandSectionCounter.'-id" type="checkbox" '.$sectionToggleChecked.$
<label class="slider-list-section" for="section'.$expandSectionCounter++.'-id"> '.translate($i18n, $i18nDefault, $sectionOb$
}
echo '<div>';
// Loop over the entries of the current section.
foreach($sectionObject->{'listEntries'} as $listEntryObject) {
echo '<div class="slider-list-entry">
<div class="w-20">';
// Choose lock icon according to https or http connection.
if (substr($listEntryObject->{'href'}, 0, 5) == 'https') {
echo '<img src="'.$pathToWebFolder.'images/lock-secure.png" alt="'.translate($i18n, $i18nDefault, 'secure-alt', [], [], [])$
} else {
echo '<img src="'.$pathToWebFolder.'images/lock-insecure.png" alt="'.translate($i18n, $i18nDefault, 'insecure-alt', [], [],$
}
echo '</div>
<div class="pl-20 w-340">
[ '.htmlentities($listEntryObject->{'sourceText'}).' ]<br><a href="'.$listEntryObject->{'href'}.'">'.htmlentities($li$
</div>
</div>';
}
echo '</div>';
}
}
echo '</div>';
}
*/
// Convert the content of the links JSON file to HTML.
function addListLinks($jsonPath, $i18n, $i18nDefault) {
global $pathToWebFolder;
$expandSectionCounter = 0;
$decodedJSON = getDecodedJSON($jsonPath);
echo '<div class="slider-item slider-list">';
// Loop over the lists to display.
foreach($decodedJSON as $listObject) {
echo '<div class="slider-list-title">'.translate($i18n, $i18nDefault, $listObject->{'listTitle'}, [], [], []).'</div>';
// Loop over the sections of the current list.
foreach($listObject->{'sections'} as $sectionObject) {
if ($sectionObject->{'isExpandable'}) {
$sectionToggleChecked = '';
if ($sectionObject->{'isExpandedByDefault'}) {
$sectionToggleChecked = 'checked="checked"';
}
echo '<input class="slider-list-section-toggle" id="section'.$expandSectionCounter.'-id" type="checkbox" '.$sectionToggleChecked.'>
<label class="slider-list-section" for="section'.$expandSectionCounter++.'-id"> '.translate($i18n, $i18nDefault, $sectionObject->{'sectionTitle'}, [], [], []).'</label>';
}
echo '<div>';
// Loop over the entries of the current section.
foreach($sectionObject->{'listEntries'} as $listEntryObject) {
echo '<div class="slider-list-entry">
<div class="pl-20">
[ '.htmlentities($listEntryObject->{'sourceText'}).' ]<br><a href="'.$listEntryObject->{'href'}.'">'.htmlentities($listEntryObject->{'linkText'}).'</a>
</div>
</div>';
}
echo '</div>';
}
}
echo '</div>';
}
// Convert the content of the credits and licenses JSON file to HTML.
function addListCredits($jsonPath, $i18n, $i18nDefault) {
global $pathToWebFolder;
$decodedJSON = getDecodedJSON($jsonPath);
// Loop over the lists to display.
foreach($decodedJSON as $listObject) {
echo '<div class="slider-footer-title">'
.translate($i18n, $i18nDefault, $listObject->{'listTitle'}, [], [], []).'
</div>';
// Loop over the entries of the current list.
foreach($listObject->{'listEntries'} as $listEntryObject) {
echo '<div class="slider-credit-type">'
.translate($i18n, $i18nDefault, $listEntryObject->{'type'}, [], [], []).'
</div>';
// Loop over the credits of the current list entry.
foreach($listEntryObject->{'credits'} as $credit) {
$hrefCredit = $credit->{'href-credit'};
$hrefLicense = $credit->{'href-license'};
if (substr($hrefCredit, 0, 4) != 'http') {
$hrefCredit = $pathToWebFolder.$hrefCredit;
}
if (substr($hrefLicense, 0, 4) != 'http') {
$hrefLicense = $pathToWebFolder.$hrefLicense;
}
echo '<div>
<a href="'.$hrefCredit.'">'.htmlentities($credit->{'credit'}).'</a> [<a href="'.$hrefLicense.'">'.htmlentities($credit->{'license'}).'</a>]
</div>';
}
}
}
}
// Create a HTML list that contains the supported languages (i18n).
function addListLanguages($initialLanguage, $i18n, $i18nDefault) {
global $pathToWebFolder, $embedPerma;
$supportedLanguages = [
'de' => 'deutsch',
'en' => 'english',
'es' => 'espa&#x00F1;ol',
'fr' => 'fran&#x00E7;ais',
'it' => 'italiano',
'ru' => '&#x0440;&#x0443;&#x0441;&#x0441;&#x043A;&#x0438;&#x0439;'
];
echo '<input class="language-toggle-input" type="checkbox" id="language-id">
<label class="language-toggle-button" for="language-id">
<ul class="bar-button" id="language">
<li>
<div title="'.translate($i18n, $i18nDefault, 'language-button-alt', [], [], []).'">&nbsp;</div>
<ul>';
foreach ($supportedLanguages as $languageID => $languageDisplay) {
$classLanguangeCurrent = '';
if ($languageID == $initialLanguage) {
$classLanguangeCurrent = ' class="language-current"';
}
echo ' <a href="#" onClick="permalink(\''.$languageID.'\', '.$embedPerma.');return false;"><li'.$classLanguangeCurrent.'>'.$languageDisplay.'</li></a>';
}
echo ' </ul>
</li>
</ul>
</label>';
}
?>

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

445
www/sunders/camera.php Normal file
View file

@ -0,0 +1,445 @@
<?php
include $pathToWebFolder.'config.php';
define('MAX_POINTS_FOR_QUICKHULL', 3000);
class OsmPoint {
var $id;
var $lat;
var $lon;
function __construct($valId, $valLat, $valLon) {
$this->id = $valId;
$this->lat = $valLat;
$this->lon = $valLon;
}
}
function mergeNeighbor(&$clusterGrid, $posCell, $pos) {
global $divDiag2;
if (!array_key_exists($pos, $clusterGrid)) {
/* the neighbor is empty */
return;
}
$neighbor = $clusterGrid[$pos];
if ($neighbor['count'] == 0) {
/* The neighbor is merged to an other cell, yet */
return;
}
$cell = $clusterGrid[$posCell];
/* Calculate the (square of) distance from the cell to its neighbor */
$lonDist = ($cell['longitude']/$cell['count']) - ($neighbor['longitude']/$neighbor['count']);
$latDist = ($cell['latitude'] /$cell['count']) - ($neighbor['latitude'] /$neighbor['count']);
$dist = ($lonDist * $lonDist) + ($latDist * $latDist);
if ($dist < $divDiag2 / 10) {
$count = $cell['count'] + $neighbor['count'];
$clusterGrid[$posCell]['latitude'] = $cell['latitude'] + $neighbor['latitude'];
$clusterGrid[$posCell]['longitude'] = $cell['longitude'] + $neighbor['longitude'];
$clusterGrid[$posCell]['count'] = $count;
$clusterGrid[$posCell]['points'] = array_merge($cell['points'], $neighbor['points']);
/* Invalidate the merged neighbor */
$clusterGrid[$pos]['count'] = 0;
}
}
function mergeNeighborhood(&$clusterGrid, $pos) {
global $divWCount, $divHCount;
if ($clusterGrid[$pos]['count'] == 0) {
/* cell merged yet */
return;
}
$latLon = explode(',', $clusterGrid[$pos]['grid'] );
if ($latLon[0] > 0 && $latLon[1] < $divHCount - 1) {
if ($latLon[0] > 0) {
$posNeigh = ($latLon[0] - 1) . ',' . ($latLon[1] + 1);
mergeNeighbor($clusterGrid, $pos, $posNeigh);
}
$posNeigh = $latLon[0] . ',' . ($latLon[1] + 1);
mergeNeighbor($clusterGrid, $pos, $posNeigh);
if ($latLon[0] < $divWCount - 1) {
$posNeigh = ($latLon[0] + 1) . ',' . ($latLon[1] + 1);
mergeNeighbor($clusterGrid, $pos, $posNeigh);
}
}
if ($latLon[0] < $divWCount - 1) {
$posNeigh = ($latLon[0] + 1) . ',' . $latLon[1];
mergeNeighbor($clusterGrid, $pos, $posNeigh);
}
}
/* Recursive calculation of the quick hull algo
$isBottom : 1 if bottom point is searched, -1 if top point is searched */
function quickHullCalc(&$pointList, $count, $minPoint, $maxPoint, $isBottom) {
$msg = 'Quick count='.$count.', min=('.$minPoint->id.','.$minPoint->lat.','.$minPoint->lon.'), max=('.$minPoint->id.','.$minPoint->lat.','.$minPoint->lon.'), isBottom='.$isBottom;
$farthestPoint = null;
$farthestDist = 0;
$outsideList = array();
$outsideListCount = 0;
if ($maxPoint->lon != $minPoint->lon) {
/* Get the line equation as y = mx + p */
$m = ($maxPoint->lat - $minPoint->lat) / ($maxPoint->lon - $minPoint->lon);
$p = ($maxPoint->lat * $minPoint->lon - $minPoint->lat * $maxPoint->lon) / ($minPoint->lon - $maxPoint->lon);
} else {
/* The line equation is y = p */
$m = null;
$p = $minPoint->lat;
$coef = (($minPoint->lon > $maxPoint->lon) ? 1 : -1);
}
/* For each point, check whether :
- it is on the right side of the line
- it is the farthest from the line
*/
foreach ($pointList as $point) {
if (isset($m)) {
$dist = $isBottom * ($m * $point->lon - $point->lat + $p);
} else {
$dist = $coef * ($point->lon - $p);
}
if ($dist > 0
&& $point->id != $minPoint->id
&& $point->id != $maxPoint->id) {
array_push($outsideList, $point);
$outsideListCount++;
if ($dist > $farthestDist) {
$farthestPoint = $point;
$farthestDist = $dist;
}
}
}
if ($outsideListCount == 0) {
return array($minPoint);
} else if ($outsideListCount == 1) {
return array($minPoint, $outsideList[0]);
} else {
return array_merge(
quickHullCalc($outsideList, $outsideListCount, $minPoint, $farthestPoint, $isBottom),
quickHullCalc($outsideList, $outsideListCount, $farthestPoint, $maxPoint, $isBottom));
}
}
/* This function receives a list of points [lat, lon] and returns a list of points [lat, lon]
representing the minimal convex polygon containing the points */
function quickHull(&$pointList, $count) {
$msg= 'Quick count='.$count;
if ($count == 0) {
return array();
} else if ($count == 1) {
return array($pointList[0]);
} else if ($count == 2) {
return array($pointList[0], $pointList[1]);
}
/* retrieves the min and max points on the x axe */
$minPoint = $pointList[0];
$maxPoint = $pointList[0];
foreach ($pointList as $point) {
if ($point->lon < $minPoint->lon || ($point->lon == $minPoint->lon && $point->lat < $minPoint->lat)) {
$minPoint = $point;
}
if ($point->lon > $maxPoint->lon || ($point->lon == $maxPoint->lon && $point->lat > $maxPoint->lat)) {
$maxPoint = $point;
}
}
$bottomPoints = quickHullCalc($pointList, $count, $minPoint, $maxPoint, 1);
$topPoints = quickHullCalc($pointList, $count, $maxPoint, $minPoint, -1);
return array_merge($bottomPoints, $topPoints);
}
$GRID_MAX_ZOOM = 16;
$GRID_CELL_PIXEL = 90;
/* Check if parameters are not empty */
if ( !array_key_exists('bbox', $_GET)
|| !array_key_exists('zoom', $_GET)
|| !array_key_exists('width', $_GET)
|| !array_key_exists('height', $_GET)) {
header('Content-type: application/json');
$result = '{"error":"bbox, zoom, width and height parameters are required. '
.(array_key_exists('bbox', $_GET) ? '' : 'bbox is empty. ')
.(array_key_exists('zoom', $_GET) ? '' : 'zoom is empty. ')
.(array_key_exists('width', $_GET) ? '' : 'width is empty. ')
.(array_key_exists('height', $_GET) ? '' : 'height is empty. ')
.'"}';
echo $result;
exit;
}
/* Check zoom */
$zoom = $_GET['zoom'];
if ( !is_numeric($zoom)
|| intval($zoom) < 1
|| intval($zoom) > 19) {
header('Content-type: application/json');
$result = '{"error":"unexpected zoom value : '
.htmlentities($zoom)
.'"}';
echo $result;
exit;
}
/* Check bounds box --> bbox=boundsSW.lng,boundsSW.lat,boundsNE.lng,boundsNE.lat */
$bbox = explode(',', $_GET['bbox']);
if ( !is_numeric($bbox[0]) || $bbox[0] > 180 // 0 = SW.lng
|| !is_numeric($bbox[2]) || $bbox[2] < -180 // 2 = NE.lng
|| !is_numeric($bbox[1]) || $bbox[1] < -90 || $bbox[1] > 90 // 1 = SW.lat
|| !is_numeric($bbox[3]) || $bbox[3] < -90 || $bbox[3] > 90) { // 3 = NE.lat
header('Content-type: application/json');
$result = '{"error":"unexpected bbox longitude and latitude values : '
.'lon ['.htmlentities($bbox[0]).', '.htmlentities($bbox[2]).'], '
.'lat ['.htmlentities($bbox[1]).', '.htmlentities($bbox[3]).']'
.'"}';
echo $result;
exit;
}
if ($bbox[0] >= $bbox[2]) { // 0 = SW.lng | 2 = NE.lng
header('Content-type: application/json');
$result = '{"error":"min longitude greater than max longitude : '
.'lon ['.htmlentities($bbox[0]).', '.htmlentities($bbox[2]).']'
.'"}';
echo $result;
exit;
}
if ($bbox[1] >= $bbox[3]) { // 1 = SW.lat | 3 = NE.lat
header('Content-type: application/json');
$result = '{"error":"min latitude greater than max latitude : '
.'lat ['.htmlentities($bbox[1]).', '.htmlentities($bbox[3]).']'
.'"}';
echo $result;
exit;
}
$lonMin = $bbox[0]; // 0 = SW.lng
$lonMax = $bbox[2]; // 2 = NE.lng
$latMin = $bbox[1]; // 1 = SW.lat
$latMax = $bbox[3]; // 3 = NE.lat
$pixelWidth = (int) $_GET['width'];
$pixelHeight = (int) $_GET['height'];
if ($pixelWidth == 0 || $pixelHeight == 0) {
header('Content-type: application/json');
$result = '{"error":"width or height is null : '
.htmlentities($pixelWidth).'x'.htmlentities($pixelHeight)
.'"}';
echo $result;
exit;
}
$lonWidth = $lonMax - $lonMin; // NE.lng - SW.lng
$latHeight = $latMax - $latMin; // NE.lat - SW.lat
$divWCount = ((int) ($pixelWidth / $GRID_CELL_PIXEL)) + 1;
$divHCount = ((int) ($pixelHeight / $GRID_CELL_PIXEL)) + 1;
$divWidth = $lonWidth / $divWCount;
$divHeight = $latHeight / $divHCount;
$divDiag2 = ($divWidth * $divWidth) + ($divHeight * $divHeight);
/* Connect to database */
$mysqli = new mysqli(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWD, MYSQL_DB);
if($mysqli->connect_errno) {
header('Content-type: application/json');
$result = '{"error":"error while connecting to db : ' . $mysqli->error . '"}';
echo $result;
exit;
}
$rqtLonMin = $lonMin; // SW.lng
$rqtLonMax = $lonMax; // NE.lng
/* Indicates whether the map displays the -180/180° longitude */
if ($rqtLonMax - $rqtLonMin > 360) {
$rqtLonMin = -180;
$rqtLonMax = 180;
}
/* Select the nodes to be returned, and cluster them on a grid if necessary */
if ($rqtLonMin >= -180 && $lonMax <= 180) {
$sql='SELECT id, latitude, longitude
FROM position
WHERE latitude between ? and ?
AND longitude between ? and ?';
} else {
$sql='SELECT id, latitude, longitude
FROM position
WHERE latitude between ? and ?
AND (longitude between ? and 1800000000 OR longitude between -1800000000 and ?)';
while ($rqtLonMin < -180) {
$rqtLonMin += 360;
}
while ($rqtLonMax > 180) {
$rqtLonMax -= 360;
}
}
$rqtLonMin = bcmul($rqtLonMin, 10000000, 0); // SW.lng
$rqtLonMax = bcmul($rqtLonMax, 10000000, 0); // NE.lng
$rqtLatMin = bcmul($latMin, 10000000, 0); // SW.lat
$rqtLatMax = bcmul($latMax, 10000000, 0); // NE.lat
$resArray = array();
$nbFetch = 0;
if ($stmt = $mysqli->prepare($sql)) {
$stmt->bind_param('iiii', $rqtLatMin, $rqtLatMax, $rqtLonMin, $rqtLonMax); // SW.lat, NE.lat, SW.lng, NE.lng
$stmt->execute();
$stmt->bind_result($id, $latitude, $longitude);
while ($stmt->fetch()) {
$nbFetch++;
$latitude = bcdiv($latitude, 10000000, 7);
$longitude = bcdiv($longitude, 10000000, 7);
while ($longitude < $lonMin) { // $lonMin = SW.lng
$longitude += 360;
}
while ($longitude > $lonMax) { // $lonMax = NE.lng
$longitude -= 360;
}
/* Initialize the current point */
if ($zoom >= $GRID_MAX_ZOOM) {
array_push($resArray, array(
'points' => array(new OsmPoint($id, $latitude, $longitude)),
'latitude' => $latitude,
'longitude' => $longitude,
'count' => 1 ));
} else {
$posLat = (int) (($latitude - $latMin) / $divHeight); // $latMin = SW.lat
$posLon = (int) (($longitude - $lonMin) / $divWidth); // $lonMin = SW.lng
$pos = $posLon.','.$posLat;
if (!array_key_exists($pos, $resArray)) {
$resArray[$pos] = array(
'points' => array(),
'latitude' => 0,
'longitude' => 0,
'count' => 0,
'grid' => $pos);
}
$elt = new OsmPoint($id, $latitude, $longitude);
array_push($resArray[$pos]['points'], $elt);
/* Increment the number of points */
$resArray[$pos]['count']++;
$resArray[$pos]['latitude'] += $latitude;
$resArray[$pos]['longitude'] += $longitude;
}
}
$stmt->close();
} else {
$mysqli->close();
header('Content-type: application/json');
$result = '{"error":"Error while request : ' . $mysqli->error . '"}';
echo $result;
exit;
}
/* Unify some clusters if nodes center are near */
$pointsCount = 0;
if ($zoom < $GRID_MAX_ZOOM) {
foreach($resArray as $val) {
mergeNeighborhood($resArray, $val['grid']);
$pointsCount += $val['count'];
}
}
$result='[';
$separator='';
/* Writing selected points */
$sql='SELECT k, v
FROM tag
WHERE id = ?
AND k NOT IN ("lat", "lon")';
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('d', $id);
$stmt->bind_result($k, $v);
/* Writing grouped items or not */
foreach($resArray as $val) {
if ($val['count'] > 0) {
$result = $result.$separator
.'{"lat":"'.($val['latitude'] / $val['count']).'"'
.',"lon":"'.($val['longitude'] / $val['count']).'"';
if ($val['count'] == 1) {
$id = $val['points'][0]->id;
$result = $result.',"id":"'.$id.'"';
$stmt->execute();
while($stmt->fetch()) {
$result = $result.',"'.htmlentities($k).'":"'.htmlentities($v, ENT_COMPAT, 'UTF-8').'"';
}
} else {
$result = $result
.',"count":"'.$val['count'].'"'
.',"multi":"yes"'
.',"poly":[';
if ($pointsCount < MAX_POINTS_FOR_QUICKHULL) {
$convexPoly = quickHull($val['points'], $val['count']);
$sepPoly = '';
foreach($convexPoly as $point) {
$result = $result.$sepPoly.'{'
.'"lat":"'.$point->lat.'"'
.',"id":"'.$point->id.'"'
.',"lon":"'.$point->lon.'"}';
$sepPoly=',';
}
}
$result=$result.']';
}
$result = $result.'}';
$separator=',';
}
}
$stmt->close();
$result = $result . ']';
$mysqli->close();
header('Content-type: application/json; Charset : utf-8');
echo $result;
?>

View file

@ -0,0 +1,17 @@
<?php
define('DEFAULT_ZOOM', 15);
define('DEFAULT_LAT', 52.37672572);
define('DEFAULT_LON', 9.73787785);
define('DEFAULT_LANGUAGE', 'en');
define('DEFAULT_PIE', 'country');
define('DEFAULT_TIME', 'single');
define('MYSQL_HOST', 'localhost');
define('MYSQL_DB', 'camera');
define('MYSQL_USER', 'camselect');
define('MYSQL_PASSWD', null);
define('USE_STATISTICS', false);
?>

179
www/sunders/css/spinner.css Normal file
View file

@ -0,0 +1,179 @@
.spinner-bar {
display: flex;
justify-content: space-between;
width: 360px;
}
@keyframes spinner1 {
0% { opacity: 1; }
5% { opacity: 1; }
10% { opacity: 0.2; }
90% { opacity: 0.2; }
95% { opacity: 1; }
100% { opacity: 1; }
}
@keyframes spinner2 {
0% { opacity: 0.2; }
5% { opacity: 1; }
10% { opacity: 1; }
15% { opacity: 0.2; }
85% { opacity: 0.2; }
90% { opacity: 1; }
95% { opacity: 1; }
100% { opacity: 0.2; }
}
@keyframes spinner3 {
0% { opacity: 0.2; }
5% { opacity: 0.2; }
10% { opacity: 1; }
15% { opacity: 1; }
20% { opacity: 0.2; }
80% { opacity: 0.2; }
85% { opacity: 1; }
90% { opacity: 1; }
95% { opacity: 0.2; }
100% { opacity: 0.2; }
}
@keyframes spinner4 {
0% { opacity: 0.2; }
10% { opacity: 0.2; }
15% { opacity: 1; }
20% { opacity: 1; }
25% { opacity: 0.2; }
75% { opacity: 0.2; }
80% { opacity: 1; }
85% { opacity: 1; }
90% { opacity: 0.2; }
100% { opacity: 0.2; }
}
@keyframes spinner5 {
0% { opacity: 0.2; }
15% { opacity: 0.2; }
20% { opacity: 1; }
25% { opacity: 1; }
30% { opacity: 0.2; }
70% { opacity: 0.2; }
75% { opacity: 1; }
80% { opacity: 1; }
85% { opacity: 0.2; }
100% { opacity: 0.2; }
}
@keyframes spinner6 {
0% { opacity: 0.2; }
20% { opacity: 0.2; }
25% { opacity: 1; }
30% { opacity: 1; }
35% { opacity: 0.2; }
65% { opacity: 0.2; }
70% { opacity: 1; }
75% { opacity: 1; }
80% { opacity: 0.2; }
100% { opacity: 0.2; }
}
@keyframes spinner7 {
0% { opacity: 0.2; }
25% { opacity: 0.2; }
30% { opacity: 1; }
35% { opacity: 1; }
40% { opacity: 0.2; }
60% { opacity: 0.2; }
65% { opacity: 1; }
70% { opacity: 1; }
75% { opacity: 0.2; }
100% { opacity: 0.2; }
}
@keyframes spinner8 {
0% { opacity: 0.2; }
30% { opacity: 0.2; }
35% { opacity: 1; }
40% { opacity: 1; }
45% { opacity: 0.2; }
55% { opacity: 0.2; }
60% { opacity: 1; }
65% { opacity: 1; }
70% { opacity: 0.2; }
100% { opacity: 0.2; }
}
@keyframes spinner9 {
0% { opacity: 0.2; }
35% { opacity: 0.2; }
40% { opacity: 1; }
45% { opacity: 1; }
50% { opacity: 0.2; }
55% { opacity: 1; }
60% { opacity: 1; }
65% { opacity: 0.2; }
100% { opacity: 0.2; }
}
@keyframes spinner10 {
0% { opacity: 0.2; }
40% { opacity: 0.2; }
45% { opacity: 1; }
55% { opacity: 1; }
60% { opacity: 0.2; }
100% { opacity: 0.2; }
}
.spinner {
animation-duration: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
}
.spinner1 {
animation-name: spinner1;
}
.spinner2 {
animation-name: spinner2;
}
.spinner3 {
animation-name: spinner3;
}
.spinner4 {
animation-name: spinner4;
}
.spinner5 {
animation-name: spinner5;
}
.spinner6 {
animation-name: spinner6;
}
.spinner7 {
animation-name: spinner7;
}
.spinner8 {
animation-name: spinner8;
}
.spinner9 {
animation-name: spinner9;
}
.spinner10 {
animation-name: spinner10;
}
/* MOBILE SETTINGS */
@media only screen and (max-width: 600px) {
.spinner-bar {
width: 100%;
padding-right: 20px;
padding-left: 20px;
}
}

588
www/sunders/css/stats.css Normal file
View file

@ -0,0 +1,588 @@
/* ICON COLORS */
.icon0-color { color: #6c5d53; } /* gray */
.icon1-color { color: #d40055; } /* red */
.icon2-color { color: #0055d4; } /* blue */
.icon3-color { color: #00d455; } /* green */
.iconxxx-color { color: #a1a1b3; } /* text color */
/* ICON FILL COLORS */
.icon0-fill { fill: #6c5d53; } /* gray */
.icon1-fill { fill: #d40055; } /* red */
.icon2-fill { fill: #0055d4; } /* blue */
.icon3-fill { fill: #00d455; } /* green */
.iconxxx-fill { fill: #a1a1b3; } /* text color */
/* ICON STROKE COLORS */
.icon0-stroke { stroke: #6c5d53; } /* gray */
.icon1-stroke { stroke: #d40055; } /* red */
.icon2-stroke { stroke: #0055d4; } /* blue */
.icon3-stroke { stroke: #00d455; } /* green */
.iconxxx-stroke { stroke: #a1a1b3; } /* text color */
/* ICON BACKGROUND COLORS */
.icon0-bg { background: #6c5d53; } /* gray */
.icon1-bg { background: #d40055; } /* red */
.icon2-bg { background: #0055d4; } /* blue */
.icon3-bg { background: #00d455; } /* green */
.iconxxx-bg { background: #a1a1b3; } /* text color */
/* ICON BORDER TOP COLORS */
.icon0-bt { border-top: 1px solid #6c5d53; } /* gray */
.icon1-bt { border-top: 1px solid #d40055; } /* red */
.icon2-bt { border-top: 1px solid #0055d4; } /* blue */
.icon3-bt { border-top: 1px solid #00d455; } /* green */
.iconxxx-bt { border-top: 1px solid #a1a1b3; } /* text color */
/* ICON BORDER BOTTOM COLORS */
.icon0-bb { border-bottom: 1px solid #6c5d53; } /* gray */
.icon1-bb { border-bottom: 1px solid #d40055; } /* red */
.icon2-bb { border-bottom: 1px solid #0055d4; } /* blue */
.icon3-bb { border-bottom: 1px solid #00d455; } /* green */
.iconxxx-bb { border-bottom: 1px solid #a1a1b3; } /* text color */
/* CHART COLORS */
.color0-color { color: #6c5d53; } /* gray */
.color1-color { color: rgb(117, 60,123); }
.color2-color { color: rgb(179,121,216); }
.color3-color { color: rgb(202, 45,197); }
.color4-color { color: rgb(170, 0,120); }
.color5-color { color: rgb(209, 15, 85); }
.color6-color { color: rgb(236, 75, 24); }
.color7-color { color: rgb(247,147, 30); }
.color8-color { color: rgb(252,226,108); }
.color9-color { color: rgb(198,242, 94); }
.color10-color { color: rgb(159,196, 55); }
.color11-color { color: rgb( 87,226, 76); }
.color12-color { color: rgb( 64,164, 66); }
.color13-color { color: rgb( 5,222,158); }
.color14-color { color: rgb(196,252,240); }
.color15-color { color: rgb(100,186,170); }
.color16-color { color: rgb( 45,166,162); }
.color17-color { color: rgb( 26,167,238); }
.color18-color { color: rgb( 93,102,232); }
.color19-color { color: rgb( 53, 60,152); }
.color20-color { color: rgb( 53, 11,122); }
.colorxxx-color { color: #a1a1b3; } /* text color */
/* CHART FILL COLORS */
.color0-fill { fill: #6c5d53; } /* gray */
.color1-fill { fill: rgb(117, 60,123); }
.color2-fill { fill: rgb(179,121,216); }
.color3-fill { fill: rgb(202, 45,197); }
.color4-fill { fill: rgb(170, 0,120); }
.color5-fill { fill: rgb(209, 15, 85); }
.color6-fill { fill: rgb(236, 75, 24); }
.color7-fill { fill: rgb(247,147, 30); }
.color8-fill { fill: rgb(252,226,108); }
.color9-fill { fill: rgb(198,242, 94); }
.color10-fill { fill: rgb(159,196, 55); }
.color11-fill { fill: rgb( 87,226, 76); }
.color12-fill { fill: rgb( 64,164, 66); }
.color13-fill { fill: rgb( 5,222,158); }
.color14-fill { fill: rgb(196,252,240); }
.color15-fill { fill: rgb(100,186,170); }
.color16-fill { fill: rgb( 45,166,162); }
.color17-fill { fill: rgb( 26,167,238); }
.color18-fill { fill: rgb( 93,102,232); }
.color19-fill { fill: rgb( 53, 60,152); }
.color20-fill { fill: rgb( 53, 11,122); }
.colorxxx-fill { fill: #a1a1b3; } /* text color */
/* CHART STROKE COLORS */
.color0-stroke { stroke: #6c5d53; } /* gray */
.color1-stroke { stroke: rgb(117, 60,123); }
.color2-stroke { stroke: rgb(179,121,216); }
.color3-stroke { stroke: rgb(202, 45,197); }
.color4-stroke { stroke: rgb(170, 0,120); }
.color5-stroke { stroke: rgb(209, 15, 85); }
.color6-stroke { stroke: rgb(236, 75, 24); }
.color7-stroke { stroke: rgb(247,147, 30); }
.color8-stroke { stroke: rgb(252,226,108); }
.color9-stroke { stroke: rgb(198,242, 94); }
.color10-stroke { stroke: rgb(159,196, 55); }
.color11-stroke { stroke: rgb( 87,226, 76); }
.color12-stroke { stroke: rgb( 64,164, 66); }
.color13-stroke { stroke: rgb( 5,222,158); }
.color14-stroke { stroke: rgb(196,252,240); }
.color15-stroke { stroke: rgb(100,186,170); }
.color16-stroke { stroke: rgb( 45,166,162); }
.color17-stroke { stroke: rgb( 26,167,238); }
.color18-stroke { stroke: rgb( 93,102,232); }
.color19-stroke { stroke: rgb( 53, 60,152); }
.color20-stroke { stroke: rgb( 53, 11,122); }
.colorxxx-stroke { stroke: #a1a1b3; } /* text color */
/* CHART BACKGROUD COLORS */
.color0-bg { background: #6c5d53; } /* gray */
.color1-bg { background: rgb(117, 60,123); }
.color2-bg { background: rgb(179,121,216); }
.color3-bg { background: rgb(202, 45,197); }
.color4-bg { background: rgb(170, 0,120); }
.color5-bg { background: rgb(209, 15, 85); }
.color6-bg { background: rgb(236, 75, 24); }
.color7-bg { background: rgb(247,147, 30); }
.color8-bg { background: rgb(252,226,108); }
.color9-bg { background: rgb(198,242, 94); }
.color10-bg { background: rgb(159,196, 55); }
.color11-bg { background: rgb( 87,226, 76); }
.color12-bg { background: rgb( 64,164, 66); }
.color13-bg { background: rgb( 5,222,158); }
.color14-bg { background: rgb(196,252,240); }
.color15-bg { background: rgb(100,186,170); }
.color16-bg { background: rgb( 45,166,162); }
.color17-bg { background: rgb( 26,167,238); }
.color18-bg { background: rgb( 93,102,232); }
.color19-bg { background: rgb( 53, 60,152); }
.color20-bg { background: rgb( 53, 11,122); }
.colorxxx-bg { background: #a1a1b3; } /* text color */
/* CHART BORDER TOP COLORS */
.color0-bt { border-top: 1px solid #6c5d53; } /* gray */
.color1-bt { border-top: 1px solid rgb(117, 60,123); }
.color2-bt { border-top: 1px solid rgb(179,121,216); }
.color3-bt { border-top: 1px solid rgb(202, 45,197); }
.color4-bt { border-top: 1px solid rgb(170, 0,120); }
.color5-bt { border-top: 1px solid rgb(209, 15, 85); }
.color6-bt { border-top: 1px solid rgb(236, 75, 24); }
.color7-bt { border-top: 1px solid rgb(247,147, 30); }
.color8-bt { border-top: 1px solid rgb(252,226,108); }
.color9-bt { border-top: 1px solid rgb(198,242, 94); }
.color10-bt { border-top: 1px solid rgb(159,196, 55); }
.color11-bt { border-top: 1px solid rgb( 87,226, 76); }
.color12-bt { border-top: 1px solid rgb( 64,164, 66); }
.color13-bt { border-top: 1px solid rgb( 5,222,158); }
.color14-bt { border-top: 1px solid rgb(196,252,240); }
.color15-bt { border-top: 1px solid rgb(100,186,170); }
.color16-bt { border-top: 1px solid rgb( 45,166,162); }
.color17-bt { border-top: 1px solid rgb( 26,167,238); }
.color18-bt { border-top: 1px solid rgb( 93,102,232); }
.color19-bt { border-top: 1px solid rgb( 53, 60,152); }
.color20-bt { border-top: 1px solid rgb( 53, 11,122); }
.colorxxx-bt { border-top: 1px solid #a1a1b3; } /* text color */
/* CHART BORDER BOTTOM COLORS */
.color0-bb { border-bottom: 1px solid #6c5d53; } /* gray */
.color1-bb { border-bottom: 1px solid rgb(117, 60,123); }
.color2-bb { border-bottom: 1px solid rgb(179,121,216); }
.color3-bb { border-bottom: 1px solid rgb(202, 45,197); }
.color4-bb { border-bottom: 1px solid rgb(170, 0,120); }
.color5-bb { border-bottom: 1px solid rgb(209, 15, 85); }
.color6-bb { border-bottom: 1px solid rgb(236, 75, 24); }
.color7-bb { border-bottom: 1px solid rgb(247,147, 30); }
.color8-bb { border-bottom: 1px solid rgb(252,226,108); }
.color9-bb { border-bottom: 1px solid rgb(198,242, 94); }
.color10-bb { border-bottom: 1px solid rgb(159,196, 55); }
.color11-bb { border-bottom: 1px solid rgb( 87,226, 76); }
.color12-bb { border-bottom: 1px solid rgb( 64,164, 66); }
.color13-bb { border-bottom: 1px solid rgb( 5,222,158); }
.color14-bb { border-bottom: 1px solid rgb(196,252,240); }
.color15-bb { border-bottom: 1px solid rgb(100,186,170); }
.color16-bb { border-bottom: 1px solid rgb( 45,166,162); }
.color17-bb { border-bottom: 1px solid rgb( 26,167,238); }
.color18-bb { border-bottom: 1px solid rgb( 93,102,232); }
.color19-bb { border-bottom: 1px solid rgb( 53, 60,152); }
.color20-bb { border-bottom: 1px solid rgb( 53, 11,122); }
.colorxxx-bb { border-bottom: 1px solid #a1a1b3; } /* text color */
body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
background: #222233;
color: #a1a1b3;
font-family: sans-serif;
}
.light {
font-weight: 100;
}
.bold {
font-weight: bold;
}
.right {
text-align: right;
}
text {
fill: #a1a1b3;
}
a {
color: #0192d9;
text-decoration: none;
}
a:hover {
color: #a1a1b3;
}
a text {
fill: #0192d9;
}
div.selected {
border-bottom: solid 2px #0192d9;
}
div.unselected {
border-bottom: solid 2px #222233;
}
.header, .footer {
text-align: center;
margin: 0 10%;
}
.header:hover, .footer:hover {
background: rgba(161, 161, 179, 0.2);
}
.header {
margin-top: 60px;
}
.footer {
margin-bottom: 60px;
}
.distance {
margin: 0 10% 3% 10%;
}
.to-be-translated {
color: #d40055;
}
.to-be-translated a {
color: #ac39ac;
text-decoration: none;
}
.to-be-translated a:hover {
color: #d40055;
}
@media (orientation: landscape) {
.pie {
flex-direction: row;
}
.pie .pie-chart {
width: 50%;
}
.pie .pie-legend {
width: 40%;
padding-left: 10%;
}
}
@media (orientation: portrait) {
.pie {
flex-direction: column;
}
.pie > div {
width: 100%;
}
.pie .pie-legend {
margin-top: 50px;
}
}
/* TOTAL CHART */
.vb-total {
margin: 10%;
}
.g-total > text {
text-anchor: middle;
}
.g-total .number {
font-size: 20px;
}
.g-total .text {
font-size: 3px;
}
/* NAVI */
.navi-section-check {
display: none;
}
.navi-section-check + .navi-section-toggle {
cursor: pointer;
display: block;
}
/* checkbox = false --> hide navi section */
.navi-section-check ~ .navi-section {
display: none;
}
/* checkbox = true --> hide toggle button */
.navi-section-check:checked + .navi-section-toggle {
display: none;
}
/* checkbox = true --> show navi section */
.navi-section-check:checked ~ .navi-section {
display: block;
}
.navi-section-toggle {
margin: 0 10%;
}
.navi-section-toggle:hover {
background: rgba(161, 161, 179, 0.2);
}
.navi-section-toggle .navi-text {
fill: #0192d9;
font-size: 3px;
}
.navi-row {
display: flex;
flex-direction: row;
margin: 0 10%;
}
.navi-row.cats .navi-text {
font-size: 10px;
}
.navi-row.years .navi-text, .navi-row.months .navi-text {
font-size: 17px;
}
.navi-row.lines .navi-text {
font-size: 6.5px;
}
.navi-element:hover {
background: rgba(161, 161, 179, 0.2);
}
.navi-text {
text-anchor: middle;
font-weight: lighter;
}
/* PIE CHART */
.pie {
display: flex;
align-items: flex-start;
margin: 10%;
}
.pie-slice-link {
cursor: pointer;
}
.pie-text {
text-anchor: middle;
font-size: 6px;
}
.g-pie path {
stroke: #222233;
}
.g-pie .donut-hole {
fill: #222233;
}
.pie-legend-row {
margin-bottom: 10px;
}
.pie-legend-row > div {
display: flex;
flex-direction: row;
}
.square {
min-width: 20px;
min-height: 20px;
}
.square-double {
min-width: 40px;
min-height: 20px;
}
/* PIE CHART LEGEND */
.pie-legend-section-check {
display: none;
}
/* checkbox = false
-- show section 'less'
-- show button 'more'
-- hide section 'more'
-- hide button 'less' */
.pie-legend-section-check ~ .pie-legend-less {
display: block;
}
.pie-legend-section-check ~ .pie-legend-section-toggle-more {
display: block;
}
.pie-legend-section-check ~ .pie-legend-more {
display: none;
}
.pie-legend-section-check ~ .pie-legend-section-toggle-less {
display: none;
}
/* checkbox = true
-- show section 'more'
-- show button 'less'
-- hide section 'less'
-- hide button 'more' */
.pie-legend-section-check:checked ~ .pie-legend-more {
display: block;
}
.pie-legend-section-check:checked ~ .pie-legend-section-toggle-less {
display: block;
}
.pie-legend-section-check:checked ~ .pie-legend-less {
display: none;
}
.pie-legend-section-check:checked ~ .pie-legend-section-toggle-more {
display: none;
}
.pie-legend label {
cursor: pointer;
height: 40px;
background-repeat: no-repeat;
background-position: 40px;
background-color: transparent;
}
.pie-legend-section-toggle-more {
background-image: url('../images/button_more_blue.png');
}
.pie-legend-section-toggle-more:hover {
background-image: url('../images/button_more_gray.png');
}
.pie-legend-section-toggle-less {
background-image: url('../images/button_less_blue.png');
}
.pie-legend-section-toggle-less:hover {
background-image: url('../images/button_less_gray.png');
}
/* TIME CHART */
.time {
display: flex;
flex-direction: column;
margin: 10%;
}
.time-chart {
margin-bottom: 50px;
}
.line-text {
text-anchor: middle;
font-weight: lighter;
}
.g-time {
fill: none;
stroke-width: 4px;
}
.day .g-time {
stroke-width: 10px;
}
.h-grid, .v-grid {
stroke: #a1a1b3;
}
.h-grid {
stroke-width: 2px;
stroke-opacity: 0.1;
}
.v-grid {
stroke-dasharray:0.5%, 1%;
stroke-opacity: 0.2;
}
.day .h-grid {
stroke-width: 5px;
}
.day .v-grid {
stroke-width: 3px;
}
.v-label {
text-anchor: middle;
}
.time-legend table {
width: 100%;
border-collapse: collapse;
}
.time-legend .title {
padding-bottom: 50px;
text-align: center;
font-size: 1.2rem;
}
.time .row-distance {
font-size: 0.2rem;
}
.time .row-title {
font-size: 0.8rem;
}
tfoot td {
font-weight: bold;
text-align: center;
padding-top: 8px;
}
/*.even-bg {
background: rgba(161, 161, 179, 0.1);
}*/

766
www/sunders/css/sunders.css Normal file
View file

@ -0,0 +1,766 @@
/* COLORS
background: #222233 / 34, 34, 51
text: #a1a1b3 / 161,161,179
links: #0192d9 / 1,146,217
beige: #f1eee8 / 241,238,232
lightblue: #0192d9 / 1,146,217
darkblue: #050585 / 5, 5,133
gray: #d9d0c9 / 217,208,201
purple: #ac39ac / 172, 57,172
red icon: #d40055 / 212, 0, 85
blue icon: #0055d4 / 0, 85,212
green icon: #00d455 / 0,212, 85
gray icon: #6c5d53 / 108, 93, 83
yellow icon: #ffdd55 / 255,221, 85 */
html {
height: 100%;
}
body {
height: 100%;
margin: 0;
padding: 0;
overflow-x: hidden;
font-family: sans-serif;
}
#map {
width: 100%;
height: 100%;
}
.bold {
font-weight: bold;
}
.monospace {
font-family: monospace;
font-size: 1.5em;
}
.text-small {
font-size: 0.8em;
}
.text-medium {
font-size: 0.9em;
}
.w-20 {
width: 20px;
}
.w-45 {
width: 45px;
min-width: 45px;
}
.w-120 {
width: 120px;
min-width: 120px;
}
.w-240 {
width: 240px;
}
.w-260 {
width: 260px;
}
.w-315 {
width: 315px;
}
.w-340 {
width: 340px;
}
.pl-20 {
padding-left: 20px;
}
.slider-toggle-input[type=checkbox] {
position: absolute;
opacity: 0;
}
.slider-toggle-input[type=checkbox]:checked ~ .slider-overlay,
.slider-toggle-input[type=checkbox]:checked ~ .slider {
transform: translate3d(0, 0, 0);
}
.slider-toggle-input[type=checkbox]:checked ~ .slider-toggle-button {
transform: translate3d(-490px, 0, 0) rotate(180deg);
}
.slider-toggle-button {
position: absolute;
top: 10px;
right: 10px;
z-index: 250000;
cursor: pointer;
transform-origin: 20px 20px;
transition: transform .8s;
}
.slider-toggle-bar {
display: none;
}
.slider-overlay {
position: absolute;
right: 30px;
width: 470px;
z-index: 200000;
transform: translate3d(490px, 0, 0);
transition: all .8s;
}
/*#news.slider-overlay {
display: flex;
align-items: flex-end;
top: 95px;
right: -255px;
color: #ffdd55;
font-weight: bold;
}
#news.slider-overlay .text {
padding-left: 10px;
}*/
#anchorbar.slider-overlay {
top: 10px;
}
#buttonbar.slider-overlay {
top: 52px;
}
.topbar {
display: flex;
justify-content: space-around;
align-items: center;
position: absolute;
width: 470px;
height: 40px;
background: #0192d9;
color: #f1eee8;
}
.topbar.anchorbar {
background-color: rgba(1, 146, 217, 0.9);
}
.topbar.buttonbar {
background-color: rgba(1, 146, 217, 0.6);
}
.mobile-bar-padding {
width: 0;
}
.bar-button {
width: 80px;
height: 30px;
background-repeat: no-repeat;
background-position: center;
background-color: transparent;
border: 1px solid transparent;
cursor: pointer;
}
.bar-button:hover {
border: 1px solid #f1eee8;
}
.bar-button.main {
width: 120px;
}
.bar-button.search {
background-image: url('../images/button_search.png');
}
.bar-button.stats {
background-image: url('../images/button_stats.png');
}
.bar-button.permalink {
background-image: url('../images/button_permalink.png');
}
.search-group {
position: relative;
}
#search-overlay {
display: none;
position: absolute;
top: 42px;
width: 430px;
padding: 30px 20px;
background-color: rgba(1, 146, 217, 0.9);
color: #f1eee8;
}
.search-field-row {
display: flex;
justify-content: center;
align-items: center;
}
#search-input {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background-color: #222233;
border: 1px solid #f1eee8;
border-radius: 0px;
border-right: none;
color: #f1eee8;
width: 320px;
height: 30px;
line-height: 30px;
padding: 0px 10px;
font-family: monospace;
font-weight: bold;
}
#search-input:focus {
outline: 0;
}
.search-button {
width: 34px;
height: 32px;
background-image: url('../images/button_search.png');
background-repeat: no-repeat;
background-position: center;
background-color: #222233;
border: 1px solid #f1eee8;
border-left: 1px solid transparent;
color: #f1eee8;
cursor: pointer;
}
.search-button:hover {
border-left: 1px solid #f1eee8;
}
.search-button:focus {
outline: 0;
}
#search-results-overlay {
display: none;
position: absolute;
top: 136px;
bottom: 0;
width: 470px;
overflow-y: auto;
background: #0192d9;
background-color: rgba(1, 146, 217, 0.9);
color: #f1eee8;
}
#search-spinner-block {
display: none;
padding: 20px 0;
}
#search-spinner {
display: flex;
justify-content: center;
}
#search-results-list-block {
display: none;
padding: 20px 0;
}
#search-results-list {
display: flex;
flex-direction: column;
align-items: center;
}
.search-result {
width: 370px;
padding: 15px 20px;
border: 1px solid transparent;
border-bottom: 1px dotted #f1eee8;
line-height: 25px;
cursor: pointer;
}
.search-result:first-child {
border-top: 1px dotted #f1eee8;
}
.search-result:hover {
background-color: #222233;
}
.search-more {
width: 100px;
height: 30px;
background-repeat: no-repeat;
background-position: center;
background-color: transparent;
border: 1px solid transparent;
cursor: pointer;
}
.search-more:hover {
border: 1px solid #f1eee8;
}
.search-more.search-previous {
background-image: url('../images/button_previous.png');
margin-bottom: 10px;
}
.search-more.search-next {
background-image: url('../images/button_next.png');
margin-top: 10px;
}
.close {
position: absolute;
top: 10px;
right: 10px;
width: 20px;
height: 20px;
background-image: url('../images/close.png');
background-repeat: no-repeat;
background-position: center;
background-color: transparent;
border: 1px solid transparent;
cursor: pointer;
}
.close:hover {
border: 1px solid #f1eee8;
}
.language-toggle-input {
display: none;
}
.language-toggle-input[type=checkbox]:checked ~ .language-toggle-button #language li ul {
display: block;
}
#language {
background-image: url('../images/button_language.png');
list-style:none;
padding: 0;
z-index: 300000;
}
#language li {
position: relative;
text-align: center;
}
#language ul {
display: none;
list-style: none;
position: absolute;
padding: 0;
}
#language ul a {
color: #f1eee8;
font-family: monospace;
font-size: 1em;
text-decoration: none;
}
#language ul li {
width: 80px;
height: 30px;
line-height: 30px;
margin-top: 2px;
background-color: rgba(1, 146, 217, 0.9);
border: 1px solid #f1eee8;
}
#language ul a:first-child li {
margin-top: 18px;
}
#language ul li:hover {
background-color: rgba(1, 146, 217, 0.6);
}
.language-current {
font-weight: bold;
}
.slider {
display: flex;
flex-direction: column;
position: absolute;
top: 0px;
right: 0px;
width: 500px;
height: 100%;
z-index: 100000;
background: #f1eee8;
background-color: rgba(34, 34, 51, 0.95);
color: #a1a1b3;
overflow-y: auto;
transform: translate3d(490px, 0, 0);
transition: all .8s;
}
.slider a {
color: #0192d9;
text-decoration: none;
}
.slider a:hover {
color: #a1a1b3;
}
.slider-item {
box-sizing: border-box;
flex-shrink: 0;
padding-left: 40px;
padding-right: 40px;
}
.slider-logo {
padding: 140px 0 20px 0;
}
.slider-logo img {
display: block;
margin: 0 auto;
}
.slider-title {
padding-top: 120px;
padding-bottom: 20px;
padding-left: 40px;
}
.slider-subtitle {
text-align: center;
}
.slider-translation {
text-align: center;
font-style: italic;
padding: 20px 40px 0 40px;
}
.slider-list-title {
padding-top: 40px;
padding-bottom: 20px;
padding-left: 20px;
font-weight: bold;
}
.text-small .slider-list-title {
font-size: 1.25em;
}
.slider-list-section {
padding-left: 20px;
font-weight: bold;
font-size: 0.9em;
}
.slider-list-section-toggle {
display: none;
}
.slider-list-section-toggle + .slider-list-section {
cursor: pointer;
display: block;
font-weight: bold;
margin-top: 10px;
}
.slider-list-section-toggle + .slider-list-section + div {
display: none;
}
.slider-list-section-toggle:checked + .slider-list-section + div {
display: block;
}
.slider-list-section-toggle + .slider-list-section:before {
content: "\002B\2000"; /*plus icon + whitespace*/
display: block;
float: left;
}
.slider-list-section-toggle:checked + .slider-list-section:before {
content: "\2212\2000"; /*minus icon + whitespace*/
}
.slider-list-entry {
display: flex;
flex-direction: row;
align-items: flex-start;
padding-top: 10px;
padding-left: 20px;
}
.example-boxes {
display: flex;
flex-direction: row;
width: 100%;
}
.example-boxes .example-box {
display: flex;
flex-direction: column;
align-items: center;
width: 100%;
}
.example-boxes .example-box .example-box-image {
border: 1px solid #a1a1b3;
margin: 5px;
padding: 5px;
}
.example-boxes .example-box .example-box-description {
margin: 10px;
}
.slider-footer {
padding-top: 40px;
padding-bottom: 40px;
text-align: center;
}
.slider-footer-title {
font-weight: bold;
padding-bottom: 10px;
}
.slider-credit-type {
padding-top: 6px;
}
.slider-onion-link {
padding-top: 6px;
font-size: 1.5em;
}
/* MOBILE SETTINGS */
@media only screen and (max-width: 600px) {
.slider,
.slider-item,
.slider-list-entry .fieldofview,
.slider-overlay,
.slider-toggle-bar,
.topbar,
.w-240,
.w-260,
.w-315,
.w-340 {
width: 100%;
}
.slider-toggle-button {
display: none;
}
.slider-toggle-bar {
display: inherit;
}
.slider-overlay {
right: 0;
}
.slider-toggle-bar {
position: absolute;
bottom: 16px;
z-index: 250000;
cursor: pointer;
background-color: rgba(1, 146, 217, 0.6);
line-height: 40px;
text-align: center;
font-weight: bold;
color: #f1eee8;
}
.slider-toggle-bar.toggle-false {
display: none;
}
.slider-toggle-input[type=checkbox]:not(:checked) ~ .slider-overlay {
width: 470px;
right: 20px;
}
.slider-toggle-input[type=checkbox]:not(:checked) ~ .slider-toggle-bar.toggle-false {
display: inherit;
}
.slider-toggle-input[type=checkbox]:not(:checked) ~ .slider-toggle-bar.toggle-true {
display: none;
}
.topbar {
position: inherit;
}
.slider {
transform: translate3d(500px, 0, 0);
}
.slider-toggle-input[type=checkbox]:not(:checked) ~ .slider {
right: 0px;
width: 500px;
}
.slider-item, .slider-translation {
padding-left: 20px;
padding-right: 20px;
}
.slider-list-entry,
.slider-list-section,
.slider-list-title {
padding-left: 10px;
}
.example-boxes {
flex-direction: column;
}
.example-boxes .example-box {
flex-direction: row;
}
.example-boxes .example-box .example-box-image {
margin-left: 10px;
}
.slider-footer {
padding-bottom: 80px;
}
#search-overlay {
width: 100%;
padding-right: 0;
padding-left: 0;
}
.search-field-row {
padding-right: 40px;
padding-left: 40px;
}
#search-results-overlay {
width: 100%;
}
.search-result {
width: 100%;
padding-right: 0;
padding-left: 0;
}
.search-result div {
padding-right: 20px;
padding-left: 20px;
}
}
/* Label with number of composite cameras. */
.composite-cameras-label {
background-color: rgba(1, 146, 217, 0.66);
background-clip: padding-box;
color: #fff;
border: 4px solid rgba(0,0,0,0.25);
border-radius: 4px;
font-weight: bold;
padding: 3px 6px;
box-shadow: none;
}
.composite-cameras-label.leaflet-tooltip-right::before {
left: -4px;
border-right-color: rgba(0,0,0,0.25);
}
.composite-cameras-label.leaflet-tooltip-left::before {
right: -4px;
border-left-color: rgba(0,0,0,0.25);
}
.cover {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
height: 100%;
background: #222233;
color: #a1a1b3;
}
.to-be-translated {
color: #d40055;
}
.to-be-translated a {
color: #ac39ac;
text-decoration: none;
}
.to-be-translated a:hover {
color: #d40055;
}
/* overwrite leaflet styles */
.leaflet-popup-content-wrapper {
background: rgba(34, 34, 51, 0.95);
color: #a1a1b3;
font-size: 0.9rem;
border-radius: 5px;
}
.leaflet-popup-content-wrapper a {
color: #0192d9;
text-decoration: none;
}
.leaflet-popup-content-wrapper a:hover {
color: #a1a1b3;
}
.leaflet-popup-tip {
background: rgba(34, 34, 51, 0.95);
color: #a1a1b3;
}
.leaflet-bar a {
background: rgba(34, 34, 51, 0.95);
color: #a1a1b3;
}
.leaflet-bar a:hover {
background: rgba(34, 34, 51, 0.8);
color: #a1a1b3;
}
.leaflet-container a.leaflet-popup-close-button {
top: 4px;
right: 4px;
}

View file

@ -0,0 +1,3 @@
<?php
include '../camera.php';
?>

1
www/sunders/de/images Symbolic link
View file

@ -0,0 +1 @@
../images/

6
www/sunders/de/index.php Normal file
View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'de';
$pathToWebFolder = '../';
include $pathToWebFolder.'index.php';
?>

View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'de';
$pathToWebFolder = '../../';
include $pathToWebFolder.'stats/index.php';
?>

View file

@ -0,0 +1,10 @@
<?php
// Convert the content of a JSON file to a PHP array.
function getDecodedJSON($jsonPath) {
$handle = fopen($jsonPath, 'r');
$jsonContent = fread($handle, filesize($jsonPath));
fclose($handle);
return json_decode($jsonContent);
}
?>

View file

@ -0,0 +1,3 @@
<?php
include '../camera.php';
?>

1
www/sunders/en/images Symbolic link
View file

@ -0,0 +1 @@
../images/

6
www/sunders/en/index.php Normal file
View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'en';
$pathToWebFolder = '../';
include $pathToWebFolder.'index.php';
?>

View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'en';
$pathToWebFolder = '../../';
include $pathToWebFolder.'stats/index.php';
?>

View file

@ -0,0 +1,3 @@
<?php
include '../camera.php';
?>

1
www/sunders/es/images Symbolic link
View file

@ -0,0 +1 @@
../images/

6
www/sunders/es/index.php Normal file
View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'es';
$pathToWebFolder = '../';
include $pathToWebFolder.'index.php';
?>

View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'es';
$pathToWebFolder = '../../';
include $pathToWebFolder.'stats/index.php';
?>

BIN
www/sunders/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
www/sunders/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1,003 B

View file

@ -0,0 +1,23 @@
Copyright (c) 2010-2021, Vladimir Agafonkin
Copyright (c) 2010-2011, CloudMade
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are
permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of
conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list
of conditions and the following disclaimer in the documentation and/or other materials
provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

View file

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

View file

@ -0,0 +1,9 @@
* The leafletembed.js file is licensed under CC-by-sa (http://creativecommons.org/licenses/by-sa/2.0/), as it was initially derived from code found in that article : http://switch2osm.org/using-tiles/getting-started-with-leaflet/
* The images *fixed*png and speedCamera.png in the www/images directory are also licensed under that CC-by-sa (http://creativecommons.org/licenses/by-sa/2.0/), as they are derived from the OpenStreetMap wiki (http://wiki.openstreetmap.org/wiki/File:Surveillance.png and http://wiki.openstreetmap.org/wiki/File:Fixed_speed_camera.png).
* The Mobile-detect.php file is developped by Victor Stanciu and Serban Ghita and is licensed under MIT license (http://opensource.org/licenses/mit-license.php).
* The preset file www/camera_preset_all.xml is derived from the one of JOSM, and is licensed under GPL v3 (http://www.gnu.org/copyleft/gpl.html)
* Everything else is under the WTFPL (http://en.wikipedia.org/wiki/WTFPL).

View file

@ -0,0 +1,52 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mQINBF5kIygBEADC30garhcvDYy/HZd9Rq3jA2P5uD0CtgCQFV8H2RdWq4IeyxU1
2HUsNO2w/Hhcea9eoAL3vyNlLwmhqH+DrH1T03vqs6s9zvhN5zeA7M/2iHla02BT
NV3MrG0vSaLZI8MiGvDNOQ4l8RIP8miefutxlg63xcmqKsvFUaH3r+zXp7Xv/nBE
53ICUj9i0vfqdUSSNq7yuc9S+nyzMbuwptCAYbVsuzdC/n8HJ3a/egXUvbWCMuZa
zbWkwjc9JC7b7T3XrhRBT4j3FxMLw5z/bi5fgLgWx/ZUjSKRXmlEHfAqTpRxSDww
358qnaPHP/VYRYtYFSttbIroWPDclWPlaUIpmkOxkbMm5oTXdqyvgt3VFefZFtxa
l/et4/nsq0fV8FvTtTAEWTLCWmc5A5UGiE11qlTeC9ZzYGv+N0eXx9VvS30+Se+z
SAkfUvxTA+dlEHrpizC7MxgBHUldN2NxcHE6T21FCqZgbY8xDHRziftAt6ajNeSP
oKwQX30lBKqHq0u25LdBcpheNkcNG0r05/33/uuZbCE9Bt4wTeuxIESn+gc0Jwk6
wD/kWox3eEz7rGSAp/LW8bgRoU3JXjEtb/RZ85wbGGMrHDnOuItgfYqy3dgILbYN
xosOHIdYjama6luW7KPb6gIME2T7N5obWF59rVrVetZsfq5F17GQNFp0SwARAQAB
tDpTdXJ2ZWlsbGFuY2UgdW5kZXIgU3VydmVpbGxhbmNlIDxoZWxsb0BzdW5kZXJz
LnViZXIuc3BhY2U+iQJUBBMBCgA+AhsDBQsJCAcDBRUKCQgLBRYCAwEAAh4BAheA
FiEEglIBC/3ZXWzd1HQVOABXT/sARiIFAmbeAQQFCQryrdwACgkQOABXT/sARiL8
OA/+Ox8b1spu4s57v48zwqSjOzngSD/t0KMmLnomAeqkTLEvnbH8GQVUMpzJoJve
keE56bstpHcwGYlhmoLOhc0jeNLnNFumFD0j6fEfNsUjZOmXeMmA+ZOhCS1TL5O3
dliGrlxSZX9njwhRQp2eNCZ/PIHN9YExM1J6ERnkczmsIiyXLlN34a5C39oRucmF
gVIqe4LDdBZpTSTdEoF1JBGnBwEOvdbrLe6j7nS9Fz4/M7CLtmqPMR2SnXiymrtb
7XIB5TJDe08NvuroHRbu3prvECX5pl6bLRrj/55Bxyq3BY5FsrdmZAtxYfZqcDQO
spySu7FYwT7Khoqu8SYpt3wS8hPkKejOmHngUkiwUzM4x/V4qbQRqhEoMpAYCCCZ
lnfdXcgXT/AnItAInqQ2tOx0ThNWJbyJVWveU/zNPQCUh0i6RGyGQLQ2hyizgX2p
9rHUqJ/FsqjZIsl2AwLmQsQ2UvhveQKLTGLu1Jemk84KjAkxbf/80929mXgv/Z66
5m4KMOsGAT4t6j3v70nKLtLfv1NUUmOopdgWSRNyFwRlNBI+e76IzMwvyVmsRVox
rbu8eAWq1xZUGlzTVh6YoJZz+FCSH9NO4Nx9qrHnBlStot4tXqhoDYIBDAFDty1p
hEgZLLI9PCFavCd+TCOCofBe4KzIIGVY1yFygBbuYvk1grK5Ag0EXmQjKAEQAMG8
i6Bq2fpbwqByysGCiSqt/BxofpgPC+Ctdte3524w6KognVfPYABvU/U2BvtMhJ8Z
2ZQW0A42UCPS5ornmzFdNG5y5VxjshrkvI2kZK/bwc+8kG3XY8ocBGMbC2sUrvVR
ff2w9KhAUPHFI0vsotvsmzoE5C1gjllB98gA83lWoHvEsETZ44SsGv9ozFVuNx1T
KIdmCcU9xWMxCoEA6PFtQJquH+AzUG+3j8gA/zTPkwKa9i4GnanJYgff0iXu05pe
+SOb7vvaLMzJ0bl3/2Rghl0aoVJIO9uDF0vq18ugD0YGRRlqn4Ye0DW2N08WzB8s
JEGKvdDArYkhj/S7RMBTJyHrQ8fhmB/oGNjiUMghc7Cg18XaIfNrYln/8+JRhPuQ
w8p9C3CjN8JsmiUz07ZHOf0zPHTa9UgpNO+Nl7he/X9g9oR9eiLiAdKK7Se0W9Kk
Q6yfIIgO/dWNO4g6ye256YC/1a0sxtLis3k9mWKxPOBCh7y1DKcoh1Fn0LGhc0wG
pXddrE9pTvSguV/PnyxcEmqOBk4Z2PVOlRuD9GBYWkfjAL+qPJ3AZvbC+JzgqQ5y
prqeECFw/ndsz2maEM+1XlpOSY9/gbeTEJDfz7khza8pljhkX/1XzLRRc9u546hE
C+P6lDpHQWp2vkeZv6a4qKWqIDMFwWMAIgK5Z9TRABEBAAGJAjwEGAEKACYCGwwW
IQSCUgEL/dldbN3UdBU4AFdP+wBGIgUCZt4ByQUJCvKuoQAKCRA4AFdP+wBGIgXp
D/4gnMLj0vMToXgXPy9P+K7Z8kic8hayAOTturDhK+8mISCF8GMIHyHFuKJJShBv
oQd9Y+jniTBpmq0rUggLKXABMUkSWRnvMfKG2E1Hk4PRgjby4kFrvhSNg7JMpJHF
iemR5iAXYsZMxYg15P2Oi7Yo4Ggrw02tXsGGk6qoZIV+1pWNFmSP4/ymsA7edcAW
BlKMk6I2JHBVi4ek2tj4pKWoWzgGRHzP4OS1RfIXgOBMllKJxEl8l1hQXOMgEiCx
uLtmzQyKlJgEWII5oQOxmezVW44PP2sioXxHHNXrfH5No1JXF0gZwMemDfP15Yej
qraFNSp6v8UTCzbLzJcyoEnV6WGC7So6AV0X8KnHR+Ee/uL5K7HMpyXIE2NmQp3G
nRv3T3xZOEmF+H6oj3babDsBfuZ3xUqj+BgDRMYFA3XfNrsAh7ZE5GM4ecoQf0Hg
mFhkgvQ1FGkUTdPd2StJbV1WmyhoawDDD/j8OcZPy+ShhsGK7H+vaPzfrALUNtZT
ur5IpuLR46eGUCWVH2DC1IKDKBa/SgSH3motn1yvRGbKR4G84Ii/+MT2gmNcjWso
Ve+m58QiydeAt1UpBIRGNTn3QYSx/ybqIW+RH68JVA2k93iFwJi2m6Ob7qnlqKIG
O4rU36FBY0jnhhEq+aJ4/7pj4jjsiicTUMxLYjd1tczUfg==
=qsyN
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -0,0 +1,3 @@
<?php
include '../camera.php';
?>

1
www/sunders/fr/images Symbolic link
View file

@ -0,0 +1 @@
../images/

6
www/sunders/fr/index.php Normal file
View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'fr';
$pathToWebFolder = '../';
include $pathToWebFolder.'index.php';
?>

View file

@ -0,0 +1,6 @@
<?php
$initialLanguage = 'fr';
$pathToWebFolder = '../../';
include $pathToWebFolder.'stats/index.php';
?>

80
www/sunders/i18n.php Normal file
View file

@ -0,0 +1,80 @@
<?php
$i18nCommon = getI18nArray('common', $initialLanguage);
$i18nLinks = getI18nArray('links', $initialLanguage);
$i18nManual = getI18nArray('manual', $initialLanguage);
$i18nSymbology = getI18nArray('symbology', $initialLanguage);
$i18nCredits = getI18nArray('credits', $initialLanguage);
// $i18nStatistics = getI18nArray('statistics', $initialLanguage);
$i18nStats = getI18nArray('stats', $initialLanguage);
$i18nCountries = getI18nArray('countries', $initialLanguage);
if ($initialLanguage != DEFAULT_LANGUAGE) {
$i18nCommonDefault = getI18nArray('common', DEFAULT_LANGUAGE);
$i18nLinksDefault = getI18nArray('links', DEFAULT_LANGUAGE);
$i18nManualDefault = getI18nArray('manual', DEFAULT_LANGUAGE);
$i18nSymbologyDefault = getI18nArray('symbology', DEFAULT_LANGUAGE);
$i18nCreditsDefault = getI18nArray('credits', DEFAULT_LANGUAGE);
// $i18nStatisticsDefault = getI18nArray('statistics', DEFAULT_LANGUAGE);
$i18nStatsDefault = getI18nArray('stats', DEFAULT_LANGUAGE);
$i18nCountriesDefault = getI18nArray('countries', DEFAULT_LANGUAGE);
} else {
$i18nCommonDefault = $i18nCommon;
$i18nLinksDefault = $i18nLinks;
$i18nManualDefault = $i18nManual;
$i18nSymbologyDefault = $i18nSymbology;
$i18nCreditsDefault = $i18nCredits;
// $i18nStatisticsDefault = $i18nStatistics;
$i18nStatsDefault = $i18nStats;
$i18nCountriesDefault = $i18nCountries;
}
function getI18nArray($folder, $languange) {
return getDecodedJSON(getI18nPath($folder, $languange));
}
function getI18nPath($folder, $languange) {
global $pathToWebFolder;
return $pathToWebFolder.'i18n/'.$folder.'/'.$languange.'.json';
}
function translate($i18n, $i18nDefault, $key, $linksWithVariableText, $linksWithFixedText, $fixedTexts) {
$openTagToBeTranslated = '';
$closeTagToBeTranslated = '';
$text = $i18n->{'texts'}->{$key};
if (empty($text)) {
$i18n = $i18nDefault;
$text = $i18n->{'texts'}->{$key};
if (!empty($text) && substr($key, -4) != '-alt') {
$openTagToBeTranslated = '<span class="to-be-translated">';
$closeTagToBeTranslated = '</span>';
}
}
$textLinkArray = explode ('@@' , $text); // A @@ at the beginning/end of $text leads to an empty string as the first/last element of $textLinkArray.
$isTextWithoutLinks = count($textLinkArray) == 1;
$translatedText = '';
if ($isTextWithoutLinks) {
$translatedText = $translatedText.htmlentities($text);
} else {
foreach ($textLinkArray as $phrase) {
if (substr($phrase, 0, 2) == 'LT') { // link with a text to be translated
$index = (int)substr($phrase, 2, 2);
$translatedText = $translatedText.'<a href="'.htmlentities($linksWithVariableText[$index]).'">'.htmlentities($i18n->{'links'}->{$key}[$index]).'</a>'.htmlentities(substr($phrase, 4));
} elseif (substr($phrase, 0, 2) == 'LF') { // link with a fix text
$index = (int)substr($phrase, 2, 2);
$translatedText = $translatedText.'<a href="'.htmlentities($linksWithFixedText[0][$index]).'">'.htmlentities($linksWithFixedText[1][$index]).'</a>'.htmlentities(substr($phrase, 4));
} elseif (substr($phrase, 0, 2) == 'TF') { // fix text
$index = (int)substr($phrase, 2, 2);
$translatedText = $translatedText.htmlentities($fixedTexts[$index].substr($phrase, 4));
} else {
$translatedText = $translatedText.htmlentities($phrase);
}
}
}
return $openTagToBeTranslated.$translatedText.$closeTagToBeTranslated;
}
?>

View file

@ -0,0 +1,33 @@
{
"texts": {
"what-alt": "um was es hier geht",
"how-alt": "wie du mitmachen kannst",
"where-alt": "wo es mehr infos gibt",
"search-button-alt": "in OpenStreetMap suchen",
"permalink-button-alt": "Permalink mit Koordinaten erzeugen",
"stats-button-alt": "Upload-Statistiken",
"language-button-alt": "Sprache ändern",
"subtitle": "(Überwachung unter Überwachung)",
"translation": "",
"what-show": "Surveillance under Surveillance (Überwachung unter Überwachung) zeigt dir Kameras und Wachleute, die dich überwachen — fast überall. Du kannst ihren Standort sehen und, falls die Informationen verfügbar sind, welcher Art sie sind, welches Gebiet sie überwachen oder weitere interessante Fakten.",
"what-icons": "Unterschiedliche Symbole und Farben geben dir einen schnellen Überblick über die erfassten Überwachungseinträge. Klicke auf ein Symbol auf der Karte, um die verfügbaren Informationen zum zugehörigen Eintrag anzuzeigen.",
"how-osm": "Surveillance under Surveillance (Überwachung unter Überwachung) verwendet und zeigt Daten von OpenStreetMap-Mitwirkenden, die auf der regulären @@LF00-Seite nicht angezeigt werden. @@LT00 oder @@LT01, wenn du selbst neue Kameras oder Wachleute eintragen oder bestehende Einträge überarbeiten möchtest.",
"how-update": "Unsere Datenbank wird stündlich aktualisiert. Deshalb kann es einige Zeit dauern bis deine OSM-Einträge auf der Surveillance under Surveillance Karte angezeigt werden.",
"how-keyval": "Dies sind die gebräuchlichsten Schlüssel/Wert-Kombinationen, um einen Überwachungseintrag bei OpenStreetMap zu beschreiben:",
"how-fork": "Neben der Mitarbeit bei OpenStreetMap, kannst du dieses Projekt auch bei @@LF00 forken.",
"where-sites": "Besuch die folgenden Seiten zu überwachungsrelevanten Themen:",
"footer-pgp": "Hier ist unser @@LT00 — benutz ihn!",
"footer-note": "Bitte beachte, dass nur verschlüsselte Emails beantwortet werden.",
"footer-your-key": "Teil uns mit, wo wir deinen PGP-Schlüssel finden.",
"footer-help": "Hilfe zum Thema Verschlüsselung gibt es @@LT00.",
"at": "ät",
"dot": "punkt",
"new-stats": "neue Statistiken!",
"gdpr": "BEIM BESUCH DIESER SEITE WERDEN KEINE PERSÖNLICHEN DATEN GESAMMELT!"
},
"links": {
"how-osm": [ "Verwende dein existierendes OSM-Konto", "lege ein neues Konto an" ],
"footer-pgp": [ "PGP-Schlüssel" ],
"footer-help": [ "hier" ]
}
}

View file

@ -0,0 +1,32 @@
{
"texts": {
"what-alt": "what this is about",
"how-alt": "how to participate",
"where-alt": "where to get more info",
"search-button-alt": "search OpenStreetMap",
"permalink-button-alt": "create permalink with coordinates",
"stats-button-alt": "upload statistics",
"language-button-alt": "change language",
"subtitle": "",
"translation": "",
"what-show": "Surveillance under Surveillance shows you cameras and guards — watching you — almost everywhere. You can see where they are located and, if the information is available, what type they are, the area they observe, or other interesting facts.",
"what-icons": "Different icons and colors give you a quick overview about the indexed surveillance entries. Click on those icons on the map to get the available information.",
"how-osm": "Surveillance under Surveillance uses data from OpenStreetMap contributors that is not visualized on the regular @@LF00 site. If you like to add new cameras or guards or if you like to revise existing entries @@LT00 or @@LT01.",
"how-update": "Our database is updated once an hour. So it might take a while until your OSM entries are visible on the Surveillance under Surveillance map.",
"how-keyval": "These are the most common key/value combinations to describe a surveillance node at OpenStreetMap:",
"how-fork": "Besides contributing to OpenStreetMap feel free to fork this project on @@LF00.",
"where-sites": "Visit the following sites about surveillance related topics:",
"footer-pgp": "Here is our @@LT00 — use it!",
"footer-note": "Please note that only encrypted emails will be answered.",
"footer-your-key": "Let us know where we can find your PGP key.",
"footer-help": "Get help for @@LF00 / @@LF01 / @@LF02.",
"at": "at",
"dot": "dot",
"new-stats": "new statistics!",
"gdpr": "NO PERSONAL DATA IS COLLECTED WHEN YOU VISIT THIS SITE!"
},
"links": {
"how-osm": [ "use your existing OSM account", "create a new one" ],
"footer-pgp": [ "PGP key" ]
}
}

View file

@ -0,0 +1,32 @@
{
"texts": {
"what-alt": "de que se trata",
"how-alt": "como participar",
"where-alt": "donde puedo obtener mas información",
"search-button-alt": "buscar en OpenStreetMap",
"permalink-button-alt": "crearte un enlace permanente",
"stats-button-alt": "estadística de subir",
"language-button-alt": "cambiar de idioma",
"subtitle": "(Vigilando a la Vigilancia)",
"translation": "",
"what-show": "Surveillance under Surveillance (vigilando a la vigilancia) muestra las cámaras y los guardas — que te vigilan — en casi todos lados. Podes ver su ubicación y, si la información esta disponible, de que tipo son, el área de cobertura u otra información relevante.",
"what-icons": "Diferentes iconos y colores dan una idea sobre las entradas cargadas. Hace clic sobre esos iconos en el mapa para ver la información disponible.",
"how-osm": "Surveillance under Surveillance (vigilando a la vigilancia) usa datos de OpenStreetMap, éstos no están visibles por defecto en el mapa regular del sitio de @@LF00. Si querés agregar nuevas cámaras o guardias, o si deseas revisar las entradas existentes podes @@LT01 en OSM o @@LT00.",
"how-update": "Nuestra base de datos se actualiza cada una hora. Así que puede tomar un rato hasta que los cambios en OSM se vean reflejados en este mapa.",
"how-keyval": "Estos son las propiedades mas comunes para describir un nodo de vigilancia en OpenStreetMap:",
"how-fork": "Aparte de contribuir a Openstreetmap te invitamos a modificar este proyecto en @@LF00.",
"where-sites": "Podés visitar estos sitios que tratan sobre temas relacionas a la vigilancia:",
"footer-pgp": "Esta es nuestra @@LT00 — Usala!",
"footer-note": "Tené en cuenta que solo los correos cifrados serán respondidos.",
"footer-your-key": "Envianos o decinos donde podemos conseguir tu llave.",
"footer-help": "Si necesitas ayuda con PGP, @@LF00 / @@LF01 / @@LF02.",
"at": "en",
"dot": "punto",
"new-stats": "¡nuevo!",
"gdpr": "¡NO SE RECOGEN DATOS PERSONALES CUANDO USTED VISITA ESTE SITIO!"
},
"links": {
"how-osm": [ "usar una que ya tengas", "crearte una cuenta" ],
"footer-pgp": [ "llave PGP" ]
}
}

View file

@ -0,0 +1,32 @@
{
"texts": {
"what-alt": "utilisation",
"how-alt": "comment participer",
"where-alt": "où s'informer",
"search-button-alt": "chercher sur OpenStreetMap",
"permalink-button-alt": "créer un lien permanent à ces coordonnées",
"stats-button-alt": "statistiques sur les données",
"language-button-alt": "changer langue",
"subtitle": "(Surveillance sous Surveillance)",
"translation": "",
"what-show": "Surveillance under Surveillance vous montre les caméras et gardes — qui vous regardent — presque partout. Vous pouvez voir leurs emplacements et, si l'information est connue, de quels types elles sont, la zone surveillée, ou autres faits intéressants.",
"what-icons": "Différentes icônes et couleurs vous donnent un aperçu des surveillances indexées. Cliquez sur ces icônes sur la carte pour avoir toutes les informations possibles.",
"how-osm": "Surveillance under Surveillance utilise les données des contributeurs OpenStreetMap qui ne sont pas visibles sur le site @@LF00. Si vous souhaitez ajouter de nouvelles caméras/gardes ou si vous voulez modifier les données existantes, @@LT00 ou @@LT01.",
"how-update": "Notre base de donnée est mise à jour toutes les heures. Il se peut donc qu'il faille un certain temps avant que vos modifications sur OSM soient visible sur la carte Surveillance under Surveillance.",
"how-keyval": "Voici les étiquettes clé/valeur les plus courantes dans OpenStreetMap pour qualifier les noeuds de type “surveillance”:",
"how-fork": "En plus de contribuer à OpenStreetMap, n'hésitez pas à forker ce projet sur @@LF00.",
"where-sites": "Visitez les sites suivants qui traitent de sujets liés à la surveillance :",
"footer-pgp": "Voici notre @@LT00 — utilisez-là !",
"footer-note": "Notez que seuls les mails chiffrés recevront une réponse.",
"footer-your-key": "Dites-nous où nous pouvons trouver votre clef PGP.",
"footer-help": "Trouvez de l'aide pour @@LF00 / @@LF01 / @@LF02.",
"at": "at",
"dot": "point",
"new-stats": "nouveau!",
"gdpr": "AUCUNE DONNÉE PERSONNELLE N'EST COLLECTÉE LORS DE VOTRE VISITE SUR CE SITE!"
},
"links": {
"how-osm": [ "utilisez votre compte OSM", "créez-en un" ],
"footer-pgp": [ "clef PGP" ]
}
}

View file

@ -0,0 +1,32 @@
{
"texts": {
"what-alt": "di che cosa si tratta",
"how-alt": "come partecipare",
"where-alt": "dove trovo altre info",
"search-button-alt": "cerca su OpenStreetMap",
"permalink-button-alt": "crea permalink con le coordinate",
"stats-button-alt": "statistiche dell'upload ",
"language-button-alt": "cambia lingua",
"subtitle": "(Sorveglianza sotto Sorveglianza)",
"translation": "",
"what-show": "Surveillance under Surveillance (Sorveglianza sotto Sorveglianza) è un sito che ti mostra telecamere e guardie — che ti osservano — quasi ovunque. Puoi vedere dove si trovano e, se l'informazione è disponibile, di che tipologia,l'area che osservano o altri fatti interessanti.",
"what-icons": "Icone e colori diversi ti danno una rapida panoramica sui differenti tipi di sorveglianza. Clicca su queste icone sulla mappa per ottenere le informazioni disponibili.",
"how-osm": "Surveillance under Surveillance utilizza i dati di OpenStreetMap che non sono visualizzati sul normale @@LF00 sito. Se vuoi aggiungere altre telecamere o guardie o se vuoi rivedere le voci esistenti usa il tuo account entries @@LT00 o creane uno nuovo @@LT01.",
"how-update": "Il nostro database viene aggiornato una volta ogni ora. Quindi potrebbe essere necessario un po' di tempo prima che le tue segnalazioni OSM siano visibili sulla mappa di Surveillance under Surveillance.",
"how-keyval": "These are the most common key/value combinations to describe a surveillance node at OpenStreetMap:",
"how-fork": "Oltre a contribuire a OpenStreetMap sentiti libero di fare un fork di questo progetto su @@LF00.",
"where-sites": "Visita i seguenti siti su argomenti relativi alla sorveglianz:",
"footer-pgp": "Qui la nostra @@LT00 — usala!",
"footer-note": "Si risponde solo a email crittate.",
"footer-your-key": "Facci sapere dove possiamo trovare la tua chiave PGP.",
"footer-help": "Ottieni aiuto per @@LF00 / @@LF01 / @@LF02.",
"at": "at",
"dot": "dot",
"new-stats": "new statistics!",
"gdpr": "NESSUN DATO PERSONALE VIENE RACCOLTO QUANDO VISITI QUESTO SITO!"
},
"links": {
"how-osm": [ "usa il tuo account OSM", "creane uno nuovo" ],
"footer-pgp": [ "PGP key" ]
}
}

View file

@ -0,0 +1,32 @@
{
"texts": {
"what-alt": "",
"how-alt": "",
"where-alt": "",
"search-button-alt": "",
"permalink-button-alt": "",
"stats-button-alt": "",
"language-button-alt": "",
"subtitle": "",
"translation": "This site has not been translated yet. You can help to offer this site in RUSSIAN by sending us your translation via email. Please scroll down for our address. Thanks a lot!",
"what-show": "",
"what-icons": "",
"how-osm": "",
"how-update": "",
"how-keyval": "",
"how-fork": "",
"where-sites": "",
"footer-pgp": "",
"footer-note": "",
"footer-your-key": "",
"footer-help": "",
"at": "",
"dot": "",
"new-stats": "новые!",
"gdpr": ""
},
"links": {
"how-osm": [ "" ],
"footer-pgp": [ "" ]
}
}

View file

@ -0,0 +1,708 @@
{
"texts": {
"xxx": "noch nicht lokalisiert",
"--": "nicht lokalisierbar",
"AA": "",
"AB": "",
"AC": "Ascension",
"AD": "Andorra",
"AE": "Vereinigte Arabische Emirate",
"AF": "Afghanistan",
"AG": "Antigua und Barbuda",
"AH": "",
"AI": "Anguilla",
"AJ": "",
"AK": "",
"AL": "Albanien",
"AM": "Armenien",
"AN": "Niederländische Antillen",
"AO": "Angola",
"AP": "",
"AQ": "Antarktika",
"AR": "Argentinien",
"AS": "Amerikanisch-Samoa",
"AT": "Österreich",
"AU": "Australien",
"AV": "",
"AW": "Aruba",
"AX": "Åland",
"AY": "",
"AZ": "Aserbaidschan",
"BA": "Bosnien und Herzegowina",
"BB": "Barbados",
"BC": "",
"BD": "Bangladesch",
"BE": "Belgien",
"BF": "Burkina Faso",
"BG": "Bulgarien",
"BH": "Bahrain",
"BI": "Burundi",
"BJ": "Benin",
"BK": "",
"BL": "Saint-Barthélemy",
"BM": "Bermuda",
"BN": "Brunei",
"BO": "Bolivien",
"BP": "",
"BQ": "Karibische Niederlande",
"BR": "Brasilien",
"BS": "Bahamas",
"BT": "Bhutan",
"BU": "Birma (Myanmar)",
"BV": "Bouvetinsel",
"BW": "Botswana",
"BX": "",
"BY": "Weißrussland",
"BZ": "Belize",
"CA": "Kanada",
"CB": "",
"CC": "Kokosinseln",
"CD": "Demokratische Republik Kongo",
"CE": "",
"CF": "Zentralafrikanische Republik",
"CG": "Republik Kongo",
"CH": "Schweiz",
"CI": "Elfenbeinküste",
"CJ": "",
"CK": "Cookinseln",
"CL": "Chile",
"CM": "Kamerun",
"CN": "Volksrepublik China",
"CO": "Kolumbien",
"CP": "Clipperton-Insel",
"CQ": "",
"CR": "Costa Rica",
"CS": "Tschechoslowakei (Serbien und Montenegro)",
"CT": "",
"CU": "Kuba",
"CV": "Kap Verde",
"CW": "Curaçao",
"CX": "Weihnachtsinsel",
"CY": "Zypern",
"CZ": "Tschechische Republik",
"DA": "",
"DB": "",
"DC": "",
"DD": "",
"DE": "Deutschland",
"DF": "",
"DG": "Diego Garcia",
"DH": "",
"DI": "",
"DJ": "Dschibuti",
"DK": "Dänemark",
"DL": "",
"DM": "Dominica",
"DN": "",
"DO": "Dominikanische Republik",
"DP": "",
"DQ": "",
"DR": "",
"DS": "",
"DT": "",
"DU": "",
"DV": "",
"DW": "",
"DX": "",
"DY": "Benin",
"DZ": "Algerien",
"EA": "Melilla",
"EB": "",
"EC": "Ecuador",
"ED": "",
"EE": "Estland",
"EF": "",
"EG": "Ägypten",
"EH": "Westsahara",
"EI": "",
"EJ": "",
"EK": "",
"EL": "",
"EM": "",
"EN": "",
"EO": "",
"EP": "",
"EQ": "",
"ER": "Eritrea",
"ES": "Spanien",
"ET": "Äthiopien",
"EU": "",
"EV": "",
"EW": "Estland",
"EX": "",
"EY": "",
"EZ": "",
"FA": "",
"FB": "",
"FC": "",
"FD": "",
"FE": "",
"FF": "",
"FG": "",
"FH": "",
"FI": "Finnland",
"FJ": "Fidschi",
"FK": "Falklandinseln",
"FL": "Liechtenstein",
"FM": "Föderierte Staaten von Mikronesien",
"FN": "",
"FO": "Färöer",
"FP": "",
"FQ": "",
"FR": "Frankreich",
"FS": "",
"FT": "",
"FU": "",
"FV": "",
"FW": "",
"FX": "",
"FY": "",
"FZ": "",
"GA": "Gabun",
"GB": "Vereinigtes Königreich",
"GC": "",
"GD": "Grenada",
"GE": "Georgien",
"GF": "Französisch-Guayana",
"GG": "Guernsey",
"GH": "Ghana",
"GI": "Gibraltar",
"GJ": "",
"GK": "",
"GL": "Grönland",
"GM": "Gambia",
"GN": "Guinea",
"GO": "",
"GP": "Guadeloupe",
"GQ": "Äquatorialguinea",
"GR": "Griechenland",
"GS": "Südgeorgien und die Südlichen Sandwichinseln",
"GT": "Guatemala",
"GU": "Guam",
"GV": "",
"GW": "Guinea-Bissau",
"GX": "",
"GY": "Guyana",
"GZ": "",
"HA": "",
"HB": "",
"HC": "",
"HD": "",
"HE": "",
"HF": "",
"HG": "",
"HH": "",
"HI": "",
"HJ": "",
"HK": "Hongkong",
"HL": "",
"HM": "Heard und McDonaldinseln",
"HN": "Honduras",
"HO": "",
"HP": "",
"HQ": "",
"HR": "Kroatien",
"HS": "",
"HT": "Haiti",
"HU": "Ungarn",
"HV": "",
"HW": "",
"HX": "",
"HY": "",
"HZ": "",
"IA": "",
"IB": "",
"IC": "Kanarische Inseln",
"ID": "Indonesien",
"IE": "Irland",
"IF": "",
"IG": "",
"IH": "",
"II": "",
"IJ": "",
"IK": "",
"IL": "Israel",
"IM": "Isle of Man",
"IN": "Indien",
"IO": "Britisches Territorium im Indischen Ozean",
"IP": "",
"IQ": "Irak",
"IR": "Iran",
"IS": "Island",
"IT": "Italien",
"IU": "",
"IV": "",
"IW": "",
"IX": "",
"IY": "",
"IZ": "",
"JA": "Jamaika",
"JB": "",
"JC": "",
"JD": "",
"JE": "Jersey",
"JF": "",
"JG": "",
"JH": "",
"JI": "",
"JJ": "",
"JK": "",
"JL": "",
"JM": "Jamaika",
"JN": "",
"JO": "Jordanien",
"JP": "Japan",
"JQ": "",
"JR": "",
"JS": "",
"JT": "",
"JU": "",
"JV": "",
"JW": "",
"JX": "",
"JY": "",
"JZ": "",
"KA": "",
"KB": "",
"KC": "",
"KD": "",
"KE": "Kenia",
"KF": "",
"KG": "Kirgisistan",
"KH": "Kambodscha",
"KI": "Kiribati",
"KJ": "",
"KK": "",
"KL": "",
"KM": "Komoren",
"KN": "St. Kitts und Nevis",
"KO": "",
"KP": "Nordkorea",
"KQ": "",
"KR": "Südkorea",
"KS": "",
"KT": "",
"KU": "",
"KV": "",
"KW": "Kuwait",
"KX": "",
"KY": "Kaimaninseln",
"KZ": "Kasachstan",
"LA": "Laos",
"LB": "Libanon",
"LC": "St. Lucia",
"LD": "",
"LE": "",
"LF": "",
"LG": "",
"LH": "",
"LI": "Liechtenstein",
"LJ": "",
"LK": "Sri Lanka",
"LL": "",
"LM": "",
"LN": "",
"LO": "",
"LP": "",
"LQ": "",
"LR": "Liberia",
"LS": "Lesotho",
"LT": "Litauen",
"LU": "Luxemburg",
"LV": "Lettland",
"LW": "",
"LX": "",
"LY": "Libyen",
"LZ": "",
"MA": "Marokko",
"MB": "",
"MC": "Monaco",
"MD": "Moldawien",
"ME": "Montenegro",
"MF": "Saint-Martin",
"MG": "Madagaskar",
"MH": "Marshallinseln",
"MI": "",
"MJ": "",
"MK": "Mazedonien",
"ML": "Mali",
"MM": "Myanmar",
"MN": "Mongolei",
"MO": "Macau",
"MP": "Nördliche Marianen",
"MQ": "Martinique",
"MR": "Mauretanien",
"MS": "Montserrat",
"MT": "Malta",
"MU": "Mauritius",
"MV": "Malediven",
"MW": "Malawi",
"MX": "Mexiko",
"MY": "Malaysia",
"MZ": "Mosambik",
"NA": "Namibia",
"NB": "",
"NC": "Neukaledonien",
"ND": "",
"NE": "Niger",
"NF": "Norfolkinsel",
"NG": "Nigeria",
"NH": "",
"NI": "Nicaragua",
"NJ": "",
"NK": "",
"NL": "Niederlande",
"NM": "",
"NN": "",
"NO": "Norwegen",
"NP": "Nepal",
"NQ": "",
"NR": "Nauru",
"NS": "",
"NT": "",
"NU": "Niue",
"NV": "",
"NW": "",
"NX": "",
"NY": "",
"NZ": "Neuseeland",
"OA": "",
"OB": "",
"OC": "",
"OD": "",
"OE": "",
"OF": "",
"OG": "",
"OH": "",
"OI": "",
"OJ": "",
"OK": "",
"OL": "",
"OM": "Oman",
"ON": "",
"OO": "",
"OP": "",
"OQ": "",
"OR": "",
"OS": "",
"OT": "",
"OU": "",
"OV": "",
"OW": "",
"OX": "",
"OY": "",
"OZ": "",
"PA": "Panama",
"PB": "",
"PC": "",
"PD": "",
"PE": "Peru",
"PF": "Französisch-Polynesien",
"PG": "Papua-Neuguinea",
"PH": "Philippinen",
"PI": "Philippinen",
"PJ": "",
"PK": "Pakistan",
"PL": "Polen",
"PM": "Saint-Pierre und Miquelon",
"PN": "Pitcairninseln",
"PO": "",
"PP": "",
"PQ": "",
"PR": "Puerto Rico",
"PS": "Staat Palästina",
"PT": "Portugal",
"PU": "",
"PV": "",
"PW": "Palau",
"PX": "",
"PY": "Paraguay",
"PZ": "",
"QA": "Katar",
"QB": "",
"QC": "",
"QD": "",
"QE": "",
"QF": "",
"QG": "",
"QH": "",
"QI": "",
"QJ": "",
"QK": "",
"QL": "",
"QM": "",
"QN": "",
"QO": "",
"QP": "",
"QQ": "",
"QR": "",
"QS": "",
"QT": "",
"QU": "",
"QV": "",
"QW": "",
"QX": "",
"QY": "",
"QZ": "",
"RA": "Argentinien",
"RB": "Bolivia; Botswana",
"RC": "Taiwan (Republik China)",
"RD": "",
"RE": "Réunion",
"RF": "",
"RG": "",
"RH": "Haiti",
"RI": "Indonesien",
"RJ": "",
"RK": "",
"RL": "Libanon",
"RM": "Madagaskar",
"RN": "Niger",
"RO": "Rumänien",
"RP": "Philippinen",
"RQ": "",
"RR": "",
"RS": "Serbien",
"RT": "",
"RU": "Russland",
"RV": "",
"RW": "Ruanda",
"RX": "",
"RY": "",
"RZ": "",
"SA": "Saudi-Arabien",
"SB": "Salomonen",
"SC": "Seychellen",
"SD": "Sudan",
"SE": "Schweden",
"SF": "Finnland",
"SG": "Singapur",
"SH": "St. Helena, Ascension und Tristan da Cunha",
"SI": "Slowenien",
"SJ": "Spitzbergen und Jan Mayen",
"SK": "Slowakei",
"SL": "Sierra Leone",
"SM": "San Marino",
"SN": "Senegal",
"SO": "Somalia",
"SP": "",
"SQ": "",
"SR": "Surinam",
"SS": "Südsudan",
"ST": "São Tomé und Príncipe",
"SU": "Union der Sozialistischen Sowjetrepubliken (UdSSR)",
"SV": "El Salvador",
"SW": "",
"SX": "Sint Maarten",
"SY": "Syrien",
"SZ": "Swasiland",
"TA": "Tristan da Cunha",
"TB": "",
"TC": "Turks- und Caicosinseln",
"TD": "Tschad",
"TE": "",
"TF": "Französische Süd- und Antarktisgebiete",
"TG": "Togo",
"TH": "Thailand",
"TI": "",
"TJ": "Tadschikistan",
"TK": "Tokelau",
"TL": "Osttimor",
"TM": "Turkmenistan",
"TN": "Tunesien",
"TO": "Tonga",
"TP": "Osttimor",
"TQ": "",
"TR": "Türkei",
"TS": "",
"TT": "Trinidad und Tobago",
"TU": "",
"TV": "Tuvalu",
"TW": "Taiwan (Republik China)",
"TX": "",
"TY": "",
"TZ": "Tansania",
"UA": "Ukraine",
"UB": "",
"UC": "",
"UD": "",
"UE": "",
"UF": "",
"UG": "Uganda",
"UH": "",
"UI": "",
"UJ": "",
"UK": "Vereinigtes Königreich",
"UL": "",
"UM": "Kleinere Inselbesitzungen der Vereinigten Staaten",
"UN": "",
"UO": "",
"UP": "",
"UQ": "",
"UR": "",
"US": "Vereinigte Staaten von Amerika (USA)",
"UT": "",
"UU": "",
"UV": "",
"UW": "",
"UX": "",
"UY": "Uruguay",
"UZ": "Usbekistan",
"VA": "Vatikanstadt",
"VB": "",
"VC": "St. Vincent und die Grenadinen",
"VD": "",
"VE": "Venezuela",
"VF": "",
"VG": "Britische Jungferninseln",
"VH": "",
"VI": "Amerikanische Jungferninseln",
"VJ": "",
"VK": "",
"VL": "",
"VM": "",
"VN": "Vietnam",
"VO": "",
"VP": "",
"VQ": "",
"VR": "",
"VS": "",
"VT": "",
"VU": "Vanuatu",
"VV": "",
"VW": "",
"VX": "",
"VY": "",
"VZ": "",
"WA": "",
"WB": "",
"WC": "",
"WD": "",
"WE": "",
"WF": "Wallis und Futuna",
"WG": "Grenada",
"WH": "",
"WI": "",
"WJ": "",
"WK": "",
"WL": "St. Lucia",
"WM": "",
"WN": "",
"WO": "",
"WP": "",
"WQ": "",
"WR": "",
"WS": "Samoa",
"WT": "",
"WU": "",
"WV": "St. Vincent und die Grenadinen",
"WW": "",
"WX": "",
"WY": "",
"WZ": "",
"XA": "",
"XB": "",
"XC": "",
"XD": "",
"XE": "",
"XF": "",
"XG": "",
"XH": "",
"XI": "",
"XJ": "",
"XK": "Kosovo",
"XL": "",
"XM": "",
"XN": "",
"XO": "",
"XP": "",
"XQ": "",
"XR": "",
"XS": "",
"XT": "",
"XU": "",
"XV": "",
"XW": "",
"XX": "",
"XY": "",
"XZ": "",
"YA": "",
"YB": "",
"YC": "",
"YD": "",
"YE": "Jemen",
"YF": "",
"YG": "",
"YH": "",
"YI": "",
"YJ": "",
"YK": "",
"YL": "",
"YM": "",
"YN": "",
"YO": "",
"YP": "",
"YQ": "",
"YR": "",
"YS": "",
"YT": "Mayotte",
"YU": "Jugoslawien",
"YV": "Venezuela",
"YW": "",
"YX": "",
"YY": "",
"YZ": "",
"ZA": "Südafrika",
"ZB": "",
"ZC": "",
"ZD": "",
"ZE": "",
"ZF": "",
"ZG": "",
"ZH": "",
"ZI": "",
"ZJ": "",
"ZK": "",
"ZL": "",
"ZM": "Sambia",
"ZN": "",
"ZO": "",
"ZP": "",
"ZQ": "",
"ZR": "Zaire",
"ZS": "",
"ZT": "",
"ZU": "",
"ZV": "",
"ZW": "Simbabwe",
"ZX": "",
"ZY": "",
"ZZ": ""
}
}

View file

@ -0,0 +1,708 @@
{
"texts": {
"xxx": "not localized yet",
"--": "unable to localize",
"AA": "",
"AB": "",
"AC": "Ascension Island",
"AD": "Andorra",
"AE": "United Arab Emirates",
"AF": "Afghanistan",
"AG": "Antigua and Barbuda",
"AH": "",
"AI": "Anguilla",
"AJ": "",
"AK": "",
"AL": "Albania",
"AM": "Armenia",
"AN": "Netherlands Antilles",
"AO": "Angola",
"AP": "",
"AQ": "Antarctica",
"AR": "Argentina",
"AS": "American Samoa",
"AT": "Austria",
"AU": "Australia",
"AV": "",
"AW": "Aruba",
"AX": "Åland Islands",
"AY": "",
"AZ": "Azerbaijan",
"BA": "Bosnia and Herzegovina",
"BB": "Barbados",
"BC": "",
"BD": "Bangladesh",
"BE": "Belgium",
"BF": "Burkina Faso",
"BG": "Bulgaria",
"BH": "Bahrain",
"BI": "Burundi",
"BJ": "Benin",
"BK": "",
"BL": "Saint Barthélemy",
"BM": "Bermuda",
"BN": "Brunei",
"BO": "Bolivia",
"BP": "",
"BQ": "Caribbean Netherlands",
"BR": "Brazil",
"BS": "Bahamas",
"BT": "Bhutan",
"BU": "Burma (Myanmar)",
"BV": "Bouvet Island",
"BW": "Botswana",
"BX": "",
"BY": "Belarus",
"BZ": "Belize",
"CA": "Canada",
"CB": "",
"CC": "Cocos Islands",
"CD": "Democratic Republic of the Congo",
"CE": "",
"CF": "Central African Republic",
"CG": "Republic of the Congo",
"CH": "Switzerland",
"CI": "Ivory Coast",
"CJ": "",
"CK": "Cook Islands",
"CL": "Chile",
"CM": "Cameroon",
"CN": "People's Republic of China",
"CO": "Colombia",
"CP": "Clipperton Island",
"CQ": "",
"CR": "Costa Rica",
"CS": "Czechoslovakia (Serbia and Montenegro)",
"CT": "",
"CU": "Cuba",
"CV": "Cape Verde",
"CW": "Curaçao",
"CX": "Christmas Island",
"CY": "Cyprus",
"CZ": "Czech Republic",
"DA": "",
"DB": "",
"DC": "",
"DD": "",
"DE": "Germany",
"DF": "",
"DG": "Diego Garcia",
"DH": "",
"DI": "",
"DJ": "Djibouti",
"DK": "Denmark",
"DL": "",
"DM": "Dominica",
"DN": "",
"DO": "Dominican Republic",
"DP": "",
"DQ": "",
"DR": "",
"DS": "",
"DT": "",
"DU": "",
"DV": "",
"DW": "",
"DX": "",
"DY": "Benin",
"DZ": "Algeria",
"EA": "Melilla",
"EB": "",
"EC": "Ecuador",
"ED": "",
"EE": "Estonia",
"EF": "",
"EG": "Egypt",
"EH": "Western Sahara",
"EI": "",
"EJ": "",
"EK": "",
"EL": "",
"EM": "",
"EN": "",
"EO": "",
"EP": "",
"EQ": "",
"ER": "Eritrea",
"ES": "Spain",
"ET": "Ethiopia",
"EU": "",
"EV": "",
"EW": "Estonia",
"EX": "",
"EY": "",
"EZ": "",
"FA": "",
"FB": "",
"FC": "",
"FD": "",
"FE": "",
"FF": "",
"FG": "",
"FH": "",
"FI": "Finland",
"FJ": "Fiji",
"FK": "Falkland Islands",
"FL": "Liechtenstein",
"FM": "Federated States of Micronesia",
"FN": "",
"FO": "Faroe Islands",
"FP": "",
"FQ": "",
"FR": "France",
"FS": "",
"FT": "",
"FU": "",
"FV": "",
"FW": "",
"FX": "",
"FY": "",
"FZ": "",
"GA": "Gabon",
"GB": "United Kingdom",
"GC": "",
"GD": "Grenada",
"GE": "Georgia",
"GF": "French Guiana",
"GG": "Guernsey",
"GH": "Ghana",
"GI": "Gibraltar",
"GJ": "",
"GK": "",
"GL": "Greenland",
"GM": "Gambia",
"GN": "Guinea",
"GO": "",
"GP": "Guadeloupe",
"GQ": "Equatorial Guinea",
"GR": "Greece",
"GS": "South Georgia and the South Sandwich Islands",
"GT": "Guatemala",
"GU": "Guam",
"GV": "",
"GW": "Guinea-Bissau",
"GX": "",
"GY": "Guyana",
"GZ": "",
"HA": "",
"HB": "",
"HC": "",
"HD": "",
"HE": "",
"HF": "",
"HG": "",
"HH": "",
"HI": "",
"HJ": "",
"HK": "Hong Kong",
"HL": "",
"HM": "Heard Island and McDonald Islands",
"HN": "Honduras",
"HO": "",
"HP": "",
"HQ": "",
"HR": "Croatia",
"HS": "",
"HT": "Haiti",
"HU": "Hungary",
"HV": "",
"HW": "",
"HX": "",
"HY": "",
"HZ": "",
"IA": "",
"IB": "",
"IC": "Canary Islands",
"ID": "Indonesia",
"IE": "Ireland",
"IF": "",
"IG": "",
"IH": "",
"II": "",
"IJ": "",
"IK": "",
"IL": "Israel",
"IM": "Isle of Man",
"IN": "India",
"IO": "British Indian Ocean Territory",
"IP": "",
"IQ": "Iraq",
"IR": "Iran",
"IS": "Iceland",
"IT": "Italy",
"IU": "",
"IV": "",
"IW": "",
"IX": "",
"IY": "",
"IZ": "",
"JA": "Jamaica",
"JB": "",
"JC": "",
"JD": "",
"JE": "Jersey",
"JF": "",
"JG": "",
"JH": "",
"JI": "",
"JJ": "",
"JK": "",
"JL": "",
"JM": "Jamaica",
"JN": "",
"JO": "Jordan",
"JP": "Japan",
"JQ": "",
"JR": "",
"JS": "",
"JT": "",
"JU": "",
"JV": "",
"JW": "",
"JX": "",
"JY": "",
"JZ": "",
"KA": "",
"KB": "",
"KC": "",
"KD": "",
"KE": "Kenya",
"KF": "",
"KG": "Kyrgyzstan",
"KH": "Cambodia",
"KI": "Kiribati",
"KJ": "",
"KK": "",
"KL": "",
"KM": "Comoros",
"KN": "Saint Kitts and Nevis",
"KO": "",
"KP": "North Korea",
"KQ": "",
"KR": "South Korea",
"KS": "",
"KT": "",
"KU": "",
"KV": "",
"KW": "Kuwait",
"KX": "",
"KY": "Cayman Islands",
"KZ": "Kazakhstan",
"LA": "Laos",
"LB": "Lebanon",
"LC": "Saint Lucia",
"LD": "",
"LE": "",
"LF": "",
"LG": "",
"LH": "",
"LI": "Liechtenstein",
"LJ": "",
"LK": "Sri Lanka",
"LL": "",
"LM": "",
"LN": "",
"LO": "",
"LP": "",
"LQ": "",
"LR": "Liberia",
"LS": "Lesotho",
"LT": "Lithuania",
"LU": "Luxembourg",
"LV": "Latvia",
"LW": "",
"LX": "",
"LY": "Libya",
"LZ": "",
"MA": "Morocco",
"MB": "",
"MC": "Monaco",
"MD": "Moldova",
"ME": "Montenegro",
"MF": "Saint Martin",
"MG": "Madagascar",
"MH": "Marshall Islands",
"MI": "",
"MJ": "",
"MK": "Macedonia",
"ML": "Mali",
"MM": "Myanmar",
"MN": "Mongolia",
"MO": "Macau",
"MP": "Northern Mariana Islands",
"MQ": "Martinique",
"MR": "Mauritania",
"MS": "Montserrat",
"MT": "Malta",
"MU": "Mauritius",
"MV": "Maldives",
"MW": "Malawi",
"MX": "Mexico",
"MY": "Malaysia",
"MZ": "Mozambique",
"NA": "Namibia",
"NB": "",
"NC": "New Caledonia",
"ND": "",
"NE": "Niger",
"NF": "Norfolk Island",
"NG": "Nigeria",
"NH": "",
"NI": "Nicaragua",
"NJ": "",
"NK": "",
"NL": "Netherlands",
"NM": "",
"NN": "",
"NO": "Norway",
"NP": "Nepal",
"NQ": "",
"NR": "Nauru",
"NS": "",
"NT": "",
"NU": "Niue",
"NV": "",
"NW": "",
"NX": "",
"NY": "",
"NZ": "New Zealand",
"OA": "",
"OB": "",
"OC": "",
"OD": "",
"OE": "",
"OF": "",
"OG": "",
"OH": "",
"OI": "",
"OJ": "",
"OK": "",
"OL": "",
"OM": "Oman",
"ON": "",
"OO": "",
"OP": "",
"OQ": "",
"OR": "",
"OS": "",
"OT": "",
"OU": "",
"OV": "",
"OW": "",
"OX": "",
"OY": "",
"OZ": "",
"PA": "Panama",
"PB": "",
"PC": "",
"PD": "",
"PE": "Peru",
"PF": "French Polynesia",
"PG": "Papua New Guinea",
"PH": "Philippines",
"PI": "Philippines",
"PJ": "",
"PK": "Pakistan",
"PL": "Poland",
"PM": "Saint Pierre and Miquelon",
"PN": "Pitcairn Islands",
"PO": "",
"PP": "",
"PQ": "",
"PR": "Puerto Rico",
"PS": "State of Palestine",
"PT": "Portugal",
"PU": "",
"PV": "",
"PW": "Palau",
"PX": "",
"PY": "Paraguay",
"PZ": "",
"QA": "Qatar",
"QB": "",
"QC": "",
"QD": "",
"QE": "",
"QF": "",
"QG": "",
"QH": "",
"QI": "",
"QJ": "",
"QK": "",
"QL": "",
"QM": "",
"QN": "",
"QO": "",
"QP": "",
"QQ": "",
"QR": "",
"QS": "",
"QT": "",
"QU": "",
"QV": "",
"QW": "",
"QX": "",
"QY": "",
"QZ": "",
"RA": "Argentina",
"RB": "Bolivia; Botswana",
"RC": "Taiwan (Republic of China)",
"RD": "",
"RE": "Réunion",
"RF": "",
"RG": "",
"RH": "Haiti",
"RI": "Indonesia",
"RJ": "",
"RK": "",
"RL": "Lebanon",
"RM": "Madagascar",
"RN": "Niger",
"RO": "Romania",
"RP": "Philippines",
"RQ": "",
"RR": "",
"RS": "Serbia",
"RT": "",
"RU": "Russia",
"RV": "",
"RW": "Rwanda",
"RX": "",
"RY": "",
"RZ": "",
"SA": "Saudi Arabia",
"SB": "Solomon Islands",
"SC": "Seychelles",
"SD": "Sudan",
"SE": "Sweden",
"SF": "Finland",
"SG": "Singapore",
"SH": "Saint Helena, Ascension and Tristan da Cunha",
"SI": "Slovenia",
"SJ": "Svalbard and Jan Mayen",
"SK": "Slovakia",
"SL": "Sierra Leone",
"SM": "San Marino",
"SN": "Senegal",
"SO": "Somalia",
"SP": "",
"SQ": "",
"SR": "Suriname",
"SS": "South Sudan",
"ST": "São Tomé and Príncipe",
"SU": "Union of Soviet Socialist Republics (USSR)",
"SV": "El Salvador",
"SW": "",
"SX": "Sint Maarten",
"SY": "Syria",
"SZ": "Swaziland",
"TA": "Tristan da Cunha",
"TB": "",
"TC": "Turks and Caicos Islands",
"TD": "Chad",
"TE": "",
"TF": "French Southern and Antarctic Lands",
"TG": "Togo",
"TH": "Thailand",
"TI": "",
"TJ": "Tajikistan",
"TK": "Tokelau",
"TL": "East Timor",
"TM": "Turkmenistan",
"TN": "Tunisia",
"TO": "Tonga",
"TP": "East Timor",
"TQ": "",
"TR": "Turkey",
"TS": "",
"TT": "Trinidad and Tobago",
"TU": "",
"TV": "Tuvalu",
"TW": "Taiwan (Republic of China)",
"TX": "",
"TY": "",
"TZ": "Tanzania",
"UA": "Ukraine",
"UB": "",
"UC": "",
"UD": "",
"UE": "",
"UF": "",
"UG": "Uganda",
"UH": "",
"UI": "",
"UJ": "",
"UK": "United Kingdom",
"UL": "",
"UM": "United States Minor Outlying Islands",
"UN": "",
"UO": "",
"UP": "",
"UQ": "",
"UR": "",
"US": "United States of America (USA)",
"UT": "",
"UU": "",
"UV": "",
"UW": "",
"UX": "",
"UY": "Uruguay",
"UZ": "Uzbekistan",
"VA": "Vatican City",
"VB": "",
"VC": "Saint Vincent and the Grenadines",
"VD": "",
"VE": "Venezuela",
"VF": "",
"VG": "British Virgin Islands",
"VH": "",
"VI": "United States Virgin Islands",
"VJ": "",
"VK": "",
"VL": "",
"VM": "",
"VN": "Vietnam",
"VO": "",
"VP": "",
"VQ": "",
"VR": "",
"VS": "",
"VT": "",
"VU": "Vanuatu",
"VV": "",
"VW": "",
"VX": "",
"VY": "",
"VZ": "",
"WA": "",
"WB": "",
"WC": "",
"WD": "",
"WE": "",
"WF": "Wallis and Futuna",
"WG": "Grenada",
"WH": "",
"WI": "",
"WJ": "",
"WK": "",
"WL": "Saint Lucia",
"WM": "",
"WN": "",
"WO": "",
"WP": "",
"WQ": "",
"WR": "",
"WS": "Samoa",
"WT": "",
"WU": "",
"WV": "Saint Vincent and the Grenadines",
"WW": "",
"WX": "",
"WY": "",
"WZ": "",
"XA": "",
"XB": "",
"XC": "",
"XD": "",
"XE": "",
"XF": "",
"XG": "",
"XH": "",
"XI": "",
"XJ": "",
"XK": "Kosovo",
"XL": "",
"XM": "",
"XN": "",
"XO": "",
"XP": "",
"XQ": "",
"XR": "",
"XS": "",
"XT": "",
"XU": "",
"XV": "",
"XW": "",
"XX": "",
"XY": "",
"XZ": "",
"YA": "",
"YB": "",
"YC": "",
"YD": "",
"YE": "Yemen",
"YF": "",
"YG": "",
"YH": "",
"YI": "",
"YJ": "",
"YK": "",
"YL": "",
"YM": "",
"YN": "",
"YO": "",
"YP": "",
"YQ": "",
"YR": "",
"YS": "",
"YT": "Mayotte",
"YU": "Yugoslavia",
"YV": "Venezuela",
"YW": "",
"YX": "",
"YY": "",
"YZ": "",
"ZA": "South Africa",
"ZB": "",
"ZC": "",
"ZD": "",
"ZE": "",
"ZF": "",
"ZG": "",
"ZH": "",
"ZI": "",
"ZJ": "",
"ZK": "",
"ZL": "",
"ZM": "Zambia",
"ZN": "",
"ZO": "",
"ZP": "",
"ZQ": "",
"ZR": "Zaire",
"ZS": "",
"ZT": "",
"ZU": "",
"ZV": "",
"ZW": "Zimbabwe",
"ZX": "",
"ZY": "",
"ZZ": ""
}
}

View file

@ -0,0 +1,708 @@
{
"texts": {
"xxx": "aún no localizado",
"--": "incapaz de localizar",
"AA": "",
"AB": "",
"AC": "Isla Ascensión",
"AD": "Andorra",
"AE": "Emiratos Árabes Unidos",
"AF": "Afganistán",
"AG": "Antigua y Barbuda",
"AH": "",
"AI": "Anguila",
"AJ": "",
"AK": "",
"AL": "Albania",
"AM": "Armenia",
"AN": "Antillas Neerlandesas",
"AO": "Angola",
"AP": "",
"AQ": "Antártida",
"AR": "Argentina",
"AS": "Samoa Americana",
"AT": "Austria",
"AU": "Australia",
"AV": "",
"AW": "Aruba",
"AX": "Åland",
"AY": "",
"AZ": "Azerbaiyán",
"BA": "Bosnia y Herzegovina",
"BB": "Barbados",
"BC": "",
"BD": "Bangladés",
"BE": "Bélgica",
"BF": "Burkina Faso",
"BG": "Bulgaria",
"BH": "Baréin",
"BI": "Burundi",
"BJ": "Benín",
"BK": "",
"BL": "San Bartolomé",
"BM": "Bermudas",
"BN": "Brunéi",
"BO": "Bolivia",
"BP": "",
"BQ": "Caribe Neerlandés",
"BR": "Brasil",
"BS": "Bahamas",
"BT": "Bután",
"BU": "Birmania (Myanmar)",
"BV": "Isla Bouvet",
"BW": "Botsuana",
"BX": "",
"BY": "Bielorrusia",
"BZ": "Belice",
"CA": "Canadá",
"CB": "",
"CC": "Islas Cocos",
"CD": "República Democrática del Congo",
"CE": "",
"CF": "República Centroafricana",
"CG": "República del Congo",
"CH": "Suiza",
"CI": "Costa de Marfil",
"CJ": "",
"CK": "Islas Cook",
"CL": "Chile",
"CM": "Camerún",
"CN": "República Popular China",
"CO": "Colombia",
"CP": "Isla Clipperton",
"CQ": "",
"CR": "Costa Rica",
"CS": "Checoslovaquia (Serbia y Montenegro)",
"CT": "",
"CU": "Cuba",
"CV": "Cabo Verde",
"CW": "Curazao",
"CX": "Isla de Navidad",
"CY": "Chipre",
"CZ": "República Checa",
"DA": "",
"DB": "",
"DC": "",
"DD": "",
"DE": "Alemania",
"DF": "",
"DG": "Diego García",
"DH": "",
"DI": "",
"DJ": "Yibuti",
"DK": "Dinamarca",
"DL": "",
"DM": "Dominica",
"DN": "",
"DO": "República Dominicana",
"DP": "",
"DQ": "",
"DR": "",
"DS": "",
"DT": "",
"DU": "",
"DV": "",
"DW": "",
"DX": "",
"DY": "Benín",
"DZ": "Argelia",
"EA": "Melilla",
"EB": "",
"EC": "Ecuador",
"ED": "",
"EE": "Estonia",
"EF": "",
"EG": "Egipto",
"EH": "Sahara Occidental",
"EI": "",
"EJ": "",
"EK": "",
"EL": "",
"EM": "",
"EN": "",
"EO": "",
"EP": "",
"EQ": "",
"ER": "Eritrea",
"ES": "España",
"ET": "Etiopía",
"EU": "",
"EV": "",
"EW": "Estonia",
"EX": "",
"EY": "",
"EZ": "",
"FA": "",
"FB": "",
"FC": "",
"FD": "",
"FE": "",
"FF": "",
"FG": "",
"FH": "",
"FI": "Finlandia",
"FJ": "Fiyi",
"FK": "Islas Malvinas",
"FL": "Liechtenstein",
"FM": "Estados Federados de Micronesia",
"FN": "",
"FO": "Islas Feroe",
"FP": "",
"FQ": "",
"FR": "Francia",
"FS": "",
"FT": "",
"FU": "",
"FV": "",
"FW": "",
"FX": "",
"FY": "",
"FZ": "",
"GA": "Gabón",
"GB": "Reino Unido",
"GC": "",
"GD": "Granada",
"GE": "Georgia",
"GF": "Guayana Francesa",
"GG": "Guernsey",
"GH": "Ghana",
"GI": "Gibraltar",
"GJ": "",
"GK": "",
"GL": "Groenlandia",
"GM": "Gambia",
"GN": "Guinea",
"GO": "",
"GP": "Guadalupe",
"GQ": "Guinea Ecuatorial",
"GR": "Grecia",
"GS": "Islas Georgias del Sur y Sandwich del Sur",
"GT": "Guatemala",
"GU": "Guam",
"GV": "",
"GW": "Guinea-Bisáu",
"GX": "",
"GY": "Guyana",
"GZ": "",
"HA": "",
"HB": "",
"HC": "",
"HD": "",
"HE": "",
"HF": "",
"HG": "",
"HH": "",
"HI": "",
"HJ": "",
"HK": "Hong Kong",
"HL": "",
"HM": "Islas Heard y McDonald",
"HN": "Honduras",
"HO": "",
"HP": "",
"HQ": "",
"HR": "Croacia",
"HS": "",
"HT": "Haití",
"HU": "Hungría",
"HV": "",
"HW": "",
"HX": "",
"HY": "",
"HZ": "",
"IA": "",
"IB": "",
"IC": "Canarias",
"ID": "Indonesia",
"IE": "Irlanda",
"IF": "",
"IG": "",
"IH": "",
"II": "",
"IJ": "",
"IK": "",
"IL": "Israel",
"IM": "Isla de Man",
"IN": "India",
"IO": "Territorio Británico del Océano Índico",
"IP": "",
"IQ": "Irak",
"IR": "Irán",
"IS": "Islandia",
"IT": "Italia",
"IU": "",
"IV": "",
"IW": "",
"IX": "",
"IY": "",
"IZ": "",
"JA": "Jamaica",
"JB": "",
"JC": "",
"JD": "",
"JE": "Jersey",
"JF": "",
"JG": "",
"JH": "",
"JI": "",
"JJ": "",
"JK": "",
"JL": "",
"JM": "Jamaica",
"JN": "",
"JO": "Jordania",
"JP": "Japón",
"JQ": "",
"JR": "",
"JS": "",
"JT": "",
"JU": "",
"JV": "",
"JW": "",
"JX": "",
"JY": "",
"JZ": "",
"KA": "",
"KB": "",
"KC": "",
"KD": "",
"KE": "Kenia",
"KF": "",
"KG": "Kirguistán",
"KH": "Camboya",
"KI": "Kiribati",
"KJ": "",
"KK": "",
"KL": "",
"KM": "Comoras",
"KN": "San Cristóbal y Nieves",
"KO": "",
"KP": "Corea del Norte",
"KQ": "",
"KR": "Corea del Sur",
"KS": "",
"KT": "",
"KU": "",
"KV": "",
"KW": "Kuwait",
"KX": "",
"KY": "Islas Caimán",
"KZ": "Kazajistán",
"LA": "Laos",
"LB": "Líbano",
"LC": "Santa Lucía",
"LD": "",
"LE": "",
"LF": "",
"LG": "",
"LH": "",
"LI": "Liechtenstein",
"LJ": "",
"LK": "Sri Lanka",
"LL": "",
"LM": "",
"LN": "",
"LO": "",
"LP": "",
"LQ": "",
"LR": "Liberia",
"LS": "Lesoto",
"LT": "Lituania",
"LU": "Luxemburgo",
"LV": "Letonia",
"LW": "",
"LX": "",
"LY": "Libia",
"LZ": "",
"MA": "Marruecos",
"MB": "",
"MC": "Mónaco",
"MD": "Moldavia",
"ME": "Montenegro",
"MF": "San Martín",
"MG": "Madagascar",
"MH": "Islas Marshall",
"MI": "",
"MJ": "",
"MK": "Macedonia",
"ML": "Malí",
"MM": "Myanmar",
"MN": "Mongolia",
"MO": "Macao",
"MP": "Islas Marianas del Norte",
"MQ": "Martinica",
"MR": "Mauritania",
"MS": "Montserrat",
"MT": "Malta",
"MU": "Mauricio",
"MV": "Maldivas",
"MW": "Malaui",
"MX": "México",
"MY": "Malasia",
"MZ": "Mozambique",
"NA": "Namibia",
"NB": "",
"NC": "Nueva Caledonia",
"ND": "",
"NE": "Níger",
"NF": "Isla Norfolk",
"NG": "Nigeria",
"NH": "",
"NI": "Nicaragua",
"NJ": "",
"NK": "",
"NL": "Países Bajos",
"NM": "",
"NN": "",
"NO": "Noruega",
"NP": "Nepal",
"NQ": "",
"NR": "Nauru",
"NS": "",
"NT": "",
"NU": "Niue",
"NV": "",
"NW": "",
"NX": "",
"NY": "",
"NZ": "Nueva Zelanda",
"OA": "",
"OB": "",
"OC": "",
"OD": "",
"OE": "",
"OF": "",
"OG": "",
"OH": "",
"OI": "",
"OJ": "",
"OK": "",
"OL": "",
"OM": "Omán",
"ON": "",
"OO": "",
"OP": "",
"OQ": "",
"OR": "",
"OS": "",
"OT": "",
"OU": "",
"OV": "",
"OW": "",
"OX": "",
"OY": "",
"OZ": "",
"PA": "Panamá",
"PB": "",
"PC": "",
"PD": "",
"PE": "Perú",
"PF": "Polinesia Francesa",
"PG": "Papúa Nueva Guinea",
"PH": "Filipinas",
"PI": "Filipinas",
"PJ": "",
"PK": "Pakistán",
"PL": "Polonia",
"PM": "San Pedro y Miquelón",
"PN": "Islas Pitcairn",
"PO": "",
"PP": "",
"PQ": "",
"PR": "Puerto Rico",
"PS": "Estado de Palestina",
"PT": "Portugal",
"PU": "",
"PV": "",
"PW": "Palaos",
"PX": "",
"PY": "Paraguay",
"PZ": "",
"QA": "Catar",
"QB": "",
"QC": "",
"QD": "",
"QE": "",
"QF": "",
"QG": "",
"QH": "",
"QI": "",
"QJ": "",
"QK": "",
"QL": "",
"QM": "",
"QN": "",
"QO": "",
"QP": "",
"QQ": "",
"QR": "",
"QS": "",
"QT": "",
"QU": "",
"QV": "",
"QW": "",
"QX": "",
"QY": "",
"QZ": "",
"RA": "Argentina",
"RB": "Bolivia; Botsuana",
"RC": "Taiwán (República de China)",
"RD": "",
"RE": "Reunión",
"RF": "",
"RG": "",
"RH": "Haití",
"RI": "Indonesia",
"RJ": "",
"RK": "",
"RL": "Líbano",
"RM": "Madagascar",
"RN": "Níger",
"RO": "Rumania",
"RP": "Filipinas",
"RQ": "",
"RR": "",
"RS": "Serbia",
"RT": "",
"RU": "Rusia",
"RV": "",
"RW": "Ruanda",
"RX": "",
"RY": "",
"RZ": "",
"SA": "Arabia Saudita",
"SB": "Islas Salomón",
"SC": "Seychelles",
"SD": "Sudán",
"SE": "Suecia",
"SF": "Finlandia",
"SG": "Singapur",
"SH": "Santa Elena, Ascensión y Tristán de Acuña",
"SI": "Eslovenia",
"SJ": "Svalbard y Jan Mayen",
"SK": "Eslovaquia",
"SL": "Sierra Leona",
"SM": "San Marino",
"SN": "Senegal",
"SO": "Somalia",
"SP": "",
"SQ": "",
"SR": "Surinam",
"SS": "Sudán del Sur",
"ST": "Santo Tomé y Príncipe",
"SU": "Unión de Repúblicas Socialistas Soviéticas (URSS)",
"SV": "El Salvador",
"SW": "",
"SX": "Sint Maarten",
"SY": "Siria",
"SZ": "Suazilandia",
"TA": "Tristán de Acuña",
"TB": "",
"TC": "Islas Turcas y Caicos",
"TD": "Chad",
"TE": "",
"TF": "Tierras Australes y Antárticas Francesas",
"TG": "Togo",
"TH": "Tailandia",
"TI": "",
"TJ": "Tayikistán",
"TK": "Tokelau",
"TL": "Timor Oriental",
"TM": "Turkmenistán",
"TN": "Túnez",
"TO": "Tonga",
"TP": "Timor Oriental",
"TQ": "",
"TR": "Turquía",
"TS": "",
"TT": "Trinidad y Tobago",
"TU": "",
"TV": "Tuvalu",
"TW": "Taiwán (República de China)",
"TX": "",
"TY": "",
"TZ": "Tanzania",
"UA": "Ucrania",
"UB": "",
"UC": "",
"UD": "",
"UE": "",
"UF": "",
"UG": "Uganda",
"UH": "",
"UI": "",
"UJ": "",
"UK": "Reino Unido",
"UL": "",
"UM": "Islas Ultramarinas Menores de Estados Unidos",
"UN": "",
"UO": "",
"UP": "",
"UQ": "",
"UR": "",
"US": "Estados Unidos de América (USA)",
"UT": "",
"UU": "",
"UV": "",
"UW": "",
"UX": "",
"UY": "Uruguay",
"UZ": "Uzbekistán",
"VA": "Ciudad del Vaticano",
"VB": "",
"VC": "San Vicente y las Granadinas",
"VD": "",
"VE": "Venezuela",
"VF": "",
"VG": "Islas Vírgenes Británicas",
"VH": "",
"VI": "Islas Vírgenes de los Estados Unidos",
"VJ": "",
"VK": "",
"VL": "",
"VM": "",
"VN": "Vietnam",
"VO": "",
"VP": "",
"VQ": "",
"VR": "",
"VS": "",
"VT": "",
"VU": "Vanuatu",
"VV": "",
"VW": "",
"VX": "",
"VY": "",
"VZ": "",
"WA": "",
"WB": "",
"WC": "",
"WD": "",
"WE": "",
"WF": "Wallis y Futuna",
"WG": "Grenada",
"WH": "",
"WI": "",
"WJ": "",
"WK": "",
"WL": "Santa Lucía",
"WM": "",
"WN": "",
"WO": "",
"WP": "",
"WQ": "",
"WR": "",
"WS": "Samoa",
"WT": "",
"WU": "",
"WV": "San Vicente y las Granadinas",
"WW": "",
"WX": "",
"WY": "",
"WZ": "",
"XA": "",
"XB": "",
"XC": "",
"XD": "",
"XE": "",
"XF": "",
"XG": "",
"XH": "",
"XI": "",
"XJ": "",
"XK": "Kosovo",
"XL": "",
"XM": "",
"XN": "",
"XO": "",
"XP": "",
"XQ": "",
"XR": "",
"XS": "",
"XT": "",
"XU": "",
"XV": "",
"XW": "",
"XX": "",
"XY": "",
"XZ": "",
"YA": "",
"YB": "",
"YC": "",
"YD": "",
"YE": "Yemen",
"YF": "",
"YG": "",
"YH": "",
"YI": "",
"YJ": "",
"YK": "",
"YL": "",
"YM": "",
"YN": "",
"YO": "",
"YP": "",
"YQ": "",
"YR": "",
"YS": "",
"YT": "Mayotte",
"YU": "Yugoslavia",
"YV": "Venezuela",
"YW": "",
"YX": "",
"YY": "",
"YZ": "",
"ZA": "Sudáfrica",
"ZB": "",
"ZC": "",
"ZD": "",
"ZE": "",
"ZF": "",
"ZG": "",
"ZH": "",
"ZI": "",
"ZJ": "",
"ZK": "",
"ZL": "",
"ZM": "Zambia",
"ZN": "",
"ZO": "",
"ZP": "",
"ZQ": "",
"ZR": "Zaire",
"ZS": "",
"ZT": "",
"ZU": "",
"ZV": "",
"ZW": "Zimbabue",
"ZX": "",
"ZY": "",
"ZZ": ""
}
}

View file

@ -0,0 +1,708 @@
{
"texts": {
"xxx": "pas encore localisé",
"--": "incapable de localiser",
"AA": "",
"AB": "",
"AC": "Île de l'Ascension",
"AD": "Andorre",
"AE": "Émirats arabes unis",
"AF": "Afghanistan",
"AG": "Antigua-et-Barbuda",
"AH": "",
"AI": "Anguilla",
"AJ": "",
"AK": "",
"AL": "Albanie",
"AM": "Arménie",
"AN": "Antilles néerlandaises",
"AO": "Angola",
"AP": "",
"AQ": "Antarctique",
"AR": "Argentine",
"AS": "Samoa américaines",
"AT": "Autriche",
"AU": "Australie",
"AV": "",
"AW": "Aruba",
"AX": "Åland",
"AY": "",
"AZ": "Azerbaïdjan",
"BA": "Bosnie-Herzégovine",
"BB": "Barbade",
"BC": "",
"BD": "Bangladesh",
"BE": "Belgique",
"BF": "Burkina Faso",
"BG": "Bulgarie",
"BH": "Bahreïn",
"BI": "Burundi",
"BJ": "Bénin",
"BK": "",
"BL": "Saint-Barthélemy",
"BM": "Bermudes",
"BN": "Brunei",
"BO": "Bolivie",
"BP": "",
"BQ": "Pays-Bas caribéens",
"BR": "Brésil",
"BS": "Bahamas",
"BT": "Bhoutan",
"BU": "Birmanie (Myanmar)",
"BV": "Île Bouvet",
"BW": "Botswana",
"BX": "",
"BY": "Biélorussie",
"BZ": "Belize",
"CA": "Canada",
"CB": "",
"CC": "Îles Cocos",
"CD": "République démocratique du Congo",
"CE": "",
"CF": "République centrafricaine",
"CG": "République du Congo",
"CH": "Suisse",
"CI": "Côte d'Ivoire",
"CJ": "",
"CK": "Îles Cook",
"CL": "Chili",
"CM": "Cameroun",
"CN": "République populaire de Chine",
"CO": "Colombie",
"CP": "Île de Clipperton",
"CQ": "",
"CR": "Costa Rica",
"CS": "Tchécoslovaquie (Serbie-et-Monténégro)",
"CT": "",
"CU": "Cuba",
"CV": "Cap-Vert",
"CW": "Curaçao",
"CX": "Île Christmas",
"CY": "Chypre",
"CZ": "République tchèque",
"DA": "",
"DB": "",
"DC": "",
"DD": "",
"DE": "Allemagne",
"DF": "",
"DG": "Diego Garcia",
"DH": "",
"DI": "",
"DJ": "Djibouti",
"DK": "Danemark",
"DL": "",
"DM": "Dominique",
"DN": "",
"DO": "République dominicaine",
"DP": "",
"DQ": "",
"DR": "",
"DS": "",
"DT": "",
"DU": "",
"DV": "",
"DW": "",
"DX": "",
"DY": "Bénin",
"DZ": "Algérie",
"EA": "Melilla",
"EB": "",
"EC": "Équateur",
"ED": "",
"EE": "Estonie",
"EF": "",
"EG": "Égypte",
"EH": "Sahara occidental",
"EI": "",
"EJ": "",
"EK": "",
"EL": "",
"EM": "",
"EN": "",
"EO": "",
"EP": "",
"EQ": "",
"ER": "Érythrée",
"ES": "Espagne",
"ET": "Éthiopie",
"EU": "",
"EV": "",
"EW": "Estonie",
"EX": "",
"EY": "",
"EZ": "",
"FA": "",
"FB": "",
"FC": "",
"FD": "",
"FE": "",
"FF": "",
"FG": "",
"FH": "",
"FI": "Finlande",
"FJ": "Fidji",
"FK": "Îles Malouines",
"FL": "Liechtenstein",
"FM": "États fédérés de Micronésie",
"FN": "",
"FO": "Îles Féroé",
"FP": "",
"FQ": "",
"FR": "France",
"FS": "",
"FT": "",
"FU": "",
"FV": "",
"FW": "",
"FX": "",
"FY": "",
"FZ": "",
"GA": "Gabon",
"GB": "Royaume-Uni",
"GC": "",
"GD": "Grenade",
"GE": "Géorgie",
"GF": "Guyane",
"GG": "Guernesey",
"GH": "Ghana",
"GI": "Gibraltar",
"GJ": "",
"GK": "",
"GL": "Groenland",
"GM": "Gambie",
"GN": "Guinée",
"GO": "",
"GP": "Guadeloupe",
"GQ": "Guinée équatoriale",
"GR": "Grèce",
"GS": "Géorgie du Sud-et-les Îles Sandwich du Sud",
"GT": "Guatemala",
"GU": "Guam",
"GV": "",
"GW": "Guinée-Bissau",
"GX": "",
"GY": "Guyana",
"GZ": "",
"HA": "",
"HB": "",
"HC": "",
"HD": "",
"HE": "",
"HF": "",
"HG": "",
"HH": "",
"HI": "",
"HJ": "",
"HK": "Hong Kong",
"HL": "",
"HM": "Îles Heard-et-MacDonald",
"HN": "Honduras",
"HO": "",
"HP": "",
"HQ": "",
"HR": "Croatie",
"HS": "",
"HT": "Haïti",
"HU": "Hongrie",
"HV": "",
"HW": "",
"HX": "",
"HY": "",
"HZ": "",
"IA": "",
"IB": "",
"IC": "Îles Canaries",
"ID": "Indonésie",
"IE": "Irlande",
"IF": "",
"IG": "",
"IH": "",
"II": "",
"IJ": "",
"IK": "",
"IL": "Israël",
"IM": "Île de Man",
"IN": "Inde",
"IO": "Territoire britannique de l'océan Indien",
"IP": "",
"IQ": "Irak",
"IR": "Iran",
"IS": "Islande",
"IT": "Italie",
"IU": "",
"IV": "",
"IW": "",
"IX": "",
"IY": "",
"IZ": "",
"JA": "Jamaïque",
"JB": "",
"JC": "",
"JD": "",
"JE": "Jersey",
"JF": "",
"JG": "",
"JH": "",
"JI": "",
"JJ": "",
"JK": "",
"JL": "",
"JM": "Jamaïque",
"JN": "",
"JO": "Jordanie",
"JP": "Japon",
"JQ": "",
"JR": "",
"JS": "",
"JT": "",
"JU": "",
"JV": "",
"JW": "",
"JX": "",
"JY": "",
"JZ": "",
"KA": "",
"KB": "",
"KC": "",
"KD": "",
"KE": "Kenya",
"KF": "",
"KG": "Kirghizistan",
"KH": "Cambodge",
"KI": "Kiribati",
"KJ": "",
"KK": "",
"KL": "",
"KM": "Comores",
"KN": "Saint-Christophe-et-Niévès",
"KO": "",
"KP": "Corée du Nord",
"KQ": "",
"KR": "Corée du Sud",
"KS": "",
"KT": "",
"KU": "",
"KV": "",
"KW": "Koweït",
"KX": "",
"KY": "Îles Caïmans",
"KZ": "Kazakhstan",
"LA": "Laos",
"LB": "Liban",
"LC": "Sainte-Lucie",
"LD": "",
"LE": "",
"LF": "",
"LG": "",
"LH": "",
"LI": "Liechtenstein",
"LJ": "",
"LK": "Sri Lanka",
"LL": "",
"LM": "",
"LN": "",
"LO": "",
"LP": "",
"LQ": "",
"LR": "Liberia",
"LS": "Lesotho",
"LT": "Lituanie",
"LU": "Luxembourg",
"LV": "Lettonie",
"LW": "",
"LX": "",
"LY": "Libye",
"LZ": "",
"MA": "Maroc",
"MB": "",
"MC": "Monaco",
"MD": "Moldavie",
"ME": "Monténégro",
"MF": "Saint-Martin",
"MG": "Madagascar",
"MH": "Îles Marshall",
"MI": "",
"MJ": "",
"MK": "Macédoine",
"ML": "Mali",
"MM": "Myanmar",
"MN": "Mongolie",
"MO": "Macao",
"MP": "Îles Mariannes du Nord",
"MQ": "Martinique",
"MR": "Mauritanie",
"MS": "Montserrat",
"MT": "Malte",
"MU": "Maurice",
"MV": "Maldives",
"MW": "Malawi",
"MX": "Mexique",
"MY": "Malaisie",
"MZ": "Mozambique",
"NA": "Namibie",
"NB": "",
"NC": "Nouvelle-Calédonie",
"ND": "",
"NE": "Niger",
"NF": "Île Norfolk",
"NG": "Nigeria",
"NH": "",
"NI": "Nicaragua",
"NJ": "",
"NK": "",
"NL": "Pays-Bas",
"NM": "",
"NN": "",
"NO": "Norvège",
"NP": "Népal",
"NQ": "",
"NR": "Nauru",
"NS": "",
"NT": "",
"NU": "Niue",
"NV": "",
"NW": "",
"NX": "",
"NY": "",
"NZ": "Nouvelle-Zélande",
"OA": "",
"OB": "",
"OC": "",
"OD": "",
"OE": "",
"OF": "",
"OG": "",
"OH": "",
"OI": "",
"OJ": "",
"OK": "",
"OL": "",
"OM": "Oman",
"ON": "",
"OO": "",
"OP": "",
"OQ": "",
"OR": "",
"OS": "",
"OT": "",
"OU": "",
"OV": "",
"OW": "",
"OX": "",
"OY": "",
"OZ": "",
"PA": "Panama",
"PB": "",
"PC": "",
"PD": "",
"PE": "Pérou",
"PF": "Polynésie française",
"PG": "Papouasie-Nouvelle-Guinée",
"PH": "Philippines",
"PI": "Philippines",
"PJ": "",
"PK": "Pakistan",
"PL": "Pologne",
"PM": "Saint-Pierre-et-Miquelon",
"PN": "Îles Pitcairn",
"PO": "",
"PP": "",
"PQ": "",
"PR": "Porto Rico",
"PS": "État de Palestine",
"PT": "Portugal",
"PU": "",
"PV": "",
"PW": "Palaos",
"PX": "",
"PY": "Paraguay",
"PZ": "",
"QA": "Qatar",
"QB": "",
"QC": "",
"QD": "",
"QE": "",
"QF": "",
"QG": "",
"QH": "",
"QI": "",
"QJ": "",
"QK": "",
"QL": "",
"QM": "",
"QN": "",
"QO": "",
"QP": "",
"QQ": "",
"QR": "",
"QS": "",
"QT": "",
"QU": "",
"QV": "",
"QW": "",
"QX": "",
"QY": "",
"QZ": "",
"RA": "Argentine",
"RB": "Bolivie; Botswana",
"RC": "Taïwan (République de Chine)",
"RD": "",
"RE": "La Réunion",
"RF": "",
"RG": "",
"RH": "Haïti",
"RI": "Indonésie",
"RJ": "",
"RK": "",
"RL": "Liban",
"RM": "Madagascar",
"RN": "Niger",
"RO": "Roumanie",
"RP": "Philippines",
"RQ": "",
"RR": "",
"RS": "Serbie",
"RT": "",
"RU": "Russie",
"RV": "",
"RW": "Rwanda",
"RX": "",
"RY": "",
"RZ": "",
"SA": "Arabie saoudite",
"SB": "Salomon",
"SC": "Seychelles",
"SD": "Soudan",
"SE": "Suède",
"SF": "Finlande",
"SG": "Singapour",
"SH": "Sainte-Hélène, Ascension et Tristan da Cunha",
"SI": "Slovénie",
"SJ": "Svalbard et Jan Mayen",
"SK": "Slovaquie",
"SL": "Sierra Leone",
"SM": "Saint-Marin",
"SN": "Sénégal",
"SO": "Somalie",
"SP": "",
"SQ": "",
"SR": "Suriname",
"SS": "Soudan du Sud",
"ST": "Sao Tomé-et-Principe",
"SU": "Union des républiques socialistes soviétiques (URSS)",
"SV": "Salvador",
"SW": "",
"SX": "Saint-Martin",
"SY": "Syrie",
"SZ": "Swaziland",
"TA": "Tristan da Cunha",
"TB": "",
"TC": "Îles Turks-et-Caïcos",
"TD": "Tchad",
"TE": "",
"TF": "Terres australes et antarctiques françaises",
"TG": "Togo",
"TH": "Thaïlande",
"TI": "",
"TJ": "Tadjikistan",
"TK": "Tokelau",
"TL": "Timor oriental",
"TM": "Turkménistan",
"TN": "Tunisie",
"TO": "Tonga",
"TP": "Timor oriental",
"TQ": "",
"TR": "Turquie",
"TS": "",
"TT": "Trinité-et-Tobago",
"TU": "",
"TV": "Tuvalu",
"TW": "Taïwan (République de Chine)",
"TX": "",
"TY": "",
"TZ": "Tanzanie",
"UA": "Ukraine",
"UB": "",
"UC": "",
"UD": "",
"UE": "",
"UF": "",
"UG": "Ouganda",
"UH": "",
"UI": "",
"UJ": "",
"UK": "Royaume-Uni",
"UL": "",
"UM": "Îles mineures éloignées des États-Unis",
"UN": "",
"UO": "",
"UP": "",
"UQ": "",
"UR": "",
"US": "États-Unis d'Amérique (USA)",
"UT": "",
"UU": "",
"UV": "",
"UW": "",
"UX": "",
"UY": "Uruguay",
"UZ": "Ouzbékistan",
"VA": "Vatican",
"VB": "",
"VC": "Saint-Vincent-et-les-Grenadines",
"VD": "",
"VE": "Venezuela",
"VF": "",
"VG": "Îles Vierges britanniques",
"VH": "",
"VI": "Îles Vierges des États-Unis",
"VJ": "",
"VK": "",
"VL": "",
"VM": "",
"VN": "Viêt Nam",
"VO": "",
"VP": "",
"VQ": "",
"VR": "",
"VS": "",
"VT": "",
"VU": "Vanuatu",
"VV": "",
"VW": "",
"VX": "",
"VY": "",
"VZ": "",
"WA": "",
"WB": "",
"WC": "",
"WD": "",
"WE": "",
"WF": "Wallis-et-Futuna",
"WG": "Grenade",
"WH": "",
"WI": "",
"WJ": "",
"WK": "",
"WL": "Sainte-Lucie",
"WM": "",
"WN": "",
"WO": "",
"WP": "",
"WQ": "",
"WR": "",
"WS": "Samoa",
"WT": "",
"WU": "",
"WV": "Saint-Vincent-et-les-Grenadines",
"WW": "",
"WX": "",
"WY": "",
"WZ": "",
"XA": "",
"XB": "",
"XC": "",
"XD": "",
"XE": "",
"XF": "",
"XG": "",
"XH": "",
"XI": "",
"XJ": "",
"XK": "Kosovo",
"XL": "",
"XM": "",
"XN": "",
"XO": "",
"XP": "",
"XQ": "",
"XR": "",
"XS": "",
"XT": "",
"XU": "",
"XV": "",
"XW": "",
"XX": "",
"XY": "",
"XZ": "",
"YA": "",
"YB": "",
"YC": "",
"YD": "",
"YE": "Yémen",
"YF": "",
"YG": "",
"YH": "",
"YI": "",
"YJ": "",
"YK": "",
"YL": "",
"YM": "",
"YN": "",
"YO": "",
"YP": "",
"YQ": "",
"YR": "",
"YS": "",
"YT": "Mayotte",
"YU": "Yougoslavie",
"YV": "Venezuela",
"YW": "",
"YX": "",
"YY": "",
"YZ": "",
"ZA": "Afrique du Sud",
"ZB": "",
"ZC": "",
"ZD": "",
"ZE": "",
"ZF": "",
"ZG": "",
"ZH": "",
"ZI": "",
"ZJ": "",
"ZK": "",
"ZL": "",
"ZM": "Zambie",
"ZN": "",
"ZO": "",
"ZP": "",
"ZQ": "",
"ZR": "Zaïre",
"ZS": "",
"ZT": "",
"ZU": "",
"ZV": "",
"ZW": "Zimbabwe",
"ZX": "",
"ZY": "",
"ZZ": ""
}
}

View file

@ -0,0 +1,708 @@
{
"texts": {
"xxx": "non ancora localizzato",
"--": "non in grado di localizzare",
"AA": "",
"AB": "",
"AC": "Isola di Ascensione",
"AD": "Andorra",
"AE": "Emirati Arabi Uniti ",
"AF": "Afghanistan",
"AG": "Antigua e Barbuda",
"AH": "",
"AI": "Anguilla",
"AJ": "",
"AK": "",
"AL": "Albania",
"AM": "Armenia",
"AN": "Antille olandesi",
"AO": "Angola",
"AP": "",
"AQ": "Antartide",
"AR": "Argentina",
"AS": "Samoa Americane",
"AT": "Austria",
"AU": "Australia",
"AV": "",
"AW": "Aruba",
"AX": "Isole Åland",
"AY": "",
"AZ": "Azerbaigian",
"BA": "Bosnia ed Erzegovina",
"BB": "Barbados",
"BC": "",
"BD": "Bangladesh",
"BE": "Belgio",
"BF": "Burkina Faso",
"BG": "Bulgaria",
"BH": "Bahrain",
"BI": "Burundi",
"BJ": "Benin",
"BK": "",
"BL": "Saint Barthélemy",
"BM": "Bermuda",
"BN": "Brunei",
"BO": "Bolivia",
"BP": "",
"BQ": "Paesi Bassi caraibici",
"BR": "Brasile",
"BS": "Bahamas",
"BT": "Bhutan",
"BU": "Burma (Birmania)",
"BV": "Isola Bouvet",
"BW": "Botswana",
"BX": "",
"BY": "Bielorussia",
"BZ": "Belize",
"CA": "Canada",
"CB": "",
"CC": "Isole Cocos",
"CD": "Repubblica Democratica del Congo",
"CE": "",
"CF": "Repubblica Centrafricana",
"CG": "Repubblica del Congo",
"CH": "Svizzera",
"CI": "Costa d'Avorio",
"CJ": "",
"CK": "Isole Cook",
"CL": "Cile",
"CM": "Camerun",
"CN": "Repubblica Popolare Cinese",
"CO": "Colombia",
"CP": "Isola di Clipperton",
"CQ": "",
"CR": "Costa Rica",
"CS": "Cecoslovacchia,(Serbia e Montenegro)",
"CT": "",
"CU": "Cuba",
"CV": "Capo Verde",
"CW": "Curaçao",
"CX": "Isola di Natale",
"CY": "Cipro",
"CZ": "Repubblica Ceca",
"DA": "",
"DB": "",
"DC": "",
"DD": "",
"DE": "Germania",
"DF": "",
"DG": "Diego Garcia",
"DH": "",
"DI": "",
"DJ": "Gibuti",
"DK": "Danimarca",
"DL": "",
"DM": "Dominica",
"DN": "",
"DO": "Repubblica Dominicana",
"DP": "",
"DQ": "",
"DR": "",
"DS": "",
"DT": "",
"DU": "",
"DV": "",
"DW": "",
"DX": "",
"DY": "Benin",
"DZ": "Algeria",
"EA": "Melilla",
"EB": "",
"EC": "Ecuador",
"ED": "",
"EE": "Estonia",
"EF": "",
"EG": "Egitto",
"EH": "Sahara Occidentale",
"EI": "",
"EJ": "",
"EK": "",
"EL": "",
"EM": "",
"EN": "",
"EO": "",
"EP": "",
"EQ": "",
"ER": "Eritrea",
"ES": "Spagna",
"ET": "Etiopia",
"EU": "",
"EV": "",
"EW": "Estonia",
"EX": "",
"EY": "",
"EZ": "",
"FA": "",
"FB": "",
"FC": "",
"FD": "",
"FE": "",
"FF": "",
"FG": "",
"FH": "",
"FI": "Finlandia",
"FJ": "Figi",
"FK": "Isole Falkland",
"FL": "Liechtenstein",
"FM": "Stati Federati di Micronesia",
"FN": "",
"FO": "Isole Faroe",
"FP": "",
"FQ": "",
"FR": "Francia",
"FS": "",
"FT": "",
"FU": "",
"FV": "",
"FW": "",
"FX": "",
"FY": "",
"FZ": "",
"GA": "Gabon",
"GB": "Regno Unito",
"GC": "",
"GD": "Grenada",
"GE": "Georgia",
"GF": "Guiana francese",
"GG": "Guernsey",
"GH": "Ghana",
"GI": "Gibilterra",
"GJ": "",
"GK": "",
"GL": "Groenlandia",
"GM": "Gambia",
"GN": "Guinea",
"GO": "",
"GP": "Guadalupa",
"GQ": "Guinea Equatoriale",
"GR": "Grecia",
"GS": "Georgia del Sud e Isole Sandwich Austral",
"GT": "Guatemala",
"GU": "Guam",
"GV": "",
"GW": "Guinea-Bissau",
"GX": "",
"GY": "Guiana",
"GZ": "",
"HA": "",
"HB": "",
"HC": "",
"HD": "",
"HE": "",
"HF": "",
"HG": "",
"HH": "",
"HI": "",
"HJ": "",
"HK": "Hong Kong",
"HL": "",
"HM": "Isole Heard e McDonald",
"HN": "Honduras",
"HO": "",
"HP": "",
"HQ": "",
"HR": "Croazia",
"HS": "",
"HT": "Haiti",
"HU": "Ungheria",
"HV": "",
"HW": "",
"HX": "",
"HY": "",
"HZ": "",
"IA": "",
"IB": "",
"IC": "Isole Canarie",
"ID": "Indonesia",
"IE": "Irlanda",
"IF": "",
"IG": "",
"IH": "",
"II": "",
"IJ": "",
"IK": "",
"IL": "Israele",
"IM": "Isola di Man",
"IN": "India",
"IO": "Territorio britannico dell'Oceano Indiano",
"IP": "",
"IQ": "Iraq",
"IR": "Iran",
"IS": "Islanda",
"IT": "Italia",
"IU": "",
"IV": "",
"IW": "",
"IX": "",
"IY": "",
"IZ": "",
"JA": "Giamaica",
"JB": "",
"JC": "",
"JD": "",
"JE": "Jersey",
"JF": "",
"JG": "",
"JH": "",
"JI": "",
"JJ": "",
"JK": "",
"JL": "",
"JM": "Giamaica",
"JN": "",
"JO": "Giordania",
"JP": "Giappone",
"JQ": "",
"JR": "",
"JS": "",
"JT": "",
"JU": "",
"JV": "",
"JW": "",
"JX": "",
"JY": "",
"JZ": "",
"KA": "",
"KB": "",
"KC": "",
"KD": "",
"KE": "Kenya",
"KF": "",
"KG": "Kirghizistan",
"KH": "Cambogia",
"KI": "Kiribati",
"KJ": "",
"KK": "",
"KL": "",
"KM": "Comoros",
"KN": "Saint Kitts e Nevis",
"KO": "",
"KP": "Corea del Nord",
"KQ": "",
"KR": "Corea del Sud",
"KS": "",
"KT": "",
"KU": "",
"KV": "",
"KW": "Kuwait",
"KX": "",
"KY": "Isole Cayman",
"KZ": "Kazakhstan",
"LA": "Laos",
"LB": "Libano",
"LC": "Saint Lucia",
"LD": "",
"LE": "",
"LF": "",
"LG": "",
"LH": "",
"LI": "Liechtenstein",
"LJ": "",
"LK": "Sri Lanka",
"LL": "",
"LM": "",
"LN": "",
"LO": "",
"LP": "",
"LQ": "",
"LR": "Liberia",
"LS": "Lesotho",
"LT": "Lithuania",
"LU": "Lussemburgo",
"LV": "Latvia",
"LW": "",
"LX": "",
"LY": "Libya",
"LZ": "",
"MA": "Morocco",
"MB": "",
"MC": "Monaco",
"MD": "Moldova",
"ME": "Montenegro",
"MF": "Saint Martin",
"MG": "Madagascar",
"MH": "Isole Marshall",
"MI": "",
"MJ": "",
"MK": "Macedonia",
"ML": "Mali",
"MM": "Birmania",
"MN": "Mongolia",
"MO": "Macau",
"MP": "Isole Marianne Settentrionali",
"MQ": "Martinica",
"MR": "Mauritania",
"MS": "Montserrat",
"MT": "Malta",
"MU": "Mauritius",
"MV": "Maldive",
"MW": "Malawi",
"MX": "Messico",
"MY": "Malaysia",
"MZ": "Mozambico",
"NA": "Namibia",
"NB": "",
"NC": "Nuova Caledonia",
"ND": "",
"NE": "Niger",
"NF": "Isola Norfolk",
"NG": "Nigeria",
"NH": "",
"NI": "Nicaragua",
"NJ": "",
"NK": "",
"NL": "Paesi Bassi/Olanda",
"NM": "",
"NN": "",
"NO": "Norvegia",
"NP": "Nepal",
"NQ": "",
"NR": "Nauru",
"NS": "",
"NT": "",
"NU": "Niue",
"NV": "",
"NW": "",
"NX": "",
"NY": "",
"NZ": "Nuova Zelanda",
"OA": "",
"OB": "",
"OC": "",
"OD": "",
"OE": "",
"OF": "",
"OG": "",
"OH": "",
"OI": "",
"OJ": "",
"OK": "",
"OL": "",
"OM": "Oman",
"ON": "",
"OO": "",
"OP": "",
"OQ": "",
"OR": "",
"OS": "",
"OT": "",
"OU": "",
"OV": "",
"OW": "",
"OX": "",
"OY": "",
"OZ": "",
"PA": "Panama",
"PB": "",
"PC": "",
"PD": "",
"PE": "Perù",
"PF": "Polinesia francese",
"PG": "Papua Nuova Guinea",
"PH": "Filippine",
"PI": "Filippine",
"PJ": "",
"PK": "Pakistan",
"PL": "Polonia",
"PM": "Saint-Pierre e Miquelon",
"PN": "Isole Pitcairn",
"PO": "",
"PP": "",
"PQ": "",
"PR": "Porto Rico",
"PS": "Stato di Palestina",
"PT": "Portogallo",
"PU": "",
"PV": "",
"PW": "Palau",
"PX": "",
"PY": "Paraguay",
"PZ": "",
"QA": "Qatar",
"QB": "",
"QC": "",
"QD": "",
"QE": "",
"QF": "",
"QG": "",
"QH": "",
"QI": "",
"QJ": "",
"QK": "",
"QL": "",
"QM": "",
"QN": "",
"QO": "",
"QP": "",
"QQ": "",
"QR": "",
"QS": "",
"QT": "",
"QU": "",
"QV": "",
"QW": "",
"QX": "",
"QY": "",
"QZ": "",
"RA": "Argentina",
"RB": "Bolivia; Botswana",
"RC": "Taiwan/Formosa (Repubblica Cinese)",
"RD": "",
"RE": "Réunion",
"RF": "",
"RG": "",
"RH": "Haiti",
"RI": "Indonesia",
"RJ": "",
"RK": "",
"RL": "Libano",
"RM": "Madagascar",
"RN": "Niger",
"RO": "Romania",
"RP": "Filippine",
"RQ": "",
"RR": "",
"RS": "Serbia",
"RT": "",
"RU": "Russia",
"RV": "",
"RW": "Ruanda",
"RX": "",
"RY": "",
"RZ": "",
"SA": "Saudi Arabia",
"SB": "Solomon Islands",
"SC": "Seychelles",
"SD": "Sudan",
"SE": "Svezia",
"SF": "Finlandia",
"SG": "Singapore",
"SH": "Sant'Elena, Ascensione e Tristan da Cunha",
"SI": "Slovenia",
"SJ": "Svalbard e Jan Mayen",
"SK": "Slovacchia",
"SL": "Sierra Leone",
"SM": "San Marino",
"SN": "Senegal",
"SO": "Somalia",
"SP": "",
"SQ": "",
"SR": "Suriname",
"SS": "Sudandel Sud",
"ST": "São Tomé e Príncipe",
"SU": "Unione delle Repubbliche Socialiste Sovietiche (URSS)",
"SV": "El Salvador",
"SW": "",
"SX": "Sint Maarten",
"SY": "Siria",
"SZ": "Swaziland",
"TA": "Tristan da Cunha",
"TB": "",
"TC": "Turks e Caicos",
"TD": "Ciad",
"TE": "",
"TF": "Terre australi e antartiche francesi",
"TG": "Togo",
"TH": "Thailandia",
"TI": "",
"TJ": "Tagikistan",
"TK": "Tokelau",
"TL": "Timor Orientale",
"TM": "Turkmenistan",
"TN": "Tunisia",
"TO": "Tonga",
"TP": "Timor Orientale",
"TQ": "",
"TR": "Turchia",
"TS": "",
"TT": "Trinidad e Tobago",
"TU": "",
"TV": "Tuvalu",
"TW": "Taiwan/Formosa (Repubblica Cinese)",
"TX": "",
"TY": "",
"TZ": "Tanzania",
"UA": "Ucraina",
"UB": "",
"UC": "",
"UD": "",
"UE": "",
"UF": "",
"UG": "Uganda",
"UH": "",
"UI": "",
"UJ": "",
"UK": "Regno Unito",
"UL": "",
"UM": "Isole Minori Esterne degli Stati Uniti d'America",
"UN": "",
"UO": "",
"UP": "",
"UQ": "",
"UR": "",
"US": "Stati Uniti d'America (USA)",
"UT": "",
"UU": "",
"UV": "",
"UW": "",
"UX": "",
"UY": "Uruguay",
"UZ": "Uzbekistan",
"VA": "Città del Vaticano",
"VB": "",
"VC": "Saint Vincent e Grenadine",
"VD": "",
"VE": "Venezuela",
"VF": "",
"VG": "Isole Vergini britanniche",
"VH": "",
"VI": "Isole Vergini americane",
"VJ": "",
"VK": "",
"VL": "",
"VM": "",
"VN": "Vietnam",
"VO": "",
"VP": "",
"VQ": "",
"VR": "",
"VS": "",
"VT": "",
"VU": "Vanuatu",
"VV": "",
"VW": "",
"VX": "",
"VY": "",
"VZ": "",
"WA": "",
"WB": "",
"WC": "",
"WD": "",
"WE": "",
"WF": "Wallis e Futuna",
"WG": "Grenada",
"WH": "",
"WI": "",
"WJ": "",
"WK": "",
"WL": "Saint Lucia",
"WM": "",
"WN": "",
"WO": "",
"WP": "",
"WQ": "",
"WR": "",
"WS": "Samoa",
"WT": "",
"WU": "",
"WV": "Saint Vincent e Grenadine",
"WW": "",
"WX": "",
"WY": "",
"WZ": "",
"XA": "",
"XB": "",
"XC": "",
"XD": "",
"XE": "",
"XF": "",
"XG": "",
"XH": "",
"XI": "",
"XJ": "",
"XK": "Kosovo",
"XL": "",
"XM": "",
"XN": "",
"XO": "",
"XP": "",
"XQ": "",
"XR": "",
"XS": "",
"XT": "",
"XU": "",
"XV": "",
"XW": "",
"XX": "",
"XY": "",
"XZ": "",
"YA": "",
"YB": "",
"YC": "",
"YD": "",
"YE": "Yemen",
"YF": "",
"YG": "",
"YH": "",
"YI": "",
"YJ": "",
"YK": "",
"YL": "",
"YM": "",
"YN": "",
"YO": "",
"YP": "",
"YQ": "",
"YR": "",
"YS": "",
"YT": "Mayotte",
"YU": "Jugoslavia",
"YV": "Venezuela",
"YW": "",
"YX": "",
"YY": "",
"YZ": "",
"ZA": "Sudafrica",
"ZB": "",
"ZC": "",
"ZD": "",
"ZE": "",
"ZF": "",
"ZG": "",
"ZH": "",
"ZI": "",
"ZJ": "",
"ZK": "",
"ZL": "",
"ZM": "Zambia",
"ZN": "",
"ZO": "",
"ZP": "",
"ZQ": "",
"ZR": "Zaire",
"ZS": "",
"ZT": "",
"ZU": "",
"ZV": "",
"ZW": "Zimbabwe",
"ZX": "",
"ZY": "",
"ZZ": ""
}
}

View file

@ -0,0 +1,708 @@
{
"texts": {
"xxx": "еще не локализованы",
"--": "не удалось локализовать",
"AA": "",
"AB": "",
"AC": "Остров Вознесения",
"AD": "Андорра",
"AE": "Объединённые Арабские Эмираты",
"AF": "Афганистан",
"AG": "Антигуа и Барбуда",
"AH": "",
"AI": "Ангилья",
"AJ": "",
"AK": "",
"AL": "Албания",
"AM": "Армения",
"AN": "Нидерландские Антильские острова",
"AO": "Ангола",
"AP": "",
"AQ": "Антарктида",
"AR": "Аргентина",
"AS": "Американское Самоа",
"AT": "Австрия",
"AU": "Австралия",
"AV": "",
"AW": "Аруба",
"AX": "Аландские острова",
"AY": "",
"AZ": "Азербайджан",
"BA": "Босния и Герцеговина",
"BB": "Барбадос",
"BC": "",
"BD": "Бангладеш",
"BE": "Бельгия",
"BF": "Буркина-Фасо",
"BG": "Болгария",
"BH": "Бахрейн",
"BI": "Бурунди",
"BJ": "Бенин",
"BK": "",
"BL": "Сен-Бартелеми",
"BM": "Бермудские Острова",
"BN": "Бруней",
"BO": "Боливия",
"BP": "",
"BQ": "Бонайре, Синт-Эстатиус и Саба",
"BR": "Бразилия",
"BS": "Багамские Острова",
"BT": "Бутан",
"BU": "Бирма (Мьянма)",
"BV": "Остров Буве",
"BW": "Ботсвана",
"BX": "",
"BY": "Белоруссия",
"BZ": "Белиз",
"CA": "Канада",
"CB": "",
"CC": "Кокосовые острова",
"CD": "Демократическая Республика Конго",
"CE": "",
"CF": "Центральноафриканская Республика",
"CG": "Республика Конго",
"CH": "Швейцария",
"CI": "Кот-д’Ивуар",
"CJ": "",
"CK": "Острова Кука",
"CL": "Чили",
"CM": "Камерун",
"CN": "Китайская Народная Республика",
"CO": "Колумбия",
"CP": "Клиппертон",
"CQ": "",
"CR": "Коста-Рика",
"CS": "Чехословакия (Сербия и Черногория)",
"CT": "",
"CU": "Куба",
"CV": "Кабо-Верде",
"CW": "Кюрасао",
"CX": "Остров Рождества",
"CY": "Кипр",
"CZ": "Чешская Республика",
"DA": "",
"DB": "",
"DC": "",
"DD": "",
"DE": "Германия",
"DF": "",
"DG": "Диего-Гарсия",
"DH": "",
"DI": "",
"DJ": "Джибути",
"DK": "Дания",
"DL": "",
"DM": "Доминика",
"DN": "",
"DO": "Доминиканская Республика",
"DP": "",
"DQ": "",
"DR": "",
"DS": "",
"DT": "",
"DU": "",
"DV": "",
"DW": "",
"DX": "",
"DY": "Бени́н",
"DZ": "Алжир",
"EA": "Мелилья",
"EB": "",
"EC": "Эквадор",
"ED": "",
"EE": "Эстония",
"EF": "",
"EG": "Египет",
"EH": "Западная Сахара",
"EI": "",
"EJ": "",
"EK": "",
"EL": "",
"EM": "",
"EN": "",
"EO": "",
"EP": "",
"EQ": "",
"ER": "Эритрея",
"ES": "Испания",
"ET": "Эфиопия",
"EU": "",
"EV": "",
"EW": "Эстония",
"EX": "",
"EY": "",
"EZ": "",
"FA": "",
"FB": "",
"FC": "",
"FD": "",
"FE": "",
"FF": "",
"FG": "",
"FH": "",
"FI": "Финляндия",
"FJ": "Фиджи",
"FK": "Фолклендские острова",
"FL": "Лихтенштейн",
"FM": "Федеративные Штаты Микронезии",
"FN": "",
"FO": "Фарерские острова",
"FP": "",
"FQ": "",
"FR": "Франция",
"FS": "",
"FT": "",
"FU": "",
"FV": "",
"FW": "",
"FX": "",
"FY": "",
"FZ": "",
"GA": "Габон",
"GB": "Великобритания",
"GC": "",
"GD": "Гренада",
"GE": "Грузия",
"GF": "Гвиана (департамент Франции)",
"GG": "Гернси",
"GH": "Гана",
"GI": "Гибралтар",
"GJ": "",
"GK": "",
"GL": "Гренландия",
"GM": "Гамбия",
"GN": "Гвинея",
"GO": "",
"GP": "Гваделупа",
"GQ": "Экваториальная Гвинея",
"GR": "Греция",
"GS": "Южная Георгия и Южные Сандвичевы Острова",
"GT": "Гватемала",
"GU": "Гуам",
"GV": "",
"GW": "Гвинея-Бисау",
"GX": "",
"GY": "Гайана",
"GZ": "",
"HA": "",
"HB": "",
"HC": "",
"HD": "",
"HE": "",
"HF": "",
"HG": "",
"HH": "",
"HI": "",
"HJ": "",
"HK": "Гонконг",
"HL": "",
"HM": "Остров Херд и острова Макдональд",
"HN": "Гондурас",
"HO": "",
"HP": "",
"HQ": "",
"HR": "Хорватия",
"HS": "",
"HT": "Гаити",
"HU": "Венгрия",
"HV": "",
"HW": "",
"HX": "",
"HY": "",
"HZ": "",
"IA": "",
"IB": "",
"IC": "Канарские острова",
"ID": "Индонезия",
"IE": "Ирландия",
"IF": "",
"IG": "",
"IH": "",
"II": "",
"IJ": "",
"IK": "",
"IL": "Израиль",
"IM": "Остров Мэн",
"IN": "Индия",
"IO": "Британская Территория в Индийском Океане",
"IP": "",
"IQ": "Ирак",
"IR": "Иран",
"IS": "Исландия",
"IT": "Италия",
"IU": "",
"IV": "",
"IW": "",
"IX": "",
"IY": "",
"IZ": "",
"JA": "Ямайка",
"JB": "",
"JC": "",
"JD": "",
"JE": "Джерси",
"JF": "",
"JG": "",
"JH": "",
"JI": "",
"JJ": "",
"JK": "",
"JL": "",
"JM": "Ямайка",
"JN": "",
"JO": "Иордания",
"JP": "Япония",
"JQ": "",
"JR": "",
"JS": "",
"JT": "",
"JU": "",
"JV": "",
"JW": "",
"JX": "",
"JY": "",
"JZ": "",
"KA": "",
"KB": "",
"KC": "",
"KD": "",
"KE": "Кения",
"KF": "",
"KG": "Киргизия",
"KH": "Камбоджа",
"KI": "Кирибати",
"KJ": "",
"KK": "",
"KL": "",
"KM": "Коморы",
"KN": "Сент-Китс и Невис",
"KO": "",
"KP": "Корейская Народно-Демократическая Республика",
"KQ": "",
"KR": "Республика Корея",
"KS": "",
"KT": "",
"KU": "",
"KV": "",
"KW": "Кувейт",
"KX": "",
"KY": "Острова Кайман",
"KZ": "Казахстан",
"LA": "Лаос",
"LB": "Ливан",
"LC": "Сент-Люсия",
"LD": "",
"LE": "",
"LF": "",
"LG": "",
"LH": "",
"LI": "Лихтенштейн",
"LJ": "",
"LK": "Шри-Ланка",
"LL": "",
"LM": "",
"LN": "",
"LO": "",
"LP": "",
"LQ": "",
"LR": "Либерия",
"LS": "Лесото",
"LT": "Литва",
"LU": "Люксембург",
"LV": "Латвия",
"LW": "",
"LX": "",
"LY": "Ливия",
"LZ": "",
"MA": "Марокко",
"MB": "",
"MC": "Монако",
"MD": "Молдавия",
"ME": "Черногория",
"MF": "Сен-Мартен",
"MG": "Мадагаскар",
"MH": "Маршалловы Острова",
"MI": "",
"MJ": "",
"MK": "Македония",
"ML": "Мали",
"MM": "Мьянма",
"MN": "Монголия",
"MO": "Макао",
"MP": "Северные Марианские Острова",
"MQ": "Мартиника",
"MR": "Мавритания",
"MS": "Монтсеррат",
"MT": "Мальта",
"MU": "Маврикий",
"MV": "Мальдивы",
"MW": "Малави",
"MX": "Мексика",
"MY": "Малайзия",
"MZ": "Мозамбик",
"NA": "Намибия",
"NB": "",
"NC": "Каледония",
"ND": "",
"NE": "Нигер",
"NF": "Остров Норфолк",
"NG": "Нигерия",
"NH": "",
"NI": "Никарагуа",
"NJ": "",
"NK": "",
"NL": "Нидерланды",
"NM": "",
"NN": "",
"NO": "Норвегия",
"NP": "Непал",
"NQ": "",
"NR": "Науру",
"NS": "",
"NT": "",
"NU": "Ниуэ",
"NV": "",
"NW": "",
"NX": "",
"NY": "",
"NZ": "Новая Зеландия",
"OA": "",
"OB": "",
"OC": "",
"OD": "",
"OE": "",
"OF": "",
"OG": "",
"OH": "",
"OI": "",
"OJ": "",
"OK": "",
"OL": "",
"OM": "Оман",
"ON": "",
"OO": "",
"OP": "",
"OQ": "",
"OR": "",
"OS": "",
"OT": "",
"OU": "",
"OV": "",
"OW": "",
"OX": "",
"OY": "",
"OZ": "",
"PA": "Панама",
"PB": "",
"PC": "",
"PD": "",
"PE": "Перу",
"PF": "Французская Полинезия",
"PG": "Папуа — Новая Гвинея",
"PH": "Филиппины",
"PI": "Филиппины",
"PJ": "",
"PK": "Пакистан",
"PL": "Польша",
"PM": "Сен-Пьер и Микелон",
"PN": "Острова Питкэрн",
"PO": "",
"PP": "",
"PQ": "",
"PR": "Пуэрто-Рико",
"PS": "Государство Палестина",
"PT": "Португалия",
"PU": "",
"PV": "",
"PW": "Палау",
"PX": "",
"PY": "Парагвай",
"PZ": "",
"QA": "Катар",
"QB": "",
"QC": "",
"QD": "",
"QE": "",
"QF": "",
"QG": "",
"QH": "",
"QI": "",
"QJ": "",
"QK": "",
"QL": "",
"QM": "",
"QN": "",
"QO": "",
"QP": "",
"QQ": "",
"QR": "",
"QS": "",
"QT": "",
"QU": "",
"QV": "",
"QW": "",
"QX": "",
"QY": "",
"QZ": "",
"RA": "Аргентина",
"RB": "Боливия; Ботсвана",
"RC": "Тайва́нь (Китайская Республика)",
"RD": "",
"RE": "Реюньон",
"RF": "",
"RG": "",
"RH": "Республика Гаити",
"RI": "Индонезия",
"RJ": "",
"RK": "",
"RL": "Ливан",
"RM": "Мадагаскар",
"RN": "Нигер",
"RO": "Румыния",
"RP": "Филиппины",
"RQ": "",
"RR": "",
"RS": "Сербия",
"RT": "",
"RU": "Россия",
"RV": "",
"RW": "Руанда",
"RX": "",
"RY": "",
"RZ": "",
"SA": "Саудовская Аравия",
"SB": "Соломоновы Острова",
"SC": "Сейшельские Острова",
"SD": "Судан",
"SE": "Швеция",
"SF": "Финляндия",
"SG": "Сингапур",
"SH": "Острова Святой Елены, Вознесения и Тристан-да-Кунья",
"SI": "Словения",
"SJ": "Шпицберген и Ян-Майен",
"SK": "Словакия",
"SL": "Сьерра-Леоне",
"SM": "Сан-Марино",
"SN": "Сенегал",
"SO": "Сомали",
"SP": "",
"SQ": "",
"SR": "Суринам",
"SS": "Южный Судан",
"ST": "Сан-Томе и Принсипи",
"SU": "Союз Советских Социалистических Республик (СССР)",
"SV": "Сальвадор",
"SW": "",
"SX": "Синт-Мартен",
"SY": "Сирия",
"SZ": "Свазиленд",
"TA": "Тристан-да-Кунья",
"TB": "",
"TC": "Теркс и Кайкос",
"TD": "Чад",
"TE": "",
"TF": "Французские Южные и Антарктические территории",
"TG": "Того",
"TH": "Таиланд",
"TI": "",
"TJ": "Таджикистан",
"TK": "Токелау",
"TL": "Восточный Тимор",
"TM": "Туркмения",
"TN": "Тунис",
"TO": "Тонга",
"TP": "Восточный Тимор",
"TQ": "",
"TR": "Турция",
"TS": "",
"TT": "Тринидад и Тобаго",
"TU": "",
"TV": "Тувалу",
"TW": "Тайва́нь (Китайская Республика)",
"TX": "",
"TY": "",
"TZ": "Танзания",
"UA": "Украина",
"UB": "",
"UC": "",
"UD": "",
"UE": "",
"UF": "",
"UG": "Уганда",
"UH": "",
"UI": "",
"UJ": "",
"UK": "Соединённое Королевство",
"UL": "",
"UM": "Внешние малые острова США",
"UN": "",
"UO": "",
"UP": "",
"UQ": "",
"UR": "",
"US": "Соединённые Шта́ты Аме́рики (США)",
"UT": "",
"UU": "",
"UV": "",
"UW": "",
"UX": "",
"UY": "Уругвай",
"UZ": "Узбекистан",
"VA": "Ватикан",
"VB": "",
"VC": "Сент-Винсент и Гренадины",
"VD": "",
"VE": "Венесуэла",
"VF": "",
"VG": "Виргинские Острова (Великобритания)",
"VH": "",
"VI": "Виргинские Острова (США)",
"VJ": "",
"VK": "",
"VL": "",
"VM": "",
"VN": "Вьетнам",
"VO": "",
"VP": "",
"VQ": "",
"VR": "",
"VS": "",
"VT": "",
"VU": "Вануату",
"VV": "",
"VW": "",
"VX": "",
"VY": "",
"VZ": "",
"WA": "",
"WB": "",
"WC": "",
"WD": "",
"WE": "",
"WF": "Уоллис и Футуна",
"WG": "Гренада",
"WH": "",
"WI": "",
"WJ": "",
"WK": "",
"WL": "Сент-Люсия",
"WM": "",
"WN": "",
"WO": "",
"WP": "",
"WQ": "",
"WR": "",
"WS": "Самоа",
"WT": "",
"WU": "",
"WV": "Сент-Винсент и Гренадины",
"WW": "",
"WX": "",
"WY": "",
"WZ": "",
"XA": "",
"XB": "",
"XC": "",
"XD": "",
"XE": "",
"XF": "",
"XG": "",
"XH": "",
"XI": "",
"XJ": "",
"XK": "Косово",
"XL": "",
"XM": "",
"XN": "",
"XO": "",
"XP": "",
"XQ": "",
"XR": "",
"XS": "",
"XT": "",
"XU": "",
"XV": "",
"XW": "",
"XX": "",
"XY": "",
"XZ": "",
"YA": "",
"YB": "",
"YC": "",
"YD": "",
"YE": "Йемен",
"YF": "",
"YG": "",
"YH": "",
"YI": "",
"YJ": "",
"YK": "",
"YL": "",
"YM": "",
"YN": "",
"YO": "",
"YP": "",
"YQ": "",
"YR": "",
"YS": "",
"YT": "Майотта",
"YU": "Югославия",
"YV": "Венесуэла",
"YW": "",
"YX": "",
"YY": "",
"YZ": "",
"ZA": "Ю́жная А́фрика",
"ZB": "",
"ZC": "",
"ZD": "",
"ZE": "",
"ZF": "",
"ZG": "",
"ZH": "",
"ZI": "",
"ZJ": "",
"ZK": "",
"ZL": "",
"ZM": "Замбия",
"ZN": "",
"ZO": "",
"ZP": "",
"ZQ": "",
"ZR": "Заир",
"ZS": "",
"ZT": "",
"ZU": "",
"ZV": "",
"ZW": "Зимбабве",
"ZX": "",
"ZY": "",
"ZZ": ""
}
}

View file

@ -0,0 +1,11 @@
{
"texts": {
"title-credits": "Danksagungen & Lizenzen",
"type-idea": "Idee und Codebasis",
"type-js": "Javascipt-Erweiterungen",
"type-map": "Karte und Daten zu Überwachungseinträgen",
"type-service": "Webdienste",
"type-icon": "Symbole",
"type-font": "Schriftart für Überschriften"
}
}

View file

@ -0,0 +1,11 @@
{
"texts": {
"title-credits": "Credits & Licenses",
"type-idea": "Idea and code base",
"type-js": "Javascript plugins",
"type-map": "Map and surveillance node data",
"type-service": "Web services",
"type-icon": "Icons",
"type-font": "Font for titles"
}
}

View file

@ -0,0 +1,11 @@
{
"texts": {
"title-credits": "Agradecimientos & Licencias",
"type-idea": "Idea e código base",
"type-js": "Javascript complementos",
"type-map": "Mapa e datos de nodos de vigilancia",
"type-service": "Servicios web",
"type-icon": "Iconos",
"type-font": "Tipo de letra en títulos"
}
}

View file

@ -0,0 +1,11 @@
{
"texts": {
"title-credits": "Attributions & Licences",
"type-idea": "Idée et base du code",
"type-js": "Plugins Javascript",
"type-map": "Carte et données des noeuds de surveillance",
"type-service": "Services Web",
"type-icon": "Icônes",
"type-font": "Police pour les titres"
}
}

View file

@ -0,0 +1,11 @@
{
"texts": {
"title-credits": "Attribuzioni & Licenze",
"type-idea": "Idea e code base",
"type-js": "Javascript plugin",
"type-map": "Mappa e dati dei nodi di sorveglianza",
"type-service": "Servizi web",
"type-icon": "Icone",
"type-font": "Caratteri per titoli"
}
}

View file

@ -0,0 +1,11 @@
{
"texts": {
"title-credits": "",
"type-idea": "",
"type-js": "",
"type-map": "",
"type-service": "",
"type-icon": "",
"type-font": ""
}
}

View file

@ -0,0 +1,17 @@
{
"texts": {
"eng": "Englisch",
"fra": "Französisch",
"ger": "Deutsch",
"sect-2015": "2015",
"sect-2016": "2016",
"sect-2017": "2017",
"sect-2018": "2018",
"sect-2019": "2019",
"sect-2020": "2020",
"sect-2021": "2021",
"sect-2022": "2022",
"secure-alt": "Sichere Verbindung",
"insecure-alt": "Unsichere Verbindung!"
}
}

View file

@ -0,0 +1,17 @@
{
"texts": {
"eng": "English",
"fra": "French",
"ger": "German",
"sect-2015": "2015",
"sect-2016": "2016",
"sect-2017": "2017",
"sect-2018": "2018",
"sect-2019": "2019",
"sect-2020": "2020",
"sect-2021": "2021",
"sect-2022": "2022",
"secure-alt": "Secure connection",
"insecure-alt": "Insecure connection!"
}
}

View file

@ -0,0 +1,17 @@
{
"texts": {
"eng": "Ingles",
"fra": "Francés",
"ger": "Alemán",
"sect-2015": "2015",
"sect-2016": "2016",
"sect-2017": "2017",
"sect-2018": "2018",
"sect-2019": "2019",
"sect-2020": "2020",
"sect-2021": "2021",
"sect-2022": "2022",
"secure-alt": "",
"insecure-alt": ""
}
}

View file

@ -0,0 +1,17 @@
{
"texts": {
"eng": "Anglais",
"fra": "Français",
"ger": "Allemand",
"sect-2015": "2015",
"sect-2016": "2016",
"sect-2017": "2017",
"sect-2018": "2018",
"sect-2019": "2019",
"sect-2020": "2020",
"sect-2021": "2021",
"sect-2022": "2022",
"secure-alt": "Raccordement sûr",
"insecure-alt": "Raccordement peu sûr!"
}
}

View file

@ -0,0 +1,17 @@
{
"texts": {
"eng": "English",
"fra": "French",
"ger": "German",
"sect-2015": "2015",
"sect-2016": "2016",
"sect-2017": "2017",
"sect-2018": "2018",
"sect-2019": "2019",
"sect-2020": "2020",
"sect-2021": "2021",
"sect-2022": "2022",
"secure-alt": "Connessione sicura",
"insecure-alt": "Connessione non sicura!"
}
}

View file

@ -0,0 +1,17 @@
{
"texts": {
"eng": "",
"fra": "",
"ger": "",
"sect-2015": "2015",
"sect-2016": "2016",
"sect-2017": "2017",
"sect-2018": "2018",
"sect-2019": "2019",
"sect-2020": "2020",
"sect-2021": "2021",
"sect-2022": "2022",
"secure-alt": "",
"insecure-alt": ""
}
}

View file

@ -0,0 +1,84 @@
{
"texts": {
"title-icon": "Notwendig, um ein Symbol auf der Karte anzuzeigen",
"k-manmade": "@@LT00",
"k-surveillance": "@@LT00",
"k-surv-type": "@@LT00",
"k-cam-type": "@@LT00",
"v-surveillance": "@@LT00 (Überwachung)",
"v-public": "public (öffentlich)",
"v-outdoor": "outdoor (außen)",
"v-indoor": "indoor (in einem Gebäude)",
"v-camera": "camera (Kamera)",
"v-fixed": "fixed (feststehend)",
"v-panning": "panning (schwenkbar)",
"v-dome": "dome (Kuppel)",
"v-guard": "guard (Wachpersonal)",
"v-alpr": "ALPR (AKLS)",
"icon-public-alt": "Überwachung öffentlicher Bereiche",
"icon-outdoor-alt": "Überwachung außerhalb eines Gebäudes",
"icon-indoor-alt": "Überwachung innerhalb eines Gebäudes",
"icon-cam-alt": "Kamera",
"icon-fixed-alt": "Feststehende Kamera",
"icon-panning-alt": "Schwenkbare Kamera",
"icon-dome-alt": "Kuppelkamera",
"icon-guard-alt": "Wachpersonal",
"icon-alpr-alt": "Automatische Kennzeichenlesesysteme",
"title-view-fixed": "Notwendig, zum Anzeigen des feststehenden Kamerablickfelds",
"title-view-dome": "Notwendig, zum Anzeigen des Kuppelkamerablickfelds",
"k-cam-direction": "@@LT00",
"k-cam-angle": "@@LT00",
"k-height": "@@LT00",
"v-direction-0": "0 - 359 (in Grad) oder",
"v-direction-1": "N / NE / E / SE / S / SW / W / NW",
"v-direction-2": "z.B. für wandmontierte Kuppeln",
"v-angle-0": "0 - 90 (in Grad)",
"v-angle-1": "von einer horizontalen Blickrichtung bis zu einer auf den Boden gerichteten Kamera",
"v-angle-2": "Standard: 15°",
"v-height-0": "3 - 12 (in Metern)",
"v-height-1": "Standard: 5m",
"examples": "Beispiele",
"example-img-0-alt": "Feststehendes Blickfeld (Richtung: 90°, Winkel: 15°, Höhe: 5m)",
"example-img-1-alt": "Feststehendes Blickfeld (Richtung: 90°, Winkel: 15°, Höhe: 10m)",
"example-img-2-alt": "Feststehendes Blickfeld (Richtung: 90°, Winkel: 60°, Höhe: 10m)",
"example-img-3-alt": "Rundumblickfeld (Höhe: 3m)",
"example-img-4-alt": "Rundumblickfeld (Höhe: 5m)",
"example-img-5-alt": "Rundumblickfeld (Höhe: 5m, Richtung: 45°)",
"example-direction-45": "Richtung = 45°",
"example-direction-90": "Richtung = 90°",
"example-angle-15": "Winkel = 15°",
"example-angle-60": "Winkel = 60°",
"example-height-3": "Höhe = 3m",
"example-height-5": "Höhe = 5m",
"example-height-10": "Höhe = 10m",
"title-optional": "Optional",
"k-surv-zone": "@@LT00",
"k-cam-mount": "@@LT00",
"k-operator": "@@LT00",
"k-name": "@@LT00",
"k-ref": "@@LT00",
"k-image": "@@LT00",
"v-surv-zone": "bank (Bank) / building (Gebäude) / parking (Parkplatz) / shop (Geschäft) / town (Stadt) / traffic (Verkehr)",
"v-cam-mount": "ceilling (Decke) / pole (Mast) / wall (Wand)",
"v-operator": "Gesellschaft oder Person die die Kamera betreibt",
"v-name": "Name der Kamera",
"v-ref": "Referenznummer der Kamera",
"v-image": "Link zu einem extern abgelegten Bilds, das das kartierte Objekt zeigt"
},
"links": {
"k-manmade": [ "man_made" ],
"k-surveillance": [ "surveillance" ],
"k-surv-type": [ "surveillance:type" ],
"k-cam-type": [ "camera:type" ],
"k-cam-direction": [ "camera:direction" ],
"k-cam-angle": [ "camera:angle" ],
"k-height": [ "height" ],
"k-surv-zone": [ "surveillance:zone" ],
"k-cam-mount": [ "camera:mount" ],
"k-operator": [ "operator" ],
"k-name": [ "name" ],
"k-ref": [ "ref" ],
"k-image": [ "image" ],
"v-surveillance": [ "surveillance" ]
}
}

View file

@ -0,0 +1,84 @@
{
"texts": {
"title-icon": "Mandatory to display an icon on the map",
"k-manmade": "@@LT00",
"k-surveillance": "@@LT00",
"k-surv-type": "@@LT00",
"k-cam-type": "@@LT00",
"v-surveillance": "@@LT00",
"v-public": "public",
"v-outdoor": "outdoor",
"v-indoor": "indoor",
"v-camera": "camera",
"v-fixed": "fixed",
"v-panning": "panning",
"v-dome": "dome",
"v-guard": "guard",
"v-alpr": "ALPR",
"icon-public-alt": "Public surveillance",
"icon-outdoor-alt": "Outdoor surveillance",
"icon-indoor-alt": "Indoor surveillance",
"icon-cam-alt": "Camera",
"icon-fixed-alt": "Fixed camera",
"icon-panning-alt": "Panning camera",
"icon-dome-alt": "Dome camera",
"icon-guard-alt": "Guard",
"icon-alpr-alt": "Automatic Licence Plate Recognition",
"title-view-fixed": "Mandatory to draw a fixed camera's field of view",
"title-view-dome": "Mandatory to draw a dome camera's field of view",
"k-cam-direction": "@@LT00",
"k-cam-angle": "@@LT00",
"k-height": "@@LT00",
"v-direction-0": "0 - 359 (in degrees) or",
"v-direction-1": "N / NE / E / SE / S / SW / W / NW",
"v-direction-2": "e.g. for wall-mounted domes",
"v-angle-0": "0 - 90 (in degrees)",
"v-angle-1": "from a horizontal view to a ground-pointed camera",
"v-angle-2": "default: 15°",
"v-height-0": "3 - 12 (in meters)",
"v-height-1": "default: 5m",
"examples": "Examples",
"example-img-0-alt": "Fixed field of view (direction: 90°, angle: 15°, height: 5m)",
"example-img-1-alt": "Fixed field of view (direction: 90°, angle: 15°, height: 10m)",
"example-img-2-alt": "Fixed field of view (direction: 90°, angle: 60°, height: 10m)",
"example-img-3-alt": "Dome field of view (height: 3m)",
"example-img-4-alt": "Dome field of view (height: 5m)",
"example-img-5-alt": "Dome field of view (height: 5m, direction: 45°)",
"example-direction-45": "direction = 45°",
"example-direction-90": "direction = 90°",
"example-angle-15": "angle = 15°",
"example-angle-60": "angle = 60°",
"example-height-3": "height = 3m",
"example-height-5": "height = 5m",
"example-height-10": "height = 10m",
"title-optional": "Optional",
"k-surv-zone": "@@LT00",
"k-cam-mount": "@@LT00",
"k-operator": "@@LT00",
"k-name": "@@LT00",
"k-ref": "@@LT00",
"k-image": "@@LT00",
"v-surv-zone": "bank / building / parking / shop / town / traffic",
"v-cam-mount": "ceilling / pole / wall",
"v-operator": "organization or person operating the camera",
"v-name": "name of the camera",
"v-ref": "reference number of the camera",
"v-image": "link to an externally hosted image that depicts the tagged object"
},
"links": {
"k-manmade": [ "man_made" ],
"k-surveillance": [ "surveillance" ],
"k-surv-type": [ "surveillance:type" ],
"k-cam-type": [ "camera:type" ],
"k-cam-direction": [ "camera:direction" ],
"k-cam-angle": [ "camera:angle" ],
"k-height": [ "height" ],
"k-surv-zone": [ "surveillance:zone" ],
"k-cam-mount": [ "camera:mount" ],
"k-operator": [ "operator" ],
"k-name": [ "name" ],
"k-ref": [ "ref" ],
"k-image": [ "image" ],
"v-surveillance": [ "surveillance" ]
}
}

View file

@ -0,0 +1,84 @@
{
"texts": {
"title-icon": "Obligatorio para mostrar un icono en el mapa",
"k-manmade": "@@LT00",
"k-surveillance": "@@LT00",
"k-surv-type": "@@LT00",
"k-cam-type": "@@LT00",
"v-surveillance": "@@LT00 (vigilancia)",
"v-public": "public (publico)",
"v-outdoor": "outdoor (exteriores)",
"v-indoor": "indoor (interiores)",
"v-camera": "camera (cámara)",
"v-fixed": "fixed (fija)",
"v-panning": "panning (panorámica)",
"v-dome": "dome (domo)",
"v-guard": "guard (guardia)",
"v-alpr": "ALPR",
"icon-public-alt": "",
"icon-outdoor-alt": "",
"icon-indoor-alt": "",
"icon-cam-alt": "",
"icon-fixed-alt": "",
"icon-panning-alt": "",
"icon-dome-alt": "",
"icon-guard-alt": "",
"icon-alpr-alt": "",
"title-view-fixed": "Obligatorio para dibujar el rango de captura de la cámara fija",
"title-view-dome": "Obligatorio para dibujar el rango de captura de la cámara domo",
"k-cam-direction": "@@LT00",
"k-cam-angle": "@@LT00",
"k-height": "@@LT00",
"v-direction-0": "0 - 359 (en grados) o",
"v-direction-1": "N / NE / E / SE / S / SW / W / NW",
"v-direction-2": "ej: para domos montadas en la pared",
"v-angle-0": "0 - 90 (en grados)",
"v-angle-1": "desde una vista horizontal hasta las cámaras que apuntan hacia el piso",
"v-angle-2": "por defecto: 15°",
"v-height-0": "3 -12 (en metros)",
"v-height-1": "por defecto: 5m",
"examples": "Ejemplos",
"example-img-0-alt": "",
"example-img-1-alt": "",
"example-img-2-alt": "",
"example-img-3-alt": "",
"example-img-4-alt": "",
"example-img-5-alt": "",
"example-direction-45": "dirección = 45°",
"example-direction-90": "dirección = 90°",
"example-angle-15": "ángulo = 15°",
"example-angle-60": "ángulo = 60°",
"example-height-3": "altura = 3m",
"example-height-5": "altura = 5m",
"example-height-10": "altura = 10m",
"title-optional": "Opcional",
"k-surv-zone": "@@LT00",
"k-cam-mount": "@@LT00",
"k-operator": "@@LT00",
"k-name": "@@LT00",
"k-ref": "@@LT00",
"k-image": "@@LT00",
"v-surv-zone": "bank (banco) / building (edificio) / parking (estacionamiento) / shop (negocio) / town (centro) / traffic (trafico)",
"v-cam-mount": "ceilling (techo) / pole (palo) / wall (pared)",
"v-operator": "organización o persona que opera la cámara",
"v-name": "nombre de la cámara",
"v-ref": "numero de referencia de la cámara",
"v-image": "enlace a un sitio externo con la imagen del objeto"
},
"links": {
"k-manmade": [ "man_made" ],
"k-surveillance": [ "surveillance" ],
"k-surv-type": [ "surveillance:type" ],
"k-cam-type": [ "camera:type" ],
"k-cam-direction": [ "camera:direction" ],
"k-cam-angle": [ "camera:angle" ],
"k-height": [ "height" ],
"k-surv-zone": [ "surveillance:zone" ],
"k-cam-mount": [ "camera:mount" ],
"k-operator": [ "operator" ],
"k-name": [ "name" ],
"k-ref": [ "ref" ],
"k-image": [ "image" ],
"v-surveillance": [ "surveillance" ]
}
}

View file

@ -0,0 +1,84 @@
{
"texts": {
"title-icon": "Nécessaires pour afficher une icône sur la carte",
"k-manmade": "@@LT00",
"k-surveillance": "@@LT00",
"k-surv-type": "@@LT00",
"k-cam-type": "@@LT00",
"v-surveillance": "@@LT00",
"v-public": "public",
"v-outdoor": "outdoor",
"v-indoor": "indoor",
"v-camera": "camera",
"v-fixed": "fixed",
"v-panning": "panning",
"v-dome": "dome",
"v-guard": "guard",
"v-alpr": "ALPR (LAPI)",
"icon-public-alt": "Surveillance publique",
"icon-outdoor-alt": "Surveillance extérieure",
"icon-indoor-alt": "Surveillance intérieure",
"icon-cam-alt": "Caméra",
"icon-fixed-alt": "Caméra fixe",
"icon-panning-alt": "Caméra panoramique",
"icon-dome-alt": "Caméra dôme",
"icon-guard-alt": "Garde",
"icon-alpr-alt": "ALPR",
"title-view-fixed": "Nécessaires pour l'affichage du champ de vision de la caméra fixe",
"title-view-dome": "Nécessaires pour l'affichage du champ de vision de la caméra dôme",
"k-cam-direction": "@@LT00",
"k-cam-angle": "@@LT00",
"k-height": "@@LT00",
"v-direction-0": "0 - 359 (en degrés) ou les points cardinaux anglais :",
"v-direction-1": "N / NE / E / SE / S / SW / W / NW",
"v-direction-2": "c.a.d. pour les dômes muraux",
"v-angle-0": "0 - 90 (en degrés)",
"v-angle-1": "représentant un angle ômhorizontal jusqu'à une caméra pointée vers le sol",
"v-angle-2": "par défaut : 15°",
"v-height-0": "3 - 12 (en mètres)",
"v-height-1": "par défaut : 5m",
"examples": "Exemples :",
"example-img-0-alt": "Angle visuel fixe (direction: 90°, angle: 15°, height: 5m)",
"example-img-1-alt": "Angle visuel fixe (direction: 90°, angle: 15°, height: 10m)",
"example-img-2-alt": "Angle visuel fixe (direction: 90°, angle: 60°, height: 10m)",
"example-img-3-alt": "Angle visuel dôme (height: 3m)",
"example-img-4-alt": "Angle visuel dôme (height: 5m)",
"example-img-5-alt": "Angle visuel dôme (height: 5m, direction: 45°)",
"example-direction-45": "direction = 45°",
"example-direction-90": "direction = 90°",
"example-angle-15": "angle = 15°",
"example-angle-60": "angle = 60°",
"example-height-3": "height = 3m",
"example-height-5": "height = 5m",
"example-height-10": "height = 10m",
"title-optional": "Facultatifs",
"k-surv-zone": "@@LT00",
"k-cam-mount": "@@LT00",
"k-operator": "@@LT00",
"k-name": "@@LT00",
"k-ref": "@@LT00",
"k-image": "@@LT00",
"v-surv-zone": "bank / building / parking / shop / town / traffic",
"v-cam-mount": "ceilling / pole / wall",
"v-operator": "entité ou personne exploitant la caméra",
"v-name": "nom de la caméra",
"v-ref": "numéro de référence de la caméra",
"v-image": "lien vers une image hébergée ailleurs de l'objet"
},
"links": {
"k-manmade": [ "man_made" ],
"k-surveillance": [ "surveillance" ],
"k-surv-type": [ "surveillance:type" ],
"k-cam-type": [ "camera:type" ],
"k-cam-direction": [ "camera:direction" ],
"k-cam-angle": [ "camera:angle" ],
"k-height": [ "height" ],
"k-surv-zone": [ "surveillance:zone" ],
"k-cam-mount": [ "camera:mount" ],
"k-operator": [ "operator" ],
"k-name": [ "name" ],
"k-ref": [ "ref" ],
"k-image": [ "image" ],
"v-surveillance": [ "surveillance" ]
}
}

View file

@ -0,0 +1,84 @@
{
"texts": {
"title-icon": "Obbligatorio per visualizzare un'icona sulla mappa",
"k-manmade": "@@LT00",
"k-surveillance": "@@LT00",
"k-surv-type": "@@LT00",
"k-cam-type": "@@LT00",
"v-surveillance": "@@LT00 (sorveglianza)",
"v-public": "public (pubblico)",
"v-outdoor": "outdoor (all'aperto)",
"v-indoor": "indoor (all'interno)",
"v-camera": "camera (telecamera)",
"v-fixed": "fixed (fissa)",
"v-panning": "panning (panoramica)",
"v-dome": "dome (cupola)",
"v-guard": "guard (guardia)",
"v-alpr": "ALPR",
"icon-public-alt": "Sorveglianza pubblica",
"icon-outdoor-alt": "Sorveglianza all'aperto",
"icon-indoor-alt": "Sorveglianza all'interno",
"icon-cam-alt": "Telecamera",
"icon-fixed-alt": "Telecamera fissa",
"icon-panning-alt": "Telecamera panoramica",
"icon-dome-alt": "Telecamera a cupola",
"icon-guard-alt": "Guardia",
"icon-alpr-alt": "Riconoscimento automatico delle targhe",
"title-view-fixed": "Obbligatorio per tracciare il campo visivo della telecamera fissa",
"title-view-dome": "Obbligatorio per tracciare il campo visivo della telecamera a cupola",
"k-cam-direction": "@@LT00",
"k-cam-angle": "@@LT00",
"k-height": "@@LT00",
"v-direction-0": "0 - 359 (in gradi) o",
"v-direction-1": "N / NE / E / SE / S / SO / O / NO",
"v-direction-2": "ad esempio per cupole a muro",
"v-angle-0": "15 - 90 (in gradi)",
"v-angle-1": "da una visuale quasi orizzontale a una telecamera puntata a terra",
"v-angle-2": "predefinito: 15°",
"v-height-0": "3 - 12 (in metri)",
"v-height-1": "predefinito: 5m",
"examples": "Esempi",
"example-img-0-alt": "Campo visivo (direzione: 90°, angolo: 15°, altezza: 5m)",
"example-img-1-alt": "Campo visivo (direzione: 90°, angolo: 15°, altezza: 10m)",
"example-img-2-alt": "Campo visivo (direzione: 90°, angolo: 60°, altezza: 10m)",
"example-img-3-alt": "Cupola visivo (altezza: 3m)",
"example-img-4-alt": "Cupola visivo (altezza: 5m)",
"example-img-5-alt": "Cupola visivo (altezza: 5m, direzione: 45°)",
"example-direction-45": "direzione = 45°",
"example-direction-90": "direzione = 90°",
"example-angle-15": "angolo = 15°",
"example-angle-60": "angolo = 60°",
"example-height-3": "altezza = 3m",
"example-height-5": "altezza = 5m",
"example-height-10": "altezza = 10m",
"title-optional": "Facoltativo",
"k-surv-zone": "@@LT00",
"k-cam-mount": "@@LT00",
"k-operator": "@@LT00",
"k-name": "@@LT00",
"k-ref": "@@LT00",
"k-image": "@@LT00",
"v-surv-zone": "bank (banca) / building (edificio) / parking (parcheggio) / shop (negozio) / town (città) / traffic (traffico)",
"v-cam-mount": "ceilling (soffitto) / pole (palo) / wall (muro)",
"v-operator": "organizzazione o persona che gestisce la telecamera",
"v-name": "denominazione della telecamera",
"v-ref": "numero di riferimento della telecamera",
"v-image": "link a un'immagine in hosting esterno che rappresenta l'oggetto marcato"
},
"links": {
"k-manmade": [ "man_made" ],
"k-surveillance": [ "surveillance" ],
"k-surv-type": [ "surveillance:type" ],
"k-cam-type": [ "camera:type" ],
"k-cam-direction": [ "camera:direction" ],
"k-cam-angle": [ "camera:angle" ],
"k-height": [ "height" ],
"k-surv-zone": [ "surveillance:zone" ],
"k-cam-mount": [ "camera:mount" ],
"k-operator": [ "operator" ],
"k-name": [ "name" ],
"k-ref": [ "ref" ],
"k-image": [ "image" ],
"v-surveillance": [ "surveillance" ]
}
}

View file

@ -0,0 +1,84 @@
{
"texts": {
"title-icon": "",
"k-manmade": "@@LT00",
"k-surveillance": "@@LT00",
"k-surv-type": "@@LT00",
"k-cam-type": "@@LT00",
"v-surveillance": "@@LT00",
"v-public": "public",
"v-outdoor": "outdoor",
"v-indoor": "indoor",
"v-camera": "camera",
"v-fixed": "fixed",
"v-panning": "panning",
"v-dome": "dome",
"v-guard": "guard",
"v-alpr": "ALPR",
"icon-public-alt": "",
"icon-outdoor-alt": "",
"icon-indoor-alt": "",
"icon-cam-alt": "",
"icon-fixed-alt": "",
"icon-panning-alt": "",
"icon-dome-alt": "",
"icon-guard-alt": "",
"icon-alpr-alt": "",
"title-view-fixed": "",
"title-view-dome": "",
"k-cam-direction": "@@LT00",
"k-cam-angle": "@@LT00",
"k-height": "@@LT00",
"v-direction-0": "",
"v-direction-1": "",
"v-direction-2": "",
"v-angle-0": "",
"v-angle-1": "",
"v-angle-2": "",
"v-height-0": "",
"v-height-1": "",
"examples": "",
"example-img-0-alt": "",
"example-img-1-alt": "",
"example-img-2-alt": "",
"example-img-3-alt": "",
"example-img-4-alt": "",
"example-img-5-alt": "",
"example-direction-45": "",
"example-direction-90": "",
"example-angle-15": "",
"example-angle-60": "",
"example-height-3": "",
"example-height-5": "",
"example-height-10": "",
"title-optional": "",
"k-surv-zone": "@@LT00",
"k-cam-mount": "@@LT00",
"k-operator": "@@LT00",
"k-name": "@@LT00",
"k-ref": "@@LT00",
"k-image": "@@LT00",
"v-surv-zone": "bank / building / parking / shop / town / traffic",
"v-cam-mount": "ceilling / pole / wall",
"v-operator": "",
"v-name": "",
"v-ref": "",
"v-image": ""
},
"links": {
"k-manmade": [ "man_made" ],
"k-surveillance": [ "surveillance" ],
"k-surv-type": [ "surveillance:type" ],
"k-cam-type": [ "camera:type" ],
"k-cam-direction": [ "camera:direction" ],
"k-cam-angle": [ "camera:angle" ],
"k-height": [ "height" ],
"k-surv-zone": [ "surveillance:zone" ],
"k-cam-mount": [ "camera:mount" ],
"k-operator": [ "operator" ],
"k-name": [ "name" ],
"k-ref": [ "ref" ],
"k-image": [ "image" ],
"v-surveillance": [ "surveillance" ]
}
}

View file

@ -0,0 +1,96 @@
{
"texts": {
"node" : "Eintrag",
"nodes" : "Einträge",
"surv-node" : "Überwachungseintrag",
"surv-nodes" : "Überwachungseinträge",
"filter": "Filter",
"single": "einzel",
"total": "gesamt",
"area": "Bereich",
"area-pl": "Bereiche",
"area-all": "alle Bereiche",
"country": "Land",
"country-pl": "Länder",
"country-all": "weltweit",
"type": "Art",
"type-pl": "Arten",
"type-all": "alle Arten",
"year": "Jahr",
"year-all": "alle Jahre",
"month": "Monat",
"month-all": "alle Monate",
"areaxxx-0": "noch nicht kategorisiert",
"areaxxx-1": "",
"areaxxx-2": "??",
"area0-0": "keine Angabe",
"area0-1": "",
"area0-2": "keine Angabe",
"area1-0": "öffentlicher Bereich",
"area1-1": "für alle zugänglich",
"area1-2": "öffentlich",
"area2-0": "privater Bereich",
"area2-1": "nur für befugte Personen zugänglich",
"area2-2": "privat",
"area3-0": "Bereich innerhalb eines Gebäudes",
"area3-1": "",
"area3-2": "Innenraum",
"typexxx-0": "noch nicht kategorisiert",
"typexxx-1": "",
"typexxx-2": "??",
"type0-0": "Kamera",
"type0-1": "keine weiteren Angaben",
"type0-2": "Kamera",
"type1-0": "feststehende Kamera",
"type1-1": "überwacht meist einen begrenzten Bereich",
"type1-2": "feststehend",
"type2-0": "schwenkbare Kamera",
"type2-1": "überwacht meist verschiedene Bereiche",
"type2-2": "schwenkbar",
"type3-0": "Kuppelkamera",
"type3-1": "überwacht meist einen 360°-Bereich",
"type3-2": "Kuppel",
"type4-0": "Wachpersonal",
"type4-1": "z.B. Beschäftigte eines Sicherheitsunternehmens",
"type4-2": "Wache",
"type5-0": "ANSE",
"type5-1": "Automatische Nummernschilderkennung",
"type5-2": "ANSE",
"all": "alle",
"Jan": "Jan",
"Jan_": "Januar",
"Feb": "Feb",
"Feb_": "Februar",
"Mar": "Mär",
"Mar_": "März",
"Apr": "Apr",
"Apr_": "April",
"May": "Mai",
"May_": "Mai",
"Jun": "Jun",
"Jun_": "Juni",
"Jul": "Jul",
"Jul_": "Juli",
"Aug": "Aug",
"Aug_": "August",
"Sep": "Sep",
"Sep_": "September",
"Oct": "Okt",
"Oct_": "Oktober",
"Nov": "Nov",
"Nov_": "November",
"Dec": "Dez",
"Dec_": "Dezember",
"Su": "So",
"Mo": "Mo",
"Tu": "Di",
"We": "Mi",
"Th": "Do",
"Fr": "Fr",
"Sa": "Sa"
}
}

View file

@ -0,0 +1,96 @@
{
"texts": {
"node": "node",
"nodes": "nodes",
"surv-node": "surveillance node",
"surv-nodes": "surveillance nodes",
"filter": "filter",
"single": "single",
"total": "total",
"area": "area",
"area-pl": "areas",
"area-all": "all areas",
"country": "country",
"country-pl": "countries",
"country-all": "worldwide",
"type": "type",
"type-pl": "types",
"type-all": "all types",
"year": "year",
"year-all": "all years",
"month": "month",
"month-all": "all months",
"areaxxx-0": "not categorized yet",
"areaxxx-1": "",
"areaxxx-2": "??",
"area0-0": "not specified",
"area0-1": "",
"area0-2": "not specified",
"area1-0": "public outdoor area",
"area1-1": "accessable by everyone",
"area1-2": "public",
"area2-0": "private outdoor area",
"area2-1": "accessable only by authorized persons",
"area2-2": "private",
"area3-0": "indoor area",
"area3-1": "",
"area3-2": "indoor",
"typexxx-0": "not categorized yet",
"typexxx-1": "",
"typexxx-2": "??",
"type0-0": "camera",
"type0-1": "no further information",
"type0-2": "camera",
"type1-0": "fixed camera",
"type1-1": "usually observing a limited area",
"type1-2": "fixed cam",
"type2-0": "panning camera",
"type2-1": "usually able to observe various areas",
"type2-2": "panning cam",
"type3-0": "dome camera",
"type3-1": "usually observing a 360° area",
"type3-2": "dome cam",
"type4-0": "guard",
"type4-1": "e.g. an employee of a security service",
"type4-2": "guard",
"type5-0": "ALPR",
"type5-1": "Automatic Licence Plate Recognition",
"type5-2": "ALPR",
"all": "all",
"Jan": "Jan",
"Jan_": "January",
"Feb": "Feb",
"Feb_": "February",
"Mar": "Mar",
"Mar_": "March",
"Apr": "Apr",
"Apr_": "April",
"May": "May",
"May_": "May",
"Jun": "Jun",
"Jun_": "Jun",
"Jul": "Jul",
"Jul_": "July",
"Aug": "Aug",
"Aug_": "August",
"Sep": "Sep",
"Sep_": "September",
"Oct": "Oct",
"Oct_": "October",
"Nov": "Nov",
"Nov_": "November",
"Dec": "Dec",
"Dec_": "December",
"Su": "Su",
"Mo": "Mo",
"Tu": "Tu",
"We": "We",
"Th": "Th",
"Fr": "Fr",
"Sa": "Sa"
}
}

View file

@ -0,0 +1,96 @@
{
"texts": {
"node": "nodo",
"nodes": "nodos",
"surv-node": "nodo de vigilancia",
"surv-nodes": "nodos de vigilancia",
"filter": "filtro",
"single": "solo",
"total": "total",
"area": "área",
"area-pl": "áreas",
"area-all": "todas las áreas",
"country": "país",
"country-pl": "países",
"country-all": "mundialmente",
"type": "tipo",
"type-pl": "tipos",
"type-all": "todos los tipos",
"year": "año",
"year-all": "todos los años",
"month": "mes",
"month-all": "todos los meses",
"areaxxx-0": "aún no categorizado",
"areaxxx-1": "",
"areaxxx-2": "??",
"area0-0": "no especificado",
"area0-1": "",
"area0-2": "no especificado",
"area1-0": "área publica en exteriores",
"area1-1": "accesible por cualquiera",
"area1-2": "publica",
"area2-0": "área privada en exteriores",
"area2-1": "accesible solo por personal autorizado",
"area2-2": "privada",
"area3-0": "área de interiores",
"area3-1": "",
"area3-2": "interiores",
"typexxx-0": "aún no categorizado",
"typexxx-1": "",
"typexxx-2": "??",
"type0-0": "cámara",
"type0-1": "no hay más información",
"type0-2": "cámara",
"type1-0": "cámara fija",
"type1-1": "usualmente abarca un área limitada",
"type1-2": "fija",
"type2-0": "cámara orientable",
"type2-1": "usualmente abarca varias áreas",
"type2-2": "orientable",
"type3-0": "cámara domo",
"type3-1": "abarca un área de 360°",
"type3-2": "domo",
"type4-0": "guardia",
"type4-1": "ej: empleado de un servicio de seguridad",
"type4-2": "guardia",
"type5-0": "ICAP",
"type5-1": "identificador automático de patentes",
"type5-2": "ICAP",
"all": "todo",
"Jan": "Ene",
"Jan_": "Enero",
"Feb": "Feb",
"Feb_": "Febrero",
"Mar": "Mar",
"Mar_": "Marzo",
"Apr": "Abr",
"Apr_": "Abril",
"May": "May",
"May_": "Mayo",
"Jun": "Jun",
"Jun_": "Junio",
"Jul": "Jul",
"Jul_": "Julio",
"Aug": "Ago",
"Aug_": "Agosto",
"Sep": "Sep",
"Sep_": "Septiembre",
"Oct": "Oct",
"Oct_": "Octubre",
"Nov": "Nov",
"Nov_": "Noviembre",
"Dec": "Dic",
"Dec_": "Diciembre",
"Su": "Do",
"Mo": "Lu",
"Tu": "Ma",
"We": "Mi",
"Th": "Ju",
"Fr": "Vi",
"Sa": "Sa"
}
}

View file

@ -0,0 +1,96 @@
{
"texts": {
"node": "nœud",
"nodes": "nœuds",
"surv-node": "nœud de surveillance",
"surv-nodes": "nœuds de surveillance",
"filter": "filtre",
"single": "particulière",
"total": "totale",
"area": "zone",
"area-pl": "zones",
"area-all": "tous les zones",
"country": "pays",
"country-pl": "pays",
"country-all": "dans le monde entier",
"type": "type",
"type-pl": "types",
"type-all": "tous les types",
"year": "année",
"year-all": "tous les ans",
"month": "mois",
"month-all": "tous les mois",
"areaxxx-0": "encore non classées",
"areaxxx-1": "",
"areaxxx-2": "??",
"area0-0": "non spécifié",
"area0-1": "",
"area0-2": "non spécifié",
"area1-0": "espace extérieur public",
"area1-1": "accessible par tout le monde",
"area1-2": "public",
"area2-0": "espace extérieur privé",
"area2-1": "accessible uniquement par les personnes autorisées",
"area2-2": "privé",
"area3-0": "espace intérieure",
"area3-1": "",
"area3-2": "intérieure",
"typexxx-0": "encore non classées",
"typexxx-1": "",
"typexxx-2": "??",
"type0-0": "caméra",
"type0-1": "aucune information supplémentaire",
"type0-2": "caméra",
"type1-0": "caméra fixe",
"type1-1": "généralement l'observation d'une zone limitée",
"type1-2": "cam fixe",
"type2-0": "caméra panoramique",
"type2-1": "habituellement en mesure d'observer les différents zones",
"type2-2": "cam panoramique",
"type3-0": "caméra dôme",
"type3-1": "généralement l'observation d'un 360° zone",
"type3-2": "cam dôme",
"type4-0": "gardien",
"type4-1": "p. ex. un employé d'un service de sécurité",
"type4-2": "gardien",
"type5-0": "LAPI",
"type5-1": "Lecture Automatisée de Plaques dImmatriculation",
"type5-2": "LAPI",
"all": "tout",
"Jan": "Jan",
"Jan_": "Janvier",
"Feb": "Fév",
"Feb_": "Février",
"Mar": "Mar",
"Mar_": "Mars",
"Apr": "Avr",
"Apr_": "Avril",
"May": "Mai",
"May_": "Mai",
"Jun": "Jui",
"Jun_": "Juin",
"Jul": "Jui",
"Jul_": "Juillet",
"Aug": "Aoû",
"Aug_": "Août",
"Sep": "Sep",
"Sep_": "Septembre",
"Oct": "Oct",
"Oct_": "Octobre",
"Nov": "Nov",
"Nov_": "Novembre",
"Dec": "Déc",
"Dec_": "Décembre",
"Su": "Di",
"Mo": "Lu",
"Tu": "Ma",
"We": "Me",
"Th": "Je",
"Fr": "Ve",
"Sa": "Sa"
}
}

View file

@ -0,0 +1,96 @@
{
"texts": {
"node": "nodo",
"nodes": "nodi",
"surv-node": "nodo di sorveglianza",
"surv-nodes": "nodi di sorveglianza",
"filter": "filtro",
"single": "singolo",
"total": "totale",
"area": "area",
"area-pl": "aree",
"area-all": "tutte le aree",
"country": "paese",
"country-pl": "paesi",
"country-all": "mondiale",
"type": "tipo",
"type-pl": "tipi",
"type-all": "tutti i tipi",
"year": "anno",
"year-all": "tutti gli anni",
"month": "mese",
"month-all": "tutti i mesi",
"areaxxx-0": "non ancora classificato",
"areaxxx-1": "",
"areaxxx-2": "??",
"area0-0": "non specificato",
"area0-1": "",
"area0-2": "non specificato",
"area1-0": "area pubblica all'aperto",
"area1-1": "accessibile a tutti",
"area1-2": "pubblica",
"area2-0": "spazio esterno privato",
"area2-1": "accessibile solo alle persone autorizzate",
"area2-2": "privato",
"area3-0": "spazio interno",
"area3-1": "",
"area3-2": "interno",
"typexxx-0": "non ancora classificato",
"typexxx-1": "",
"typexxx-2": "??",
"type0-0": "telecamera",
"type0-1": "nessuna ulteriore informazione",
"type0-2": "telecamera",
"type1-0": "telecamera fissa",
"type1-1": "di solito osserva un'area limitata",
"type1-2": "telecamera fissa",
"type2-0": "telecamera panoramica",
"type2-1": "di solito in grado di osservare varie aree",
"type2-2": "telecamera panoramica",
"type3-0": "telecamera a cupola/dome",
"type3-1": "di solito in grado di osservare un'area a 360",
"type3-2": "telecamera a cupola",
"type4-0": "guardia",
"type4-1": "ad es. un dipendente di un servizio di sicurezza",
"type4-2": "guardia",
"type5-0": "ALPR",
"type5-1": "Riconoscimento automatico delle targhe",
"type5-2": "ALPR",
"all": "tutti",
"Jan": "Gen",
"Jan_": "Gennaio",
"Feb": "Feb",
"Feb_": "Febbraio",
"Mar": "Mar",
"Mar_": "Marzo",
"Apr": "Apr",
"Apr_": "Aprile",
"May": "Mag",
"May_": "Maggio",
"Jun": "Giu",
"Jun_": "Giugno",
"Jul": "Lul",
"Jul_": "Luglio",
"Aug": "Ago",
"Aug_": "Agosto",
"Sep": "Set",
"Sep_": "Settembre",
"Oct": "Ott",
"Oct_": "Ottobre",
"Nov": "Nov",
"Nov_": "Novembre",
"Dec": "Dic",
"Dec_": "Dicembre",
"Su": "Do",
"Mo": "Lu",
"Tu": "Ma",
"We": "Me",
"Th": "Gi",
"Fr": "Ve",
"Sa": "Sa"
}
}

View file

@ -0,0 +1,96 @@
{
"texts": {
"node": "точка",
"nodes": "точки",
"surv-node": "точка наблюдения",
"surv-nodes": "точки наблюдения",
"filter": "фильтр",
"single": "отдельно",
"total": "общий",
"area": "область",
"area-pl": "области",
"area-all": "во всех областях",
"country": "страна",
"country-pl": "страны",
"country-all": "во всем мире",
"type": "тип",
"type-pl": "типы",
"type-all": "все типы",
"year": "год",
"year-all": "все годы",
"month": "месяц",
"month-all": "все месяцы",
"areaxxx-0": "не относятся к категории пока еще не",
"areaxxx-1": "",
"areaxxx-2": "??",
"area0-0": "не указан",
"area0-1": "",
"area0-2": "не указан",
"area1-0": "открытая площадь",
"area1-1": "поднявшись на каждый",
"area1-2": "общественной",
"area2-0": "частная открытая область",
"area2-1": "поднявшись только уполномоченным лицам",
"area2-2": "частный",
"area3-0": "область для установки внутри помещений",
"area3-1": "",
"area3-2": "для использования внутри помещений",
"typexxx-0": "не относятся к категории пока еще не",
"typexxx-1": "",
"typexxx-2": "??",
"type0-0": "камера",
"type0-1": "никакой дополнительной информации",
"type0-2": "камера",
"type1-0": "фиксированная камера",
"type1-1": "обычно наблюдений ограниченной области",
"type1-2": "фиксированная камера",
"type2-0": "панорамирование камерой",
"type2-1": "обычно возможность наблюдать различные районы",
"type2-2": "панорамирование камерой",
"type3-0": "купольная камера",
"type3-1": "как правило, соблюдая 360° область",
"type3-2": "купольная камера",
"type4-0": "ограждение",
"type4-1": "например, сотрудник службы безопасности",
"type4-2": "ограждение",
"type5-0": "АРНЗ",
"type5-1": "Автоматическое Распознавание Номерных Знаков",
"type5-2": "АРНЗ",
"all": "все",
"Jan": "Янв",
"Jan_": "Январь",
"Feb": "Фев",
"Feb_": "Февраль",
"Mar": "Мар",
"Mar_": "Март",
"Apr": "Апр",
"Apr_": "Апрель",
"May": "Май",
"May_": "Май",
"Jun": "Июн",
"Jun_": "Июнь",
"Jul": "Июл",
"Jul_": "Июль",
"Aug": "Авг",
"Aug_": "Август",
"Sep": "Сен",
"Sep_": "Сентябрь",
"Oct": "Окт",
"Oct_": "Октябрь",
"Nov": "Ноя",
"Nov_": "Ноябрь",
"Dec": "Дек",
"Dec_": "Декабрь",
"Su": "Во",
"Mo": "По",
"Tu": "Вт",
"We": "Ср",
"Th": "Че",
"Fr": "Пя",
"Sa": "Су"
}
}

View file

@ -0,0 +1,29 @@
{
"texts": {
"title-icons": "Symbole",
"icon-cam-alt": "Kameras",
"desc-cam": "Kamera — keine weiteren Angaben",
"icon-fixed-alt": "Feststehende Kameras",
"desc-fixed": "Feststehende Kamera — überwacht meist einen begrenzten Bereich",
"icon-panning-alt": "Schwenkbare Kameras",
"desc-panning": "Schwenkbare Kamera — überwacht meist verschiedene Bereiche",
"icon-dome-alt": "Kuppelkameras",
"desc-dome": "Kuppelkamera — überwacht meist einen 360°-Bereich",
"icon-guard-alt": "Wachpersonal",
"desc-guard": "Wachpersonal — z.B. Beschäftigte eines Sicherheitsunternehmens",
"icon-alpr-alt": "Automatische Kennzeichenlesesysteme",
"desc-alpr": "AKLS — Automatische Kennzeichenlesesysteme",
"title-colors": "Farben",
"icon-red-alt": "Überwachung öffentlicher Bereiche",
"desc-red": "Roter Hintergrund — Überwachung eines öffentlichen Bereichs, der für alle zugänglich ist",
"icon-blue-alt": "Überwachung außerhalb eines Gebäudes",
"desc-blue": "Blauer Hintergrund — Überwachung eines Bereichs außerhalb eines Gebäudes, der nur für befugte Personen zugänglich ist",
"icon-green-alt": "Überwachung innerhalb eines Gebäudes",
"desc-green": "Grüner Hintergrund — Überwachung eines Bereichs innerhalb eines Gebäudes",
"icon-yellow-fixed-alt": "Feststehend Kamera, zu kontrollieren",
"icon-yellow-dome-alt": "Kuppelkamera, zu kontrollieren",
"icon-yellow-guard-alt": "Wachpersonal, zu kontrollieren",
"icon-yellow-alpr-alt": "Automatische Nummernschilderkennung, zu kontrollieren",
"desc-yellow": "Gelbes Symbol — Mit einem Kontrollkennzeichen markiere Kamera oder Wachpersonaleintrag, die/der noch korrigiert oder vervollständigt werden muss."
}
}

View file

@ -0,0 +1,29 @@
{
"texts": {
"title-icons": "Icons",
"icon-cam-alt": "Cameras",
"desc-cam": "Camera — no further information",
"icon-fixed-alt": "Fixed cameras",
"desc-fixed": "Fixed camera — usually observing a limited area",
"icon-panning-alt": "Panning cameras",
"desc-panning": "Panning camera — usually able to observe various areas",
"icon-dome-alt": "Dome cameras",
"desc-dome": "Dome camera — usually observing a 360° area",
"icon-guard-alt": "Guards",
"desc-guard": "Guard — e.g. an employee of a security service",
"icon-alpr-alt": "Automatic Licence Plate Recognition",
"desc-alpr": "ALPR — Automatic Licence Plate Recognition",
"title-colors": "Colors",
"icon-red-alt": "Public surveillance",
"desc-red": "Red background — observing a public outdoor area, accessable by everyone",
"icon-blue-alt": "Outdoor surveillance",
"desc-blue": "Blue background — observing a private outdoor area, accessable only by authorized persons",
"icon-green-alt": "Indoor surveillance",
"desc-green": "Green background — observing an indoor area",
"icon-yellow-fixed-alt": "Fixed cameras, fixme",
"icon-yellow-dome-alt": "Dome cameras, fixme",
"icon-yellow-guard-alt": "Guards, fixme",
"icon-yellow-alpr-alt": "Automatic Licence Plate Recognition, fixme",
"desc-yellow": "Yellow icon — camera or guard marked with a fixme key because it needs further attention"
}
}

View file

@ -0,0 +1,29 @@
{
"texts": {
"title-icons": "Iconos",
"icon-cam-alt": "Cámaras",
"desc-cam": "Cámara — no hay más información",
"icon-fixed-alt": "Cámaras Fija",
"desc-fixed": "Cámara Fija — usualmente abarca un área limitada",
"icon-panning-alt": "Cámaras Panorámica",
"desc-panning": "Cámara Panorámica — usualmente abarca varias áreas",
"icon-dome-alt": "Cámaras Domo",
"desc-dome": "Cámara Domo — usualmente abarca un área de 360°",
"icon-guard-alt": "Guardia",
"desc-guard": "Guardia — ej: empleado de un servicio de seguridad",
"icon-alpr-alt": "Reconocimiento automático de matrículas",
"desc-alpr": "Reconocimiento automático de matrículas (ANPR en inglés)",
"title-colors": "Colores",
"icon-red-alt": "",
"desc-red": "Fondo rojo — observa un área publica en exteriores, accesible por cualquiera",
"icon-blue-alt": "",
"desc-blue": "Fondo azul — observa un área privada en exteriores, accesible solo por personal autorizado",
"icon-green-alt": "",
"desc-green": "Fondo verde — observa un área de interiores",
"icon-yellow-fixed-alt": "",
"icon-yellow-dome-alt": "",
"icon-yellow-guard-alt": "",
"icon-yellow-alpr-alt": "",
"desc-yellow": "Icono amarillo — cámara o guardia marcada como arréglame, ya que necesita ser revisado."
}
}

View file

@ -0,0 +1,29 @@
{
"texts": {
"title-icons": "Icônes",
"icon-cam-alt": "Caméras",
"desc-cam": "Caméra — pas d'autre information",
"icon-fixed-alt": "Caméras fixe",
"desc-fixed": "Caméra fixe — en général, surveille une zone réduite",
"icon-panning-alt": "Caméras panoramique",
"desc-panning": "Caméra panoramique — en général, peut surveiller plusieurs zones",
"icon-dome-alt": "Caméras dôme",
"desc-dome": "Caméra dôme — en général, peut surveiller une zone à 360°",
"icon-guard-alt": "Gardes",
"desc-guard": "Garde ou sentinelle — c.a.d. un.e employé.e d'une société de sécurité",
"icon-alpr-alt": "Lecture automatique des plaques dimmatriculation",
"desc-alpr": "LAPI — Lecture automatique des plaques dimmatriculation",
"title-colors": "Couleurs",
"icon-red-alt": "Surveillance publique",
"desc-red": "Fond rouge — surveille une zone extérieure publique, accessible par tous",
"icon-blue-alt": "Surveillance extérieure",
"desc-blue": "Fond bleu — surveille une zone extérieure privée, seulement accessible par les personnes autorisées",
"icon-green-alt": "Surveillance intérieure",
"desc-green": "Fond vert — surveille une zone intérieure",
"icon-yellow-fixed-alt": "Caméras fixe, à corriger",
"icon-yellow-dome-alt": "Caméras dôme, à corriger",
"icon-yellow-guard-alt": "Gardes, à corriger",
"icon-yellow-alpr-alt": "ALPR, à corriger",
"desc-yellow": "Icône à fond jaune — Caméra ou garde marqué avec une étiquette “fixme” (à corriger), indiquant un besoin de précision ultérieure"
}
}

View file

@ -0,0 +1,29 @@
{
"texts": {
"title-icons": "Icone",
"icon-cam-alt": "Telecamere",
"desc-cam": "Telecamera — nessuna ulteriore informazione",
"icon-fixed-alt": "Telecamere fissa",
"desc-fixed": "Telecamera fissa - di solito osserva un'area limitata",
"icon-panning-alt": "Telecamere a scansione",
"desc-panning": "Telecamera a scansione - di solito in grado di osservare varie aree",
"icon-dome-alt": "Telecamere a cupola",
"desc-dome": "Telecamera a cupola — di solito osservano un'area a 360°",
"icon-guard-alt": "Guardie",
"desc-guard": "Guardia — ad es. un dipendente di un sevizio di vigilanza",
"icon-alpr-alt": "Riconoscimento automatico delle targhe",
"desc-alpr": "Riconoscimento automatico delle targhe (ALPR in inglese)",
"title-colors": "Colori",
"icon-red-alt": "Sorveglianza pubblica",
"desc-red": "Sfondo rosso - osserva un'area pubblica all'aperto, accessibile a tutti",
"icon-blue-alt": "Sorveglianza esterna",
"desc-blue": "Sfondo blu - osserva un'area esterna privata, accessibile solo alle persone autorizzate",
"icon-green-alt": "Sorveglianza interna",
"desc-green": "Sfondo verde - osserva un'area interna",
"icon-yellow-fixed-alt": "Telecamere fisse, fixme",
"icon-yellow-dome-alt": "Telecamere a cupola, fixme",
"icon-yellow-guard-alt": "Guardie, fixme",
"icon-yellow-alpr-alt": "Riconoscimento automatico delle targhe, fixme",
"desc-yellow": "Icona gialla - telecamera o guardia segnata con un tasto fixme perché ha bisogno di ulteriore attenzione"
}
}

View file

@ -0,0 +1,29 @@
{
"texts": {
"title-icons": "",
"icon-cam-alt": "",
"desc-cam": "",
"icon-fixed-alt": "",
"desc-fixed": "",
"icon-panning-alt": "",
"desc-panning": "",
"icon-dome-alt": "",
"desc-dome": "",
"icon-guard-alt": "",
"desc-guard": "",
"icon-alpr-alt": "",
"desc-alpr": "",
"title-colors": "",
"icon-red-alt": "",
"desc-red": "",
"icon-blue-alt": "",
"desc-blue": "",
"icon-green-alt": "",
"desc-green": "",
"icon-yellow-fixed-alt": "",
"icon-yellow-dome-alt": "",
"icon-yellow-guard-alt": "",
"icon-yellow-alpr-alt": "",
"desc-yellow": ""
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 964 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 219 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 268 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 B

BIN
www/sunders/images/cam.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 805 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 781 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 780 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 278 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 390 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

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