diff --git a/Dockerfile b/Dockerfile index 5dd2b2ae..f3150dbf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ FROM php:8.2.23-apache +ENV APACHE_DOCUMENT_ROOT /opt/ianseo # Required dependencies RUN apt-get update && apt-get install -y \ libfreetype6-dev \ @@ -14,16 +15,17 @@ RUN apt-get update && apt-get install -y \ zlib1g zlib1g-dev \ libpng16-16 libpng-dev \ libonig5 libonig-dev \ + && pecl update-channels \ && docker-php-ext-configure gd \ && docker-php-ext-install gd \ && docker-php-ext-install mysqli \ && docker-php-ext-install curl \ && docker-php-ext-install mbstring \ && docker-php-ext-install intl \ - && docker-php-ext-install zip -RUN /usr/bin/yes '' | /usr/local/bin/pecl install mcrypt-1.0.6 -RUN /usr/bin/yes '' | /usr/local/bin/pecl install imagick -RUN apt-get remove \ + && docker-php-ext-install zip \ + && /usr/bin/yes '' | /usr/local/bin/pecl install mcrypt-1.0.6 \ + && /usr/bin/yes '' | /usr/local/bin/pecl install imagick \ + && apt-get remove \ libfreetype6-dev \ libjpeg62-turbo-dev \ libpng-dev \ @@ -37,21 +39,17 @@ RUN apt-get remove \ libonig-dev \ apt-get clean all \ && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; \ - rm -rf /var/lib/apt/lists/* ; \ - pecl update-channels ; \ + rm -rf /var/lib/apt/lists/* /var/cache/apt/archives ; \ rm -rf /usr/local/src ; \ rm -rf /tmp/pear ~/.pearrc # ianseo setup COPY src/ /opt/ianseo -RUN chmod -R a+wX /opt/ianseo -# Apache settings -ENV APACHE_DOCUMENT_ROOT /opt/ianseo -RUN sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' \ +RUN chmod -R a+wX /opt/ianseo \ + && sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' \ /etc/apache2/sites-available/*.conf && \ sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' \ /etc/apache2/apache2.conf /etc/apache2/conf-enabled/*.conf -COPY apache/ianseo.conf /etc/apache2/conf-enabled/ -COPY apache/ianseo.ini /etc/apache2/conf-enabled/ +COPY apache/ /etc/apache2/conf-enabled/ COPY php/php.ini /usr/local/etc/php COPY php/docker-php-ext-ianseo.ini /usr/local/etc/php/conf.d # COPY php/ianseo.config.inc.php /opt/ianseo/Common/config.inc.php diff --git a/README.md b/README.md index 76b55afc..0dff78e1 100644 --- a/README.md +++ b/README.md @@ -1,34 +1,64 @@ -# i@nseo +# Ianseo Docker container -i@nseo is a software for managing archery tournaments results +Ianseo is a software for managing archery tournaments results This is an un-official repository, the official site for this software is http://www.ianseo.net/ -##### Ernesto Celis notes - -Mine is a fork from Brian Nelson's `brian-nelson/ianseo` repository but -mixed with the official release, since Brian's repository seems -unmaintained. - -This fork goal is running i@anseo in Docker containers. Docker setup is -out of scope. +## How to use with compose -## How to use this image - -Copy `sample.env` to `.env` and edit to suit your requirements. +`compose.yaml` ``` -cp sample.env .env` +services: + ianseodb: + image: mariadb:lts + environment: + - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-ianseo} + - MARIADB_USER=${MARIADB_USER:-ianseo} + - MARIADB_DATABASE=${MARIADB_DATABASE:-ianseo} + - MARIADB_PASSWORD=${MARIADB_PASSWORD:-ianseo} + restart: always + ianseo: + image: arqueria/ianseo + ports: + - "8080:80" + depends_on: + - ianseodb + restart: always ``` -### Run withDocker compose +Start the services in the background ``` docker compose up -d ``` -### Run from command line, step by step +Browse to http://localhost:8080 and follow the instructions to +finish the installation. + +⚠️ In the **Step 2: Database connection data** of ianseo has a default of +`localhost` for Database host, change it for the name of the MariaDB +container, `ianseodb` in the example above. + +⚠️ Fill in the field for the **ADMIN Password to create users and databases** +with the value of the variable `MARIADB_ROOT_PASSWORD` of the MariaDB +container, `ianseo` in the example above. + +### Run step by step + +The following procedure assumes you created an `.env` file to store the required +environment variables values. + +`.env` + +``` +MARIADB_ROOT_PASSWORD=ianseo +MARIADB_USER=ianseo +MARIADB_DATABASE=ianseo +MARIADB_PASSWORD=ianseo + +``` First launch a MariaDB container. @@ -45,14 +75,6 @@ docker run -d --name ianseo --link ianseodb:mysql -p 8080:80 arqueria/ianseo Browse to http://127.0.0.1:8080 and follow the instructions to finish the installation. -⚠️ In the **Step 2: Database connection data** of i@anseo has a default of -`localhost` for Database host, change it for the name of the MariaDB -container, `ianseodb` in the example above. - -⚠️ Fill the field for the **ADMIN Password to create users and databases** -with the value of the variable `MARIADB_ROOT_PASSWORD` of the MAriaDB -container, `ianseo` in the example above. - ## Environment Variables One of `MARIADB_ROOT_PASSWORD`, `MARIADB_ALLOW_EMPTY_ROOT_PASSWORD`, or @@ -62,7 +84,7 @@ variables are optional. **MARIADB_ROOT_PASSWORD / MYSQL_ROOT_PASSWORD** This specifies the password that will be set for the MariaDB root -superuser account. In the above example, it was set to my-secret-pw. +superuser account. In the above example, it was set to `ianseo`. **MARIADB_ALLOW_EMPTY_ROOT_PASSWORD / MYSQL_ALLOW_EMPTY_PASSWORD** @@ -97,7 +119,26 @@ by the `MARIADB_ROOT_PASSWORD` / `MYSQL_ROOT_PASSWORD` variable. Refer to the MariaDB official repository for deeper information about variable environments https://hub.docker.com/_/mariadb -## Fetch newer i@nseo releases +### .env file + +You can use an `.env` file to store the required environment variables values. +Copy `sample.env` to `.env` and edit to suit your requirements. + +``` +cp sample.env .env` +``` + +## NodeJS development dependency + +NodeJS is used to support some tasks related to maitaining the docker image. NodeJS is **NOT REQUIRED** to run ianseo in docker. + +If you plan to contribute to this repository install NodeJS and required modules first. + +``` +npm install +``` + +## Fetch a newer ianseo releases ``` npm run ianseo:fetch @@ -105,29 +146,38 @@ npm run ianseo:fetch ## Build the docker image -To only build the i@anseo image for the current CPU architechture run: +To build the ianseo image only for the current CPU architecture run: ``` npm run ianseo:build ``` -To build images for both x86_64, aarch64 and arm7, run: +To build images for x86_64, aarch64 and arm7, run: ``` npm run ianseo:build:multi ``` -## Relase and Publish images to Docker registries +## Release and Publish images to Docker registries There are github actions wired to this repository, after mergin a branch into `main` you must tag the commit to publish with semantic versioning. -Ex: v2022.01.01.1 vYEAR.MONTH.DAY.REVISION. Official I@anseo versioning has -integers as REVISION, however docker releases may add an alphabetic charater to -the REVISION integer to support my own releases linked to official ones. +Ex: v2022.01.01.1 `vYEAR.MONTH.DAY.REVISION`. Official Ianseo versioning has +integers as **REVISION**, however docker releases may add an alphabetic character +to the **REVISION** integer to support docker releases linked to official ones. ``` -git checkout master +git checkout main git pull git tag v..
. git push origin v..
. ``` + +##### Ernesto Celis notes + +Mine is a fork from Brian Nelson's `brian-nelson/ianseo` repository but +mixed with the official release, since Brian's repository seems +unmaintained. + +This fork goal is running ianseo in Docker containers. Docker setup is +out of scope. diff --git a/bin/fetch.js b/bin/fetch.js new file mode 100644 index 00000000..ab832321 --- /dev/null +++ b/bin/fetch.js @@ -0,0 +1,93 @@ +const https = require("https"); +const fs = require("fs"); +const path = require("path"); +const unzipper = require("unzipper"); + +(async () => { + const IANSEO_URL = "https://ianseo.net"; + let html = null; + + const getHtml = () => { + https + .get(`${IANSEO_URL}/Releases.php`, (res) => { + let data = []; + console.log("Status Code:", res.statusCode); + + res.on("data", (chunk) => { + data.push(chunk); + }); + + res.on("end", async () => { + html = Buffer.concat(data).toString(); + const fileName = getFilename(html); + console.log(fileName); + if (fileName === null) { + throw new Error("No file found"); + } + await downloadFile(fileName); + try { + await unzipFile( + path.join(__dirname, "..", fileName), + path.join(__dirname, "..", ".tmp") + ); + } catch (err) { + throw new Error(err); + } + }); + }) + .on("error", (err) => { + console.log("Error: ", err.message); + }); + }; + + const getFilename = (html) => { + const regex = /Ianseo_\d{8}\.zip/g; + const match = regex.exec(html); + if (match.length === 0) { + return null; + } + return match[0]; + }; + + const downloadFile = async (fileName) => { + const url = `${IANSEO_URL}/Release/${fileName}`; + const filePath = path.join(__dirname, "..", fileName); + + return new Promise((resolve, reject) => { + const file = fs.createWriteStream(filePath); + https + .get(url, (response) => { + if (response.statusCode !== 200) { + reject( + new Error(`Failed to get '${url}' (${response.statusCode})`) + ); + return; + } + + response.pipe(file); + + file.on("finish", () => { + file.close(resolve); + }); + + file.on("error", (err) => { + fs.unlink(filePath, () => reject(err)); + }); + }) + .on("error", (err) => { + fs.unlink(filePath, () => reject(err)); + }); + }); + }; + + const unzipFile = async (zipFilePath, outputDir) => { + return new Promise((resolve, reject) => { + fs.createReadStream(zipFilePath) + .pipe(unzipper.Extract({ path: outputDir })) + .on("close", resolve) + .on("error", reject); + }); + }; + + getHtml(); +})(); diff --git a/bin/fetch.sh b/bin/fetch.sh index 5b8f958c..6e71df50 100755 --- a/bin/fetch.sh +++ b/bin/fetch.sh @@ -5,8 +5,7 @@ then echo "Usage: fetch.sh " exit 1 fi -cd "${ROOT_DIR}"/src -ROOT_DIR=$(pwd) +ROOT_DIR=$(dirname $(readlink -f $0))/.. IANSEO_SRC=Ianseo_${1}.zip curl -LSO https://ianseo.net/Release/"${IANSEO_SRC}" mkdir -pv "${ROOT_DIR}"/tmp @@ -14,4 +13,5 @@ cd "${ROOT_DIR}"/tmp unzip "${ROOT_DIR}"/"${IANSEO_SRC}" rsync -av --delete "${ROOT_DIR}"/tmp/ "${ROOT_DIR}"/src cd "${ROOT_DIR}" -rm "${IANSEO_SRC}" ; rm -rf "${ROOT_DIR}"/tmp \ No newline at end of file +rm "${IANSEO_SRC}" +rm -rf "${ROOT_DIR}"/tmp \ No newline at end of file diff --git a/compose.yaml b/compose.yaml index 4c9a66d1..308791fa 100644 --- a/compose.yaml +++ b/compose.yaml @@ -2,14 +2,15 @@ services: ianseodb: image: mariadb:lts environment: - - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD} - - MARIADB_USER=${MARIADB_USER} - - MARIADB_DATABASE=${MARIADB_DATABASE} - - MARIADB_PASSWORD=${MARIADB_PASSWORD} + - MARIADB_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD:-ianseo} + - MARIADB_USER=${MARIADB_USER:-ianseo} + - MARIADB_DATABASE=${MARIADB_DATABASE:-ianseo} + - MARIADB_PASSWORD=${MARIADB_PASSWORD:-ianseo} + restart: always ianseo: - # image: ghcr.io/ecelis/ianseo-docker:v2023.04.01.562a image: arqueria/ianseo ports: - "8080:80" depends_on: - ianseodb + # restart: always diff --git a/package-lock.json b/package-lock.json index adbe092f..dd8df352 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,7 +14,8 @@ }, "devDependencies": { "husky": "^8.0.0", - "standard-version": "^9.5.0" + "standard-version": "^9.5.0", + "unzipper": "^0.12.3" } }, "node_modules/@babel/code-frame": { @@ -496,6 +497,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -1245,6 +1252,45 @@ "node": ">=4" } }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/duplexer2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexer2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/duplexer2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -1988,6 +2034,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, "node_modules/normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", @@ -2811,6 +2863,33 @@ "node": ">= 10.0.0" } }, + "node_modules/unzipper": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.3.tgz", + "integrity": "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==", + "dev": true, + "dependencies": { + "bluebird": "~3.7.2", + "duplexer2": "~0.1.4", + "fs-extra": "^11.2.0", + "graceful-fs": "^4.2.2", + "node-int64": "^0.4.0" + } + }, + "node_modules/unzipper/node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -3330,6 +3409,12 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -3902,6 +3987,47 @@ } } }, + "duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", @@ -4460,6 +4586,12 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", "dev": true }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", + "dev": true + }, "normalize-package-data": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", @@ -5043,6 +5175,32 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, + "unzipper": { + "version": "0.12.3", + "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.12.3.tgz", + "integrity": "sha512-PZ8hTS+AqcGxsaQntl3IRBw65QrBI6lxzqDEL7IAo/XCEqRTKGfOX56Vea5TH9SZczRVxuzk1re04z/YjuYCJA==", + "dev": true, + "requires": { + "bluebird": "~3.7.2", + "duplexer2": "~0.1.4", + "fs-extra": "^11.2.0", + "graceful-fs": "^4.2.2", + "node-int64": "^0.4.0" + }, + "dependencies": { + "fs-extra": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + } + } + }, "uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", diff --git a/package.json b/package.json index a37e8bec..6b3b3ab7 100644 --- a/package.json +++ b/package.json @@ -29,10 +29,11 @@ "homepage": "https://github.com/ecelis/ianseo-docker#readme", "devDependencies": { "husky": "^8.0.0", - "standard-version": "^9.5.0" + "standard-version": "^9.5.0", + "unzipper": "^0.12.3" }, "dependencies": { "@commitlint/cli": "^17.2.0", "@commitlint/config-conventional": "^17.2.0" } -} \ No newline at end of file +} diff --git a/src/Accreditation/Accreditation.php b/src/Accreditation/Accreditation.php index 4266046f..ec44e0a4 100644 --- a/src/Accreditation/Accreditation.php +++ b/src/Accreditation/Accreditation.php @@ -1,6 +1,4 @@ IcTournament . "|" . $r->IcNumber] = $r->IcName; + $Accreditations[$r->IcTournament . "|" . $r->IcNumber] = $r->ToCode . ' - ' . $r->IcName; + } + $tmpSess = GetSessions('Q', false, null, $ToId); + foreach ($tmpSess as $sess) { + if(!array_key_exists($sess->SesOrder, $Sessions)) { + $Sessions[$sess->SesOrder] = array(); + } + $Sessions[$sess->SesOrder][$sess->SesTournament] = $sess->SesName; } } @@ -39,7 +51,10 @@ $JS_SCRIPT[] = ''; $JS_SCRIPT[] = ''; $JS_SCRIPT[] = phpVars2js($param); -$JS_SCRIPT[] = ''; +$JS_SCRIPT[] = ''; if($param["source"]==0) { $JS_SCRIPT[] = ''; } else { @@ -76,8 +91,8 @@ - - + + @@ -88,18 +103,18 @@ echo get_text('Camera', 'Tournament'); echo '
'; } -echo ''.get_text('ShowIanseoMenu', 'Tournament'); +echo '
'.get_text('ShowIanseoMenu', 'Tournament').'
'; if(file_exists($CFG->DOCUMENT_PATH."Modules/Accreditation/AccreditationPictureParameters.php") and empty($_SESSION['ShortMenu']['ACCR'])) { - echo '         '.get_text('AdvancedParams', 'Tournament'). ''; - echo '         '.get_text('OpenPictureScreen', 'BackNumbers'). ''; + echo '
'.get_text('AdvancedParams', 'Tournament'). ''; + echo ''.get_text('OpenPictureScreen', 'BackNumbers'). ''; } ?>
    -
+
'; foreach(explode(',', $_SESSION['AccreditationTourIds']) as $id) { $Code=getCodeFromId($id); - echo ''.$Code.'   '; + echo ''.$Code.'   '; } $TourId=$_SESSION['AccreditationTourIds']; } @@ -116,12 +131,14 @@ echo ''.get_text('Session').' 0   '; $q=safe_r_sql("select distinct SesOrder from Session where SesTournament in ($TourId) and SesType='Q' order by SesOrder"); while($r=safe_fetch($q)) { - echo ''.get_text('Session').' '.$r->SesOrder.'   '; + echo ''.get_text('Session').' '.$r->SesOrder.'   '; } -echo '
'. get_text('AllEntries','Tournament'). '
'. - '
'.get_text('OnlyWithoutPhoto', 'Tournament'). '
'. - '
'.get_text('OnlyPhoto', 'Tournament'). '
'. - '
'.get_text('OnlyWithoutAcc','Tournament'). '
'. +echo '
'. + '
'. get_text('BadgeOnlyNotPrinted', 'Tournament'). '
'. + '
'. get_text('AllEntries','Tournament'). '
'. + '
'.get_text('OnlyWithoutPhoto', 'Tournament'). '
'. + '
'.get_text('OnlyPhoto', 'Tournament'). '
'. + '
'.get_text('OnlyWithoutAcc','Tournament'). '
'. '
'; ?> @@ -131,9 +148,9 @@ - - - + + + @@ -166,7 +183,9 @@
diff --git a/src/Accreditation/AccreditationPictureList.php b/src/Accreditation/AccreditationPictureList.php index 91c6a82c..57a60fc6 100644 --- a/src/Accreditation/AccreditationPictureList.php +++ b/src/Accreditation/AccreditationPictureList.php @@ -12,6 +12,7 @@ $srcNoPhoto = !empty($_REQUEST["nophoto"]); $srcNoPrint = !empty($_REQUEST["noprint"]); $srcAccPhoto = !empty($_REQUEST["noacc"]); +$src2BPrinted = !empty($_REQUEST["tobeprinted"]); $srcString = (empty($_REQUEST["search"]) ? '' : $_REQUEST["search"]); @@ -32,14 +33,16 @@ $Where="EnTournament=" . StrSafe_DB($_SESSION['TourId']) . " "; } -$Sql = "SELECT EnId, +$Sql = "SELECT EnId, EnCode, ToCode, EnTournament, QuSession, + (EnBadgePrinted is not null and EnBadgePrinted!=0) as Printed, CONCAT(EnDivision, '-',EnClass) as Category, CONCAT(CoName, ' (' ,CoCode,')') as Country, CONCAT(UPPER(EnFirstName),' ' ,EnName) as Athlete, (PhEnId IS NOT NULL and PhToRetake=0 ) as hasPicture, (EnBadgePrinted+0 and PhEnId IS NULL) or PhToRetake=1 as NoPrintout FROM Entries - INNER JOIN Qualifications ON EnId=QuId + INNER JOIN Qualifications ON EnId=QuId + INNER JOIN Tournament ON EnTournament=ToId LEFT JOIN Countries ON EnCountry=CoId LEFT JOIN Photos ON EnId=PhEnId WHERE "; @@ -64,6 +67,10 @@ if($srcAccPhoto) { $Where .= " AND PhEnId IS NULL "; } +if($src2BPrinted) { + $Where .= " AND (EnBadgePrinted is null or EnBadgePrinted=0) "; +} + if(!empty($_REQUEST['x_Sessions'])) { $tmp=array(); @@ -78,11 +85,16 @@ if(safe_num_rows($Rs)) { while ($row = safe_fetch($Rs)) { $Answer .= '' + . '" prn="' . ($row->NoPrintout ? 1 : 0) + . '" printed="' . ($row->Printed ? 1 : 0) + . '" tourid="' . $row->EnTournament + . '" tour="' . $row->ToCode + . '" sess="' . $row->QuSession . '">' //. '' . $row->EnId . '' //. 'Athlete . ($row->NoPrintout ? ' - ONLY PHOTO' : '') . ']]>' //. 'Country . ']]>' diff --git a/src/Accreditation/CardCustom.php b/src/Accreditation/CardCustom.php index e508ff5f..5cb570c1 100644 --- a/src/Accreditation/CardCustom.php +++ b/src/Accreditation/CardCustom.php @@ -20,6 +20,7 @@ $CardType=(empty($_REQUEST['CardType']) ? 'A' : $_REQUEST['CardType']); $CardNumber=(empty($_REQUEST['CardNumber']) ? 0 : intval($_REQUEST['CardNumber'])); +$AvailableFonts=getFonts(); $SpecialFilter=''; // $SpecialFilter=' and EnCode in ( @@ -136,7 +137,13 @@ $r->Options=unserialize($r->IceOptions); if(!empty($r->Options['Font'])) { $r->Options['FontStyle']=''; - $r->Options['FontFamily'] = TCPDF_FONTS::addTTFfont(K_PATH_FONTS . $r->Options['Font'] . '.ttf'); + $FontFile=$AvailableFonts[$r->Options['Font']]['file'] ?? $AvailableFonts[$r->Options['Font'].'.ttf']['file'] ?? K_PATH_FONTS."arial.ttf"; + if(($AvailableFonts[$r->Options['Font']]['type']??'')=='E') { + $r->Options['FontFamily'] = TCPDF_FONTS::addTTFfont($FontFile, '', '', 32, dirname($AvailableFonts[$r->Options['Font']]['file']).'/'); + $pdf->AddFont($r->Options['FontFamily'], '', dirname($AvailableFonts[$r->Options['Font']]['file']).'/'.$r->Options['FontFamily']); + } else { + $r->Options['FontFamily'] = TCPDF_FONTS::addTTFfont($FontFile); + } if(substr($r->Options['Font'],-1)=='i') { $r->Options['FontStyle']='I'; $r->Options['FontFamily']=substr($r->Options['Font'],0,-1); @@ -474,22 +481,22 @@ } case 'Club3': if(!isset($Text)) { - if($MyRow->CoId2 != 0) { + if($MyRow->CoId3 != 0) { switch ($Element->IceContent) { case 'NocCaps-ClubCamel': - $Text = array($MyRow->NationCode . ' ' . $MyRow->Nation); + $Text = array($MyRow->NationCode3 . ' ' . $MyRow->Nation3); break; case 'NocCaps-ClubCaps': - $Text = array($MyRow->NationCode . ' ' . $MyRow->NationCaps); + $Text = array($MyRow->NationCode3 . ' ' . $MyRow->NationCaps3); break; case 'NocCaps': - $Text = array($MyRow->NationCode); + $Text = array($MyRow->NationCode3); break; case 'ClubCamel': - $Text = array($MyRow->Nation); + $Text = array($MyRow->Nation3); break; case 'ClubCaps': - $Text = array($MyRow->NationCaps); + $Text = array($MyRow->NationCaps3); break; } } else { @@ -534,6 +541,7 @@ case '': case 'Cardinal': $Text=array($MyRow->Rank); break; case 'Ordinal': $Text=array(ordinal($MyRow->Rank)); break; + case 'Roman': $Text=array(inttoRoman($MyRow->Rank)); break; } } case 'FinalRanking': @@ -542,6 +550,7 @@ case '': case 'Cardinal': $Text=array($MyRow->RankFinal); break; case 'Ordinal': $Text=array(ordinal($MyRow->RankFinal)); break; + case 'Roman': $Text=array(inttoRoman($MyRow->RankFinal)); break; } } case 'WRank': @@ -625,8 +634,8 @@ } else { $pdf->setFontSpacing(0); } - $pdf->SetFont($Element->Options['FontFamily'], $Element->Options['FontStyle'], $Element->Options['Size']); - } + $pdf->SetFont($Element->Options['FontFamily'], $Element->Options['FontStyle'], $Element->Options['Size']); + } $Fill=false; $WhiteText=false; $BlackText=false; @@ -987,10 +996,3 @@ function getSystemMemInfo() { return $meminfo; } -function ordinal($number) { - $ends = array('th','st','nd','rd','th','th','th','th','th','th'); - if ((($number % 100) >= 11) && (($number%100) <= 13)) - return $number. 'th'; - else - return $number. $ends[$number % 10]; -} diff --git a/src/Accreditation/CommonCard.php b/src/Accreditation/CommonCard.php index 326a332b..e25fec64 100644 --- a/src/Accreditation/CommonCard.php +++ b/src/Accreditation/CommonCard.php @@ -53,7 +53,7 @@ // EnBadgePrinted contiene data e ora della stampa del badge... // quindi sono da recuperare quelli che hanno la data nulla oppure // oppure quelli la cui data di stampa è anteriore alla foto inserita - $Where[] = ' AND (EnBadgePrinted is NULL or EnBadgePrinted=0 '.(empty($_REQUEST['PrintPhoto']) ? '' : 'or PhPhotoEntered is null or EnBadgePrinted < PhPhotoEntered ').') '; + $Where[] = ' AND (EnBadgePrinted is NULL or EnBadgePrinted=0 '.(empty($_REQUEST['PrintPhoto']) ? '' : 'or PhPhotoEntered is null ').') '; } if(!empty($_REQUEST['HasPlastic'])) { $Where[] = " AND aextra.EdExtra='1' and aextra.EdEmail!='1' "; diff --git a/src/Accreditation/ConfirmPrinted.php b/src/Accreditation/ConfirmPrinted.php index b0deb35f..2a624952 100644 --- a/src/Accreditation/ConfirmPrinted.php +++ b/src/Accreditation/ConfirmPrinted.php @@ -40,7 +40,7 @@ $SQL="update Entries set EnBadgePrinted='000-00-00', EnTimestamp=EnTimestamp where EnId in ($ENIDS)"; if($_SESSION['AccBooth']) { // we need to log every single Entry... - $q=safe_r_sql("select EnCode, EnIocCode, EnDivision, ToCode from Entries inner join Tournament on EnTournament=ToId where EnId in (($ENIDS)"); + $q=safe_r_sql("select EnCode, EnIocCode, EnDivision, ToCode from Entries inner join Tournament on EnTournament=ToId where EnId in ($ENIDS)"); while($r=safe_fetch($q)) { LogAccBoothQuerry("update Entries set EnBadgePrinted='0000-00-00', EnTimestamp=EnTimestamp diff --git a/src/Accreditation/Fun_AJAX_AccreditationPicture.js b/src/Accreditation/Fun_AJAX_AccreditationPicture.js index 440fac8c..1ea8b6cf 100644 --- a/src/Accreditation/Fun_AJAX_AccreditationPicture.js +++ b/src/Accreditation/Fun_AJAX_AccreditationPicture.js @@ -47,19 +47,22 @@ function selectedAthlete(clickObj) { if(typeof window.BigPicture != 'undefined') { window.BigPicture.refresh(clickObj.id); } + if(cardsByCat[searchTour]!==undefined && cardsByCat[searchTour][searchCat]!== undefined) { + $('#accreditation-number').val(searchTour+'|'+cardsByCat[searchTour][searchCat]); + } if(XMLRoot.getElementsByTagName('pic').item(0).firstChild.data!='data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==') { document.getElementById("ManBlock").style.display=''; - if(cardsByCat[searchTour]!==undefined && cardsByCat[searchTour][searchCat]!== undefined) { - $('#accreditation-number').val(searchTour+'|'+cardsByCat[searchTour][searchCat]); - } } else { document.getElementById("ManBlock").style.display='none'; document.getElementById("confirm-button").style.display='none'; } - + document.getElementById("PrnBlock").style.display=''; if(document.getElementById("stop-button").style.display != '') { document.getElementById("start-button").style.display = ''; } + } else { + document.getElementById("ManBlock").style.display='none'; + document.getElementById("PrnBlock").style.display='none'; } } catch(e) { @@ -74,6 +77,7 @@ function selectedAthlete(clickObj) { } function searchAthletes() { + sesNames(); var XMLHttp=CreateXMLHttpRequestObject(); if (XMLHttp) { try { @@ -83,7 +87,8 @@ function searchAthletes() { +"&athlete="+($("#x_Athlete").is(":checked") ? 1 : 0) +"&noprint="+($("#x_NoPrint").is(":checked") ? 1 : 0) +"&noacc="+($("#x_noAcc").is(":checked") ? 1 : 0) - +"&nophoto="+($("#x_noPhoto").is(":checked") ? 1 : 0); + +"&nophoto="+($("#x_noPhoto").is(":checked") ? 1 : 0) + +"&tobeprinted="+($("#x_2BPrinted").is(":checked") ? 1 : 0); var srcTours=document.querySelectorAll('.x_Tours'); if(srcTours.length>0) { for(var i=0; i< srcTours.length; i++) { @@ -147,12 +152,23 @@ function searchAthletes() { td.innerHTML=XmlRow.getAttribute('ath'); newRow.appendChild(td); var td = document.createElement('td'); + td.innerHTML=XmlRow.getAttribute('bib'); + newRow.appendChild(td); + var td = document.createElement('td'); td.innerHTML=XmlRow.getAttribute('cat'); newRow.appendChild(td); var td = document.createElement('td'); td.innerHTML=XmlRow.getAttribute('team'); newRow.appendChild(td); - + var td = document.createElement('td'); + td.innerHTML=XmlRow.getAttribute('tour'); + newRow.appendChild(td); + var td = document.createElement('td'); + td.innerHTML=XmlRow.getAttribute('sess'); + newRow.appendChild(td); + var td = document.createElement('td'); + td.innerHTML=''; + newRow.appendChild(td); document.getElementById("ListBody").appendChild(newRow); } } @@ -168,6 +184,25 @@ function searchAthletes() { } } +function sesNames() { + if($('.x_Tours:checked').length == 1) { + let tId = $('.x_Tours:checked').attr('tourid'); + $.each(sessByToId, (index, item) => { + if(item[tId] != undefined) { + $('#lblSess'+index).html(' - '+item[tId]); + $('#sesBlock'+index).show(); + } else { + $('#sesBlock'+index).hide(); + } + }); + } else { + $('.x_Sessions').each((index, item) => { + $('#lblSess'+index).html(''); + $('#sesBlock'+index).show(); + }); + } +} + function sendPicture(encodedPict) { var XMLHttp=CreateXMLHttpRequestObject(); if (XMLHttp) { @@ -265,6 +300,12 @@ function printAccreditation() { document.getElementById("confirm-button").style.display=''; } +function printAccreditationAuto(printer) { + let ToId=($("#accreditation-number").val().split('|'))[0]; + let CardNumber=($("#accreditation-number").val().split('|'))[1]; + $.getJSON('PrintAcc.php?toPrint='+encodeURIComponent(ROOT_DIR+'Accreditation/CardCustom.php?CardType=A&ToString=1&ToId='+ToId+'&CardNumber='+CardNumber+'&Entries[]='+$("#selId").val())+'&printer='+printer); +} + function ConfirmPrinted() { var CardNumber=document.getElementById("accreditation-number").value; var XMLHttp=CreateXMLHttpRequestObject(); @@ -291,6 +332,7 @@ function ConfirmPrinted() { alert('Error'); } else { document.getElementById("confirm-button").style.display='none'; + searchAthletes(); } } catch(e) { } diff --git a/src/Accreditation/IdCardEdit.php b/src/Accreditation/IdCardEdit.php index 705200aa..256f4347 100644 --- a/src/Accreditation/IdCardEdit.php +++ b/src/Accreditation/IdCardEdit.php @@ -430,6 +430,12 @@ function getFieldPos($r) { global $CFG, $CardType, $CardNumber, $CardFile; + static $Fonts=''; + if(empty($Fonts)) { + foreach(getFonts() as $file => $font) { + $Fonts.=''; + } + } $ret=''); - tmpRow.append(''); + tmpRow.append(''); //Device IDs tmpRow.append(''); tmpRow.append(''); diff --git a/src/Api/ISK-NG/Devices.php b/src/Api/ISK-NG/Devices.php index cd744d34..ad05d490 100644 --- a/src/Api/ISK-NG/Devices.php +++ b/src/Api/ISK-NG/Devices.php @@ -69,6 +69,7 @@ 'isPro' => ($_SESSION["UseApi"] === ISK_NG_PRO_CODE), 'usePersonal' => ($UsePersonalDevices ? true : false), 'tourCode' => $_SESSION["TourCode"], + 'reqAppVersion' => reqAppVersion, 'SocketIP'=>getModuleParameter('ISK-NG', 'SocketIP', gethostbyname($_SERVER['HTTP_HOST'])), 'SocketPort'=>getModuleParameter('ISK-NG', 'SocketPort', '12346'), 'scheduleOpts' => array_values($scheduleOpts), diff --git a/src/Api/ISK-NG/FieldMonitor.js b/src/Api/ISK-NG/FieldMonitor.js index 927f1bf2..183cf450 100644 --- a/src/Api/ISK-NG/FieldMonitor.js +++ b/src/Api/ISK-NG/FieldMonitor.js @@ -188,7 +188,7 @@ function devicesRenderer(data) { window.sessionStorage.setItem('selectedGroups',JSON.stringify(selectedGroups)); } let tmpRow = $(''); - tmpRow.append(''); + tmpRow.append(''); tmpRow.append(''); // we need to select the distance, which is now an array! let distances = ''; @@ -257,7 +257,7 @@ function devicesRenderer(data) { if ($('#deviceTable_' + block.group).length == 0) { let zoomClass = window.sessionStorage.getItem('viewSize'+block.group) || ''; $('#DeviceGroupsContainers').append('
- + + - + +
@@ -540,6 +546,7 @@ function getFieldPos($r) { $txt=''; } case 'FinalRanking': @@ -547,6 +554,7 @@ function getFieldPos($r) { $txt=''; } case 'WRank': @@ -625,31 +633,7 @@ function getFieldPos($r) {

' + this.tApp + '' + this.tAppVersion + '' + this.tAppVersion + '' + this.tCode + '' + this.tDevice + '
' + gElement.gName + '' + gElement.gName + '' + gElement.gSession + '
' + - '' + + '' + '
' + gName + '
' + gName + '
'); } somethingChanged = true; @@ -366,4 +366,19 @@ function devicesRenderer(data) { } } timeOutSetting(); +} + +function setViewSize(grpId, increase) { + let newClass = ''; + newClass = $('#deviceList_'+grpId).hasClass('size') ? (increase ? 'sizeL0' : 'sizeS0') : newClass; + newClass = $('#deviceList_'+grpId).hasClass('sizeS0') ? (increase ? 'size' : 'sizeS1') : newClass; + newClass = $('#deviceList_'+grpId).hasClass('sizeS1') ? (increase ? 'sizeS0' : 'sizeS2') : newClass; + newClass = $('#deviceList_'+grpId).hasClass('sizeS2') ? (increase ? 'sizeS1' : 'sizeS2') : newClass; + newClass = $('#deviceList_'+grpId).hasClass('sizeL0') ? (increase ? 'sizeL1' : 'size') : newClass; + newClass = $('#deviceList_'+grpId).hasClass('sizeL1') ? (increase ? 'sizeL2' : 'sizeL0') : newClass; + newClass = $('#deviceList_'+grpId).hasClass('sizeL2') ? (increase ? 'sizeL2' : 'sizeL1') : newClass; + newClass = (newClass === '' ? (increase ? 'sizeL0' : 'sizeS0') : newClass); + + $('#deviceList_'+grpId).removeClass('size sizeS0 sizeS1 sizeS2 sizeL0 sizeL1 sizeL2').addClass(newClass); + window.sessionStorage.setItem('viewSize'+grpId, newClass); } \ No newline at end of file diff --git a/src/Api/ISK-NG/FieldMonitor.php b/src/Api/ISK-NG/FieldMonitor.php index 797fb408..974efe60 100644 --- a/src/Api/ISK-NG/FieldMonitor.php +++ b/src/Api/ISK-NG/FieldMonitor.php @@ -31,7 +31,7 @@ //Socket Header echo ''; -echo ''; +echo ''; if($_SESSION["UseApi"] === ISK_NG_LIVE_CODE) { echo '' . '' . diff --git a/src/Api/ISK-NG/Lib.php b/src/Api/ISK-NG/Lib.php index 17c1266c..285131f7 100644 --- a/src/Api/ISK-NG/Lib.php +++ b/src/Api/ISK-NG/Lib.php @@ -520,7 +520,7 @@ function DoImportData($Options=array(), $IsSendall=0, &$UpdatedEntries=[]) { IF(TfXNineChars{$Options['dist']}='',IF(TfXNineChars='',ToXNineChars,TfXNineChars),TfXNineChars{$Options['dist']}) as XNineChars, EnIndClEvent, EnTeamClEvent, EnIndFEvent, EnTeamFEvent+EnTeamMixEvent as EnTeamFinals, group_concat(concat_ws(':', IskDtEndNo, IskDtArrowstring) separator '|') as IskArrowstring, - ToElabTeam!=127 as MakeTeams, ToLocRule + ToElabTeam!=127 as MakeTeams, ToLocRule, QuConfirm & ".pow(2, $Options['dist']).">0 as StopScore FROM Qualifications INNER JOIN Entries ON QuId=EnId and EnTournament={$CompId} INNER JOIN Tournament ON ToId=EnTournament @@ -541,6 +541,14 @@ function DoImportData($Options=array(), $IsSendall=0, &$UpdatedEntries=[]) { ); $q=safe_r_sql($SQL); while($r=safe_fetch($q)) { + if($r->StopScore) { + // scorecard validated, do not accept anything: deletes the data and skip to next record + $Update = "DELETE FROM IskData + WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' + AND IskDtTargetNo='{$r->QuTargetNo}' AND IskDtDistance={$Options['dist']}"; + safe_w_SQL($Update); + continue; + } $arrowString = str_pad($r->Arrowstring,$r->DIArrows*$r->DIEnds); foreach(explode('|', $r->IskArrowstring) as $IskEnds) { list($IskEnd,$IskString)=explode(':', $IskEnds); @@ -698,7 +706,7 @@ function DoImportData($Options=array(), $IsSendall=0, &$UpdatedEntries=[]) { if($IskSequence['subtype']=='R') { require_once('Modules/RoundRobin/Lib.php'); $fSes=$IskSequence['session']; - $SQL="SELECT if(EvGoldsChars='', ToGoldsChars, EvGoldsChars) as GoldsChars, if(EvXNineChars='', ToXNineChars, EvXNineChars) as XNineChars, RrMatchEvent, RrMatchMatchNo, RrMatchTeam, RrMatchLevel, RrMatchGroup, RrMatchRound, RrMatchConfirmed, + $SQL="SELECT if(EvGoldsChars='', ToGoldsChars, EvGoldsChars) as GoldsChars, if(EvXNineChars='', ToXNineChars, EvXNineChars) as XNineChars, RrMatchEvent, RrMatchMatchNo, RrMatchTeam, RrMatchLevel, RrMatchGroup, RrMatchRound, RrMatchConfirmed as StopScore, RrMatchArrowstring as Arrowstring, RrMatchTiebreak as TieBreak, RrMatchTbClosest as TbClosest, RrMatchTbDecoded as TbDecoded, IskDtMatchNo, group_concat(concat_ws(':', IskDtEndNo, IskDtArrowstring) separator '|') as IskArrowstring, max(IskDtIsClosest) as IskClosest, RrLevArrows as arrows, RrLevEnds as ends, RrLevSO as so, RrLevBestRankMode @@ -714,6 +722,13 @@ function DoImportData($Options=array(), $IsSendall=0, &$UpdatedEntries=[]) { group by IskDtTournament, IskDtMatchNo, IskDtEvent, IskDtTeamInd, IskDtType, IskDtTargetNo, IskDtDistance, IskDtSession"; $q=safe_r_SQL($SQL); while($r=safe_fetch($q)){ + if($r->StopScore) { + // score has been confirmed so we remove the data and skip to next record + $Update = "DELETE FROM IskData + WHERE IskDtTournament={$CompId} AND IskDtMatchNo={$r->IskDtMatchNo} AND IskDtEvent='{$r->RrMatchEvent}' AND IskDtTeamInd={$IndTeam} AND IskDtType='M'"; + safe_w_SQL($Update); + continue; + } foreach(explode('|', $r->IskArrowstring) as $IskEnds) { list($IskEnd,$IskString)=explode(':', $IskEnds); @@ -755,7 +770,8 @@ function DoImportData($Options=array(), $IsSendall=0, &$UpdatedEntries=[]) { $tblHead = ($IndTeam==0 ? 'Fin' : 'Tf'); $SQL="SELECT if(EvGoldsChars='', ToGoldsChars, EvGoldsChars) as GoldsChars, if(EvXNineChars='', ToXNineChars, EvXNineChars) as XNineChars, FSEvent, FSMatchNo, FSTeamEvent, {$tblHead}Arrowstring as Arrowstring, {$tblHead}Tiebreak as TieBreak, {$tblHead}TbClosest as TbClosest, {$tblHead}TbDecoded as TbDecoded, GrPhase, - group_concat(concat_ws(':', IskDtEndNo, IskDtArrowstring) separator '|') as IskArrowstring, max(IskDtIsClosest) as IskClosest + group_concat(concat_ws(':', IskDtEndNo, IskDtArrowstring) separator '|') as IskArrowstring, max(IskDtIsClosest) as IskClosest, + {$tblHead}Confirmed as StopScore FROM FinSchedule inner join Events on EvTournament=FSTournament and EvTeamEvent=FSTeamEvent and EvCode=FSEvent inner join Tournament on ToId=FSTournament @@ -772,6 +788,14 @@ function DoImportData($Options=array(), $IsSendall=0, &$UpdatedEntries=[]) { $SQL.=" group by IskDtTournament, IskDtMatchNo, IskDtEvent, IskDtTeamInd, IskDtType, IskDtTargetNo, IskDtDistance, IskDtSession"; $q=safe_r_SQL($SQL); while($r=safe_fetch($q)){ + if($r->StopScore) { + // SCORE HAS BEEN CONFIRMED SO + // empty the whole match lines and skip to next record + $Update = "DELETE FROM IskData + WHERE IskDtTournament={$CompId} AND IskDtMatchNo={$r->FSMatchNo} AND IskDtEvent='{$r->FSEvent}' AND IskDtTeamInd={$IndTeam} AND IskDtType='M'"; + safe_w_SQL($Update); + continue; + } $obj=getEventArrowsParams($r->FSEvent,$r->GrPhase,$r->FSTeamEvent,$CompId); $r->so=$obj->so; // will be used later on in UpdateNgArrowString() $r->startArrow = 10000; diff --git a/src/Api/ISK-NG/ManualDataDownload.js b/src/Api/ISK-NG/ManualDataDownload.js new file mode 100644 index 00000000..d3089b2b --- /dev/null +++ b/src/Api/ISK-NG/ManualDataDownload.js @@ -0,0 +1,51 @@ +var lastDeviceCode = ''; + +$(function() { + $('#runningDeviceId').html(lastDeviceCode); + $('#data').focus(); + $("#data").on('keyup', function (e) { + if (e.key === 'Enter') { + sendMsg(); + } + }); + +}); + +function sendMsg() { + if(isJsonString($('#data').val())) { + let tmpPayload = JSON.parse($('#data').val()); + if(tmpPayload.action === 'handshake') { + lastDeviceCode = tmpPayload.uuid; + } else { + if(tmpPayload.device === undefined) { + tmpPayload.device = lastDeviceCode; + } else { + lastDeviceCode = tmpPayload.device; + } + sendPayload(tmpPayload); + } + $('#runningDeviceId').html(lastDeviceCode); + $('#qrLastRead').html(new Date().toLocaleTimeString() + + ' - ' + + (tmpPayload.action === 'handshake' ? 'Device' : (tmpPayload.action === 'sendall' ? 'Scorecard' : tmpPayload.action))); + $('#data').val(''); + $('#data').focus(); + } else { + $.alert({ + title: Error, + content: WrongData, + boxWidth: '30%', + type: 'red', + useBootstrap: false, + }); + } +} + +function isJsonString(str) { + try { + JSON.parse(str); + } catch (e) { + return false; + } + return true; +} diff --git a/src/Api/ISK-NG/ManualDataDownload.php b/src/Api/ISK-NG/ManualDataDownload.php new file mode 100644 index 00000000..4dcddc21 --- /dev/null +++ b/src/Api/ISK-NG/ManualDataDownload.php @@ -0,0 +1,54 @@ +ROOT_DIR); +} +checkACL(AclISKServer, AclReadWrite); + +$PAGE_TITLE=get_text('ISK-GetQRData'); +$IncludeJquery = true; +//$IncludeFA = true; + +$JS_SCRIPT=array( + phpVars2js(array( + 'isLive' => ($_SESSION["UseApi"] === ISK_NG_LIVE_CODE and module_exists('ISK-NG_Live')), + 'tourCode' => $_SESSION["TourCode"], + 'SocketIP'=>getModuleParameter('ISK-NG', 'SocketIP', gethostbyname($_SERVER['HTTP_HOST'])), + 'SocketPort'=>getModuleParameter('ISK-NG', 'SocketPort', '12346'), + 'Error' => get_text('Error'), + 'WrongData' => get_text('WrongData', 'Errors') + )), + ($_SESSION["UseApi"] == ISK_NG_LIVE_CODE ? '' : ''), + '', + '', +); + +include('Common/Templates/head.php'); + +echo '
' . $PAGE_TITLE . '
' . $PAGE_TITLE . '
' . get_text('ISK-ConnectionStatus', 'Api') . '
'. + ''; +echo ''. + (($_SESSION["UseApi"] === ISK_NG_LIVE_CODE) ? + ''. + ''. + '' + : '' + ). + ''; +echo ''. + (($_SESSION["UseApi"] === ISK_NG_LIVE_CODE) ? + ''. + ''. + '' + : '' + ). + ''; +echo ''. + ''. + '
' . $PAGE_TITLE. '
' . get_text('ISK-ConnectionStatus', 'Api') . '' . get_text('Masters', 'Api') . '' . get_text('ISK-DeviceId', 'Api') . '
DISCONNECTED
'; + +include('Common/Templates/tail.php'); \ No newline at end of file diff --git a/src/Api/ISK-NG/README.md b/src/Api/ISK-NG/README.md new file mode 100644 index 00000000..b348ab28 --- /dev/null +++ b/src/Api/ISK-NG/README.md @@ -0,0 +1,16 @@ +# Ianseo Scorekeeper NG + +## Debug + +If you are instructed to, please do the following to submit debug information to the developers: + +- create a folder called "log" (all lowercase) inside the the ISK-NG folder and make it world-writeable +- open the competition as usual, then add `?ianseo-debug-session` (including the "**?**") at the URL + + - Ianseo will turn "brownish" to show it is in debug mode + - only the browser where you modified the URL is in debug mode, letting other connected devices to behave normally + - to go back to the usual bluish ianseo, just close the competition or quit the browser (or use a different browser) + +This procedure will start log the comunication between ianseo and the devices into a file called `messages-YYYY-MM-DD.log` where Y, M and D are current year, month and day + +You will then need to send the file(s) of the problematic day(s) with the export of the competition to isk@ianseo.net \ No newline at end of file diff --git a/src/Api/ISK-NG/Results-action.php b/src/Api/ISK-NG/Results-action.php index efea6f15..32eced49 100644 --- a/src/Api/ISK-NG/Results-action.php +++ b/src/Api/ISK-NG/Results-action.php @@ -66,7 +66,7 @@ $_REQUEST['groups']['g'.$Group]['s'] = $Sequence['session']; $_REQUEST['groups']['g'.$Group]['seq'] = $Sequence['IskKey']; if(!in_array('d', $_REQUEST['groups']['g'.$Group]) OR !in_array($_REQUEST['groups']['g'.$Group]['d'], $Sequence['distance'])) { - $_REQUEST['groups']['g' . $Group]['d'] = $Sequence['distance'][0]; + $_REQUEST['groups']['g' . $Group]['d'] = ($Sequence['distance'][0]??[]); } } } @@ -94,7 +94,6 @@ case 'setDNF': $EnId = intval($_REQUEST['archerId'] ?? 0); // get the max hits for that distance - $QuHits = 0; $QuDistHits = 0; $Dist = intval($_REQUEST['d'] ?? 1); $q = safe_r_sql("select DiEnds*DiArrows as MaxArrows @@ -103,7 +102,6 @@ inner join DistanceInformation on DiTournament=EnTournament and DiSession=QuSession and DiDistance={$Dist} where QuId={$EnId}"); if ($r = safe_fetch($q)) { - $QuHits = $r->TotalArrows; $QuDistHits = $r->MaxArrows; } safe_w_sql("update Qualifications set QuIrmType=5, QuD{$Dist}Hits=$QuDistHits, QuHits=QuD1Hits+QuD2Hits+QuD3Hits+QuD4Hits+QuD5Hits+QuD6Hits+QuD7Hits+QuD8Hits where QuId={$EnId}"); diff --git a/src/Api/ISK-NG/Results.js b/src/Api/ISK-NG/Results.js index 3b37e718..85eeeeae 100644 --- a/src/Api/ISK-NG/Results.js +++ b/src/Api/ISK-NG/Results.js @@ -98,9 +98,9 @@ function devicesRenderer(data) { somethingChanged = true; if(selectedGroups && selectedGroups['g' + gElement.gId] && (selectedGroups['g' + gElement.gId].seq != gElement.gSequence || selectedGroups['g' + gElement.gId].d != SelectedDistance)) { // it is a new sequence so resets the selections - SelectedDistance=(gElement.gDistances.length>1 ? 0 : gElement.gDistances[0].value); + SelectedDistance=(gElement.gDistances.length>1 ? 0 : (gElement.gDistances[0] ? gElement.gDistances[0].value : 0)); SelectedEnd=1; - selectedGroups['g' + gElement.gId].d=(gElement.gDistances.length>1 ? 0 : gElement.gDistances[0].value); + selectedGroups['g' + gElement.gId].d=(gElement.gDistances.length>1 ? 0 : (gElement.gDistances[0] ? gElement.gDistances[0].value : 0)); selectedGroups['g' + gElement.gId].e=1; selectedGroups['g' + gElement.gId].seq=gElement.gSequence; window.sessionStorage.setItem('selectedGroups',JSON.stringify(selectedGroups)); @@ -548,7 +548,9 @@ function runPartialDone(gId, d, e, doForce = false) { id: catList, status: selectedGroups } - notifyControllers(BCastPartialImport, {importPartial: catList, g: gId, d: d, e: e }); + if(isLive) { + notifyControllers(BCastPartialImport, {importPartial: catList, g: gId, d: d, e: e }); + } $.post('Results-action.php', form, (data) => { devicesRenderer(data); if (isLive) { @@ -574,7 +576,9 @@ function partialImport(obj) { status: selectedGroups } curPartialInput.set(form.id+'|'+form.g+'|'+form.d+'|'+form.e, Date.now()) - notifyControllers(BCastPartialImport, {importPartial: [form.id], g: gId, d: form.d, e: form.e }); + if(isLive) { + notifyControllers(BCastPartialImport, {importPartial: [form.id], g: gId, d: form.d, e: form.e}); + } $.post('Results-action.php', form, (data) => { devicesRenderer(data); if(isLive) { @@ -787,7 +791,9 @@ function removeDetails(obj) { $.get('Devices-action.php', form, (data2) => { if (!data2.error) { notifyDevices(data2.json); - notifyControllers(); + if(isLive) { + notifyControllers(); + } } }); } @@ -831,7 +837,7 @@ function setDns(obj, archerID, doSet) { "deviceId": $(obj).closest('div.resTarget').attr('dev'), } $.get('Devices-action.php', form, (data2) => { - if (!data2.error) { + if (!data2.error && isLive) { notifyControllers(); } }); @@ -862,7 +868,7 @@ function setDnf(obj, archerID, doSet) { "deviceId": $(obj).closest('div.resTarget').attr('dev'), } $.get('Devices-action.php', form, (data2) => { - if (!data2.error) { + if (!data2.error && isLive) { notifyControllers(); } }); diff --git a/src/Api/ISK-NG/config.php b/src/Api/ISK-NG/config.php index e5bdf18a..4fe1991f 100644 --- a/src/Api/ISK-NG/config.php +++ b/src/Api/ISK-NG/config.php @@ -5,6 +5,11 @@ require_once('Common/Lib/CommonLib.php'); require_once(__DIR__.'/config_defines.php'); +const reqAppVersion = '1.4.1'; + +define('NG_DEBUG_LOG', ($CFG->DEBUG??false) and is_dir(__DIR__.'/log') and is_writable(__DIR__.'/log')); +define('NG_DEBUG_LOGFILE', __DIR__.'/log/messages-'.date('Y-m-d').'.log'); + function getQrConfig($DEVICE, $cachedData=false, $Lightmode=false, $Force=false) { if(!$cachedData) { // rebuild and stores the specific configuration for this device diff --git a/src/Api/ISK-NG/index.php b/src/Api/ISK-NG/index.php index a47c0566..50b5c9e2 100644 --- a/src/Api/ISK-NG/index.php +++ b/src/Api/ISK-NG/index.php @@ -1,6 +1,6 @@ true); @@ -25,13 +25,10 @@ // This is in case we have several responses to manage as the result of a single call! $MultipleRes=[]; -if($CFG->DEBUG??false) { - if(is_dir(__DIR__.'/log') and is_writable(__DIR__.'/log')) { - $ErrorLog=__DIR__.'/log/messages-'.date('Y-m-d').'.log'; - error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'GET', 'data' => $data])."\n", 3, $ErrorLog); - error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'HEADERS', 'data' => apache_request_headers()])."\n", 3, $ErrorLog); - chmod($ErrorLog, 0666); - } +if(NG_DEBUG_LOG) { + error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'GET', 'data' => $data])."\n", 3, NG_DEBUG_LOGFILE); + error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'HEADERS', 'data' => apache_request_headers()])."\n", 3, NG_DEBUG_LOGFILE); + chmod(NG_DEBUG_LOGFILE, 0666); } try { @@ -98,29 +95,23 @@ $Json['responses'][] = $altRes; } } catch(Throwable $exception) { - if($CFG->DEBUG??false) { - if(is_dir(__DIR__.'/log') and is_writable(__DIR__.'/log')) { - error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'ERROR', 'data' => $exception->getMessage()])."\n", 3, $ErrorLog); - } + if(NG_DEBUG_LOG) { + error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'ERROR', 'data' => $exception->getMessage()])."\n", 3, NG_DEBUG_LOGFILE); } $Json['error'] = true; $Json['errorMsg'] = 'Throwable error!'; } catch(Error $exception) { - if($CFG->DEBUG??false) { - if(is_dir(__DIR__.'/log') and is_writable(__DIR__.'/log')) { - error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'ERROR', 'data' => $exception->getMessage()])."\n", 3, $ErrorLog); - } + if(NG_DEBUG_LOG) { + error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'ERROR', 'data' => $exception->getMessage()])."\n", 3, NG_DEBUG_LOGFILE); } $Json['error'] = true; $Json['errorMsg'] = 'Fatal error!'; } -if($CFG->DEBUG??false) { - if(is_dir(__DIR__.'/log') and is_writable(__DIR__.'/log')) { - error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'SEND', 'data' => $Json])."\n", 3, $ErrorLog); - } +if(NG_DEBUG_LOG) { + error_log(json_encode(['time'=>date('Y-m-d H:i:s'), 'mode'=>'SEND', 'data' => $Json])."\n", 3, NG_DEBUG_LOGFILE); } safe_close(); diff --git a/src/Api/ISK-NG/isk.css b/src/Api/ISK-NG/isk.css index 68d6c38b..38615cab 100644 --- a/src/Api/ISK-NG/isk.css +++ b/src/Api/ISK-NG/isk.css @@ -73,7 +73,7 @@ input[type=button] {margin: 0.2rem} .charging {background-color: lightgreen;} .fullCharged {font-weight: bold; color: darkgreen; font-size: 125%} .charging.fullCharged {font-weight: bold; background-color: darkgreen; color: white; font-size: 125%} -.emptyBattery {background-color: orange;} +.emptyBattery, .versionTooLow {background-color: orange;} /** Socket **/ #ctrConnStatus { diff --git a/src/Api/ISK-NG/menu.php b/src/Api/ISK-NG/menu.php index ff47a484..ee5f8ef0 100644 --- a/src/Api/ISK-NG/menu.php +++ b/src/Api/ISK-NG/menu.php @@ -12,6 +12,9 @@ $ret['API'][] = MENU_DIVIDER; } $ret['API'][] = get_text('ISK-AppQrCode', 'Api') . '|' . $CFG->ROOT_DIR . 'Api/ISK-NG/QRcodes.php|||QrCode'; + if ($_SESSION['UseApi'] == ISK_NG_LIVE_CODE and module_exists('ISK-NG_Live')) { + $ret['API'][] = get_text('ISK-GetQRData') . '|' . $CFG->ROOT_DIR . 'Api/ISK-NG/ManualDataDownload.php'; + } if($_SESSION['UseApi']!=ISK_NG_LITE_CODE and getModuleParameter('ISK-NG', 'UsePersonalDevices')) { $ret['API'][] = get_text('TargetRequests-Printout', 'Api') . '|' . $CFG->ROOT_DIR . 'Api/ISK-NG/TargetRequests.php'; } else if ($_SESSION['UseApi']==ISK_NG_LITE_CODE) { diff --git a/src/Api/ISK-NG/v1/ping.php b/src/Api/ISK-NG/v1/ping.php index a6c1a148..c414a798 100644 --- a/src/Api/ISK-NG/v1/ping.php +++ b/src/Api/ISK-NG/v1/ping.php @@ -1,5 +1,7 @@ device == 'ngSocket') { +if(!isset($req->device)) { + $res = 'pong'; +} elseif ($req->device == 'ngSocket') { $res['ianseo'] = array( 'UUID' => GetParameter('UUID2'), 'Version' => ProgramVersion, diff --git a/src/Api/ISK/AjaxAddGroup.php b/src/Api/ISK/AjaxAddGroup.php deleted file mode 100644 index fd4e8b50..00000000 --- a/src/Api/ISK/AjaxAddGroup.php +++ /dev/null @@ -1,65 +0,0 @@ - $Phases) { - $SesType=$SType; - foreach($Phases as $SPhase => $Targets) { - $Phase=$SPhase; - foreach($Targets as $tgt => $group) { - $group=preg_replace('/[^0-9a-z_ -]/sim', '', $group); - if(!$Session) $Session=substr($tgt,0,1); - if(!$Group) $Group=$group; - if(isset($_REQUEST['del'])) { - safe_w_sql("delete from TargetGroups - where TgTournament={$_SESSION['TourId']} and TgTargetNo='$tgt'"); - } else { - safe_w_sql("insert into TargetGroups - set TgTournament={$_SESSION['TourId']}, - TgSession=".substr($tgt,0,1).", - TgSesType='".$SesType.($SPhase ? $SPhase : '')."', - TgTargetNo='$tgt', - TgGroup=".StrSafe_DB($group)." - on duplicate key update - TgGroup=".StrSafe_DB($group)." - "); - } - } - } -} - - -header('Content-Type: text/xml'); - -print '' . "\n"; -print '0' . "\n"; - -if(isset($_REQUEST['new'])) { - require_once('../lib.php'); - - switch($SesType) { - case 'Q': - $q=safe_r_sql(getSesSQL('Q', $Session)); - $SesRow=safe_fetch($q); - $SesRow->Range=Range($SesRow->SesFirstTarget, $SesRow->SesTar4Session+$SesRow->SesFirstTarget-1); - break; - case 'E': - $q=safe_r_sql(getSesSQL('E', $Session, $Phase)); - $SesRow=safe_fetch($q); - $SesRow->Range=explode(',', $SesRow->SesTar4Session); - break; - } - - $ret=BuildGroups($SesType, $Session, $Phase, $SesRow->Range, $Group); - - echo ""; -} - -print '' . "\n"; - diff --git a/src/Api/ISK/AjaxDeleteRow.php b/src/Api/ISK/AjaxDeleteRow.php deleted file mode 100644 index 59192ff8..00000000 --- a/src/Api/ISK/AjaxDeleteRow.php +++ /dev/null @@ -1,21 +0,0 @@ -'; -print '0'; -echo ''; \ No newline at end of file diff --git a/src/Api/ISK/Anomalies.php b/src/Api/ISK/Anomalies.php deleted file mode 100644 index dd80d1d3..00000000 --- a/src/Api/ISK/Anomalies.php +++ /dev/null @@ -1,81 +0,0 @@ - get_text('MsgAreYouSure'), 'Anomalies' => 1)), - '', - '', - '', - '', -); - -$ONLOAD=' onload="ResultsInit()"'; // onunload="SetAutoImport(true)"'; - -include('Common/Templates/head.php'); - -echo ''; -echo ''; -echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; -echo ''; -echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; -echo ''; -echo ''; -echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; -echo ''; -echo ''; - echo ''; -echo ''; - -echo '
' . get_text('ISK-Anomalies', 'Api') . '
' . get_text('Session') . '' . get_text('Distance', 'Tournament') . '' . get_text('Volee', 'HTT') . ' ' . get_text('AutoImport', 'Api') . '' . get_text('LockToEnds', 'Api') . '
-
- ' . get_text('OnlyToday', 'Tournament') . ' -
- - -
'; - -// gets all the - -echo '
'; - -echo '
'; -foreach(array('G', 'R', 'O', 'B', 'C', 'Z', 'Y') as $Let) { - echo '
     '.get_text('Desc-Let-'.$Let, 'Api').'
'; -} -echo '
'; -echo ''; -include('Common/Templates/tail.php'); diff --git a/src/Api/ISK/ApiConfig.php b/src/Api/ISK/ApiConfig.php deleted file mode 100644 index 42a8f0c6..00000000 --- a/src/Api/ISK/ApiConfig.php +++ /dev/null @@ -1,44 +0,0 @@ - - '.get_text('ISK-ServerUrl','Api').' - - - - '; - $ISKServerUrlPIN=getModuleParameter('ISK', 'ServerUrlPin', ''); - $ConfigHtml.=' - '.get_text('ISK-ServerUrlPin','Api').' - - - '.get_text('ISK-ServerUrlPin','Help',$_SESSION["TourCode"].'|'.(empty($ISKServerUrlPIN) ? '____':$ISKServerUrlPIN)).' - - '; - if ($_REQUEST['api']=='pro') { - $ISKLicenseNumber=getModuleParameter('ISK', 'LicenseNumber', ''); - $ConfigHtml.=' - '.get_text('ISK-LicenseNumber','Api').' - - - - '; - /* - if(!$ISKLicenseNumber) { - $ISKLicenseVoucher=getModuleParameter('ISK', 'LicenseVoucher', ''); - $ConfigHtml.=' -
'.get_text('ISK-LicenseVoucher','Api').'
-
'.get_text('ISK-LicenseVoucherTip', 'Api').'
- - - - - '; - - } - */ - } -} diff --git a/src/Api/ISK/ApiGrouping.js b/src/Api/ISK/ApiGrouping.js deleted file mode 100644 index 80fbf0a0..00000000 --- a/src/Api/ISK/ApiGrouping.js +++ /dev/null @@ -1,177 +0,0 @@ -function AddGroup(obj) { - var Row=obj.parentNode.parentNode; - var Gruppo=document.getElementById('GrName').value; - if(Gruppo=='') return; - - var fields=''; - for(var n=2; n get_text('API-ConfirmDeleteRow', 'Api'))), - '', - '', - ); - -require_once('../lib.php'); - -include('Common/Templates/head.php'); - -echo ''; - -if($SesRow) { - echo ''; - echo ' - - - '; - echo ''; - foreach($SesRow->Range as $Target) echo ''; - echo ''; - - echo buildGroups($SesType, $Session, $ElPhase, $SesRow->Range); - - echo ''; - echo ''; - echo ''; - foreach($SesRow->Range as $Target) { - $tgtno=sprintf($tgt, $Target); - echo ''; - } - echo ''; - echo '
'.get_text('API-Group', 'Api').''.get_text('API-Targets', 'Api').'
'.($Target).'
add
'; -} - -include('Common/Templates/tail.php'); \ No newline at end of file diff --git a/src/Api/ISK/ConfigOptions.php b/src/Api/ISK/ConfigOptions.php deleted file mode 100644 index 6ccb3ae0..00000000 --- a/src/Api/ISK/ConfigOptions.php +++ /dev/null @@ -1,5 +0,0 @@ -getPageWidth()-$Width)/2; - } - if(!$Y) { - $Y=($pdf->getPageHeight()-$Height-3)/2; - } - - $pdf->SetFontSize(10); - - require_once('Common/Lib/Fun_Modules.php'); - - if(is_null($OptsU)) { - $OptsU=getModuleParameter('ISK', 'ServerUrl').$CFG->ROOT_DIR; // .'Api/ISK-Lite/'; - $OptsC=$_SESSION['TourCode']; - $tmpPin = getModuleParameter('ISK', 'ServerUrlPin'); - if(!empty($tmpPin)) { - $OptsC .= '|'.$tmpPin; - } - } - - $Opts=array('u' => $OptsU, 'c' => $OptsC); - if($Session) $Opts['s']=$Session; - if($Distance || ($Stage=="MI" || $Stage=="MT")) $Opts['d']=(int)$Distance; - if($Stage=="MI" || $Stage=="MT") { - $Opts['t']=$Target; - } else if($Target) { - $Opts['t'] = str_pad($Target, 3, '0', STR_PAD_LEFT); - } - if($Phase) $Opts['p']=$Phase; - if($Stage) $Opts['st']=$Stage; - - $text=json_encode($Opts); - - $Oldx=$pdf->getX(); - $Oldy=$pdf->getY(); - - require_once('Common/tcpdf/tcpdf_barcodes_2d.php'); - // create new barcode object - $barcodeobj = new TCPDF2DBarcode($text, 'QRCODE,L'); - $img=$barcodeobj->getBarcodePngData(); - - if($Individual and $Stage=='Q' and $Distance) { - // draws a white background square - $pdf->Rect($X, $Y, $Width, $Height, 'FD', array('all'=>array('color'=>100)), array(255)); - $pdf->Image('@'.$img, $X+($small? 1 : 2.5), $Y+($small? 1 : 2.5), $Width-($small? 2 : 5), $Height-($small? 2 : 5), 'PNG'); - - $pdf->SetFont($pdf->FontStd,'',8); - $pdf->StartTransform(); - // Rotate 20 degrees counter-clockwise centered by (70,110) which is the lower left corner of the rectangle - $pdf->setXY($X+$Width, $Y+$Height); - $pdf->Rotate(90, $X+$Width, $Y+$Height); - $pdf->MultiCell($Width, $Height, get_text('FlashCodeDistance','Api', ($DistName? $DistName : get_text('DistanceNum','Api', $Distance))), '', 'C'); - // Stop Transformation - $pdf->StopTransform(); - //$pdf-> - //$pdf->MultiCell($Text, 4, , '','L', false,1, '', '', true, 0, true); - } else { - // draws a white background square - $pdf->Rect($X, $Y, $Width, $Height, 'FD', array('all'=>array('color'=>100)), array(255)); - $pdf->Image('@'.$img, $X+($small? 1 : 2.5), $Y+($small? 1 : 2.5), $Width-($small? 2 : 5), $Height-($small? 2 : 5), 'PNG'); - } - - $pdf->setXY($Oldx, $Oldy); -} - diff --git a/src/Api/ISK/GetArchersInfo.php b/src/Api/ISK/GetArchersInfo.php deleted file mode 100644 index 8d551f5e..00000000 --- a/src/Api/ISK/GetArchersInfo.php +++ /dev/null @@ -1,218 +0,0 @@ -GrPhase; - - // get the distances - $objParam=getEventArrowsParams($Event,$Phase,$EventType,$CompId); - $json_array['distances'][]=array('num' => 1, 'desc' => '', 'arrows' => (int)$objParam->arrows, 'ends' => (int)$objParam->ends, 'shootoff' => (int)$objParam->so, 'matchtype' => ($objParam->EvMatchMode ? "S":"C")); - - //get the archers - $options['tournament']=$CompId; - $options['events']=array(); - $options['events'][] = $Event . '@' . $Phase; - $rank=null; - if($EventType) - $rank=Obj_RankFactory::create('GridTeam',$options); - else - $rank=Obj_RankFactory::create('GridInd',$options); - - $rank->read(); - $Data=$rank->getData(); - - foreach($Data['sections'] as $kSec=>$vSec) { - $tmp=array('id' => $vSec['meta']['targetTypeId'], 'name' => get_text($vSec['meta']['targetType']), 'arrowstringvalues' => GetGoodLettersFromTgtId($vSec['meta']['targetTypeId'])); - if(!in_array($tmp, $json_array['targettypes'])) { - $json_array['targettypes'][]=$tmp; - } - foreach($vSec['phases'] as $kPh=>$vPh) { - foreach($vPh['items'] as $kItem=>$vItem) { - if($vItem['matchNo']==$MatchNo) { - $row_array=array(); - $row_array["matchid"] = $kSec . "|" . ($EventType ? "T" : "I") . "|" . $vItem['matchNo']; - $row_array["name"] = ($EventType ? $vItem['countryName'] : $vItem['athlete']); - $row_array["placement"] = ltrim($vItem['target'],'0'); - $row_array["info1"] = $vItem['countryCode']. ', ' . $vItem['countryName']; - $row_array["info2"] =$vSec['meta']['eventName']; - $row_array["distances"] = array($vSec['meta']['targetTypeId']); - $row_array["arrowstrings"] = array($vItem['arrowstring']); - $json_array['archers'][]=$row_array; - - $row_array=array(); - $row_array["matchid"] = $kSec . "|" . ($EventType ? "T" : "I") . "|" . $vItem['oppMatchNo']; - $row_array["name"] = ($EventType ? $vItem['oppCountryName'] : $vItem['oppAthlete']); - $row_array["placement"] = ltrim($vItem['oppTarget'],'0'); - $row_array["info1"] = $vItem['oppCountryCode']. ', ' . $vItem['oppCountryName']; - $row_array["info2"] =$vSec['meta']['eventName']; - $row_array["distances"] = array($vSec['meta']['targetTypeId']); - $row_array["arrowstrings"] = array($vItem['oppArrowstring']); - $json_array['archers'][]=$row_array; - } - } - } - } - -} else { - $json_array['targettypes']=array(); - $json_array['distances']=array(); - $json_array['archers'] = Array(); - - // Check to see if we are in an Elimination stage (Field+3D) - $tmp=explode('|', (isset($_GET['sesstarget']) ? $_GET['sesstarget'] : '')); - if(count($tmp)==3) { - /***** ELIMINATIONS OLD STYLE *****/ - // need to get all archers - $TargetNo=str_pad($tmp[2], 3, '0', STR_PAD_LEFT); - - // Prepare the select used to retrieve competitor information - $Select = "SELECT EnId,EnCode,EnName,EnFirstName,EnSex,EnDivision,DivDescription,EnClass,ClDescription, - CoCode,CoName, concat('{$tmp[0]}|{$tmp[1]}|',ElTargetNo) as QuTargetNo, ElTargetNo AS TargetNo, ElArrowString as ArStr1, - TfT1, TfT2, TfT3, TfT4, TfT5, TfT6, TfT7, TfT8, EvElimEnds, EvElimArrows, EvElimSO, TarId, TarDescr - FROM Entries - INNER JOIN Eliminations ON EnId=ElId and ElElimPhase=".($tmp[0]=='E1' ? 0 : 1)." and ElEventCode='".$tmp[1]."' - inner join Events on EvCode=ElEventCode and EvTeamEvent=0 and EvTournament=ElTournament - INNER JOIN Countries ON EnCountry=CoId AND EnTournament=CoTournament - INNER JOIN Classes ON EnClass=ClId AND EnTournament=ClTournament - INNER JOIN Divisions ON EnDivision=DivId AND EnTournament=DivTournament - INNER JOIN TargetFaces ON EnTargetFace=TfId AND EnTournament=TfTournament - INNER JOIN Targets ON TfT1=TarId - WHERE EnTournament=$CompId - AND EnAthlete=1 - AND EnStatus <= 1 - AND left(ElTargetNo,3) in ('".$TargetNo."') - ORDER BY ElTargetNo "; - $q=safe_r_sql($Select); - while($r=safe_fetch($q)) { - $tmp=array('id' => $r->TarId, 'name' => get_text($r->TarDescr), 'arrowstringvalues' => GetGoodLettersFromTgtId($r->TarId)); - if(!in_array($tmp, $json_array['targettypes'])) $json_array['targettypes'][]=$tmp; - - $tmp=array( - 'num' => 1, - 'desc' => '1', - 'arrows' => (int)$r->EvElimArrows, - 'ends' => (int)$r->EvElimEnds); - if(!in_array($tmp, $json_array['distances'])) $json_array['distances'][]=$tmp; - } - - } else { - // THIS IS THE QUALIFICATION PART - // Retrieve the parameters sent in the call - $Session = (empty($_GET['session']) ? '' : $_GET['session']); - $Target = sprintf("%03s", (isset($_GET['sesstarget']) ? $_GET['sesstarget'] : '')); // Add leading zeroes because the app doesn't send them - $Filter="left(QuTargetNo,4) in ('".getGroupedTargets($Session.$Target, $Session)."')"; - - // get the targettypes - $sql=array(); - for($n=1; $n<=8; $n++) { - $sql[]="select TarId, TarDescr from Targets - inner join TargetFaces on TfT{$n}=TarId and TfTournament=$CompId - inner join Entries on EnTournament=$CompId and EnTargetFace=TfId - inner join Qualifications on EnId=QuId and $Filter AND EnStatus <= 1 AND EnAthlete=1"; - } - $SQL="(".implode(') UNION (', $sql).")"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $tmp=array('id' => $r->TarId, 'name' => get_text($r->TarDescr), 'arrowstringvalues' => GetGoodLettersFromTgtId($r->TarId)); - if(!in_array($tmp, $json_array['targettypes'])) $json_array['targettypes'][]=$tmp; - } - - // get the distances - $sql=array(); - for($n=1; $n<=8; $n++) { - $sql[]="select group_concat(DISTINCT Td{$n} ORDER BY Td{$n} ASC SEPARATOR ',') DiName, DiEnds, DiArrows, DiDistance - from Entries - INNER JOIN Tournament ON ToId=$CompId - inner join Qualifications on EnId=QuId and $Filter - INNER JOIN DistanceInformation ON EnTournament=DiTournament and DiSession=QuSession and DiDistance=$n and DiType='Q' - INNER JOIN TournamentDistances ON ToType=TdType and TdTournament=ToId AND CONCAT(TRIM(EnDivision),TRIM(EnClass)) LIKE TdClasses - where EnTournament=$CompId - AND EnStatus <= 1 - AND EnAthlete=1 - group by DiEnds, DiArrows, DiDistance - "; - } - $SQL="(".implode(') UNION (', $sql).") order by DiDistance"; - - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if(!$r->DiDistance) - continue; - $tmp=array( - 'num' => (int)$r->DiDistance, - 'desc' => $r->DiName, - 'arrows' => (int)$r->DiArrows, - 'ends' => (int)$r->DiEnds); - if(!in_array($tmp, $json_array['distances'])) $json_array['distances'][]=$tmp; - } - - // Prepare the select used to retrieve competitor information - $Select = "SELECT EnId,EnCode,EnName,EnFirstName,EnSex,EnDivision,DivDescription,EnClass,ClDescription, - CoCode,CoName, QuTargetNo, SUBSTRING(QuTargetNo,2) AS TargetNo, - TfT1, TfT2, TfT3, TfT4, TfT5, TfT6, TfT7, TfT8, - QuD1Arrowstring as ArStr1, QuD2Arrowstring as ArStr2, QuD3Arrowstring as ArStr3, QuD4Arrowstring as ArStr4, QuD5Arrowstring as ArStr5, QuD6Arrowstring as ArStr6, QuD7Arrowstring as ArStr7, QuD8Arrowstring as ArStr8 - FROM Entries - INNER JOIN Qualifications ON EnId=QuId - INNER JOIN Countries ON EnCountry=CoId AND EnTournament=CoTournament - INNER JOIN Classes ON EnClass=ClId AND EnTournament=ClTournament - INNER JOIN Divisions ON EnDivision=DivId AND EnTournament=DivTournament - INNER JOIN TargetFaces ON EnTargetFace=TfId AND EnTournament=TfTournament - WHERE EnTournament=$CompId - AND EnAthlete=1 - AND EnStatus <= 1 - AND $Filter - ORDER BY QuTargetNo "; - } - - // Retrieve the competitor info - $Rs=safe_r_sql($Select); - - while ($MyRow=safe_fetch($Rs)) { - // Now load the json array with the info we need - $row_array=array(); - $row_array["id"] = $MyRow->EnId; - $row_array["name"] = $MyRow->EnName . ' ' . $MyRow->EnFirstName; - $row_array["placement"] = ltrim($MyRow->TargetNo, '0'); - $row_array["info1"] = $MyRow->CoCode . ', ' . $MyRow->CoName; - $row_array["info2"] = $MyRow->EnDivision . $MyRow->EnClass . "-" . $MyRow->DivDescription . "," . $MyRow->ClDescription; - $row_array["qutarget"] = $MyRow->QuTargetNo; - $row_array["arrowstrings"] = array(); - - if($json_array['distances']) { - $distance_array = Array(); - - foreach(range(1, count($json_array['distances'])) as $i) { - $row_array["distances"][]=($json_array['distances'][$i-1]['desc']=='-' ? 0 : (int)$MyRow->{'TfT'.$i}); - $row_array["arrowstrings"][] = str_pad($MyRow->{'ArStr'.$i}, $json_array['distances'][$i-1]['arrows']*$json_array['distances'][$i-1]['ends'], ' ', STR_PAD_RIGHT); - - } - } - $json_array['archers'][]=$row_array; - } -} - -// Return the json structure with the callback function that is needed by the app -SendResult($json_array); - diff --git a/src/Api/ISK/GetCompInfo.php b/src/Api/ISK/GetCompInfo.php deleted file mode 100644 index 8d6a5c1c..00000000 --- a/src/Api/ISK/GetCompInfo.php +++ /dev/null @@ -1,111 +0,0 @@ -'', "session"=>'', "distance"=>'', "maxdist"=>'', "end"=>''), $CompId); - if(!$Sequence['type']) { - $StickyEnds=getModuleParameter('ISK', 'StickyEnds', array('SeqCode'=>'', 'Distance'=>'', 'Ends'=>array()), $CompId); - if($StickyEnds['SeqCode']) { - // reset the app to the "request code" - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } else { - // reset the app to the "request code" - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } - } - - $json_array["compcode"] = $TourRow->ToCode . (empty($CompPin) ? '' : '|'.$CompPin); - $json_array["compname"] = $TourRow->ToName; - $json_array["compdesc1"] = $TourRow->ToCommitee . ' - ' . $TourRow->ToComDescr; - $json_array["compdesc2"] = $TourRow->ToWhere . ", " . $TourRow->DtFrom . " - " . $TourRow->DtTo; - $json_array["compdesc3"] = ManageHTML(get_text($TourRow->ToTypeName, 'Tournament')) . ", " . $TourRow->ToNumDist . " " . get_text($TourRow->ToNumDist==1?'Distance':'Distances','Tournament'); - $json_array["compcategory"] = (int)$TourRow->ToCategory; - $json_array["email"] = $iskModePro ? getModuleParameter('ISK', 'LicenseEmail', '', $CompId) : ''; - $json_array["id"] = $iskModePro ? getModuleParameter('ISK', 'LicenseNumber', '', $CompId) : ''; - $json_array["numdist"] = (int)$TourRow->ToNumDist; - $json_array["numsession"] = (int)$TourRow->ToNumSession; - $json_array["distances"] = array(); - //Retrieve all the stages - $tmp_stage = Array(); - $tmp_stage[] = "Q"; - $Select = "SELECT DISTINCTROW EvTeamEvent, EvElim1, EvElim2 FROM Events WHERE EvTournament=$CompId AND EvFinalFirstPhase!=0 order by EvTeamEvent, EvElim1=0, EvElim2=0, EvProgr"; - $Rs=safe_r_sql($Select); - while($StageRow=safe_fetch($Rs)) { - if($StageRow->EvElim1 > 0 && !in_array("E1",$tmp_stage)) - $tmp_stage[]="E1"; - if($StageRow->EvElim2 > 0 && !in_array("E2",$tmp_stage)) - $tmp_stage[]="E2"; - if($StageRow->EvTeamEvent==0 && !in_array("MI",$tmp_stage)) - $tmp_stage[]="MI"; - if($StageRow->EvTeamEvent==1 && !in_array("MT",$tmp_stage)) - $tmp_stage[]="MT"; - } - $json_array["stages"] = $tmp_stage; - - // Retrieve all the sessions that have been defined for the tournament - // and create a sessions array in the json data - $sessions=GetSessions('Q',false,null,$TourRow->ToId); - $session_array = Array(); - foreach ($sessions as $s) { - $row_array=array(); - $row_array["sessdesc"] = $s->Descr; - $row_array["sesstype"] = $s->SesType; - $row_array["sessnumtargets"] = (int)$s->SesTar4Session; - $row_array["sessfirsttarget"] = (int)$s->SesFirstTarget; - $json_array["sessions"][]= $row_array; - } -// $json_array["sessions"] = $session_array; - - // Retrieve all the distances for the tournament and create - // an array to be appended to the json data - $Select = "SELECT Td1, Td2, Td3, Td4, Td5, Td6, Td7, Td8 " - . " FROM TournamentDistances " - . " WHERE TdTournament=" . $TourRow->ToId; - - $Rs=safe_r_sql($Select); - - if (safe_num_rows($Rs) == 1) { - $distance_array = Array(); - $DistRow=safe_fetch($Rs); - for($i=1; $i <= $TourRow->ToNumDist; $i++) { - $dist_array["distnum"] = $i; - $dist_array["distdesc"] = $DistRow->{'Td'.$i}; - $dist_array["arrowsperend"] = '3'; - $dist_array["numends"] = (int)$TourRow->ToNumEnds; - array_push($distance_array, $dist_array); - } - $json_array["distances"] = $distance_array; - } - } - - // Return the json structure with the callback function that is needed by the app - SendResult($json_array); - diff --git a/src/Api/ISK/GetEndScore.php b/src/Api/ISK/GetEndScore.php deleted file mode 100644 index 146053a0..00000000 --- a/src/Api/ISK/GetEndScore.php +++ /dev/null @@ -1,137 +0,0 @@ - $DistanceNum, - 'endnum' => $EndNum, - 'prevendscored' => false, - 'curendscore' => '', - 'curscoreatend' => '', - 'scoreatend' => '', - 'arrowvalues' => array(), - 'locked' => false - ); - -$StickyEnds=getModuleParameter('ISK', 'StickyEnds', array('SeqCode'=>'', 'Distance'=>'', 'Ends'=>array()), $CompId); -$LockedSessions=getModuleParameter('ISK', 'LockedSessions', array(), $CompId); - - -if($TargetNo) { - $tmp=explode('|', $TargetNo); - $json_array['qutarget']= $TargetNo; - if(count($tmp)==3) { - // ELIMINATION - $LockKey='E|'.($tmp[0][1]-1).'|'.$tmp[1]; - $Select = "SELECT ElArrowString AS ArrowString, if(ElElimPhase=0, EvE1Arrows, EvE2Arrows) DiArrows - FROM Eliminations - INNER JOIN Events on ElEventCode=EvCode and ElTournament=EvTournament and EvTeamEvent=0 - WHERE ElTargetNo=" . StrSafe_DB($tmp[2]) . " - AND ElEventCode='{$tmp[1]}' - AND ElElimPhase=".($tmp[0][1]-1)." - AND ElTournament=$CompId"; - - // Retrieve the score info - $Rs=safe_r_sql($Select); - - if (safe_num_rows($Rs) == 1) { - // Now load the json array with the info we need - $ScoreRow=safe_fetch($Rs); - - - $StartPos = (empty($ScoreRow->isSO) ? ($EndNum-1) * $ScoreRow->DiArrows : 0); - $CurEnd=str_replace(' ', '', substr($ScoreRow->ArrowString, $StartPos, $ScoreRow->DiArrows)); - if($CurEnd) $json_array["curendscore"] = ValutaArrowString($CurEnd); - - $arrow_array = Array(); - for($j=0; $j < $ScoreRow->DiArrows; $j++) { - array_push($arrow_array, DecodeFromLetter(substr($ScoreRow->ArrowString, $StartPos+$j, 1)) ); - } - $json_array["arrowvalues"] = $arrow_array; - $json_array["prevendscored"] = ( - ($EndNum==1 and ($DistanceNum==1 or trim(substr($ScoreRow->PrevArrowString, ($ScoreRow->PrevEnds-1)*$ScoreRow->PrevArrows, $ScoreRow->PrevArrows))) - or (trim(substr($ScoreRow->ArrowString, $StartPos-$ScoreRow->DiArrows, $ScoreRow->DiArrows))))); - } - // check sticky ends - // get the sequence this match belongs to - if($StickyEnds['SeqCode'] and $StickyEnds['SeqCode'][0]=='E' and $StickyEnds['SeqCode'][2]==$TargetNo[0]) { - $json_array['locked']=true; - if(in_array($EndNum, $StickyEnds['Ends']) and $DistanceNum==$StickyEnds['Distance']) { - $json_array['locked']=false; - } - } - } else { - // Qualification - $LockKey='Q|'.$TargetNo[0].'|'.$DistanceNum; - $SQL="SELECT QuId, QuTargetNo, QuTarget, DIDistance, QuD{$DistanceNum}Arrowstring as Arrowstring, DIEnds, DIArrows, - IF(TfGoldsChars{$DistanceNum}='',IF(TfGoldsChars='',ToGoldsChars,TfGoldsChars),TfGoldsChars{$DistanceNum}) as GoldsChars, - IF(TfXNineChars{$DistanceNum}='',IF(TfXNineChars='',ToXNineChars,TfXNineChars),TfXNineChars{$DistanceNum}) as XNineChars, - ToCategory&12 as IsField3D, ToNumEnds from Qualifications - INNER JOIN Entries ON QuId=EnId - INNER JOIN Tournament ON ToId=EnTournament - INNER JOIN TargetFaces on TfId=EnTargetFace and TfTournament=EnTournament - INNER JOIN DistanceInformation ON DITournament=EnTournament AND DISession=QuSession AND DIDistance=".StrSafe_DB($DistanceNum)." AND DIType='Q' - WHERE EnTournament=$CompId and QuTargetNo=".StrSafe_DB($TargetNo); - $q=safe_r_SQL($SQL); - $ArrowSearch=safe_fetch($q); - if($ArrowSearch) { - $tmp = getQualificationTotals($ArrowSearch->QuId, $ArrowSearch->DIDistance, $EndNum, $ArrowSearch->DIArrows, $ArrowSearch->DIEnds, $ArrowSearch->GoldsChars, $ArrowSearch->XNineChars, $ArrowSearch->IsField3D ? $ArrowSearch->QuTarget : null); - $json_array['curendscore'] = $tmp['curendscore']; - $json_array['curscoreatend'] = $tmp['curscoreatend']; - $json_array['scoreatend'] = $tmp['scoreatend']; - $json_array['prevendscored'] = $tmp['prevendscored']; - for($i=0; $i<$ArrowSearch->DIArrows; $i++) { - $json_array["arrowvalues"][] = DecodeFromLetter($tmp['curendarrstr'][$i]); - } - } - - // check sticky ends - // get the sequence this match belongs to - if($StickyEnds['SeqCode'] and $StickyEnds['SeqCode'][0]=='Q' and $StickyEnds['SeqCode'][2]==$TargetNo[0]) { - $json_array['locked']=true; - if(in_array($EndNum, $StickyEnds['Ends']) and $DistanceNum==$StickyEnds['Distance']) { - $json_array['locked']=false; - } - } - } -} else { - $LockKey=($EventType==0 ? 'I':'T').'|'.getPhase($MatchNo).'|'.$Event; - - $json_array['matchid']= $Event."|".($EventType==0 ? 'I':'T')."|".$MatchNo; - - $obj=getEventArrowsParams($Event,getPhase($MatchNo),$EventType,$CompId); - $tmp = getMatchTotals($Event, $MatchNo, $EventType, $EndNum, $obj->arrows, $obj->ends, $obj->so); - $json_array['curendscore'] = $tmp['curendscore']; - $json_array['curscoreatend'] = $tmp['curscoreatend']; - $json_array['scoreatend'] = $tmp['scoreatend']; - $json_array['prevendscored'] = ($EndNum==1 || $EndNum==$obj->ends+1 || (trim(substr($tmp['tilendarrstr'],-2*$obj->arrows)) !='')); - for($i=0; $i<($EndNum==$obj->ends+1 ? $obj->so:$obj->arrows); $i++) { - $json_array["arrowvalues"][] = DecodeFromLetter($tmp['curendarrstr'][$i]); - } - - // check sticky ends - // get the sequence this match belongs to - $q=safe_r_sql("select concat('".($EventType==0 ? 'I':'T')."', FsScheduledDate, FsScheduledTime) as EventKey from FinSchedule where FsTournament=$CompId and FsTeamEvent=$EventType and FsEvent='$Event' and FsMatchNo=$MatchNo"); - if($r=safe_fetch($q) and $r->EventKey==$StickyEnds['SeqCode']) { - $json_array['locked']=true; - if(in_array($EndNum, $StickyEnds['Ends'])) { - $json_array['locked']=false; - } - } -} - -if(in_array($LockKey, $LockedSessions)) { - $json_array['locked']=true; -} - -// Return the json structure with the callback function that is needed by the app -SendResult($json_array); diff --git a/src/Api/ISK/GetEndSummary.php b/src/Api/ISK/GetEndSummary.php deleted file mode 100644 index b22dcd1e..00000000 --- a/src/Api/ISK/GetEndSummary.php +++ /dev/null @@ -1,111 +0,0 @@ -Arrowstring)) { - $ArrowString = $r->Arrowstring; - $SQL = "SELECT IskDtEndNo, IskDtArrowstring - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='{$r->Type}' AND IskDtTargetNo='{$r->TargetNo}' AND IskDtDistance={$Distance} AND IskDtEndNo={$End} - ORDER BY IskDtEndNo"; - $q2 = safe_r_SQL($SQL); - if($r2 = safe_fetch($q2)){ - for($i=0; $i<$r->ArrowsNo; $i++){ - if($r2->IskDtArrowstring[$i]!=' '){ - $ArrowString[$i]=$r2->IskDtArrowstring[$i]; - } - } - } - list($Score, $Golds, $Xnine) = ValutaArrowStringGX($ArrowString, $r->GoldsChars, $r->XNineChars); - } - $json_array[]=array( - 'qutarget' => $r->QuTargetNo, - 'endscore' => $Score, - 'endgolds' => $Golds, - 'endxnine' => $Xnine, - 'curscore' => $r->DistScore, - 'curgolds' => $r->DistGold, - 'curxnine' => $r->DistXnine, - 'score' => $r->QuScore, - 'golds' => $r->QuGold, - 'xnine' => $r->QuXnine, - ); - } -} else { - // QUALIFICATION - $Filter="left(QuTargetNo,4) in ('".$TargetNo."')"; - - $SQL="SELECT QuId, QuSession, QuTargetNo, QuTarget, DIDistance, DIEnds, DIArrows, - IF(TfGoldsChars{$Distance}='',IF(TfGoldsChars='',ToGoldsChars,TfGoldsChars),TfGoldsChars{$Distance}) as GoldsChars, - IF(TfXNineChars{$Distance}='',IF(TfXNineChars='',ToXNineChars,TfXNineChars),TfXNineChars{$Distance}) as XNineChars, - ToCategory&12 as IsField3D - from Qualifications - INNER JOIN Entries ON QuId=EnId - INNER JOIN Tournament ON ToId=EnTournament - INNER JOIN TargetFaces on TfId=EnTargetFace and TfTournament=EnTournament - INNER JOIN DistanceInformation ON DITournament=EnTournament AND DISession=QuSession AND DIDistance=".StrSafe_DB($Distance)." AND DIType='Q' - WHERE EnTournament=$CompId and $Filter - ORDER BY QuTargetNo"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $tmp = getQualificationTotals($r->QuId, $r->DIDistance, $End, $r->DIArrows, $r->DIEnds, $r->GoldsChars, $r->XNineChars, $r->IsField3D ? $r->QuTarget : null); - $json_array[]=array( - 'qutarget' => $r->QuTargetNo, - 'endscore' => $tmp['curendscore'], - 'curscore' => $tmp['curscore'], - 'curgolds' => $tmp['curgold'], - 'curxnine' => $tmp['curxnine'], - 'score' => $tmp['score'], - 'golds' => $tmp['gold'], - 'xnine' => $tmp['xnine'], - 'curendscore' => $tmp['curendscore'], - 'curscoreatend' => $tmp['curscoreatend'], - 'scoreatend' => $tmp['scoreatend'], - ); - } -} - - - - -// Return the json structure with the callback function that is needed by the app -SendResult($json_array); diff --git a/src/Api/ISK/GetEventInfo.php b/src/Api/ISK/GetEventInfo.php deleted file mode 100644 index f7ec0194..00000000 --- a/src/Api/ISK/GetEventInfo.php +++ /dev/null @@ -1,59 +0,0 @@ -0 AND EvFinalFirstPhase!=0 order by EvProgr"; - break; - case 'E2': - $SQL="SELECT EvCode, EvEventName, EvFinalFirstPhase, EvElimType, EvElimEnds, EvElimArrows, EvElimSO, EvFinEnds, EvFinArrows, EvFinSO FROM Events WHERE EvTournament=$CompId AND EvTeamEvent=0 and EvElim2>0 AND EvFinalFirstPhase!=0 order by EvProgr"; - break; - default: - $SQL="SELECT EvCode, EvEventName, EvFinalFirstPhase, EvElimType, EvElimEnds, EvElimArrows, EvElimSO, EvFinEnds, EvFinArrows, EvFinSO FROM Events WHERE EvTournament=$CompId AND EvTeamEvent=0 AND EvFinalFirstPhase!=0 order by EvProgr"; - } - - // Retrieve the Event List - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $tmpPhases = Array(); - if($EventType[0]=='E') { - $t=safe_r_sql("select distinct left(ElTargetNo, 3) TargetNo - from Eliminations - where ElTournament=$CompId - and ElElimPhase=".($EventType[1]-1)." - and ElEventCode='$r->EvCode' - and ElTargetNo>'' - order by TargetNo"); - while($u=safe_fetch($t)) { - $tmpPhases[]=Array("code"=>"{$EventType}|{$r->EvCode}|{$u->TargetNo}", "name"=>(int)$u->TargetNo); - } - } else { - $phases = getPhasesId($r->EvFinalFirstPhase); - if($EventType=='I' AND $r->EvElimType==4) { - $poolMatches = getPoolMatchesHeadersWA(); - foreach ($poolMatches as $kPM=>$vPM) { - $tmpPhases[]=Array("code"=>strval($kPM), "name"=>$vPM); - } - } - foreach ($phases as $ph) { - $tmpPhases[]=Array("code"=>bitwisePhaseId($ph), "name"=>$ph."_Phase"); - } - - } - $json_array[] = Array("code"=>$r->EvCode, "name"=>$r->EvEventName, 'ends'=>$r->EvElimEnds, 'arrows'=>$r->EvElimArrows, "phases"=>$tmpPhases); - } - - - // Return the json structure with the callback function that is needed by the app - SendResult($json_array); - diff --git a/src/Api/ISK/GetLanguages.php b/src/Api/ISK/GetLanguages.php deleted file mode 100644 index 433a4465..00000000 --- a/src/Api/ISK/GetLanguages.php +++ /dev/null @@ -1,36 +0,0 @@ - $text) { - if(!file_exists($CFG->LANGUAGE_PATH . $lang . '/ISK.php')) continue; - $json_array[]=array( - 'id' => $lang, - 'name'=>$text, - 'md5'=> md5_file($CFG->LANGUAGE_PATH . $lang . '/ISK.php'), - 'urlFlag' => $ServerUrl.$CFG->ROOT_DIR.'Common/Languages/'.$lang.'/'.$lang.'.png', - 'urlFile' => $ServerUrl.$CFG->ROOT_DIR.'Api/ISK/'.basename(__FILE__).'?lang='.$lang, - ); - } - -} elseif(preg_match('/^[a-z_0-9-]+$/sim', $_REQUEST['lang'])) { - $json_array=getArrayLang($CFG->LANGUAGE_PATH . $_REQUEST['lang'] . '/ISK.php'); - $json_array['MD5']=md5_file($CFG->LANGUAGE_PATH . $_REQUEST['lang'] . '/ISK.php'); - $json_array['LanguageName']=$Lingue[ $_REQUEST['lang'] ]; -} - -// Return the json structure with the callback function that is needed by the app -SendResult($json_array); - -function getArrayLang($file) { - $lang=array(); - include($file); - return $lang; -} diff --git a/src/Api/ISK/GetMatchInfo.php b/src/Api/ISK/GetMatchInfo.php deleted file mode 100644 index de2ae9c2..00000000 --- a/src/Api/ISK/GetMatchInfo.php +++ /dev/null @@ -1,36 +0,0 @@ -read(); - $Data=$rank->getData(); - foreach($Data['sections'] as $kSec=>$vSec) { - foreach($vSec['phases'] as $kPh=>$vPh) { - foreach($vPh['items'] as $kItem=>$vItem) { - $json_array[] = Array("code"=>$vItem['matchNo'], "name"=>$vItem[$nameField]."/".$vItem[$oppNameField]); - } - } - } - - // Return the json structure with the callback function that is needed by the app - SendResult($json_array); - diff --git a/src/Api/ISK/GetMatchSummary.php b/src/Api/ISK/GetMatchSummary.php deleted file mode 100644 index e0deac9f..00000000 --- a/src/Api/ISK/GetMatchSummary.php +++ /dev/null @@ -1,168 +0,0 @@ -read(); - $Data=$rank->getData(); - foreach($Data['sections'] as $kSec=>$vSec) { - $json_array=array(); - $json_array['matchtype'] = ($vSec['meta']['matchMode'] ? "S":"C"); - $json_array['matchover'] = false; - foreach($vSec['phases'] as $kPh=>$vPh) { - $objParam=getEventArrowsParams($Event,$kPh,$EventType,$CompId); - foreach($vPh['items'] as $kItem=>$vItem) { - if($vItem['matchNo']!=$MatchNo && $vItem['oppMatchNo']!=$MatchNo) - continue; - - // only for pro! - if($iskModePro) { - $firstTmpEnd = 0; - $SQL = "SELECT * - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo IN (".$vItem['matchNo'].",".$vItem['oppMatchNo'].") AND IskDtEvent='{$Event}' AND IskDtTeamInd={$EventType} AND IskDtType='{$EventTypeLetter}' AND IskDtTargetNo='' AND IskDtDistance=0 - ORDER BY IskDtEndNo ASC"; - $q=safe_r_SQL($SQL); - while($r=safe_fetch($q)) { - if($IsSO=($r->IskDtEndNo > $objParam->ends)) { - // tie break - $fld = ($r->IskDtMatchNo == $vItem['matchNo'] ? 'tiebreak' : 'oppTiebreak'); - $vItem[$fld]=str_repeat(' ', strlen($r->IskDtArrowstring)); - $idx = 0; - } else { - // normal scoring - $fld = ($r->IskDtMatchNo == $vItem['matchNo'] ? 'arrowstring' : 'oppArrowstring'); - $idx = ($r->IskDtEndNo-1)*$objParam->arrows; - $vItem[$fld]=str_pad($vItem[$fld], $idx+1, ' ', STR_PAD_RIGHT); - } - for($i=0; $iIskDtArrowstring); $i++) { - $vItem[$fld][$idx++] = $r->IskDtArrowstring[$i]; - } - } - if(strlen(trim($vItem['tiebreak']))==strlen(trim($vItem['oppTiebreak'])) and strlen(trim($vItem['tiebreak']))>0) { - //we have a closest to center and a winner here! - if($vItem['oppTiebreak']!=strtoupper($vItem['oppTiebreak'])) { - $vItem['oppClosest']='1'; - $vItem['oppWinner']='1'; - $vItem['oppTiebreak']=strtoupper($vItem['oppTiebreak']); - } elseif($vItem['tiebreak']!=strtoupper($vItem['tiebreak'])) { - $vItem['closest']='1'; - $vItem['winner']='1'; - $vItem['tiebreak']=strtoupper($vItem['tiebreak']); - } - } - } - - $end = array(); - $oppEnd = array(); - // rebuild points - $chunks0=str_split(rtrim($vItem['arrowstring']), $objParam->arrows); - $chunks1=str_split(rtrim($vItem['oppArrowstring']), $objParam->arrows); - $Tot0=0; - $Tot1=0; - foreach($chunks0 as $End => $Arrows) { - if(!$Arrows and !$chunks1[$End]) continue; - $pts0=ValutaArrowString($Arrows); - $pts1=ValutaArrowString($chunks1[$End]); - - if($vSec['meta']['matchMode']) { - $endtot0 = ($pts0==$pts1 ? 1 : ($pts0>$pts1 ? 2 : 0)); - $endtot1 = ($pts0==$pts1 ? 1 : ($pts0<$pts1 ? 2 : 0)); - $Tot0+=$endtot0; - $Tot1+=$endtot1; - } else { - $endtot0 += $pts0; - $endtot1 += $pts1; - $Tot0+=$pts0; - $Tot1+=$pts1; - } - $end[]=array('endnum'=>$End+1, 'endscore'=>$pts0, 'points'=>$endtot0); - $oppEnd[]=array('endnum'=>$End+1, 'endscore'=>$pts1, 'points'=>$endtot1); - } - - // check tiebreak - $SO=false; - if(strlen(trim($vItem['tiebreak']))==strlen(trim($vItem['oppTiebreak'])) and strlen(trim($vItem['tiebreak']))>0) { - $SO=true; - // now we have a closest to centre but if the SO comes from the stored values of the device we need to hack the "*" into a closest!! - $pts0=ValutaArrowString($vItem['tiebreak']); - $pts1=ValutaArrowString($vItem['oppTiebreak']); - - if($vSec['meta']['matchMode']) { - $endtot0=0; - $endtot1=0; - if($vItem['winner'] or $pts0>$pts1 or $vItem['closest']) { - $endtot0=1; - $Tot0+=1; - } - if($vItem['oppWinner'] or $pts0<$pts1 or $vItem['oppClosest']) { - $endtot1=1; - $Tot1+=1; - } - } else { - $endtot0 = '-'; - $endtot1 = '-'; - } - $end[]=array('endnum'=>'S.O.', 'endscore'=>$pts0, 'points'=>$endtot0); - $oppEnd[]=array('endnum'=>'S.O.', 'endscore'=>$pts1, 'points'=>$endtot1); - } - - // check winner if no winners and pro mode - if($iskModePro and !$vItem['winner'] - and !$vItem['oppWinner'] - and ($objParam->EvMatchMode ? ($Tot0>$objParam->ends or $Tot1>$objParam->ends) : (strlen(rtrim($vItem['arrowstring']))==$objParam->ends*$objParam->arrows and strlen(rtrim($vItem['oppArrowstring']))==$objParam->ends*$objParam->arrows))) { - if($objParam->EvMatchMode) { - if($Tot0>$objParam->ends) { - $vItem['winner']=1; - } else { - $vItem['oppWinner']=1; - } - } else { - if($Tot0>$Tot1) { - $vItem['winner']=1; - } elseif($Tot0<$Tot1) { - $vItem['oppWinner']=1; - } elseif($SO) { - if($pts0>$pts1) { - $vItem['winner']=1; - } elseif($pts0<$pts1) { - $vItem['oppWinner']=1; - } else { - // check star? - } - - } - } - } - - $json_array['matchover'] = ($vItem['winner'] or $vItem['oppWinner']); - - // sends summary - $json_array['competitors'] = Array(); - $json_array['competitors'][] = Array('winner'=>(int)$vItem['winner'], 'matchid'=>$kSec . "|" . ($EventType ? "T" : "I") . "|" . $vItem['matchNo'], 'score'=>$Tot0, 'ends'=>$end); - $json_array['competitors'][] = Array('winner'=>(int)$vItem['oppWinner'], 'matchid'=>$kSec . "|" . ($EventType ? "T" : "I") . "|" . $vItem['oppMatchNo'], 'score'=>$Tot1, 'ends'=>$oppEnd); - - $JsonResult[] = $json_array; - } - } - } - // Return the json structure with the callback function that is needed by the app - SendResult($JsonResult); - diff --git a/src/Api/ISK/GetQRData.php b/src/Api/ISK/GetQRData.php deleted file mode 100644 index 8d2e088c..00000000 --- a/src/Api/ISK/GetQRData.php +++ /dev/null @@ -1,78 +0,0 @@ -'; - echo ''; - echo ''; - echo ''; - echo ''; - echo '
'.get_text('ISK-GetQRData').'
'; - echo ''; - echo '
'; - echo ''; -} else { - $data = json_decode($_REQUEST["Data"]); - if(is_null($data)) { - echo "invalid data"; - } else { - $CompId=getIdFromCode($data->compcode); - foreach($data->ends as $end) { - $qValue = explode("|",$end->q); - if(count($qValue)==1) { //Qualification - $dist = $end->d; - $endNum=($end->e+1); - $tgt = $qValue[0]; - - $SQL="SELECT QuId, QuSession, QuTargetNo, DIDistance, DIEnds, DIArrows, QuConfirm & ".pow(2, $dist).">0 as StopImport - from Qualifications - INNER JOIN Entries ON QuId=EnId - INNER JOIN Tournament ON ToId=EnTournament - INNER JOIN DistanceInformation ON DITournament=EnTournament AND DISession=QuSession AND DIDistance=".StrSafe_DB($dist)." AND DIType='Q' - WHERE EnTournament=$CompId and QuTargetNo=".StrSafe_DB($tgt); - $q=safe_r_SQL($SQL); - $ArrowSearch=safe_fetch($q); - - if($ArrowSearch->StopImport) { - continue; - } - - $arrString = str_repeat(" ",$ArrowSearch->DIArrows); - $SQL = "SELECT IskDtArrowstring - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' - AND IskDtTargetNo='{$ArrowSearch->QuTargetNo}' AND IskDtDistance={$ArrowSearch->DIDistance} AND IskDtEndNo={$endNum}"; - $q=safe_r_SQL($SQL); - if($r=safe_fetch($q)) { - $arrString=$r->IskDtArrowstring; - } - for($i=0; $is); $i++) { - if($end->s[$i]!=-1) { - $arrString[$i] = GetLetterFromPrint($end->s[$i],$ArrowSearch->QuId,$ArrowSearch->DIDistance); - } - } - $SQL = "INSERT INTO IskData (IskDtTournament, IskDtMatchNo, IskDtEvent, IskDtTeamInd, IskDtType, IskDtTargetNo, IskDtDistance, IskDtEndNo, IskDtArrowstring, IskDtUpdate, IskDtDevice) - VALUES ({$CompId}, 0, '', 0, 'Q', '{$ArrowSearch->QuTargetNo}', {$ArrowSearch->DIDistance}, {$endNum}, '{$arrString}', '".date('Y-m-d H:i:s')."', '') - ON DUPLICATE KEY UPDATE IskDtArrowstring='{$arrString}', IskDtUpdate='".date('Y-m-d H:i:s')."', IskDtDevice= ''"; - safe_w_SQL($SQL); - } else { //Matches - - } - - } - - } -} - -include('Common/Templates/tail-min.php'); \ No newline at end of file diff --git a/src/Api/ISK/GetScoreCard.php b/src/Api/ISK/GetScoreCard.php deleted file mode 100644 index 0400b80d..00000000 --- a/src/Api/ISK/GetScoreCard.php +++ /dev/null @@ -1,116 +0,0 @@ -DiArrows; - $Ends=$r->DiEnds; - $ArrowString=str_pad(rtrim($r->DiArrowstring), $Arrows*$Ends); - - $SQL = "SELECT IskDtEndNo, IskDtArrowstring - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='{$r->Type}' AND IskDtTargetNo='{$QuTarget}' AND IskDtDistance={$r->DiDistance} - ORDER BY IskDtEndNo"; - $q = safe_r_SQL($SQL); - while($r2 = safe_fetch($q)){ - for($i=0; $i<$Arrows; $i++){ - if($r2->IskDtArrowstring[$i]!=' '){ - $ArrowString[($r2->IskDtEndNo-1)*$Arrows+$i]=$r2->IskDtArrowstring[$i]; - } - } - } - - $RealEnds=array(); - while(strlen($ArrowString)) { - $RealEnds[]=substr($ArrowString, 0, $Arrows); - $ArrowString=substr($ArrowString, $Arrows); - } - - if($Arrows>3 and $Arrows%3) { - // arrows per end are more than 6 and not multiple of 3 - // so ends will be reduced to max 6 arrows - $tmp=ceil($Arrows/6); - $Arrows=ceil($Arrows/$tmp); - } else { - $tmp=ceil($Arrows/3); - $Arrows=ceil($Arrows/$tmp); - } - $Distance=array( - 'distancename' => $r->DiName, - 'goldschar' => $r->Golds, - 'xninechar' => $r->XNine, - 'endarrows' => $Arrows, - 'endscores' => array() - ); - $EndNum=1; - $GrandTotal=0; - foreach($RealEnds as $RealEnd) { - $RealEnd=str_pad($RealEnd, $Arrows); - while(strlen($RealEnd)) { - $End=substr($RealEnd, 0, $Arrows); - $EndArray=array( - 'endnum' => $EndNum, - 'arrowscores' => array(), - 'endtotal' => 0, - 'endgolds' => 0, - 'endxnine' => 0); - foreach(range(0, $Arrows-1) as $Arrow) { - $EndArray['arrowscores'][]=DecodeFromLetter(substr($End, $Arrow, 1)); - } - list($EndArray['endtotal'],$EndArray['endgolds'],$EndArray['endxnine']) = ValutaArrowStringGX($End, $r->GoldsChars, $r->XNineChars); - $GrandTotal+=$EndArray['endtotal']; - $EndArray['runtotal']=$GrandTotal; - $EndNum++; - $Distance['endscores'][]=$EndArray; - $RealEnd=substr($RealEnd, $Arrows); - } - } - // if it is a field/3d needs to detach - if($r->IsField3D) { - $Target=($r->Target%$r->DiEnds)-1; - $Distance['endscores']=array_merge(array_slice($Distance['endscores'], $Target), array_slice($Distance['endscores'], 0, $Target)); - } - $json_array[]=$Distance; -} - - - -// Return the json structure with the callback function that is needed by the app -SendResult($json_array); - diff --git a/src/Api/ISK/ISK.css b/src/Api/ISK/ISK.css deleted file mode 100644 index 0e1b8ab9..00000000 --- a/src/Api/ISK/ISK.css +++ /dev/null @@ -1,83 +0,0 @@ -@CHARSET "UTF-8"; - -.TargetContainer {float:left; margin:1em; border:1px solid gray; border-radius: 3px; border-collapse: collapse; min-width:100px; height:110px; box-shadow: 1px 1px 1px #888888;} -.TargetTitle {font-weight:bold; text-align:center; border-bottom:1px solid gray; border-top-left-radius: 3px; border-top-right-radius: 3px; background-color:#dddddd; padding:0.2em} -.TargetDevices {margin-top: 0.25em; margin-left: 0.25em;} -.TargetLetters {text-align:center;} -.TargetLetters span {display:inline-block; padding:0.25em; font-weight:bold; border:1px solid gray; margin:0.5em; } -.TargetMessage {min-height:2.5em;} -.TargetInfoImg { content:url("../../Common/Images/isk-info.svg"); height: 1.2em; width: 1.2em; float: right} -.Let-B {background-color:#3333ff; color: #ffffff; } /* scored (Blue) */ -.Let-C {background-color:#33ffff; color: #000000; } /* missing (Cyan) */ -.Let-Y {background-color:#dddd00; color: #000000; } /* scoring (Yellow) */ -.Let-O {background-color:#ffaa33; color: #000000; } /* scoring different end (Orange) */ -.Let-G {background-color:#000000; color: #000000; } /* dimmed (Gray) */ -.Let-R {background-color:#dd0000; color: #000000; } /* scoring different distance/session (Red) */ -.Let-Z {background-color:#00A000; color: #ffffff; } /* scoring in progress (green) */ -.Let-F {background-color:#cccccc; color: #ffffff; } /* Match Over (darker Gray) */ - -.Spurious span {padding:0 3px; background-color:#d0d0d0; } - -.TargetLetters span.Anomaly {border: 3px solid red;} - -.TargetAssigned{font-weight:bold; text-align:center; background-color:#33ffff;} -.TargetRequested, .BarcodeRequested {font-weight:bold; text-align:center; background-color:#dddddd;} -.ToBeEnabled {font-weight:bold; text-align:center; background-color:#ffaa33;} -.hidden {display: none;} -.Legend {clear: both; padding: 10px;} -.TgtImport {display: none;} - -.PopUp { - display:none; - position:fixed; - min-width:260px; - min-height:250px; - max-width:500px; - max-height:30%; - margin:auto; - top:0;bottom:0;left:0;right:0; - background-color:white; - border:1px solid gray; - font-size: 120%; - border-radius: 3px; - box-shadow: 2px 2px 1px #888888; -} - -.PopUp .Let-G {background-color: #ffff00; color:#000000; } - -select { - max-width:20em; -} - -.PopUpEvent {text-align:center;padding:0.1em;margin-bottom:0.5em;} - -.PopUpSpot {padding:0.2em; clear: both; line-height: 2.5em; display:flex; flex-direction:row; box-sizing:border-box; justify-content: space-between;} - -.PopUpSpot .Let-Z, -.PopUpSpot .Let-B, -.PopUpSpot .Let-S, -.PopUpSpot .Let-O, -.PopUpSpot .Let-G {flex:1 1 5%; box-sizing:border-box; text-align:center; font-size:1.2rem; font-weight:bold; border:1px solid gray; line-height:1.5rem; margin-left:0.5rem; padding:0.25rem 0;} -.PopUpSpot .Let-G {flex: 0 0 6%;margin-left:0;} -.PopUpSpot .Let-S {border:none;} -.PopUpSpot .Let-B {font-size:80%} -.PopUpSpot .SpanName {flex:2 0 15%; box-sizing:border-box; overflow:hidden; white-space:nowrap; line-height:2.2rem; margin-left:0.5rem; } -.PopUpSpot .Let-Z + .Let-B, -.PopUpSpot .Let-Z + .Let-O, -.PopUpSpot .Let-Z + .Let-S, -.PopUpSpot .Let-S + .Let-B {margin-left:0;} -.PopUpCloseImg { content:url("../../Common/Images/isk-close.svg"); height: 1.2em; width: 1.2em; float: right} - -.DisableSelection { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; outline: 0; } - -.ClickableDiv { cursor: pointer; -webkit-user-select: none;/* Chrome/Safari */ -moz-user-select: none;/* Firefox */ -ms-user-select: none;/* IE10+ */ /* Not implemented yet */ -o-user-select: none; user-select: none;} -.ContextMenuDiv { cursor: context-menu; -webkit-user-select: none;/* Chrome/Safari */ -moz-user-select: none;/* Firefox */ -ms-user-select: none;/* IE10+ */ /* Not implemented yet */ -o-user-select: none; user-select: none;} - -#PopUpCmd {bottom:0;width:100%; position:absolute; text-align:center; padding-bottom: 3px;} -#PopUpContent { padding: 5px; } - -th[id$=Order][ordertype=ordasc]:after {content: url('../../Common/Images/isk-arrow-up.png');margin-left:0.7em;} -th[id$=Order][ordertype=orddesc]:after {content: url('../../Common/Images/isk-arrow-down.png');margin-left:0.7em;} -th[id$=Order] {text-decoration: underline;cursor: pointer;} - -.LiteIndex .Button {margin-top:0.5em;margin-bottom: 0.5em;} diff --git a/src/Api/ISK/Ind-GetComboSchedule.php b/src/Api/ISK/Ind-GetComboSchedule.php deleted file mode 100644 index 338b1427..00000000 --- a/src/Api/ISK/Ind-GetComboSchedule.php +++ /dev/null @@ -1,35 +0,0 @@ - '', 'session'=>'', 'distance'=>0, 'maxdist'=>0, 'end'=>0)); - -foreach(getApiScheduledSessions(['TourId' => $_SESSION['TourId'], 'OnlyToday' => !empty($_REQUEST["onlyToday"])]) as $myRow) { - // skip elimination for now - //if($myRow->keyValue[0]=='E') continue; - $MaxEnds=$myRow->MaxEnds; - $desc=''; - $selected=0; - if(array_key_exists('type',$IskSequence) and array_key_exists('maxdist',$IskSequence) and array_key_exists('session',$IskSequence)) { - $selected=($myRow->keyValue==$IskSequence['type'].$IskSequence['maxdist'].$IskSequence['session'] ? '1' : '0'); - } - $active='0'; - $xml.=' - ' . $myRow->keyValue . ' - Description . ']]> - '; -} - -header('Content-Type: text/xml'); -print ''; -print $xml; -print ''; diff --git a/src/Api/ISK/Ind-GetTabletOnline.php b/src/Api/ISK/Ind-GetTabletOnline.php deleted file mode 100644 index 2d8c7d1d..00000000 --- a/src/Api/ISK/Ind-GetTabletOnline.php +++ /dev/null @@ -1,37 +0,0 @@ -DOCUMENT_PATH.'Common/Images/status-couldshoot.gif'; - -if (CheckTourSession()) { - $Img=$CFG->DOCUMENT_PATH.'Common/Images/status-noshoot.gif'; - $Select - = "SELECT * - FROM IskDevices where IskDvCode=".StrSafe_DB($_REQUEST['device']); - $Rs=safe_r_sql($Select); - if ($myRow=safe_fetch($Rs) and checkOnline($myRow->IskDvIpAddress)) { - $Img=$CFG->DOCUMENT_PATH.'Common/Images/status-ok.gif'; - } - -} - - - -header('Content-Type: image/gif'); -readfile($Img); - -function checkOnline($IP) { - unset($Output); - unset($RetVal); - $fp = @stream_socket_client("tcp://{$IP}:80", $errno, $errstr, 0.5); - if (!$fp) { - if($errno==111) { - // connection REFUSED, so device is online - return 1; - } - } else { - fclose($fp); - return 1; - } - return 0; -} \ No newline at end of file diff --git a/src/Api/ISK/Ind-GetTabletsInfo.php b/src/Api/ISK/Ind-GetTabletsInfo.php deleted file mode 100644 index bb1ce495..00000000 --- a/src/Api/ISK/Ind-GetTabletsInfo.php +++ /dev/null @@ -1,65 +0,0 @@ -0) { - while ($myRow=safe_fetch($Rs)) { - $xml.=''; - } - } - - - header('Content-Type: text/xml'); - print ''; - print $xml; - print ''; diff --git a/src/Api/ISK/Ind-SetDeviceInfo.php b/src/Api/ISK/Ind-SetDeviceInfo.php deleted file mode 100644 index 44ca512b..00000000 --- a/src/Api/ISK/Ind-SetDeviceInfo.php +++ /dev/null @@ -1,31 +0,0 @@ -'; \ No newline at end of file diff --git a/src/Api/ISK/Ind-UpdateSequence.php b/src/Api/ISK/Ind-UpdateSequence.php deleted file mode 100644 index fbfa360c..00000000 --- a/src/Api/ISK/Ind-UpdateSequence.php +++ /dev/null @@ -1,45 +0,0 @@ - 1); - -if (!CheckTourSession()) { - JsonOut($JSON); -} -checkACL(AclISKServer, AclReadWrite,false); - -$ses = (!empty($_REQUEST["session"]) ? $_REQUEST["session"] : ""); -$dist = (!empty($_REQUEST["distance"]) ? $_REQUEST["distance"] : 0); -$end = (!empty($_REQUEST["end"]) ? $_REQUEST["end"] : 0); -$type = 0; -$maxDist = ''; -if($ses != "") { - $type = substr($ses,0,1); - if($type=='Q' || $type=='E') { - $maxDist = substr($ses,1,1); - $ses = substr($ses,2); - } else { - $ses = substr($ses,1); - } - $NewSession=array("type"=>$type, "session"=>$ses, "distance"=>$dist, "maxdist"=>$maxDist, "end"=>$end); - $tmp = getModuleParameter('ISK', 'Sequence', array("type"=>'', "session"=>'', "distance"=>'', "maxdist"=>'', "end"=>'')); - // force all devices to reload themselves! - if($tmp!=$NewSession) { - safe_w_sql("update IskDevices set IskDvState=3 where IskDvTournament={$_SESSION["TourId"]}"); - } - setModuleParameter('ISK', 'Sequence', $NewSession); - delModuleParameter('ISK', 'StickyEnds'); - safe_w_SQL("UPDATE IskDevices SET `IskDvState`=2 WHERE IskDvTournament=" . StrSafe_DB($_SESSION["TourId"]) . " AND `IskDvState`=1 "); -} - -$tmp = getModuleParameter('ISK', 'Sequence', array("type"=>'', "session"=>'', "distance"=>'', "maxdist"=>'', "end"=>''), $_SESSION["TourId"], true); - -$JSON['error']=0; -$JSON['type']=$tmp['type']; -$JSON['session']=$tmp['session']; -$JSON['distance']=$tmp['distance']; -$JSON['maxdist']=$tmp['maxdist']; -$JSON['end']=$tmp['end']; - -JsonOut($JSON); diff --git a/src/Api/ISK/Lib.php b/src/Api/ISK/Lib.php deleted file mode 100644 index 0fdc874f..00000000 --- a/src/Api/ISK/Lib.php +++ /dev/null @@ -1,111 +0,0 @@ -TgTargetNo,1)); - } else { - $Tmp[]=$r->TgTargetNo; - } - } - if($Tmp and !$returnArray) { - $TargetNo=implode("','", $Tmp); - } - - if($returnArray) { - if($Tmp) { - return $Tmp; - } else { - return array($TargetNo); - } - } - return $TargetNo; -} - -function GetLockableSessions() { - $SQL=array(); - -// QUALIFICATIONS - $SQL[]="select - concat_ws('|','Q', QuSession, DiDistance) as LockKey, - 'Q' as SesType, - SesName as Description, - DiDistance as Distance, - 0 as FirstPhase, - 0 as Order1, SesOrder as Order2, DiDistance as Order3 - from Qualifications - inner join Entries on EnId=QuId and EnTournament={$_SESSION['TourId']} - inner join DistanceInformation on DiTournament=EnTournament and DiSession=QuSession and DiType='Q' - left join Session on SesTournament=EnTournament and SesType='Q' and SesOrder=QuSession - where QuSession>0 - group by QuSession, DiDistance"; - -// ELIMINATIONS - $SQL[]="select - concat_ws('|','E', ElElimPhase, ElEventCode) as LockKey, - 'E' as SesType, - concat(SesName, ' - ', ElEventCode) as Description, - 1 as Distance, - 0 as FirstPhase, - 1 as Order1, ElElimPhase as Order2, EvProgr as Order3 - from Eliminations - inner join Events on EvCode=ElEventCode and EvTeamEvent=0 and EvTournament=ElTournament - left join Session on SesTournament=ElTournament and SesType='E' and SesOrder=ElSession - where ElTournament={$_SESSION['TourId']} - group by ElEventCode, ElElimPhase"; - -// Individual Matches - $SQL[]="select - concat_ws('|','I',GrPhase,FinEvent) as LockKey, - 'I' as SesType, - EvEventName as Description, - GrPhase as Distance, - EvFinalFirstPhase as FirstPhase, - 3 as Order1, EvProgr as Order2, 128-GrPhase as Order3 - from Finals - inner join Events on EvCode=FinEvent and EvTeamEvent=0 and EvTournament=FinTournament and EvFinalFirstPhase>0 - inner join Grids on GrMatchNo=FinMatchNo - where FinTournament={$_SESSION['TourId']} - group by GrPhase, FinEvent"; - -// Team Matches - $SQL[]="select - concat_ws('|','T',GrPhase,TfEvent) as LockKey, - 'T' as SesType, - EvEventName as Description, - GrPhase as Distance, - EvFinalFirstPhase as FirstPhase, - 4 as Order1, EvProgr as Order2, 128-GrPhase as Order3 - from TeamFinals - inner join Events on EvCode=TfEvent and EvTeamEvent=1 and EvTournament=TfTournament and EvFinalFirstPhase>0 - inner join Grids on GrMatchNo=TfMatchNo - where TfTournament={$_SESSION['TourId']} - group by GrPhase, TfEvent"; - - return "(".implode(') UNION (', $SQL).") order by Order1, Order2, Order3"; -} diff --git a/src/Api/ISK/Lite-Action.php b/src/Api/ISK/Lite-Action.php deleted file mode 100644 index 129c8756..00000000 --- a/src/Api/ISK/Lite-Action.php +++ /dev/null @@ -1,266 +0,0 @@ -1,'msg'=>get_text('ErrGenericError', 'Errors')); - -if(ISK_PRO or !CheckTourSession() or checkACL(AclISKServer, AclReadWrite, false)!=AclReadWrite or empty($_REQUEST['act'])) { - JsonOut($JSON); -} - -require_once('Common/Lib/CommonLib.php'); -require_once('Common/Lib/ArrTargets.inc.php'); -require_once('Common/Lib/Obj_RankFactory.php'); -require_once('Common/Lib/Fun_Phases.inc.php'); -require_once('Qualification/Fun_Qualification.local.inc.php'); - -$JSON['error']=0; -$JSON['msg']=''; - -switch($_REQUEST['act']) { - case 'ImportType': - if(isset($_REQUEST['val'])) { - setModuleParameter('ISK', 'ImportType', intval($_REQUEST['val'])); - } else { - $JSON['msg']=get_text('WAToolbox-MissingParams', 'Api'); - $JSON['error']=1; - } - break; - case 'CalcClDivInd': - case 'CalcClDivTeam': - case 'CalcFinInd': - case 'CalcFinTeam': - if(isset($_REQUEST['val'])) { - setModuleParameter('ISK', $_REQUEST['act'], intval($_REQUEST['val'])); - } else { - $JSON['msg']=get_text('WAToolbox-MissingParams', 'Api'); - $JSON['error']=1; - } - break; - case 'ImportQualNow': - if(IsBlocked(BIT_BLOCK_QUAL)) { - $JSON['msg']=get_text('BlockedPhase', 'Tournament'); - $JSON['error']=1; - } else { - - // we import EVERYTHING related to this competition... - $SQL="SELECT Qualifications.*, IskDtArrowstring, IskDtDistance, IskDtEndNo, DIDistance, DIEnds, DIArrows, IF(TfGoldsChars='',ToGoldsChars,TfGoldsChars) as GoldsChars, IF(TfXNineChars='',ToXNineChars,TfXNineChars) as XNineChars, - `TfGoldsChars1`, `TfXNineChars1`, `TfGoldsChars2`, `TfXNineChars2`, `TfGoldsChars3`, `TfXNineChars3`, `TfGoldsChars4`, `TfXNineChars4`, `TfGoldsChars5`, `TfXNineChars5`, `TfGoldsChars6`, `TfXNineChars6`, `TfGoldsChars7`, `TfXNineChars7`, `TfGoldsChars8`, `TfXNineChars8`, - ToElabTeam!=127 as MakeTeams - from Qualifications - INNER JOIN Entries ON QuId=EnId - INNER JOIN Tournament ON ToId=EnTournament - INNER JOIN TargetFaces on TfId=EnTargetFace and TfTournament=EnTournament - INNER JOIN DistanceInformation ON DITournament=EnTournament AND DISession=QuSession AND DIType='Q' - INNER JOIN IskData ON iskDtTournament=EnTournament AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' AND IskDtTargetNo=QuTargetNo AND IskDtDistance=DIDistance - WHERE EnTournament={$_SESSION['TourId']}"; - $updated=array(); - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Dist=$r->IskDtDistance; - $arrowString = str_pad($r->{'QuD'.$Dist.'Arrowstring'},$r->DIArrows*$r->DIEnds); - for($i=0; $i<$r->DIArrows; $i++){ - if($r->IskDtArrowstring[$i]!=' '){ - $arrowString[($r->IskDtEndNo-1)*$r->DIArrows+$i]=$r->IskDtArrowstring[$i]; - } - } - $Score=0; - $Gold=0; - $XNine=0; - list($Score,$Gold,$XNine)=ValutaArrowStringGX($arrowString,(empty($r->{"TfGoldsChars".$Dist}) ? $r->GoldsChars : $r->{"TfGoldsChars".$Dist}), (empty($r->{"TfXNineChars".$Dist}) ? $r->XNineChars : $r->{"TfXNineChars".$Dist})); - $Hits=strlen(str_replace(' ', '', $arrowString)); - - $Update = "UPDATE Qualifications SET - QuD{$Dist}Score={$Score}, QuD{$Dist}Gold={$Gold}, QuD{$Dist}Xnine={$XNine}, QuD{$Dist}ArrowString='{$arrowString}', QuD{$Dist}Hits={$Hits}, - QuScore=QuD1Score+QuD2Score+QuD3Score+QuD4Score+QuD5Score+QuD6Score+QuD7Score+QuD8Score, - QuGold=QuD1Gold+QuD2Gold+QuD3Gold+QuD4Gold+QuD5Gold+QuD6Gold+QuD7Gold+QuD8Gold, - QuXnine=QuD1Xnine+QuD2Xnine+QuD3Xnine+QuD4Xnine+QuD5Xnine+QuD6Xnine+QuD7Xnine+QuD8Xnine, - QuHits=QuD1Hits+QuD2Hits+QuD3Hits+QuD4Hits+QuD5Hits+QuD6Hits+QuD7Hits+QuD8Hits, - QuTimestamp=" . StrSafe_DB(date('Y-m-d H:i:s')) . " - WHERE QuId={$r->QuId}"; - safe_w_SQL($Update); - if(safe_w_affected_rows()) { - $updated[$Dist][] = $r->QuId; - } - $Update = "DELETE FROM IskData - WHERE IskDtTournament={$_SESSION['TourId']} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' - AND IskDtTargetNo='{$r->QuTargetNo}' AND IskDtDistance={$Dist} AND IskDtEndNo={$r->IskDtEndNo} AND IskDtArrowstring='{$r->IskDtArrowstring}'"; - safe_w_SQL($Update); - - // calculate snapshot if any - if(getModuleParameter('ISK', 'Snapshot')) { - useArrowsSnapshotTarget($Dist, $r->QuTargetNo, strlen(rtrim($arrowString))); - } - } - foreach($updated as $Dist => $upd) { - $EnIds=implode(",",$upd); - $SQL = "SELECT DISTINCT EnClass, EnDivision, MAX(EnIndClEvent) as IndCl, Max(EnTeamClEvent) as TeamCl - FROM Entries - WHERE EnTournament={$_SESSION['TourId']} AND EnId IN ($EnIds) - group by EnClass, EnDivision"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if ($r->IndCl != 0) { - Obj_RankFactory::create('DivClass', array('tournament' => $_SESSION['TourId'], 'events' => $r->EnDivision . $r->EnClass, 'dist' => $Dist))->calculate(); - Obj_RankFactory::create('DivClass', array('tournament' => $_SESSION['TourId'], 'events' => $r->EnDivision . $r->EnClass, 'dist' => 0))->calculate(); - } - if ($r->MakeTeams and $r->TeamCl != 0) { - MakeTeams(NULL, $r->EnDivision . $r->EnClass, $_SESSION['TourId']); - } - } - // Abs recalculation - $SQL="select distinct IndEvent - from Individuals - inner join Entries on EnId=IndId and EnTournament=IndTournament and EnIndFEvent=1 - where IndId in ($EnIds) and IndTournament={$_SESSION['TourId']}"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - Obj_RankFactory::create('Abs', array('tournament' => $_SESSION['TourId'], 'events' => $r->IndEvent, 'dist' => $Dist))->calculate(); - Obj_RankFactory::create('Abs', array('tournament' => $_SESSION['TourId'], 'events' => $r->IndEvent, 'dist' => 0))->calculate(); - ResetShootoff($r->IndEvent, 0, 0, $_SESSION['TourId']); - } - - // Abs Team recalc - if($r->MakeTeams) { - - $SQL = "SELECT DISTINCT EvCode, EnDivision, EnClass - FROM Events - INNER JOIN EventClass ON EvCode=EcCode AND EcTeamEvent>0 AND EvTournament=EcTournament - inner join Entries on EnId in ($EnIds) and EnTournament=EvTournament and EnDivision=EcDivision and EnClass=EcClass and if(EcSubClass='', true, EnSubClass=EcSubClass) and EnTeamFEvent+EnTeamMixEvent>0 - WHERE EvTournament={$_SESSION['TourId']} and EvTeamEvent=1 - "; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - MakeTeamsAbs(NULL, $r->EnDivision, $r->EnClass, $_SESSION['TourId']); - } - } - } - if($updated) { - $JSON['msg']=get_text('ImportDoneQual', 'ISK'); - } else { - $JSON['msg']=get_text('ImportDoneEmpty', 'ISK'); - } - } - break; - case 'ImportMatchNow': - if(IsBlocked(BIT_BLOCK_IND) or IsBlocked(BIT_BLOCK_TEAM)) { - $JSON['msg']=get_text('BlockedPhase', 'Tournament'); - $JSON['error']=1; - } else { - $SQL=array("SELECT FSEvent, FSMatchNo, FSTeamEvent, FinArrowstring as Arrowstring, FinTiebreak as TieBreak, IskDtArrowstring, IskDtEndNo, GrPhase, IskDtEndNo, IskDtType - FROM FinSchedule - INNER JOIN Grids ON FSMatchNo=GrMatchNo - INNER JOIN IskData ON IskDtTournament=FsTournament AND IskDtMatchNo=FsMatchNo AND IskDtEvent=FSEvent AND IskDtTeamInd=FsTeamEvent AND IskDtType='I' AND IskDtTargetNo='' AND IskDtDistance=0 - INNER JOIN Finals ON FsTournament=FinTournament AND FsMatchNo=FinMatchNo AND FSEvent=FinEvent - WHERE FSTournament={$_SESSION['TourId']} AND FsTeamEvent=0"); - $SQL[]="SELECT FSEvent, FSMatchNo, FSTeamEvent, TfArrowstring as Arrowstring, TfTiebreak as TieBreak, IskDtArrowstring, IskDtEndNo, GrPhase, IskDtEndNo, IskDtType - FROM FinSchedule - INNER JOIN Grids ON FSMatchNo=GrMatchNo - INNER JOIN IskData ON IskDtTournament=FsTournament AND IskDtMatchNo=FsMatchNo AND IskDtEvent=FSEvent AND IskDtTeamInd=FsTeamEvent AND IskDtType='T' AND IskDtTargetNo='' AND IskDtDistance=0 - INNER JOIN TeamFinals ON FsTournament=TfTournament AND FsMatchNo=TfMatchNo AND FSEvent=TfEvent - WHERE FSTournament={$_SESSION['TourId']} AND FsTeamEvent=1"; - $q=safe_r_SQL('('.implode(') UNION (', $SQL).')'); - if(safe_num_rows($q)) { - $JSON['msg']=get_text('ImportDoneMatches', 'ISK'); - } else { - $JSON['msg']=get_text('ImportDoneEmpty', 'ISK'); - } - while($r=safe_fetch($q)){ - $obj=getEventArrowsParams($r->FSEvent,$r->GrPhase,$r->FSTeamEvent,$_SESSION['TourId']); - $isSO = ($End > $obj->ends); - - $arrowString = ($isSO ? str_pad($r->TieBreak,$obj->so) : str_pad($r->Arrowstring,$obj->arrows)); - for($i=0; $i<($isSO ? $obj->so : $obj->arrows); $i++){ - if($r->IskDtArrowstring[$i]!=' '){ - $arrowString[($isSO ? 0 : ($r->IskDtEndNo-1)*$obj->arrows)+$i]=$r->IskDtArrowstring[$i]; - } - } - $startPos = (($isSO ? ($obj->arrows*$obj->ends) : 0) +1); - UpdateArrowString($r->FSMatchNo, $r->FSEvent, $r->FSTeamEvent, $arrowString, $startPos, ($startPos+($isSO ? $obj->so : $obj->arrows*$obj->ends)-1), $_SESSION['TourId']); - - $Update = "DELETE FROM IskData - WHERE IskDtTournament={$_SESSION['TourId']} AND IskDtMatchNo={$r->FSMatchNo} AND IskDtEvent='{$r->FSEvent}' AND IskDtTeamInd={$r->FSTeamEvent} AND IskDtType='{$r->IskDtType}}' - AND IskDtTargetNo='' AND IskDtDistance=0 AND IskDtEndNo={$r->IskDtEndNo} AND IskDtArrowstring='{$r->IskDtArrowstring}'"; - safe_w_SQL($Update); - } - } - break; - case 'doCalcClDivInd': - if(!IsBlocked(BIT_BLOCK_QUAL)) { - $qDist = safe_r_SQL("SELECT ToNumDist from Tournament WHERE ToId={$_SESSION['TourId']}"); - if ($rDist = safe_fetch($qDist)) { - for ($i = 0; $i <= $rDist->ToNumDist; $i++) { - Obj_RankFactory::create('DivClass', array('tournament' => $_SESSION['TourId'], 'dist' => $i))->calculate(); - } - } - Obj_RankFactory::create('DivClass', array('tournament' => $_SESSION['TourId'], 'dist' => 0))->calculate(); - $JSON['msg']=get_text('CalculateNowDone', 'ISK'); - } else { - $JSON['msg']=get_text('BlockedPhase', 'Tournament'); - } - break; - case 'doCalcClDivTeam': - if(!IsBlocked(BIT_BLOCK_QUAL)) { - $JSON['error']=intval(MakeTeams(NULL, NULL)); - if($JSON['error']) { - $JSON['msg']=get_text('MakeTeamsError', 'Tournament'); - } else { - $JSON['msg']=get_text('CalculateNowDone', 'ISK'); - } - } else { - $JSON['msg']=get_text('BlockedPhase', 'Tournament'); - } - break; - case 'doCalcFinInd': - if(!IsBlocked(BIT_BLOCK_QUAL)) { - $qDist = safe_r_SQL("SELECT ToNumDist from Tournament WHERE ToId={$_SESSION['TourId']}"); - if ($rDist = safe_fetch($qDist)) { - for ($i = 0; $i <= $rDist->ToNumDist; $i++) { - Obj_RankFactory::create('Abs', array('tournament' => $_SESSION['TourId'], 'dist' => $i))->calculate(); - } - } - Obj_RankFactory::create('Abs', array('tournament' => $_SESSION['TourId'], 'dist' => 0))->calculate(); - $JSON['msg']=get_text('CalculateNowDone', 'ISK'); - } else { - $JSON['msg']=get_text('BlockedPhase', 'Tournament'); - } - break; - break; - case 'doCalcFinTeam': - if(!IsBlocked(BIT_BLOCK_QUAL)) { - $JSON['error']=intval(MakeTeamsAbs(NULL,null,null)); - if($JSON['error']) { - $JSON['msg']=get_text('MakeTeamsError', 'Tournament'); - } else { - $JSON['msg']=get_text('CalculateNowDone', 'ISK'); - } - } else { - $JSON['msg']=get_text('BlockedPhase', 'Tournament'); - } - break; - case 'DeleteDataQual': - // removes all data from the temp table related to this competition - safe_w_sql("delete from IskData where iskDtTournament={$_SESSION['TourId']} AND IskDtType='Q'"); - break; - case 'DeleteDataMatch': - // removes all data from the temp table related to this competition - safe_w_sql("delete from IskData where iskDtTournament={$_SESSION['TourId']} AND IskDtType in ('I','T')"); - break; - default: - $JSON['error']=1; - JsonOut($JSON); -} - -JsonOut($JSON); diff --git a/src/Api/ISK/Lite.js b/src/Api/ISK/Lite.js deleted file mode 100644 index d6c700b1..00000000 --- a/src/Api/ISK/Lite.js +++ /dev/null @@ -1,51 +0,0 @@ -$(function() { - if(ImportType==0) { - $('.Cl-ImportType').hide(); - } - if(CalcDivClI==0) { - $("#doCalcClDivInd").hide(); - } - if(CalcDivClT==0) { - $("#doCalcClDivTeam").hide(); - } - if(CalcFinI==0) { - $("#doCalcFinInd").hide(); - } - if(CalcFinT==0) { - $("#doCalcFinTeam").hide(); - } -}); - -function LiteAction(obj) { - $.getJSON('Lite-Action.php', {'act':obj.name, 'val':obj.value}, function(data) { - if(data.error==0) { - if(obj.value==0) { - if(obj.name.indexOf('Calc')===0) { - LiteButton($("#do" + obj.name)[0]); - $("#do" + obj.name).hide(); - } else { - $(".Cl-" + obj.name).hide(); - } - } else { - if(obj.name.indexOf('Calc')===0) { - $("#do" + obj.name).show(); - } else { - $(".Cl-" + obj.name).show(); - } - } - } - }); -} -function LiteButton(obj) { - $.getJSON('Lite-Action.php', {'act':obj.id}, function(data) { - if(data.msg!='') { - alert(data.msg); - } - }); -} - -function LiteDelete(obj) { - if(confirm(MsgConfirm)) { - LiteButton(obj); - } -} diff --git a/src/Api/ISK/Lite.php b/src/Api/ISK/Lite.php deleted file mode 100644 index e6d7a294..00000000 --- a/src/Api/ISK/Lite.php +++ /dev/null @@ -1,115 +0,0 @@ -htmlspecialchars(get_text('MsgAreYouSure')), - 'ImportType'=>$ImportType, - 'CalcDivClI'=>$ClDivIndCalc, - 'CalcDivClT'=>$ClDivTeamCalc, - 'CalcFinI'=>$FinIndCalc, - 'CalcFinT'=>$FinTeamCalc, - )), - '', - '', - '', -); - - -include('Common/Templates/head.php'); - -echo ''; -echo ''; -echo ''. - ''. - ''. - ''. - ''. - ''. - ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ' - '; -echo ''; -echo ''; -echo ''. - ''. - ''. - ''. - ''. - ''; -echo ''; -echo ''. - ''. - ''. - ''. - ''. - ''. - ''; -echo ''. - ''. - ''. - ''. - ''. - ''. - ''; -echo ''; -echo ''. - ''. - ''. - ''. - ''. - ''. - ''; -echo ''. - ''. - ''. - ''. - ''. - ''. - ''; -echo '
' . get_text('AutoImportSettings', 'ISK') . '
' . get_text('AfterEachArrow', 'ISK') . '' . get_text('AfterEachEnd', 'ISK') . '' . get_text('Manually', 'ISK') . ' 
'.get_text('ImportType', 'ISK').'
'.get_text('ImportNow','ISK').'
-
'.get_text('ImportNowMatches','ISK').'
'.get_text('TruncateQual','ISK').'
-
'.get_text('TruncateMatches','ISK').'
' . get_text('AfterEachImport', 'ISK') . '' . get_text('Manually', 'ISK') . ' 
'.get_text('AutoImportSettings', 'Help').'
'.get_text('CalcClDivInd', 'ISK').'
'.get_text('CalculateNow','ISK').'
'.get_text('CalcFinInd', 'ISK').'
'.get_text('CalculateNow','ISK').'
'.get_text('CalcClDivTeam', 'ISK').'
'.get_text('CalculateNow','ISK').'
'.get_text('CalcFinTeam', 'ISK').'
'.get_text('CalculateNow','ISK').'
'; - -include('Common/Templates/tail.php'); diff --git a/src/Api/ISK/PdfCheck.php b/src/Api/ISK/PdfCheck.php deleted file mode 100644 index bdac0e06..00000000 --- a/src/Api/ISK/PdfCheck.php +++ /dev/null @@ -1,184 +0,0 @@ -'); - } - - $Session=intval($tmp[1]); -} - -$SubTitle=''; -if($Session==-1) { - // general PDF, so all numbers are per session - $TotSql="select QuSession, count(*) as Total, ifnull(SesName, concat('Session ',QuSession)) as Session - from Qualifications - inner join Entries on EnId=QuId and EnTournament={$_SESSION['TourId']} - left join Session on SesType='Q' and SesTournament=EnTournament and SesOrder=QuSession - group by QuSession - order by QuSession"; - - $SQL="select QuSession, count(*) as Total, greatest(QuIrmType, IndIrmType) as QualStatus, IrmType, QuHits as Arrows - from Qualifications - inner join Entries on QuId=EnId - left join Individuals on IndId=QuId - left join IrmTypes on IrmId=greatest(QuIrmType, IndIrmType) - where EnTournament={$_SESSION['TourId']} - group by QuSession, Arrows, IrmType - order by QualStatus=0, QualStatus, Arrows, QuSession"; -} else { - // Session PDF, all numbers are per event - $TotSql="select concat(EnDivision,EnClass) as QuSession, count(*) as Total, concat(ifnull(DivDescription, ''), ' ', ifnull(ClDescription, '')) as Session - from Qualifications - inner join Entries on EnId=QuId and EnTournament={$_SESSION['TourId']} - left join Divisions on DivTournament=EnTournament and DivId=EnDivision - left join Classes on ClTournament=EnTournament and ClId=EnClass - where QuSession=$Session - group by concat(EnDivision,EnClass) - order by DivViewOrder,ClViewOrder"; - - $SQL="select concat(EnDivision,EnClass) as QuSession, count(*) as Total, greatest(QuIrmType, IndIrmType) as QualStatus, IrmType, QuHits as Arrows - from Qualifications - inner join Entries on EnId=QuId - left join Individuals on IndId=QuId - left join Divisions on DivTournament=EnTournament and DivId=EnDivision - left join Classes on ClTournament=EnTournament and ClId=EnClass - left join IrmTypes on IrmId=greatest(QuIrmType, IndIrmType) - where EnTournament={$_SESSION['TourId']} and QuSession=$Session - group by concat(EnDivision,EnClass), Arrows, IrmType - order by QualStatus=0, QualStatus, Arrows, concat(EnDivision,EnClass)"; - - $q=safe_r_sql("select SesName from Session where SesOrder=$Session and SesType='Q' and SesTournament={$_SESSION['TourId']}"); - if($r=safe_fetch($q)) { - $SubTitle=$r->SesName; - } else { - $SubTitle=get_text('PopupStatusSession', 'Api', $Session); - } -} - -// FIRST STEP getting gross totals -$q=safe_r_sql($TotSql); -while($r=safe_fetch($q)) { - $Results[$r->QuSession]=array( - 'Total' => $r->Total, - 'Name'=>$r->Session, - 'Arrows'=>array(), - 'IrmTypes'=>array(), - ); -} - -$q=safe_r_sql($SQL); -$Arrows=array(); -$IrmTypes=array(); -while($r=safe_fetch($q)) { - if($r->IrmType) { - $IrmTypes[$r->QualStatus]=$r->IrmType; - if(empty($Results[$r->QuSession]['IrmTypes'][$r->QualStatus])) { - $Results[$r->QuSession]['IrmTypes'][$r->QualStatus]=0; - } - $Results[$r->QuSession]['IrmTypes'][$r->QualStatus]+=$r->Total; - } else { - $Arrows[$r->Arrows]=1; - if(empty($Results[$r->QuSession]['Arrows'][$r->Arrows])) { - $Results[$r->QuSession]['Arrows'][$r->Arrows]=0; - } - $Results[$r->QuSession]['Arrows'][$r->Arrows]+=$r->Total; - } -} - -$Totals=array(); -// create new PDF document -$pdf = new ResultPDF('Control Page', false);//TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); - -$pdf->SetFont('', 'B', 18); -$pdf->Cell(0, 0, 'Competition Arrow Status', 0, 1, 'C'); -if($SubTitle) { - $pdf->ln(4); - $pdf->SetFont('', 'B', 14); - $pdf->Cell(0, 0, $SubTitle, 0, 1, 'C'); -} - -$wCell=min(11, ($pdf->getPageWidth()-80)/(count($Arrows)+count($IrmTypes)+3)); -$hCell=7; -$FontSize=9; - -// HEADER -$pdf->dy(10); -$pdf->SetFont('', 'B', 10); -$pdf->Cell(60, $hCell+2,'', 1, 0, 'L', 1); -$pdf->Cell($wCell,$hCell+2, 'Entries',1,0,'C',1); -$Totals['g']=0; -$Totals['c']=0; -foreach($Arrows as $Num => $dummy) { - $pdf->Cell($wCell,$hCell+2,$Num,1,0,'C',1); - $Totals['a'.$Num]=0; -} -foreach($IrmTypes as $Num => $dummy) { - $pdf->Cell($wCell,$hCell+2,$dummy,1,0,'C',1); - $Totals['i'.$Num]=0; -} -$pdf->Cell($wCell,$hCell+2, 'Total',1,0,'C',1); -$pdf->Ln(); - -foreach($Results as $Id => $Session) { - $pdf->SetFont('', 'B', $FontSize); - $pdf->Cell(10, $hCell, $Id, 'TBL',0,'C'); - $pdf->Cell(50, $hCell, $Session['Name'], 'TBR'); - $pdf->SetFont('', '', $FontSize); - - $pdf->Cell($wCell,$hCell, number_format($Session['Total'], 0,'.','.'),1,0,'R'); - $Totals['g']+=$Session['Total']; - foreach($Arrows as $Num => $dummy) { - if(isset($Session['Arrows'][$Num])) { - $pdf->Cell($wCell,$hCell,number_format($Session['Arrows'][$Num], 0,'.','.'),1,0,'R'); - $Totals['a'.$Num]+=$Session['Arrows'][$Num]; - } else { - $pdf->Cell($wCell,$hCell,'',1,0,'R'); - } - } - foreach($IrmTypes as $Num => $dummy) { - if(isset($Session['IrmTypes'][$Num])) { - $pdf->Cell($wCell,$hCell,number_format($Session['IrmTypes'][$Num], 0,'.','.'),1,0,'R'); - $Totals['i'.$Num]+=$Session['IrmTypes'][$Num]; - } else { - $pdf->Cell($wCell,$hCell,'',1,0,'R'); - } - } - - $Tot=array_sum($Session['Arrows'])+array_sum($Session['IrmTypes']); - $Totals['c']+=$Session['Total']; - $pdf->SetFont('', 'B', $FontSize); - $pdf->Cell($wCell,$hCell,number_format($Tot, 0,'.','.'),1,0,'R'); - if($Tot!=$Session['Total']) { - $pdf->Cell($wCell,$hCell,'*',1,0,'R'); - } - $pdf->Ln(); - $pdf->SetFont('', '', $FontSize); -} - -$pdf->SetFont('', 'B', $FontSize); -$pdf->Cell(60, $hCell+2,'', 0, 0, 'L'); -$pdf->Cell($wCell,$hCell+2, number_format($Totals['g'], 0,'.','.'),1,0,'R'); -foreach($Arrows as $Num => $dummy) { - $pdf->Cell($wCell,$hCell+2,number_format($Totals['a'.$Num], 0,'.','.'),1,0,'R'); -} -foreach($IrmTypes as $Num => $dummy) { - $pdf->Cell($wCell,$hCell+2,number_format($Totals['i'.$Num], 0,'.','.'),1,0,'R'); -} -$pdf->Cell($wCell,$hCell+2, number_format($Totals['c'], 0,'.','.'),1,0,'R'); - -// ------------------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('ControlPage.pdf', 'I'); - diff --git a/src/Api/ISK/Ping.php b/src/Api/ISK/Ping.php deleted file mode 100644 index b703cd96..00000000 --- a/src/Api/ISK/Ping.php +++ /dev/null @@ -1,5 +0,0 @@ -1); - -$OrgQrCode=getQrCode(); -$ChkQrCode=urldecode($qrcode); -if($ChkQrCode) $ChkQrCode=json_decode($ChkQrCode); - -$Resp=array(); - -if($OrgQrCode and $ChkQrCode) { - $JsonResponse["error"]=0; - foreach($OrgQrCode as $k=>$v) { - // check the exact match of each element of the original QrCode against the equivalent element of the received QrCode - if(!isset($ChkQrCode->{$k}) or $ChkQrCode->{$k}!=$v) { - $JsonResponse["error"]=1; - $Resp['sent'][$k]=$v; - } else { - unset($ChkQrCode->{$k}); // this to ensure the resulting ChkQrCode is empty if everything is OK - } - } - $tmp=get_object_vars($ChkQrCode); - if(!empty($tmp)) { - // there were other elements that should not have been there! - $JsonResponse["error"]=1; - $Resp['received']=$ChkQrCode; - } - if(!$JsonResponse["error"]) { - safe_w_SQL("UPDATE IskDevices SET IskDvState='1' WHERE IskDvDevice='{$DeviceId}' AND IskDvState='3'"); - } -} elseif($OrgQrCode==$ChkQrCode or !$OrgQrCode) { - $JsonResponse["error"]=0; -} - -SendResult($JsonResponse); \ No newline at end of file diff --git a/src/Api/ISK/ProGetQrCode.php b/src/Api/ISK/ProGetQrCode.php deleted file mode 100644 index c7a4c61c..00000000 --- a/src/Api/ISK/ProGetQrCode.php +++ /dev/null @@ -1,34 +0,0 @@ -0,"qrcode"=>"", "msg"=>""); - -safe_w_SQL("UPDATE IskDevices SET - IskDvBattery='{$battLevel}' - WHERE IskDvDevice='{$DeviceId}'"); - -$q=safe_r_sql("SELECT IskDvState, IskDvTournament FROM IskDevices WHERE IskDvDevice='{$DeviceId}'"); -if(safe_num_rows($q)==1) { - $r = safe_fetch($q); - // updates all the status of the devices that requested authorization and were already authorized to 2 (code to be sent) - safe_w_sql("update IskDevices set IskDvState=2, IskDvAuthRequest=0 where IskDvTournament=$r->IskDvTournament and IskDvAuthRequest=1 and IskDvState=1"); - if($r->IskDvState==0) { - $JsonResponse["error"] = 1; - } else { - if($tmp=getQrCode('2,3')) { // asks for a code to be sent or already sent - $JsonResponse["qrcode"] = $tmp; - // device goes in "qrcode sent, waiting for confirmation" state - $q=safe_r_sql("update IskDevices set IskDvState=3, IskDvAuthRequest=0, IskDvRunningConf=".StrSafe_DB(json_encode($tmp))." WHERE IskDvDevice='{$DeviceId}'"); - } - } -} - -SendResult($JsonResponse); diff --git a/src/Api/ISK/ProRequestAuth.php b/src/Api/ISK/ProRequestAuth.php deleted file mode 100644 index c99c1233..00000000 --- a/src/Api/ISK/ProRequestAuth.php +++ /dev/null @@ -1,135 +0,0 @@ -"NO", "code"=>"", 'isk' => 'NO'); -// search if there is a QRcode passed along -$QR=''; -if(!empty($_REQUEST['qr'])) { - $QR=json_decode($_REQUEST['qr']); - $CompCode=$QR->c; - if(($sepPosition = strpos($CompCode,'|'))!==false) { - $CompPin=substr($CompCode,$sepPosition+1); - $CompCode=substr($CompCode,0,$sepPosition); - } - $CompId=getIdFromCode($CompCode); - if(!$CompId) { - $CompId=0; - } -} - -if($CompId) { - // get the ISK-status of the competition... - $q=safe_r_sql("select ToOptions from Tournament where ToId=$CompId"); - $r=safe_fetch($q); - if(!empty($r->ToOptions)) { - $tmp=unserialize($r->ToOptions); - if(isset($tmp['UseApi'])) { - $tmpPin = getModuleParameter('ISK', 'ServerUrlPin', '', $CompId); - if(empty($tmpPin) OR $CompPin == $tmpPin) { - switch($tmp['UseApi']) { - case '1': - $JsonResponse['isk']='LITE'; - break; - case '2': - $JsonResponse['isk']='PRO'; - break; - case '3': - $JsonResponse['isk']='LIVE'; - SendResult($JsonResponse); - die(); - break; - } - } else { - // not valid so stops here - SendResult($JsonResponse); - } - } - } -} - -$checkTgtInPro= -1; -$SQL=array( - "IskDvDevice='{$DeviceId}'", - "IskDvAppVersion=1", - "IskDvIpAddress='{$_SERVER['REMOTE_ADDR']}'", - "IskDvLastSeen=".StrSafe_DB(date('Y-m-d H:i:s')), - "IskDvAuthRequest=1", - ); - -// check if some more info is there... -if(!empty($QR->st) and isset($QR->s) and isset($QR->t)) { - // a complete scorecard QRcode has been requested, so we can already "prepare"" things on the device - switch($QR->st) { - case 'Q': // Qualifications - $SQL[]="IskDvTargetReq=".intval($QR->t); - break; - case 'E1': // Eliminations - case 'E2': // Eliminations - $items=explode('|', $QR->t); - $SQL[]="IskDvTargetReq=".intval($items[2]); - break; - case 'MI': // Individual matches - case 'MT': // Team matches - if(!isset($QR->d)) { - break; - } - $q=safe_r_sql("select FsTarget from FinSchedule - where FsTournament=$CompId - and FSTeamEvent=".($QR->st=='MI' ? 0 : 1)." - and FsEvent=".StrSafe_DB($QR->s)." - and FsMatchNo=".intval($QR->d)); - if($r=safe_fetch($q)) { - $SQL[]="IskDvTargetReq=".intval($r->FsTarget); - $SQL[]="IskDvTarget=IF((IskDvTarget!=0 AND IskDvTournament={$CompId}),".intval($r->FsTarget).",IskDvTarget)"; - $checkTgtInPro = intval($r->FsTarget); - } - break; - } -} - - -$q=safe_r_sql("SELECT * FROM IskDevices WHERE IskDvDevice='{$DeviceId}'"); -if($r=safe_fetch($q)) { - if($CompId) { - if(!($JsonResponse['isk']=='PRO' AND $checkTgtInPro != -1 AND $r->IskDvTarget!=$checkTgtInPro AND $r->IskDvTournament!=$CompId)) { - $SQL[]="IskDvTournament={$CompId}"; - } - } elseif($JsonResponse['isk']=='PRO' and $r->IskDvTournament!=$CompId) { - $SQL[]='IskDvTournament=0'; - } - // check the scanned code with what we have set in the device - if(!$r->IskDvRunningConf) { - $r->IskDvState=2; - $SQL[] = "IskDvState=2"; - } else { - $RunningConf=@json_decode($r->IskDvRunningConf); - if($RunningConf!=$QR) { - $SQL[] = "IskDvState=2"; - $SQL[] = "IskDvRunningConf=''"; - $r->IskDvState=2; - } - } - safe_w_SQL("UPDATE IskDevices SET ".implode(',', $SQL)." WHERE IskDvDevice='{$DeviceId}'"); - $JsonResponse["code"] = $r->IskDvCode; - if($r->IskDvState!=0) { - $JsonResponse["auth"] = "OK"; - } -} else { - $iskCode="0001"; - $q=safe_r_sql("SELECT IskDvCode FROM IskDevices ORDER BY IskDvCode DESC"); - if(safe_num_rows($q)) { - $r=safe_fetch($q); - $iskCode = str_pad(base_convert(base_convert($r->IskDvCode,36,10)+1,10,36),4,'0',STR_PAD_LEFT); - } - - $SQL[]="IskDvCode='{$iskCode}'"; - $SQL[]="IskDvTournament={$CompId}"; - $SQL[]="IskDvState=0"; - - safe_w_SQL("INSERT INTO IskDevices set ".implode(',', $SQL)); - $JsonResponse["code"] = $iskCode; -} -$JsonResponse['SQL']=$SQL; -SendResult($JsonResponse); diff --git a/src/Api/ISK/QRcodes.php b/src/Api/ISK/QRcodes.php deleted file mode 100644 index a801f874..00000000 --- a/src/Api/ISK/QRcodes.php +++ /dev/null @@ -1,55 +0,0 @@ - 2, - 'vpadding' => 'auto', - 'hpadding' => 'auto', - 'fgcolor' => array(0,0,0), - 'bgcolor' => false, //array(255,255,255) - 'module_width' => 1, // width of a single module in points - 'module_height' => 1 // height of a single module in points -); - -$Opts=array(); -$Opts['u']=getModuleParameter('ISK', 'ServerUrl').$CFG->ROOT_DIR; -$Opts['c']=$_SESSION['TourCode']; -$tmpPin = getModuleParameter('ISK', 'ServerUrlPin'); -if(!empty($tmpPin)) { - $Opts['c'] .= '|'.$tmpPin; -} - -$Code=json_encode($Opts); - -$Y=35; -$VBlock=($pdf->getPageHeight()-$Y-30); -$Size=min(60, $VBlock-12); -$X=($pdf->getPageWidth()-$Size)/2; - -$ActY=$Y + ($VBlock - $Size)/2; -$pdf->SetFontSize(12); - -$pdf->SetY($ActY-6); -$pdf->SetFont('', 'B', 18); -$pdf->Cell(0, 6, 'ISK-Pro Setup', 0, 1, 'C'); -$pdf->SetFont('', '', 12); -$pdf->Cell(0, 6, $Code, 0, 1, 'C'); -$pdf->write2DBarcode($Code, 'QRCODE,L', $X, $ActY+12, $Size, $Size, $style, 'N'); -$ActY+= $VBlock; - -// ------------------------------------------------------------------- - -//Close and output PDF document -$pdf->Output('QrCode.pdf', 'I'); - diff --git a/src/Api/ISK/README.php b/src/Api/ISK/README.php deleted file mode 100644 index 14f89e5b..00000000 --- a/src/Api/ISK/README.php +++ /dev/null @@ -1,40 +0,0 @@ - device not used -1 => device is OK and configured -2 => device is waiting to send code -3 => code has been sent, waiting for the confirmation - - -***************** -** Results.php ** -***************** -AUTOIMPORT -Stops the autoimport facility, when page is closed reactivates it automagically -the flag is defined in getModuleParameter('ISK', 'StopAutoImport'). -if not present or false (default), the autoimport is ON -If true, the autoimport features is OFF (only manual import is aloud) - -STICKY ENDS -While the page is loaded the operator can stick users to score only in certain ends: -getModuleParameter('ISK', 'StickyEnds', array('SeqCode'=>$Sequence, 'Distance'=>$Dist, 'Ends'=>array())); - -Ends is an array 1-based of ends to stick to. -If the parameter is not there or Ends is an empty array then no sticky ends at all, otherwise ONLY the ends of that distance and that session - - -TODO: sistemare il conteggio delle frecce tra elim e fin basando sul ln(2) della fase... cercare dove è stato già usato - -*/ \ No newline at end of file diff --git a/src/Api/ISK/Res-AutoImport.php b/src/Api/ISK/Res-AutoImport.php deleted file mode 100644 index 708ef83e..00000000 --- a/src/Api/ISK/Res-AutoImport.php +++ /dev/null @@ -1,23 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadWrite,false); - -require_once('Common/Lib/Fun_Modules.php'); - -if(empty($_REQUEST['stop'])) { - delModuleParameter('ISK', 'StopAutoImport'); -} else { - setModuleParameter('ISK', 'StopAutoImport', 1); -} -$Error=0; - -header('Content-Type: text/xml'); -echo ''; -echo ''; diff --git a/src/Api/ISK/Res-DataImport.php b/src/Api/ISK/Res-DataImport.php deleted file mode 100644 index bb76ac9a..00000000 --- a/src/Api/ISK/Res-DataImport.php +++ /dev/null @@ -1,16 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadWrite,false); - -$Error=DoImportData(); - - -header('Content-Type: text/xml'); -die(''); diff --git a/src/Api/ISK/Res-ImportCommon.php b/src/Api/ISK/Res-ImportCommon.php deleted file mode 100644 index 4955e8c5..00000000 --- a/src/Api/ISK/Res-ImportCommon.php +++ /dev/null @@ -1,160 +0,0 @@ -'); - } - - $CompId = $_SESSION["TourId"]; - $Sequence=$_REQUEST['ses']; - $Dist=intval($_REQUEST['dist']); - $End=intval($_REQUEST['end']); - $Filtre=''; - if(!empty($_REQUEST['target'])) { - $Filtre=' AND substr(IskDtTargetNo, -4, 3)+0 = ' . intval($_REQUEST['target']); - } - if(isset($_REQUEST['event']) or isset($_REQUEST['matchno'])) { - $Filtre=" AND IskDtEvent = '{$_REQUEST['event']}' and IskDtMatchNo in ({$_REQUEST['matchno']}) and IskDtTeamInd=".($Sequence[0]=='T' ? 1 : 0); - } - switch($Sequence[0]) { - case 'Q': - $qSes=substr($Sequence,2); - $SQL="SELECT QuId, QuSession, QuTargetNo, QuD{$Dist}Arrowstring as Arrowstring, IskDtArrowstring, IskDtEndNo, DIDistance, DIEnds, DIArrows, - IF(TfGoldsChars{$Dist}='',IF(TfGoldsChars='',ToGoldsChars,TfGoldsChars),TfGoldsChars{$Dist}) as GoldsChars, - IF(TfXNineChars{$Dist}='',IF(TfXNineChars='',ToXNineChars,TfXNineChars),TfXNineChars{$Dist}) as XNineChars - FROM Qualifications - INNER JOIN Entries ON QuId=EnId - INNER JOIN Tournament ON ToId=EnTournament - INNER JOIN TargetFaces on TfId=EnTargetFace and TfTournament=EnTournament - INNER JOIN DistanceInformation ON DITournament=EnTournament AND DISession=QuSession AND DIDistance={$Dist} AND DIType='Q' - INNER JOIN IskData ON iskDtTournament=EnTournament AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' AND IskDtTargetNo=QuTargetNo AND IskDtDistance={$Dist} AND IskDtEndNo={$End} - $Filtre - WHERE EnTournament={$CompId} and QuSession={$qSes}"; - $updated=array(); - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $arrowString = str_pad($r->Arrowstring,$r->DIArrows*$r->DIEnds); - for($i=0; $i<$r->DIArrows; $i++){ - if($r->IskDtArrowstring[$i]!=' '){ - $arrowString[($r->IskDtEndNo-1)*$r->DIArrows+$i]=$r->IskDtArrowstring[$i]; - } - } - list($Score,$Gold,$XNine)=ValutaArrowStringGX($arrowString,$r->GoldsChars,$r->XNineChars); - $Hits=strlen(str_replace(' ', '', $arrowString)); - - $Update = "UPDATE Qualifications SET - QuD{$Dist}Score={$Score}, QuD{$Dist}Gold={$Gold}, QuD{$Dist}Xnine={$XNine}, QuD{$Dist}ArrowString='{$arrowString}', QuD{$Dist}Hits={$Hits}, - QuScore=QuD1Score+QuD2Score+QuD3Score+QuD4Score+QuD5Score+QuD6Score+QuD7Score+QuD8Score, - QuGold=QuD1Gold+QuD2Gold+QuD3Gold+QuD4Gold+QuD5Gold+QuD6Gold+QuD7Gold+QuD8Gold, - QuXnine=QuD1Xnine+QuD2Xnine+QuD3Xnine+QuD4Xnine+QuD5Xnine+QuD6Xnine+QuD7Xnine+QuD8Xnine, - QuHits=QuD1Hits+QuD2Hits+QuD3Hits+QuD4Hits+QuD5Hits+QuD6Hits+QuD7Hits+QuD8Hits, - QuTimestamp=" . StrSafe_DB(date('Y-m-d H:i:s')) . " - WHERE QuId={$r->QuId}"; - safe_w_SQL($Update); - if(safe_w_affected_rows()) { - $updated[] = $r->QuId; - } - $Update = "DELETE FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' - AND IskDtTargetNo='{$r->QuTargetNo}' AND IskDtDistance={$Dist} AND IskDtEndNo={$End} AND IskDtArrowstring='{$r->IskDtArrowstring}'"; - safe_w_SQL($Update); - - // calculate snapshot if any - if(getModuleParameter('ISK', 'Snapshot')) { - useArrowsSnapshotTarget($Dist, $r->QuTargetNo, strlen(rtrim($arrowString))); - } - } - if(count($updated)) { - $EnIds=implode(",",$updated); - $SQL = "SELECT DISTINCT EnClass, EnDivision, MAX(EnIndClEvent) as IndCl, Max(EnTeamClEvent) as TeamCl - FROM Entries - WHERE EnTournament={$CompId} AND EnId IN ($EnIds) - group by EnClass, EnDivision"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if ($r->IndCl != 0) { - Obj_RankFactory::create('DivClass', array('tournament' => $CompId, 'events' => $r->EnDivision . $r->EnClass, 'dist' => $Dist))->calculate(); - Obj_RankFactory::create('DivClass', array('tournament' => $CompId, 'events' => $r->EnDivision . $r->EnClass, 'dist' => 0))->calculate(); - } - if ($r->TeamCl != 0) { - MakeTeams(NULL, $r->EnDivision . $r->EnClass, $CompId); - } - } - // Abs recalculation - $SQL="select distinct IndEvent - from Individuals - inner join Entries on EnId=IndId and EnTournament=IndTournament and EnIndFEvent=1 - where IndId in ($EnIds) and IndTournament={$CompId}"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - Obj_RankFactory::create('Abs', array('tournament' => $CompId, 'events' => $r->IndEvent, 'dist' => $Dist))->calculate(); - Obj_RankFactory::create('Abs', array('tournament' => $CompId, 'events' => $r->IndEvent, 'dist' => 0))->calculate(); - ResetShootoff($r->IndEvent, 0, 0, $CompId); - } - - // Abs Team recalc - $SQL = "SELECT DISTINCT EvCode, EnDivision, EnClass - FROM Events - INNER JOIN EventClass ON EvCode=EcCode AND EcTeamEvent>0 AND EvTournament=EcTournament - inner join Entries on EnId in ($EnIds) and EnTournament=EvTournament and EnDivision=EcDivision and EnClass=EcClass and if(EcSubClass='', true, EnSubClass=EcSubClass) and EnTeamFEvent+EnTeamMixEvent>0 - WHERE EvTournament={$CompId} and EvTeamEvent=1 - "; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - MakeTeamsAbs(NULL, $r->EnDivision, $r->EnClass, $CompId); - } - } - $Error=0; - break; - case 'I': - case 'T': - $fSes=substr($Sequence,1); - $IndTeam = ($Sequence[0]=='I' ? 0:1); - $tblHead = ($IndTeam==0 ? 'Fin' : 'Tf'); - - $SQL="SELECT FSEvent, FSMatchNo, FSTeamEvent, {$tblHead}Arrowstring as Arrowstring, {$tblHead}Tiebreak as TieBreak, IskDtArrowstring, IskDtEndNo, GrPhase - FROM FinSchedule - INNER JOIN Grids ON FSMatchNo=GrMatchNo - INNER JOIN IskData ON IskDtTournament=FsTournament AND IskDtMatchNo=FsMatchNo AND IskDtEvent=FSEvent AND IskDtTeamInd=FsTeamEvent AND IskDtType='" . ($IndTeam==0 ? 'I':'T') . "' AND IskDtTargetNo='' AND IskDtDistance=0 AND IskDtEndNo={$End} - $Filtre - INNER JOIN " . ($IndTeam==0 ? 'Finals' : 'TeamFinals') . " ON FsTournament={$tblHead}Tournament AND FsMatchNo={$tblHead}MatchNo AND FSEvent={$tblHead}Event - WHERE FSTournament={$CompId} AND FsTeamEvent={$IndTeam} - AND CONCAT(FSScheduledDate,FSScheduledTime)=" . StrSafe_DB($fSes); - $q=safe_r_SQL($SQL); - while($r=safe_fetch($q)){ - $obj=getEventArrowsParams($r->FSEvent,$r->GrPhase,$r->FSTeamEvent,$CompId); - $isSO = ($End > $obj->ends); - - $arrowString = ($isSO ? str_pad($r->TieBreak,$obj->so) : str_pad($r->Arrowstring,$obj->arrows)); - for($i=0; $i<($isSO ? $obj->so : $obj->arrows); $i++){ - if($r->IskDtArrowstring[$i]!=' '){ - $arrowString[($isSO ? 0 : ($r->IskDtEndNo-1)*$obj->arrows)+$i]=$r->IskDtArrowstring[$i]; - } - } - $startPos = (($isSO ? ($obj->arrows*$obj->ends) : 0) +1); - - $Closest=0; - if($isSO) { - $Closest=intval($arrowString!=strtoupper($arrowString)); - $arrowString=strtoupper($arrowString); - } - UpdateArrowString($r->FSMatchNo, $r->FSEvent, $IndTeam, $arrowString, $startPos, ($startPos+($isSO ? $obj->so : $obj->arrows*$obj->ends)-1), $CompId, $Closest); - - $Update = "DELETE FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo={$r->FSMatchNo} AND IskDtEvent='{$r->FSEvent}' AND IskDtTeamInd={$IndTeam} AND IskDtType='" . ($IndTeam==0 ? 'I':'T') . "' - AND IskDtTargetNo='' AND IskDtDistance=0 AND IskDtEndNo={$r->IskDtEndNo} AND IskDtArrowstring='{$r->IskDtArrowstring}'"; - safe_w_SQL($Update); - } - $Error=0; - break; - } - return $Error; -} diff --git a/src/Api/ISK/Res-ImportEnd.php b/src/Api/ISK/Res-ImportEnd.php deleted file mode 100644 index b57680f3..00000000 --- a/src/Api/ISK/Res-ImportEnd.php +++ /dev/null @@ -1,108 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadWrite,false); - -$Error=false; -$Calls=array(); -if(isset($_REQUEST['data'])) { - foreach($_REQUEST['data'] as $data) { - $MatchNo=key($data); $tmp=current($data); - $Event=key($tmp); $tmp=current($tmp); - $Team=key($tmp); $tmp=current($tmp); - $Type=key($tmp); $tmp=current($tmp); - $Target=key($tmp); $tmp=current($tmp); - $Distance=key($tmp); $tmp=current($tmp); - $End=key($tmp); - $Arrowstring=current($tmp); - //$tmp=each($data); - //$MatchNo=$tmp['key']; $tmp=each($tmp['value']); - //$Event=$tmp['key']; $tmp=each($tmp['value']); - //$Team=$tmp['key']; $tmp=each($tmp['value']); - //$Type=$tmp['key']; $tmp=each($tmp['value']); - //$Target=$tmp['key']; $tmp=each($tmp['value']); - //$Distance=$tmp['key']; $tmp=each($tmp['value']); - //$End=$tmp['key']; - //$Arrowstring=$tmp['value']; - - if($Event==':::') $Event=''; - if($Target==':::') $Target=''; - - $SQL=''; - switch($Type) { - case 'Q' : - case 'E' : - $SQL="select DISTINCT CONCAT('$Type',ToNumDist,{$Target[0]}) as keyValue, substr(IskDtTargetNo, -4, 3)+0 as Target - from IskData - inner join Tournament on IskDtTournament=ToId - where IskDtTournament={$_SESSION['TourId']} - and IskDtMatchNo=$MatchNo - and IskDtEvent='$Event' - and IskDtTeamInd=$Team - and IskDtType='$Type' - and IskDtTargetNo='$Target' - and IskDtDistance=$Distance - and IskDtEndNo=$End - and IskDtArrowstring='$Arrowstring' - "; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Calls[$r->Target]=array( - 'ses' => $r->keyValue, - 'dist' => $Distance, - 'end' => $End, - 'target' => $r->Target, - ); - } - break; - case 'I': - case 'T': - $SQL="select DISTINCT CONCAT('$Type', FSScheduledDate, FSScheduledTime) as keyValue, FsMatchNo - from IskData - inner join FinSchedule on FsTournament=IskDtTournament and FsMatchNo=IskDtMatchNo and FsEvent=IskDtEvent and FsTeamEvent=IskDtTeamInd - where IskDtTournament={$_SESSION['TourId']} - and IskDtMatchNo=$MatchNo - and IskDtEvent='$Event' - and IskDtTeamInd=$Team - and IskDtType='$Type' - and IskDtTargetNo='$Target' - and IskDtDistance=$Distance - and IskDtEndNo=$End - and IskDtArrowstring='$Arrowstring' - "; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if(isset($Calls["$Event-$Team"])) { - $Calls["$Event-$Team"]['matchno'].= ','.$MatchNo; - } else { - $Calls["$Event-$Team"]=array( - 'ses' => $r->keyValue, - 'dist' => $Distance, - 'end' => $End, - 'event' => $Event, - 'matchno' => $MatchNo, - ); - } - } - break; - } - } -} - -foreach ($Calls as $Call) { - unset($_REQUEST['data']); - foreach($Call as $k=>$v) { - $_REQUEST[$k]=$v; - } - $Error=($Error or DoImportData()); -} - -header('Content-Type: text/xml'); -die(''); - diff --git a/src/Api/ISK/Res-LoadTablets.php b/src/Api/ISK/Res-LoadTablets.php deleted file mode 100644 index e5506c39..00000000 --- a/src/Api/ISK/Res-LoadTablets.php +++ /dev/null @@ -1,161 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadOnly,false); - -require_once('Common/Lib/Fun_Modules.php'); - -$Sequence=$_REQUEST['ses']; -$Dist=intval($_REQUEST['dist']); -$End=intval($_REQUEST['end']); - -// fetches an array of alla available ends -$EndsStatus=array(); -$TgtsStatus=array(); -$Targets=array(); -$Messages=array(); -$Payloads=array(); -$Out=''; -$AssignedDevices=array(); -switch($Sequence[0]) { - case 'Q': - // gets the targets - $SqlTargets="select distinct QuTarget Target from Entries inner join Qualifications on EnId=QuId and QuSession={$Sequence[2]} where EnTournament={$_SESSION['TourId']} order by Target"; - $q=safe_r_sql($SqlTargets); - while($r=safe_Fetch($q)) { - $Targets[]=$r->Target; - $TgtsStatus[$r->Target]=''; - } - // prepares an array with all the available ends and the values if any - $SQL="select AtTarget Target, AtLetter Letter, AtTargetNo - from AvailableTarget - left join (select QuTargetNo, EnTournament - from Qualifications - inner join Entries on EnId=QuId and EnTournament={$_SESSION['TourId']} - where QuSession={$Sequence[2]} - ) Quals on AtTargetNo=QuTargetNo and AtTournament=EnTournament - where AtTournament={$_SESSION['TourId']} and AtSession={$Sequence[2]} and AtTarget in (".implode(',', $Targets).") - order by AtTargetNo"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Ends[$r->Target][$r->Letter]=''; - $Payloads[$r->Target]='ses='.$Sequence.'&dist='.$Dist.'&end='.$End.'&target='.$r->Target; - } - $Error=0; - break; - case 'E': - // gets the targets - $Phase=$Sequence[1]-1; - $FieldEnds=($Phase ? 'EvE2Ends' : 'EvE1Ends'); - $Session=$Sequence[2]; - - // gets all the targets - $SQL="select distinct ElTargetNo+0 as TargetNum, right(ElTargetNo, 1) Letter - from Eliminations - inner join Events on EvCode=ElEventCode and EvTournament=ElTournament and EvTeamEvent=0 - where ElTournament={$_SESSION['TourId']} and ElElimPhase=$Phase and ElSession=$Session and ElTargetNo>'' - order by (TargetNum-1)%$FieldEnds, ElTargetNo"; - - $q=safe_r_sql($SQL); - while($r=safe_Fetch($q)) { - $Ends[$r->TargetNum][$r->Letter]=''; - $Payloads[$r->TargetNum]='ses='.$Sequence.'&dist='.$Sequence[2].'&end='.$End.'&target='.$r->TargetNum; - } - $Error=0; - break; - case 'I': - $Date=substr($Sequence, 1, 10); - $Time=substr($Sequence, 11); - $SQL="select * - from (select FsTarget+0 Target1, substr(FsLetter, length(FsTarget)+1, 1) Letter1, FsLetter FsLetter1, FsMatchNo FsMatchNo1, FsEvent FsEvent1 - from FinSchedule - inner join Finals on FsEvent=FinEvent and FsTournament=FinTournament and FsMatchNo=FinMatchNo - left join Entries on FinAthlete=EnId - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=0 and FsScheduledDate='$Date' and FsScheduledTime='$Time' and FsMatchNo%2=0) tgt1 - inner join (select FsTarget+0 Target2, substr(FsLetter, length(FsTarget)+1, 1) Letter2, FsLetter FsLetter2, FsMatchNo FsMatchNo2, FsEvent FsEvent2 - from FinSchedule - inner join Finals on FsEvent=FinEvent and FsTournament=FinTournament and FsMatchNo=FinMatchNo - left join Entries on FinAthlete=EnId - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=0 and FsScheduledDate='$Date' and FsScheduledTime='$Time') tgt2 - on FsEvent1=FsEvent2 and FsMatchNo2=FsMatchNo1+1 - order by FsLetter1, Target1"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Tgt=($r->Target1==$r->Target2 ? $r->Target1 : "{$r->Target1}-{$r->Target2}"); - $Ends[$Tgt][$r->Letter1 ? $r->Letter1 : 'A']=''; - $Ends[$Tgt][$r->Letter2 ? $r->Letter2 : 'B']=''; - $Payloads[$Tgt]='ses='.$Sequence.'&dist='.$Dist.'&end='.$End.'&event='.$r->FsEvent1.'&matchno='.$r->FsMatchNo1.','.$r->FsMatchNo2; - } - $Error=0; - break; - case 'T': - $Date=substr($Sequence, 1, 10); - $Time=substr($Sequence, 11); - $SQL="select * - from (select FsTarget+0 Target1, substr(FsLetter, length(FsTarget)+1, 1) Letter1, FsLetter FsLetter1, FsMatchNo FsMatchNo1, FsEvent FsEvent1 - from FinSchedule - inner join TeamFinals on FsEvent=TfEvent and FsTournament=TfTournament and FsMatchNo=TfMatchNo - left join Countries on TfTeam=CoId and CoTournament=FsTournament - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=1 and FsScheduledDate='$Date' and FsScheduledTime='$Time' and FsMatchNo%2=0) tgt1 - inner join (select FsTarget+0 Target2, substr(FsLetter, length(FsTarget)+1, 1) Letter2, FsLetter FsLetter2, FsMatchNo FsMatchNo2, FsEvent FsEvent2 - from FinSchedule - inner join TeamFinals on FsEvent=TfEvent and FsTournament=TfTournament and FsMatchNo=TfMatchNo - left join Countries on TfTeam=CoId and CoTournament=FsTournament - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=1 and FsScheduledDate='$Date' and FsScheduledTime='$Time') tgt2 - on FsEvent1=FsEvent2 and FsMatchNo2=FsMatchNo1+1 - order by FsLetter1, Target1"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Tgt=($r->Target1==$r->Target2 ? $r->Target1 : "{$r->Target1}-{$r->Target2}"); - $Ends[$Tgt][$r->Letter1 ? $r->Letter1 : 'A']=''; - $Ends[$Tgt][$r->Letter2 && $r->Letter2!='A' ? $r->Letter2 : 'B']=''; - $Payloads[$Tgt]='ses='.$Sequence.'&dist='.$Dist.'&end='.$End.'&event='.$r->FsEvent1.'&matchno='.$r->FsMatchNo1.','.$r->FsMatchNo2; - } - $Error=0; - break; - default: - header('Content-Type: text/xml'); - die(''); -} - -// archers class, t= target class, d= devices assigned -foreach($Ends as $Tgt => $Let) { - $Out.='
'.get_text('IskTargetTitle', 'Api', $Tgt).'
'; - $Out.='
'.get_text('IskDeviceAssigned', 'Api').':
'; - $Out.='
'; - foreach($Let as $k => $v) { - $Out.=''.$k.''; - } - $Out.='
'; - $Out.='
'; - $Out.='
'; - $Out.='
'; -} - -$m=''; -$Locked=getModuleParameter('ISK', 'StickyEnds', array('SeqCode'=>$Sequence, 'Distance'=>$Dist, 'Ends'=>array())); - -if(!($Locked['SeqCode']==$Sequence and $Locked['Distance']==$Dist)) { - $m= get_text('StickyAlreadySet', 'Api'); -} - -header('Content-Type: text/xml'); -echo ''; -echo ''; -echo '  '; -} - -echo ']]>'; -echo ''; -if(!empty($_SESSION['debug'])) { - echo ''; -} -echo ''; diff --git a/src/Api/ISK/Res-RemoveEnd.php b/src/Api/ISK/Res-RemoveEnd.php deleted file mode 100644 index 39a420ad..00000000 --- a/src/Api/ISK/Res-RemoveEnd.php +++ /dev/null @@ -1,54 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadWrite,false); - -// data[23][RW][0][I][010B][0][6]=J -// $popId="data[$r->IskDtMatchNo][$r->IskDtEvent][$r->IskDtTeamInd][$r->IskDtType][$r->IskDtTargetNo][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - -if(isset($_REQUEST['data'])) { - foreach($_REQUEST['data'] as $data) { - //$tmp=each($data); - //$MatchNo=$tmp['key']; $tmp=each($tmp['value']); - //$Event=$tmp['key']; $tmp=each($tmp['value']); - //$Team=$tmp['key']; $tmp=each($tmp['value']); - //$Type=$tmp['key']; $tmp=each($tmp['value']); - //$Target=$tmp['key']; $tmp=each($tmp['value']); - //$Distance=$tmp['key']; $tmp=each($tmp['value']); - //$End=$tmp['key']; - //$Arrowstring=$tmp['value']; - $MatchNo=key($data); $tmp=current($data); - $Event=key($tmp); $tmp=current($tmp); - $Team=key($tmp); $tmp=current($tmp); - $Type=key($tmp); $tmp=current($tmp); - $Target=key($tmp); $tmp=current($tmp); - $Distance=key($tmp); $tmp=current($tmp); - $End=key($tmp); - $Arrowstring=current($tmp); - - if($Event==':::') $Event=''; - if($Target==':::') $Target=''; - - safe_w_sql("delete from IskData - where IskDtTournament={$_SESSION['TourId']} - and IskDtMatchNo=$MatchNo - and IskDtEvent='$Event' - and IskDtTeamInd=$Team - and IskDtType='$Type' - and IskDtTargetNo='$Target' - and IskDtDistance=$Distance - and IskDtEndNo=$End - and IskDtArrowstring='$Arrowstring'"); - } - $Error=0; -} - -header('Content-Type: text/xml'); -echo ''; -echo ''; diff --git a/src/Api/ISK/Res-SeeTarget.php b/src/Api/ISK/Res-SeeTarget.php deleted file mode 100644 index a527887b..00000000 --- a/src/Api/ISK/Res-SeeTarget.php +++ /dev/null @@ -1,363 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadOnly,false); - -require_once('Common/Lib/Fun_Modules.php'); -require_once('Common/Lib/ArrTargets.inc.php'); -require_once('Common/Fun_Sessions.inc.php'); - -// data[23][RW][0][I][010B][0][6]=J -// $popId="data[$r->IskDtMatchNo][$r->IskDtEvent][$r->IskDtTeamInd][$r->IskDtType][$r->IskDtTargetNo][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - -$MatchNo = (isset($_REQUEST['matchno']) ? intval($_REQUEST['matchno']) : '0'); -$Event = (isset($_REQUEST['event']) ? $_REQUEST['event'] : ''); -$Team = (isset($_REQUEST['ses']) ? intval($_REQUEST['ses'][0]=='T') : '0'); -$Type = (isset($_REQUEST['ses']) ? $_REQUEST['ses'][0] : '0'); -$Target = (isset($_REQUEST['target']) ? $_REQUEST['ses'][2].str_pad($_REQUEST['target'], 3, '0', STR_PAD_LEFT) : ''); -$Distance = (isset($_REQUEST['dist']) ? $_REQUEST['dist'] : '0'); -$End = (isset($_REQUEST['end']) ? $_REQUEST['end'] : '0'); -$Arrowstring=''; - - -if(isset($_REQUEST['data'])) { - $SQL=''; - //$tmp=each($_REQUEST['data']); - //$MatchNo=$tmp['key']; $tmp=each($tmp['value']); - //$Event=$tmp['key']; $tmp=each($tmp['value']); - //$Team=$tmp['key']; $tmp=each($tmp['value']); - //$Type=$tmp['key']; $tmp=each($tmp['value']); - //$Target=$tmp['key']; $tmp=each($tmp['value']); - //$Distance=$tmp['key']; $tmp=each($tmp['value']); - //$End=$tmp['key']; - //$Arrowstring=$tmp['value']; - $MatchNo=key($data); $tmp=current($data); - $Event=key($tmp); $tmp=current($tmp); - $Team=key($tmp); $tmp=current($tmp); - $Type=key($tmp); $tmp=current($tmp); - $Target=key($tmp); $tmp=current($tmp); - $Distance=key($tmp); $tmp=current($tmp); - $End=key($tmp); - $Arrowstring=current($tmp); - - if($Event==':::') $Event=''; - if($Target==':::') $Target=''; -} - -switch($Type) { - case 'Q': - // fetches all the scorings of the target for that end, distance and session - $Session=substr($Target, 0, 1); - $Obj=getArrowEnds($Session, $Distance, $_SESSION['TourId']); - $SQL="select IskData.*, EnFirstName, substring(AtTargetNo, -4, 3)+0 Target, right(AtTargetNo, 1) Letter, AtTargetNo, IskDtArrowstring, Arrowstring - from AvailableTarget - left join IskData on IskDtTargetNo=AtTargetNo and IskDtTournament={$_SESSION['TourId']} and IskDtType='Q' and IskDtDistance=$Distance and IskDtEndNo=$End - left join (select EnFirstName, QuTargetNo, QuD{$Distance}Arrowstring Arrowstring from Qualifications inner join Entries on EnId=QuId and EnTournament={$_SESSION['TourId']}) Ent on AtTargetNo=QuTargetNo - where AtTournament={$_SESSION['TourId']} and AtTargetNo+0=".intval($Target)." - order by AtTargetNo - "; - $q=safe_r_sql($SQL); - if($r=safe_fetch($q)) { - $popId=''; - $SpanArrows=''; - $QuEnds=str_split($r->Arrowstring, $Obj[$Distance]['arrows']); - $arrows=array(); - $QuArrows=DecodeFromString(rtrim($QuEnds[$End-1]), false, true); - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - $arrows=DecodeFromString($r->IskDtArrowstring, false, true); - if(!is_array($arrows)) $arrows=array($arrows); - } - for($i=0; $i<$Obj[$Distance]['arrows']; $i++) { - if(isset($arrows[$i])) { - $SpanArrows.='
'.$arrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($QuArrows[$i])) { - $SpanArrows.='
'.$QuArrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - } - $Out.='
'.get_text('PopupStatusSession', 'Api', ''.$Session.'') - .' - '.get_text('PopupStatusDistance', 'Api', ''.$Distance.'') - .' - '.get_text('PopupStatusEnd', 'Api', ''.$End.'') - .'
'; - $Out.='
'.$r->Letter.'
'.$r->EnFirstName.'
'.$SpanArrows.'
'; - while($r=safe_fetch($q)) { - $popId=''; - $SpanArrows=''; - $QuEnds=str_split($r->Arrowstring, $Obj[$Distance]['arrows']); - $arrows=array(); - $QuArrows=DecodeFromString(rtrim($QuEnds[$End-1]), false, true); - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - $arrows=DecodeFromString($r->IskDtArrowstring, false, true); - if(!is_array($arrows)) $arrows=array($arrows); - } - for($i=0; $i<$Obj[$Distance]['arrows']; $i++) { - if(isset($arrows[$i])) { - $SpanArrows.='
'.$arrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($QuArrows[$i])) { - $SpanArrows.='
'.$QuArrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - } - $Out.='
'.$r->Letter.'
'.$r->EnFirstName.'
'.$SpanArrows.'
'; - } - $Error=0; - } - break; - case 'E': - $Phase=$_REQUEST['ses'][1]-1; - $Session=$_REQUEST['ses'][2]; - $Target=$_REQUEST['target']; - $EndsField=($Phase==0 ? 'EvE1Ends' : 'EvE2Ends'); - $ArrowsField=($Phase==0 ? 'EvE1Arrows' : 'EvE2Arrows'); - // fetches all the scorings of the target for that end, distance and session - $SQL="select IskData.*, EnFirstName, ElTargetNo+0 Target, right(ElTargetNo, 1) Letter, ElTargetNo, $EndsField as Ends, $ArrowsField as Arrows, IskDtArrowstring, rpad(ElArrowstring, $EndsField*$ArrowsField, ' ') as Arrowstring - from Eliminations - inner join Events on EvCode=ElEventCode and EvTournament=ElTournament and EvTeamEvent=0 - left join Entries on EnId=ElId and EnTournament=ElTournament - left join IskData on IskDtTargetNo=ElTargetNo and IskDtTournament={$_SESSION['TourId']} and IskDtType='E' and IskDtDistance=$Distance and IskDtEndNo=$End - where ElTournament={$_SESSION['TourId']} and ElTargetNo+0=".intval($Target)." and ElSession=$Session and ElElimPhase=$Phase - order by ElTargetNo - "; - $q=safe_r_sql($SQL); - if($r=safe_fetch($q)) { - $popId=''; - $SpanArrows=''; - $QuEnds=str_split($r->Arrowstring, $r->Arrows); - $arrows=array(); - $QuArrows=DecodeFromString(rtrim($QuEnds[$End-1]), false, true); - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - $arrows=DecodeFromString($r->IskDtArrowstring, false, true); - if(!is_array($arrows)) $arrows=array($arrows); - } - for($i=0; $i<$r->Arrows; $i++) { - if(isset($arrows[$i])) { - $SpanArrows.='
'.$arrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($QuArrows[$i])) { - $SpanArrows.='
'.$QuArrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - } - $Out.='
'.get_text('PopupStatusSession', 'Api', ''.$Session.'') - .' - '.get_text('PopupStatusDistance', 'Api', ''.$Distance.'') - .' - '.get_text('PopupStatusEnd', 'Api', ''.$End.'') - .'
'; - $Out.='
'.$r->Letter.'
'.$r->EnFirstName.'
'.$SpanArrows.'
'; - while($r=safe_fetch($q)) { - $popId=''; - $SpanArrows=''; - $QuEnds=str_split($r->Arrowstring, $r->Arrows); - $arrows=array(); - $QuArrows=DecodeFromString(rtrim($QuEnds[$End-1]), false, true); - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - $arrows=DecodeFromString($r->IskDtArrowstring, false, true); - if(!is_array($arrows)) $arrows=array($arrows); - } - for($i=0; $i<$r->Arrows; $i++) { - if(isset($arrows[$i])) { - $SpanArrows.='
'.$arrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($QuArrows[$i])) { - $SpanArrows.='
'.$QuArrows[$i].'
'; - } else { - $SpanArrows.='
'; - } - } - $Out.='
'.$r->Letter.'
'.$r->EnFirstName.'
'.$SpanArrows.'
'; - } - $Error=0; - } - break; - case 'I': - // fetches all the scorings regarding that event and matchno and teamevent and end - $m=$MatchNo.','.($MatchNo%2 ? $MatchNo-1 : $MatchNo+1); - $SQL="select IskData.*, EnFirstName, GrPhase, FsTarget+0 Target, substr(FsLetter, length(FsTarget)+1, 1) Letter, FinArrowstring ArrowString, EvFinalFirstPhase, EvCode - from FinSchedule - inner join Events on FsEvent=EvCode and FsTournament=EvTournament and EvTeamEvent=0 - left join IskData on IskDtEvent=FsEvent and IskDtTournament=FsTournament and IskDtType='I' and IskDtMatchNo=FsMatchNo and IskDtEndNo=$End - left join Finals on FsEvent=FinEvent and FinMatchNo=FsMatchNo and FinTournament={$_SESSION['TourId']} - left join Entries on FinAthlete=EnId - left join Grids on FsMatchNo=GrMatchNo - where FsTournament={$_SESSION['TourId']} and FsEvent='$Event' and FsTeamEvent=$Team and FsMatchNo in ($m) - order by FsMatchNo"; - $q=safe_r_sql($SQL); - if($r=safe_fetch($q)) { - $Obj=getEventArrowsParams($Event, $r->GrPhase, 0, $_SESSION['TourId']); - - $popId=''; - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - } - $SpanArrows=''; - if($End) { - $DBarrows=DecodeFromString(rtrim(substr($r->ArrowString,($End-1)*$Obj->arrows, $Obj->arrows)), false, true); - $arrows=DecodeFromString($r->IskDtArrowstring, false, true); - - for($k=0; $k<$Obj->arrows; $k++) { - $Cl='B'; - if(isset($arrows[$k])) { - $SpanArrows.='
'.$arrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($DBarrows[$k])) { - if(isset($arrows[$k]) and $arrows[$k]!=$DBarrows[$k]) { - $Cl='B'; - } - $SpanArrows.='
'.$DBarrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - } - } - $Out.='
'.get_text('PopupStatusEvent', 'Api', ''.$Event.'') - .' - '.get_text('PopupStatusPhase', 'Api', ''.get_text(namePhase($r->EvFinalFirstPhase,$r->GrPhase).'_Phase').'') - .' - '.get_text('PopupStatusEnd', 'Api', ''.$End.'') - .'
'; - $Let='A'; - $Out.='
'.($Let++).'
'.$r->EnFirstName.'
'.$SpanArrows.'
'; - while($r=safe_fetch($q)) { - $SpanArrows=''; - $popId=''; - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - } - if($End) { - $DBarrows=DecodeFromString(rtrim(substr($r->ArrowString,($End-1)*$Obj->arrows, $Obj->arrows)), false, true); - $arrows=DecodeFromString($r->IskDtArrowstring, false, true); - - for($k=0; $k<$Obj->arrows; $k++) { - $Cl='B'; - if(isset($arrows[$k])) { - $SpanArrows.='
'.$arrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($DBarrows[$k])) { - if(isset($arrows[$k]) and $arrows[$k]!=$DBarrows[$k]) { - $Cl='B'; - } - $SpanArrows.='
'.$DBarrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - } - } - $Out.='
'.($Let++).'
'.$r->EnFirstName.'
'.$SpanArrows.'
'; - } - $Error=0; - } - break; - case 'T': - $m=$MatchNo.','.($MatchNo%2 ? $MatchNo-1 : $MatchNo+1); - $SQL="select IskData.*, concat(CoCode,'-',CoName) Country, GrPhase, FsTarget+0 Target, substr(FsLetter, length(FsTarget)+1, 1) Letter, TfArrowstring ArrowString, EvFinalFirstPhase, EvCode - - from FinSchedule - inner join Events on FsEvent=EvCode and FsTournament=EvTournament and EvTeamEvent=1 - left join IskData on IskDtEvent=FsEvent and IskDtTournament=FsTournament and IskDtType='T' and IskDtMatchNo=FsMatchNo and IskDtEndNo=$End - left join TeamFinals on FsEvent=TfEvent and TfMatchNo=FsMatchNo and TfTournament={$_SESSION['TourId']} - left join Countries on TfTeam=CoId and COTournament={$_SESSION['TourId']} - left join Grids on FsMatchNo=GrMatchNo - where FsTournament={$_SESSION['TourId']} and FsEvent='$Event' and FsTeamEvent=$Team and FsMatchNo in ($m) - order by FsMatchNo"; - $q=safe_r_sql($SQL); - if($r=safe_fetch($q)) { - $Obj=getEventArrowsParams($Event, $r->GrPhase, 1, $_SESSION['TourId']); - - $popId=''; - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - } - $SpanArrows=''; - if($End) { - $DBarrows=DecodeFromString(rtrim(substr($r->ArrowString,($End-1)*$Obj->arrows, $Obj->arrows)), false, true); - $arrows=DecodeFromString($r->IskDtArrowstring); - if(!is_array($arrows)) $arrows=array($arrows); - - for($k=0; $k<$Obj->arrows; $k++) { - $Cl='B'; - if(isset($arrows[$k])) { - $SpanArrows.='
'.$arrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($DBarrows[$k])) { - if(isset($arrows[$k]) and $arrows[$k]!=$DBarrows[$k]) { - $Cl='B'; - } - $SpanArrows.='
'.$DBarrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - } - } - - $Out.='
'.get_text('PopupStatusEvent', 'Api', ''.$Event.'') - .' - '.get_text('PopupStatusPhase', 'Api', ''.get_text($r->GrPhase.'_Phase').'') - .' - '.get_text('PopupStatusEnd', 'Api', ''.$End.'') - .'
'; - $Let='A'; - $Out.='
'.($Let++).'
'.$r->Country.'
'.$SpanArrows.'
'; - while($r=safe_fetch($q)) { - $popId=''; - if($r->IskDtEndNo) { - $popId="data[][$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - } - $SpanArrows=''; - if($End) { - $DBarrows=DecodeFromString(rtrim(substr($r->ArrowString,($End-1)*$Obj->arrows, $Obj->arrows)), false, true); - $arrows=DecodeFromString($r->IskDtArrowstring, false, true); - - for($k=0; $k<$Obj->arrows; $k++) { - $Cl='B'; - if(isset($arrows[$k])) { - $SpanArrows.='
'.$arrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - if(isset($DBarrows[$k])) { - if(isset($arrows[$k]) and $arrows[$k]!=$DBarrows[$k]) { - $Cl='B'; - } - $SpanArrows.='
'.$DBarrows[$k].'
'; - } else { - $SpanArrows.='
'; - } - } - } - $Out.='
'.($Let++).'
'.$r->Country.'
'.$SpanArrows.'
'; - } - $Error=0; - } - break; -} - - -header('Content-Type: text/xml'); -echo ''; -echo ''; -echo ''; diff --git a/src/Api/ISK/Res-ToggleSticky.php b/src/Api/ISK/Res-ToggleSticky.php deleted file mode 100644 index ddbe7d9d..00000000 --- a/src/Api/ISK/Res-ToggleSticky.php +++ /dev/null @@ -1,44 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadWrite,false); - -require_once('Common/Lib/Fun_Modules.php'); - -$Out=''; - -$Sequence=$_REQUEST['ses']; -$Dist=intval($_REQUEST['dist']); -$StickyFieldKey=key($_REQUEST['sticky']); -$StickyFieldValue=current($_REQUEST['sticky']); - -$Sticky=getModuleParameter('ISK', 'StickyEnds', array('SeqCode'=>$Sequence, 'Distance'=>$Dist, 'Ends'=>array())); - -// can only modify sticky ends in the current session and distance -if($Sticky['SeqCode']==$Sequence and $Sticky['Distance']==$Dist) { - if($StickyFieldValue and !in_array($StickyFieldKey, $Sticky['Ends'])) { - $Sticky['Ends'][]=$StickyFieldKey; - } elseif(in_array($StickyFieldKey, $Sticky['Ends'])) { - unset($Sticky['Ends'][array_search($StickyFieldKey, $Sticky['Ends'])]); - } - if(empty($Sticky['Ends'])) { - delModuleParameter('ISK', 'StickyEnds'); - } else { - setModuleParameter('ISK', 'StickyEnds', $Sticky); - } - $Out.=''; - $Error=0; -} else { - $Out.=''; -} - -header('Content-Type: text/xml'); -echo ''; -echo $Out; -echo ''; diff --git a/src/Api/ISK/Res-UpdateTablets.php b/src/Api/ISK/Res-UpdateTablets.php deleted file mode 100644 index 16ccdc8f..00000000 --- a/src/Api/ISK/Res-UpdateTablets.php +++ /dev/null @@ -1,792 +0,0 @@ -'); -} -checkACL(AclISKServer, AclReadOnly,false); - -require_once('Common/Lib/Fun_Modules.php'); - -$Sequence=$_REQUEST['ses']; -$Dist=intval($_REQUEST['dist']); -$End=intval($_REQUEST['end']); - -// fetches an array of all available ends -$Ends=array(); -$EndsStatus=array(); -$TgtsStatus=array(); -$Targets=array(); -$Messages=array(); -$Payloads=array(); -$Out=''; -$Msg=''; -$AssignedDevices=array(); -$MatchOvers=array(); -$ShowImport=array(); -$Anomalies=array(); - - -switch($Sequence[0]) { - case 'Q': - // gets the targets - $SQL="select distinct AtTarget Target, AtLetter Letter, AtTargetNo - from Entries - inner join Qualifications on QuId=EnId and QuSession={$Sequence[2]} and QuTarget>0 - inner join AvailableTarget on QuTarget=AtTarget and QuSession=AtSession and AtTournament=EnTournament - where EnTournament={$_SESSION['TourId']} - order by AtTargetNo"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Ends[$r->Target][$r->Letter]='G'; - $TgtsStatus[$r->Target]=''; - } - - $SQL="select distinct QuTarget Target, QuLetter Letter, QuTargetNo, QuD{$Dist}ArrowString as Arrowstring, DiArrows, concat(EnDivision, EnClass) as Category - from Entries - inner join Qualifications on QuId=EnId and QuSession=$Sequence[2] and QuTarget>0 - left join DistanceInformation on DiType='Q' and DiDistance=$Dist and DiSession={$Sequence[2]} and DiTournament={$_SESSION['TourId']} - where EnStatus<=1 and EnTournament={$_SESSION['TourId']} - order by QuTargetNo"; - - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Ends[$r->Target][$r->Letter]=''; - $Payloads[$r->Target]='ses='.$Sequence.'&dist='.$Dist.'&end='.$End.'&target='.$r->Target; - $arrows=strlen(str_replace(' ', '', substr($r->Arrowstring, ($End-1)*$r->DiArrows, $r->DiArrows))); - if(is_null($r->Arrowstring)) { - $Ends[$r->Target][$r->Letter]='G'; // Gray, not used - } elseif($arrows==$r->DiArrows) { - $Ends[$r->Target][$r->Letter]='B'; // Blue, OK - if($TgtsStatus[$r->Target]!='C') $TgtsStatus[$r->Target]='B'; - } elseif($arrows) { - $Ends[$r->Target][$r->Letter]='C'; // Cyan, missing arrows - $TgtsStatus[$r->Target]='C'; - } - $Anomalies[$r->Target][$r->Letter]=preg_match('/ /sim', rtrim($r->Arrowstring)); - } - - // check which device should be attached to which target - $SQL="Select IskDvCode, IskDvTarget+0 IntTarget from IskDevices where IskDvTournament={$_SESSION['TourId']} and IskDvState>0"; -// $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if(!isset($TgtsStatus[$r->IntTarget])) { - // device is not involved on this... - continue; - } - if(empty($AssignedDevices[$r->IntTarget]) or !in_array($r->IskDvCode, $AssignedDevices[$r->IntTarget])) { - $AssignedDevices[$r->IntTarget][]=$r->IskDvCode; - } - } - - // check if the devices have sent something to the targets - $SQL="Select IskData.*, FsTarget+0 FsTarget, concat(FsScheduledDate, ' ', FsScheduledTime) Scheduled, DiArrows, substring(IskDtTargetNo, -4, 3)+0 Target, right(IskDtTargetNo, 1) Letter, trim(IskDtArrowstring) Arrowstring, IskDvCode, (IskDtType='Q' and left(IskDtTargetNo,1)={$Sequence[2]} and IskDtDistance=$Dist) CorrectSession, IskDvTarget - from IskData - left join FinSchedule on FsTournament={$_SESSION['TourId']} and FsMatchNo=IskDtMatchNo and FsEvent=IskDtEvent and FsTeamEvent=0 - left join DistanceInformation on DiType='Q' and DiDistance=$Dist and DiSession={$Sequence[2]} and DiTournament={$_SESSION['TourId']} - left join IskDevices on IskDvTournament=IskDtTournament and IskDvState>0 and IskDvDevice=IskDtDevice - where IskDtTournament={$_SESSION['TourId']} - order by IskDtTargetNo, IskDtEndNo - "; -// $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $SkipRest=false; - $popId="data[$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? substr($r->IskDtTargetNo, 0, 4) : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=1"; - // check the correct code of device - $r->IskDvCode=($r->IskDvCode ? $r->IskDvCode : 'Unknown'); - $GroupTargets=getGroupedTargets($r->IskDvTarget, $Sequence[2], 'Q', '', true); - - - // readdress the correct target for matches - if($r->IskDtType!='Q' and $r->IskDtType!='E') { - $r->Target=intval($r->IskDtTargetNo); - } - if(!$r->IskDvCode) { - // device is not known... - $Msg.='
'.get_text('IskUnknownDevice', 'Api', $r->Target ? $r->Target : $r->FsTarget).'
'; - } - if(!isset($TgtsStatus[$r->Target]) and !in_array($r->Target, $GroupTargets)) { - // device is not involved on this... but is sending scores - $Msg.='
'.get_text('IskSpuriousDevice', 'Api', array($r->IskDvCode, $r->Target ? $r->Target : $r->FsTarget)).'
'; - $SkipRest=true; - } - if(!$r->CorrectSession) { - // device is not sending Qualification scores - $Msg.='
'.get_text('IskSpuriousScore-Device', 'Api', array($r->IskDvCode, $r->Target ? $r->Target : $r->FsTarget, $r->IskDtType . ' '.(strstr('EQ', $r->IskDtType) ? ($r->IskDtTargetNo[0] . ' ' . $r->IskDtDistance) : $r->IskDtEvent . ' '. $r->IskDtMatchNo. ' ('.$r->Scheduled.')'))).'
'; - $SkipRest=true; - } - if($SkipRest) { - continue; - } -// if($r->Arrowstring) { - // actually scoring something - switch(true) { - case ($Ends[$r->Target][$r->Letter]=='G'): // this Position should not score at all!!! - $span='' . $r->Letter . ''; - if(empty($Messages[$r->Target][$r->IskDvCode]['Empty']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['Empty'])) $Messages[$r->Target][$r->IskDvCode]['Empty'][]=$span; - $TgtsStatus[$r->Target]='R'; - break; - case ($r->IskDtEvent): // scoring on another session! - $span='' . $r->IskDtEvent . ''; - if(empty($Messages[$r->Target][$r->IskDvCode]['Match']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['Match'])) $Messages[$r->Target][$r->IskDvCode]['Match'][]=$span; - $Ends[$r->Target][$r->Letter]='R'; // Red, error condition - $TgtsStatus[$r->Target]='R'; - break; - case ($r->IskDtDistance!=$Dist): // scoring on a different distance - $span='' . $r->IskDtDistance . ''; - if(empty($Messages[$r->Target][$r->IskDvCode]['Distance']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['Distance'])) $Messages[$r->Target][$r->IskDvCode]['Distance'][]=$span; - $Ends[$r->Target][$r->Letter]='R'; // Red, error condition - $TgtsStatus[$r->Target]='R'; - break; - case ($r->IskDtEndNo!=$End): - $span='' . $r->IskDtEndNo . ''; - if(empty($Messages[$r->Target][$r->IskDvCode]['End']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['End'])) { - $Messages[$r->Target][$r->IskDvCode]['End'][]=$span; - } -// $Ends[$r->Target][$r->Letter]='O'; // Orange, error condition - if($TgtsStatus[$r->Target]!='R') $TgtsStatus[$r->Target]='O'; - break; - case ($r->IskDvTarget!=$r->Target and !in_array($r->Target, $GroupTargets)): - $span='' . $r->IskDtEndNo . ''; - if(empty($Messages[$r->Target][$r->IskDvCode]['End']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['End'])) { - $Messages[$r->Target][$r->IskDvCode]['End'][]=$span; - } -// $Ends[$r->Target][$r->Letter]='O'; // Orange, error condition - if($TgtsStatus[$r->Target]!='R') $TgtsStatus[$r->Target]='O'; - break; - case (strlen(str_replace(' ', '', $r->Arrowstring))!=$r->DiArrows): - $Ends[$r->Target][$r->Letter]='Z'; // Yellow, score in progress - $ShowImport[$r->Target]=true; - if($TgtsStatus[$r->Target]!='R' and $TgtsStatus[$r->Target]!='O') { - $TgtsStatus[$r->Target]='Z'; - } - break; - default: - $Ends[$r->Target][$r->Letter]='Y'; // Yellow, score finished - $ShowImport[$r->Target]=true; - if(!$TgtsStatus[$r->Target] or $TgtsStatus[$r->Target]=='C' or $TgtsStatus[$r->Target]=='B') { - $TgtsStatus[$r->Target]='Y'; - } - } -// } - } - foreach($Ends as $t => $l) { - if(empty($ShowImport[$t]) or $TgtsStatus[$t]!='Y') continue; - $status=true; - foreach($l as $l1) { - $status=($status and ($l1=='Y' or $l1=='G')); - } - if(!$status) $TgtsStatus[$t]='Z'; - } - $Error=0; - break; - case 'E': - $Error=0; - $Phase=$Sequence[1]-1; - $Session=$Sequence[2]; - - // gets all the targets - $SqlTargets="select distinct ElId, ElTargetNo+0 as Target, right(ElTargetNo, 1) Letter, ElTargetNo, ElArrowstring as Arrowstring, if(ElElimPhase=0, EvE1Ends, EvE2Ends) as Ends, if(ElElimPhase=0, EvE1Arrows, EvE2Arrows) as Arrows, EvCode Category - from Eliminations - inner join Events on EvCode=ElEventCode and EvTournament=ElTournament and EvTeamEvent=0 - where ElTournament={$_SESSION['TourId']} and ElElimPhase=$Phase and ElSession=$Session and ElTargetNo>'' - order by (Target-1)%if(ElElimPhase=0, EvE1Ends, EvE2Ends)"; - $q=safe_r_sql($SqlTargets); - $Open=safe_num_rows($q); - $Total=0; - while($r=safe_Fetch($q)) { - if(!isset($TgtsStatus[$r->Target])) $TgtsStatus[$r->Target]=''; - - if(empty($ImportableCategories[$r->Category])) $ImportableCategories[$r->Category]=0; - $ImportableCategories[$r->Category]++; - $Ends[$r->Target][$r->Letter]='B'; - $Payloads[$r->Target]='ses='.$Sequence.'&dist='.$Dist.'&end='.$End.'&target='.$r->Target; - //$Payloads[$r->Target]='group=group_'.$Group.'&end='.$End.'&target='.$r->Target; - $arrows=strlen(str_replace(' ', '', substr($r->Arrowstring, ($End-1)*$r->Arrows, $r->Arrows))); - if(!$r->ElId) { - $Ends[$r->Target][$r->Letter]='G'; // black, not used - $Open--; - } elseif(strlen(str_replace(' ', '', $r->Arrowstring))==$r->Arrows*$r->Ends) { - $Ends[$r->Target][$r->Letter]='F'; // Grayed out, finished the scoring - $Total++; - } elseif($End) { - if($arrows==$r->Arrows) { - $Ends[$r->Target][$r->Letter]='B'; // Blue, OK - $ImportableCategories[$r->Category]--; - $Total++; - if($TgtsStatus[$r->Target]!='C') $TgtsStatus[$r->Target]='B'; - } elseif($arrows) { - $Ends[$r->Target][$r->Letter]='C'; // Cyan, missing arrows - $TgtsStatus[$r->Target]='C'; - } - } - // no anomalies as in field everybody scores at any distance in the same time! -// $Anomalies[$r->Target][$r->Letter]=preg_match('/ /sim', rtrim($r->Arrowstring)); - } - - // check which device should be attached to which target - $SQL="Select IskDvCode, IskDvDevice, IskDvTarget+0 IntTarget from IskDevices where IskDvTournament={$_SESSION['TourId']} and IskDvProActive>0 and IskDvSchedKey=".StrSafe_DB($Sequence); -// $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if(!isset($TgtsStatus[$r->IntTarget])) { - // device is not involved on this... - continue; - } - - $span=''.$r->IskDvCode.''; - if(empty($AssignedDevices[$r->IntTarget]) or !in_array($span, $AssignedDevices[$r->IntTarget])) { - $AssignedDevices[$r->IntTarget][]=$span; - } - } - - //// check if the devices have sent something to the targets in the correct session! - //$SQL="select IskData.*, IskDvCode, - // IskDtTargetNo+0 as Target, - // right(IskDtTargetNo, 1) as Letter, - // trim(IskDtArrowstring) Arrowstring, - // if(ElElimPhase=0, EvE1Arrows, EvE2Arrows) as DiArrows, - // EvCode as Category - // from IskData - // inner join IskDevices on IskDvTournament=IskDtTournament and IskDvProActive>0 and IskDvDevice=IskDtDevice and IskDvSchedKey=".StrSafe_DB($Sequence)." and IskDvGroup=$Group - // inner join Eliminations on ElTournament=IskDtTournament and ElSession=$Session and ElElimPhase=$Phase and ElTargetNo=IskDtTargetNo - // inner join Events on EvTournament=IskDtTournament and EvCode=ElEventCode and EvTeamEvent=0 - // where IskDtTournament={$_SESSION['TourId']} and IskDtEndNo={$End} and IskDtSession=$Session and IskDtType='E{$IskSequence['maxdist']}' - // "; - //$JSON['sql'][]=$SQL; - //$q=safe_r_sql($SQL); - //while($r=safe_fetch($q)) { - // $popId="data[$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? intval($r->IskDtTargetNo) : ':::')."][$r->IskDtDistance][$r->IskDtEndNo][$Session]=1"; - // // scoring in the correct place - // switch(true) { - // case ($Ends[$r->Target][$r->Letter]=='G'): // this Position should not score at all!!! - // $Messages[$r->Target][$r->IskDvCode]['Empty'][]='' . $r->Letter . ''; - // $TgtsStatus[$r->Target]='R'; - // break; - // case (strlen(str_replace(' ', '', $r->Arrowstring))!=$r->DiArrows): - // $Ends[$r->Target][$r->Letter]='Z'; // Yellow, score in progress - // $ShowImport[$r->Target]=true; - // if($TgtsStatus[$r->Target]!='R' and $TgtsStatus[$r->Target]!='O') { - // $TgtsStatus[$r->Target]='Z'; - // } - // break; - // default: - // $Ends[$r->Target][$r->Letter]='Y'; // Yellow, score finished - // $Total++; - // $Categories2Import[$r->Category]=true; - // $ImportableCategories[$r->Category]--; - // $ShowImport[$r->Target]=true; - // if(!$TgtsStatus[$r->Target] or $TgtsStatus[$r->Target]=='C' or $TgtsStatus[$r->Target]=='B') { - // $TgtsStatus[$r->Target]='Y'; - // } - // } - //} - - //// check if something strange is sent from the devices suppose to score this group - //$SQL="select IskData.*, IskDvCode, IskDvTarget, (IskDvSchedKey=".StrSafe_DB($Sequence).") as CorrectSession, - // IskDtTargetNo+0 as Target, - // right(IskDtTargetNo, 1) as Letter, - // trim(IskDtArrowstring) Arrowstring, - // if(ElElimPhase=0, EvE1Arrows, EvE2Arrows) as DiArrows, - // EvCode as Category, - // concat(FsScheduledDate, ' ', FsScheduledTime) Scheduled, - // FsTarget+0 FsTarget - // from IskData - // inner join IskDevices on IskDvTournament=IskDtTournament and IskDvProActive>0 and IskDvDevice=IskDtDevice and IskDvGroup=$Group - // inner join Eliminations on ElTournament=IskDtTournament and ElSession=$Session and ElElimPhase=$Phase and ElTargetNo=IskDtTargetNo - // inner join Events on EvTournament=IskDtTournament and EvCode=ElEventCode and EvTeamEvent=0 - // left join FinSchedule on FsTournament={$_SESSION['TourId']} and FsMatchNo=IskDtMatchNo and FsEvent=IskDtEvent and FsTeamEvent=0 - // where IskDtTournament={$_SESSION['TourId']} and not (IskDtEndNo={$End} and IskDtSession=$Session and IskDtType='E{$IskSequence['maxdist']}') - // "; - // - //$JSON['sql'][]=$SQL; - //$q=safe_r_sql($SQL); - //while($r=safe_fetch($q)) { - // $SkipRest=false; - // $popId="data[$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? intval($r->IskDtTargetNo) : ':::')."][$r->IskDtDistance][$r->IskDtEndNo][$Session]=1"; - // // check the correct code of device - // $r->IskDvCode=($r->IskDvCode ? $r->IskDvCode : 'Unknown'); - // - // // readdress the correct target for matches - // if($r->IskDtType!='Q' and $r->IskDtType[0]!='E') { - // $r->Target=intval($r->IskDtTargetNo); - // } - // if(!$r->IskDvCode) { - // // device is not known... - // $Msg.='
'.get_text('IskUnknownDevice', 'Api', $r->Target ? $r->Target : $r->FsTarget).'
'; - // } - // if(!isset($TgtsStatus[$r->Target])) { - // // device is not involved on this... but is sending scores - // $Msg.='
'.get_text('IskSpuriousDevice', 'Api', array($r->IskDvCode, $r->Target ? $r->Target : $r->FsTarget)).'
'; - // $SkipRest=true; - // } - // if(!$r->CorrectSession) { - // // device is not sending Elimination scores of this phase and session - // $Msg.='
' - // .get_text('IskSpuriousScore-Device', 'Api', array($r->IskDvCode, $r->Target ? $r->Target : $r->FsTarget, $r->IskDtType . ' ' - // .(strstr('EQ', $r->IskDtType) ? ($r->IskDtTargetNo[0] . ' ' . $r->IskDtDistance) : $r->IskDtEvent . ' '. $r->IskDtMatchNo. ' ('.$r->Scheduled.')'))) - // .'
'; - // $SkipRest=true; - // } - // if($SkipRest) { - // continue; - // } - // switch(true) { - // case ($Ends[$r->Target][$r->Letter]=='G'): // this Position should not score at all!!! - // $Messages[$r->Target][$r->IskDvCode]['Empty'][]='' . $r->Letter . ''; - // $TgtsStatus[$r->Target]='R'; - // break; - // case ($r->IskDtEvent): // scoring on another session! - // $Messages[$r->Target][$r->IskDvCode]['Match'][]='' . $r->IskDtEvent . ''; - // $Ends[$r->Target][$r->Letter]='R'; // Red, error condition - // $TgtsStatus[$r->Target]='R'; - // break; - // case ($r->IskDtDistance!=$IskSequence['distance']): // scoring on a different distance - // $Messages[$r->Target][$r->IskDvCode]['Distance'][]='' . $r->IskDtDistance . ''; - // $Ends[$r->Target][$r->Letter]='R'; // Red, error condition - // $TgtsStatus[$r->Target]='R'; - // break; - // case ($r->IskDtEndNo!=$End): - // $tmp='' . $r->IskDtEndNo . ''; - // if(empty($Messages[$r->Target][$r->IskDvCode]['End']) or !in_array($tmp, $Messages[$r->Target][$r->IskDvCode]['End'])) { - // $Messages[$r->Target][$r->IskDvCode]['End'][]=$tmp; - // } - // if($TgtsStatus[$r->Target]!='R') $TgtsStatus[$r->Target]='O'; - // break; - // case ($r->IskDvTarget!=$r->Target): - // $Messages[$r->Target][$r->IskDvCode]['End'][]='' . $r->IskDtEndNo . ''; - // if($TgtsStatus[$r->Target]!='R') $TgtsStatus[$r->Target]='O'; - // break; - // } - //} - foreach($Ends as $t => $l) { - if(empty($ShowImport[$t]) or $TgtsStatus[$t]!='Y') continue; - $status=true; - foreach($l as $l1) { - $status=($status and ($l1=='Y' or $l1=='G' or $l1=='F')); - } - if(!$status) $TgtsStatus[$t]='Z'; - } - $Error=0; - break; - case 'I': - $MatchTarget=array(); - $TargetsInvolved=array(); - $Date=substr($Sequence, 1, 10); - $Time=substr($Sequence, 11); - // Gets the targets involved - $SQL="select tgt1.*, tgt2.*, - if(GrPhase1 & EvMatchArrowsNo, EvElimArrows, EvFinArrows) Arrows, if(GrPhase1 & EvMatchArrowsNo, EvElimEnds, EvFinEnds) Ends, if(GrPhase1 & EvMatchArrowsNo, EvElimSO, EvFinSO) SO - from (select GrPhase as GrPhase1, FinAthlete Entry1, FinArrowstring Arrowstring1, FinTieBreak TieBreak1, FsTarget+0 Target1, substr(FsLetter, length(FsTarget)+1, 1) Letter1, FsLetter FsLetter1, FsMatchNo FsMatchNo1, FsEvent FsEvent1, FinWinLose as Win1 - from FinSchedule - inner join Grids on FsMatchNo=GrMatchno - inner join Finals on FsEvent=FinEvent and FinTournament={$_SESSION['TourId']} and FsMatchNo=FinMatchNo - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=0 and FsScheduledDate='$Date' and FsScheduledTime='$Time' and FsMatchNo%2=0) tgt1 - inner join (select FinAthlete Entry2, FinArrowstring Arrowstring2, FinTieBreak TieBreak2, FsTarget+0 Target2, substr(FsLetter, length(FsTarget)+1, 1) Letter2, FsLetter FsLetter2, FsMatchNo FsMatchNo2, FsEvent FsEvent2, FinWinLose as Win2 - from FinSchedule - inner join Finals on FsEvent=FinEvent and FsTournament=FinTournament and FsMatchNo=FinMatchNo - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=0 and FsScheduledDate='$Date' and FsScheduledTime='$Time') tgt2 - on FsEvent1=FsEvent2 and FsMatchNo2=FsMatchNo1+1 - inner join Events on FsEvent1=EvCode and EvTeamEvent=0 and EvTournament={$_SESSION['TourId']} - order by FsLetter1"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Tgt=($r->Target1==$r->Target2 ? $r->Target1 : "{$r->Target1}-{$r->Target2}"); - if($r->Win1 or $r->Win2) $MatchOvers[]=$Tgt; - $Let1=($r->Letter1 ? $r->Letter1 : 'A'); - $Let2=($r->Letter2 && $r->Letter2!='A' ? $r->Letter2 : 'B'); - $Ends[$Tgt][$Let1]=''; - $Ends[$Tgt][$Let2]=''; - $MatchTarget[$r->FsEvent1][$r->FsMatchNo1]=array($Tgt, $Let1); - $MatchTarget[$r->FsEvent1][$r->FsMatchNo2]=array($Tgt, $Let2); - $TargetsInvolved[$r->Target1]=$Tgt; - $TargetsInvolved[$r->Target2]=$Tgt; - if(empty($TgtsStatus[$Tgt])) $TgtsStatus[$Tgt]=''; - - $arrows1=strlen(trim(substr($r->Arrowstring1, ($End-1)*$r->Arrows, $r->Arrows))); - $arrows2=strlen(trim(substr($r->Arrowstring2, ($End-1)*$r->Arrows, $r->Arrows))); - if($End > $r->Ends) { - $arrows1=strlen(trim($r->TieBreak1)); - $arrows2=strlen(trim($r->TieBreak2)); - $r->Arrows=$r->SO; - } - // Letter 1 - if(!$r->Entry1) { - $Ends[$Tgt][$Let1]='G'; // Gray, not used - } elseif($arrows1==$r->Arrows) { - $Ends[$Tgt][$Let1]='B'; // Blue, OK - if($TgtsStatus[$Tgt]!='C') $TgtsStatus[$Tgt]='B'; - } elseif($arrows1) { - $Ends[$Tgt][$Let1]='C'; // Cyan, missing arrows - $TgtsStatus[$Tgt]='C'; - } - $Anomalies[$Tgt][$Let1]=preg_match('/ /sim', rtrim($r->Arrowstring1)); - - // Letter 2 - if(!$r->Entry2) { - $Ends[$Tgt][$Let2]='G'; // Gray, not used - } elseif($arrows2==$r->Arrows) { - $Ends[$Tgt][$Let2]='B'; // Blue, OK - if($TgtsStatus[$Tgt]!='C') $TgtsStatus[$Tgt]='B'; - } elseif($arrows2) { - $Ends[$Tgt][$Let2]='C'; // Cyan, missing arrows - $TgtsStatus[$Tgt]='C'; - } - $Anomalies[$Tgt][$Let2]=preg_match('/ /sim', rtrim($r->Arrowstring2)); - - $Payloads[$Tgt]='ses='.$Sequence.'&dist='.$Dist.'&end='.$End.'&event='.$r->FsEvent1.'&matchno='.$r->FsMatchNo1.','.$r->FsMatchNo2; - } - - // check which device should be attached to which target - $SQL="Select IskDvCode, IskDvTarget+0 IntTarget from IskDevices where IskDvTournament={$_SESSION['TourId']} and IskDvState>0"; - $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if(empty($TargetsInvolved[$r->IntTarget]) or !isset($TgtsStatus[$TargetsInvolved[$r->IntTarget]])) { - // device is not involved on this... - continue; - } - if(empty($AssignedDevices[$TargetsInvolved[$r->IntTarget]]) or !in_array($r->IskDvCode, $AssignedDevices[$TargetsInvolved[$r->IntTarget]])) { - $AssignedDevices[$TargetsInvolved[$r->IntTarget]][]=$r->IskDvCode; - } - } - - // check if the devices have sent something to the targets - $SQL="Select IskData.*, concat(FsScheduledDate, ' ', FsScheduledTime) Scheduled, FsTarget+0 Target, substr(FsLetter, length(FsTarget)+1, 1) Letter, - trim(IskDtArrowstring) Arrowstring, IskDvCode, IskDtType='I' CorrectSession, IskDvTarget, - if(EvMatchArrowsNo & GrPhase, EvElimArrows, EvFinArrows) Arrows, if(EvMatchArrowsNo & GrPhase, EvElimEnds, EvFinEnds) Ends, if(EvMatchArrowsNo & GrPhase, EvElimSO, EvFinSO) SO - from IskData - inner join FinSchedule on FsTournament={$_SESSION['TourId']} and FsMatchNo=IskDtMatchNo and FsEvent=IskDtEvent and FsTeamEvent=0 - inner join Grids on FsMatchNo=GrMatchno - inner join IskDevices on IskDvTournament=IskDtTournament and IskDvState>0 and IskDvDevice=IskDtDevice - inner join Events on IskDtEvent=EvCode and EvTeamEvent=0 and EvTournament={$_SESSION['TourId']} - where IskDtTournament={$_SESSION['TourId']} - order by IskDvTarget, IskDtEndNo - "; - $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $SkipRest=false; - $popId="data[$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - // check the correct code of device - $r->IskDvCode=($r->IskDvCode ? $r->IskDvCode : 'Unknown'); - - // readdress the correct target for matches - if(strstr('EQ', $r->IskDtType)) { - $r->Target=intval(substr($r->IskDtTargetNo, 1)); - } - if(!$r->IskDvCode) { - // device is not known... - $Msg.='
'.get_text('IskUnknownDevice', 'Api', $r->Target).'
'; - } - if(empty($TargetsInvolved[$r->Target]) or !isset($TgtsStatus[$TargetsInvolved[$r->Target]])) { - // device is not involved on this... but is sending scores - $Msg.='
'.get_text('IskSpuriousDevice', 'Api', array($r->IskDvCode, $r->Target)).'
'; - $SkipRest=true; - } - if(!$r->CorrectSession) { - // device is not sending Qualification scores - $Msg.='
'.get_text('IskSpuriousScore-Device', 'Api', array($r->IskDvCode, $r->Target, $r->IskDtType . ' '.(strstr('EQ', $r->IskDtType) ? $r->IskDtTargetNo[0] : $r->IskDtEvent . ' '.$r->IskDtMatchNo. ' ('.$r->Scheduled.')'))).'
'; - $SkipRest=true; - } - if(empty($MatchTarget[$r->IskDtEvent][$r->IskDtMatchNo])) { - $Msg.='
'.get_text('IskSpuriousScore-Match', 'Api', array($r->IskDvCode, $r->IskDtEvent . ' ' . $r->IskDtMatchNo. ' ('.$r->Scheduled.')')).'
'; - $SkipRest=true; - } - if($SkipRest) { - continue; - } - - $Tgt=$MatchTarget[$r->IskDtEvent][$r->IskDtMatchNo][0]; - $Let=$MatchTarget[$r->IskDtEvent][$r->IskDtMatchNo][1]; - - - if($r->Arrowstring) { - // actually scoring something - switch(true) { - case ($Ends[$Tgt][$Let]=='G'): // this Position should not score at all!!! - $span=''.$Tgt.''; - if(empty($Messages[$r->Target][$r->IskDvCode]['Empty']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['Empty'])) $Messages[$r->Target][$r->IskDvCode]['Empty'][]=$span; - $TgtsStatus[$Tgt]='R'; - break; - case ($r->IskDtDistance!=$Dist): // scoring on a different distance - $span=''.$r->IskDtDistance.''; - if(empty($Messages[$r->Target][$r->IskDvCode]['Distance']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['Distance'])) $Messages[$r->Target][$r->IskDvCode]['Distance'][]=$span; - $Ends[$Tgt][$Let]='R'; // Red, error condition - $TgtsStatus[$Tgt]='R'; - break; - case ($Tgt!=$TargetsInvolved[$r->Target]): - $span='' . $r->IskDtEndNo .''; - if(empty($Messages[$r->Target][$r->IskDvCode]['End']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['End'])) $Messages[$r->Target][$r->IskDvCode]['End'][]=$span; - if(empty($TgtsStatus[$r->Target]) or $TgtsStatus[$r->Target]!='R') $TgtsStatus[$r->Target]='O'; - break; - case ($r->IskDtEndNo!=$End): - $span='' . $r->IskDtEndNo .''; - if(empty($Messages[$r->Target][$r->IskDvCode]['End']) or !in_array($span, $Messages[$r->Target][$r->IskDvCode]['End'])) $Messages[$r->Target][$r->IskDvCode]['End'][]=$span; - $Ends[$Tgt][$Let]='O'; // Orange, error condition - if($TgtsStatus[$Tgt]!='R') $TgtsStatus[$Tgt]='O'; - break; - default: - if(empty($AssignedDevices[$Tgt]) or !in_array($r->IskDvCode, $AssignedDevices[$Tgt])) { - $span='
'.get_text('IskScoringDevice', 'Api', $r->IskDvCode).'
'; - if(empty($Messages[$Tgt][$r->IskDvCode]['IskScoringDevice']) or !in_array($span, $Messages[$Tgt][$r->IskDvCode]['IskScoringDevice'])) $Messages[$Tgt][$r->IskDvCode]['IskScoringDevice'][]=$span; - } - if(strlen(str_replace(' ', '', $r->Arrowstring))!=($End>$r->Ends ? $r->SO : $r->Arrows) ) { - $Ends[$Tgt][$Let]='Z'; // Yellow, score in progress - $ShowImport[$Tgt]=true; - if($TgtsStatus[$Tgt]!='R' and $TgtsStatus[$Tgt]!='O') { - $TgtsStatus[$Tgt]='Z'; - } - } else { - $Ends[$Tgt][$Let]='Y'; // Yellow, score in progress - $ShowImport[$Tgt]=true; - if(!$TgtsStatus[$Tgt] or strstr('BCZ', $TgtsStatus[$Tgt])) { - $Clear=true; - foreach($Ends[$Tgt] as $col) { - if($col!='Y') $Clear=false; - } - if($Clear) { - $TgtsStatus[$Tgt]='Y'; - } else { - $TgtsStatus[$Tgt]='Z'; - } - } - } - } - } - } - $Error=0; - break; - case 'T': - $MatchTarget=array(); - $TargetsInvolved=array(); - $Date=substr($Sequence, 1, 10); - $Time=substr($Sequence, 11); - // Gets the targets involved - $SQL="select tgt1.*, tgt2.*, - @ArBit:=(EvMatchArrowsNo & pow(2, if(FsMatchNo1=0, 0, floor(LOG(2, FsMatchNo1))))), - if(@ArBit=0, EvFinArrows, EvElimArrows) Arrows, if(@ArBit=0, EvFinEnds, EvElimEnds) Ends, if(@ArBit=0, EvFinSO, EvElimSO) SO - from (select TfTeam Entry1, TfArrowstring Arrowstring1, TfTieBreak TieBreak1, FsTarget+0 Target1, substr(FsLetter, length(FsTarget)+1, 1) Letter1, FsLetter FsLetter1, FsMatchNo FsMatchNo1, FsEvent FsEvent1, TfWinLose as Win1 - from FinSchedule - inner join TeamFinals on FsEvent=TfEvent and TfTournament={$_SESSION['TourId']} and FsMatchNo=TfMatchNo - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=1 and FsScheduledDate='$Date' and FsScheduledTime='$Time' and FsMatchNo%2=0) tgt1 - inner join (select TfTeam Entry2, TfArrowstring Arrowstring2, TfTieBreak TieBreak2, FsTarget+0 Target2, substr(FsLetter, length(FsTarget)+1, 1) Letter2, FsLetter FsLetter2, FsMatchNo FsMatchNo2, FsEvent FsEvent2, TfWinLose as Win2 - from FinSchedule - inner join TeamFinals on FsEvent=TfEvent and TfTournament={$_SESSION['TourId']} and FsMatchNo=TfMatchNo - where FsTournament={$_SESSION['TourId']} and FsTarget>'' and FsTeamEvent=1 and FsScheduledDate='$Date' and FsScheduledTime='$Time') tgt2 - on FsEvent1=FsEvent2 and FsMatchNo2=FsMatchNo1+1 - inner join Events on FsEvent1=EvCode and EvTeamEvent=1 and EvTournament={$_SESSION['TourId']} - order by FsLetter1, Target1"; -// $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $Tgt=($r->Target1==$r->Target2 ? $r->Target1 : "{$r->Target1}-{$r->Target2}"); - if($r->Win1 or $r->Win2) $MatchOvers[]=$Tgt; - $Let1=($r->Letter1 ? $r->Letter1 : 'A'); - $Let2=($r->Letter2 && $r->Letter2!='A' ? $r->Letter2 : 'B'); - $Ends[$Tgt][$Let1]=''; - $Ends[$Tgt][$Let2]=''; - $MatchTarget[$r->FsEvent1][$r->FsMatchNo1]=array($Tgt, $Let1); - $MatchTarget[$r->FsEvent1][$r->FsMatchNo2]=array($Tgt, $Let2); - $TargetsInvolved[$r->Target1]=$Tgt; - $TargetsInvolved[$r->Target2]=$Tgt; - if(empty($TgtsStatus[$Tgt])) { - $TgtsStatus[$Tgt]=''; - } - - $arrows1=strlen(trim(substr($r->Arrowstring1, ($End-1)*$r->Arrows, $r->Arrows))); - $arrows2=strlen(trim(substr($r->Arrowstring2, ($End-1)*$r->Arrows, $r->Arrows))); - if($End > $r->Ends) { - $arrows1=strlen(trim($r->TieBreak1)); - $arrows2=strlen(trim($r->TieBreak2)); - $r->Arrows=$r->SO; - } - // Letter 1 - if(!$r->Entry1) { - $Ends[$Tgt][$Let1]='G'; // Gray, not used - } elseif($arrows1==$r->Arrows) { - $Ends[$Tgt][$Let1]='B'; // Blue, OK - if($TgtsStatus[$Tgt]!='C') $TgtsStatus[$Tgt]='B'; - } elseif($arrows1) { - $Ends[$Tgt][$Let1]='C'; // Cyan, missing arrows - $TgtsStatus[$Tgt]='C'; - } - $Anomalies[$Tgt][$Let1]=preg_match('/ /sim', rtrim($r->Arrowstring1)); - // Letter 2 - if(!$r->Entry2) { - $Ends[$Tgt][$Let2]='G'; // Gray, not used - } elseif($arrows2==$r->Arrows) { - $Ends[$Tgt][$Let2]='B'; // Blue, OK - if($TgtsStatus[$Tgt]!='C') $TgtsStatus[$Tgt]='B'; - } elseif($arrows2) { - $Ends[$Tgt][$Let2]='C'; // Cyan, missing arrows - $TgtsStatus[$Tgt]='C'; - } - $Anomalies[$Tgt][$Let2]=preg_match('/ /sim', rtrim($r->Arrowstring2)); - $Payloads[$Tgt]='ses='.$Sequence.'&dist='.$Dist.'&end='.$End.'&event='.$r->FsEvent1.'&matchno='.$r->FsMatchNo1.','.$r->FsMatchNo2; - } - - // check which device should be attached to which target - $SQL="Select IskDvCode, IskDvTarget+0 IntTarget from IskDevices where IskDvTournament={$_SESSION['TourId']} and IskDvState>0"; -// $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - if(empty($TargetsInvolved[$r->IntTarget]) or !isset($TgtsStatus[$TargetsInvolved[$r->IntTarget]])) { - // device is not involved on this... - continue; - } - if(empty($AssignedDevices[$TargetsInvolved[$r->IntTarget]]) or !in_array($r->IskDvCode, $AssignedDevices[$TargetsInvolved[$r->IntTarget]])) { - $AssignedDevices[$TargetsInvolved[$r->IntTarget]][]=$r->IskDvCode; - } - } - - // check if the devices have sent something to the targets - $SQL="Select IskData.*, concat(FsScheduledDate, ' ', FsScheduledTime) Scheduled, FsTarget+0 Target, substr(FsLetter, length(FsTarget)+1, 1) Letter, - trim(IskDtArrowstring) Arrowstring, IskDvCode, IskDtType='T' CorrectSession, IskDvTarget, - @ArBit:=(EvMatchArrowsNo & pow(2, if(IskDtMatchNo=0, 0, floor(LOG(2, IskDtMatchNo))))), - if(@ArBit=0, EvFinArrows, EvElimArrows) Arrows, if(@ArBit=0, EvFinEnds, EvElimEnds) Ends, if(@ArBit=0, EvFinSO, EvElimSO) SO - from IskData - left join FinSchedule on FsTournament={$_SESSION['TourId']} and FsMatchNo=IskDtMatchNo and FsEvent=IskDtEvent and FsTeamEvent=1 - left join IskDevices on IskDvTournament=IskDtTournament and IskDvState>0 and IskDvDevice=IskDtDevice - left join Events on IskDtEvent=EvCode and EvTeamEvent=1 and EvTournament={$_SESSION['TourId']} - where IskDtTournament={$_SESSION['TourId']} - order by IskDvTarget, IskDtEndNo"; -// $Out.=''; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $SkipRest=false; - $popId="data[$r->IskDtMatchNo][".($r->IskDtEvent ? $r->IskDtEvent : ':::')."][$r->IskDtTeamInd][$r->IskDtType][".($r->IskDtTargetNo ? $r->IskDtTargetNo : ':::')."][$r->IskDtDistance][$r->IskDtEndNo]=$r->IskDtArrowstring"; - // check the correct code of device - $r->IskDvCode=($r->IskDvCode ? $r->IskDvCode : 'Unknown'); - - // readdress the correct target for matches - if(strstr('EQ', $r->IskDtType)) { - $r->Target=intval(substr($r->IskDtTargetNo, 1)); - } - if(!$r->IskDvCode) { - // device is not known... - $Msg.='
'.get_text('IskUnknownDevice', 'Api', $r->Target).'
'; - } - if(empty($TargetsInvolved[$r->Target]) or !isset($TgtsStatus[$TargetsInvolved[$r->Target]])) { - // device is not involved on this... but is sending scores - $Msg.='
'.get_text('IskSpuriousDevice', 'Api', array($r->IskDvCode, $r->Target)).'
'; - $SkipRest=true; - } - if(!$r->CorrectSession) { - // device is not sending Match scores - $Msg.='
'.get_text('IskSpuriousScore-Device', 'Api', array($r->IskDvCode, $r->Target, $r->IskDtType . ' '.(strstr('EQ', $r->IskDtType) ? $r->IskDtTargetNo[0] : $r->IskDtEvent . ' '.$r->IskDtMatchNo. ' ('.$r->Scheduled.')'))).'
'; - $SkipRest=true; - } - if(empty($MatchTarget[$r->IskDtEvent][$r->IskDtMatchNo])) { - $Msg.='
'.get_text('IskSpuriousScore-Match', 'Api', array($r->IskDvCode, $r->IskDtEvent . ' ' . $r->IskDtMatchNo. ' ('.$r->Scheduled.')')).'
'; - $SkipRest=true; - } - if($SkipRest) { - continue; - } - - $Tgt=$MatchTarget[$r->IskDtEvent][$r->IskDtMatchNo][0]; - $Let=$MatchTarget[$r->IskDtEvent][$r->IskDtMatchNo][1]; - - if($r->Arrowstring) { - // actually scoring something - switch(true) { - case ($Ends[$Tgt][$Let]=='G'): // this Position should not score at all!!! - $Messages[$Tgt][$r->IskDvCode]['Empty'][]=''. $Tgt.''; - $TgtsStatus[$Tgt]='R'; - break; - case ($r->IskDtDistance!=$Dist): // scoring on a different distance - $Messages[$Tgt][$r->IskDvCode]['Distance'][]=''. $r->IskDtDistance.''; - $Ends[$Tgt][$Let]='R'; // Red, error condition - $TgtsStatus[$Tgt]='R'; - break; -// case ($r->IskDvTarget!=$r->Target): -// $Messages[$r->Target][$r->IskDtEndNo]='
'.get_text('IskSpuriousScore-End', 'Api', array($r->IskDvCode, $r->IskDtEndNo)).'
'; -// if($TgtsStatus[$r->Target]!='R') $TgtsStatus[$r->Target]='O'; -// break; - case ($r->IskDtEndNo!=$End): - $Messages[$Tgt][$r->IskDvCode]['End'][]=''. $r->IskDtEndNo.''; - $Ends[$Tgt][$Let]='O'; // Orange, error condition - if($TgtsStatus[$Tgt]!='R') $TgtsStatus[$Tgt]='O'; - break; - default: - if(empty($AssignedDevices[$Tgt]) or !in_array($r->IskDvCode, $AssignedDevices[$Tgt])) { - $Messages[$Tgt][$r->IskDvCode]['IskScoringDevice']='
'.get_text('', 'Api', $r->IskDvCode).'
'; - } - if(strlen(str_replace(' ', '', $r->Arrowstring))!=($End>$r->Ends ? $r->SO : $r->Arrows) ) { - $Ends[$Tgt][$Let]='Z'; // Yellow, score in progress - $ShowImport[$Tgt]=true; - if($TgtsStatus[$Tgt]!='R' and $TgtsStatus[$Tgt]!='O') { - $TgtsStatus[$Tgt]='Z'; - } - } else { - $Ends[$Tgt][$Let]='Y'; // Yellow, score in progress - $ShowImport[$Tgt]=true; - if(!$TgtsStatus[$Tgt] or $TgtsStatus[$Tgt]=='C' or $TgtsStatus[$Tgt]=='B') { - $TgtsStatus[$Tgt]='Y'; - } - } - } - } - } - $Error=0; - break; - default: - header('Content-Type: text/xml'); - die(''); -} - -// archers class, t= target class, d= devices assigned a= anomalies -foreach($Ends as $Tgt => $Let) { - foreach($Let as $k => $v) { - $Out.=''; - } -} - -// Target status and target messages -foreach($TgtsStatus as $Tgt => $status) { - // target as a whole is in "currently scoring" if at least one is still scoring... - if(!empty($Ends[$Tgt]) and in_array('Z', $Ends[$Tgt])) $status='Z'; - $Out.=' $msgs) { - foreach($msgs as $type => $letters) { - if($type=='IskScoringDevice') { - $Out.=$letters; - } else { - $Out.= '
' . get_text('IskSpuriousScore-'.$type, 'Api', array($dv, implode(', ', $letters))); - } - } - } - // G = - } - $Out.=']]>'; -} - -// Target payloads -foreach($Payloads as $Tgt => $status) { - $Out.=''; -} - -$Locked=getModuleParameter('ISK', 'StickyEnds', array('SeqCode'=>$Sequence, 'Distance'=>$Dist, 'Ends'=>array())); -foreach(range(1, $_REQUEST['maxend']) as $i) { - $Out.=''; -} -if($Locked['SeqCode']==$Sequence and $Locked['Distance']==$Dist) { - $Out.=''; -} else { - $Out.=''; -} - -header('Content-Type: text/xml'); -echo ''; -echo $Out; -echo ''; -echo ''; diff --git a/src/Api/ISK/Results.js b/src/Api/ISK/Results.js deleted file mode 100644 index b220c60d..00000000 --- a/src/Api/ISK/Results.js +++ /dev/null @@ -1,361 +0,0 @@ -var timeout=100; -var ResTimer; - - -function ResultsInit() { - loadComboSchedule(); - LoadTablets(); - -// window.onbeforeunload=function() {SetAutoImport(true);}; -// window.onunload=function() {SetAutoImport(true);}; -} - -function LoadTablets(obj) { - if(ComboScheduleLoaded==false) ResTimer = setTimeout(function() {LoadTablets(this)}, timeout); - - // fills in the locked ends - var session=document.getElementById('x_Session').value; - var distance=document.getElementById('x_Distance').value; - var end=document.getElementById('x_End').value; - if(session=='' || (session[0]=='Q' && distance==0) || end==0) { - document.getElementById('TabletInfo').innerHTML=''; - return; - } - - // Clears timeout - clearTimeout(ResTimer); - - $.get('Res-LoadTablets.php?ses='+session+'&dist='+distance+'&end='+end+'&maxend='+document.getElementById('x_End').max, function(XMLResp) { - // intercetto gli errori di IE e Opera - if (!XMLResp || !XMLResp.documentElement) { - throw("XML not valid:\n"+XMLResp.responseText); - } - - // Intercetto gli errori di Firefox - var XMLRoot; - if ((XMLRoot = XMLResp.documentElement.nodeName)=="parsererror") { - throw("XML not valid:\n"); - } - - XMLRoot = XMLResp.documentElement; - - if (XMLRoot.getAttribute('error')==0) { - // retrieves the html - var html=XMLRoot.getElementsByTagName('html')[0].firstChild.data; - document.getElementById('TabletInfo').innerHTML=html; - - // retrieves the ends to lock - var sticky=XMLRoot.getElementsByTagName('sticky')[0].firstChild.data; - document.getElementById('StickyEnds').innerHTML=sticky; - - // retrieves the message - document.getElementById('ISK-sticky').innerHTML=XMLRoot.getElementsByTagName('sm')[0].firstChild.data; - - ComboScheduleLoaded=true; - UpdateTablets(); - } else { - } - }); -} - -function UpdateTablets() { - var session=document.getElementById('x_Session').value; - var distance=document.getElementById('x_Distance').value; - var end=document.getElementById('x_End').value; - - // Clears timer - clearTimeout(ResTimer); - - if(session=='' || (session[0]=='Q' && distance==0) || end==0 || document.getElementById('TabletInfo').innerHTML=='') { - ComboScheduleLoaded=false; - document.getElementById('TabletInfo').innerHTML=''; - timeout=1000; - LoadTablets(); - return; - } - - $.get('Res-UpdateTablets.php?ses='+session+'&dist='+distance+'&end='+end+'&maxend='+document.getElementById('x_End').max, function(XMLResp) { - // intercetto gli errori di IE e Opera - if (!XMLResp || !XMLResp.documentElement) { - throw("XML not valid:\n"+XMLResp.responseText); - } - - // Intercetto gli errori di Firefox - var XMLRoot; - if ((XMLRoot = XMLResp.documentElement.nodeName)=="parsererror") { - throw("XML not valid:\n"); - } - - XMLRoot = XMLResp.documentElement; - - if (XMLRoot.getAttribute('error')==0) { - // assigns the return values of sequence - document.getElementById('ISK-ses').innerHTML=XMLRoot.getAttribute('ses'); - document.getElementById('ISK-dis').innerHTML=XMLRoot.getAttribute('dis'); - document.getElementById('ISK-end').innerHTML=XMLRoot.getAttribute('end'); - document.getElementById('ISK-sticky').innerHTML=XMLRoot.getElementsByTagName('sm')[0].firstChild.data; - - // assigns the sticky ends if any - var data=XMLRoot.getElementsByTagName('st'); - for(var i=0; i '', 'session'=>'', 'distance'=>0, 'maxdist'=>0, 'end'=>0)); - safe_w_sql("delete from IskData where IskDtTournament='{$_SESSION['TourId']}' and IskDtType!='{$IskSequence['type']}'"); - break; - case 2: - $IskSequence=getModuleParameter('ISK', 'Sequence', array('type' => '', 'session'=>'', 'distance'=>0, 'maxdist'=>0, 'end'=>0)); - safe_w_sql("delete from IskData where IskDtTournament='{$_SESSION['TourId']}' and IskDtType='{$IskSequence['type']}'"); - break; - case 3: - safe_w_sql("delete from IskData where IskDtTournament='{$_SESSION['TourId']}'"); - break; - } - CD_redirect('Results.php'); -} - -$PAGE_TITLE=get_text('ISK-Results'); -$JS_SCRIPT=array( - phpVars2js(array('msgAreYouSure' => get_text('MsgAreYouSure'))), - '', - '', - '', - '', -); - -$ONLOAD=' onload="ResultsInit()"'; // onunload="SetAutoImport(true)"'; - -include('Common/Templates/head.php'); - -echo ''; -echo ''; -echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; -echo ''; -echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; -echo ''; -echo ''; -echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; - echo ''; -echo ''; -echo ''; - echo ''; -echo ''; - -echo '
' . get_text('ISK-Results') . '
' . get_text('Session') . '' . get_text('Distance', 'Tournament') . '' . get_text('Volee', 'HTT') . ' ' . get_text('AutoImport', 'Api') . '' . get_text('LockToEnds', 'Api') . ' 
-
- ' . get_text('OnlyToday', 'Tournament') . ' -
- - - - -
'; - -// gets all the - -echo '
'; - -echo '
'; -foreach(array('G', 'Z', 'Y', 'B', 'C', 'R', 'O') as $Let) { - echo '
     '.get_text('Desc-Let-'.$Let, 'Api').'
'; -} -echo '
'; -echo ''; -include('Common/Templates/tail.php'); diff --git a/src/Api/ISK/Sessions-Toggle.php b/src/Api/ISK/Sessions-Toggle.php deleted file mode 100644 index f9ef04cc..00000000 --- a/src/Api/ISK/Sessions-Toggle.php +++ /dev/null @@ -1,39 +0,0 @@ -1, 'msg'=>get_text('Error'), 'status'=>array()); - -if(!CheckTourSession() or checkACL(AclISKServer, AclReadWrite, false)!=AclReadWrite or empty($_REQUEST['key'])) { - JsonOut($JSON); -} - -require_once(__DIR__.'/Lib.php'); -$LockSessions=getModuleParameter('ISK', 'LockedSessions', array()); - -if($_REQUEST['key']=='lockall') { - $q=safe_r_sql(GetLockableSessions()); - $LockSessions=array(); - while($r=safe_fetch($q)) { - $LockSessions[]=$r->LockKey; - $JSON['status'][$r->LockKey]=1; - } -} elseif($_REQUEST['key']=='unlockall') { - $q=safe_r_sql(GetLockableSessions()); - $LockSessions=array(); - while($r=safe_fetch($q)) { - $JSON['status'][$r->LockKey]=0; - } -} else { - if(in_array($_REQUEST['key'], $LockSessions)) { - unset($LockSessions[array_search($_REQUEST['key'], $LockSessions)]); - $JSON['status'][$_REQUEST['key']]=0; - } else { - $LockSessions[]=$_REQUEST['key']; - $JSON['status'][$_REQUEST['key']]=1; - } -} -$JSON['error']=0; - -setModuleParameter('ISK', 'LockedSessions', $LockSessions); - -JsonOut($JSON); diff --git a/src/Api/ISK/Sessions.css b/src/Api/ISK/Sessions.css deleted file mode 100644 index 563f92b7..00000000 --- a/src/Api/ISK/Sessions.css +++ /dev/null @@ -1,6 +0,0 @@ -.locked {color:red; background-color: transparent;} -.unlocked {color:green;} -.Legend {padding: 0.75em 0.75em !important;} -.separation {padding: 0.5em;} - -[onclick] {cursor: pointer;} diff --git a/src/Api/ISK/Sessions.js b/src/Api/ISK/Sessions.js deleted file mode 100644 index d14947d5..00000000 --- a/src/Api/ISK/Sessions.js +++ /dev/null @@ -1,15 +0,0 @@ - - -function toggleLock(obj) { - $.getJSON('Sessions-Toggle.php?key='+$(obj).attr('ref'), function(data) { - if(data.error==0) { - $.each(data.status, function(idx) { - $('[ref="'+idx+'"]') - .toggleClass('locked fa-times-circle', this==1) - .toggleClass('unlocked fa-check-circle', this==0); - }); - } else { - alert(data.msg); - } - }); -} diff --git a/src/Api/ISK/Sessions.php b/src/Api/ISK/Sessions.php deleted file mode 100644 index 80ef73c6..00000000 --- a/src/Api/ISK/Sessions.php +++ /dev/null @@ -1,104 +0,0 @@ -0,'E'=>0,'I'=>0,'T'=>0); -$Headers=array(); -while($r=safe_fetch($q)) { - $Sessions[$r->SesType][($r->SesType == 'Q' ? $r->Order2 . '. ' : '') . $r->Description][$r->Distance]=$r; - $Cols=max($Cols, count($Sessions[$r->SesType][($r->SesType == 'Q' ? $r->Order2 . '. ' : '') . $r->Description])); - $SesCols[$r->SesType]=max($SesCols[$r->SesType], count($Sessions[$r->SesType][($r->SesType == 'Q' ? $r->Order2 . '. ' : '') . $r->Description])); -} - -foreach($Sessions as $Type => $Events) { - foreach($Events as $k => $v) { - if(count($v)==$SesCols[$Type]) { - // same number of columns... - $Headers[$Type]=array_keys($v); - } - } -} - -$IncludeFA = true; -$PAGE_TITLE=get_text('ManageLockedSessions', 'ISK'); -$JS_SCRIPT=array( - '', - '', - '', -); - -require_once('Common/Templates/head.php'); - -echo ''; -echo ''; -echo ''; -echo ''. - ''; - -foreach($Sessions as $Type => $Events) { - echo ''; - $First=true; - foreach($Events as $Event => $Items) { - $colsEvent=count($Items); - if($First) { - echo ''; - foreach($Headers[$Type] as $k) { - if($Type=='Q' or $Type=='E') { - $tit=get_text('PopupStatusDistance', 'Api', $k); - } else { - $tit=get_text($k.'_Phase'); - } - echo ''; - } - // blank columns go after - if($SesCols[$Type]<$Cols) { - echo ''; - } - echo ''; - echo ''; - } - echo ''; - if($Type=='I' or $Type=='T') { - // blank columns go first - if($colsEvent<$SesCols[$Type]) { - echo ''; - } - } - foreach($Items as $k => $item) { - $active= (in_array($item->LockKey, $LockSessions) ? 'fa-times-circle locked' : 'fa-check-circle unlocked'); - echo ''; - } - // blank columns go after - if($SesCols[$Type]<$Cols) { - echo ''; - } - echo ''; - echo ''; - $First=false; - } -} -echo ''; -echo '
'.get_text('ManageLockedSessions', 'ISK').'
'.get_text('LockAll', 'ISK').'
'.get_text('UnlockAll', 'ISK').'
'.get_text($Type.'-Session', 'Tournament').''.$tit.'
'.$Event.'
'.get_text('ISK-LockedSessionHelp', 'Help', '').'
'; - -require_once('Common/Templates/tail.php'); diff --git a/src/Api/ISK/SetArrowValue.php b/src/Api/ISK/SetArrowValue.php deleted file mode 100644 index 412f2af7..00000000 --- a/src/Api/ISK/SetArrowValue.php +++ /dev/null @@ -1,386 +0,0 @@ -IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } else { - // should be match then! - if($EventTypeLetter!=substr($QrCode['st'], 1)) { - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } - // device should be OK... checks the sticky ends - $StickyEnds=getModuleParameter('ISK', 'StickyEnds', array('SeqCode'=>'', 'Distance'=>'', 'Ends'=>array()), $CompId); - if(empty($QrCode['st']) and empty($StickyEnds['SeqCode'])) { - $CanScore=true; - } else { - // now check if the ends - $CheckSequence=true; - } - } else { - // no qrcode at all ... pro not associated in the DB... resets state AND competition to be safe - safe_w_sql("UPDATE IskDevices SET - IskDvTournament=0, IskDvState=0, IskDvLastSeen='".date('Y-m-d H:i:s')."' - WHERE IskDvDevice='{$DeviceId}'"); - - // cannot score so sends back - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } else { - // lite app should not be allowed to arrive here... removes association in the DB and resets state - safe_w_sql("UPDATE IskDevices SET - IskDvTournament=0, IskDvState=0, IskDvLastSeen='".date('Y-m-d H:i:s')."' - WHERE IskDvDevice='{$DeviceId}'"); - - // lite app cannot score so sends back - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } -} - -$LockedSessions=getModuleParameter('ISK', 'LockedSessions', array(), $CompId); - -if($TargetNo) { - $tmp=explode('|', $TargetNo); - if(count($tmp)==3) { - // need to implement this one. elimination rounds! - CreateTourSession($CompId); - - $arrIndex = $_REQUEST['arrowindex']; - $arrValue = $_REQUEST['arrowsymbol']; - - $JsonResult['arrowsymbol']= $_REQUEST['arrowsymbol']; - $JsonResult['curendscore'] = 0 ; - $JsonResult['curscore'] = 0 ; - $JsonResult['curgold'] = 0 ; - $JsonResult['curxnine'] = 0; - $JsonResult['score'] = 0 ; - $JsonResult['gold'] = 0 ; - $JsonResult['xnine'] = 0; - - // Elimination - require_once('Elimination/Fun_Eliminations.local.inc.php'); - - $JsonResult = SetElimArrowValue($tmp[0], $tmp[1], $tmp[2], $_REQUEST['arrowindex'], $_REQUEST['arrowsymbol'], 'JSON', $CompId); - $Error=$JsonResult['error']; - } else { - //Qualification - $dist = $_REQUEST['distnum']; - $arrIndex = $_REQUEST['arrowindex']; - $arrValue = $_REQUEST['arrowsymbol']; - $tgt = $_REQUEST['qutarget']; - - $SQL="SELECT QuId, QuSession, QuTargetNo, QuTarget, DIDistance, DIEnds, DIArrows, - IF(TfGoldsChars{$dist}='',IF(TfGoldsChars='',ToGoldsChars,TfGoldsChars),TfGoldsChars{$dist}) as GoldsChars, - IF(TfXNineChars{$dist}='',IF(TfXNineChars='',ToXNineChars,TfXNineChars),TfXNineChars{$dist}) as XNineChars, - QuConfirm & ".pow(2, $dist).">0 as StopImport, ToCategory&12 as IsField3D, ToNumEnds - from Qualifications - INNER JOIN Entries ON QuId=EnId - INNER JOIN Tournament ON ToId=EnTournament - INNER JOIN TargetFaces on TfId=EnTargetFace and TfTournament=EnTournament - INNER JOIN DistanceInformation ON DITournament=EnTournament AND DISession=QuSession AND DIDistance=".StrSafe_DB($dist)." AND DIType='Q' - WHERE EnTournament=$CompId and QuTargetNo=".StrSafe_DB($tgt); - - $q=safe_r_SQL($SQL); - $ArrowSearch=safe_fetch($q); - - if($ArrowSearch->StopImport) { - // Scorecard has been verified/confirmed so the app CAN NEVER score on this distance... - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - - $endNum=intval($arrIndex/$ArrowSearch->DIArrows); - $arrNum=$arrIndex-($endNum*$ArrowSearch->DIArrows); - $endNum++; - - // check if the app is allowed to score here - if(!$CanScore) { - // check if it is not allowed YET because need to check end/distance/session - if($CheckSequence) { - $CanScore=true; - // check if it is allowed based on sticky ends - if($StickyEnds['SeqCode']) { - if($StickyEnds['SeqCode'][0]!='Q' //sticky set on another stage!! - or $StickyEnds['SeqCode'][2]!=$tgt[0] // sticky on Q but different session - or $StickyEnds['Distance']!=$dist) { // sticky on a different distance - $CanScore=false; - } - $StopAutoImport=(!in_array($endNum, $StickyEnds['Ends']) or $DEVICE->IskDvTarget!=intval(substr($tgt,1))); - if($CanScore and !in_array($endNum, $StickyEnds['Ends'])) { - $Error=2; - } - } - - // check if it can score based on sequence - if(!$StopAutoImport and $CanScore and $QrCode['st']) { - if($QrCode['st']!='Q' - or $QrCode['s']!=$tgt[0] - or $QrCode['d']!=$dist) { - $CanScore=false; - } - // check if there is a target group - $StopAutoImport=!in_array($DEVICE->IskDvTarget, getGroupedTargets($RealTarget=intval(substr($tgt,1)), $tgt[0], 'Q', '', true)); - } - } - - if(!$CanScore) { - // cannot score this end for various reasons... resets to "ask for code" only if the devices is in OK state - safe_w_sql("UPDATE IskDevices SET IskDvState=2, IskDvLastSeen='".date('Y-m-d H:i:s')."' WHERE IskDvDevice='{$DeviceId}' and IskDvState=1"); - - // cannot score so sends back - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } - - if($Error!=2) { - $arrString = str_repeat(' ',$ArrowSearch->DIArrows); - $SQL = "SELECT QuD{$ArrowSearch->DIDistance}Arrowstring as Arrowstring - FROM Qualifications INNER JOIN Entries ON QuId=EnId - WHERE EnTournament={$CompId} AND QuTargetNo='{$ArrowSearch->QuTargetNo}' "; - $q=safe_r_SQL($SQL); - if($r=safe_fetch($q)) { - $arrString=str_pad(substr($r->Arrowstring,($endNum-1)*$ArrowSearch->DIArrows,$ArrowSearch->DIArrows),$ArrowSearch->DIArrows, ' ', STR_PAD_RIGHT); - } - $SQL = "SELECT IskDtArrowstring - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' - AND IskDtTargetNo='{$ArrowSearch->QuTargetNo}' AND IskDtDistance={$ArrowSearch->DIDistance} AND IskDtEndNo={$endNum}"; - $q=safe_r_SQL($SQL); - if($r=safe_fetch($q)) { - for($i=0; $i<$ArrowSearch->DIArrows; $i++){ - if($r->IskDtArrowstring[$i]!=' '){ - $arrString[$i]=$r->IskDtArrowstring[$i]; - } - } - } - // check if the "key" of the session is allowed to score - $LockKey='Q|'.$ArrowSearch->QuTargetNo[0].'|'.intval($ArrowSearch->DIDistance); - if(in_array($LockKey, $LockedSessions)) { - $StopAutoImport = true; - $Error=2; - } else { - $arrString[$arrNum] = GetLetterFromPrint($arrValue,$ArrowSearch->QuId,$ArrowSearch->DIDistance); - $SQL = "INSERT INTO IskData (IskDtTournament, IskDtMatchNo, IskDtEvent, IskDtTeamInd, IskDtType, IskDtTargetNo, IskDtDistance, IskDtEndNo, IskDtArrowstring, IskDtUpdate, IskDtDevice) - VALUES ({$CompId}, 0, '', 0, 'Q', '{$ArrowSearch->QuTargetNo}', {$ArrowSearch->DIDistance}, {$endNum}, '{$arrString}', '".date('Y-m-d H:i:s')."', '{$DeviceId}') - ON DUPLICATE KEY UPDATE IskDtArrowstring='{$arrString}', IskDtUpdate='".date('Y-m-d H:i:s')."', IskDtDevice= '{$DeviceId}'"; - safe_w_SQL($SQL); - - // check if the import needs to be done after all arrows of the end are in - if(defined('IMPORT_TYPE') and IMPORT_TYPE) { - $iskStopAutoImport=(IMPORT_TYPE==2 or strlen(trim($arrString))!=$ArrowSearch->DIArrows); - } - $Error=0; - } - } - - if(!$iskStopAutoImport and !$StopAutoImport) { - importQualifications($ArrowSearch->QuId, $ArrowSearch->DIDistance, $endNum) ; - } - - $tmp = getQualificationTotals($ArrowSearch->QuId, $ArrowSearch->DIDistance, $endNum, $ArrowSearch->DIArrows, $ArrowSearch->DIEnds, $ArrowSearch->GoldsChars, $ArrowSearch->XNineChars, $ArrowSearch->IsField3D ? $ArrowSearch->QuTarget : null); - - $JsonResult=array(); - $JsonResult['qutarget'] = $ArrowSearch->QuTargetNo; - $JsonResult['distnum'] = (string) $ArrowSearch->DIDistance; - $JsonResult['arrowindex'] = (string) $arrIndex; - $JsonResult['arrowsymbol'] = DecodeFromLetter($tmp['curendarrstr'][$arrNum]); - $JsonResult['curendscore'] = $tmp['curendscore']; - $JsonResult['curscore'] = $tmp['curscore']; - $JsonResult['curscoreatend'] = $tmp['curscoreatend']; - $JsonResult['curgold'] = $tmp['curgold']; - $JsonResult['curxnine'] = $tmp['curxnine']; - $JsonResult['score'] = $tmp['score']; - $JsonResult['scoreatend'] = $tmp['scoreatend']; - $JsonResult['gold'] = $tmp['gold']; - $JsonResult['xnine'] = $tmp['xnine']; - //$JsonResult['arrowstring'] = $tmp['arrowstring']; - $JsonResult['arrowstrings'] = $tmp['arrowstrings']; - - } -} else { - $JsonResult=array(); - $arrIndex = $_REQUEST['arrowindex']; - $arrValue = $_REQUEST['arrowsymbol']; - $obj=getEventArrowsParams($Event,getPhase($MatchNo),$EventType,$CompId); - $tmpArrowString=''; - $tgtType=0; - $Error = 1; - $SQL = "SELECT EvFinalTargetType FROM Events WHERE EvCode='{$Event}' AND EvTeamEvent={$EventType} AND EvTournament={$CompId}"; - $q=safe_r_sql($SQL); - if($r=safe_fetch($q)) { - $tgtType = $r->EvFinalTargetType; - $Error = 0; - } - - if(empty($arrValue)) { - $tmpArrowString = ' '; - } else { - $tmpArrowString=GetLetterFromPrint($arrValue, 'T', $tgtType); - if($tmpArrowString==' ') - $Error = 1; - } - if($arrIndex>=($obj->arrows*$obj->ends)+$obj->so) { - $Error = 1; - } - - if(!$Error) { - $isSo = ($arrIndex >= ($obj->ends*$obj->arrows)); - $endNum=($isSo ? ($obj->ends) : intval($arrIndex/$obj->arrows)); - $arrNum=($isSo ? $arrIndex-($obj->ends*$obj->arrows) : $arrIndex-($endNum*$obj->arrows)); - $endNum++; - - // check if the app is allowed to score here - if(!$CanScore) { - // check if it is not allowed YET because need to check end/distance/session - if($CheckSequence) { - $MatchNo2=($MatchNo%2 ? $MatchNo-1 : $MatchNo+1); - $Select = "SELECT DISTINCT CONCAT(IF(FSTeamEvent=0,'I','T'), FSScheduledDate, FSScheduledTime) AS keyValue, max($DEVICE->IskDvTarget = FsTarget+0) as Target - FROM FinSchedule - WHERE FSTournament={$CompId} and FSScheduledDate>0 and FsTeamEvent={$EventType} and FsEvent='{$Event}' and FsMatchNo in ({$MatchNo}, $MatchNo2) - group by FsTeamEvent, FsEvent"; - $chkQ=safe_r_sql($Select); - $chkR=safe_fetch($chkQ); - - $CanScore=$chkR; - // check if it is allowed based on sticky ends - if($CanScore and $StickyEnds['SeqCode']) { - if($StickyEnds['SeqCode']!=$chkR->keyValue) { - $CanScore=false; - } - $StopAutoImport=(!in_array($endNum, $StickyEnds['Ends']) or !$chkR->Target); - if($CanScore and !in_array($endNum, $StickyEnds['Ends'])) { - $Error=2; - } - } - - // check if it can score based on sequence - if($CanScore and $QrCode['st']) { - if($QrCode['st']!='M'.$EventTypeLetter) { - $CanScore=false; - } - $StopAutoImport=(!$chkR->Target); - } - } - if(!$CanScore) { - // cannot score this end for various reasons... resets to "ask for code" only if the devices is in OK state - safe_w_sql("UPDATE IskDevices SET IskDvState=2, IskDvLastSeen='".date('Y-m-d H:i:s')."' WHERE IskDvDevice='{$DeviceId}' and IskDvState=1"); - - // cannot score so sends back - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } - - if($Error!=2) { - // check if the score is confirmed - $prefix=($EventType ? 'Tf' : 'Fin'); - $SQL= "select * from ".($EventType ? 'Team' : '')."Finals - where {$prefix}Confirmed=1 - /* and {$prefix}Status=1 */ - and {$prefix}Tournament={$CompId} - and {$prefix}Event='{$Event}' - and {$prefix}Matchno={$MatchNo}"; - - $q=safe_r_sql($SQL); - if(safe_num_rows($q)) { - // arrow arrived on a confirmed score, so RESET the device... - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - - $arrString = str_repeat(" ",($isSo ? $obj->so : $obj->arrows)); - $SQL = "SELECT IskDtArrowstring - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo={$MatchNo} AND IskDtEvent='{$Event}' AND IskDtTeamInd={$EventType} AND IskDtType='{$EventTypeLetter}' - AND IskDtTargetNo='' AND IskDtDistance=0 AND IskDtEndNo={$endNum}"; - $q=safe_r_SQL($SQL); - if($r=safe_fetch($q)) { - $arrString=$r->IskDtArrowstring; - } - // check if the "key" of the session is allowed to score - $LockKey=($EventType==0 ? 'I':'T').'|'.getPhase($MatchNo).'|'.$Event; - if(in_array($LockKey, $LockedSessions)) { - $StopAutoImport = true; - $Error=2; - } else { - $arrString[$arrNum] = $tmpArrowString; - $SQL = "INSERT INTO IskData (IskDtTournament, IskDtMatchNo, IskDtEvent, IskDtTeamInd, IskDtType, IskDtTargetNo, IskDtDistance, IskDtEndNo, IskDtArrowstring, IskDtUpdate, IskDtDevice) - VALUES ({$CompId}, {$MatchNo}, '{$Event}', {$EventType}, '{$EventTypeLetter}', '', 0, {$endNum}, '{$arrString}', '".date('Y-m-d H:i:s')."', '{$DeviceId}') - ON DUPLICATE KEY UPDATE IskDtArrowstring='{$arrString}', IskDtUpdate='".date('Y-m-d H:i:s')."', IskDtDevice= '{$DeviceId}'"; - safe_w_SQL($SQL); - $Error=0; - - // check if the import needs to be done after all arrows of the end are in - if(defined('IMPORT_TYPE') and IMPORT_TYPE) { - $iskStopAutoImport=(IMPORT_TYPE==2 or strlen(trim($arrString))!=($isSo ? $obj->so : $obj->arrows)); - } - } - - if(!$iskStopAutoImport and !$StopAutoImport) { - importMatches($Event, $MatchNo, $EventType, $endNum, $obj->arrows, $obj->ends, $obj->so, $arrNum); - } - - } - - $tmp = getMatchTotals($Event, $MatchNo, $EventType, $endNum, $obj->arrows, $obj->ends, $obj->so); - - $JsonResult['matchid'] = $Event."|".($EventType==0 ? 'I':'T')."|".$MatchNo; - $JsonResult['distnum'] = "1"; - $JsonResult['arrowindex'] = (string) $arrIndex; - $JsonResult['arrowsymbol'] = DecodeFromLetter($isSo ? $tmp['arrowstring'][$arrNum] : $tmp['arrowstring'][$arrIndex]); - $JsonResult['curendscore'] = $tmp['curendscore']; - $JsonResult['curscore'] = $tmp['curscore']; - $JsonResult['curscoreatend'] = $tmp['curscoreatend']; - $JsonResult['curgold'] = $tmp['curgold']; - $JsonResult['curxnine'] = $tmp['curxnine']; - $JsonResult['score'] = $tmp['score']; - $JsonResult['scoreatend'] = $tmp['scoreatend']; - $JsonResult['gold'] = $tmp['gold']; - $JsonResult['xnine'] = $tmp['xnine']; - $JsonResult['arrowstrings'] = array($tmp['arrowstring']); - } -} -$JsonResult['error'] = $Error; - -SendResult($JsonResult); diff --git a/src/Api/ISK/VerifyVersion.php b/src/Api/ISK/VerifyVersion.php deleted file mode 100644 index 75298a14..00000000 --- a/src/Api/ISK/VerifyVersion.php +++ /dev/null @@ -1,29 +0,0 @@ - true, - 'ianseoversion' => ProgramVersion, - 'minappversion' => $AppMinVersion, - 'maxappversion' => $AppMaxVersion - ); - -if(empty($_REQUEST['version'])) { - $JsonResponse['compatible']=false; -} else { - $AppMinVersion=explode('.', $AppMinVersion); - $AppMinVersion=sprintf('%03s-%03s-%04s-', $AppMinVersion[0], $AppMinVersion[1], $AppMinVersion[2]); - $AppMaxVersion=explode('.', $AppMaxVersion); - $AppMaxVersion=sprintf('%03s-%03s-%04s-', $AppMaxVersion[0], $AppMaxVersion[1], $AppMaxVersion[2]); - $AppVersion=explode('.', $_REQUEST['version']); - while(count($AppVersion)<3) $AppVersion[]=0; - $AppVersion=sprintf('%03s-%03s-%04s-', $AppVersion[0], $AppVersion[1], $AppVersion[2]); - - if($AppVersion<$AppMinVersion or $AppVersion>$AppMaxVersion) { - $JsonResponse['compatible']=false; - } -} - -SendResult($JsonResponse); \ No newline at end of file diff --git a/src/Api/ISK/config-ianseo.php b/src/Api/ISK/config-ianseo.php deleted file mode 100644 index 7e61aa18..00000000 --- a/src/Api/ISK/config-ianseo.php +++ /dev/null @@ -1,7 +0,0 @@ - get_text('ISK-NoCompCode', 'Api'))); -} else { - if(($sepPosition = strpos($CompCode,'|'))!==false) { - $CompPin=substr($CompCode,$sepPosition+1); - $CompCode=substr($CompCode,0,$sepPosition); - } - $CompId=getIdFromCode($CompCode); - if(!$CompId) SendResult(array('error' => get_text('ISK-BadCompCode', 'Api'))); -} - -$iskModePro = false; // competition mode -$iskAppPro=false; // device type -$iskStopAutoImport = 0; -$iskStickyEnds = array(); -if(empty($SkipCompCode)) { - //Check PIN - $tmpPin = getModuleParameter('ISK', 'ServerUrlPin', '', $CompId); - if(!empty($tmpPin) AND $CompPin != $tmpPin) { - die(); - } - //Get Isk Options - if($tmp=getModuleParameter('ISK', 'Mode', '', $CompId)) { - if($tmp=='pro') { - $iskModePro = true; - } - } else { - die(); - } - $iskStopAutoImport=getModuleParameter('ISK', 'StopAutoImport', 0, $CompId); - $iskStickyEnds=getModuleParameter('ISK', 'StickyEnds', array(), $CompId); - define('IMPORT_TYPE', $iskModePro ? 0 : getModuleParameter('ISK', 'ImportType', 0, $CompId)); - define('RKCALC_DivClI', $iskModePro ? 0 : getModuleParameter('ISK','CalcClDivInd',0, $CompId)); - define('RKCALC_DivClT', $iskModePro ? 0 : getModuleParameter('ISK','CalcClDivTeam',0, $CompId)); - define('RKCALC_FinI', $iskModePro ? 0 : getModuleParameter('ISK','CalcFinInd',0, $CompId)); - define('RKCALC_FinT', $iskModePro ? 0 : getModuleParameter('ISK','CalcFinTeam',0, $CompId)); -} - -if(empty($SkipDeviceCheck) and !defined('IN_IANSEO') and !checkDeviceApp(empty($SkipCompCode))) die(); - -function SendResult($Result) { - if(defined('IN_IANSEO')) return($Result); - UpdateLastSeen(); - JsonOut($Result, 'callback'); -} - -function SendResetIsk($DevCode, $Version, $IsPro) { - global $DEVICE; - // resets the status of the device to "wait for QrCode" - safe_w_sql("update IskDevices set IskDvState=2 where IskDvCode='$DevCode'"); - - $DefAnswer=array('onlypro'=>true, 'devicecode'=>$DevCode, 'error' => get_text('ISK-OnlyProAloud', 'Api')); - if(!$IsPro) { - $v=explode('.', $Version); - for($n=count($v); $n<3; $n++) { - $v[]=0; - } - - if(sprintf("%03s-%03s-%04s", $v[0], $v[1], $v[2])<"001-001-0000" and !$IsPro) { - // old lite version... - $DefAnswer=''; - } - - } - - JsonOut($DefAnswer, 'callback'); -} - - - -/** - * Given a device ID returns the associated QRcode - * @param string $States The states to ask for, defaults to OK, to send and send - */ -function getQrCode($States = '1,2,3') { - global $DeviceId,$CFG; - $Opts=array(); - $q=safe_r_sql("select IskDevices.*, ToCode from IskDevices inner join Tournament on IskDvTournament=ToId where (IskDvState in ($States) or (IskDvAuthRequest=1 and IskDvState=1)) and IskDvDevice=".StrSafe_DB($DeviceId)); - if($r=safe_fetch($q)) { - // Check the competition actually is set up to use with the app! - if(!getModuleParameter('ISK', 'Mode', '', $r->IskDvTournament)) { - return ""; - } - - // Get the sequence if any... - $tmp = getModuleParameter('ISK', 'Sequence', array("type"=>'', "session"=>'', "distance"=>'', "maxdist"=>'', "end"=>''),$r->IskDvTournament); - if(!isset($tmp["type"])) { - delModuleParameter('ISK', 'Sequence', $r->IskDvTournament); - $tmp = getModuleParameter('ISK', 'Sequence', array("type"=>'', "session"=>'', "distance"=>'', "maxdist"=>'', "end"=>''),$r->IskDvTournament); - } - - // check if the device has a target assigned - if(!($r->IskDvTarget and $tmp["type"])) { - // reset the device! - SendResetIsk($r->IskDvCode, $r->IskDvVersion, $r->IskDvAppVersion); - } - - // gets infos from device - $tmpPin=getModuleParameter('ISK', 'ServerUrlPin', '', $r->IskDvTournament); - $Opts['u']=getModuleParameter('ISK', 'ServerUrl', '', $r->IskDvTournament).$CFG->ROOT_DIR; // .'Api/ISK-Lite/'; - $Opts['c']=$r->ToCode . (empty($tmpPin) ? '' : '|'.$tmpPin); - - switch ($tmp["type"]) { - case 'Q': - // check if there is a target assigned to that target... - $q=safe_r_sql("select QuId from Qualifications inner join Entries on QuId=EnId and EnTournament={$r->IskDvTournament} where QuSession='{$tmp["session"]}' and substr(QuTargetNo, -4,3)+0= $r->IskDvTarget"); - if(!safe_num_rows($q)) { - // no available targets ! - SendResetIsk($r->IskDvCode, $r->IskDvVersion, $r->IskDvAppVersion); - } - $Opts['st'] = 'Q'; - $Opts['s'] = (string) $tmp["session"]; - $Opts['d'] = (string) $tmp["distance"]; - $Opts['t'] = str_pad($r->IskDvTarget,3,"0",STR_PAD_LEFT); - if(intval($tmp["end"])) - $Opts['e'] = (string) $tmp["end"]; - break; - case 'E': - // check if there is a target assigned to that target... - $q=safe_r_sql("select ElId, ElEventCode - from Eliminations - where ElTournament={$r->IskDvTournament} and ElSession='{$tmp["session"]}' and ElElimPhase={$tmp['distance']} and substr(ElTargetNo, -4,3)+0= $r->IskDvTarget"); - if(!safe_num_rows($q)) { - // no available targets ! - SendResetIsk($r->IskDvCode, $r->IskDvVersion, $r->IskDvAppVersion); - } - $r2=safe_fetch($q); - $Opts['st'] = 'E'.($tmp['distance']+1); - $Opts['s'] = (string) $r2->ElEventCode; - $Opts['d'] = '1'; - $Opts['t'] = 'E'.($tmp['distance']+1).'|'.$r2->ElEventCode.'|'.str_pad($r->IskDvTarget,3,"0",STR_PAD_LEFT); - if(intval($tmp["end"])) - $Opts['e'] = (string) $tmp["end"]; - break; - case 'I': - case 'T': - $Opts['st'] = 'M'.$tmp["type"]; - $q=safe_r_SQL("SELECT FSEvent, FSMatchNo, GrPhase - FROM FinSchedule - INNER JOIN Grids ON FSMatchNo=GrMatchNo - WHERE FSTournament=" . $r->IskDvTournament . " AND FsTeamEvent=" . ($tmp["type"]=='I' ? "0":"1") . " - AND CONCAT(FSScheduledDate,FSScheduledTime)=" . StrSafe_DB($tmp["session"]) . " AND FSTarget=" . StrSafe_DB(str_pad($r->IskDvTarget,3,"0",STR_PAD_LEFT))." - order by FsMatchNo"); - if($r2=safe_fetch($q) and $r2->FSMatchNo%2==0) { - $Opts['s'] = $r2->FSEvent; - $Opts['d'] = (string) $r2->FSMatchNo; - $Opts['t'] = (string) $r2->GrPhase; - if(intval($tmp["end"])) { - $Opts['e'] = (string) $tmp["end"]; - } - } else { - SendResetIsk($r->IskDvCode, $r->IskDvVersion, $r->IskDvAppVersion); - } - break; - } - } - if(count($Opts)) - return $Opts; - else - return ""; -} - -function checkDeviceApp($chkCompetition) { - global $DeviceId, $CompId, $iskModePro, $CFG, $iskAppPro, $DEVICE; - $q=safe_r_sql("SELECT * FROM IskDevices WHERE IskDvDevice='{$DeviceId}'"); - if(safe_num_rows($q)==0) { - $Version=(empty($_REQUEST['version']) ? '' : preg_replace('/[^a-z0-9.-]/sim', '', $_REQUEST['version'])); - $AppVersion=(empty($_REQUEST['t']) || $_REQUEST['t']!='p' ? 0 : 1); - if($AppVersion) $iskAppPro=true; - $iskCode="0001"; - $q=safe_r_sql("SELECT IskDvCode FROM IskDevices where length(IskDvCode)=4 ORDER BY IskDvCode DESC"); - if($r=safe_fetch($q)) { - $iskCode = str_pad(base_convert(base_convert($r->IskDvCode,36,10)+1,10,36),4,'0',STR_PAD_LEFT); - } - safe_w_SQL("INSERT INTO IskDevices - (IskDvTournament, IskDvDevice, IskDvCode, IskDvVersion, IskDvAppVersion, IskDvState, IskDvIpAddress, IskDvLastSeen) VALUES - ('{$CompId}', '{$DeviceId}', '{$iskCode}', '{$Version}', {$AppVersion}, 0, '" . $_SERVER["REMOTE_ADDR"] . "', '".date('Y-m-d H:i:s')."')"); - - $q=safe_r_sql("SELECT * FROM IskDevices WHERE IskDvDevice='{$DeviceId}'"); - $DEVICE=safe_fetch($q); - if($iskModePro) { - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } else { - return true; - } - } else { - $Version=''; - $AppVersion=''; - $NewCode=''; - $DEVICE=safe_fetch($q); - if(strlen($DEVICE->IskDvCode)!=4) { - $DEVICE->IskDvCode=str_pad($DEVICE->IskDvCode,4,'0',STR_PAD_LEFT); - $NewCode=", IskDvCode='{$DEVICE->IskDvCode}'"; - } - $iskAppPro=$DEVICE->IskDvAppVersion; - if($DeviceId) { - if(!empty($_REQUEST['version'])) { - $Version=", IskDvVersion='".preg_replace('/[^a-z0-9.-]/sim', '', $_REQUEST['version'])."'"; - } - if(!empty($_REQUEST['t']) and $_REQUEST['t']=='p') { - $AppVersion=', IskDvAppVersion=1'; - $iskAppPro=true; - } - } - safe_w_SQL("UPDATE IskDevices SET - IskDvIpAddress='" . $_SERVER["REMOTE_ADDR"] . "', IskDvLastSeen='".date('Y-m-d H:i:s')."' $AppVersion $Version $NewCode - WHERE IskDvDevice='{$DeviceId}'"); - if($iskModePro && $chkCompetition && $DEVICE->IskDvTournament != $CompId) { - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - if(!$iskModePro || ($DEVICE->IskDvAppVersion==1 && $DEVICE->IskDvState!=0)) { - return true; - } else { - // IskPro for sure! - SendResetIsk($DEVICE->IskDvCode, $DEVICE->IskDvVersion, $DEVICE->IskDvAppVersion); - } - } -} - -function UpdateLastSeen() { - global $DeviceId; - if(!$DeviceId) return; - safe_w_SQL("UPDATE IskDevices SET - IskDvLastSeen='".date('Y-m-d H:i:s')."' - WHERE IskDvDevice='{$DeviceId}'"); -} - -function getQualificationTotals($EnId, $dist, $end, $arr4End, $end4Dist, $G, $X9, $StartTarget=null) { - global $CompId; - $res=array('curendscore'=>0,'curscore'=>0,'curscoreatend'=>0,'curgold'=>0,'curxnine'=>0,'score'=>0,'scoreatend'=>0,'gold'=>0,'xnine'=>0); - $SQL = "SELECT QuTargetNo, QuScore, QuGold, QuXnine, QuD{$dist}Score as dScore, QuD{$dist}Gold as dGold, QuD{$dist}Xnine as dXnine, QuD{$dist}Arrowstring as dArrowstring, ("; - for($i=1;$i<$dist;$i++) - $SQL .= "QuD{$i}Score+"; - $SQL .= "0) as prevScore, max(DiDistance) as MaxDistance, group_concat(DiEnds*DiArrows order by DiDistance separator '|') as PadArrows, - QuD1Arrowstring, QuD2Arrowstring, QuD3Arrowstring, QuD4Arrowstring, QuD5Arrowstring, QuD6Arrowstring, QuD7Arrowstring, QuD8Arrowstring - FROM Qualifications - innser join DistanceInformation on DiTournament=$CompId and DiType='Q' and DiSession=QuSession - WHERE QuId={$EnId} - group by QuId"; - $q=safe_r_sql($SQL); - if($r=safe_fetch($q)) { - $curArrowString=str_repeat(" ", $arr4End * $end4Dist); - $SQL = "SELECT IskDtEndNo, IskDtArrowstring - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' AND IskDtTargetNo='{$r->QuTargetNo}' AND IskDtDistance={$dist} - ORDER BY IskDtEndNo"; - $q=safe_r_sql($SQL); - while($r2=safe_fetch($q)){ - $curArrowString = substr_replace($curArrowString, $r2->IskDtArrowstring, ($r2->IskDtEndNo-1)*$arr4End, $arr4End); - } - for($i=0; $i<($arr4End * $end4Dist); $i++) { - if($curArrowString[$i]==' ' && isset($r->dArrowstring[$i])) { - $curArrowString[$i]=$r->dArrowstring[$i]; - } - } - - $tmp = ValutaArrowStringGX($curArrowString, $G, $X9); - $res['curendarrstr'] = substr($curArrowString,($end-1)*$arr4End, $arr4End); - $res['tilendarrstr'] = substr($curArrowString, 0, $end*$arr4End); - $res['arrowstring'] = $curArrowString; - $res['curendscore'] = ValutaArrowString($res['curendarrstr']); - $res['curscore'] = $tmp[0]; - $res['curscoreatend'] = ValutaArrowString($res['tilendarrstr']); - $res['curgold'] = $tmp[1]; - $res['curxnine'] = $tmp[2]; - $res['score'] = $r->QuScore-$r->dScore+$res['curscore']; - $res['scoreatend'] = $r->prevScore+$res['curscoreatend']; - $res['gold'] = $r->QuGold-$r->dGold+$res['curgold']; - $res['xnine'] = $r->QuXnine-$r->dXnine+$res['curxnine']; - $res['prevendscored'] = ($end==1 || (trim(substr($curArrowString, $arr4End*($end-2), $arr4End)) !='')); - - $res['arrowstrings'] = array(); - $PadArrows=explode('|', $r->PadArrows); - foreach(range(1,$r->MaxDistance) as $d) { - if($d==$dist) { - $res['arrowstrings'][]=str_pad($curArrowString, $PadArrows[$d-1], ' ', STR_PAD_RIGHT); - } else { - $res['arrowstrings'][]=str_pad($r->{'QuD'.$d.'Arrowstring'}, $PadArrows[$d-1], ' ', STR_PAD_RIGHT); - } - } - - if(!is_null($StartTarget)) { - // Field/3d, so we need to "circle" the arrowstring and the endnum to have the correct "alignment" with target archery - $StartTarget=(($StartTarget-1)%$end4Dist)+1; - $NewArrowstring=substr($curArrowString, $arr4End*($StartTarget-1)).substr($curArrowString, 0,$arr4End*($StartTarget-1)); - $NewEndNum=(($end+$end4Dist-$StartTarget)%$end4Dist)+1; - - $PrevTotal=ValutaArrowString(substr($NewArrowstring, 0, $NewEndNum*$arr4End)); - // Field or 3D, "circular" scorecard so need to adjust scores adding the already scored ends - //$res['tilendarrstr'] = substr($curArrowString, 0, $end*$arr4End).$res['tilendarrstr']; - $res['curscoreatend'] =$PrevTotal; - $res['scoreatend'] =$r->prevScore+$PrevTotal; - $res['prevendscored'] = ($end==1 || (trim(substr($res['tilendarrstr'],-2*$arr4End)) !='')); - $res['prevendscored'] = ($NewEndNum==1 || (trim(substr($NewArrowstring, $arr4End*($NewEndNum-2), $arr4End)) !='')); - } - } - return $res; -} - -function importQualifications($EnId, $dist=1, $end=1) { - global $CompId; - $amended=array(); - $SQL="SELECT QuId, EnDivision, EnClass, EnSubClass, EnCountry, EnCountry2, EnCountry3, IF(EnCountry2=0,EnCountry,EnCountry2) as TeamCode, EnIndClEvent, EnTeamClEvent, EnIndFEvent, (EnTeamFEvent+EnTeamMixEvent) as EnTeamFEvent, - QuTargetNo, QuD{$dist}Arrowstring as Arrowstring, IskDtArrowstring, IskDtEndNo, DIDistance, DIEnds, DIArrows, - IF(TfGoldsChars{$dist}='',IF(TfGoldsChars='',ToGoldsChars,TfGoldsChars),TfGoldsChars{$dist}) as GoldsChars, - IF(TfXNineChars{$dist}='',IF(TfXNineChars='',ToXNineChars,TfXNineChars),TfXNineChars{$dist}) as XNineChars, - ToElabTeam!=127 as MakeTeams - from Qualifications - INNER JOIN Entries ON QuId=EnId - INNER JOIN Tournament ON ToId=EnTournament - INNER JOIN TargetFaces on TfId=EnTargetFace and TfTournament=EnTournament - INNER JOIN DistanceInformation ON DITournament=EnTournament AND DISession=QuSession AND DIDistance=".StrSafe_DB($dist)." AND DIType='Q' - INNER JOIN IskData ON iskDtTournament=EnTournament AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' AND IskDtTargetNo=QuTargetNo AND IskDtDistance={$dist} AND IskDtEndNo={$end} - WHERE EnTournament=$CompId and QuId={$EnId}"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $arrowString = str_pad($r->Arrowstring,$r->DIArrows*$r->DIEnds); - for($i=0; $i<$r->DIArrows; $i++){ - if($r->IskDtArrowstring[$i]!=' '){ - $arrowString[($r->IskDtEndNo-1)*$r->DIArrows+$i]=$r->IskDtArrowstring[$i]; - } - } - $Score=0; - $Gold=0; - $XNine=0; - list($Score,$Gold,$XNine)=ValutaArrowStringGX($arrowString,$r->GoldsChars,$r->XNineChars); - - // Remove spaces from arrowstring and calc the hits using the actual # of arrows - $trimmedArrowString = preg_replace("/[^a-zA-Z0-9]+/", "", $arrowString); - $hits = strlen($trimmedArrowString); - - $Update = "UPDATE Qualifications SET - QuD{$dist}Score={$Score}, QuD{$dist}Gold={$Gold}, QuD{$dist}Xnine={$XNine}, QuD{$dist}ArrowString='{$arrowString}', QuD{$dist}Hits=$hits, - QuScore=QuD1Score+QuD2Score+QuD3Score+QuD4Score+QuD5Score+QuD6Score+QuD7Score+QuD8Score, - QuGold=QuD1Gold+QuD2Gold+QuD3Gold+QuD4Gold+QuD5Gold+QuD6Gold+QuD7Gold+QuD8Gold, - QuXnine=QuD1Xnine+QuD2Xnine+QuD3Xnine+QuD4Xnine+QuD5Xnine+QuD6Xnine+QuD7Xnine+QuD8Xnine, - QuHits=QuD1Hits+QuD2Hits+QuD3Hits+QuD4Hits+QuD5Hits+QuD6Hits+QuD7Hits+QuD8Hits, - QuTimestamp=" . StrSafe_DB(date('Y-m-d H:i:s')) . " - WHERE QuId={$r->QuId}"; - safe_w_SQL($Update); - - $Update = "DELETE FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo=0 AND IskDtEvent='' AND IskDtTeamInd=0 AND IskDtType='Q' - AND IskDtTargetNo='{$r->QuTargetNo}' AND IskDtDistance={$dist} AND IskDtEndNo={$end} AND IskDtArrowstring='{$r->IskDtArrowstring}'"; - safe_w_SQL($Update); - - require_once('Qualification/Fun_Qualification.local.inc.php'); - $oldSes = (!empty($_SESSION["TourId"]) ? $_SESSION["TourId"] : 0); - $_SESSION["TourId"]=$CompId; - - if(defined('RKCALC_DivClI') AND RKCALC_DivClI==0 AND $r->EnIndClEvent != 0) { - Obj_RankFactory::create('DivClass', array('tournament' => $CompId, 'events' => $r->EnDivision . $r->EnClass, 'dist' => $dist))->calculate(); - Obj_RankFactory::create('DivClass', array('tournament' => $CompId, 'events' => $r->EnDivision . $r->EnClass, 'dist' => 0))->calculate(); - } - if($r->MakeTeams and defined('RKCALC_DivClT') AND RKCALC_DivClI==0 AND $r->EnTeamClEvent != 0) { - MakeTeams($r->TeamCode, $r->EnDivision.$r->EnClass, $CompId); - } - - if((defined('RKCALC_FinI') AND RKCALC_FinI==0) OR (defined('RKCALC_FinT') AND RKCALC_FinT==0)) { - $SQL = "SELECT DISTINCT EvCode, EvTeamEvent, EvTeamCreationMode - FROM Events - INNER JOIN EventClass ON EvCode=EcCode AND EvTeamEvent=if(EcTeamEvent=0, 0, 1) AND EvTournament=EcTournament - WHERE EvTournament={$CompId} AND EcClass='{$r->EnClass}' AND EcDivision='{$r->EnDivision}' and if(EcSubClass='', true, EcSubClass='{$r->EnSubClass}') - ORDER BY EvTeamEvent, EvCode"; - $q2=safe_r_sql($SQL); - while($r2=safe_fetch($q2)) { - if(defined('RKCALC_FinI') AND RKCALC_FinI==0 AND $r2->EvTeamEvent==0 AND $r->EnIndFEvent!=0) { - Obj_RankFactory::create('Abs',array('tournament'=>$CompId,'events'=>$r2->EvCode,'dist'=>$dist))->calculate(); - Obj_RankFactory::create('Abs',array('tournament'=>$CompId,'events'=>$r2->EvCode,'dist'=>0))->calculate(); - ResetShootoff($r2->EvCode,0,0, $CompId); - } - if($r->MakeTeams and defined('RKCALC_FinT') AND RKCALC_FinT==0 AND $r2->EvTeamEvent==1 AND $r->EnTeamFEvent!=0) { - $calculateTeam=$r->TeamCode; - if($r2->EvTeamCreationMode==1) { - $calculateTeam=$r->EnCountry; - } elseif($r2->EvTeamCreationMode==2) { - $calculateTeam=$r->EnCountry2; - } elseif($r2->EvTeamCreationMode==3) { - $calculateTeam=$r->EnCountry3; - } - MakeTeamsAbs($calculateTeam, $r->EnDivision, $r->EnClass, $CompId); - } - } - } - if($oldSes!=0) { - $_SESSION["TourId"] = $oldSes; - }else { - unset($_SESSION["TourId"]); - } - } -} - -function getMatchTotals($Event, $MatchNo, $IndTeam, $end, $arr4End, $end4Match, $arr4So) { - global $CompId; - $isSO = ($end>$end4Match); - $res=array('curendscore'=>0,'curscore'=>0,'curscoreatend'=>0,'curgold'=>0,'curxnine'=>0,'score'=>0,'scoreatend'=>0,'gold'=>0,'xnine'=>0); - $tblHead = ($IndTeam==0 ? 'Fin' : 'Tf'); - $SQL = "SELECT {$tblHead}Arrowstring as arrowString, {$tblHead}Tiebreak as tieBreak - FROM " . ($IndTeam==0 ? 'Finals' : 'TeamFinals') . " - WHERE {$tblHead}Event='{$Event}' AND {$tblHead}MatchNo='{$MatchNo}' AND {$tblHead}Tournament={$CompId}"; - $q=safe_r_sql($SQL); - if($r=safe_fetch($q)) { - $curArrowString=str_repeat(" ", $arr4End * $end4Match); - $curSoString=str_repeat(" ", $arr4So); - $SQL = "SELECT IskDtEndNo, IskDtArrowstring - FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo={$MatchNo} AND IskDtEvent='{$Event}' AND IskDtTeamInd={$IndTeam} AND IskDtType='" . ($IndTeam==0 ? 'I':'T') . "' AND IskDtTargetNo='' AND IskDtDistance=0 - ORDER BY IskDtEndNo"; - $q=safe_r_sql($SQL); - while($r2=safe_fetch($q)){ - if($r2->IskDtEndNo<=$end4Match) - $curArrowString = substr_replace($curArrowString, $r2->IskDtArrowstring, ($r2->IskDtEndNo-1)*$arr4End, $arr4End); - else - $curSoString = substr_replace($curSoString, $r2->IskDtArrowstring, 0, $arr4So); - } - for($i=0; $i<($arr4End * $end4Match); $i++) { - if($curArrowString[$i]==' ' && isset($r->arrowString[$i])) { - $curArrowString[$i]=$r->arrowString[$i]; - } - } - for($i=0; $i<$arr4So; $i++) { - if($curSoString[$i]==' ' && isset($r->tieBreak[$i])) { - $curSoString[$i]=$r->tieBreak[$i]; - } - } - - $tmpArr = ValutaArrowString($curArrowString); - $tmpSo = ValutaArrowString($curSoString); - $res['curendarrstr'] = $isSO ? $curSoString : substr($curArrowString,($end-1)*$arr4End, $arr4End); - $res['tilendarrstr'] = $isSO ? $curSoString : substr($curArrowString, 0, $end*$arr4End); - $res['arrowstring'] = $isSO ? $curSoString : $curArrowString; - $res['curendscore'] = ValutaArrowString($res['curendarrstr']); - $res['curscore'] = $isSO ? $tmpSo : $tmpArr; - $res['curscoreatend'] = ValutaArrowString($res['tilendarrstr']); - $res['curgold'] = 0; - $res['curxnine'] = 0; - $res['score'] = $res['curscore']; - $res['scoreatend'] = $res['curscoreatend']; - $res['gold'] = 0; - $res['xnine'] = 0; - } - return $res; -} - -function importMatches ($Event, $MatchNo, $IndTeam, $end, $arr4End, $end4Match, $arr4So, $ArrIndex=-1) { - global $CompId, $iskModePro; - $isSO = ($end>$end4Match); - $tblHead = ($IndTeam==0 ? 'Fin' : 'Tf'); - $SQL = "SELECT {$tblHead}Arrowstring as Arrowstring, {$tblHead}Tiebreak as TieBreak, IskDtArrowstring, IskDtEndNo - FROM " . ($IndTeam==0 ? 'Finals' : 'TeamFinals') . " - INNER JOIN IskData ON IskDtTournament={$tblHead}Tournament AND IskDtMatchNo={$tblHead}MatchNo AND IskDtEvent={$tblHead}Event AND IskDtTeamInd={$IndTeam} AND IskDtType='" . ($IndTeam==0 ? 'I':'T') . "' AND IskDtTargetNo='' AND IskDtDistance=0 - WHERE {$tblHead}Event='{$Event}' AND {$tblHead}MatchNo='{$MatchNo}' AND {$tblHead}Tournament={$CompId} AND IskDtEndNo={$end}"; - $q=safe_r_sql($SQL); - while($r=safe_fetch($q)) { - $arrowString = ($isSO ? str_pad($r->TieBreak,$arr4So) : str_pad($r->Arrowstring,$arr4End)); - for($i=0; $i<($isSO ? $arr4So : $arr4End); $i++){ - if($i==$ArrIndex or $r->IskDtArrowstring[$i]!=' '){ - $arrowString[($isSO ? 0 : ($r->IskDtEndNo-1)*$arr4End)+$i]=$r->IskDtArrowstring[$i]; - } - } - $startPos = (($isSO ? ($arr4End*$end4Match) : 0) +1); - - // manage the closest to center - $Closest=0; - if($isSO) { - $Closest=intval($arrowString!=strtoupper($arrowString)); - $arrowString=strtoupper($arrowString); - } - UpdateArrowString($MatchNo, $Event, $IndTeam, $arrowString, $startPos, ($startPos+($isSO ? $arr4So : $arr4End*$end4Match)-1), $CompId, $Closest); - - $Update = "DELETE FROM IskData - WHERE IskDtTournament={$CompId} AND IskDtMatchNo={$MatchNo} AND IskDtEvent='{$Event}' AND IskDtTeamInd={$IndTeam} AND IskDtType='" . ($IndTeam==0 ? 'I':'T') . "' - AND IskDtTargetNo='' AND IskDtDistance=0 AND IskDtEndNo={$end} AND IskDtArrowstring='{$r->IskDtArrowstring}'"; - safe_w_SQL($Update); - } -} diff --git a/src/Api/ISK/index.js b/src/Api/ISK/index.js deleted file mode 100644 index 81ad5ad8..00000000 --- a/src/Api/ISK/index.js +++ /dev/null @@ -1,453 +0,0 @@ -var ComboScheduleLoaded=false; -var timerReference; - -function saveSequence(save) { - var curSession = $('#x_Session').val(); - var curDistance = $('#x_Distance').val(); - var curEnd = $('#x_End').val(); - $.getJSON('Ind-UpdateSequence.php'+(save ? '?session='+curSession+'&distance='+curDistance+'&end='+curEnd : ''), function(data) { - if (data.error==0) { - $('#x_Session').val(data.type+data.maxdist+data.session); - loadComboDistanceEnd(); - $('#x_Distance').val(data.distance); - $('#x_End').val(data.end); - loadDevices(); - } - }); -} - -function loadDevicesOrdered(obj) { - var oldOrd=$(obj).attr('ordertype'); - var newOrd='ordasc'; - $('[ordertype^=ord]').attr('ordertype',''); - if(oldOrd=='ordasc') { - newOrd='orddesc'; - } - $(obj).attr('ordertype', newOrd); - - loadDevices(); -} - -function loadComboDistanceEnd(distance) { - var curSession = $('#x_Session').val(); - var MaxEnds=$('#x_Session option:selected')[0].maxEnds - var Combo = $('#x_Distance')[0]; - for(i=Combo.length-1; i>=0; --i) { - Combo.remove(i); - } - if(curSession.charAt(0)=='Q') { - for(i=0; i0) { - var Ends=MaxEnds.split(','); - var End=Ends[curDistance-1]; - } else { - var End=MaxEnds; - } - document.getElementById('x_End').max=End; - document.getElementById('x_End').value=0; -} - -function loadComboSchedule() { - var onlyToday = (document.getElementById('x_onlyToday').checked==true ? 1:0); - - $.get('Ind-GetComboSchedule.php?onlyToday='+onlyToday, function(XMLResp) { - // intercetto gli errori di IE e Opera - if (!XMLResp || !XMLResp.documentElement) { - throw("XML not valid:\n"+XMLResp.responseText); - } - - // Intercetto gli errori di Firefox - var XMLRoot; - if ((XMLRoot = XMLResp.documentElement.nodeName)=="parsererror") { - throw("XML not valid:\n"); - } - - XMLRoot = XMLResp.documentElement; - - if (XMLRoot.getAttribute('error')==0) { - var Combo = document.getElementById('x_Session'); - - var Arr_Code = XMLRoot.getElementsByTagName('val'); - var Arr_Name = XMLRoot.getElementsByTagName('display'); - - for(var i=Combo.length-1; i>=0; --i) { - Combo.remove(i); - } - - Combo.options[0] = new Option("--",""); - for (var i=0;i0) { - End=Ends[XMLRoot.getAttribute('end')-1]; - } - document.getElementById('x_End').max=End; - } - } - loadComboDistanceEnd(XMLRoot.getAttribute('distance')); - document.getElementById('x_End').value=XMLRoot.getAttribute('end'); - - ComboScheduleLoaded=true; - } else { - } - }); -} - -function loadDevices() { - clearTimeout(timerReference); - - Query='?field='+$('[ordertype^=ord]').attr('id')+'&ord='+$('[ordertype^=ord]').attr('ordertype'); - - $.get('Ind-GetTabletsInfo.php'+Query, function(XMLResp) { - // intercetto gli errori di IE e Opera - if (!XMLResp || !XMLResp.documentElement) { - throw("XML not valid:\n"+XMLResp.responseText); - } - - // Intercetto gli errori di Firefox - var XMLRoot; - if ((XMLRoot = XMLResp.documentElement.nodeName)=="parsererror") { - throw("XML not valid:\n"); - } - - XMLRoot = XMLResp.documentElement; - - if (XMLRoot.getAttribute('error')==0) { - var Arr_Tablets = XMLRoot.getElementsByTagName('tablet'); - var objTbody = document.getElementById('tablets'); - var arrTablets=new Array(); - for(var i=objTbody.rows.length-1; i>=0; --i) { - arrTablets[i]=1; -// objTbody.deleteRow(i); - } - var row; - for(var i=0; i)'; - tmp.className = "TargetRequested"; - } else { - tmp.className = "TargetAssigned"; - } - row.cells[0].style.backgroundColor = Arr_Tablets.item(i).getAttribute('online'); - - // auth request - tmp=row.cells[1]; - tmp.innerHTML = (Arr_Tablets.item(i).getAttribute('authrequest')==1 ? '' : ''); - - // tournament - tmp = row.cells[2]; - tmp.innerHTML = ''; - - //Application Pro/Lite and device Code - row.cells[3].innerHTML = Arr_Tablets.item(i).getAttribute('code'); - row.cells[4].innerHTML = (Arr_Tablets.item(i).getAttribute('appdevversion')==1 ? Pro : Lite); - row.cells[5].innerHTML = Arr_Tablets.item(i).getAttribute('appversion'); - - //Device ID - row.cells[6].innerHTML = device; - -/* SE LA RIACCENDI ANCORA SENZA MIA AUTORIZZAZIONE TI TOLGO I PRIVILEGI DI SCRITTURA - Teo -* //Device Alive - if(Arr_Tablets.item(i).getAttribute('tournament')==TourId) { - if(row.cells[7].childElementCount>0) { - row.cells[7].firstChild.src='Ind-GetTabletOnline.php?device='+Arr_Tablets.item(i).getAttribute('code'); - } else { - row.cells[7].innerHTML=''; - } - } -*/ - row.cells[7].innerHTML=Arr_Tablets.item(i).getAttribute('seconds'); - - //Device Status - tmp = row.cells[8]; - if(Arr_Tablets.item(i).getAttribute('tournament')==TourId) { - switch(Arr_Tablets.item(i).getAttribute('state')) { - case "0": - tmp.innerHTML = ''; - tmp.className = "ToBeEnabled"; - break; - case "1": - tmp.innerHTML = ''; - tmp.className = "Center"; - break; - case "2": - tmp.innerHTML = ''; - tmp.className = "BarcodeRequested"; - break; - case "3": - tmp.innerHTML = ''; - tmp.className = "BarcodeRequested"; - break; - } - } - - // Change status bar - tmp = row.cells[9]; - if(Arr_Tablets.item(i).getAttribute('tournament')==TourId) { - tmp.innerHTML = ''; - tmp.innerHTML += '   '; - tmp.innerHTML += '   '; - tmp.innerHTML += '   '; - } - - //Battery - row.cells[10].innerHTML = Arr_Tablets.item(i).getAttribute('battery'); - - //Ip Address - row.cells[11].innerHTML = Arr_Tablets.item(i).getAttribute('ip'); - - //Last Seen - row.cells[12].innerHTML = Arr_Tablets.item(i).getAttribute('lastseen'); - row.cells[12].style.backgroundColor = Arr_Tablets.item(i).getAttribute('online'); - - // remove is already set... - } else { - var row = objTbody.insertRow(i); - row.id='row_'+device; - row.setAttribute('order', Arr_Tablets.item(i).getAttribute('order')) - //TargetNo - var cellIndex=0; - var tmp = row.insertCell(cellIndex++); - var TgtRequested=Arr_Tablets.item(i).getAttribute('reqtarget'); - var TgtAssigned=Arr_Tablets.item(i).getAttribute('target'); - var Group=0; - tmp.id = 'tgt_'+device; - // tmp.setAttribute('onClick', 'manageTargetNo(\''+device+'\',0'+(TgtAssigned!=TgtRequested && TgtRequested!=0 ? TgtRequested : TgtAssigned)+');'); - tmp.setAttribute('onClick', 'manageTargetGroup(\''+device+'\','+Group+');'); - tmp.innerHTML = TgtAssigned; - if(TgtRequested != '0'){ - tmp.innerHTML += ' ('+TgtRequested+')'; - tmp.className = "TargetRequested"; - } else { - tmp.className = "TargetAssigned"; - } - tmp.style.backgroundColor = Arr_Tablets.item(i).getAttribute('online'); - - // auth request - tmp = row.insertCell(cellIndex++); - tmp.innerHTML = (Arr_Tablets.item(i).getAttribute('authrequest')==1 ? '' : ''); - tmp.className = "Center"; - - // tournament - tmp = row.insertCell(cellIndex++); - tmp.innerHTML = ''; - tmp.className = "Center"; - //Application Pro/Lite and device Code - (row.insertCell(cellIndex++)).innerHTML = Arr_Tablets.item(i).getAttribute('code'); - (row.insertCell(cellIndex++)).innerHTML = (Arr_Tablets.item(i).getAttribute('appdevversion')==1 ? Pro : Lite); - (row.insertCell(cellIndex++)).innerHTML = Arr_Tablets.item(i).getAttribute('appversion'); - //Device ID - (row.insertCell(cellIndex++)).innerHTML = device; - //Device Alive - tmp = row.insertCell(cellIndex++); - tmp.className = "Center"; -// if(Arr_Tablets.item(i).getAttribute('tournament')==TourId) { -// tmp.innerHTML = ''; -// } - //Device Status - tmp = row.insertCell(cellIndex++); - tmp.className = "Center"; - if(Arr_Tablets.item(i).getAttribute('tournament')==TourId) { - switch(Arr_Tablets.item(i).getAttribute('state')) { - case "0": - tmp.innerHTML = ''; - tmp.className = "ToBeEnabled"; - break; - case "1": - tmp.innerHTML = ''; - break; - case "2": - tmp.innerHTML = ''; - tmp.className = "BarcodeRequested"; - break; - case "3": - tmp.innerHTML = ''; - tmp.className = "BarcodeRequested"; - break; - } - } - // Change status bar - tmp = row.insertCell(cellIndex++); - tmp.className = "Center"; - tmp.style.whiteSpace='nowrap'; - if(Arr_Tablets.item(i).getAttribute('tournament')==TourId) { - tmp.innerHTML = ''; - tmp.innerHTML += '   '; - tmp.innerHTML += '   '; - tmp.innerHTML += '   '; - } - //Battery - (row.insertCell(cellIndex++)).innerHTML = Arr_Tablets.item(i).getAttribute('battery'); - //Ip Address - tmp = row.insertCell(cellIndex++); - tmp.innerHTML = Arr_Tablets.item(i).getAttribute('ip'); - tmp.className = "Right"; - //Last Seen - tmp = row.insertCell(cellIndex++); - tmp.innerHTML = Arr_Tablets.item(i).getAttribute('lastseen'); - tmp.className = "Right"; - tmp.style.backgroundColor = Arr_Tablets.item(i).getAttribute('online'); - - // remove device from DB - tmp = row.insertCell(cellIndex++); - tmp.innerHTML = ''; - tmp.style.textAlign = "center"; - } - } - - - var rows = $(objTbody).find('tr[order]').get(); - rows.sort(function(a, b) { - var keyA = parseInt($(a).attr('order')); - var keyB = parseInt($(b).attr('order')); - if (keyA < keyB) return -1; - if (keyA > keyB) return 1; - return 0; - }); - $.each(rows, function(index, row) { - $(objTbody).append(row); - }); - - } else { - } - timerReference = setTimeout(function(){ loadDevices(); }, 5000); - }); -} - -function manageTargetGroup(device, Group) { - var d = document.getElementById('PopUp'); - - $('#PopDevice').html(device); - $('#PopGroup').html(String.fromCharCode(65+Group)); - var tgt=$('#tgt_'+device); - var req=$(tgt).find('span').html(); - var tgt=tgt.html(); - - if(parseInt(req)>0) { - tgt+=' '; - } - - $('#PopTarget').html(tgt); - - $('#NewTarget').val($('#tgt_'+device).html()); - $('#NewGroup').val(Group); - $('#PopUp').show(); - -} - -function AcceptRequest(tgt) { - $('#NewTarget').val(tgt); - AssignGroupTarget(); -} - -function AssignGroupTarget() { - var device=$('#PopDevice').html(); - $.get('Ind-SetDeviceInfo.php?device='+device+'&setTarget='+$('#NewTarget').val(), function(XMLResp) { - // intercetto gli errori di IE e Opera - if (!XMLResp || !XMLResp.documentElement) { - throw("XML not valid:\n"+XMLResp.responseText); - } - - // Intercetto gli errori di Firefox - var XMLRoot; - if ((XMLRoot = XMLResp.documentElement.nodeName)=="parsererror") { - throw("XML not valid:\n"); - } - - XMLRoot = XMLResp.documentElement; - // document.getElementById('tgt_'+device).setAttribute('onClick','manageTargetNo(\''+device+'\','+(objText.value)+');'); - - closePopup(); - }); -} - -function setStatusDevice(device, newStatus) { - if(newStatus==0 || confirm(MsgConfirm) ) { - clearTimeout(timerReference); - $.get('Ind-SetDeviceInfo.php?device='+device+'&setStatus='+newStatus, function(XMLResp) { - - // intercetto gli errori di IE e Opera - if (!XMLResp || !XMLResp.documentElement) { - throw("XML not valid:\n"+XMLResp.responseText); - } - - // Intercetto gli errori di Firefox - var XMLRoot; - if ((XMLRoot = XMLResp.documentElement.nodeName)=="parsererror") { - throw("XML not valid:\n"); - } - - XMLRoot = XMLResp.documentElement; - if (XMLRoot.getAttribute('error')==0) { - loadDevices(); - } else { - timerReference = setTimeout(function(){ loadDevices(); }, 5000) - } - }); - } -} - -function setCompetitionDevice(device,enable) { - if(enable || confirm(MsgConfirm) ) { - clearTimeout(timerReference); - $.get('Ind-SetDeviceInfo.php?device='+device+'&setCompetition='+enable, function(XMLResp) { - // intercetto gli errori di IE e Opera - if (!XMLResp || !XMLResp.documentElement) { - throw("XML not valid:\n"+XMLResp.responseText); - } - - // Intercetto gli errori di Firefox - var XMLRoot; - if ((XMLRoot = XMLResp.documentElement.nodeName)=="parsererror") { - throw("XML not valid:\n"); - } - - XMLRoot = XMLResp.documentElement; - if (XMLRoot.getAttribute('error')==0) { - loadDevices(); - } else { - timerReference = setTimeout(function(){ loadDevices(); }, 5000) - } - }); - } -} - -function closePopup() { - $('#PopUp').hide(); -} - diff --git a/src/Api/ISK/index.php b/src/Api/ISK/index.php deleted file mode 100644 index 45f880fa..00000000 --- a/src/Api/ISK/index.php +++ /dev/null @@ -1,139 +0,0 @@ -$_SESSION["TourId"], - 'MsgConfirm'=>htmlspecialchars(get_text('MsgAreYouSure')), - 'MsgOk'=>get_text('CmdOk'), - 'msgRemove'=>htmlspecialchars(get_text('ISK-Remove', 'Api')), - 'Lite'=>get_text('ISK-Lite-Name', 'Api'), - 'Pro'=>get_text('ISK-Pro-Name', 'Api'), - 'msgIskRequiresApproval'=>htmlspecialchars(get_text('ISK-RequiresApproval', 'Api')), - 'msgIskDenyAccess'=>htmlspecialchars(get_text('ISK-DenyAccess', 'Api')), - 'msgIskReloadConfig'=>htmlspecialchars(get_text('ISK-ReloadConfig', 'Api')), - 'msgIskForceConfirm'=>htmlspecialchars(get_text('ISK-ForceConfirm', 'Api')), - 'msgIskApproveConfig'=>htmlspecialchars(get_text('ISK-ApproveConfig', 'Api')), - 'msgIskStatusNoShoot'=>htmlspecialchars(get_text('ISK-StatusNoShoot', 'Api')), - 'msgIskStatusReloading'=>htmlspecialchars(get_text('ISK-StatusReloading', 'Api')), - 'msgIskStatusWaitConfirm'=>htmlspecialchars(get_text('ISK-StatusWaitConfirm', 'Api')), - 'msgIskStatusOK'=>htmlspecialchars(get_text('ISK-StatusOK', 'Api')), - 'imgPath'=>$CFG->ROOT_DIR.'Common/Images/', - )), - '', - '', - '', -); - -$ONLOAD=' onload="loadDevices()"'; - -include('Common/Templates/head.php'); - -echo ''; -echo ''; -echo ''; -echo ''; -// echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -// echo ''; -echo ''; -echo ''; -echo ''; -echo ''; - -echo ''; - -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo ''; -echo '
' . get_text('ISK-Configuration') . '
' . get_text('Session') . '' . get_text('ISK-CheckAlive', 'Api') . '' . get_text('Distance', 'Tournament') . '' . get_text('Volee', 'HTT') . ' 
-
- ' . get_text('OnlyToday', 'Tournament') . ' - -
- - -
' . get_text('Target') . '' . get_text('ISK-AuthRequest', 'Api') . '' . get_text('Tournament', 'Tournament') . '' . get_text('ISK-AppInfo', 'Api') . '' . get_text('ISK-DeviceId', 'Api') . '' . get_text('ISK-DeviceAlive', 'Api') . '' . get_text('ISK-DeviceStatus', 'Api') . '' . get_text('ISK-DeviceStatusWanted', 'Api') . '' . get_text('ISK-DeviceBattery', 'Api') . '' . get_text('ISK-DeviceIpAddress', 'Api') . '' . get_text('ISK-DeviceLastSeen', 'Api') . '' . get_text('ISK-Remove', 'Api') . '
'; - -$tmp=''; -foreach(range('A','Z') as $k) { - $tmp.=''; -} -echo ''; - -include('Common/Templates/tail.php'); diff --git a/src/Api/ISK/menu.php b/src/Api/ISK/menu.php deleted file mode 100644 index 3165968e..00000000 --- a/src/Api/ISK/menu.php +++ /dev/null @@ -1,24 +0,0 @@ -ROOT_DIR . 'Api/ISK/'; - $ret['API'][] = get_text('ISK-Results') . '|' . $CFG->ROOT_DIR . 'Api/ISK/Results.php'; - } - if ($acl[AclISKServer] >= AclReadOnly) { - $ret['API'][] = get_text('ISK-Anomalies', 'Api') . '|' . $CFG->ROOT_DIR . 'Api/ISK/Anomalies.php'; - } - if ($acl[AclISKServer] == AclReadWrite) { - $ret['API'][] = MENU_DIVIDER; - $ret['API'][] = get_text('MenuLM_QrCodes') . '|' . $CFG->ROOT_DIR . 'Api/ISK/QRcodes.php'; - $ret['API'][] = get_text('ISK-GetQRData') . '|' . $CFG->ROOT_DIR . 'Api/ISK/GetQRData.php'; - $ret['API'][] = MENU_DIVIDER; - } -} -if ($acl[AclISKServer] >= AclReadWrite) { - $ret['API'][] = get_text('ManageLockedSessions', 'ISK') . '|' . $CFG->ROOT_DIR . 'Api/ISK/Sessions.php'; - if($_SESSION['UseApi']==1) { - $ret['API'][] = get_text('AutoImportSettings', 'ISK') . '|' . $CFG->ROOT_DIR . 'Api/ISK/'; - } - $ret['API'][] = get_text('API-TargetGrouping', 'Api') . '|' . $CFG->ROOT_DIR . 'Api/ISK/ApiGrouping.php'; -} diff --git a/src/Api/JSON/MatchSummary.php b/src/Api/JSON/MatchSummary.php index 61de566f..a22963c1 100644 --- a/src/Api/JSON/MatchSummary.php +++ b/src/Api/JSON/MatchSummary.php @@ -558,7 +558,7 @@ // check the correct value of $ToWin if(!in_array($ToWin, $vSec['meta']['targetTypeValues'])) { foreach(array_reverse($vSec['meta']['targetTypeValues']) as $v) { - if($v>$ToWin) { + if(intval($v)>$ToWin) { $ToWin=$v; break; } @@ -606,7 +606,7 @@ // check the correct value of $ToWin if(!in_array($ToWin, $vSec['meta']['targetTypeValues'])) { foreach(array_reverse($vSec['meta']['targetTypeValues']) as $v) { - if($v>$ToWin) { + if(intval($v)>$ToWin) { $ToWin=$v; break; } @@ -1126,7 +1126,7 @@ // check the correct value of $ToWin if(!in_array($ToWin, $vSec['meta']['targetTypeValues'])) { foreach(array_reverse($vSec['meta']['targetTypeValues']) as $v) { - if($v>$ToWin) { + if(intval($v)>$ToWin) { $ToWin=$v; break; } @@ -1174,7 +1174,7 @@ // check the correct value of $ToWin if(!in_array($ToWin, $vSec['meta']['targetTypeValues'])) { foreach(array_reverse($vSec['meta']['targetTypeValues']) as $v) { - if($v>$ToWin) { + if(intval($v)>$ToWin) { $ToWin=$v; break; } diff --git a/src/Api/JSON/RegisterPushService.php b/src/Api/JSON/RegisterPushService.php index f03ffb49..22b26cb1 100644 --- a/src/Api/JSON/RegisterPushService.php +++ b/src/Api/JSON/RegisterPushService.php @@ -38,6 +38,7 @@ registerJack("FinArrUpdate", "API-JSON", dirname(__FILE__).'/JackInclude.php', 'JackRunUpdate_MatchUpdate(\'@Event\', @Team, @MatchNo, @TourId);',$TourId); registerJack("FinLiveUpdate", "API-JSON", dirname(__FILE__).'/JackInclude.php', 'JackRunUpdate_LiveUpdate(\'@Event\', @Team, @MatchNo, @TourId);',$TourId); registerJack("FinConfirmEnd", "API-JSON", dirname(__FILE__).'/JackInclude.php', 'JackRunUpdate_MatchUpdate(\'@Event\', @Team, @MatchNo, @TourId);',$TourId); + registerJack("MatchFinished", "API-JSON", dirname(__FILE__).'/JackInclude.php', 'JackRunUpdate_MatchUpdate(\'@Event\', @Team, @MatchNo, @TourId);',$TourId); registerJack("FinShootingFirst", "API-JSON", dirname(__FILE__).'/JackInclude.php', 'JackRunUpdate_MatchUpdate(\'@Event\', @Team, @MatchNo, @TourId);',$TourId); registerJack("FinRankUpdate", "API-JSON", dirname(__FILE__).'/JackInclude.php', 'JackRunUpdate_RankUpdate(\'@Event\', @Team, @TourId);',$TourId); registerJack("QRRankUpdate", "API-JSON", dirname(__FILE__).'/JackInclude.php', 'JackRunUpdate_QRRankUpdate(\'@Event\', @Team, @TourId);',$TourId); diff --git a/src/Common/BlockDefines.php b/src/Common/BlockDefines.php index da300c6b..52f2a295 100644 --- a/src/Common/BlockDefines.php +++ b/src/Common/BlockDefines.php @@ -37,23 +37,21 @@ define ('AclRoot', 0); define ('AclCompetition', 1); -define ('AclParticipants', 2); -define ('AclQualification', 3); -define ('AclEliminations', 4); -define ('AclIndividuals', 5); -define ('AclTeams', 6); -define ('AclAccreditation', 7); -define ('AclModules', 8); -define ('AclInternetPublish', 9); -define ('AclAPI', 10); -define ('AclISKClient', 11); -define ('AclISKServer', 12); -define ('AclSpeaker', 13); -define ('AclOutput', 14); -define ('AclOdf', 15); -define ('AclRobin', 16); -define ('AclRunArchery', 16); - +define ('AclInternetPublish', 2); +define ('AclParticipants', 3); +define ('AclAccreditation', 4); +define ('AclQualification', 5); +define ('AclEliminations', 6); +define ('AclRobin', 7); +define ('AclIndividuals', 8); +define ('AclTeams', 9); +define ('AclSpeaker', 10); +define ('AclOutput', 11); +define ('AclISKClient', 12); +define ('AclISKServer', 13); +define ('AclModules', 14); +define ('AclAPI', 15); +define ('AclOdf', 16); $limitedACL = array( AclRoot => AclReadWrite, @@ -67,23 +65,34 @@ $listACL = array( AclRoot => 'AclRoot', AclCompetition => 'AclCompetition', + AclInternetPublish => 'AclInternet', AclParticipants => 'AclParticipants', + AclAccreditation => 'AclAccreditation', AclQualification => 'AclQualification', AclEliminations => 'AclEliminations', + AclRobin => 'AclRobin', AclIndividuals => 'AclIndividuals', AclTeams => 'AclTeams', - AclAccreditation => 'AclAccreditation', - AclModules => 'AclModules', - AclInternetPublish => 'AclInternet', - AclAPI => 'AclAPI', - AclISKClient => 'AclISKClient', - AclISKServer => 'AclISKServer', AclSpeaker => 'AclSpeaker', AclOutput => 'AclOutput', - AclOdf => 'AclOdf', - AclRobin => 'AclRobin', + AclISKClient => 'AclISKClient', + AclISKServer => 'AclISKServer', + AclModules => 'AclModules', + AclAPI => 'AclAPI' ); +if(!empty($CFG->ODF)) { + $listACL[AclOdf] = 'AclOdf'; +} +if($CFG->USERAUTH) { + require_once('Modules/Authentication/BlockFunction.php'); + define ('AuthModule', true); +} else { + define ('AuthModule', false); + function isAuthEnabled() {return array(0,1);} + function authActualACL($authEnabled, &$acl) {} + function authHasACL($authEnabled, $feature, $level, $toCode) {return null;} +} /* * La chiave rappresenta il bit di cui si è chiesto l'unset * Il vecchio valore nel db viene posto in AND con il valore corrispondente alla chiave @@ -127,15 +136,19 @@ function getBlocksToSet() { function actualACL() { global $listACL, $CFG; $lockEnabled = getModuleParameter("ACL", "AclEnable", "00"); + list($authEnabled, $checkCompAcl) = isAuthEnabled(); $ip = $_SERVER["REMOTE_ADDR"]; - if($ip == '127.0.0.1' OR $ip == '::1' OR in_array($ip,$CFG->ACLExcluded) OR $lockEnabled[0] == "0") { + if($ip == '127.0.0.1' OR $ip == '::1' OR in_array($ip,$CFG->ACLExcluded) OR ($lockEnabled[0] == "0" and $authEnabled == 0)) { $acl = array_fill(0, count($listACL), AclReadWrite); } else { $acl = array_fill(0, count($listACL), AclNoAccess); - $Sql = "SELECT AclDtFeature, AclDtLevel FROM AclDetails WHERE AclDtTournament=" . intval($_SESSION['TourId']) . " AND AclDtIP='{$ip}'"; - $q = safe_r_SQL($Sql); - while($r=safe_fetch($q)) { - $acl[$r->AclDtFeature] = $r->AclDtLevel; + authActualACL($authEnabled, $acl); + if($lockEnabled and $checkCompAcl) { + $Sql = "SELECT AclDtFeature, AclDtLevel FROM AclDetails WHERE AclDtTournament=" . intval($_SESSION['TourId']) . " AND AclDtIP='{$ip}'"; + $q = safe_r_SQL($Sql); + while ($r = safe_fetch($q)) { + $acl[$r->AclDtFeature] = $r->AclDtLevel; + } } } return $acl; @@ -151,7 +164,6 @@ function panicACL() { setModuleParameter("ACL","AclEnable","00",$TourId); die(); } - } } @@ -167,23 +179,32 @@ function hasACL($feature, $level, $TourId=0) { if ($TourId == 0 AND !empty($_SESSION['TourId'])) { $TourId = intval($_SESSION['TourId']); } + $TourCode = getCodeFromId($TourId); $lockEnabled = getModuleParameter("ACL", "AclEnable", "00", $TourId, true); if($lockEnabled[0] == "1") { $INFO->ACLEnabled = true; } + list($authEnabled, $checkCompAcl) = isAuthEnabled(); + if($authEnabled == 1) { + $INFO->ACLEnabled = true; + } $ip = $_SERVER["REMOTE_ADDR"]; if($ip == '127.0.0.1' OR $ip == '::1' OR in_array($ip,$CFG->ACLExcluded)) { return true; } else { - if ($lockEnabled[0] == "1") { - $Sql = "SELECT AclDtLevel FROM AclDetails WHERE AclDtTournament={$TourId} AND AclDtIP='{$ip}' && AclDtFeature IN (" . implode(',', $feature) . ") ORDER BY AclDtLevel ASC"; - $q = safe_r_SQL($Sql); - if ($r = safe_fetch($q) and $level <= $r->AclDtLevel) { - return true; - } else if($level==AclNoAccess) { - return false; + if($INFO->ACLEnabled) { + if(!is_null($tmpReturn = authHasACL($authEnabled, $feature, $level, $TourCode))) { + return $tmpReturn; + } + if ($lockEnabled[0] == "1" and $checkCompAcl) { + $Sql = "SELECT AclDtLevel FROM AclDetails WHERE AclDtTournament={$TourId} AND AclDtIP='{$ip}' && AclDtFeature IN (" . implode(',', $feature) . ") ORDER BY AclDtLevel ASC"; + $q = safe_r_SQL($Sql); + if ($r = safe_fetch($q) and $level <= $r->AclDtLevel) { + return true; + } else if ($level == AclNoAccess) { + return false; + } } - } else { return true; } @@ -193,68 +214,72 @@ function hasACL($feature, $level, $TourId=0) { } function checkACL($feature, $level, $redirect=true, $TourId=0) { - global $INFO, $CFG; + global $INFO, $CFG, $listACL; if(!is_array($feature)) { $feature = array($feature); } $INFO->ACLReqfeatures = $feature; $INFO->ACLReqlevel = $level; $INFO->ACLEnabled = false; - if ($TourId == 0 AND !empty($_SESSION['TourId'])) { $TourId = intval($_SESSION['TourId']); } + $TourCode = getCodeFromId($TourId); $lockEnabled = getModuleParameter("ACL", "AclEnable", "00", $TourId, true); if($lockEnabled[0] == "1") { $INFO->ACLEnabled = true; } - + list($authEnabled, $checkCompAcl) = isAuthEnabled(); + if($authEnabled == 1) { + $INFO->ACLEnabled = true; + } $ip = $_SERVER["REMOTE_ADDR"]; if($ip == '127.0.0.1' OR $ip == '::1' OR in_array($ip,$CFG->ACLExcluded)) { return AclReadWrite; } else { - //record New Ips + //record New Ips - Match against template if needed if($lockEnabled[1] == "1") { - $Sql="SELECT AclIP FROM ACL WHERE AclTournament={$TourId} AND AclIP='{$ip}'"; + $Sql="SELECT `AclIP` FROM `ACL` WHERE `AclTournament`={$TourId} AND `AclIP`='{$ip}'"; $q = safe_r_SQL($Sql); if(safe_num_rows($q)==0) { - $Sql = "SELECT AclIP FROM ACL WHERE AclTournament={$TourId} AND '{$ip}' LIKE REPLACE(AclIp,'*','%')"; + $Sql = "SELECT `AclTeFeatures`, `AclTePattern`, ('{$ip}' LIKE REPLACE(`AclTePattern`,'*','%')) as isMatch FROM `AclTemplates` WHERE `AclTeTournament`={$TourId} ORDER BY '{$ip}' LIKE REPLACE(`AclTePattern`,'*','%')"; $q = safe_r_SQL($Sql); - if(safe_num_rows($q)!=0) { - $ruleRs=safe_fetch($q); - $Sql = "SELECT * FROM `AclDetails` WHERE `AclDtTournament` = {$TourId} and AclDtIP='{$ruleRs->AclIP}'"; - $q = safe_r_SQL($Sql); - while($r = safe_fetch($q)) { - safe_w_SQL("INSERT INTO `AclDetails` (`AclDtTournament`, `AclDtIP`, `AclDtFeature`, `AclDtLevel`) VALUES ({$TourId}, '{$ip}', {$r->AclDtFeature}, {$r->AclDtLevel});"); - } - } else { - $Sql = "SELECT `AclIP`, `AclNick` FROM `ACL` WHERE `AclTournament`=$TourId AND `AclIP` LIKE '0.0.0.%' ORDER BY `AclIP`"; - $q = safe_r_SQL($Sql); - while($ruleRs=safe_fetch($q)) { - if(preg_match('/'.$ruleRs->AclNick.'/',$ip)) { - $Sql = "SELECT * FROM `AclDetails` WHERE `AclDtTournament` = {$TourId} and AclDtIP='{$ruleRs->AclIP}'"; - $q = safe_r_SQL($Sql); - while($r = safe_fetch($q)) { - safe_w_SQL("INSERT INTO `AclDetails` (`AclDtTournament`, `AclDtIP`, `AclDtFeature`, `AclDtLevel`) VALUES ({$TourId}, '{$ip}', {$r->AclDtFeature}, {$r->AclDtLevel});"); - } - break; + while($r=safe_fetch($q)) { + if(($r->isMatch OR preg_match('/'.$r->AclTePattern.'/',$ip)) and $r->AclTeFeatures) { + foreach (explode('#', $r->AclTeFeatures) as $ft) { + $tmp = explode("|", $ft); + safe_w_SQL("INSERT INTO `AclDetails` (`AclDtTournament`, `AclDtIP`, `AclDtFeature`, `AclDtSubFeature`, `AclDtLevel`) + VALUES ($TourId, '$ip', $tmp[0], $tmp[1], $tmp[2]) + ON DUPLICATE KEY UPDATE `AclDtFeature`=$tmp[0], `AclDtSubFeature`=$tmp[1], `AclDtLevel`=$tmp[2]"); } } } - safe_w_SQL("INSERT INTO ACL (AclTournament, AclIP, AclNick, AclEnabled) VALUES ({$TourId},'{$ip}',NOW(),1)"); + safe_w_SQL("INSERT IGNORE INTO ACL (AclTournament, AclIP, AclNick, AclEnabled) VALUES ({$TourId},'{$ip}',NOW(),1)"); } } //Check Valid - if ($lockEnabled[0] == "1") { - $Sql = "SELECT AclDtLevel FROM AclDetails WHERE AclDtTournament={$TourId} AND AclDtIP='{$ip}' && AclDtFeature IN (" . implode(',', $feature) . ") ORDER BY AclDtLevel ASC"; - $q = safe_r_SQL($Sql); - if ($r = safe_fetch($q) and $level <= $r->AclDtLevel) { - return intval($r->AclDtLevel); - } else if($level==AclNoAccess) { - return AclNoAccess; - } else { + if($INFO->ACLEnabled) { + if ($lockEnabled[0] == "1" and $checkCompAcl) { + $Sql = "SELECT `AclDtLevel` FROM `AclDetails` WHERE AclDtTournament={$TourId} AND AclDtIP='{$ip}' && AclDtFeature IN (" . implode(',', $feature) . ") ORDER BY AclDtLevel ASC"; + $q = safe_r_SQL($Sql); + if ($r = safe_fetch($q) and $level <= $r->AclDtLevel) { + return intval($r->AclDtLevel); + } else if ($level == AclNoAccess) { + return AclNoAccess; + } else { + if ($redirect) { + CD_redirect($CFG->ROOT_DIR . 'noAccess.php'); + } else { + http_response_code(404); + } + die(); + } + } + if(!is_null($tmpReturn = authCheckACL($authEnabled, $checkCompAcl, $feature, $level, $TourCode)) and $tmpReturn !== false) { + return $tmpReturn; + } else if($tmpReturn === false) { if ($redirect) { - CD_redirect($CFG->ROOT_DIR.'noAccess.php'); + CD_redirect($CFG->ROOT_DIR . 'noAccess.php'); } else { http_response_code(404); } diff --git a/src/Common/DebugOverrides.php b/src/Common/DebugOverrides.php deleted file mode 100644 index 71bd372d..00000000 --- a/src/Common/DebugOverrides.php +++ /dev/null @@ -1,23 +0,0 @@ -TRACE_QUERRIES = false; - -//$CFG->IanseoServer='http://ianseonet/'; -/* -$CFG->WaWrapper='http://wa-api.hippo/'; -$CFG->ExtranetWrapper='http://wa.hippo/'; -$CFG->InfoSystem='http://info.hippo/'; -*/ - //$CFG->DB_NAME = 'ianseo_IS'; - -// $CFG->R_HOST = '24.111.81.72'; -// $CFG->W_HOST = '24.111.81.72'; - -$CFG->ODF=true; -//$CFG->USERAUTH = true; -$CFG->ACLExcluded=array( - '192.168.42.40', - '192.168.42.46', - '192.168.42.47' -); diff --git a/src/Common/Fun_Export.php b/src/Common/Fun_Export.php index 1e78003b..b4ed54ed 100644 --- a/src/Common/Fun_Export.php +++ b/src/Common/Fun_Export.php @@ -1,398 +1,2 @@ 'Ac', - 'AccEntries' => 'AE', - 'AccPrice' => 'AP', - 'ACL' => 'Acl', - 'AclDetails' => 'AclDt', - 'AvailableTarget' => 'At', - 'Awards' => 'Aw', - 'Awarded' => 'Aw', - 'BackNumber' => 'Bn', - 'CasScore' => 'CaS', - 'CasTeam' => 'Ca', - 'CasTeamFinal' => 'CTF', - 'CasTeamTarget' => 'CTT', - 'Classes' => 'Cl', - 'ClassWaEquivalents' => 'ClWaEq', - 'ClubTeam' => 'CT', - 'ClubTeamScore' => 'CTS', - 'Divisions' => 'Div', - 'DistanceInformation' => 'Di', - 'DocumentVersions' => 'Dv', - 'Eliminations' => 'El', - 'Emails' => 'Em', - 'EventClass' => 'Ec', - 'Events' => 'Ev', - 'FinalReportA' => 'Fra', - 'Finals' => 'Fin', - 'FinOdfTiming' => 'FinOdf', - 'FinSchedule' => 'FS', - 'FinWarmup' => 'Fw', - 'GateLog' => 'GL', - 'HeartBeat'=>'Hb', - 'HhtData' => 'Hd', - 'HhtEvents' => 'He', - 'HhtSetup' => 'Hs', - 'IdCardElements' => 'Ice', - 'IdCards' => 'Ic', - 'Images' => 'Im', - 'IskData' => 'IskDt', - 'Individuals' => 'Ind', - 'Logs' => 'Log', - 'ModulesParameters' => 'Mp', -// 'OnLineIds' => 'Oli', // This table is rewritten everytime so no need to export/import it - 'OdfDocuments' => 'OdfDoc', - 'OdfTranslations' => 'OdfTr', - 'OdfMessageStatus' => 'Oms', - 'Rankings' => 'Rank', - 'RecBroken' => 'RecBro', - 'RecTournament' => 'Rt', - 'Reviews' => 'Rev', - "RoundRobinGrids" => "RrGrid", - "RoundRobinGroup" => "RrGr", - "RoundRobinLevel" => "RrLev", - "RoundRobinMatches" => "RrMatch", - "RoundRobinParticipants" => "RrPart", - 'RunArchery' => 'Ra', - 'RunArcheryRank' => 'Rar', - 'RunArcheryParticipants' => 'Rap', - 'Scheduler'=>'Sch', - 'Session'=>'Ses', - 'SubClass' => 'Sc', - 'TargetFaces' => 'Tf', - 'TargetGroups' => 'Tg', - 'TeamComponent' => 'Tc', - 'TeamDavis' => 'TeDa', - 'TeamFinals' => 'Tf', - 'TeamFinComponent' => 'Tfc', - 'TeamFinComponentLog' => 'Tfcl', - 'Teams' => 'Te', - 'TournamentDistances' => 'Td', - 'TournamentInvolved' => 'Ti', - 'TourRecords' => 'Tr', - 'TVContents' => 'TVC', - 'TVParams' => 'TVP', - 'TVRules' => 'TVR', - 'TVSequence' => 'TVS', - 'VegasAwards'=>'Va', - ); - - //if(!$InfoSystem) { -// $tabs['']=''; -// } - - // Tabs where there is an EnID - $tabsEnId=array( - 'AccEntries' => 'AEId', - 'Awarded' => 'AwEntry', - 'ElabQualifications' => 'EqId', - 'Eliminations' => 'ElId', - 'ExtraData' => 'EdId', - 'Finals' => array('FinAthlete','FinCoach'), - 'GateLog' => 'GLEntry', - 'HhtData' => 'HdEnId', - 'Individuals' => 'IndId', - 'Logs' => 'LogEntry', - 'Photos' => 'PhEnId', - 'Qualifications' => 'QuId', - 'RecBroken' => 'RecBroAthlete', - 'RunArchery'=>'RaArcher', - 'TeamComponent' => 'TcId', - 'TeamFinals' => 'TfCoach', - 'TeamFinComponent' => 'TfcId', - 'TeamFinComponentLog' => array('TfclIdPrev','TfclIdNext'), - 'Vegas'=>'VeId', - ); - - // Tabs where there is an CoID - $tabsCoId=array( - 'CasTeam' => 'CaTeam', - 'ClubTeam' => 'CTTeam', - 'ExtraDataCountries' => 'EdcId', - 'RecBroken' => 'RecBroTeam', - 'TeamComponent' => 'TcCoId', - 'TeamFinComponent' => 'TfcCoId', - 'TeamFinComponentLog' => 'TfclCoId', - 'TeamFinals' => 'TfTeam', - 'Teams' => 'TeCoId', - 'TournamentInvolved' => 'TiCountry', - ); - - $RoundRobins=[ - "RoundRobinMatches" => ['RrMatchTeam', 'RrMatchAthlete'], - "RoundRobinParticipants" => ['RrPartTeam', 'RrPartParticipant'], - "RunArchery" => ['RaTeam', 'RaEntry'], - "RunArcheryRank" => ['RarTeam', 'RarEntry'], - "RunArcheryParticipants" => ['RapTeam', 'RapEntry'], - ]; - - $Gara['Photos']=array(); - $Gara['Flags']=array(); - - // check if there are local Records NOT maintained from WA - $Gara['RecAreas']=array(); - $q=safe_r_sql("select RecAreas.* from RecAreas inner join TourRecords on TrRecCode=ReArCode and TrTournament={$TourId} where ReArWaMaintenance=0"); - while($r=safe_fetch($q)) { - $Gara['RecAreas'][]=$r; - } - - if($Complete) { - // Adds localized Flags - $Select - = "SELECT distinct Flags.* FROM Entries - inner join Countries on EnCountry=CoId - inner join Flags on CoCode=FlCode and FlTournament = {$TourId} - WHERE EnTournament={$TourId} - ORDER BY FlCode, FlTournament DESC"; - $Rs=safe_r_sql($Select); - $oldCode=''; - while($MyRow=safe_fetch_assoc($Rs)){ - if($oldCode!=$MyRow["FlCode"]) - $Gara['Flags'][]=$MyRow; - $oldCode=$MyRow["FlCode"]; - } - - // and Pictures - $Select - = "SELECT Photos.* FROM Photos inner join Entries on Entries.EnId=Photos.PhEnId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; - $Rs=safe_r_sql($Select); - while($MyRow=safe_fetch_assoc($Rs)){ - $Gara['Photos'][]=$MyRow; - } - } - - $noIds=array( - 'AccPrice' => 'APId', - ); - - // prendo le Tabelle definite nell'array che si estraggono sul Tournament - foreach($tabs as $tab=>$code) { - $Gara[$tab]=array(); - $Select = "SELECT * FROM $tab WHERE {$code}Tournament=" . StrSafe_DB($TourId) . " "; - if(!empty($NotExportableKeys[$tab])) { - $Select.= " and ".implode(' AND ', $NotExportableKeys[$tab]); - } - $Rs=safe_r_sql($Select); - while($MyRow=safe_fetch_assoc($Rs)){ - if(isset($noIds[$tab])) unset($MyRow[$noIds[$tab]]); - $Gara[$tab][]=$MyRow; - } - } - - // ExtraData - $Gara['ExtraData']=array(); - $Select - = "SELECT ExtraData.* FROM ExtraData inner join Entries on Entries.EnId=ExtraData.EdId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; - $Rs=safe_r_sql($Select); - while($MyRow=safe_fetch_assoc($Rs)){ - $Gara['ExtraData'][]=$MyRow; - } - - // ExtraDataCountries - $Gara['ExtraDataCountries']=array(); - $Select - = "SELECT ExtraDataCountries.* FROM ExtraDataCountries inner join Countries on CoId=EdcId WHERE CoTournament=" . StrSafe_DB($TourId) . " "; - $Rs=safe_r_sql($Select); - while($MyRow=safe_fetch_assoc($Rs)){ - $Gara['ExtraDataCountries'][]=$MyRow; - } - - // ElabQualifications - $Gara['ElabQualifications']=array(); - $Select - = "SELECT ElabQualifications.* FROM ElabQualifications inner join Entries on Entries.EnId=ElabQualifications.EqId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; - $Rs=safe_r_sql($Select); - while($MyRow=safe_fetch_assoc($Rs)){ - $Gara['ElabQualifications'][]=$MyRow; - } - - // Qualifications - $Gara['Qualifications']=array(); - $Select - = "SELECT Qualifications.* FROM Qualifications inner join Entries on Entries.EnId=Qualifications.QuId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; - $Rs=safe_r_sql($Select); - while($MyRow=safe_fetch_assoc($Rs)){ - $Gara['Qualifications'][]=$MyRow; - } - - // Vegas - $Gara['Vegas']=array(); - $Select - = "SELECT Vegas.* FROM Vegas inner join Entries on EnId=VeId WHERE EnTournament=" . StrSafe_DB($TourId) . " "; - $Rs=safe_r_sql($Select); - while($MyRow=safe_fetch_assoc($Rs)){ - $Gara['Vegas'][]=$MyRow; - } - - if($InfoSystem) { - // protects Tournament images - $Gara['Tournament']['ToImgL']=' '.bin2hex($Gara['Tournament']['ToImgL']); - $Gara['Tournament']['ToImgR']=' '.bin2hex($Gara['Tournament']['ToImgR']); - $Gara['Tournament']['ToImgB']=' '.bin2hex($Gara['Tournament']['ToImgB']); - // gets all data in an array - $switches=array(); - $q=safe_r_SQL("Select * from OnLineIds where OliServer='$InfoSystem' and OliTournament={$_SESSION['TourId']}"); - while($r=safe_fetch($q)) { - $switches[$r->OliType][$r->OliId]=$r->OliOnlineId; - } - - // removes not defined entries/countries - //adjust Entries - $NewEntries=array(); - foreach($Gara['Entries'] as $Id => $Entry) { - if(empty($switches['E'][$Id]) - or empty($switches['C'][$Entry['EnCountry']]) - or (empty($switches['C'][$Entry['EnCountry2']]) and $Entry['EnCountry2']) - or (empty($switches['C'][$Entry['EnCountry3']]) and $Entry['EnCountry3']) - ) { - unset($switches['E'][$Id]); // missing entry, deletes the entry - continue; // skip the new entries - } - $Entry['EnId']=$switches['E'][$Id]; - $Entry['EnOnlineId']=$switches['E'][$Id]; - $Entry['EnTournament']=$switches['T'][$_SESSION['TourId']]; - $Entry['EnCountry']=$switches['C'][$Entry['EnCountry']]; - if($Entry['EnCountry2']) $Entry['EnCountry2']=$switches['C'][$Entry['EnCountry2']]; - if($Entry['EnCountry3']) $Entry['EnCountry3']=$switches['C'][$Entry['EnCountry3']]; - $NewEntries[$Entry['EnId']]=$Entry; - } - $Gara['Entries']=$NewEntries; - - // adjust Countries - $NewEntries=array(); - foreach($Gara['Countries'] as $Id => $Entry) { - if(empty($switches['C'][$Id])) { - unset($switches['C'][$Id]); // missing country, deletes the entry - continue; // skip the new entries - } - $Entry['CoId']=$switches['C'][$Id]; - $Entry['CoOnlineId']=$switches['C'][$Id]; - $Entry['CoTournament']=$switches['T'][$_SESSION['TourId']]; - $NewEntries[$Entry['CoId']]=$Entry; - } - $Gara['Countries']=$NewEntries; - - // adjust EnId - foreach($tabsEnId as $tab => $Ids) { - if(is_array($Ids)) { - foreach($Ids as $Id) { - foreach($Gara[$tab] as $k=>$v) { - if($v[$Id] and !empty($switches['E'][$v[$Id]])) { - // the user has an Online ID - $Gara[$tab][$k][$Id]=$switches['E'][$v[$Id]]; - } elseif($tab!='Finals') { - // unset the record... will be send later on the next cycle - unset($Gara[$tab][$k]); - } - } - } - } else { - foreach($Gara[$tab] as $k=>$v) { - if($v[$Ids] and !empty($switches['E'][$v[$Ids]])) { - // the user has an Online ID - $Gara[$tab][$k][$Ids]=$switches['E'][$v[$Ids]]; - } elseif($tab!='Finals' and $tab!='Eliminations' and $tab!='TeamFinals') { - // unset the record... will be send later on the next cycle - unset($Gara[$tab][$k]); - } - } - } - } - - // adjust CoId - foreach($tabsCoId as $tab => $Id) { - foreach($Gara[$tab] as $k=>$v) { - if($v[$Id] and !empty($switches['C'][$v[$Id]])) { - // the user has an Online ID - $Gara[$tab][$k][$Id]=$switches['C'][$v[$Id]]; - } elseif($tab!='TeamFinals') { - // unset the record... will be send later on the next cycle - unset($Gara[$tab][$k]); - } - } - } - - // Adjust mixed tables - foreach($RoundRobins as $tab => $flags) { - foreach($Gara[$tab] as $k=>$v) { - if($v[$flags[0]]) { - // it is a team ID - if($v[$flags[1]] and !empty($switches['C'][$v[$flags[1]]])) { - // the user has an Online ID - $Gara[$tab][$k][$flags[1]]=$switches['C'][$v[$flags[1]]]; -// } elseif($tab!='TeamFinals') { -// // unset the record... will be send later on the next cycle -// unset($Gara[$tab][$k]); - } - } else { - // it is an entry ID - if($v[$flags[1]] and !empty($switches['E'][$v[$flags[1]]])) { - // the user has an Online ID - $Gara[$tab][$k][$flags[1]]=$switches['E'][$v[$flags[1]]]; -// } elseif($tab!='Finals' and $tab!='Eliminations') { -// // unset the record... will be send later on the next cycle -// unset($Gara[$tab][$k]); - } - } - } - } - - // adjust the array-based IDs - foreach($Gara['TeamFinals'] as $k=>$line) { - if($line['TfShootingArchers']) { - $newArchers=[]; - foreach(json_decode($line['TfShootingArchers']) as $a=>$b) { - if(!empty($switches['E'][$b])) { - $newArchers["$a"]=$switches['E'][$b]; - } - } - $Gara['TeamFinals'][$k]['TfShootingArchers']=json_encode($newArchers); - } - } - - // adjust ToId - if($Complete) $tabs['Flags']='Fl'; - foreach($tabs as $tab => $Id) { - foreach($Gara[$tab] as $k=>$v) { - $Gara[$tab][$k][$Id.'Tournament']=$switches['T'][$_SESSION['TourId']]; - } - } - } - - return $Gara; -} +require_once('Common/Lib/Fun_Export.php'); diff --git a/src/Common/Fun_TourDelete.php b/src/Common/Fun_TourDelete.php index 7c8bca91..8288e552 100644 --- a/src/Common/Fun_TourDelete.php +++ b/src/Common/Fun_TourDelete.php @@ -9,6 +9,7 @@ function tour_delete($TourId) { "AccEntries" => "AETournament", "AccPrice" => "APTournament", "AclDetails" => 'AclDtTournament', + "AclTemplates" => 'AclTeTournament ', "AvailableTarget" => "AtTournament", "Awarded" => "AwTournament", "Awards" => "AwTournament", @@ -138,6 +139,7 @@ function tour_import($filename, $isString=false) { 'AccPrice' => 'AP', 'ACL' => 'Acl', 'AclDetails' => 'AclDt', + 'AclTemplates' => 'AclTe', 'AvailableTarget' => 'At', 'Awards' => 'Aw', 'Awarded' => 'Aw', @@ -267,6 +269,7 @@ function tour_import($filename, $isString=false) { 'AccColors', 'AccPrice', 'ACL', + 'AclTemplates', 'AclDetails', 'AvailableTarget', 'Awards', @@ -310,7 +313,6 @@ function tour_import($filename, $isString=false) { 'TargetGroups', 'TeamDavis', 'TournamentDistances', - //'TournamentInvolved', 'TourRecords' , 'TVContents', 'TVParams', @@ -345,7 +347,7 @@ function tour_import($filename, $isString=false) { $Gara=UpdateTournament($Gara); // CONTROLLA SE C'E' UN TORNEO CON LO STESSO CODICE E LO SEGA! - $q=safe_r_sql("select ToId from Tournament where ToCode=" . strsafe_db($Gara['Tournament']['ToCode'])); + $q=safe_r_sql("select `ToId` from `Tournament` where `ToCode`=" . strsafe_db($Gara['Tournament']['ToCode'])); if($r=safe_fetch($q) ){ // esiste un tournament con lo stesso codice... ranzo tutto! tour_delete($r->ToId); @@ -355,13 +357,17 @@ function tour_import($filename, $isString=false) { RemoveMedia($Gara['Tournament']['ToCode']); // Insert competition - $quer=array(); + $query=array(); foreach($Gara['Tournament'] as $key=>$val) { if($key!='ToId'){ - $quer[]="$key=" . strsafe_db($val); + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } } - safe_w_sql("Insert into Tournament set ".implode(', ', $quer)); + safe_w_sql("Insert into `Tournament` set ".implode(', ', $query)); $TourId=safe_w_last_id(); // adjust ToId in all arrays... @@ -379,9 +385,13 @@ function tour_import($filename, $isString=false) { foreach($Gara[$tab] as $record) { $query=array(); foreach($record as $key=>$val) { - $query[]="$key = " . strsafe_db($val) ; + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } - safe_w_sql("insert into $tab set ". implode(', ', $query). " on duplicate key update ". implode(', ', $query)); + safe_w_sql("insert into `$tab` set ". implode(', ', $query). " on duplicate key update ". implode(', ', $query)); } } } @@ -393,27 +403,31 @@ function tour_import($filename, $isString=false) { $query=array(); foreach($record as $key=>$val) { if($key!='CoId' and $key!='CoFlag' and $key!='CoMail' and $key!='CoNoPrint'){ - $query[]="$key = " . strsafe_db($val) ; + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } } - safe_w_sql("insert into Countries set ". implode(', ', $query)); + safe_w_sql("insert into `Countries` set ". implode(', ', $query)); $Countries[$record['CoId']]=safe_w_last_id(); } } //aggiorna CoParent1 della Countries stessa - $tmpSql = "SELECT DISTINCT CoParent1 FROM Countries WHERE CoTournament=" . $TourId . " AND CoParent1!=0"; + $tmpSql = "SELECT DISTINCT `CoParent1` FROM `Countries` WHERE `CoTournament`=" . $TourId . " AND CoParent1!=0"; $tmpRs = safe_r_sql($tmpSql); if(safe_num_rows($tmpRs)!=0) { while($tmpRow=safe_fetch($tmpRs)) - safe_w_sql("UPDATE Countries SET CoParent1=". $Countries[$tmpRow->CoParent1] . " WHERE CoParent1=" . $tmpRow->CoParent1 . " AND CoTournament=" . $TourId); + safe_w_sql("UPDATE `Countries` SET `CoParent1`=". $Countries[$tmpRow->CoParent1] . " WHERE `CoParent1`=" . $tmpRow->CoParent1 . " AND `CoTournament`=" . $TourId); safe_free_result($tmpRs); } //aggiorna CoParent2 della Countries stessa - $tmpSql = "SELECT DISTINCT CoParent2 FROM Countries WHERE CoTournament=" . $TourId . " AND CoParent2!=0"; + $tmpSql = "SELECT DISTINCT `CoParent2` FROM `Countries` WHERE `CoTournament`=" . $TourId . " AND CoParent2!=0"; $tmpRs = safe_r_sql($tmpSql); if(safe_num_rows($tmpRs)!=0) { while($tmpRow=safe_fetch($tmpRs)) - safe_w_sql("UPDATE Countries SET CoParent2=". $Countries[$tmpRow->CoParent2] . " WHERE CoParent2=" . $tmpRow->CoParent2 . " AND CoTournament=" . $TourId); + safe_w_sql("UPDATE `Countries` SET `CoParent2`=". $Countries[$tmpRow->CoParent2] . " WHERE `CoParent2`=" . $tmpRow->CoParent2 . " AND `CoTournament`=" . $TourId); safe_free_result($tmpRs); } @@ -442,10 +456,14 @@ function tour_import($filename, $isString=false) { $query = array(); foreach ($record as $key => $val) { if ($key != 'TiId') { - $query[] = "$key = " . strsafe_db($val); + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } } - safe_w_sql("insert into TournamentInvolved set " . implode(', ', $query)); + safe_w_sql("insert into `TournamentInvolved` set " . implode(', ', $query)); $TiEntries[$record['TiId']] = safe_w_last_id(); } } @@ -476,10 +494,14 @@ function tour_import($filename, $isString=false) { $query=array(); foreach($record as $key=>$val) { if($key!='EnId' and $key!='EnWorldRank'){ - $query[]="$key = " . strsafe_db($val) ; + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } } - safe_w_sql("insert into Entries set ". implode(', ', $query)); + safe_w_sql("insert into `Entries` set ". implode(', ', $query)); $Entries[$record['EnId']]=safe_w_last_id(); } } @@ -545,13 +567,17 @@ function tour_import($filename, $isString=false) { foreach($Gara[$tab] as $record) { $query=array(); foreach($record as $key=>$val) { - $query[]="$key = " . strsafe_db($val) ; + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } // attenzione: questa query era "commentata" per non far apparirer errori: // se questo comportamento è desiderato, chiamare la funzione safe_w_sql passando // come terzo parametro un array con gli errori numerici ammessi - safe_w_sql("REPLACE INTO $tab set ". implode(', ', $query)); + safe_w_sql("REPLACE INTO `$tab` set ". implode(', ', $query)); } } } @@ -563,9 +589,13 @@ function tour_import($filename, $isString=false) { $record['FlTournament']=$TourId; $query=array(); foreach($record as $key=>$val) { - $query[]="$key = " . strsafe_db($val) ; + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } - safe_w_sql("insert into Flags set ". implode(', ', $query). " on duplicate key update ". implode(', ', $query)); + safe_w_sql("insert into `Flags` set ". implode(', ', $query). " on duplicate key update ". implode(', ', $query)); } } @@ -574,9 +604,13 @@ function tour_import($filename, $isString=false) { foreach($Gara['RecAreas'] as $record) { $query=array(); foreach($record as $key=>$val) { - $query[]="$key = " . strsafe_db($val) ; + if(!is_null($val)) { + $query[] = "`$key` = " . strsafe_db($val); + } else { + $query[] = "`$key` = NULL"; + } } - safe_w_sql("insert into RecAreas set ". implode(', ', $query). " on duplicate key update ". implode(', ', $query)); + safe_w_sql("insert into `RecAreas` set ". implode(', ', $query). " on duplicate key update ". implode(', ', $query)); } } @@ -591,7 +625,7 @@ function tour_import($filename, $isString=false) { // if for accreditation, inserts all the LocCodes! if(!empty($_REQUEST['Accreditation'])) { - safe_w_sql("insert ignore into ExtraData (select EnId, 'Z', '', concat(EnCode, '-', EnIocCode, '-', EnDivision) from Entries where EnTournament=$TourId)"); + safe_w_sql("insert ignore into `ExtraData` (select `EnId`, 'Z', '', concat(`EnCode`, '-', `EnIocCode`, '-', `EnDivision`) from `Entries` where `EnTournament`=$TourId)"); } // RECREATES ALL MEDIA @@ -603,7 +637,7 @@ function tour_import($filename, $isString=false) { // delete all the log files of this competition... deleteAccLogs($Gara['Tournament']['ToCode']); // track info for this competition in all servers ready to track - $q=safe_r_sql("select distinct SsApi, SsName from ianseo_Accreditation.SyncServers where SsStatus=1"); + $q=safe_r_sql("select distinct `SsApi`, `SsName` from `ianseo_Accreditation`.`SyncServers` where SsStatus=1"); while ($r=safe_fetch($q)) { startAccTrack($Gara['Tournament']['ToCode'], $r->SsName, $r->SsApi); } diff --git a/src/Common/Globals.inc.php b/src/Common/Globals.inc.php index 2596839a..0280d4a2 100644 --- a/src/Common/Globals.inc.php +++ b/src/Common/Globals.inc.php @@ -15,7 +15,7 @@ define ("ProgramName","Ianseo"); // Nome del programma -define ("ProgramVersion","2023-01-10"); // "Remembering Er Salustro. Ciao Giggi 💔" +define ("ProgramVersion","2024-12-08"); // "Experience is the teacher of all things (Gaius Iulius Caesar)" define ("TargetNoPadding",3); // Padding del targetno @@ -89,8 +89,8 @@ session_start(); -if(empty($_SESSION['WINHEIGHT'])) $_SESSION['WINHEIGHT'] = ''; -if(empty($_SESSION['WINWIDTH'])) $_SESSION['WINWIDTH'] = ''; +if(empty($_SESSION['WINHEIGHT'])) $_SESSION['WINHEIGHT'] = 0; +if(empty($_SESSION['WINWIDTH'])) $_SESSION['WINWIDTH'] = 0; if(empty($_SESSION['COLLATION'])) set_collation(); /* @@ -117,6 +117,13 @@ header("Location: " . $_SERVER['PHP_SELF'] . go_get('SetLanguage','',true)); } +function getToday($Date='now', $Format='Y-m-d') { + $Today=new DateTimeImmutable($Date); + if(!empty($_SESSION['TourTimezone'])){ + $Today=new DateTimeImmutable($Date, new DateTimeZone($_SESSION['TourTimezone'])); + } + return $Today->format($Format); +} // funzione per l'internazionalizzazione function get_text($text, $module='Common', $a=null, $translate=false, $force=false, $ForceLang='', $Verbose=true) { static $_LANG; @@ -318,6 +325,11 @@ function define_session_flags($ConstToStore=array()) { foreach($ConstToStore as $k => $v) { $_SESSION[$k]=$v; } + // adjust the timezone of the database to the timezone of the competition. + if(!empty($_SESSION['TourTimezone'])) { + safe_r_SQL( "SET session time_zone = '".$_SESSION['TourTimezone']."'"); + safe_w_SQL( "SET session time_zone = '".$_SESSION['TourTimezone']."'"); + } } /** @@ -438,9 +450,10 @@ function InfoTournament() * @return true se ci riesce e false altrimenti */ function CreateTourSession($TourId) { + global $CFG; require_once('Common/CheckPictures.php'); $TourId=intval($TourId); - $Select = "SELECT Tournament.*, ElimTypes, TeamEvents, + $Select = "SELECT Tournament.*, ElimTypes, TeamEvents,ToTimeZone, UNIX_TIMESTAMP(ToWhenFrom) AS ToWhenFromUTS, DATE_FORMAT(ToWhenFrom,'" . get_text('DateFmtDB') . "') AS DtFrom, UNIX_TIMESTAMP(ToWhenTo) AS ToWhenToUTS, DATE_FORMAT(ToWhenTo,'" . get_text('DateFmtDB') . "') AS DtTo, ToTypeName AS TtName, ToElimination AS TtElimination FROM Tournament @@ -452,13 +465,22 @@ function CreateTourSession($TourId) { { $debug = $_SESSION['debug']; $debmode= (!empty($_SESSION['debug-mode']) ? $_SESSION['debug-mode'] : ''); + $tmpAuthUser = (!empty($_SESSION['AUTH_User']) ? $_SESSION['AUTH_User'] : null); + $tmpAuthPwd = (!empty($_SESSION['AUTH_Pwd']) ? $_SESSION['AUTH_Pwd'] : null); $_SESSION=Array(); $_SESSION['debug'] = $debug; $_SESSION['debug-mode'] = $debmode; + if($CFG->USERAUTH and !is_null($tmpAuthUser) ) { + $_SESSION['AUTH_User'] = $tmpAuthUser; + $_SESSION['AUTH_Pwd'] = $tmpAuthPwd; + } $MyRow=safe_fetch($Rs); + $dateTimeZone = new DateTimeZone($MyRow->ToTimeZone); + $dateTimeZone->getOffset(new DateTime("now", new DateTimeZone('UTC'))); + $_SESSION['TourId']=$MyRow->ToId; $_SESSION['TourPrintLang']=$MyRow->ToPrintLang; $_SESSION['TourType']=$MyRow->ToType; @@ -467,15 +489,17 @@ function CreateTourSession($TourId) { $_SESSION['TourField3D']=($MyRow->ToElabTeam==1 ? 'FIELD' : ($MyRow->ToElabTeam==2 ? '3D' : '')); $_SESSION['TourCode']=$MyRow->ToCode; $_SESSION['TourCodeSafe']=preg_replace('/[^a-z0-9_.-]+/sim', '', $MyRow->ToCode); - $_SESSION['TourCollation']=$MyRow->ToCollation; +// $_SESSION['TourCollation']=$MyRow->ToCollation; + $_SESSION['TourCollation']=''; $_SESSION['TourName']=$MyRow->ToName; $_SESSION['TourWhere']=$MyRow->ToWhere; $_SESSION['TourRealWhenFrom']=$MyRow->ToWhenFrom; $_SESSION['TourRealWhenTo']=$MyRow->ToWhenTo; $_SESSION['TourWhenFrom']=$MyRow->DtFrom; $_SESSION['TourWhenTo']=$MyRow->DtTo; - $_SESSION['ToWhenFromUTS']=$MyRow->ToWhenFromUTS; - $_SESSION['ToWhenToUTS']=$MyRow->ToWhenToUTS; + $_SESSION['TourTimezone']=$MyRow->ToTimeZone; + $_SESSION['ToWhenFromUTS']=$MyRow->ToWhenFromUTS+$dateTimeZone->getOffset(new DateTime("now", new DateTimeZone('UTC'))); + $_SESSION['ToWhenToUTS']=$MyRow->ToWhenToUTS+$dateTimeZone->getOffset(new DateTime("now", new DateTimeZone('UTC'))); $_SESSION['ToPaper']=$MyRow->ToPrintPaper; // RoundRobinEvents... $_SESSION['HasRobin']=(strstr($MyRow->ElimTypes??'', '5') ? 1 : 0); @@ -488,9 +512,10 @@ function CreateTourSession($TourId) { $_SESSION['TargetPadding']=2; // sets the collation for the tournament - set_collation($MyRow->ToCollation); +// set_collation($MyRow->ToCollation); // if a collation is set for a tournament, this will be the default whatever language is chosen - $_SESSION['COLLATION-LOCK']=($MyRow->ToCollation!=''); +// $_SESSION['COLLATION-LOCK']=($MyRow->ToCollation!=''); + $_SESSION['COLLATION-LOCK']=false; // Defines if a tournament is ORIS compliant or not $_SESSION['ISORIS']=$MyRow->ToIsORIS; @@ -554,8 +579,22 @@ function CreateTourSession($TourId) { Distrugge la sessione per il torneo attivo */ function EraseTourSession() { - $_SESSION=array(); - $_SESSION['TourId']=-1; + global $CFG; + $debug = $_SESSION['debug']; + $debmode= (!empty($_SESSION['debug-mode']) ? $_SESSION['debug-mode'] : ''); + $tmpAuthUser = (!empty($_SESSION['AUTH_User']) ? $_SESSION['AUTH_User'] : null); + $tmpAuthPwd = (!empty($_SESSION['AUTH_Pwd']) ? $_SESSION['AUTH_Pwd'] : null); + + $_SESSION=Array(); + + $_SESSION['debug'] = $debug; + $_SESSION['debug-mode'] = $debmode; + if($CFG->USERAUTH and !is_null($tmpAuthUser) ) { + $_SESSION['AUTH_User'] = $tmpAuthUser; + $_SESSION['AUTH_Pwd'] = $tmpAuthPwd; + } + + $_SESSION['TourId']=-1; $_SESSION['TourCode']=''; $_SESSION['TourName']=''; $_SESSION['TourWhere']=''; @@ -820,6 +859,8 @@ function CheckHelp() { } function set_collation($Col='') { + // removed until solved for multiple database versions + return; static $Collations=array( 'czech', 'danish', @@ -1019,3 +1060,242 @@ function insertLog($Type, $Message, $Title='', $Entry=0, $TourId=0) { LogTimestamp='".date('Y-m-d H:i:s.u')."', LogIP='".$_SERVER['REMOTE_ADDR']."'"); } + +function checkCompetitionAnomalies() { + global $CFG; + $Ret=[ + 'EC'=>[ + 'Cats'=>[], + 'Msg'=>get_text('EntriesNoCountry', 'Errors'), + 'Lnk'=>$CFG->ROOT_DIR.'Partecipants/', + ], + 'ED'=>[ + 'Cats'=>[], + 'Msg'=>get_text('EntriesNoCategory', 'Errors'), + 'Lnk'=>$CFG->ROOT_DIR.'Partecipants/', + ], + 'ES'=>[ + 'Cats'=>[], + 'Msg'=>get_text('CategoresNotDefined', 'Errors'), + 'Lnk'=>$CFG->ROOT_DIR.'Tournament/ManDivClass.php', + ], + 'D0'=>[ + 'Cats'=>[], + 'Msg'=>get_text('NoDistancesSet', 'Errors'), + 'Lnk'=>$CFG->ROOT_DIR.'Tournament/ManDistances.php', + ], + 'D1'=>[ + 'Cats'=>[], + 'Msg'=>get_text('TooManyDistancesMatch', 'Errors'), + 'Lnk'=>$CFG->ROOT_DIR.'Tournament/ManDistances.php', + ], + 'Tgt'=>[ + 'Cats'=>[], + 'Msg'=>get_text('NoTargetSet', 'Errors'), + 'Lnk'=>$CFG->ROOT_DIR.'Tournament/ManTargets.php', + ], + 'Id'=>[ + 'Cats'=>[], + 'Msg'=>get_text('EventIncompleteSetting', 'Errors', get_text('IndFinEvent', 'Tournament')), + 'Lnk'=>$CFG->ROOT_DIR.'Final/Individual/ListEvents.php', + ], + 'Td'=>[ + 'Cats'=>[], + 'Msg'=>get_text('EventIncompleteSetting', 'Errors', get_text('TeamFinEvent', 'Tournament')), + 'Lnk'=>$CFG->ROOT_DIR.'Final/Team/ListEvents.php', + ], + 'I'=>[ + 'Cats'=>[], + 'Msg'=>get_text('EndsArrowsMisMatch', 'Errors', get_text('IndFinEvent', 'Tournament')), + 'Lnk'=>$CFG->ROOT_DIR.'Final/PhaseDetails.php?act=get&team=0&option=ArrowPhase', + ], + 'T'=>[ + 'Cats'=>[], + 'Msg'=>get_text('EndsArrowsMisMatch', 'Errors', get_text('TeamFinEvent', 'Tournament')), + 'Lnk'=>$CFG->ROOT_DIR.'Final/PhaseDetails.php?act=get&team=1&option=ArrowPhase', + ], + ]; + // check Missing Countries + $q=safe_r_sql("select EnCode + from Entries + where EnTournament={$_SESSION['TourId']} and EnCountry=0 + order by EnCode + "); + while($r=safe_fetch($q)) { + $Ret['EC']['Cats'][]=$r->EnCode; + } + + // check Category Inconsistency + $q=safe_r_sql("select distinct concat(EnDivision, EnClass) as EnCat + from Entries + left join Divisions on DivId=EnDivision and DivTournament=EnTournament + left join Classes on ClId=EnClass and ClTournament=EnTournament and (ClDivisionsAllowed='' or find_in_set(EnDivision, ClDivisionsAllowed)) + where EnTournament={$_SESSION['TourId']} and EnDivision!='' and EnClass!='' and (DivId is null or ClId is null) + order by EnCode + "); + while($r=safe_fetch($q)) { + $Ret['ES']['Cats'][]=$r->EnCat; + } + + // check Category Inconsistency + $q=safe_r_sql("select distinct EnCode as EnCat + from Entries + where EnTournament={$_SESSION['TourId']} and (EnDivision='' or EnClass='') + order by EnCode + "); + while($r=safe_fetch($q)) { + $Ret['ED']['Cats'][]=$r->EnCat; + } + + // check distances anomalies + $q=safe_r_sql("select Category, count(*) as Distances, TdTournament is null as NoDistances + from (select concat(DivId,ClId) as Category, DivViewOrder, ClViewOrder, ToType + from Divisions + inner join Classes on ClTournament=DivTournament and (ClDivisionsAllowed='' or find_in_set(DivId,ClDivisionsAllowed)) and ClAthlete=1 + inner join Tournament on ToId=DivTournament + where DivTournament={$_SESSION['TourId']} and DivAthlete=1) as AllCats + left join TournamentDistances on TdTournament={$_SESSION['TourId']} and TdType=ToType and Category like TdClasses + group by Category + having Distances!=1 or NoDistances=1 + order by DivViewOrder, ClViewOrder"); + while($r=safe_fetch($q)) { + $Ret[$r->NoDistances ? 'D0' : 'D1']['Cats'][]=$r->Category; + } + + // check targets anomalies + $q=safe_r_sql("select Category, TfTournament is null as NoTarget + from (select concat(DivId,ClId) as Category, DivViewOrder, ClViewOrder + from Divisions + inner join Classes on ClTournament=DivTournament and (ClDivisionsAllowed='' or find_in_set(DivId,ClDivisionsAllowed)) and ClAthlete=1 + where DivTournament={$_SESSION['TourId']} and DivAthlete=1) as AllCats + left join TargetFaces on TfTournament={$_SESSION['TourId']} and if(TfRegExp!='', Category regexp TfRegExp, Category like TfClasses) + group by Category + having NoTarget=1 + order by DivViewOrder, ClViewOrder + "); + while($r=safe_fetch($q)) { + $Ret['Tgt']['Cats'][]=$r->Category; + } + + // check events Setup anomalies + $q=safe_r_sql("select EvCode, if(EvTeamEvent=1,'Td','Id') as TeamEvent + from Events + left join (select if(EcTeamEvent=0,0,1) as EcTeamEvent, EcCode from EventClass where EcTournament={$_SESSION['TourId']} group by if(EcTeamEvent=0,0,1), EcCode) EventClass on EcTeamEvent=EvTeamEvent and EcCode=EvCode + where EvTournament={$_SESSION['TourId']} and EvCodeParent='' and EcCode is null + order by EvTeamEvent,EvProgr"); + + while($r=safe_fetch($q)) { + $Ret[$r->TeamEvent]['Cats'][]='
'.$r->EvCode.''; + } + + // check events End/Arrows anomalies + $q=safe_r_sql("select EvCode, if(EvTeamEvent=1,'T','I') as TeamEvent + from Events + where EvTournament={$_SESSION['TourId']} and (EvElimEnds=0 or EvFinEnds=0 or EvElimArrows=0 or EvFinArrows=0) and EvFinalFirstPhase!=0 + order by EvTeamEvent,EvProgr"); + + while($r=safe_fetch($q)) { + $Ret[$r->TeamEvent]['Cats'][]=$r->EvCode; + } + + $RetResult=[]; + foreach($Ret as $k=>$v) { + if(!$v['Cats']) { + continue; + } + $RetResult[$k]=$v; + } + return $RetResult; +} + +function checkPhpVersion($complete=false) { + $Ret=''; + if(PHP_MAJOR_VERSION<8) { + $Ret = '
'.get_text('PhpOutdated', 'Errors', '8.0.0').'
'; + if($complete) { + $Ret.='
+
'.get_text('BackupTournaments', 'Errors').'
+
'.get_text('ExportAllComps', 'Install').'
+
'; + } + } + return $Ret; +} + +function UpdateToInnoDb($Apply=true) { + global $CFG; + $Ret=checkPhpVersion(); + $q1=safe_r_sql("show character SET like 'utf8mb4'"); + $q2=safe_r_sql("show variables like 'innodb_file_per_table'"); + if(!safe_num_rows($q1) or !safe_num_rows($q2) or ($r=safe_fetch($q2) and $r->Value!='ON')) { + $Ret.= '
'.get_text('MysqlUpdateNeeded', 'Errors').'
'; + } + + if($Ret) { + return $Ret; + } + + // start setting all tables to innodb engine + $q=safe_r_sql("SELECT CONCAT('ALTER TABLE ', table_name, ' ENGINE=InnoDB;') AS sql_statements + FROM information_schema.tables AS tb + WHERE table_schema = '{$CFG->DB_NAME}' + AND ENGINE = 'MyISAM' + AND TABLE_TYPE = 'BASE TABLE' + ORDER BY table_name DESC;"); + + if($Apply) { + while($r=safe_fetch($q)) { + safe_w_sql($r->sql_statements); + } + } else { + if(safe_num_rows($q)) { + return true; + } + } + + // update all tables to utf8mb4 + //Check if collection is available and choose which to aplly + $newCollation = 'utf8mb4_0900_as_ci'; + $q=safe_r_sql("SHOW COLLATION WHERE Collation='$newCollation';"); + if(!safe_num_rows($q)) { + $newCollation = 'utf8mb4_general_ci'; + $q=safe_r_sql("SHOW COLLATION WHERE Collation='$newCollation';"); + if(!safe_num_rows($q)) { + $newCollation = ''; + } + } + + if(!empty($newCollation)) { + $SQL = "SELECT 'SET FOREIGN_KEY_CHECKS = 0' AS alter_statement + UNION + SELECT CONCAT('ALTER DATABASE `', SCHEMA_NAME,'` CHARACTER SET utf8mb4 COLLATE $newCollation') AS alter_statement + FROM information_schema.SCHEMATA + WHERE (DEFAULT_CHARACTER_SET_NAME!='utf8mb4' or DEFAULT_COLLATION_NAME!='$newCollation') AND SCHEMA_NAME = '{$CFG->DB_NAME}' + UNION + SELECT DISTINCT CONCAT('ALTER TABLE `',TABLE_NAME, '` CONVERT TO CHARACTER SET utf8mb4 COLLATE $newCollation') AS alter_statement + FROM ( + SELECT TABLE_NAME + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = '{$CFG->DB_NAME}' AND CHARACTER_SET_NAME IS NOT NULL AND (CHARACTER_SET_NAME!='utf8mb4' or COLLATION_NAME!='$newCollation') + UNION + SELECT TABLE_NAME + FROM information_schema.TABLES AS T + JOIN information_schema.`COLLATION_CHARACTER_SET_APPLICABILITY` AS C ON C.collation_name = T.table_collation + WHERE (CHARACTER_SET_NAME!='utf8mb4' or COLLATION_NAME!='$newCollation') AND TABLE_SCHEMA = '{$CFG->DB_NAME}' + ) AS TABLE_UPDATES + UNION + SELECT 'SET FOREIGN_KEY_CHECKS = 1' AS alter_statement"; + $q = safe_r_sql($SQL); + if ($Apply) { + while ($r = safe_fetch($q)) { + safe_w_sql($r->alter_statement); + } + } else { + if (safe_num_rows($q) > 2) { + return true; + } + } + } + + return false; +} \ No newline at end of file diff --git a/src/Common/Images/ACL3.png b/src/Common/Images/ACL3.png new file mode 100644 index 00000000..e1430cbf Binary files /dev/null and b/src/Common/Images/ACL3.png differ diff --git a/src/Common/Languages/ar/Api.php b/src/Common/Languages/ar/Api.php index d25416bf..ff2d415d 100644 --- a/src/Common/Languages/ar/Api.php +++ b/src/Common/Languages/ar/Api.php @@ -50,6 +50,7 @@ $lang['ISK-ConnectionStatus']='حالة الاتصال'; $lang['ISK-DeleteDevices']='حذف اجهزة'; $lang['ISK-DenyAccess']='ممنوع الولوج'; +$lang['ISK-Deprecated']='هام: سيتم إزالة تطبيق "Ianseo Score Keeper" تدريجيًا من متاجر Android وApple ولن يتم دعمه بعد الآن، وبالتالي سيتم إزالته من Ianseo في سبتمبر 2024. يرجى التبديل إلى تطبيق "Ianseo Score Keeper NG" الجديد بدلاً من ذلك.'; $lang['ISK-DeviceAlive']='متصل'; $lang['ISK-DeviceBattery']='بطارية'; $lang['ISK-DeviceEnabled']='مفعل'; @@ -79,6 +80,7 @@ $lang['ISK-Lite-NoCompCode']='رمز المنافسة مفقود'; $lang['ISK-Lite-QRCode']='طباعة رمز الاستجابة السريعة لبرنامج النتائج الاصدار المحدود'; $lang['ISK-Lite-ServerUrl']='عنوان URL للخادم (بما في ذلك البروتوكول والمنفذ إن لم يكن 80)'; +$lang['ISK-Live-Deprecated']='هام: لم يعد تطبيق "Ianseo Score Keeper Live" مدعومًا، وبالتالي سيتم إزالته من Ianseo في سبتمبر 2024. يرجى التبديل إلى تطبيق "Ianseo Score Keeper NG" الجديد بدلاً من ذلك.'; $lang['ISK-Live-Name']='ايانسيو لادارة النتائج لايف'; $lang['ISK-lockPortrait']='قفل الجهاز في العرض العمودي'; $lang['ISK-Name']='إيانسيو لادارة النتائج'; @@ -156,6 +158,7 @@ $lang['NewGroup']='إعادة تعيين المجموعه'; $lang['NewTarget']='إعادة تعيين الهدف'; $lang['PartialImport']='الاستيراد التلقائى للاجزاء'; +$lang['PartialImportAll']='استيراد الكل'; $lang['PopupStatusDistance']='مسافة: $a'; $lang['PopupStatusEnd']='نهاية: $a'; $lang['PopupStatusEvent']='حدث: $a'; diff --git a/src/Common/Languages/ar/Awards.php b/src/Common/Languages/ar/Awards.php new file mode 100644 index 00000000..3ea5eef1 --- /dev/null +++ b/src/Common/Languages/ar/Awards.php @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ar/BackNumbers.php b/src/Common/Languages/ar/BackNumbers.php index 14ae9aa4..98ffb2e0 100644 --- a/src/Common/Languages/ar/BackNumbers.php +++ b/src/Common/Languages/ar/BackNumbers.php @@ -1,36 +1,192 @@
  • فارغ: سيتم طباعة سلسلة مفصولة بواصلة مع رمز الإدخال والقسم والفئة
  • {ENCODE}: سيتم ترجمة {ENCODE} إلى رمز الإدخال
  • {COUNTRY}: سيتم ترجمة {COUNTRY} إلى رمز الدولة
  • {DIVISION}: سيتم ترجمة {DIVISION} إلى رمز القسم
  • {CLASS}: سيتم ترجمة {CLASS} إلى رمز الفئة
  • {TOURNAMENT}: سيتم ترجمة {TOURNAMENT} إلى رمز المنافسة
  • '; +$lang['BarcodeSeparator']='فاصل الباركود'; $lang['BgImage']='صورة الخلفية'; +$lang['BibNumber']='الرقم التعريفى'; +$lang['BlackWhite']='حدود ذات لون واحد (استخدم: لون الخلفية)'; $lang['Bold']='سميك'; +$lang['Category']='فئة'; $lang['CharColor']='لون الخط'; +$lang['CharSize']='حجم الحرف
    (- عامل المسافة)'; $lang['CharType']='نوع الخط'; +$lang['CheckBarcodeSeparator']='التحقق من فواصل الباركود'; +$lang['Club']='تفاصيل البلد/النادي'; +$lang['Club2']='تفاصيل البلد/النادي الثاني'; +$lang['Club3']='تفاصيل البلد/النادي الثالث'; +$lang['ClubCamel']='اسم النادي'; +$lang['ClubCaps']='اسم النادي'; +$lang['ColoredArea']='كتلة النص'; +$lang['Coloured']='حدود المرحلة الملونة'; +$lang['CompDetails']='تفاصيل البطولة'; +$lang['CompName']='اسم البطولة'; +$lang['Content']='المحتوى'; $lang['CountryCodeAndLong']='رمز واسم الدولة'; $lang['CountryCodeOnly']='رمز الدولة فقط'; $lang['CountryFlagAndLong']='علم واسم الدولة'; +$lang['CountryFlagOnly']='فقط علم الدولة'; $lang['CountryLongName']='اسم الدولة فقط'; +$lang['Depot']='مستودع'; +$lang['E-Badge']='رقم الرياضي في جولة الإقصاء'; +$lang['EvCode']='كود البطولة'; +$lang['EvCode-EvDescr']='رمز الحدث والوصف'; +$lang['EvDescr']='وصف الحدث'; +$lang['EvDescrUpper']='وصف الحدث'; +$lang['Event']='الحدث'; +$lang['ExportPhotos']='تصدير الصور'; +$lang['ExtraAddOns']='نص الملحقات الإضافية'; +$lang['ExtraAddOnsImage']='صورة الملحقات الإضافية'; +$lang['FamCamel']='اسم العائلة'; +$lang['FamCamel-GAlone']='اسم العائلة'; +$lang['FamCamel-GivCamel']='اسم العائلة الاسم المعطى'; +$lang['FamCaps']='اسم العائلة'; +$lang['FamCaps-GAlone']='اسم العائلة G.'; +$lang['FamCaps-GivCamel']='اسم العائلة الاسم الأول'; +$lang['FamCaps-GivCamel-ClubCamel']='اسم العائلة الاسم الأول، اسم الدولة'; +$lang['FamCaps-GivCamel-ClubCaps']='اسم العائلة الاسم الأول، اسم البلد'; +$lang['FamCaps-GivCaps']='اسم العائلة الاسم المعطى'; +$lang['FamCaps-GivCaps-ClubCaps']='اسم العائلة الاسم الأول، اسم البلد'; +$lang['FinalRanking']='الترتيب النهائي'; +$lang['FinalRankLimit']='حد الترتيب النهائي'; +$lang['FinPosition']='الموقف النهائي'; +$lang['Flag']='علم الدولة/النادي'; +$lang['GAlone-FamCamel']='الاسم المعطى'; +$lang['GAlone-FamCaps']='G. اسم العائلة'; +$lang['GivCamel']='الاسم المعطى'; +$lang['GivCamel-FamCamel']='اسم العائلة المعطى'; +$lang['GivCamel-FamCamel-ClubCamel']='اسم العائلة المحدد، اسم البلد'; +$lang['GivCamel-FamCaps']='الاسم الأول اسم العائلة'; +$lang['GivCamel-FamCaps-ClubCamel']='الاسم الأول اسم العائلة، اسم البلد'; +$lang['GivCamel-FamCaps-ClubCaps']='الاسم الأول اسم العائلة، اسم البلد'; +$lang['GivCaps']='الاسم المعطى'; +$lang['GivCaps-FamCaps']='الاسم المعطى اسم العائلة'; +$lang['GivCaps-FamCaps-ClubCaps']='الاسم المعطى اسم العائلة واسم البلد'; $lang['GivenNameInitial']='الحرف الأول من الاسم'; +$lang['Heigh']='الارتفاع'; +$lang['HLayout']='افقى'; +$lang['HLine']='الخط الافقى'; +$lang['I-Badge']='رقم الرياضى فى المباريات الفردية'; +$lang['IdCardHor']='بعرض'; $lang['IdCardNumber']='عدد البادجات في الصفحة'; +$lang['IdCardOffsets']='الإزاحة: 0 إذا كانت هناك بطاقة هوية واحدة فقط في كل صفحة، والإزاحات بالملليمتر مفصولة بعلامة ";" إذا كانت هناك أكثر من بطاقة هوية واحدة'; +$lang['IdCardVer']='بإرتفاع'; $lang['IdLayout']='اتجاه البادج'; +$lang['IdMarginH']='هامش الارتفاع'; $lang['IdMarginL']='الهامش الأيسر'; $lang['IdMarginR']='الهامش الأيمن'; $lang['IdMarginT']='الهامش العلوي'; $lang['IdMarginW']='الهامش السفلي'; +$lang['Image']='صورة'; +$lang['Images']='صور'; +$lang['ImageSvg']='صورة بصيغة SVG'; $lang['IncludeLogo']='إدراج الشعار'; +$lang['IncludeSession']='تضمين الجلسة في النسخة المطبوعة'; $lang['Italic']='مائل'; $lang['Landscape']='أفقي'; +$lang['MultiLine']='خطوط متعددة'; +$lang['NameTag']='بطاقة الاسم'; +$lang['NewBadgeName']='اسم الشارة الجديد'; +$lang['NocCaps']='كود النادي'; +$lang['NocCaps-ClubCamel']='كود النادي اسم النادي'; +$lang['NocCaps-ClubCaps']='كود النادي اسم النادي'; +$lang['Offest2nd']='إزاحة رقم الرياضي الثاني (إذا لزم الأمر)'; +$lang['OneLine']='خط واحد'; +$lang['OnlyAthletes']='الرياضيين فقط'; +$lang['OpenPictureScreen']='فتح الشاشة الثانوية'; $lang['PageDimension']='أبعاد الصفحة'; +$lang['PaperDimention']='أبعاد الورق'; +$lang['PhaseFrom']='من المرحلة'; +$lang['PhaseTo']='إلى المرحلة'; +$lang['Picture']='صورة الرياضى'; $lang['Portrait']='رأسي'; +$lang['PosX']='(X) الوضع'; +$lang['PosY']='(Y) الوضع'; $lang['PrintBackNo']='طباعة أرقام اللاعبين'; +$lang['PrintHasPlastic']='حاملي بطاقات Lanyards فقط'; +$lang['PrintSpecificBadges']='الطباعة باستخدام الشارات المطابقة التلقائية'; +$lang['PrintSyncResult']='$a تم تعيين الأرقام الخلفية للطباعة!'; +$lang['Q-Badge']='رقم الرياضي فى الادوار التأهيلية'; +$lang['QrCodeFields']='
    • فارغ: سيتم طباعة سلسلة مفصولة بواصلة مع رمز الإدخال والقسم والفئة
    • {ENCODE}: سيتم ترجمة {ENCODE} إلى رمز الإدخال
    • {COUNTRY}: سيتم ترجمة {COUNTRY} إلى رمز الدولة
    • {DIVISION}: سيتم ترجمة {DIVISION} إلى رمز القسم
    • {CLASS}: سيتم ترجمة {CLASS} إلى رمز الفئة
    • {TOURNAMENT}: سيتم ترجمة {TOURNAMENT} إلى رمز المنافسة
    '; +$lang['QRScore']='نتيجة جولة التصفيات'; +$lang['QualPosition']='موضع جولة التأهيل'; +$lang['RandomImage']='صورة عشوائية'; +$lang['Ranking']='رتبة جولة التأهيل'; +$lang['RankLimit']='حد رتبة جولة التأهيل'; +$lang['ReadSeparator']='قراءة الفاصل'; $lang['ResetBackNo']='إعادة تصميم رقم اللاعب'; +$lang['ResetBarcodeSeparator']='إعادة تعيين فاصل الباركود'; +$lang['RnkCardinalEN']='منظر أساسي (1، 2، ...، 10)'; +$lang['RnkOrdinal']='عرض ترتيبي (الأول، الثاني، ...، العاشر) - EN'; +$lang['RnkRoman']='الأرقام الرومانية (I، II، ... IV، ... CM)'; +$lang['S-Badge']='ملصقات'; +$lang['Schedule']='البرنامج'; +$lang['Session']='جلسة التأهيل'; +$lang['SessionTarget']='رمز الجلسة والهدف'; +$lang['SetAccreditationMatches']='يمكن تصميم هذه الشارة خصيصًا للفئات التالية:'; +$lang['SkipPrinted']='تخطي أرقام الرياضيين المطبوعة'; +$lang['T-Badge']='مباريات الفريق رقم الرياضي'; +$lang['Target']='هدف'; +$lang['TeamComponents']='مكونات الفريق'; +$lang['TgtSequence']='تسلسل الهدف'; +$lang['ToBottom']='شعار المسابقة (أسفل)'; +$lang['ToLeft']='شعار المسابقة (يسار)'; +$lang['ToRight']='شعار المسابقة (يمين)'; +$lang['TVViewIdCard']='عرض بطاقات الهوية'; +$lang['TVViewIdCardDescr']='في المباريات، يتم سحب بطاقتي هوية من الخصوم بدلاً من الصفوف "القياسية"'; +$lang['VLayout']='رَأسِيّ'; $lang['Width']='العرض'; +$lang['WRank']='الترتيب الدولى'; +$lang['WRankFields']='لا تظهر بعد مركز WR (0: إظهار الكل)'; +$lang['WRankImage']='صورة التصنيف الدولى'; +$lang['Y-Badge']='دبلومة (فردى)'; +$lang['Z-Badge']='دبلومة (فريق)'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ar/Common.php b/src/Common/Languages/ar/Common.php index d3f7cdcf..a8060111 100644 --- a/src/Common/Languages/ar/Common.php +++ b/src/Common/Languages/ar/Common.php @@ -30,7 +30,9 @@ $lang['CM']='ناشئين'; $lang['CmdCancel']='إلغاء'; $lang['CmdNext']='التالي'; +$lang['CmdOff']='إيقاف'; $lang['CmdOk']='OK'; +$lang['CmdOn']='تشغيل'; $lang['CmdSave']='حفظ'; $lang['CmdSaveContinue']='حفظ واستمرار'; $lang['CmdUpdate']='تحديث'; @@ -66,6 +68,7 @@ $lang['MedalBronze']='الميدالية البرونزية'; $lang['MenuLM_Accreditation']='الاعتماد'; $lang['MenuLM_Close']='غلق'; +$lang['MenuLM_Data Import']='إستيراد البينات'; $lang['MenuLM_Final report']='التقرير النهائي'; $lang['MenuLM_HTT']='HTT'; $lang['MenuLM_Individual Finals']='نهائيات الفردي'; @@ -88,6 +91,9 @@ $lang['Month_7']='أغسطس'; $lang['Month_8']='سبتمبر'; $lang['Month_9']='أكتوبر'; +$lang['RevMainLang']='اللغة الرئيسية'; $lang['Target']='هدف'; $lang['Teams']='الفرق'; +$lang['Winner']='الفائز'; +$lang['Yes']='نعم'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ar/HTT.php b/src/Common/Languages/ar/HTT.php index ae84e83f..1c427c5e 100644 --- a/src/Common/Languages/ar/HTT.php +++ b/src/Common/Languages/ar/HTT.php @@ -3,6 +3,7 @@ $lang['BadFormat']='صيغة خاطئة'; $lang['CmdImport']='استيراد'; $lang['Country']='الدولة'; +$lang['DateTime']='التاريخ/الوقت'; $lang['Distance']='المسافة'; $lang['EndReport']='التقرير النهائي'; $lang['File']='ملف'; diff --git a/src/Common/Languages/ar/IOC_Codes.php b/src/Common/Languages/ar/IOC_Codes.php index 52f0c582..8370fcea 100644 --- a/src/Common/Languages/ar/IOC_Codes.php +++ b/src/Common/Languages/ar/IOC_Codes.php @@ -34,16 +34,12 @@ $lang['BUL']='بلغاريا'; $lang['BUR']='بوركينا فاسو'; $lang['CAF']='وسط أفريقيا'; -$lang['CAM']='كمبوديا'; $lang['CAN']='كندا'; $lang['CAY']='جزر كايماند'; $lang['CGO']='جمهورية الكونغو'; $lang['CHA']='تشاد'; $lang['CHI']='تشيلي'; -$lang['CHN']='الصين'; -$lang['CIV']='ساحل العاج'; $lang['CMR']='الكاميرون'; -$lang['COD']='جمهورية الكونغو الديمقراطية'; $lang['COK']='جزر كوك'; $lang['COL']='كولومبيا'; $lang['COM']='جزر القمر'; @@ -52,7 +48,6 @@ $lang['CRO']='كرواتيا'; $lang['CUB']='كوبا'; $lang['CYP']='قبرص'; -$lang['CZE']='جمهورية التشيك'; $lang['DEN']='الدنمارك'; $lang['DJI']='جيبوتي'; $lang['DMA']='دومينيكا'; @@ -82,17 +77,14 @@ $lang['GUM']='جوام'; $lang['GUY']='جيانا'; $lang['HAI']='هايتي'; -$lang['HKG']='هونج كونج'; $lang['HON']='هندوراس'; $lang['HUN']='المجر'; $lang['INA']='اندونيسيا'; $lang['IND']='الهند'; -$lang['IRI']='إيران'; $lang['IRL']='أيرلندا'; $lang['IRQ']='العراق'; $lang['ISL']='آيسلاندا'; $lang['ISR']='إسرائيل'; -$lang['ISV']='جزر فيرجين الأمريكية'; $lang['ITA']='إيطاليا'; $lang['IVB']='جزر فيرجين الإنجليزية'; $lang['JAM']='جامايكا'; @@ -104,9 +96,9 @@ $lang['KIR']='كيريباتي'; $lang['KSA']='المملكة السعودية'; $lang['KUW']='الكويت'; -$lang['LAO']='لاوس'; $lang['LAT']='لاتفيا'; $lang['LBA']='ليبيا'; +$lang['LBN']='لبنان'; $lang['LBR']='ليبيرتا'; $lang['LCA']='سانت لوسيا'; $lang['LES']='ليسوتو'; @@ -118,7 +110,6 @@ $lang['MAR']='المغرب'; $lang['MAS']='ماليزيا'; $lang['MAW']='ملاوي'; -$lang['MDA']='مولدوفا'; $lang['MDV']='جزر الملديف'; $lang['MEX']='المكسيك'; $lang['MGL']='منغوليا'; @@ -151,7 +142,6 @@ $lang['PNG']='بابوا غينيا الجديدة'; $lang['POL']='بولندا'; $lang['POR']='البرتغال'; -$lang['PRK']='كوريا الشمالية'; $lang['PUR']='بورتريكو'; $lang['QAT']='قطر'; $lang['ROU']='رومانيا'; @@ -175,13 +165,11 @@ $lang['SUR']='سورينام'; $lang['SVK']='سلوفاكيا'; $lang['SWE']='السويد'; -$lang['SYR']='سوريا'; $lang['TAN']='تانزانيا'; $lang['TGA']='تونجا'; $lang['THA']='تايلاند'; $lang['TJK']='طاجيكستان'; $lang['TKM']='تركمنستان'; -$lang['TLS']='تيمور الشرقية'; $lang['TOG']='توجو'; $lang['TPE']='تايبي الصينية'; $lang['TRI']='ترينداد وتوباجو'; diff --git a/src/Common/Languages/ar/ISK.php b/src/Common/Languages/ar/ISK.php new file mode 100644 index 00000000..ae8cfa53 --- /dev/null +++ b/src/Common/Languages/ar/ISK.php @@ -0,0 +1,6 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ar/Ianseo.php b/src/Common/Languages/ar/Ianseo.php index c7a240af..afb4cde6 100644 --- a/src/Common/Languages/ar/Ianseo.php +++ b/src/Common/Languages/ar/Ianseo.php @@ -7,4 +7,5 @@ $lang['Cert-Level4']='كورس الخبير'; $lang['Cert-Level5']='فريق عمل Ianseo'; $lang['CertificateManagement']='إدارة الشهادة'; +$lang['GenerateFile']='إنشاء ملف'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ar/InfoSystem.php b/src/Common/Languages/ar/InfoSystem.php index 3329097e..3446608e 100644 --- a/src/Common/Languages/ar/InfoSystem.php +++ b/src/Common/Languages/ar/InfoSystem.php @@ -1,9 +1,11 @@ Refer tota l\'operació preliminar abans d\'inserir noves dades!'; $lang['MsgNeedInitGrids']='Error!
    Quadres d\'enfrontaments no inicialitzats!'; $lang['MsgNeedShootOff']='Error!
    En primer lloc heu de gestionar els empats!'; @@ -498,6 +512,7 @@ $lang['Score1Page1Match']='Puntuacions d\'arquers en un encontre'; $lang['ScoreDrawing']='Sols esquema puntuació (full únic)'; $lang['ScoreFilled']='Impressió del full de puntuació omplert amb tots els valors individuals de les fletxes'; +$lang['ScoreIncAllNames']='Inclou tots els possibles Oponents'; $lang['ScoreIncEmpty']='Imprimir encontres malgrat no hagi oponent'; $lang['Scorer']='Anotador'; $lang['SearchOrphanTexts']='Cercar Textos Orfes'; @@ -506,9 +521,12 @@ $lang['SelectAll']='Selecciona Tot'; $lang['SelTour']='Competició Seleccionada'; $lang['Session']='Torn'; +$lang['SetWinShot']='Tir Guanyador Set'; +$lang['SetWinShotHelp']='[Nombre tirs amb èxit del guanyador del set] - [Nombre tirs fallits del guanyador del set] %=Percentatge d\'èxit quan una fletxa és un potencial de guanyar el set'; $lang['SF']='Sènior Dones'; $lang['ShootOff4Elim']='Consulta empats abans de les eliminatòries'; $lang['ShootOff4Final']='Consulta empats abans de la fase final'; +$lang['ShootOff4Rank']='Comproveu desempat abans Impressió Rànquing'; $lang['SM']='Sènior Homes'; $lang['SnapshotConf']='Configuració resum'; $lang['SortBy']='Ordenat per'; diff --git a/src/Common/Languages/ca/Errors.php b/src/Common/Languages/ca/Errors.php index f6462259..d7d74717 100644 --- a/src/Common/Languages/ca/Errors.php +++ b/src/Common/Languages/ca/Errors.php @@ -2,11 +2,14 @@ $lang['AllFieldsMandatory']='Tots els camps són obligatoris'; $lang['AllMailsRedirect']='Tots els missatges s\'enviaran a'; $lang['Anomalies']='Anomalies'; +$lang['BackupTournaments']='Si us plau, recordeu desar totes les vostres competicions abans d\'actualitzar o reinstal·lar ianseo!'; $lang['BarCodeSession']='Hi ha un error a la configuració: proveu de configurar una sessió!'; $lang['BarCodeSettings']='Hi ha un error a la configuració'; +$lang['CategoresNotDefined']='Falten definicions Categories'; $lang['ClassFromToError']='De i A han de ser valors numèrics'; $lang['ClubNotFound']='Codi Club no trobat als clubs existents. Si us plau, actualitzeu la base de dades primer!'; $lang['ConflictingCategories']='La definició del filtre se solapa amb els filtres anteriors per a aquestes categories: $a!'; +$lang['DecodeError']='Error Descodificació'; $lang['DiameterMandatory']='El diàmetre de la diana és obligatori!'; $lang['DirectoryNotWriteable']='El directori $a no es pot escriure pel servidor web. Si us plau canvia els permisos per a ser modificable per qualsevol persona.'; $lang['DistanceOutRange']='La distància està fora de rang!'; @@ -15,6 +18,9 @@ $lang['EmptyFrom']='Correu electrònic buit o introduït incorrectament: aquest camp és obligatori!'; $lang['EmptySubject']='Assumpte buit: aquest camp és obligatori!'; $lang['EmptyTitle']='Títol buit: aquest camp és obligatori!'; +$lang['EndsArrowsMisMatch']='$a amb configuració incorrecta tandes/fletxes'; +$lang['EntriesNoCategory']='Inscripcions sense Categoria'; +$lang['EntriesNoCountry']='Inscripcions sense Associació'; $lang['ErrCodeExists']='Codi ja existent!'; $lang['ErrCommitteeError']='Codi o descripció comitè no vàlid'; $lang['ErrConnection']='No hi ha connexió amb el servidor $a'; @@ -32,6 +38,7 @@ $lang['ErrRedCard']='El comitè té targeta vermella i no pot demanar competicions que s\'allotgen a ianseo. Contacteu per a més explicacions a codes@ianseo.net .'; $lang['ErrUnknownNation']='Nació desconeguda'; $lang['ErrYellowCard']='El comitè té targeta groga perquè no han pujat resultats de competició. Contacteu per a més explicacions a codes@ianseo.net .'; +$lang['EventIncompleteSetting']='$a amb configuració categories permeses que falten'; $lang['FilterAlreadyExists']='Aquest filtre ja existeix'; $lang['FilterNotEmpty']='Cal definir un filtre.'; $lang['IllegalTarget']='La diana seleccionada no es troba a la base de dades'; @@ -39,7 +46,9 @@ $lang['ImageFetchError']='Error en obtenir Imatge'; $lang['ImageSaveError']='Imatge no desada'; $lang['IncompleteSettings']='Configuracions Incompletes'; +$lang['InvalidCharacters']='El camp conté caràcters no vàlids. Els caràcters vàlids són $a'; $lang['InvalidEmail']='Correu electrònic no vàlid: comproveu el correu electrònic abans de desar-lo'; +$lang['InvalidLogin']='Inici Sessió no vàlid'; $lang['LockedProcedure']='Aquest procediment està BLOQUEJAT'; $lang['MailingAlreadyExists']='Ja existeix un correu electrònic amb el mateix títol ({$a}), canvieu el títol o seleccioneu el correu electrònic que voleu modificar al selector.'; $lang['MailingDeleteText']='Confirmeu que voleu suprimir definitivament aquest correu electrònic!'; @@ -51,21 +60,34 @@ $lang['MissingAccreditation']='Falta acreditació en línia!'; $lang['MissingData']='Dades que falten'; $lang['MissingPhpIntlModule']='Es pot fer la transcripció instal·lant o activant el mòdul php-intl'; +$lang['MysqlInnoDbProcess']='Ianseo actualitzarà la base de dades per millorar-ne el rendiment. Això pot trigar algun temps.'; +$lang['MysqlUpdateNeeded']='Esteu utilitzant un Servidor Mysql molt antic. Actualitzeu el vostre servidor, XAMP, WAMP o LAMP a una versió més recent o torneu a instal·lar Ianseo des de zero.'; $lang['NameNotEmpty']='El nom no pot estar buit!'; +$lang['NoCountryInsert']='Sense Inserció País'; +$lang['NoData']='No s\'han proporcionat Dades'; +$lang['NoDistancesSet']='Categories sense configuració de distància'; $lang['NoDNSRecord']='El nom del servidor no és correcte o no està en línia: tingueu en compte que heu d\'estar connectat a Internet per configurar aquesta opció.'; +$lang['NoEntryInsert']='Inscripció No Introduïda'; $lang['NoMailingTemplate']='No hi ha cap plantilla de correu electrònic seleccionada/disponible!'; $lang['NoMailRecipients']='Ningú a qui enviar el correu! Reviseu les opcions de filtre.'; $lang['NoPrivilege']='Privilegis insuficients: no teniu autorització per operar en aquesta pàgina!'; $lang['NoSameOrders']='El valor del nou ordre no es pot duplicar.'; $lang['NoSmtpServerSet']='Si us plau, configureu el servidor SMTP abans d\'enviar correus electrònics!'; +$lang['NoTargetSet']='Categories sense configuració de diana'; +$lang['PhpOutdated']='La vostra versió de PHP està obsoleta. Ianseo pot funcionar, però algunes funcionalitats necessitaran com a mínim la versió {$a}.
    Actualitzeu la instal·lació tan aviat com sigui possible per admetre PHP {$a} o més recent.'; $lang['RegExp']='Per utilitzar RegExp (expressions regulars), consulteu $a'; +$lang['ResetSyncData']='Restableix Dades Sincronització'; +$lang['ServiceNotAvailable']='Servei No Disponible'; $lang['SetupNotFinished']='No podeu accedir a aquesta pàgina: primer ompliu {$a}!'; $lang['SpecialFilterDiscrepancy']='S\'ha establert un filtre especial però no està actiu!'; $lang['SqlJolly']='En una instrucció SQL, el percentatge "%" actua com un comodí (representa zero, un o més caràcters), mentre que el guió baix "_" representa un i només un caràcter. Per exemple, "R%M" coincidirà amb tots Recorbats Homes: "RCM" així com "RMM", "RM", etc, però no amb "RMC". Mentre que "R_M" coincidirà amb "RSM", "RJM", etc., però no amb "RM".'; +$lang['SyncNotAvailable']='Sincronització no disponible'; $lang['TargetNumberMismatch']='El Nombre de Diana només pot tenir la forma [TargetNumber][TargetLetter], per exemple: 129C'; $lang['TargetRangeMismatch']='Els Intervals de Dianes han de ser de 2 nombres de diana (sense lletres) separats per un guió (signe menys), el primer nombre inferior al segon, per exemple: 23-44'; $lang['TextSmtpDelete']='Confirmeu que voleu desestablir la configuració SMTP en aquesta instal·lació d\'Ianseo'; $lang['TooManyArrows']='Massa fletxes totals: el màxim és $a'; +$lang['TooManyDistancesMatch']='Categories amb configuració de distàncies múltiples'; $lang['TooManyElimQualified']='Les rondes del tipus $a[0] només poden acceptar fins a $a[1] arquers'; +$lang['WrongData']='Dades proporcionades incorrectament'; $lang['WrongPort']='Aquest port no és compatible!'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ca/Help.php b/src/Common/Languages/ca/Help.php index 46ce4b86..16c64dd4 100644 --- a/src/Common/Languages/ca/Help.php +++ b/src/Common/Languages/ca/Help.php @@ -1,4 +1,5 @@ Commodin permés: "%"'; $lang['AutoCheckinAlreadyDone']='Ja us heu registrat
    Si necessiteu canviar qualsevol informació, aneu al taulell d\'acreditació'; $lang['AutoCheckinConfirm']='Si totes les dades són correctes, premeu CONFIRMAR CHECK-IN
    En cas contrari, premeu CANCEL·LAR i aneu a la TAULA d\'acreditació'; $lang['AutoCheckinSearch']='Escaneja el codi QR que has rebut o escriviu el vostre nom'; @@ -12,6 +13,11 @@ $lang['ChangeComponents']='

    Per continuar amb un canvi de component, primer traieu l\'atleta que ja no forma part de l\'equip perquè es puguin activar les opcions de substitució.

    ▶  Puntuacions incloses en el total de l\'equip a la ronda classificatòria
    ▷  Puntuació no inclosa en el total de l\'equip a la ronda classifictòria'; $lang['CombiCompList']='Llista de Codis de Competició, separats per comes'; $lang['FlightsManagement']='A les categories flight
    • Seleccioneu en quines Tandes - Total Distàncies - Total Complert calculeu els flights;
    • Seleccioneu la mida inicial de tall de flight per categoria. El sistema precarrega la taula flight estàndard de la NFAA quan la competència ho permet;
    • La vista prèvia d\'Agrupació de Flights calcularà TOTES LES CATEGORIES, premeu el botó de recarrega lateral de la mida del tall de flight per forçar el càlcul d\'una sola categoria;
    • Flights marcats en taronja són només un indicador de la diferència entre el flight previsualitzat i la taula de regles. NO afecta la divisió flight.
    • Utilitzeu les ordres deixar anar - dividir - fusionar per ajustar la informació dels flights. Tingueu en compte que, després d\'executar una vista prèvia completa o una actualització de categoria, es perden tots els canvis del flight.
    Notes
    • S\'exclouen categories amb massa pocs participants flights. Flighting es pot forçar indicant la quantitat de tall flight;
    • Si una categoria es considera que està flight, utilitzeu "-1" com a tall per excloure explícitament del flighting
    • Professional i/o Campionats com a exclòs del fligting i atenuat
    '; +$lang['FontFamily']='Nom del tipus de lletra a utilitzar al CSS'; +$lang['FontFile']='Ubicació del fitxer al disc'; +$lang['FontName']='Nom real del tipus de lletra'; +$lang['FontStyle']='Estil del tipus de lletra en CSS'; +$lang['FontWeight']='Pes del tipus de lletra en CSS'; $lang['GetBarcodeSeparator']='Després d\'imprimir el full referència de codis de barres, llegiu el «SEPARATOR» de codi de barres per tal d\'activar els elements lectors correctes.'; $lang['HomePage']='Aquesta és la pàgina on es pot seleccionar o crear un torneig.'; $lang['ISK-LockedSessionHelp']='{$a}La icona indica si l\'APP pot introduir puntuacions a la sessió o no'; @@ -26,5 +32,7 @@ $lang['TV-RotEdit']='
    Una pàgina de presentació està feta d\'almenys d\'una pàgina de contingut.
    Les pàgines de contingut seran mostrades una rere l\'altre i començant de nou.
    NOTA: en els motors de versió regular i bàsic, el primer contingut es mostra de nou com últim, el que és aconsellable per a inserir-la com a primer contingut d\'una imatge (logo de la competició, per exemple).
    El text pot ser ja sigui basat en la competició (distribució participants, classificatòria, encontres) o "multimèdia" (imatges, missatges, HTML, ...). '; $lang['TV-RotEdit-DB']='

    Gestió CSS3 (motor avançat)

    Unitats de longitud

    • rem:alçada del caràcter
    • < b>em:alçada del caràcter actual
    • ex:alçada de la minúscula "x"
    • ch:ample del nombre "0"
    • vh: 1/100 de l\'alçada de la pantalla
    • vw:1/100 de l\'amplada de la pantalla
    • vmin: 1/100 del valor mínim entre l\'alçada i l\'amplada de la pantalla
    • vmax: 1/100 del valor màxim entre l\'alçada i l\'amplada de la pantalla

    Mòduls flexibles

  • flex A B C:
    • A: si 0 vol dir que el mòdul no pot expandir-se; si>1 significa que el mòdul pot expandir-se en aquesta "velocitat" en comparació amb altres mòduls (si el mòdul 1 té 2 i el mòdul 2 té 3, el mòdul 2 s\'expandirà 1,5 més que mòdul 1 que al seu torn expandirà el doble tant com un mòdul amb aquest valor s\'establert en 1)
    • B: si és 0 el mòdul no pot encongir; si mòdul 1 pot encongir
    • C: dimensió inicial del mòdul

    referència CSS

    https://developer.mozilla.org/en-US/docs/Web/CSS/Reference'; $lang['TV-RotList']='
    Aquesta és la llista de les pàgines de presentació disponibles per enviar a videowall, monitors o emissió.
    es proporcionen 3 motors diferents, feu clic a l\'enllaç per activar:
    • un motor regular compatible amb la majoria de navegadors
    • un motor versió lleugera compatible amb la majoria de navegadors, però que fa servir menys recursos
    • una versió avançada que utilitza navegadors moderns capacitats d\'HTML5
    Per crear un nou contingut, introdueixi un nom per a ell i premi el botó.
    '; +$lang['UserName']='Han de ser únics en el sistema. Extensió mínima: 6 caràcters'; +$lang['UserPassword']='Deixa en blanc per mantenir la contrasenya actual'; $lang['ZeroBased']='Número base zero'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ca/IOC_Codes.php b/src/Common/Languages/ca/IOC_Codes.php index 620c69ff..8d8dbd66 100644 --- a/src/Common/Languages/ca/IOC_Codes.php +++ b/src/Common/Languages/ca/IOC_Codes.php @@ -12,8 +12,8 @@ $lang['ASA']='Samoa Americana'; $lang['AUS']='Austràlia'; $lang['AUT']='Àustria'; -$lang['Award-Anthem']='Senyores i Senyors: Si us plau, posin drets per l\'himne nacional de'; -$lang['Award-Anthem-TPE']='Senyores i senyors, si us plau posar-se dempeus per a l\'himne de'; +$lang['Award-Anthem']='Senyores i senyors, per a aquells que puguin, si us plau, posin drets per l\'Himne Nacional de'; +$lang['Award-Anthem-TPE']='Senyores i senyors, per a aquells que puguin, si us plau, posin drets per l\'Himne de'; $lang['Award-Applause']='Senyores i senyors, si us plau donin un calorós aplaudiment al(s) nostre(s) atleta (s)'; $lang['Award-Intro']='Senyores i Senyors, cerimònia de premis de {$a}'; $lang['Award-MedalGiver']='Les medalles seran entregades per $a'; @@ -59,8 +59,9 @@ $lang['CRC']='Costa Rica'; $lang['CRO']='Croàcia'; $lang['CUB']='Cuba'; +$lang['CUW']='Curaçao'; $lang['CYP']='Xipre'; -$lang['CZE']='República Txeca'; +$lang['CZE']='Txèquia'; $lang['DEN']='Dinamarca'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominica'; @@ -74,7 +75,10 @@ $lang['ETH']='Etiòpia'; $lang['FIJ']='Fiji'; $lang['FIN']='Finlàndia'; +$lang['FLK']='Illes Falkland (Malvines)'; +$lang['FPO']='Tahití'; $lang['FRA']='França'; +$lang['FRO']='Fèroe'; $lang['FSM']='Micronèsia'; $lang['GAB']='Gabon'; $lang['GAM']='Gàmbia'; @@ -84,6 +88,7 @@ $lang['GEQ']='Guinea Equatorial'; $lang['GER']='Alemanya'; $lang['GHA']='Ghana'; +$lang['GLP']='Guadalupe'; $lang['GRE']='Grècia'; $lang['GRN']='Grenada'; $lang['GUA']='Guatemala'; @@ -91,7 +96,7 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haití'; -$lang['HKG']='Hong Kong'; +$lang['HKG']='Hong Kong, Xina'; $lang['HON']='Hondures'; $lang['HUN']='Hongria'; $lang['INA']='Indonèsia'; @@ -101,7 +106,7 @@ $lang['IRQ']='Iraq'; $lang['ISL']='Islàndia'; $lang['ISR']='Israel'; -$lang['ISV']='Illes Verges Americanes'; +$lang['ISV']='Illes Verges dels Estats Units'; $lang['ITA']='Itàlia'; $lang['IVB']='Illes Verges Britàniques'; $lang['JAM']='Jamaica'; @@ -112,11 +117,13 @@ $lang['KGZ']='Kirguizistan'; $lang['KIR']='Kiribati'; $lang['KOR']='República de Corea'; +$lang['KOS']='Kosovo'; $lang['KSA']='Aràbia Saudita'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; +$lang['LAO']='Lao'; $lang['LAT']='Letònia'; $lang['LBA']='Líbia'; +$lang['LBN']='Líban'; $lang['LBR']='Libèria'; $lang['LCA']='Saint Lucia'; $lang['LES']='Lesotho'; @@ -124,6 +131,7 @@ $lang['LIE']='Liechtenstein'; $lang['LTU']='Lituània'; $lang['LUX']='Luxemburg'; +$lang['MAC']='Macao, Xina'; $lang['MAD']='Madagascar'; $lang['MAR']='Marroc'; $lang['MAS']='Malàisia'; @@ -145,13 +153,18 @@ $lang['MOZ']='Moçambic'; $lang['MRI']='Maurici'; $lang['MTN']='Mauritània'; +$lang['MTQ']='Martinica'; $lang['MYA']='Myanmar'; $lang['NAM']='Namíbia'; $lang['NCA']='Nicaragua'; +$lang['NCL']='Nova Caledònia'; $lang['NED']='Països Baixos'; $lang['NEP']='Nepal'; +$lang['NFK']='Illa Norfolk'; $lang['NGR']='Nigèria'; $lang['NIG']='Níger'; +$lang['NIU']='Niue'; +$lang['NMI']='Illes Marianes del Nord'; $lang['NOR']='Noruega'; $lang['NRU']='Nauru'; $lang['NZL']='Nova Zelanda'; @@ -199,10 +212,11 @@ $lang['THA']='Tailàndia'; $lang['TJK']='Tadjikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Timor Oriental'; +$lang['TLS']='Timor-Leste'; $lang['TOG']='Togo'; $lang['TPE']='Xina Taipei'; $lang['TRI']='Trinitat i Tobago'; +$lang['TTO']='Trinidad i Tobago'; $lang['TUN']='Tunísia'; $lang['TUR']='Turquia'; $lang['TUV']='Tuvalu'; diff --git a/src/Common/Languages/ca/Install.php b/src/Common/Languages/ca/Install.php index 5df99b1c..1b915218 100644 --- a/src/Common/Languages/ca/Install.php +++ b/src/Common/Languages/ca/Install.php @@ -35,6 +35,7 @@ $lang['Email']='Correu electrònic'; $lang['Email not in DB']='El correu electrònic no està a la nostra base de dades'; $lang['EventWillBeReset']='ADVERTÈNCIA: un canvi en el "$a[0]", "$a[1]" o "$a[2]", es restabliran tots els paràmetres als seus valors predeterminats del tipus de torneig seleccionat.'; +$lang['ExportAllComps']='Exporta totes les competicions'; $lang['Failed']='HA FALLAT!'; $lang['Failing install']='Si us plau actualitzi la seva instal·lació de PHP abans d\'obrir de nou el programa IANSEO.'; $lang['Field24Normal']='Camp 24 Dianes'; @@ -87,7 +88,7 @@ $lang['Parameter']='Paràmetre'; $lang['Password']='Contrasenya'; $lang['PHP settings']='Configuracions PHP'; -$lang['PHP too old']='La seva instal·lació de PHP és massa antiga. El número de versió mínima per a IANSEO és 5.0'; +$lang['PHP too old']='La seva instal·lació de PHP és massa antiga. El número de versió mínima per a IANSEO és 8.0'; $lang['PHP version']='Versió PHP'; $lang['php.ini file']='Arxiu php.ini'; $lang['Prepare']='Preparació de les dades per a l\'actualització.'; @@ -251,7 +252,7 @@ $lang['Value']='Valor (matrius indexades clau1::valor1|clau2::valor2)'; $lang['WhatIanseoDoes01']='Reglaments de la World Archery Ianseo està sempre actualitzat amb les normes de la World Archery. Els programadors estan disponibles per adaptar-se als reglaments particulars o formats específics de competicions tambè!'; $lang['WhatIanseoDoes02']='b> Ajuda i suport: si necessita ajudes, envieu un correu electrònic a $a: rebrà una resposta directament dels programadors principals de Ianseo!'; -$lang['WhatIanseoDoes03']='Cursos i formació in situ: Ianseo està disponible per a la impartició de cursos. Dos nivells: sense i amb els dispositius electrònics. El primer està destinat a conèixer tots els aspectes de Ianseo en gestió i programació de la competició fins la publicació en línia i distribució dels resultats. La segona, dirigida a l\'adquisició de tots els coneixements específics per executar un concurs "fletxa a fletxa".'; +$lang['WhatIanseoDoes03']='Formació i cursos in situ: Ianseo està disponible per gestionar cursos específics a la ubicació. Dos nivells: sense i amb l\'aplicació Ianseo Scorekeeper NG. El primer té com a objectiu conèixer tots els aspectes del Ianseo, des de la preparació i programació de competicions fins a la publicació en línia i la distribució local dels resultats. El segon té com a objectiu l\'adquisició de tots els coneixements específics per dur a terme una competició "fletxa a fletxa".'; $lang['WhatIanseoDoes04']=' Donar! Ianseo és lliure i de codi obert ... si t\'agrada, si us plau, ajudeu-nos a mantenir el programari i el servidor al dia: premeu el botó "Donar" a la pàgina inicial de $a!'; $lang['WhatIanseoDoes05']=' Social Media: Ianseo també {$a}!'; $lang['WhatIanseoDoesTitle']='Què pot fer Ianseo de la seva competició'; diff --git a/src/Common/Languages/ca/ODF.php b/src/Common/Languages/ca/ODF.php index c28d4dab..bf7cfb3c 100644 --- a/src/Common/Languages/ca/ODF.php +++ b/src/Common/Languages/ca/ODF.php @@ -53,8 +53,10 @@ $lang['OdfCommonCodeVersion']='Versió de Codi Comú'; $lang['OdfCompetition']='Codi competició ODF'; $lang['OdfEventCode']='Codi Esdeveniments ODF'; +$lang['OdfGeneralCodeVersion']='Versió Diccionari Dades Generals'; $lang['OdfReceiverOn']='Receptor actiu'; $lang['OdfReceiverSetup']='Configuració Receptor ODF'; +$lang['OdfSportCodeVersion']='Versió Diccionari Dades Esportives'; $lang['OdfUploadFileText']='Seleccioneu un fitxer XML per penjar ...'; $lang['Production']='Producció'; $lang['Receiver']='Receptor'; @@ -87,6 +89,7 @@ $lang['TMMeeting']='Reunió Capitans Equip'; $lang['Transmitter']='Emissor'; $lang['TypCODE']='Codi document sufix'; +$lang['TypDISCIPLINE']='Disciplina (ref Sports CC@Discipline)'; $lang['TypEVENT']='Descripció esdeveniment'; $lang['TypNAME']='Descripció'; $lang['TypPHASE']='Descripció fase'; diff --git a/src/Common/Languages/ca/Tournament.php b/src/Common/Languages/ca/Tournament.php index 9e422173..1869d394 100644 --- a/src/Common/Languages/ca/Tournament.php +++ b/src/Common/Languages/ca/Tournament.php @@ -27,7 +27,7 @@ $lang['AclISKServer']='Gestió ISK'; $lang['AclModules']='Mòduls'; $lang['ACLNoAccess']='Sense accès'; -$lang['AclNotes']='Notes sobre Seguretat de la Xarxa
    • les restriccions estan "basades en competència" i no en "basades en servidors"
    • localhost (127.0.0.1 o ::1) no es pot restringir
    • Les Polítiques es poden desactivar trucant des del propi servidor{$a}
    • Quan les polítiques estan habilitades, el comportament predeterminat per als clients que no figuren a la llista és "Sense accés"
    • És possible afegir * com a darrer grup de l\'adreça IP (192.168.0.* o 172.16.*) per afegir un grup predeterminat, limitat a polítiques de només lectura
    • < li>IP en el rang 0.0.0.[1-254] no es consideraran IP reals i el sistema utilitzarà el contingut de la descripció com a RegExp per coincidir amb l\'adreça IP. RegExps avaluaran en l\'ordre en què es mostren i permeten polítiques R/W
    '; +$lang['AclNotes']='Notes sobre Seguretat de la Xarxa
    • Aquestes restriccions estan "basades en competència" i no en "basades en servidors"
    • localhost (127.0.0.1 o ::1) no es pot restringir
    • Les Polítiques es poden desactivar trucant des del propi servidor{$a}
    • Quan les polítiques estan habilitades, el comportament predeterminat per als clients que no figuren a la llista és "Sense accés"
    • És possible afegir * com a darrer grup de l\'adreça IP (192.168.0.* o 172.16.*) per afegir un grup predeterminat
    • És possible utilitzar RegExp per fer coincidir l\'adreça IP. Les expressions regulars s\'avaluaran en l\'ordre en què es mostren i permeten polítiques R/W
    '; $lang['AclOdf']='Gestió ODF'; $lang['AclOutput']='Outputs/Producció'; $lang['AclParticipants']='Participants'; @@ -52,6 +52,7 @@ $lang['AllDistances']='Tots'; $lang['AllEntries']='Totes les Inscripcions'; $lang['AllEvents']='Tots els Esdeveniments'; +$lang['AllowCompetitionACL']='Permetre Polítiques Accés a la Xarxa Competició'; $lang['AllRound']='Totes les Rondes'; $lang['AllSessions']='Tots els torns'; $lang['AllsF']='Totes'; @@ -98,6 +99,7 @@ $lang['AuthCodeA2A']='Codi d\'autorització de Fletxa a Fletxa'; $lang['AutoCoinToss']='Assignacions automàtiques amb llançament de moneda'; $lang['AutoEdits']='Auto Edició'; +$lang['AutomatorAccPrint']='Paràmetres Impressió Acreditació'; $lang['AutoMoveNext']='Mou Automàticament a la Fletxa Següent'; $lang['AutoRefresh']='Actualització automàtica'; $lang['AutoTargetAssignment']='Assignació Automàtica de Dianes - Sorteig'; @@ -128,7 +130,7 @@ $lang['BadgeIncludePhoto']='Incloure fotografies en l\'acreditació?'; $lang['BadgeNames']='Nom complet (no es va imprimir per primera vegada)'; $lang['BadgeNoData']='No hi ha dades per imprimir'; -$lang['BadgeOnlyNotPrinted']='NOMÉS acreditacions que no s\'han imprès?'; +$lang['BadgeOnlyNotPrinted']='Només NO Imprès'; $lang['BadgeOnlyPrintAccredited']='NOMÉS acreditacions dels participants acreditats?'; $lang['BadgeOnlyPrintPhoto']='NOMÉS acreditacions amb foto?'; $lang['BadgeOptions']='Opcions'; @@ -158,6 +160,9 @@ $lang['Block_IP']='Accés IP (v4)'; $lang['Block_Manage']='Polítiques d\'accés a la xarxa'; $lang['Block_Nick']='Accés sobrenom'; +$lang['Block_TemplateIP']='Plantilles IP'; +$lang['Block_TemplateName']='Descripció'; +$lang['Block_TemplatePattern']='Patró'; $lang['BoldIsDefault']='En negreta es valor predeterminat'; $lang['Bonus']='Bonus'; $lang['ByeMovedToPhase']='Atleta traslladat a la següent Fase'; @@ -192,7 +197,7 @@ $lang['CatJury']='Jurat d\'Apel·lació'; $lang['CatOC']='Comitè Organitzador'; $lang['ChairmanJudge']='President dels Jutges'; -$lang['ChairmanJudgeDeputy']='Adjunt del President dels Jutges'; +$lang['ChairmanJudgeDeputy']='Adjunt President dels Jutges'; $lang['ChairmanJury']='President del Jurat d\'Apel·lació'; $lang['ChangeLookUpTable']='Canvi taula de cerca'; $lang['ChangeNationsNames']='Canviar noms d\'Assoc./Clubs'; @@ -205,6 +210,7 @@ $lang['CheckXNinesInMatch']='Comprova XNous en Empats'; $lang['Classes']='Classes'; $lang['ClearField']='Buidar Camp Competició'; +$lang['ClickMovesPosition']='Actualitza Només Posicions de la Fletxa'; $lang['ClickToMailRequest']='Feu clic per obrir un correu electrònic precarregat'; $lang['ClickToRequestCode']='Feu clic per sol·licitar codi'; $lang['Clone']='Clona'; @@ -273,6 +279,7 @@ $lang['CtrlCodeShort']='Crtl. Codi'; $lang['Currency']='€'; $lang['CurrentCompCode']='Codi Competició Actual: $a'; +$lang['CustomAclDetails']='Detalls Personalitzats ACL'; $lang['D1AllInOne']='Tots els Encontres en una sola Competició'; $lang['DailySchedule']='Programa diari'; $lang['DATABASE NOT REACHABLE']='BASE DE DADES EN LINIA NO ACCESSIBLE'; @@ -287,6 +294,8 @@ $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='Defecte VI'; $lang['Delayed']='Posposat (-1 per restablir)'; +$lang['DeleteAclRule']='Suprimeix regla ACL'; +$lang['DeleteAclUser']='Suprimeix usuari ACL'; $lang['DeleteAwarded']='Suprimeix Premiat'; $lang['DeleteChannel']='Elimina el canal. Això eliminarà totes les particions del canal i del canal mateix.'; $lang['DeletePreviousArchers']='Elimineu inscripcions que no apareixen a la llista'; @@ -353,7 +362,7 @@ $lang['EmailScorecardShort']='Resum Puntuacions'; $lang['EmailsToSend']='Correu electrònic per enviar'; $lang['EmailSuccessfull']='El correu electrònic s\'ha enviat correctament a $a'; -$lang['EnableAccess']='Habilitar/ Desactivar política'; +$lang['EnableAccess']='Activa/Desactiva Polítiques Accés'; $lang['EnableAddOns']='Activa/Desactiva Complements'; $lang['Ends']='Tandes'; $lang['EndsOffset']='Desplaçament de la Tanda'; @@ -462,6 +471,13 @@ $lang['FlightsTotals']='Totals'; $lang['FlightsUpdateSetup']='Actualització de la situació'; $lang['FollowHHT']='Mostra programa de HTT habilitat'; +$lang['FontFamily']='Família Tipus de Lletra CSS'; +$lang['FontFile']='Fitxer Tipus de Lletra'; +$lang['FontName']='Nom Tipus de Lletra'; +$lang['FontSample']='Mostra Tipus de Lletra'; +$lang['FontStyle']='Estil Tipus de Lletra CSS'; +$lang['FontWarning']='Només admet Tipus de Lletra TTF'; +$lang['FontWeight']='Pes Tipus de Lletra CSS'; $lang['FOP-ODS']='Camp de competició (ODS)'; $lang['ForceAccreditation']='Forçar acreditació'; $lang['ForceOldPhotos']='Inclou imatges antigues'; @@ -565,6 +581,7 @@ $lang['LocRuleDefaultNo']='Per defecte'; $lang['LocRuleModifiedNo']='Modificat'; $lang['LocRuleValidNo']='No modificat'; +$lang['Login']='Inici de Sessió'; $lang['LogisticResp']='Responsable Logística Transport'; $lang['LogMessage']='Missatge de registre'; $lang['LogoB']='Imatge inferior (la proporció d\'amplada completa és 19:1 per a A4, 20:1 per a letter)'; @@ -577,6 +594,7 @@ $lang['LUE-CAN']='Canadà'; $lang['LUE-FITA']='World Archery'; $lang['LUE-FRA']='França'; +$lang['LUE-GBR']='Archery GB'; $lang['LUE-ITA']='Itàlia'; $lang['LUE-ITA_e']='Itàlia (novells)'; $lang['LUE-ITA_i']='Itàlia (indoor)'; @@ -618,6 +636,7 @@ $lang['ManageByes']='Gestiona Byes'; $lang['ManAthStatus']='Gestió estat dels arquers'; $lang['ManColors']='Gestionar Colors'; +$lang['MandatoryLoginACL']='Força sol·licitud Inici Sessió per a una Adreça IP no registrada'; $lang['ManDistances']='Gestionar Distàncies'; $lang['ManDivClass']='Gestionar Divisions/Classes'; $lang['ManMatchArr4Phase']='Gestionar Fase de fletxes per set'; @@ -686,6 +705,7 @@ $lang['Name']='Nom'; $lang['NameOrder']='Ordre Nom'; $lang['NameOrderHint']='Aquests països canvien Noms i Cognoms: CHN - TPE - HKG - KOR - PRK'; +$lang['Nameplates']='Plaques identificatives'; $lang['NationShort']='Nom curt'; $lang['Natl-Nation']='Nació'; $lang['New']='Nou'; @@ -764,10 +784,14 @@ $lang['OrisScorecards']='Fulls Puntuacions (C73D)'; $lang['OrisScorecardsAverage']='Puntuació mitjana de fletxa'; $lang['OrisScorecardsTeam']='Fulls Puntuacions (C73E)'; +$lang['OrisStatsIndividual']='Estadístiques (C85A)'; +$lang['OrisStatsTeam']='Estadístiques (C85B+C)'; $lang['OrisTeamList']='Llista Equip O.R.I.S.'; +$lang['OtherCountriesCoachingToo']='Inclou Inscripcions d\'altres països a la selecció d\'Entrenadors'; $lang['OtherTourCategory']='Altre'; $lang['OutdoorTourCategory']='Torneig d\'Aire Lliure'; $lang['OverwritePreviousArchers']='Sobreescriure Arquers Anteriors'; +$lang['OvrBioAchievements']='Assoliments dels Atletes'; $lang['OvrMatchesMessages']='OVR Senyals Enfrontaments'; $lang['OvrRefresh']='Actualitzar la pàgina (no enviar)'; $lang['OvrSendSerial']='Enviar a OVR (Serial)'; @@ -853,6 +877,8 @@ $lang['PrintNames']='Impressió noms'; $lang['PrintNormal']='Normal (caràcters llatins)'; $lang['PrintScore']='Imprimir puntuacions'; +$lang['PrintScoreInd']='Imprimeix Fulls Puntuació Individuals'; +$lang['PrintScoreTeam']='Imprimeix Fulls Puntuació Equips'; $lang['PrintText']='Text de la capçalera'; $lang['PrintTextTitle']='Començar per impressió de resultats'; $lang['Privacy-1']='Ianseo no conté dades personals, tret que l\'usuari doni permís. El programari Ianseo pot utilitzar-se per conservar dades personals si el controlador té un interès legítim en aquestes dades.'; @@ -1172,7 +1198,7 @@ $lang['TeamCreationMode_2']='Sempre 2n equip'; $lang['TeamCreationMode_3']='Sempre 3r equip'; $lang['TeamFin']='Equips - Ronda Elim. i Final'; -$lang['TeamFinEvent']='Final d\'equips'; +$lang['TeamFinEvent']='Esdeveniments Equip'; $lang['TeamLoaded']='Encontres Equip Carregats per l\'horari {$a}'; $lang['TeamManagerSignature']='Signatura capità equip'; $lang['TeamPlace']='Marcadors de Posició d\'Equips'; @@ -1297,6 +1323,7 @@ $lang['TVCss3RankNone']='Cap rànquing'; $lang['TVCss3RankOld']='Rànquing edat'; $lang['TVCss3RankUp']='Rànquing dalt'; +$lang['TVCss3Schedule']='Horari'; $lang['TVCss3Score']='Puntuació'; $lang['TVCss3Session']='Sessió'; $lang['TVCss3SpecificSettings']='Aquesta pàgina especifica configuracions. Utilitzeu la sintaxi CSS3 per a l\'element'; @@ -1392,6 +1419,7 @@ $lang['TVViewNationNameDescr']='Activa o desactiva la visualització de l\'Assoc./Club de l\'arquer'; $lang['TVViewPartials']='Veure Puntuacions de les Distàncies'; $lang['TVViewPartialsDescr']='Activa o desactiva la visualització de les puntuacions de totes les distàncies'; +$lang['TvViewSCHED']='Mostra Horari'; $lang['TvViewTEAM']='Veure Columna Equip'; $lang['TvViewTIT2ROWS']='Títol en 2 files'; $lang['TvViewTOT']='Veure Gran Total'; @@ -1464,7 +1492,9 @@ $lang['UserDetails']='Detalls Usuari'; $lang['UserEnabled']='Capacitat'; $lang['UserName']='Nom d\'usuari'; -$lang['UserPassword']='Contrasenya'; +$lang['UserPassword']='Nova Contrasenya'; +$lang['UserPasswordOld']='Antiga Contrasenya'; +$lang['UserPasswordRetype']='Torna a escriure Nova Contrasenya'; $lang['UseSubClasses']='Aplicar a subclasses específiques'; $lang['ValidClass']='Classes Admeses'; $lang['ValidDivisions']='Div. Permeses (buit per a tots)'; diff --git a/src/Common/Languages/credits.php b/src/Common/Languages/credits.php index 2b07e6ba..5759c182 100644 --- a/src/Common/Languages/credits.php +++ b/src/Common/Languages/credits.php @@ -1 +1 @@ -EnglishIanseo Teamالعربية - ArabicOsama El Gemezy - Ismail ELALAOUI - Khaled Sofiane Lamandéбългарски език - Bulgarian  - Atamas TemelkovCatalà - CatalanDavid CatalanČesky - CzechLubos DuchekDeutsch - GermanRamon Keller - Andreas LorenzDansk - DanishKasper Hovgaard - Jakob Ruud Poulsen - Karsten WeikopEesti - EstonianTanel Kaasik - Siret Luik - Rait Ots - Kristi  RilloΕλληνικά - GreekNick Bouras - Ioannou Ioannou - Nick RaptisEnglish - EnglishKen SentellCanadian English - Canadian EnglishJarrod BallEspañol - SpanishDajana Piccolo - Pedro Sanz LaboaEspañol Argentino - ArgentinianPablo Navarroانگليسي - FarsiShahrzad Allahyari - Hasan MalekpourSuomi - FinnishKimmo Hujanen - Jaakko Setälä - Asko LötjönenFrançais - FrenchDominique Delvigne - Xavier Veray - Alexandre Garot - Lisa Gentile - Franck Lucas - Pierre-Adrien Nicolas - Laurent TerrierFrançais Canadien - Canadian FrenchJarrod Ball - Gabriela Cosovan - Denis Rousseauעברית - HebrewAdi RavidHrvatski - CroatianIgor SabljakMagyar - HungarianLaszlo ValicsekBahasa Indonesia - IndonesianMahmud Rosidíslenska - IcelandicGuðmundur GuðjónssonItaliano - ItalianPaolo Della Rossa - Andrea GabardiRomanesco - IT-RomanescoGiggi Cartoni日本語 - JapaneseYuko Okura - Junji Ozawa한국어 - KoreanIn sun SongLatviešu - LatvianKrišjānis LiepaМонгол хэл - MongolianGantumur ZOLJARGALMalay - MalaysianNorazman Ab Aziz - Muhammad Zul Izzi Ab Manaff - Mukhriz Mohamed - Faiz Mokhtar LopiNederlands - DutchJose Bruntink - Gerrit Buitenhuis -  Norsk - NorwegianRoar Jystad - Jon-Arne StorelvPolski - PolishTomasz Chalupka - Maciej Laba - Krzysztof MarkiewiczPortugues - PortuguesePaulo SantosPortuguês Brasileiro - Portuguese (Brazil)Alex VecchioRomână - RomanianAurelian Florin BacinschiPусский - RussianVladimir Matheev - Ivan Moroz - Rebecca Rabozzi - Natalia SalukvadzeSlovenský - SlovakianVlado BuzekSlovenščina - SlovenianLuka Gjurin - Irena RosaSrpski - SerbianNikola ProdanovićSvenska - SwedishCenneth Åhlund - Eskil Rönér - Ken Sentellคนไทย - ThaiPokpong Pattaweekongka - Chadin Wankumlue - Pheradet Pratumsuwan - KlingonAlessandra PandolfiTürkçe - TurkishGoktug Ergin - Burak Kahyaoglu - Oguzhan Ulucan - Recep YilmazУкраїнська - UkrainianYevhen Rudenchyk简体中文 - Chinese (simplified)Sonny 宋宁繁體中文 - Chinese (traditional)Ting-Ni Chen \ No newline at end of file +EnglishIanseo Teamالعربية - ArabicOsama El Gemezy - Ismail ELALAOUI - Khaled Sofiane Lamandéбългарски език - Bulgarian  - Atamas TemelkovCatalà - CatalanDavid CatalanČesky - CzechLubos DuchekDeutsch - GermanRamon Keller - Andreas LorenzDansk - DanishKasper Hovgaard - Jakob Ruud Poulsen - Karsten WeikopEesti - EstonianTanel Kaasik - Siret Luik - Rait Ots - Kristi  RilloΕλληνικά - GreekNick Bouras - Ioannou Ioannou - Nick RaptisEnglish - EnglishKen SentellCanadian English - Canadian EnglishJarrod BallEspañol - SpanishDajana Piccolo - Pedro Sanz LaboaEspañol Argentino - ArgentinianPablo Navarroانگليسي - FarsiShahrzad Allahyari - Hasan MalekpourSuomi - FinnishKimmo Hujanen - Jaakko Setälä - Asko LötjönenFrançais - FrenchDominique Delvigne - Xavier Veray - Alexandre Garot - Lisa Gentile - Franck Lucas - Pierre-Adrien Nicolas - Laurent TerrierFrançais Canadien - Canadian FrenchJarrod Ball - Gabriela Cosovan - Denis Rousseauעברית - HebrewAdi RavidHrvatski - CroatianMartin Oborovecki - Igor SabljakMagyar - HungarianLaszlo ValicsekBahasa Indonesia - IndonesianMahmud Rosidíslenska - IcelandicGuðmundur GuðjónssonItaliano - ItalianPaolo Della Rossa - Andrea GabardiRomanesco - IT-RomanescoGiggi Cartoni日本語 - JapaneseNomura Haru - Yuko Okura - Junji Ozawa한국어 - KoreanIn sun SongLatviešu - LatvianKrišjānis LiepaМонгол хэл - MongolianGantumur ZOLJARGALMalay - MalaysianNorazman Ab Aziz - Muhammad Zul Izzi Ab Manaff - Mukhriz Mohamed - Faiz Mokhtar LopiNederlands - DutchJose Bruntink - Gerrit Buitenhuis -   - Paul Van VeenNorsk - NorwegianRoar Jystad - Bjørn-Cato Knutsen - Jon-Arne StorelvPolski - PolishTomasz Chalupka - Maciej Laba - Krzysztof MarkiewiczPortugues - PortuguesePaulo SantosPortuguês Brasileiro - Portuguese (Brazil)Alex VecchioRomână - RomanianAurelian Florin BacinschiPусский - RussianVladimir Matheev - Ivan Moroz - Rebecca Rabozzi - Natalia SalukvadzeSlovenský - SlovakianVlado BuzekSlovenščina - SlovenianLuka Gjurin - Irena RosaSrpski - SerbianNikola ProdanovićSvenska - SwedishCenneth Åhlund - Eskil Rönér - Ken Sentellคนไทย - ThaiPokpong Pattaweekongka - Chadin Wankumlue - Pheradet Pratumsuwan - KlingonAlessandra PandolfiTürkçe - TurkishGoktug Ergin - Burak Kahyaoglu - Oguzhan Ulucan - Recep YilmazУкраїнська - UkrainianYevhen Rudenchyk繁體中文 - Chinese (traditional)Ting-Ni Chen \ No newline at end of file diff --git a/src/Common/Languages/credits.php.old b/src/Common/Languages/credits.php.old index 2b07e6ba..5759c182 100644 --- a/src/Common/Languages/credits.php.old +++ b/src/Common/Languages/credits.php.old @@ -1 +1 @@ -EnglishIanseo Teamالعربية - ArabicOsama El Gemezy - Ismail ELALAOUI - Khaled Sofiane Lamandéбългарски език - Bulgarian  - Atamas TemelkovCatalà - CatalanDavid CatalanČesky - CzechLubos DuchekDeutsch - GermanRamon Keller - Andreas LorenzDansk - DanishKasper Hovgaard - Jakob Ruud Poulsen - Karsten WeikopEesti - EstonianTanel Kaasik - Siret Luik - Rait Ots - Kristi  RilloΕλληνικά - GreekNick Bouras - Ioannou Ioannou - Nick RaptisEnglish - EnglishKen SentellCanadian English - Canadian EnglishJarrod BallEspañol - SpanishDajana Piccolo - Pedro Sanz LaboaEspañol Argentino - ArgentinianPablo Navarroانگليسي - FarsiShahrzad Allahyari - Hasan MalekpourSuomi - FinnishKimmo Hujanen - Jaakko Setälä - Asko LötjönenFrançais - FrenchDominique Delvigne - Xavier Veray - Alexandre Garot - Lisa Gentile - Franck Lucas - Pierre-Adrien Nicolas - Laurent TerrierFrançais Canadien - Canadian FrenchJarrod Ball - Gabriela Cosovan - Denis Rousseauעברית - HebrewAdi RavidHrvatski - CroatianIgor SabljakMagyar - HungarianLaszlo ValicsekBahasa Indonesia - IndonesianMahmud Rosidíslenska - IcelandicGuðmundur GuðjónssonItaliano - ItalianPaolo Della Rossa - Andrea GabardiRomanesco - IT-RomanescoGiggi Cartoni日本語 - JapaneseYuko Okura - Junji Ozawa한국어 - KoreanIn sun SongLatviešu - LatvianKrišjānis LiepaМонгол хэл - MongolianGantumur ZOLJARGALMalay - MalaysianNorazman Ab Aziz - Muhammad Zul Izzi Ab Manaff - Mukhriz Mohamed - Faiz Mokhtar LopiNederlands - DutchJose Bruntink - Gerrit Buitenhuis -  Norsk - NorwegianRoar Jystad - Jon-Arne StorelvPolski - PolishTomasz Chalupka - Maciej Laba - Krzysztof MarkiewiczPortugues - PortuguesePaulo SantosPortuguês Brasileiro - Portuguese (Brazil)Alex VecchioRomână - RomanianAurelian Florin BacinschiPусский - RussianVladimir Matheev - Ivan Moroz - Rebecca Rabozzi - Natalia SalukvadzeSlovenský - SlovakianVlado BuzekSlovenščina - SlovenianLuka Gjurin - Irena RosaSrpski - SerbianNikola ProdanovićSvenska - SwedishCenneth Åhlund - Eskil Rönér - Ken Sentellคนไทย - ThaiPokpong Pattaweekongka - Chadin Wankumlue - Pheradet Pratumsuwan - KlingonAlessandra PandolfiTürkçe - TurkishGoktug Ergin - Burak Kahyaoglu - Oguzhan Ulucan - Recep YilmazУкраїнська - UkrainianYevhen Rudenchyk简体中文 - Chinese (simplified)Sonny 宋宁繁體中文 - Chinese (traditional)Ting-Ni Chen \ No newline at end of file +EnglishIanseo Teamالعربية - ArabicOsama El Gemezy - Ismail ELALAOUI - Khaled Sofiane Lamandéбългарски език - Bulgarian  - Atamas TemelkovCatalà - CatalanDavid CatalanČesky - CzechLubos DuchekDeutsch - GermanRamon Keller - Andreas LorenzDansk - DanishKasper Hovgaard - Jakob Ruud Poulsen - Karsten WeikopEesti - EstonianTanel Kaasik - Siret Luik - Rait Ots - Kristi  RilloΕλληνικά - GreekNick Bouras - Ioannou Ioannou - Nick RaptisEnglish - EnglishKen SentellCanadian English - Canadian EnglishJarrod BallEspañol - SpanishDajana Piccolo - Pedro Sanz LaboaEspañol Argentino - ArgentinianPablo Navarroانگليسي - FarsiShahrzad Allahyari - Hasan MalekpourSuomi - FinnishKimmo Hujanen - Jaakko Setälä - Asko LötjönenFrançais - FrenchDominique Delvigne - Xavier Veray - Alexandre Garot - Lisa Gentile - Franck Lucas - Pierre-Adrien Nicolas - Laurent TerrierFrançais Canadien - Canadian FrenchJarrod Ball - Gabriela Cosovan - Denis Rousseauעברית - HebrewAdi RavidHrvatski - CroatianMartin Oborovecki - Igor SabljakMagyar - HungarianLaszlo ValicsekBahasa Indonesia - IndonesianMahmud Rosidíslenska - IcelandicGuðmundur GuðjónssonItaliano - ItalianPaolo Della Rossa - Andrea GabardiRomanesco - IT-RomanescoGiggi Cartoni日本語 - JapaneseNomura Haru - Yuko Okura - Junji Ozawa한국어 - KoreanIn sun SongLatviešu - LatvianKrišjānis LiepaМонгол хэл - MongolianGantumur ZOLJARGALMalay - MalaysianNorazman Ab Aziz - Muhammad Zul Izzi Ab Manaff - Mukhriz Mohamed - Faiz Mokhtar LopiNederlands - DutchJose Bruntink - Gerrit Buitenhuis -   - Paul Van VeenNorsk - NorwegianRoar Jystad - Bjørn-Cato Knutsen - Jon-Arne StorelvPolski - PolishTomasz Chalupka - Maciej Laba - Krzysztof MarkiewiczPortugues - PortuguesePaulo SantosPortuguês Brasileiro - Portuguese (Brazil)Alex VecchioRomână - RomanianAurelian Florin BacinschiPусский - RussianVladimir Matheev - Ivan Moroz - Rebecca Rabozzi - Natalia SalukvadzeSlovenský - SlovakianVlado BuzekSlovenščina - SlovenianLuka Gjurin - Irena RosaSrpski - SerbianNikola ProdanovićSvenska - SwedishCenneth Åhlund - Eskil Rönér - Ken Sentellคนไทย - ThaiPokpong Pattaweekongka - Chadin Wankumlue - Pheradet Pratumsuwan - KlingonAlessandra PandolfiTürkçe - TurkishGoktug Ergin - Burak Kahyaoglu - Oguzhan Ulucan - Recep YilmazУкраїнська - UkrainianYevhen Rudenchyk繁體中文 - Chinese (traditional)Ting-Ni Chen \ No newline at end of file diff --git a/src/Common/Languages/cs/IOC_Codes.php b/src/Common/Languages/cs/IOC_Codes.php index 13b8ca69..2280d699 100644 --- a/src/Common/Languages/cs/IOC_Codes.php +++ b/src/Common/Languages/cs/IOC_Codes.php @@ -32,16 +32,12 @@ $lang['BUL']='Bulharsko'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Centrální africká republika'; -$lang['CAM']='Kambodža'; $lang['CAN']='Kanada'; $lang['CAY']='Kajmanské ostrovy'; $lang['CGO']='Republika Kongo'; $lang['CHA']='Čad'; $lang['CHI']='Chile'; -$lang['CHN']='Čína'; -$lang['CIV']='Pobřeží slonoviny'; $lang['CMR']='Kamerun'; -$lang['COD']='Demokratická republika Kongo'; $lang['COK']='Cookovy ostrovy'; $lang['COL']='Kolumbie'; $lang['COM']='Komory'; @@ -50,7 +46,6 @@ $lang['CRO']='Chorvatsko'; $lang['CUB']='Kuba'; $lang['CYP']='Kypr'; -$lang['CZE']='Česká republika'; $lang['DEN']='Dánsko'; $lang['DJI']='Džibutsko'; $lang['DMA']='Dominika'; @@ -80,17 +75,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Maďarsko'; $lang['INA']='Indonésie'; $lang['IND']='Indie'; -$lang['IRI']='Írán'; $lang['IRL']='Irsko'; $lang['IRQ']='Írák'; $lang['ISL']='Island'; $lang['ISR']='Israel'; -$lang['ISV']='Americké Panenské ostrovy'; $lang['ITA']='Itálie'; $lang['IVB']='Britské panenské ostrovy'; $lang['JAM']='Jamajka'; @@ -102,7 +94,6 @@ $lang['KIR']='Kiribati'; $lang['KSA']='Saudská Arábie'; $lang['KUW']='Kuvajt'; -$lang['LAO']='Laos'; $lang['LAT']='Lotyšsko'; $lang['LBA']='Líbye'; $lang['LBR']='Libérie'; @@ -116,7 +107,6 @@ $lang['MAR']='Maroko'; $lang['MAS']='Malajsie'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldavsko'; $lang['MDV']='Maledivy'; $lang['MEX']='Mexiko'; $lang['MGL']='Mongolsko'; @@ -149,7 +139,6 @@ $lang['PNG']='Papua-Nová Guinea'; $lang['POL']='Polsko'; $lang['POR']='Portugalsko'; -$lang['PRK']='Severní Korea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Katar'; $lang['ROU']='Rumunsko'; @@ -173,13 +162,11 @@ $lang['SUR']='Surinam'; $lang['SVK']='Slovensko'; $lang['SWE']='Švédsko'; -$lang['SYR']='Sýrie'; $lang['TAN']='Tanzanie'; $lang['TGA']='Tonga'; $lang['THA']='Thajsko'; $lang['TJK']='Tádžikistán'; $lang['TKM']='Turkmenistán'; -$lang['TLS']='Východní Timor'; $lang['TOG']='Togo'; $lang['TPE']='Tchaj-wan'; $lang['TRI']='Trinidad a Tobago'; diff --git a/src/Common/Languages/cs/Install.php b/src/Common/Languages/cs/Install.php index 6ea9124c..be3fa7be 100644 --- a/src/Common/Languages/cs/Install.php +++ b/src/Common/Languages/cs/Install.php @@ -48,7 +48,6 @@ $lang['Parameter']='Parametr'; $lang['Password']='Heslo'; $lang['PHP settings']='PHP nastavení'; -$lang['PHP too old']='Vaše PHP instalace je příliš stará. Minimální verze pro IANSEO je 5.0'; $lang['PHP version']='PHP verze'; $lang['php.ini file']='php.ini soubor'; $lang['Prepare']='Příprava dat pro aktualizaci'; diff --git a/src/Common/Languages/cs/Tournament.php b/src/Common/Languages/cs/Tournament.php index 5c82bc21..0d75ed2f 100644 --- a/src/Common/Languages/cs/Tournament.php +++ b/src/Common/Languages/cs/Tournament.php @@ -59,7 +59,6 @@ $lang['BadgeIncludePhoto']='Vložit foto do vizitky?'; $lang['BadgeNames']='Celé jméno (netištěno první)'; $lang['BadgeNoData']='Žádná data k tisku'; -$lang['BadgeOnlyNotPrinted']='POUZE vizitky ještě nevytištěné?'; $lang['BadgeOnlyPrintAccredited']='POUZE vizitky akreditovaných účastníků?'; $lang['BadgeOnlyPrintPhoto']='POUZE vizitky s fotem?'; $lang['BadgeOptions']='Možnosti'; @@ -100,8 +99,6 @@ $lang['CatJudge']='Rozhodčí'; $lang['CatJury']='Odvolací komise'; $lang['CatOC']='Organizační výbor'; -$lang['ChairmanJudge']='Hlavní rozhodčí'; -$lang['ChairmanJury']='Předseda odvolací komise'; $lang['ChangeNationsNames']='Změna názvu oddílu'; $lang['CheckRefMail']='Kontrola referenčního E-mailu ...'; $lang['CheckScorecards']='Kontrola bodovaček'; @@ -556,7 +553,6 @@ $lang['TeamCreationMode_2']='Vždy 2.tým'; $lang['TeamCreationMode_3']='Vždy 3.tým'; $lang['TeamFin']='Družstva - Eliminace a finálové kolo'; -$lang['TeamFinEvent']='Finále družstev'; $lang['TeamPlace']='Cedule pro týmy'; $lang['TeamPlaceLocal']='Cedule pro týmy (lokalizované)'; $lang['TeamQual']='Družstva - Kval.kolo'; diff --git a/src/Common/Languages/de/IOC_Codes.php b/src/Common/Languages/de/IOC_Codes.php index 7438ccd9..4eb5a906 100644 --- a/src/Common/Languages/de/IOC_Codes.php +++ b/src/Common/Languages/de/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='Amerikanisch Samoa'; $lang['AUS']='Australien'; $lang['AUT']='Österreich'; -$lang['Award-Anthem']='Sehr geehrte Damen und Herren, bitte erheben Sie sich für die Nationalhymne von'; -$lang['Award-Anthem-TPE']='Sehr geehrte Damen und Herren, bitte erheben Sie sich für die Hymne von'; $lang['Award-Applause']='Sehr geehrte Damen und Herren, bitte geben Sie unseren Athleten einen herzlichen Applaus'; $lang['Award-Intro']='Sehr geehrte Damen und Herren es folgt die Siegerehrung für {$a}'; $lang['Award-MedalGiver']='Medaillen werden übergeben von $a'; @@ -42,16 +40,12 @@ $lang['BUL']='Bulgarien'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Zentralafrikanische Republik'; -$lang['CAM']='Kambodscha'; $lang['CAN']='Kanada'; $lang['CAY']='Cayman-Inseln'; $lang['CGO']='Republik Kongo'; $lang['CHA']='Tschad'; $lang['CHI']='Chile'; -$lang['CHN']='Volksrepublik China'; -$lang['CIV']='Elfenbeinküste'; $lang['CMR']='Kamerun'; -$lang['COD']='Demokratische Republik Kongo'; $lang['COK']='Cook-Inseln'; $lang['COL']='Kolumbien'; $lang['COM']='Komoren'; @@ -60,7 +54,6 @@ $lang['CRO']='Kroatien'; $lang['CUB']='Kuba'; $lang['CYP']='Zypern'; -$lang['CZE']='Tschechische Republik'; $lang['DEN']='Dänemark'; $lang['DJI']='Dschibuti'; $lang['DMA']='Dominica'; @@ -91,17 +84,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Ungarn'; $lang['INA']='Indonesien'; $lang['IND']='Indien'; -$lang['IRI']='Iran'; $lang['IRL']='Irland'; $lang['IRQ']='Irak'; $lang['ISL']='Island'; $lang['ISR']='Israel'; -$lang['ISV']='Britische Jungferninseln'; $lang['ITA']='Italien'; $lang['IVB']='Britische Jungferninseln'; $lang['JAM']='Jamaika'; @@ -114,7 +104,6 @@ $lang['KOR']='Südkorea'; $lang['KSA']='Saudi Arabien'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; $lang['LAT']='Lettland'; $lang['LBA']='Libyen'; $lang['LBR']='Liberia'; @@ -128,7 +117,6 @@ $lang['MAR']='Marokko'; $lang['MAS']='Malaysien'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldawien'; $lang['MDV']='Malediven'; $lang['Medal-1']='Gold Medaille'; $lang['Medal-2']='Silber Medaille'; @@ -137,7 +125,6 @@ $lang['MEX']='Mexiko'; $lang['MGL']='Mongolei'; $lang['MHL']='Marshall Inseln'; -$lang['MKD']='Mazedonien'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -166,7 +153,6 @@ $lang['PNG']='Papua Neu Guinea'; $lang['POL']='Polen'; $lang['POR']='Portugal'; -$lang['PRK']='Nord Korea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Katar'; $lang['ROU']='Rumänien'; @@ -193,13 +179,11 @@ $lang['SVK']='Slowakei'; $lang['SWE']='Schweden'; $lang['SWZ']='Swaziland'; -$lang['SYR']='Syrien'; $lang['TAN']='Tansania'; $lang['TGA']='Tonga'; $lang['THA']='Thailand'; $lang['TJK']='Tajikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Ost Timor'; $lang['TOG']='Togo'; $lang['TPE']='China Taipei'; $lang['TRI']='Trinidad und Tobago'; diff --git a/src/Common/Languages/de/Install.php b/src/Common/Languages/de/Install.php index c3cc3e4c..026e76d1 100644 --- a/src/Common/Languages/de/Install.php +++ b/src/Common/Languages/de/Install.php @@ -50,7 +50,7 @@ $lang['Parameter']='Parameter'; $lang['Password']='Passwort'; $lang['PHP settings']='PHP Einstellung'; -$lang['PHP too old']='Ihre PHP Installation ist zu alt. Die minimal erforderliche Version für IANSEO ist 5.0.'; +$lang['PHP too old']='Ihre PHP Installation ist zu alt. Die minimal erforderliche Version für IANSEO ist 8.0.'; $lang['PHP version']='PHP Version'; $lang['php.ini file']='php.ini Datei'; $lang['Prepare']='Daten für Update vorbereiten'; diff --git a/src/Common/Languages/de/Tournament.php b/src/Common/Languages/de/Tournament.php index ae080fb4..17d0ca3f 100644 --- a/src/Common/Languages/de/Tournament.php +++ b/src/Common/Languages/de/Tournament.php @@ -75,7 +75,6 @@ $lang['BadgeIncludePhoto']='Einfügen des Fotos im Badge?'; $lang['BadgeNames']='Voller Name (nicht zuerst gedruckt)'; $lang['BadgeNoData']='Keine Daten zu drucken'; -$lang['BadgeOnlyNotPrinted']='NUR Badges, die nicht bereits gedruckt wurden?'; $lang['BadgeOnlyPrintAccredited']='NUR Badges von akkreditierten Teilnehmern?'; $lang['BadgeOnlyPrintPhoto']='NUR Badges mit Foto?'; $lang['BadgeOptions']='Optionen'; @@ -121,8 +120,6 @@ $lang['CatJudge']='Kampfrichter'; $lang['CatJury']='Berufungsrichter'; $lang['CatOC']='Organisationskomitee'; -$lang['ChairmanJudge']='Oberster Kampfrichter'; -$lang['ChairmanJury']='Vorsitzender Berufungsrichter'; $lang['ChangeNationsNames']='Ändern der Namen der Nationen'; $lang['CheckRefMail']='Verizifiere Bezugs E-Mail...'; $lang['CheckScorecards']='Scorekarten prüfen'; @@ -644,7 +641,6 @@ $lang['TeamCreationMode_2']='Immer 2. Team'; $lang['TeamCreationMode_3']='Immer 3. Team'; $lang['TeamFin']='Mannschaftswertung - Finale'; -$lang['TeamFinEvent']='Finale Mannschaft'; $lang['TeamQual']='Mannschaftswertung - Qualifikation'; $lang['TecDelegate']='Technischer Delegierter'; $lang['Text']='Text'; diff --git a/src/Common/Languages/dk/Api.php b/src/Common/Languages/dk/Api.php index 8875fe63..b0b76cd5 100644 --- a/src/Common/Languages/dk/Api.php +++ b/src/Common/Languages/dk/Api.php @@ -50,6 +50,7 @@ $lang['ISK-ConnectionStatus']='Forbindelses status'; $lang['ISK-DeleteDevices']='Slet enheder'; $lang['ISK-DenyAccess']='Adgang nægtet'; +$lang['ISK-Deprecated']='Vigtigt: "Ianseo Score Keeper" app\'en udfases fra Android og Apple og bliver ikke længere understøttet. Den vil blive fjernet fra Ianseo i september 2024. Brug venligst den nye "Ianseo Score Keepter NG" app istedet'; $lang['ISK-DeviceAlive']='Online'; $lang['ISK-DeviceBattery']='Batteri'; $lang['ISK-DeviceEnabled']='Aktiveret'; @@ -79,6 +80,7 @@ $lang['ISK-Lite-NoCompCode']='Manglende konkurrence kode'; $lang['ISK-Lite-QRCode']='Udskriv QR Code til Ianseo ScoreKeeper Lite'; $lang['ISK-Lite-ServerUrl']='Server URL'; +$lang['ISK-Live-Deprecated']='Vigtigt: "Ianseo Score Keeper" app\'en er ikke længere understøttet. Den vil blive fjernet fra Ianseo i september 2024. Brug venligst den nye "Ianseo Score Keepter NG" app istedet'; $lang['ISK-Live-Name']='Ianseo ScoreKeeper LIVE'; $lang['ISK-lockPortrait']='Lås enhed i portræt opsætning'; $lang['ISK-Name']='Ianseo ScoreKeeper'; diff --git a/src/Common/Languages/dk/BackNumbers.php b/src/Common/Languages/dk/BackNumbers.php index 71554167..1e137693 100644 --- a/src/Common/Languages/dk/BackNumbers.php +++ b/src/Common/Languages/dk/BackNumbers.php @@ -112,6 +112,7 @@ $lang['GivCaps-FamCaps-ClubCaps']='FORNAVN EFTERNAVN KLUBNAVN'; $lang['GivenNameInitial']='Første Bogstav I Fornavn'; $lang['Heigh']='Højde'; +$lang['HLayout']='Horisontalt'; $lang['HLine']='Horisontal linie'; $lang['I-Badge']='Registreringsnumre, individuelle finaler'; $lang['IdCardHor']='Antal kort i bredden'; @@ -143,6 +144,8 @@ $lang['OpenPictureScreen']='Åben sekundær skærm'; $lang['PageDimension']='Side størrelse'; $lang['PaperDimention']='Papir størrelse'; +$lang['PhaseFrom']='Fra fase'; +$lang['PhaseTo']='Til fase'; $lang['Picture']='Skytte billede'; $lang['Portrait']='Portræt'; $lang['PosX']='Position (X)'; @@ -177,6 +180,7 @@ $lang['ToRight']='Stævne logo (højre)'; $lang['TVViewIdCard']='Vis ID Kort'; $lang['TVViewIdCardDescr']='I match visning, vises ID kort for to modstandere i stedet for "standard" rækkerne'; +$lang['VLayout']='Vertikalt'; $lang['Width']='Bredde'; $lang['WRank']='World Ranking'; $lang['WRankFields']='Vis ikke efter WR position (0: Vis alle)'; diff --git a/src/Common/Languages/dk/Boinx.php b/src/Common/Languages/dk/Boinx.php index 9e557f9f..a757c3fa 100644 --- a/src/Common/Languages/dk/Boinx.php +++ b/src/Common/Languages/dk/Boinx.php @@ -22,6 +22,9 @@ $lang['CssFlexSum']='Nuværende runde blok - fælles'; $lang['CssFlexTotal']='Total score blok - fælles'; $lang['CssImage']='Overlay Image'; +$lang['CssImage1']='Css for Image 1'; +$lang['CssImage2']='Css for Image 2'; +$lang['CssImage3']='Css for Image 3'; $lang['CssImageDiv']='Div box for overlay image'; $lang['CssLeftFlexArrows']='Pile detaljeblok - venstre'; $lang['CssLeftFlexName']='Navn og flag blok - venstre'; @@ -49,6 +52,7 @@ $lang['CssPresentationEvent']='Præsentation stævne - Fælles'; $lang['CssPresentationNames']='Præsentation navne - Fælles'; $lang['CssRankCommon']='Placering celle'; +$lang['CssReminder']='Husk at gemme dine ændringer'; $lang['CssRightFlexArrows']='Pile detaljeblok - højre'; $lang['CssRightFlexName']='Navn og flag blok - højre'; $lang['CssRightFlexSum']='Nuværende runde blok - højre'; @@ -73,6 +77,10 @@ $lang['CssSoSetTitle']='Overskrift - sæt titel'; $lang['CssSumTitle']='Nuværende runde titel'; $lang['CssSumTotal']='Nuværende runde værdi'; +$lang['CssText1']='Css for Text 1'; +$lang['CssText2']='Css for Text 2'; +$lang['CssText3']='Css for Text 3'; +$lang['CssText4']='Css for Text 4'; $lang['CssTitleCommon']='Hoved titel'; $lang['CssVegasFreeTextRow']='Række'; $lang['CssVegasFreeTextText']='Tekst'; diff --git a/src/Common/Languages/dk/Common.php b/src/Common/Languages/dk/Common.php index 4f1d5034..211f5110 100644 --- a/src/Common/Languages/dk/Common.php +++ b/src/Common/Languages/dk/Common.php @@ -70,6 +70,7 @@ $lang['CmdOk']='OK'; $lang['CmdOn']='Til'; $lang['CmdPostUpdate']='Post-opdatering'; +$lang['CmdRefresh']='Opdater'; $lang['CmdSave']='Gem'; $lang['CmdSaveContinue']='Tilføj ny'; $lang['CmdSet2All']='Påfør alle'; @@ -147,6 +148,10 @@ $lang['Finish']='Afslut'; $lang['FirstPhase']='Første fase'; $lang['FopSetup']='Bane layout'; +$lang['Gender0']='Herre'; +$lang['Gender1']='Dame'; +$lang['GenderShort0']='H'; +$lang['GenderShort1']='D'; $lang['GF']='Unge piger'; $lang['GM']='Unge drenge'; $lang['HELP']='Hjælp'; @@ -206,6 +211,8 @@ $lang['MatchMode_0']='Sammentælling'; $lang['MatchMode_1']='Set System'; $lang['MatchNo']='Match Nr.'; +$lang['MatchWinShot']='Match vinder pil'; +$lang['MatchWinShotHelp']='[Number of successful match winners shots] - [Number of failed match winners shots] %=Percentage of success when an arrow is a potential match winner'; $lang['Medal']='Medaljeoversigt'; $lang['MedalBronze']='Bronze'; $lang['MedalGold']='Guld'; @@ -216,6 +223,7 @@ $lang['MenuLMRemoveNoShows']='Fjern ikke fremmødte'; $lang['MenuLM_Accreditation']='Akkreditering'; $lang['MenuLM_Accreditation colors management']='Administrer akkreditering farver'; +$lang['MenuLM_AdvancedFeatures']='Avanceret opsætning'; $lang['MenuLM_AdvLabels']='Avanceret etiket udskrivning'; $lang['MenuLM_Archers on Targets']='Antal per skive'; $lang['MenuLM_Arr4Set']='Pile per sæt'; @@ -229,6 +237,7 @@ $lang['MenuLM_Athlets fees status']='Status for skytters afgift'; $lang['MenuLM_Authentication']='Bruger godkendelse'; $lang['MenuLM_AutoCheckinSetup']='Auto Check-In setup'; +$lang['MenuLM_Automator']='Automator'; $lang['MenuLM_Back Number Printout']='Udskriv registreringsnumre'; $lang['MenuLM_Boinx']='Boinx Layers opsætning'; $lang['MenuLM_BoinxMeteo']='Boinx Meteo Layer Data'; @@ -239,9 +248,11 @@ $lang['MenuLM_Category Result List']='Udskriv resultatliste for kategori'; $lang['MenuLM_Change Components']='Udskift skytter'; $lang['MenuLM_ChangeNationsNames']='Skift klubnavne'; +$lang['MenuLM_ChangePassword']='Skift kodeord'; $lang['MenuLM_Check Data Update']='Check dataopdateringer'; $lang['MenuLM_Check shoot-off before eliminations']='Check shoot-off før eliminationer'; $lang['MenuLM_Check shoot-off before final phases']='Check shoot-off før finaler'; +$lang['MenuLM_Check shoot-off before Rank']='Check shott-off før udskrivning'; $lang['MenuLM_CheckAwards']='Check præmier oversættelser'; $lang['MenuLM_CheckList']='Udskriv kontrolliste'; $lang['MenuLM_CIS']='CIS'; @@ -295,6 +306,7 @@ $lang['MenuLM_FinalFOPChoose']='Finale FOP udvidet'; $lang['MenuLM_FlightsAwardManagement']='Flights Award Management'; $lang['MenuLM_FlightsManagement']='Flights Management'; +$lang['MenuLM_FontManagement']='Font opsætning'; $lang['MenuLM_GateControl']='Gate Access kontrolpanel'; $lang['MenuLM_GateSituation']='Gate Situation'; $lang['MenuLM_Get Info']='Indhent info'; @@ -337,6 +349,7 @@ $lang['MenuLM_Modules']='Moduler'; $lang['MenuLM_MoveSession']='Ændre tildelt session'; $lang['MenuLM_MoveTarget']='Flyt tildelte skiver'; +$lang['MenuLM_N62']='N62A/B ORIS Information'; $lang['MenuLM_New']='Ny turnering'; $lang['MenuLM_NewBacknumbers']='Registreringsnumre'; $lang['MenuLM_OdsExport']='Regneark eksport (.ods)'; @@ -441,6 +454,7 @@ $lang['MsgImportOk']='Import afsluttet!'; $lang['MsgInitFinalGridsError']='Advarsel: Skemaerne er ikke tomme. Vil du fortsætte?'; $lang['MsgInitFinalGridsOk']='Initialisering Afsluttet Successfuldt'; +$lang['MsgInitFinalGridsRunningError']='Operation ikke tilladt mens turnering er i "Running Mode"'; $lang['MsgMakeFinReset']='Finale skemaer re-initialiseret!
    Rediger alle indledende operationer før indsættelse af ny data!'; $lang['MsgNeedInitGrids']='Fejl!
    Skemaerne er ikke initialiseret!'; $lang['MsgNeedShootOff']='Fejl!
    Check for shoot-off først!'; @@ -497,6 +511,7 @@ $lang['Score1Page1Match']='Score til enkelt match'; $lang['ScoreDrawing']='Kun skema (Enkelt side)'; $lang['ScoreFilled']='Udskriv skydesedler med værdien fra hver enkelt pil'; +$lang['ScoreIncAllNames']='Inkluder alle modstandere som er mulige'; $lang['ScoreIncEmpty']='Udskriv matcher selv uden modstander'; $lang['Scorer']='Markør'; $lang['SearchOrphanTexts']='Søg \'forældreløse\' tekster'; @@ -505,9 +520,12 @@ $lang['SelectAll']='Vælg Alt'; $lang['SelTour']='Aktuel turnering'; $lang['Session']='Session'; +$lang['SetWinShot']='Sæt pil fra vinder'; +$lang['SetWinShotHelp']='[Number of successful set winners shots] - [Number of failed set winners shots] %=Percentage of success when an arrow is a potential set winner'; $lang['SF']='Senior Dame'; $lang['ShootOff4Elim']='Check shoot-off før eliminationer'; $lang['ShootOff4Final']='Check shoot-off før finaler'; +$lang['ShootOff4Rank']='Check shott-off før udskrivning'; $lang['SM']='Senior Herre'; $lang['SnapshotConf']='Snapshot opsætning'; $lang['SortBy']='Sorteret efter'; @@ -549,12 +567,15 @@ $lang['Total']='Total'; $lang['TotaleScore']='Total'; $lang['Trg3DComplete']='3D Standard'; +$lang['Trg3DReddingEnd']='3D Redding'; $lang['TrgCOIndComplete']='Indendørs (1-lille 10)'; $lang['TrgCOIndSmall']='Indendørs (6-lille 10)'; $lang['TrgCOOutdoor']='Udendørs (5-X)'; $lang['TrgCOOutdoorSmall']='Udendørs (6-X)'; $lang['TrgField']='Felt'; $lang['TrgForestSwe']='Forest (SWE)'; +$lang['TrgFrBeursault']='Beursault'; +$lang['TrgFrBouquet']='Bouquet'; $lang['TrgHMOutComplete']='Hit-Miss'; $lang['TrgHunterNor']='Jæger (Norge)'; $lang['TrgImperial']='Imperial Skive (1-9)'; diff --git a/src/Common/Languages/dk/Errors.php b/src/Common/Languages/dk/Errors.php index e1f19f0a..549719e7 100644 --- a/src/Common/Languages/dk/Errors.php +++ b/src/Common/Languages/dk/Errors.php @@ -4,9 +4,11 @@ $lang['Anomalies']='Uregelmæssigheder'; $lang['BarCodeSession']='Der er en fejl i opsætningen: Prøv opsætning for session'; $lang['BarCodeSettings']='Der er en fejl i opsætningen'; +$lang['CategoresNotDefined']='Manglende definition af kategori'; $lang['ClassFromToError']='Fra og Til skal være numeriske værdier'; $lang['ClubNotFound']='Klubkode ikke fundet mellem eksisterende klubkoder. Opdater venligst databasen først!'; $lang['ConflictingCategories']='Definition af filter overlapper tidligere filtre på disse kategorier: $a!'; +$lang['DecodeError']='Decode fejl'; $lang['DiameterMandatory']='Diameter på ansigt krævet'; $lang['DirectoryNotWriteable']='Webserveren kan ikke skrive i biblioteket $a. Venligst ændre rettighederne således at alle kan skrive.'; $lang['DistanceOutRange']='Afstanden er ugyldig'; @@ -15,6 +17,9 @@ $lang['EmptyFrom']='Felt e-mail er et krævet felt'; $lang['EmptySubject']='Feltet Emne er et krævet felt'; $lang['EmptyTitle']='Feltet Titel er et krævet felt'; +$lang['EndsArrowsMisMatch']='$a with wrong Ends/Arrows setting'; +$lang['EntriesNoCategory']='Tilmeldte uden kategori'; +$lang['EntriesNoCountry']='Tilmeldte uden klub'; $lang['ErrCodeExists']='Kode findes allerede!'; $lang['ErrCommitteeError']='Ugyldig Udvalg kode eller beskrivelse'; $lang['ErrConnection']='Ingen forbindelse til server $a'; @@ -32,6 +37,7 @@ $lang['ErrRedCard']='Udvalget er tildelt rødt kort og kan derfor ikke bede om stævnekode. der hostes på ianseo.net. Kontakt codes@ianseo.net for yderligere information.'; $lang['ErrUnknownNation']='Ukendt land'; $lang['ErrYellowCard']='Udvalget har tildelt gult kort, da ingen resultater er blevet uploadet. Kontakt codes@ianseo.net for yderligere information.'; +$lang['EventIncompleteSetting']='$a with missing allowed categories setting'; $lang['FilterAlreadyExists']='Dette filter findes allerede'; $lang['FilterNotEmpty']='Man skal opsætte filter'; $lang['IllegalTarget']='Valgt ansigt findes ikke i DB'; @@ -39,7 +45,9 @@ $lang['ImageFetchError']='Fejl ved hent af billede'; $lang['ImageSaveError']='Billede ikke gemt'; $lang['IncompleteSettings']='Ufuldstændig opsætning'; +$lang['InvalidCharacters']='Feltet indeholder ugyldige karakterer. Tilladte karakterer er $a'; $lang['InvalidEmail']='Ugyldig E-mail: Check E-mail en ekstra gang før der gemmes'; +$lang['InvalidLogin']='Ugyldigt login'; $lang['LockedProcedure']='Denne funktion er LÅST'; $lang['MailingAlreadyExists']='Email\'en ({$a}) findes allerede, skift navn eller vælg den e-mail, der skal ændres, fra vælgeren.'; $lang['MailingDeleteText']='Bekræft af denne afsendelse slettes permanent'; @@ -52,20 +60,31 @@ $lang['MissingData']='Manglende data'; $lang['MissingPhpIntlModule']='Skift af sprog kan gøres ved at installere eller aktivere php-intl module'; $lang['NameNotEmpty']='Navn kan ikke være blankt'; +$lang['NoCountryInsert']='Ingen klub indsat'; +$lang['NoData']='Ingen data fundet'; +$lang['NoDistancesSet']='Kategorier uden afstand opsætning'; $lang['NoDNSRecord']='Navnet på serveren er ikke korrekt eller er ikke online - bemærk man skal være forbundet til internettet for at anvendes denne mulighed'; +$lang['NoEntryInsert']='Intet element indsat'; $lang['NoMailingTemplate']='Ingen E-mail skabelon valgt/mulig!'; $lang['NoMailRecipients']='Ingen at sende t8il. Check filter indstillinger'; $lang['NoPrivilege']='Utilstrækkelige tilladelser: Ikke tilladelse til at håndtere denne side'; $lang['NoSameOrders']='Værdi af Sortering findes allerede'; $lang['NoSmtpServerSet']='Angiv SMTP server før mail afsendelse er mulig'; +$lang['NoTargetSet']='Kategorier uden ansigt opsætning'; +$lang['PhpOutdated']='Den version af PHP er gammel. Ianseo kan virke men dele kræver mindst version {$a}.
    Opdater din installation hurtigst muligt til at understøtte PHP {$a} eller nyere.'; $lang['RegExp']='For at anvende RegExp (Regular Expressions), venligst se $a'; +$lang['ResetSyncData']='Nulstil Sync data'; +$lang['ServiceNotAvailable']='Service ikke tilgængelig'; $lang['SetupNotFinished']='Der er ikke adgang til denne side: Udfyld først {$a}'; $lang['SpecialFilterDiscrepancy']='Et specielt filter er sat men er ikke aktivt'; $lang['SqlJolly']='In a SQL statement a "%" acts as a jolly, a "_" replaces a single letter. "R%M" for example will match "RM" as well as "RCM", "RMM" but not "RMC". "R_M" will match "RSM", "RJM" but not "RM".'; +$lang['SyncNotAvailable']='Sync ikke tilgængelig'; $lang['TargetNumberMismatch']='Skive nummer kan kun være i formaet [Skivenummer][Skivebogstav], f.eks. 129C'; $lang['TargetRangeMismatch']='Skive afstand skal være mindst 2 skivenumre (ingen bogstaver) anskilt af bindestreg (minus tegnet), hvor det første skal være mindst, f.eks. 23-44'; $lang['TextSmtpDelete']='Bekræft at SMTP opsætningen fjernes på denne installation af IANSEO'; $lang['TooManyArrows']='For mange pile - maksimum er $a'; +$lang['TooManyDistancesMatch']='Kategorier med flere afstande opsætning'; $lang['TooManyElimQualified']='Runde af typen $a[0] kan kun acceptere op til $a[1] skytter'; +$lang['WrongData']='Ugyldigt data angivet'; $lang['WrongPort']='Denne port er ikke understøttet'; ?> \ No newline at end of file diff --git a/src/Common/Languages/dk/Help.php b/src/Common/Languages/dk/Help.php index a248880e..1f76965f 100644 --- a/src/Common/Languages/dk/Help.php +++ b/src/Common/Languages/dk/Help.php @@ -1,4 +1,5 @@ Man kan bruge "%" som wildcard.'; $lang['AutoCheckinAlreadyDone']='Du er allerede indchecket
    Hvis du vil ændre data, så henvend dig ved indcheckning'; $lang['AutoCheckinConfirm']='Hvis al information er korrekt, så tryk BEKRÆFT CHECK-IN
    Ellers tryk AFBRYD og henvend dig ved indcheckning'; $lang['AutoCheckinSearch']='Skan den modtagne QR koden eller indtast navn'; @@ -12,6 +13,11 @@ $lang['ChangeComponents']='

    For at fortsætte med ændringen, skal man først fjerne skytten som ikke længere skal være på holdet for herefter at vælge alternativ skytte.

    ▶ Score inkluderet i holdtotal efter kvalifikationsrunden
    ▷ Score ikke inkluderet i holdtotal efter kvalifikationsrunden'; $lang['CombiCompList']='Liste af konkurrence koder, adskilt af komma'; $lang['FlightsManagement']='To flight categories
    • Select on which Ends - Distances Total - Full Total calculate the flights;
    • Select the initial flight cut size by category. The system preloads the standard NFAA flighting table when competition allows it;
    • Flight Grouping preview will calculate ALL CATEGORIES, press the reload button side of the flight cut size to force calculation of a single category;
    • Flights marked orange are just an indicator of a difference between the previewed flight and the rule table. It does NOT affect the flight division.
    • Use drop - split - merge commands to adjust flights info. Please note, after running a full preview or a category refresh all the changes to the flight are lost.
    Notes
    • Categories with too few participants are excluded from flighting. Flighting can be forced indicating the flight cut quantity;
    • If a category is considered to be flighted, use \'-1\' as cut to explicitly exclude from flighting
    • Professional and/or Championships as excluded from flighting and greyed out
    '; +$lang['FontFamily']='Navn på fonten brugt i CSS'; +$lang['FontFile']='Placering af filen på disk'; +$lang['FontName']='Aktuelt navn for font'; +$lang['FontStyle']='Style for fonten i CSS'; +$lang['FontWeight']='Vægt for fonten i CSS'; $lang['GetBarcodeSeparator']='Efter udskrivning af stregkode reference arket, læs venligst «SEPARATOR» stregkoden for at aktivere de korrekte læse emner.'; $lang['HomePage']='Dette er siden hvor du kan vælge eller oprette en turnering.'; $lang['ISK-LockedSessionHelp']='{$a} ikonet viser om app\'en kan score eller ej i denne session'; @@ -19,11 +25,14 @@ $lang['QrCodeLandscape']='en enkelt eller dobbelt "<" vil skrive en venstre pil, en enkelte eller dobbelt ">" vil skrive en højre pil, en enkelt eller dobbelt "^" vil skrive en op-pil mens en enkelt eller dobbelt "v" vil skrive en ned-pil'; $lang['QrCodePortrait']='feltet er HTML-egnet Hvis man indsætter noget omringet af <qrcode>...</qrcode> så vil indholdet blive ændret til en QR kode'; $lang['ScoreBarCodeShortcuts']='Indlæs stregkoden som er udskrevet på skydesedlen.
    Ved manuelt at indsætte et # efterfulgt af navnet på skytten gennemsøges databasen for at finde skytten.
    Ved at indsættes et @ efterfuldt af skivenummeret søges efter banen. Afstand SKAL være sat. Session skal være specificeret (første ciffer) og skive skal være foranstillet med \'0\' til 3 cifre.'; +$lang['ScoreboardFreetext-Texts']='Insert {{date}} to insert the date in english format (ie: january 4, 2024).
    Insert {{date-lang}} to insert a date in local language (ie: {{date-de}} to have 4. Januar 2024)
    Insert {{time}} to have the ticking time in ISO format (ie: 15:03:23)
    Insert {{time-am}} to have ticking time in AM/PM format (ie: 3:03:23 PM)
    Insert {{counter-datetime}} to have a full date countdown (ie: [[[days:]hours:]minutes:]seconds layout, where datetime is the time to reach in ISO format 2024-12-04T09:00:00 for local time)
    There can only be one of these fields in a text'; $lang['TargetRequests-Printout']='Prints the QrCodes of the requested targets to allow personal devices to quickly be reassigned to the correct target.
    Select which group(s) of devices you want to print and the range of target butts:
    1-10 prints QrCOde from target 1 to 10
    1,7,12-15 prints QrCOde of targets 1, 7 and from 12 to 15'; $lang['TargetScoring-Printout']='Prints the QrCodes of the requested targets to score in the required Session-Target-Distance with ISK NG Lite. It is the same QR code that you can find in the scorecards
    Select which session(s) you want to print and the range of target butts:
    1-10 prints QrCOde from target 1 to 10
    1,7,12-15 prints QrCOde of targets 1, 7 and from 12 to 15'; $lang['TV-ChannelSetup']='= Channels Setup = After setting up your channels as desired, connect the browser of the device you want to link to a channel to http://IP.OF.IANSEO/tv.php?id=CHANNEL where \'\'\'IP.OF.IANSEO\'\'\' is the IP where ianseo is running (including the directory if any) and \'\'\'CHANNEL\'\'\' is the ID of the channel'; $lang['TV-RotEdit']='
    A presentation page is made of at least one content page.
    The content pages will then be shown one after the other and start over again.
    NOTE: in regular and light version engines, the first content is again shown as last, so it is wise to insert as first content an image (logo of the competition for example).
    Contents can be either competition-based (start list, qualification, matches...) or "multimedia" (images, HTML messages,...).
    '; $lang['TV-RotEdit-DB']='

    CSS3 management (Advanced engine)

    Length Units

    • rem: heigth of the root character
    • em: heigth of the current character
    • ex: heigth of the lowercase "x"
    • ch: width of the number "0"
    • vh: 1/100th of the height of the screen
    • vw: 1/100th of the width of the screen
    • vmin: 1/100th of the minimum value between the height and the width of the screen
    • vmax: 1/100th of the maximum value between the height and the width of the screen

    Flexible Boxes

  • flex A B C:
    • A: if 0 means the box can not expand; if >1 means the box can expand at that "speed" compared to other boxes (if box 1 has 2 and box 2 has 3, box 2 will expand 1.5 more than box 1 which in turn will expan double as much as a box with this value set to 1)
    • B: if 0 the box cannot shrink; if 1 box can shrink
    • C: initial dimention of the box
  • CSS reference

    https://developer.mozilla.org/en-US/docs/Web/CSS/Reference'; $lang['TV-RotList']='
    This is the list of available presentation pages to send to videowall, moitors or broadcast.
    3 different engines are provided, click on the link to activate:
    • a regular engine compatible with most browsers
    • a light version engine compatible with most browsers but uses less resources
    • an advanced version that uses modern browsers HTML5 capabilities
    To create a new content, enter a name for it and press the button.
    '; +$lang['UserName']='Skal være entydig i systemet. Minimums længde: 6 karakterer'; +$lang['UserPassword']='Lad være blank for at beholde nuværende kodeord'; $lang['ZeroBased']='Nul baseret nummer'; ?> \ No newline at end of file diff --git a/src/Common/Languages/dk/IOC_Codes.php b/src/Common/Languages/dk/IOC_Codes.php index b5ca3c49..1c952f1d 100644 --- a/src/Common/Languages/dk/IOC_Codes.php +++ b/src/Common/Languages/dk/IOC_Codes.php @@ -42,16 +42,13 @@ $lang['BUL']='Bulgarien'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Central African Republic'; -$lang['CAM']='Cambodia'; $lang['CAN']='Canada'; $lang['CAY']='Caymand Islands'; $lang['CGO']='Republic of Congo'; $lang['CHA']='Chad'; $lang['CHI']='Chile'; -$lang['CHN']='Kina'; $lang['CIV']='Elfenbenskysten'; $lang['CMR']='Cameron'; -$lang['COD']='Democratic Republic of Congo'; $lang['COK']='Cook Islands'; $lang['COL']='Columbia'; $lang['COM']='Comoros'; @@ -60,7 +57,6 @@ $lang['CRO']='Kroatien'; $lang['CUB']='Cuba'; $lang['CYP']='Cypern'; -$lang['CZE']='Tjekkiet'; $lang['DEN']='Danmark'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominica'; @@ -91,17 +87,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Ungarn'; $lang['INA']='Indonesien'; $lang['IND']='Indien'; -$lang['IRI']='Iran'; $lang['IRL']='Irland'; $lang['IRQ']='Irak'; $lang['ISL']='Island'; $lang['ISR']='Israel'; -$lang['ISV']='USA jomfruøerne'; $lang['ITA']='Italien'; $lang['IVB']='Britisk jomfruøerne'; $lang['JAM']='Jamaica'; @@ -114,7 +107,6 @@ $lang['KOR']='Sydkorea'; $lang['KSA']='Saudi Arabien'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; $lang['LAT']='Letland'; $lang['LBA']='Libien'; $lang['LBR']='Liberia'; @@ -128,7 +120,6 @@ $lang['MAR']='Marokko'; $lang['MAS']='Malaysia'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldova'; $lang['MDV']='Maldiverne'; $lang['Medal-1']='Guld medalje'; $lang['Medal-2']='Sølv medalje'; @@ -137,7 +128,6 @@ $lang['MEX']='Mexico'; $lang['MGL']='Mongoliet'; $lang['MHL']='Marshall øerne'; -$lang['MKD']='Makedonien'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -166,7 +156,6 @@ $lang['PNG']='Papua New Guinea'; $lang['POL']='Polen'; $lang['POR']='Portugal'; -$lang['PRK']='Nord Korea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Romænien'; @@ -193,13 +182,11 @@ $lang['SVK']='Slovakiet'; $lang['SWE']='Sverige'; $lang['SWZ']='Swaziland'; -$lang['SYR']='Syrien'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Thailand'; $lang['TJK']='Tajikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Øst Timor'; $lang['TOG']='Togo'; $lang['TPE']='Chinese Taipei'; $lang['TRI']='Trinidad and Tobago'; diff --git a/src/Common/Languages/dk/Ianseo.php b/src/Common/Languages/dk/Ianseo.php index 1e781866..3cab3432 100644 --- a/src/Common/Languages/dk/Ianseo.php +++ b/src/Common/Languages/dk/Ianseo.php @@ -7,4 +7,9 @@ $lang['Cert-Level4']='Master kursus'; $lang['Cert-Level5']='Ianseo mandskab'; $lang['CertificateManagement']='Certifikat styring'; +$lang['GenerateFile']='Dan fil'; +$lang['ResetItems']='Reset Items.
    This action will not ask for confirmation and cannot be undone!
    Resetting qualifications will reset all subsequent events too!'; +$lang['ResetResult']='Den ønskede session er nulstillet'; +$lang['ResetSessions']='Bekræft Nulstil'; +$lang['ShuffleResults']='Bland resultater'; ?> \ No newline at end of file diff --git a/src/Common/Languages/dk/Install.php b/src/Common/Languages/dk/Install.php index 3f62e08c..19fa13e1 100644 --- a/src/Common/Languages/dk/Install.php +++ b/src/Common/Languages/dk/Install.php @@ -44,7 +44,7 @@ $lang['FieldPegWhite']='Hvid pind'; $lang['FieldPegYellow']='Gul pind'; $lang['File permission error']='Du skal checke alle tilladelser af IANSEO installations mapper: den skal ikke være skrivebeskyttet af brugeren.'; -$lang['FreeOnlineResults']='Gratis online udgivelse - med en Internet forbindelse kan du vise verdenen hvad der sker under konkurrencen. Det er gratis, så hvorfor vente? Når turneringen først er oprettet, så bed om en turneringskode under menu punktet «{$a}».'; +$lang['FreeOnlineResults']='Gratis online udgivelse. Via nettet kan du vise verdenen hvad der sker under konkurrencen. Det er gratis, så hvorfor vente? Når turneringen først er oprettet, så bed om en turneringskode under menu punktet «{$a}».'; $lang['Host']='Host'; $lang['Install-0']='KRITISK FEJL'; $lang['Install-0 Title']='GPL3 License Agreement'; @@ -87,7 +87,7 @@ $lang['Parameter']='Paremetre'; $lang['Password']='Kodeord'; $lang['PHP settings']='PHP opsætning'; -$lang['PHP too old']='Din PHP installation er for gammel. Minimums versionen for IANSEO er 5.0.'; +$lang['PHP too old']='Din PHP installation er for gammel. Minimums versionen for IANSEO er 8.0.'; $lang['PHP version']='PHP version'; $lang['php.ini file']='php.ini file'; $lang['Prepare']='Forbereder data til opdatering'; @@ -139,9 +139,12 @@ $lang['SetCompound70m']='Compound - 70m'; $lang['SetCR']='Reginalt mesterskab (en eliminationsrunde)'; $lang['SetDKShortDistances']='Kort afstand (Langbue og Barbue)'; +$lang['SetFrBeursault']='Beursault'; +$lang['SetFrBouquet']='Bouquet'; $lang['SetFRChampionshipElite']='Championnats Elite'; $lang['SetFRChampionshipJun']='Mesterskabs ungdom'; $lang['SetFRChampionshipSen']='Mesterskabs voksne'; +$lang['SetFRChampJunTeams']='Championnat de France Jeune Equipe'; $lang['SetFRChampsD1DNAP']='Davis-Like Team Matches'; $lang['SetFRChampsFederal']='Championnat Fédéral'; $lang['SetFRChampsScratchC']='Mesterskabs Compound Single Event'; @@ -150,8 +153,13 @@ $lang['SetFRChampsVet']='Championships Masters'; $lang['SetFRCoupeFrance']='French Cup'; $lang['SetFRD12023']='Championnat D1 / 2023'; +$lang['SetFRFinalsD2']='Finales France D2'; $lang['SetFRFinDRD2']='Finales DR/D2'; +$lang['SetFrSelectif']='Selectif'; +$lang['SetFrSelectifPara']='Selectif + Para'; $lang['SetFRTAE']='French TAE Championships'; +$lang['SetFRTAE-Para']='Selectif TAE + Para'; +$lang['SetFRTAE-Valides']='Selectif TAE'; $lang['SetIndoor']='Indendørs'; $lang['SetIPCandWA']='IPC og WA kategorier'; $lang['SetJ-CClass']='Junior og Kadet'; @@ -242,9 +250,9 @@ $lang['User']='Brugernavn'; $lang['Value']='Værdi (indexed arrays items: key1::value1|key2::value2)'; $lang['WhatIanseoDoes01']='Følger World Archery - Ianseo er altid opdateret i forhold til World Archery reglerne. Hvis der ønskes tilpasning for at følge nationale regler eller turneringsregler, så kontakt udviklerne som kan hjælpe med tilpasninger!'; -$lang['WhatIanseoDoes02']='Hjælp og støtte Hvis du har brug for hjælp, så send en email til $a - her vil du vil få svar direkte fra udviklerne af Ianseo'; -$lang['WhatIanseoDoes03']='On site training and courses: Ianseo is available to manage specific on location courses. Two levels: without and with the electronic devices. The first is aimed to know all aspects of ianseo from competition preparation and schedule up to online publication and local distribution of results. The second is aimed on acquiring all the specific knowledge to run an "arrow by arrow" competition.'; -$lang['WhatIanseoDoes04']='Doner Ianseo er gratis og Open Source.... Hjælp til at holde programmer og servere opdateret - tryk på \'Doner\' på $a'; +$lang['WhatIanseoDoes02']='Brug for hjælp? Så send en email til $a, hvor du skriver direkte med udviklerne af Ianseo'; +$lang['WhatIanseoDoes03']='Træning og kurser Ianseo kan tilbyde at kurser hos jer på to niveauer: Uden og med Ianseo Scorekeeper NG app. Den første har til formål at kende alle aspekter af ianseo fra konkurrenceforberedelse og tidsplan til online offentliggørelse. Del to er rettet mod at erhverve al den specifikke viden til at køre en "pil for pil" konkurrence.'; +$lang['WhatIanseoDoes04']='Doner Ianseo er gratis og Open Source. Ved \ No newline at end of file diff --git a/src/Common/Languages/en/Help.php b/src/Common/Languages/en/Help.php index fa66e530..a0518aaf 100644 --- a/src/Common/Languages/en/Help.php +++ b/src/Common/Languages/en/Help.php @@ -1,4 +1,5 @@ Allowed wildchar: "%"'; $lang['AutoCheckinAlreadyDone']='You are already checked in
    If you need to change any information proceed to the accreditation desk'; $lang['AutoCheckinConfirm']='If all the details are correct press CONFIRM CHECK-IN
    Otherwise press CANCEL and proceed to the accreditation desk'; @@ -19,6 +20,11 @@ ▶ Score included in the total of team qualification round
    ▷ Score not included in the total of team qualification round'; $lang['CombiCompList']='List of Competitions Codes, comma separated'; +$lang['ExportAdvanced']='Also exports Entry and Country data to create if missing at the endpoint'; +$lang['ExportCategories']='Choose which categories/events to export (no selection means all)'; +$lang['ExportDistances']='Select which distance(s) to export (no selection means all distances)'; +$lang['ExportSchedule']='Select from the schedule which session to export'; +$lang['ExportScheduleToday']='Shows only the scheduled sessions for today'; $lang['FlightsManagement']='To flight categories
    • Select on which Ends - Distances Total - Full Total calculate the flights;
    • @@ -33,6 +39,11 @@
    • If a category is considered to be flighted, use \'-1\' as cut to explicitly exclude from flighting
    • Professional and/or Championships as excluded from flighting and greyed out
    '; +$lang['FontFamily']='Name of the font to use in the CSS'; +$lang['FontFile']='Location of the file on disk'; +$lang['FontName']='Actual name of the font'; +$lang['FontStyle']='Style of the font in CSS'; +$lang['FontWeight']='Weight of the font in CSS'; $lang['GetBarcodeSeparator']='After printing the barcodes reference sheet, read the «SEPARATOR» barcode in order to activate the correct reader items.'; $lang['HomePage']='This is the page where you can select or create a tournament.'; $lang['ISK-LockedSessionHelp']='{$a} icons show if the app can score or not in that session.'; @@ -98,5 +109,7 @@
  • an advanced version that uses modern browsers HTML5 capabilities
  • To create a new content, enter a name for it and press the button.
    '; +$lang['UserName']='Must be unique in the system. Minimal length: 6 characters'; +$lang['UserPassword']='Leave blank to keep current password'; $lang['ZeroBased']='Zero based number'; ?> \ No newline at end of file diff --git a/src/Common/Languages/en/IOC_Codes.php b/src/Common/Languages/en/IOC_Codes.php index 2828155d..feb01dfc 100644 --- a/src/Common/Languages/en/IOC_Codes.php +++ b/src/Common/Languages/en/IOC_Codes.php @@ -12,8 +12,8 @@ $lang['ASA']='American Samoa'; $lang['AUS']='Australia'; $lang['AUT']='Austria'; -$lang['Award-Anthem']='Ladies and Gentlemen, please stand for the National Anthem of'; -$lang['Award-Anthem-TPE']='Ladies and Gentlemen, please stand for the Anthem of'; +$lang['Award-Anthem']='Ladies and Gentlemen, for those who can, please stand for the National Anthem of'; +$lang['Award-Anthem-TPE']='Ladies and Gentlemen, for those who can, please stand for the Anthem of'; $lang['Award-Applause']='Ladies and Gentlemen, please give a warm round of applause to our Athlete(s)'; $lang['Award-Intro']='Ladies and Gentlemen the Victory Ceremony for the {$a}'; $lang['Award-MedalGiver']='Medals will be presented by $a'; @@ -42,16 +42,16 @@ $lang['BUL']='Bulgaria'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Central African Republic'; -$lang['CAM']='Cambodgia'; +$lang['CAM']='Cambodia'; $lang['CAN']='Canada'; $lang['CAY']='Caymand Islands'; $lang['CGO']='Republic of Congo'; $lang['CHA']='Chad'; $lang['CHI']='Chile'; -$lang['CHN']='China'; -$lang['CIV']='Cote d\'Ivoire'; +$lang['CHN']='People\'s Republic of China'; +$lang['CIV']='Côte d\'Ivoire'; $lang['CMR']='Cameroon'; -$lang['COD']='Democratic Republic of Congo'; +$lang['COD']='Democratic Republic of the Congo'; $lang['COK']='Cook Islands'; $lang['COL']='Colombia'; $lang['COM']='Comoros'; @@ -59,8 +59,9 @@ $lang['CRC']='Costa Rica'; $lang['CRO']='Croatia'; $lang['CUB']='Cuba'; +$lang['CUW']='Curacao'; $lang['CYP']='Cyprus'; -$lang['CZE']='Czech Republic'; +$lang['CZE']='Czechia'; $lang['DEN']='Denmark'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominica'; @@ -74,7 +75,10 @@ $lang['ETH']='Ethiopia'; $lang['FIJ']='Fiji'; $lang['FIN']='Finland'; +$lang['FLK']='Falkland Island'; +$lang['FPO']='Tahiti'; $lang['FRA']='France'; +$lang['FRO']='Faroe Islands'; $lang['FSM']='Micronesia'; $lang['GAB']='Gabon'; $lang['GAM']='Gambia'; @@ -84,6 +88,7 @@ $lang['GEQ']='Equatorial Guinea'; $lang['GER']='Germany'; $lang['GHA']='Ghana'; +$lang['GLP']='Guadalupe'; $lang['GRE']='Greece'; $lang['GRN']='Grenada'; $lang['GUA']='Guatemala'; @@ -91,17 +96,17 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; +$lang['HKG']='Hong Kong, China'; $lang['HON']='Honduras'; $lang['HUN']='Hungary'; $lang['INA']='Indonesia'; $lang['IND']='India'; -$lang['IRI']='Iran'; +$lang['IRI']='Islamic Republic of Iran'; $lang['IRL']='Ireland'; $lang['IRQ']='Iraq'; $lang['ISL']='Iceland'; $lang['ISR']='Israel'; -$lang['ISV']='United States Virgin Islands'; +$lang['ISV']='Virgin Islands, US'; $lang['ITA']='Italy'; $lang['IVB']='British Virgin Islands'; $lang['JAM']='Jamaica'; @@ -112,11 +117,13 @@ $lang['KGZ']='Kyrgyzstan'; $lang['KIR']='Kiribati'; $lang['KOR']='Republic of Korea'; +$lang['KOS']='Kosovo'; $lang['KSA']='Saudi Arabia'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; +$lang['LAO']='Lao People\'s Democratic Republic'; $lang['LAT']='Latvia'; $lang['LBA']='Libya'; +$lang['LBN']='Lebanon'; $lang['LBR']='Liberia'; $lang['LCA']='Saint Lucia'; $lang['LES']='Lesotho'; @@ -124,11 +131,12 @@ $lang['LIE']='Liechtenstein'; $lang['LTU']='Lithuania'; $lang['LUX']='Luxembourg'; +$lang['MAC']='Macau, China'; $lang['MAD']='Madagascar'; $lang['MAR']='Morocco'; $lang['MAS']='Malaysia'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldova'; +$lang['MDA']='Republic of Moldova'; $lang['MDV']='Maldives'; $lang['Medal-1']='Gold Medal'; $lang['Medal-2']='Silver Medal'; @@ -137,7 +145,7 @@ $lang['MEX']='Mexico'; $lang['MGL']='Mongolia'; $lang['MHL']='Marshall Islands'; -$lang['MKD']='North Macedonia'; +$lang['MKD']='Republic of North Macedonia'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -145,13 +153,18 @@ $lang['MOZ']='Mozambique'; $lang['MRI']='Mauritius'; $lang['MTN']='Mauritania'; +$lang['MTQ']='Martinique'; $lang['MYA']='Myanmar'; $lang['NAM']='Namibia'; $lang['NCA']='Nicaragua'; +$lang['NCL']='New Caledonia'; $lang['NED']='Netherlands'; $lang['NEP']='Nepal'; +$lang['NFK']='Norfolk Island'; $lang['NGR']='Nigeria'; $lang['NIG']='Niger'; +$lang['NIU']='Niue'; +$lang['NMI']='Northern Mariana Islands'; $lang['NOR']='Norway'; $lang['NRU']='Nauru'; $lang['NZL']='New Zealand'; @@ -166,7 +179,7 @@ $lang['PNG']='Papua New Guinea'; $lang['POL']='Poland'; $lang['POR']='Portugal'; -$lang['PRK']='North Korea'; +$lang['PRK']='Democratic People\'s Republic of Korea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Romania'; @@ -193,16 +206,17 @@ $lang['SVK']='Slovakia'; $lang['SWE']='Sweden'; $lang['SWZ']='eSwatini'; -$lang['SYR']='Syria'; +$lang['SYR']='Syrian Arab Republic'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Thailand'; $lang['TJK']='Tajikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='East Timor'; +$lang['TLS']='Timor Leste'; $lang['TOG']='Togo'; $lang['TPE']='Chinese Taipei'; $lang['TRI']='Trinidad and Tobago'; +$lang['TTO']='Trinidad and Tobago'; $lang['TUN']='Tunisia'; $lang['TUR']='Türkiye'; $lang['TUV']='Tuvalu'; diff --git a/src/Common/Languages/en/Install.php b/src/Common/Languages/en/Install.php index 26eea0ed..c0ab1ffb 100644 --- a/src/Common/Languages/en/Install.php +++ b/src/Common/Languages/en/Install.php @@ -35,6 +35,7 @@ $lang['Email']='Email'; $lang['Email not in DB']='The e-mail is not in our DB'; $lang['EventWillBeReset']='WARNING: a change in "$a[0]", "$a[1]" or "$a[2]" will reset all tournament parameters to the default specified by the rules and tournament type selected.'; +$lang['ExportAllComps']='Export All Competitions'; $lang['Failed']='FAILED!'; $lang['Failing install']='Please update your PHP installation before running IANSEO again.'; $lang['Field24Normal']='Field 24 targets'; @@ -87,7 +88,7 @@ $lang['Parameter']='Parameter'; $lang['Password']='Password'; $lang['PHP settings']='PHP settings'; -$lang['PHP too old']='Your PHP installation is too old. The minimum version number for IANSEO is 5.0.'; +$lang['PHP too old']='Your PHP installation is too old. The minimum PHP version number for IANSEO is 8.0.'; $lang['PHP version']='PHP version'; $lang['php.ini file']='php.ini file'; $lang['Prepare']='Preparing data for the update'; @@ -251,7 +252,7 @@ $lang['Value']='Value'; $lang['WhatIanseoDoes01']='World Archery Rules compliant: Ianseo is always up to date with World Archery rules. Developers are available for customizations to fit National and Competition Specific Rules too!'; $lang['WhatIanseoDoes02']='Help and support: if you need some help, send an email to $a: you will get an answer directly from the core developers of Ianseo!'; -$lang['WhatIanseoDoes03']='On site training and courses: Ianseo is available to manage specific on location courses. Two levels: without and with the electronic devices. The first is aimed to know all aspects of ianseo from competition preparation and schedule up to online publication and local distribution of results. The second is aimed on acquiring all the specific knowledge to run an "arrow by arrow" competition.'; +$lang['WhatIanseoDoes03']='On site training and courses: Ianseo is available to manage specific on location courses. Two levels: without and with Ianseo Scorekeeper NG app. The first is aimed to know all aspects of ianseo from competition preparation and schedule up to online publication and local distribution of results. The second is aimed on acquiring all the specific knowledge to run an "arrow by arrow" competition.'; $lang['WhatIanseoDoes04']='Donate! Ianseo is free and open source... if you like it please help us keeping software and server up to date: press the "Donate" button on the home page of $a!'; $lang['WhatIanseoDoes05']='Social Media: Ianseo is also on $a!'; $lang['WhatIanseoDoesTitle']='What can Ianseo do for your competition'; diff --git a/src/Common/Languages/en/ODF.php b/src/Common/Languages/en/ODF.php index 961ffa94..da963d1a 100644 --- a/src/Common/Languages/en/ODF.php +++ b/src/Common/Languages/en/ODF.php @@ -54,8 +54,10 @@ $lang['OdfCommonCodeVersion']='Common Code Version'; $lang['OdfCompetition']='ODF Competition Code'; $lang['OdfEventCode']='ODF Event Code'; +$lang['OdfGeneralCodeVersion']='General Data Dictionary Version'; $lang['OdfReceiverOn']='Receiver Active'; $lang['OdfReceiverSetup']='ODF Receiver Setup'; +$lang['OdfSportCodeVersion']='Sport Data Dictionary Version'; $lang['OdfUploadFileText']='Please select an XML file to upload...'; $lang['Production']='Production'; $lang['Receiver']='Receiver'; @@ -88,6 +90,7 @@ $lang['TMMeeting']='Team Manager\'s Meeting'; $lang['Transmitter']='Transmitter'; $lang['TypCODE']='Document Code suffix'; +$lang['TypDISCIPLINE']='Discipline (ref Sports CC@Discipline)'; $lang['TypEVENT']='Event Description'; $lang['TypNAME']='Description'; $lang['TypPHASE']='Phase Description'; diff --git a/src/Common/Languages/en/Tournament.php b/src/Common/Languages/en/Tournament.php index 5a491ca8..b84e908e 100644 --- a/src/Common/Languages/en/Tournament.php +++ b/src/Common/Languages/en/Tournament.php @@ -29,13 +29,13 @@ $lang['ACLNoAccess']='No Access'; $lang['AclNotes']='Notes about Network Security
      -
    • restriction are "competition based" and not "server based"
    • +
    • These restriction are "competition based" and not "server based"
    • localhost (127.0.0.1 or ::1) cannot be restricted
    • Policies can be disabled calling from the server itself {$a} -
      +
    • When policies are enabled, default behavior for not-listed clients is "No Access"
    • -
    • It is possible to add * as last group of the IP Address (192.168.0.* or 172.16.*) to add a default group, limited to read only policies
    • -
    • IP in the range 0.0.0.[1-254] will not be considered real IPs and the system will use the description content as RegExp to match the IP address. RegExps will be evaluated in the order they are shown and allows R/W policies
    • +
    • It is possible to add * as last group of the IP Address (192.168.0.* or 172.16.*) to add a default group
    • +
    • It is possible to use RegExp to match the IP address. RegExps will be evaluated in the order they are shown and allows R/W policies
    '; $lang['AclOdf']='ODF Management'; $lang['AclOutput']='Outputs'; @@ -61,6 +61,7 @@ $lang['AllDistances']='All'; $lang['AllEntries']='All Entries'; $lang['AllEvents']='All Events'; +$lang['AllowCompetitionACL']='Allow Competition Network Access Policies'; $lang['AllRound']='All Rounds'; $lang['AllSessions']='All Sessions'; $lang['AllsF']='All'; @@ -107,6 +108,7 @@ $lang['AuthCodeA2A']='Arrow by Arrow Authorization Code'; $lang['AutoCoinToss']='Automatic Coin Toss Assignments'; $lang['AutoEdits']='Auto Edit'; +$lang['AutomatorAccPrint']='Accreditation Print Settings'; $lang['AutoMoveNext']='Auto Move to Next Arrow'; $lang['AutoRefresh']='Auto Refresh'; $lang['AutoTargetAssignment']='Automatic Target Assignment - Draw'; @@ -127,6 +129,7 @@ $lang['AwardSecondLanguage']='Second Language'; $lang['AwardShowPoints']='Show Points'; $lang['BackBarCodeCheck']='Back to Barcode Checkup'; +$lang['BackFromHome']='Un-forfeit'; $lang['BadEntries']='Entries NOT imported'; $lang['Badge1PerPage']='1 Badge per page'; $lang['Badge2PerPage']='2 Badges per page'; @@ -137,7 +140,7 @@ $lang['BadgeIncludePhoto']='Include Photos in Badge?'; $lang['BadgeNames']='Full Name (Not printed first)'; $lang['BadgeNoData']='No data to print'; -$lang['BadgeOnlyNotPrinted']='ONLY Badges not already printed?'; +$lang['BadgeOnlyNotPrinted']='Only NOT Printed'; $lang['BadgeOnlyPrintAccredited']='ONLY Badges of accredited participants?'; $lang['BadgeOnlyPrintPhoto']='ONLY Badges with Photo?'; $lang['BadgeOptions']='Options'; @@ -168,6 +171,9 @@ $lang['Block_IP']='Access IP (v4)'; $lang['Block_Manage']='Network Access Policies'; $lang['Block_Nick']='Access Nickname'; +$lang['Block_TemplateIP']='IP Templates'; +$lang['Block_TemplateName']='Description'; +$lang['Block_TemplatePattern']='Pattern'; $lang['BoldIsDefault']='Bold is default'; $lang['Bonus']='Bonus'; $lang['ByeMovedToPhase']='Athlete moved to next Phase'; @@ -211,12 +217,13 @@ $lang['CannotDelete']='This item can not be deleted'; $lang['Cash']='Total Bill'; $lang['CatDos']='Director of Shooting'; +$lang['CategoriesEvents']='Categories/Events'; $lang['CatJudge']='Judges'; $lang['CatJury']='Jury of Appeal'; $lang['CatOC']='Organizing Committee'; -$lang['ChairmanJudge']='Chairman of Judges'; -$lang['ChairmanJudgeDeputy']='Deputy Chairman of Judges'; -$lang['ChairmanJury']='Chairman of the Jury of Appeal'; +$lang['ChairmanJudge']='Chairperson of Judges'; +$lang['ChairmanJudgeDeputy']='Deputy Chairperson of Judges'; +$lang['ChairmanJury']='Chairperson of the Jury of Appeal'; $lang['ChangeLookUpTable']='Change Lookup Table'; $lang['ChangeNationsNames']='Change Nations Names'; $lang['Channel']='Channel'; @@ -228,6 +235,7 @@ $lang['CheckXNinesInMatch']='Check XNine in Ties'; $lang['Classes']='Classes'; $lang['ClearField']='Empty Competition Field'; +$lang['ClickMovesPosition']='Update Arrow Positions Only'; $lang['ClickToMailRequest']='Click to open a prefilled email'; $lang['ClickToRequestCode']='Click to request Code'; $lang['Clone']='Clone'; @@ -296,6 +304,7 @@ $lang['CtrlCodeShort']='Ctrl. Code'; $lang['Currency']='€'; $lang['CurrentCompCode']='Current Competition Code: $a'; +$lang['CustomAclDetails']='Custom ACL Details'; $lang['D1AllInOne']='All Matches in a single Competition'; $lang['DailySchedule']='Daily Schedule'; $lang['DATABASE NOT REACHABLE']='ONLINE DATABASE NOT REACHABLE'; @@ -310,6 +319,8 @@ $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='Default VI'; $lang['Delayed']='Delayed (-1 to reset)'; +$lang['DeleteAclRule']='Delete ACL rule'; +$lang['DeleteAclUser']='Delete ACL user'; $lang['DeleteAwarded']='Delete Awarded'; $lang['DeleteChannel']='Remove Channel. This will remove all splits from the channel and the channel itself.'; $lang['DeletePreviousArchers']='Delete existing entries that are not in the list'; @@ -376,7 +387,7 @@ $lang['EmailScorecardShort']='Scorecard summary'; $lang['EmailsToSend']='Emails to send'; $lang['EmailSuccessfull']='Email has been sent successfully to $a'; -$lang['EnableAccess']='Enable/Disable Policies'; +$lang['EnableAccess']='Enable/Disable Access Policies'; $lang['EnableAddOns']='Enable/Disable Add-Ons'; $lang['Ends']='Ends'; $lang['EndsOffset']='Ends Offset'; @@ -410,6 +421,7 @@ $lang['EvNameTranslated']='Translated Event'; $lang['Export2Fitarco']='Export as EXP file'; $lang['ExportAndSend']='Export Data & Send'; +$lang['ExportEndpoint']='Endpoint URL (I@nseo base url)'; $lang['ExportEntries']='Export Entries'; $lang['ExportICS']='Export iCal file (.ics)'; $lang['ExportInstructions']='In order to export data and send them automatically, you need to complete the following form.'; @@ -487,6 +499,13 @@ $lang['FlightsTotals']='Totals'; $lang['FlightsUpdateSetup']='Update Setup'; $lang['FollowHHT']='Show HHT enabled schedule'; +$lang['FontFamily']='CSS Font Family'; +$lang['FontFile']='Font File'; +$lang['FontName']='Font Name'; +$lang['FontSample']='Font Sample'; +$lang['FontStyle']='CSS Font Style'; +$lang['FontWarning']='Only supports TTF fonts'; +$lang['FontWeight']='CSS Font Weight'; $lang['FOP-ODS']='Field of Play (ODS)'; $lang['ForceAccreditation']='Force accreditation'; $lang['ForceOldPhotos']='Include Old Pictures'; @@ -531,12 +550,12 @@ $lang['ImportedTour']='Tournament imported'; $lang['ImportNames']='Import Names'; $lang['IncompatibleVersions']='Could not import tournament as it is more recent than Ianseo.
    Upgrade Ianseo to the latest release from $a.'; -$lang['IndClEvent']='Ind. Qual.'; +$lang['IndClEvent']='Ind. Div./Class'; $lang['IndFin']='Individual - Elim. & Final Round'; -$lang['IndFinEvent']='Ind. Final'; +$lang['IndFinEvent']='Ind. Events'; $lang['IndividualLoaded']='Individual Matches Loaded for schedule {$a}'; $lang['IndoorTourCategory']='Indoor Tournament'; -$lang['IndQual']='Individual - Qual. Round'; +$lang['IndQual']='Individual - Division/Class'; $lang['InitEliminations']='Initialize Eliminations'; $lang['InitProcess']='Initializing'; $lang['InnerTens']='Inner Tens (X)'; @@ -591,6 +610,7 @@ $lang['LocRuleDefaultNo']='Default'; $lang['LocRuleModifiedNo']='Modified'; $lang['LocRuleValidNo']='Not Modified'; +$lang['Login']='Login'; $lang['LogisticResp']='Logistics Manager'; $lang['LogMessage']='Log Message'; $lang['LogoB']='Bottom Image (full width ratio is 19:1 for A4, 20:1 for letter)'; @@ -645,6 +665,7 @@ $lang['ManageByes']='Manage Byes'; $lang['ManAthStatus']='Athletes Status Management'; $lang['ManColors']='Manage Colors'; +$lang['MandatoryLoginACL']='Force Login request for not registered IP Address'; $lang['ManDistances']='Manage distances'; $lang['ManDivClass']='Manage Divisions/Classes'; $lang['ManMatchArr4Phase']='Manage Phase\'s Arrows per Set'; @@ -692,7 +713,7 @@ $lang['MissingAgileConfig']='Missing Agile Configuration'; $lang['MissingPhoto']='Missing Photo'; $lang['MissingScorecards']='Missing scorecards of $a->session, distance $a->distance'; -$lang['MixedTeamFinEvent']='Mixed Team Final'; +$lang['MixedTeamFinEvent']='Mixed Team Events'; $lang['MoveWinner2NextPhase']='Move Winner to next phase'; $lang['MoveWinner2PoolA']='Move Winner against winner of Pool A'; $lang['MoveWinner2PoolB']='Move Winner against winner of Pool B'; @@ -795,9 +816,11 @@ $lang['OrisStatsIndividual']='Statistics (C85A)'; $lang['OrisStatsTeam']='Statistics (C85B+C)'; $lang['OrisTeamList']='Oris Team List'; +$lang['OtherCountriesCoachingToo']='Include Entries from other countries in Coaches selection'; $lang['OtherTourCategory']='Other'; $lang['OutdoorTourCategory']='Outdoor Tournament'; $lang['OverwritePreviousArchers']='Overwrite Previous Archers'; +$lang['OvrBioAchievements']='Athletes Achievements'; $lang['OvrMatchesMessages']='OVR Matches Signals'; $lang['OvrRefresh']='Refresh Page (no send)'; $lang['OvrSendSerial']='Send to OVR (Serial)'; @@ -970,6 +993,7 @@ $lang['RunningEvents']='Running Events Setup'; $lang['RunningTotal']='Running Total'; $lang['RunNumber']='Run $a'; +$lang['SaveSelectionAsFile']='Save Selection as File'; $lang['SB-Record']='Seasonal Best'; $lang['ScanAthleteFirst']='Scan Athlete First'; $lang['SchAddRank']='Add Qual. Rank'; @@ -1201,7 +1225,7 @@ $lang['TargetShort']='T#'; $lang['TargetsToHHt']='Send Target assignment instead of Names'; $lang['TargetTo']='Ending Target'; -$lang['TeamClEvent']='Team Qual.'; +$lang['TeamClEvent']='Team Div./Class'; $lang['TeamComponentForm']='Team Component Form'; $lang['TeamComponentsLog']='Team Line-up Changes'; $lang['TeamComponentsNext']='Revised Line-up'; @@ -1213,12 +1237,12 @@ $lang['TeamCreationMode_2']='Always 2nd Team'; $lang['TeamCreationMode_3']='Always 3rd Team'; $lang['TeamFin']='Team - Elim. & Final Round'; -$lang['TeamFinEvent']='Team Final'; +$lang['TeamFinEvent']='Team Events'; $lang['TeamLoaded']='Team Matches Loaded for schedule {$a}'; $lang['TeamManagerSignature']='Team Manager Signature'; $lang['TeamPlace']='Team place signs'; $lang['TeamPlaceLocal']='Team place signs (localised)'; -$lang['TeamQual']='Team - Qual. Round'; +$lang['TeamQual']='Team - Division/Class'; $lang['TeamShootingOrder']='Team Component Shooting Order'; $lang['TecDelegate']='Technical Delegate'; $lang['Text']='Text'; @@ -1343,6 +1367,7 @@ $lang['TVCss3RankNone']='Rank None'; $lang['TVCss3RankOld']='Rank old'; $lang['TVCss3RankUp']='Rank Up'; +$lang['TVCss3Schedule']='Schedule'; $lang['TVCss3Score']='Score'; $lang['TVCss3Session']='Session'; $lang['TVCss3SpecificSettings']='This page specific settings. Use the CSS3 syntax for the element'; @@ -1438,6 +1463,7 @@ $lang['TVViewNationNameDescr']='Toggles the display of the athlete\'s Nation/Club'; $lang['TVViewPartials']='View Distances\' Scores'; $lang['TVViewPartialsDescr']='Toggles the display of the scores of all distances'; +$lang['TvViewSCHED']='Show Schedule'; $lang['TvViewTEAM']='View Team Column'; $lang['TvViewTIT2ROWS']='Title on 2 rows'; $lang['TvViewTOT']='View Grand Total'; @@ -1510,7 +1536,9 @@ $lang['UserDetails']='User Details'; $lang['UserEnabled']='Enabled'; $lang['UserName']='Username'; -$lang['UserPassword']='Password'; +$lang['UserPassword']='New Password'; +$lang['UserPasswordOld']='Old Password'; +$lang['UserPasswordRetype']='Re-Type New Password'; $lang['UseSubClasses']='Apply to specific subclasses'; $lang['ValidClass']='Assignable Classes'; $lang['ValidDivisions']='Alllowed Div. (empty for all)'; @@ -1536,6 +1564,7 @@ $lang['WarmUpMins']='Warm Up (min.)'; $lang['WarmupTargets']='Warm Up targets'; $lang['Warning']='Warning!'; +$lang['Went2Home']='Forfeit'; $lang['WheelChair']='Wheel Chair'; $lang['WheelchairShort']='W'; $lang['Wikipedia']='Wikipedia'; diff --git a/src/Common/Languages/es-ar/Api.php b/src/Common/Languages/es-ar/Api.php index b2010ff9..b7ce0b5d 100644 --- a/src/Common/Languages/es-ar/Api.php +++ b/src/Common/Languages/es-ar/Api.php @@ -3,30 +3,53 @@ $lang['API-Group']='Grupo'; $lang['API-TargetGrouping']='Agrupación de Contenciones'; $lang['API-Targets']='Contenciones'; +$lang['AskSignature-0']='No'; +$lang['AskSignature-1']='Escanear ID Arquero'; $lang['CmdDelete']='Eliminar'; $lang['CmdImport']='Importar'; +$lang['Controller']='Controlador'; +$lang['DataRefresh']='Refrescar Datos'; +$lang['Desc-Let-4']='Puntuación en proceso'; $lang['Desc-Let-G']='Lugar vacío'; -$lang['Desc-Let-Y']='Tanda lista para importar'; +$lang['Desc-Let-Y']='Ronda lista para importar'; $lang['Desc-Let-Z']='Puntuación en progreso'; +$lang['DevConnected']='Conectado'; +$lang['DevDisconnected']='Desconectado'; +$lang['DistanceNum']='distancia $a'; +$lang['FieldMonitor']='Monitor de Campo'; +$lang['FlashCodeDistance']='Escanear éste código con la App para puntuar la serie $a'; $lang['ISK-Anomalies']='Anomalias'; +$lang['ISK-AppInfo']='Información de la Aplicación'; +$lang['ISK-AppQrCode']='Imprimir Códigos QR para Instalación'; $lang['ISK-ApproveConfig']='Aprobar configuración'; $lang['ISK-AuthRequest']='Solicitud de Autorización'; $lang['ISK-BadCompCode']='Código de Competencia Incorrecto'; $lang['ISK-CheckAlive']='Verifique Dispositivo'; $lang['ISK-checkCompeting']='Solo Arqueros en Competencia'; $lang['ISK-checkGate']='Comprobar Flujo (Entrada/Salida)'; +$lang['ISK-ConnectionStatus']='Estado de la Conexión'; +$lang['ISK-DeleteDevices']='Eliminar Dispositivos'; $lang['ISK-DenyAccess']='Acceso Denegado'; +$lang['ISK-Deprecated']='IMPORTANTE: la aplicación "Ianseo Score Keeper" se eliminará gradualmente de las tiendas de Android y Apple y ya no es compatible, por lo que se eliminará de Ianseo en septiembre de 2024. Cambie a la nueva aplicación "Ianseo Score Keeper NG".'; +$lang['ISK-DeviceAlive']='En línea'; $lang['ISK-DeviceBattery']='Batería'; +$lang['ISK-DeviceEnabled']='Hablitado'; $lang['ISK-DeviceId']='ID Dispositivo'; $lang['ISK-DeviceIpAddress']='Dirección IP'; $lang['ISK-DeviceLastSeen']='Ultimo Visto'; $lang['ISK-DeviceStatus']='Estado'; +$lang['ISK-DeviceStatusWanted']='Forzar nuevo Estado'; +$lang['ISK-DeviceUsed']='En uso'; $lang['ISK-enableGPS']='Enviar Ubicación Dispositivo'; $lang['ISK-EnableScore']='Habilitar Ianseo ScoreKeeper'; $lang['ISK-enableTotals']='Habilitar Vista Total en Dispositivos'; +$lang['ISK-enableWIFIManagement']='Autorizar ISK para gestionar dispositivo Wi-Fi'; +$lang['ISK-ExportDevices']='Exportar Dispositivos'; $lang['ISK-ForceConfirm']='Forzar confirmación dispositivo'; $lang['ISK-Gps']='Ubicación GPS'; $lang['ISK-gpsFrequency']='Frecuencia Actualización'; +$lang['ISK-hideTotals']='Ocultar totales'; +$lang['ISK-ImportDevices']='Importar Dispositivos'; $lang['ISK-LicenseEmail']='Email registrado ISK Pro'; $lang['ISK-LicenseNumber']='Número de Licencia ISK Pro'; $lang['ISK-Lite-Name']='Ianseo ScoreKeeper Lite'; @@ -35,6 +58,10 @@ $lang['ISK-Lite-ServerUrl']='URL Servidor (incluyendo protocolo y puerto si no es 80)'; $lang['ISK-Live-Name']='Ianseo ScoreKeeper LIVE'; $lang['ISK-Name']='Ianseo ScoreKeeper'; +$lang['ISK-Ng-Name']='Ianseo ScoreKeeper NG'; +$lang['ISK-NG-QRCode']='Imprimir Código QR para Ianseo ScoreKeeper NG'; +$lang['ISK-NgLive-Name']='Ianseo ScoreKeeper NG - Opciones LIVE'; +$lang['ISK-NgPro-Name']='Ianseo Scorekeeper NG - Opciones PRO'; $lang['ISK-NoCompCode']='Falta Código de Competencia'; $lang['ISK-onlyAccreditated']='Acreditación Validada'; $lang['ISK-OnlyProAloud']='Solo aplicaciones Pro están permitidas en esta competencia!'; @@ -44,9 +71,15 @@ $lang['ISK-ReloadConfig']='Recargar configuración'; $lang['ISK-Remove']='Eliminar'; $lang['ISK-RequiresApproval']='Requiere aprobación'; +$lang['ISK-RunInBackground']='Correr en Segundo plano'; $lang['ISK-SendQrSetup']='Enviar Código QR de Configuración'; $lang['ISK-ServerUrl']='URL Servidor (incluyendo protocolo y puerto si no es 80)'; +$lang['ISK-ServerUrlPin']='PIN de Seguridad de la Competencia'; $lang['ISK-SetQRData']='Configurar Dispositivo usando Código QR'; +$lang['ISK-SettingsPIN']='Configurar PIN'; +$lang['ISK-SETUP-11']='Configuración ISK-NG Lite'; +$lang['ISK-SETUP-12']='Configuración ISK-NG Pro'; +$lang['ISK-SETUP-13']='Configuración ISK-NG Live'; $lang['ISK-showPictures']='Mostrar Imágenes'; $lang['ISK-SocketAction']='Acción'; $lang['ISK-SocketIP']='Web Socket IP (para Dispositivos)'; @@ -54,7 +87,10 @@ $lang['ISK-SocketPort']='Puerto Web Socket'; $lang['ISK-StatusNoShoot']='Dispositivo no puede puntuar'; $lang['ISK-StatusOK']='Configuración del dispositivo OK'; +$lang['ISK-StatusReloading']='Cargando configuración'; $lang['ISK-StatusWaitConfirm']='Esperando confirmación del dispositivo'; +$lang['ISK-UsePersonalDevices']='Usar Dispositivos Personales'; +$lang['ISK-VibrateUpdate']='Vibrar al Actualizar'; $lang['ISK-WiFi']='Preferencias WiFi'; $lang['ISK-WifiDELETE']='Eliminar otro Wi-Fi del dispositivo de puntuación'; $lang['ISK-WifiPWD']='Contraseña Wi-Fi (Solo WPA. WEP no soportado)'; @@ -63,20 +99,32 @@ $lang['ISK-WifiSwitchLvl']='Nivel Switch WiFi (dBm)'; $lang['ISK-WifiTargetRange']='Wifi Preferido para contención'; $lang['IskDeviceAssigned']='Dispositivo(s)'; +$lang['IskScoringDevice']='Dispositivo $a no está autorizado para puntuar en éste turno/competencia!'; $lang['IskSpuriousScore-Device']='Dispositivo $a[0] enviando puntajes de la contención $a[1] de la fase $a[2]'; $lang['IskSpuriousScore-Distance']='Dispositivo $a[0] está puntuando en ronda $a[1]'; -$lang['IskSpuriousScore-End']='Dispositivo $a[0] está puntuando en tanda $a[1]'; +$lang['IskSpuriousScore-End']='Dispositivo $a[0] está puntuando en ronda $a[1]'; $lang['IskTargetTitle']='Contención $a'; +$lang['IskUnknownDevice']='Dispositivo desconocido en contención $a'; +$lang['LockAll']='Bloquear todos los Turnos'; $lang['Masters']='Maestros'; +$lang['PartialImportAll']='Importar TODO'; $lang['PopupStatusDistance']='Ronda: $a'; -$lang['PopupStatusEnd']='Tanda: $a'; +$lang['PopupStatusEnd']='Ronda: $a'; $lang['PopupStatusEvent']='Prueba: $a'; $lang['PopupStatusPhase']='Fase: $a'; $lang['PopupStatusSession']='Turno: $a'; +$lang['Preparing']='Preparando Archivo...'; +$lang['QrCodeWidth']='Ancho Código QR'; $lang['RasIpAddress']='Dirección IP'; $lang['RasLastSeen']='Ultima conexión'; $lang['RaspControl']='Control Raspberry'; $lang['RaspDevice']='Dispositivo'; +$lang['RecalcManually']='Manualmente'; +$lang['ScorerNum']='Planillero $a'; +$lang['ScoringCount']='Puntuando #'; +$lang['UnlockAll']='Desbloquear todos los Turnos'; +$lang['UsePersonalDevices-Granted']='Personal'; $lang['WAToolbox-MissingParams']='Parámetro Faltante'; $lang['WAToolbox-NoCompCode']='Falta Código de Competencia'; +$lang['XToWin']='$a para ganar'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/BackNumbers.php b/src/Common/Languages/es-ar/BackNumbers.php index 297ba179..384ab26a 100644 --- a/src/Common/Languages/es-ar/BackNumbers.php +++ b/src/Common/Languages/es-ar/BackNumbers.php @@ -17,9 +17,12 @@ $lang['AthQrCode']='Código Arquero (Código QR)'; $lang['AutoCheckin']='Registro Automático'; $lang['AutoCHK-Camera']='Usar Cámara para leer Códigos QR'; +$lang['AutoCHK-CanEdit']='Editar Entradas'; $lang['AutoCHK-Code']='Código Competencia'; $lang['AutoCHK-Confirm']='Confirmar Registro'; $lang['AutoCHK-IP']='IPs de los Dispositivos de Registro Automático (uno por línea)'; +$lang['AutoCHK-IPinfo']='Puntos de Información'; +$lang['AutoCHK-IPnoMgm']='Locales de Autoservicio'; $lang['AutoCHK-Names']='Verificar también Nombre/Apellido'; $lang['AutoCHK-nobody']='Nadie con éste Código se encuentra en la Base de Datos...POR FAVOR, DIRIJASE AL ESCRITORIO'; $lang['AutoCHK-Print']='Imprimir acreditaciones automáticamente'; @@ -51,6 +54,7 @@ $lang['Bold']='Negrita'; $lang['Category']='Categoría'; $lang['CharColor']='Color Letra'; +$lang['CharSize']='Tamaño Letra
    (- Factor Espaciado)'; $lang['CharType']='Tipo de Letra'; $lang['CheckBarcodeSeparator']='Verificar Separador Código de Barras'; $lang['Club']='Detalle del País/Club'; @@ -80,17 +84,26 @@ $lang['FamCaps']='APELLIDO'; $lang['FamCaps-GAlone']='APELLIDO N.'; $lang['FamCaps-GivCamel']='APELLIDO Nombre'; +$lang['FamCaps-GivCamel-ClubCamel']='APELLIDO Nombre, País'; +$lang['FamCaps-GivCamel-ClubCaps']='APELLIDO Nombre, PAIS'; $lang['FamCaps-GivCaps']='APELLIDO NOMBRE'; +$lang['FamCaps-GivCaps-ClubCaps']='APELLIDO NOMBRE, PAIS'; +$lang['FinPosition']='Posición Final'; $lang['Flag']='Bandera País/Club'; $lang['GAlone-FamCamel']='N. Apellido'; $lang['GAlone-FamCaps']='N. APELLIDO'; $lang['GivCamel']='Nombre'; $lang['GivCamel-FamCamel']='Nombre Apellido'; +$lang['GivCamel-FamCamel-ClubCamel']='Nombre Apellido, País'; $lang['GivCamel-FamCaps']='Nombre APELLIDO'; +$lang['GivCamel-FamCaps-ClubCamel']='Nombre APELLIDO, País'; +$lang['GivCamel-FamCaps-ClubCaps']='Nombre APELLIDO, PAIS'; $lang['GivCaps']='NOMBRE'; $lang['GivCaps-FamCaps']='NOMBRE APELLIDO'; +$lang['GivCaps-FamCaps-ClubCaps']='NOMBRE APELLIDO, PAIS'; $lang['GivenNameInitial']='1er Letra del Nombre'; $lang['Heigh']='Altura'; +$lang['HLayout']='Horizontal'; $lang['HLine']='Línea Horizontal'; $lang['I-Badge']='Dorsal para Final Individual'; $lang['IdCardHor']='de ancho'; @@ -118,14 +131,19 @@ $lang['Offest2nd']='Segundo Dorsal en espejo (si es necesario)'; $lang['OneLine']='En Línea'; $lang['OnlyAthletes']='Solo Arqueros'; +$lang['OpenPictureScreen']='Abrir Pantalla Secundaria'; $lang['PageDimension']='Tamaño de Página'; $lang['PaperDimention']='Tamaño de Hoja'; +$lang['PhaseFrom']='Desde Etapa'; +$lang['PhaseTo']='A Etapa'; $lang['Picture']='Foto Arquero'; $lang['Portrait']='Retrato'; $lang['PosX']='Posición (X)'; $lang['PosY']='Posición (Y)'; $lang['PrintSpecificBadges']='Imprimir el Diseño Seleccionado'; $lang['Q-Badge']='Dorsal Para Clasificación'; +$lang['QRScore']='Puntaje Ronda Clasificatoria'; +$lang['QualPosition']='Posición Clasificatoria'; $lang['RandomImage']='Imagen Aleatoria'; $lang['Ranking']='Posiciones Clasificación'; $lang['ReadSeparator']='Leer Separador'; @@ -143,5 +161,8 @@ $lang['ToRight']='Logo Competencia (Derecha)'; $lang['TVViewIdCard']='Ver Acreditaciones'; $lang['TVViewIdCardDescr']='En modo vista de encuentros proporciona la identificación de los 2 oponentes en lugar de las filas "estandar"'; +$lang['VLayout']='Vertical'; $lang['Width']='Ancho'; +$lang['Y-Badge']='Diploma (Individual)'; +$lang['Z-Badge']='Diploma (Equipo)'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/Boinx.php b/src/Common/Languages/es-ar/Boinx.php index 3287db58..18d04c41 100644 --- a/src/Common/Languages/es-ar/Boinx.php +++ b/src/Common/Languages/es-ar/Boinx.php @@ -1,4 +1,20 @@ Las siguientes pruebas deben ser resueltas antes de ser visualizadas!'; $lang['Individual']='Individual'; +$lang['IndTeam-0']='Individual'; +$lang['IndTeam-1']='Equipos'; +$lang['InitEliminations']='Iniciar Eliminatorias'; +$lang['InitEliminations1']='Iniciar 1er Ronda Eliminatoria'; +$lang['InitEliminations2']='Iniciar 2da Ronda Eliminatoria'; +$lang['InitFinalGrids']='Inicializar Esquemas Individuales'; +$lang['InvalidAction']='Acción Inválida'; $lang['ISK-Configuration']='Gestionar Dispositivos'; $lang['ISK-GetQRData']='Obtener Datos de Código QR'; $lang['ISK-Results']='Resultados'; @@ -138,6 +155,7 @@ $lang['JM']='Junior Masculino'; $lang['jrTextArea']='Area de Texto ($a[1] filas x $a[0] colum.)'; $lang['jrYesNo']='Si / No'; +$lang['JudgeNotes']='Anotaciones del Juez'; $lang['LB']='Long Bow'; $lang['M']='Masculino'; $lang['ManFinAthTargetInd']='Arqueros por Contención para Final Individual'; @@ -158,6 +176,7 @@ $lang['MedalStanding']='Medallero'; $lang['MenuLM_Accreditation']='Acreditación'; $lang['MenuLM_Accreditation colors management']='Gestionar colores de acreditación'; +$lang['MenuLM_AdvancedFeatures']='Opciones Avanzadas'; $lang['MenuLM_Archers on Targets']='Arqueros por Contención'; $lang['MenuLM_Arr4Set']='Flechas por Set'; $lang['MenuLM_Arrow by Arrow (Advanced user)']='Flecha por Flecha (Usuario Avanzado)'; @@ -168,8 +187,11 @@ $lang['MenuLM_Athletes Sync.']='Sincronizar Archivo de Arqueros'; $lang['MenuLM_AthletesDiscrepancies']='Discrepancias en Arqueros'; $lang['MenuLM_Athlets fees status']='Situación inscripción de los arqueros'; +$lang['MenuLM_Authentication']='Autenticación de Usuarios'; $lang['MenuLM_Category Result List']='Imprimir Resultados por Categoría'; +$lang['MenuLM_Change Components']='Cambiar Componentes'; $lang['MenuLM_ChangeNationsNames']='Cambiar Nombre de los Paises'; +$lang['MenuLM_ChangePassword']='Cambiar Contraseña'; $lang['MenuLM_Check Data Update']='Verificar Actualización de Datos'; $lang['MenuLM_Check shoot-off before eliminations']='Verificar Shoot-off antes de las eliminatorias'; $lang['MenuLM_Check shoot-off before final phases']='Resolver Desempates antes de las Fases Finales'; @@ -208,6 +230,7 @@ $lang['MenuLM_Extended Table']='Tabla de Inserción Extendida'; $lang['MenuLM_ExtraDataEdit']='Editar Datos Adicionales'; $lang['MenuLM_Fees setup']='Configurar Tarifas de las Inscripciones'; +$lang['MenuLM_Field Crew']='Personal de Campo'; $lang['MenuLM_Final Field of Play Layout']='Diseño del Campo de Tiro'; $lang['MenuLM_Final report']='Informe Final'; $lang['MenuLM_Final Rounds']='Serie Final'; @@ -228,11 +251,13 @@ $lang['MenuLM_Individual Finals']='Finales Individuales'; $lang['MenuLM_Input Score']='Introducción de Puntajes'; $lang['MenuLM_Internet Preview']='Vista Previa Internet'; +$lang['MenuLM_IrmManagement']='Gestionar Situación IRM'; $lang['MenuLM_LastShootoff']='Último shoot-off'; $lang['MenuLM_List (Simple)']='Inscripción de participantes (Simple)'; $lang['MenuLM_ListLoad']='Cargar Lista (Importar Hoja de Cálculo)'; $lang['MenuLM_Lock manage']='Gestión de Acceso a la Red'; $lang['MenuLM_Lock setup']='Bloquear edición'; +$lang['MenuLM_Logout']='Salir'; $lang['MenuLM_LueFill']='Crear Búsqueda desde Archivo'; $lang['MenuLM_Manage Events']='Definir las Pruebas'; $lang['MenuLM_ManAwards']='Gestión de la Ceremonia de Premiación'; @@ -285,6 +310,7 @@ $lang['MenuLM_Standard Table']='Tabla de Inserción Normal'; $lang['MenuLM_Statistics']='Estadísticas'; $lang['MenuLM_SubClasses']='Sub Clases'; +$lang['MenuLM_Swaps']='Intercambiar Oponentes'; $lang['MenuLM_Synchronize']='Sincronizar InfoSystem'; $lang['MenuLM_Target']='Contención'; $lang['MenuLM_Target Assignment']='Asignar de Contención'; @@ -294,7 +320,7 @@ $lang['MenuLM_TargetAssignmentSecond']='Asignación contención segunda fase'; $lang['MenuLM_TargetAssignmentThird']='Asignación contención tercera fase'; $lang['MenuLM_TargetFromRank']='Asignar Contención por Clasificación'; -$lang['MenuLM_Targets']='Gestión de Contenciones'; +$lang['MenuLM_Targets']='Gestión de Blancos'; $lang['MenuLM_Team Final Setup']='Configuración Final por Equipos'; $lang['MenuLM_Team Finals']='Finales por Equipo'; $lang['MenuLM_Training']='Programación de calentamiento'; @@ -324,12 +350,16 @@ $lang['Month_8']='Sep'; $lang['Month_9']='Oct'; $lang['MsgAreYouSure']='Está seguro?'; +$lang['MsgAttentionFinReset']='ADVERTENCIA!
    ¡¡¡ESTA OPERACIÓN NO PUEDE SER DESHECHA !!!
    Todos los datos en los esquemas individual y de equipos serán eliminados.
    Por lo general, esta operación es necesaria si hubo errores en la ronda de clasificación o en los procedimientos de shoot-off.
    Continuar?'; $lang['MsgImportError']='Error!
    Imposible Importar Datos!'; $lang['MsgImportOk']='Importación Cancelada!'; +$lang['MsgInitFinalGridsError']='Error!
    Los esquemas no están vacíos!'; $lang['MsgInitFinalGridsOk']='Inicialización Satisfactoria!'; +$lang['MsgInitFinalGridsRunningError']='Operación no permitida mientras el evento se está ejecutando'; $lang['MsgNeedInitGrids']='Error!
    Esquema no inicializado!'; $lang['MsgNeedShootOff']='Error!
    Primero debe verificar los shoot-off!'; -$lang['MsgRowMustBeComplete']='ADVERTENCIA!
    Debe completar toda la fila antes de continuar!'; +$lang['MsgRowMustBeComplete']='ADVERTENCIA!
    Debe completar toda la fila antes de continuar!'; +$lang['MW']='Master Femenino'; $lang['MySqlCollation']='general'; $lang['Nation']='País/Fed./Club'; $lang['NextMatchNames']='Nombres para Próx. Fase'; @@ -346,6 +376,7 @@ $lang['NumberThousandsSeparator']='.'; $lang['OL']='Arco Recurvo'; $lang['Open']='Abrir'; +$lang['OpponentsPerTarget']='Oponentes por Contención'; $lang['Partecipants']='Participantes'; $lang['Partecipation']='Participación en la Competencia'; $lang['PartialTeam']='Equipo No Completo'; @@ -359,8 +390,10 @@ $lang['RankingInd']='Eliminatorias y Serie Final - Posiciones Individuales'; $lang['Rankings']='Posiciones'; $lang['RankingSq']='Eliminatorias y Serie Final - Posiciones por Equipos'; +$lang['RankScoreShort']='Clasif.'; $lang['RB']='Arco Recurvo'; $lang['RecalcIndTeamsRank']='Clasificación Individual y por Equipos recalculada exitosamente'; +$lang['Review']='Revisar'; $lang['RevMainLang']='Idioma Principal'; $lang['RevSecLang']='Idioma Secundario'; $lang['RoundDefinition']='Definiciones de las Series'; @@ -402,6 +435,7 @@ $lang['TeamEventList']='Pruebas por Equipos'; $lang['TeamFinal']='Finales por Equipo'; $lang['Teams']='Equipos'; +$lang['TecError']='Por razones técnicas no es posible mostrar la página requerida'; $lang['TF']='Equipo Femenino'; $lang['TimeFmt']='%H:%i'; $lang['TM']='Equipo Masculino'; @@ -417,13 +451,22 @@ $lang['TrgHunterNor']='Cazador (Noruega)'; $lang['TrgIndComplete']='Salón (1-10 grande)'; $lang['TrgIndSmall']='Salón (6-10 grande)'; +$lang['TrgLancaster']='Lancaster (1-11)'; +$lang['TrgLancShootUp']='Lancaster (+12)'; $lang['TrgNfaaInd']='Salón NFAA (1-5/X)'; $lang['TrgOutdoor']='Aire Libre (1-X)'; $lang['TrgProAMIndNfaa']='Salón ProAM - Blanco NFAA (1-5/X.6)'; $lang['TrgProAMIndVegas']='Salón ProAM - Blanco Vegas (1-10/X.11)'; $lang['TrgProAMIndVegasSmall']='Salón ProAM - Blanco Vegas (6-10/X.11)'; $lang['U']='Unisex'; +$lang['U18M']='U18 Masculinos'; +$lang['U18W']='U18 Femenino'; +$lang['U21M']='U21 Masculino'; +$lang['U21W']='U21 Femenino'; $lang['UnexpectedError']='Error Inesperado'; +$lang['VF']='Supermaster Femenino'; +$lang['VM']='Supermaster Masculino'; +$lang['W']='Femenino'; $lang['Winner']='Ganador'; $lang['Yes']='Si'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/Errors.php b/src/Common/Languages/es-ar/Errors.php index f12753f3..c686b951 100644 --- a/src/Common/Languages/es-ar/Errors.php +++ b/src/Common/Languages/es-ar/Errors.php @@ -1,4 +1,7 @@ Actualice su instalación lo antes posible para que sea compatible con PHP {$a} o superior.'; +$lang['ServiceNotAvailable']='Servicio No Disponible'; $lang['TooManyElimQualified']='Series de tipo $a[0] solo pueden aceptar hasta $a[1] arqueros'; +$lang['WrongPort']='Puerto no soportado!'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/HTT.php b/src/Common/Languages/es-ar/HTT.php index c0540b97..b5ccbafe 100644 --- a/src/Common/Languages/es-ar/HTT.php +++ b/src/Common/Languages/es-ar/HTT.php @@ -33,13 +33,14 @@ $lang['Mode']='Modo'; $lang['Name']='Nombre'; $lang['OpenFile']='Abrir Archivo'; -$lang['OvrErrSelectSession']='No hay Tanda Seleccionada!'; +$lang['OvrErrSelectSession']='No hay Ronda Seleccionada!'; $lang['Port']='Puerto'; $lang['QualSession']='Turno Clasif.'; $lang['Report']='Informe'; $lang['Row']='Fila'; $lang['RowImported']='Fila $a cargada'; $lang['RowNotImported']='Fila $a NO se ha cargado'; +$lang['ScoreSetup']='Configurar puntaje'; $lang['SelFile2Imp']='Seleccione Archivo para Importar'; $lang['SendInitSequence']='Enviar Secuencia de Inicio'; $lang['SeqSponsor']='Información Comercial'; @@ -49,6 +50,6 @@ $lang['Terminal']='HTT'; $lang['TerminalMode']='Modo Terminal'; $lang['TotaleScore']='Total'; -$lang['Volee']='Tanda'; -$lang['VoleeIsPresent']='Esa TANDA ya existe'; +$lang['Volee']='Ronda'; +$lang['VoleeIsPresent']='Esa RONDA ya existe'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/Help.php b/src/Common/Languages/es-ar/Help.php index 1685f406..ebf94f5b 100644 --- a/src/Common/Languages/es-ar/Help.php +++ b/src/Common/Languages/es-ar/Help.php @@ -1,6 +1,8 @@ > para activar los lectores.'; $lang['HomePage']='En esta sección usted puede seleccionar o crear una competencia.'; +$lang['ISK-LockedSessionHelp']='Los íconos {$a} muestran si la aplicación puede puntuar o no en ese turno.'; +$lang['ISK-ServerUrlPin']='NO COMPARTA ESTE NUMERO
    Use un PIN numérico (4 dígitos) para acceder a la competencia.
    Cualquier dispositivo podrá puntuar en la competencia leyendo el código QR impreso por IANSEO.
    En caso de ingresar manualmente los puntajes en Ianseo Scorekeeper LITE, el Código a usar será {$a}'; $lang['ScoreBarCodeShortcuts']='Leer el código de barras impreso en la hoja de puntuación.
    Insertando manualmente un # seguido por el nombre del arquero busca en la base de datos el nombre de ese arquero
    Insertando un @ seguido por el número de contención busca esa contención. DEBERA establecerse la ronda. Se deberá especificar el turno (primer dígito) y la contención tendrá de 0 a 3 dígitos.'; $lang['TV-ChannelSetup']='= Configuración de Canales = Después de configurar sus canales, conecte el navegador del dispositivo que quiera utilizar al canal http://IP.OF.IANSEO/tv.php?id=CHANNEL donde "IP.OF.IANSEO" es el IP del servidor donde ejecuta Ianseo (incluyendo directorio si existiera) y "CHANNEL" es el ID del canal.'; $lang['TV-RotEdit']='
    Se hace una página de presentación con al menos una página de contenido.
    Las páginas de contenido se mostrarán una después de la otra y comenzarán de nuevo.
    NOTA:en versiones regulares y ligeras, el primer contenido vuelve a mostrarse como último, por lo que es aconsejable insertar como primer contenido una imagen (por ejemplo, el logo o flyer de la competencia).
    El contenido puede ser ya sea basado en la competencia (lista de inicio, clasificación, encuentros...) o "Contenido multimedia" (imagenes, mensajes HTML,...).
    '; diff --git a/src/Common/Languages/es-ar/IOC_Codes.php b/src/Common/Languages/es-ar/IOC_Codes.php index 8fc1190b..2a057b72 100644 --- a/src/Common/Languages/es-ar/IOC_Codes.php +++ b/src/Common/Languages/es-ar/IOC_Codes.php @@ -42,19 +42,15 @@ $lang['BUL']='Bulgaria'; $lang['BUR']='Burkina Faso'; $lang['CAF']='República Centroafricana'; -$lang['CAM']='Camboya'; $lang['CAN']='Canadá'; $lang['CAY']='Islas Caiman'; $lang['CGO']='República del Congo'; $lang['CHI']='Chile'; -$lang['CHN']='China'; $lang['CMR']='Camerún'; -$lang['COD']='República Democrática del Congo'; $lang['COL']='Colombia'; $lang['CRC']='Costa Rica'; $lang['CRO']='Croacia'; $lang['CUB']='Cuba'; -$lang['CZE']='República Checa'; $lang['DEN']='Dinamarca'; $lang['DMA']='Dominica'; $lang['DOM']='República Dominicana'; @@ -72,6 +68,8 @@ $lang['GBR']='Gran Bretaña'; $lang['INA']='Indonesia'; $lang['ITA']='Italia'; +$lang['KUW']='Kuwait'; +$lang['MAW']='Malawi'; $lang['Medal-1']='Medalla Dorada'; $lang['Medal-2']='Medalla de Plata'; $lang['Medal-3']='Medalla de Bronce'; @@ -79,7 +77,10 @@ $lang['MGL']='Mongolia'; $lang['NOR']='Noruega'; $lang['NZL']='Nueva Zelanda'; +$lang['PNG']='Papua Nueva Guinea'; +$lang['RWA']='Rwanda'; $lang['SUI']='Suiza'; $lang['SWE']='Suecia'; $lang['TRI']='Trinidad y Tobago'; +$lang['ZIM']='Zimbabwe'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/ISK-App.php b/src/Common/Languages/es-ar/ISK-App.php new file mode 100644 index 00000000..a7c01889 --- /dev/null +++ b/src/Common/Languages/es-ar/ISK-App.php @@ -0,0 +1,181 @@ + \ No newline at end of file diff --git a/src/Common/Languages/es-ar/ISK.php b/src/Common/Languages/es-ar/ISK.php index 075b98c2..6b23275c 100644 --- a/src/Common/Languages/es-ar/ISK.php +++ b/src/Common/Languages/es-ar/ISK.php @@ -26,6 +26,8 @@ $lang['CacheSendNone']='No hay elementos en caché para enviar'; $lang['CacheSendOK']='Cache enviado exitosamente! __TEXT__ items enviados'; $lang['CacheToQr']='Crear QR desde caché'; +$lang['CalculateNow']='Calcular Ahora'; +$lang['CalculateNowDone']='Ranking recalculado'; $lang['Cancel']='Cancelar'; $lang['CantConfirmQr']='No se pudo realizar la llamada para confirmar el código QR. Intente nuevamente. Error __TEXT__'; $lang['CantGetAthlete']='No se pudo recuperar la información del arquero. Intente nuevamente. Error __TEXT__'; @@ -73,15 +75,15 @@ $lang['DistTotal']='Total
    Ronda'; $lang['EditScores']='Editar Puntajes'; $lang['Elimination']='Eliminatorias'; -$lang['EmptyEndAlert']='La tanda anterior no ha sido puntuada. Está seguro de puntuar ésta flecha en ésta tanda?'; +$lang['EmptyEndAlert']='La ronda anterior no ha sido puntuada. Está seguro de puntuar ésa flecha en ésta ronda?'; $lang['EmptyResponse']='Sin respuesta del servidor'; -$lang['End']='Tanda'; -$lang['EndLocked']='Esta tanda está bloqueada y no puede ser modificada.'; -$lang['EndSummary']='Resumen de Tanda'; -$lang['EndTotal']='Total
    Tanda'; +$lang['End']='Ronda'; +$lang['EndLocked']='Esta ronda está bloqueada y no puede ser modificada.'; +$lang['EndSummary']='Resumen de Rondas'; +$lang['EndTotal']='Total
    Ronda'; $lang['EnterCompCode']='Ingrese el código de la competencia e intente nuevamente'; $lang['EnterServerUrl']='Por favor ingrese URL del servidor e intente nuevamente'; -$lang['EntryEnd']='Seleccione tanda donde quiera ir'; +$lang['EntryEnd']='Seleccione ronda donde quiere ir'; $lang['EntryTarget']='Ingrese el número de contención'; $lang['ErrorClearArrows']='No se pudieron eliminar los valores de las flechas. Intente nuevamente. Error __TEXT__'; $lang['ErrorGetAthlete']='No se pudo recuperar la información del arquero. Error __TEXT__'; @@ -96,15 +98,18 @@ $lang['ExitConfirm']='Está seguro que desea salir de la aplicación?'; $lang['Face']='Blanco'; $lang['FirstTarget']='Primer Contención:'; -$lang['GestureHelp']='Puede desplazarse entre arqueros y/o tandas usando los gestos descritos más abajo.'; +$lang['GestureHelp']='Puede desplazarse entre arqueros y/o rondas usando los gestos descritos más abajo.'; $lang['Gestures']='Gestos'; $lang['GoSetupAlert']='Está seguro que desea volver a la pantalla de configuración?'; $lang['Group']='Grupo #'; $lang['HasUpdate']='Actualizar'; $lang['Help']='Ayuda'; +$lang['ImportDoneEmpty']='Nada para importar.'; +$lang['ImportDoneMatches']='Importación finalizada. Recalculado Ranking Final Individual y por Equipos'; +$lang['ImportNow']='Importar Ahora (Clasificación)'; $lang['IpAddr']='Dirección IP'; -$lang['LastEndDist']='La última tanda de la ronda ha sido completada. Para continuar a la próxima ronda presione OK, sino presione Cancelar para permanecer en la ronda actual.'; -$lang['LastEndSession']='La última tanda para éste turno ha sido completada. No existen más tandas. Puede verificar las Hojas de Puntuación o volver a la Configuración.'; +$lang['LastEndDist']='La última ronda de la serie ha sido completada. Para continuar a la próxima ronda presione OK, sino presione Cancelar para permanecer en la ronda actual.'; +$lang['LastEndSession']='La última ronda para éste turno ha sido completada. No existen más rondas. Puede verificar las Hojas de Puntuación o volver a la Configuración.'; $lang['LinkSpeed']='Velocidad de Conexión'; $lang['LRSwipeLabel']='Sensibilidad Desplazamiento Izq./Der.'; $lang['LRSwipeText']='Longitud de movimiento del dedo al realizar un desplazamiento. Mueva el control deslizante o toque el valor que desea usar. A valor más pequeño es más sensible.'; @@ -122,6 +127,7 @@ $lang['NoAthletes']='No se encontraron arqueros'; $lang['NoDist']='No se encontraron rondas'; $lang['NoLangInfo']='No se puede recuperar información del idioma. __TEXT__'; +$lang['NoLanguages']='Inglés es el único idioma disponible en éste momento. Utilice la función de actualización de idiomas del menú para agregar otros idiomas e intente nuevamente.'; $lang['NoServerUrl']='Debe escanear código QR o ingresar manualmente URL de Ianseo antes de actualizar los idiomas.'; $lang['NotAvailIos']='No disponible para iOS'; $lang['Number']='Cantidad'; @@ -134,12 +140,14 @@ $lang['Prefs']='Preferencias del Usuario'; $lang['PrevDistAlert']='Volver a la ronda anterior?'; $lang['ProDiag']='Diagnosticar'; -$lang['ProEnd']='Elegir Tanda'; +$lang['ProEnd']='Elegir Ronda'; $lang['ProRecvCode']='Configuración Recibida'; $lang['proScanQr']='Escanear código QR'; $lang['ProWaitAuth']='Esperando autorización'; $lang['ProWaitCode']='Esperando configuración'; $lang['QrInvalid']='No se puede entender el contenido del código de barras. Intente de nuevo con un código de barras válido para Ianseo.'; +$lang['QrIskLive']='La competición está configurada para utilizar Scorekeeper LIVE. Esta aplicación sólo funcionará con competiciones Lite o Pro.'; +$lang['QrIskNone']='Esta competencia no está configurada para usar ScoreKeeper. Verifique la Configuración.'; $lang['QrNoCode']='No se encontró el código de la competencia en el código de barras. Ingrese nuevamente con un código de barras válido para Ianseo.'; $lang['Reset']='Reiniciar'; $lang['ReuseProQR']='Se encontró un código QR Pro anterior. Usar éste código?'; @@ -154,8 +162,10 @@ $lang['ScanQRCode']='Escanear código QR'; $lang['Score']='Puntaje'; $lang['Scorecard']='Hoja de Puntuación'; +$lang['ScorecardsManagement']='Gestionar Hoja de Puntuación'; $lang['ScoredPoints']='Puntos Anotados'; $lang['ScoreHelp']='Ayuda'; +$lang['ScoreHelpDesc']='Esta pantalla permite el ingreso de los puntos de cada flecha disparada. También se muestra información sobre la ronda actual, tipo de contención e información del arquero. Ingrese los valores de las flechas usando el teclado numérico.'; $lang['ScoringEntry']='Introducción de Puntajes'; $lang['SelDist']='Por favor seleccione la ronda e intente de nuevo'; $lang['SelTgtNum']='Por favor seleccione el número de contención e intente de nuevo'; @@ -175,10 +185,10 @@ $lang['StageQ']='Clasificaciones'; $lang['Status']='Estado:'; $lang['Superuser']='Super Usuario'; -$lang['SwipeDown']='Desplazamiento Abajo
    Desplaza hacia la tanda anterior del actual arquero.'; -$lang['SwipeLeft']='Desplazamiento Izquierda
    Desplaza hacia el próximo arquero, de la contención o grupo, dentro de la misma tanda.'; -$lang['SwipeRight']='Desplazamiento Derecha
    Desplaza hacia el arquero anterior, de la contención o grupo, dentro de la misma tanda.'; -$lang['SwipeUp']='Desplazamiento Arriba
    Desplaza hacia la próxima tanda del actual arquero.'; +$lang['SwipeDown']='Desplazamiento Abajo
    Desplaza hacia la ronda anterior del actual arquero.'; +$lang['SwipeLeft']='Desplazamiento Izquierda
    Desplaza hacia el próximo arquero, de la contención o grupo, dentro de la misma ronda.'; +$lang['SwipeRight']='Desplazamiento Derecha
    Desplaza hacia el arquero anterior, de la contención o grupo, dentro de la misma ronda.'; +$lang['SwipeUp']='Desplazamiento Arriba
    Desplaza hacia la próxima ronda del actual arquero.'; $lang['TapToScan']='Presione para escanear'; $lang['Target']='Contención #'; $lang['TargetEntry']='Ingreso Manual de Puntos'; @@ -186,6 +196,7 @@ $lang['Tgt']=' 
    Ctc'; $lang['Total']='Total'; $lang['Unknown']='Desconocido'; +$lang['UnlockAll']='Desbloquear todo el Turno'; $lang['Update']='Actualizar'; $lang['UpdateLang']='Actualizar Idiomas'; $lang['Url']='URL:'; diff --git a/src/Common/Languages/es-ar/Ianseo.php b/src/Common/Languages/es-ar/Ianseo.php index c493cc45..bd8298ef 100644 --- a/src/Common/Languages/es-ar/Ianseo.php +++ b/src/Common/Languages/es-ar/Ianseo.php @@ -7,4 +7,5 @@ $lang['Cert-Level4']='Curso de Maestría'; $lang['Cert-Level5']='Equipo de Ianseo'; $lang['CertificateManagement']='Gestión de Certificados'; +$lang['GenerateFile']='Crear Archivo'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/InfoSystem.php b/src/Common/Languages/es-ar/InfoSystem.php index 2c97a7c3..7ad462a3 100644 --- a/src/Common/Languages/es-ar/InfoSystem.php +++ b/src/Common/Languages/es-ar/InfoSystem.php @@ -1,4 +1,6 @@ Publique los resultados gratis:
    con una conexión a Internet, puede mostrar al mundo lo que sucede durante su competencia. Es gratuito. Una vez creada la competencia, solicite el código a través del menú <<{$a}>>.'; +$lang['Host']='Host'; $lang['Install-0']='ERROR CRITICO'; $lang['Install-0 Title']='Acuerdo de Licencia GPL3'; $lang['Install-1 Title']='Licencia GPL'; @@ -56,13 +64,13 @@ $lang['NoDowngrade']='No es posible degradar su instalación. Si así lo desea, instale una versión nueva de Ianseo SOBRE UNA BASE DE DATOS DIFERENTE.'; $lang['NoSubRules']='Sin subreglas'; $lang['NotFound']='No Encontrado'; -$lang['NothingToDo']='Su instalación de Ianseo está actualizada. Verifique cada tanto la existencia de nuevas opciones y corrección de errores.'; +$lang['NothingToDo']='Su instalación de Ianseo está actualizada. Verifique cada tanto la existencia de nuevas versiones y corrección de errores.'; $lang['NotUpdatable']='La instalación de Ianseo no puede ser actualizada automáticamente. Por favor verifique que el directorio principal de Ianseo ($a) y todos sus sub directorios tienen permiso de escritura en el servidor.'; $lang['Optimal value']='Valor Óptimo'; $lang['Parameter']='Parámetro'; $lang['Password']='Contraseña'; $lang['PHP settings']='Configuración PHP'; -$lang['PHP too old']='Su instalación de PHP es demasiado antigua. La versión mínima para usar IANSEO es 5.0.'; +$lang['PHP too old']='Su versión de PHP es demasiado antigua. La versión mínima para usar IANSEO es 8.0.'; $lang['PHP version']='Versión PHP'; $lang['php.ini file']='archivo php.ini'; $lang['Prepare']='Preparando los datos para la actualización'; @@ -80,13 +88,13 @@ $lang['Set1Dist1Arrow']='1 Ronda - 1 Flecha/Tanda'; $lang['Set1Dist2Arrow']='1 Ronda - 2 Flechas/Tanda'; $lang['Set1Elim']='1 Serie de Eliminación'; -$lang['Set1x30']='1x30 tandas'; +$lang['Set1x30']='1x30 rondas'; $lang['Set20']='20 contenciones - 1 Ronda'; $lang['Set20+20']='20+20 contenciones - 1 Ronda'; $lang['Set24']='24 contenciones - 1 Ronda'; $lang['Set24+24']='24+24 contenciones - 2 Rondas'; $lang['Set28']='28 contenciones - 1 Ronda'; -$lang['Set2x15']='2x15 tandas'; +$lang['Set2x15']='2x15 rondas'; $lang['Set32']='32 contenciones - 1 Ronda'; $lang['Set3D']='3D - 1 Ronda'; $lang['Set3D+3D']='3D - 2 Rondas'; @@ -99,9 +107,11 @@ $lang['Set3D24']='24 contenciones - 1 Ronda'; $lang['Set3D24+24']='24+24 contenciones - 2 Rondas'; $lang['SetAllClass']='Todas las Clases'; +$lang['SetAUAustOpen']='Formato Abierto Australiano'; $lang['SetChampionship']='Campeonato'; $lang['SetCompound50m']='Compuesto - 50mt'; $lang['SetCompound70m']='Compuesto - 70mt'; +$lang['SetIndoor']='Indoor'; $lang['SetJ-CClass']='Junior y Cadete'; $lang['SetJ-SClass']='Junior y Senior'; $lang['SetNZAllClasses']='Todas las Clases'; @@ -110,10 +120,20 @@ $lang['SetOneClass']='Todos en una Clase'; $lang['SetOrdinary']='Competencia Común'; $lang['SetOrdinaryFinals']='Competencia Común con finales'; +$lang['SetOutdoor']='Aire Libre'; +$lang['SetPara']='Para Arquería'; +$lang['SetSE_WaDist']='Distancias WA'; +$lang['SetStandard']='Estándar'; +$lang['SetUK_AME']='Americano'; +$lang['SetUK_NATS']='Nacionales'; +$lang['SetUK_STNIC']='San Nicolás'; $lang['Setup-ARLEF']='Reglamento Arquería LEF'; $lang['Setup-CA']='Torneo con Reglamentación de Canadá'; $lang['Setup-CH']='Torneo con Reglamentación de Suiza'; $lang['Setup-Default']='Reglas World Archery para la Competencia'; +$lang['Setup-FR']='Reglamentación Francesa'; +$lang['Setup-IT']='Competencia con Reglamentación Italiana - FITARCO'; +$lang['Setup-LANC']='Lancaster'; $lang['Setup-NFAA']='Torneo con Reglamentación de la NFAA'; $lang['Setup-NL']='Torneo con Reglamentación de Holanda'; $lang['Setup-NO']='Torneo noruego (reglas de Norges Bueskytterforbund)'; @@ -121,6 +141,7 @@ $lang['Setup-PAR']='Competencia Paralímpica (Normas IPC)'; $lang['Setup-SE']='Torneo con Reglamentación de Suecia'; $lang['Setup-Select']='Seleccione la reglamentación a utilizar'; +$lang['Setup-SI']='Reglamentación Eslovena'; $lang['Setup-UK']='Torneo con Reglamentación de Gran Bretaña'; $lang['Setup-US']='Normas Arquería US'; $lang['SetVegas-WAF']='World Archery Festival - Las Vegas'; @@ -128,16 +149,20 @@ $lang['Start Ianseo']='Ir a IANSEO!'; $lang['Status']='Estado'; $lang['stdValue']='Valor'; +$lang['Suboptimal']='Aunque su archivo php.ini no está configurado con valores óptimos,
    IANSEO debería funcionar correctamente para la mayoría de sus funcionalidades.
    Le recomendamos encarecidamente que configure los parámetros con el valor correcto en otro archivo ianseo.ini en el siguiente directorio:'; $lang['System value']='Valor del sistema'; +$lang['UpdateInProgress']='Una actualización se encuentra en progreso, por favor espere...'; $lang['UpdatePrepared']='Su instalación será actualizada automáticamente. Recuerde hacer un respaldo de todas las competencias antes de comenzar. El tiempo de actualización puede llevar tiempo, dependiendo de la conexión y los elementos que necesitan actualizarse.
    Recuerde que se eliminará cualquier archivo que no sea original, aparte del contenido del directorio "Modules/Custom".'; $lang['Updating']='Actualizando instalación local de Ianseo'; $lang['UpdatingLanguages']='Actualizando idiomas instalados'; +$lang['UpdatingModulesInfo']='Actualizando Información de los Módulos'; $lang['UpgradeFinished']='Proceso de actualización finalizado.'; $lang['User']='Nombre de Usuario'; $lang['Value']='Valor'; $lang['WhatIanseoDoes01']='Cumple con las Normas de la World Archery: Ianseo está siempre actualizado con las normas de la World Archery. Los desarrolladores también pueden personalizar y adaptar la aplicación para normativas específicas de su competencia!'; $lang['WhatIanseoDoes02']='Ayuda y soporte: si necesita ayuda, envíe un correo electrónico a $a: y recibirá una respuesta inmediata de los desarrolladores de Ianseo!'; +$lang['WhatIanseoDoes03']='Cursos y entrenamiento en línea: Ianseo está dispuesto a llevar a cabo cursos en determinados lugares. Constan de dos niveles: sin y con terminales electrónicos. El primero de ellos desarrolla los aspectos de Ianseo desde la preparación de la competición y su programa hasta la publicación y distribución local de los resultados. El segundo tiene por objeto la adquisición de los conocimientos específicos para desarrollar una competición "flecha a flecha".'; $lang['WhatIanseoDoes04']='Donaciones! Ianseo es gratuito y de código abierto...si te gusta puedes ayudarnos a mantener el software y el servidor actualizados: presiona el botón "Donate" en la página de inicio de $a!'; $lang['WhatIanseoDoes05']='Redes Sociales: Ianseo también está en $a!'; $lang['WhatIanseoDoesTitle']='Que puede hacer Ianseo por su competencia'; diff --git a/src/Common/Languages/es-ar/Languages.php b/src/Common/Languages/es-ar/Languages.php index 1c490232..cf00ffba 100644 --- a/src/Common/Languages/es-ar/Languages.php +++ b/src/Common/Languages/es-ar/Languages.php @@ -12,11 +12,13 @@ $lang['CA-Cl-JW']='Junior Femenino'; $lang['CA-Cl-M']='Masculino'; $lang['CA-Cl-MM']='Master Masculino'; +$lang['CA-Cl-MO']='Abierto Masculino'; $lang['CA-Cl-MW']='Master Femenino'; $lang['CA-Cl-PM']='Pre-Cub Masculino'; $lang['CA-Cl-PW']='Pre-Cub Femenino'; $lang['CA-Cl-W']='Femenino'; $lang['CA-Cl-WM']='PeeWee Masculino'; +$lang['CA-Cl-WO']='Abierto Femenino'; $lang['CA-Cl-WW']='PeeWee Femenino'; $lang['CA-Ev-BCM']='Raso Cadete Masculino'; $lang['CA-Ev-BCW']='Raso Cadete Femenino'; @@ -97,6 +99,7 @@ $lang['CA-R']='Recurvo'; $lang['CA-T']='Tradicional'; $lang['CA-U']='Compuesto Sin Límites'; +$lang['CA-W1']='W1 (Compuesto/Recurvo)'; $lang['CA-YC']='Compuesto Juvenil'; $lang['CmdSearch']='Buscar módulos'; $lang['Create']='crear'; @@ -119,5 +122,5 @@ $lang['Separatore']='Separador'; $lang['Text']='Significado'; $lang['Translation']='Traducción'; -$lang['Variable']='Variablo'; +$lang['Variable']='Variable'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es-ar/ODF.php b/src/Common/Languages/es-ar/ODF.php new file mode 100644 index 00000000..9afb9e40 --- /dev/null +++ b/src/Common/Languages/es-ar/ODF.php @@ -0,0 +1,40 @@ + \ No newline at end of file diff --git a/src/Common/Languages/es-ar/Records.php b/src/Common/Languages/es-ar/Records.php new file mode 100644 index 00000000..0b183692 --- /dev/null +++ b/src/Common/Languages/es-ar/Records.php @@ -0,0 +1,16 @@ + \ No newline at end of file diff --git a/src/Common/Languages/es-ar/RoundRobin.php b/src/Common/Languages/es-ar/RoundRobin.php new file mode 100644 index 00000000..c9b0e15f --- /dev/null +++ b/src/Common/Languages/es-ar/RoundRobin.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/Common/Languages/es-ar/RunArchery.php b/src/Common/Languages/es-ar/RunArchery.php new file mode 100644 index 00000000..20bba22a --- /dev/null +++ b/src/Common/Languages/es-ar/RunArchery.php @@ -0,0 +1,18 @@ + \ No newline at end of file diff --git a/src/Common/Languages/es-ar/ServiceErrors.php b/src/Common/Languages/es-ar/ServiceErrors.php index eff2ab54..86522310 100644 --- a/src/Common/Languages/es-ar/ServiceErrors.php +++ b/src/Common/Languages/es-ar/ServiceErrors.php @@ -1,8 +1,10 @@ \ No newline at end of file diff --git a/src/Common/Languages/es-ar/Tournament.php b/src/Common/Languages/es-ar/Tournament.php index 13aa1b34..5ad110da 100644 --- a/src/Common/Languages/es-ar/Tournament.php +++ b/src/Common/Languages/es-ar/Tournament.php @@ -26,19 +26,25 @@ $lang['AclISKServer']='Gestionar ISK'; $lang['AclModules']='Módulos'; $lang['ACLNoAccess']='Sin Acceso'; +$lang['AclNotes']='Notas referidas a la Seguridad de la Red
    • Las restricciones están "basadas en la competencia" y no están "basadas en el servidor"
    • Cuando las políticas de acceso están habilitadas, el comportamiento por defecto para los usuarios sin permisos es "Sin Acceso"
    • localhost (127.0.0.1 o ::1) no se puede restringir
    • Las políticas de acceso se pueden deshabilitar llamando desde el servidor mismo {$a}
    '; $lang['AclOutput']='Salidas'; $lang['AclParticipants']='Participantes'; $lang['AclQualification']='Clasificación'; $lang['ACLReadOnly']='Acceso Limitado (Solo Lectura)'; $lang['ACLReadWrite']='Acceso Completo (Lectura y Escritura)'; +$lang['AclRobin']='Todos contra Todos'; $lang['AclRoot']='Superusuario'; $lang['AclSpeaker']='Presentador'; $lang['AclTeams']='Finales por Equipos'; $lang['Action']='Acción'; $lang['ActualFlag']='Bandera Utilizada'; $lang['AddMaxRows']='Añadir todas las filas disponibles'; +$lang['AddTournament']='Añadir Competencia'; +$lang['ADOfficer']='Anti Doping'; +$lang['AdvancedParams']='Parámetros Avanzados'; $lang['AfterDistance']='Clasificación DESPUES de la siguiente ronda:'; $lang['AfterXDistance']='Resultados DESPUES de Ronda $a'; +$lang['AgeClass']='Código Clase'; $lang['AllDistances']='Todas'; $lang['AllEvents']='Todas las Pruebas'; $lang['AllRound']='Todas las Series'; @@ -62,18 +68,23 @@ $lang['Area_6']='Areas VIP'; $lang['Area_7']='$a Areas'; $lang['Arr4Set']='Flechas por Set'; +$lang['ArrowPhaseLegend1']='Rondas/Flechas en Etapa de Eliminatorias'; +$lang['ArrowPhaseLegend2']='Rondas/Flechas en Etapa de Finales'; $lang['Arrows']='Flechas'; -$lang['Arrows4End']='Flechas/Tanda: $a'; -$lang['ArrowsPerEnd']='Flechas/Tanda'; +$lang['Arrows4End']='Flechas/Rondas: $a'; +$lang['ArrowsPerEnd']='Flechas/Ronda'; $lang['AssignAwarded']='Asignar Premiado'; $lang['AtDistance']='Clasificación DE la siguiente ronda:'; $lang['Ath4Target']='Arqueros por Contención'; +$lang['AthButtLegend1']='Oponentes por Contención'; +$lang['AthButtLegend2']='Encuentros por Contención'; $lang['AthleteFile']='Cargar Arqueros desde Archivo'; $lang['AthleteList']='Cargar Arqueros'; $lang['AthleteSummary']='Resumen del Arquero'; $lang['AtXDistance']='Resultados para la RONDA $a'; $lang['AuthCode']='Código de Autorización'; $lang['AutoEdits']='Autoeditar'; +$lang['AutoMoveNext']='Mover Automáticamente a Próx. Flecha'; $lang['AutoTargetAssignment']='Asignación Automática de Contenciones - Sorteo'; $lang['AvailableValues']='Valores Disponibles'; $lang['Award']='Premio'; @@ -108,6 +119,7 @@ $lang['BadgeStandard6-bis']='Acreditación Pequeña (6) Vegas'; $lang['BadgeType']='Tipo de Acreditación'; $lang['BadParams']='Parámetros Incorrectos!'; +$lang['BarcodeCapture']='Capturar Código de Barras'; $lang['BarcodeMissing']='Imprimir Códigos de Barras Faltantes'; $lang['BF_Phase']='Final por el Bronce'; $lang['BigNames']='Imprimir en página completa'; @@ -121,9 +133,11 @@ $lang['BlockSet']='Deshabilitar Edición'; $lang['BlockSetup']='Bloquear Edición en Areas de la Competencia'; $lang['BlockUnset']='Habilitar Edición'; +$lang['Block_Excluded']='IP Excluida de las restricciones - ACCESO FULL'; $lang['Block_IP']='Acceso IP (v4)'; $lang['Block_Manage']='Gestión de Acceso a la Red'; $lang['Block_Nick']='Nombre de Acceso'; +$lang['Block_TemplateName']='Descripción'; $lang['BoldIsDefault']='Negrita por defecto'; $lang['BytesCurrent']='Ultimo'; $lang['BytesDownload']='Bytes Descargados'; @@ -155,6 +169,7 @@ $lang['CatJury']='Jurado de Apelación'; $lang['CatOC']='Comité Organizador'; $lang['ChairmanJudge']='Presidente de Jueces'; +$lang['ChairmanJudgeDeputy']='Vicepresidente de Jueces'; $lang['ChairmanJury']='Presidente del Jurado de Apelación'; $lang['ChangeLookUpTable']='Cambiar Tabla de Búsqueda'; $lang['ChangeNationsNames']='Cambiar Nombre de los Paises'; @@ -164,32 +179,46 @@ $lang['CheckTargetUpdate']='Verificar Actualización de Datos'; $lang['CheckWaIds']='Verificar Identificaciones WA de arqueros coincidentes'; $lang['Classes']='Clases'; +$lang['ClearField']='Borrar Campo'; $lang['ClickToRequestCode']='Click para solicitar Código'; $lang['Close2Center']='Más cerca del centro'; +$lang['Club-Nation']='Club'; $lang['CmdAdd']='Añadir'; +$lang['CmdChange']='Modificar'; $lang['CmdCloseBill']='Cerrar Recibo'; $lang['CmdDelete']='Eliminar'; $lang['CmdDeleteOnline']='Eliminar archivos en línea'; $lang['CmdDetailsBill']='Detalles Recibo'; $lang['CmdExec']='Ejecutar'; $lang['CmdExport']='Exportar'; +$lang['CmdForgetPwd']='Olvidar Contraseñas'; $lang['CmdGo']='Ir'; +$lang['CmdImport']='Importar'; $lang['CmdOpenBill']='Abrir Recibo'; $lang['CmdPrintBill']='Imprimir Recibo'; $lang['CmdRemoveFilter']='Quitar Filtro'; $lang['CmdResetBill']='Reiniciar Recibo'; $lang['CmdSend']='Enviar'; $lang['CmdUpload']='Subir'; +$lang['Coach']='Entrenador'; $lang['Code']='Matrícula'; $lang['CoinToss']='Lanzamiento de Moneda'; $lang['CoinTossShort']='CT'; $lang['Color']='Color'; $lang['ColouredPhases']='Cuadros de Fase en Color'; +$lang['CombiCompNewRule']='Nueva Regla'; $lang['ComparedTo']='Comparar c/pos. @ flechas (-1: último disponible)'; +$lang['CompetitionOfficials']='Personal de Campo'; $lang['CompleteSchedule']='Programación completa'; +$lang['CompManager']='Responsable de la Competencia'; +$lang['CompVenue']='Lugar'; $lang['Confirm']='Confirmar'; $lang['ConfirmDescr']='ESTO DESTRUIRÁ LA ASIGNACIÓN ANTERIOR Y NO PUEDE SER DESHECHO!'; +$lang['ConfirmEnd']='Confirmar Ronda'; $lang['ConfirmMatch']='Confirmar Encuentro'; +$lang['Cont-Nation']='Continente'; +$lang['Contacts']='Contactos'; +$lang['ContAssoc']='Federación'; $lang['ControlCode']='Código de control'; $lang['ControlMaterial']='Revisión de Equipo'; $lang['CountryClubNames']='Nombres País/Club'; @@ -200,28 +229,40 @@ $lang['Currency']='$'; $lang['DailySchedule']='Programa Diario'; $lang['Date']='Fecha'; +$lang['DateTimeSignature']='Fecha y Hora'; $lang['Days']='Dias'; $lang['Default']='Por defecto'; $lang['DefaultCO']='CO por Defecto'; $lang['DefaultHM']='HM por Defecto'; $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='VI por Defecto'; +$lang['Delayed']='Retraso (-1 para reiniciar)'; +$lang['DeleteAclRule']='Eliminar regla ACL'; +$lang['DeleteAclUser']='Eliminar usuario ACL'; +$lang['DeletePreviousArchers']='Eliminar las inscripciones no cargadas'; $lang['DeletePreviousTeams']='Eliminar Equipos Anteriores'; $lang['DeleteTourConfirm']='Por favor, ingrese el siguiente código de control:'; $lang['DeleteTournament']='Eliminar Competencia'; $lang['Deleting']='Procesando: borrando archivos en línea...'; +$lang['DescAddress']='Ver código'; +$lang['DescNOC']='Ver código'; $lang['Descr']='Descripción'; -$lang['Distance']='Ronda'; -$lang['Distances']='Rondas'; +$lang['Distance']='Serie'; +$lang['Distances']='Series'; $lang['DistanceShort']='Ronda'; $lang['DistanceTime']='Rondas y Horas (solo las rondas con hora de inicio serán impresas)'; +$lang['Div-B']='Raso'; +$lang['Div-C']='Compuesto'; +$lang['Div-R']='Recurvo'; $lang['Divisions']='Divisiones'; $lang['DNF']='No terminó'; $lang['DNS']='No comenzó'; $lang['DOB']='Fecha de Nacimiento'; $lang['Document']='Documento'; $lang['Dos']='Director de Tiro'; +$lang['DosAssistant']='Ayudante del D. de Tiro'; $lang['DoubleSpace']='Ballesta'; +$lang['DQB']='Descalificado por conducta antideportiva'; $lang['DrawField3D']='Sorteo JJCC/3D'; $lang['DrawNormal']='Sorteo estandar'; $lang['DrawOris']='Sorteo Oris'; @@ -229,11 +270,14 @@ $lang['DSQ']='Descalificado'; $lang['E-Session']='Series Eliminatorias'; $lang['Edit']='Editar'; +$lang['EditContact']='Editar Contacto'; $lang['ElabTeamMode']='Modo Elaboración de Equipos'; +$lang['ElimEnds']='Rondas Eliminatorias'; $lang['EliminationShort']='Elim.'; +$lang['EliminationType']='Tipo de Eliminatoria'; $lang['Email']='Correo electrónico'; $lang['EnableAccess']='Habilitar/Deshabilitar Políticas'; -$lang['Ends']='Tandas'; +$lang['Ends']='Rondas'; $lang['EndUpdate']='Se hicieron todas las actualizaciones'; $lang['Entries']='Inscriptos'; $lang['EntriesByCountry']='Inscriptos por País'; @@ -242,7 +286,8 @@ $lang['ERR_OK']='Sin errores'; $lang['EventAccess']='Participación de los Arqueros en pruebas Ind/Equipos'; $lang['EventCodeDeclared']='Código Prueba En línea'; -$lang['EventDetails']='$a[0] Tandas de $a[1] Flechas + $a[2] SO'; +$lang['EventDetails']='$a[0] Rondas de $a[1] Flechas + $a[2] SO'; +$lang['EventDetailsShort']='$a[0] rondas de $a[1] flechas'; $lang['EventNumQualified']='Numero de Arqueros/Equipos para Seleccionar'; $lang['EventPhaseResolved']='$a[0] - $a[1] resuelto!'; $lang['Events']='Pruebas'; @@ -257,6 +302,8 @@ $lang['FamilyName']='Apellido'; $lang['FieldCleaned']='Campo Eliminado'; $lang['FieldElabTeamMode']='Elaboración para JJCC'; +$lang['FieldResp']='Responsable de Campo'; +$lang['FieldScorecard']='Hoja de Puntuación JJCC/3D'; $lang['FieldTourCategory']='JJCC'; $lang['FilterOnDivCl']='Filtrar por División/Clase'; $lang['FinalBracketsInd']='Esquemas para Final Individual'; @@ -271,7 +318,7 @@ $lang['FinalTarget']='Contención para Finales'; $lang['FinalTeamLabels']='Etiquetas Finalistas por Equipos'; $lang['FindArcher']='Buscar Arquero'; -$lang['FinEnds']='Tandas Finales'; +$lang['FinEnds']='Rondas Finales'; $lang['FirstPhase']='Primera Fase'; $lang['FirstPhaseInOut']='Clasificado No. (y no)'; $lang['FirstPhaseMatchesBye']='# de encuentros (y byes)'; @@ -283,7 +330,7 @@ $lang['FlightsDay']='Día $a'; $lang['FlightsDescription']='Descripción'; $lang['FlightsDistTotal']='Total $a'; -$lang['FlightsEnd']='Tanda $a'; +$lang['FlightsEnd']='Ronda $a'; $lang['FlightsReset']='Reiniciar'; $lang['FlightsTotals']='Totales'; $lang['FlightsUpdateSetup']='Actualizar Configuración'; @@ -297,12 +344,15 @@ $lang['GetArcInfo']='Incluir Fecha de Nacimiento y E-mail del Arquero'; $lang['GetCredentials']='Obtener Código Competencia'; $lang['GetCredentialsExplained']='Puede solicitar la publicación de su competencia en nuestro servidor en ianseo.net.
    El servicio ofrecido es gratuito pero los términos y condiciones pueden cambiar en cualquier momento sin aviso previo.'; +$lang['GivenName']='Nombre'; $lang['GoldLabel']='Etiqueta para Diez'; $lang['GoLive']='Seguir en vivo!'; $lang['GoToRunning']='Ir Al Turno en Ejecución'; $lang['Group']='Grupo'; $lang['Group#']='Grupo $a'; +$lang['GroupBy']='Agrupar Por'; $lang['HiddenCredited']='Ocultar Acreditados'; +$lang['HorScore']='Hoja de puntuación Horizontal'; $lang['Hour']='Hora'; $lang['I-Session']='Encuentros Individuales'; $lang['IanseoDbVersionTooOld']='Versión de Base de Datos de Ianseo es más antigüa que InfoSystem'; @@ -310,6 +360,7 @@ $lang['IdCard']='Tarjeta Identificación'; $lang['Image']='Imagen'; $lang['ImageChecked']='Imagen Verificada'; +$lang['ImgInfo']='Tipo de imágenes permitidas: PNG y JPG - Tam. máx: 256KB'; $lang['ImportARFFile']='Importar archivo ARF'; $lang['ImportedEntries']='Inscripciones importadas'; $lang['ImportedTour']='Competencia importada'; @@ -321,13 +372,21 @@ $lang['IndFinEvent']='Final Indiv.'; $lang['IndoorTourCategory']='Competencia de Salón'; $lang['IndQual']='Individual - Serie Clasif.'; +$lang['InitEliminations']='Inicializar Eliminatorias'; $lang['InitProcess']='Inicializando'; $lang['Invalid Password']='Contraseña Incorrecta'; $lang['IOCcode']='Código IOC'; +$lang['IRM-10']='DNS-No comenzó'; +$lang['IRM-15']='DSQ-Descalificado'; +$lang['IRM-20']='DQB-Descalificado por conducta antideportiva'; +$lang['IRM-5']='DNF-No terminó'; +$lang['IRM-7']='DNF-No terminó (no rankea)'; +$lang['IrmStatus']='Situación IRM'; $lang['IsDbVersionTooOld']='Base de Datos InfoSystem es más antigua que Ianseo'; $lang['IsGenericConfig']='Configuración Genérica'; $lang['Judge']='Juez'; $lang['Jury']='Miembro del Jurado de Apelación'; +$lang['Languages']='Idiomas'; $lang['Last']='Ultimo'; $lang['LastPhase']='Ultima Fase'; $lang['LastTarget']='Ultima Contención'; @@ -340,14 +399,18 @@ $lang['ListLoadBlocked']='Líneas NO actualizadas (presione sobre el enlace para forzar la actualización)'; $lang['ListLoadInserted']='Líneas insertadas'; $lang['ListLoadUpdated']='Líneas actualizadas'; +$lang['LiveUpdate']='En Vivo!'; $lang['Loading']='Cargando...'; $lang['LocalCode']='Matrícula Local'; $lang['LocalRule']='Reglamentación'; $lang['LocalRuleAlert']='ATENCION!\n\nRecuerde seleccionar la Reglamentación correcta a utilizar, si la hay, en el siguiente cuadro!'; $lang['LocalSubRule']='Subregla'; +$lang['Location']='Ubicación'; $lang['LocRuleDefaultNo']='Por defecto'; $lang['LocRuleModifiedNo']='Modificado'; $lang['LocRuleValidNo']='No Modificado'; +$lang['Login']='Logearse'; +$lang['LogisticResp']='Responsable de la Logística'; $lang['LogoB']='Imágen Inferior (la proporción para anchura completa es 19:1 para A4, y 20:1 para Carta)'; $lang['LogoL']='Imágen Superior Izquierda'; $lang['LogoManagement']='Gestión de Imágenes'; @@ -359,13 +422,17 @@ $lang['LUE-FRA']='Francia'; $lang['LUE-ITA']='Italia'; $lang['LUE-ITA_e']='Italia (esordienti)'; +$lang['LUE-ITA_i']='Italia (Indoor)'; $lang['LUE-ITA_p']='Italia (pinocchio)'; $lang['LUE-NOR']='Noruega'; $lang['LUE-NOR_s']='Noruega (estandar)'; +$lang['LUE-SLO']='Eslovenia'; $lang['LUE-SUI']='Suiza'; $lang['LUE-SWE']='Suecia'; $lang['LueFill']='Crear Búsqueda de Inscriptos'; $lang['MailBody']='Correo electrónico'; +$lang['MailCc']='Copia Carbónica (CC)'; +$lang['MailConfirmSending']='Este mail será enviado a _NUM_ direcciones. Confirma?'; $lang['MailFrom']='Remitente (De)'; $lang['MailPreview']='Vista Previa'; $lang['MailSmtpPort']='Puerto SMTP'; @@ -373,6 +440,7 @@ $lang['MailSmtpServer']='Servidor SMTP'; $lang['MailSmtpUser']='Usuario SMTP'; $lang['MailSubject']='Asunto'; +$lang['MailTitle']='Nombre'; $lang['MakeSnapshotError']='Imposible guardar vista instantánea'; $lang['MakeSnapshotOk']='Vista instantánea guardada satisfactoriamente'; $lang['MakeTeams']='Re-Generar Equipos'; @@ -386,11 +454,13 @@ $lang['ManMatchArr4Phase']='Definir las Flechas por Set de las Fases'; $lang['ManPrices']='Gestión de Tarifas'; $lang['ManSession']='Gestión de Turnos de Tiro'; +$lang['ManStaffOnField']='Gestión Personal de Campo'; $lang['ManSubClasses']='Gestión de Sub Clases'; $lang['ManTourDistances']='Configurar Rondas de la Competencia'; $lang['ManTraining']='Gestión de Turnos para Calentamiento'; $lang['ManualTargetAssignment']='Asignar Contención Manualmente'; $lang['Match']='Encuentro'; +$lang['Match4Target']='Encuentros por Contención'; $lang['MatchDateTime']='Fecha/Hora Encuentro'; $lang['MatchMins']='Duración del encuentro (min.)'; $lang['MatchName-0']='Encuentro Medalla de Oro'; @@ -405,6 +475,9 @@ $lang['MedalClass']='Resultados por Clase y División - Medallas'; $lang['MedalIndClass']='Resultados por Clase y División - Medalla Individual'; $lang['MedalSqClass']='Resultados por Clase y División - Medallas Equipo'; +$lang['MediaResp']='Responsable de Medios'; +$lang['MedOfficer']='Médico'; +$lang['MissingPhoto']='Sin Foto'; $lang['MissingScorecards']='Hojas de puntuación de $a->session, ronda $a->distance'; $lang['MixedTeamFinEvent']='Final Equipo Mixto'; $lang['MoveWinner2NextPhase']='Mover Ganador a Próxima Fase'; @@ -412,15 +485,18 @@ $lang['MsgLookup2']='Verificar Integridad de los Datos'; $lang['MsgLookup3']='Importar Datos'; $lang['MsgLookup4']='Verificar Datos del Competidor'; -$lang['MsgLookup5']='Tanda'; +$lang['MsgLookup5']='Ronda'; $lang['MsgSelOneValue']='Por favor, seleccione un valor!'; $lang['MsgSyncFile']='Descargar Actualización desde un archivo'; $lang['MsgSyncNet']='Descargar Actualización desde Internet'; $lang['MsgSyncronize']='Sincronizar Archivo de Arqueros'; $lang['Multimedia']='Multimedia'; $lang['Name']='Nombre'; +$lang['Nameplates']='Cartel Identificatorio'; $lang['NationShort']='Nombre Completo País/Fed./Club'; +$lang['Natl-Nation']='País'; $lang['New']='Nueva'; +$lang['NewChannel']='Añadir nuevo canal vacío.'; $lang['NewMediaContent']='Añadir contenido Multimedia'; $lang['NewTour']='Nueva Competencia'; $lang['NewTourContent']='Añadir contenido de la competencia'; @@ -428,16 +504,20 @@ $lang['NoAcc']='No Acreditados'; $lang['NoAth2Manage']='No hay arqueros para gestionar!'; $lang['NoCredential']='Códigos On-line no configurados'; -$lang['NoDistance']='Sin Tandas'; +$lang['NoDistance']='Sin Rondas'; $lang['NoFilters']='Sin filtros'; $lang['NoMoreAth4Session']='No puedes agregar otros arqueros al turno seleccionado!'; $lang['NoMorePhases']='No Más Fases'; $lang['NoPay']='Gratis'; $lang['NoSession']='Sin Turno'; +$lang['NoStaffOnField']='No Hay Personal de Campo'; +$lang['NoSwapOpponents']='Oponentes no pueden ser intercambiados'; $lang['NotAllShootoffResolved']='Las siguientes pruebas no han sido guardadas porque no todos los shoot off han sido resueltos: $a'; $lang['NoTeamUpdate']='No Actualizar Equipos'; +$lang['Notes']='Notas'; $lang['NotInTournament']='No Compite'; $lang['NoTour']='No ha Seleccionado Competencia'; +$lang['NotUsable']='No Disponible'; $lang['Now']='Ahora'; $lang['NumberOfEntriesByCountry']='Número de Inscriptos por País'; $lang['NumberOfEntriesByEvent']='Número de Inscriptos por Prueba'; @@ -453,6 +533,7 @@ $lang['OpDelete']='Operación Requerida: Borrar'; $lang['Opponent']='Oponente'; $lang['OpponentName']='Oponente: $a'; +$lang['Opponents']='Oponentes'; $lang['OpponentSignature']='Firma del Oponente'; $lang['Option1']='Opcional 1'; $lang['Option2']='Opcional 2'; @@ -463,9 +544,12 @@ $lang['OR-Record']='Record Olímpico'; $lang['OR-short']='OR'; $lang['Order']='Orden'; +$lang['OrisScorecards']='Hojas de Puntuación (C73D)'; +$lang['OrisScorecardsTeam']='Hojas de Puntuación (C73D)'; $lang['OtherTourCategory']='Otra'; $lang['OutdoorTourCategory']='Competencia Aire Libre'; $lang['OverwritePreviousArchers']='Sobreescribir Arqueros Anteriores'; +$lang['OvrSignalSendAll']='Enviar Todo'; $lang['PaperSize']='Tamaño Papel'; $lang['ParamWarning']='ATENCION!
    Ingresando los valores incorrectos en éste campo puede dañar su configuración!
    Usar con EXTREMA precaución!'; $lang['PartecipantLabel']='Listado de Participantes - Etiquetas'; @@ -479,6 +563,7 @@ $lang['PhaseBlock_0']='Personal de la Competencia'; $lang['PhaseBlock_1']='Clasificación'; $lang['PhaseBlock_10']='Configuración de Vuelos'; +$lang['PhaseBlock_11']='Todos contra Todos'; $lang['PhaseBlock_2']='Eliminatorias'; $lang['PhaseBlock_3']='Final individual'; $lang['PhaseBlock_4']='Final por Equipo'; @@ -486,6 +571,8 @@ $lang['PhaseBlock_6']='Información de la Competencia'; $lang['PhaseBlock_7']='Cambios en la Media'; $lang['PhaseBlock_8']='Acreditación'; +$lang['PhaseBlock_9']='Publicación En Línea'; +$lang['PhasesDetails']='Opciones Específicas de las Fases'; $lang['PhaseTimeDescription']='Una vez que la fecha y la hora de una fase han sido introducidas, el horario de las siguientes fases se puede asignar rápidamente insertando en el campo hora un "+" seguido del total de minutos y presionando sobre "Colocar en todos".'; $lang['Photo']='Foto'; $lang['PhotoBadTypeError']='Formato incorrecto!'; @@ -509,19 +596,26 @@ $lang['PrintChinese']='Incluir caracteres chinos'; $lang['PrintCommentTip']='Introducir «||X» [(pipe)(pipe)(Number of Arrows)] para imprimir "Provisorio después de X flechas" en todas las publicaciones de Clasificaciones y Series de Eliminatorias Introducir «||!X» [(pipe)(pipe)(exclamation point)(Number of Arrows)] para imprimir "Oficial después de X flechas" en todas las publicaciones de Clasificaciones y Series Eliminatorias.'; +$lang['PrintFlightsAwardsByName']='Listado Ganadores por Nombre'; +$lang['PrintFlightsAwardsCheck']='Lista de Ganadores del Premio'; +$lang['PrintFlightsByName']='Por Nombre'; $lang['PrintLabels']='Imprimir Etiquetas'; $lang['PrintLanguage']='Idioma para impresión'; $lang['PrintList']='Imprimir Listados'; $lang['PrintNames']='Imprimir Nombres'; $lang['PrintNormal']='Normal (Latin)'; $lang['PrintScore']='Imprimir Hojas de Puntuación'; +$lang['PrintScoreInd']='Imprimir Hojas de Puntuación Prueba Individual'; +$lang['PrintScoreTeam']='Imprimir Hojas de Puntuación por Equipos'; $lang['PrintText']='Texto del encabezamiento'; $lang['PrintTextTitle']='Encabezamiento para Impresión de Resultados'; $lang['Q-Session']='Series de Clasificación'; $lang['QF_Phase']='Cuartos de Final'; +$lang['QR-Code']='Código QR'; $lang['QrCode']='Código QR con detalles del arquero'; $lang['QualificationLoaded']='Datos de Clasificación Cargados para el turno {$a}'; $lang['QualSessionShort']='Turno Clasif.'; +$lang['R-Session']='Todos contra Todos'; $lang['RaiseFlag']='Izar Banderas'; $lang['RankByDistance']='Clasificación por ronda'; $lang['RankFinals']='Clasificación Final'; @@ -533,22 +627,30 @@ $lang['Reference']='Referencia'; $lang['RelatedMatchTime']='Horario del Encuentro Relacionado'; $lang['Reload']='Recargar'; +$lang['RememberPwd']='Recordar Contraseñas'; +$lang['RemoveStars']='Remover Todo *'; $lang['ReplicaServer']='Réplica servidor $a'; $lang['ReplicaServerNew']='Nuevo Servidor de Réplica'; $lang['Report']='Informe'; $lang['ReportCopy1']='Copia para los jueces'; $lang['ReportCopy2']='Copia para el país'; $lang['ReportCopy3']='Copia para la federación'; +$lang['RePrint']='Imprimir de Nuevo'; $lang['RequestDisclaimer']='Enviar el correo electrónico no implica que la solicitud sea aceptada. El servicio se brinda "tal cual" y puede ser suspendido en cualquier momento si aviso previo. Si una competencia no tiene resultados (ej: Clasificación) al término de la misma podrá ser eliminada sin advertencia previa.'; +$lang['RequestEmail']='Email Responsable de Resultados'; $lang['RequestHeader']='Por favor envíame los códigos para ésta competencia (recuerda elegir una contraseña):'; +$lang['ResetBadges']='Reiniciar Estado Impresión'; $lang['ResetElimError']='ADVERTENCIA! Error al reiniciar las eliminatorias!'; $lang['ResultAbs']='Serie Clasificatoria - Completa'; $lang['ResultClass']='Resultados por Clase y División'; $lang['ResultIndAbs']='Serie Clasificatoria - Individual'; $lang['ResultIndClass']='Resultados por Clase y División - Individual'; +$lang['ResultResp']='Responsable de Resultados'; $lang['Results']='Resultados'; $lang['ResultSqAbs']='Serie Clasificatoria - Equipos'; $lang['ResultSqClass']='Resultados por Clase y División - Equipo'; +$lang['ResultsRobin']='Resultados Prueba Todos contra Todos'; +$lang['ResVerifier']='Control de Resultados'; $lang['Round']='Serie'; $lang['Round#']='Serie $a'; $lang['RoundSummary']='Resumen de Series'; @@ -556,12 +658,14 @@ $lang['Row-2']='Segunda Fila'; $lang['RunningEv']='Clasificación por Media'; $lang['RunningEvents']='Configuración de Eventos en Curso'; +$lang['RunningTotal']='Acumulado Total'; $lang['Schedule']='Programa'; $lang['ScheduledMatches']='Encuentros Programados'; $lang['ScheduledSessions']='Turnos Programados'; $lang['ScheduleFromDay']='Programa desde día:'; $lang['ScheduleNotes']='Notas sobre la programación'; $lang['ScheduleToday']='Programa de Hoy'; +$lang['ScheduleUnfinished']='Excluir turnos finalizados'; $lang['SchIncFinalists']='Incluir Nombres de Finalistas'; $lang['Score']='Puntaje'; $lang['Score1PageAllDist']='Imprimir hoja de Puntuación del arquero con todas las rondas en una página'; @@ -570,17 +674,19 @@ $lang['ScorecardsInd']='Hoja Puntuación Pruebas Individuales'; $lang['ScorecardsQual']='Hojas de Puntuación para Clasificación'; $lang['ScorecardsTeams']='Hoja Puntuación Pruebas por Equipo'; -$lang['ScoreCollector']='Recoger datos Flecha a Flecha, elije cuantas flechas por tanda:'; +$lang['ScoreCollector']='Recoger datos Flecha a Flecha, elije cuantas flechas por ronda:'; $lang['ScoreComplete']='Hoja de Puntuación Completa (Esquema y Datos)'; $lang['ScoreCompleteTotals']='Hoja de Puntuación Completa (Esquema y Datos) + Columna para los totales arrastrados de la competencia'; $lang['ScoreCutoff']='Puntuación de Corte'; $lang['ScoreData']='Solo Datos'; +$lang['ScoreFile-1']='Por Turnos'; +$lang['ScoreFile-2']='Por Categorías'; $lang['ScoreFinalMatch']='Encuentro Final'; $lang['ScoreFlags']='Añadir Banderas de País/Club'; $lang['ScoreLogos']='Agregar Imágenes'; $lang['ScorePrintMode']='Imprimir Hojas de Puntuación - Detalles'; -$lang['ScoreSingle']='Hoja Única con una Tanda (Estilo Vegas)'; -$lang['ScoreSingleAllDistances']='Hoja Única con Todas las Tandas'; +$lang['ScoreSingle']='Hoja Única con una Ronda (Estilo Vegas)'; +$lang['ScoreSingleAllDistances']='Hoja Única con Todas las Rondas'; $lang['ScoreTargetNo']='Solo Número de Contención'; $lang['ScoreTournament']='Incluir Encabezamiento de la Competencia'; $lang['Search']='Buscar'; @@ -593,6 +699,7 @@ $lang['SendAll']='Enviar a todos'; $lang['SendAwarded']='Ganadores de los premios'; $lang['SendData']='Enviar Datos'; +$lang['SendLogos']='Enviar Imágenes de la Competencia'; $lang['SendMail']='Enviar Mail'; $lang['SendTestMail']='Enviar correo de prueba a:'; $lang['SeparateClasses']='Clases Separadas'; @@ -602,6 +709,7 @@ $lang['SessionEnd']='Fecha/Hora Finalización del Turno'; $lang['SessionShort']='Tur.'; $lang['SessionStart']='Fecha/Hora de Inicio del Turno'; +$lang['SessionTime']='Horario Turno'; $lang['Set-DSQ']='Configurar como DSQ'; $lang['SetAccreditedAll']='Setear seleccionados como Acreditados'; $lang['SetByUser']='Configurado por el usuario'; @@ -626,7 +734,7 @@ $lang['ShowMissing']='Mostrar Hojas de Puntuación Faltantes'; $lang['ShowPicture']='Mostrar Fotos'; $lang['showRecords']='Mostrar Records'; -$lang['ShowSetEnds']='Incluir Tandas de Set'; +$lang['ShowSetEnds']='Incluir Rondas de Set'; $lang['ShowSubClass']='Mostrar Sub Clases'; $lang['Sign/guide-board']='Cartel'; $lang['SingleArrow']='Flecha Única'; @@ -636,6 +744,8 @@ $lang['Special']='Premio Especial'; $lang['SpecialFilter']='Filtro especial (ver código)'; $lang['SportPres']='Presentación Deportiva'; +$lang['Spotter']='Observador'; +$lang['StaffOnField']='Personal de Campo'; $lang['StandardElabTeamMode']='Elaboración Estandar'; $lang['StandardEv']='Clasificación Normal'; $lang['StartCamera']='Iniciar Cámara'; @@ -691,6 +801,7 @@ $lang['SuggestedFlag']='Bandera Sugerida'; $lang['SupportIanseo']='Por favor considere apoyar a Ianseo: ve a www.ianseo.net y presiona el botón "Donate" :)'; $lang['SVGFile']='Archivo SVG'; +$lang['SwapOpponents']='Intercambiar Oponentes'; $lang['T-Session']='Encuentros por Equipos'; $lang['TakePicture']='Capturar Foto para Acreditación'; $lang['Tar4Session']='Contenciones por Turno'; @@ -701,6 +812,7 @@ $lang['TargetAssignment']='Imprimir Asignación de Contenciones'; $lang['TargetAssignmentDescription']='Un simple número asigna esta contención a este encuentro;
    Un número seguido por el signo "+" asigna el número de las contenciones desde este encuentro hasta el último correspondiente a esta fase, con un incremento continuo de una unidad;
    Un número seguido por el signo "-" asigna el número de las contenciones desde este encuentro hasta el último correspondiente a esta fase con incremento continuo de una unidad, pero solamente para aquellos encuentros sin pase directo.
    Un número seguido por el signo "*" asigna el número de las contenciones desde este encuentro hasta el último de esta fase con incremento continuo de una unidad, dejando un hueco de una contención entre dos parapetos adyacentes.'; $lang['TargetDoAssignment']='Asignar a contención'; +$lang['TargetJudgeSignature']='Firma del Juez'; $lang['Targets']='Contenciones'; $lang['TargetShort']='C#'; $lang['TargetsToHHt']='Enviar asignación de Contención en lugar de Nombres'; @@ -710,7 +822,8 @@ $lang['TeamCreationMode_2']='Siempre 2do Equipo'; $lang['TeamCreationMode_3']='Siempre 3er Equipo'; $lang['TeamFin']='Equipos - Serie Elim. y Final'; -$lang['TeamFinEvent']='Final por Equipo'; +$lang['TeamFinEvent']='Pruebas por Equipo'; +$lang['TeamManagerSignature']='Firma Capitán del Equipo'; $lang['TeamPlace']='Imprime Identificación Zona de Equipo'; $lang['TeamPlaceLocal']='Imprime Identificación Zona de Equipo (localizado)'; $lang['TeamQual']='Equipos - Serie Clasif.'; @@ -725,6 +838,7 @@ $lang['Total1']='Total (1ra. Mitad)'; $lang['Total2']='Total (2da. Mitad)'; $lang['TotalCompetitors']='Total de Competidores'; +$lang['TotalMissingScorecars']='$a Hojas de Puntuación Faltante(s)'; $lang['TotalProg']='Sum'; $lang['TotalShort']='Tot.'; $lang['TourBusy']='ATENCION!\n\nEstá por importar una competencia mientras otra competencia se está ejecutando!\nDesea confirmar la operación?'; @@ -754,7 +868,7 @@ $lang['TourType_4']='Campo'; $lang['TourType_8']='3D'; $lang['TourWhen']='Fecha'; -$lang['TourWhere']='Lugar'; +$lang['TourWhere']='Dirección'; $lang['Transport']='Transportes'; $lang['Transport_1']='Auto'; $lang['Transport_2']='Van'; @@ -781,6 +895,7 @@ $lang['TVCss3CountryCode']='Código Pais/Fed./Club'; $lang['TVCss3CountryDescr']='País/Fed./Club'; $lang['TVCss3Defaults']='Por defecto para todas las páginas. Usar sintaxis CSS3 para el elemento'; +$lang['TVCss3DistScore']='Puntaje Ronda'; $lang['TVCss3Divider']='Divisor'; $lang['TVCss3Flag']='Bandera (img)'; $lang['TVCss3FlagDiv']='Bandera (div)'; @@ -826,6 +941,7 @@ $lang['TVDefinedChain']='Segmentos de regla ya definidos'; $lang['TVFilter-Display']='Competencia: filtro
    Multimedia: tiempo visualización'; $lang['TVFilterColumns']='Columnas para mostrar'; +$lang['TvGivenName']='Nombre TV'; $lang['TvLightPage']='Versión Liviana'; $lang['TVManagingRule']='Gestión de regla: $a'; $lang['TVMultimediaContents']='Contenido Multimedia'; @@ -839,6 +955,7 @@ $lang['TVMultimediaTimeDescr']='Tiempo en segundos de la visualización de éste contenido en éste segmento'; $lang['TVNameComplete']='Ver nombre completo del arquero'; $lang['TVNameCompleteDescr']='On: muestra primer nombre del arquero de forma completa
    Off: muestra solo la inicial del primer nombre.'; +$lang['TVNameShort']='Nombre Corto para TV'; $lang['TVNewRule']='Nueva regla'; $lang['TVNoFill2NotChange']='Dejar vacío si no quiere modificar'; $lang['TVNumRows']='Número de filas a recuperar'; @@ -876,7 +993,7 @@ $lang['TVViewDetailsDescr']='Alterna para mostrar los 10s y los 9s/Xs'; $lang['TvViewDIST']='Ver Columnas de Cada Ronda'; $lang['TvViewDIVCLAS']='Ver Categoría'; -$lang['TvViewENDS']='Ver Detalle de Tanda'; +$lang['TvViewENDS']='Ver Detalle de la Ronda'; $lang['TvViewFLAG']='Ver Banderas'; $lang['TVViewNationName']='Ver nombres completos de los países/club'; $lang['TVViewNationNameDescr']='Alterna la visualización del País/Club del arquero'; @@ -896,6 +1013,7 @@ $lang['Type_FITA']='FITA'; $lang['Type_FITA 72']='FITA 72'; $lang['Type_FITA+50']='Serie FITA + 50m'; +$lang['Type_GiochiStudentes']='Juegos Escolares'; $lang['Type_Indoor 18']='Salón 18 m'; $lang['Type_Indoor 25']='Salón 25 m'; $lang['Type_Indoor 25+18']='Salón 25+18'; @@ -906,13 +1024,19 @@ $lang['Type_NorH']='Cazador (Noruega)'; $lang['Type_NZ_FITA+72']='Serie FITA + 70m/50m'; $lang['Type_ProAMIndoor']='Salón ProAM'; +$lang['UDPPort']='Puerto UDP'; $lang['Unisex']='Unisex'; $lang['Unset-DSQ']='Eliminar DSQ'; $lang['UpdateIanseo']='La versión de Ianseo no es compatible con el servicio requerido: por favor actualice a una versión más reciente!'; $lang['UpdateJPG']='también crear versión JPG'; +$lang['UpdateNeeded']='Necesita actualizar a la última versión de Ianseo para subir los resultados'; $lang['UpdatePNG']='Actualizar el archivo PNG correspondiente?'; $lang['URL']='URL'; +$lang['UserPassword']='Nueva Contraseña'; +$lang['UserPasswordOld']='Contraseña Anterior'; +$lang['UserPasswordRetype']='Confirmar Nueva Contraseña'; $lang['UseSubClasses']='Aplicar a subclases específicas'; +$lang['ValidClass']='Clases Válidas'; $lang['ValidDivisions']='Div. Permitidas (vacío para todas)'; $lang['VersionBracketsInd']='Esquema Individual'; $lang['VersionBracketsTeam']='Esquema por Equipos'; @@ -925,7 +1049,9 @@ $lang['VersionPrintDateTime']='Imprimir Fecha y Hora'; $lang['VersionSector']='Sector'; $lang['VersionSectors']='Sectores Afectados'; +$lang['ViewTeamComponents']='Ver miembros del equipo (absoluto)'; $lang['ViewTeamComponentsDescr']='Alterna la visualización de los miembros del equipo'; +$lang['WaIdShort']='ID Arquero'; $lang['WarmUp']='Calentamiento'; $lang['WarmUpMins']='Calentamiento (min.)'; $lang['WarmupTargets']='Contenciones para calentamiento'; diff --git a/src/Common/Languages/es/Api.php b/src/Common/Languages/es/Api.php index dac47246..151ffa6d 100644 --- a/src/Common/Languages/es/Api.php +++ b/src/Common/Languages/es/Api.php @@ -31,6 +31,7 @@ $lang['DevConnected']='Conectado'; $lang['DevDisconnected']='Desconectado'; $lang['DistanceNum']='Distancia $a'; +$lang['FieldMonitor']='Monitor de campo'; $lang['FlashCodeDistance']='Escanear este código en la App para tantear $a'; $lang['HitToWin']='Impacto para ganar'; $lang['ImportDoneQualRecheck']='Se han importado los resultados de la Serie de Calificación. Por favor, comprobar la clasificación tan pronto como sea posible.'; @@ -49,6 +50,7 @@ $lang['ISK-ConnectionStatus']='Estado de la conexión'; $lang['ISK-DeleteDevices']='Eliminar dispositivos'; $lang['ISK-DenyAccess']='Acceso denegado'; +$lang['ISK-Deprecated']='IMPORTANTE: la App "Ianseo Score Keeper (ISK)" va a ser dada de baja en las tiendas Android y Apple, y ya no será respaldada, por lo que se dará de baja de Ianseo en Septiembre de 2024. Por favor, cambie a la nueva aplicación "Ianseo Score Keeper NG".'; $lang['ISK-DeviceAlive']='En línea'; $lang['ISK-DeviceBattery']='Batería'; $lang['ISK-DeviceEnabled']='Habilitado'; @@ -78,6 +80,7 @@ $lang['ISK-Lite-NoCompCode']='No se ha podido obtener el Código de la Competición'; $lang['ISK-Lite-QRCode']='Imprimir el Código QR para el Dispositivo ISK de Resultados de Ianseo'; $lang['ISK-Lite-ServerUrl']='Servidor URL (incluido protocolo y puerto, de no ser el 80)'; +$lang['ISK-Live-Deprecated']='IMPORTANTE: La App "Ianseo Score Keeper Live" no será respaldada en adelante, y será dada de baja en Ianseo en Septiembre de 2024. Por favor, cambie a la nueva App "Ianseo Score Keeper NG".'; $lang['ISK-Live-Name']='Ianseo ScoreKeeper DIRECTO'; $lang['ISK-lockPortrait']='Bloquear el dispositivo en vista vertical'; $lang['ISK-Name']='Dispositivo ISK de Ianseo'; @@ -90,6 +93,7 @@ $lang['ISK-OnlyProAloud']='¡Solo la aplicación Pro está permitida en está competición!'; $lang['ISK-Options']='Opciones'; $lang['ISK-OptionsOVA']='Opciones de Asistente en Competición'; +$lang['ISK-OptionsWAGate']='Opciones para puertas WA'; $lang['ISK-Pro-Name']='Ianseo ScoreKeeper Pro'; $lang['ISK-QRCode']='Imprimir Código QR para Ianseo ScoreKeeper'; $lang['ISK-RefreshTO']='Terminado el tiempo de actualización de datos'; @@ -154,6 +158,7 @@ $lang['NewGroup']='Nueva asignación de grupos'; $lang['NewTarget']='Nueva asignación de dianas'; $lang['PartialImport']='Autoimportar Parciales'; +$lang['PartialImportAll']='Importar TODO'; $lang['PopupStatusDistance']='Distancia: $a'; $lang['PopupStatusEnd']='Tanda: $a'; $lang['PopupStatusEvent']='Evento: $a'; @@ -181,11 +186,15 @@ $lang['SelectedReNumber']='Renumerar dispositivos empezando desde'; $lang['StatusTemporaryArrows']='Situación de las flechas en la Tabla Temporal'; $lang['StickyAlreadySet']='Los adhesivos de las tandas han sido configurados en un Turno diferente!'; +$lang['TargetRequests-Printout']='Imprimir la hoja de CódigosQR de las Dianas Requeridas'; +$lang['TargetScoring-Printout']='Imprimir la hoja de Códigos QR de las Dianas en que se está tanteando.'; $lang['TempArrowsDelete']='ELIMINAR Flechas de la Tabla Temporal'; $lang['TempArrowsImport']='Importar flechas desde la Tabla Temporal'; +$lang['TempArrowsM']='No se han importado los valores de las flechas de los encuentros (Ind., Equipos, Calificaciones, Grupos, etc)'; $lang['TempArrowsQ']='No se han importado los valores de flechas de las Series de Calificación ni de las Eliminatorias'; $lang['UnlockAll']='Desbloquear todos los turnos'; $lang['UsePersonalDevices-Granted']='Personal'; +$lang['UsePersonalDevices-Print']='Imprimir los CódigosQR en las Hojas de Puntuación de las Dianas Requeridas'; $lang['ViewSize']='Ver tamaño'; $lang['WAToolbox-MissingParams']='Faltan parámetros'; $lang['WAToolbox-NoCompCode']='No se ha podido obtener el Código de la Competición'; diff --git a/src/Common/Languages/es/BackNumbers.php b/src/Common/Languages/es/BackNumbers.php index 43346bfd..9a9ed89c 100644 --- a/src/Common/Languages/es/BackNumbers.php +++ b/src/Common/Languages/es/BackNumbers.php @@ -84,8 +84,10 @@ $lang['FamCaps']='APELLIDOS'; $lang['FamCaps-GAlone']='APELLIDOS N.'; $lang['FamCaps-GivCamel']='APELLIDOS Nombre'; -$lang['FamCaps-GivCamel-ClubCamel']='Apellidos, Nombre, País'; +$lang['FamCaps-GivCamel-ClubCamel']='APELLIDOS Nombre, País'; +$lang['FamCaps-GivCamel-ClubCaps']='APELLIDOS Nombre, País'; $lang['FamCaps-GivCaps']='APELLIDOS NOMBRE'; +$lang['FamCaps-GivCaps-ClubCaps']='APELLIDOS NOMBRE, País'; $lang['FinalRanking']='Clasificación Final'; $lang['FinPosition']='Posición Final'; $lang['Flag']='Bandera del País/Club'; @@ -93,11 +95,16 @@ $lang['GAlone-FamCaps']='N. APELLIDOS'; $lang['GivCamel']='Nombre'; $lang['GivCamel-FamCamel']='Nombre Apellidos'; +$lang['GivCamel-FamCamel-ClubCamel']='Nombre Apellidos, País'; $lang['GivCamel-FamCaps']='Nombre APELLIDOS'; +$lang['GivCamel-FamCaps-ClubCamel']='Nombre APELLIDOS, País'; +$lang['GivCamel-FamCaps-ClubCaps']='Nombre APELLIDOS, PAÍS'; $lang['GivCaps']='NOMBRE'; $lang['GivCaps-FamCaps']='NOMBRE APELLIDOS'; +$lang['GivCaps-FamCaps-ClubCaps']='NOMBRE APELLIDOS, PAÍS'; $lang['GivenNameInitial']='Inicial del nombre'; $lang['Heigh']='Altura'; +$lang['HLayout']='Horizontal'; $lang['HLine']='Linea horizontal'; $lang['I-Badge']='Dorsales para los encuentros individuales'; $lang['IdCardHor']='a lo ancho'; @@ -128,6 +135,8 @@ $lang['OpenPictureScreen']='Abrir pantalla secundaria'; $lang['PageDimension']='Tamaño de Página'; $lang['PaperDimention']='Dimensiones del papel'; +$lang['PhaseFrom']='De Fase'; +$lang['PhaseTo']='A Fase'; $lang['Picture']='Foto del Atleta'; $lang['Portrait']='Vertical'; $lang['PosX']='Posición (X)'; @@ -158,6 +167,7 @@ $lang['ToRight']='Logotipo de la Competición (derecha)'; $lang['TVViewIdCard']='Ver acreditaciones'; $lang['TVViewIdCardDescr']='En modo vista de encuentros proporciona la identificación de los 2 oponentes en lugar de las filas "estándar"'; +$lang['VLayout']='Vertical'; $lang['Width']='Anchura'; $lang['WRank']='Ranking Mundial'; $lang['Y-Badge']='Diploma (Individual)'; diff --git a/src/Common/Languages/es/Common.php b/src/Common/Languages/es/Common.php index c8cc7ada..fa680bc8 100644 --- a/src/Common/Languages/es/Common.php +++ b/src/Common/Languages/es/Common.php @@ -70,6 +70,7 @@ $lang['CmdOk']='Ok'; $lang['CmdOn']='Conectado'; $lang['CmdPostUpdate']='Publicar actualización'; +$lang['CmdRefresh']='Refrescar'; $lang['CmdSave']='Guardar'; $lang['CmdSaveContinue']='Guardar & Continuar'; $lang['CmdSet2All']='Colocar en Todos'; @@ -147,6 +148,10 @@ $lang['Finish']='Final'; $lang['FirstPhase']='Primera Fase'; $lang['FopSetup']='Diseño del Campo de Tiro'; +$lang['Gender0']='Hombre'; +$lang['Gender1']='Mujer'; +$lang['GenderShort0']='H'; +$lang['GenderShort1']='M'; $lang['GF']='Damas < 14 años'; $lang['GM']='Caballeros < 14 años'; $lang['HELP']='¡AYUDA!'; @@ -216,6 +221,7 @@ $lang['MenuLMRemoveNoShows']='Quitar No-Shows'; $lang['MenuLM_Accreditation']='Acreditación'; $lang['MenuLM_Accreditation colors management']='Gestión de los colores de las acreditaciones'; +$lang['MenuLM_AdvancedFeatures']='Funciones avanzadas'; $lang['MenuLM_AdvLabels']='Impresión avanzada de Etiquetas'; $lang['MenuLM_Archers on Targets']='Arqueros por Diana'; $lang['MenuLM_Arr4Set']='Flechas por Set'; @@ -229,6 +235,7 @@ $lang['MenuLM_Athlets fees status']='Situación de las inscripciones de los Atletas'; $lang['MenuLM_Authentication']='Autenticación del usuario'; $lang['MenuLM_AutoCheckinSetup']='Configuración del auto registro'; +$lang['MenuLM_Automator']='Automator'; $lang['MenuLM_Back Number Printout']='Imprimir Dorsales'; $lang['MenuLM_Boinx']='Instalación de las Capas Boinx'; $lang['MenuLM_BoinxMeteo']='Capa Boinx de datos meteorológicos'; @@ -239,9 +246,11 @@ $lang['MenuLM_Category Result List']='Clasificación por Categorías'; $lang['MenuLM_Change Components']='Cambiar Componentes'; $lang['MenuLM_ChangeNationsNames']='Cambia los nombres de los Países'; +$lang['MenuLM_ChangePassword']='Cambiar Contraseña'; $lang['MenuLM_Check Data Update']='Verificar Actualización de Datos'; $lang['MenuLM_Check shoot-off before eliminations']='Resolver los desempates antes de las Series Eliminatorias'; $lang['MenuLM_Check shoot-off before final phases']='Resolver Desempates antes de las Fases Finales'; +$lang['MenuLM_Check shoot-off before Rank']='Verificar el desempate antes de imprimir la clasificación'; $lang['MenuLM_CheckAwards']='Verificar la Traducción de Premiación'; $lang['MenuLM_CheckList']='Imprimir listado de Verificaciones'; $lang['MenuLM_CIS']='CIS'; @@ -337,6 +346,7 @@ $lang['MenuLM_Modules']='Módulos'; $lang['MenuLM_MoveSession']='Cambiar Turno asignado'; $lang['MenuLM_MoveTarget']='Mueve las Dianas Asignadas'; +$lang['MenuLM_N62']='Información N62A/B ORIS'; $lang['MenuLM_New']='Nuevo'; $lang['MenuLM_NewBacknumbers']='Dorsales'; $lang['MenuLM_OdsExport']='Exportar como Hoja de Cálculo (.ods)'; @@ -440,6 +450,7 @@ $lang['MsgImportOk']='¡Importación Completada!'; $lang['MsgInitFinalGridsError']='Atención: los cuadros para este evento ya están inicializados. ¿Quiere continuar?'; $lang['MsgInitFinalGridsOk']='¡Inicialización Completada!'; +$lang['MsgInitFinalGridsRunningError']='Operación no permitida mientras se está desarrollando la competición'; $lang['MsgMakeFinReset']='¡Los Cuadros de la Serie Olímpica han sido Reinicializados!
    ¡Para añadir los datos es necesario completar otra vez las operaciones preliminares!'; $lang['MsgNeedInitGrids']='¡Error!
    ¡Es necesario arrancar de nuevo los Cuadros!'; $lang['MsgNeedShootOff']='¡Error!
    ¡Es necesario resolver antes los desempates!'; @@ -496,6 +507,7 @@ $lang['Score1Page1Match']='Hoja de puntuación para cada encuentro'; $lang['ScoreDrawing']='Sólo Diseño (Página única)'; $lang['ScoreFilled']='Imprimir Hojas de Puntuación completadas con los valores de cada flecha'; +$lang['ScoreIncAllNames']='Incluir todos los posibles oponentes'; $lang['ScoreIncEmpty']='Imprimir también encuentros con pase directo'; $lang['Scorer']='Tanteador'; $lang['SearchOrphanTexts']='Buscar Textos Huerfanos'; @@ -507,6 +519,7 @@ $lang['SF']='Damas'; $lang['ShootOff4Elim']='Solucionar empates antes de las Series Eliminatorias'; $lang['ShootOff4Final']='Solucionar empates antes de las Series Finales'; +$lang['ShootOff4Rank']='Verificar el desempate antes de imprimir la Clasificación'; $lang['SM']='Caballeros'; $lang['SnapshotConf']='Configuración para publicación inmediata'; $lang['SortBy']='Publicado por'; @@ -560,11 +573,14 @@ $lang['TrgIndComplete']='Diana de Sala (1-10 grande)'; $lang['TrgIndSmall']='Diana de Sala (6-10 grande)'; $lang['TrgKyudo']='Kyudo-Mato'; +$lang['TrgLancaster']='Lancaster (1-11)'; +$lang['TrgLancShootUp']='Lancaster (Anillo +12)'; $lang['TrgNfaa3D']='3D NFAA (12,10,8,5,M)'; $lang['TrgNfaaAnimal']='Serie NFAA de Animales'; $lang['TrgNfaaHunt5']='NFAA Campo/Cazadores (3-5/X.5)'; $lang['TrgNfaaHunt6']='NFAA Campo/Cazadores (3-5/X.6)'; $lang['TrgNfaaInd']='Sala NFAA (1-5/X)'; +$lang['TrgNfaaIndIX']='NFAA Indoor (1-5/X + IX)'; $lang['TrgOutdoor']='Diana de Aire Libre (1-X)'; $lang['TrgProAMIndNfaa']='ProAM Indoor - Diana NFAA (1-5/X.6)'; $lang['TrgProAMIndVegas']='ProAM Indoor - Diana Las Vegas (1-10/X.11)'; diff --git a/src/Common/Languages/es/Errors.php b/src/Common/Languages/es/Errors.php index 73cf3ddb..a8e19656 100644 --- a/src/Common/Languages/es/Errors.php +++ b/src/Common/Languages/es/Errors.php @@ -4,6 +4,7 @@ $lang['Anomalies']='Anomalías'; $lang['BarCodeSession']='Hay errores en la configuración: ¡intente configurar un turno!'; $lang['BarCodeSettings']='Hay un error en la configuración'; +$lang['CategoresNotDefined']='Faltan definiciones de Categorías'; $lang['ClassFromToError']='"Desde" y "Hasta" deben ser valores numéricos'; $lang['ClubNotFound']='No se ha encontrado el Código del Club en la Base de Datos actual. ¿Por favor, actualice primero la base de datos!'; $lang['ConflictingCategories']='La definición del filtro para estas categorías se superpone a filtros previos: $a!'; @@ -15,6 +16,8 @@ $lang['EmptyFrom']='Email vacio: ¡este campo es obligatorio!'; $lang['EmptySubject']='Sujeto vacio: ¡este campo es obligatorio!'; $lang['EmptyTitle']='Título vacio:¡este campo es obligatorio!'; +$lang['EntriesNoCategory']='Inscripciones sin Categoría'; +$lang['EntriesNoCountry']='Inscripciones sin País/Club'; $lang['ErrCodeExists']='¡Ya existe un código!'; $lang['ErrCommitteeError']='Código del Comité o descripción inválida'; $lang['ErrConnection']='No hay conexión con el servidor $a'; @@ -39,7 +42,9 @@ $lang['ImageFetchError']='Error buscando la imagen'; $lang['ImageSaveError']='Imagen no guardada'; $lang['IncompleteSettings']='Configuración incompleta'; +$lang['InvalidCharacters']='El campo contiene caracteres inválidos. Los caracteres válidos son $a'; $lang['InvalidEmail']='Email inválido: por favor verifique nuevamente la dirección del correo antes de guardarlo'; +$lang['InvalidLogin']='Contraseña inválida'; $lang['LockedProcedure']='Este Procedimiento está cerrado'; $lang['MailingAlreadyExists']='Ya existe un Email con el mismo título ({$a}), por favor cambie el título o seleccione el email para modificar desde el selector.'; $lang['MailingDeleteText']='Por favor, confirme que desea borrar permanentemente este mailing'; @@ -52,19 +57,28 @@ $lang['MissingData']='Faltan Datos'; $lang['MissingPhpIntlModule']='Se puede realizar la transliteración instalando o activando el módulo php-intl'; $lang['NameNotEmpty']='El nombre no puede estar vacío'; +$lang['NoCountryInsert']='No se ha metido el País'; +$lang['NoData']='No se han proporcionado datos'; +$lang['NoDistancesSet']='Categorías sin distancias asignadas'; $lang['NoDNSRecord']='El nombre del Servidor no es correcto o no está en línea: por favor, debe estar conectado a Internet para configurar esta opción.'; $lang['NoMailingTemplate']='¡No se ha seleccionado/disponible ningún formato de Email!'; $lang['NoMailRecipients']='¡No hay nadie a quien enviar los correos! Por favor, revise las opciones de filtros.'; $lang['NoPrivilege']='Privilegios insuficientes: no está autorizado a operar en esta página'; $lang['NoSameOrders']='El nuevo valor de la Orden no puede ser duplicado.'; $lang['NoSmtpServerSet']='¡Por favor, configure SMTP antes de enviar emails!'; +$lang['NoTargetSet']='Categorías sin dianas asignadas'; +$lang['PhpOutdated']='Su versión PHP está caducada. Ianseo podría trabajar, pero algunas funciones necesitarán al menos la versión {$a}.
    Por favor, actualice su versión lo antes posible para mantener PHP{$a} o más reciente.'; $lang['RegExp']='Para usar RegExp (Expresiones Regulares), por favor consultar $a'; +$lang['ResetSyncData']='Resetear Sync Data'; +$lang['ServiceNotAvailable']='Servicio no disponible'; $lang['SetupNotFinished']='No puede acceder a esta página: por favor, complete primero {$a}'; $lang['SpecialFilterDiscrepancy']='Se ha configurado un filtro especial, pero no está activo'; +$lang['SyncNotAvailable']='Sync no disponible'; $lang['TargetNumberMismatch']='El número de la diana solo puede ser del formato [NúmeroDeDiana][LetraDeDiana], como 129C'; $lang['TargetRangeMismatch']='El Rango de Dianas debe contener 2 numeros de diana (sin letras), separados por el signo menos, siendo el primer número menor que el segundo, como por ejemplo 23-44'; $lang['TextSmtpDelete']='Por favor, confirme que quiere quitar los ajustes de SMTP en esta instalación de Ianseo'; $lang['TooManyArrows']='Demasiadas flechas totales: el máximo es $a'; $lang['TooManyElimQualified']='Las Series del tipo $a[0] pueden aceptar solamente hasta $a[1] arqueros'; +$lang['WrongData']='Se han recibido datos erroneos'; $lang['WrongPort']='¡Este puerto no está soportado!'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es/IOC_Codes.php b/src/Common/Languages/es/IOC_Codes.php index 2d1a4dde..ef29ba2f 100644 --- a/src/Common/Languages/es/IOC_Codes.php +++ b/src/Common/Languages/es/IOC_Codes.php @@ -12,8 +12,8 @@ $lang['ASA']='Samoa Americana'; $lang['AUS']='Australia'; $lang['AUT']='Austria'; -$lang['Award-Anthem']='Señoras y señores, por favor ponganse de pie para escuchar el himno nacional de'; -$lang['Award-Anthem-TPE']='Señoras y señores, por favor ponganse de pie para escuchar el himno de'; +$lang['Award-Anthem']='Señoras y señores, aquellos que puedan hacerlo por favor ponganse de pie para escuchar el himno nacional de'; +$lang['Award-Anthem-TPE']='Señoras y señores, aquellos que puedan hacerlo por favor ponganse de pie para escuchar el himno de'; $lang['Award-Applause']='Señoras y señores, por favor demosle un calido aplauso a nuestros medallistas'; $lang['Award-Intro']='Señoras y señores la ceremonia de premiacion para {$a}'; $lang['Award-MedalGiver']='Las medallas seran entregadas por $a'; @@ -42,16 +42,13 @@ $lang['BUL']='Bulgaria'; $lang['BUR']='Burkina Faso'; $lang['CAF']='República Centroafricana'; -$lang['CAM']='Camboya'; $lang['CAN']='Canada'; $lang['CAY']='Islas Caimán'; $lang['CGO']='República del Congo'; $lang['CHA']='Chad'; $lang['CHI']='Chile'; -$lang['CHN']='China'; $lang['CIV']='Costa de Marfil'; $lang['CMR']='Camerún'; -$lang['COD']='República Democrática del Congo'; $lang['COK']='Islas Cook'; $lang['COL']='Colombia'; $lang['COM']='Comores'; @@ -60,7 +57,6 @@ $lang['CRO']='Croacia'; $lang['CUB']='Cuba'; $lang['CYP']='Chipre'; -$lang['CZE']='República Checa'; $lang['DEN']='Dinamarca'; $lang['DJI']='Yibuti'; $lang['DMA']='Dominica'; @@ -91,17 +87,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guayana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Hungria'; $lang['INA']='Indonesia'; $lang['IND']='India'; -$lang['IRI']='Irán'; $lang['IRL']='Irlanda'; $lang['IRQ']='Iraq'; $lang['ISL']='Islandia'; $lang['ISR']='Israel'; -$lang['ISV']='Islas Virgenes Americanas'; $lang['ITA']='Italia'; $lang['IVB']='Islas Virgenes Británicas'; $lang['JAM']='Jamaica'; @@ -114,7 +107,6 @@ $lang['KOR']='República de Corea'; $lang['KSA']='Arabia Saudita'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; $lang['LAT']='Letonia'; $lang['LBA']='Libia'; $lang['LBR']='Liberia'; @@ -128,7 +120,6 @@ $lang['MAR']='Marruecos'; $lang['MAS']='Malasia'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldavia'; $lang['MDV']='Maldivas'; $lang['Medal-1']='Medalla de Oro'; $lang['Medal-2']='Medalla de Plata'; @@ -137,7 +128,6 @@ $lang['MEX']='México'; $lang['MGL']='Mongolia'; $lang['MHL']='Islas Marshall'; -$lang['MKD']='Macedonia del Norte'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -166,7 +156,6 @@ $lang['PNG']='Papúa Nueva Guinea'; $lang['POL']='Polonia'; $lang['POR']='Portugal'; -$lang['PRK']='Corea del Norte'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Rumania'; @@ -193,13 +182,11 @@ $lang['SVK']='Eslovaquia'; $lang['SWE']='Suecia'; $lang['SWZ']='Esuatini'; -$lang['SYR']='Siria'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Tailandia'; $lang['TJK']='Tajikistán'; $lang['TKM']='Turkmenistán'; -$lang['TLS']='Timor Este'; $lang['TOG']='Togo'; $lang['TPE']='China Taipei'; $lang['TRI']='Trinidad y Tobago'; diff --git a/src/Common/Languages/es/ISK-App.php b/src/Common/Languages/es/ISK-App.php index 89d8dea8..5271236e 100644 --- a/src/Common/Languages/es/ISK-App.php +++ b/src/Common/Languages/es/ISK-App.php @@ -62,10 +62,15 @@ $lang['HelpIntro3Text']='Scorekeeper NG trabaja bien con Lite, Pro, o competiciones en directo en Ianseo. Dependiendo del tipo de competición, la app habilitará o deshabilitará el uso de algunas funciones avanzadas.'; $lang['HelpIntro4Text']='La app contiene cinco funciones principales:'; $lang['HelpMainHead']='Principal'; +$lang['HelpMainText']='Esta es la pantalla principal usada por los arqueros una vez que el dispositivo ha sido configurado y se ha conectado a Ianseo. Esto muestra la información de la competición, turno actual, y la lista de los arqueros configurados para una o varias dianas. Mostrará para cada arquero la tanda actual, tipo de diana, valores de flechas y totales. Pulsando en un arquero se verá su pantalla de tanteo. También es posible ir a la hoja de puntuación y ver la información de todos los arqueros y las distancias configuradas para esa(s) diana(s).'; $lang['HelpScorecardHead']='Hoja de puntuación'; +$lang['HelpScorecardText']='La pantalla muestra las flechas tanteadas hasta ese momento con los totales. Puede mostrar todos los arqueros configurados para ese dispositivo y las distancias, o el tanteo de un solo arquero, dependiendo de si la solicitud se hace desde la página principal o desde las hojas de puntuación.'; $lang['HelpScoringHead']='Tantear'; +$lang['HelpScoringText']='Esta pantalla permite a los arqueros tantear sus flechas en una tanda determinada o cambiar valores de flechas previamente tanteados. La tanda actual está resaltada para identificar donde deben introducirse los valores de las flechas. Si se van a tirar varias distancias y éstas ya han sido configuradas en el dispositivo serán resaltadas a medida que avance la competición. Si se necesitase, es posible también pasar de la anotación de flechas actual a la hoja de puntuación electrónica del arquero.'; $lang['HelpSettingsHead']='Configuración'; +$lang['HelpSettingsText']='Esta función le permitirá configurar la conexión del dispositivo a Ianseo. Una vez configurado, el dispositivo intentará conectarse utilizando los parámetros disponibles. El indicador del estado de la conexión mostrará el estado de la misma en ese momento señalando si el dispositivo está conectado, desconectado o está intentado conectarse. Si se desea, es posible también descargar idiomas adicionales. Existen parámetros avanzados adicionales dependiendo del tipo de la competición.'; $lang['HelpStartHead']='Inicio'; +$lang['HelpStartText']='Esto le permitirá iniciar la configuración de la app. Puede elegir escanear el código QR generado por Ianseo para configurar la competición en la app de un modo sencillo. Esto seleccionará automáticamente el tipo correcto de competición, los parámetros correctos de su conexión con el servidor, asi como cualquier parámetro avanzado configurado en Ianseo. Si se desea, tambien es posible configurar el dispositivo manualmente.'; $lang['MainDistance']='Distancia'; $lang['MainEnd']='Tanda'; $lang['MainInvalidKey']='Llave de licencia inválida'; @@ -89,6 +94,7 @@ $lang['ScorecardTarget']='Diana'; $lang['ScoreTotalsCloseButton']='Cerrar'; $lang['ScoreTotalsConfirmButton']='Confirmar'; +$lang['ScoreTotalsConfirmOrReview']='Uno o más de los totales no coinciden. Cambie los valores y pulse Confirmar para verificar otra vez o pulse Cerrar para volver y revisar sus puntuaciones.'; $lang['ScoreTotalsMessage']='Por favor, introduzca las puntuaciones de su hoja de puntuación'; $lang['ScoreTotalsMissingValues']='Por favor, introduzca todos los valores requeridos'; $lang['ScoreTotalsScore']='Puntuación total'; @@ -141,14 +147,17 @@ $lang['SettingsManualRRLevel']='Nivel'; $lang['SettingsManualRRRound']='Serie'; $lang['SettingsManualSession']='Sesión'; +$lang['SettingsManualStage']='Fase'; $lang['SettingsManualTarget']='Diana'; $lang['SettingsOtherAskForSignature']='Preguntar por la firma'; $lang['SettingsOtherAskForTotals']='Preguntar por los totales cuando se ha sumado'; $lang['SettingsOtherCategory']='Otras opciones'; +$lang['SettingsOtherEnableHaptics']='Habilitar las valoraciones táctiles'; $lang['SettingsOtherHideTotals']='Ocultar totales cuando se está tanteando'; $lang['SettingsOtherSignatureNone']='No'; $lang['SettingsOtherSignatureScan']='Escanear ID del arquero'; $lang['SettingsOtherSignatureScreen']='Firmar en pantalla'; +$lang['SettingsOtherSpotting']='Modo localizar'; $lang['SettingsQrCodesCategory']='Códigos QR'; $lang['SettingsQrCodesDevice']='Dispositivo'; $lang['SettingsQrCodesPayload']='Datos QR'; @@ -181,6 +190,8 @@ $lang['ShootoffClosestTitle']='Se requiere la flecha más cercana al centro'; $lang['ShootoffNewConfirmation']='Confirmación del desempate'; $lang['ShootoffNewIsNeeded']='¿Se necesita un nuevo desempate para decidir el ganador del encuentro?'; +$lang['SignatureClear']='Limpiar'; +$lang['SignatureIncorrectCodeMessage']='El código que ha escaneado no es el correcto para este arquero. ¿Está seguro de que ha escaneado el código para {{n}}? Por favor, escanee el código correcto.'; $lang['SignatureIncorrectCodeTitle']='Código de barras incorrecto'; $lang['SignatureReturnDev']='Devuelva el dispositivo al equipo de resultados'; $lang['SignatureSaved']='¡Guardado!'; diff --git a/src/Common/Languages/es/Ianseo.php b/src/Common/Languages/es/Ianseo.php index ca6d3556..d01fc2fc 100644 --- a/src/Common/Languages/es/Ianseo.php +++ b/src/Common/Languages/es/Ianseo.php @@ -7,4 +7,9 @@ $lang['Cert-Level4']='Curso Master'; $lang['Cert-Level5']='Personal de Ianseo'; $lang['CertificateManagement']='Certificado de Gestión'; +$lang['GenerateFile']='Crear Archivo'; +$lang['ResetItems']='Reorganizar Items.
    Esta acción no requiere confirmación y no podrá deshacerse!
    Resetear la calificación reseteará también todos los subsiguientes eventos!'; +$lang['ResetResult']='Los turnos solicitados han sido reorganizados'; +$lang['ResetSessions']='Confirmar Reseteo'; +$lang['ShuffleResults']='Reorganizar los resultados'; ?> \ No newline at end of file diff --git a/src/Common/Languages/es/Install.php b/src/Common/Languages/es/Install.php index 67c396d0..ff4d17b2 100644 --- a/src/Common/Languages/es/Install.php +++ b/src/Common/Languages/es/Install.php @@ -83,7 +83,7 @@ $lang['Parameter']='Párametro'; $lang['Password']='Contraseña'; $lang['PHP settings']='Ajustes del PHP'; -$lang['PHP too old']='Tú instalación PHP es demasiado anticuada. La versión mínima para trabajar con IANSEO debe ser la 5.0.'; +$lang['PHP too old']='Tú versión de PHP instalada está anticuada. La versión mínima para trabajar con IANSEO debe ser la 8.0.'; $lang['PHP version']='Versión PHP'; $lang['php.ini file']='archivo php.ini'; $lang['Prepare']='Preparando los datos para la actualización'; diff --git a/src/Common/Languages/es/Records.php b/src/Common/Languages/es/Records.php index 4572ba86..95ed13e3 100644 --- a/src/Common/Languages/es/Records.php +++ b/src/Common/Languages/es/Records.php @@ -48,7 +48,7 @@ $lang['RecordAreaName']='Nombre del Récord'; $lang['RecordAreaNew']='Nuevo Récord de Área'; $lang['RecordAreaOdfCode']='Código de Publicación de 2 Letras'; -$lang['RecordAreaOdfCodeHelp']='Un Código Genérico específico de 2-3 Letras para este tipo de récord para usarlo en publicación. Ejemplo: GR para Récord de Juegos, NR para Récord Nacional, NPR para Récord Nacional Adaptado.'; +$lang['RecordAreaOdfCodeHelp']='Un Código Genérico específico de 2-3 Letras para este tipo de récord para usarlo en publicaciones. Ejemplo: GR para Récord de Juegos, NR para Récord Nacional, NPR para Récord Nacional Adaptado.'; $lang['RecordAreaOdfHeader']='Encabezado del récord'; $lang['RecordAreaOdfHeaderHelp']='Nombre completo para este Ejemplo de Récord: "Récord de Juegos", "Récord Nacional Klingon", "Record Juegos Paralímpicos"'; $lang['RecordAreaOdfParaCode']='Código de Publicación de 2 Letras (Adaptado)'; diff --git a/src/Common/Languages/es/RunArchery.php b/src/Common/Languages/es/RunArchery.php index 2d7f3d20..cd18e61b 100644 --- a/src/Common/Languages/es/RunArchery.php +++ b/src/Common/Languages/es/RunArchery.php @@ -1,4 +1,5 @@ \ No newline at end of file diff --git a/src/Common/Languages/fr/Boinx.php b/src/Common/Languages/fr/Boinx.php index f2d55caf..30c1e1b9 100644 --- a/src/Common/Languages/fr/Boinx.php +++ b/src/Common/Languages/fr/Boinx.php @@ -7,6 +7,99 @@ $lang['ArcheryTopScoring.qtz']='Montre le résulta d\'un match en court dans le coin supérieur gauche de l\'écran ou en plein écran. Il est possible de visualiser également la photo de l\'archer ou le drapeau du pays. Avec le set ou le score cumulatif.'; $lang['BoinxLayer']='Composants Boinx'; $lang['BoinxSchedule']='Horaire de Boinx'; +$lang['CssArrowCommon']='Flèches'; +$lang['CssArrTitle']='Score total - Titre'; +$lang['CssArrTotal']='Score total - Valeurs'; +$lang['CssBoxCommon']='Bloc - Général'; +$lang['CssBoxLeft']='Bloc - Gauche'; +$lang['CssBoxRight']='Bloc - Droite'; +$lang['CssCountry']='Bloc Nom et couleurs - Pays'; +$lang['CssCountryCommon']='Pays'; +$lang['CssFlag']='Bloc'; +$lang['CssFlexArrows']='Bloc volée détaillée - Commun'; +$lang['CssFlexArrowsDiv']='Emplacement Flèche'; +$lang['CssFlexName']='Bloc Nom et Drapeau - Commun'; +$lang['CssFlexSum']='Bloc Volée actuelle - Commun'; +$lang['CssFlexTotal']='Bloc Score total - Commum'; +$lang['CssImage']='Image d\'habillage'; +$lang['CssImage1']='CSS Image 1'; +$lang['CssImage2']='CSS Image 2'; +$lang['CssImage3']='CSS Image 3'; +$lang['CssImageDiv']='Espace de l\'image d\'habillage'; +$lang['CssLeftFlexArrows']='Volée détaillée - Gauche'; +$lang['CssLeftFlexName']='Nom et drapeau - Gauche'; +$lang['CssLeftFlexSum']='Volée actuelle - Gauche'; +$lang['CssLeftFlexTotal']='Score total - Gauche'; +$lang['CssLeftLight']='Timming - Gauche'; +$lang['CssLeftNames']='Marque - Gauche'; +$lang['CssLeftPresentation']='Présentation - Gauche'; +$lang['CssLeftPresentationCountry']='Présentation du Club -Gauche'; +$lang['CssLeftPresentationEvent']='Présentation du tour - Gauche'; +$lang['CssLeftPresentationNames']='Présentation de l\'Archer - Gauche'; +$lang['CssLeftWinner']='Vainqueur Gauche'; +$lang['CssLight']='Bloc temps - Commun'; +$lang['CssMatchBottom']='Match - Ligne du bas'; +$lang['CssMatchCommon']='Match - Commun'; +$lang['CssMatchTop']='Match - Ligne du haut'; +$lang['CssName']='Nom + Drapeau de l\'Archer'; +$lang['CssNames']='Feuille de marque'; +$lang['CssPointsCommon']='Point'; +$lang['CssPresentation']='Menu de présentation'; +$lang['CssPresentationCountry']='Nom du club'; +$lang['CssPresentationCountryCode']='Numéro de licence'; +$lang['CssPresentationCountryFlag']='Drapeau'; +$lang['CssPresentationCountryName']='Nom du club'; +$lang['CssPresentationEvent']='Présentation de la phase en cours'; +$lang['CssPresentationNames']='Nom de la phase en cours'; +$lang['CssRankCommon']='Rang de la cellule'; +$lang['CssReminder']='N\'oubliez pas de sauvegarder :) !'; +$lang['CssRightFlexArrows']='Detail de la volée - Droite'; +$lang['CssRightFlexName']='Bloc Nom et Drapeau - Droit'; +$lang['CssRightFlexSum']='Bloc Volée actuelle - Droit'; +$lang['CssRightFlexTotal']='Bloc Score total - Droit'; +$lang['CssRightLight']='Bloc Temps - Droit'; +$lang['CssRightNames']='Feuille de marque - Droit'; +$lang['CssRightPresentation']='Présentation - Droit'; +$lang['CssRightPresentationCountry']='Ligne du Pays/club - Droit'; +$lang['CssRightPresentationEvent']='Ligne de la catégorie - Droit'; +$lang['CssRightPresentationNames']='Ligne des noms - Droit'; +$lang['CssRightWinner']='Bloc Vainqueur - Droit'; +$lang['CssSeriesHeaderCommon']='Entête - Commun'; +$lang['CssSeriesTitle']='Total'; +$lang['CssSetsCommon']='Point de set'; +$lang['CssSetTitle']='Point de match'; +$lang['CssSoCommon']='Bloc Flèche de Barrage - Commun'; +$lang['CssSoPoints']='Bloc Flèche de Barrage - Points'; +$lang['CssSoPointsCommon']='Points'; +$lang['CssSoSeriesTitle']='Entête - Titre de la catégorie'; +$lang['CssSoSets']='Bloc Flèche de Barrage - Set'; +$lang['CssSoSetsCommon']='Sets'; +$lang['CssSoSetTitle']='Entête - Set'; +$lang['CssSumTitle']='Titre de la Volée en cours'; +$lang['CssSumTotal']='Valeur de la volée en cours'; +$lang['CssText1']='CSS pour Texte 1'; +$lang['CssText2']='CSS pour Texte 2'; +$lang['CssText3']='CSS pour Texte 3'; +$lang['CssText4']='CSS pour Texte 4'; +$lang['CssTitleCommon']='Titre principal'; +$lang['CssVegasFreeTextRow']='Ligne'; +$lang['CssVegasFreeTextText']='Texte'; +$lang['CssVegasFreeTextTitle']='Sous titre'; +$lang['CssVegasInOutFlag']='Drapeau'; +$lang['CssVegasInOutIsIn']='Variation des points IN'; +$lang['CssVegasInOutIsLens']='Variation des points LENS (non utilisé)'; +$lang['CssVegasInOutIsOut']='Variation des points OUT'; +$lang['CssVegasInOutIsWinner']='Vainqueur - Variation de point'; +$lang['CssVegasInOutLong']='Drapeau + Nom'; +$lang['CssVegasInOutName']='Nom'; +$lang['CssVegasInOutPoints']='Points'; +$lang['CssVegasInOutRow']='Ligne'; +$lang['CssVegasSOName']='Nom'; +$lang['CssVegasSOPoints']='Points'; +$lang['CssVegasSORow']='Ligne'; +$lang['CssVegasSOTarget']='Cible'; +$lang['CssWindSpeed']='Panneau Vent'; +$lang['CssWinner']='Bloc Vainqueur - Commun'; $lang['DirNotWriteable']='Pas d\'accès en écriture dans le répertoire'; $lang['Download']='Télécharger'; $lang['HowToUse']='Comment intégrer Ianseo et Boinx ?'; diff --git a/src/Common/Languages/fr/Common.php b/src/Common/Languages/fr/Common.php index fbe0ec89..b7bb01a0 100644 --- a/src/Common/Languages/fr/Common.php +++ b/src/Common/Languages/fr/Common.php @@ -11,10 +11,13 @@ $lang['32_Phase']='1/32'; $lang['48_Phase']='1/48'; $lang['4_Phase']='1/4'; +$lang['50M']='Homme +50ans'; +$lang['50W']='Femme +50ans'; $lang['63_Phase']='Rencontres D1'; $lang['64_Phase']='1/64'; $lang['7_Phase']='1/6ème de finale (14 qualifiés)'; $lang['8_Phase']='1/8'; +$lang['AccreditationBoothSetup']='Paramétrage bureau des accréditation'; $lang['Advanced']='Avancé'; $lang['AdvancedMode']='Mode Avancé'; $lang['AF']='Dames Cadet'; @@ -26,6 +29,7 @@ $lang['AllowMultiTeam']='Créer automatiquement plusieurs équipes'; $lang['AllowPartialTeams']='Autoriser les équipes incomplètes'; $lang['AllSecReviews']='Commentaires en langue secondaire'; +$lang['All_Phases']='Toutes les phases'; $lang['AM']='Hommes Cadet'; $lang['AN']='Bare Bow'; $lang['Archer']='Archer'; @@ -64,9 +68,11 @@ $lang['CmdOk']='Ok'; $lang['CmdOn']='On'; $lang['CmdPostUpdate']='Post-mise à jour'; +$lang['CmdRefresh']='Actualiser'; $lang['CmdSave']='Sauvegarder'; $lang['CmdSaveContinue']='Sauver et continuer'; $lang['CmdSet2All']='Assigner à tous'; +$lang['CmdSync']='Synchroniser'; $lang['CmdUpdate']='Mettre à jour'; $lang['CO']='Arc à Poulies'; $lang['CommaSeparatedValues']='Valeurs séparées par des virgules'; @@ -110,6 +116,7 @@ $lang['DayOfWeek_4']='Jeu'; $lang['DayOfWeek_5']='Ven'; $lang['DayOfWeek_6']='Sam'; +$lang['DefaultMode']='Mode par defaut'; $lang['DeleteSession']='Supprimer le départ'; $lang['Description']='Description'; $lang['Destination']='Cible de destination'; @@ -136,6 +143,10 @@ $lang['Finish']='Fin'; $lang['FirstPhase']='Première phase'; $lang['FopSetup']='Aménagement du terrain'; +$lang['Gender0']='Homme'; +$lang['Gender1']='Femme'; +$lang['GenderShort0']='M'; +$lang['GenderShort1']='F'; $lang['GF']='Dames Benjamins'; $lang['GM']='Hommes Benjamins'; $lang['HELP']='Aide!'; @@ -153,7 +164,14 @@ $lang['IndFinEventWithoutShootOff']='Attention!
    les épreuves suivantes sont encore en barrage et ne seront pas visibles!'; $lang['IndImport']='Importer les données des duels individuels'; $lang['Individual']='Individuel'; +$lang['IndTeam-0']='Individuel'; +$lang['IndTeam-1']='Equipes'; +$lang['InitEliminations']='Initialiser les phases Eliminatoires'; +$lang['InitEliminations1']='Initialiser le 1er tour des phases Eliminatoires'; +$lang['InitEliminations2']='Initialiser le 2nd tour des phases Eliminatoires'; $lang['InitFinalGrids']='Initialiser les duels'; +$lang['InitPools']='Initialisation des Poules'; +$lang['InvalidAction']='Action invalide'; $lang['ISK-Configuration']='Gestion des périphériques'; $lang['ISK-GetQRData']='Obtenir données QRCode'; $lang['ISK-Results']='Résultats'; @@ -169,6 +187,7 @@ $lang['jrTextBox']='Zone de texte, $a caractères maximum'; $lang['jrYesNo']='Oui / Non'; $lang['JudgeNotes']='Annotations des arbitres'; +$lang['JW']='Junior Femme'; $lang['LB']='Long Bow'; $lang['LiveOff']='Désactiver le mode direct-LIVE'; $lang['LiveOffSession']='Mettre le direct en OFF pour tous les matchs'; @@ -185,14 +204,18 @@ $lang['MatchMode_0']='Cumulatif'; $lang['MatchMode_1']='Mode "set"'; $lang['MatchNo']='Match N°'; +$lang['MatchWinShot']='Match pour la victoire'; +$lang['MatchWinShotHelp']='[Nb de tirs gagnants réussis] - [Nb de tirs vainqueurs échoués] %=Pourcentage de succès lorsqu’une flèche est un gagnant potentiel'; $lang['Medal']='Médaille'; $lang['MedalBronze']='Bronze'; $lang['MedalGold']='Or'; $lang['MedalList']='Liste des médailles'; $lang['MedalSilver']='Argent'; $lang['MedalStanding']='Classement des médailles'; +$lang['MenuLMRemoveNoShows']='Supprimer les absents'; $lang['MenuLM_Accreditation']='Accréditation'; $lang['MenuLM_Accreditation colors management']='Gestion des couleurs d\'accréditaton'; +$lang['MenuLM_AdvancedFeatures']='Fonctions avancées'; $lang['MenuLM_AdvLabels']='Impression avancée des étiquettes'; $lang['MenuLM_Archers on Targets']='Archers par cible'; $lang['MenuLM_Arr4Set']='Flèches par set'; @@ -202,7 +225,9 @@ $lang['MenuLM_Athletes Participation to Ind/Team Event']='Participation des compétiteurs aux épreuves Ind/Equipe'; $lang['MenuLM_Athletes Setup']='Configuration des compétiteurs'; $lang['MenuLM_Athletes Sync.']='Synchronisation des compétiteurs'; +$lang['MenuLM_AthletesDiscrepancies']='Para-Archers'; $lang['MenuLM_Athlets fees status']='Etat du paiement des compétiteurs'; +$lang['MenuLM_Authentication']='Identifiant utilisateur'; $lang['MenuLM_AutoCheckinSetup']='Mise au point de l\'auto check-in'; $lang['MenuLM_Back Number Printout']='Impression des dossards'; $lang['MenuLM_Boinx']='Configuration des couches Boinx'; @@ -214,11 +239,14 @@ $lang['MenuLM_Category Result List']='Liste des résultats par catégorie'; $lang['MenuLM_Change Components']='Changement des composants'; $lang['MenuLM_ChangeNationsNames']='Changer les noms des Nations'; +$lang['MenuLM_ChangePassword']='Changer le mot de passe'; $lang['MenuLM_Check Data Update']='Contrôles des données'; $lang['MenuLM_Check shoot-off before eliminations']='Contrôler les ex-aequo avant les éliminatoires'; $lang['MenuLM_Check shoot-off before final phases']='Contrôler les ex-aequo avant les phases finales'; +$lang['MenuLM_Check shoot-off before Rank']='Vérifier les tirs de barrage avant l\'impression du classement'; $lang['MenuLM_CheckAwards']='Vérification de la traduction des récompenses'; $lang['MenuLM_CheckList']='Imprimer la liste de vérification'; +$lang['MenuLM_CIS']='CIS'; $lang['MenuLM_CleanDir']='Nettoyage du répertoire temporaire'; $lang['MenuLM_Close']='Fermer'; $lang['MenuLM_ClubChampEvent']='Championnat Nationnal des équipes club'; @@ -255,6 +283,7 @@ $lang['MenuLM_Export-FR-Results']='Export pour FFTA'; $lang['MenuLM_ExportFieldStatistics']='Export du champs statistiques'; $lang['MenuLM_Extended Table']='Tableau étendu'; +$lang['MenuLM_ExtraAddOns']='Add-Ons'; $lang['MenuLM_ExtraCategories']='Catégories standard suplémentaires'; $lang['MenuLM_Fees setup']='Configuration des paiements'; $lang['MenuLM_Field Crew']='Equipe de terrain'; @@ -264,6 +293,9 @@ $lang['MenuLM_FinalFOPChoose']='Terrain Final étendu'; $lang['MenuLM_FlightsAwardManagement']='Gestion des récompenses des Flights'; $lang['MenuLM_FlightsManagement']='Gestion des Flights'; +$lang['MenuLM_FontManagement']='Gestion de la police'; +$lang['MenuLM_GateControl']='Contrôle Portes d\'Accès'; +$lang['MenuLM_GateSituation']='Supervision Portes d\'Accès'; $lang['MenuLM_Get Info']='Informations'; $lang['MenuLM_getBiographies']='Prendre les Biographies WA'; $lang['MenuLM_GetScoreBarcode']='Prise des scores via barre-code'; @@ -294,6 +326,7 @@ $lang['MenuLM_ListLoad']='Chargement de liste (importation tableur)'; $lang['MenuLM_Lock manage']='Conditions d\'accès au réseau'; $lang['MenuLM_Lock setup']='Configuration des verrouillages'; +$lang['MenuLM_Logout']='Déconnexion'; $lang['MenuLM_LueFill']='Créer une boucle à partir d\'un fichier'; $lang['MenuLM_Manage Events']='Gestion des Epreuves'; $lang['MenuLM_ManageActiveSession']='Gérer les sessions actives'; @@ -319,6 +352,7 @@ $lang['MenuLM_Pools']='Poules'; $lang['MenuLM_Print Sign']='Écriteau'; $lang['MenuLM_PrintAwards']='Impression des récompenses'; +$lang['MenuLM_PrintAwardsPositions']='Imprimer les positions pour les récompenses'; $lang['MenuLM_PrintBadges']='Impression des badges d\'accreditation'; $lang['MenuLM_PrintFinalReport']='Imprimer le rapport final'; $lang['MenuLM_Printout']='Impressions'; @@ -326,6 +360,7 @@ $lang['MenuLM_PrintSchedulingByDay']='Imprimer le programe par jour'; $lang['MenuLM_PrnShootOff']='Impression du status Shoot-Off / Pièce'; $lang['MenuLM_QrCodes']='Imprimer les QR-Codes'; +$lang['MenuLM_QrCodesGates']='QR-Code d\'Accès terrain'; $lang['MenuLM_Qualification']='Qualification'; $lang['MenuLM_Qualification Field of Play Layout']='Aménagement du terrain des qualifications'; $lang['MenuLM_Qualification Round']='Impression du tour de Qualification'; @@ -409,6 +444,7 @@ $lang['MsgRowMustBeComplete']='ATTENTION!
    Il faut compléter entièrement la ligne avant de continuer!'; $lang['MsgWhyImportError']='Vous êtes en train de réinsérer les duels.
    Il faut d\'abord vider les duels avant de rappeler cette fonction!'; $lang['MultiTeamMaxNo']='Nombre maximum d\'équipes générées (0 = aucune limite)'; +$lang['MW']='Vétérans Femmes'; $lang['MySqlCollation']='général'; $lang['Nation']='Nom du Club/pays'; $lang['NextMatchNames']='Noms de la phase suivante'; @@ -457,6 +493,7 @@ $lang['Score1Page1Match']='Score du match'; $lang['ScoreDrawing']='Schéma seulement (une seule page)'; $lang['ScoreFilled']='Imprimer les feuilles de marques avec les résultats des flèches'; +$lang['ScoreIncAllNames']='Inclure tous les archers possible'; $lang['ScoreIncEmpty']='Impression de tous les matchs'; $lang['Scorer']='Marqueur'; $lang['SearchOrphanTexts']='Recherche de textes orphelins'; @@ -467,7 +504,9 @@ $lang['SF']='Dames Senior'; $lang['ShootOff4Elim']='Contrôler les ex-aequo avant les éliminatoires'; $lang['ShootOff4Final']='Contrôler les ex-aequo avant les phases finales'; +$lang['ShootOff4Rank']='Vérifier les tirs de barrage avant l\'impression du classement'; $lang['SM']='Hommes Senior'; +$lang['SnapshotConf']='Instantané de config.'; $lang['SortBy']='Trier par'; $lang['Source']='Cible source'; $lang['SourceSession']='Vers la session'; @@ -497,6 +536,7 @@ $lang['TeamFinal']='Finales Équipes'; $lang['Teams']='Equipes'; $lang['TecError']='Pour des raisons techniques il est impossible d\'afficher la page demandée'; +$lang['TempRank']='Classement temporaire'; $lang['TF']='Equipes Femmes'; $lang['Tie']='Barrage'; $lang['TieArrows']='Flèches de barrage'; @@ -512,6 +552,8 @@ $lang['TrgCOOutdoorSmall']='Extérieur (6-X)'; $lang['TrgField']='Tir campagne'; $lang['TrgForestSwe']='Forêt (Suède)'; +$lang['TrgFrBeursault']='Beusault'; +$lang['TrgFrBouquet']='Bouquet Provincial'; $lang['TrgHMOutComplete']='Cible académique (touché/manqué)'; $lang['TrgHunterNor']='Chasse (Norvège)'; $lang['TrgIndComplete']='Salle standard (1-10)'; @@ -519,9 +561,15 @@ $lang['TrgNfaaInd']='NFAA Indoor (1-5/X)'; $lang['TrgOutdoor']='Extérieur (1-X)'; $lang['U']='Unisexe'; +$lang['U18M']='U18 Homme'; +$lang['U18W']='U18 Femme'; +$lang['U21M']='U21 Homme'; +$lang['U21W']='U21 Femme'; $lang['UnexpectedError']='Erreur inattendue'; $lang['VF']='Dames Vétérants'; $lang['VM']='Hommes Vétérants'; +$lang['W']='Femme'; +$lang['WADivision']='Catégories WA'; $lang['Winner']='Gagnant'; $lang['Yes']='Oui'; ?> \ No newline at end of file diff --git a/src/Common/Languages/fr/Errors.php b/src/Common/Languages/fr/Errors.php index 3d9f9fd7..6cfd5513 100644 --- a/src/Common/Languages/fr/Errors.php +++ b/src/Common/Languages/fr/Errors.php @@ -1,7 +1,24 @@ Veuillez mettre à jour votre installation dès que possible pour supporter PHP {$a} ou plus récent.'; +$lang['RegExp']='Pour utiliser les RegExp (Expressions Régulières), veuillez vous référer à $a'; +$lang['ResetSyncData']='Réinitialiser la synchronisation de données'; +$lang['ServiceNotAvailable']='Service non disponible'; +$lang['SetupNotFinished']='Vous ne pouvez pas accéder à cette page : veuillez d\'abord compléter {$a}'; +$lang['SpecialFilterDiscrepancy']='Le filtre spécial a été paramétré mais non activé!'; +$lang['SyncNotAvailable']='Synchronisation non disponible'; +$lang['TargetNumberMismatch']='Formatage de l\'affectation des cibles [Numero de cible][Lettre de cible]. Exemple: 123C / 001D'; +$lang['TargetRangeMismatch']='Les plages de cibles doivent être composées de deux numéros de cibles (pas de lettres) séparés par un tiret (signe moins), le premier étant plus bas que le second, comme dans 23-44.'; +$lang['TextSmtpDelete']='Désactiver les paramètres SMTP sur cette installation d\'Ianseo'; +$lang['TooManyArrows']='Trop de flèches saisies: le maximum est $a'; +$lang['TooManyDistancesMatch']='Catégories paramétrées avec plusieurs distances'; +$lang['TooManyElimQualified']='Type de duels $a[0] ne peuvent accepter que jusqu\'à $a[1]archers'; +$lang['WrongData']='Données erronées'; +$lang['WrongPort']='Ce port n\'est pas supporté!'; ?> \ No newline at end of file diff --git a/src/Common/Languages/fr/Help.php b/src/Common/Languages/fr/Help.php index 518951eb..10c201c7 100644 --- a/src/Common/Languages/fr/Help.php +++ b/src/Common/Languages/fr/Help.php @@ -1,6 +1,11 @@ Ne pas partager ce code

    Utiliser un code Pin à 4 chiffres pour sécuriser votre compétition.
    Les tablettes peuvent se connecter à la compétition via le QR-Code.
    En cas de saisie manuelle dans l\'application, utiliser ce code {$a}'; $lang['ScoreBarCodeShortcuts']='Lire le code-barre de la feuille de marque.
    Insertion Manuelle d\'un # suivi par le nom de l\'Athlète recherche dans la base de données pour le trouver
    Insérer un @ suivit d\'un N° de cible recherche cette cible. La distance doit être indiquée; la session doit être spécifiée (un chiffre) et la cible 000 (3 chiffres)'; +$lang['UserName']='Identifant unique dans le systeme. Minimum de 6 caractères'; ?> \ No newline at end of file diff --git a/src/Common/Languages/fr/IOC_Codes.php b/src/Common/Languages/fr/IOC_Codes.php index 45ae6138..0761308d 100644 --- a/src/Common/Languages/fr/IOC_Codes.php +++ b/src/Common/Languages/fr/IOC_Codes.php @@ -12,8 +12,8 @@ $lang['ASA']='Samoa Américaines'; $lang['AUS']='Australie'; $lang['AUT']='Autriche'; -$lang['Award-Anthem']='Mesdames et Messieurs, veuillez vous lever pour l\'Hymne National de'; -$lang['Award-Anthem-TPE']='Mesdames et Messieurs, veuillez vous lever pour l\'hymne de'; +$lang['Award-Anthem']='Mesdames et Messieurs, veuillez vous lever si vous le pouvez, pour l\'Hymne National de'; +$lang['Award-Anthem-TPE']='Mesdames et Messieurs, veuillez vous lever si vous le pouvez pour l\'hymne de'; $lang['Award-Applause']='Mesdames et Messieurs, veuillez applaudir chaleureusement nos athlètes'; $lang['Award-Intro']='Mesdames et Messieurs, la cérémonie protocolaire pour la catégorie {$a}'; $lang['Award-MedalGiver']='Les médailles seront remises par $a'; @@ -48,10 +48,8 @@ $lang['CGO']='République du Congo'; $lang['CHA']='Tchad'; $lang['CHI']='Chili'; -$lang['CHN']='Chine'; $lang['CIV']='Côte d\'Ivoire'; $lang['CMR']='Caméroun'; -$lang['COD']='République Démocratique du Congo'; $lang['COK']='Îles Cook'; $lang['COL']='Colombie'; $lang['COM']='Comôres'; @@ -60,7 +58,6 @@ $lang['CRO']='Croatie'; $lang['CUB']='Cuba'; $lang['CYP']='Chypre'; -$lang['CZE']='République Tchèque'; $lang['DEN']='Danemark'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominique'; @@ -74,7 +71,9 @@ $lang['ETH']='Étiopie'; $lang['FIJ']='Fidji'; $lang['FIN']='Finlande'; +$lang['FPO']='Tahiti'; $lang['FRA']='France'; +$lang['FRO']='Iles Féroé'; $lang['FSM']='Micronésie'; $lang['GAB']='Gabon'; $lang['GAM']='Gambie'; @@ -84,6 +83,7 @@ $lang['GEQ']='Guinée Équatoriale'; $lang['GER']='Allemagne'; $lang['GHA']='Ghana'; +$lang['GLP']='Guadeloupe'; $lang['GRE']='Grèce'; $lang['GRN']='Grenade'; $lang['GUA']='Guatémala'; @@ -91,17 +91,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyanne'; $lang['HAI']='Haïti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Hongrie'; $lang['INA']='Indonésie'; $lang['IND']='Inde'; -$lang['IRI']='Iran'; $lang['IRL']='Irlande'; $lang['IRQ']='Iraq'; $lang['ISL']='Islande'; $lang['ISR']='Israël'; -$lang['ISV']='Îles Vierges (US)'; $lang['ITA']='Italie'; $lang['IVB']='Îles Vierges (UK)'; $lang['JAM']='Jamaïque'; @@ -112,11 +109,12 @@ $lang['KGZ']='Kirghizistan'; $lang['KIR']='Kiribati'; $lang['KOR']='République de Corée'; +$lang['KOS']='Kosovo'; $lang['KSA']='Arabie Saoudite'; $lang['KUW']='Koweit'; -$lang['LAO']='Laos'; $lang['LAT']='Lettonie'; $lang['LBA']='Libye'; +$lang['LBN']='Liban'; $lang['LBR']='Libéria'; $lang['LCA']='Sainte Lucie'; $lang['LES']='Lesotho'; @@ -124,11 +122,11 @@ $lang['LIE']='Lichtenstein'; $lang['LTU']='Lituanie'; $lang['LUX']='Luxembourg'; +$lang['MAC']='Macao, Chine'; $lang['MAD']='Madagascar'; $lang['MAR']='Maroc'; $lang['MAS']='Malaysie'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldavie'; $lang['MDV']='Maldives'; $lang['Medal-1']='Médaille d\'Or'; $lang['Medal-2']='Médaille d\'Argent'; @@ -137,7 +135,6 @@ $lang['MEX']='Mexique'; $lang['MGL']='Mongolie'; $lang['MHL']='Îles Marshall'; -$lang['MKD']='Macédoine du Nord'; $lang['MLI']='Mali'; $lang['MLT']='Malte'; $lang['MNE']='Monténégro'; @@ -145,9 +142,11 @@ $lang['MOZ']='Mozambique'; $lang['MRI']='Maurice'; $lang['MTN']='Mauritanie'; +$lang['MTQ']='Martinique'; $lang['MYA']='Myanmar'; $lang['NAM']='Namibie'; $lang['NCA']='Nicaragua'; +$lang['NCL']='Nouvelle Caledonie'; $lang['NED']='Pays Bas'; $lang['NEP']='Népal'; $lang['NGR']='Nigéria'; @@ -166,7 +165,6 @@ $lang['PNG']='Papouasie Nouvelle Guinée'; $lang['POL']='Pologne'; $lang['POR']='Portugal'; -$lang['PRK']='Korée du Nord'; $lang['PUR']='Porto Rico'; $lang['QAT']='Quatar'; $lang['ROU']='Roumanie'; @@ -193,16 +191,15 @@ $lang['SVK']='Slovaquie'; $lang['SWE']='Suède'; $lang['SWZ']='Swaziland'; -$lang['SYR']='Syrie'; $lang['TAN']='Tanzanie'; $lang['TGA']='Tonga'; $lang['THA']='Thailande'; $lang['TJK']='Tadjikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Timor oriental'; $lang['TOG']='Togo'; $lang['TPE']='Taïpei Chinoise'; $lang['TRI']='Trinité et Tobago'; +$lang['TTO']='Trinité-et-Tobago'; $lang['TUN']='Tunisie'; $lang['TUR']='Turquie'; $lang['TUV']='Tuvalu'; diff --git a/src/Common/Languages/fr/ISK-App.php b/src/Common/Languages/fr/ISK-App.php index ad0909f8..54a51e06 100644 --- a/src/Common/Languages/fr/ISK-App.php +++ b/src/Common/Languages/fr/ISK-App.php @@ -1,27 +1,90 @@ \ No newline at end of file diff --git a/src/Common/Languages/fr/ISK.php b/src/Common/Languages/fr/ISK.php index 57cc593f..39d9f56e 100644 --- a/src/Common/Languages/fr/ISK.php +++ b/src/Common/Languages/fr/ISK.php @@ -1,5 +1,6 @@ Effacer Tout - éfface tous les scores de flèche entrés.'; +$lang['ClearingCache']='Vider le cache'; $lang['ClearLast']='Effacer le dernier'; $lang['ClearLastDesc']='Effacer le dernier - efface le score de la dernière flèche entré.'; $lang['Close']='Fermer le menu'; @@ -65,20 +76,28 @@ $lang['Confirmation']='Confirmation'; $lang['ConfirmValues']='Êtes vous certain de vouloir utiliser ces valeurs?'; $lang['Continue']='suite'; +$lang['Data']='Données:'; $lang['DeleteError']='Effacement des informations précédentes de l\'athlète échoué: Veuillez essayer à nouveau Error: __TEXT__'; $lang['Developer']='App développée par Ken Sentell'; +$lang['DeviceId']='ID de l\'appareil'; +$lang['Diags']='Diagnostic'; $lang['Distance']='Distance'; $lang['DistDoesntExist']='Ce QR-code n\'est pas valide sur cette distance'; $lang['DistErr']='Données de distance ne sont pas dans la zone'; $lang['DistTotal']='Dist
    Total'; $lang['EditScores']='Editer les scores'; +$lang['Elimination']='Elimination'; $lang['EmptyEndAlert']='La volée précédante n\'a pas été notée. Êtes vous certain de vouloir noter cette flèche dans cette volée?'; $lang['EmptyResponse']='Réponse Serveur Vide'; $lang['End']='Volée'; +$lang['EndLocked']='La volée a été verrouillée et ne peut être changée'; +$lang['EndRequest']='Saisie manuel requis'; $lang['EndSummary']='Fin du sommaire'; $lang['EndTotal']='End
    Total'; $lang['EnterCompCode']='Veuillez entrer le code de compétition et réessayer'; $lang['EnterServerUrl']='Veuillez entrer l\'URL du serveur et réessayer'; +$lang['EntryEnd']='Sélectionnez la volée où vous voulez agir'; +$lang['EntryTarget']='Entrer le bon numéro de cible'; $lang['ErrorClearArrows']='Ne peut effacer toutes les valeurs des flèches. Réessayez! Error __TEXT__'; $lang['ErrorGetAthlete']='Ne peut retrouver les informations de l\'athlète. Error __TEXT__'; $lang['ErrorGetComp']='Ne peut retrouver les informations de la compétition. Réessayez!Error __TEXT__'; @@ -91,6 +110,7 @@ $lang['Exit']='Sortir'; $lang['ExitConfirm']='Êtes vous certain de vouloir quitter l\'app?'; $lang['Face']='Blason'; +$lang['FieldControl']='Contrôle Terrain'; $lang['FirstTarget']='1ère Cible:'; $lang['GestureHelp']='Vous pouvez parcourir les archers et/ou les volées en utilisant les gestes décrits ci dessous.'; $lang['Gestures']='Gestes'; @@ -99,13 +119,20 @@ $lang['HasUpdate']='Mise à jour'; $lang['Help']='Aide'; $lang['ImportDoneEmpty']='Aucune donnée à importer'; +$lang['ImportDoneMatches']='Import réalisé avec succès, les matchs de classement individuel et par équipe ont été recalculés'; +$lang['ImportDoneQual']='Import réalisé avec succès, le classement qualificatif individuel et par équipe a été recalculé'; +$lang['ImportNow']='Importer maintenant (Qualification)'; +$lang['ImportNowMatches']='Importer maintenant (Matchs)'; +$lang['ImportType']='Import automatique des flèches'; $lang['IpAddr']='Adresse IP'; $lang['ISK-TruncateTableAll']='Tronquer la table (complet)'; $lang['LastEndDist']='La dernière volée pour la distance a été complètée. Pour passer à la distance suivante appuyer sur OK sinon appuyer sur annuler pour revenir sur cette distance.'; $lang['LastEndSession']='La dernière volée de ce départ est terminée. Il n\'y a plus de volées à tirer. Vous pouvez maintenant vérifier la Feuille de marque ou retourner au Paramétrage.'; +$lang['LinkSpeed']='Vitesse de connexion'; $lang['LockAll']='Bloquer toutes les sessions'; $lang['LRSwipeLabel']='Gauche / Droite Sensibilité du touché'; $lang['LRSwipeText']='La durée du mouvement du doigt pour enregistrer un coup. Déplacez le curseur ou tapez la valeur que vous souhaitez utiliser. Un petit nombre est plus sensible .'; +$lang['ManageLockedSessions']='Gérer les sessions bloquées'; $lang['Manual']='Contacter le serveur'; $lang['ManualEntry']='Entrée manuelle'; $lang['Match']='Match'; @@ -113,9 +140,12 @@ $lang['MatchOver']='Le Match est fini. Pour revenir au setup appuyez sur OK, sinon appuyez sur Annuler.'; $lang['MatchSummary']='Résumé du match'; $lang['Menu']='Menu'; +$lang['NetworkConn']='Connecté'; +$lang['NetworkId']='ID du réseau'; $lang['NextArcher']='Archer suivant'; $lang['NextArcherDesc']='Archer Suivant - Affiche le prochain archer pour les scores.'; $lang['NextDistAlert']='Êtes vous certain de vouloir poursuivre la distance suivante?'; +$lang['No']='Non'; $lang['NoArrowScored']='Avant de marquer la flèche comme étant la plus proche elle doit être notée.'; $lang['NoAthletes']='Pas d\'athlète trouvé'; $lang['NoDist']='Pas de distance trouvée'; @@ -123,16 +153,27 @@ $lang['NoLanguages']='L\'anglais est le seul language actuellement disponible. Utilisez la fonction de mise à jour des langues du menu ajout d\'autres langues et réessayez à nouveau.'; $lang['NoServerUrl']='Vouqs devez scanner le QR-Code ou entrer manuellement l\'URL de Ianseo avant de pouvoir mettre à jour les languages.'; $lang['NoTargetTypes']='Pas de type de cible trouvé'; +$lang['NotAvailIos']='Non disponible sur iOS'; $lang['Number']='Numéro'; +$lang['Off']='Off'; $lang['Ok']='OK'; $lang['OnDevice']='Le dispositif'; +$lang['OnlyPro']='Le mode Pro est obligatoire pour cette compétition!'; $lang['Phase']='Phase'; +$lang['PingServer']='Ping server'; $lang['Points']='Points'; $lang['Prefs']='Préférences utilisateur'; $lang['PrevDistAlert']='êtes vous certain de vouloir revenir à la distance précédante?'; +$lang['ProBadLicense']='Licence ISK Pro invalide'; +$lang['ProDiag']='Diagnostic'; +$lang['ProEnd']='Choisir la volée'; +$lang['ProRecvCode']='Configuration reçue'; $lang['proScanQr']='Scanner le QR-code'; +$lang['ProWaitAuth']='Attente de l\'autorisation'; +$lang['ProWaitCode']='Attente de la configuration'; $lang['QrInvalid']='Ne peut interpréter le contenu du code-bare. Réessayez avec un code-bare Ianseo valide'; $lang['QrIskLive']='La compétition est configurée pour fonctionner avec la version ISK Live. Cette Application ne fonctionnera qu\'avec les compétitions Lite ou Pro.'; +$lang['QrIskNone']='La compétition n\'est pas configuré pour ScoreKeeper. Vérifier la configuration de la compétition.'; $lang['QrNoCode']='Pas de compétition trouvée dans le code-bare. Réessayez avec un code-bare Ianseo valide'; $lang['Reset']='Reset'; $lang['ReuseProQR']='La précédente compétition utilisait la version PRO. Souhaitez-vous utiliser ce code ?'; @@ -143,11 +184,14 @@ $lang['Scan']='Scanner'; $lang['ScanCancelled']='Scan annulé'; $lang['ScanFailed']='Scan échoué: __TEXT__'; +$lang['Scanning']='Recherche en cours! Appuyer pour annuler.'; $lang['ScanQRCode']='Scanner le Code QR'; $lang['Score']='Score'; $lang['Scorecard']='Feuille de marque'; +$lang['ScorecardsManagement']='Gestion des Feuilles de marque'; $lang['ScoredPoints']='Points marqués'; $lang['ScoreHelp']='Aide'; +$lang['ScoreHelpDesc']='Cet écran vous permet de marquer les flèches tirées. Information sur la distance, type de cible et les informations de l\'archer sont aussi affichées. Entrer les valeurs des flèches en utilisant les chiffres.'; $lang['ScoringEntry']='Saisie des scores'; $lang['SelDist']='Veuillez choisir une distance et réessayer'; $lang['SelTgtNum']='Veuillez choisir un numéro de cible et réessayer'; @@ -157,25 +201,32 @@ $lang['SettingForGroup']='Configuration pour le Groupe $a'; $lang['Setup']='Setup'; $lang['ShootOff']='SO'; +$lang['SSID']='SSID'; +$lang['SsidMissing']='Pas de nom SSID'; $lang['Stage']='Étape'; $lang['StageE1']='Tour délimination 1'; $lang['StageE2']='Tour délimination 2'; $lang['StageMI']='Matchs-individuel'; $lang['StageMT']='Matchs par équipes'; $lang['StageQ']='Qualifications'; +$lang['Status']='Statuts:'; +$lang['Superuser']='Super utilisateur'; $lang['SwipeDown']='Glisser vers le bas vers la volée précédante du compétiteur courrant'; $lang['SwipeLeft']='Glisser vers la gaucheVers le prochain compétiteur de la cible ou du groupe dans la même volée'; $lang['SwipeRight']='Glisser vers la droiteVers le compétiteur précédant pour la cible ou le groupe dans la même volée'; $lang['SwipeUp']='Glisser vers le hautVers la prochaine volée pour le compétiteur courrant'; +$lang['TapToScan']='Appuyer pour scanner'; $lang['Target']='Cible #'; +$lang['TargetEntry']='Saisie manuel de la cible'; $lang['TargetTypesError']='Donnée du type de cible n\'est pas dans la zone'; $lang['Tgt']=' 
    Tgt'; +$lang['Timeout']='Délai expiré'; $lang['Total']='Total'; $lang['Unknown']='Inconnu'; $lang['UnlockAll']='Déverrouiller les sessions'; $lang['Update']='Mise à jour'; $lang['UpdateLang']='Mise à jour des langues'; -$lang['Url']='Url:'; +$lang['Url']='URL:'; $lang['VerifyCorrect']='Veuillez vérifier la validité des données avant de continuer.'; $lang['VerNotCompatible']='Cette version de l\'app, __currver__ et n\'est pas compatible avec le logiciel Ianseo, qui fonctionne de la version __minver__ à la version __maxver__ . Veuillez installer la bonne version ou mettre à jour Ianseo.'; $lang['VerNotVerified']='Ne peut vérifier la version de l\'app avec le logiciel Ianseo. Vérifiez votre installation et réessayez!'; diff --git a/src/Common/Languages/fr/Ianseo.php b/src/Common/Languages/fr/Ianseo.php index 3167d6f7..26fe3c7b 100644 --- a/src/Common/Languages/fr/Ianseo.php +++ b/src/Common/Languages/fr/Ianseo.php @@ -7,4 +7,8 @@ $lang['Cert-Level4']='Cours Maître'; $lang['Cert-Level5']='Équipe Ianseo'; $lang['CertificateManagement']='Gestion de certificat'; +$lang['GenerateFile']='Créer le fichier'; +$lang['ResetItems']='Réinitialiser les éléments.
    Cette action ne demandera pas de confirmation et ne peut pas être annulée !
    La réinitialisation des qualifications réinitialisera également tous les événements suivants !'; +$lang['ResetResult']='Les sessions demandées ont été réinitialisées'; +$lang['ResetSessions']='Confirmez la réinitialisation?'; ?> \ No newline at end of file diff --git a/src/Common/Languages/fr/InfoSystem.php b/src/Common/Languages/fr/InfoSystem.php index f857d628..42f52c4a 100644 --- a/src/Common/Languages/fr/InfoSystem.php +++ b/src/Common/Languages/fr/InfoSystem.php @@ -1,6 +1,7 @@ Faites la même chose sur votre ordinateur portable, tablette, smartphone :
    Connectez votre appareil via la connexion wifi «ianseo» (gratuit, sans mot de passe), accédez à http://ianseo/ et suivez en direct!'; $lang['InfoPointIndex']='Utilisez le menu ci-dessus pour consulter les résultats de la compétition et trouver le rang d\'un archer.'; +$lang['Kiosk']='Kiosque'; $lang['LineToExamine']='Cliquer sur la ligne de départ à examiner'; $lang['Live']='Direct'; $lang['Matches']='Matchs'; @@ -45,8 +47,33 @@ $lang['Record-CR-FAA-avg']='Moyenne record Africains'; $lang['Record-CR-OCE']='Record d\'Océanie'; $lang['Record-CR-OCE-avg']='Moyenne record d\'Océanie'; +$lang['Record-CR-WAAf']='Record d\'Afrique'; +$lang['Record-CR-WAAf-avg']='Moyenne du Record d\'Afrique'; +$lang['Record-CR-WAAM']='Record d\'Amérique'; +$lang['Record-CR-WAAM-avg']='Moyenne du Record des Amériques'; +$lang['Record-CR-WAAs']='Record d\'Asie'; +$lang['Record-CR-WAAs-avg']='Moyenne du Record d\'Asie'; +$lang['Record-CR-WAE']='Record d\'Europe'; +$lang['Record-CR-WAE-avg']='Moyenne du Record d\'Europe'; +$lang['Record-CR-WAO -avg']='Moyenne du Record d\'Océanie'; +$lang['Record-CR-WAO']='Record d\'Océanie'; +$lang['Record-GR-FISU']='Record Universiade'; +$lang['Record-GR-FISU-avg']='Moyenne du Record de l\'Universiade'; +$lang['Record-GR-WAAM-CG']='Record des Jeux Pan-Américain'; +$lang['Record-GR-WAAM-CG-avg']='Moyenne du Record des Jeux Pan Américains'; +$lang['Record-GR-WAE-CG']='Record des Jeux Européens'; +$lang['Record-GR-WAE-CG-avg']='Moyenne du Record des Jeux Européens'; +$lang['Record-OR-avg']='Moyenne du Record Olympique'; $lang['Record-OR-WA']='Record Olympique'; $lang['Record-OR-WA-avg']='Moyenne record Olympique'; +$lang['Record-WAAF-CR-avg']='Moyenne du Record d\'Afrique'; +$lang['Record-WAAM-CC-GR']='Record Pan-Américain'; +$lang['Record-WAAM-CC-GR-avg']='Moyenne du Record des Jeux Pan Américains'; +$lang['Record-WAAM-CR-avg']='Moyenne du Record des Amériques'; +$lang['Record-WAAS-CR-avg']='Moyenne du Record d\'Asie'; +$lang['Record-WAE-CR-avg']='Moyenne du Record d\'Europe'; +$lang['Record-WAO-CR-avg']='Moyenne du Record d\'Océanie'; +$lang['Record-WR-avg']='Moyenne du Record du Monde'; $lang['Record-WR-WA']='Record Mondial'; $lang['Record-WR-WA-avg']='Moyenne record Mondial'; $lang['RR_Score']='Score RR'; diff --git a/src/Common/Languages/fr/Install.php b/src/Common/Languages/fr/Install.php index 37f0093b..9e02a877 100644 --- a/src/Common/Languages/fr/Install.php +++ b/src/Common/Languages/fr/Install.php @@ -4,6 +4,7 @@ $lang['AcceptGPL-Desc0']='Ce logiciel est un logiciel gratuit : vous pouvez contribuez/modifier en respectant les termes de la licence GNU.'; $lang['AcceptGPL-Logo']='Plus d\'informations'; $lang['AcceptGPL-ReadTXT']='Lire la licence'; +$lang['AcceptGPL-Start']='Pour installer, mettre à niveau et utiliser Ianseo, veuillez cocher la case suivante :'; $lang['Changed']='Changé'; $lang['cmdForceUpdate']='Forcer la mise à jour'; $lang['Config write failed']='Le fichier de configuration ne peut être modifié. S\'il vous plait, vérifier les autorisations sur le répertoire "Common" à la racine d\'installation de IANSEO'; @@ -16,6 +17,7 @@ $lang['Credits-Credits']='Remerciements'; $lang['Credits-DebugManager']='Mode Débug activé'; $lang['Credits-Development']='Développement et Coding'; +$lang['Credits-Documentation']='Documentation & Support'; $lang['Credits-FitarcoCredits']='Qu\'est-ce que Ianseo ? Ianseo est un logiciel pour la gestion des résultats d\'un tournoi de Tir à l\'arc. C\'est un projet "Open Source" développé avec le soutien financier de la fédération italienne de Tir à l\'arc, qui a décidé de le distribuer gratuitement en Europe. @@ -28,6 +30,7 @@ Il est le diffuseur officiel pour la Fitarco (Fédération Italienne de Tir à l\'arc), World Archery Europe (Fédération Européenne de Tir à l\'Arc) et plusieurs événements de la World Archery (Fédération Mondiale de Tir à l\'Arc).'; $lang['Credits-ISK']='développement ISK'; $lang['Credits-License']='IANSEO est publié sous licence GNU General Public License version 3 (GPLv3)'; +$lang['Credits-Support']='Support (Syteme de Tickets)'; $lang['Credits-TranslationCoordination']='Traducteur officiel'; $lang['Credits-Translators']='Équipe de traduction IANSEO'; $lang['Database name']='Nom de la base de données'; @@ -38,6 +41,11 @@ $lang['EventWillBeReset']='ATTENTION: Un changement dans "$a[0]", "$a[1]" ou "$a[2]" remetra tous les paramètres du tournoi aux valeurs par défaut spécifiées par les règles spécifiques au tournoi sélectionné.'; $lang['Failed']='ÉCHOUÉ!'; $lang['Failing install']='S\'il vous plait, mettez à jour l\'installation PHP avant la prochaine exécution de IANSEO'; +$lang['Field24Normal']='Campagne 24 Cibles'; +$lang['FieldPegBlue']='Piquet Bleu'; +$lang['FieldPegRed']='Piquet Rouge'; +$lang['FieldPegWhite']='Piquet Blanc'; +$lang['FieldPegYellow']='Piquet Jaune'; $lang['File permission error']='Vous devez vérifier les autorisations d\'accès au répertoire d\'installation IANSEO : il doit être accessible en écriture pour l\'utilisateur exécutant le serveur (ou pour tous les utilisateurs)'; $lang['FreeOnlineResults']='Publication en ligne gratuite:Avec une connexion à internet basique, vous pouvez montrez au monde ce qu\'il se passe pendant la compétition. C\'est gratuit alors pourquoi attendre? Une fois la compétition créée, demandez un code via le menu «{$a}».'; $lang['Host']='Serveur hôte'; @@ -75,7 +83,7 @@ $lang['Parameter']='Paramètre'; $lang['Password']='Mot de passe'; $lang['PHP settings']='Paramètres PHP'; -$lang['PHP too old']='Votre installation PHP est obsolète. La version minimale pour IANSEO est 5.0'; +$lang['PHP too old']='Votre installation PHP est obsolète. La version minimale pour IANSEO est 8.0'; $lang['PHP version']='Version PHP'; $lang['php.ini file']='Fichier php.ini'; $lang['Prepare']='Préparation des données pour mise à jour'; @@ -120,9 +128,11 @@ $lang['SetCompound50m']='Compound - 50 m'; $lang['SetCompound70m']='Compound - 70 m'; $lang['SetCR']='Championnat régional (1 tour éliminatoire)'; +$lang['SetFrBeursault']='Beursault'; +$lang['SetFrBouquet']='Bouquet Provincial'; $lang['SetFRChampionshipElite']='Championnat Elite'; $lang['SetFRChampionshipJun']='Championnat de France Jeune'; -$lang['SetFRChampionshipSen']='Championnat Adultes/Equipe'; +$lang['SetFRChampionshipSen']='Championnat Elite/Adulte'; $lang['SetFRChampJunTeams']='Championnat de France Jeune Equipe'; $lang['SetFRChampsD1DNAP']='D1 Classique/Compound'; $lang['SetFRChampsFederal']='Championnat Fédéral'; @@ -134,10 +144,12 @@ $lang['SetFRD12023']='Championnat D1'; $lang['SetFRFinalsD2']='Finales France D2'; $lang['SetFRFinDRD2']='Finales des DR'; +$lang['SetFrSelectif']='Sélectif'; +$lang['SetFrSelectifPara']='Sélectif + Para'; $lang['SetFRTAE']='Championnat de France Elite'; $lang['SetFRTAE-Para']='Selectif TAE + Para'; $lang['SetFRTAE-Valides']='Selectif TAE'; -$lang['SetIndoor']='Tir en Salle'; +$lang['SetIndoor']='Tir à 18m'; $lang['SetJ-CClass']='Juniors et cadets'; $lang['SetJ-SClass']='Juniors et Seniors'; $lang['SetKermesse']='Kermesse'; @@ -148,23 +160,34 @@ $lang['SetOneClass']='Toutes les Classes en une'; $lang['SetOrdinary']='Tournoi ordinaire'; $lang['SetOrdinaryFinals']='Tournoi ordinaire avec finales'; +$lang['SetPara']='Para-Tir à l\'Arc'; $lang['SetSE_SweDist']='Distances Suédoises'; $lang['SetSE_WaDist']='Distances WA'; $lang['SetUkJunNationals']='Championnat Nationnal Jeunes'; $lang['SetUkNationals']='Championnat Nationnal'; $lang['Setup-ARLEF']='Règles de LEF-Archery'; +$lang['Setup-AT']='Règles Autrichiennes'; +$lang['Setup-AU']='Règles Australiennes'; +$lang['Setup-BR']='Règles Brésiliennes'; $lang['Setup-CA']='Règles du Tournoi Canadiennes'; $lang['Setup-CH']='Règles du Tournoi Suisses'; $lang['Setup-Default']='Tournoi Règlement World Archery'; +$lang['Setup-DK']='Règles Danoises'; $lang['Setup-FR']='Règles françaises'; +$lang['Setup-IT']='Règles du Tournoi Italiennes - FITARCO'; +$lang['Setup-Kyudo']='Tournoi de Kyudo'; +$lang['Setup-LANC']='Lancaster'; $lang['Setup-NFAA']='Règles NFAA'; $lang['Setup-NL']='Règles du Tournoi Néerlandaise'; $lang['Setup-NO']='Tournoi Norvégien (Norges Bueskytterforbund rules)'; +$lang['Setup-NZ']='Règles Néozélandaises'; $lang['Setup-PAR']='Tournoi paralympic (règles FITA)'; $lang['Setup-SE']='Règles du Tournoi Suédoises'; $lang['Setup-Select']='Sélectionnez la règle locale applicable'; +$lang['Setup-SI']='Règles Slovéniennes'; $lang['Setup-UK']='Règles du Tournoi ArcheryGB'; $lang['Setup-US']='Règles US Archery'; +$lang['Setup-WAN']='Règles Nordiques'; $lang['SetVegas-KOA']='Rois de l\'archerie - Hollande'; $lang['SetVegas-WAF']='Festival Mondial de l\'archerie - Las Vegas'; $lang['SpecialUpdate']='Vous utilisez une installation "testing".
    Seuls les utilisateurs autorisés peuvent utiliser cette fonctionnalité: Veuillez fournir le courriel avec lequel vous vous êtes enregistré.
    Une notification vous sera envoyée ainsi qu\'à l\'équipe Ianseo.'; @@ -183,7 +206,6 @@ $lang['Value']='Valeur (éléments de tableaux indexés: Clé1::Valeur1 | clé2::valeur2)'; $lang['WhatIanseoDoes01']='Règles conformes World Archery: Ianseo est continuellement à jour avec les règles de la World Archery. Les développeurs sont également disponibles pour adapter ianseo aux règles Nationnales et/ou spécifiques.'; $lang['WhatIanseoDoes02']='Aide et support: Si vous avez besoin d\'aide, envoyez un courriel à $a: Vous reçevrez directement une réponse de la part des développeurs de Ianseo!'; -$lang['WhatIanseoDoes03']='Entraînements et cours sur site: Ianseo est disponible pour gérer des cours spécifiques sur place. Deux niveaux: sans et avec boitiers électroniques. Le premier vise à connaître tous les aspects de Ianseo de la préparation de la compétition et des horaires jusqu\'à la publication en ligne et locale des résultats. Le second niveau visant à acquérir les connaissances spécifiques pour réaliser une compétition "flèche par flèche".'; $lang['WhatIanseoDoes04']='Dons!Ianseo est Libre et Ouvert... Si vous l\'apréciez aidez nous s\'il vous plait a maintenir le logiciel et le serveur à jour: cliquez sur le bouton "Donate" de la page d\'Accueil de $a!'; $lang['WhatIanseoDoes05']=' Média Social Ianseo est aussi sur $a!'; $lang['WhatIanseoDoesTitle']='Que peut faire Ianseo pour votre compétition?'; diff --git a/src/Common/Languages/fr/Languages.php b/src/Common/Languages/fr/Languages.php index 7ba8b0d7..44b95334 100644 --- a/src/Common/Languages/fr/Languages.php +++ b/src/Common/Languages/fr/Languages.php @@ -14,11 +14,13 @@ $lang['CA-Cl-JW']='Dame Jeune'; $lang['CA-Cl-M']='Homme'; $lang['CA-Cl-MM']='Homme Maître'; +$lang['CA-Cl-MO']='Open Homme'; $lang['CA-Cl-MW']='Dame Maître'; $lang['CA-Cl-PM']='Homme Pré-club'; $lang['CA-Cl-PW']='Dame Pré-club'; $lang['CA-Cl-W']='Dames'; $lang['CA-Cl-WM']='Pupille Homme'; +$lang['CA-Cl-WO']='Open Femme'; $lang['CA-Cl-WW']='Pupille Dame'; $lang['CA-Ev-BCM']='Homme BareBow / Nu Cadet'; $lang['CA-Ev-BCW']='Dame BareBow / Nu Cadette'; @@ -101,6 +103,7 @@ $lang['CA-R']='Recurve'; $lang['CA-T']='Traditionnel'; $lang['CA-U']='Compound Illimité'; +$lang['CA-W1']='W1 (Arc à Poulies/Arc Classique)'; $lang['CA-YC']='Jeune compound'; $lang['CmdSearch']='Trouver les modules'; $lang['Create']='Créer'; diff --git a/src/Common/Languages/fr/ODF.php b/src/Common/Languages/fr/ODF.php index d838ca27..c592f7c8 100644 --- a/src/Common/Languages/fr/ODF.php +++ b/src/Common/Languages/fr/ODF.php @@ -8,20 +8,32 @@ $lang['DocumentVersion']='Version'; $lang['EndpointNotConfigured']='Elément non configuré !'; $lang['GoodMorning']='BONJOUR'; -$lang['GoodNight']='AU REVOIR'; +$lang['GoodNight']='BONNE NUIT'; +$lang['IntEVENT']='Nom de l\'évènement'; $lang['IntFUNC']='Fonction'; -$lang['IntMATCH']='Matches'; +$lang['IntMATCH']='Matchs'; $lang['IntQUAL']='Classement du tournoi'; $lang['IntRES']='Résultats'; -$lang['IntSCHED']='Planning'; +$lang['IntSCHED']='Programme'; $lang['IntTRANSLATE']='Traduction'; +$lang['IrmHelp']='Gestion des abandons / Disqualifications: Pour générer les classements (DNF, DNS, DSQ, DQB). Par défaut la place affectée sera vraiment haut. DNF: Abandon=>29.999; DNS: N\'a pas pris part au départ=>30.000; DSQ: Disqualifié=>31.000; DQB: Disqualification pour cause majeur =>32.000.
    Pour rétablir le classement initial, il faut vérifier manuellement l\'ensemble du classement!
    '; +$lang['KAOffset']='Retard pris'; $lang['LangNotSupported']='Cette langue $a n\'est pas supporté'; +$lang['Languages']='ODF Langues officiels'; $lang['LoserMatchName']='Perdant du match $a'; $lang['MissingFile']='Fichier manquant'; $lang['NoRankAvailable']='Pas de classement disponible'; $lang['NotAwarded']='Pas de récompenses'; +$lang['OdfUploadFileText']='Selectionnez un fichier XML pour l\'import'; $lang['ResultsDetails']='Vu détaillé des résultats'; $lang['SessionName']='$a->Category, $a->RoundType'; +$lang['Test']='TEST'; +$lang['TestMode']='Production - Mode TEST'; +$lang['Timetable']='Planning'; +$lang['TMMeeting']='Réunion des capitaines d\'équipes'; +$lang['TypSCHEDLOC']='Lieu'; +$lang['TypSCHEDVEN']='Lieu de la compétition'; +$lang['TypSTATUS']='Etat'; $lang['VictoryCeremony']='Cérémonie protocolaire pour $a'; $lang['WinnerMatchName']='Gagnant du match $a'; ?> \ No newline at end of file diff --git a/src/Common/Languages/fr/Records.php b/src/Common/Languages/fr/Records.php index c0283049..30b6c59d 100644 --- a/src/Common/Languages/fr/Records.php +++ b/src/Common/Languages/fr/Records.php @@ -1,3 +1,6 @@ \ No newline at end of file diff --git a/src/Common/Languages/fr/RunArchery.php b/src/Common/Languages/fr/RunArchery.php index 9f931a00..e94ee04d 100644 --- a/src/Common/Languages/fr/RunArchery.php +++ b/src/Common/Languages/fr/RunArchery.php @@ -64,6 +64,7 @@ $lang['StartTime']='Horaire de départ'; $lang['StartType']='Décalage au départ'; $lang['TargetGroupShort']='Cible/Groupe'; +$lang['TargetsHit']='Cibles touchés'; $lang['TargetToHit']='Cibles à toucher'; $lang['TeamAlreadySetError']='L\'équipe a déjà tous ses membres'; $lang['TimeSheetImportedFailure']='Il y a eu des erreurs en lecture de la feuille des temps! La page sera actualisée pour mettre à jour les données importées : contrôle que tout soit correct !'; diff --git a/src/Common/Languages/fr/ServiceErrors.php b/src/Common/Languages/fr/ServiceErrors.php index 480f113f..e8a4265f 100644 --- a/src/Common/Languages/fr/ServiceErrors.php +++ b/src/Common/Languages/fr/ServiceErrors.php @@ -1,4 +1,7 @@ \ No newline at end of file diff --git a/src/Common/Languages/fr/Tournament.php b/src/Common/Languages/fr/Tournament.php index ed362ac6..bf0179ca 100644 --- a/src/Common/Languages/fr/Tournament.php +++ b/src/Common/Languages/fr/Tournament.php @@ -13,6 +13,7 @@ $lang['AccrCaption']='Légende de l\'accréditation'; $lang['AccreditateAll']='Confirmer tout'; $lang['Accreditation']='Accréditation'; +$lang['AccrNoShow']='Absent'; $lang['AclAccreditation']='Accréditation'; $lang['AclAPI']='API'; $lang['AclCompetition']='Compétition'; @@ -23,18 +24,6 @@ $lang['AclISKServer']='Gestion de l\'application ISK'; $lang['AclModules']='Modules'; $lang['ACLNoAccess']='Pas d\'accès'; -$lang['AclNotes']='Notes à propos de la sécurité réseau - -
      -
    • les restrictions s\'appliquent par compétition et non par hôte
    • -
    • localhost (127.0.0.1 or ::1) ne peut être restreint
    • -
    • Les politiques de restrictions peuvent être supprimées par le serveur lui-même {$a}
    - -
      -
    • Lorsque des restrictions réseau sont appliquées, par default les clients non identifiés ne possèdent pas d\'accès à la compétition.
    • -
    • Il est possible d\'ajouter un "*" pour définir une plage d\'IP autorisés (192.168.0.* or 172.16.*). Ce système est limité à de la visualisation uniquement
    • -
    • IP in the range 0.0.0.[1-254] will not be considered real IPs and the system will use the description content as RegExp to match the IP address. RegExps will be evaluated in the order they are shown and allows R/W policies
    • -
    '; $lang['AclOutput']='Sorties'; $lang['AclParticipants']='Participants'; $lang['AclQualification']='Qualification'; @@ -92,6 +81,7 @@ $lang['AthleteList']='Acquision des athlètes'; $lang['AthleteSummary']='Résumé de l\'Athlète'; $lang['AttachDiplomas']='Envoie les diplômes (individuels et équipe si vous faites partie d\'une équipe) en pièce jointe au format PDF.'; +$lang['AttachICS']='Joindre le calendrier en tant qu\'iCal'; $lang['AttachQualScorecard']='Envoie la feuille de qualification personnelle en pièce jointe PDF (toutes distances)'; $lang['AtXDistance']='Résultats DE la distance $a'; $lang['AuthCode']='Code d\'autorisation'; @@ -126,7 +116,6 @@ $lang['BadgeIncludePhoto']='Inclure les photos dans les badges ?'; $lang['BadgeNames']='Nom complet (non imprimé en premier)'; $lang['BadgeNoData']='Pas de données à imprimer'; -$lang['BadgeOnlyNotPrinted']='SEULEMENT les badges non encore imprimés ?'; $lang['BadgeOnlyPrintAccredited']='SEULEMENT les badges des participants accrédités ?'; $lang['BadgeOnlyPrintPhoto']='SEULEMENT les badges avec photos ?'; $lang['BadgeOptions']='Options'; @@ -155,6 +144,7 @@ $lang['Block_IP']='Accès IP (v4)'; $lang['Block_Manage']='Conditions d\'accès au réseau'; $lang['Block_Nick']='Pseudonyme d\'accès'; +$lang['Block_TemplatePattern']='Modèle'; $lang['BoldIsDefault']='Gras est par défaut'; $lang['Bonus']='Bonus'; $lang['BytesCurrent']='Dernier'; @@ -189,13 +179,15 @@ $lang['CatOC']='Comité d\'Organisation'; $lang['ChairmanJudge']='Arbitre Responsable'; $lang['ChairmanJudgeDeputy']='Adjoint à l\'arbitre responsable'; -$lang['ChairmanJury']='Président(e) du jury d\'appel'; +$lang['ChairmanJury']='Président(e) du Jury d\'Appel'; $lang['ChangeNationsNames']='Changer les noms des Nations'; $lang['Channel']='Canal'; +$lang['CheckGoldsInMatch']='Vérifier les égalités au nombres de 10 & 10+'; $lang['CheckRefMail']='Contrôle du courriel de référence...'; $lang['CheckScorecards']='Vérification des feuilles de marque'; $lang['CheckTargetUpdate']='Contrôles des données'; $lang['CheckWaIds']='Vérifier Id WA des archers correspondants'; +$lang['CheckXNinesInMatch']='Vérifier les égalités au nombres de 10 & 9'; $lang['Classes']='Classes'; $lang['ClickToMailRequest']='Cliquer pour ouvrir un courriel pré-rempli'; $lang['ClickToRequestCode']='Cliquez pour demander un code'; @@ -306,6 +298,9 @@ $lang['ElimSO']='SO Flèches d\'élimination'; $lang['Email']='Courriel'; $lang['EmailScorecardLong']='Feuilles de marque complètes'; +$lang['EmailSuccessfull']='L\'email a été envoyé à $a'; +$lang['EnableAccess']='Activer/Désactiver les conditions d\'accès'; +$lang['EnableAddOns']='Activer/Desactiver les AddOns'; $lang['Ends']='Volées'; $lang['EndTotal']='Total volée'; $lang['EndUpdate']='Toutes les mises à jour sont faites'; @@ -414,6 +409,7 @@ $lang['GoldLabel']='Étiquette OR'; $lang['GoLive']='Suivre en direct'; $lang['GoogleMap']='collez le lien Google Map URL indiquant le lieu de la competition.'; +$lang['GoToRunning']='Aller sur la session en cours'; $lang['Group']='Groupe'; $lang['Group#']='Poule $a'; $lang['GroupBy']='Regroupé par'; @@ -446,6 +442,7 @@ $lang['IRM-20']='Disqualifié (Cause: Acte non sportif) (DQB)'; $lang['IRM-5']='Abandon'; $lang['IRM-7']='Abandon (sans classement)'; +$lang['IrmStatus']='Statut de classement'; $lang['IsDbVersionTooOld']='La base de données du système d\'informations est plus ancienne que Ianseo'; $lang['IsGenericConfig']='Configuration Générique'; $lang['IsParamWarning']='Configuration du système d\'information!
    Utiliser avec EXTREME prudence!'; @@ -479,6 +476,7 @@ $lang['LocRuleModifiedNo']='Modifié'; $lang['LocRuleValidNo']='Non Modifié'; $lang['LogisticResp']='Responssable de la logistique'; +$lang['LogoB']='Image du bas (Le rapport pleine largeur est de 19:1 pour le format A4, 20:1 pour le format lettre)'; $lang['LogoL']='Image en haut à gauche'; $lang['LogoManagement']='Gestion des Images'; $lang['LogoR']='Image en haut à droite'; @@ -491,10 +489,16 @@ $lang['LUE-SUI']='Suisse'; $lang['LUE-SWE']='Suéde'; $lang['LueFill']='Créer les entrées de consultation'; +$lang['MailBcc']='CCI'; $lang['MailBody']='Courriel'; $lang['MailBodyShortcuts']='Ces racourcis peuvent être utilisés:'; +$lang['MailCc']='CC'; $lang['MailFrom']='Expéditeur du courriel (From)'; +$lang['MailingFooter']='Le pied de page sera l\'image du bas sur les éditions de la compétition. Remplacez HAUTEUR par la hauteur réelle en pixels.'; +$lang['MailingLogs']='Voir les logs d\'envoi de mails'; $lang['MailPreview']='Prévisualiser le courriel'; +$lang['MailRecipients']='Destinataires des mails'; +$lang['MailSmtpEncryption']='Chiffrement des mails'; $lang['MailSmtpPort']='Port SMTP'; $lang['MailSmtpPwd']='mot de passe SMTP'; $lang['MailSmtpServer']='Serveur SMTP'; @@ -769,12 +773,12 @@ $lang['ScheduleUnfinished']='Masquer les tours terminés'; $lang['SchIncFinalists']='Inclure Noms des finalistes'; $lang['Score']='Score'; -$lang['Score1PageAllDist']='Feuille de marque de l\'athlète de toutes les distances sur un seule page'; +$lang['Score1PageAllDist']='Feuille de marque de l\'archer avec toutes les distances sur une seule page'; $lang['ScoreBarcode']='Imprimer le code barre sur la feuille de marque'; $lang['ScorecardLabelEnd']='Volée'; $lang['ScorecardLabelSet']='Set'; $lang['ScorecardsElim']='Feuilles de marque Éliminatoire'; -$lang['ScorecardsInd']='Feuille de marque matchs individuel'; +$lang['ScorecardsInd']='Feuille de marque duels individuels'; $lang['ScorecardsQual']='Feuilles de marque Qualification'; $lang['ScorecardsTeams']='Feuilles de marque matchs par équipe'; $lang['ScoreCollector']='Collecte flèche par flèche, Choix de flèches par volée:'; @@ -808,8 +812,10 @@ $lang['SeparateDivisions']='Divisions séparées'; $lang['SessionDay']='Jour de session'; $lang['SessionDescr']='Description de la Session'; +$lang['SessionEnd']='Fin de session Date/Heure'; $lang['SessionSchedule']='Programme de session'; $lang['SessionShort']='Ses.'; +$lang['SessionStart']='Début de session Date/Heure'; $lang['SessionTarget']='Cible de session'; $lang['SessionTime']='Heure de session'; $lang['Set-DSQ']='Définir comme DSQ (Disqualifié)'; @@ -836,6 +842,7 @@ $lang['Sign/guide-board']='Entente'; $lang['SignedTotal']='Total signé'; $lang['SingleArrow']='Flèche individuelle'; +$lang['SMTPSettings']='Paramètre SMTP'; $lang['SnapShort']='$a Arr.'; $lang['Snapshot']='Instantané'; $lang['SOFirstTarget']='Première cible'; @@ -935,7 +942,6 @@ $lang['TeamCreationMode_2']='Toujours 2ème équipe'; $lang['TeamCreationMode_3']='Toujours 3ème équipe'; $lang['TeamFin']='Équipes - Éliminatoires & Finales'; -$lang['TeamFinEvent']='Finale Équipe'; $lang['TeamLoaded']='Matchs par équipes chargés pour l\'horaire {$a}'; $lang['TeamPlace']='Dossards de l\'équipe'; $lang['TeamPlaceLocal']='Dossards de l\'équipe (avec le nom de la compétition)'; @@ -1168,7 +1174,7 @@ $lang['Type_GiochiGioventuW']='Jeux hivernaux de la Jeunesse'; $lang['Type_HF 12+12']='Campagne 12+12'; $lang['Type_HF 24+24']='Campagne 24+24'; -$lang['Type_Indoor 18']='Salle 18 m'; +$lang['Type_Indoor 18']='2x18 m'; $lang['Type_Indoor 25']='Salle 25 m'; $lang['Type_Indoor 25+18']='Salle 18+25 m'; $lang['Type_ITA_Sperimental']='Compétition des débutants'; @@ -1188,7 +1194,6 @@ $lang['UpdatePNG']='Mise à jour du fichier PNG correspondant'; $lang['UploadFile']='Télécharger des fichiers (PDF)'; $lang['URL']='URL'; -$lang['UserPassword']='Mot de passe'; $lang['UseSubClasses']='Appliquer des sous-classes'; $lang['ValidClass']='Classes possibles'; $lang['ValidDivisions']='Div. Authorisées (Vide pour toutes)'; diff --git a/src/Common/Languages/he/IOC_Codes.php b/src/Common/Languages/he/IOC_Codes.php index 4b9c91d0..226ac379 100644 --- a/src/Common/Languages/he/IOC_Codes.php +++ b/src/Common/Languages/he/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='סמואה האמריקנית'; $lang['AUS']='אוסטרליה'; $lang['AUT']='אוסטריה'; -$lang['Award-Anthem']='גבירותי ורבותי, הנכם מתבקשים לקום להשמעת ההמנון הלאומי של'; -$lang['Award-Anthem-TPE']='גבירותי ורבותי, הנכם מתבקשים לעמוד להשמעת ההמנון של'; $lang['Award-Applause']='גבירותי ורבותי, קבלו בבקשה במחיאות כפיים את המתחרים שלנו.'; $lang['Award-Intro']='גבירותי ורבותי, טקס הפרסים של תחרות {$a}'; $lang['Award-MedalGiver']='מדליות יוענקו על-ידי $a'; @@ -42,16 +40,12 @@ $lang['BUL']='בולגריה'; $lang['BUR']='בורקינה פאסו'; $lang['CAF']='הרפובליקה המרכז אפריקאית'; -$lang['CAM']='קמבודיה'; $lang['CAN']='קנדה'; $lang['CAY']='איי קיימן'; $lang['CGO']='רפובליקת קונגו'; $lang['CHA']='צ\'אד'; $lang['CHI']='צ\'ילה'; -$lang['CHN']='סין'; -$lang['CIV']='חוף השנהב'; $lang['CMR']='קאמרון'; -$lang['COD']='הרפובליקה הדמוקרטית של קונגו'; $lang['COK']='איי קוק'; $lang['COL']='קולומביעה'; $lang['COM']='איי קומורו'; @@ -60,7 +54,6 @@ $lang['CRO']='קרואטיה'; $lang['CUB']='קובה'; $lang['CYP']='קפריבין'; -$lang['CZE']='צ\'כיה'; $lang['DEN']='דנמרק'; $lang['DJI']='ג\'יבוטי'; $lang['DMA']='דומיניקה'; @@ -91,17 +84,14 @@ $lang['GUM']='גואם'; $lang['GUY']='גיאנה'; $lang['HAI']='האיטי'; -$lang['HKG']='הונג-קונג'; $lang['HON']='הונדורס'; $lang['HUN']='הונגריה'; $lang['INA']='אינדונזיה'; $lang['IND']='הודו'; -$lang['IRI']='איראן'; $lang['IRL']='אירלנד'; $lang['IRQ']='עיראק'; $lang['ISL']='איסלנד'; $lang['ISR']='ישראל'; -$lang['ISV']='איי הבתולה של ארה"ב'; $lang['ITA']='איטליה'; $lang['IVB']='איי הבתולה הבריטיים'; $lang['JAM']='ג\'אמייקה'; @@ -114,7 +104,6 @@ $lang['KOR']='דרום קוריאה'; $lang['KSA']='ערב הסעודית'; $lang['KUW']='כווית'; -$lang['LAO']='לאוס'; $lang['LAT']='לטביה'; $lang['LBA']='לוב'; $lang['LBR']='ליבריה'; @@ -128,7 +117,6 @@ $lang['MAR']='מרוקו'; $lang['MAS']='מאלזיה'; $lang['MAW']='מאלאווי'; -$lang['MDA']='מולדובה'; $lang['MDV']='האיים המלדיביים'; $lang['Medal-1']='מדליית זהב'; $lang['Medal-2']='מדליית כסף'; @@ -137,7 +125,6 @@ $lang['MEX']='מקסיקו'; $lang['MGL']='מונגוליה'; $lang['MHL']='איי מרשל'; -$lang['MKD']='צפון מקדוניה'; $lang['MLI']='מאלי'; $lang['MLT']='מלטה'; $lang['MNE']='מונטנגרו'; @@ -166,7 +153,6 @@ $lang['PNG']='פפואה גינאה החדשה'; $lang['POL']='פולין'; $lang['POR']='פורטוגל'; -$lang['PRK']='צפון קוריאה'; $lang['PUR']='פוארטו ריקו'; $lang['QAT']='קטאר'; $lang['ROU']='רומניה'; @@ -193,13 +179,11 @@ $lang['SVK']='סלובקיה'; $lang['SWE']='שבדיה'; $lang['SWZ']='סוואזילנד'; -$lang['SYR']='סוריה'; $lang['TAN']='טנזניה'; $lang['TGA']='טונגה'; $lang['THA']='תאילנד'; $lang['TJK']='טאג\'יקיסטאן'; $lang['TKM']='תורכמניסטאן'; -$lang['TLS']='טימור המזרחית'; $lang['TOG']='טוגו'; $lang['TPE']='טאייפה הסינית'; $lang['TRI']='טרינידד וטובגו'; diff --git a/src/Common/Languages/he/Install.php b/src/Common/Languages/he/Install.php index 969cea91..34d7acc6 100644 --- a/src/Common/Languages/he/Install.php +++ b/src/Common/Languages/he/Install.php @@ -67,7 +67,6 @@ $lang['Parameter']='נתון'; $lang['Password']='סיסמה'; $lang['PHP settings']='הגדרות PHP'; -$lang['PHP too old']='גרסת ה-PHP המותקנת ישנה מידי. מספר הגרסה המינימלי עבור IANSEO הוא 5.0.'; $lang['PHP version']='גרסת PHP'; $lang['php.ini file']='קובץ php.ini'; $lang['Prepare']='מכין מידע לעדכון'; diff --git a/src/Common/Languages/he/Tournament.php b/src/Common/Languages/he/Tournament.php index 05b049b6..bece2a95 100644 --- a/src/Common/Languages/he/Tournament.php +++ b/src/Common/Languages/he/Tournament.php @@ -107,7 +107,6 @@ $lang['BadgeIncludePhoto']='לכלול תמונות בתג?'; $lang['BadgeNames']='שם מלא (לא הודפס ראשון)'; $lang['BadgeNoData']='אין מידע להדפסה'; -$lang['BadgeOnlyNotPrinted']='רק תגים שעדיין לא הודפסו?'; $lang['BadgeOnlyPrintAccredited']='רק תגים של משתתפים ששילמו?'; $lang['BadgeOnlyPrintPhoto']='רק תגים עם תמונה?'; $lang['BadgeOptions']='אפשרויות'; @@ -169,8 +168,6 @@ $lang['CatJudge']='שופטים'; $lang['CatJury']='חבר שופטים לערעורים'; $lang['CatOC']='ועדה מארגנת'; -$lang['ChairmanJudge']='יו"ר חבר השופטים'; -$lang['ChairmanJury']='יו"ר חבר שופטים לערעורים'; $lang['ChangeLookUpTable']='שנה טבלת איתור'; $lang['ChangeNationsNames']='שנה שמות אומות'; $lang['Channel']='ערוץ'; @@ -279,7 +276,6 @@ $lang['Email']='דואר אלקטרוני'; $lang['EmailScorecardLong']='לוחות תצאות מלאים'; $lang['EmailScorecardShort']='סיכום לוח תוצאות'; -$lang['EnableAccess']='הפעל/בטל מדיניות'; $lang['Ends']='מקצי ירי'; $lang['EndTotal']='סיכום מקצה'; $lang['EndUpdate']='כל העדכונים בוצעו'; @@ -960,7 +956,6 @@ $lang['TeamCreationMode_2']='תמיד קבוצה שניה'; $lang['TeamCreationMode_3']='תמיד קבוצה שלשית'; $lang['TeamFin']='סבבי הדחה וגמר - קבוצתי'; -$lang['TeamFinEvent']='גמר קבוצתי'; $lang['TeamLoaded']='התמודדויות קבוצתיות נטענו ללוח הזמנים של {$a}'; $lang['TeamPlace']='שלטי מיקום קבותות'; $lang['TeamPlaceLocal']='שילטי מיקום קבוצות (מותאמי שפה)'; diff --git a/src/Common/Languages/hr/Api.php b/src/Common/Languages/hr/Api.php index 866105fe..8145463b 100644 --- a/src/Common/Languages/hr/Api.php +++ b/src/Common/Languages/hr/Api.php @@ -1,31 +1,202 @@ \ No newline at end of file diff --git a/src/Common/Languages/hr/Awards.php b/src/Common/Languages/hr/Awards.php index 50a19237..f2458e97 100644 --- a/src/Common/Languages/hr/Awards.php +++ b/src/Common/Languages/hr/Awards.php @@ -1,11 +1,18 @@
  • Prazno: ispisat će se niz odvojen crticom s šifrom unosa, odjelom i klasom
  • {ENCODE}: {ENCODE } bit će prevedeno u šifru unosa
  • {COUNTRY}: {COUNTRY} će biti prevedeno u šifru zemlje
  • {DIVISION}: {DIVISION} bit će preveden u šifru odjela
  • {CLASS}: {CLASS} će biti preveden u šifru klase
  • < b>{TOURNAMENT}: {TOURNAMENT} će biti preveden u kod natjecanja
  • '; +$lang['BarcodeSeparator']='Barcode Separator'; $lang['BgImage']='Pozadinska slika'; +$lang['BibNumber']='Bib broj'; +$lang['BlackWhite']='Okvir u jednoj boji (koristite: Boja pozadine)'; $lang['Bold']='podebljano'; +$lang['Category']='Kategorija'; $lang['CharColor']='boja znakova'; +$lang['CharSize']='veličina znakova'; $lang['CharType']='vrsta znakova'; $lang['CheckBarcodeSeparator']='Provjerite Barcode Separator'; +$lang['Club']='Pojedinosti o zemlji/klubu'; +$lang['Club2']='2. pojedinosti o zemlji/klubu'; +$lang['Club3']='3. pojedinosti o zemlji/klubu'; +$lang['ClubCamel']='Naziv Kluba'; +$lang['ClubCaps']='NAZIV KLUBA'; +$lang['ColoredArea']='Blok teksta'; +$lang['Coloured']='Obojeni Phase rubovi'; +$lang['CompDetails']='Detalji natjecanja'; +$lang['CompName']='Naziv natjecanja'; +$lang['Content']='Sadržaj'; $lang['CountryCodeAndLong']='Kod zemlje i dugi naziv zemlje'; $lang['CountryCodeOnly']='samo kod zemlje'; $lang['CountryFlagAndLong']='Državna zastava i dugo ime'; $lang['CountryFlagOnly']='Samo zastave zemalja'; $lang['CountryLongName']='samo naziv zemlje'; +$lang['Depot']='Depo'; +$lang['E-Badge']='Eliminacijski broj sportaša'; +$lang['EvCode']='Šifra događaja'; +$lang['EvCode-EvDescr']='Šifra i opis događaja'; +$lang['EvDescr']='Opis događaja'; +$lang['EvDescrUpper']='OPIS DOGAĐAJA'; +$lang['Event']='Događaj'; +$lang['ExportPhotos']='Izvoz slika'; +$lang['ExtraAddOns']='Tekst dodatnih dodataka'; +$lang['ExtraAddOnsImage']='Slika dodatnih dodataka'; +$lang['FamCamel']='Prezime'; +$lang['FamCamel-GAlone']='Prezime G.'; +$lang['FamCamel-GivCamel']='Prezime Ime'; +$lang['FamCaps']='PREZIME'; +$lang['FamCaps-GAlone']='PREZIME G.'; +$lang['FamCaps-GivCamel']='PREZIME Ime'; +$lang['FamCaps-GivCamel-ClubCamel']='Prezime Ime, Naziv zemlje'; +$lang['FamCaps-GivCamel-ClubCaps']='PREZIME Ime, NAZIV ZEMLJE'; +$lang['FamCaps-GivCaps']='PREZIME NAZIV ZEMLJE'; +$lang['FamCaps-GivCaps-ClubCaps']='PREZIME IME, NAZIV ZEMLJE'; +$lang['FinalRanking']='Konačan poredak'; +$lang['FinalRankLimit']='Ograničenje konačnog poretka'; +$lang['FinPosition']='Konačna pozicija'; +$lang['Flag']='Zastava države/kluba'; +$lang['GAlone-FamCamel']='G. Prezime'; +$lang['GAlone-FamCaps']='G. PREZIME'; +$lang['GivCamel']='Ime'; +$lang['GivCamel-FamCamel']='Ime Prezime'; +$lang['GivCamel-FamCamel-ClubCamel']='Ime Prezime, naziv zemlje'; +$lang['GivCamel-FamCaps']='Ime PREZIME'; +$lang['GivCamel-FamCaps-ClubCamel']='Ime PREZIME, Naziv zemlje'; +$lang['GivCamel-FamCaps-ClubCaps']='Ime PREZIME, NAZIV ZEMLJE'; +$lang['GivCaps']='IME'; +$lang['GivCaps-FamCaps']='IME PREZIME'; +$lang['GivCaps-FamCaps-ClubCaps']='IME PREZIME, NAZIV ZEMLJE'; $lang['GivenNameInitial']='Prvo slovo imena'; $lang['Heigh']='Visina'; +$lang['HLayout']='Horizontalno'; +$lang['HLine']='Horizontalna linija'; +$lang['I-Badge']='Broj sportaša za pojedinačne utakmice'; $lang['IdCardHor']='Brojevi na karitcama u širini'; $lang['IdCardNumber']='Broj akreditacijskih kartica u pregledu'; +$lang['IdCardOffsets']='Pomak: 0 ako postoji samo jedna osobna iskaznica po stranici, pomaci u mm odvojeni znakom ";" ako ih je više'; $lang['IdCardVer']='Brojevi na karitcama u visini'; $lang['IdLayout']='Orijantacija'; $lang['IdMarginH']='Visina margine'; @@ -48,18 +125,66 @@ $lang['IdMarginR']='Desna margina'; $lang['IdMarginT']='Gornja margina'; $lang['IdMarginW']='Širina margine'; +$lang['Image']='Slika'; +$lang['Images']='Slike'; +$lang['ImageSvg']='SVG slika'; $lang['IncludeLogo']='Printaj zastave zemalja/logo kluba'; $lang['IncludeSession']='Uključi sesiju u ispisu'; $lang['Italic']='Italic'; $lang['Landscape']='Vodoravno (Landscape)'; +$lang['MultiLine']='Više redaka'; +$lang['NameTag']='Oznaka s imenom'; +$lang['NewBadgeName']='Novo ime značke'; +$lang['NocCaps']='Kod Kluba'; +$lang['NocCaps-ClubCamel']='KOD KLUBA Naziv kluba'; +$lang['NocCaps-ClubCaps']='KOD KLUBA NAZIV KLUBA'; +$lang['Offest2nd']='Pomak drugog pozadinskog broja (ako je potrebno)'; +$lang['OneLine']='Jedna linija'; +$lang['OnlyAthletes']='Samo natjecatelji'; +$lang['OpenPictureScreen']='Otvorite sekundarni zaslon'; $lang['PageDimension']='Veličina stranice'; +$lang['PaperDimention']='Dimenzija papira'; +$lang['PhaseFrom']='Iz faze'; +$lang['PhaseTo']='Za fazu'; +$lang['Picture']='Fotografija sportaša'; $lang['Portrait']='Okomito (Portrait)'; $lang['PosX']='Pozicija (X)'; $lang['PosY']='Pozicija (Y)'; $lang['PrintBackNo']='Printaj pozadinske brojeve'; +$lang['PrintHasPlastic']='Samo kartice vlasnika lanyardsa'; +$lang['PrintSpecificBadges']='Ispis pomoću znački za automatsko podudaranje'; +$lang['PrintSyncResult']='$a Pozadinski brojevi su ispisani!'; +$lang['Q-Badge']='Kvalifikacijski broj sportaša'; +$lang['QrCodeFields']='
    • Prazno: ispisat će se niz odvojen crticom s šifrom unosa, odjelom i klasom
    • {ENCODE}: {ENCODE } bit će prevedeno u šifru unosa
    • {COUNTRY}: {COUNTRY} će biti prevedeno u šifru zemlje
    • {DIVISION}: {DIVISION} bit će preveden u šifru odjela
    • {CLASS}: {CLASS} će biti preveden u šifru klase
    • < b>{TOURNAMENT}: {TOURNAMENT} će biti preveden u Kodeks natjecanja
    '; +$lang['QRScore']='Rezultat kvalifikacijske runde'; +$lang['QualPosition']='Kvalifikacijska pozicija'; +$lang['RandomImage']='Slučajna slika'; +$lang['Ranking']='Kvalifikacijski rang'; +$lang['RankLimit']='Ograničenje ranga kvalifikacije'; $lang['ReadSeparator']='Odvajanje redka za čitanje'; $lang['ResetBackNo']='Resetiranje izgleda broja natjecatelja'; +$lang['ResetBarcodeSeparator']='Poništi separator crtičnog koda'; +$lang['RnkCardinalEN']='Kardinalni pogled (1, 2, ..., 10)'; +$lang['RnkOrdinal']='Redni prikaz (1., 2., ..., 10.) - EN'; +$lang['Schedule']='zakazano'; +$lang['Session']='Kvalifikacijska sesija'; +$lang['SessionTarget']='Kod sesije i mete'; +$lang['SetAccreditationMatches']='Ovaj bedž može biti specifičan za sljedeće kategorije:'; +$lang['SkipPrinted']='Preskoči tiskane pozadinske brojeve'; +$lang['T-Badge']='broj natjecatelja u timskom meču'; +$lang['Target']='Meta'; +$lang['TeamComponents']='Sastav tima'; +$lang['TgtSequence']='Niz meta'; +$lang['ToBottom']='Logo natjecanja (dolje)'; +$lang['ToLeft']='Logo natjecanja (lijevo)'; +$lang['ToRight']='Logo natjecanja (desno)'; $lang['TVViewIdCard']='Pogledaj ID kartice'; $lang['TVViewIdCardDescr']='U pregledu povuci 2 ID karte od protivnika umjesto iz "standardnog" reda'; +$lang['VLayout']='Okomito'; $lang['Width']='Širina'; +$lang['WRank']='Svjetski poredak'; +$lang['WRankFields']='Ne prikazuj nakon WR pozicije (0: Prikaži sve)'; +$lang['WRankImage']='Slika za svjetsku rang listu'; +$lang['Y-Badge']='Diploma (pojedinačna)'; +$lang['Z-Badge']='Diploma (ekipno)'; ?> \ No newline at end of file diff --git a/src/Common/Languages/hr/Boinx.php b/src/Common/Languages/hr/Boinx.php index 9441d95f..75b3114a 100644 --- a/src/Common/Languages/hr/Boinx.php +++ b/src/Common/Languages/hr/Boinx.php @@ -7,6 +7,17 @@ $lang['ArcheryTopScoring.qtz']='Pokazuje tekuće rezultate natjecanja u gornjem lijevom kutu zaslona ili punom zaslonu. Postoji mogućnost povezivanja slike streličara ili zastave uz set ili kumulativni rezultat.'; $lang['BoinxLayer']='Boinx Layer'; $lang['BoinxSchedule']='Planer za Boinx Layere'; +$lang['CssArrowCommon']='Strijele'; +$lang['CssArrTitle']='Ukupni rezultat Naslov'; +$lang['CssArrTotal']='Ukupna rezultatska vrijednost'; +$lang['CssBoxCommon']='Box - Zajednički'; +$lang['CssBoxLeft']='Box - lijevo'; +$lang['CssBoxRight']='Box - desno'; +$lang['CssCountry']='Blok naziva i zastave - kod zemlje'; +$lang['CssCountryCommon']='Zemlja'; +$lang['CssFlag']='Blok imena i zastave - Zastava'; +$lang['CssFlexArrows']='Blok detalja strijela- Uobičajeno'; +$lang['CssFlexArrowsDiv']='Jedna strijela Div'; $lang['DirNotWriteable']='Direktoriju nije omogućen zapis!'; $lang['Download']='Preuzimanje'; $lang['HowToUse']='Kako integrirati Ianseo i Boinx'; diff --git a/src/Common/Languages/hr/Common.php b/src/Common/Languages/hr/Common.php index 30d0532b..39a13e0c 100644 --- a/src/Common/Languages/hr/Common.php +++ b/src/Common/Languages/hr/Common.php @@ -24,6 +24,7 @@ $lang['Archer']='Streličar'; $lang['Archers']='Streličari'; $lang['Arrow']='Strijela'; +$lang['ArrowAverage']='Prosjek strijela'; $lang['Athlete']='Natjecatelj'; $lang['Athletes']='Natjectelji'; $lang['Back']='Nazad'; @@ -123,6 +124,7 @@ $lang['IndFinEventWithoutShootOff']='Pažnja!
    sljedeći serije moraju riješiti veze prije prikaza!'; $lang['IndImport']='Uvezi podatke u pojedinačne češljeve'; $lang['Individual']='Pojedinačno'; +$lang['InitFinalGrids']='Inicijalizirati pojedinačne češljeve'; $lang['JF']='Junior žene'; $lang['JM']='Junior mouškarci'; $lang['jrMultiChoice']='$a (Multi Opcije)'; @@ -130,6 +132,7 @@ $lang['jrTextArea']='Površina teksta ($a[1] $ redaka x $a[0] stupaca)'; $lang['jrTextBox']='Tekstualni okvir, max $a znakova'; $lang['jrYesNo']='Da / Ne'; +$lang['JudgeNotes']='Komentari sudaca'; $lang['LB']='Dugi Luk'; $lang['LiveOff']='Ukloni Live flag'; $lang['LiveOn']='Podesi Live flag'; @@ -194,6 +197,7 @@ $lang['MenuLM_DeleteTarget']='Brisanje dodjeljenih meta'; $lang['MenuLM_Distances']='Uredi udaljenosti'; $lang['MenuLM_Div/Class Result List']='Stil/Kat. Lista rezultata'; +$lang['MenuLM_Divisions and Classes']='Stilovi i kategorije'; $lang['MenuLM_Draw']='Auto-raspored'; $lang['MenuLM_Edit Competition Info']='Uredi info natjecanja'; $lang['MenuLM_EditFinalReport']='Uredi finalni izvještaj'; @@ -203,6 +207,7 @@ $lang['MenuLM_ExplodeIanseoFile']='Explode IANSEO file'; $lang['MenuLM_Export']='Izvoz'; $lang['MenuLM_Export ARF']='Izvoz ARF'; +$lang['MenuLM_Export BackNumbers']='Eksport pozadinskih brojeva'; $lang['MenuLM_Export Results']='Izvoz rezultata'; $lang['MenuLM_Export Text File']='Izvoz tekst datoteke'; $lang['MenuLM_Export Tournament']='Izvoz turnira'; @@ -210,6 +215,7 @@ $lang['MenuLM_Extended Table']='Proširena Tablica'; $lang['MenuLM_ExtraCategories']='Standardni za dodatnu Kategoriju'; $lang['MenuLM_Fees setup']='Postavljanje kotizacija'; +$lang['MenuLM_Field Crew']='Terenska ekipa'; $lang['MenuLM_Final Field of Play Layout']='Izgled terena za finale'; $lang['MenuLM_Final report']='Završni izvještaj'; $lang['MenuLM_Final Rounds']='Finalne runde'; @@ -240,6 +246,8 @@ $lang['MenuLM_LastShootoff']='Zadnji shoot-off'; $lang['MenuLM_List (Simple)']='Popis (Jednostavan)'; $lang['MenuLM_ListLoad']='Učitaj Popis (Uvoz proračunske tablice )'; +$lang['MenuLM_Lock manage']='Upravljanje kontrolama pristupa'; +$lang['MenuLM_Lock setup']='Postavke zaključavanja'; $lang['MenuLM_LueFill']='Stvaranje pretraživanja iz datoteke'; $lang['MenuLM_Manage Events']='Upravljanje serijama'; $lang['MenuLM_ManageActiveSession']='Upravljanje aktivnim sesijama'; @@ -262,6 +270,7 @@ $lang['MenuLM_Personal Rank']='Osobni poredak'; $lang['MenuLM_Print Sign']='Ispis Prijava'; $lang['MenuLM_PrintAwards']='Ispis nagrada'; +$lang['MenuLM_PrintBadges']='Ispis akreditacijskih kartica'; $lang['MenuLM_PrintFinalReport']='Ispis Završnog izvješća'; $lang['MenuLM_Printout']='Ispis'; $lang['MenuLM_PrintScheduling']='Ispis rasporeda natjecanja'; @@ -270,6 +279,7 @@ $lang['MenuLM_QrCodes']='Ispis QR kodova'; $lang['MenuLM_Qualification']='Kvalifikacije'; $lang['MenuLM_Qualification Field of Play Layout']='Raspored kvalifikacija'; +$lang['MenuLM_Qualification Round']='Kvalifikacijski krug'; $lang['MenuLM_QuotaTournament']='turnir za kvotu'; $lang['MenuLM_ResultQualIndOds']='Izvoz kvalifikacija (ODS)'; $lang['MenuLM_ResultText']='Rezultati u Quark Xpress Oznakama'; @@ -330,8 +340,10 @@ $lang['Month_8']='Ruj'; $lang['Month_9']='Lis'; $lang['MsgAreYouSure']='Jeste li sigurni?'; +$lang['MsgAttentionFinReset']='UPOZORENJE!
    Ova operacija se NE MOŽE poništiti!!!
    Svi unešeni rezultati pojedinačni i timski će biti izbrisani.
    Ova operacija je obično potrebna ako je bilo grešaka u kvalifikacijama ili shoot-off proceduri .
    Želite li nastaviti?'; $lang['MsgImportError']='Pogreška!
    ne mogu uvoziti podatke!'; $lang['MsgImportOk']='Uvoz Dovršen!'; +$lang['MsgInitFinalGridsError']='Pogreška!
    Brackets nisu prazni!'; $lang['MsgInitFinalGridsOk']='Uspješno Pokretanje!'; $lang['MsgMakeFinReset']='Završni Bracketsi Ponovno Inicijalizirani!
    Ponovite sve prethodne operacije prije nego umetnete nove podatke!'; $lang['MsgNeedInitGrids']='Pogreška!
    Brackets nisu inicijalizirani!'; @@ -369,6 +381,7 @@ $lang['RankingInd']='Eliminacije i završni krug - poredak pojedinaca'; $lang['Rankings']='Poredak'; $lang['RankingSq']='Eliminacije i završni krug - poredak timova'; +$lang['RankScoreShort']='Kval.'; $lang['RB']='Zakrivljeni luk'; $lang['Review']='Pregled'; $lang['RevMainLang']='Glavni jezik'; diff --git a/src/Common/Languages/hr/HTT.php b/src/Common/Languages/hr/HTT.php index 137609f1..6a49aa7d 100644 --- a/src/Common/Languages/hr/HTT.php +++ b/src/Common/Languages/hr/HTT.php @@ -9,6 +9,7 @@ $lang['CmdReplace']='pisati preko'; $lang['CmdTruncateHTTData']='Odreži privremenu tablicu'; $lang['Country']='Država'; +$lang['DateTime']='Datum / vrijeme'; $lang['Distance']='Udaljenost'; $lang['Download']='Skupi podatke'; $lang['EnableHHT']='Omogući HHT sustav'; diff --git a/src/Common/Languages/hr/IOC_Codes.php b/src/Common/Languages/hr/IOC_Codes.php index f59e799d..2d1bf0e7 100644 --- a/src/Common/Languages/hr/IOC_Codes.php +++ b/src/Common/Languages/hr/IOC_Codes.php @@ -13,7 +13,10 @@ $lang['AUS']='Australija'; $lang['AUT']='Austrija'; $lang['Award-Anthem']='Dame i gospodo, molimo vas da ustanete za nacionalnu himnu'; +$lang['Award-Applause']='Dame i gospodo, pozdravite srdačnim pljeskom naše sportaše'; +$lang['Award-Intro']='Dame i gospodo, podjela medalja za'; $lang['Award-MedalGiver']='Medalje će dodijeliti $a'; +$lang['Award-PlaqueGiver']='Plakete će dodijeliti $a'; $lang['Award-PremiumGiver']='$a[0] sat će dodijeliti $a[1]'; $lang['Award-PremiumGiving']='$a[0] sat će dodijeliti $a[1]'; $lang['Award-representing']='dobiva $a'; @@ -37,16 +40,13 @@ $lang['BUL']='Bugarska'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Centralna Afrička Republika'; -$lang['CAM']='Kambodža'; $lang['CAN']='Kanada'; $lang['CAY']='Kajmanski Otoci'; $lang['CGO']='Republika Kongo'; $lang['CHA']='Čad'; $lang['CHI']='Čile'; -$lang['CHN']='Kina'; $lang['CIV']='Obala Bjelokosti'; $lang['CMR']='Kamerun'; -$lang['COD']='Demokratska Republika Kongo'; $lang['COK']='Kukovi Otoci'; $lang['COL']='Kolumbija'; $lang['COM']='Komori'; @@ -55,7 +55,6 @@ $lang['CRO']='Hrvatska'; $lang['CUB']='Kuba'; $lang['CYP']='Cipar'; -$lang['CZE']='Republika Češka'; $lang['DEN']='Danska'; $lang['DJI']='Đibuti'; $lang['DMA']='Dominika'; @@ -86,17 +85,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Gvajana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Mađarska'; $lang['INA']='Indonezija'; $lang['IND']='Indija'; -$lang['IRI']='Iran'; $lang['IRL']='Irska'; $lang['IRQ']='Irak'; $lang['ISL']='Island'; $lang['ISR']='Izrael'; -$lang['ISV']='Američki Djevičanski Otoci'; $lang['ITA']='Italija'; $lang['IVB']='Britanski Djevičanski Otoci'; $lang['JAM']='Jamajka'; @@ -106,9 +102,9 @@ $lang['KEN']='Kenija'; $lang['KGZ']='Kirgistan'; $lang['KIR']='Kiribati'; +$lang['KOR']='Južna Koreja'; $lang['KSA']='Saudijska Arabija'; $lang['KUW']='Kuvajt'; -$lang['LAO']='Laos'; $lang['LAT']='Latvija'; $lang['LBA']='Libija'; $lang['LBR']='Liberija'; @@ -122,7 +118,6 @@ $lang['MAR']='Maroko'; $lang['MAS']='Malezija'; $lang['MAW']='Malavi'; -$lang['MDA']='Moldavija'; $lang['MDV']='Maldivi'; $lang['Medal-1']='Zlatnu medalju'; $lang['Medal-2']='Srebrnu medalju'; @@ -158,7 +153,6 @@ $lang['PNG']='Papua Nova Gvineja'; $lang['POL']='Poljska'; $lang['POR']='Portugal'; -$lang['PRK']='Severna Koreja'; $lang['PUR']='Portoriko'; $lang['QAT']='Katar'; $lang['ROU']='Rumunjska'; @@ -183,17 +177,17 @@ $lang['SUR']='Surinam'; $lang['SVK']='Slovačka'; $lang['SWE']='Švedska'; -$lang['SYR']='Sirija'; +$lang['SWZ']='Svaziland'; $lang['TAN']='Tanzanija'; $lang['TGA']='Tonga'; $lang['THA']='Tajland'; $lang['TJK']='Tadžikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Istočni Timor'; $lang['TOG']='Togo'; $lang['TPE']='Kineski Taipei'; $lang['TRI']='Trinidad i Tobago'; $lang['TUN']='Tunis'; +$lang['TUR']='Turska'; $lang['TUV']='Tuvalu'; $lang['UAE']='Ujedinjeni Arapski Emirati'; $lang['UGA']='Uganda'; diff --git a/src/Common/Languages/hr/Install.php b/src/Common/Languages/hr/Install.php index 2962ebf4..2df33509 100644 --- a/src/Common/Languages/hr/Install.php +++ b/src/Common/Languages/hr/Install.php @@ -6,8 +6,11 @@ $lang['Credits-Coordination']='IT koordinacija projekta'; $lang['Credits-CoreGroup']='IANSEO Core Group'; $lang['Credits-Credits']='Credits'; +$lang['Credits-Documentation']='Dokumentacija i Podrška'; +$lang['Credits-FitarcoCredits']='Što je Ianseo? Ianseo je softver za upravljanje rezultatima streličarskih turnira, to je open source projekt razvijen zahvaljujući financijskoj potpori talijanske Streličarskke Federacije, koja ga je odlučila slobodno distribuirati u cijeloj Europi. Prevedeni na više jezika, Ianseo je najažurnije i naprednije u svijetu integrao sva FITA pravila, ali je evoluirala uključiti sveobuhvatno upravljanje Streličarskim turnirima u cjelini: od akreditacije natjecatelja i časnika za svaku vrstu ispisa , alata, mreže i on-line integracije FOP dizajn.'; $lang['Credits-HHT']='HHT integracija'; $lang['Credits-IanseoTeam']='Ianseo & Ianseo Team'; +$lang['Credits-IanseoWorld']='I.A.N.S.E.O. je ujedno i najveći stručnjak Radne skupine za Streličarska natjecanja za upravljanje i organizaciju. Prva iskustva komponente skupine natrag u devedesetima, ali u ove najnovije godina (grupa je postojeći kao momčad od 2006) Ianseo tim je sve više i više su uključeni u mnoge od najvećih događaja u svijetu: olimpijski igre, Svjetska prvenstva, Europska prvenstva, Grand Prix, svjetske igre, Universiade, Sveučilištna prvenstva, Svjetski streličarski festival i nekoliko talijanskih nacionalnih događanja. To je službeni rezultat tima za Fitarco (talijanske Streličarskim Federacija), EMAU (europskih i mediteranskih Streličarskim unije) i nekoliko FITA (Federation Internationale de Tir l\'Arc) događanja.'; $lang['Credits-License']='IANSEO je objavljen pod GNU OPĆA JAVNA LICENCA verzija 3 (GPLV3)'; $lang['Credits-Translators']='IANSEO Translation Team'; $lang['Database name']='ime baze podataka'; @@ -20,6 +23,7 @@ $lang['Failing install']='Molimo ažurirajte PHP instalacije prije ponovnog pokretanja IANSEO.'; $lang['File permission error']='Morate provjeriti dozvole na direktorij IANSEO instalacije: treba biti omogućeno pisanje od strane korisnika koji izvodi poslužitelj ili world-writable.'; +$lang['FreeOnlineResults']='Besplatni online pubblishing: s osnovnom internetskom vezom možete pokazati svijetu ono što se događa za vrijeme natjecanja. To je besplatno, pa zašto čekati? Nakon kreiranja natjecanja, potraži kod putem točki izbornika «{$a}».'; $lang['Host']='Domaćin (Host)'; $lang['Install-0']='kritična pogreška'; $lang['Install-1 Title']='PHP checking'; @@ -105,15 +109,23 @@ $lang['SetUkJunNationals']='Juniorsko nacionalno prvenstvo'; $lang['SetUkNationals']='Nacionalno prvenstvo'; $lang['Setup-ARLEF']='LEF Pravila'; +$lang['Setup-CH']='Švicarska pravila'; +$lang['Setup-Default']='Međunarodni turnir (FITA pravila)'; +$lang['Setup-IT']='Local italian tournament (Fitarco rules)'; +$lang['Setup-NFAA']='Las Vegas Rules'; +$lang['Setup-NL']='Nizozemski turnir'; $lang['Setup-NO']='Norwegian tournament (Norges Bueskytterforbund rules)'; $lang['Setup-PAR']='Paralimpic turnir (IPC pravila)'; +$lang['Setup-SE']='Švedski turnir'; $lang['Setup-Select']='Odaberite odgovarajuća lokalna pravila'; +$lang['Setup-UK']='UK rules'; $lang['SetVegas-KOA']='Kings of Archery - NED'; $lang['SetVegas-WAF']='World Archery Festival - Las Vegas'; $lang['SpecialUpdate']='Imate "testnu" Instalaciju
    samo odabrani korisnici mogu imati ovu značajku:.. Molimo navedite e-mail s kojeg ste prijavljeni s
    obavijest će biti poslana i na vas i Ianseo stožer.'; $lang['Start Ianseo']='idi na IANSEO!'; $lang['Status']='Status'; $lang['stdValue']='Vrijednost'; +$lang['Suboptimal']='Iako php.ini datoteka nije postavljena s optimalnim vrijednostima,
    IANSEO treba raditi ispravno za većinu njegovih funkcija.
    Preporučujemo vam da postavite parametre za optimalnu vrijednost.'; $lang['System value']='sustav vrijednosti'; $lang['UpdatePrepared']='Vaša instalacija će se automatski ažurirati. Imajte na umu da bi backup svih turnira prije početka.Postupak ažuriranja može potrajati dugo, ovisno o vezi i elementima koje je potrebno nadograditi.
    Imajte na umu da bilo koji izvorne datoteke će se ukloniti, osim sadržaja «modules / Custom» mape.'; $lang['Updating']='Ažuriranje lokalne instalacije Ianseo'; @@ -123,6 +135,7 @@ $lang['Value']='Vrijednost (indeksiranih polja predmeta: key1:: vrijednost1 | key2:: vrijednost2)'; $lang['WhatIanseoDoes01']='u skladu sa WA pravilima: Ianseo je uvijek u toku sa WA pravilima. Developeri su dostupni za prilagodbe kako bi odgovarao nacionalnim i natjecanjima sa posebnim pravilima!'; $lang['WhatIanseoDoes02']=' Pomoć i podrška: ako vam je potrebna pomoć, pošaljite e-mail na $a: dobit ćete odgovor direktno od Ianseo core developera!'; +$lang['WhatIanseoDoes03']='On site obuke i tečajevi: Ianseo je može organizirati upravljanje tečajevima lokaciji. Dvije razine: bez i sa elektronskim uređajima. Prvi cilj je upoznati sve aspekte ianseo od pripreme natjecanja i rasporeda do online objave i lokalne distribucije rezultata. Drugi je usmjeren na stjecanje specifičnih znanja za pokretanje "arrow by arrow" natjecanja.'; $lang['WhatIanseoDoes04']=' Donirajte! Ianseo je besplatan i open source ... ako vam se sviđa, molimo da nam pomognete u održavanju softvera i poslužitelja ažurnim:pritisnite "donirati" gumb na početnoj stranici $a!'; $lang['WhatIanseoDoes05']=' Društveni mediji: Ianseo je također na $a!'; $lang['WhatIanseoDoesTitle']='Što Ianseo može napraviti za vaše natjecanje'; diff --git a/src/Common/Languages/hr/Tournament.php b/src/Common/Languages/hr/Tournament.php index 54904a97..8ce4ae80 100644 --- a/src/Common/Languages/hr/Tournament.php +++ b/src/Common/Languages/hr/Tournament.php @@ -64,7 +64,6 @@ $lang['BadgeIncludePhoto']='uključi fotografije u akreditacijskoj kartici?'; $lang['BadgeNames']='Puno ime (ne printa se prvo)'; $lang['BadgeNoData']='Nema podataka za ispis'; -$lang['BadgeOnlyNotPrinted']='SAMO akreditacijske kartice koje već nisu ispisane?'; $lang['BadgeOnlyPrintAccredited']='SAMO akreditacijske kartice akredititranih sudionika?'; $lang['BadgeOnlyPrintPhoto']='SAMO akreditacijske kartice sa slikom?'; $lang['BadgeOptions']='Opcije'; @@ -77,6 +76,7 @@ $lang['BadParams']='Neispravni parametri!'; $lang['Barcode']='Jedna dimenzija ID barkodova'; $lang['BarcodeMissing']='Ispis bar kodova koji nedostaju'; +$lang['BF_Phase']='Meč za 3. mjesto'; $lang['BigNames']='ispis na cijeloj stranici'; $lang['Bill']='Naplata'; $lang['BillAndCash']='Ukupno za naplatu'; @@ -114,12 +114,10 @@ $lang['CancelAcc']='otkaži akreditaciju'; $lang['CannotDelete']='Ovaj predmet se ne može izbrisati'; $lang['Cash']='Ukupno za naplatu'; -$lang['CatDos']='Direktor turnira'; -$lang['CatJudge']='Sudci'; -$lang['CatJury']='Vijeće za žalbe'; +$lang['CatDos']='Direktor turnira (DOS)'; +$lang['CatJudge']='Suci'; +$lang['CatJury']='Žiri za žalbe'; $lang['CatOC']='Organizacijski odbor'; -$lang['ChairmanJudge']='Glavni sudac'; -$lang['ChairmanJury']='presjedavajući vijeća za žalbe'; $lang['ChangeNationsNames']='Promjena naziva nacije'; $lang['CheckRefMail']='Provjerite Referentni E-Mail ...'; $lang['CheckScorecards']='Provjera rezultatskih kartica'; @@ -145,6 +143,7 @@ $lang['Collation']='Uspoređivanje'; $lang['Color']='Boja'; $lang['ComparedTo']='Usporedite w / POS. @ strijele (-1: najnovije dostupne)'; +$lang['CompetitionOfficials']='Službe natjecanja'; $lang['CompleteSchedule']='kompletan raspored'; $lang['Confirm']='Potvrdi'; $lang['ConfirmDescr']='OVO ĆE UNIŠTITI PRETHODNE DODJELE I NE MOŽE SE PONIŠTITI!'; @@ -157,7 +156,7 @@ $lang['CreateFiles']='Izrada datoteke'; $lang['Credited']='Akreditiran'; $lang['CtrlCodeShort']='Ctrl. kod'; -$lang['Currency']='Kn'; +$lang['Currency']='€'; $lang['DailySchedule']='Dnevni raspored'; $lang['DATABASE NOT REACHABLE']='ONLINE BAZA PODATAKA NIJE DOSTUPNA'; $lang['Date']='Datum'; @@ -178,7 +177,7 @@ $lang['Divisions']='Stilovi'; $lang['DOB']='Datum rođenja'; $lang['Dos']='Direktor pucanja'; -$lang['DoubleSpace']='Samostrijel'; +$lang['DoubleSpace']='Samostrel'; $lang['DuplicateEntry']='Dupli unos'; $lang['E-Session']='Eliminacije'; $lang['Edit']='Uredi'; @@ -288,7 +287,7 @@ $lang['IOCcode']='IOC Nacionalni kod'; $lang['IsParamWarning']='Infosystem Setup!
    Koristi se s velikim oprezom!'; $lang['Judge']='Sudac'; -$lang['Jury']='Član vijeća za žalbe'; +$lang['Jury']='Član žirija za žalbe'; $lang['Last']='Zadnji'; $lang['LastPhase']='Zadnja faza'; $lang['LegendSO']='Shoot Off i bacanje novčića skraćeno'; @@ -342,6 +341,11 @@ $lang['ManualTargetAssignment']='Ručna dodjela meta'; $lang['Match']='Natjecanje'; $lang['MatchMins']='Duljina natjecanja (min.)'; +$lang['MatchName-0']='Finale'; +$lang['MatchName-1']='Meč za 3. mjesto'; +$lang['MatchName-16']='Osmina finala'; +$lang['MatchName-2']='Polufinale'; +$lang['MatchName-4']='Četvrtfinale'; $lang['MatchPoints']='Match bodovi'; $lang['MatchScore']='Match rezultat'; $lang['MatchScoreSheets']='Bodovne liste natjecanja'; @@ -397,6 +401,7 @@ $lang['OnlyWithoutPhoto']='Prikaži samo one bez fotografija'; $lang['OpDelete']='Zatražena Operacija: Brisanje'; $lang['Opponent']='Protivnik'; +$lang['Opponents']='Protivnik'; $lang['Option1']='Opcija 1'; $lang['Option2']='Opcija 2'; $lang['Option3']='Opcija 3'; @@ -410,7 +415,7 @@ $lang['OrisTeamList']='Oris Team Lista'; $lang['OtherTourCategory']='Ostali'; $lang['OutdoorTourCategory']='Outdoor natjecanje'; -$lang['OverwritePreviousArchers']='prebrisati predhodne streličare'; +$lang['OverwritePreviousArchers']='prebrisati prethodne streličare'; $lang['OvrRefresh']='Osvježi stranicu (bez slanja)'; $lang['OvrSendSerial']='Poslati na OVR (serijski)'; $lang['PaperSize']='Veličina papira'; @@ -422,12 +427,12 @@ $lang['Pay']='platiti'; $lang['PersonalRank']='Osobni Ranking'; $lang['PersonList']='Popis Ljudi'; -$lang['PhaseBlock_0']='Osobe turnira'; +$lang['PhaseBlock_0']='Službe natjecanja'; $lang['PhaseBlock_1']='Kvalifikacije'; $lang['PhaseBlock_10']='Flight postavljanje'; $lang['PhaseBlock_2']='Eliminacije'; $lang['PhaseBlock_3']='Individualno finale'; -$lang['PhaseBlock_4']='Team Finale'; +$lang['PhaseBlock_4']='Ekipno finale'; $lang['PhaseBlock_5']='Završni izvještaj'; $lang['PhaseBlock_6']='Info natjecanja'; $lang['PhaseBlock_7']='izmjene Media'; @@ -460,10 +465,11 @@ $lang['PrintList']='Liste za ispis'; $lang['PrintNames']='Ispis imena'; $lang['PrintNormal']='Normal (Latin)'; -$lang['PrintScore']='Ispis Rezultata'; +$lang['PrintScore']='Ispis zapisnika'; $lang['PrintText']='Tekst zaglavlja'; $lang['PrintTextTitle']='Zaglavlje ispisa rezultata'; $lang['Q-Session']='Kvalifikacije'; +$lang['QF_Phase']='Četvrtfinale'; $lang['QrCode']='Qr Code sa detaljima streličara'; $lang['QualSessionShort']='Kval. serija'; $lang['RankByDistance']='Rangiranja po udaljenosti'; @@ -493,7 +499,7 @@ $lang['ResultIndClassSnap']='Kratki pregled Rezultat Lista Kategorija i stilova - Individualna'; $lang['ResultIndSubClass']='Flight rezultati'; $lang['Results']='Rezultati'; -$lang['ResultSqAbs']='Krug kvalifikacija - Team'; +$lang['ResultSqAbs']='Kvalifikacije - ekipno'; $lang['ResultSqClass']='Lista rezultata po kategorijama i stilovima - timovi'; $lang['Round']='Runda'; $lang['Round#']='Runda $a'; @@ -511,11 +517,11 @@ $lang['SchIncFinalists']='uključujući imena finalista'; $lang['Score']='Rezultat'; $lang['Score1PageAllDist']='Bodovanja natjecatelja sa svim udaljenostima na jednoj stranici'; -$lang['ScoreBarcode']='Ispis Bar Koda na rezultatatske liste'; -$lang['ScorecardsElim']='eliminacijske rezultatatske liste'; -$lang['ScorecardsInd']='individualni mečevi rezultatatske liste'; -$lang['ScorecardsQual']='kvalifikacijske rezultatatske liste'; -$lang['ScorecardsTeams']='timovi rezultatatske liste'; +$lang['ScoreBarcode']='Ispis Bar Koda na zapisnike'; +$lang['ScorecardsElim']='Zapisnik za eliminacije'; +$lang['ScorecardsInd']='Zapisnici za pojedinačne mečeve'; +$lang['ScorecardsQual']='Zapisnici za kvalifikacije'; +$lang['ScorecardsTeams']='Zapisnici za ekipne mečeve'; $lang['ScoreCollector']='Strijela za strijelu sakupljanje, odabrati strijele po završetku'; $lang['ScoreComplete']='Kompletan rezultat (crtež i podaci)'; $lang['ScoreCompleteTotals']='Kompletan rezultat (crtež i podaci) + Stupac za natjecanje kumulativni zbrojevi'; @@ -551,9 +557,10 @@ $lang['SetByUser']='Postavi od strane korisnika'; $lang['SetCredentials']='Postavljanje on-line kodova'; $lang['SetFilter']='Postavite filtere'; -$lang['SetPoints']='Postavi točke'; -$lang['SetTotal']='Postavi ukupno'; +$lang['SetPoints']='Bodovi (set)'; +$lang['SetTotal']='Zbroj'; $lang['Sex']='Spol'; +$lang['SF_Phase']='Polufinale'; $lang['ShootOffArrows']='Shoot Off strijele'; $lang['ShortFemale']='W'; $lang['ShortMale']='M'; @@ -575,10 +582,13 @@ $lang['StartList']='startna lista'; $lang['StartlistAlfabetical']='Sudionici u abecednom redu'; $lang['StartlistAlpha']='Popis sudionika po abecednom redu'; +$lang['StartListbyTarget']='Startna lista po metama'; $lang['StartlistCategory']='lista natjecatelja po kategoriji'; $lang['StartlistCountry']='Popis sudionika grupirano prema državama'; $lang['StartlistCountryOnlyAthletes']='Lista natjecatelja grupirana po državama'; +$lang['StartlistEachCategory']='Startna lista po kategorijama (jedna po stranici)'; $lang['StartlistEachCountry']='Popis sudionika grupirano prema državama(jedna po stranici)'; +$lang['StartlistEachCountryExtra']='Startna lista po državama (jedna po stranici)'; $lang['StartlistSession']='Popis sudionika po meti'; $lang['StartlistSessionNoEmpty']='- Bez praznih meta -'; $lang['StartlistSessionPicture']='Popis sudionika sortirane po meti sa slikom'; @@ -649,7 +659,6 @@ $lang['TeamCreationMode_2']='Uvijek 2. Team'; $lang['TeamCreationMode_3']='Uvijek 3. Team'; $lang['TeamFin']='Team - Elim. & Final Round'; -$lang['TeamFinEvent']='Team Final'; $lang['TeamPlace']='Znakovi mjesta za timove'; $lang['TeamPlaceLocal']='Znakovi mjesta za timove (lokalizirani)'; $lang['TeamQual']='Team - Qual. Round'; @@ -669,8 +678,9 @@ $lang['TooManyElimSO']='Bilo je previše neriješenih strelica!'; $lang['Total1']='Ukupno (1. poluvrijeme)'; $lang['Total2']='Ukupno (2. poluvrijeme)'; +$lang['TotalPoints']='Bodovi ukupno'; $lang['TotalProg']='Zbir'; -$lang['TotalShort']='Tot.'; +$lang['TotalShort']='Ukupno'; $lang['TourBusy']='POZOR! \ n \ n Vi ste o uvezli turnir dok je drugi turnir pokrenut! \ N potvrdite da li je to ono što želite učiniti?'; $lang['TourCategory']='Kategorija turnira'; $lang['TourCode']='Kod natjecanja'; diff --git a/src/Common/Languages/hr/translators.json b/src/Common/Languages/hr/translators.json index 095cf401..955dd4ff 100644 --- a/src/Common/Languages/hr/translators.json +++ b/src/Common/Languages/hr/translators.json @@ -1 +1 @@ -{"lang":"Hrvatski - Croatian","peop":["Igor Sabljak"],"id":"hr"} \ No newline at end of file +{"lang":"Hrvatski - Croatian","peop":["Martin Oborovecki","Igor Sabljak"],"id":"hr"} \ No newline at end of file diff --git a/src/Common/Languages/hu/IOC_Codes.php b/src/Common/Languages/hu/IOC_Codes.php index 49501829..fdc46b41 100644 --- a/src/Common/Languages/hu/IOC_Codes.php +++ b/src/Common/Languages/hu/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='Amerikai Szamoa'; $lang['AUS']='Ausztrália'; $lang['AUT']='Ausztria'; -$lang['Award-Anthem']='Hölgyeim és Uraim, kérem álljanak fel a himnusz meghallgatásához'; -$lang['Award-Anthem-TPE']='Hölgyeim és Uraim, kérem álljanak fel a himnusz meghallgatásához'; $lang['Award-Applause']='Hölgyeim és Uraim, kérem tapsolják meg a sportolókat'; $lang['Award-Intro']='Hölgyeim és Urai, a {$a} kategória eredményhirdetése következik'; $lang['Award-MedalGiver']='Az éremeket átadja $a'; @@ -42,16 +40,12 @@ $lang['BUL']='Bulgária'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Közép-Afrikai Köztársaság'; -$lang['CAM']='Kambodzsa'; $lang['CAN']='Kanada'; $lang['CAY']='Kajmán Szigetek'; $lang['CGO']='Kongói Köztársaság'; $lang['CHA']='Csád'; $lang['CHI']='Chile'; -$lang['CHN']='Kína'; -$lang['CIV']='Elefántcsontpart'; $lang['CMR']='Kamerun'; -$lang['COD']='Kongói Demokratikus Köztársaság'; $lang['COK']='Cook-szigetek'; $lang['COL']='Kolumbia'; $lang['COM']='Comore-szigetek'; @@ -60,7 +54,6 @@ $lang['CRO']='Horvátország'; $lang['CUB']='Kuba'; $lang['CYP']='Ciprus'; -$lang['CZE']='Cseh Köztársaság'; $lang['DEN']='Dánia'; $lang['DJI']='Dzsibuti'; $lang['DMA']='Dominika'; @@ -91,17 +84,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Magyarország'; $lang['INA']='Indonézia'; $lang['IND']='India'; -$lang['IRI']='Irán'; $lang['IRL']='Írország'; $lang['IRQ']='Irak'; $lang['ISL']='Izland'; $lang['ISR']='Izrael'; -$lang['ISV']='US Virgin Islands'; $lang['ITA']='Olaszország'; $lang['IVB']='Brit Virgin Islands'; $lang['JAM']='Jamaika'; @@ -114,7 +104,6 @@ $lang['KOR']='Koreai Köztársaság'; $lang['KSA']='Saudi Arabia'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laosz'; $lang['LAT']='Lettország'; $lang['LBA']='Líbia'; $lang['LBR']='Liberia'; @@ -128,7 +117,6 @@ $lang['MAR']='Marokkó'; $lang['MAS']='Malajzia'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldova'; $lang['MDV']='Maldív-szigetek'; $lang['Medal-1']='Aranyérmes'; $lang['Medal-2']='Ezüstérmes'; @@ -137,7 +125,6 @@ $lang['MEX']='Mexikó'; $lang['MGL']='Mongólia'; $lang['MHL']='Marshall-szigetek'; -$lang['MKD']='Macedonia'; $lang['MLI']='Mali'; $lang['MLT']='Málta'; $lang['MNE']='Montenegro'; @@ -166,7 +153,6 @@ $lang['PNG']='Pápua Új-guinea'; $lang['POL']='Lengyelország'; $lang['POR']='Portugália'; -$lang['PRK']='Észak-Korea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Románia'; @@ -193,13 +179,11 @@ $lang['SVK']='Szlovákia'; $lang['SWE']='Svédország'; $lang['SWZ']='Sváziföld'; -$lang['SYR']='Szíria'; $lang['TAN']='Tanzánia'; $lang['TGA']='Tonga'; $lang['THA']='Thaiföld'; $lang['TJK']='Tadzsikisztán'; $lang['TKM']='Türkmenisztán'; -$lang['TLS']='Kelet-Timor'; $lang['TOG']='Togo'; $lang['TPE']='Kínai Taipei'; $lang['TRI']='Trinidad és Tobago'; diff --git a/src/Common/Languages/hu/Install.php b/src/Common/Languages/hu/Install.php index e4e2fa6f..ea8fe44c 100644 --- a/src/Common/Languages/hu/Install.php +++ b/src/Common/Languages/hu/Install.php @@ -58,7 +58,6 @@ $lang['Parameter']='Paraméter'; $lang['Password']='Jelszó'; $lang['PHP settings']='PHP beállítások'; -$lang['PHP too old']='A PHP telepítésed túl régi! Az IANSEO futtatásához legalább PHP 5.0 szükséges.'; $lang['PHP version']='PHP verzió'; $lang['php.ini file']='php.ini fájl'; $lang['Prepare']='Adatok előkészítése a frissítéshez'; diff --git a/src/Common/Languages/hu/Tournament.php b/src/Common/Languages/hu/Tournament.php index 77ec6801..4ece5b2e 100644 --- a/src/Common/Languages/hu/Tournament.php +++ b/src/Common/Languages/hu/Tournament.php @@ -112,7 +112,6 @@ $lang['BadgeIncludePhoto']='Legyen kép a belépőn?'; $lang['BadgeNames']='Teljes név (Nem nyomtatódik először)'; $lang['BadgeNoData']='Nincs nyomtatható adat'; -$lang['BadgeOnlyNotPrinted']='CSAK a még ki nem nyomtatott belépők'; $lang['BadgeOnlyPrintAccredited']='CSAK az akkreditált versenyzők belépői'; $lang['BadgeOnlyPrintPhoto']='CSAK a fényképes belépők'; $lang['BadgeOptions']='Lehetőségek'; @@ -174,8 +173,6 @@ $lang['CatJudge']='Bírók'; $lang['CatJury']='Óvási testület'; $lang['CatOC']='Szervezőbizottság'; -$lang['ChairmanJudge']='Vezetőbíró'; -$lang['ChairmanJury']='Óvási testület Elnöke'; $lang['ChangeLookUpTable']='Lekérdezés módosítása'; $lang['ChangeNationsNames']='Országnév módosítása'; $lang['Channel']='Csatorna'; @@ -300,7 +297,6 @@ $lang['EmailScorecardShort']='Bearólap összegzés'; $lang['EmailsToSend']='Elküldésre váró emailek'; $lang['EmailSuccessfull']='Email sikeresen elküldve $a címére'; -$lang['EnableAccess']='Szabályozás engedélyezése/tiltása'; $lang['Ends']='Sorozat'; $lang['EndUpdate']='Minden frissítés kész'; $lang['Entries']='Nevezések'; @@ -889,7 +885,6 @@ $lang['TeamCreationMode_2']='Mindoig 2. csapat'; $lang['TeamCreationMode_3']='Mindig 3. csapat'; $lang['TeamFin']='Csapat - Kieséses és döntő'; -$lang['TeamFinEvent']='Csapat döntő'; $lang['TeamLoaded']='Csapatversenyek betöltve {$a} menetrendhez'; $lang['TeamPlace']='Csapat beosztás (EN)'; $lang['TeamPlaceLocal']='Csapat beosztás (magyarul)'; @@ -1143,7 +1138,6 @@ $lang['UserDetails']='Felhasználó adatai'; $lang['UserEnabled']='Engedélyezve'; $lang['UserName']='Felhasználónév'; -$lang['UserPassword']='Jelszó'; $lang['UseSubClasses']='Alkalmazd a specifikus al-korcsoportokra'; $lang['ValidDivisions']='Engedélyezett kategóriák (ha mind, hagyd üresen)'; $lang['VersionBracketsInd']='Egyéni fésű'; diff --git a/src/Common/Languages/id/Api.php b/src/Common/Languages/id/Api.php index a8352a6e..83221bc1 100644 --- a/src/Common/Languages/id/Api.php +++ b/src/Common/Languages/id/Api.php @@ -16,17 +16,17 @@ $lang['ConfirmGenerateZip']='Harap konfirmasi bahwa Anda membuat file ZIP dengan semua $a[0] untuk sesi $a[1]'; $lang['Controller']='Pengontrol'; $lang['DataRefresh']='Perbarui data'; -$lang['Desc-Let-1']='Rambahan sekarang diimpor'; -$lang['Desc-Let-2']='Panah Miss di rambahan / seri ini'; -$lang['Desc-Let-3']='Rambahan siap diimpor'; +$lang['Desc-Let-1']='Seri sekarang diimpor'; +$lang['Desc-Let-2']='Panah Miss di seri ini'; +$lang['Desc-Let-3']='Seri siap diimpor'; $lang['Desc-Let-4']='Proses skoring sedang berjalan'; -$lang['Desc-Let-B']='Rambahan Sekarang Diimpor'; -$lang['Desc-Let-C']='Panah di Rambahan ini tidak ada'; +$lang['Desc-Let-B']='Seri Sekarang Diimpor'; +$lang['Desc-Let-C']='Panah di Seri ini tidak ada'; $lang['Desc-Let-F']='Pertandingan selesai'; $lang['Desc-Let-G']='Tempat Kosong'; -$lang['Desc-Let-O']='Panah di Rambahan Berbeda'; +$lang['Desc-Let-O']='Panah di Seri Berbeda'; $lang['Desc-Let-R']='Panah di Sesi Berbeda'; -$lang['Desc-Let-Y']='Rambahan Siap untuk di Impor'; +$lang['Desc-Let-Y']='Seri Siap untuk di Impor'; $lang['Desc-Let-Z']='Skoring sedang berlangsung'; $lang['DevConnected']='Terhubung'; $lang['DevDisconnected']='Terputus'; @@ -50,6 +50,7 @@ $lang['ISK-ConnectionStatus']='Status Koneksi'; $lang['ISK-DeleteDevices']='Hapus Perangkat'; $lang['ISK-DenyAccess']='Menolak Akses'; +$lang['ISK-Deprecated']='PENTING: Aplikasi "Ianseo Score Keeper" akan dihapus dari toko Android dan Apple dan tidak lagi didukung, sehingga akan dihapus dari Ianseo pada September 2024. Silakan beralih ke Aplikasi "Ianseo Score Keeper NG" yang baru.'; $lang['ISK-DeviceAlive']='Online'; $lang['ISK-DeviceBattery']='Batterai'; $lang['ISK-DeviceEnabled']='Tersedia'; @@ -79,6 +80,7 @@ $lang['ISK-Lite-NoCompCode']='Kode Kompetisi Tidak Ada'; $lang['ISK-Lite-QRCode']='Cetak QR Code untuk Ianseo ScoreKeeper Lite'; $lang['ISK-Lite-ServerUrl']='URL Server (termasuk protokol dan port jika bukan 80)'; +$lang['ISK-Live-Deprecated']='PENTING: Aplikasi "Ianseo Score Keeper Live" tidak lagi didukung, sehingga akan dihapus dari Ianseo pada September 2024. Silakan beralih ke Aplikasi "Ianseo Score Keeper NG" yang baru.'; $lang['ISK-Live-Name']='Ianseo ScoreKeeper LIVE'; $lang['ISK-lockPortrait']='Kunci Perangkat dalam tampilan Portrait'; $lang['ISK-Name']='Ianseo ScoreKeeper'; @@ -140,12 +142,12 @@ $lang['IskSpuriousScore-Device']='Perangkat $a[0] mengirim skor pada target $a[1] dari fase $a[2]'; $lang['IskSpuriousScore-Distance']='Perangkat $a[0] sedang proses skoring di jarak $a[1]'; $lang['IskSpuriousScore-Empty']='Perangkat $a[0] mendapat skor di tempat $a[1]'; -$lang['IskSpuriousScore-End']='Perangkat $a[0] melakukan skoring di rambahan $a[1'; +$lang['IskSpuriousScore-End']='Perangkat $a[0] melakukan skoring di rambahan $a[1]'; $lang['IskSpuriousScore-Match']='Perangkat $a[0] melakukan skoring dalam pertandingan $a[1]'; $lang['IskTargetTitle']='Target $a'; $lang['IskUnknownDevice']='Perangkat tidak dikenal di target $a'; $lang['LockAll']='Kunci semua sesi'; -$lang['LockToEnds']='Batasi skoring untuk rambahan berikut (tidak ada berarti skoring tidak dibatasi)'; +$lang['LockToEnds']='Batasi skoring untuk seri berikut (tidak ada berarti skoring tidak dibatasi)'; $lang['ManageGroupTarget']='Managemen Grup dan Target'; $lang['ManageLockedSessions']='Atur sesi yang terkunci'; $lang['Masters']='Master'; @@ -158,7 +160,7 @@ $lang['PartialImport']='Impor Otomatis secara Parsial'; $lang['PartialImportAll']='Import semua'; $lang['PopupStatusDistance']='Jarak: $a'; -$lang['PopupStatusEnd']='Rambahan: $a'; +$lang['PopupStatusEnd']='Seri: $a'; $lang['PopupStatusEvent']='Event: $a'; $lang['PopupStatusPhase']='Fase: $a'; $lang['PopupStatusSession']='Sesi: $a'; @@ -183,7 +185,7 @@ $lang['SelectedMove2Group']='Pindahkan perangkat ke grup'; $lang['SelectedReNumber']='Mengulang penomoran perangkat dimulai dari'; $lang['StatusTemporaryArrows']='Situasi Anak panah pada tabel sementara'; -$lang['StickyAlreadySet']='Rambahan yang ditandai sudah di-set pada sesi yang berbeda!'; +$lang['StickyAlreadySet']='Seri yang ditandai sudah di-set pada sesi yang berbeda!'; $lang['TargetRequests-Printout']='Print Lembar QrCode Lembar Permintaan Target'; $lang['TargetScoring-Printout']='Print Lembar QrCode Skoring Target'; $lang['TempArrowsDelete']='HAPUS anak panah dari tabel sementara'; diff --git a/src/Common/Languages/id/BackNumbers.php b/src/Common/Languages/id/BackNumbers.php index 3c967e90..fed34d7b 100644 --- a/src/Common/Languages/id/BackNumbers.php +++ b/src/Common/Languages/id/BackNumbers.php @@ -112,6 +112,7 @@ $lang['GivCaps-FamCaps-ClubCaps']='NAMADIBERIKAN NAMAKELUARGA, NAMA NEGARA'; $lang['GivenNameInitial']='Huruf pertama Nama Lengkap'; $lang['Heigh']='Tinggi'; +$lang['HLayout']='Horizontal'; $lang['HLine']='Garis Horizontal'; $lang['I-Badge']='Nomor Atlet untuk pertandingan Individual'; $lang['IdCardHor']='dalam lebar'; @@ -143,6 +144,8 @@ $lang['OpenPictureScreen']='Buka Tampilan Sekunder'; $lang['PageDimension']='Ukuran Kertas'; $lang['PaperDimention']='Dimensi Kertas'; +$lang['PhaseFrom']='Dari Fase'; +$lang['PhaseTo']='Ke Fase'; $lang['Picture']='Photo Atlet'; $lang['Portrait']='Potret'; $lang['PosX']='Posisi (X)'; @@ -163,6 +166,8 @@ $lang['ResetBarcodeSeparator']='Reset Pemisah Barcode'; $lang['RnkCardinalEN']='Tampilan Kardinal (1, 2, ..., 10)'; $lang['RnkOrdinal']='Tampilan Ordinal (ke-1, ke-2, ..., ke-10) - ID'; +$lang['RnkRoman']='Angka Romawi (I, II, ... IV, ... CM)'; +$lang['S-Badge']='Sticker'; $lang['Schedule']='Jadwal'; $lang['Session']='Sesi Kualifikasi'; $lang['SessionTarget']='Kode Sesi dan Target'; @@ -177,6 +182,7 @@ $lang['ToRight']='Logo Kompetisi (Kanan)'; $lang['TVViewIdCard']='Lihat Kartu ID'; $lang['TVViewIdCardDescr']='Dalam tampilan pertandingan menarik 2 Kartu ID dari lawan alih-alih baris "standar"'; +$lang['VLayout']='Vertikal'; $lang['Width']='Lebar'; $lang['WRank']='Peringkat Dunia'; $lang['WRankFields']='Jangan ditampilkan setalah posisi Peringkat Dunia (0: Tampilkan semua)'; diff --git a/src/Common/Languages/id/Boinx.php b/src/Common/Languages/id/Boinx.php index 519a1991..eb40ac5b 100644 --- a/src/Common/Languages/id/Boinx.php +++ b/src/Common/Languages/id/Boinx.php @@ -19,13 +19,16 @@ $lang['CssFlexArrows']='Blok Detail Panah - Umum'; $lang['CssFlexArrowsDiv']='Div Panah Tunggal'; $lang['CssFlexName']='Blok Nama dan Bendera - Umum'; -$lang['CssFlexSum']='Blok Rambahan Berjalan - Umum'; +$lang['CssFlexSum']='Blok Seri Berjalan - Umum'; $lang['CssFlexTotal']='Blok Total Skor - Umum'; $lang['CssImage']='Overlay Gambar'; +$lang['CssImage1']='Css untuk gambar 1'; +$lang['CssImage2']='Css untuk gambar 2'; +$lang['CssImage3']='Css untuk gambar 3'; $lang['CssImageDiv']='Kotak Div dari gambar overlay'; $lang['CssLeftFlexArrows']='Blok Detail Panah - Kiri'; $lang['CssLeftFlexName']='Blok Nama dan Bendera - Kiri'; -$lang['CssLeftFlexSum']='Blok Rambahan Berjalan - Kiri'; +$lang['CssLeftFlexSum']='Blok Seri Berjalan - Kiri'; $lang['CssLeftFlexTotal']='Blok Total Skor - Kiri'; $lang['CssLeftLight']='Kotak Waktu - Kiri'; $lang['CssLeftNames']='Panel Papan Skor - Kiri'; @@ -49,9 +52,10 @@ $lang['CssPresentationEvent']='Presentasi Event - Umum'; $lang['CssPresentationNames']='Presentasi Nama - Umum'; $lang['CssRankCommon']='Sel Peringkat'; +$lang['CssReminder']='Jangan lupa untuk menyimpan perubahan anda!'; $lang['CssRightFlexArrows']='Blok Detail Panah - Kanan'; $lang['CssRightFlexName']='Blok Nama dan Bendera - Kanan'; -$lang['CssRightFlexSum']='Blok Rambahan Berjalan - Kanan'; +$lang['CssRightFlexSum']='Blok Seri Berjalan - Kanan'; $lang['CssRightFlexTotal']='Blok Total Skor - Kanan'; $lang['CssRightLight']='Kotak Waktu - Kanan'; $lang['CssRightNames']='Panel Papan Skor - Kanan'; @@ -71,8 +75,12 @@ $lang['CssSoSets']='Kotak SO - Set Sel'; $lang['CssSoSetsCommon']='Set'; $lang['CssSoSetTitle']='Heading - Set Judul'; -$lang['CssSumTitle']='Judul Rambahan Berjalan'; -$lang['CssSumTotal']='Nilai Rambahan Berjalan'; +$lang['CssSumTitle']='Judul Seri Berjalan'; +$lang['CssSumTotal']='Nilai Seri Berjalan'; +$lang['CssText1']='Css untuk teks 1'; +$lang['CssText2']='Css untuk teks 2'; +$lang['CssText3']='Css untuk teks 3'; +$lang['CssText4']='Css untuk teks 4'; $lang['CssTitleCommon']='Judul Utama'; $lang['CssVegasFreeTextRow']='Baris'; $lang['CssVegasFreeTextText']='Teks'; diff --git a/src/Common/Languages/id/Common.php b/src/Common/Languages/id/Common.php index fc49856c..e6876fb4 100644 --- a/src/Common/Languages/id/Common.php +++ b/src/Common/Languages/id/Common.php @@ -71,6 +71,7 @@ $lang['CmdOk']='OK'; $lang['CmdOn']='Hidup'; $lang['CmdPostUpdate']='Setelah update'; +$lang['CmdRefresh']='Refresh'; $lang['CmdSave']='Simpan'; $lang['CmdSaveContinue']='Simpan & Lanjutkan'; $lang['CmdSet2All']='Set ke Semua'; @@ -134,8 +135,8 @@ $lang['Eliminations_0']='Tanpa Eliminasi'; $lang['Eliminations_1']='Babak Eliminasi 1'; $lang['Eliminations_2']='Babak Eliminasi 2'; -$lang['End (volee)']='Rambahan'; -$lang['EndAverage']='Rambahan Rata2'; +$lang['End (volee)']='Seri'; +$lang['EndAverage']='Seri Rata2'; $lang['EndScore']='Jumlah'; $lang['Error']='Error'; $lang['ErrorIndTeamsRank']='Terjadi kesalahan saat menghitung ulang peringkat Individu dan Tim'; @@ -148,6 +149,10 @@ $lang['Finish']='Selesai'; $lang['FirstPhase']='Fase Pertama'; $lang['FopSetup']='Tata Letak Lapangan Pertandingan'; +$lang['Gender0']='Laki-Laki'; +$lang['Gender1']='Perempuan'; +$lang['GenderShort0']='L'; +$lang['GenderShort1']='P'; $lang['GF']='Perempuan Muda'; $lang['GM']='Laki-Laki Muda'; $lang['HELP']='BANTUAN!'; @@ -207,16 +212,19 @@ $lang['MatchMode_0']='Akumulasi'; $lang['MatchMode_1']='Sistem Set'; $lang['MatchNo']='Pertandingan No.'; +$lang['MatchWinShot']='Tembakan Pemenang Pertandingan'; +$lang['MatchWinShotHelp']='[Jumlah tembakan pemenang pertandingan yang berhasil] - [Jumlah tembakan pemenang pertandingan yang gagal] %=Persentase keberhasilan ketika anak panah merupakan calon pemenang pertandingan'; $lang['Medal']='Medali'; $lang['MedalBronze']='Perunggu'; $lang['MedalGold']='Emas'; $lang['MedalList']='List Medali'; $lang['MedalSilver']='Perak'; -$lang['MedalStanding']='Pemenang Medali'; +$lang['MedalStanding']='Perolehan Medali'; $lang['MenuLMPrintedBadgesFlag']='Perbarui tanda "Akreditasi sudah di-print"'; $lang['MenuLMRemoveNoShows']='Hapus No-Shows'; $lang['MenuLM_Accreditation']='Akreditasi'; $lang['MenuLM_Accreditation colors management']='Managemen Warna Akreditasi'; +$lang['MenuLM_AdvancedFeatures']='Fitur lanjutan'; $lang['MenuLM_AdvLabels']='Printout Label Lanjutan'; $lang['MenuLM_Archers on Targets']='Pemanah pada Target'; $lang['MenuLM_Arr4Set']='Anak Panah per Set'; @@ -230,6 +238,7 @@ $lang['MenuLM_Athlets fees status']='Status Pembayaran Atlet'; $lang['MenuLM_Authentication']='Otentifikasi Pengguna'; $lang['MenuLM_AutoCheckinSetup']='Setup Check-In Otomatis'; +$lang['MenuLM_Automator']='Pengotomasi'; $lang['MenuLM_Back Number Printout']='Printout Nomor Punggung'; $lang['MenuLM_Boinx']='Setup Boinx Layer'; $lang['MenuLM_BoinxMeteo']='Data Boinx Meteo Layer'; @@ -240,9 +249,11 @@ $lang['MenuLM_Category Result List']='Daftar Hasil Kategori'; $lang['MenuLM_Change Components']='Ubah Komponen'; $lang['MenuLM_ChangeNationsNames']='Ubah Nama Negara'; +$lang['MenuLM_ChangePassword']='Ubah Password'; $lang['MenuLM_Check Data Update']='Periksa Update Data'; $lang['MenuLM_Check shoot-off before eliminations']='Periksa shoot-off sebelum eliminasi'; $lang['MenuLM_Check shoot-off before final phases']='Periksa shoot-off sebelum fase Final'; +$lang['MenuLM_Check shoot-off before Rank']='Periksa hasil shoot-off sebelum mencetak peringkat'; $lang['MenuLM_CheckAwards']='Periksa Penerjemahan Penghargaan'; $lang['MenuLM_CheckList']='Cheklist Print'; $lang['MenuLM_CIS']='CIS'; @@ -296,6 +307,7 @@ $lang['MenuLM_FinalFOPChoose']='Final FOP Diperluas'; $lang['MenuLM_FlightsAwardManagement']='Managemen Penghargaan Kloter'; $lang['MenuLM_FlightsManagement']='Managemen Kloter'; +$lang['MenuLM_FontManagement']='Management Huruf'; $lang['MenuLM_GateControl']='Panel Kontrol Gerbang Akses'; $lang['MenuLM_GateSituation']='Situasi Gerbang'; $lang['MenuLM_Get Info']='Dapatkan info'; @@ -338,6 +350,7 @@ $lang['MenuLM_Modules']='Modul'; $lang['MenuLM_MoveSession']='Mengubah Sesi yang telah Ditentukan'; $lang['MenuLM_MoveTarget']='Memindahkan Target yang telah ditentukan'; +$lang['MenuLM_N62']='Informasi N62A/B ORIS'; $lang['MenuLM_New']='Baru'; $lang['MenuLM_NewBacknumbers']='Nomor Atlet'; $lang['MenuLM_OdsExport']='Expor SpredSheet (.ods)'; @@ -410,7 +423,7 @@ $lang['MenuLM_Team Final Setup']='Setup Final Beregu'; $lang['MenuLM_Team Finals']='Tim Final'; $lang['MenuLM_Team Spot']='Tempat Tim'; -$lang['MenuLM_Training']='Jadwal Pemanasan'; +$lang['MenuLM_Training']='Jadwal Percobaan'; $lang['MenuLM_TV Channels']='Saluran TV Output'; $lang['MenuLM_TV Output']='TV Output'; $lang['MenuLM_TVAdvanced']='TV Output (tingkat lanjut)'; @@ -442,6 +455,7 @@ $lang['MsgImportOk']='Impor Selesai!'; $lang['MsgInitFinalGridsError']='Peringatan: Braket sudah diinisialisasi untuk event ini. Apakah Anda ingin melanjutkan?'; $lang['MsgInitFinalGridsOk']='Inisialisasi Berhasil!'; +$lang['MsgInitFinalGridsRunningError']='Operasi tidak diizinkan ketika Event sedang dalam Mode Running'; $lang['MsgMakeFinReset']='Braket Final Diinisialisasi Ulang!
    Ulangi semua operasi pendahuluan sebelum memasukkan data baru!'; $lang['MsgNeedInitGrids']='Error!
    Braket tidak diinisialisasi!'; $lang['MsgNeedShootOff']='Error!
    Pertama, Anda harus memeriksa shoot-off!'; @@ -498,6 +512,7 @@ $lang['Score1Page1Match']='Skor untuk pertandingan tunggal'; $lang['ScoreDrawing']='Hanya Drawing (Halaman Tunggal)'; $lang['ScoreFilled']='Cetak Kartu Skor terisi dengan semua nilai dari anak panah tunggal'; +$lang['ScoreIncAllNames']='Sertakan semua kemungkinan Lawan'; $lang['ScoreIncEmpty']='Cetak pertandingan meskipun jika tanpa lawan'; $lang['Scorer']='Scorer'; $lang['SearchOrphanTexts']='Cari Text Orphan'; @@ -506,9 +521,12 @@ $lang['SelectAll']='Pilih Semua'; $lang['SelTour']='Kompetisi Terpilih'; $lang['Session']='Sesi'; +$lang['SetWinShot']='Tetapkan Tembakan Pemenang'; +$lang['SetWinShotHelp']='[Jumlah tembakan pemenang set yang berhasil] - [Jumlah tembakan pemenang set yang gagal] %=Persentase keberhasilan ketika anak panah berpotensi menjadi pemenang set'; $lang['SF']='Wanita Senior'; $lang['ShootOff4Elim']='Periksa shoot-off sebelum eliminasi'; $lang['ShootOff4Final']='Periksa shoot-off sebelum fase Final'; +$lang['ShootOff4Rank']='Periksa hasil shoot-off sebelum mencetak peringkat'; $lang['SM']='Pria Senior'; $lang['SnapshotConf']='Konfigurasi Snapshot'; $lang['SortBy']='Sortir berdasarkan'; @@ -550,12 +568,15 @@ $lang['Total']='Total'; $lang['TotaleScore']='Total'; $lang['Trg3DComplete']='3D standard'; +$lang['Trg3DReddingEnd']='3D Redding'; $lang['TrgCOIndComplete']='Indoor (1-10 kecil)'; $lang['TrgCOIndSmall']='Indoor (6-10 kecil)'; $lang['TrgCOOutdoor']='Outdoor (5-X)'; $lang['TrgCOOutdoorSmall']='Outdoor (6-X)'; $lang['TrgField']='Field Archery'; $lang['TrgForestSwe']='Hutan (SWE)'; +$lang['TrgFrBeursault']='Beursault'; +$lang['TrgFrBouquet']='Bouquet'; $lang['TrgHMOutComplete']='Hit-Miss'; $lang['TrgHunterNor']='Hunter (Norwegia)'; $lang['TrgImperial']='Target Imperial (1-9)'; diff --git a/src/Common/Languages/id/Errors.php b/src/Common/Languages/id/Errors.php index 8b6cf6d6..027f00f1 100644 --- a/src/Common/Languages/id/Errors.php +++ b/src/Common/Languages/id/Errors.php @@ -2,11 +2,14 @@ $lang['AllFieldsMandatory']='Semua isian wajib disi'; $lang['AllMailsRedirect']='Semua pesan akan dikirim ke'; $lang['Anomalies']='Anomali'; +$lang['BackupTournaments']='Mohon diingat untuk menyimpan semua kompetisimu sebelum memperbarui atau install ulang ianseo!'; $lang['BarCodeSession']='Terdapat error pada settingan: coba setting satu sesi!'; $lang['BarCodeSettings']='Terdapat error pada settingan'; +$lang['CategoresNotDefined']='Definisi Kategori Hilang'; $lang['ClassFromToError']='Dari dan Ke harus dalam nilai numerik'; $lang['ClubNotFound']='Kode Klub tidak ditemukan di klub yang ada. Harap perbarui database terlebih dahulu!'; $lang['ConflictingCategories']='Definisi filter tumpang tindih dengan filter sebelumnya untuk kategori ini: $a!'; +$lang['DecodeError']='Error Decode'; $lang['DiameterMandatory']='Diameter Target Face wajib diisi'; $lang['DirectoryNotWriteable']='Direktori $a tidak dapat ditulisi oleh server web. Harap ubah izinnya agar dapat ditulisi oleh siapa pun.'; $lang['DistanceOutRange']='Jarak di luar jangkauan'; @@ -15,6 +18,9 @@ $lang['EmptyFrom']='Email Kosong: isian ini wajib diisi'; $lang['EmptySubject']='Subjek Kosong: isian ini wajib diisi'; $lang['EmptyTitle']='Judul Kosong: isian ini wajib diisi'; +$lang['EndsArrowsMisMatch']='$a dengan pengaturan Seri/Panah yang salah'; +$lang['EntriesNoCategory']='Inputan tanpa Kategori'; +$lang['EntriesNoCountry']='Inputan tanpa Negara/Club'; $lang['ErrCodeExists']='Kode sudah ada!'; $lang['ErrCommitteeError']='Kode Komite atau deskripsi tidak valid atau'; $lang['ErrConnection']='Tidak ada koneksi ke server $a'; @@ -32,6 +38,7 @@ $lang['ErrRedCard']='Panitia mendapat kartu merah dan tidak bisa meminta kompetisi diselenggarakan di ianseo. Hubungi code@ianseo.net untuk penjelasan lebih lanjut.'; $lang['ErrUnknownNation']='Negara Tidak Dikenal'; $lang['ErrYellowCard']='Panitia mendapatkan Kartu Kuning karena tidak ada hasil kompetisi yang diupload. Hubungi code@ianseo.net untuk penjelasan lebih lanjut.'; +$lang['EventIncompleteSetting']='$a dengan pengaturan kategori yang diizinkan hilang'; $lang['FilterAlreadyExists']='Filter ini sudah ada'; $lang['FilterNotEmpty']='Anda perlu untuk mendefinisikan filter'; $lang['IllegalTarget']='Target Face terpilih tidak ada dalam DB'; @@ -39,7 +46,9 @@ $lang['ImageFetchError']='Terjadi kesalahan saat mengambil Gambar'; $lang['ImageSaveError']='Gambar tidak disimpan'; $lang['IncompleteSettings']='Setting tidak komplit'; +$lang['InvalidCharacters']='Kolom isian mengandung karakter yang tidak valid. Karakter yang valid adalah $a'; $lang['InvalidEmail']='Email Tidak Valid: harap periksa kembali email sebelum menyimpan'; +$lang['InvalidLogin']='Login tidak valid'; $lang['LockedProcedure']='Prosedur ini TERKUNCI'; $lang['MailingAlreadyExists']='Email dengan judul yang sama ({$a}) sudah ada, harap ubah judul atau pilih email yang akan diubah dari pemilih.'; $lang['MailingDeleteText']='Harap konfirmasi bahwa Anda ingin menghapus surat ini secara permanen'; @@ -51,21 +60,34 @@ $lang['MissingAccreditation']='Akreditasi online tidak ada'; $lang['MissingData']='Data Tidak Ada'; $lang['MissingPhpIntlModule']='Transliterasi dapat dilakukan dengan menginstal atau mengaktifkan modul php-intl'; +$lang['MysqlInnoDbProcess']='Ianseo akan memperbarui database untuk performance yang lebih baik. Ini mungkin akan memerlukan beberapa waktu.'; +$lang['MysqlUpdateNeeded']='Anda menggunakan Server Mysql yang sangat lama. Mohon untuk memperbarui server anda, XAMP, WAMP atau LAMP ke versi yang lebih baru atau install ulang Ianseo dari awal.'; $lang['NameNotEmpty']='Nama tidak dapat dikosongkan'; +$lang['NoCountryInsert']='Tidak ada Negara yang dimasukkan'; +$lang['NoData']='Tidak ada Data yang disediakan'; +$lang['NoDistancesSet']='Kategori tanpa pengaturan jarak'; $lang['NoDNSRecord']='Nama Server salah atau tidak online: harap diperhatikan bahwa Anda harus terhubung ke Internet untuk menyetel opsi ini.'; +$lang['NoEntryInsert']='Tidak ada Entri yang disisipkan'; $lang['NoMailingTemplate']='Tidak ada Template Email yang dipilih/tersedia!'; $lang['NoMailRecipients']='Tidak seorang pun untuk mengirim surat! Harap tinjau opsi filter Anda.'; $lang['NoPrivilege']='Hak Istimewa Tidak Memadai: Anda tidak diizinkan untuk mengoperasikan halaman ini'; $lang['NoSameOrders']='Nilai Urutan baru tidak dapat diduplikasi.'; $lang['NoSmtpServerSet']='Harap setel server SMTP sebelum mengirim email!'; +$lang['NoTargetSet']='Kategori tanpa pengaturan target'; +$lang['PhpOutdated']='Versi PHP Anda sudah kedaluwarsa. Ianseo mungkin berfungsi tetapi beberapa fungsi memerlukan setidaknya versi {$a}.
    Harap tingkatkan instalasi Anda sesegera mungkin untuk mendukung PHP {$a} atau yang lebih baru.'; $lang['RegExp']='Untuk menggunakan RegExp (Regular Expressions), silakan merujuk ke $a'; +$lang['ResetSyncData']='Reset Data Sinkronisasi'; +$lang['ServiceNotAvailable']='Service tidak tersedia'; $lang['SetupNotFinished']='Anda tidak dapat mengakses halaman ini: harap lengkapi {$a} terlebih dahulu!'; $lang['SpecialFilterDiscrepancy']='Filter khusus telah disetel tetapi tidak aktif!'; $lang['SqlJolly']='Dalam Statemen SQL sebuah "%" berfungsi sebagai jolly, a "_" menggantikan sebuah huruf. Sebagai contoh "R%M" akan mencocokkan "RM" sebagai "RCM", "RMM" tetapi tidak "RMC". "R_M" akan cocok untuk "RSM", "RJM" tetapi tidak "RM".'; +$lang['SyncNotAvailable']='Sinkronisasi tidak tersedia'; $lang['TargetNumberMismatch']='Nomor Target hanya dapat berbentuk [TargetNumber][TargetLetter], seperti pada 129C'; $lang['TargetRangeMismatch']='Rentang Target harus berupa 2 angka target (tanpa huruf) yang dipisahkan oleh tanda hubung (tanda minus), yang pertama lebih rendah dari yang kedua, seperti pada 23-44'; $lang['TextSmtpDelete']='Harap konfirmasikan bahwa Anda ingin menghapus pengaturan SMTP pada instalasi Ianseo'; $lang['TooManyArrows']='Terlalu banyak total anak panah: maksimum adalah $a'; +$lang['TooManyDistancesMatch']='Kategori dengan pengaturan multi jarak'; $lang['TooManyElimQualified']='Tipe Ronde $a[0] hanya dapat menerima hingga $a[1] pemanah'; +$lang['WrongData']='Data yang disediakan salah'; $lang['WrongPort']='Port ini tidak didukung'; ?> \ No newline at end of file diff --git a/src/Common/Languages/id/HTT.php b/src/Common/Languages/id/HTT.php index a6cb6d62..866947ea 100644 --- a/src/Common/Languages/id/HTT.php +++ b/src/Common/Languages/id/HTT.php @@ -49,7 +49,7 @@ $lang['Name']='Nama'; $lang['OfficeMode']='Mode Office'; $lang['OpenFile']='Buka Berkas'; -$lang['OvrErrSelectSession']='Tidak ada Rambahan dipilih!'; +$lang['OvrErrSelectSession']='Tidak ada Seri dipilih!'; $lang['Port']='Port'; $lang['QualSession']='Kual. Ses.'; $lang['Report']='Laporan'; @@ -73,6 +73,6 @@ $lang['Terminal']='HTT'; $lang['TerminalMode']='Mode Terminal'; $lang['TotaleScore']='Total'; -$lang['Volee']='Rambahan'; -$lang['VoleeIsPresent']='RAMBAHAN ini sudah ada'; +$lang['Volee']='Seri'; +$lang['VoleeIsPresent']='SERI ini sudah ada'; ?> \ No newline at end of file diff --git a/src/Common/Languages/id/Help.php b/src/Common/Languages/id/Help.php index f32313d0..6f4e4ed4 100644 --- a/src/Common/Languages/id/Help.php +++ b/src/Common/Languages/id/Help.php @@ -1,4 +1,5 @@ Karakter pengganti yang diizinkan: "%"'; $lang['AutoCheckinAlreadyDone']='Anda sudah check-in
    Jika Anda perlu mengubah informasi apa pun, lanjutkan ke meja akreditasi'; $lang['AutoCheckinConfirm']='Jika semua detail sudah benar, tekan CONFIRM CHECK-IN
    Jika tidak, tekan CANCEL dan lanjutkan ke meja akreditasi'; $lang['AutoCheckinSearch']='Scan Kode QR yang Anda terima atau ketik nama Anda'; @@ -14,6 +15,11 @@ ▷ Skor tidak termasuk dalam total babak kualifikasi tim'; $lang['CombiCompList']='Daftar Kode Kompetisi, dipisahkan koma'; $lang['FlightsManagement']='Ke kategori penerbangan
    • Pilih Ujung mana - Total Jarak - Total Penuh hitung penerbangan;
    • Pilih ukuran potongan penerbangan awal berdasarkan kategori. Sistem memuat tabel penerbangan standar NFAA ketika kompetisi mengizinkannya;
    • Pratinjau Pengelompokan Penerbangan akan menghitung SEMUA KATEGORI, tekan tombol muat ulang di sisi ukuran potongan penerbangan untuk memaksa penghitungan satu kategori;
    • Penerbangan yang ditandai oranye hanyalah indikator perbedaan antara penerbangan yang dipratinjau dan tabel peraturan. Ini TIDAK mempengaruhi divisi penerbangan.
    • Gunakan perintah drop - split - merge untuk menyesuaikan info penerbangan. Harap dicatat, setelah menjalankan pratinjau penuh atau penyegaran kategori, semua perubahan pada penerbangan akan hilang.
    Catatan
    • Kategori dengan peserta yang terlalu sedikit tidak termasuk dari terbang. Penerbangan dapat dipaksa dengan menunjukkan jumlah pemotongan penerbangan;
    • Jika suatu kategori dianggap diterbangkan, gunakan \'-1\' sebagai potongan untuk secara eksplisit mengecualikan dari penerbangan
    • Profesional dan/atau Kejuaraan sebagai dikecualikan dari penerbangan dan berwarna abu-abu
    '; +$lang['FontFamily']='Nama huruf untuk digunakan di CSS'; +$lang['FontFile']='Lokasi file di disk'; +$lang['FontName']='Nama huruf sebenarnya'; +$lang['FontStyle']='Gaya huruf pada CSS'; +$lang['FontWeight']='Tebal huruf pada CSS'; $lang['GetBarcodeSeparator']='Setelah mencetak lembar referensi barcode, baca «SEPARATOR» barcode untuk mengaktifkan item pembaca yang benar.'; $lang['HomePage']='Halaman ini tempat Anda dapat memilih atau membuat turnamen.'; $lang['ISK-LockedSessionHelp']='{$a} ikon menunjukkan apakah aplikasi dapat memproses skor atau tidak dalam sesi yang dimaksud'; @@ -25,6 +31,7 @@ $lang['ScoreBarCodeShortcuts']='Baca Barcode yang tercetak di kartu skor.
    Memasukkan # secara manual diikuti dengan nama atlet mencari database untuk menemukan atlet tersebut
    Memasukkan @ diikuti dengan nomor target akan mencari target tersebut. Jarak HARUS diatur. Sesi harus ditentukan (digit pertama) dan target diisi 0 hingga 3 digit.'; +$lang['ScoreboardFreetext-Texts']='Insert {{date}} to insert the date in english format (ie: january 4, 2024).
    Insert {{date-lang}} to insert a date in local language (ie: {{date-de}} to have 4. Januar 2024)
    Insert {{time}} to have the ticking time in ISO format (ie: 15:03:23)
    Insert {{time-am}} to have ticking time in AM/PM format (ie: 3:03:23 PM)
    Insert {{counter-datetime}} to have a full date countdown (ie: [[[days:]hours:]minutes:]seconds layout, where datetime is the time to reach in ISO format 2024-12-04T09:00:00 for local time)
    There can only be one of these fields in a text'; $lang['TargetRequests-Printout']='Mencetak QrCode dari target yang diminta agar perangkat pribadi dapat dengan cepat ditetapkan ulang ke target yang benar.
    Pilih grup perangkat mana yang ingin Anda cetak dan rentang sasaran target:
    1-10 mencetak QrCOde dari target 1 hingga 10
    1,7,12-15 mencetak QrCOde target 1, 7 dan dari 12 hingga 15'; $lang['TargetScoring-Printout']='Mencetak QrCode dari target yang diminta untuk proses skoring pada Jarak Target Sesi yang diperlukan dengan ISK NG Lite. Ini adalah kode QR yang sama yang dapat Anda temukan di scorecard
    Pilih sesi mana yang ingin Anda cetak dan rentang target sasaran:
    1-10 mencetak QrCOde dari target 1 hingga 10
    1 ,7,12-15 mencetak QrCOde target 1, 7 dan dari 12 hingga 15'; $lang['TV-ChannelSetup']='= Pengaturan Saluran = @@ -67,5 +74,7 @@
  • versi lanjutan yang menggunakan kemampuan HTML5 browser modern
  • Untuk membuat konten baru, masukkan nama untuk konten tersebut dan tekan tombol.
    '; +$lang['UserName']='Harus unik dalam sistem. Panjang minimal: 6 karakter'; +$lang['UserPassword']='Biarkan kosong untuk mempertahankan password yang sekarang'; $lang['ZeroBased']='Nomor berbasis nol'; ?> \ No newline at end of file diff --git a/src/Common/Languages/id/IOC_Codes.php b/src/Common/Languages/id/IOC_Codes.php index b922b833..f855ed9a 100644 --- a/src/Common/Languages/id/IOC_Codes.php +++ b/src/Common/Languages/id/IOC_Codes.php @@ -12,8 +12,8 @@ $lang['ASA']='Samoa Amerika'; $lang['AUS']='Australia'; $lang['AUT']='Austria'; -$lang['Award-Anthem']='Hadirin sekalian, dimohon berdiri untuk Lagu Kebangsaan'; -$lang['Award-Anthem-TPE']='Hadirin sekalian, dimohon berdiri untuk Lagu Kebangsaan'; +$lang['Award-Anthem']='Hadirin sekalian, untuk yang bisa, dimohon berdiri untuk Lagu Kebangsaan'; +$lang['Award-Anthem-TPE']='Hadirin sekalian, untuk yang bisa, dimohon berdiri untuk Lagu Kebangsaan'; $lang['Award-Applause']='Hadirin sekalian, dimohon untuk memberikan tepuk tangan kepada Atlet kita'; $lang['Award-Intro']='Hadirin sekalian Upacara Kemenangan untuk {$a}'; $lang['Award-MedalGiver']='Medali akan dipersembahkan oleh $a'; @@ -48,7 +48,7 @@ $lang['CGO']='Republik Kongo'; $lang['CHA']='Chad'; $lang['CHI']='Chili'; -$lang['CHN']='China'; +$lang['CHN']='Republik Rakyat China'; $lang['CIV']='Pantai Gading'; $lang['CMR']='Kamerun'; $lang['COD']='Republik Demokratis Kongo'; @@ -59,6 +59,7 @@ $lang['CRC']='Kosta Rika'; $lang['CRO']='Kroatia'; $lang['CUB']='Kuba'; +$lang['CUW']='Curacao'; $lang['CYP']='Syprus'; $lang['CZE']='Republik Ceko'; $lang['DEN']='Denmark'; @@ -74,7 +75,10 @@ $lang['ETH']='Ethiopia'; $lang['FIJ']='Fiji'; $lang['FIN']='Finlandia'; +$lang['FLK']='Kepulauan Falkland'; +$lang['FPO']='Tahiti'; $lang['FRA']='Francis'; +$lang['FRO']='Kepulauan Faroe'; $lang['FSM']='Mikronesia'; $lang['GAB']='Gabon'; $lang['GAM']='Gambia'; @@ -84,6 +88,7 @@ $lang['GEQ']='Guinea Ekuator'; $lang['GER']='Jerman'; $lang['GHA']='Ghana'; +$lang['GLP']='Guadalupe'; $lang['GRE']='Yunani'; $lang['GRN']='Grenada'; $lang['GUA']='Guatemala'; @@ -91,7 +96,7 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; +$lang['HKG']='Hong Kong, China'; $lang['HON']='Honduras'; $lang['HUN']='Hungaria'; $lang['INA']='Indonesia'; @@ -112,11 +117,13 @@ $lang['KGZ']='Kyrgyzstan'; $lang['KIR']='Kiribati'; $lang['KOR']='Republik Korea'; +$lang['KOS']='Kosovo'; $lang['KSA']='Saudi Arabia'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; +$lang['LAO']='Republik Rakyat Laos'; $lang['LAT']='Latvia'; $lang['LBA']='Libya'; +$lang['LBN']='Libanon'; $lang['LBR']='Liberia'; $lang['LCA']='Saint Lucia'; $lang['LES']='Lesotho'; @@ -124,6 +131,7 @@ $lang['LIE']='Liechtenstein'; $lang['LTU']='Lithuania'; $lang['LUX']='Luxembourg'; +$lang['MAC']='Macau, China'; $lang['MAD']='Madagaskar'; $lang['MAR']='Maroko'; $lang['MAS']='Malaysia'; @@ -145,13 +153,18 @@ $lang['MOZ']='Mozambik'; $lang['MRI']='Mauritus'; $lang['MTN']='Mauritania'; +$lang['MTQ']='Martinik'; $lang['MYA']='Myanmar'; $lang['NAM']='Namibia'; $lang['NCA']='Nicaragua'; +$lang['NCL']='Kaledonia Baru'; $lang['NED']='Belanda'; $lang['NEP']='Nepal'; +$lang['NFK']='Pulau Norfolk'; $lang['NGR']='Nigeria'; $lang['NIG']='Niger'; +$lang['NIU']='Niue'; +$lang['NMI']='Kepulauan Mariana Utara'; $lang['NOR']='Norwegia'; $lang['NRU']='Nauru'; $lang['NZL']='Selandia Baru'; @@ -166,7 +179,7 @@ $lang['PNG']='Papua Nugini'; $lang['POL']='Polandia'; $lang['POR']='Portugis'; -$lang['PRK']='Korea Utara'; +$lang['PRK']='Republik Rakyat Korea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Romania'; @@ -193,7 +206,7 @@ $lang['SVK']='Slowakia'; $lang['SWE']='Swedia'; $lang['SWZ']='eSwatini'; -$lang['SYR']='Siria'; +$lang['SYR']='Republik Arab Siria'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Thailand'; @@ -203,6 +216,7 @@ $lang['TOG']='Togo'; $lang['TPE']='Taiwan'; $lang['TRI']='Trinidad dan Tobago'; +$lang['TTO']='Trinidad and Tobago'; $lang['TUN']='Tunisia'; $lang['TUR']='Turki'; $lang['TUV']='Tuvalu'; diff --git a/src/Common/Languages/id/ISK-App.php b/src/Common/Languages/id/ISK-App.php index 1156b0d8..b27bd9b8 100644 --- a/src/Common/Languages/id/ISK-App.php +++ b/src/Common/Languages/id/ISK-App.php @@ -72,7 +72,7 @@ $lang['HelpStartHead']='Mulai'; $lang['HelpStartText']='Ini memungkinkan Anda untuk memulai konfigurasi aplikasi. Anda dapat memilih untuk memindai kode QR yang dihasilkan oleh Ianseo untuk mengonfigurasi pesaing Anda dengan mudah di aplikasi. Ini akan secara otomatis memilih jenis kompetisi yang tepat, parameter koneksi server, serta parameter lanjutan yang dikonfigurasi di Ianseo. Dimungkinkan juga untuk mengonfigurasi perangkat secara manual jika diinginkan.'; $lang['MainDistance']='Jarak / Sesi'; -$lang['MainEnd']='Seri / Rambahan'; +$lang['MainEnd']='Seri'; $lang['MainInvalidKey']='Kunci Lisensi tidak valid'; $lang['MainNotInUse']='Perangkat sedang tidak digunakan'; $lang['MainSignatureMessage']='Penilaian selesai. Apakah Anda ingin menandatangani kartu skor Anda dan menyelesaikan babak ini?'; diff --git a/src/Common/Languages/id/ISK.php b/src/Common/Languages/id/ISK.php index fb952512..32477be8 100644 --- a/src/Common/Languages/id/ISK.php +++ b/src/Common/Languages/id/ISK.php @@ -15,9 +15,9 @@ $lang['8_Phase']='1/8'; $lang['About']='Tentang'; $lang['AfterEachArrow']='Setelah Setiap Panah (default)'; -$lang['AfterEachEnd']='Setelah Setiap Rambahan'; +$lang['AfterEachEnd']='Setelah Setiap Seri'; $lang['AfterEachImport']='Setelah Setiap Impor (default)'; -$lang['AlertNoScore']='Satu atau lebih pemanah tidak memiliki skor rambahan. Baris ini disorot dengan warna merah. Klik pada baris untuk memperbaiki skor atau lanjutkan jika ini benar.'; +$lang['AlertNoScore']='Satu atau lebih pemanah tidak memiliki skor seri. Baris ini disorot dengan warna merah. Klik pada baris untuk memperbaiki skor atau lanjutkan jika ini benar.'; $lang['AlertNoScoreTitle']='Skor hilang'; $lang['All']='Semua'; $lang['ApiPath']='Path IANSEO API'; @@ -46,7 +46,7 @@ $lang['CantGetComp']='Tidak dapat mengambil informasi kompetisi. Harap periksa kode kompetisi Anda dan coba lagi. Error: __TEXT__'; $lang['CantGetDist']='Tidak dapat mengambil informasi jarak. Silakan coba lagi.'; $lang['CantGetDist2']='Tidak dapat mengambil informasi jarak. Silakan coba lagi. Error __TEXT__'; -$lang['CantGetEndResults']='Tidak dapat mengambil skor untuk rambahan. Silakan coba lagi. Error __TEXT__'; +$lang['CantGetEndResults']='Tidak dapat mengambil skor untuk seri. Silakan coba lagi. Error __TEXT__'; $lang['CantGetEndSummary']='Tidak dapat mengambil hasil dari server. Silakan coba lagi. Error __TEXT__'; $lang['CantGetEvents']='Tidak dapat mengambil informasi event. Silakan coba lagi. Error __TEXT__'; $lang['CantGetMatches']='Tidak dapat mengambil informasi pertandingan. Silakan coba lagi. Error __TEXT__'; @@ -61,7 +61,7 @@ $lang['ChooseValue']='Pilih nilai'; $lang['ClearAll']='Hapus semua'; $lang['ClearAllDesc']='Hapus Semua - menghapus semua skor panah yang dimasukkan.'; -$lang['ClearingCache']='Menghapus cache rambahan'; +$lang['ClearingCache']='Menghapus cache seri'; $lang['ClearLast']='Hapus Terakhir'; $lang['ClearLastDesc']='Hapus Terakhir - menghapus skor panah yang terakhir dimasukkan.'; $lang['Close']='Tutup Menu'; @@ -87,16 +87,16 @@ $lang['DistTotal']='Dist
    Total'; $lang['EditScores']='Edit Skor'; $lang['Elimination']='Eliminasi'; -$lang['EmptyEndAlert']='Rambahan sebelumnya belum dinilai. Apakah anda yakin ingin menilai Panah pada rambahan ini?'; +$lang['EmptyEndAlert']='Seri sebelumnya belum dinilai. Apakah anda yakin ingin menilai Panah pada seri ini?'; $lang['EmptyResponse']='Respons server kosong'; -$lang['End']='Rambahan'; -$lang['EndLocked']='Rambahan terkunci dan tidak dapat diubah.'; -$lang['EndRequest']='Permintaan Rambahan Manual'; -$lang['EndSummary']='Rangkuman Rambahan'; -$lang['EndTotal']='Rambahan
    Total'; +$lang['End']='Seri'; +$lang['EndLocked']='Seri terkunci dan tidak dapat diubah.'; +$lang['EndRequest']='Permintaan Seri Manual'; +$lang['EndSummary']='Rangkuman Seri'; +$lang['EndTotal']='Seri
    Total'; $lang['EnterCompCode']='Harap memasukkan kode kompetisi dan coba lagi'; $lang['EnterServerUrl']='Harap masukkan URL server dan coba lagi'; -$lang['EntryEnd']='Pilih rambahan yang anda inginkan'; +$lang['EntryEnd']='Pilih seri yang anda inginkan'; $lang['EntryTarget']='Masukan nomor target yang benar'; $lang['ErrorClearArrows']='Tidak dapat menghapus semua nilai panah. Silakan coba lagi. Error __TEXT__'; $lang['ErrorGetAthlete']='Tidak dapat mengambil informasi atlet. Error __TEXT__'; @@ -112,7 +112,7 @@ $lang['Face']='Wajah'; $lang['FieldControl']='Kontrol Lapangan'; $lang['FirstTarget']='Target Pertama'; -$lang['GestureHelp']='Anda dapat menggeser antara pemanah dan/atau rambahan menggunakan gestur sebagaimana dijelaskan di bawah.'; +$lang['GestureHelp']='Anda dapat menggeser antara pemanah dan/atau seri menggunakan gestur sebagaimana dijelaskan di bawah.'; $lang['Gestures']='Gestur'; $lang['GoSetupAlert']='Apakah anda yakin bahwa anda akan kembali ke layar Setup'; $lang['Group']='Grup #'; @@ -126,8 +126,8 @@ $lang['ImportType']='Nilai Panah di-impor otomatis'; $lang['IpAddr']='Alamat IP'; $lang['ISK-TruncateTableAll']='Tabel Terpotong (lengkap)'; -$lang['LastEndDist']='Rambahan terakhir untuk jarak ini telah lengkap. Untuk melanjutkan ke jarak selanjutnya tekan OK, atau tekan Cancel untuk tetap di jarak ini.'; -$lang['LastEndSession']='Rambahan terakhir untuk sesi ini telah lengkap. Tidak ada lagi rambahan untuk ditembakkan. Anda sekarang dapat memeriksa Kartu Skor atau kembali ke Setup.'; +$lang['LastEndDist']='Seri terakhir untuk jarak ini telah lengkap. Untuk melanjutkan ke jarak selanjutnya tekan OK, atau tekan Cancel untuk tetap di jarak ini.'; +$lang['LastEndSession']='Seri terakhir untuk sesi ini telah lengkap. Tidak ada lagi seri untuk ditembakkan. Anda sekarang dapat memeriksa Kartu Skor atau kembali ke Setup.'; $lang['LinkSpeed']='Kecepatan Tautan'; $lang['LockAll']='Kunci Semua Sesi'; $lang['LRSwipeLabel']='Sensitifitas Sapuan Kiri/Kanan'; @@ -167,7 +167,7 @@ $lang['PrevDistAlert']='Apakah anda yakin ingin kembali ke jarak sebelumnya?'; $lang['ProBadLicense']='Kunci Pro Tidak Valid'; $lang['ProDiag']='Diagnosa'; -$lang['ProEnd']='Pilih Rambahan'; +$lang['ProEnd']='Pilih Seri'; $lang['ProEntry']='Entri Pro'; $lang['ProOnline']='Paksa'; $lang['ProRecvCode']='Pro Memaksa Online'; diff --git a/src/Common/Languages/id/Ianseo.php b/src/Common/Languages/id/Ianseo.php index 68696b88..65759789 100644 --- a/src/Common/Languages/id/Ianseo.php +++ b/src/Common/Languages/id/Ianseo.php @@ -7,4 +7,9 @@ $lang['Cert-Level4']='Kursus Master'; $lang['Cert-Level5']='Tim Ianseo'; $lang['CertificateManagement']='Managerial Sertifikat'; +$lang['GenerateFile']='Buat File'; +$lang['ResetItems']='Atur Ulang Item.
    Tindakan ini tidak akan meminta konfirmasi dan tidak dapat dibatalkan!
    Menyetel ulang kualifikasi akan mengatur ulang semua acara berikutnya juga!'; +$lang['ResetResult']='Sesi yang diminta telah diatur ulang'; +$lang['ResetSessions']='Konfirmasi pengaturan ulang'; +$lang['ShuffleResults']='Hasil acak'; ?> \ No newline at end of file diff --git a/src/Common/Languages/id/Install.php b/src/Common/Languages/id/Install.php index 29f9dbf3..341241a6 100644 --- a/src/Common/Languages/id/Install.php +++ b/src/Common/Languages/id/Install.php @@ -35,6 +35,7 @@ $lang['Email']='Email'; $lang['Email not in DB']='Email tidak ada dalam DB kami'; $lang['EventWillBeReset']='PERINGATAN: perubahan pada "$a[0]", "$a[1]" atau "$a[2]" akan mengatur ulang semua parameter turnamen ke default yang ditentukan oleh aturan dan jenis turnamen yang dipilih.'; +$lang['ExportAllComps']='Expor semua kompetisi'; $lang['Failed']='GAGAL!'; $lang['Failing install']='Harap meng-update installasi PHP anda sebelum menjalankan IANSEO kembali'; $lang['Field24Normal']='Arena 24 target'; @@ -87,7 +88,7 @@ $lang['Parameter']='Parameter'; $lang['Password']='Password'; $lang['PHP settings']='Setting PHP'; -$lang['PHP too old']='Installasi PHP anda terlalu tua. Nomor versi minimum untuk IANSEO adalah 5.0.'; +$lang['PHP too old']='Installasi PHP anda terlalu tua. Nomor versi PHP minimum untuk IANSEO adalah 8.0.'; $lang['PHP version']='Versi PHP'; $lang['php.ini file']='file php.ini'; $lang['Prepare']='Mempersiapkan data untuk update'; @@ -103,11 +104,11 @@ $lang['Set12+12']='12+12 target - 2 jarak'; $lang['Set16']='16 target - 1 jarak'; $lang['Set16+16']='16+16 target - 2 jarak'; -$lang['Set1Dist1Arrow']='1 Jarak - 1 Panah/Rambahan'; -$lang['Set1Dist2Arrow']='1 Jarak - 2 Panah/Rambahan'; -$lang['Set1Dist2ArrowPayPlay']='1 Jarak - 2 Panah/Rambahan, Bayar dan Main'; +$lang['Set1Dist1Arrow']='1 Jarak - 1 Panah/Seri'; +$lang['Set1Dist2Arrow']='1 Jarak - 2 Panah/Seri'; +$lang['Set1Dist2ArrowPayPlay']='1 Jarak - 2 Panah/Seri, Bayar dan Main'; $lang['Set1Elim']='1 Babak Eliminasi'; -$lang['Set1x30']='1x30 Rambahan'; +$lang['Set1x30']='Seri 1x30'; $lang['Set20']='10 target - 1 jarak'; $lang['Set20+20']='20+20 target - 2 jarak'; $lang['Set24']='24 target - 1 jarak'; @@ -117,7 +118,7 @@ $lang['Set2Dist2Arrow']='2 Jarak - 2 Anak Panah/Seri'; $lang['Set2Dist2ArrowPayPlay']='2 Jarak - 2 Anak Panah/Seri, Bayar dan Main'; $lang['Set2Elim']='2 Babak Eliminasi'; -$lang['Set2x15']='2x15 Rambahan'; +$lang['Set2x15']='Seri 2x15'; $lang['Set32']='32 target - 1 jarak'; $lang['Set3D']='3D - 1 Jarak'; $lang['Set3D+3D']='3D - 2 Jarak'; @@ -139,9 +140,12 @@ $lang['SetCompound70m']='Compound - 70m'; $lang['SetCR']='Kejuaraan Regional (1 Babak Eliminasi)'; $lang['SetDKShortDistances']='Jarak Pendek (B & L)'; +$lang['SetFrBeursault']='Beursault'; +$lang['SetFrBouquet']='Bouquet'; $lang['SetFRChampionshipElite']='Elit Juara'; $lang['SetFRChampionshipJun']='Kejuaraan Pemuda'; $lang['SetFRChampionshipSen']='Kejuaraan Dewasa'; +$lang['SetFRChampJunTeams']='Championnat de France Jeune Equipe'; $lang['SetFRChampsD1DNAP']='Pertandingan Davis-Like Beregu'; $lang['SetFRChampsFederal']='Championnat Fédéral'; $lang['SetFRChampsScratchC']='Event Tunggal Kejuaraan Compound'; @@ -150,8 +154,13 @@ $lang['SetFRChampsVet']='Kejuaraan Master'; $lang['SetFRCoupeFrance']='Piala Perancis'; $lang['SetFRD12023']='Championnat D1 / 2023'; +$lang['SetFRFinalsD2']='Finales France D2'; $lang['SetFRFinDRD2']='Final DR/D2'; +$lang['SetFrSelectif']='Selectif'; +$lang['SetFrSelectifPara']='Selectif + Para'; $lang['SetFRTAE']='Kejuaraan Perancis TAE'; +$lang['SetFRTAE-Para']='Selectif TAE + Para'; +$lang['SetFRTAE-Valides']='Selectif TAE'; $lang['SetIndoor']='Dalam Ruangan'; $lang['SetIPCandWA']='Kategori IPC dan WA'; $lang['SetJ-CClass']='Junior dan Kadet'; @@ -243,7 +252,7 @@ $lang['Value']='Nilai'; $lang['WhatIanseoDoes01']='Sesuai dengan Aturan World Archery: Ianseo selalu mengikuti aturan World Archery. Pengembang tersedia untuk penyesuaian agar sesuai dengan Aturan Khusus Nasional dan Kompetisi juga!'; $lang['WhatIanseoDoes02']='Bantuan dan dukungan: jika Anda membutuhkan bantuan, kirim email ke $a: Anda akan mendapatkan jawaban langsung dari pengembang inti Ianseo!'; -$lang['WhatIanseoDoes03']='Pelatihan dan kursus di lokasi: Ianseo tersedia untuk mengelola kursus lokasi tertentu. Dua tingkat: tanpa dan dengan perangkat elektronik. Yang pertama bertujuan untuk mengetahui semua aspek ianseo mulai dari persiapan dan jadwal kompetisi hingga publikasi online dan distribusi hasil lokal. Yang kedua bertujuan untuk memperoleh semua pengetahuan khusus untuk menjalankan kompetisi "panah demi panah".'; +$lang['WhatIanseoDoes03']='Pelatihan dan kursus di lokasi: Ianseo tersedia untuk mengelola kursus di lokasi tertentu. Dua tingkatan: tanpa dan dengan Aplikasi IANSEO Scorekeeper NG. Yang pertama bertujuan untuk mengetahui semua aspek ianseo mulai dari persiapan dan jadwal kompetisi hingga publikasi online dan distribusi hasil secara lokal. Yang kedua bertujuan untuk memperoleh semua pengetahuan khusus untuk menjalankan kompetisi secara "panah demi panah".'; $lang['WhatIanseoDoes04']='Donasi! Ianseo gratis dan open source... jika Anda suka, tolong bantu kami menjaga perangkat lunak dan server tetap mutakhir: tekan tombol "Donasi" di halaman beranda $a!'; $lang['WhatIanseoDoes05']='Media Sosial: Ianseo juga ada di $a!'; $lang['WhatIanseoDoesTitle']='Apa yang Ianseo dapat lakukan untuk kompetisi anda'; diff --git a/src/Common/Languages/id/ODF.php b/src/Common/Languages/id/ODF.php index c17436dd..4d776bad 100644 --- a/src/Common/Languages/id/ODF.php +++ b/src/Common/Languages/id/ODF.php @@ -53,8 +53,10 @@ $lang['OdfCommonCodeVersion']='Versi Kode Umum'; $lang['OdfCompetition']='Kode Kompetisi ODF'; $lang['OdfEventCode']='Kode Event ODF'; +$lang['OdfGeneralCodeVersion']='Versi Kamus Data Umum'; $lang['OdfReceiverOn']='Penerima Aktif'; $lang['OdfReceiverSetup']='Setup Penerima ODF'; +$lang['OdfSportCodeVersion']='Versi Kamus Data Olahraga'; $lang['OdfUploadFileText']='Harap memilih sebuah berkas XML untuk diunggah...'; $lang['Production']='Produksi'; $lang['Receiver']='Penerima'; @@ -87,6 +89,7 @@ $lang['TMMeeting']='Rapat Manager Tim'; $lang['Transmitter']='Pemancar'; $lang['TypCODE']='Suffix Kode Dokumen'; +$lang['TypDISCIPLINE']='Disiplin (ref Sports CC@Discipline)'; $lang['TypEVENT']='Deskripsi Event'; $lang['TypNAME']='Deskripsi'; $lang['TypPHASE']='Deskripsi Fase'; diff --git a/src/Common/Languages/id/RoundRobin.php b/src/Common/Languages/id/RoundRobin.php index d149a25b..fdd063e0 100644 --- a/src/Common/Languages/id/RoundRobin.php +++ b/src/Common/Languages/id/RoundRobin.php @@ -39,7 +39,7 @@ $lang['Setup']='Setup'; $lang['SetupChangeWarning']='Perubahan dalam pengaturan level ini akan mengatur ulang level dan tugas grup berikut. Silakan lanjutkan hanya jika Anda tahu apa yang Anda lakukan!'; $lang['SetupCopyWarning']='Menyalin penyiapan dari acara lain akan sepenuhnya menimpa penyiapan dan penetapan untuk semua Level dan grup. Silakan lanjutkan hanya jika Anda tahu apa yang Anda lakukan!'; -$lang['ShowEndDetails']='Detail Rambahan'; +$lang['ShowEndDetails']='Detail Seri'; $lang['Source']='Tingkat Sumber+Grup'; $lang['SourceRank']='Peringkat Sumber'; $lang['TargetAssignment']='Penentuan Target'; diff --git a/src/Common/Languages/id/Tournament.php b/src/Common/Languages/id/Tournament.php index 0e6cb254..06347951 100644 --- a/src/Common/Languages/id/Tournament.php +++ b/src/Common/Languages/id/Tournament.php @@ -27,7 +27,7 @@ $lang['AclISKServer']='Managemen ISK'; $lang['AclModules']='Modul'; $lang['ACLNoAccess']='Tanpa Akses'; -$lang['AclNotes']='Catatan tentang Keamanan Jaringan
    • pembatasan bersifat "berbasis kompetisi" dan bukan "berbasis server"
    • localhost (127.0.0.1 atau ::1) tidak dapat dibatasi< /li>
    • Kebijakan dapat dinonaktifkan dengan panggilan dari server itu sendiri {$a}
    • Jika kebijakan diaktifkan, perilaku default untuk klien yang tidak terdaftar adalah " Tidak Ada Akses"
    • Dimungkinkan untuk menambahkan * sebagai grup terakhir dari Alamat IP (192.168.0.* atau 172.16.*) untuk menambahkan grup default, terbatas pada kebijakan hanya baca
    • < li>IP dalam kisaran 0.0.0.[1-254] tidak akan dianggap sebagai IP asli dan sistem akan menggunakan konten deskripsi sebagai RegExp untuk mencocokkan alamat IP. RegExps akan dievaluasi sesuai urutan yang ditampilkan dan mengizinkan kebijakan R/W
    '; +$lang['AclNotes']='Catatan tentang Keamanan Jaringan
    • Pembatasan ini "berbasis persaingan" dan bukan "berbasis server"
    • localhost (127.0.0.1 atau ::1) tidak dapat dibatasi
    • Kebijakan dapat dinonaktifkan dengan memanggil dari server itu sendiri {$a}
    • Ketika kebijakan diaktifkan, perilaku default untuk klien yang tidak tercantum adalah "Tidak Ada Akses"
    • Dimungkinkan untuk menambahkan * sebagai grup terakhir dari Alamat IP (192.168.0.* atau 172.16.*) untuk menambahkan grup default
    • Dimungkinkan untuk menggunakan RegExp untuk mencocokkan alamat IP. RegExp akan dievaluasi dalam urutan yang ditampilkan dan memungkinkan kebijakan R/W
    '; $lang['AclOdf']='Managemen ODF'; $lang['AclOutput']='Output'; $lang['AclParticipants']='Partisipan'; @@ -52,6 +52,7 @@ $lang['AllDistances']='Semua'; $lang['AllEntries']='Semua Isian'; $lang['AllEvents']='Semua Event'; +$lang['AllowCompetitionACL']='Izinkan Kebijakan Akses Jaringan Kompetisi'; $lang['AllRound']='Semua Babak'; $lang['AllSessions']='Semua Sesi'; $lang['AllsF']='Semua'; @@ -75,11 +76,11 @@ $lang['Area_6']='Area VIP'; $lang['Area_7']='Area $a'; $lang['Arr4Set']='Anak Panah per Set'; -$lang['ArrowPhaseLegend1']='Detail Anak Panah/Rambahan untuk Babak Eliminasi'; -$lang['ArrowPhaseLegend2']='Detail Panah/Rambahan untuk Babak Final'; +$lang['ArrowPhaseLegend1']='Detail Anak Panah/Seri untuk Babak Eliminasi'; +$lang['ArrowPhaseLegend2']='Detail Panah/Seri untuk Babak Final'; $lang['Arrows']='Anak Panah'; -$lang['Arrows4End']='Panah/Rambahan: $a'; -$lang['ArrowsPerEnd']='Panah/Rambahan'; +$lang['Arrows4End']='Panah/Seri: $a'; +$lang['ArrowsPerEnd']='Panah/Seri'; $lang['AssignAwarded']='Tugas Diberikan'; $lang['AssignLookupTable']='Set semua Entri ke: {$a}'; $lang['AtDistance']='Peringkat dari jarak berikut:'; @@ -98,6 +99,7 @@ $lang['AuthCodeA2A']='Kode Otorisasi Panah per panah'; $lang['AutoCoinToss']='Penentuan Lempar Koin Otomatis'; $lang['AutoEdits']='Edit Otomatis'; +$lang['AutomatorAccPrint']='Setting Pencetakan Akreditasi'; $lang['AutoMoveNext']='Otomatis Pindah ke Panah berikutnya'; $lang['AutoRefresh']='Segarkan Otomatis'; $lang['AutoTargetAssignment']='Penentuan Target Otomatis - Pengundian'; @@ -118,6 +120,7 @@ $lang['AwardSecondLanguage']='Bahasa Kedua'; $lang['AwardShowPoints']='Tampilkan Poin'; $lang['BackBarCodeCheck']='Kembali ke Pengecekan Barcode'; +$lang['BackFromHome']='Tidak kehilangan'; $lang['BadEntries']='Entri TIDAK diimpor'; $lang['Badge1PerPage']='1 Lencana per halaman'; $lang['Badge2PerPage']='2 Lencana per halaman'; @@ -128,7 +131,7 @@ $lang['BadgeIncludePhoto']='Masukkan Photo di Lencana?'; $lang['BadgeNames']='Nama Lengkap (Tidak dicetak pertama)'; $lang['BadgeNoData']='Tidak ada data untuk dicetak'; -$lang['BadgeOnlyNotPrinted']='HANYA Lencana yang belum dicetak?'; +$lang['BadgeOnlyNotPrinted']='Hanya yang BELUM dicetak'; $lang['BadgeOnlyPrintAccredited']='HANYA Lencana dengan Partisipan yang terakreditasi?'; $lang['BadgeOnlyPrintPhoto']='HANYA Lencana dengan Photo?'; $lang['BadgeOptions']='Opsi'; @@ -158,6 +161,9 @@ $lang['Block_IP']='IP Akses (v4)'; $lang['Block_Manage']='Aturan Akses Network'; $lang['Block_Nick']='Nama Samaran Akses'; +$lang['Block_TemplateIP']='Template IP'; +$lang['Block_TemplateName']='Deskripsi'; +$lang['Block_TemplatePattern']='Pola'; $lang['BoldIsDefault']='Bold adalah default'; $lang['Bonus']='Bonus'; $lang['ByeMovedToPhase']='Atlet berpindah ke Fase berikutnya'; @@ -205,6 +211,7 @@ $lang['CheckXNinesInMatch']='Cek XNine di tie'; $lang['Classes']='Kelas'; $lang['ClearField']='Area Kompetisi Kosong'; +$lang['ClickMovesPosition']='Hanya memperbarui posisi Arrow'; $lang['ClickToMailRequest']='Klik untuk membuka email yang sudah diisikan sebelumnya'; $lang['ClickToRequestCode']='Klik untuk meminta Kode'; $lang['Clone']='Duplikat'; @@ -253,7 +260,7 @@ $lang['Confirm']='Konfirmasi'; $lang['ConfirmByeMsg']='Apakah Anda yakin ingin memberikan bye pada pertandingan ini?'; $lang['ConfirmDescr']='INI AKAN MENGHANCURKAN TUGAS SEBELUMNYA DAN TIDAK DAPAT DIUBAH!'; -$lang['ConfirmEnd']='Konfirmasi Rambahan'; +$lang['ConfirmEnd']='Konfirmasi Seri'; $lang['ConfirmIrmMsg']='Apakah Anda yakin ingin mengubah status IRM?'; $lang['ConfirmMatch']='Konfirmasi Pertandingan'; $lang['ConfirmResetAll']='Konfirmasikan opsi Reset ke semua entri yang dipilih?'; @@ -273,6 +280,7 @@ $lang['CtrlCodeShort']='Kode Ctrl'; $lang['Currency']='€'; $lang['CurrentCompCode']='Kode Kompetisi Berjalan: $a'; +$lang['CustomAclDetails']='Detail ACL custom'; $lang['D1AllInOne']='Semua Pertandingan dalam Kompetisi Tunggal'; $lang['DailySchedule']='Jadwal Harian'; $lang['DATABASE NOT REACHABLE']='DATABASE ONLINE TIDAK TERJANGKAU'; @@ -287,6 +295,8 @@ $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='VI Default'; $lang['Delayed']='Tertunda (-1 untuk mengatur ulang)'; +$lang['DeleteAclRule']='Hapus peraturan ACL'; +$lang['DeleteAclUser']='Hapus pengguna ACL'; $lang['DeleteAwarded']='Hapus Juara'; $lang['DeleteChannel']='Hapus Saluran. Ini akan menghapus semua pemisahan dari saluran dan saluran itu sendiri.'; $lang['DeletePreviousArchers']='Hapus entri sekarang yang tidak ada di daftar'; @@ -344,7 +354,7 @@ $lang['EditContact']='Edit Kontak'; $lang['ElabTeamMode']='Mode Elaborasi beregu'; $lang['ElimArrows']='Panah Eliminasi'; -$lang['ElimEnds']='Rambahan Eliminasi'; +$lang['ElimEnds']='Seri Eliminasi'; $lang['EliminationShort']='Elim.'; $lang['EliminationType']='Tipe Eliminasi'; $lang['ElimSO']='Panah SO Eliminasi'; @@ -353,12 +363,12 @@ $lang['EmailScorecardShort']='Rangkuman Kartu Skor'; $lang['EmailsToSend']='Email untuk dikirim'; $lang['EmailSuccessfull']='Email telah berhasil terkirim ke $a'; -$lang['EnableAccess']='Aktifkan/Nonaktifkan Peraturan'; +$lang['EnableAccess']='Aktifkan/Nonaktifkan Kebijakan Akses'; $lang['EnableAddOns']='Aktif/Non Aktif Add-On'; -$lang['Ends']='Rambahan'; -$lang['EndsOffset']='Tambahan Rambahan'; -$lang['EndsToShoot']='Rambahan untuk Menembak'; -$lang['EndTotal']='Total Rambahan'; +$lang['Ends']='Seri'; +$lang['EndsOffset']='Tambahan Seri'; +$lang['EndsToShoot']='Seri untuk Menembak'; +$lang['EndTotal']='Total Seri'; $lang['EndUpdate']='Semua Update selesai'; $lang['Entries']='Entri'; $lang['EntriesByCountry']='Entri berdasarkan Negara'; @@ -369,8 +379,8 @@ $lang['EventAccess']='Partisipasi Atlet dalam Event Ind/Regu'; $lang['EventCodeDeclared']='Kode Event On-Line'; $lang['EventCreationCancellation']='Buat dan Hapus Event berdasarkan Peserta'; -$lang['EventDetails']='$a[0] Rambahan dari $a[1] Panah + $a[2] SO'; -$lang['EventDetailsShort']='$a[0] rambahan dari $a[1] panah'; +$lang['EventDetails']='$a[0] Seri dari $a[1] Panah + $a[2] SO'; +$lang['EventDetailsShort']='$a[0] seri dari $a[1] panah'; $lang['EventHasMedal']='Adalah Event dengan Medali'; $lang['EventNumQualified']='Nomor Atlet/Tim untuk dipilih'; $lang['EventParentCode']='Kode Induk Event'; @@ -380,6 +390,8 @@ $lang['Events']='Event'; $lang['EventStartPosition']='Peringkat Atlet/Tim Pertama untuk dipilih'; $lang['EventStillTie']='PERHATIAN:\Acara berikut masih harus diperiksa:\n\n$a'; +$lang['EventsToAdd']='Event yang akan ditambahkan:'; +$lang['EventsToDelete']='Event yang akan dihapus:'; $lang['EventWillNotRecreated']='(Jika Anda mengubah jenis kompetisi, kelas/divisi dan semua acara default tidak akan dibuat ulang)'; $lang['EventWinnerFinalRank']='Peringkat Akhir Pemenang Event'; $lang['EvNameTranslated']='Acara yang Diterjemahkan'; @@ -390,6 +402,7 @@ $lang['ExportInstructions']='Untuk mengekspor data dan mengirimkannya secara otomatis, Anda harus melengkapi formulir berikut.'; $lang['ExportNotes']='Anotasi'; $lang['ExportRefEMail']='E-mail Referensi'; +$lang['ExportSocketData']='Ekspor Data Soket'; $lang['ExportWinners']='Expor Pemenang'; $lang['ExtraAddOns']='Tambahan Add-On'; $lang['FamilyName']='Nama Keluarga'; @@ -421,7 +434,7 @@ $lang['FinArrows']='Panah Final'; $lang['FindArcher']='Cari Atlet'; $lang['FindYourRank']='Temukan peringkat anda!'; -$lang['FinEnds']='Rambahan Final'; +$lang['FinEnds']='Seri Final'; $lang['FinSO']='Panah SO Final'; $lang['FirstPhase']='Fase Pertama'; $lang['FirstPhaseInOut']='Qualified No. (dan tidak)'; @@ -442,7 +455,7 @@ $lang['FlightsDescription']='Deskripsi'; $lang['FlightsDistTotal']='Total $a'; $lang['FlightsDrop']='Turunkan Kloter'; -$lang['FlightsEnd']='Rambahan $a'; +$lang['FlightsEnd']='Seri $a'; $lang['FlightsExecute']='Jalankan pemisahan Kloter'; $lang['FlightsManagement']='Managemen Kloter'; $lang['FlightsMerge1']='Gabungkan 1'; @@ -459,6 +472,13 @@ $lang['FlightsTotals']='Total'; $lang['FlightsUpdateSetup']='Setup Update'; $lang['FollowHHT']='Tampilkan jadwal yang diaktifkan HHT'; +$lang['FontFamily']='Keluarga Font CSS'; +$lang['FontFile']='File Huruf'; +$lang['FontName']='Nama Huruf'; +$lang['FontSample']='Contoh Huruf'; +$lang['FontStyle']='Gaya Huruf CSS'; +$lang['FontWarning']='Hanya mendukung huruf-huruf TTF'; +$lang['FontWeight']='Tebal Huruf CSS'; $lang['FOP-ODS']='Arena Pertandingan (ODS)'; $lang['ForceAccreditation']='Paksa Akreditasi'; $lang['ForceOldPhotos']='Termasuk Gambar Lama'; @@ -562,6 +582,7 @@ $lang['LocRuleDefaultNo']='Default'; $lang['LocRuleModifiedNo']='Dimodifikasi'; $lang['LocRuleValidNo']='Tidak Dimodifikasi'; +$lang['Login']='Login'; $lang['LogisticResp']='Manager Logistik'; $lang['LogMessage']='Log Pesan'; $lang['LogoB']='Gambar Bawah (rasio lebar penuh adalah 19:1 untuk A4, 20:1 untuk huruf)'; @@ -574,6 +595,7 @@ $lang['LUE-CAN']='Kanada'; $lang['LUE-FITA']='World Archery'; $lang['LUE-FRA']='Francis'; +$lang['LUE-GBR']='Archery GB'; $lang['LUE-ITA']='Italia'; $lang['LUE-ITA_e']='Italia (esordienti)'; $lang['LUE-ITA_i']='Italia (indoor)'; @@ -615,6 +637,7 @@ $lang['ManageByes']='Mengatur bye'; $lang['ManAthStatus']='Managemen Status Atlet'; $lang['ManColors']='Mangatur Warna'; +$lang['MandatoryLoginACL']='Permintaan Paksa Login untuk Alamat IP yang tidak terdaftar'; $lang['ManDistances']='Kelola Jarak'; $lang['ManDivClass']='Mengatur Divisi/Kelas'; $lang['ManMatchArr4Phase']='Mengatur Panah Fase per Set'; @@ -623,7 +646,7 @@ $lang['ManStaffOnField']='Manajemen Ofisial Kompetisi'; $lang['ManSubClasses']='Mengatur SubKelas'; $lang['ManTourDistances']='Managemen Jarak Kompetisi'; -$lang['ManTraining']='Managemen Sesi Pemanasan'; +$lang['ManTraining']='Managemen Sesi Percobaan'; $lang['ManualTargetAssignment']='Penentuan Target Manual'; $lang['Match']='Pertandingan'; $lang['Match4Target']='Pertandingan per Target'; @@ -673,7 +696,7 @@ $lang['MsgLookup2']='Periksa Integritas Data'; $lang['MsgLookup3']='Impor Data'; $lang['MsgLookup4']='Periksa Data Pesaing'; -$lang['MsgLookup5']='Rambahan'; +$lang['MsgLookup5']='Seri'; $lang['MsgNotUniqueKey']='Kunci tidak Unik!
    Tidak dapat melanjutkan'; $lang['MsgSelOneValue']='Harap periksa nilai!'; $lang['MsgSyncFile']='Unduh update dari file'; @@ -683,6 +706,7 @@ $lang['Name']='Nama'; $lang['NameOrder']='Urutan Nama'; $lang['NameOrderHint']='Negara2 ini menukar Nama Lengkap dan Nama Keluarga: CHN - TPE - HKG - KOR - PRK'; +$lang['Nameplates']='Papan Nama'; $lang['NationShort']='Nama Pendek'; $lang['Natl-Nation']='Kebangsaan'; $lang['New']='Baru'; @@ -761,10 +785,14 @@ $lang['OrisScorecards']='Kartu Skor (C73D)'; $lang['OrisScorecardsAverage']='Skor rata-rata anak panah'; $lang['OrisScorecardsTeam']='Kartu Skor (C73E)'; +$lang['OrisStatsIndividual']='Statistik (C85A)'; +$lang['OrisStatsTeam']='Statistik (C85B+C)'; $lang['OrisTeamList']='Daftar Tim Oris'; +$lang['OtherCountriesCoachingToo']='Sertakan Entri dari negara lain dalam pilihan Pelatih'; $lang['OtherTourCategory']='Lainnya'; $lang['OutdoorTourCategory']='Turnamen Outdoor'; $lang['OverwritePreviousArchers']='Timpa Pemanah Sebelumnya'; +$lang['OvrBioAchievements']='Pencapaian Atlet'; $lang['OvrMatchesMessages']='OVR Cocok dengan Sinyal'; $lang['OvrRefresh']='Segarkan halaman (tidak dikirimkan)'; $lang['OvrSendSerial']='Kirim ke OVR (Serial)'; @@ -850,6 +878,8 @@ $lang['PrintNames']='Cetak Nama'; $lang['PrintNormal']='Normal (Latin)'; $lang['PrintScore']='Cetak Skor'; +$lang['PrintScoreInd']='Cetak Scorecard Individu'; +$lang['PrintScoreTeam']='Cetak Scorecard Beregu'; $lang['PrintText']='Teks header'; $lang['PrintTextTitle']='Header untuk Printout Hasil'; $lang['Privacy-1']='Ianseo tidak menyimpan data pribadi kecuali jika izin diberikan oleh pengguna. Perangkat lunak Ianseo dapat digunakan untuk menyimpan data pribadi jika pengontrol memiliki kepentingan yang sah atas data tersebut.'; @@ -947,13 +977,13 @@ $lang['Score']='Skor'; $lang['Score1PageAllDist']='Kartu skor atlet dengan semua jarak pada satu halaman'; $lang['ScoreBarcode']='Cetak Barcode pada Kartu Skor'; -$lang['ScorecardLabelEnd']='Seri / Rambahan'; +$lang['ScorecardLabelEnd']='Seri'; $lang['ScorecardLabelSet']='Set'; $lang['ScorecardsElim']='Kartu Skor Eliminasi'; $lang['ScorecardsInd']='Kartu Skor Pertandingan Individual'; $lang['ScorecardsQual']='Kartu Skor Kualifikasi'; $lang['ScorecardsTeams']='Kartu Skor Pertandingan Beregu'; -$lang['ScoreCollector']='Koleksi Panah per Panah, pilih panah per rambahan'; +$lang['ScoreCollector']='Koleksi Panah per Panah, pilih panah per seri'; $lang['ScoreComplete']='Skor Lengkap (Penarikan & Data'; $lang['ScoreCompleteTotals']='Skor lengkap (Penarikan & Data) + Kolom untuk total kompetisi berjalan'; $lang['ScoreCutoff']='Batas Skor'; @@ -983,6 +1013,7 @@ $lang['SelectedClub-1']='Tampilkan Nama Negara ke-2'; $lang['SelectedClub-2']='Tampilkan Nama Negara ke-3'; $lang['SelectFirstN']='Hasil $a Pertama'; +$lang['SelectMulti']='Pilih setidaknya satu item. Untuk memilih lebih, tekan CTRL+Click'; $lang['SelectSession']='Pilih Sesi'; $lang['Send2Ianseo']='Kirim data ke www.ianseo.net'; $lang['SendAll']='Kirim ke semua'; @@ -1039,7 +1070,7 @@ $lang['ShowPicture']='Tampilkan Foto'; $lang['showRecords']='Tamplkan Rekor'; $lang['ShowSecondary']='Tampilkan Kompetisi Sekunder'; -$lang['ShowSetEnds']='Termasuk Set Rambahan'; +$lang['ShowSetEnds']='Termasuk Set Seri'; $lang['ShowSubClass']='Tampilkan Sub Kelas'; $lang['ShowTourCode']='Tampilkan Kode Tur'; $lang['Sign/guide-board']='Tanda'; @@ -1071,16 +1102,16 @@ $lang['StartlistAlpha']='Daftar Partisipan dalam urutan Alphabeth'; $lang['StartListbyTarget']='Mulai Daftar berdasarkan Target'; $lang['StartlistCategory']='Grup Daftar Peserta berdasarkan Kategori'; -$lang['StartlistCountry']='Grup Daftar Peserta berdasarkan Negara'; +$lang['StartlistCountry']='Daftar Peserta dikelompokkan berdasarkan Negara'; $lang['StartlistCountryOnlyAthletes']='Grup Daftar Atlet berdasarkan Negara'; $lang['StartlistEachCategory']='Grup Daftar Peserta berdasarkan Kategori (satu per halaman)'; -$lang['StartlistEachCountry']='Grup Daftar Peserta berdasarkan Negara (satu per halaman'; -$lang['StartlistEachCountryExtra']='Grup Daftar Peserta berdasarkan Negara (satu per halaman + item yang hilang)'; +$lang['StartlistEachCountry']='Daftar Peserta dikelompokkan berdasarkan Negara (satu per halaman'; +$lang['StartlistEachCountryExtra']='Daftar Peserta dikelompokkan berdasarkan Negara (satu per halaman + item yang hilang)'; $lang['StartlistSession']='Daftar Peserta diurutkan berdasarkan Target'; $lang['StartlistSessionEmptyPlaces']='- hanya target KOSONG -'; $lang['StartlistSessionNoEmpty']='- tanpa target kosong -'; $lang['StartlistSessionPicture']='Daftar Peserta diurutkan berdasarkan Target dengan Gambar'; -$lang['StartlistTeam']='Daftar Partisipan diurutkan berdasarkan Event'; +$lang['StartlistTeam']='Daftar Peserta diurutkan berdasarkan Event'; $lang['StatClasses']='Statistik (Kelas dan Divisi)'; $lang['StatCountries']='Statistik (Klub)'; $lang['StatEvents']='Statistik (Penghargaan dan Event)'; @@ -1168,7 +1199,7 @@ $lang['TeamCreationMode_2']='Selalu Regu ke-2'; $lang['TeamCreationMode_3']='Selalu Regu ke-3'; $lang['TeamFin']='Babak Eliminasi & Final Beregu'; -$lang['TeamFinEvent']='Final Beregu'; +$lang['TeamFinEvent']='Event Beregu'; $lang['TeamLoaded']='Pertandingan Beregu Dimuat untuk jadwal {$a}'; $lang['TeamManagerSignature']='Tanda Tangan Manajer Regu/Tim'; $lang['TeamPlace']='Tanda-tanda tempat Regu'; @@ -1186,9 +1217,9 @@ $lang['Title']='Judul'; $lang['TitleColor']='Warna Judul dibalik'; $lang['TitleTourMenu']='Pilih Kompetisi'; -$lang['To']='Kepada'; +$lang['To']='Sampai'; $lang['ToFollow']='Sembunyikan waktu'; -$lang['TooManyElimArrows']='Hasil rambahan*Panah yang dihasilkan melebihi panah yang dapat disimpan di DB!'; +$lang['TooManyElimArrows']='Hasil Seri*Panah yang dihasilkan melebihi panah yang dapat disimpan di DB!'; $lang['TooManyElimSO']='Terdapat terlalu banyak panah Tie break'; $lang['Total1']='Total (Pertengahan pertama)'; $lang['Total2']='Total (Pertengahan kedua)'; @@ -1293,6 +1324,7 @@ $lang['TVCss3RankNone']='Peringkat Tidak Ada'; $lang['TVCss3RankOld']='Peringkat lama'; $lang['TVCss3RankUp']='Peringkat Naik'; +$lang['TVCss3Schedule']='Jadwal'; $lang['TVCss3Score']='Skor'; $lang['TVCss3Session']='Sesi'; $lang['TVCss3SpecificSettings']='Pengaturan khusus halaman ini. Gunakan syntax CSS3 untuk elemen'; @@ -1381,13 +1413,14 @@ $lang['TVViewDetailsDescr']='Mengalihkan tampilan 10s dan 9s/Xs'; $lang['TvViewDIST']='Lihat Kolom Setiap Jarak'; $lang['TvViewDIVCLAS']='Lihat Kategori'; -$lang['TvViewENDS']='Lihat Detail Rambahan'; +$lang['TvViewENDS']='Lihat Detail Seri'; $lang['TvViewFIXED']='Posisi Tetap'; $lang['TvViewFLAG']='Lihat Bendera'; $lang['TVViewNationName']='Lihat nama lengkap Negara'; $lang['TVViewNationNameDescr']='Mengalihkan tampilan Negara/Klub atlet'; $lang['TVViewPartials']='Lihat Skor Jarak'; $lang['TVViewPartialsDescr']='Mengalihkan tampilan skor semua jarak'; +$lang['TvViewSCHED']='Tampilkan Jadwal'; $lang['TvViewTEAM']='Lihat Kolom Regu'; $lang['TvViewTIT2ROWS']='Judul pada 2 baris'; $lang['TvViewTOT']='Lihat Total Keseluruhan'; @@ -1415,6 +1448,7 @@ $lang['Type_FITA']='FITA'; $lang['Type_FITA 72']='FITA 72'; $lang['Type_FITA+50']='FITA + Ronde 50m'; +$lang['Type_FR_Beursault']='Beursault'; $lang['Type_FR_Kyudo']='Comité National de Kyudo (FRA)'; $lang['Type_GiochiGioventu']='Giochi della Gioventù'; $lang['Type_GiochiGioventuW']='Giochi della Gioventù Invernali'; @@ -1459,7 +1493,9 @@ $lang['UserDetails']='Detail Pengguna'; $lang['UserEnabled']='Diaktifkan'; $lang['UserName']='NamaPengguna'; -$lang['UserPassword']='Password'; +$lang['UserPassword']='Password Baru'; +$lang['UserPasswordOld']='Password Lama'; +$lang['UserPasswordRetype']='Ketik Ulang Password Baru'; $lang['UseSubClasses']='Terapkan ke subkelas spesifik'; $lang['ValidClass']='Kelas Valid'; $lang['ValidDivisions']='Divisi yang Diizinkan (kosongkan untuk semua)'; @@ -1481,10 +1517,11 @@ $lang['WaCategory']='Kategori WA'; $lang['WaId']='ID Lisensi Pemanah'; $lang['WaIdShort']='ID Pemanah'; -$lang['WarmUp']='Pemanasan'; -$lang['WarmUpMins']='Pemanasan (min)'; -$lang['WarmupTargets']='Target Pemanasan'; +$lang['WarmUp']='Percobaan'; +$lang['WarmUpMins']='Percobaan (min)'; +$lang['WarmupTargets']='Target Percobaan'; $lang['Warning']='Peringatan'; +$lang['Went2Home']='kehilangan'; $lang['WheelChair']='Kursi Roda'; $lang['WheelchairShort']='W'; $lang['Wikipedia']='Wikipedia'; diff --git a/src/Common/Languages/is/IOC_Codes.php b/src/Common/Languages/is/IOC_Codes.php index 107b448f..615dc2fc 100644 --- a/src/Common/Languages/is/IOC_Codes.php +++ b/src/Common/Languages/is/IOC_Codes.php @@ -6,8 +6,6 @@ $lang['ARM']='Armenía'; $lang['AUS']='Ástralía'; $lang['AUT']='Austurríki'; -$lang['Award-Anthem']='Vinsamlegast standið fyrir þjóðsöng'; -$lang['Award-Anthem-TPE']='Vinsamlegast standið fyrir þjóðsöng'; $lang['Award-Applause']='Vinsamlegast gefið keppendum okkar gott klapp'; $lang['Award-Intro']='Verðlauna afhending fyrir {$a}'; $lang['Award-MedalGiver']='Verðlaun verða afhent af $a'; @@ -22,13 +20,11 @@ $lang['BRA']='Brasílía'; $lang['BUL']='Búlgaría'; $lang['CAN']='Kanada'; -$lang['CHN']='Kína'; $lang['COL']='Kólumbía'; $lang['CRC']='Kosta Ríka'; $lang['CRO']='Króatía'; $lang['CUB']='Kúba'; $lang['CYP']='Kýpur'; -$lang['CZE']='Tékkland'; $lang['DEN']='Danmörk'; $lang['EGY']='Egyptaland'; $lang['ESP']='Spánn'; @@ -43,7 +39,6 @@ $lang['HUN']='Ungverjaland'; $lang['INA']='Indónesía'; $lang['IND']='Indland'; -$lang['IRI']='Íran'; $lang['IRL']='Írland'; $lang['IRQ']='Írak'; $lang['ISL']='Ísland'; @@ -64,7 +59,6 @@ $lang['PLE']='Palestína'; $lang['POL']='Póland'; $lang['POR']='Portúgal'; -$lang['PRK']='Norður Kórea'; $lang['ROU']='Rúmenía'; $lang['RSA']='Suður Afríka'; $lang['RUS']='Rússland'; @@ -75,9 +69,7 @@ $lang['SRB']='Serbía'; $lang['SUD']='Súdan'; $lang['SWE']='Svíþjóð'; -$lang['SYR']='Sýrland'; $lang['THA']='Tæland'; -$lang['TLS']='Austur Tímor'; $lang['UAE']='Sameinuðu arabísku furstadæmin'; $lang['UGA']='Úganda'; $lang['UKR']='Úkraína'; diff --git a/src/Common/Languages/is/Tournament.php b/src/Common/Languages/is/Tournament.php index 9c1fe6f5..5295bb6d 100644 --- a/src/Common/Languages/is/Tournament.php +++ b/src/Common/Languages/is/Tournament.php @@ -27,7 +27,6 @@ $lang['Badge4PerPage']='3 skírteini per síðu'; $lang['Badge4PerPageB7']='4 skírteini per síðu (B7 format)'; $lang['BadgeConfirmPrinted']='Staðfesta prentað'; -$lang['BadgeOnlyNotPrinted']='BARA skírteini sem er ekki þegar búið að prenta?'; $lang['BadgeOnlyPrintAccredited']='BARA skírteini af staðfestum þátttakendum?'; $lang['BadgeOnlyPrintPhoto']='BARA skírteini með myndum?'; $lang['BadgeOptions']='Valmöguleikar'; diff --git a/src/Common/Languages/it-rm/Install.php b/src/Common/Languages/it-rm/Install.php index 740b8d82..fe8e978b 100644 --- a/src/Common/Languages/it-rm/Install.php +++ b/src/Common/Languages/it-rm/Install.php @@ -28,7 +28,6 @@ $lang['Parameter']='Parametri'; $lang['Password']='Parola d\'Ordine!!!'; $lang['PHP settings']='Settaggi Piaccappì'; -$lang['PHP too old']='La tua istallazzione der Piaccappì è vecchia come \'r cucco. T\'ha da scaricà la verzione minima de IANSEO, la 5.0'; $lang['PHP version']='Verzione Piaccappì'; $lang['php.ini file']='Fail Piaccappìpuntoini'; $lang['Read connection failed']='La connessione cor Servere de lettura è ita male: o nun j\'hai fornito la passuorde de amministrazzione oppure le \'nformazzioni de loghinne nun sò corette!'; diff --git a/src/Common/Languages/it-rm/Tournament.php b/src/Common/Languages/it-rm/Tournament.php index bd3fcb95..6d3e5226 100644 --- a/src/Common/Languages/it-rm/Tournament.php +++ b/src/Common/Languages/it-rm/Tournament.php @@ -42,7 +42,6 @@ $lang['BadgeIncludePhoto']='Accrediti deveno da include la foto?'; $lang['BadgeNames']='Nome Completo (Nun stampati pè primi)'; $lang['BadgeNoData']='Nisun dato da stampà'; -$lang['BadgeOnlyNotPrinted']='Stampa solo l\'accrediti nun ancora stampati'; $lang['BadgeOnlyPrintAccredited']='Stampa l\'accrediti solo de li partecipanti accreditati?'; $lang['BadgeOnlyPrintPhoto']='Stampa l\'accrediti solo de chi ha deggià la foto \'nzerita?'; $lang['BadgeOptions']='Oppzzioni'; @@ -343,7 +342,6 @@ $lang['TargetTo']='Piazzola Finale'; $lang['TeamClEvent']='Classe a Squadre'; $lang['TeamFin']='Squadre - Fasi Finali'; -$lang['TeamFinEvent']='Finale a Squadre'; $lang['TeamQual']='Squadre - Class. de Classe'; $lang['TicketGetScore']='Mini-Score pè l\'accuisizzione de li punteggi parziali'; $lang['TieWinner']='Vincitore S.O.'; diff --git a/src/Common/Languages/it/Api.php b/src/Common/Languages/it/Api.php index ee25a4bb..85460f0d 100644 --- a/src/Common/Languages/it/Api.php +++ b/src/Common/Languages/it/Api.php @@ -14,7 +14,7 @@ $lang['CmdDelete']='Cancella'; $lang['CmdImport']='Importa'; $lang['ConfirmGenerateZip']='Conferma che stai generando il file ZIP con tutti i $a[0] per la sessione $a[1]'; -$lang['Controller']='Controllore'; +$lang['Controller']='Controllo'; $lang['DataRefresh']='Aggiorna i dati'; $lang['Desc-Let-1']='Volée corrente importata'; $lang['Desc-Let-2']='Frecce mancanti nella volée corrente'; @@ -50,6 +50,7 @@ $lang['ISK-ConnectionStatus']='Stato della connessione'; $lang['ISK-DeleteDevices']='Elimina dispositivi'; $lang['ISK-DenyAccess']='Nega accesso'; +$lang['ISK-Deprecated']='IMPORTANTE: l\'app "Ianseo ScoreKeeper" è in fase di eliminazione dagli store Apple e Android e non è più supportata, pertanto sarà anche rimossa da Ianseo a Settembre 2024. Si prega di spostarsi sulla nuova "Ianseo ScoreKeeper NG".'; $lang['ISK-DeviceAlive']='Online'; $lang['ISK-DeviceBattery']='Batteria'; $lang['ISK-DeviceEnabled']='Abilitato'; @@ -79,6 +80,7 @@ $lang['ISK-Lite-NoCompCode']='Codice Competizione Mancante'; $lang['ISK-Lite-QRCode']='Stampa il QR-Code per Ianseo ScoreKeeper Lite'; $lang['ISK-Lite-ServerUrl']='Url del Server (include protocollo e porta se diversa da porta 80)'; +$lang['ISK-Live-Deprecated']='IMPORTANTE: l\'app "Ianseo ScoreKeeper Live" non è più supportata, pertanto sarà anche rimossa da Ianseo a Settembre 2024. Si prega di spostarsi sulla nuova "Ianseo ScoreKeeper NG".'; $lang['ISK-Live-Name']='Ianseo ScoreKeeper LIVE'; $lang['ISK-lockPortrait']='Blocca il dispositivo il vista verticale'; $lang['ISK-Name']='Ianseo ScoreKeeper'; @@ -134,7 +136,7 @@ $lang['ISK-WifiTargetRange']='WiFi preferita per la piazzola'; $lang['ISK-WifiUse']='App in cui utilizzare questa WiFi'; $lang['IskDeviceAssigned']='Dispositivi'; -$lang['IskResetAlert']='ATTENZIONE: Tutte le impostazioni non presenti in questa configurazione verranno rimosse, ad eccezione della funzione Raggruppamento.'; +$lang['IskResetAlert']='ATTENZIONE: Tutte le impostazioni ISK non presenti in questa configurazione verranno rimosse, ad eccezione della funzione Raggruppamento Bersagli.'; $lang['IskScoringDevice']='Il dispositivo $a non è autorizzato a scorare in questa sessione/competizione'; $lang['IskSpuriousDevice']='Il dispositivo $a[0] manda punti non richiesti al bersaglio $a[1]'; $lang['IskSpuriousScore-Device']='Il dispositivo $a[0] manda punti alla piazzola $a[1] in sessione $a[2]'; @@ -151,7 +153,7 @@ $lang['Masters']='Masters'; $lang['MissingParameter']='Parametro mancante'; $lang['MsgDelAllTablets']='Elimina tutti i Tablet nell\'elenco'; -$lang['MsgDelTablet']='Elimina Tablet'; +$lang['MsgDelTablet']='Rimuovi Tablet'; $lang['MsgEmptyTemporaryOfGroup']='Elimina tabella temporanea (di tutti i dispositivi del girone selezionato)'; $lang['NewGroup']='Nuova assegnazione Gruppi'; $lang['NewTarget']='Nuova assegnazione Piazzole'; diff --git a/src/Common/Languages/it/BackNumbers.php b/src/Common/Languages/it/BackNumbers.php index d69d9b94..05ad75d3 100644 --- a/src/Common/Languages/it/BackNumbers.php +++ b/src/Common/Languages/it/BackNumbers.php @@ -166,6 +166,8 @@ $lang['ResetBarcodeSeparator']='Annulla il separatore del codice a barre'; $lang['RnkCardinalEN']='Vista Cardinale (1, 2, ..., 10)'; $lang['RnkOrdinal']='Vista Ordinale (1°, 2°, ..., 10°)'; +$lang['RnkRoman']='Numeri romani (I, II, ... IV, ... CM)'; +$lang['S-Badge']='Adesivi'; $lang['Schedule']='Programma'; $lang['Session']='Sessione di Qualifica'; $lang['SessionTarget']='Codice sessione e Piazzola'; diff --git a/src/Common/Languages/it/Common.php b/src/Common/Languages/it/Common.php index 5a6ca068..ca7da803 100644 --- a/src/Common/Languages/it/Common.php +++ b/src/Common/Languages/it/Common.php @@ -149,6 +149,10 @@ $lang['Finish']='Finito'; $lang['FirstPhase']='Fase di Partenza'; $lang['FopSetup']='Impostazione Campo di gara'; +$lang['Gender0']='Uomo'; +$lang['Gender1']='Donna'; +$lang['GenderShort0']='M'; +$lang['GenderShort1']='F'; $lang['GF']='Giovanissimi Femminile'; $lang['GM']='Giovanissimi Maschile'; $lang['HELP']='AIUTO!'; @@ -221,6 +225,7 @@ $lang['MenuLMRemoveNoShows']='Non Rimuovere - Mostra'; $lang['MenuLM_Accreditation']='Accreditamento'; $lang['MenuLM_Accreditation colors management']='Gestione colori'; +$lang['MenuLM_AdvancedFeatures']='Funzioni avanzate'; $lang['MenuLM_AdvLabels']='Stampa avanzata etichette'; $lang['MenuLM_Archers on Targets']='Numero Arcieri per Piazzola'; $lang['MenuLM_Arr4Set']='Frecce per set'; @@ -234,6 +239,7 @@ $lang['MenuLM_Athlets fees status']='Arcieri con iscrizione gratuita'; $lang['MenuLM_Authentication']='Autenticazione Utente'; $lang['MenuLM_AutoCheckinSetup']='Setup del Check-In Automatico'; +$lang['MenuLM_Automator']='Automator'; $lang['MenuLM_Back Number Printout']='Stampa Pettorali'; $lang['MenuLM_Boinx']='Setup dei Layer Boinx'; $lang['MenuLM_BoinxMeteo']='Layer Meteo di Boinx'; @@ -244,9 +250,11 @@ $lang['MenuLM_Category Result List']='Classifiche di Classe'; $lang['MenuLM_Change Components']='Cambia Componenti'; $lang['MenuLM_ChangeNationsNames']='Cambia Nomi Società'; +$lang['MenuLM_ChangePassword']='Modifica password'; $lang['MenuLM_Check Data Update']='Stato degli Inserimenti'; $lang['MenuLM_Check shoot-off before eliminations']='Spareggi per l\'ingresso alle Eliminatorie'; $lang['MenuLM_Check shoot-off before final phases']='Spareggi per l\'ingresso alle Finali'; +$lang['MenuLM_Check shoot-off before Rank']='Controllo SO prima della stampa Classifica'; $lang['MenuLM_CheckAwards']='Controlla Traduzioni delle Premiazioni'; $lang['MenuLM_CheckList']='Stampa Checklist'; $lang['MenuLM_CIS']='CIS'; @@ -267,6 +275,9 @@ $lang['MenuLM_Delete']='Elimina Torneo'; $lang['MenuLM_DeleteTarget']='Annulla Assegnazione Piazzole'; $lang['MenuLM_Distances']='Gestisci Distanze'; +$lang['MenuLM_DistrCompExport']='Esportazione dati della gara locale'; +$lang['MenuLM_DistrCompImport']='Importazione dati della gara a distanza'; +$lang['MenuLM_DistributedCompetition']='Competizione distribuita'; $lang['MenuLM_Div/Class Result List']='Classifiche di Classe'; $lang['MenuLM_Divisions and Classes']='Divisioni e Classi'; $lang['MenuLM_Draw']='Sorteggio Elettronico'; @@ -300,6 +311,7 @@ $lang['MenuLM_FinalFOPChoose']='FOP Esteso'; $lang['MenuLM_FlightsAwardManagement']='Gestione premi raggruppamenti'; $lang['MenuLM_FlightsManagement']='Gestione dei Flights'; +$lang['MenuLM_FontManagement']='Gestione dei caratteri'; $lang['MenuLM_GateControl']='Pannello di Controllo Accessi della App WA Gate'; $lang['MenuLM_GateSituation']='Situazione Accessi'; $lang['MenuLM_Get Info']='Info Terminali'; @@ -342,6 +354,7 @@ $lang['MenuLM_Modules']='Moduli'; $lang['MenuLM_MoveSession']='Cambia Turno Assegnato'; $lang['MenuLM_MoveTarget']='Sposta Piazzole'; +$lang['MenuLM_N62']='Informazioni ORIS N62A/B'; $lang['MenuLM_New']='Nuovo'; $lang['MenuLM_NewBacknumbers']='Pettorale Atleti'; $lang['MenuLM_OdsExport']='Esportazione foglio di calcolo (.ods)'; @@ -419,7 +432,7 @@ $lang['MenuLM_TV Output']='Uscita TV'; $lang['MenuLM_TVAdvanced']='Uscita TV (Avanzato)'; $lang['MenuLM_Twitter']='Twitter'; -$lang['MenuLM_Update']='Aggiorna Ianseo'; +$lang['MenuLM_Update']='Aggiorna I@nseo'; $lang['MenuLM_UpdateWeb']='Aggiornamento Live'; $lang['MenuLM_Versioning']='Gestione Versione Stampe'; $lang['MenuLM_View Competition Info']='Visualizza Dati Gara'; @@ -446,6 +459,7 @@ $lang['MsgImportOk']='Importazione Completata!'; $lang['MsgInitFinalGridsError']='Attenzione: le griglie sono state già create per questo evento. Vuoi proseguire?'; $lang['MsgInitFinalGridsOk']='Inizializzazione Riuscita!'; +$lang['MsgInitFinalGridsRunningError']='Operazione non consentita quando l\'Evento è in modalità "Running"'; $lang['MsgMakeFinReset']='I dati degli scontri di finale sono stati resettati!
    Occorrerà ri-eseguire le operazioni preliminari per poter inserire i dati!'; $lang['MsgNeedInitGrids']='Errore!
    Occore inizializzare le griglie!'; $lang['MsgNeedShootOff']='Errore!
    Occorre risolvere gli spareggi!'; @@ -502,6 +516,7 @@ $lang['Score1Page1Match']='Score per singolo scontro'; $lang['ScoreDrawing']='Solo Schema dello Score (Pagina Singola)'; $lang['ScoreFilled']='Stampa Score compilato con i valori delle singole frecce'; +$lang['ScoreIncAllNames']='Includere tutti i possibili Avversari'; $lang['ScoreIncEmpty']='Stampa anche scontri senza avversario'; $lang['Scorer']='Marcatore'; $lang['SearchOrphanTexts']='Ricerca testi non in uso'; @@ -516,6 +531,7 @@ $lang['SF']='Seniores Femminile'; $lang['ShootOff4Elim']='Spareggi per l\'ingresso alle Eliminatorie'; $lang['ShootOff4Final']='Spareggi per l\'ingresso alle Finali'; +$lang['ShootOff4Rank']='Controllo SO prima della stampa Classifica'; $lang['SM']='Seniores Maschile'; $lang['SnapshotConf']='Configurazione Snapshot'; $lang['SortBy']='Ordinamento'; diff --git a/src/Common/Languages/it/Errors.php b/src/Common/Languages/it/Errors.php index 1d70b32b..85abe14d 100644 --- a/src/Common/Languages/it/Errors.php +++ b/src/Common/Languages/it/Errors.php @@ -2,11 +2,14 @@ $lang['AllFieldsMandatory']='Tutti i campi sono obbligatori'; $lang['AllMailsRedirect']='Tutti i messaggi verranno inviati a'; $lang['Anomalies']='Anomalie'; +$lang['BackupTournaments']='Ricordatevi di salvare tutte le vostre gare prima di aggiornare o reinstallare Ianseo!'; $lang['BarCodeSession']='C\'è un errore nelle impostazioni: provare a impostare un turno!'; $lang['BarCodeSettings']='C\'è un errore nelle impostazioni'; +$lang['CategoresNotDefined']='Categorie non definite'; $lang['ClassFromToError']='"Da" e "A" devono essere valori numerici'; $lang['ClubNotFound']='Codice società non trovato nelle società esistenti. Si prega di aggiornare prima il database!'; $lang['ConflictingCategories']='La definizione del filtro si sovrappone ai filtri precedenti per queste classi/Divisioni: $a!'; +$lang['DecodeError']='Errore di decodifica'; $lang['DiameterMandatory']='Il diametro del bersaglio è obbligatorio'; $lang['DirectoryNotWriteable']='La directory $a non è scrivibile. Per favore, modifica i permessi così che sia scrivibile da chiunque.'; $lang['DistanceOutRange']='La distanza è fuori dal range'; @@ -15,6 +18,9 @@ $lang['EmptyFrom']='Nessun mittente o mittente non inserito correttamente: questo campo è obbligatorio!'; $lang['EmptySubject']='Soggetto Vuoto: questo campo è obbligatorio!'; $lang['EmptyTitle']='Titolo Vuoto: questo campo è obbligatorio!'; +$lang['EndsArrowsMisMatch']='$a con errori nel settaggio volées/frecce'; +$lang['EntriesNoCategory']='Partecipanti senza Classe/Divisione'; +$lang['EntriesNoCountry']='Partecipanti senza Società/Nazione'; $lang['ErrCodeExists']='Il codice scelto esiste già!'; $lang['ErrCommitteeError']='Il codice del comitato o la descrizione non sono validi'; $lang['ErrConnection']='Nessuna connessione al server $a'; @@ -32,6 +38,7 @@ $lang['ErrRedCard']='Il comitato organizzatore ha ricevuto un cartellino rosso e non può chiedere, al momento, nessun codice per pubblicare su ianseo. Mandare una email a codes@ianseo.net per ricevere ulteriori chiarimenti.'; $lang['ErrUnknownNation']='Nazione Sconosciuta'; $lang['ErrYellowCard']='Il comitato organizzatore ha ricevuto un cartellino giallo perchè non ha pubblicato nessun risultato della gara. Mandare una email a codes@ianseo.net per ricevere ulteriori chiarimenti.'; +$lang['EventIncompleteSetting']='$a senza indicazioni di chi ha titolo a partecipare'; $lang['FilterAlreadyExists']='Questo filtro esiste già'; $lang['FilterNotEmpty']='Devi definire un filtro'; $lang['IllegalTarget']='Il bersaglio selezionato non è nel DB'; @@ -39,7 +46,9 @@ $lang['ImageFetchError']='Errore nell\'acquisizione dell\'immagine'; $lang['ImageSaveError']='Immagine non salvata'; $lang['IncompleteSettings']='Impostazioni incomplete'; +$lang['InvalidCharacters']='Il campo contiene caratteri non validi. I caratteri validi sono $a'; $lang['InvalidEmail']='E-mail non valida: Per favore controlla 2 volte prima di effettuare il salvataggio'; +$lang['InvalidLogin']='Login non valido'; $lang['LockedProcedure']='Questa Procedura è BLOCCATA'; $lang['MailingAlreadyExists']='Una Email esiste già con il medesimo titolo ({$a}), per favore cambia il titolo o seleziona la Email da modificare dal selettore.'; $lang['MailingDeleteText']='Conferma di voler eliminare definitivamente questa mail!'; @@ -51,21 +60,34 @@ $lang['MissingAccreditation']='Manca l\'accreditamento online!'; $lang['MissingData']='Mancano dei dati'; $lang['MissingPhpIntlModule']='La traslitterazione può essere fatta installando o attivando il modulo php-intl'; +$lang['MysqlInnoDbProcess']='Ianseo aggiornerà il database per migliorare le prestazioni. Questa operazione potrebbe richiedere del tempo.'; +$lang['MysqlUpdateNeeded']='Stai utilizzando un Server Mysql molto vecchio. Si prega di aggiornare il server, XAMP, WAMP o LAMP a una versione più recente o reinstallare Ianseo da zero.'; $lang['NameNotEmpty']='Il nome non può essere vuoto'; +$lang['NoCountryInsert']='Nessun Paese/Società inserita'; +$lang['NoData']='Nessun dato fornito'; +$lang['NoDistancesSet']='Divisioni/Classi senza distanze definite'; $lang['NoDNSRecord']='Il Nome del Server non è corretto o non è online: per favore, ricorda che occorre essere connessi ad internet per impostare questa opzione.'; +$lang['NoEntryInsert']='Nessun Partecipante inserito'; $lang['NoMailingTemplate']='Nessun modello email selezionato/disponibile'; $lang['NoMailRecipients']='Nessuno a cui inviare la mail! Si prega di rivedere le opzioni di filtro.'; $lang['NoPrivilege']='Privilegi insufficienti: non sei autorizzato ad operare su questa pagina!'; $lang['NoSameOrders']='Il nuovo valore dell\'ordine non può essere duplicato.'; $lang['NoSmtpServerSet']='Per favore, imposta il server SMTP prima di mandare emails!'; +$lang['NoTargetSet']='Divisioni/Classi senza bersaglio definito'; +$lang['PhpOutdated']='La tua versione di PHP è obsoleta. I@nseo potrebbe funzionare, ma alcune funzionalità richiedono almeno la versione {$a}.
    Si prega di aggiornare l\'installazione il prima possibile per supportare PHP {$a} o più recente.'; $lang['RegExp']='Per utilizzare RegExp (espressioni regolari), fare riferimento a $a'; +$lang['ResetSyncData']='Reset dei dati di sincronizzazione'; +$lang['ServiceNotAvailable']='Servizio non disponibile'; $lang['SetupNotFinished']='Non puoi accedere a questa pagina: completa prima {$a}!'; $lang['SpecialFilterDiscrepancy']='Un filtro speciale è stato impostato, ma non è attivo!'; $lang['SqlJolly']='In una istruzione SQL il percento "%" funge da jolly(rappresenza zero, uno o più caratteri), mentre l\'underscore "_" rappresenta uno e un solo carattere. Per esempio "OL%" corrisponderà a tutti gli olimpici: "OLSM" così come a "OLSF", "OLMM", ecc. Mentre "OL_M" corrisponderà a "OLSM","OLMM", "OLJM", ecc, ma non a "OLSF".'; +$lang['SyncNotAvailable']='Sincronizzazione non disponibile'; $lang['TargetNumberMismatch']='Il numero della piazzola può essere solamente nella forma [NumeroPiazzola][LetteraPiazzola], ad esempio: [129][C]'; $lang['TargetRangeMismatch']='Gli intervalli delle piazzole devono essere 2 numeri di piazzole (senza lettere) separati da un trattino (segno meno). Il primo numero inferiore al secondo, ad esempio: 23-44'; $lang['TextSmtpDelete']='Per favore, conferma che vuoi rimuovere i settaggi di SMTP da questa installazione di Ianseo'; $lang['TooManyArrows']='Troppi valori totali di frecce: il massimo è $a'; +$lang['TooManyDistancesMatch']='Divisioni/Classi con più distanze definite'; $lang['TooManyElimQualified']='Gironi del tipo $a[0] possono accettare solo $a[1] arcieri'; +$lang['WrongData']='Dati errati'; $lang['WrongPort']='Questa porta non è supportata!'; ?> \ No newline at end of file diff --git a/src/Common/Languages/it/Help.php b/src/Common/Languages/it/Help.php index 2ac49e91..902eab0f 100644 --- a/src/Common/Languages/it/Help.php +++ b/src/Common/Languages/it/Help.php @@ -1,4 +1,5 @@ Carattere jolly ammesso: "%"'; $lang['AutoCheckinAlreadyDone']='Hai già effettuato il check-in
    Se hai bisogno di modificare qualsiasi informazione, procedi al banco dell\'accreditamento'; $lang['AutoCheckinConfirm']='Se tutti i dati sono corretti premi CONFERMA CHECK-IN
    Altrimenti premi ANNULLA e procedi al DESK di accreditamento'; $lang['AutoCheckinSearch']='Scansiona il QR-Code che hai ricevuto o digita il tuo nome'; @@ -11,13 +12,23 @@ $lang['AutoImportSettings']='Solo per Utenti Esperti
    Cambiare i parametri di default può portare ad avere risultati non precisi.
    E\' importante ricalcolare tutte le rank degli eventi che sono stati impostati manualmente PRIMA di inviare i risultati a ianseo.net o stampare i risultati e, in generale, sempre prima di fare qualsiasi tipo di distribuzione.'; $lang['ChangeComponents']='

    Per procedere con un cambio di componente, prima togliere l\'atleta che non è più nel team in modo da poter attivare le opzioni di sostituzione.

    ▶ Punteggi inclusi nel totale del team nella fase di qualifica
    ▷ Punteggi non inclusi nel totale del team nella fase di qualifica'; $lang['CombiCompList']='Elenco dei Codici Competizione, separati da virgole'; +$lang['ExportAdvanced']='Esporta anche i dati dei partecipanti e del Paese/Società da fornire se mancanti al Destinatario'; +$lang['ExportCategories']='Scegliere quali Div.Cl/eventi esportare (nessuna selezione significa tutte)'; +$lang['ExportDistances']='Seleziona quali distanze esportare (nessuna selezione significa tutte le distanze)'; +$lang['ExportSchedule']='Seleziona dal programma di gara il turno da esportare'; +$lang['ExportScheduleToday']='Mostra solo i turni programmati per oggi'; $lang['FlightsManagement']='Ai raggruppamenti per categorie
    • Selezionare in quale Voleé-Totale di Distanza-Totale Completo calcolare i raggruppamenti;
    • Selezionare la dimensione iniziale della riduzione di raggruppamento per categoria. Il sistema precarica la tabella di raggruppamento standard NFAA quando la competizione lo consente;
    • L\'anteprima del raggruppamento calcolerà TUTTE LE CATEGORIE; premete il pulsante di ricarica a lato della dimensione della riduzione di raggruppamento per forzare il calcolo di una singola categoria;
    • I raggruppamenti contrassegnati con l\'arancione sono solo un indicatore di una differenza tra l\'anteprima dei raggruppamenti e la tabella delle regole. NON influisce sulla divisione del raggruppamento;
    • Usare i comandi “Elimina”, “Separa” e “Unisci” per regolare le informazioni sui raggruppamenti. Si noti che dopo aver eseguito un\'anteprima completa o un aggiornamento delle categorie, tutte le modifiche apportate al raggruppamento vengono perse;
    Note
    • Le categorie con un numero troppo basso di partecipanti vengono escluse dal raggruppamento. Il raggruppamento può essere forzato indicando la quantità di riduzione del raggruppamento;
    • Se una categoria è considerata raggruppabile, utilizzare \'-1\' come riduzione per escluderla esplicitamente dal processo di raggruppamento.
    • Professionisti e/o Campionati sono esclusi dal raggruppamento e sono contrassegnati in grigio
    '; +$lang['FontFamily']='Nome del carattere da utilizzare nel CSS'; +$lang['FontFile']='Posizione del file sul disco'; +$lang['FontName']='Nome effettivo del carattere'; +$lang['FontStyle']='Stile del carattere in CSS'; +$lang['FontWeight']='Peso del carattere in CSS'; $lang['GetBarcodeSeparator']='Dopo aver stampato la pagina con i riferimenti dei Codici a Barre, leggi con la pistola il codice a barre "SEPARATORE" in modo da attivare il corretto lettore'; $lang['HomePage']='Questa è la pagina dove puoi selezionare o creare un Torneo'; $lang['ISK-LockedSessionHelp']='L\'icona {$a} indica se la app può inserire o meno dei punteggi nella sessione'; $lang['ISK-ServerUrlPin']='NON RIVELARE QUESTO NUMERO
    Scegli un PIN (4 Cifre Numeriche) da usare per accedere alla tua competizione.
    I Dispositivi potranno inviare punteggi alla tua gara solo leggendo il QR-Code che viene stampata da IANSEO.
    In caso di inserimento manuale dei dati di gara nella app Ianseo Scorekeeper LITE, Il codice competizione da usare è {$a}'; $lang['QrCodeLandscape']='Un singolo o doppio "<" disegnerà una freccia che punta a sinistra. Un singolo o doppio ">" disegnerà una freccia che punta a destra. Un singolo o doppio "^" disegnerà una freccia che punta in alto. Una singola o doppia "v" disegnerà una freccia che punta verso il basso.'; -$lang['QrCodePortrait']='Il campo è compatibile con HTML. Se inserisci qualcosa circondato da <qrcode>...</qrcode> il contenuto verrà modificato in un QR-Code'; +$lang['QrCodePortrait']='Il campo è compatibile con HTML. Se inserisci qualcosa circondato da <qrcode>...</qrcode> il contenuto verrà modificato in un QR-Code'; $lang['ScoreBarCodeShortcuts']='Leggi il Codice a Barre stampato sullo Score. Inserendo # seguito dal nome di un atleta si cerca nel database questo atleta. Inserendo @ seguita dal numero di piazzola si cerca nel database questa piazzola. La distanza DEVE essere specificata. La sessione può essere specificata (primo numero) e il numero della piazzola deve essere composto da 3 cifre'; @@ -30,5 +41,7 @@ $lang['TV-RotEdit']='
    Una pagina di presentazione è composta da almeno una pagina di contenuto.
    Le pagine di contenuto verranno quindi mostrate una dopo l\'altra e ricominceranno daccapo.
    NOTA: nei motori di versione normale e leggera, il primo contenuto viene nuovamente mostrato come ultimo, è quindi consigliabile inserire come primo contenuto un\'immagine (ad esempio il logo della competizione).
    I contenuti possono essere inerenti alla competizione (elenco piazzole, qualifiche, scontri...) oppure "multimediali" (immagini, messaggi HTML, ...).
    '; $lang['TV-RotEdit-DB']='

    Gestione CSS3 (motore avanzato)

    Unità di lunghezza

    • rem: altezza del carattere principale
    • em:altezza del carattere corrente
    • ex:altezza della "x"minuscola
    • ch: larghezza del numero "0"
    • vh:un centesimo dell\'altezza dello schermo
    • vw: un centesimo della larghezza dello schermo
    • vmin: un centesimo del valore minimo tra l\'altezza e la larghezza dello schermo
    • vmax: un centesimo del valore massimo tra l\'altezza e la larghezza dello schermo

    Box flessibili

  • contrai ABC:
    • A: se 0 significa che la casella non può espandersi; se> 1 significa che la casella può espandersi a quella "velocità" rispetto ad altre caselle (se la casella 1 ha 2 e la casella 2 ha 3, la casella 2 si espanderà di 1,5 in più rispetto alla casella 1 che a sua volta si espanderà il doppio di una casella con questo valore impostato a 1)
    • B: se 0 il box non può ridursi; se 1 il box può ridursi
    • C: dimensione iniziale del box
  • Riferimento CSS

    https://developer.mozilla.org/en-US/docs/Web/CSS/Reference'; $lang['TV-RotList']='
    Questo è l\'elenco delle pagine di presentazione disponibili da inviare a maxischermi, monitor o broadcast.
    Sono forniti 3 diversi motori, fare clic sul collegamento per attivarli:
    • un normale motore compatibile con la maggior parte dei browser
    • una versione leggera del motore compatibile con la maggior parte dei browser ma che utilizza meno risorse
    • una versione avanzata che utilizza i browser moderni funzionalità HTML5
    Per creare un nuovo contenuto, inserisci un nome e premi il pulsante.
    '; +$lang['UserName']='Deve essere unico nel Sistema. Lunghezza minima: 6 caratteri'; +$lang['UserPassword']='Lasciare vuoto per mantenere la password corrente'; $lang['ZeroBased']='Numero a base zero'; ?> \ No newline at end of file diff --git a/src/Common/Languages/it/IOC_Codes.php b/src/Common/Languages/it/IOC_Codes.php index e8cb3447..466cef9d 100644 --- a/src/Common/Languages/it/IOC_Codes.php +++ b/src/Common/Languages/it/IOC_Codes.php @@ -51,7 +51,7 @@ $lang['CHN']='Cina'; $lang['CIV']='Costa d\'Avorio'; $lang['CMR']='Camerun'; -$lang['COD']='Repubblica Democratica del Congo'; +$lang['COD']='Congo'; $lang['COK']='Isole Cook'; $lang['COL']='Colombia'; $lang['COM']='Comore'; @@ -59,6 +59,7 @@ $lang['CRC']='Costa Rica'; $lang['CRO']='Croazia'; $lang['CUB']='Cuba'; +$lang['CUW']='Curaçao'; $lang['CYP']='Cipro'; $lang['CZE']='Repubblica Ceca'; $lang['DEN']='Danimarca'; @@ -74,7 +75,10 @@ $lang['ETH']='Etiopia'; $lang['FIJ']='Figi'; $lang['FIN']='Finlandia'; +$lang['FLK']='Isola di Falkland'; +$lang['FPO']='Tahiti'; $lang['FRA']='Francia'; +$lang['FRO']='Isole Faroe'; $lang['FSM']='Micronesia'; $lang['GAB']='Gabon'; $lang['GAM']='Gambia'; @@ -84,6 +88,7 @@ $lang['GEQ']='Guinea Equatoriale'; $lang['GER']='Germania'; $lang['GHA']='Gana'; +$lang['GLP']='Guadalupe'; $lang['GRE']='Grecia'; $lang['GRN']='Grenada'; $lang['GUA']='Guatemala'; @@ -101,7 +106,7 @@ $lang['IRQ']='Iraq'; $lang['ISL']='Islanda'; $lang['ISR']='Israele'; -$lang['ISV']='Isole Vergini Statunitensi'; +$lang['ISV']='Isole Vergini Americane'; $lang['ITA']='Italia'; $lang['IVB']='Isole Vergini Britanniche'; $lang['JAM']='Giamaica'; @@ -112,11 +117,13 @@ $lang['KGZ']='Kirghizistan'; $lang['KIR']='Kiribati'; $lang['KOR']='Repubblica di Corea'; +$lang['KOS']='Kosovo'; $lang['KSA']='Arabia Saudita'; $lang['KUW']='Kuwait'; $lang['LAO']='Laos'; $lang['LAT']='Lettonia'; $lang['LBA']='Libia'; +$lang['LBN']='Libano'; $lang['LBR']='Liberia'; $lang['LCA']='Santa Lucia'; $lang['LES']='Lesotho'; @@ -124,6 +131,7 @@ $lang['LIE']='Liechtenstein'; $lang['LTU']='Lituania'; $lang['LUX']='Lussemburgo'; +$lang['MAC']='Macao'; $lang['MAD']='Madagascar'; $lang['MAR']='Marocco'; $lang['MAS']='Malesia'; @@ -137,7 +145,7 @@ $lang['MEX']='Messico'; $lang['MGL']='Mongolia'; $lang['MHL']='Isole Marshall'; -$lang['MKD']='Macedonia'; +$lang['MKD']='Macedonia del Nord'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -145,13 +153,18 @@ $lang['MOZ']='Mozambico'; $lang['MRI']='Mauritius'; $lang['MTN']='Mauritania'; +$lang['MTQ']='Martinica'; $lang['MYA']='Myanmar'; $lang['NAM']='Namibia'; $lang['NCA']='Nicaragua'; +$lang['NCL']='Nuova Caledonia'; $lang['NED']='Paesi Bassi'; $lang['NEP']='Nepal'; +$lang['NFK']='Isola Norfolk'; $lang['NGR']='Nigeria'; $lang['NIG']='Niger'; +$lang['NIU']='Niue'; +$lang['NMI']='Isole Marianne Settentrionali'; $lang['NOR']='Norvegia'; $lang['NRU']='Nauru'; $lang['NZL']='Nuova Zelanda'; @@ -203,6 +216,7 @@ $lang['TOG']='Togo'; $lang['TPE']='Taipei'; $lang['TRI']='Trinidad e Tobago'; +$lang['TTO']='Trinidad e Tobago'; $lang['TUN']='Tunisia'; $lang['TUR']='Turchia'; $lang['TUV']='Tuvalu'; diff --git a/src/Common/Languages/it/ISK-App.php b/src/Common/Languages/it/ISK-App.php index 3060927c..64748e50 100644 --- a/src/Common/Languages/it/ISK-App.php +++ b/src/Common/Languages/it/ISK-App.php @@ -25,7 +25,7 @@ $lang['AppTitle']='ScoreKeeper NG'; $lang['BarcodeErrorMessage']='Codice a barre NON valido'; $lang['BarcodeErrorTitle']='Errore Codice a barre'; -$lang['BarcodeScanPrompt']='Inquadrare il Codice a barre'; +$lang['BarcodeScanPrompt']='Inquadra il QR-Code'; $lang['DeviceId']='ID Dispositivo'; $lang['EnterPinCodeInvalidValue']='Codice di autorizzazione non valido'; $lang['EnterPinCodeMessage']='Per usare questa funzione inserisci il codice di autorizzazione'; @@ -42,11 +42,11 @@ $lang['HelpContactHead']='Contatti'; $lang['HelpContactText']='Se hai difficoltà con la app o necessiti assistenza, puoi contattarci via email scrivendo a'; $lang['HelpIntro13D']='Tiro 3D'; -$lang['HelpIntro1Field']='Tiro Hunter e Field'; +$lang['HelpIntro1Field']='Tiro di Campagna (Hunter e Field)'; $lang['HelpIntro1Head']='Scorekeeper NG'; $lang['HelpIntro1RR']='Gironi all\'italiana'; -$lang['HelpIntro1TargetIn']='Tiro in sala'; -$lang['HelpIntro1TargetOut']='Tiro all\'aperto'; +$lang['HelpIntro1TargetIn']='Tiro alla Targa al Chiuso (Indoor)'; +$lang['HelpIntro1TargetOut']='Tiro alla Targa all\'Aperto (Outdoor)'; $lang['HelpIntro1Text']='è la nuova generazione di app per lo scoring! Affianca il programma Ianseo e permette di recuperare dal vivo i punteggi di:'; $lang['HelpIntro2Elim']='Gironi Eliminatori'; $lang['HelpIntro2MI']='Scontri Individuali'; @@ -59,7 +59,7 @@ $lang['HelpIntro3LiveText']='- come la versione pro, con in più la comunicazione diretta da e per i dispositivi (per utenti avanzati)'; $lang['HelpIntro3Pro']='Pro'; $lang['HelpIntro3ProText']='- come la versione Lite, con in più gestione dei dispositivi e dei risultati live da Ianseo'; -$lang['HelpIntro3Text']='Scorekeeper NG riunisce le versioni Lite, Pro o Live di Ianseo. In base al tipo di gara impostato, la app abiliterà o disabiliterà le funzioni avanzate.'; +$lang['HelpIntro3Text']='Scorekeeper NG riunisce le versioni Lite, Pro o Live di I@nseo. In base al tipo di gara impostato, la app abiliterà o disabiliterà le funzioni avanzate.'; $lang['HelpIntro4Text']='La app contiene 5 funzioni principali:'; $lang['HelpMainHead']='Inizio'; $lang['HelpMainText']='Questa è la schermata iniziale vista dagli arcieri una volta che la app è stata correttamente configurata e collegata a Ianseo. Mostra le informazioni di gara, la sessione corrente, la lista degli arcieri assegnati al/ai bersaglio/bersagli impostati. Per ogni tiratore viene mostrato il tipo di bersaglio, i valori frecce e i totali. Toccando il nominativo si apre la schermata di inserimento punti. È anche possibile visualizzare lo score completo per tutti gli arcieri e tutte le distanze impostate per quel dispositivo.'; @@ -80,7 +80,7 @@ $lang['MainTargets']='Piazzole assegnate'; $lang['MainTotal']='Totale'; $lang['MainWaitingConfig']='Consegnare alla squadra risultati'; -$lang['MainWinner']='VINCENTE'; +$lang['MainWinner']='V I N C I T O R E'; $lang['MenuAppVersion']='Versione:'; $lang['MenuCloseMenu']='Chiudi menù'; $lang['MenuDeviceId']='ID Dispositivo:'; @@ -126,7 +126,7 @@ $lang['SettingsElimFirstTarget']='Primo bersaglio'; $lang['SettingsEventSelection']='Selezione dell\'evento'; $lang['SettingsFunctionsCategory']='Altre funzioni'; -$lang['SettingsFunctionsResetSettings']='Reset delle impostazioni ai valori di default'; +$lang['SettingsFunctionsResetSettings']='Reset imp. default'; $lang['SettingsGenerateQr']='Genera'; $lang['SettingsGpsCategory']='Posizione GPS'; $lang['SettingsGpsFrequency']='Frequenza'; @@ -140,10 +140,10 @@ $lang['SettingsManualAllDistances']='Tutte'; $lang['SettingsManualDistance']='Distanza'; $lang['SettingsManualEvent']='Evento'; -$lang['SettingsManualGroup']='Gruppo'; +$lang['SettingsManualGroup']='Piazzola'; $lang['SettingsManualMatch']='Scontro'; $lang['SettingsManualPhase']='Fase'; -$lang['SettingsManualRRGroup']='Gruppo'; +$lang['SettingsManualRRGroup']='Piazzola'; $lang['SettingsManualRRLevel']='Livello'; $lang['SettingsManualRRRound']='Round'; $lang['SettingsManualSession']='Turno'; @@ -173,7 +173,7 @@ $lang['SettingsStageMI']='Scontri Individuali'; $lang['SettingsStageMT']='Scontri a Squadre'; $lang['SettingsStageP']='Gironi'; -$lang['SettingsStageQ']='Qualificazioni'; +$lang['SettingsStageQ']='Qualifica'; $lang['SettingsStageRI']='Gironi all\'italiana - Individuale'; $lang['SettingsStageRT']='Gironi all\'italiana - Squadre'; $lang['SettingsTitle']='Impostazioni'; @@ -185,9 +185,9 @@ $lang['SetupManually']='Configurazione manuale'; $lang['SetupNeedHelp']='Hai bisogno di aiuto?'; $lang['SetupUsingBarcode']='Imposta l\'app utilizzando un QR-Code'; -$lang['ShootoffClosestArcher']='più centrale'; +$lang['ShootoffClosestArcher']='più vicina al centro'; $lang['ShootoffClosestNew']='Nuovo Shoot-Off'; -$lang['ShootoffClosestTitle']='Richiesto il più centrale'; +$lang['ShootoffClosestTitle']='Necessario indicare la più vicina al centro'; $lang['ShootoffNewConfirmation']='Conferma Shoot-Off'; $lang['ShootoffNewIsNeeded']='Serve un altro Shoot-Off per definire il vincitore dello scontro?'; $lang['SignatureClear']='Cancella'; diff --git a/src/Common/Languages/it/Ianseo.php b/src/Common/Languages/it/Ianseo.php index dbb2659c..0b175c37 100644 --- a/src/Common/Languages/it/Ianseo.php +++ b/src/Common/Languages/it/Ianseo.php @@ -5,7 +5,7 @@ $lang['Cert-Level2']='Corso Base'; $lang['Cert-Level3']='Corso Avanzato'; $lang['Cert-Level4']='Master'; -$lang['Cert-Level5']='Staff Ianseo'; +$lang['Cert-Level5']='Staff I@nseo'; $lang['CertificateManagement']='Gestione Certificati'; $lang['GenerateFile']='Crea File'; $lang['ResetItems']='Reset degli Elementi.
    Questa azione non richiede conferma e non può essere annullata!
    Il Reset delle qualifiche azzera anche tutti gli eventi successivi!'; diff --git a/src/Common/Languages/it/Install.php b/src/Common/Languages/it/Install.php index ade70855..36a0e81a 100644 --- a/src/Common/Languages/it/Install.php +++ b/src/Common/Languages/it/Install.php @@ -6,7 +6,7 @@ $lang['AcceptGPL-Desc2']='Dovresti aver ricevuto una copia della licenza GPL3. In caso contrario, vedi $a.'; $lang['AcceptGPL-Logo']='Maggiori informazoni'; $lang['AcceptGPL-ReadTXT']='Leggi la Licenza'; -$lang['AcceptGPL-Start']='Per Installare, Aggiornare o Utilizzare Ianseo spunta la casella seguente:'; +$lang['AcceptGPL-Start']='Per Installare, Aggiornare o Utilizzare I@nseo spunta la casella seguente:'; $lang['Changed']='Cambi'; $lang['cmdForceUpdate']='Forza l\'aggiornamento'; $lang['Config write failed']='Impossibile scrivere il file di configurazione. Controllare i permessi sulla cartella "Common" nella cartella di installazione principale di IANSEO.'; @@ -28,13 +28,14 @@ $lang['Credits-License']='IANSEO è rilasciato sotto la LICENZA PUBBLICA GENERALE GNU versione 3 (GPLV3)'; $lang['Credits-Support']='Supporto (OTRS)'; $lang['Credits-TranslationCoordination']='Coordinatore della traduzione'; -$lang['Credits-Translators']='Traduttori di IANSEO'; +$lang['Credits-Translators']='Traduttori di I@NSEO'; $lang['Database name']='Nome Database'; $lang['Deleting']='Cancellazione file non usati/obsoleti'; $lang['Done']='fatto!'; $lang['Email']='Email'; $lang['Email not in DB']='La mail non nel nostro DataBase'; $lang['EventWillBeReset']='ATTENZIONE: un cambio in "$a[0]", "$a[1]" o "$a[2]" ripristinerà tutti i parametri della gara ai valori predefiniti per la scelta effettuata.'; +$lang['ExportAllComps']='Esportazione di tutte le competizioni'; $lang['Failed']='FALLITO!'; $lang['Failing install']='Aggiornare l\'installazione di PHP prima di aprire nuovamente il programma IANSEO.'; $lang['Field24Normal']='Tiro di Campagna 24 Piazzole'; @@ -73,7 +74,7 @@ $lang['NFAAField-5Dist']='2xField, 2xHunter, Animal'; $lang['NoChanges']='Invariati'; $lang['NoData']='Nessun dato inviato...'; -$lang['NoDowngrade']='Non è possibile aggiornare a una versione precedente la tua installazione. Se vuoi proprio farlo, installa una nuova versione di Ianseo USANDO UN NOME DI DATABASE DIVERSO.'; +$lang['NoDowngrade']='Non è possibile aggiornare a una versione precedente la tua installazione. Se vuoi proprio farlo, installa una nuova versione di I@nseo USANDO UN NOME DI DATABASE DIVERSO.'; $lang['NordicYouthChamp']='Campionati nordici giovanil'; $lang['NorgesRunden']='Norges Runden'; $lang['NorgesRundenFinals']='Norges Runden con Finali'; @@ -81,13 +82,13 @@ $lang['NorskKortrundeFinals']='Norsk kortrunde con Finali'; $lang['NoSubRules']='Nessuna sottoregola'; $lang['NotFound']='Non trovati'; -$lang['NothingToDo']='La tua installazione di Ianseo è aggiornata. Torna a controllare ogni tanto se ci sono aggiornamenti, dato che aggiungiamo di continuo nuove funzionalità e correzioni di bachi e regolamenti.'; -$lang['NotUpdatable']='La tua installazione di Ianseo non può essere aggiornata automaticamente. Controlla che la cartella Ianseo e tutti i suoi contenuti siano scrivibili dal server o da tutti.'; +$lang['NothingToDo']='La tua installazione di I@nseo è aggiornata. Torna a controllare ogni tanto se ci sono aggiornamenti, dato che aggiungiamo di continuo nuove funzionalità e correzioni di bachi e regolamenti.'; +$lang['NotUpdatable']='La tua installazione di Ianseo non può essere aggiornata automaticamente. Controlla che la cartella Ianseo ($a) e tutti i suoi contenuti siano scrivibili dal server o da tutti.'; $lang['Optimal value']='Valore Ottimale'; $lang['Parameter']='Parametro'; $lang['Password']='Password'; $lang['PHP settings']='Impostazioni PHP'; -$lang['PHP too old']='La versione di PHP installata è troppo vecchia. La versione minima per utilizzare IANSEO è la 5.0'; +$lang['PHP too old']='La versione di PHP installata è troppo vecchia. La versione minima per utilizzare IANSEO è 8.0.'; $lang['PHP version']='Versione PHP'; $lang['php.ini file']='file php.ini'; $lang['Prepare']='Preparazione dati per l\'aggiornamento.'; @@ -236,25 +237,25 @@ $lang['SetWAPools-One']='Classe unica (WA 4 Gironi)'; $lang['SetYouthClass']='Classi giovanili'; $lang['SpecialUpdate']='Stai usando una versione "testing".
    Solo pochi utenti hanno accesso a questa versione: inserisci la tua e-mail di registrazione per procedere.
    Sarà inviata una e-mail di notifica dell\'avvenuta operazione sia a te sia allo Staff Ianseo.'; -$lang['Start Ianseo']='Vai a IANSEO'; +$lang['Start Ianseo']='Vai a I@NSEO'; $lang['Status']='Stato'; $lang['stdValue']='Valore'; $lang['Suboptimal']='Sebbene il file php.ini non è configurato con i valori ottmali,
    la maggior parte delle funzionalità di IANSEO sono operative.
    Consigliamo caldamente di impostare i parametri ai valori ottimali.'; $lang['System value']='Valore Attuale'; $lang['UpdateInProgress']='Un aggiornamento è già in corso, attendi...'; -$lang['UpdatePrepared']='La tua installazione di Ianseo sta per essere aggiornata automaticamente. Ricordati di fare un salvataggio di tutte le gare importanti prima di iniziare. L\'aggiornamento potrebbe durare parecchio tempo, in base al tipo di collegamento e dal numero di elementi che devono essere aggiornati.
    Si ricorda che qualunque contenuto non originale verrà rimosso, tranne il contenuto della cartella «Modules/Custom».'; +$lang['UpdatePrepared']='La tua installazione di I@nseo sta per essere aggiornata automaticamente. Ricordati di fare un salvataggio di tutte le gare importanti prima di iniziare. L\'aggiornamento potrebbe durare parecchio tempo, in base al tipo di collegamento e dal numero di elementi che devono essere aggiornati.
    Si ricorda che qualunque contenuto non originale verrà rimosso, tranne il contenuto della cartella «Modules/Custom».'; $lang['Updating']='Aggiornamento della versione locale di Ianseo in corso'; $lang['UpdatingLanguages']='Aggiornamento lingue installate'; $lang['UpdatingModulesInfo']='Aggiornamento delle informazioni sui moduli'; $lang['UpgradeFinished']='L\'aggiornamento è concluso.'; $lang['User']='Nome utente'; $lang['Value']='Valori (arrays indicizzati: key1::value1|key2::value2)'; -$lang['WhatIanseoDoes01']='Regole World Archery e FITARCO: Ianseo è sempre aggiornato con le regole World Archery e viene aggiornato alle regole FITARCO dietro indicazioni dell\'ufficio tecnico. Gli sviluppatori sono disponibili per adattare ianseo a particolari regole o formati di gara!'; -$lang['WhatIanseoDoes02']='Aiuto e supporto: se hai bisogno di aiuto manda una mail a $a: riceverai una risposta direttamente da uno degli sviluppatori di Ianseo!'; -$lang['WhatIanseoDoes03']='Corsi e aggiornamenti in sede: Ianseo è disponibile a tenere corsi e aggiornamenti, di due livelli differenti. Il primo prevede la conoscenza di tutto ianseo senza l\'uso di tastierini elettronici, il secondo è destinato all\'utilizzo e alla soluzione dei problemi dei tastierini elettronici.'; -$lang['WhatIanseoDoes04']='Donate! Ianseo è un programma gratuito e open source... se ti piace aiutaci a mantenere software e server aggiornati: premi il tasto "Donate" nella home page di $a!'; -$lang['WhatIanseoDoes05']='Social Media: Ianseo è anche su $a!'; -$lang['WhatIanseoDoesTitle']='Cosa può fare Ianseo per le tue gare'; +$lang['WhatIanseoDoes01']='Regole World Archery e FITARCO: I@nseo è sempre aggiornato con le regole World Archery e viene aggiornato alle regole FITARCO dietro indicazioni dell\'ufficio tecnico. Gli sviluppatori sono disponibili per adattare I@nseo a particolari regole o formati di gara!'; +$lang['WhatIanseoDoes02']='Aiuto e supporto: se hai bisogno di aiuto manda una mail a aiuto@ianseo.net o $a : riceverai una risposta direttamente da uno degli sviluppatori di I@nseo!'; +$lang['WhatIanseoDoes03']='Corsi e aggiornamenti in sede: I@nseo è disponibile a tenere corsi e aggiornamenti, di due livelli differenti. Il primo prevede la conoscenza di tutto I@nseo senza l\'uso dei dispositivi elettronici mentre il secondo è destinato all\'utilizzo e alla soluzione dei problemi dei dispositivi elettronici per poter gestire una gara "freccia per freccia".'; +$lang['WhatIanseoDoes04']='Donate! I@nseo è un programma gratuito e open source... se ti piace aiutaci a mantenere software e server aggiornati: premi il pulsante "PayPal" o "Stripe" nella home page di $a!'; +$lang['WhatIanseoDoes05']='Social Media: I@nseo è anche su $a!'; +$lang['WhatIanseoDoesTitle']='Cosa può fare I@nseo per le tue gare'; $lang['Write connection failed']='La connessione con il server di scrittura è fallita: o non è stata fornita a password di amministrazione oppure le informazioni di login non sono corrette!'; $lang['Write Database not present']='Il database di scritturanon è accessibile: o il nome del DB è errato oppure non è stata fornita la password di amministrazione per crearlo'; $lang['Write server']='Server di Scrittura'; diff --git a/src/Common/Languages/it/ODF.php b/src/Common/Languages/it/ODF.php index a2e4f1c7..b9f68c89 100644 --- a/src/Common/Languages/it/ODF.php +++ b/src/Common/Languages/it/ODF.php @@ -33,7 +33,7 @@ $lang['IntSCHED']='Programma'; $lang['IntSESSION']='Sessioni ODF'; $lang['IntTRANSLATE']='Stringhe multilingue'; -$lang['IrmHelp']='IRM:Utilizzato per posizionare la voce nell\'apposita posizione sulle stampe, che si trova alla fine dei PDF(DNF, DNS, DSQ, DQB), l\'impostazione di un IRM imposterà una ranking predefinita come segue: DNF (non in classifica) -> 29.999; DNS -> 30.000; DSQ -> 31.000; DQB -> 32.000
    Il ripristino di uno stato IRM richiederà un controllo approfondito TUTTI posizioni!'; +$lang['IrmHelp']='IRM:Per impostare l\'ordine corretto nelle stampe (DNF, DNS, DSQ, DQB), l\'impostazione di un IRM imposterà una posizione in ranking predefinita come segue: DNF (no rank) -> 29.999; DNS -> 30.000; DSQ -> 31.000; DQB -> 32.000
    Il ripristino di uno stato IRM richiederà un controllo approfondito di TUTTE le posizioni in classifica!'; $lang['KAOffset']='Compensa il ritardo'; $lang['KASeconds']='Tempo per il Keep Alive'; $lang['LangNotSupported']='La Lingua $a non è supportata'; @@ -53,8 +53,10 @@ $lang['OdfCommonCodeVersion']='Versione del codice comune'; $lang['OdfCompetition']='Codice Gara ODF'; $lang['OdfEventCode']='Codice Evento ODF'; +$lang['OdfGeneralCodeVersion']='Versione del dizionario dei dati generali'; $lang['OdfReceiverOn']='Ricevitore attivo'; $lang['OdfReceiverSetup']='Configurazione del ricevitore ODF'; +$lang['OdfSportCodeVersion']='Versione del dizionario dei dati sportivi'; $lang['OdfUploadFileText']='Seleziona un file XML da caricare...'; $lang['Production']='Produzione'; $lang['Receiver']='Ricevitore'; @@ -87,6 +89,7 @@ $lang['TMMeeting']='Riunione dei Team Manager'; $lang['Transmitter']='Trasmettitore'; $lang['TypCODE']='Suffisso codice documento'; +$lang['TypDISCIPLINE']='Disciplina (rif. Sports CC@Discipline)'; $lang['TypEVENT']='Descrizione dell\'Evento'; $lang['TypNAME']='Descrizione'; $lang['TypPHASE']='Descrizione della fase'; diff --git a/src/Common/Languages/it/RunArchery.php b/src/Common/Languages/it/RunArchery.php index 4a888fe3..b44e5e2d 100644 --- a/src/Common/Languages/it/RunArchery.php +++ b/src/Common/Languages/it/RunArchery.php @@ -17,7 +17,7 @@ $lang['DueLoops-Due']='Dovuti'; $lang['DueLoops-Loops']='Giri'; $lang['End']='Volée'; -$lang['EntryIsIn']='Gareggiare'; +$lang['EntryIsIn']='Atleti che gareggiano'; $lang['ExportChips']='Esportazione ODS per l\'impostazione dei pod'; $lang['Final1']='Finale A'; $lang['Final2']='Finale B'; @@ -25,7 +25,7 @@ $lang['FinalTime']='Tempo finale'; $lang['FinishTime']='Tempo finale'; $lang['GroupedStart']='Inizio Raggruppato'; -$lang['Hits']='Tiri'; +$lang['Hits']='Colpiti'; $lang['ImportArrows']='Importa Frecce'; $lang['ImportLoops']='Importa giri'; $lang['ImportTimes']='Importa scheda attività'; @@ -43,7 +43,7 @@ $lang['MoveToNextDisclaimer']='ATTENZIONE: Questo sovrascriverà le assegnazioni precedenti e non potrà essere annullato! Sei sicuro di voler continuare?'; $lang['MoveToNextPhase']='Muovi alla prossima fase'; $lang['NumArrows']='Num frecce per giro'; -$lang['OfficialName']='Nome ufficiale'; +$lang['OfficialName']='Nome Personale di campo'; $lang['OfficialPracticeForEvents']='Tiri di prova ufficiali sul campo di gara per $a'; $lang['ParticipantList']='Partecipanti ordinati per ora di partenza'; $lang['PenaltyArrow']='Frecce di penalità'; diff --git a/src/Common/Languages/it/Tournament.php b/src/Common/Languages/it/Tournament.php index b323d52f..d6bb3e82 100644 --- a/src/Common/Languages/it/Tournament.php +++ b/src/Common/Languages/it/Tournament.php @@ -33,7 +33,7 @@ $lang['AclParticipants']='Partecipanti'; $lang['AclQualification']='Qualifiche'; $lang['ACLReadOnly']='Accesso limitato (Solo lettura)'; -$lang['ACLReadWrite']='Accesso completo (Lettura e Scrittura'; +$lang['ACLReadWrite']='Accesso completo (Lettura e Scrittura)'; $lang['AclRobin']='Girone Robin'; $lang['AclRoot']='Superutente'; $lang['AclSpeaker']='Annunciatore'; @@ -52,6 +52,7 @@ $lang['AllDistances']='Tutti'; $lang['AllEntries']='Tutti gli Iscritti'; $lang['AllEvents']='Tutti gli Eventi'; +$lang['AllowCompetitionACL']='Consentire la Gestione Controllo Accessi dalla Rete della Competizione'; $lang['AllRound']='Tutti i rounds'; $lang['AllSessions']='Tutti i Turni'; $lang['AllsF']='Tutti'; @@ -94,10 +95,11 @@ $lang['AttachICS']='Allega Programma come iCal (.ics)'; $lang['AttachQualScorecard']='Invia lo score personale come allegato PDF (tutte le distanze)'; $lang['AtXDistance']='Risultati DELLA Distanza $a'; -$lang['AuthCode']='Codice di autorizzazione'; +$lang['AuthCode']='Authorization Code (password)'; $lang['AuthCodeA2A']='Codice di autorizzazione del Freccia a Freccia'; $lang['AutoCoinToss']='Assegnazioni automatiche con Lancio della Moneta'; $lang['AutoEdits']='Edit automatico'; +$lang['AutomatorAccPrint']='Impostazioni di stampa dell\'accreditamento'; $lang['AutoMoveNext']='Sposta automaticamente alla freccia successiva'; $lang['AutoRefresh']='Aggiornamento Automatico'; $lang['AutoTargetAssignment']='Assegnazione Automatica delle Piazzole - Sorteggio'; @@ -128,7 +130,7 @@ $lang['BadgeIncludePhoto']='Accrediti devono includere la foto?'; $lang['BadgeNames']='Nome Completo (Non stampati per primi)'; $lang['BadgeNoData']='Nessun dato da stampare'; -$lang['BadgeOnlyNotPrinted']='Stampa solo gli accrediti non ancora stampati?'; +$lang['BadgeOnlyNotPrinted']='Stampa solo gli accrediti non ancora stampati'; $lang['BadgeOnlyPrintAccredited']='Stampa gli accrediti solo dei partecipanti accreditati?'; $lang['BadgeOnlyPrintPhoto']='Stampa gli accrediti solo di chi ha già la foto inserita?'; $lang['BadgeOptions']='Opzioni'; @@ -158,6 +160,9 @@ $lang['Block_IP']='IP di accesso (IPv4)'; $lang['Block_Manage']='Gestione Controllo Accessi dalla Rete'; $lang['Block_Nick']='Nome'; +$lang['Block_TemplateIP']='Modelli di IP'; +$lang['Block_TemplateName']='Descrizione'; +$lang['Block_TemplatePattern']='Modello'; $lang['BoldIsDefault']='In grassetto i predefiniti'; $lang['Bonus']='Bonus'; $lang['ByeMovedToPhase']='L\'atleta è passato alla prossima fase'; @@ -199,6 +204,7 @@ $lang['CannotDelete']='Questo elemento non può essere cancellato'; $lang['Cash']='Totale Pagamenti'; $lang['CatDos']='Direttore dei Tiri'; +$lang['CategoriesEvents']='Div.Cl/Eventi'; $lang['CatJudge']='Giudici di Gara'; $lang['CatJury']='Commissione di Garanzia'; $lang['CatOC']='Comitato Organizzatore'; @@ -284,6 +290,7 @@ $lang['CtrlCodeShort']='Cod. Fisc.'; $lang['Currency']='€'; $lang['CurrentCompCode']='Codice attuale Competizione: $a'; +$lang['CustomAclDetails']='Dettagli ACL personalizzati'; $lang['D1AllInOne']='Tutti gli scontri in una singola gara'; $lang['DailySchedule']='Programma quotidiano'; $lang['DATABASE NOT REACHABLE']='DATABASE ONLINE NON RAGGIUNGIBILE'; @@ -298,6 +305,8 @@ $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='Predefinito VI'; $lang['Delayed']='Ritardo(-1 azzera)'; +$lang['DeleteAclRule']='Eliminare la regola ACL'; +$lang['DeleteAclUser']='Elimina utente ACL'; $lang['DeleteAwarded']='Cancella Premiati'; $lang['DeleteChannel']='Rimuovi canale. Questo rimuoverà tutte le divisioni dal canale e il canale stesso.'; $lang['DeletePreviousArchers']='Cancella Arcieri non presenti in elenco'; @@ -376,7 +385,7 @@ $lang['EmailScorecardShort']='Sommario dei punteggi'; $lang['EmailsToSend']='Email a cui spedire'; $lang['EmailSuccessfull']='L\'email è stata mandata con successo a $a'; -$lang['EnableAccess']='Abilita/Disabilita gestione controllo'; +$lang['EnableAccess']='Abilita/Disabilita Gestione Controllo Accessi'; $lang['EnableAddOns']='Abilita/disabilita i componenti aggiuntivi'; $lang['Ends']='Volée'; $lang['EndsOffset']='Spostamento delle volée'; @@ -410,6 +419,7 @@ $lang['EvNameTranslated']='Evento Tradotto'; $lang['Export2Fitarco']='Esportazioni per Fitarco'; $lang['ExportAndSend']='Esporta e Invia Automaticamente'; +$lang['ExportEndpoint']='URL Destinatario (URL di base di I@nseo)'; $lang['ExportEntries']='Esporta Partecipanti'; $lang['ExportICS']='Esporta file iCal (.ics)'; $lang['ExportInstructions']='Per eseguire l\'esportazione e la spedizione in automatico dei dati occorre compilare la seguente form.'; @@ -485,6 +495,13 @@ $lang['FlightsTotals']='Totali'; $lang['FlightsUpdateSetup']='Aggiorna configurazione'; $lang['FollowHHT']='Mostra eventi degli HHT'; +$lang['FontFamily']='Famiglia di caratteri CSS'; +$lang['FontFile']='File di caratteri'; +$lang['FontName']='Nome del carattere'; +$lang['FontSample']='Campione di caratteri'; +$lang['FontStyle']='Stile di carattere CSS'; +$lang['FontWarning']='Supporta solo i caratteri TTF'; +$lang['FontWeight']='Peso del carattere CSS'; $lang['FOP-ODS']='Campo di gara (ODS)'; $lang['ForceAccreditation']='Forza accreditamento'; $lang['ForceOldPhotos']='Includi vecchie foto'; @@ -518,7 +535,7 @@ $lang['Hour']='Ora'; $lang['I-Session']='Scontri Individuali'; $lang['IanseoDbVersionTooOld']='La versione del DB ianseo è più vecchia di quella dell\'Infosystem'; -$lang['IANSEOVersion']='Versione IANSEO'; +$lang['IANSEOVersion']='Versione I@NSEO'; $lang['IdCard']='Accrediti'; $lang['Image']='Immagine'; $lang['ImageChecked']='Immagine controllata'; @@ -530,7 +547,7 @@ $lang['IncompatibleVersions']='Non è stato possibile importare la gara perché è più recente di Ianseo.
    Aggiorna Ianseo all\'ultimo rilascio da $a.'; $lang['IndClEvent']='Classe Individuale'; $lang['IndFin']='Individuale - Fasi Finali'; -$lang['IndFinEvent']='Finali Individuale'; +$lang['IndFinEvent']='Finali Individuali'; $lang['IndividualLoaded']='Scontri individuali caricati per il programma {$a}'; $lang['IndoorTourCategory']='Gara Indoor'; $lang['IndQual']='Individuale - Class. di Classe'; @@ -544,8 +561,8 @@ $lang['IRM-10']='DNS-Non ha iniziato la gara'; $lang['IRM-15']='DSQ-Squalificato'; $lang['IRM-20']='DQB-Squalificato per comportamento antisportivo'; -$lang['IRM-5']='DNF-Non ha finito la gara'; -$lang['IRM-7']='DNF-Non ha finito la gara(non compare in classifica)'; +$lang['IRM-5']='DNF-Non ha finito la gara (si rank)'; +$lang['IRM-7']='DNF-Non ha finito la gara (no rank)'; $lang['IrmStatus']='Stato IRM'; $lang['IrmUpdateIndAndTeams']='Aggiorna manualmente la Ranking Individuale e a Squadre'; $lang['IrmUpdateIndividual']='Aggiorna manualmente la Ranking Individuale'; @@ -588,6 +605,7 @@ $lang['LocRuleDefaultNo']='Default'; $lang['LocRuleModifiedNo']='Elementi Modificati'; $lang['LocRuleValidNo']='Elementi NON Modificati'; +$lang['Login']='Login'; $lang['LogisticResp']='Responsabile dei Trasporti'; $lang['LogMessage']='Messaggio di registro'; $lang['LogoB']='Immagine in Basso (proporzioni per occupare tutto lo spazio: carta A4 --> 19:1, carta Letter -> 20:1)'; @@ -600,6 +618,7 @@ $lang['LUE-CAN']='Canada'; $lang['LUE-FITA']='World Archery'; $lang['LUE-FRA']='Francia'; +$lang['LUE-GBR']='Archery GB'; $lang['LUE-ITA']='Italia'; $lang['LUE-ITA_e']='Italia (esordienti)'; $lang['LUE-ITA_i']='Italia (categorie indoor)'; @@ -641,7 +660,8 @@ $lang['ManageByes']='Gestisci i Bye'; $lang['ManAthStatus']='Gestione Stato Arcieri'; $lang['ManColors']='Gestione colori'; -$lang['ManDistances']='Gestione distanze'; +$lang['MandatoryLoginACL']='Forza la Richiesta di accesso per un indirizzo IP non registrato'; +$lang['ManDistances']='Gestisci distanze'; $lang['ManDivClass']='Gestione Divisioni/Classi'; $lang['ManMatchArr4Phase']='Gestione frecce per set'; $lang['ManPrices']='Gestione Prezzi'; @@ -755,7 +775,7 @@ $lang['Officials']='Personale sul Campo'; $lang['OldStyleElimination']='Vecchio modello Eliminatorie 3D/Field'; $lang['OnePlace']='1 Posto'; -$lang['OnlineId']='Identificativo'; +$lang['OnlineId']='ID'; $lang['OnlyAccredited']='Solo se accreditato'; $lang['OnlyMissing']='Solo i mancanti'; $lang['OnlyPaid']='Solo se pagato'; @@ -791,9 +811,11 @@ $lang['OrisStatsIndividual']='Statistiche Individuali (C85A)'; $lang['OrisStatsTeam']='Statistiche Squadre (C85B+C)'; $lang['OrisTeamList']='Elenco squadre ORIS'; +$lang['OtherCountriesCoachingToo']='Includere gli Iscritti di altri paesi nella selezione degli Allenatori'; $lang['OtherTourCategory']='Altro'; $lang['OutdoorTourCategory']='Gare all\'aperto'; $lang['OverwritePreviousArchers']='Sovrascrivi gli Arcieri Precedenti'; +$lang['OvrBioAchievements']='Risultati degli atleti'; $lang['OvrMatchesMessages']='Segnali OVR degli scontri'; $lang['OvrRefresh']='Aggiorna pagina (senza inviare dati)'; $lang['OvrSendSerial']='Invia a OVR (Seriale)'; @@ -815,7 +837,7 @@ $lang['PersonList']='Elenco del Personale sul Campo'; $lang['PhaseBlock_0']='Elenchi partecipanti'; $lang['PhaseBlock_1']='Qualificazione'; -$lang['PhaseBlock_10']='Impostazioni dei tiri'; +$lang['PhaseBlock_10']='Impostazioni dei raggruppamenti tipo Vegas'; $lang['PhaseBlock_11']='Girone Robin'; $lang['PhaseBlock_2']='Gironi Eliminatori'; $lang['PhaseBlock_3']='Elim. e Finali Individuali'; @@ -923,7 +945,7 @@ $lang['RelatedMatchTime']='Tempo scontro correlato'; $lang['Reload']='Ricaricare'; $lang['ReloadTime']='Ricarica tempo'; -$lang['RememberPwd']='Ricorda le password'; +$lang['RememberPwd']='Ricorda la password'; $lang['RemoveStars']='Rimuovi tutto *'; $lang['ReplicaServer']='Server di replica $a'; $lang['ReplicaServerNew']='Nuovo server di replica'; @@ -932,10 +954,10 @@ $lang['ReportCopy2']='Copia per la società'; $lang['ReportCopy3']='Copia per la federazione'; $lang['RePrint']='Stampa di nuovo'; -$lang['RequestAuthCode']='Inserisci una password di tua scelta'; -$lang['RequestDisclaimer']='L\'invio della mail non implica la sua accettazione. Il servizio viene offerto così com\'è e può essere sospeso in qualunque momento senza preavviso. Se una competizione non ha risultati (per esempio qualificazioni) dopo la fine della gara può essere cancellata senza preavviso.'; +$lang['RequestAuthCode']='Inserisci una password a tua scelta'; +$lang['RequestDisclaimer']='L\'invio della mail non implica la sua accettazione. Il servizio viene offerto così com\'è e può essere sospeso in qualunque momento senza preavviso. Se una competizione non ha risultati (per esempio Classifiche di Classe) dopo la fine della gara, potrà essere cancellata senza preavviso.'; $lang['RequestedDescription']='Questi campi DEVONO essere presenti nel file. Il separatore dei campi è il tabulatore, il separatore dei record è il ritorno a capo.'; -$lang['RequestEmail']='Email del Responsabile Risultati'; +$lang['RequestEmail']='Email del Responsabile dei Risultati'; $lang['RequestHeader']='Vorrei ricevere i codici di accesso per questa competizione (RICORDA DI INSERIRE UNA PASSWORD!):'; $lang['ResetBadges']='Azzeramento dello stato di stampa'; $lang['ResetBeforeSO']='Ripristina i dati alla situazione prima dello spareggio'; @@ -946,7 +968,7 @@ $lang['ResultIndAbsSnap']='Fase di Qualificazione - Classifica Snapshot Individuale'; $lang['ResultIndClass']='Classifica di Classe - Individuale'; $lang['ResultIndClassSnap']='Classifica Snapshot di Classe - Individuale'; -$lang['ResultIndSubClass']='Risultati per categorie'; +$lang['ResultIndSubClass']='Classifica per categorie'; $lang['ResultResp']='Responsabile dei Risultati'; $lang['Results']='Risultati'; $lang['ResultSqAbs']='Fase di Qualificazione - Classifica a Squadre'; @@ -963,6 +985,7 @@ $lang['RunningEvents']='Impostazione degli eventi "Running"'; $lang['RunningTotal']='Totale cumulativo'; $lang['RunNumber']='Esegui $a'; +$lang['SaveSelectionAsFile']='Salva la selezione come File'; $lang['SB-Record']='Migliore stagionale'; $lang['ScanAthleteFirst']='Scansiona prima l\'atleta'; $lang['SchAddRank']='Aggiungi classifica qualificazione'; @@ -1062,7 +1085,7 @@ $lang['ShowChildren']='Mostra gli Eventi Collegati'; $lang['ShowCountry2']='Mostra Paese 2'; $lang['ShowCountry3']='Mostra Paese 3'; -$lang['ShowDisable']='Mostra Sedie a rotelle'; +$lang['ShowDisable']='Mostra sedia a rotelle'; $lang['ShowEmail']='Mostra Email'; $lang['ShowIanseoMenu']='Mostra Menù Ianseo'; $lang['ShowLocalCode']='Mostra Identificativo Locale'; @@ -1090,7 +1113,7 @@ $lang['SOTruncate']='Numero di lettere'; $lang['Special']='Premio speciale'; $lang['SpecialFilter']='Filtro speciale (vedi codice)'; -$lang['SpecialImports']='Importazioni Speciali
    Alcune funzionalità non sono documentate e riservate ai partner I@ANSEO (Contatta la tua persona di riferimento per la documentazione)'; +$lang['SpecialImports']='Importazioni Speciali
    Alcune funzionalità non sono documentate e riservate ai partner I@NSEO (Contatta la tua persona di riferimento per la documentazione)'; $lang['Split']='File divisi'; $lang['SportPres']='Sport Presentation'; $lang['Spotter']='Spotter'; @@ -1167,7 +1190,7 @@ $lang['Subject']='Soggetto'; $lang['SubTitle']='Sottotitolo'; $lang['SuggestedFlag']='Bandiera suggerita'; -$lang['SupportIanseo']='Considera l\'idea di supportare Ianseo: vai sul sito www.ianseo.net e premi sul pulsante "donate" :)'; +$lang['SupportIanseo']='Considera l\'idea di supportare I@nseo: vai sul sito www.ianseo.net e premi sul pulsante "PayPal" o "Stripe" :)'; $lang['SVGFile']='File SVG'; $lang['SwapOpponents']='Scambia avversari'; $lang['SwitchToAscii']='Traslittera in ASCII'; @@ -1277,21 +1300,21 @@ $lang['TVContentTextDescr']='Inserisci un testo al posto di un file. Il testo può essere in formato HTML'; $lang['TVContentUpload']='File Multimediale'; $lang['TVContentUploadDescr']='File da caricare come contenuto multimediale'; -$lang['TVCss3Arrows']='Colpito'; -$lang['TVCss3Athlete']='Atleta'; +$lang['TVCss3Arrows']='N°Frecce tirate'; +$lang['TVCss3Athlete']='Cognome e Nome atleta'; $lang['TVCss3BgColor1-even']='sfondo
    (riga 1 - pari)'; $lang['TVCss3BgColor1-odd']='sfondo
    (riga 1 - dispari)'; $lang['TVCss3BgColor2-even']='sfondo
    (riga 2 - pari)'; $lang['TVCss3BgColor2-odd']='sfondo
    (riga 2 - dispari)'; $lang['TVCss3BottomRow']='Riga inferiore'; -$lang['TVCss3Category']='Categoria (lungo)'; +$lang['TVCss3Category']='Divisione e Classe (lungo)'; $lang['TVCss3CategoryCode']='Categoria (codice)'; $lang['TVCss3CountryBlock']='Blocca Nazione'; -$lang['TVCss3CountryCode']='Prefisso internazionale Nazione'; -$lang['TVCss3CountryDescr']='Nome del paese'; +$lang['TVCss3CountryCode']='Codice Società/Nazione'; +$lang['TVCss3CountryDescr']='Nome Società/Nazione'; $lang['TVCss3Defaults']='Impostazioni predefinite per tutte le pagine. Usa la sintassi CSS3 per l\'elemento'; $lang['TVCss3DistPos']='Rank di Distanza'; -$lang['TVCss3DistScore']='Distanza dei punteggi'; +$lang['TVCss3DistScore']='Punteggi di distanza'; $lang['TVCss3Divider']='Separatore'; $lang['TVCss3EndPoints']='Punti Volée'; $lang['TVCss3Flag']='Bandiera (img)'; @@ -1300,13 +1323,13 @@ $lang['TVCss3FontColor1-odd']='colore
    (riga 1 - dispari)'; $lang['TVCss3FontColor2-even']='colore
    (riga 2 - pari)'; $lang['TVCss3FontColor2-odd']='colore
    (riga 2 - dispari)'; -$lang['TVCss3FontName']='font'; +$lang['TVCss3FontName']='Carattere'; $lang['TVCss3FontRev1-even']='colore inverso
    (riga 1 - pari)'; $lang['TVCss3FontRev1-odd']='colore inverso
    (riga 1 - dispari)'; $lang['TVCss3FontRev2-even']='colore inverso
    (riga 2 - pari)'; $lang['TVCss3FontRev2-odd']='colore inverso
    (riga 2 - dispari)'; -$lang['TVCss3FontSize']='dimensione del font'; -$lang['TVCss3Gold']='Finale Oro'; +$lang['TVCss3FontSize']='dimensione del carattere'; +$lang['TVCss3Gold']='Totale Ori'; $lang['TVCss3Headers']='Intestazioni di colonna'; $lang['TVCss3IdAthletes']='ID arcieri'; $lang['TVCss3IdPanel']='ID mezza riga'; @@ -1319,22 +1342,23 @@ $lang['TVCss3MainContent']='Soddisfare'; $lang['TVCss3Management']='Gestione CSS'; $lang['TvCss3Page']='Pagina in CSS'; -$lang['TVCss3Rank']='Rank'; +$lang['TVCss3Rank']='Posizione in Classifica'; $lang['TVCss3RankDown']='Rank in giù'; $lang['TVCss3RankMinus']='Rank S.O.'; $lang['TVCss3RankNone']='Nessuna Rank'; $lang['TVCss3RankOld']='Vecchia Rank'; $lang['TVCss3RankUp']='Rank in alto'; -$lang['TVCss3Score']='Punteggio'; +$lang['TVCss3Schedule']='Programma'; +$lang['TVCss3Score']='Punteggio Totale'; $lang['TVCss3Session']='Sessione'; $lang['TVCss3SpecificSettings']='Questa pagina ha specifiche impostazioni. Usa la sintassi CSS3 per l\'elemento'; $lang['TVCss3SubTitle']='Sottotitolo'; -$lang['TVCss3Target']='Bersaglio'; +$lang['TVCss3Target']='Piazzola'; $lang['TVCss3TgtAssign']='Blocco di posizione assegnato'; $lang['TVCss3TgtBlock']='Blocca Bersaglio'; $lang['TVCss3Title']='Titolo'; $lang['TVCss3TopRow']='Riga superiore'; -$lang['TVCss3XNine']='XNove'; +$lang['TVCss3XNine']='Totale X/9'; $lang['TVDefault']='Predefinito'; $lang['TVDefault-Scroll']='Torneo: caratteri e colori predefiniti
    Multimedia: Tempo di scorrimento'; $lang['TVDefaultScroll']='Tempo di scorrimento predefinito'; @@ -1370,7 +1394,7 @@ $lang['TVNoFill2NotChange']='Lasciare vuoto per non modificare'; $lang['TVNumInd']='Numero Righe degli Individuali'; $lang['TVNumRows']='Numero di righe da visualizzare'; -$lang['TVNumRowsDescr']='saranno visualizzate solo queste righe'; +$lang['TVNumRowsDescr']='Saranno visualizzate solo queste righe. Se 0 saranno visualizzate tutte'; $lang['TVNumTeam']='Numero Righe delle Squadre'; $lang['TVOutNoRules']='Nessuna Regola Impostata'; $lang['TVOutNoRulesWithStart']='Non è stata impostata nessuna Regola utilizzabile!'; @@ -1420,6 +1444,7 @@ $lang['TVViewNationNameDescr']='Visualizza i nomi completi delle squadre'; $lang['TVViewPartials']='Mostra le distanze'; $lang['TVViewPartialsDescr']='Visualizza i risultati ottenuti in ogni distanza'; +$lang['TvViewSCHED']='Mostra Programma'; $lang['TvViewTEAM']='Vedi colonna Club/Nazione'; $lang['TvViewTIT2ROWS']='Titolo su 2 righe'; $lang['TvViewTOT']='Vedi Punteggio finale'; @@ -1492,7 +1517,9 @@ $lang['UserDetails']='Dettagli dell\'utente'; $lang['UserEnabled']='Abilitato'; $lang['UserName']='Nome utente'; -$lang['UserPassword']='Password'; +$lang['UserPassword']='Nuova Password'; +$lang['UserPasswordOld']='Vecchia Password'; +$lang['UserPasswordRetype']='Digitare nuovamente la nuova password'; $lang['UseSubClasses']='Applica a categorie specifiche'; $lang['ValidClass']='Classi Ammesse'; $lang['ValidDivisions']='Div. ammesse (vuoto=tutti)'; @@ -1518,7 +1545,7 @@ $lang['WarmUpMins']='Riscaldamento (min.)'; $lang['WarmupTargets']='Bersagli riscaldamento'; $lang['Warning']='Attenzione!'; -$lang['WheelChair']='Sedie a rotelle'; +$lang['WheelChair']='Sedia a rotelle'; $lang['WheelchairShort']='W'; $lang['Wikipedia']='Wikipedia'; $lang['WR-Record']='Record Mondiale'; diff --git a/src/Common/Languages/ja/Api.php b/src/Common/Languages/ja/Api.php index 06210d44..12d451a7 100644 --- a/src/Common/Languages/ja/Api.php +++ b/src/Common/Languages/ja/Api.php @@ -1,25 +1,28 @@ >>'; $lang['API-Group']='グループ'; $lang['API-TargetGrouping']='ターゲットグルーピング'; $lang['API-Targets']='ターゲット'; $lang['AutoImport']='自動インポート'; $lang['CmdDelete']='削除'; $lang['CmdImport']='インポート'; +$lang['ConfirmGenerateZip']='セッション$a[1]のすべての$a[0]を含むZIPファイルを生成していることを確認してください。'; $lang['Controller']='コントローラ'; -$lang['Desc-Let-1']='現エンドのインポート完了'; -$lang['Desc-Let-2']='現エンドに未入力あり'; -$lang['Desc-Let-3']='現エンドのインポート準備完了'; +$lang['Desc-Let-1']='インポート完了'; +$lang['Desc-Let-2']='未入力の点数あり'; +$lang['Desc-Let-3']='点数入力完了'; $lang['Desc-Let-4']='点数入力中'; $lang['Desc-Let-B']='現在のエンドのインポート完了'; $lang['Desc-Let-C']='現在のエンドで未入力の素点あり'; -$lang['Desc-Let-F']='マッチ終了'; +$lang['Desc-Let-F']='マッチ終了'; $lang['Desc-Let-G']='空欄'; -$lang['Desc-Let-O']='異なるエンドでの得点'; +$lang['Desc-Let-O']='異なるエンドでの入力'; $lang['Desc-Let-R']='異なるセッションでの得点'; $lang['Desc-Let-Y']='インポート可能なエンド'; $lang['Desc-Let-Z']='点数入力中'; +$lang['DevDisconnected']='切断されました'; $lang['DistanceNum']='距離 $a'; $lang['FieldMonitor']='フィールドモニター'; $lang['FlashCodeDistance']='$aは、 @@ -40,7 +43,6 @@ $lang['ISK-DeviceEnabled']='有効か否か'; $lang['ISK-DeviceId']='デバイスID'; $lang['ISK-DeviceIpAddress']='IPアドレス'; -$lang['ISK-DeviceLastSeen']='戻る'; $lang['ISK-DeviceStatus']='デバイス ステータス'; $lang['ISK-DeviceStatusWanted']='新規ステータスを強制'; $lang['ISK-DeviceUsed']='使用中'; @@ -58,7 +60,7 @@ $lang['ISK-Live-Name']='Ianseoスコアキーパー LIVE'; $lang['ISK-Name']='Ianseoスコアキーパー'; $lang['ISK-Ng-Name']='Ianseoスコアキーパー NG'; -$lang['ISK-NG-QRCode']='IanseoスコアキーパーNG用QRコードを印刷'; +$lang['ISK-NG-QRCode']='Ianseoスコアキーパー NG用QRコードを印刷'; $lang['ISK-NgLive-Name']='Ianseoスコアキーパー NG - LIVE'; $lang['ISK-NgPro-Name']='Ianseoスコアキーパー NG - PRO'; $lang['ISK-NoCompCode']='大会コード欠落'; @@ -71,6 +73,8 @@ $lang['ISK-Sequence']='大会進行予定'; $lang['ISK-ServerUrl']='Ianseo用サーバーURL'; $lang['ISK-ServerUrlPin']='ISK用大会暗証番号'; +$lang['ISK-SETUP-11']='ISK-NG Liteセットアップ'; +$lang['ISK-SETUP-12']='ISK-NG Proセットアップ'; $lang['ISK-showPictures']='画像を表示'; $lang['ISK-SocketIP']='Web Socket IP(デバイス用)'; $lang['ISK-SocketIPMaster']='Web Socket IP(マスター用)'; diff --git a/src/Common/Languages/ja/Awards.php b/src/Common/Languages/ja/Awards.php index 3ac56611..1106f60b 100644 --- a/src/Common/Languages/ja/Awards.php +++ b/src/Common/Languages/ja/Awards.php @@ -1,17 +1,4 @@ \ No newline at end of file diff --git a/src/Common/Languages/ja/BackNumbers.php b/src/Common/Languages/ja/BackNumbers.php index 308276e9..8ad73b97 100644 --- a/src/Common/Languages/ja/BackNumbers.php +++ b/src/Common/Languages/ja/BackNumbers.php @@ -3,6 +3,7 @@ $lang['Access']='アクセスエリア'; $lang['AccreditationMatches']='このバッチは特定のカテゴリーに適用されます:'; $lang['AutoCHK-Code']='大会コード'; +$lang['AutoCHK-Confirm']='チェックインを確認'; $lang['BackNumbers']='ゼッケン'; $lang['BadgeComplete']='すべてのゼッケン'; $lang['BadgeCreate']='新規作成'; @@ -31,6 +32,8 @@ $lang['FamCamel']='姓2'; $lang['FamCaps']='姓3'; $lang['Flag']='国旗・クラブ'; +$lang['GivCamel']='GivenName'; +$lang['GivCaps']='GIVENNAME'; $lang['I-Badge']='個人マッチ戦用ゼッケン'; $lang['Image']='画像'; $lang['Images']='画像(ロゴ等)設定'; @@ -39,14 +42,19 @@ $lang['IncludeSession']='セッションを含める'; $lang['Italic']='イタリック'; $lang['NewBadgeName']='ゼッケン名編集'; +$lang['Picture']='選手写真'; +$lang['Portrait']='ポートレート'; $lang['Q-Badge']='予選ラウンド用ゼッケン'; $lang['RandomImage']='ランダム画像'; $lang['Ranking']='クオリフィケーションランク'; -$lang['ReadSeparator']='セパレータを読込む'; +$lang['ReadSeparator']='セパレーターを読み込む'; $lang['ResetBarcodeSeparator']='バーコードセパレータをリセット'; $lang['Schedule']='スケジュール'; $lang['Session']='クオリフィケーションセッション'; $lang['T-Badge']='団体マッチ戦用ゼッケン'; $lang['Target']='的番号5'; $lang['TeamComponents']='チームメンバー'; +$lang['ToBottom']='大会ロゴ(フッター)'; +$lang['ToLeft']='大会ロゴ(左ヘッダー)'; +$lang['ToRight']='大会ロゴ(右ヘッダー)'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ja/Common.php b/src/Common/Languages/ja/Common.php index 38631b2c..78a6a4f5 100644 --- a/src/Common/Languages/ja/Common.php +++ b/src/Common/Languages/ja/Common.php @@ -45,7 +45,7 @@ $lang['Bye']='-バイ-'; $lang['CB']='コンパウンドボウ'; $lang['ChangeComponents']='チーム編成交代'; -$lang['ChangeElimWarning']='注意!エリミネーション条件を編集すると、エリミネーションとファイナルの入力データが全てリセットされます。'; +$lang['ChangeElimWarning']='注意!イリミネーション条件を編集すると、イリミネーションとファイナルの入力データが全てリセットされます。'; $lang['CheckUpdate']='IANSEOのアップデートを実施してから10日以上経過しています。インターネット接続時にアップデートを確認して下さい。クリックして確認.
    Ianseo Team'; $lang['Class']='クラス'; $lang['Close']='閉じる'; @@ -78,7 +78,6 @@ $lang['DateFmtDB']='%Y年%c月%e日'; $lang['DateFmtDBshort']='%m-%d'; $lang['DateFmtMoreDays']='$a[0]〜$a[1]'; -$lang['DateViewFmt']='yyyy年mm月dd日'; $lang['DayOfWeekLong_0']='日曜日'; $lang['DayOfWeekLong_1']='月曜日'; $lang['DayOfWeekLong_2']='火曜日'; @@ -86,7 +85,6 @@ $lang['DayOfWeekLong_4']='木曜日'; $lang['DayOfWeekLong_5']='金曜日'; $lang['DayOfWeekLong_6']='土曜日'; -$lang['DayOfWeek_0']='日1'; $lang['DayOfWeek_1']='月'; $lang['DayOfWeek_2']='火'; $lang['DayOfWeek_3']='水'; @@ -137,13 +135,14 @@ $lang['JudgeNotes']='審判注記'; $lang['JW']='ジュニア女子'; $lang['LB']='ロングボウ'; +$lang['LiveOff']='Live Flag解除'; +$lang['LiveOn']='Live Flag設定'; $lang['M']='男子'; $lang['ManFinAthTargetInd']='個人決勝ラウンド_ターゲットあたりの選手数設定'; $lang['ManFinAthTargetTeam']='ターゲット'; $lang['ManFinScheduleInd']='個人決勝スケジュール'; $lang['ManFinScheduleTeam']='団体決勝スケジュール'; $lang['ManSetPoint']='すべてのセットのスコアを管理する'; -$lang['ManTie']='タイブレークを管理する'; $lang['MatchModeScoring']='スコアリング方法'; $lang['MatchMode_0']='累計'; $lang['MatchMode_1']='セットシステム'; @@ -204,7 +203,7 @@ $lang['MenuLM_Final report']='報告書'; $lang['MenuLM_Final Rounds']='決勝ラウンド'; $lang['MenuLM_FinalFOPChoose']='決勝ラウンド射場設定一覧'; -$lang['MenuLM_GetScoreBarcode']='点数バーコードの読込み'; +$lang['MenuLM_GetScoreBarcode']='スコアカードチェック'; $lang['MenuLM_GetScoreBarcodeReport']='指示バーコード表示'; $lang['MenuLM_Header for Result Printouts']='リザルトヘッダー編集'; $lang['MenuLM_HTT']='HTT'; @@ -279,7 +278,6 @@ $lang['MenuLM_Training']='ウォームアップスケジュール設定'; $lang['MenuLM_TV Output']='TV出力'; $lang['MenuLM_TVAdvanced']='TV出力(アドバンス設定)'; -$lang['MenuLM_Twitter']='ツイッター'; $lang['MenuLM_Update']='Ianseoを更新する'; $lang['MenuLM_UpdateWeb']='ライブアップデート'; $lang['MenuLM_Versioning']='書類バージョン管理'; @@ -294,7 +292,6 @@ $lang['Month_11']='12月'; $lang['Month_2']='3月'; $lang['Month_3']='4月'; -$lang['Month_4']='May'; $lang['Month_5']='6月'; $lang['Month_6']='7月'; $lang['Month_7']='8月'; @@ -304,7 +301,7 @@ $lang['MsgInitFinalGridsError']='警告!このイベントの対戦表は既に作成済みです。再作成しますか?'; $lang['MultiTeamMaxNo']='チーム生成最大数(0:無制限)'; $lang['MW']='マスター女子'; -$lang['Nation']='所属'; +$lang['Nation']='所属先'; $lang['NextMatchNames']='次フェーズ選手'; $lang['NextMatchScores']='次フェーズ用スコアカード'; $lang['NextPhase']='次フェーズ'; @@ -326,16 +323,14 @@ $lang['Progr']='順序'; $lang['QualRound']='ランキングラウンド'; $lang['Rank']='予選順位'; -$lang['RankingInd']='イリミネーション&決勝個人'; +$lang['RankingInd']='個人戦ランキング'; $lang['Rankings']='ランキング'; -$lang['RankScoreShort']='RR'; +$lang['RankingSq']='団体戦ランキング'; +$lang['RankScoreShort']='予選順位'; $lang['RB']='リカーブ'; $lang['RoundDefinition']='ラウンド'; $lang['Scheduler']='スケジューラー'; -$lang['Score1Page1Athlete']='個人マッチスコア'; -$lang['Score1Page1Match']='マッチスコア一覧'; -$lang['ScoreDrawing']='組み合わせ一覧'; -$lang['ScoreFilled']='素点入力済みのスコアカードを印刷'; +$lang['ScoreFilled']='素点入力済みスコアカードを印刷'; $lang['ScoreIncEmpty']='対戦者がいない場合も印刷する'; $lang['Scorer']='記録者'; $lang['SelectAll']='全て選択'; @@ -351,7 +346,6 @@ $lang['SourceSession']='セッション選択'; $lang['Status_1']='出場可能(ドキュメントチェック済)'; $lang['Status_5']='ステータス不明(大会出場日がマッチしません)'; -$lang['Status_8']='出場不可(ドキュメントに記入漏れがあります'; $lang['Status_9']='出場不可'; $lang['Target']='的番号'; $lang['TargetFinalInd']='個人決勝 的番'; @@ -374,15 +368,11 @@ $lang['TrgCOOutdoor']='アウトドア(6リング)'; $lang['TrgCOOutdoorSmall']='アウトドア(6-X)'; $lang['TrgField']='フィールド'; -$lang['TrgHMOutComplete']=' '; -$lang['TrgHunterNor']=' '; $lang['TrgIndComplete']='インドア(1-大10)'; $lang['TrgIndSmall']='インドア(6-大10)'; -$lang['TrgNfaaInd']=' '; $lang['TrgOutdoor']='アウトドア(1-X)'; $lang['TVEntryList']='エントリーリスト(TV表示用)'; $lang['U']='ユニセック'; -$lang['UnexpectedError']='予期せぬエラ'; $lang['VF']='スーパーマスター女子'; $lang['VM']='スーパーマスター男子'; $lang['W']='女子'; diff --git a/src/Common/Languages/ja/Errors.php b/src/Common/Languages/ja/Errors.php index 7e44ff24..04938d7c 100644 --- a/src/Common/Languages/ja/Errors.php +++ b/src/Common/Languages/ja/Errors.php @@ -1,5 +1,4 @@ 情報に誤りがある場合は、「キャンセル」を押して受付に進んでください。'; $lang['AutoImportSettings']='上級者用機能です
    デフォルト設定を変更した場合、順位等の記録が不正確になる可能性があります。
    手動設定としたものは、ianseo.netへのアップロードや記録の印刷・配信の前に、順位等の再計算を行う必要があります。'; $lang['HomePage']='このページでは大会を選択するか新規登録が出来ます。'; $lang['ISK-LockedSessionHelp']='{$a} アイコンは各々のセッションにおける端末の使用可否を示します。'; $lang['ISK-ServerUrlPin']='暗証番号は公開しないで下さい
    ISKで大会にアクセスするための数字4桁の暗証番号を設定して下さい。
    暗証番号を設定すると、スコアカードのQRコードを読み込む場合のみ使用可能になります。
    ISKに手動入力する場合は、大会コードは以下の通りとなります。
    {$a}'; -$lang['ScoreBarCodeShortcuts']='スコアカードに印字されたバーコードを読み込んで下さい。
    バーコード欄に、#選手名、と入力することにより手動で選手を検索することが出来ます。
    バーコード欄に、@的番号、と入力することによりその的を検索出来ます。ラウンド、セッションは必ず選択して下さい。的番号は3桁(3桁未満の時は頭に0を追加)で入力します。'; +$lang['ScoreBarCodeShortcuts']='スコアカードに印字されたバーコードを読み込んで下さい。
    バーコード欄に、#選手名、と入力することにより手動で選手を検索することが出来ます。
    バーコード欄に、@的番号、と入力することによりその的を検索出来ます。ラウンド、セッションを必ず選択して下さい。'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ja/IOC_Codes.php b/src/Common/Languages/ja/IOC_Codes.php index 33e446a1..24f1aeab 100644 --- a/src/Common/Languages/ja/IOC_Codes.php +++ b/src/Common/Languages/ja/IOC_Codes.php @@ -1,27 +1,198 @@ \ No newline at end of file diff --git a/src/Common/Languages/ja/ISK-App.php b/src/Common/Languages/ja/ISK-App.php index 5b544a41..f1b1aafa 100644 --- a/src/Common/Languages/ja/ISK-App.php +++ b/src/Common/Languages/ja/ISK-App.php @@ -1,6 +1,7 @@ \ No newline at end of file diff --git a/src/Common/Languages/ja/Install.php b/src/Common/Languages/ja/Install.php index de90659f..c603b36c 100644 --- a/src/Common/Languages/ja/Install.php +++ b/src/Common/Languages/ja/Install.php @@ -1,5 +1,4 @@ 試合結果公開:
    インターネット接続があれば、試合結果をIanseoにフリーで公開することが出来ます。あなたの試合結果を世界に公開しましょう!大会情報が出来たら、接続コードを申請しましょう(メニュー «{$a}»)。'; $lang['Module']='モジュール'; @@ -18,12 +17,12 @@ $lang['SetOneClass']='全てひとつのクラス'; $lang['Setup-Default']='WA競技規則(日本の試合もこれを選択して下さい)'; $lang['Setup-PAR']='パラ大会(IPCルール)'; +$lang['SpecialUpdate']='Testing installation'; $lang['Start Ianseo']='IANSEOヘ移動'; $lang['Status']='ステータス'; -$lang['UpdatePrepared']='Ianseoの自動アップデートを行います。アップデートを行う前に、大会情報のバックアップをお願いします。アップデートは接続速度、アップデート内容により、時間がかかる場合があります。
    Ianseoオリジナル以外のファイルは≪Modules/Custom≫フォルダ内にあるものを除き、全て削除されるのでご注意下さい。'; +$lang['UpdatePrepared']='Ianseoの自動アップデートを行います。アップデートを行う前に、大会情報のバックアップをお願いします。アップデートは接続速度、アップデート内容により、時間がかかる場合があります。
    Ianseoオリジナル以外のファイルは、≪Modules/Custom≫フォルダ内にあるものを除き、全て削除されるのでご注意下さい。'; $lang['WhatIanseoDoes01']='WA競技規則に準拠: Ianseoは常に最新のWA競技規則に準拠しています。各国固有のルールに対応することも可能です。'; $lang['WhatIanseoDoes02']='サポート: サポートが必要な場合は、e-mailでご連絡下さい、$a: Ianseoチームより回答致します。(英語のみ対応)'; -$lang['WhatIanseoDoes03']='オンサイトトレーニングコース: Ianseo使用方法、活用方法に関するトレーニングコースを実施出来ますので、ご相談下さい。(有償、英語のみ)'; $lang['WhatIanseoDoes04']='寄付のお願い! Ianseoは無償のオープンソースソフトウエアです。Ianseoの開発継続にご協力をお願いします。Ianseoのホームページ $a で "Donate" ボタンを押して下さい。'; $lang['WhatIanseoDoes05']='ソーシャルメディア: Ianseoの $a ページにもアクセス下さい!'; $lang['WhatIanseoDoesTitle']='IANSEOシステムへようこそ!'; diff --git a/src/Common/Languages/ja/Languages.php b/src/Common/Languages/ja/Languages.php index 5bf5c71f..5b08397b 100644 --- a/src/Common/Languages/ja/Languages.php +++ b/src/Common/Languages/ja/Languages.php @@ -13,22 +13,10 @@ $lang['CA-Ev-CCMT']='コンパウンド キャデット男子団体'; $lang['CA-Ev-CCWT']='コンパウンド キャデット女子団体'; $lang['CA-Ev-CCX']='コンパウンド キャデットミックス団体'; -$lang['CA-Ev-CM']='コンパウンド男子'; $lang['CA-Ev-CMT']='コンパウンド 男子団体'; -$lang['CA-Ev-CW']='コンパウンド女子'; $lang['CA-Ev-CWT']='コンパウンド 女子団体'; $lang['CA-Ev-CX']='コンパウンド ミックス団体'; $lang['CA-Ev-MT']='男子団体'; -$lang['CA-Ev-RCM']='リカーブキャデット男子'; -$lang['CA-Ev-RCMT']='リカーブ キャデット 男子団体'; -$lang['CA-Ev-RCW']='リカーブ キャデット 女子'; -$lang['CA-Ev-RCWT']='リカーブ キャデット 女子団体'; -$lang['CA-Ev-RCX']='リカーブ キャデット ミックス団体'; -$lang['CA-Ev-RJM']='リカーブ ジュニア 男子'; -$lang['CA-Ev-RJMT']='リカーブ ジュニア 男子団体'; -$lang['CA-Ev-RJW']='リカーブ ジュニア 女子'; -$lang['CA-Ev-RJWT']='リカーブ ジュニア 女子団体'; -$lang['CA-Ev-RJX']='リカーブ ジュニア ミックス団体'; $lang['CA-Ev-RM']='リカーブ 男子'; $lang['CA-Ev-RMT']='リカーブ 男子団体'; $lang['CA-Ev-RW']='リカーブ 女子'; @@ -42,6 +30,7 @@ $lang['Languages']='選択可能な言語'; $lang['Module']='モジュール'; $lang['OK']='OK'; +$lang['Original']='Original'; $lang['Separatore']='セパレータ'; $lang['Translation']='翻訳'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ja/ODF.php b/src/Common/Languages/ja/ODF.php index cd33453a..6f52f5d5 100644 --- a/src/Common/Languages/ja/ODF.php +++ b/src/Common/Languages/ja/ODF.php @@ -1,9 +1,7 @@ \ No newline at end of file diff --git a/src/Common/Languages/ja/RoundRobin.php b/src/Common/Languages/ja/RoundRobin.php index 38dea047..f199d452 100644 --- a/src/Common/Languages/ja/RoundRobin.php +++ b/src/Common/Languages/ja/RoundRobin.php @@ -5,9 +5,6 @@ $lang['GroupName']='グループ名'; $lang['GroupNum']='グループ{$a}'; $lang['Groups']='グループ数'; -$lang['LevelName']='レベル名'; -$lang['LevelNum']='レベル {$a}'; -$lang['LevelsHelp']='レベル数'; $lang['QualifiedArchers']='予選通過者'; $lang['RegularBrackets']='標準ブラケット'; $lang['RoundNum']='ラウンド {$a}'; diff --git a/src/Common/Languages/ja/Tournament.php b/src/Common/Languages/ja/Tournament.php index 3496e081..fe242a9f 100644 --- a/src/Common/Languages/ja/Tournament.php +++ b/src/Common/Languages/ja/Tournament.php @@ -8,6 +8,7 @@ $lang['4R_Phase']='4回戦'; $lang['5Before']='5分前'; $lang['Acc']='有効にする'; +$lang['AccreditateAll']='すべて確認する'; $lang['Accreditation']='選手登録1'; $lang['AclAccreditation']='選手登録2'; $lang['AclAPI']='API'; @@ -19,10 +20,11 @@ $lang['AclOutput']='出力'; $lang['AclParticipants']='選手'; $lang['AclQualification']='クオリフィケーション'; +$lang['ACLReadWrite']='完全なアクセス権(読み込みと書き込み)'; $lang['AclRobin']='ラウンドロビン'; $lang['AclSpeaker']='実況ビュー'; $lang['AclTeams']='団体決勝'; -$lang['AdvancedParams']='アドバンスパラメータ'; +$lang['AdvancedParams']='アドバンスパラメーター'; $lang['AllDistances']='総て'; $lang['AllEvents']='全イベント'; $lang['AllRound']='全ラウンド'; @@ -31,7 +33,6 @@ $lang['AllsM']='すべて'; $lang['AllTargets']='すべてのターゲット'; $lang['AlternateMatch']='交互射ち'; -$lang['Announcer']='アナウンサー'; $lang['ArcherNotFound']='選手が見つかりません!'; $lang['ArcherSignature']='選手/エージェントサイン'; $lang['Areas']='アクセスエリア'; @@ -39,7 +40,7 @@ $lang['Area_2']='練習会場'; $lang['Area_4']='プレス'; $lang['Area_5']='テレビ'; -$lang['Area_6']='VIP用'; +$lang['Area_6']='VIP'; $lang['Arr4Set']='シューティング本数設定'; $lang['ArrowPhaseLegend1']='イリミネーションラウンドの詳細設定'; $lang['ArrowPhaseLegend2']='ファイナルラウンドの詳細設定'; @@ -51,6 +52,7 @@ $lang['AthButtLegend2']='ターゲット当たりのマッチ数'; $lang['AthleteList']='選手をインポート'; $lang['AuthCode']='パスワード'; +$lang['AutoMoveNext']='次の得点入力欄に自動で移動'; $lang['AutoTargetAssignment']='的番号オート設定'; $lang['AutoUploadToggle']='自動アップロードを有効にする。タイマーを設定して下さい。'; $lang['AvailableValues']='有効なカテゴリー'; @@ -71,7 +73,7 @@ $lang['BadgeType']='バッジ種類'; $lang['BadParams']='なんでやねん'; $lang['BarcodeMissing']='未入力バーコードを印刷'; -$lang['BF_Phase']='ブロンズマッチ'; +$lang['BF_Phase']='ブロンズメダルマッチ'; $lang['BigNames']='全画面印刷'; $lang['Birthdays']='生年月日'; $lang['Block_IP']='IPアドレス'; @@ -94,6 +96,8 @@ $lang['CatJury']='上訴委員'; $lang['CatOC']='運営委員'; $lang['ChairmanJudge']='審判長'; +$lang['ChairmanJudgeDeputy']='副審判長'; +$lang['ChairmanJury']='上訴委員長'; $lang['ChangeNationsNames']='所属先名称変更'; $lang['CheckScorecards']='スコアカードのチェック'; $lang['CheckTargetUpdate']='更新を確認'; @@ -104,7 +108,7 @@ $lang['CmdAdd']='追加'; $lang['CmdChange']='変更'; $lang['CmdDelete']='削除'; -$lang['CmdDeleteOnline']='www.ianseo.net上のファイルを削除'; +$lang['CmdDeleteOnline']='ianseo.net上のファイルを削除'; $lang['CmdExport']='エクスポート'; $lang['CmdImport']='インポート'; $lang['CmdSend']='送信'; @@ -116,6 +120,8 @@ $lang['CompleteSchedule']='全日程スケジュール'; $lang['CompVenue']='会場名'; $lang['Confirm']='修正確認'; +$lang['ConfirmEnd']='Confirm End'; +$lang['ConfirmMatch']='Confirm Match'; $lang['Contacts']='連絡先'; $lang['ControlMaterial']='用具検査'; $lang['CountryClubNames']='国名・クラブ名'; @@ -141,7 +147,8 @@ $lang['DNF']='DNF - 途中棄権'; $lang['DNS']='欠場'; $lang['DOB']='生年月日'; -$lang['Dos']='DoS'; +$lang['Dos']='DOS'; +$lang['DosAssistant']='副DOS'; $lang['DoubleSpace']='クロスボウ'; $lang['DQB']='DQB - 非スポーツマン行為により失格'; $lang['DrawType']='設定タイプ'; @@ -156,6 +163,7 @@ $lang['Export2Fitarco']='EXPファイルでエクスポート'; $lang['ExportNotes']='審判注記'; $lang['FamilyName']='苗字'; +$lang['FieldScorecard']='Field/3D スコアカード'; $lang['FieldTourCategory']='フィールド'; $lang['FilterOnDivCl']='部門・種別でフィルタ'; $lang['FilterOnDivClAdv']='部門・種別でフィルタ(RegExp)'; @@ -174,6 +182,7 @@ $lang['FlightsReset']='リセット'; $lang['FlightsTotals']='合計'; $lang['From']='開始'; +$lang['F_Phase']='ゴールドメダルマッチ'; $lang['GetArcInfo']='選手の生年月日、e-mailを表示'; $lang['GetCredentials']='オンラインコード申請'; $lang['GetCredentialsExplained']='大会コード申請に関して: @@ -186,11 +195,7 @@ $lang['I-Session']='個人マッチ戦'; $lang['Image']='画像'; $lang['ImgInfo']='利用可能フォーマット:PNG、JPG(最大256KB)'; -$lang['IndClEvent']='予選ラウンド_個人'; -$lang['IndFin']='個人戦 - 決勝ラウンド(マッチ戦)'; -$lang['IndFinEvent']='決勝-個人'; $lang['IndoorTourCategory']='インドア大会'; -$lang['IndQual']='個人戦 - 予選ラウンド'; $lang['IOCcode']='IOC国コード'; $lang['IRM-10']='欠場'; $lang['IRM-15']='失格'; @@ -198,6 +203,9 @@ $lang['IRM-5']='途中棄権'; $lang['IRM-7']='途中棄権(ランキング無し)'; $lang['IrmStatus']='IRM状況'; +$lang['Judge']='審判員'; +$lang['Jury']='上訴委員'; +$lang['KeyPress']='キーパッド入力モード'; $lang['LastUpdate']='最終更新日'; $lang['LegendSO']='シュートオフ及びコイントスの略号'; $lang['Length']='時間(分)'; @@ -235,7 +243,6 @@ $lang['MedalClass']='部門・種別リザルト-全メダル'; $lang['MedalIndClass']='部門・種別リザルト-個人メダル'; $lang['MedalSqClass']='部門・種別リザルト-団体メダル'; -$lang['MixedTeamFinEvent']='ミックス戦 - 決勝ラウンド'; $lang['MoveWinner2NextPhase']='勝者を次フェーズに進める'; $lang['MsgLookup4']='対戦者情報を表示'; $lang['MsgLookup5']='小計'; @@ -248,11 +255,13 @@ $lang['New']='新規作成'; $lang['NewTour']='新しい大会を作成'; $lang['NoAth2Manage']='選手情報が登録されていません!'; +$lang['NoDistance']='指定無し'; $lang['NoLocations']='開催場所を含めない'; $lang['Notes']='備考'; $lang['NoTour']='大会情報が選択されていません。'; $lang['NoTourExists']='大会情報がありません!'; $lang['Now']='現在'; +$lang['NumberOfEntriesByEvent']='出場者数(部門別)'; $lang['NumResult']='上位抽出(0:全リスト)'; $lang['NumSession']='セッション数'; $lang['NumTieAtPosition']='{$a[0]}選手が、{$a[1]}位タイです。'; @@ -320,10 +329,12 @@ $lang['ResultIndAbsSnap']='クオリフィケーションラウンド-個人'; $lang['ResultIndClass']='部門・種別リザルトリスト-個人'; $lang['ResultIndClassSnap']='部門・種別スナップショットリザルトリスト-個人'; +$lang['ResultResp']='記録長'; $lang['Results']='リザルト'; $lang['ResultSqAbs']='ランキングラウンド ー 団体'; $lang['ResultSqClass']='部門・種別リザルトリスト-団体'; $lang['ResultsRobin']='ラウンドロビン結果'; +$lang['ResVerifier']='記録委員'; $lang['Round#']='ラウンド $a'; $lang['RunningEv']='平均点順位リスト'; $lang['RunningEvents']='大会速報設定'; @@ -334,6 +345,7 @@ $lang['ScheduleFromDay']='指定日以降のスケジュール'; $lang['ScheduleNotes']='備考'; $lang['ScheduleToday']='本日のスケジュール'; +$lang['ScheduleUnfinished']='終了したセッションを除く'; $lang['SchIncFinalists']='決勝進出者の名前を含む'; $lang['Score']='点数'; $lang['Score1PageAllDist']='選手毎に全ての距離を1枚にまとめたスコアカード'; @@ -346,13 +358,12 @@ $lang['ScorecardsTeams']='チーム戦用スコアカード'; $lang['ScoreComplete']='標準スコアカード'; $lang['ScoreCompleteTotals']='標準スコアカード+ランニング合計'; -$lang['ScoreCutoff']='通過点'; $lang['ScoreFlags']='国旗・クラブ旗を追加'; $lang['ScoreLogos']='大会ロゴを追加'; $lang['ScorePrintMode']='スコアカードプリントアウト詳細設定'; $lang['ScoreTournament']='ヘッダーを追加する'; $lang['SelectSession']='セッション選択'; -$lang['Send2Ianseo']='www.ianseo.netにデータを送信する。'; +$lang['Send2Ianseo']='ianseo.netにデータを送信する。'; $lang['SendLogos']='大会のロゴ等のイメージ'; $lang['SeparateClasses']='種別に分け'; $lang['SeparateDivisions']='部門別に分け'; @@ -367,6 +378,7 @@ $lang['SetPoints']='セットポイント'; $lang['SetTotal']='セット小計'; $lang['Sex']='性別'; +$lang['SF_Phase']='準決勝'; $lang['ShortFemale']='女子'; $lang['ShortMale']='男子'; $lang['ShortUnisex']='U'; @@ -400,7 +412,6 @@ $lang['StatEvents']='統計(表彰・イベント)'; $lang['StatRecordsBroken']='新記'; $lang['StatRecordsStanding']='大会記録'; -$lang['Status']='ステータス'; $lang['StdORIS']='ORIS標準形式'; $lang['StickersBarcode']='バーコードを印刷'; $lang['StrCurrency']='通貨'; @@ -423,11 +434,7 @@ $lang['TargetJudgeSignature']='ターゲットジャッジサイン'; $lang['Targets']='ターゲット表示'; $lang['TargetShort']='的#'; -$lang['TeamClEvent']='予選ラウンド_団体'; $lang['TeamCreationMode']='チーム生成方式'; -$lang['TeamFin']='団体戦 - 決勝ラウンド(マッチ戦)'; -$lang['TeamFinEvent']='決勝-団体'; -$lang['TeamQual']='団体戦 - 予選ラウンド'; $lang['Text']='内容'; $lang['Time']='開始時間'; $lang['TimeStampSignature']='サイン時間(HH:MM)'; @@ -439,7 +446,7 @@ $lang['TotalProg']='小計'; $lang['TotalShort']='累計'; $lang['TourCode']='大会コード'; -$lang['TourCommitee']='主催者'; +$lang['TourCommitee']='大会主催者'; $lang['TourIsOris']='ORIS準拠'; $lang['TourIsOrisDescr']='チェックすると、出力が全てORIS(IOCオリンピック競技大会結果・情報サービス)準拠になります。'; $lang['TourMainInfo']='大会情報'; @@ -448,7 +455,7 @@ $lang['TournamentImport']='大会情報をインポート'; $lang['TourPartecipants']='大会参加選手一覧'; $lang['TourRuleResetDescr']='本項目はチェックしないで下さい!This action will reset all tournament related options to their default values: Divisions, Classes, Distances, Targets, etc...
    Use only if you know what you\'re doing!'; -$lang['TourShortName']='所属先'; +$lang['TourShortName']='大会名略称'; $lang['TourTimeZone']='タイムゾーン'; $lang['TourType']='競技形式'; $lang['TourTypeName']='競技形式'; @@ -458,11 +465,10 @@ $lang['TourType_4']='フィールド'; $lang['TourType_8']='3D'; $lang['TourWhen']='開催日程'; -$lang['TourWhere']='開催地'; +$lang['TourWhere']='大会会場'; $lang['TVContentName']='氏名'; -$lang['TVCss3Arrows']='ヒット数'; +$lang['TVCss3Arrows']='ヒット'; $lang['TVCss3Athlete']='選手名'; -$lang['TVCss3CategoryCode']='カテゴリ(コード)'; $lang['TVCss3CountryCode']='国コード'; $lang['TVCss3CountryDescr']='国名'; $lang['TVCss3Gold']='ゴール'; @@ -482,13 +488,11 @@ $lang['Type_Indoor 18']='インドア 18m'; $lang['Type_Indoor 25']='インドア 25m'; $lang['Type_Indoor 25+18']='インドア 25+18m'; -$lang['Type_NorH']=' '; $lang['Unisex']='ユニセック'; $lang['Unset-DSQ']='失格を解除'; $lang['UploadFile']='ファイルをアップロード(pdf)'; $lang['URL']='URL'; $lang['UserEnabled']='有効か否か'; -$lang['UserPassword']='パスワード'; $lang['UseSubClasses']='チェックしてサブクラスを選択'; $lang['ValidClass']='有効なクラス'; $lang['ValidDivisions']='有効な部門(空欄:すべて有効)'; @@ -502,6 +506,5 @@ $lang['WheelchairShort']='W '; $lang['WR-short']='WR'; $lang['YearEnd']='年令上限'; -$lang['YearStart']='年令下限'; $lang['Z-Session']='スケジュール追加'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ja/translators.json b/src/Common/Languages/ja/translators.json index e1a05ef8..52b28b91 100644 --- a/src/Common/Languages/ja/translators.json +++ b/src/Common/Languages/ja/translators.json @@ -1 +1 @@ -{"lang":"\u65e5\u672c\u8a9e - Japanese","peop":["Yuko Okura","Junji Ozawa"],"id":"ja"} \ No newline at end of file +{"lang":"\u65e5\u672c\u8a9e - Japanese","peop":["Nomura Haru","Yuko Okura","Junji Ozawa"],"id":"ja"} \ No newline at end of file diff --git a/src/Common/Languages/ko/Api.php b/src/Common/Languages/ko/Api.php index 3a9eaa44..525a9f14 100644 --- a/src/Common/Languages/ko/Api.php +++ b/src/Common/Languages/ko/Api.php @@ -2,11 +2,28 @@ $lang['API-AutoGroup']='대량 그룹 생성'; $lang['API-ConfirmDeleteRow']='이 행을 삭제하시겠습니까?'; $lang['API-DeviceGrouping']='장치 그룹화'; +$lang['API-EnableDeviceGrouping']='장치 그룹화 활성화'; $lang['API-Group']='그룹'; $lang['API-TargetGrouping']='표적 그룹화'; $lang['API-Targets']='표적'; +$lang['AskSignature-0']='아니오'; +$lang['AskSignature-1']='선수 ID 스캔'; +$lang['AskSignature-2']='화면 서명'; $lang['AutoImport']='자동 가져오기'; $lang['CheckConnected']='접속상태 확인'; $lang['CmdDelete']='제거'; $lang['CmdImport']='가져오기'; +$lang['ConfirmGenerateZip']='세션 $a[1]에 대한 모든 $a[0]이 포함된 ZIP 파일 생성을 확인해 주세요.'; +$lang['Controller']='컨트롤러'; +$lang['DataRefresh']='데이터 새로고침'; +$lang['Desc-Let-1']='현재 엔드 가져오기'; +$lang['Desc-Let-2']='현재 엔드에서 누락된 화살'; +$lang['ISK-BadCompCode']='잘못된 대회 코드'; +$lang['ISK-Lite-NoCompCode']='대회 코드 누락'; +$lang['ISK-Lite-ServerUrl']='서버 URL (프로토콜 및 포트 80이 아닌 경우 포함)'; +$lang['ISK-NoCompCode']='대회 코드 누락'; +$lang['ISK-onlyAccreditated']='검증된 AD인증'; +$lang['ISK-ServerUrl']='서버 URL (프로토콜 및 포트 80이 아닌 경우 포함)'; +$lang['ISK-ServerUrlPin']='대회 보안 PIN'; +$lang['WAToolbox-NoCompCode']='대회 코드 누락'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ko/BackNumbers.php b/src/Common/Languages/ko/BackNumbers.php index 975dceb9..d8b5b6f9 100644 --- a/src/Common/Languages/ko/BackNumbers.php +++ b/src/Common/Languages/ko/BackNumbers.php @@ -1,7 +1,29 @@ +
  • 공란: 입력 코드, 디비전, 클래스가 대시로 구분된 문자열이 출력됩니다.
  • +
  • {ENCODE}: {ENCODE}는 입력 코드로 변환됩니다.
  • +
  • {COUNTRY}: {COUNTRY}는 국가 코드로 변환됩니다.
  • +
  • {DIVISION}: {DIVISION}은 디비전 코드로 변환됩니다.
  • +
  • {CLASS}: {CLASS}는 클래스 코드로 변환됩니다.
  • +
  • {TOURNAMENT}: {TOURNAMENT}는 대회 코드로 변환됩니다.
  • +'; +$lang['QrCodeFields']='
      +
    • 공란: 입력 코드, 디비전, 클래스가 대시로 구분된 문자열이 출력됩니다.
    • +
    • {ENCODE}: {ENCODE}는 입력 코드로 변환됩니다.
    • +
    • {COUNTRY}: {COUNTRY}는 국가 코드로 변환됩니다.
    • +
    • {DIVISION}: {DIVISION}은 디비전 코드로 변환됩니다.
    • +
    • {CLASS}: {CLASS}는 클래스 코드로 변환됩니다.
    • +
    • {TOURNAMENT}: {TOURNAMENT}는 대회 코드로 변환됩니다.
    • +
    '; +$lang['SetAccreditationMatches']='이 뱃지는 다음 카테고리에 맞게 지정될 수 있습니다.'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ko/Common.php b/src/Common/Languages/ko/Common.php index efca6229..c569cc9a 100644 --- a/src/Common/Languages/ko/Common.php +++ b/src/Common/Languages/ko/Common.php @@ -1,4 +1,9 @@ \ No newline at end of file diff --git a/src/Common/Languages/ko/Errors.php b/src/Common/Languages/ko/Errors.php new file mode 100644 index 00000000..fa9df064 --- /dev/null +++ b/src/Common/Languages/ko/Errors.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ko/Help.php b/src/Common/Languages/ko/Help.php new file mode 100644 index 00000000..766e2e59 --- /dev/null +++ b/src/Common/Languages/ko/Help.php @@ -0,0 +1,7 @@ +정보를 변경해야 하는경우 AD인증 데스크로 문의 하여 주시기 바랍니다.'; +$lang['AutoCheckinConfirm']='모든 정보가 정확하면 \'체크인 확인\'을 누르세요
    그렇지 않으면 \'취소\'를 누르고 AD 인증 데스크로 가십시오'; +$lang['AutoCHK-Code']='대회 목록, 한 줄에 하나씩
    첫 번째 대회 코드는 자동 체크인 키오스크의 헤더로 사용됩니다.'; +$lang['AutoCHK-IPnoMgm']='셀프 체크인 키오스크의 IP 목록. 각 줄에 하나의 IP 주소를 다음 형식 중 하나에 맞게 작성하십시오:
    장치 IP
    장치 IP | AD인증 프린터 큐
    장치 IP | AD인증 프린터 큐 | 이름 태그 프린터 큐
    프린터 큐 형식: 큐 이름 [ @ 프린터 서버 ]'; +$lang['ISK-ServerUrlPin']='이 번호를 공유하지 마십시오
    본인이 선택한 PIN(4자리 숫자)을 사용하여 대회에 접속하세요.
    Device(모바일장치)는 IANSEO에서 인쇄한 QR 코드를 읽어야만 대회 점수를 기록할 수 있습니다.
    Ianseo Scorekeeper LITE 앱에서 수동 입력할 경우, 사용할 대회 코드는 {$a}입니다.'; +?> \ No newline at end of file diff --git a/src/Common/Languages/ko/ISK-App.php b/src/Common/Languages/ko/ISK-App.php new file mode 100644 index 00000000..73004758 --- /dev/null +++ b/src/Common/Languages/ko/ISK-App.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ko/ISK.php b/src/Common/Languages/ko/ISK.php new file mode 100644 index 00000000..1fbe89fd --- /dev/null +++ b/src/Common/Languages/ko/ISK.php @@ -0,0 +1,8 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ko/Install.php b/src/Common/Languages/ko/Install.php new file mode 100644 index 00000000..c2482c33 --- /dev/null +++ b/src/Common/Languages/ko/Install.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ko/ODF.php b/src/Common/Languages/ko/ODF.php new file mode 100644 index 00000000..d5508ca0 --- /dev/null +++ b/src/Common/Languages/ko/ODF.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ko/Tournament.php b/src/Common/Languages/ko/Tournament.php index 96521756..2e8d5c4f 100644 --- a/src/Common/Languages/ko/Tournament.php +++ b/src/Common/Languages/ko/Tournament.php @@ -8,13 +8,14 @@ $lang['4R_Phase']='네번째 라운드'; $lang['5Before']='5분 전에'; $lang['Accomodation']='숙박'; -$lang['AccrCaption']='인증 설명문'; +$lang['AccrCaption']='AD인증 문구'; $lang['AccreditateAll']='모두 확인'; $lang['AccreditateNone']='모두 확인 취소'; -$lang['Accreditation']='인증'; -$lang['AccreditationBooth']='인증 부스만!'; +$lang['Accreditation']='AD인증(출입통제)'; +$lang['AccreditationBooth']='AD인증 부스만!'; +$lang['AccreditationCards']='배송 예정 AD인증카드'; $lang['AccrNoShow']='대회에 참가하지 않음 - 노쇼'; -$lang['AclAccreditation']='인증'; +$lang['AclAccreditation']='AD인증(출입통제)'; $lang['AclAPI']='API'; $lang['AclCompetition']='대회'; $lang['AclEliminations']='본선전'; @@ -32,6 +33,30 @@ $lang['AclTeams']='단체전 경기'; $lang['Action']='동작'; $lang['ActualFlag']='사용된 깃발'; +$lang['Ath4Target']='Archers per Target (타겟당 선수 수)'; $lang['AutoEdits']='자동 편집'; +$lang['AutomatorAccPrint']='AD인증 출력 설정'; $lang['AutoRefresh']='자동 새로고침'; +$lang['CancelAcc']='AD인증 취소'; +$lang['CoalesceScorecardsTip']='타겟당 1명 또는 2명의 선수가 있을 경우, 타겟의 기록지를 2개씩 병합하십시오.'; +$lang['ConnectedCodes']='연결된 모든 대회 코드'; +$lang['CurrentCompCode']='현대 대회 코드: $a'; +$lang['DescCaption']='##CAPTION##  BIB  CAPTION
    BIB로 식별된 양궁 선수의 카테고리 대신 AD인증서에 인쇄된 CAPTION 텍스트'; +$lang['FirstTarget']='첫번째 타겟'; +$lang['ForceAccreditation']='강제 AD인증'; +$lang['GetCredentials']='대회 코드 받기'; +$lang['PhaseBlock_8']='AD인증(출입통제)'; +$lang['PrintedAccreditation']='이전 참여기록 출력'; +$lang['SessionEnd']='세션 종료 날짜/시간'; +$lang['SessionStart']='세션 시작 날짜/시간'; +$lang['ShowCaption']='AD인증 문구 보기'; +$lang['SOFirstTarget']='첫번째 타겟'; +$lang['TakePicture']='AD인증 사진 촬영'; +$lang['Tar4Session']='세션당 타겟수'; +$lang['TitleTourMenu']='대회 선택'; +$lang['ToFollow']='Timing 숨기기'; +$lang['TourCode']='대회 코드'; +$lang['TourIsOrisDescr']='이 확인란을 선택하면 이 토너먼트가 ORIS 준수 상태가 됩니다: 모든 출력이 ORIS(Olympic Results and Information Services) 표준으로 기본 설정됩니다.'; +$lang['TourMainInfo']='주요 정보'; +$lang['TourRuleResetDescr']='이 작업은 모든 토너먼트 관련 옵션을 기본값으로 재설정합니다: 디비전, 클래스, 거리, 타겟 등...
    정확히 알고 있는 경우에만 사용하십시오!'; ?> \ No newline at end of file diff --git a/src/Common/Languages/lv/Api.php b/src/Common/Languages/lv/Api.php index 5215ae87..8cf3aad7 100644 --- a/src/Common/Languages/lv/Api.php +++ b/src/Common/Languages/lv/Api.php @@ -92,6 +92,9 @@ $lang['RasLastSeen']='Pēdējā pieslēgšanās'; $lang['RaspControl']='Raspberry Pārvaldība'; $lang['RaspDevice']='Ierīce'; +$lang['ScorecardsEmpty']='Tukši protokli'; +$lang['ScorecardsFull']='Protokoli ar bultu vērtībām'; +$lang['UsePersonalDevices-Print']='Drukāt vairoga pieprasījuma QR kodu uz protokoliem'; $lang['WAToolbox-MissingParams']='Trūkst parametri'; $lang['WAToolbox-NoCompCode']='Trūkst sacensību kods'; ?> \ No newline at end of file diff --git a/src/Common/Languages/lv/BackNumbers.php b/src/Common/Languages/lv/BackNumbers.php index 5cdff4d6..d3289da7 100644 --- a/src/Common/Languages/lv/BackNumbers.php +++ b/src/Common/Languages/lv/BackNumbers.php @@ -55,6 +55,7 @@ $lang['Bold']='Bold'; $lang['Category']='Kategorija'; $lang['CharColor']='Burtu krāsa'; +$lang['CharSize']='Burtu izmērs'; $lang['CharType']='Burtu veids'; $lang['CheckBarcodeSeparator']='Pārbaudīt barkoda atdalītāju'; $lang['Club']='Valsts/kluba informācija'; @@ -96,6 +97,7 @@ $lang['GivCaps-FamCaps']='VĀRDS UZVĀRDS'; $lang['GivenNameInitial']='Vārda pirmais burts'; $lang['Heigh']='Augstums'; +$lang['HLayout']='Horizontāls'; $lang['HLine']='Horizontālā līnija'; $lang['I-Badge']='Individuālo maču dalībnieku numuri'; $lang['IdCardHor']='platumā'; @@ -108,7 +110,7 @@ $lang['IdMarginR']='Labā mala'; $lang['IdMarginT']='Augšējā mala'; $lang['IdMarginW']='Horizontālā mala'; -$lang['Image']='Attēls'; +$lang['Image']='Attēli'; $lang['Images']='Attēli'; $lang['ImageSvg']='SVG Bilde'; $lang['IncludeLogo']='Drukāt valsts karogus/klubu logo'; @@ -125,6 +127,8 @@ $lang['OnlyAthletes']='Tikai sportisti'; $lang['PageDimension']='Lapas izmērs'; $lang['PaperDimention']='Lapas izmērs'; +$lang['PhaseFrom']='No fāzes'; +$lang['PhaseTo']='Līdz fāzei'; $lang['Picture']='Sportista fotogrāfija'; $lang['Portrait']='Portrets'; $lang['PosX']='Pozīcija (X)'; @@ -147,12 +151,16 @@ $lang['T-Badge']='Komandu cīņu dalībnieku numuri'; $lang['Target']='Vairogs'; $lang['TeamComponents']='Komandu sastāvs'; +$lang['TgtSequence']='Vairogu sekvence'; $lang['ToBottom']='Sacensību logo (apakšā)'; $lang['ToLeft']='Sacensību logo (pa kreisi)'; $lang['ToRight']='Sacensību logo (pa labi)'; $lang['TVViewIdCard']='Aplūkot ID kartes'; $lang['TVViewIdCardDescr']='Turnīru skatā ņem 2 ID pretinieku kartes "standarta" rindiņu vietā'; +$lang['VLayout']='Vertikāls'; $lang['Width']='Platums'; +$lang['WRank']='Pasaules rangs'; +$lang['WRankImage']='Pasaules ranga attēls'; $lang['Y-Badge']='Diploms (individuāli)'; $lang['Z-Badge']='Diploms (komanda)'; ?> \ No newline at end of file diff --git a/src/Common/Languages/lv/Common.php b/src/Common/Languages/lv/Common.php index 47515e3c..51e83219 100644 --- a/src/Common/Languages/lv/Common.php +++ b/src/Common/Languages/lv/Common.php @@ -11,6 +11,8 @@ $lang['32_Phase']='1/32'; $lang['48_Phase']='1/48'; $lang['4_Phase']='1/4'; +$lang['50M']='50+ vīrieši'; +$lang['50W']='50+ sievietes'; $lang['64_Phase']='1/64'; $lang['7_Phase']='1/7'; $lang['8_Phase']='1/8'; @@ -28,7 +30,7 @@ $lang['All_Phases']='Visas daļas'; $lang['AM']='Kadeti zēni'; $lang['AN']='Neaprīkotais loks'; -$lang['Archer']='Loka šāvējs'; +$lang['Archer']='Lokšāvējs'; $lang['Archers']='Lokšāvēji'; $lang['Arrow']='Bulta'; $lang['ArrowAverage']='Vidējais'; @@ -64,6 +66,7 @@ $lang['CmdOk']='Ok'; $lang['CmdOn']='Ieslēgt'; $lang['CmdPostUpdate']='Atjaunināt'; +$lang['CmdRefresh']='Atjaunināt'; $lang['CmdSave']='Saglabāt'; $lang['CmdSaveContinue']='Saglabāt un turpināt'; $lang['CmdSet2All']='Iestatīt visiem'; @@ -130,6 +133,10 @@ $lang['Finish']='Finišs'; $lang['FirstPhase']='Pirmā fāze'; $lang['FopSetup']='Šaušanas lauka izkārtojums'; +$lang['Gender0']='Vīrietis'; +$lang['Gender1']='Sieviete'; +$lang['GenderShort0']='V'; +$lang['GenderShort1']='S'; $lang['GF']='Bērni, meitenes'; $lang['GM']='Bērni, zēni'; $lang['HELP']='Palīdzība!'; @@ -147,6 +154,8 @@ $lang['IndFinEventWithoutShootOff']='Uzmanību!
    Visām disciplīnām ir jāātrisina neizšķirti lai varētu skatīt!'; $lang['IndImport']='Importēt datus individuālajās turnīru tabulās'; $lang['Individual']='Individuāli'; +$lang['IndTeam-0']='Individuāli'; +$lang['IndTeam-1']='Komandas'; $lang['ISK-Configuration']='Ierīču menedžments'; $lang['ISK-GetQRData']='Iegūt QRCode datus'; $lang['ISK-Results']='Rezultāti'; @@ -184,6 +193,7 @@ $lang['MedalList']='Medaļnieku saraksts'; $lang['MedalSilver']='Sudrabs'; $lang['MedalStanding']='Medaļas'; +$lang['MenuLMRemoveNoShows']='Noņemt neieradušos'; $lang['MenuLM_Accreditation']='Akreditācija'; $lang['MenuLM_Accreditation colors management']='Iestatīt akreditācijas krāsas'; $lang['MenuLM_Archers on Targets']='Šāvēji uz mērķiem'; @@ -219,6 +229,7 @@ $lang['MenuLM_Collect Data']='Savākt datus'; $lang['MenuLM_Competition']='Sacensības'; $lang['MenuLM_Competition Info']='Informācija par sacensībām'; +$lang['MenuLM_CreateDbStruFile']='Izveidot DB Struktūrfailu'; $lang['MenuLM_Data Import']='Importēt datus'; $lang['MenuLM_Data Import (Advanced user)']='Importēt datus (pieredzējušiem lietotājiem)'; $lang['MenuLM_Data insert (Bracket view)']='Ievadīt rezultātus (braketes skats)'; @@ -249,6 +260,7 @@ $lang['MenuLM_ExtraCategories']='Standarta Papildus Katedorijas'; $lang['MenuLM_ExtraDataEdit']='Mainīt Papildu Datus'; $lang['MenuLM_Fees setup']='Dalības maksu uzstādījumi'; +$lang['MenuLM_Field Crew']='Šaušanas lauka komanda'; $lang['MenuLM_Final Field of Play Layout']='Laukuma iekārtojums fināliem'; $lang['MenuLM_Final report']='Gala atskaite'; $lang['MenuLM_Final Rounds']='Finālu raundi'; @@ -258,8 +270,8 @@ $lang['MenuLM_GateSituation']='Vārtu stāvoklis'; $lang['MenuLM_Get Info']='Iegūt informāciju'; $lang['MenuLM_getBiographies']='Iegūt WA biogrāfijas'; -$lang['MenuLM_GetScoreBarcode']='Iegūt rezultātu svītru kodus'; -$lang['MenuLM_GetScoreBarcodeReport']='Drukāt svītru kodu direktīvas'; +$lang['MenuLM_GetScoreBarcode']='Iegūt rezultātu svītrkodus'; +$lang['MenuLM_GetScoreBarcodeReport']='Drukāt svītrkodu direktīvas'; $lang['MenuLM_GetScoreUSCAA']='USCAA datu faila importēšana'; $lang['MenuLM_Header for Result Printouts']='Rezultātu izdrukas virsraksts'; $lang['MenuLM_HTT']='HTT'; @@ -285,6 +297,7 @@ $lang['MenuLM_LastShootoff']='Pēdējais izšķiršāviens'; $lang['MenuLM_List (Simple)']='Saraksts (vienkāršs)'; $lang['MenuLM_ListLoad']='Ielādēt sarakstu (Izklājlapas Imports)'; +$lang['MenuLM_Lock manage']='Tīkla piekļuves politika'; $lang['MenuLM_Lock setup']='Bloķēt rediģēšanas iespēju'; $lang['MenuLM_Logout']='Izlogoties'; $lang['MenuLM_LueFill']='Izveidot Meklējumu no Faila'; @@ -421,6 +434,7 @@ $lang['RankingInd']='Izlēgšanas & Fināla Raundi - Individuālais Rangs'; $lang['Rankings']='Rangi'; $lang['RankingSq']='Izlēgšanas & Fināla Raundi - Komandu Rangs'; +$lang['RankScoreShort']='Kval.'; $lang['RB']='Olimpiskais loks'; $lang['RecalcIndTeamsRank']='Individuālo un Komadu rangu pārskaitīšana veigsmīga'; $lang['Review']='Pārskats'; @@ -432,10 +446,10 @@ $lang['RowByRow']='Iestatīt rindu pa rindai'; $lang['RowToImport']='Visas sekojošās rindas tiks importētas'; $lang['Scheduler']='Programma'; -$lang['Score1Page1Athlete']='Individuāli punkti ar visiām cīņām'; -$lang['Score1Page1Match']='Rezultāts vienā cīņā'; +$lang['Score1Page1Athlete']='Individuālie protokoli visām cīņām'; +$lang['Score1Page1Match']='Protokols vienai cīņai'; $lang['ScoreDrawing']='Tikai tabulas (viena lapa)'; -$lang['ScoreFilled']='Drukāt aizpildītas punktulapas ar individuālo trāpījumu ierakstiem'; +$lang['ScoreFilled']='Drukāt aizpildītus protokolus ar individuālo trāpījumu ierakstiem'; $lang['ScoreIncEmpty']='Drukāt cīņas pat ja nav pretinieka'; $lang['Scorer']='Punktu skaitītājs'; $lang['Seeded16th']='pirms izsījāšna 1/16'; @@ -476,6 +490,7 @@ $lang['TeamFinal']='Komandu fināli'; $lang['Teams']='Komandas'; $lang['TecError']='Tehnisku iemeslu dēļ nav iespējams apkalpot pieprasīto lapu'; +$lang['TempRank']='Pagaidu rangs'; $lang['TF']='Sieviešu komanda'; $lang['Tie']='Neizšķirts'; $lang['TieArrows']='Izšķiršāvieni'; @@ -498,9 +513,14 @@ $lang['TrgNfaaInd']='NFAA Indoor (1-5/X)'; $lang['TrgOutdoor']='Outdoor (1-X)'; $lang['U']='Unisex'; +$lang['U18M']='U18 vīrieši'; +$lang['U18W']='U18 sievietes'; +$lang['U21M']='U21 vīrieši'; +$lang['U21W']='U21 sievietes'; $lang['UnexpectedError']='Negaidīta kļūda'; $lang['VF']='Profesionāļi sievietes'; $lang['VM']='Profesionāļi vīrieši'; +$lang['W']='Sievietes'; $lang['WA_Pool4']='WA 4 grupas'; $lang['WG_Pool2']='Pasaules spēļu 2 grupas'; $lang['Winner']='Uzvarētājs'; diff --git a/src/Common/Languages/lv/Help.php b/src/Common/Languages/lv/Help.php index e653fc39..2eafc1f7 100644 --- a/src/Common/Languages/lv/Help.php +++ b/src/Common/Languages/lv/Help.php @@ -1,5 +1,5 @@ Ievadot ar roku a # kam seko atlēta vārds, tiek veikta atlēta meklēšana datubāzē
    Ievadot a @ kam seko mērķa numurs, tiek veikta mērķa meklēšana. Distancei JĀBŪT norādītai. Jābūt norādītai sesijai (pirmais cipars) un mērķa numurs tiek papildināts ar 0 līdz 3 cipariem.'; +$lang['ScoreBarCodeShortcuts']='Nolasiet svītrkodu kas uzdrukāts uz rezultātu kartiņas.
    Ievadot ar roku a # kam seko atlēta vārds, tiek veikta atlēta meklēšana datubāzē
    Ievadot a @ kam seko mērķa numurs, tiek veikta mērķa meklēšana. Distancei JĀBŪT norādītai. Jābūt norādītai sesijai (pirmais cipars) un mērķa numurs tiek papildināts ar 0 līdz 3 cipariem.'; ?> \ No newline at end of file diff --git a/src/Common/Languages/lv/IOC_Codes.php b/src/Common/Languages/lv/IOC_Codes.php index af639fd5..c0d4372a 100644 --- a/src/Common/Languages/lv/IOC_Codes.php +++ b/src/Common/Languages/lv/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='Amerikas Samoa salas'; $lang['AUS']='Austrālija'; $lang['AUT']='Austrija'; -$lang['Award-Anthem']='Dāmas un kungi, lūdzu piecelieties par godu $a himnai'; -$lang['Award-Anthem-TPE']='Dāmas un kungi, lūdzu piecelieties par godu $a himnai'; $lang['Award-Applause']='Dāmas un kungi, lūdzu sveiciet sportistus ar aplausiem.'; $lang['Award-Intro']='Dāmas un kungi, apbalvošanas ceremonija par godu {$a}'; $lang['Award-MedalGiver']='Medaļas pasniegs $a'; @@ -42,16 +40,13 @@ $lang['BUL']='Bulgārija'; $lang['BUR']='Burkinafaso'; $lang['CAF']='Centrālāfrikas Republika'; -$lang['CAM']='Kambodža'; $lang['CAN']='Kanāda'; $lang['CAY']='Kaimanu Salas'; $lang['CGO']='Kongo Republika'; $lang['CHA']='Čada'; $lang['CHI']='Čīle'; -$lang['CHN']='Ķīna'; $lang['CIV']='Kotdivuāra'; $lang['CMR']='Kamerūna'; -$lang['COD']='Kongo Demokrātiskā Republika'; $lang['COK']='Kuka Salas'; $lang['COL']='Kolumbija'; $lang['COM']='Komoras salas'; @@ -60,7 +55,6 @@ $lang['CRO']='Horvātija'; $lang['CUB']='Kuba'; $lang['CYP']='Kipra'; -$lang['CZE']='Čehija'; $lang['DEN']='Dānija'; $lang['DJI']='Džibutija'; $lang['DMA']='Dominika'; @@ -91,17 +85,14 @@ $lang['GUM']='Guama'; $lang['GUY']='Gajana'; $lang['HAI']='Haiti'; -$lang['HKG']='Honkonga'; $lang['HON']='Hondurasa'; $lang['HUN']='Ungārija'; $lang['INA']='Indonēzija'; $lang['IND']='Indija'; -$lang['IRI']='Irāna'; $lang['IRL']='Īrija'; $lang['IRQ']='Irāka'; $lang['ISL']='Islande'; $lang['ISR']='Izraēla'; -$lang['ISV']='ASV Virdžīnu salas'; $lang['ITA']='Itālija'; $lang['IVB']='Britu Virdžīnu salas'; $lang['JAM']='Jamaika'; @@ -114,7 +105,6 @@ $lang['KOR']='Dienvidkoreja'; $lang['KSA']='Saūda Arābija'; $lang['KUW']='Kuveita'; -$lang['LAO']='Laosa'; $lang['LAT']='Latvija'; $lang['LBA']='Lībija'; $lang['LBR']='Libērija'; @@ -128,7 +118,6 @@ $lang['MAR']='Maroka'; $lang['MAS']='Malaizija'; $lang['MAW']='Malāvija'; -$lang['MDA']='Moldova'; $lang['MDV']='Maldivija'; $lang['Medal-1']='Zelta medaļa'; $lang['Medal-2']='Sudraba Medaļa'; @@ -137,7 +126,6 @@ $lang['MEX']='Meksika'; $lang['MGL']='Mongolija'; $lang['MHL']='Māršala Salas'; -$lang['MKD']='Ziemeļmaķedonija'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Melnkalne'; @@ -166,7 +154,6 @@ $lang['PNG']='Papua-Jaungvineja'; $lang['POL']='Polija'; $lang['POR']='Portugāle'; -$lang['PRK']='Ziemeļkoreja'; $lang['PUR']='Puertoriko'; $lang['QAT']='Katara'; $lang['ROU']='Rumānija'; @@ -193,17 +180,16 @@ $lang['SVK']='Slovākija'; $lang['SWE']='Zviedrija'; $lang['SWZ']='Svazilenda'; -$lang['SYR']='Sīrija'; $lang['TAN']='Tanzānija'; $lang['TGA']='Tonga'; $lang['THA']='Taizeme'; $lang['TJK']='Tadžikistāna'; $lang['TKM']='Turkmenistāna'; -$lang['TLS']='Austrumtimora'; $lang['TOG']='Togo'; $lang['TPE']='Ķīnas Taipeja'; $lang['TRI']='Trinidada un Tobāgo'; $lang['TUN']='Tunisija'; +$lang['TUR']='Turcija'; $lang['TUV']='Tuvalu'; $lang['UAE']='Apvienotie Arābu Emirāti'; $lang['UGA']='Uganda'; diff --git a/src/Common/Languages/lv/ISK-App.php b/src/Common/Languages/lv/ISK-App.php new file mode 100644 index 00000000..e1e6f40c --- /dev/null +++ b/src/Common/Languages/lv/ISK-App.php @@ -0,0 +1,59 @@ + \ No newline at end of file diff --git a/src/Common/Languages/lv/ISK.php b/src/Common/Languages/lv/ISK.php index d96203e5..cf6a4755 100644 --- a/src/Common/Languages/lv/ISK.php +++ b/src/Common/Languages/lv/ISK.php @@ -1,5 +1,7 @@ Nākamais loka šāvējs - Parāda nākamo loka šāvēju rezultāta ievadīšanai.'; +$lang['NextArcher']='Nākamais lokšāvējs'; +$lang['NextArcherDesc']='Nākamais lokšāvējs - Parāda nākamo lokšāvēju rezultāta ievadīšanai.'; $lang['NextDistAlert']='Vai esat pārliecināts, ka vēlaties pāriet uz nākamo distanci?'; $lang['No']='Nē'; $lang['NoArrowScored']='Ir jābūt pierakstītam trāpijumam lai varētu atzīmēt, tuvāk centram'; @@ -140,8 +145,8 @@ $lang['ProTarget']='Pro Vairogu Pieprasījums'; $lang['ProWaitAuth']='Gaida autorizāciju'; $lang['ProWaitCode']='Gaida konfigurāciju'; -$lang['QrInvalid']='Nevarēja nolasīt svītru koda informāciju. Lūdzu mēģiniet vēlreiz ar derīgu IANSEO svītru kodu.'; -$lang['QrNoCode']='Svītru kodā netika atrasta sacensību informācija. Lūdzu mēģiniet vēlreiz ar derīgu IANSEO svītru kodu.'; +$lang['QrInvalid']='Nevarēja nolasīt svītrkoda informāciju. Lūdzu mēģiniet vēlreiz ar derīgu IANSEO svītrkodu.'; +$lang['QrNoCode']='Svītrkodā netika atrasta sacensību informācija. Lūdzu mēģiniet vēlreiz ar derīgu IANSEO svītrkodu.'; $lang['Reset']='Atiestatīt'; $lang['ReuseProQR']='Iepriekšējs Pro QR-kods tika atrasts. Lietot šo kodu?'; $lang['Save']='Saglabāt'; diff --git a/src/Common/Languages/lv/Ianseo.php b/src/Common/Languages/lv/Ianseo.php index c685424e..fb2dbd03 100644 --- a/src/Common/Languages/lv/Ianseo.php +++ b/src/Common/Languages/lv/Ianseo.php @@ -7,4 +7,6 @@ $lang['Cert-Level4']='Meistaru kurss'; $lang['Cert-Level5']='IANSEO komanda'; $lang['CertificateManagement']='Sertifikātu pārvaldība'; +$lang['GenerateFile']='Izveidot failu'; +$lang['ResetSessions']='Apstiprināt atiestatīšanu'; ?> \ No newline at end of file diff --git a/src/Common/Languages/lv/InfoSystem.php b/src/Common/Languages/lv/InfoSystem.php index e97742ad..4663992a 100644 --- a/src/Common/Languages/lv/InfoSystem.php +++ b/src/Common/Languages/lv/InfoSystem.php @@ -1,6 +1,7 @@ Tikai izvēlēti lietotāji var izmantot šo iespēju: lūdzu norādiet e-pastu ar ko esat reģistrējies
    Ziņa tiks nosūtīta gan jums gan Ianseo personālam.'; $lang['Start Ianseo']='Doties uz IANSEO!'; $lang['Status']='Statuss'; diff --git a/src/Common/Languages/lv/ODF.php b/src/Common/Languages/lv/ODF.php index cf20a643..99679d94 100644 --- a/src/Common/Languages/lv/ODF.php +++ b/src/Common/Languages/lv/ODF.php @@ -1,20 +1,25 @@ \ No newline at end of file diff --git a/src/Common/Languages/lv/Records.php b/src/Common/Languages/lv/Records.php new file mode 100644 index 00000000..67ed7c03 --- /dev/null +++ b/src/Common/Languages/lv/Records.php @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/src/Common/Languages/lv/RoundRobin.php b/src/Common/Languages/lv/RoundRobin.php new file mode 100644 index 00000000..d6ef3459 --- /dev/null +++ b/src/Common/Languages/lv/RoundRobin.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/Common/Languages/lv/RunArchery.php b/src/Common/Languages/lv/RunArchery.php new file mode 100644 index 00000000..27cbb52b --- /dev/null +++ b/src/Common/Languages/lv/RunArchery.php @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/src/Common/Languages/lv/Tournament.php b/src/Common/Languages/lv/Tournament.php index c4afdb00..cabf24c1 100644 --- a/src/Common/Languages/lv/Tournament.php +++ b/src/Common/Languages/lv/Tournament.php @@ -31,14 +31,17 @@ $lang['AclQualification']='Kvalifikācija'; $lang['ACLReadOnly']='Ierobežota pieeja (tikai lasīšanai)'; $lang['ACLReadWrite']='Pilna pieeja (lasīt un rakstīt)'; +$lang['AclRobin']='Robina raunds'; $lang['AclRoot']='Superlietotājs'; $lang['AclSpeaker']='Diktors'; $lang['AclTeams']='Komandu fināli'; $lang['Action']='Darbība'; $lang['ActualFlag']='Izlietots karogs'; $lang['AddMaxRows']='Pievienot visu pieejamo rindu'; +$lang['AddTournament']='Pievienot turnīru'; $lang['AfterDistance']='Vietu sadalījums PĒC sekojošas distances:'; $lang['AfterXDistance']='Rezultāti PĒC $a distances'; +$lang['AgeClass']='Vecuma grupa'; $lang['AllDistances']='Visi'; $lang['AllEvents']='Visi pasākumi'; $lang['AllRound']='Visi raundi'; @@ -46,7 +49,7 @@ $lang['AllsF']='Visi'; $lang['AllsM']='Visi'; $lang['AllTargets']='Visi vairogi'; -$lang['AlternateJury']='Apelācijas komisija (vietnieks)'; +$lang['AlternateJury']='Apelācijas komisija (rezervists)'; $lang['AlternateMatch']='Alternatīvais mačs'; $lang['Announcer']='Runātājs / diktors'; $lang['ArcherNotFound']='Sportists nav atrasts!'; @@ -79,6 +82,7 @@ $lang['AutoEdits']='Labot automātiski'; $lang['AutoRefresh']='Atsvaidzināt automātiski'; $lang['AutoTargetAssignment']='Automātiska kārtošana pa vairogiem - Sastādīt'; +$lang['AutoUploadToggle']='Ieslēgt automātiskās atjaunināšanas taimeri'; $lang['AvailableValues']='Pieejamās vērtības'; $lang['Award']='Balva'; $lang['Awarders']='Apbalvošanas vadītāji'; @@ -89,7 +93,7 @@ $lang['Awards']='Balva'; $lang['AwardSecondLanguage']='Otrā valoda'; $lang['AwardShowPoints']='Rādīt punktus'; -$lang['BackBarCodeCheck']='Atpakaļ uz svītru kodu pārbaudi'; +$lang['BackBarCodeCheck']='Atpakaļ uz svītrkodu pārbaudi'; $lang['BadEntries']='Pieteikumi NAV ieimportēti'; $lang['Badge1PerPage']='1 dalībnieka karte uz lapas'; $lang['Badge2PerPage']='2 dalībnieka kartes uz lapas'; @@ -100,7 +104,6 @@ $lang['BadgeIncludePhoto']='Iekļaut foto dalībnieka kartē'; $lang['BadgeNames']='Pilns Vārds (netiek drukāts pirmais)'; $lang['BadgeNoData']='Nav datu ko drukāt'; -$lang['BadgeOnlyNotPrinted']='TIKAI dalībnieku kartes, kas vēl nav izdrukātas'; $lang['BadgeOnlyPrintAccredited']='TIKAI akreditēto dalībnieku kartes'; $lang['BadgeOnlyPrintPhoto']='TIKAI dalībnieku kartes ar foto'; $lang['BadgeOptions']='Iespējas'; @@ -111,9 +114,9 @@ $lang['BadgeStandard6-bis']='Mazās dalībnieku kartes (6) Las Vegas'; $lang['BadgeType']='Dalībnieka kartes veids'; $lang['BadParams']='Nepareizi parametri!'; -$lang['Barcode']='Vienas dimensijas ID ar svītru kodu'; +$lang['Barcode']='Vienas dimensijas ID ar svītrkodu'; $lang['BarcodeCapture']='Svītru koda skenēšana'; -$lang['BarcodeMissing']='Drukāt trūkstošos svītru kodus'; +$lang['BarcodeMissing']='Drukāt trūkstošos svītrkodus'; $lang['BF_Phase']='Bronzas fināls'; $lang['BigNames']='Drukāt visu lapu'; $lang['Bill']='Rēķins'; @@ -156,6 +159,7 @@ $lang['CatJury']='Apelācijas komisija'; $lang['CatOC']='Organizatori'; $lang['ChairmanJudge']='Galvenais tiesnesis'; +$lang['ChairmanJudgeDeputy']='Galvenā tiesneša vietnieks'; $lang['ChairmanJury']='Apelācijas komisijas vadītājs'; $lang['ChangeNationsNames']='Mainīt valstu nosaukumus'; $lang['Channel']='Kanāls'; @@ -176,6 +180,7 @@ $lang['CmdExec']='Izpildīt'; $lang['CmdExport']='Eksportēt'; $lang['CmdGo']='Aiziet!'; +$lang['CmdImport']='Importēt'; $lang['CmdOpenBill']='Atvērt kvīti'; $lang['CmdPrintBill']='Drukāt kvīti'; $lang['CmdRemoveFilter']='Noņemt filtru'; @@ -184,6 +189,7 @@ $lang['CmdSet']='Iestatīt'; $lang['CmdUpload']='Augšuplādēt'; $lang['Coach']='Treneris'; +$lang['CoalesceScorecards']='Apvienot protoklus'; $lang['Code']='ID'; $lang['CoinToss']='Monētas loze'; $lang['CoinTossShort']='ML'; @@ -191,6 +197,8 @@ $lang['Color']='Krāsa'; $lang['CompetitionOfficials']='Tiesneši un organizatori'; $lang['CompleteSchedule']='Pilna programma'; +$lang['CompManager']='Atbildīgais par sacensībām'; +$lang['CompVenue']='Norises vieta (Nosaukums, adrese)'; $lang['Confirm']='Apstiprināt'; $lang['ConfirmDescr']='ŠIS IZJAUKS IEPRIEKŠĒJO IZKĀRTOJUMU PA VAIROGIEM UN TO NEBŪS IESPĒJAMS ATCELT!'; $lang['ConfirmEnd']='Apstiprināt sēriju'; @@ -234,6 +242,7 @@ $lang['DOB']='Dzimšanas datums'; $lang['Document']='Dokuments'; $lang['Dos']='Šaušanas vadītājs (DOS)'; +$lang['DosAssistant']='Šaušanas vadītāja asistents'; $lang['DoubleSpace']='Arbalets'; $lang['DrawField3D']='Field/3D izloze'; $lang['DrawNormal']='Standarta izloze'; @@ -251,7 +260,6 @@ $lang['EliminationType']='Izslēgšanas raunda veids'; $lang['ElimSO']='Izslēgšanas raundu bultas SO'; $lang['Email']='E-pasts'; -$lang['EnableAccess']='Ieslēgt/Izlēgt politikas'; $lang['Ends']='Sērijas'; $lang['EndTotal']='Sērijas summa'; $lang['EndUpdate']='Visi atjauninājumi pabeigti'; @@ -262,8 +270,9 @@ $lang['EventAccess']='Sportista dalība Indiv./Kom.'; $lang['EventCodeDeclared']='On-line pasākuma Kods'; $lang['EventDetails']='$a[0] sērijas ar $a[1] bultām + $a[2] SO'; +$lang['EventDetailsShort']='$a[0] sērijas ar $a[1] bultām'; $lang['EventPhaseResolved']='$a[0] - $a[1] atrisināts!'; -$lang['Events']='Sacensības'; +$lang['Events']='Turnīrcīņas'; $lang['EvNameTranslated']='Tulkotās sacensības'; $lang['Export2Fitarco']='Eksportēt kā EXP failu'; $lang['ExportAndSend']='Eksportēt un sūtīt datus'; @@ -274,6 +283,8 @@ $lang['ExportWinners']='Eksportēt uzvarētājus'; $lang['FamilyName']='Uzvārds'; $lang['FieldCleaned']='Lauks notīrīts'; +$lang['FieldResp']='Atbildīgais par laukumu'; +$lang['FieldScorecard']='Field/3D protokols'; $lang['FieldTourCategory']='Apvidus sacensības'; $lang['FillCountryFlags']='Ielasīt valstu karogus no noklusētajiem'; $lang['FilterOnDivCl']='Filtrēt pēc divīzijām/klasēm'; @@ -333,12 +344,13 @@ $lang['GroupBy']='Grupēt pēc'; $lang['GroupMatches']='Grupu cīņas'; $lang['HiddenCredited']='Slēpt akreditētos'; +$lang['HorScore']='Horizontāls protokols'; $lang['Hour']='Stunda'; $lang['I-Session']='Individuālās cīņas'; $lang['IanseoDbVersionTooOld']='Ianseo Datubāzes Versija ir vecāka nekā InfoSystem'; $lang['IANSEOVersion']='IANSEO versija'; $lang['IdCard']='ID karte'; -$lang['Image']='Attēls'; +$lang['Image']='Attēli'; $lang['ImageChecked']='Attēls pārbaudīts'; $lang['ImgInfo']='Pieļaujamie attēlu veidi: PNG un JPG - maksimālais izmērs 64KB'; $lang['ImportARFFile']='Importēt ARF failu'; @@ -376,11 +388,13 @@ $lang['LiveUpdate']='Dzīvajā!'; $lang['Loading']='Ielādē...'; $lang['LocalCode']='Lokālais ID'; +$lang['LocalRule']='Lokalizētie noteikumi'; $lang['LocalSubRule']='Apakšnoteikumi'; -$lang['Location']='Vieta'; +$lang['Location']='Vieta (pilsēta, novads, pagasts)'; $lang['LocRuleDefaultNo']='Noklusētie'; $lang['LocRuleModifiedNo']='Mainīts'; $lang['LocRuleValidNo']='Nav mainīts'; +$lang['LogisticResp']='Atbildīgais par transportu'; $lang['LogoB']='Apakšējās malas attēls (pilna platuma attiecība 19:1 A4 lapai, 20:1 letter lapai)'; $lang['LogoL']='Augšējās kreisās malas attēls'; $lang['LogoManagement']='Attēlu pārvaldīšana'; @@ -419,6 +433,7 @@ $lang['ManDivClass']='Pārvaldīt divīzijas/klases'; $lang['ManPrices']='Pārvaldīt dalības maksas'; $lang['ManSession']='Pārvaldīt šaušanas sesijas'; +$lang['ManStaffOnField']='Pārvaldīt šaušanas lauka komandu'; $lang['ManSubClasses']='Pārvaldīt apakšklases'; $lang['ManTourDistances']='Pārvaldīt sacensību distances'; $lang['ManTraining']='Pārvaldīt iesildīšanās sesijas'; @@ -445,6 +460,8 @@ $lang['MedalClass']='Klašu un divīziju rezultāti - medaļas'; $lang['MedalIndClass']='Klašu un divīziju rezultāti - medaļas individuāli'; $lang['MedalSqClass']='Klašu un divīziju rezultāti - medaļas komandās'; +$lang['MediaResp']='Atbildīgais par medijiem'; +$lang['MedOfficer']='Mediķis'; $lang['MixedTeamFinEvent']='MIX komandu fināli'; $lang['MoveWinner2NextPhase']='Pārvietot uzvarētāju un nākamo fāzi'; $lang['MsgLookup3']='Datu imports'; @@ -456,6 +473,7 @@ $lang['MsgSyncronize']='Sinkronizēt sportista failu'; $lang['Multimedia']='Multimēdiji'; $lang['Name']='Vārds'; +$lang['Nameplates']='Vārdu plāksnes'; $lang['NationShort']='Nosaukums saīsināti'; $lang['New']='Jauns'; $lang['NewMediaContent']='Pievienot multimediju saturu'; @@ -470,6 +488,7 @@ $lang['NoPictureAvailable']='Attēls nav pieejams'; $lang['NoRowSelected']='Rindas nav izvēlētas'; $lang['NoSession']='Nav sesijas'; +$lang['NoStaffOnField']='Nav šaušanas lauka komandas'; $lang['NotAllShootoffResolved']='Sekojošās disciplīnas netika saglabātas, jo netika atrisināti visi izšķiršāvieni'; $lang['Notes']='Piezīmes'; $lang['NoTie']='Nav neizšķirts'; @@ -502,12 +521,14 @@ $lang['OR-Record']='Olimpiskais rekords'; $lang['OR-short']='OR'; $lang['Order']='Kārtība'; +$lang['OrgResponsible']='Organizatoru komitejas pārstāvis'; +$lang['OrisScorecardsAverage']='Vidējā bultu vērtība'; $lang['OrisTeamList']='ORIS komandu saraksts'; $lang['OtherTourCategory']='Cits'; $lang['OverwritePreviousArchers']='Pārrakstīt iepriekšējos loka šāvējus'; $lang['OvrRefresh']='Atsvaidzināt lapu (nenosūtīt)'; $lang['OvrSendSerial']='Nosūtīt uz OVR (Serial)'; -$lang['PaperSize']='Papīra izmērs'; +$lang['PaperSize']='Izdruku papīra izmērs'; $lang['ParamWarning']='UZMANĪBU!
    Ievadot nepareizas vērtības šajos laukos var tikt iznīcināti jūsu uzstādījumi!
    Izmantojiet ar ĪPAŠU piesardzību!'; $lang['PartecipantLabel']='Dalībnieku saraksts - Etiķetes'; $lang['PartecipantListError']='Dalībnieku saraksts - brīdinājumi'; @@ -547,15 +568,19 @@ $lang['Price']='Cena'; $lang['Primary']='Primāri'; $lang['Print']='Drukāt'; +$lang['PrintCharset']='Izdruku fonta iestatīšana'; $lang['PrintChinese']='Iekļaut ķīniešu alfabētu'; +$lang['PrintCyrillic']='Paplašinātais fonts (iekļauj arī LV mīkstinājuma zīmes)'; $lang['PrintFOP']='Sacensību laukums'; $lang['PrintJapanese']='Iekļaut japāņu alfabētu'; $lang['PrintLabels']='Drukāt uzlīmes'; $lang['PrintLanguage']='Izdruku valoda'; $lang['PrintList']='Drukāt sarakstu'; $lang['PrintNames']='Drukāt vārdus'; -$lang['PrintNormal']='Normal (Latin)'; -$lang['PrintScore']='Drukāt rezultātus'; +$lang['PrintNormal']='Normāls (Latīņu)'; +$lang['PrintScore']='Drukāt protoklous'; +$lang['PrintScoreInd']='Izdrukāt individuālos protokolus'; +$lang['PrintScoreTeam']='Drukāt komandu protokolus'; $lang['PrintText']='Virsraksta teksts'; $lang['PrintTextTitle']='Rezultātu izdrukas virsraksts'; $lang['Q-Session']='Kvalifikācijas raundi'; @@ -584,9 +609,11 @@ $lang['ResultIndClass']='Rezultāti pēc klases un divīzijas - Individuāli'; $lang['ResultIndClassSnap']='Klases un divīzijas rezultātu saraksta momentuzņēmums - Individuāli'; $lang['ResultIndSubClass']='Apakšgrupu rezultāti'; +$lang['ResultResp']='Atbildīgais par rezultātiem'; $lang['Results']='Rezultāti'; $lang['ResultSqAbs']='Kvalifikācijas raunds - Komandas'; $lang['ResultSqClass']='Rezultāti pēc klases un divīzijas - Komandas'; +$lang['ResVerifier']='Rezultātu apstiprinātājs'; $lang['Round']='Raunds'; $lang['Round#']='Raunds $a'; $lang['RoundSummary']='Raunda summa'; @@ -603,7 +630,9 @@ $lang['SchIncFinalists']='Iekļaut finālistu vārdus'; $lang['Score']='Rezultāts'; $lang['Score1PageAllDist']='Sportista protokols ar visām distancēm uz vienas lapas'; -$lang['ScoreBarcode']='Drukāt svītru kodu uz protokoliem'; +$lang['ScoreBarcode']='Drukāt svītrkodu uz protokoliem'; +$lang['ScorecardLabelEnd']='Sērija'; +$lang['ScorecardLabelSet']='Sets'; $lang['ScorecardsElim']='Izslēgšanas raundu protokoli'; $lang['ScorecardsInd']='Individuālo cīņu protokoli'; $lang['ScorecardsQual']='Kvalifikācijas protokoli'; @@ -665,8 +694,11 @@ $lang['ShowPicture']='Rādīt foto'; $lang['showRecords']='Rādīt rekordus'; $lang['Sign/guide-board']='Zīme'; +$lang['SignedTotal']='Protokolā parakstītais rezultāts'; $lang['SingleArrow']='Viena bulta'; $lang['Snapshot']='Momentuzņēmums'; +$lang['Spotter']='Spoteris/rezultātu saucējs'; +$lang['StaffOnField']='Šaušanas lauka komanda'; $lang['StandardElabTeamMode']='Standarta komandas papildināšana'; $lang['StartCamera']='Ieslēgt Kameru'; $lang['StartList']='Dalībnieku saraksts'; @@ -690,7 +722,7 @@ $lang['Status']='Statuss'; $lang['StatusValidUntil']='Statuss derīgs līdz'; $lang['StdORIS']='Standarta ORIS izdruka'; -$lang['StickersBarcode']='Drukāt svītru kodu'; +$lang['StickersBarcode']='Drukāt svītrkodu'; $lang['StickersBotMargin']='Apakšējā mala'; $lang['StickersCols']='Kolonna/Platums'; $lang['StickersInterCols']='Atstarpe starp kolonnām'; @@ -727,6 +759,7 @@ $lang['TargetAssignment']='Drukāt izkārtojumu pa vairogiem'; $lang['TargetDoAssignment']='Kārtot pa vairogiem'; $lang['TargetFrom']='Sākuma vairogs'; +$lang['TargetJudgeSignature']='Vairoga tiesneša paraksts'; $lang['Targets']='Vairogi'; $lang['TargetShort']='T#'; $lang['TargetsToHHt']='Nosūtīt izkārtojumu pa vairogiem aizvietojot vārdus'; @@ -737,7 +770,6 @@ $lang['TeamCreationMode_2']='Vienmēr otrā komanda'; $lang['TeamCreationMode_3']='Vienmēr trešā komanda'; $lang['TeamFin']='Komandas - Izsl. un finālu raunds'; -$lang['TeamFinEvent']='Komandas fināls'; $lang['TeamPlace']='Komandu vietu zīmes'; $lang['TeamPlaceLocal']='Komandu vietu zīmes (lokalizēts)'; $lang['TeamQual']='Komandas - Kval. raunds'; @@ -747,6 +779,7 @@ $lang['TieWinner']='Uzvarētājs'; $lang['Time']='Sākuma laiks'; $lang['TimeAt']='Laiks'; +$lang['TimeStampSignature']='Paraksta laika zīmogs (HH:MM)'; $lang['Title']='Virsraksts'; $lang['TitleColor']='Apgriezt virsraksta krāsu'; $lang['TitleTourMenu']='Izvēlēties sacensības'; @@ -755,17 +788,21 @@ $lang['Total1']='Kopā (pirmā daļa)'; $lang['Total2']='Kopā (otrā daļa)'; $lang['TotalCompetitors']='Dalībnieku skaits kopā'; +$lang['TotalPoints']='SET punkti kopā'; $lang['TotalProg']='Summa'; $lang['TotalShort']='Kopā'; $lang['TourCode']='Sacensību kods'; $lang['TourCommitee']='Organizators'; $lang['TourCountries']='Valsts/Kluba attēlu pārvaldīšana'; $lang['TourDouble']='Dubults'; +$lang['TourIsOris']='ORIS atbilstība'; $lang['TourMainInfo']='Pamatinformācija'; $lang['TourName']='Nosaukums'; $lang['TournamentImport']='Importēt sacensības'; $lang['TourPartecipants']='Sacensību dalībnieki'; $lang['TourRecordSetup']='Turnīru rekordu uzstādījumi'; +$lang['TourRuleReset']='Atiestatīt uz iepriekš definētām vērtībām'; +$lang['TourRuleResetDescr']='Šī darbība atiestatīs visas ar turnīru saistītās opcijas uz to noklusējuma vērtībām: Divīzijas, Klases, Distances, Mērķus, utt...
    Izmantojiet tikai tad, ja zināt, ko darāt!'; $lang['TourShortName']='Saīsinājums'; $lang['TourTimeZone']='Laika zona'; $lang['TourType']='Sacensību veids'; @@ -776,7 +813,7 @@ $lang['TourType_4']='Apvidus'; $lang['TourType_8']='3D'; $lang['TourWhen']='Datums'; -$lang['TourWhere']='Vieta'; +$lang['TourWhere']='Vieta (pilsēta, novads, pagasts)'; $lang['TR-Record']='Sacensību rekords'; $lang['Transport']='Transports'; $lang['Transport_1']='Automašīna'; @@ -894,6 +931,7 @@ $lang['Unisex']='Unisex'; $lang['UpdateJPG']='izveidot arī JPG versiju'; $lang['UpdatePNG']='Atjaunināt atbilstošo PNG failu?'; +$lang['UploadFile']='Augšuplādēt failus (PDF)'; $lang['URL']='URL'; $lang['ValidDivisions']='Pieļautās div. (atstāt tukšu visām)'; $lang['VersionFile']='Datne'; diff --git a/src/Common/Languages/ms/Api.php b/src/Common/Languages/ms/Api.php index dde6ac21..6b2dffbe 100644 --- a/src/Common/Languages/ms/Api.php +++ b/src/Common/Languages/ms/Api.php @@ -31,6 +31,7 @@ $lang['DevConnected']='Disambungkan'; $lang['DevDisconnected']='Tidak disambungkan'; $lang['DistanceNum']='Jarak $a'; +$lang['FieldMonitor']='Pemantauan Lapangan'; $lang['FlashCodeDistance']='Imbas kod ini di Aplikasi untuk pemarkahan $a'; $lang['HitToWin']='Mata untuk menang'; $lang['ImportDoneQualRecheck']='Import keputusan Kelayakan siap. Sila semak dengan teliti pengiraan Kedudukan secepat mungkin.'; @@ -49,6 +50,7 @@ $lang['ISK-ConnectionStatus']='Status Penyambungan'; $lang['ISK-DeleteDevices']='Buang Peranti'; $lang['ISK-DenyAccess']='Akses Ditolak'; +$lang['ISK-Deprecated']='PENTING: Apl "Ianseo Score Keeper" sedang ditamatkan secara berperingkat daripada gedung Android dan Apple dan tidak disokong lagi, oleh itu ia akan dialih keluar daripada Ianseo pada September 2024. Sebaliknya, sila tukar kepada Apl "Ianseo Score Keeper NG" yang baharu.'; $lang['ISK-DeviceAlive']='Online'; $lang['ISK-DeviceBattery']='Bateri'; $lang['ISK-DeviceEnabled']='Aktifkan'; @@ -59,6 +61,7 @@ $lang['ISK-DeviceStatusWanted']='Paksa Status Baru'; $lang['ISK-DeviceUsed']='Sedang digunakan'; $lang['ISK-enableGPS']='Hantar Kedudukan Peranti'; +$lang['ISK-enableHaptics']='Hidupkan maklum balas Haptics'; $lang['ISK-EnableScore']='Membolehkan Ianseo ScoreKeeper'; $lang['ISK-enableTotals']='Membolehkan Jumlah Keseluruhan pada peranti'; $lang['ISK-enableWIFIManagement']='Membenarkan ISK untuk mengurus peranti Wi-Fi'; @@ -77,6 +80,7 @@ $lang['ISK-Lite-NoCompCode']='Kod Pertandingan Hilang'; $lang['ISK-Lite-QRCode']='Cetak QR Kod untuk Ianseo ScoreKeeper Lite'; $lang['ISK-Lite-ServerUrl']='Url Server (termasuk protokol dan port jika buka 80)'; +$lang['ISK-Live-Deprecated']='PENTING: Apl "Ianseo Score Keeper Live" tidak disokong lagi, oleh itu ia akan dialih keluar daripada Ianseo pada September 2024. Sebaliknya, sila tukar kepada Apl "Ianseo Score Keeper NG" yang baharu.'; $lang['ISK-Live-Name']='Ianseo ScoreKeeper LIVE'; $lang['ISK-lockPortrait']='Tetapan peranti dalam paparan potret'; $lang['ISK-Name']='Ianseo ScoreKeeper'; @@ -102,6 +106,10 @@ $lang['ISK-ServerUrl']='Url Server (termasuk protokol dan port jika buka 80)'; $lang['ISK-ServerUrlPin']='Pin Keselamatan Pertandingan'; $lang['ISK-SetQRData']='Set Peranti menggunakan Kod QR'; +$lang['ISK-SettingsPIN']='Tetapan PIN'; +$lang['ISK-SETUP-11']='Persediaan ISK-NG Lite'; +$lang['ISK-SETUP-12']='Persediaan ISK-NG Pro'; +$lang['ISK-SETUP-13']='Persediaan Langsung ISK-NG'; $lang['ISK-showPictures']='Tunjuk Gambar'; $lang['ISK-SocketAction']='Tindakan'; $lang['ISK-SocketIP']='IP Soket Web (untuk Peranti)'; @@ -114,6 +122,8 @@ $lang['ISK-StatusWaitConfirm']='Peranti menunggu untuk disahkan'; $lang['ISK-TruncateTable']='Memendekkan kotak jadual (sesi yang lain)'; $lang['ISK-TruncateTableAll']='Memendekkan kotak jadual (lengkap)'; +$lang['ISK-UsePersonalDevices']='Gunakan Peranti Peribadi'; +$lang['ISK-UsePersonalDevices-Help']='Pilih pilihan ini jika peranti peribadi pemanah akan digunakan. Ini perlu didaftarkan terlebih dahulu dan mengimbas Kod Qr pada kad skor untuk dapat memasukkan markah.'; $lang['ISK-VibrateUpdate']='Bergetar semasa Kemaskini'; $lang['ISK-WiFi']='Pengurusan WiFi'; $lang['ISK-WifiDELETE']='Hapuskan Wi-Fi yang lain dari peranti pemarkahan'; @@ -126,6 +136,7 @@ $lang['ISK-WifiTargetRange']='WiFi pilihan untuk sasaran'; $lang['ISK-WifiUse']='Aplikasi WiFi - Dibuka'; $lang['IskDeviceAssigned']='Peranti(s)'; +$lang['IskResetAlert']='AMARAN: Semua tetapan yang tiada pada persediaan ini akan dialih keluar, kecuali untuk ciri Pengumpulan.'; $lang['IskScoringDevice']='Peranti $a tidak dibenarkan mengambil markah dalam sesi / pertandingan ini!'; $lang['IskSpuriousDevice']='Peranti $a[0] menghantar markah yang tidak dikehendaki pada sasaran $a[1]'; $lang['IskSpuriousScore-Device']='Peranti $a[0] menghantar markah pada sasaran $a[1] dari fasa $a[2]'; @@ -143,9 +154,11 @@ $lang['MissingParameter']='Parameter Hilang'; $lang['MsgDelAllTablets']='Padam semua tablet dalam senarai'; $lang['MsgDelTablet']='Padam tablet'; +$lang['MsgEmptyTemporaryOfGroup']='Kosongkan jadual data sementara daripada semua peranti daripada kumpulan yang dipilih.'; $lang['NewGroup']='menetapkan Kumpulan Baru'; $lang['NewTarget']='Menetapkan Sasaran Baru'; $lang['PartialImport']='Import Partial secara Automatik'; +$lang['PartialImportAll']='Import SEMUA'; $lang['PopupStatusDistance']='Jarak: $a'; $lang['PopupStatusEnd']='Pusingan: $a'; $lang['PopupStatusEvent']='Acara: $a'; @@ -160,6 +173,7 @@ $lang['RaspControl']='Kawal Raspberry'; $lang['RaspDevice']='Peranti'; $lang['RasUrl']='Url ke pelayan'; +$lang['RecalcAfterImport']='Selepas setiap Import (tetap)'; $lang['RecalcFullDist']='Selepas menerima semua data jarak'; $lang['RecalcManually']='Secara Manual'; $lang['RecalcMode']='Mod pengiraan semula'; @@ -172,6 +186,8 @@ $lang['SelectedReNumber']='Susun semula susunan peranti bermula dari'; $lang['StatusTemporaryArrows']='Situasi Anak Panah dalam Jadual Sementara'; $lang['StickyAlreadySet']='Penghabisan Lekitan telah tersedia set dalam sesi berbeza!'; +$lang['TargetRequests-Printout']='Cetak Kod QR Sasaran yang diminta'; +$lang['TargetScoring-Printout']='Cetak QR Kod Markah Sassaran'; $lang['TempArrowsDelete']='PADAM Anak panah dari Jadual Sementara'; $lang['TempArrowsImport']='Import Anak Panah dari Jadual Sementara'; $lang['TempArrowsM']='Anak Panah Tidak Diimport dalam Perlawanan (Ind., Tean, Pusingan Kedudukan, Pool, dll)'; @@ -179,6 +195,7 @@ $lang['UnlockAll']='Buka Semua Sesi'; $lang['UsePersonalDevices-Granted']='Peribadi'; $lang['UsePersonalDevices-Print']='Cetak Kod Qr Permintaan Sasaran pada Kad Skor'; +$lang['ViewSize']='Lihat Saiz'; $lang['WAToolbox-MissingParams']='Parameter Hilang'; $lang['WAToolbox-NoCompCode']='Kod Pertandingan Hilang'; $lang['XToWin']='$a untuk menang'; diff --git a/src/Common/Languages/ms/BackNumbers.php b/src/Common/Languages/ms/BackNumbers.php index 4ed5f7cc..fe521408 100644 --- a/src/Common/Languages/ms/BackNumbers.php +++ b/src/Common/Languages/ms/BackNumbers.php @@ -22,6 +22,7 @@ $lang['AutoCHK-Code']='Kod Pertandingan'; $lang['AutoCHK-Confirm']='Sahkan Daftar Masuk'; $lang['AutoCHK-IP']='IPs bagi Auto-Daftar Masuk Peranti (satu bagi setiap baris)'; +$lang['AutoCHK-IPinfo']='Maklumat Mata Layan Diri'; $lang['AutoCHK-IPnoMgm']='IP Kios Khidmat Layan Diri'; $lang['AutoCHK-Names']='Semak juga nama DIberi/Keluarga'; $lang['AutoCHK-nobody']='Tiada sesiapa dengan kod ini didalam DB buat masa ini... SILA TERUSKAN KE MEJA'; @@ -111,6 +112,7 @@ $lang['GivCaps-FamCaps-ClubCaps']='NAMADIBERI NAMAKELUARGA, NAMA NEGARA'; $lang['GivenNameInitial']='Perkataan pertama nama diberi'; $lang['Heigh']='Tinggi'; +$lang['HLayout']='Mendaftar'; $lang['HLine']='Garisan Melintang'; $lang['I-Badge']='Nombor Pemanah Perlawanan Individu'; $lang['IdCardHor']='lebar'; @@ -131,6 +133,7 @@ $lang['Italic']='Condong'; $lang['Landscape']='Landskap'; $lang['MultiLine']='Baris berbilang'; +$lang['NameTag']='Tanda Nama'; $lang['NewBadgeName']='Nama Baru Lencana'; $lang['NocCaps']='KodKelab'; $lang['NocCaps-ClubCamel']='KODKELAB NamaKelab'; @@ -141,6 +144,8 @@ $lang['OpenPictureScreen']='Buka Skrin Kedua'; $lang['PageDimension']='Saiz Muka Surat'; $lang['PaperDimention']='Ukuran kertas'; +$lang['PhaseFrom']='Dari Fasa'; +$lang['PhaseTo']='Ke Fasa'; $lang['Picture']='Gambar Atlit'; $lang['Portrait']='Potret'; $lang['PosX']='Kedudukan (X)'; @@ -161,6 +166,8 @@ $lang['ResetBarcodeSeparator']='Menetapkan semula Pemisah Kod Bar'; $lang['RnkCardinalEN']='Pandangan kardinal (1, 2, ..., 10)'; $lang['RnkOrdinal']='Pandangan ordinal (1, 2, ..., 10) - EN'; +$lang['RnkRoman']='Nombor Roman (I, II, ... IV, ... CM)'; +$lang['S-Badge']='Pelekat'; $lang['Schedule']='Jadual'; $lang['Session']='Sesi Kelayakkan'; $lang['SessionTarget']='Sasaran dan Kod Sesi'; @@ -175,6 +182,7 @@ $lang['ToRight']='Logo Pertandingan (Kanan)'; $lang['TVViewIdCard']='Lihat Kad ID'; $lang['TVViewIdCardDescr']='Dalam paparan perlawanan buat cabutan 2 Kad ID dari lawan selain daripada "standard" baris'; +$lang['VLayout']='Menegak'; $lang['Width']='Lebar'; $lang['WRank']='Kedudukan Dunia'; $lang['WRankFields']='Jangan pamer selepas Kedudukan RD (0:Lihat semua)'; diff --git a/src/Common/Languages/ms/Boinx.php b/src/Common/Languages/ms/Boinx.php index 92818f6e..95c01557 100644 --- a/src/Common/Languages/ms/Boinx.php +++ b/src/Common/Languages/ms/Boinx.php @@ -21,6 +21,11 @@ $lang['CssFlexName']='Blok Nama dan Bendera - Biasa'; $lang['CssFlexSum']='Blok Akhir Semasa - Biasa'; $lang['CssFlexTotal']='Blok Jumlah Markah - Biasa'; +$lang['CssImage']='Imej Tindanan'; +$lang['CssImage1']='Css untuk Imej 1'; +$lang['CssImage2']='Css untuk Imej 2'; +$lang['CssImage3']='Css untuk Imej 3'; +$lang['CssImageDiv']='Kotak div imej tindanan'; $lang['CssLeftFlexArrows']='Blok Perincian Anak Panah - Kiri'; $lang['CssLeftFlexName']='Blok Nama dan Bendera - Kiri'; $lang['CssLeftFlexSum']='Blok Akhir Semasa - Kiri'; @@ -28,6 +33,7 @@ $lang['CssLeftLight']='Kotak Masa - Kiri'; $lang['CssLeftNames']='Panel Papan Skor - Kiri'; $lang['CssLeftPresentation']='Panel Pembentangan - Kiri'; +$lang['CssLeftPresentationCountry']='Garisan Negara Persembahan - Kiri'; $lang['CssLight']='Kotak Masa - Biasa'; $lang['CssMatchBottom']='Perlawanan - Baris Bawah'; $lang['CssMatchCommon']='Perlawanan - Biasa'; @@ -37,6 +43,7 @@ $lang['CssPointsCommon']='Mata'; $lang['CssPresentation']='Panel Pembentangan - Biasa'; $lang['CssRankCommon']='Sel Kedudukan'; +$lang['CssReminder']='Jangan lupa untuk simpan sebarang perubahan yang telah dibuat!'; $lang['CssRightFlexArrows']='Blok Perincian Anak Panah - Kanan'; $lang['CssRightFlexName']='Blok Nama dan Bendera - Kanan'; $lang['CssRightFlexSum']='Blok Akhir Semasa - Kanan'; diff --git a/src/Common/Languages/ms/Common.php b/src/Common/Languages/ms/Common.php index 0495138f..517fb7b3 100644 --- a/src/Common/Languages/ms/Common.php +++ b/src/Common/Languages/ms/Common.php @@ -1,6 +1,6 @@ Buat semula semua operasi awal sebelum memasukkan data baru!'; $lang['MsgNeedInitGrids']='Ralat!
    Kurungan tidak dimulakan!'; $lang['MsgNeedShootOff']='Ralat!
    Mula-mula anda perlu menyemak tembak-semula!'; @@ -493,6 +508,7 @@ $lang['Score1Page1Match']='Markah untuk perlawanan tunggal'; $lang['ScoreDrawing']='Hanya Lukisan (Satu Halaman)'; $lang['ScoreFilled']='Cetak Skor Kad yang diisi dengan semua nilai dari anak panah pertama'; +$lang['ScoreIncAllNames']='Masukkan semua Lawan yang berkemungkinan'; $lang['ScoreIncEmpty']='Cetak perlawanan walaupun tiada pihak lawan'; $lang['Scorer']='Pencatat Markah'; $lang['SearchOrphanTexts']='Cari Teks Orphan'; @@ -501,9 +517,12 @@ $lang['SelectAll']='Pilih Semua'; $lang['SelTour']='Kejohanan Dipilih'; $lang['Session']='Sesi'; +$lang['SetWinShot']='Pemenang Set Panahan'; +$lang['SetWinShotHelp']='[Bilangan pemenang perlawanan panahan yang berjaya] - [Bilangan pemenang perlawanan panahan yang gagal] %=Peratusan untuk berjaya bila mana anak panah menentukan pemenang perlawanan berpotensi'; $lang['SF']='Wanita Senior'; $lang['ShootOff4Elim']='Semak tembak-semula sebleum pusingan penyingkiran'; $lang['ShootOff4Final']='Semak tembak-semula sebleum fasa akhir'; +$lang['ShootOff4Rank']='Semak shoot-off sebelum membuat Cetakan Kedudukan'; $lang['SM']='Lelaki Senior'; $lang['SnapshotConf']='Konfigurasi Snapshot'; $lang['SortBy']='Susun Mengikut'; @@ -545,12 +564,14 @@ $lang['Total']='Jumlah'; $lang['TotaleScore']='Jumlah'; $lang['Trg3DComplete']='Standard 3D'; +$lang['Trg3DReddingEnd']='3D Kemerahan'; $lang['TrgCOIndComplete']='Dalam (1-10 kecil)'; $lang['TrgCOIndSmall']='Dalam (6-10 kecil)'; $lang['TrgCOOutdoor']='Luar (5-X)'; $lang['TrgCOOutdoorSmall']='Luar (6-X)'; $lang['TrgField']='Memanah Padang'; $lang['TrgForestSwe']='Hutan (SWE)'; +$lang['TrgFrBouquet']='Sejambak'; $lang['TrgHMOutComplete']='Kena-Tak Kena'; $lang['TrgHunterNor']='Memburu (Norway)'; $lang['TrgImperial']='Sasaran Imperial (1-9)'; diff --git a/src/Common/Languages/ms/Errors.php b/src/Common/Languages/ms/Errors.php index 3f9d611e..0ea0e673 100644 --- a/src/Common/Languages/ms/Errors.php +++ b/src/Common/Languages/ms/Errors.php @@ -2,14 +2,21 @@ $lang['AllFieldsMandatory']='Semua ruangan perlu diisi'; $lang['AllMailsRedirect']='Semua mesej akan dihantar ke'; $lang['Anomalies']='Anomali'; +$lang['BarCodeSession']='Ada kesalahan di dalam tetapan: cuba tetapan sesi!'; +$lang['BarCodeSettings']='Ada kesalahan di dalam tetapan'; $lang['ClassFromToError']='Dari dan Ke mesti berupa nilai berangka'; $lang['ClubNotFound']='Kod Kelab tidak ditemui dalam kelab sedia ada. Sila kemas kini pangkalan data dahulu!'; +$lang['DecodeError']='Nyahkod Ralat'; +$lang['DiameterMandatory']='Diameter target face adalah wajib'; $lang['DirectoryNotWriteable']='Direktori $a tidak boleh ditulis oleh pelayan web. Sila ubah keizinannya untuk ditulis oleh sesiapa sahaja.'; +$lang['DistanceOutRange']='Jarak di luar julat'; $lang['DivClasNumberNotEmpty']='Anda mesti memilih sekurang-kurangnya satu bahagian dan satu kelas (dan berapa ramai pemanah dalam pasukan).'; $lang['EmptyBody']='Badan Tiada: bidang ini adalah wajib!'; $lang['EmptyFrom']='Email Tiada: bidang ini adalah wajib!'; $lang['EmptySubject']='Subjek Tiada: bidang ini adalah wajib!'; $lang['EmptyTitle']='Tajuk Tiada: bidang ini adalah wajib!'; +$lang['EntriesNoCategory']='Kemasukan tanpa Kategori'; +$lang['EntriesNoCountry']='Kemasukan tanpa Negara/Kelab'; $lang['ErrCodeExists']='Kod sudah wujud!'; $lang['ErrCommitteeError']='Kod atau perihalan Jawatankuasa tidak sah'; $lang['ErrConnection']='Tiada sambungan ke pelayan $a'; @@ -27,17 +34,27 @@ $lang['ErrRedCard']='Jawatankuasa ini menjalani kad merah dan tidak boleh meminta pertandingan untuk dihoskan di ianseo. Hubungi codes@ianseo.net untuk penjelasan lanjut.'; $lang['ErrUnknownNation']='Negara Tidak Diketahui'; $lang['ErrYellowCard']='Jawatankuasa telah menjalani Kad Kuning kerana tiada hasil pertandingan telah dimuat naik. Hubungi codes@ianseo.net untuk penjelasan lanjut.'; +$lang['FilterAlreadyExists']='Tapisan ini telah wujud'; +$lang['FilterNotEmpty']='Anda perlu menentukan tapisan'; +$lang['ImageFetchError']='Ralat Ambilan Imej'; +$lang['ImageSaveError']='Imej tidak disimpan'; +$lang['IncompleteSettings']='Tetapan Tidak Lengkap'; $lang['InvalidEmail']='E-mel Tidak Sah: sila semak semula e-mel sebelum menyimpan'; +$lang['InvalidLogin']='Log Masuk Tidak Sah'; $lang['LockedProcedure']='Prosuder ini DIKUNCI'; $lang['MailingAlreadyExists']='E-mel dengan tajuk yang sama ({$a}) sudah ada, sila ubah tajuk atau pilih e-mel untuk dipinda dari pemilih.'; $lang['MailingDeleteText']='Sila sahkan bahawa anda ingin memadam surat ini secara kekal!'; $lang['MailingDeleteTitle']='Buang Surat'; $lang['MailingError']='Tiada perubahan dilakukan!'; $lang['MalformedMail']='Mel tidak betul, sila masukkan e-mel yang sah ($a})'; +$lang['ManDistance-EmptySelection']='Tetapan tidak sepadan dengan mana-mana kategori'; $lang['MissingAccreditation']='Tiada akreditasi dalam talian!'; $lang['MissingData']='Data Tiada'; $lang['MissingPhpIntlModule']='Transliterasi boleh dilakukan memasang dan mengaktifkan modul php-intl'; $lang['NameNotEmpty']='Nama tidak boleh dibiarkan kosong'; +$lang['NoCountryInsert']='Tiada Negara Dimasukkan'; +$lang['NoData']='Tiada Data disediakan'; +$lang['NoDistancesSet']='Kategori tanpa tetapan jarak'; $lang['NoDNSRecord']='Nama Pelayan tidak betul atau tidak dalam talian: harap maklum bahawa anda mesti disambungkan ke Internet untuk menetapkan pilihan ini.'; $lang['NoMailingTemplate']='Tiada Templat E-mel yang dipilih/tersedia!'; $lang['NoMailRecipients']='Email ini tidka ditujukan kepada sesiapa! Sila semak pilihan penapis anda.'; diff --git a/src/Common/Languages/ms/IOC_Codes.php b/src/Common/Languages/ms/IOC_Codes.php index 60154b5e..df198b02 100644 --- a/src/Common/Languages/ms/IOC_Codes.php +++ b/src/Common/Languages/ms/IOC_Codes.php @@ -49,7 +49,7 @@ $lang['CHA']='Chad'; $lang['CHI']='Chile'; $lang['CHN']='China'; -$lang['CIV']='Ivory Coast'; +$lang['CIV']='Côte d\'Ivoire'; $lang['CMR']='Cameroon'; $lang['COD']='Republik Demokratik Congo'; $lang['COK']='Kepulauan Cook'; @@ -59,6 +59,7 @@ $lang['CRC']='Costa Rica'; $lang['CRO']='Croatia'; $lang['CUB']='Cuba'; +$lang['CUW']='Curacao'; $lang['CYP']='Cyprus'; $lang['CZE']='Republik Czech'; $lang['DEN']='Denmark'; @@ -74,7 +75,10 @@ $lang['ETH']='Ethiopia'; $lang['FIJ']='Fiji'; $lang['FIN']='Finland'; +$lang['FLK']='Falkland Island'; +$lang['FPO']='Tahiti'; $lang['FRA']='Perancis'; +$lang['FRO']='Faroe Islands'; $lang['FSM']='Micronesia'; $lang['GAB']='Gabon'; $lang['GAM']='Gambia'; @@ -84,6 +88,7 @@ $lang['GEQ']='Equatorial Guinea'; $lang['GER']='Jerman'; $lang['GHA']='Ghana'; +$lang['GLP']='Guadalupe'; $lang['GRE']='Greece'; $lang['GRN']='Grenada'; $lang['GUA']='Guatemala'; @@ -112,11 +117,13 @@ $lang['KGZ']='Kyrgyzstan'; $lang['KIR']='Kiribati'; $lang['KOR']='Korea Selatan'; +$lang['KOS']='Kosovo'; $lang['KSA']='Arab Saudi'; $lang['KUW']='Quwait'; $lang['LAO']='Laos'; $lang['LAT']='Latvia'; $lang['LBA']='Libya'; +$lang['LBN']='Lebanon'; $lang['LBR']='Liberia'; $lang['LCA']='Saint Lucia'; $lang['LES']='Lesotho'; @@ -124,6 +131,7 @@ $lang['LIE']='Liechtenstein'; $lang['LTU']='Lithuania'; $lang['LUX']='Luxembourg'; +$lang['MAC']='Macau, China'; $lang['MAD']='Madagascar'; $lang['MAR']='Maghribi'; $lang['MAS']='Malaysia'; @@ -199,10 +207,11 @@ $lang['THA']='Thailand'; $lang['TJK']='Tajikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='East Timor'; +$lang['TLS']='Timor Leste'; $lang['TOG']='Togo'; $lang['TPE']='Chinese Taipei'; $lang['TRI']='Trinidad and Tobago'; +$lang['TTO']='Trinidad and Tobago'; $lang['TUN']='Tunisia'; $lang['TUR']='Turki'; $lang['TUV']='Tuvalu'; diff --git a/src/Common/Languages/ms/Ianseo.php b/src/Common/Languages/ms/Ianseo.php index ae708779..1bd539cd 100644 --- a/src/Common/Languages/ms/Ianseo.php +++ b/src/Common/Languages/ms/Ianseo.php @@ -7,4 +7,9 @@ $lang['Cert-Level4']='Kursus Master'; $lang['Cert-Level5']='Kru Ianseo'; $lang['CertificateManagement']='Pengurusan Sijil'; +$lang['GenerateFile']='Cipta Fail'; +$lang['ResetItems']='Tetapkan Semula Item.
    Tindakan ini tidak akan meminta pengesahan dan tidak boleh dibuat asal!
    Menetapkan semula kelayakan akan menetapkan semula semua acara berikutnya juga!'; +$lang['ResetResult']='Sesi yang diminta telah ditetapkan semula'; +$lang['ResetSessions']='Sahkan Set Semula'; +$lang['ShuffleResults']='Kocok Keputusan'; ?> \ No newline at end of file diff --git a/src/Common/Languages/ms/Install.php b/src/Common/Languages/ms/Install.php index 849b6348..97d3b1d0 100644 --- a/src/Common/Languages/ms/Install.php +++ b/src/Common/Languages/ms/Install.php @@ -78,7 +78,6 @@ $lang['Parameter']='Parameter'; $lang['Password']='Kata Laluan'; $lang['PHP settings']='Tetapan PHP'; -$lang['PHP too old']='Pemasangan PHP anda terlalu lama. Nombor versi minimum untuk IANSEO adalah 5.0.'; $lang['PHP version']='Versi PHP'; $lang['php.ini file']='Fail php.ini'; $lang['Prepare']='Menyediakan data untuk kemaskini'; @@ -222,7 +221,6 @@ $lang['Value']='Nilai'; $lang['WhatIanseoDoes01']='Mematuhi Peraturan Memanah Dunia:Ianseo sentiasa mengemaskini peraturan World Archery yang terkini. Pemaju boleh juga membuat perubahan bagi memenuhi Peraturan Khusus Negara dan Persaingan juga!'; $lang['WhatIanseoDoes02']='Bantuan dan sokongan:jika anda memerlukan bantuan, hantar e-mel kepada $a: anda akan mendapat jawapan terus dari pemaju Ianseo!'; -$lang['WhatIanseoDoes03']=' Latihan dan kursus di lokasi: Ianseo tersedia untuk menguruskan kursus lokasi khusus. Dua tahap: tanpa dan dengan peranti elektronik. Yang pertama bertujuan untuk mengetahui semua aspek ianseo dari persiapan dan jadual pertandingan hingga penerbitan dalam talian dan pengedaran hasil tempatan. Yang kedua bertujuan untuk memperoleh semua pengetahuan khusus untuk menjalankan pertandingan "panah demi anak panah".'; $lang['WhatIanseoDoes04']='Sumbangan! Ianseo adalah sumber bebas dan terbuka ... jika anda suka, sila bantu kami menjaga perisian dan pelayan terkini: tekan butang "Donate" di halaman utama $a!'; $lang['WhatIanseoDoes05']='Media Sosial:Ianseo juga pada $a!'; $lang['WhatIanseoDoesTitle']='Apa yang boleh dilakukan oleh Ianseo untuk pertandingan anda'; diff --git a/src/Common/Languages/ms/RoundRobin.php b/src/Common/Languages/ms/RoundRobin.php index fd6a423c..9a7e52d7 100644 --- a/src/Common/Languages/ms/RoundRobin.php +++ b/src/Common/Languages/ms/RoundRobin.php @@ -28,6 +28,7 @@ $lang['Levels']='Tahap'; $lang['LevelsHelp']='Jumlah Tahap'; $lang['LevelShort']='Thp'; +$lang['PreSeedNum']='Kedudukan seperti $a'; $lang['QualifiedArchers']='Pemanah yang Layak'; $lang['RegularBrackets']='Carta Biasa'; $lang['Round']='Pusingan'; @@ -42,6 +43,7 @@ $lang['Source']='Tahap Sumber+Kumpulan'; $lang['SourceRank']='Kedudukan Sumber'; $lang['TargetAssignment']='Tugasan Sasaran'; +$lang['TargetAssignmentDescription']='Nombor Sasaran diikuti dengan "++" berfungsi sebagai "+" tetapi mengulangi sasaran yang sama pada semua peringkat bermula dari peringkat semasa;
    Nombor Sasaran diikuti dengan "**" berfungsi sebagai "*" tetapi untuk semua pusingan'; $lang['Tie']='Seri'; $lang['TieAllowed']='Seri Dibenarkan'; $lang['TieBreak-1']='Pemutus 1'; diff --git a/src/Common/Languages/ms/Tournament.php b/src/Common/Languages/ms/Tournament.php index 24930a78..ad3f1805 100644 --- a/src/Common/Languages/ms/Tournament.php +++ b/src/Common/Languages/ms/Tournament.php @@ -27,7 +27,7 @@ $lang['AclISKServer']='Pengurusan ISK'; $lang['AclModules']='Model'; $lang['ACLNoAccess']='Tiada Akses'; -$lang['AclNotes']='Nota tentang Keselamatan Rangkaian
    • sekatan adalah "berasaskan pertandingan" dan bukan "berasaskan pelayan"
    • apabila polisi diaktifkan, klien yang tidak disenarai kana menjadi "Tiada Akses"
    • localhost (127.0.0.1 atau ::1) tidak boleh disekat
    • Polisi boleh dinyahaktifkan dari pelayan itu sendiri{$a}
    '; +$lang['AclNotes']='Nota tentang Keselamatan Rangkaian
    • Sekatan ini adalah "berasaskan persaingan" dan bukan "berasaskan pelayan"
    • localhost (127.0.0.1 atau ::1) tidak boleh dihadkan
    • Dasar boleh dilumpuhkan panggilan daripada pelayan itu sendiri {$a}
    • Apabila dasar didayakan, tingkah laku lalai untuk klien tidak tersenarai ialah "Tiada Akses"
    • Adalah mungkin untuk menambah * sebagai kumpulan terakhir Alamat IP (192.168.0.* atau 172.16.*) untuk menambah kumpulan lalai
    • < li>Adalah mungkin untuk menggunakan RegExp untuk memadankan alamat IP. RegExps akan dinilai mengikut susunan yang ditunjukkan dan membenarkan dasar R/W
    '; $lang['AclOdf']='Pengurusan ODF'; $lang['AclOutput']='Output'; $lang['AclParticipants']='Peserta'; @@ -128,7 +128,7 @@ $lang['BadgeIncludePhoto']='Sertakan Foto dalam Lencana?'; $lang['BadgeNames']='Nama Penuh (Tidak dicetak terlebih dahulu)'; $lang['BadgeNoData']='Tiada data untuk dicetak'; -$lang['BadgeOnlyNotPrinted']='HANYA Lencana belum dicetak?'; +$lang['BadgeOnlyNotPrinted']='Hanya yang BELUM dicetak?'; $lang['BadgeOnlyPrintAccredited']='HANYA Lencana peserta bertauliah?'; $lang['BadgeOnlyPrintPhoto']='HANYA Lencana dengan Foto?'; $lang['BadgeOptions']='Pilihan'; @@ -338,7 +338,7 @@ $lang['EmailScorecardShort']='Ringkasan Kad Markah'; $lang['EmailsToSend']='Email dihantar kepada'; $lang['EmailSuccessfull']='Email telah berjay dihantar ke $a'; -$lang['EnableAccess']='Aktifkan/Tutupkan Dasar'; +$lang['EnableAccess']='Aktifkan/Tutupkan Dasar Polisi'; $lang['Ends']='Pusingan'; $lang['EndTotal']='Jumlah Akhir'; $lang['EndUpdate']='Semua kemaskini selesai'; @@ -381,9 +381,13 @@ $lang['FinalRank']='Kedudukan Akhir'; $lang['FinalReportTitle']='Laporan Pertandingan'; $lang['Finals']='Akhir'; +$lang['FinalTarget']='Sasaran Akhir'; +$lang['FinalTime']='Masa akhir'; +$lang['FinArrows']='Anak panah akhir'; $lang['FindArcher']='Cari Atlit'; $lang['FinEnds']='Pusingan Akhir'; $lang['FirstPhase']='Fasa Pertama'; +$lang['FirstTarget']='Sasaran Pertama'; $lang['Flags']='Bendera/Logo Negara Kelab'; $lang['FlightsAwardManagement']='Pengurusan Bendera Hadiah'; $lang['FlightsCategories']='Kategori'; @@ -394,6 +398,9 @@ $lang['FlightsManagement']='Pengurusan Bendera'; $lang['FlightsReset']='Menetapkan semula'; $lang['FlightsTotals']='Jumlah'; +$lang['FontFile']='Fail Tulisan'; +$lang['FontName']='Nama Tulisan'; +$lang['FontSample']='Contoh Tulisan'; $lang['From']='Dari'; $lang['GetCredentials']='Dapatkan Kod Pertandingan'; $lang['Group']='Kumpulan'; @@ -580,11 +587,12 @@ $lang['UserDetails']='Butiran Pengguna'; $lang['UserEnabled']='Aktifkan'; $lang['UserName']='Nama Pengguna'; -$lang['UserPassword']='Kata Laluan'; +$lang['UserPassword']='Kata Laluan Baru'; $lang['VersionEntries']='Penyertaan'; $lang['VersionEvent']='Acara/ Kategori'; $lang['VersionFile']='Fail'; $lang['VersionNotes']='Nota'; +$lang['VersionSector']='Sektor'; $lang['WaCategory']='Kategori WA'; $lang['WaId']='Lesen Id Pemanah'; $lang['WaIdShort']='ID Pemanah'; @@ -600,4 +608,5 @@ $lang['XNineLabel']='Label XSembilan'; $lang['YearEnd']='Hingga Tahun'; $lang['YearStart']='Dari Tahun'; +$lang['YourNextMatch']='Ini adalah perlawanan berikut anda'; ?> \ No newline at end of file diff --git a/src/Common/Languages/nl/Api.php b/src/Common/Languages/nl/Api.php index a5813548..e48e0860 100644 --- a/src/Common/Languages/nl/Api.php +++ b/src/Common/Languages/nl/Api.php @@ -4,6 +4,9 @@ $lang['API-Group']='Groep'; $lang['API-TargetGrouping']='Doelen groeperen'; $lang['API-Targets']='Doelen'; +$lang['AskSignature-0']='Nee'; +$lang['AskSignature-1']='Scan sporters-ID'; +$lang['AskSignature-2']='Ondertekening op het scherm'; $lang['AutoImport']='Automatische import'; $lang['CheckConnected']='Controleer verbonden'; $lang['CmdDelete']='Verwijder'; @@ -17,7 +20,9 @@ $lang['Desc-Let-Z']='Score wordt vastgelegd'; $lang['ISK-Anomalies']='Afwijkingen'; $lang['ISK-AppList']='APK Overzicht'; +$lang['ISK-AppQrCode']='Afdrukken QR installatiecodes'; $lang['ISK-ApproveConfig']='Configuratie goedkeuren'; +$lang['ISK-askSignature']='Vraag om handtekening'; $lang['ISK-askTotals']='Vraag naar het totaal op papieren scorebriefje'; $lang['ISK-AuthRequest']='Autorisatie verzoek'; $lang['ISK-BadCompCode']='Foute competitie code'; @@ -77,6 +82,8 @@ $lang['ISK-StatusOK']='Apparaat instellingen OK'; $lang['ISK-StatusReloading']='Configuratie opnieuw laden'; $lang['ISK-StatusWaitConfirm']='In afwachting van bevestiging van apparaat'; +$lang['ISK-TruncateTable']='Kap tabel af (andere sessies)'; +$lang['ISK-TruncateTableAll']='Kap tabel af (volledig)'; $lang['ISK-VibrateUpdate']='Trillen bij update'; $lang['ISK-WiFi']='WiFi beheer'; $lang['ISK-WifiDELETE']='Verwijder andere WiFi van het score apparaat'; @@ -114,6 +121,15 @@ $lang['RaspDevice']='Apparaat'; $lang['RasUrl']='URL naar server'; $lang['StickyAlreadySet']='Deze niet te wijzigen series zijn al ingevoerd in een andere sessie.'; +$lang['TempArrowsDelete']='verwijder pijlen van de tijdelijke tabel'; +$lang['TempArrowsImport']='importeer pijlen van de tijdelijke tabel'; +$lang['TempArrowsM']='Niet geimporteerde pijlen in matches'; +$lang['TempArrowsQ']='Niet geimporteerde pijlen in kwalificatie of eliminatie'; +$lang['UnlockAll']='Herstel alle sessies'; +$lang['UsePersonalDevices-Granted']='Persoonlijk'; +$lang['UsePersonalDevices-Print']='Druk QrCode af op de score kaart'; +$lang['ViewSize']='Bekijk grote'; $lang['WAToolbox-MissingParams']='Ontbrekende parameter'; $lang['WAToolbox-NoCompCode']='Ontbrekende competitie code'; +$lang['XToWin']='$a om te winnen'; ?> \ No newline at end of file diff --git a/src/Common/Languages/nl/Common.php b/src/Common/Languages/nl/Common.php index 6f660838..60252242 100644 --- a/src/Common/Languages/nl/Common.php +++ b/src/Common/Languages/nl/Common.php @@ -160,6 +160,7 @@ $lang['InitEliminations']='Initialiseer eliminaties'; $lang['InitEliminations1']='Initialiseer 1e ronde eliminaties'; $lang['InitEliminations2']='Initialiseer 2e ronde eliminaties'; +$lang['InitFinalGrids']='Initialiseer de inidivduele rondes'; $lang['InitPools']='Initialiseer poules'; $lang['InvalidAction']='Ongeldige actie'; $lang['ISK-Configuration']='Controle apparaten'; @@ -271,6 +272,7 @@ $lang['MenuLM_ExtraCategories']='Standaard extra categorieen'; $lang['MenuLM_ExtraDataEdit']='Wijzigen extra data'; $lang['MenuLM_Fees setup']='instellingen voor betalen'; +$lang['MenuLM_Field Crew']='Veld ploeg'; $lang['MenuLM_Final Field of Play Layout']='Veldopzet finale rondes'; $lang['MenuLM_Final report']='eindrapport'; $lang['MenuLM_Final Rounds']='Finale rondes'; @@ -455,6 +457,7 @@ $lang['RankingInd']='Eliminatie en finale rondes - individueel'; $lang['Rankings']='Standen'; $lang['RankingSq']='Eliminatie en finale ronde - teams'; +$lang['RankScoreShort']='Kwalificatie'; $lang['RB']='Recurve Boog'; $lang['RecalcIndTeamsRank']='Bepalen individueel en team ranglijst geslaagd'; $lang['Review']='Overzicht'; diff --git a/src/Common/Languages/nl/Errors.php b/src/Common/Languages/nl/Errors.php index bc5a6be2..2953d315 100644 --- a/src/Common/Languages/nl/Errors.php +++ b/src/Common/Languages/nl/Errors.php @@ -1,5 +1,10 @@ World Archery regels worden gebruikt
    Ianseo bevat altijd de laatste aanpassingen in World Archery regels. Ontwikkelaars zijn beschikbaar voor aanpassingen voor nationale en bezondere competie regels!'; $lang['WhatIanseoDoes02']='Help en ondersteuning Heb je ondersteuning nodig stuur een e-mail naar $a: je krijgt een antwoord direct van de makers van Ianseo.'; -$lang['WhatIanseoDoes03']='Verschillende trainingen en cursussen: Ianseo kan cursussen geven op locatie. Dit kan gebeuren op 2 niveaus: zonder en met de elektronische score apparaten. De eerste cursus is bedoeld om alle aspecten van ianseo te leren van voorbereiding van de wedstrijd tot (online) publicatie en locale verspreiding van de resultaten. De tweede vorm is bedoeld om alle benodigde kennis op te doen om een "arrow by arrow" wedstrijd te runnen.'; $lang['WhatIanseoDoes04']=' Geef geld! Ianseo is vrij te gebruiken en open source. Help ons de software en de server up-to-date te houden: druk op de "Donate" knop op de home page van $a!'; $lang['WhatIanseoDoes05']=' Social Media; Ianseo is ook op $a!'; $lang['WhatIanseoDoesTitle']='Wat kan Ianseo doen voor jou wedstrijd'; diff --git a/src/Common/Languages/nl/Tournament.php b/src/Common/Languages/nl/Tournament.php index 5d523d41..75fac724 100644 --- a/src/Common/Languages/nl/Tournament.php +++ b/src/Common/Languages/nl/Tournament.php @@ -27,12 +27,14 @@ $lang['AclISKServer']='ISK beheer'; $lang['AclModules']='Modules'; $lang['ACLNoAccess']='Geen toegang'; +$lang['AclNotes']='Aantekeningen over netwerkbeveiliging
    • restricties zijn "competitie gebaseerd" en niet "server gebaseerd"
    • wanneer beleid is ingeschakeld, is standaard gedrag voor niet vermelde cliënten "geen toegang"
    • localhost (127.0.0.1 of ::1) kan niet worden beperkt
    • beleid kan worden uitgeschakeld door vanuit de server zelf in te bellen{$a}
    '; $lang['AclOdf']='Beheer ODF'; $lang['AclOutput']='Uitvoer'; $lang['AclParticipants']='Deelnemers'; $lang['AclQualification']='Kwalificatie'; $lang['ACLReadOnly']='Beperkte toegang (alleen lezen)'; $lang['ACLReadWrite']='Complete toegang (lezen en schrijven)'; +$lang['AclRobin']='Round Robin'; $lang['AclRoot']='Superuser'; $lang['AclSpeaker']='Speaker'; $lang['AclTeams']='Teamfinales'; @@ -40,6 +42,7 @@ $lang['ActualFlag']='Gebruikte vlag'; $lang['AddMaxRows']='Voeg alle mogelijke rijen toe'; $lang['AddTournament']='Toernooi toevoegen'; +$lang['AdvancedParams']='Instellen parameters uitgebreid'; $lang['AfterDistance']='Stand NA de volgende afstand'; $lang['AfterXDistance']='Resultaat Na Afstand $a'; $lang['AllDistances']='Alles'; @@ -76,6 +79,7 @@ $lang['AssignLookupTable']='Zet alle ingangen op: {$a}'; $lang['AtDistance']='Rangschikking van de volgende afstand:'; $lang['Ath4Target']='Schutters per doel'; +$lang['AthButtLegend1']='Tegenstanders per doel'; $lang['AthButtLegend2']='Matches per doel'; $lang['AthleteFile']='laad sporters van bestand'; $lang['AthleteList']='laad sporters'; @@ -238,12 +242,21 @@ $lang['DefaultHM']='Standaard HM'; $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='Standaard VI'; +$lang['Delayed']='Vertraagd'; +$lang['DeletePreviousArchers']='Verwijder vorige sporters'; $lang['DeletePreviousTeams']='Verwijder vorige teams'; $lang['DeleteTourConfirm']='Voeg in tekstbox de volgende "control code" toe:'; $lang['DeleteTournament']='Verwijder wedstrijd'; $lang['Deleting']='Moment: verwijderen van bestanden'; +$lang['DescAddress']='Zie code'; +$lang['DescDOB']='Zie code'; +$lang['DescEmail']='Zie code'; +$lang['DescNOC']='Zie code'; $lang['DescPhotoName']='Zie code'; $lang['Descr']='Beschrijving'; +$lang['DescSession']='Zie code'; +$lang['DescTarget']='Zie code'; +$lang['DescWheelchair']='Zie code'; $lang['DestroyTarget']='Verwijder Doel'; $lang['Details']='$a details'; $lang['Distance']='afstand'; @@ -261,6 +274,7 @@ $lang['DOB']='Geboorte datum'; $lang['Document']='Document'; $lang['Dos']='Director of Shooting (wedstrijdleider)'; +$lang['DosAssistant']='D.O.S. assistent'; $lang['DoubleSpace']='Kruisboog'; $lang['DQB']='Gediskwalificeerd voor onsportief gedrag'; $lang['DrawField3D']='Veld/3D loting'; @@ -310,6 +324,7 @@ $lang['ExportRefEMail']='Referentie e-mail'; $lang['ExportWinners']='Exporteer winnaars'; $lang['FamilyName']='Familie naam'; +$lang['FieldResp']='Verantwoordelijk voor het veld'; $lang['FieldTourCategory']='Veldwedstrijd'; $lang['FilterOnDivCl']='Filter divisie / klasse'; $lang['FilterOnDivClAdv']='Filter op divisie/klasse (uitgebreid)'; @@ -367,8 +382,10 @@ $lang['GroupMatches']='Groeps wedstrijden'; $lang['HiddenCredited']='Verberg erkenning'; $lang['Hour']='Uur'; +$lang['I-Session']='Individuele matches'; $lang['IdCard']='Bondsnummer'; $lang['Image']='Foto'; +$lang['ImgInfo']='Toegestane foto type\'s PNG en JPG. Max. groote 64 KB.'; $lang['ImportARFFile']='Importeer ARF-bestand'; $lang['ImportedEntries']='Gegevens geimporteerd'; $lang['ImportedTour']='Wedstrijd geimporteerd'; @@ -379,6 +396,7 @@ $lang['IndFinEvent']='Individuele Finale'; $lang['IndoorTourCategory']='Indoor wedstrijd'; $lang['IndQual']='Individueel - Qualificatie'; +$lang['InitEliminations']='Initialiseer eliminaties'; $lang['InitProcess']='Initialiseren'; $lang['Invalid Password']='Foutief wachtwoord'; $lang['IOCcode']='IOC land code'; @@ -395,12 +413,21 @@ $lang['LocalRule']='Gebruikte regels'; $lang['LocalRuleAlert']='Let op!!\n\nDenk er aan de juiste gebruikte regels te kiezen. Geef dit aan in het volgende veld.'; $lang['LocalSubRule']='sub-regel'; +$lang['LogisticResp']='Verantwoordelijk voor de logistiek'; +$lang['LogoB']='Plaatje aan de onderkant'; $lang['LogoL']='Plaatje boven aan links'; $lang['LogoManagement']='Beheren van plaatjes'; $lang['LogoR']='Plaatje boven aan rechts'; $lang['LongTable']='Uitgebreide invoer'; $lang['LookupTable']='Zoek tabel'; +$lang['LUE-CAN']='Canada'; +$lang['LUE-FRA']='Frankrijk'; +$lang['LUE-ITA']='Italië'; +$lang['LUE-NOR']='Noorwegen'; +$lang['LUE-SUI']='Zwitserland'; +$lang['LUE-SWE']='Zweden'; $lang['LueFill']='Maak zoek-gegevens'; +$lang['MailTitle']='Naam'; $lang['MakeSnapshotError']='Momentopname niet bewaard'; $lang['MakeSnapshotOk']='Momentopname bewaard'; $lang['MakeTeams']='Bouw teams opnieuw op.'; @@ -416,6 +443,7 @@ $lang['ManMatchArr4Phase']='Onderhoud aantal pijlen per set'; $lang['ManPrices']='Onderhoud kosten'; $lang['ManSession']='Onderhoud Schietbeurten'; +$lang['ManStaffOnField']='Onderhoud veldploeg'; $lang['ManSubClasses']='onderhoud sub-klasses'; $lang['ManTourDistances']='Afstanden binnen de wedstrijd'; $lang['ManTraining']='onderhoud warming-up mogelijkheden'; @@ -430,6 +458,7 @@ $lang['MedalClass']='Klasse & divisie resulaten - Medailles'; $lang['MedalIndClass']='Klasse & divisie resulaten - Individuele medailles'; $lang['MedalSqClass']='Klasse & divisie resulaten - Team medailles'; +$lang['MediaResp']='Verantwoordelijk voor de media'; $lang['Missing Credentials']='Ontbrekende referenties'; $lang['Missing Tournament']='ontbrekende wedstrijd'; $lang['MixedTeamFinEvent']='Mixed Team finale'; @@ -462,7 +491,9 @@ $lang['NoPay']='Vrij'; $lang['NoRowSelected']='Geen rij geselecteerd'; $lang['NoSession']='Geen sessie'; +$lang['NoStaffOnField']='Geen veld ploeg bekend'; $lang['NotAllShootoffResolved']='De volgende gebeurtenissen zijn niet bewaard omdat niet de uitslagen van alle shoot-offs bekend zijn: $a'; +$lang['Notes']='Notities'; $lang['NoTie']='Geen gelijke stand'; $lang['NoTour']='Geen wedstrijd gekozen'; $lang['NoTourExists']='Geen bestaande wedstrijd'; @@ -485,6 +516,7 @@ $lang['OR-Record']='Olympisch record'; $lang['OR-short']='OR'; $lang['Order']='stand'; +$lang['OrgResponsible']='Organisatie'; $lang['OtherTourCategory']='Ander'; $lang['OutdoorTourCategory']='Outdoor wedstrijd'; $lang['PaperSize']='Papier grootte'; @@ -497,6 +529,7 @@ $lang['PersonList']='Lijst van mensen'; $lang['PhaseBlock_0']='tournooi info en personen'; $lang['PhaseBlock_1']='Kwalificatie'; +$lang['PhaseBlock_11']='Round Robin'; $lang['PhaseBlock_2']='Eliminatie'; $lang['PhaseBlock_3']='Individuele finale'; $lang['PhaseBlock_4']='Team finale'; @@ -520,16 +553,19 @@ $lang['Print']='Druk af'; $lang['PrintCharset']='Karakter set (afdrukken)'; $lang['PrintChinese']='inclusief chines karakters'; +$lang['PrintCyrillic']='inclusief cyrillische karakters'; $lang['PrintLanguage']='Taal waarin wordt afgedrukt'; $lang['PrintList']='Afdruk overzicht'; $lang['PrintNormal']='Normaal (Latin)'; $lang['PrintScore']='Afdrukken scores'; $lang['PrintText']='Tekst van de header'; $lang['PrintTextTitle']='Header voor afdrukken resultaat'; +$lang['R-Session']='Round Robin'; $lang['RankByDistance']='Overzicht gesorteerd op afstand'; $lang['RankFinals']='Einduitslag'; $lang['RankingPosition']='Positie op de ranglijst'; $lang['RankMatches']='wedstrijden voor de ranking'; +$lang['RealCountry']='Land'; $lang['RecreatePictures']='Maak foto\'s'; $lang['RedrawPictures']='Vernieuw foto\'s'; $lang['Report']='Rapport'; @@ -544,6 +580,7 @@ $lang['ResultIndAbsSnap']='Kwalificatie ronde samenvatting individueel'; $lang['ResultIndClass']='klasse en divisie Resultaat - Individueel'; $lang['ResultIndClassSnap']='Klasse en divisie resultaat samenvatting - individueel'; +$lang['ResultResp']='Verantwoordelijk voor het resultaat'; $lang['Results']='Resultaten'; $lang['ResultSqAbs']='Kwalificatie ronde - teams'; $lang['ResultSqClass']='Klasse en divisie Resultaat -Team'; @@ -559,6 +596,8 @@ $lang['ScheduledMatches']='Schema van wedstrijden'; $lang['Score']='Score'; $lang['Score1PageAllDist']='Atleet scorekaart met alle afstanden op 1 pagina'; +$lang['ScorecardLabelEnd']='Ronde'; +$lang['ScorecardLabelSet']='Set'; $lang['ScoreComplete']='Compleet score overzicht (trekking en data)'; $lang['ScoreCompleteTotals']='Compleet score overzicht (trekking en data) en een kolom voor competitie totalen'; $lang['ScoreCutoff']='score afsluiten'; @@ -575,6 +614,7 @@ $lang['SelectSession']='Kies sessie'; $lang['Send2Ianseo']='verstuur data naar www.ianseo.net'; $lang['SendData']='verstuur data'; +$lang['SendLogos']='Verstuur toernooi foto\'s'; $lang['SeparateClasses']='verschillende klasses'; $lang['SeparateDivisions']='verschillende divisies'; $lang['SessionDescr']='Titel van de sessie'; @@ -595,6 +635,8 @@ $lang['Sign/guide-board']='Teken'; $lang['SingleArrow']='1 pijl'; $lang['Snapshot']='momentopname'; +$lang['SOFirstTarget']='Eerste doel'; +$lang['StaffOnField']='Veld ploeg'; $lang['StandardElabTeamMode']='standaard uitwerking teams'; $lang['StandardEv']='Standaard resultaat overzicht'; $lang['StartlistAlpha']='deelnemers in alfabetische volgorde'; @@ -608,6 +650,7 @@ $lang['StatClasses']='statistieken (klasses en divisies)'; $lang['StatCountries']='Statistieken (club / land)'; $lang['StatEvents']='Statistieken (toekenningen en wedstrijden)'; +$lang['StatRecordsBroken']='Gebroken records'; $lang['Status']='Status'; $lang['StatusValidUntil']='Geldig tot en met'; $lang['StickersBotMargin']='Ruimte aan de onderkant'; @@ -636,6 +679,7 @@ $lang['SubClassRank']='Ranglijst op sub-klasse'; $lang['SupportIanseo']='Ondersteun de ontwikkeling van ianseo. Ga naar www.ianse.net en druk op de "donate" knop :)'; $lang['SVGFile']='SVG Bestand'; +$lang['T-Session']='Team matches'; $lang['TakePicture']='Maak accreditatie foto'; $lang['Tar4Session']='Doel per sessie'; $lang['TargetAssErase']='Verwijder toegekend doel'; @@ -719,7 +763,11 @@ $lang['TVContentUpload']='Multimedia bestand'; $lang['TVContentUploadDescr']='Bestand om te uploaden'; $lang['TVCss3Divider']='Verdeler'; +$lang['TVCss3Gold']='Goud'; $lang['TVCss3Loser']='Wijziging verliezer'; +$lang['TVCss3Session']='Sessie'; +$lang['TVCss3Target']='Doel'; +$lang['TVCss3Title']='Titel'; $lang['TVDefault']='Standaard'; $lang['TVDefault-Scroll']='Toernooi: standaard karakters en kleuren
    Multimedia scroll tijd.'; $lang['TVDefaultScroll']='Standaard scroll tijd'; @@ -809,6 +857,7 @@ $lang['Type_FITA+50']='Fita + 50 M ronde'; $lang['Type_GiochiGioventu']='Jeugd wedstrijden (Italiaans)'; $lang['Type_GiochiGioventuW']='Jeugd winterspelen (Italiaans)'; +$lang['Type_GiochiStudentes']='School wedstrijden (Italiaans)'; $lang['Type_HF 12+12']='Jacht en Veld 12 + 12'; $lang['Type_HF 24+24']='Jacht en Veld 24 + 24'; $lang['Type_Indoor 18']='Indoor 18m'; @@ -817,6 +866,7 @@ $lang['Type_ITA_Sperimental']='Competitie voor nieuwkomers (Italiaans)'; $lang['Type_Las Vegas']='Indoor Las Vegas'; $lang['type_NFAA_Indoor']='NFAA Indoor'; +$lang['Type_NL_25p1']='25 meter 1 pijl'; $lang['Type_NL_Hout']='NK Hout'; $lang['Type_NL_YouthFita']='JeugdFita'; $lang['Type_NorField']='Veld (Noorwegen)'; @@ -826,7 +876,10 @@ $lang['UpdateJPG']='maak ook de JPG-versie'; $lang['UpdatePNG']='wijzig bebehorende PNG-bestand?'; $lang['URL']='URL'; +$lang['UserPassword']='Wachtwoord'; +$lang['ValidClass']='Geldige klasses'; $lang['ValidDivisions']='Toegestane Div. (leeg voor allemaal)'; +$lang['VersionEntries']='Aanmeldingen'; $lang['VersionFile']='bestand'; $lang['VersionMajVersion']='Grote versie'; $lang['VersionMinVersion']='Kleine versie'; @@ -835,6 +888,7 @@ $lang['VersionSector']='Sector'; $lang['VersionSectors']='beinvloede sectoren'; $lang['VersionTimestamp']='Laatste datum en tijd'; +$lang['ViewTeamComponents']='Bekijk team-onderdelen'; $lang['ViewTeamComponentsDescr']='Bekijk de beschijving van de veschillende team-onderdelen'; $lang['WarmUp']='Warming Up'; $lang['WarmUpMins']='Warming Up (min)'; diff --git a/src/Common/Languages/nl/translators.json b/src/Common/Languages/nl/translators.json index 5a956957..eec57ed7 100644 --- a/src/Common/Languages/nl/translators.json +++ b/src/Common/Languages/nl/translators.json @@ -1 +1 @@ -{"lang":"Nederlands - Dutch","peop":["Jose Bruntink","Gerrit Buitenhuis"," "],"id":"nl"} \ No newline at end of file +{"lang":"Nederlands - Dutch","peop":["Jose Bruntink","Gerrit Buitenhuis"," ","Paul Van Veen"],"id":"nl"} \ No newline at end of file diff --git a/src/Common/Languages/no/IOC_Codes.php b/src/Common/Languages/no/IOC_Codes.php index e93ba718..927d6968 100644 --- a/src/Common/Languages/no/IOC_Codes.php +++ b/src/Common/Languages/no/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='Amerikanske Samoa'; $lang['AUS']='Australia'; $lang['AUT']='Østerrike'; -$lang['Award-Anthem']='Mine damer og herrer, nasjonalsangen for'; -$lang['Award-Anthem-TPE']='Mine damer og herrer, vennligst reis dere for nasjonalsangen til'; $lang['Award-Applause']='Mine damer og herrer, gi en varm applaus til våre skyttere.'; $lang['Award-Intro']='Mine damer og herrer medaljeseremoni for {$a}'; $lang['Award-MedalGiver']='Medaljene vil bli delt ut av $a'; @@ -42,16 +40,12 @@ $lang['BUL']='Bulgaria'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Den Sentralafrikanske republikk'; -$lang['CAM']='Kambodsja'; $lang['CAN']='Canada'; $lang['CAY']='Caymanøyene'; $lang['CGO']='Kongo'; $lang['CHA']='Tsjad'; $lang['CHI']='Chile'; -$lang['CHN']='Kina'; -$lang['CIV']='Elfenbenskysten'; $lang['CMR']='Kamerun'; -$lang['COD']='Den demokratiske republikken Kongo'; $lang['COK']='Cookøyene'; $lang['COL']='Colombia'; $lang['COM']='Komorene'; @@ -60,7 +54,6 @@ $lang['CRO']='Kroatia'; $lang['CUB']='Cuba'; $lang['CYP']='Kypros'; -$lang['CZE']='Tsjekkia'; $lang['DEN']='Danmark'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominica'; @@ -91,17 +84,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Ungarn'; $lang['INA']='Indonesia'; $lang['IND']='India'; -$lang['IRI']='Iran'; $lang['IRL']='Irland'; $lang['IRQ']='Irak'; $lang['ISL']='Island'; $lang['ISR']='Israel'; -$lang['ISV']='Amerikanske Jomfruøyene'; $lang['ITA']='Italia'; $lang['IVB']='Britiske Jomfruøyene'; $lang['JAM']='Jamaica'; @@ -114,7 +104,6 @@ $lang['KOR']='Republikken, Korea'; $lang['KSA']='Saudi-Arabia'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; $lang['LAT']='Latvia'; $lang['LBA']='Libya'; $lang['LBR']='Liberia'; @@ -128,7 +117,6 @@ $lang['MAR']='Marokko'; $lang['MAS']='Malaysia'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldova'; $lang['MDV']='Maldivene'; $lang['Medal-1']='Gullmedalje'; $lang['Medal-2']='Sølvmedalje'; @@ -137,7 +125,6 @@ $lang['MEX']='Mexico'; $lang['MGL']='Mongolia'; $lang['MHL']='Marshalløyene'; -$lang['MKD']='Nord-Makedonia'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -166,7 +153,6 @@ $lang['PNG']='Papua Ny-Guinea'; $lang['POL']='Polen'; $lang['POR']='Portugal'; -$lang['PRK']='Nord-Korea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Romania'; @@ -193,13 +179,11 @@ $lang['SVK']='Slovakia'; $lang['SWE']='Sverige'; $lang['SWZ']='Swaziland'; -$lang['SYR']='Syria'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Thailand'; $lang['TJK']='Tadsjikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Øst-Timor'; $lang['TOG']='Togo'; $lang['TPE']='Kinesisk Taipei'; $lang['TRI']='Trinidad og Tobago'; diff --git a/src/Common/Languages/no/Ianseo.php b/src/Common/Languages/no/Ianseo.php index 0acc5fb8..b07a9e50 100644 --- a/src/Common/Languages/no/Ianseo.php +++ b/src/Common/Languages/no/Ianseo.php @@ -7,4 +7,7 @@ $lang['Cert-Level4']='Master kurs'; $lang['Cert-Level5']='Ianseo Crew'; $lang['CertificateManagement']='Sertifikatadministrasjon'; +$lang['GenerateFile']='Opprett fil'; +$lang['ResetSessions']='Bekreft tilbakestilling'; +$lang['ShuffleResults']='Stokk om på resultatene'; ?> \ No newline at end of file diff --git a/src/Common/Languages/no/Install.php b/src/Common/Languages/no/Install.php index 31650d03..5aab7ed6 100644 --- a/src/Common/Languages/no/Install.php +++ b/src/Common/Languages/no/Install.php @@ -80,7 +80,7 @@ $lang['Parameter']='Parametre'; $lang['Password']='Passord'; $lang['PHP settings']='PHP-innstillinger'; -$lang['PHP too old']='Din PHP installasjon er for gammel. Minste versjonsnummeret for IANSEO er 5.0.'; +$lang['PHP too old']='Din PHP installasjon er for gammel. Minimums krav for IANSEO er PHP v8.0.'; $lang['PHP version']='PHP versjon'; $lang['php.ini file']='php.ini'; $lang['Prepare']='Klargjøre data for oppdatering'; @@ -161,6 +161,7 @@ $lang['Setup-PAR']='Paralympisk stevne (IPC regler)'; $lang['Setup-SE']='Svenske stevner'; $lang['Setup-Select']='Velg oppsett'; +$lang['Setup-SI']='Slovensk Stevne'; $lang['Setup-UK']='Engelske (UK) stevner'; $lang['Setup-US']='USA stevner'; $lang['SetVegas-KOA']='Kings of Archery - NED'; @@ -181,7 +182,6 @@ $lang['Value']='Verdi (indeksert matriseelementer: key1::value1|key2::value2)'; $lang['WhatIanseoDoes01']='World Archery regelverk: Ianseo er alltid oppdatert i henhold til World Archery sine regler. Vi er tilgjengelig til å tilpasse programmet til å passe nasjonale stevner eller spesifikke regler også!'; $lang['WhatIanseoDoes02']='Hjelp og støtte: Dersom du trenger hjelp, send en e-post til $a: så vil du få svar direkte fra de sentrale utviklerne av Ianseo!'; -$lang['WhatIanseoDoes03']='Opplæring og kurs hos deg: Vi er tilgjengelig for å holde kurs hos dere. Det er kurs på to nivåer: med eller uten håndholdte terminaler. Det første er rettet mot å lære alle aspekter av Ianseo fra konkurranseforberedelser og planlegge til publisering av resultater online og lokal distribusjon av resultater. Det andre er rettet mot å lære seg til å kjøre en "pil for pil" konkurranse.'; $lang['WhatIanseoDoes04']='Støtt oss! Ianseo er gratis og laget med åpen kildekode... Dersom du liker programmet, da kan du hjelpe oss med å holde programvare og server oppdatert: klikk på knappen "Donate" på hjemmesiden vår $a!'; $lang['WhatIanseoDoes05']='Sosiale media: Ianseo er også på $a!'; $lang['WhatIanseoDoesTitle']='Hva kan Ianseo gjøre for din konkurranse?'; diff --git a/src/Common/Languages/no/Tournament.php b/src/Common/Languages/no/Tournament.php index 9beb1acc..b833d5f8 100644 --- a/src/Common/Languages/no/Tournament.php +++ b/src/Common/Languages/no/Tournament.php @@ -124,7 +124,6 @@ $lang['BadgeIncludePhoto']='Ta med bild på navneskilt'; $lang['BadgeNames']='Fullt navn (Ikke skrevet ut først)'; $lang['BadgeNoData']='Ingen data å skrive ut'; -$lang['BadgeOnlyNotPrinted']='BARE navneskilt ikke allerede skrevet ut?'; $lang['BadgeOnlyPrintAccredited']='BARE navneskilt med akkrediterte deltakere?'; $lang['BadgeOnlyPrintPhoto']='KUN navneskilt med bilde?'; $lang['BadgeOptions']='Valg'; @@ -188,8 +187,6 @@ $lang['CatJury']='Jury'; $lang['CatOC']='Organisasjonskomite'; $lang['ChairmanJudge']='Hoveddommer'; -$lang['ChairmanJudgeDeputy']='Dommernes nestleder'; -$lang['ChairmanJury']='Jury-leder'; $lang['ChangeLookUpTable']='Bytt skyttertabell'; $lang['ChangeNationsNames']='Endre navn på klubb'; $lang['Channel']='Kanal'; @@ -318,7 +315,6 @@ $lang['EmailScorecardLong']='Komplett scorekort'; $lang['EmailsToSend']='E-poster å sende'; $lang['EmailSuccessfull']='E-post er sendt til $a'; -$lang['EnableAccess']='Aktiver / deaktiver tilgangskontroll'; $lang['EnableAddOns']='Aktiver/deaktiver tillegg'; $lang['Ends']='Runder'; $lang['EndTotal']='Totalt'; @@ -462,6 +458,7 @@ $lang['IsSpecificConfig']='Stevnespesifikke elementer'; $lang['Judge']='Dommer'; $lang['Jury']='Jury'; +$lang['LancasterScorecard']='Lancaster Stil på Scorekort'; $lang['Languages']='Språk'; $lang['Last']='Siste'; $lang['LastPhase']='Siste runde'; @@ -470,6 +467,7 @@ $lang['LegendSO']='Forkortelser'; $lang['LegendStatus']='Tegnforklaring - Deltagelse ved stevnet'; $lang['Length']='Varighet'; +$lang['LineJudge']='Linje dommer'; $lang['ListCountries']='Liste over klubber'; $lang['ListLoad']='Legg til skyttere fra liste'; $lang['ListLoadBlocked']='Linjer ikke oppdatert (klikk på lenken for en tvunget oppdatering)'; @@ -488,6 +486,7 @@ $lang['LocRuleModifiedNo']='Endret'; $lang['LocRuleValidNo']='Ikke endret'; $lang['LogisticResp']='Logistikkansvarlig'; +$lang['LogMessage']='Logg Melding'; $lang['LogoB']='Nederste bilde ((fullt breddeforhold er 19: 1 for A4, 20: 1 for letter)'; $lang['LogoL']='Topp-venstre bilde'; $lang['LogoManagement']='Logo'; @@ -507,6 +506,8 @@ $lang['LueFill']='Opprett skytterdatabase'; $lang['MailBody']='E-post'; $lang['MailBodyShortcuts']='Disse snarveiene kan brukes:'; +$lang['MailConfirmSending']='Denne E-posten vil bli sendt til _NUM_ adresse(r). Er du sikker?'; +$lang['MailExtras']='Tillegg som dagspass, bue oppbevaring, etc.'; $lang['MailFrom']='Avsender'; $lang['MailPreview']='Forhåndsvisning'; $lang['MailSmtpPort']='SMTP-Port'; @@ -982,7 +983,6 @@ $lang['TeamCreationMode_2']='Alltid 2. lag'; $lang['TeamCreationMode_3']='Alltid 3. lag'; $lang['TeamFin']='Lag - Elim. & finalerunder'; -$lang['TeamFinEvent']='Lagfinale'; $lang['TeamLoaded']='Lagmatcher lastet i tidsplanen for {$a}'; $lang['TeamPlace']='Stedsskilt lag'; $lang['TeamPlaceLocal']='Stedsskilt (lokalisert) lag'; @@ -1229,7 +1229,6 @@ $lang['UserDetails']='Brukerdetaljer'; $lang['UserEnabled']='Aktivert'; $lang['UserName']='Brukernavn'; -$lang['UserPassword']='Passord'; $lang['UseSubClasses']='Bruk på spesifikke underklasser'; $lang['ValidClass']='Gyldig klasser'; $lang['ValidDivisions']='Tillatte Div. (tom for alle)'; diff --git a/src/Common/Languages/no/translators.json b/src/Common/Languages/no/translators.json index 35ae0cb4..4236828b 100644 --- a/src/Common/Languages/no/translators.json +++ b/src/Common/Languages/no/translators.json @@ -1 +1 @@ -{"lang":"Norsk - Norwegian","peop":["Roar Jystad","Jon-Arne Storelv"],"id":"no"} \ No newline at end of file +{"lang":"Norsk - Norwegian","peop":["Roar Jystad","Bj\u00f8rn-Cato Knutsen","Jon-Arne Storelv"],"id":"no"} \ No newline at end of file diff --git a/src/Common/Languages/pl/Common.php b/src/Common/Languages/pl/Common.php index 9ac4c219..362e2a85 100644 --- a/src/Common/Languages/pl/Common.php +++ b/src/Common/Languages/pl/Common.php @@ -250,6 +250,7 @@ $lang['MenuLM_DeleteTarget']='Usuń przypisanie stanowisk'; $lang['MenuLM_Distances']='Ustawienia odległości'; $lang['MenuLM_Div/Class Result List']='Wyniki w kategoriach'; +$lang['MenuLM_Divisions and Classes']='Konkurencje i Kategorie'; $lang['MenuLM_Draw']='Wylosuj'; $lang['MenuLM_Edit Competition Info']='Edytuj informacje o zawodach'; $lang['MenuLM_EditFinalReport']='Edytuj końcowy protokół'; diff --git a/src/Common/Languages/pl/IOC_Codes.php b/src/Common/Languages/pl/IOC_Codes.php index 8b19ee21..6f76bd8d 100644 --- a/src/Common/Languages/pl/IOC_Codes.php +++ b/src/Common/Languages/pl/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='Samoa Amerykańskie'; $lang['AUS']='Australia'; $lang['AUT']='Austria'; -$lang['Award-Anthem']='Panie i panowie, proszę wstać do odsłuchania hymnu narodowego'; -$lang['Award-Anthem-TPE']='Panie i panowie, proszę wstać do hymnu narodowego'; $lang['Award-Applause']='Panie i panowie, proszę o gorące brawa dla naszych sportowców'; $lang['Award-Intro']='Panie i panowie, ceremonia wręczenia medali dla {$a}'; $lang['Award-MedalGiver']='Medale będą wręczone przez $a'; @@ -42,16 +40,12 @@ $lang['BUL']='Bułgaria'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Republika Centralnej Afryki'; -$lang['CAM']='Kambodża'; $lang['CAN']='Kanada'; $lang['CAY']='Kajmany'; $lang['CGO']='Republika Kongo'; $lang['CHA']='Czad'; $lang['CHI']='Czile'; -$lang['CHN']='Chiny'; -$lang['CIV']='Wybrzeże Kości Słoniowej'; $lang['CMR']='Kamerun'; -$lang['COD']='Demokratyczna Republika Kongo'; $lang['COK']='Wyspy Cooka'; $lang['COL']='Kolumbia'; $lang['COM']='Komory'; @@ -60,7 +54,6 @@ $lang['CRO']='Chorwacja'; $lang['CUB']='Kuba'; $lang['CYP']='Cypr'; -$lang['CZE']='Czechy'; $lang['DEN']='Dania'; $lang['DJI']='Dżibuti'; $lang['DMA']='Dominika'; @@ -91,17 +84,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Gujana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Węgry'; $lang['INA']='Indonezja'; $lang['IND']='Indie'; -$lang['IRI']='Iran'; $lang['IRL']='Irlandia'; $lang['IRQ']='Irak'; $lang['ISL']='Islandia'; $lang['ISR']='Izrael'; -$lang['ISV']='Wyspy Dziewicze Stanów Zjednoczonych'; $lang['ITA']='Włochy'; $lang['IVB']='Brytyjskie Wyspy Dziewicze'; $lang['JAM']='Jamajka'; @@ -114,7 +104,6 @@ $lang['KOR']='Korea Południowa'; $lang['KSA']='Arabia Saudyjska'; $lang['KUW']='Kuwejt'; -$lang['LAO']='Laso'; $lang['LAT']='Łotwa'; $lang['LBA']='Libia'; $lang['LBR']='Liberia'; @@ -128,7 +117,6 @@ $lang['MAR']='Maroko'; $lang['MAS']='Malezja'; $lang['MAW']='Malawi'; -$lang['MDA']='Mołdawia'; $lang['MDV']='Malediwy'; $lang['Medal-1']='Złoty Medal'; $lang['Medal-2']='Srebrny Medal'; @@ -165,7 +153,6 @@ $lang['PNG']='Papua Nowa Gwinea'; $lang['POL']='Polska'; $lang['POR']='Portugalia'; -$lang['PRK']='Korea Północna'; $lang['PUR']='Portoryko'; $lang['QAT']='Katar'; $lang['ROU']='Rumunia'; @@ -190,13 +177,11 @@ $lang['SUR']='Surinam'; $lang['SVK']='Słowacja'; $lang['SWE']='Szwecja'; -$lang['SYR']='Syria'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Tajlandia'; $lang['TJK']='Tadżykistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Timor Wschodni'; $lang['TOG']='Togo'; $lang['TPE']='Chińskie Tajpej'; $lang['TRI']='Trinidad i Tobago'; diff --git a/src/Common/Languages/pl/Install.php b/src/Common/Languages/pl/Install.php index 45604c85..e4d8827c 100644 --- a/src/Common/Languages/pl/Install.php +++ b/src/Common/Languages/pl/Install.php @@ -56,7 +56,6 @@ $lang['Parameter']='Parametr'; $lang['Password']='Hasło'; $lang['PHP settings']='Ustawienia PHP'; -$lang['PHP too old']='Twoja wersja PHP jest za stara. Minimalna instalacja dla IANSEO to 5.o'; $lang['PHP version']='Wesja PHP'; $lang['php.ini file']='plik php.ini'; $lang['Prepare']='Przygotowanie danych do aktualizacji'; diff --git a/src/Common/Languages/pl/RunArchery.php b/src/Common/Languages/pl/RunArchery.php index 0729ba2c..871e8cd9 100644 --- a/src/Common/Languages/pl/RunArchery.php +++ b/src/Common/Languages/pl/RunArchery.php @@ -1,3 +1,8 @@ \ No newline at end of file diff --git a/src/Common/Languages/pl/Tournament.php b/src/Common/Languages/pl/Tournament.php index 69cf3ff0..a0d47cf0 100644 --- a/src/Common/Languages/pl/Tournament.php +++ b/src/Common/Languages/pl/Tournament.php @@ -62,10 +62,13 @@ $lang['Area_6']='Strefa VIP'; $lang['Area_7']='Strefy $a'; $lang['Arr4Set']='Ilość strzał w secie'; +$lang['ArrowPhaseLegend1']='Ilość strzał w serii w rundzie eliminacyjnej'; +$lang['ArrowPhaseLegend2']='Ilość strzał w serii w rundzie finałowej'; $lang['Arrows']='Strzały'; $lang['Arrows4End']='Strzał/ Serię: $a'; $lang['ArrowsPerEnd']='Strzał/ Serię'; $lang['AssignAwarded']='Przyznaj nagrody'; +$lang['AssignLookupTable']='Ustaw wszystkie zgłoszenia na: {$a}'; $lang['AtDistance']='Ranking na odległości:'; $lang['Ath4Target']='Zawodników na Stanowisku'; $lang['AthButtLegend1']='Ilość zawodników na stanowisku'; @@ -104,7 +107,7 @@ $lang['BadgeIncludePhoto']='Dołączyć zdjęcie do plakietki?'; $lang['BadgeNames']='Pełne imię i nazwisko'; $lang['BadgeNoData']='Brak danych do wydruku'; -$lang['BadgeOnlyNotPrinted']='TYLKO plakietki jeszcze nie wydrukowane?'; +$lang['BadgeOnlyNotPrinted']='TYLKO plakietki jeszcze NIE wydrukowane'; $lang['BadgeOnlyPrintAccredited']='TYLKO plakietki zaakredytowanych uczestników?'; $lang['BadgeOnlyPrintPhoto']='TYLKO plakietki ze zdjęciem?'; $lang['BadgeOptions']='Opcje'; @@ -167,7 +170,7 @@ $lang['CatOC']='Komitet Organizacyjny'; $lang['ChairmanJudge']='Sędzia Główny'; $lang['ChairmanJudgeDeputy']='Zastępca Sędziego Głównego'; -$lang['ChairmanJury']='Przewodniczący Jury of Appeal'; +$lang['ChairmanJury']='Przewodniczący komisji apelacyjnej'; $lang['ChangeNationsNames']='Zmień nazwy krajów'; $lang['Channel']='Kanał'; $lang['CheckRefMail']='Sprawdź e-mail odnośnika'; @@ -179,6 +182,7 @@ $lang['ClickToRequestCode']='Kliknij aby zarządać Kod'; $lang['Close2Center']='Najbliżej środka tarczy'; $lang['ClosestShort']='Bliżej środka tarczy'; +$lang['Club-Nation']='Klub'; $lang['CmdAdd']='Dodaj'; $lang['CmdCloseBill']='Zamknij rachunek'; $lang['CmdDelete']='Usuń'; @@ -206,6 +210,7 @@ $lang['Collation']='Zestawienie'; $lang['Color']='Kolor'; $lang['ComparedTo']='Porównaj w/pos. @ strzał (-1: ostania dostępna)'; +$lang['CompetitionOfficials']='Obsługa zawodów'; $lang['CompleteSchedule']='Pełny harmonogram'; $lang['Confirm']='Potwierdź'; $lang['ConfirmDescr']='TO DZIAŁANIE ZNISZCZY WSZYSTKIE USTAWIENIA I NIE MOŻE ZOSTAĆ COFNIĘTE!'; @@ -234,12 +239,14 @@ $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='Domyślny VI'; $lang['Delayed']='Opóźniony (-1 aby zresetować)'; +$lang['DeletePreviousArchers']='Usuń zawodników nie będących na wprowadzanej liście'; $lang['DeletePreviousTeams']='Usuń poprzednie drużyny'; $lang['DeleteTourConfirm']='Wpisz do pola tekstowe następujący kod kontrolny:'; $lang['DeleteTournament']='Usuń zawody'; $lang['Deleting']='Praca w toku: kasowanie plików on-line'; $lang['Descr']='Opis'; $lang['DestroyTarget']='Zniszcz stanowisko/ cel'; +$lang['Details']='Szczegóły $a'; $lang['Distance']='Odległość'; $lang['Distances']='Odległości'; $lang['DistanceShort']='Odl.'; @@ -252,7 +259,9 @@ $lang['DOB']='Data urodzenia'; $lang['Document']='Dokument'; $lang['Dos']='Kierownik Strzelań'; +$lang['DosAssistant']='Asystent Kierownika Strzelań'; $lang['DoubleSpace']='Kusza'; +$lang['DQB']='Zdyskwalifikowany za niesportowe zachowanie'; $lang['DrawField3D']='Losowanie Field/ 3D'; $lang['DrawNormal']='Standardowe losowanie'; $lang['DrawOris']='Losowanie Oris'; @@ -368,6 +377,7 @@ $lang['IdCard']='Karta ID'; $lang['Image']='Obraz'; $lang['ImageChecked']='Obrazek sprawdzony'; +$lang['ImgInfo']='Dozwolony rodzaj obrazka: PNG i JPG - max. rozmiar 256KB'; $lang['ImportARFFile']='Importuj plik ARF'; $lang['ImportedEntries']='Wpisy zaimportowane'; $lang['ImportedTour']='Zawody zaimportowano'; @@ -384,6 +394,12 @@ $lang['InnerTens']='Wewnętrzna 10 (X)'; $lang['Invalid Password']='Niepoprawne hasło'; $lang['IOCcode']='Kod kraju MKOL'; +$lang['IRM-10']='DNS - nie wystartował'; +$lang['IRM-15']='DSQ - zdyskwalifikowany'; +$lang['IRM-20']='DQB - zdyskwalifikowany za niesportowe zachowanie'; +$lang['IRM-5']='DNF - nie ukończył'; +$lang['IRM-7']='DNF - nie ukończył (bez miejsca końcowego)'; +$lang['IrmStatus']='Status IRM'; $lang['IsDbVersionTooOld']='Baza danych InfoSystem jest starsza niż Ianseo'; $lang['IsGenericConfig']='Konfiguracja ogólna'; $lang['IsParamWarning']='Ustawienia InfoSystem!
    Zachować NAJWYŻSZĄ ostrożność!'; @@ -397,6 +413,7 @@ $lang['LegendSO']='Rzut Monetą, Baraż - Skróty'; $lang['LegendStatus']='Oznaczenia Statusu Zawodników - Uczestnictwo'; $lang['Length']='Długość'; +$lang['LineJudge']='Sędzia liniowy'; $lang['ListCountries']='Lista krajów/klubów'; $lang['ListLoad']='Wczytaj Zawodników z Listy'; $lang['ListLoadBlocked']='Wiersze niezaktualizowane (kliknij na link by wymusić aktualizację)'; @@ -445,6 +462,7 @@ $lang['ManTraining']='Zarządzanie Sesjami Rozgrzewkowymi'; $lang['ManualTargetAssignment']='Ręczne Rozstawienie'; $lang['Match']='Pojedynek'; +$lang['Match4Target']='Ilość pojedynków na stanowisku'; $lang['MatchDateTime']='Data/ godzina pojedynku'; $lang['MatchesSchedule']='Harmonogram pojedynków'; $lang['MatchMins']='Długość pojedynku (min.)'; @@ -462,10 +480,12 @@ $lang['MatchPoints']='Punkty pojedynku'; $lang['MatchScore']='Punkty pojedynku'; $lang['MatchScoreSheets']='Tabela punktów pojedynku'; +$lang['MatchSecFinals']='Pojedynek $a'; $lang['MatchTargets']='Stanowiska pojedynku'; $lang['MaxDistScore']='Maks. ilość punktów na odległości'; $lang['MaxFinIndScore']='Maks. ilość punktów indywidualnych'; $lang['MaxFinTeamScore']='Maks. ilość punktów drużynowych'; +$lang['MaxTeamPersons']='Maksymalna ilość zawodników w zespole'; $lang['Meals']='Posiłki'; $lang['MedalClass']='Wyniki w kategorii i konkurencji- medale'; $lang['MedalIndClass']='Wyniki w kategorii i konkurencji- medale indywidualne'; @@ -473,6 +493,7 @@ $lang['Missing Credentials']='Brakujące referencje'; $lang['Missing Tournament']='Brakujące Zawody'; $lang['MissingAgileConfig']='Brakująca konfiguracji Agile'; +$lang['MissingPhoto']='Brakujące zdjęcie'; $lang['MissingScorecards']='Brakujące metryczki z $a sesji, $a odległości'; $lang['MixedTeamFinEvent']='Finały Mixtów'; $lang['MoveWinner2NextPhase']='Przenieś Zwycięzcę do kolejnej fazy'; @@ -493,6 +514,7 @@ $lang['NationShort']='Nazwa klubu'; $lang['New']='Nowy'; $lang['NewMediaContent']='Dodaj zawartość multimedialną'; +$lang['NewSORequired']='Wymagany nowy baraż'; $lang['NewTour']='Nowe Zawody'; $lang['NewTourContent']='Dodaj zawartość Zawodów'; $lang['NextSchedule']='Harmonogram rozpoczynający się od dnia YYYY-mm-dd (albo d0, d1 etc)'; @@ -520,6 +542,7 @@ $lang['NumberOfEntriesByEvent']='Liczba zgłoszeń wg wydarzenia'; $lang['NumResult']='Ilość miejsc (0: wszystkie)'; $lang['NumSession']='Liczba sesji'; +$lang['NumTieAtPosition']='{$a[0]} zawodników z takim samym wynikiem na miejscu {$a[1]}'; $lang['Officials']='Oficjele'; $lang['OnlineId']='On-line ID'; $lang['OnlyToday']='Pokaż tylko dzisiejsze pojedynki'; @@ -590,6 +613,7 @@ $lang['PrintCheques']='Wydruk czeków'; $lang['PrintChinese']='Uwzględnij chińskie znaki'; $lang['PrintCommentTip']='Wstaw «||X» [(pipe)(pipe)(Number of Arrows)] aby wydrukować "NIEOFICJALNIE po X strzał" we wszystkich wydrukach rankingów oraz eliminacji
    Wstaw «||!X» [(pipe)(pipe)(exclamation point)(Number of Arrows)] to print "OFICJALNIE po X strzał" we wszystkich wydrukach rankingów oraz eliminacji'; +$lang['PrintCyrillic']='Uwzględnij cyrylicę (w tym polskie znaki!)'; $lang['PrintFOP']='Ustawienie Torów'; $lang['PrintLabels']='Drukuj etykiety'; $lang['PrintLanguage']='Język wydruku'; @@ -597,6 +621,8 @@ $lang['PrintNames']='Drukuj nazwiska'; $lang['PrintNormal']='Normalny (Latin)'; $lang['PrintScore']='Drukuj metryczki'; +$lang['PrintScoreInd']='Wydrukuj metryczki indywidualne'; +$lang['PrintScoreTeam']='Wydrukuj metryczki zespołowe'; $lang['PrintText']='Tekst nagłówka'; $lang['PrintTextTitle']='Nagłówek w wydrukach wyników'; $lang['Q-Session']='Runda Kwalifikacyjna'; @@ -819,7 +845,6 @@ $lang['TeamCreationMode_2']='Zawsze 2. drużyna'; $lang['TeamCreationMode_3']='Zawsze 3. drużyna'; $lang['TeamFin']='Eliminacje i Finały Drużynowe'; -$lang['TeamFinEvent']='Finał drużynowy'; $lang['TeamLoaded']='Załadowano poj. drużynowe dla harmonogramu {$a}'; $lang['TeamPlace']='Znak umiejscowienia drużyny'; $lang['TeamPlaceLocal']='Znak umiejscowienia drużyny (jęz. lokalny)'; diff --git a/src/Common/Languages/pt-br/Api.php b/src/Common/Languages/pt-br/Api.php index 14851f02..3a1d1454 100644 --- a/src/Common/Languages/pt-br/Api.php +++ b/src/Common/Languages/pt-br/Api.php @@ -31,8 +31,10 @@ $lang['DevConnected']='Conectado'; $lang['DevDisconnected']='Desconectado'; $lang['DistanceNum']='distância $a'; +$lang['FieldMonitor']='Monitor de Campo'; $lang['FlashCodeDistance']='Escaneie este código no app para marcar $a'; $lang['HitToWin']='Pontuar para vencer'; +$lang['ImportDoneQualRecheck']='Resultados do Qualificatório importados com sucesso. Por favor, verifique cuidadosamente o cálculo do Ranking o mais rápido possível.'; $lang['ISK-Anomalies']='Anomalias'; $lang['ISK-AppInfo']='Info do APP'; $lang['ISK-AppList']='Lista de APKs'; @@ -80,6 +82,7 @@ $lang['ISK-lockPortrait']='Trava visão de retrato no dispositivo'; $lang['ISK-Name']='Ianseo ScoreKeeper'; $lang['ISK-Ng-Name']='Ianseo Scorekeeper NG'; +$lang['ISK-NG-QRCode']='Imprimir Código QR para o Ianseo Scorekeeper NG'; $lang['ISK-NgLive-Name']='Ianseo Scorekeeper NG - recursos do LIVE'; $lang['ISK-NgPro-Name']='Ianseo Scorekeeper NG - recursos do PRO'; $lang['ISK-NoCompCode']='Falta Código de Competição'; @@ -100,6 +103,7 @@ $lang['ISK-ServerUrl']='URL do Servidor (incluindo protocolo e porta caso não seja 80)'; $lang['ISK-ServerUrlPin']='Pin de segurança'; $lang['ISK-SetQRData']='Configurar dispositivos usando QRCode'; +$lang['ISK-SettingsPIN']='PIN de configuração'; $lang['ISK-SETUP-11']='ISK-NG Lite - Configuração'; $lang['ISK-SETUP-12']='ISK-NG Pro - Configuração'; $lang['ISK-SETUP-13']='ISK-NG Live - Configuração'; @@ -129,6 +133,7 @@ $lang['ISK-WifiTargetRange']='WiFi preferencial para alvos'; $lang['ISK-WifiUse']='Wifi habilitado pela aplicação'; $lang['IskDeviceAssigned']='Dispositivo(s)'; +$lang['IskResetAlert']='AVISO: Todas as seleções desta configuração serão removidas, exceto os agrupamentos de dispositivos.'; $lang['IskScoringDevice']='Dispositivo $a não está autorizado a marcar nesta sessão ou competição!'; $lang['IskSpuriousDevice']='Dispositivo $a[0] enviando pontos indesejados no alvo $a[1]'; $lang['IskSpuriousScore-Device']='Dispositivo $a[0] enviando pontos no alvo $a[1] na fase $a[2]'; @@ -149,6 +154,7 @@ $lang['NewGroup']='Designar Novo Grupo'; $lang['NewTarget']='Designar Novo Alvo'; $lang['PartialImport']='Importar Parciais Automaticamente'; +$lang['PartialImportAll']='Importar TUDO'; $lang['PopupStatusDistance']='Distância: $a'; $lang['PopupStatusEnd']='Série: $a'; $lang['PopupStatusEvent']='Evento: $a'; @@ -170,7 +176,15 @@ $lang['ScorecardsEmpty']='Planilhas vazias'; $lang['ScorecardsFull']='Planilhas com valores de flechas'; $lang['ScorerNum']='Anotador'; +$lang['ScoringCount']='Marcação #'; +$lang['SelectedDevicesAction']='Ação nos Dispositivos Selecionados'; +$lang['SelectedMove2Group']='Mover dispositivos para o Grupo'; +$lang['SelectedReNumber']='Renumerar dispositivos iniciando por'; +$lang['StatusTemporaryArrows']='Situação das flechas na tabela temporária'; $lang['StickyAlreadySet']='Séries para marcação estão determinadas em uma Sessão diferente!'; +$lang['TempArrowsDelete']='APAGAR flechas da tabela temporária'; +$lang['TempArrowsImport']='IMPORTAR flechas da tabela temporária'; +$lang['TempArrowsQ']='Flechas não importadas em rounds Qualificatórios ou Eliminatórios'; $lang['UnlockAll']='Desbloquear todas as sessões'; $lang['UsePersonalDevices-Granted']='Pessoal'; $lang['ViewSize']='Tamanho'; diff --git a/src/Common/Languages/pt-br/BackNumbers.php b/src/Common/Languages/pt-br/BackNumbers.php index 596f78f3..61fee394 100644 --- a/src/Common/Languages/pt-br/BackNumbers.php +++ b/src/Common/Languages/pt-br/BackNumbers.php @@ -108,6 +108,7 @@ $lang['GivCaps-FamCaps-ClubCaps']='NOME SOBRENOME, PAÍS'; $lang['GivenNameInitial']='Inicial do nome'; $lang['Heigh']='Altura'; +$lang['HLayout']='Horizontal'; $lang['HLine']='Linha Horizontal'; $lang['I-Badge']='Número de Atleta - Partidas Individuais'; $lang['IdCardHor']='Quantidade de cartões na largura'; @@ -128,6 +129,7 @@ $lang['Italic']='Itálico'; $lang['Landscape']='Paisagem'; $lang['MultiLine']='Várias Linhas'; +$lang['NameTag']='Etiqueta de Nome'; $lang['NewBadgeName']='Nome da nova credencial'; $lang['NocCaps']='Código do Clube'; $lang['NocCaps-ClubCamel']='CÓDIGODOCLUBE NomeDoClube'; @@ -135,14 +137,18 @@ $lang['Offest2nd']='Deslocamento do segundo Número de Atleta (se necessário)'; $lang['OneLine']='Uma Linha'; $lang['OnlyAthletes']='Somente atletas'; +$lang['OpenPictureScreen']='Abrir tela secundária'; $lang['PageDimension']='Tamanho da Página'; $lang['PaperDimention']='Dimensão do Papel'; +$lang['PhaseFrom']='Da fase'; +$lang['PhaseTo']='Para a fase'; $lang['Picture']='Foto do Atleta'; $lang['Portrait']='Retrato'; $lang['PosX']='Posição (X)'; $lang['PosY']='Posição (Y)'; $lang['PrintBackNo']='Imprimir Back Numbers'; $lang['PrintSpecificBadges']='Imprimir utilizando identificação automática das credenciais'; +$lang['PrintSyncResult']='$a Backnumbers foram marcados como impressos!'; $lang['Q-Badge']='Número de Atleta do Qualificatório'; $lang['QRScore']='Pontuação do Round Qualificatório'; $lang['QualPosition']='Posição no qualificatório'; @@ -168,6 +174,7 @@ $lang['ToRight']='Logo da Competicão (direita)'; $lang['TVViewIdCard']='Visualizar Cartões de Identificação'; $lang['TVViewIdCardDescr']='Na visualização de partida, desenhar 2 cartões de identificação dos oponentes ao invés das linhas "padrão"'; +$lang['VLayout']='Vertical'; $lang['Width']='Largura'; $lang['WRank']='Ranking Mundial'; $lang['WRankFields']='Não mostrar após posição no WR'; diff --git a/src/Common/Languages/pt-br/Boinx.php b/src/Common/Languages/pt-br/Boinx.php index 09f7d58a..85b52721 100644 --- a/src/Common/Languages/pt-br/Boinx.php +++ b/src/Common/Languages/pt-br/Boinx.php @@ -5,6 +5,9 @@ $lang['CssLeftPresentation']='Painel de Apresentação - Esquerdo'; $lang['CssPresentation']='Painel de Apresentação - Comum'; $lang['CssRightPresentation']='Painel de Apresentação - Direito'; +$lang['CssSoPointsCommon']='Pontos'; +$lang['CssVegasInOutPoints']='Pontos'; +$lang['CssVegasSOPoints']='Pontos'; $lang['CssVegasSOTarget']='Alvo'; $lang['CssWindSpeed']='Painel de Velocidade do Vento'; $lang['DirNotWriteable']='O Diretório está protegido contra escrita'; diff --git a/src/Common/Languages/pt-br/Common.php b/src/Common/Languages/pt-br/Common.php index 56351172..49ae011c 100644 --- a/src/Common/Languages/pt-br/Common.php +++ b/src/Common/Languages/pt-br/Common.php @@ -69,12 +69,16 @@ $lang['CmdOk']='OK'; $lang['CmdOn']='Ligar'; $lang['CmdPostUpdate']='post-update'; +$lang['CmdRefresh']='Recarregar'; $lang['CmdSave']='Salvar'; $lang['CmdSaveContinue']='Salva e Continua'; $lang['CmdSet2All']='Selecionar todos'; $lang['CmdSync']='Sincronizar'; $lang['CmdUpdate']='Atualizar'; $lang['CO']='Composto'; +$lang['CombiCompRank_Export']='Exportar Ranking Combinado'; +$lang['CombiCompRank_Print']='Impressão do Ranking Combinado'; +$lang['CombiCompRank_Setup']='Configuração do Ranking Combinado'; $lang['CommaSeparatedValues']='CSV - Valores Separados por Vírgula'; $lang['CompleteCountryName']='Nome completo do País/Clubes'; $lang['CompleteResultBook']='Livro Completo de Resultados'; @@ -131,6 +135,10 @@ $lang['Finish']='Terminar'; $lang['FirstPhase']='Primeira Fase'; $lang['FopSetup']='Layout do campo de competição'; +$lang['Gender0']='Masculino'; +$lang['Gender1']='Feminino'; +$lang['GenderShort0']='M'; +$lang['GenderShort1']='F'; $lang['GF']='Infantil Feminino'; $lang['GM']='Infantil Masculino'; $lang['HELP']='Ajuda!'; @@ -197,6 +205,7 @@ $lang['MenuLMRemoveNoShows']='Remover No-Shows'; $lang['MenuLM_Accreditation']='Credenciamento'; $lang['MenuLM_Accreditation colors management']='Gerenciamento de cores do credenciamento'; +$lang['MenuLM_AdvancedFeatures']='Avançado'; $lang['MenuLM_AdvLabels']='Etiquetas - Impressão avançada'; $lang['MenuLM_Archers on Targets']='Atletas nos Alvos'; $lang['MenuLM_Arr4Set']='Flechas por Set/Série'; @@ -210,6 +219,7 @@ $lang['MenuLM_Athlets fees status']='Status de pagamento dos atletas'; $lang['MenuLM_Authentication']='Autenticação de Usuários'; $lang['MenuLM_AutoCheckinSetup']='Configuração de Auto Check-In'; +$lang['MenuLM_Automator']='Automação'; $lang['MenuLM_Back Number Printout']='Impressão dos Back Numbers'; $lang['MenuLM_Boinx']='Gerenciamento de camadas do Boinx'; $lang['MenuLM_BoinxMeteo']='Camada de dados do Boinx'; @@ -220,11 +230,13 @@ $lang['MenuLM_Category Result List']='Resultados por Categoria'; $lang['MenuLM_Change Components']='Alterar Componentes'; $lang['MenuLM_ChangeNationsNames']='Alterar os nomes dos Países/Clubes'; +$lang['MenuLM_ChangePassword']='Trocar Senha'; $lang['MenuLM_Check Data Update']='Checar atualização de dados'; $lang['MenuLM_Check shoot-off before eliminations']='Checar se há shoot-off antes das eliminatórias'; $lang['MenuLM_Check shoot-off before final phases']='Checar se há shoot-off antes da realização das partidas'; $lang['MenuLM_CheckAwards']='Checar tradução de Premiação'; $lang['MenuLM_CheckList']='Imprimir check-list'; +$lang['MenuLM_CIS']='CIS'; $lang['MenuLM_CleanDir']='Limpar pasta de temporários'; $lang['MenuLM_Close']='Fechar'; $lang['MenuLM_ClubChampEvent']='Campeonato Nacional de Clubes'; @@ -273,6 +285,7 @@ $lang['MenuLM_FinalFOPChoose']='FOP Final - Extendido'; $lang['MenuLM_FlightsAwardManagement']='Gestão de premiação dos Flights'; $lang['MenuLM_FlightsManagement']='Gestão dos Flights'; +$lang['MenuLM_FontManagement']='Gestão de Fontes'; $lang['MenuLM_GateControl']='Painel de controle de Acesso (Portão)'; $lang['MenuLM_GateSituation']='Situação do Acesso (Portão)'; $lang['MenuLM_Get Info']='Consultar Dispositivo'; @@ -370,6 +383,7 @@ $lang['MenuLM_Standard Table']='Tabela Padrão (total por distância)'; $lang['MenuLM_Statistics']='Estatísticas'; $lang['MenuLM_SubClasses']='SubClasses'; +$lang['MenuLM_Swaps']='Inverter oponenter'; $lang['MenuLM_Synchronize']='Sincronizar InfoSystem'; $lang['MenuLM_Target']='Alvo'; $lang['MenuLM_Target Assignment']='Atribuição de Alvos'; @@ -415,6 +429,7 @@ $lang['MsgImportOk']='Importação completada!'; $lang['MsgInitFinalGridsError']='Aviso: Chaves já foram inicializadas para este evento. Você quer continuar?'; $lang['MsgInitFinalGridsOk']='Inicialização com sucesso!'; +$lang['MsgInitFinalGridsRunningError']='Operação não permitida enquanto um evento está no modo Running'; $lang['MsgMakeFinReset']='Chaveamento das Partidas re-inicializado! Refaça todas as operações preliminares antes de inserir novos dados!'; $lang['MsgNeedInitGrids']='ERRO!
    Chaves não foram inicializadas!'; $lang['MsgNeedShootOff']='ERRO!
    Primeiro você deve checar se há empates / shoot-off!'; @@ -445,6 +460,8 @@ $lang['PartialTeam']='Equipe parcial'; $lang['Phase']='Fase'; $lang['PositionShort']='Pos.'; +$lang['PostUpdateEnd']='Post-update completo'; +$lang['PostUpdating']='Aguardar post-update'; $lang['PrecPhase']='Fase anterior'; $lang['PressCtrl2SelectAll']='Para selecionar mais de um ítem, mantenha a tecla CTRL pressionada'; $lang['Progr']='Ordem'; @@ -468,6 +485,7 @@ $lang['Score1Page1Match']='Escore para partida simples'; $lang['ScoreDrawing']='Somente Partidas (página simples)'; $lang['ScoreFilled']='Imprimir planilhas preenchidas com todos os valores de cada flecha'; +$lang['ScoreIncAllNames']='Incluir todos os possíveis oponentes'; $lang['ScoreIncEmpty']='Imprimir todas as partidas, mesmo que sem oponentes'; $lang['Scorer']='Apontador'; $lang['SearchOrphanTexts']='Buscar textos órfãos'; diff --git a/src/Common/Languages/pt-br/IOC_Codes.php b/src/Common/Languages/pt-br/IOC_Codes.php index 4846194d..09eca2e5 100644 --- a/src/Common/Languages/pt-br/IOC_Codes.php +++ b/src/Common/Languages/pt-br/IOC_Codes.php @@ -12,8 +12,8 @@ $lang['ASA']='Samoa Americana'; $lang['AUS']='Austrália'; $lang['AUT']='Áustria'; -$lang['Award-Anthem']='Senhoras e Senhores, por favor levantem-se para o Hino Nacional de'; -$lang['Award-Anthem-TPE']='Senhoras e senhores, por favor levantem-se para o Hino de'; +$lang['Award-Anthem']='Senhoras e Senhores, para todos que podem, por favor levantem-se para o Hino Nacional de'; +$lang['Award-Anthem-TPE']='Senhoras e senhores, para todos que podem, por favor levantem-se para o Hino de'; $lang['Award-Applause']='Senhoras e Senhores, por favor vamos dar uma calorosa salva de palmas para os nossos Atletas!'; $lang['Award-Intro']='Senhoras e Senhores, a cerimônia de premiação para o evento de Arco {$a}'; $lang['Award-MedalGiver']='Medalhas serão entregues por $a'; @@ -42,16 +42,13 @@ $lang['BUL']='Bulgária'; $lang['BUR']='Burkina Faso'; $lang['CAF']='República Centro-Africana'; -$lang['CAM']='Cambodja'; $lang['CAN']='Canadá'; $lang['CAY']='Ilhas Caiman'; $lang['CGO']='República do Congo'; $lang['CHA']='Chade'; $lang['CHI']='Chile'; -$lang['CHN']='República Popular da China'; $lang['CIV']='Costa do Marfim'; $lang['CMR']='Camarões'; -$lang['COD']='República Democrática do Congo'; $lang['COK']='Ilhas Cook'; $lang['COL']='Colômbia'; $lang['COM']='Comores'; @@ -60,7 +57,6 @@ $lang['CRO']='Croácia'; $lang['CUB']='Cuba'; $lang['CYP']='Chipre'; -$lang['CZE']='República Tcheca'; $lang['DEN']='Dinamarca'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominica'; @@ -91,17 +87,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guiana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong, China'; $lang['HON']='Honduras'; $lang['HUN']='Hungria'; $lang['INA']='Indonésia'; $lang['IND']='Índia'; -$lang['IRI']='República Islâmica do Irão'; $lang['IRL']='Irlanda'; $lang['IRQ']='Iraque'; $lang['ISL']='Islândia'; $lang['ISR']='Israel'; -$lang['ISV']='Ilhas Virgens Americanas'; $lang['ITA']='Itália'; $lang['IVB']='Ilhas Virgens Britânicas'; $lang['JAM']='Jamaica'; @@ -114,7 +107,6 @@ $lang['KOR']='República da Coréia'; $lang['KSA']='Arábia Saudita'; $lang['KUW']='Kuwait'; -$lang['LAO']='República Democrática Popular do Laos'; $lang['LAT']='Letônia'; $lang['LBA']='Líbia'; $lang['LBR']='Libéria'; @@ -128,7 +120,6 @@ $lang['MAR']='Marrocos'; $lang['MAS']='Malásia'; $lang['MAW']='Malawi'; -$lang['MDA']='República de Moldova'; $lang['MDV']='Maldivas'; $lang['Medal-1']='Medalha de Ouro'; $lang['Medal-2']='Medalha de Prata'; @@ -137,7 +128,6 @@ $lang['MEX']='México'; $lang['MGL']='Mongólia'; $lang['MHL']='Ilhas Marshall'; -$lang['MKD']='Macedônia do Norte'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -166,7 +156,6 @@ $lang['PNG']='Papua-Nova Guiné'; $lang['POL']='Polônia'; $lang['POR']='Portugal'; -$lang['PRK']='Coreia do Norte'; $lang['PUR']='Porto Rico'; $lang['QAT']='Catar'; $lang['ROU']='Romênia'; @@ -193,13 +182,11 @@ $lang['SVK']='Eslováquia'; $lang['SWE']='Suécia'; $lang['SWZ']='eSwatini'; -$lang['SYR']='Síria'; $lang['TAN']='Tanzânia'; $lang['TGA']='Tonga'; $lang['THA']='Tailândia'; $lang['TJK']='Tajiquistão'; $lang['TKM']='Turquemenistão'; -$lang['TLS']='Timor-Leste'; $lang['TOG']='Togo'; $lang['TPE']='Taipé Chinês'; $lang['TRI']='Trinidad e Tobago'; diff --git a/src/Common/Languages/pt-br/ISK-App.php b/src/Common/Languages/pt-br/ISK-App.php index 0f3aa961..9cc209f0 100644 --- a/src/Common/Languages/pt-br/ISK-App.php +++ b/src/Common/Languages/pt-br/ISK-App.php @@ -1,9 +1,22 @@ Alvo'; $lang['Timeout']='Tempo limite'; $lang['Total']='Total'; +$lang['TruncateMatches']='Remover dados temporários (partidas)'; +$lang['TruncateQual']='Remover dados temporários (Qualificação)'; $lang['Unknown']='Desconhecido'; $lang['UnlockAll']='Desbloquear todas as sessões'; $lang['Update']='Atualizar'; diff --git a/src/Common/Languages/pt-br/Ianseo.php b/src/Common/Languages/pt-br/Ianseo.php index 781c5497..fec4dddb 100644 --- a/src/Common/Languages/pt-br/Ianseo.php +++ b/src/Common/Languages/pt-br/Ianseo.php @@ -7,4 +7,6 @@ $lang['Cert-Level4']='Curso Master'; $lang['Cert-Level5']='Equipe Ianseo'; $lang['CertificateManagement']='Gestão de certificados'; +$lang['GenerateFile']='Criar arquivo'; +$lang['ShuffleResults']='Embaralhar resultados'; ?> \ No newline at end of file diff --git a/src/Common/Languages/pt-br/Install.php b/src/Common/Languages/pt-br/Install.php index 67f8b090..b35a7769 100644 --- a/src/Common/Languages/pt-br/Install.php +++ b/src/Common/Languages/pt-br/Install.php @@ -73,7 +73,7 @@ $lang['Parameter']='Parâmetro'; $lang['Password']='Senha'; $lang['PHP settings']='Configurações do PHP'; -$lang['PHP too old']='Sua instalação do PHP é muit antiga. A versão mínima para o IANSEO é 5.0.'; +$lang['PHP too old']='Sua instalação do PHP é muit antiga. A versão mínima para o IANSEO é 8.0.'; $lang['PHP version']='Versão do PHP'; $lang['php.ini file']='Arquivo php.ini'; $lang['Prepare']='Preparando dados para atualização'; @@ -139,6 +139,7 @@ $lang['SetOrdinaryFinals']='Torneio regular com finais'; $lang['SetOutdoor']='Outdoor'; $lang['SetPara']='Para Archery'; +$lang['SetSeniorClass']='Só categorias Adulto'; $lang['SetSE_SweDist']='Distancias Suecas'; $lang['SetSE_WaDist']='Distâncias da WA'; $lang['SetStandard']='Standard'; @@ -179,12 +180,13 @@ $lang['UpdatePrepared']='Sua instalação está prestes a ser atualizada. Por favor, lembre-se de fazer uma cópia de todas as suas competições antes de iniciar. O processo de atualização pode demorar bastante, dependendo de sua conexão e da quantidade de elementos que precisam ser atualizados.
    Por favor, lembre-se que qualquer arquivo não original será removido, com exceção do conteúdo da pasta "Modules/Custom".'; $lang['Updating']='Atualizando instalação local do IANSEO'; $lang['UpdatingLanguages']='Atualizando idiomas instalados'; +$lang['UpdatingModulesInfo']='Atualizando informação dos Módulos'; $lang['UpgradeFinished']='O processo de atualização está terminado'; $lang['User']='Usuário'; $lang['Value']='Valor'; $lang['WhatIanseoDoes01']='Em conformidade com as regras da World Archery: Ianseo está sempre atualizado com as regras da World Archery. Os desenvolvedores estão disponíveis para customizações para se adequar a necessidades de competições Nacionais e com Regras Específicas também!'; $lang['WhatIanseoDoes02']='Ajuda e suporte:Se você precisa de ajuda, envie um e-mail para $a: Você será ajudado diretamente pela equipe de desenvolvimento do Ianseo!'; -$lang['WhatIanseoDoes03']='Treinamentos e cursos On Site: Ianseo está disponível para gerenciar treinamentos específicos em seu país. Há dois níveis: Sem ou com equipamentos eletrônicos. O primeiro é orientado para aprender todos os aspectos do Ianseo, desde o planejamento e a agenda da competição até a publicação e distribuição local de resultados. O segundo é orientado para adquirir todo o conhecimento específico para conduzir uma competição "flecha por flecha".'; +$lang['WhatIanseoDoes03']='Treinamentos e cursos On Site: Ianseo está disponível para gerenciar treinamentos específicos em seu país. Há dois níveis: sem ou com o app Ianseo Scorekeeper NG. O primeiro é orientado para aprender todos os aspectos do Ianseo, desde o planejamento e a agenda da competição até a publicação e distribuição local de resultados. O segundo é orientado para adquirir todo o conhecimento específico para conduzir uma competição "flecha por flecha".'; $lang['WhatIanseoDoes04']='Doações! Ianseo é gratuito e open source... se você gostou, por favor ajude-nos a manter o sistema e os servidores atualizados: aperte o botão "Donate" na home page do $a!'; $lang['WhatIanseoDoes05']='Mídias Sociais: Ianseo também está no $a!'; $lang['WhatIanseoDoesTitle']='O que o IANSEO pode fazer por sua competição'; diff --git a/src/Common/Languages/pt-br/Tournament.php b/src/Common/Languages/pt-br/Tournament.php index aaee2cbe..5e84b9a4 100644 --- a/src/Common/Languages/pt-br/Tournament.php +++ b/src/Common/Languages/pt-br/Tournament.php @@ -43,6 +43,7 @@ $lang['ADOfficer']='Oficial Antidopagem'; $lang['AfterDistance']='Ranking APÓS a seguinte distância'; $lang['AfterXDistance']='Resultados APÓS a distância de $a'; +$lang['AgeClass']='Classe de idade'; $lang['AllDistances']='Tudo'; $lang['AllEvents']='Todos os eventos'; $lang['AllRound']='Todos os Rounds'; @@ -85,15 +86,19 @@ $lang['AuthCode']='Seu código de acesso'; $lang['AuthCodeA2A']='Flecha por flecha - Código de autorização'; $lang['AutoEdits']='Auto edit'; +$lang['AutomatorAccPrint']='Config. de impressão de credenciamento'; $lang['AutoRefresh']='Auto refresh'; $lang['AutoTargetAssignment']='Atribuição de Alvos automática - SORTEIO'; $lang['AutoUploadToggle']='Habilita timer de atualização automática'; $lang['AvailableValues']='Valores disponíveis'; $lang['Award']='Prêmio'; $lang['AwardAvailableEvents']='Eventos disponíveis para premiação'; +$lang['AwarderNum']='Entregue por $a'; $lang['Awarders']='Entregue por'; $lang['AwardFirstLanguage']='Primeiro idioma'; $lang['AwardName']='Nome do prêmio'; +$lang['AwardNew']='Nova premiação'; +$lang['AwardNum']='Prêmio $a'; $lang['AwardPlayAnthem']='O hino nacional será tocado durante a cerimônia?'; $lang['AwardRepresentCountry']='Os atletas premiados representam um país/clube?'; $lang['Awards']='Prêmio'; @@ -110,7 +115,6 @@ $lang['BadgeIncludePhoto']='Incluir FOTOS nas Credenciais?'; $lang['BadgeNames']='Nome Completo (Não imprimir primeiro)'; $lang['BadgeNoData']='Não há informações a imprimir'; -$lang['BadgeOnlyNotPrinted']='SOMENTE Credenciais que ainda não foram impressas?'; $lang['BadgeOnlyPrintAccredited']='SOMENTE Credenciais dos participantes credenciados?'; $lang['BadgeOnlyPrintPhoto']='SOMENTE Credenciais com Foto?'; $lang['BadgeOptions']='Opções'; @@ -171,8 +175,6 @@ $lang['CatJudge']='Juízes'; $lang['CatJury']='Juri de Apelação'; $lang['CatOC']='Comitê Organizador'; -$lang['ChairmanJudge']='Chefe de Juízes'; -$lang['ChairmanJury']='Chefe do Juri de Apelação'; $lang['ChangeLookUpTable']='Altera Tabela de Busca'; $lang['ChangeNationsNames']='Alterar os nomes dos Países'; $lang['Channel']='Canal'; @@ -216,6 +218,7 @@ $lang['CoinTossShort']='CT'; $lang['Collation']='Agrupar'; $lang['Color']='Cor'; +$lang['CombiCompNewRule']='Nova regra'; $lang['ComparedTo']='Compara com a posição a X flechas (-1 = última disponível)'; $lang['CompetitionOfficials']='Oficiais na Competição'; $lang['CompleteSchedule']='Agenda completa'; @@ -251,6 +254,7 @@ $lang['DefaultHM']='HM padrão'; $lang['DefaultLocRule']='FITA'; $lang['DefaultVI']='VI padrão'; +$lang['DeleteAwarded']='Apagar entregues'; $lang['DeleteChannel']='Remover canal. Isto irá remover todas divisões do canal e o próprio canal.'; $lang['DeletePreviousArchers']='Apagar entradas que não estejam na lista'; $lang['DeletePreviousTeams']='Apagar Equipes Anteriores'; @@ -300,7 +304,6 @@ $lang['EmailScorecardLong']='Planilha completa'; $lang['EmailScorecardShort']='Resumo da planilha'; $lang['EmailsToSend']='e-mails a enviar'; -$lang['EnableAccess']='Habilitar/Desligar regras'; $lang['Ends']='Séries'; $lang['EndTotal']='Total Série'; $lang['EndUpdate']='Todas as atualizações foram realizadas'; @@ -927,7 +930,6 @@ $lang['TeamCreationMode_2']='Sempre 2a equipe'; $lang['TeamCreationMode_3']='Sempre 3a equipe'; $lang['TeamFin']='Equipe - Partidas'; -$lang['TeamFinEvent']='Partida de Equipes'; $lang['TeamLoaded']='Partidas de equipe carregadas para agenda ($a}'; $lang['TeamPlace']='Sinalização de locais para Equipes'; $lang['TeamQual']='Equipe - Round Qualificatório'; @@ -1162,7 +1164,6 @@ $lang['UserDetails']='Detalhes do usuário'; $lang['UserEnabled']='Habilitado'; $lang['UserName']='Usuário'; -$lang['UserPassword']='Senha'; $lang['UseSubClasses']='Aplicar a sub-classes específicas'; $lang['ValidDivisions']='Divisões permitidas (vazio para todas)'; $lang['VersionBracketsInd']='Chaves Individuais'; diff --git a/src/Common/Languages/pt/Api.php b/src/Common/Languages/pt/Api.php new file mode 100644 index 00000000..99154e2b --- /dev/null +++ b/src/Common/Languages/pt/Api.php @@ -0,0 +1,24 @@ + \ No newline at end of file diff --git a/src/Common/Languages/ro/IOC_Codes.php b/src/Common/Languages/ro/IOC_Codes.php index f2369d97..b80fe5f7 100644 --- a/src/Common/Languages/ro/IOC_Codes.php +++ b/src/Common/Languages/ro/IOC_Codes.php @@ -32,16 +32,12 @@ $lang['BUL']='Bulgaria'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Republica Centrafricană'; -$lang['CAM']='Cambodgia'; $lang['CAN']='Canada'; $lang['CAY']='Insulele Caymand'; $lang['CGO']='Republica Congo'; $lang['CHA']='Republica Ciad'; $lang['CHI']='Chile'; -$lang['CHN']='China'; -$lang['CIV']='Coasta de Azur'; $lang['CMR']='Camerun'; -$lang['COD']='Republica Democrata Congo'; $lang['COK']='Insulele Cook'; $lang['COL']='Columbia'; $lang['COM']='Insulele Comore'; @@ -50,7 +46,6 @@ $lang['CRO']='Croatia'; $lang['CUB']='Cuba'; $lang['CYP']='Cipru'; -$lang['CZE']='Cehia'; $lang['DEN']='Danemarca'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominica'; @@ -80,17 +75,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Ungaria'; $lang['INA']='Indonezia'; $lang['IND']='India'; -$lang['IRI']='Iran'; $lang['IRL']='Irlanda'; $lang['IRQ']='Irak'; $lang['ISL']='Islanda'; $lang['ISR']='Israel'; -$lang['ISV']='Insulele Virgine Americane'; $lang['ITA']='Italia'; $lang['IVB']='Insulele Virgine Britanice'; $lang['JAM']='Jamaica'; @@ -102,7 +94,6 @@ $lang['KIR']='Kiribati'; $lang['KSA']='Arabia Saudita'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; $lang['LAT']='Latvia'; $lang['LBA']='Libia'; $lang['LBR']='Liberia'; @@ -116,7 +107,6 @@ $lang['MAR']='Maroc'; $lang['MAS']='Malaezia'; $lang['MAW']='Malawi'; -$lang['MDA']='Moldova'; $lang['MDV']='Maldive'; $lang['MEX']='Mexic'; $lang['MGL']='Mongolia'; @@ -149,7 +139,6 @@ $lang['PNG']='Papua Noua Guinee'; $lang['POL']='Polonia'; $lang['POR']='Portugalia'; -$lang['PRK']='Coreea de Nord'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Romania'; @@ -173,13 +162,11 @@ $lang['SUR']='Surinam'; $lang['SVK']='Slovacia'; $lang['SWE']='Suedia'; -$lang['SYR']='Siria'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Thailanda'; $lang['TJK']='Tajikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Timorul de Est'; $lang['TOG']='Togo'; $lang['TPE']='Taipei-ul chinezesc'; $lang['TRI']='Trinidad si Tobago'; diff --git a/src/Common/Languages/ro/Install.php b/src/Common/Languages/ro/Install.php index dd7fce5b..751365ac 100644 --- a/src/Common/Languages/ro/Install.php +++ b/src/Common/Languages/ro/Install.php @@ -27,7 +27,6 @@ $lang['Parameter']='Parametri'; $lang['Password']='Parola'; $lang['PHP settings']='Setari PHP'; -$lang['PHP too old']='Versiunea locala PHP este prea veche. Versiunea IANSEO minima este 5.0.'; $lang['PHP version']='Versiune PHP'; $lang['php.ini file']='Fisier php.ini'; $lang['Read connection failed']='Conexiunea cu serverul s-a intrerupt: fie parola administrator este gresita, fie datele de logare nu sunt corecte!'; diff --git a/src/Common/Languages/ru/Api.php b/src/Common/Languages/ru/Api.php index 7d792098..cc331ef2 100644 --- a/src/Common/Languages/ru/Api.php +++ b/src/Common/Languages/ru/Api.php @@ -2,6 +2,7 @@ $lang['API-AutoGroup']='Массовое создание групп'; $lang['API-ConfirmDeleteRow']='Вы уверены, что хотите стереть этот ряд?'; $lang['API-DeviceGrouping']='Группировка устройств'; +$lang['API-EnableDeviceGrouping']='Включить группировку устройств'; $lang['API-Group']='Группа'; $lang['API-TargetGrouping']='Группировка щитов'; $lang['API-Targets']='Щиты'; @@ -29,6 +30,7 @@ $lang['ISK-CheckAlive']='проверка устройства'; $lang['ISK-checkCompeting']='Только для соревнующихся спортсменов'; $lang['ISK-DenyAccess']='Запрет доступа'; +$lang['ISK-Deprecated']='ВАЖНО: приложение «Ianseo Score Keeper» постепенно выводится из магазинов Android и Apple и больше не поддерживается, поэтому оно будет удалено из Ianseo в сентябре 2024 года. Вместо этого переключитесь на новое приложение «Ianseo Score Keeper NG».'; $lang['ISK-DeviceBattery']='Батарея питания'; $lang['ISK-DeviceId']='ID устройства'; $lang['ISK-DeviceIpAddress']='IP адрес'; @@ -48,9 +50,11 @@ $lang['ISK-Lite-NoCompCode']='Код отсутствующего соревнования'; $lang['ISK-Lite-QRCode']='Печатать QR для Ianseo ScoreKeeper Lite'; $lang['ISK-Lite-ServerUrl']='Сервер Url (включая протокол и порт если нет 80)'; +$lang['ISK-Live-Deprecated']='ВАЖНО: приложение «Ianseo Score Keeper Live» больше не поддерживается, поэтому оно будет удалено из Ianseo в сентябре 2024 года. Вместо этого переключитесь на новое приложение «Ianseo Score Keeper NG».'; $lang['ISK-Live-Name']='Ianseo ScoreKeeper LIVE'; $lang['ISK-lockPortrait']='Заблокировать устройство в верт. положении'; $lang['ISK-Name']='Ianseo ScoreKeeper'; +$lang['ISK-NG-QRCode']='Добавить QR-код для приложения Ianseo ScoreKeeper NG'; $lang['ISK-NoCompCode']='Утерян код соревнования'; $lang['ISK-onlyAccreditated']='Подтверждённая аккредитация'; $lang['ISK-OnlyProAloud']='Только PRO версия для этих соревнований !'; @@ -95,7 +99,7 @@ $lang['IskSpuriousScore-Match']='Устройство $a[0] работает для матча $a[1]'; $lang['IskTargetTitle']='Мишень(щит) $a'; $lang['IskUnknownDevice']='Неизвестное устройство на щите $a'; -$lang['LockAll']='Разрешить всё'; +$lang['LockAll']='Запретить всё'; $lang['LockToEnds']='Прекратить подсчёт до следующих серий (не означает запрет подсчёта)'; $lang['ManageGroupTarget']='управление группами и щитами'; $lang['ManageLockedSessions']='Управление доступом в приложении'; @@ -125,7 +129,7 @@ $lang['TargetScoring-Printout']='Печать таблицы QR-кодов для мишеней'; $lang['TempArrowsM']='Не импортированные стрелы в матчах (инд., командные, рейтинговые раунды, пулы и т. д.)'; $lang['TempArrowsQ']='Не импортированные стрелы в квалификационных раундах или на выбывание'; -$lang['UnlockAll']='Запретить всё'; +$lang['UnlockAll']='Разрешить всё'; $lang['WAToolbox-MissingParams']='Отсутствующий параметр'; $lang['WAToolbox-NoCompCode']='Код отсутсвующего соревнования'; $lang['XToWin']='$a для победы'; diff --git a/src/Common/Languages/ru/IOC_Codes.php b/src/Common/Languages/ru/IOC_Codes.php index 7896ad75..4b978e98 100644 --- a/src/Common/Languages/ru/IOC_Codes.php +++ b/src/Common/Languages/ru/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='Американское Самоа'; $lang['AUS']='Австралия'; $lang['AUT']='Австрия'; -$lang['Award-Anthem']='Дамы и Господа, пожалуйста встаньте для исполнения Национального Гимна'; -$lang['Award-Anthem-TPE']='Дамы и Господа, пожалуйста встаньте для исполнения Гимна'; $lang['Award-Applause']='Дамы и Господа, окажите тёплый приём аплодисментами нашему атлету(ам)'; $lang['Award-Intro']='Дамы и господа, начинаем церемонию награждения победителя и призеров в категории {$a}'; $lang['Award-MedalGiver']='Медали предоставляются $a'; @@ -42,16 +40,12 @@ $lang['BUL']='Болгария'; $lang['BUR']='Буркина Фасо'; $lang['CAF']='Центральная Африканская Республика'; -$lang['CAM']='Камбоджа'; $lang['CAN']='Канада'; $lang['CAY']='Каймановы Острова'; $lang['CGO']='Республика Конго'; $lang['CHA']='Чад'; $lang['CHI']='Чили'; -$lang['CHN']='Китай'; -$lang['CIV']='Кот Д\'Ивуар'; $lang['CMR']='Камерун'; -$lang['COD']='Демократическая Республика Конго'; $lang['COK']='Острова Кука'; $lang['COL']='Колумбия'; $lang['COM']='Коморос'; @@ -60,7 +54,6 @@ $lang['CRO']='Хорватия'; $lang['CUB']='Куба'; $lang['CYP']='Кипр'; -$lang['CZE']='Республика Чехия'; $lang['DEN']='Дания'; $lang['DJI']='Джибути'; $lang['DMA']='Доминика'; @@ -91,17 +84,14 @@ $lang['GUM']='Гуам'; $lang['GUY']='Гайана'; $lang['HAI']='Гаити'; -$lang['HKG']='Гонконг'; $lang['HON']='Гондурас'; $lang['HUN']='Венгрия'; $lang['INA']='Индонезия'; $lang['IND']='Индия'; -$lang['IRI']='Иран'; $lang['IRL']='Ирландия'; $lang['IRQ']='Ирак'; $lang['ISL']='Исландия'; $lang['ISR']='Израиль'; -$lang['ISV']='Виргинские Острова Соединенные Штаты'; $lang['ITA']='Италия'; $lang['IVB']='Британские Виргинские Острова'; $lang['JAM']='Ямайка'; @@ -114,7 +104,6 @@ $lang['KOR']='Республика Корея'; $lang['KSA']='Саудовская Аравия'; $lang['KUW']='Кувейт'; -$lang['LAO']='Лаос'; $lang['LAT']='Латвия'; $lang['LBA']='Ливия'; $lang['LBR']='Либерия'; @@ -128,7 +117,6 @@ $lang['MAR']='Морокко'; $lang['MAS']='Малазия'; $lang['MAW']='Малави'; -$lang['MDA']='Молдова'; $lang['MDV']='Мальдивы'; $lang['Medal-1']='Золотая медаль'; $lang['Medal-2']='Серебряная медаль'; @@ -165,7 +153,6 @@ $lang['PNG']='Папуа Новая Гвинея'; $lang['POL']='Польша'; $lang['POR']='Португалия'; -$lang['PRK']='Северная Корея'; $lang['PUR']='Пуерто Рико'; $lang['QAT']='Катар'; $lang['ROU']='Румыния'; @@ -191,13 +178,11 @@ $lang['SUR']='Суринам'; $lang['SVK']='Словакия'; $lang['SWE']='Швеция'; -$lang['SYR']='Сирия'; $lang['TAN']='Танзания'; $lang['TGA']='Тонга'; $lang['THA']='Таиланд'; $lang['TJK']='Таджикистан'; $lang['TKM']='Туркменистан'; -$lang['TLS']='Восточный Тимор'; $lang['TOG']='Того'; $lang['TPE']='Китайский Тайбей'; $lang['TRI']='Тринидад и Тобаго'; diff --git a/src/Common/Languages/ru/Install.php b/src/Common/Languages/ru/Install.php index 7a6fda3b..5743e6f6 100644 --- a/src/Common/Languages/ru/Install.php +++ b/src/Common/Languages/ru/Install.php @@ -65,7 +65,6 @@ $lang['Parameter']='Параметр'; $lang['Password']='Пароль'; $lang['PHP settings']='Настройки РНР'; -$lang['PHP too old']='Ваша РНР установка устарела. Минимальная версия IANSEO 5.0'; $lang['PHP version']='Версия РНР'; $lang['php.ini file']='php.ini файл'; $lang['Prepare']='Подготовка данных для обновления.'; @@ -158,7 +157,6 @@ $lang['Value']='Значение'; $lang['WhatIanseoDoes01']='Совместимость с правилами World Archery: Ianseo постоянно отслеживает возможные изменения Правил World Archery и работает исходя из самой актуальной версии. Разработчики также готовы к персональной адаптации программы к национальным или иным специфическим Правилам (условиям) проведения турниров!'; $lang['WhatIanseoDoes02']='Помощь и поддержка: если вам необходима помощь, отправьте запрос (на итальянском, немецком или английском языке) на $a: Вы получите ответ напрямую от главных разработчиков Ianseo !'; -$lang['WhatIanseoDoes03']='Обучение и курсы: у Ianseo существует несколько курсов обучения. Два уровня: без электронных устройств и с использованием электронных устройств. Первый направлен на изучение основных функций программы, от создания соревнования и планирования расписания, и до печати результатов и публикации в сети интернет. Второй направлен на изучение всех функций программы, для проведения соревнования с записью каждого выстрела.'; $lang['WhatIanseoDoes04']='Поддержать разработку ! Ianseo это бесплатный продукт с открытым кодом... если он вам понравился, пожалуйста поддержите его разработку и развитие: нажмите кнопку "Donate" на домашней странице сайта $a!'; $lang['WhatIanseoDoes05']='Соц. сети: Ianseo также присутствует на $a'; $lang['WhatIanseoDoesTitle']='Чем интересен Ianseo применительно к вашим соревнованиям по стрельбе из лука'; diff --git a/src/Common/Languages/ru/Tournament.php b/src/Common/Languages/ru/Tournament.php index e6951978..86c9b058 100644 --- a/src/Common/Languages/ru/Tournament.php +++ b/src/Common/Languages/ru/Tournament.php @@ -24,7 +24,6 @@ $lang['AclISKServer']='Управление ISK'; $lang['AclModules']='Модули'; $lang['ACLNoAccess']='Нет доступа'; -$lang['AclNotes']='Примечания по защите доступа по сети
    • Ограничения устанавливаются на основе соревнования, а не на основе сервера
    • localhost (127.0.0.1 или ::1) не может быть ограничен
    • Ограничения можно отключить с самого сервера по ссылке: {$a}
    • Если ограничения включены, по умолчанию для клиентов, не включенных в список доступа, отображается «Нет доступа»
    • Если добавить * как последнюю часть IP адреса (192.168.0.* or 172.16.*) то добавится группа, ограниченная только чтением
    • IP в диапазоне 0.0.0.[1-254] не будут считаться реальными IP-адресами, и система будет использовать содержимое описания в качестве RegExp для соответствия IP-адресу. RegExps будут оцениваться в том порядке, в котором они показаны, и позволяет использовать ограничения чтения и записи.
    '; $lang['AclOutput']='Вывод'; $lang['AclParticipants']='Участники'; $lang['AclQualification']='Квалификация'; @@ -105,7 +104,6 @@ $lang['BadgeIncludePhoto']='Включить фото в бейдж'; $lang['BadgeNames']='Полное имя (Не напечатанное)'; $lang['BadgeNoData']='Нет данных для печати'; -$lang['BadgeOnlyNotPrinted']='ТОЛЬКО бейджи ещё не напечатаны?'; $lang['BadgeOnlyPrintAccredited']='ТОЛЬКО бейджи аккредитованых участников?'; $lang['BadgeOnlyPrintPhoto']='Только бейджи с фото?'; $lang['BadgeOptions']='Опции'; @@ -154,8 +152,6 @@ $lang['CatJudge']='Судьи'; $lang['CatJury']='Апелляционное жюри'; $lang['CatOC']='Организационный комитет'; -$lang['ChairmanJudge']='Главный судья'; -$lang['ChairmanJury']='Председатель апеляционного жюри'; $lang['ChangeLookUpTable']='Изменить БД'; $lang['ChangeNationsNames']='Изменить названия регионов'; $lang['Channel']='Канал'; @@ -254,7 +250,6 @@ $lang['EliminationShort']='Отбор.'; $lang['EliminationType']='Тип Отборочного этапа'; $lang['Email']='E-Mail'; -$lang['EnableAccess']='Вкл./Выкл. доступ'; $lang['Ends']='серий'; $lang['EndTotal']='Сумма'; $lang['EndUpdate']='Все обновления выполнены'; @@ -598,6 +593,7 @@ $lang['Results']='Результаты'; $lang['ResultSqAbs']='Квалификация - Команды'; $lang['ResultSqClass']='Результаты по класс. и див.- Команды'; +$lang['ReverseNameFunction']='Поменять местами Имя и Должность'; $lang['Round']='Круг'; $lang['Round#']='Круг $a'; $lang['Row-1']='Первый Ряд'; diff --git a/src/Common/Languages/sk/Common.php b/src/Common/Languages/sk/Common.php index 416ca913..3c8bccd9 100644 --- a/src/Common/Languages/sk/Common.php +++ b/src/Common/Languages/sk/Common.php @@ -81,6 +81,7 @@ $lang['ISK-Results']='Výsledky v PDA'; $lang['ISKMenuHeader']='ISK'; $lang['jrYesNo']='Áno / Nie'; +$lang['JudgeNotes']='Poznámky rozhodcu'; $lang['ManFinAthTargetInd']='Individuálne Eliminácie - Strelci na Terčovnici'; $lang['ManFinScheduleInd']='Rozpis Eiliminácie Jednotlivcov'; $lang['MatchModeScoring']='Typ Skórovania'; diff --git a/src/Common/Languages/sk/Tournament.php b/src/Common/Languages/sk/Tournament.php index 2415c533..b20321ac 100644 --- a/src/Common/Languages/sk/Tournament.php +++ b/src/Common/Languages/sk/Tournament.php @@ -47,8 +47,8 @@ $lang['CancelAcc']='Zruš Akreditáciu'; $lang['CancelEquipment']='Zruš kontrolu náradia'; $lang['Cash']='Platba spolu'; -$lang['CatDos']='Rozhodca'; -$lang['CatJudge']='Hlavný rozhodca'; +$lang['CatDos']='DOS'; +$lang['CatJudge']='Rozhodca'; $lang['CatJury']='Výsledky spracoval'; $lang['CatOC']='Technický Delegát'; $lang['ChairmanJudge']='Hlavný Rozhodca'; @@ -83,7 +83,7 @@ $lang['Divisions']='Divízia'; $lang['DOB']='Dátum narodenia'; $lang['Document']='Dokument'; -$lang['Dos']='Rozhodca'; +$lang['Dos']='DOS'; $lang['DosAssistant']='---'; $lang['DoubleSpace']='Kuša'; $lang['DrawField3D']='Terénna/3D rozlosovanie'; @@ -131,7 +131,7 @@ $lang['IndoorTourCategory']='Halová Súťaž'; $lang['IndQual']='Kvalifikácia Jednotlivci'; $lang['InitEliminations']='Inicializovať eliminácii'; -$lang['Judge']='---'; +$lang['Judge']='Rozhodca'; $lang['Jury']='----'; $lang['LegendSO']='Rozstrel & Hod Mincou Skratka'; $lang['Length']='Trvanie'; @@ -287,7 +287,6 @@ $lang['TeamClEvent']='Kvalif. Družstiev'; $lang['TeamCreationMode']='Nastavenie zloženia družstva'; $lang['TeamFin']='Eliminácie & Finále - Družstvá'; -$lang['TeamFinEvent']='Elim. Družstvá'; $lang['TeamQual']='Kvalifikácia - Družstvá'; $lang['TecDelegate']='Technický Delegát'; $lang['Time']='Začiatok'; diff --git a/src/Common/Languages/sl/Tournament.php b/src/Common/Languages/sl/Tournament.php index e2520b15..218d47ed 100644 --- a/src/Common/Languages/sl/Tournament.php +++ b/src/Common/Languages/sl/Tournament.php @@ -257,7 +257,6 @@ $lang['EmailScorecardShort']='Povzetek zapisnikarjev'; $lang['EmailsToSend']='Naslovi za pošiljanje'; $lang['EmailSuccessfull']='Sporočilo je bilo uspešno poslano na $a'; -$lang['EnableAccess']='Omogoči/onemogoči pogoje'; $lang['Ends']='Serije'; $lang['EndTotal']='Serije skupaj'; $lang['EndUpdate']='Vse posodobitve končane'; @@ -421,12 +420,16 @@ $lang['ScoreTournament']='Dodaj glavo tekmovanja'; $lang['SelectSession']='Izberi izmeno'; $lang['Send2Ianseo']='Pošlji podatke na www.ianseo.net'; +$lang['SendLogos']='Pošlji slike/logotipe tekmovanja'; $lang['SessionDescr']='Podrobnosti izmen'; $lang['SessionShort']='Izm.'; $lang['SetCredentials']='Nastavi on-line kode'; $lang['SetPoints']='Set točke'; $lang['SetTotal']='Skupaj'; $lang['Sex']='Spol'; +$lang['ShortFemale']='Ž'; +$lang['ShortUnisex']='Uni'; +$lang['ShotOffShort']='SO'; $lang['showRecords']='Pokaži rekorde'; $lang['ShowTourCode']='Pokaži kodo tekmovanja'; $lang['SignedTotal']='Podpisan rezultat'; @@ -491,8 +494,10 @@ $lang['Type_3D']='3D'; $lang['Type_FITA']='FITA'; $lang['UploadFile']='Prenos datotek (PDF)'; +$lang['UserName']='Uporabniško ime'; $lang['VersionEntries']='Prijave'; $lang['WheelChair']='Voziček/stol'; +$lang['WheelchairShort']='Voz.'; $lang['WR-Record']='Svetovni rekord'; $lang['YearStart']='Od leta'; ?> \ No newline at end of file diff --git a/src/Common/Languages/sr/IOC_Codes.php b/src/Common/Languages/sr/IOC_Codes.php index 4c885ef6..fc868916 100644 --- a/src/Common/Languages/sr/IOC_Codes.php +++ b/src/Common/Languages/sr/IOC_Codes.php @@ -32,16 +32,12 @@ $lang['BUL']='Bugarska'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Centralnoafrička Republika'; -$lang['CAM']='Kambodža'; $lang['CAN']='Kanada'; $lang['CAY']='Kajmanska Ostrva'; $lang['CGO']='Republika Kongo'; $lang['CHA']='Čad'; $lang['CHI']='Čile'; -$lang['CHN']='Kina'; -$lang['CIV']='Obala Slonovače'; $lang['CMR']='Kamerun'; -$lang['COD']='Demokratska Republika Kongo'; $lang['COK']='Kukova Ostrva'; $lang['COL']='Kolumbija'; $lang['COM']='Komori'; @@ -50,7 +46,6 @@ $lang['CRO']='Hrvatska'; $lang['CUB']='Kuba'; $lang['CYP']='Kipar'; -$lang['CZE']='Češka Republika'; $lang['DEN']='Danska'; $lang['DJI']='Džibuti'; $lang['DMA']='Dominika'; @@ -80,17 +75,14 @@ $lang['GUM']='Gvam'; $lang['GUY']='Gvajana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Mađarska'; $lang['INA']='Indonezija'; $lang['IND']='Indija'; -$lang['IRI']='Iran'; $lang['IRL']='Irska'; $lang['IRQ']='Irak'; $lang['ISL']='Island'; $lang['ISR']='Izrael'; -$lang['ISV']='Američka Devičanska Ostrva'; $lang['ITA']='Italija'; $lang['IVB']='Britanska Devičanska Ostrva'; $lang['JAM']='Jamajka'; @@ -102,7 +94,6 @@ $lang['KIR']='Kiribati'; $lang['KSA']='Saudijska Arabija'; $lang['KUW']='Kuvajt'; -$lang['LAO']='Laos'; $lang['LAT']='Letonija'; $lang['LBA']='Libija'; $lang['LBR']='Liberija'; @@ -116,7 +107,6 @@ $lang['MAR']='Maroko'; $lang['MAS']='Malezija'; $lang['MAW']='Malavi'; -$lang['MDA']='Moldavija'; $lang['MDV']='Maldivi'; $lang['MEX']='Meksiko'; $lang['MGL']='Mongolija'; @@ -149,7 +139,6 @@ $lang['PNG']='Papua Nova Gvineja'; $lang['POL']='Poljska'; $lang['POR']='Portugalija'; -$lang['PRK']='Severna Koreja'; $lang['PUR']='Portoriko'; $lang['QAT']='Katar'; $lang['ROU']='Rumunija'; @@ -173,13 +162,11 @@ $lang['SUR']='Surinam'; $lang['SVK']='Slovačka'; $lang['SWE']='Švedska'; -$lang['SYR']='Sirija'; $lang['TAN']='Tanzanija'; $lang['TGA']='Tonga'; $lang['THA']='Tajland'; $lang['TJK']='Tadžikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Istočni Timor'; $lang['TOG']='Togo'; $lang['TPE']='Kineski Taipei'; $lang['TRI']='Trinidad i Tobago'; diff --git a/src/Common/Languages/sr/Install.php b/src/Common/Languages/sr/Install.php index 3d1cd039..d4c45df3 100644 --- a/src/Common/Languages/sr/Install.php +++ b/src/Common/Languages/sr/Install.php @@ -50,7 +50,6 @@ $lang['Parameter']='Parametar'; $lang['Password']='Lozinka'; $lang['PHP settings']='PHP podešavanja'; -$lang['PHP too old']='Vaša PHP instalacija je previše stara. IANSEO zahteva najmanje PHP 5.0.'; $lang['PHP version']='PHP verzija'; $lang['php.ini file']='php.ini fajl'; $lang['Prepare']='Priprema podataka za ažuriranje'; diff --git a/src/Common/Languages/sr/Tournament.php b/src/Common/Languages/sr/Tournament.php index ed2ead00..0715d59c 100644 --- a/src/Common/Languages/sr/Tournament.php +++ b/src/Common/Languages/sr/Tournament.php @@ -43,7 +43,6 @@ $lang['BadgeIncludePhoto']='Staviti fotografije na propusnicu?'; $lang['BadgeNames']='Puno ime (Nije štampano prvo)'; $lang['BadgeNoData']='Nema podataka za štampu'; -$lang['BadgeOnlyNotPrinted']='SAMO propusnice koje nisu već odštampane?'; $lang['BadgeOnlyPrintAccredited']='SAMO propusnice akreditovanih učesnika?'; $lang['BadgeOnlyPrintPhoto']='SAMO propusnice sa fotografijom?'; $lang['BadgeOptions']='Opcije'; @@ -73,7 +72,6 @@ $lang['Cash']='Ukupno plaćanje'; $lang['CatJudge']='Sudije'; $lang['CatOC']='Organizacioni odbor'; -$lang['ChairmanJudge']='Glavni sudija'; $lang['CheckRefMail']='Proveriti referentni e-mail...'; $lang['CheckTargetUpdate']='Proveri ažuriranje podataka'; $lang['Classes']='Klase'; @@ -367,7 +365,6 @@ $lang['TargetTo']='Završna meta'; $lang['TeamClEvent']='Ekipne kvalifikacije'; $lang['TeamFin']='Ekipno - Rasp. i Finale'; -$lang['TeamFinEvent']='Ekipno finale'; $lang['TeamQual']='Ekipno - Kvalifikacije'; $lang['TicketGetScore']='Sakupljanje rezultata u toku takmičenja'; $lang['TieWinner']='Pobednik dopucavanja'; diff --git a/src/Common/Languages/sv/Api.php b/src/Common/Languages/sv/Api.php index 6812a2d2..2fb57b91 100644 --- a/src/Common/Languages/sv/Api.php +++ b/src/Common/Languages/sv/Api.php @@ -27,6 +27,8 @@ $lang['Desc-Let-R']='Markering i fel omgång'; $lang['Desc-Let-Y']='Serie klar att importera'; $lang['Desc-Let-Z']='Markering pågår'; +$lang['DevConnected']='Ansluten'; +$lang['DevDisconnected']='Inte ansluten'; $lang['DistanceNum']='avstånd $a'; $lang['FieldMonitor']='Fältövervakning'; $lang['FlashCodeDistance']='Scanna denna QR-kod i appen för att mata in poäng på $a'; @@ -42,6 +44,8 @@ $lang['ISK-ConnectionStatus']='Uppkopplingsstatus'; $lang['ISK-DeleteDevices']='Radera enheter'; $lang['ISK-DenyAccess']='Neka åtkomst'; +$lang['ISK-Deprecated']='VIKTIGT! Den gamla ianseo appen kommer inte längre att uppdateras. Den kommer att tas bort ifrån ianseo i september 2024. +Använd Scorekeeper NG istället.'; $lang['ISK-DeviceBattery']='% Batteri'; $lang['ISK-DeviceEnabled']='Aktiverad'; $lang['ISK-DeviceId']='Enhets-ID'; @@ -51,15 +55,17 @@ $lang['ISK-DeviceStatusWanted']='Pusha nya inställningar'; $lang['ISK-DeviceUsed']='Aktiv'; $lang['ISK-enableGPS']='Skicka position'; -$lang['ISK-EnableScore']='Använd Ianseo ScoreKeeper'; +$lang['ISK-enableHaptics']='Aktivera Haptisk respons'; +$lang['ISK-EnableScore']='Använd Ianseo ScoreKeeper NG'; $lang['ISK-enableTotals']='Aktivera Total'; $lang['ISK-enableWIFIManagement']='Tillåt appen att hantera Wi-Fi'; $lang['ISK-ExportDevices']='Exportera enheter'; $lang['ISK-ForceConfirm']='Tvinga enhetsinställningar'; $lang['ISK-Gps']='GPS-position'; +$lang['ISK-gpsFrequency']='Uppdateringsfrekvens'; $lang['ISK-hideTotals']='Göm totalen'; $lang['ISK-ImportDevices']='Importera enheter'; -$lang['ISK-LicenseNumber']='Licenskod för
    Scorekeeper PRO'; +$lang['ISK-LicenseNumber']='Licensnyckel för
    Scorekeeper PRO'; $lang['ISK-Lite-Name']='Ianseo ScoreKeeper Lite'; $lang['ISK-Lite-NoCompCode']='Tävlingskoden saknas'; $lang['ISK-Lite-QRCode']='Skriv ut QR-koden för Ianseo ScoreKeeper Lite'; @@ -81,7 +87,9 @@ $lang['ISK-Sequence']='Schemalagd tävlingsfas.'; $lang['ISK-ServerUrl']='Server-URL
    (inklusive protokoll och port, om inte 80)'; $lang['ISK-ServerUrlPin']='Säkerhetskod för tävling.'; +$lang['ISK-SettingsPIN']='Ställ in PIN'; $lang['ISK-SocketAction']='Åtgärd'; +$lang['ISK-SocketIP']='Web Socket IP (för enheter)'; $lang['ISK-spottingMode']='Spotting-läge'; $lang['ISK-StatusOK']='Enheten är konfigurerad'; $lang['ISK-StatusReloading']='Inställningar laddas upp'; @@ -90,6 +98,7 @@ $lang['ISK-TruncateTableAll']='Töm temp-tabellen (helt)'; $lang['ISK-UsePersonalDevices']='Använd skyttarnas enheter'; $lang['ISK-UsePersonalDevices-Help']='Aktivera detta ifall ni vill ha möjlighet att använda skyttars egna telefoner. De behöver registreras under "Hantera enheter", innan de kan skanna QR-koder på skjutkort eller tavlor, för att kunna registrera poäng.'; +$lang['ISK-WiFi']='WiFi inställningar'; $lang['IskDeviceAssigned']='Enhetskod'; $lang['IskResetAlert']='Varning: Alla inställningar, förutom tavelgrupperingar, som inte gäller för vald App-typ kommer att raderas.'; $lang['IskSpuriousScore-Device']='Enhet $a[0] markerar på tavla $a[1] i omgång/avstånd $a[2]'; diff --git a/src/Common/Languages/sv/BackNumbers.php b/src/Common/Languages/sv/BackNumbers.php index 6f13cb1c..86c03ae9 100644 --- a/src/Common/Languages/sv/BackNumbers.php +++ b/src/Common/Languages/sv/BackNumbers.php @@ -41,10 +41,10 @@ $lang['BadgeSetup']='Badge setup'; $lang['BadgeTest']='Test-badge'; $lang['Barcode']='Scanna Streckkod'; -$lang['BarCodeFields']='
    • Blank: En "–" separerad sträng med, IdrottsID, Skjutstil och klass skrivs ut.
    • {ENCODE}: {ENCODE} ger IdrottsID
    • {COUNTRY}: {COUNTRY} ger Klubb-/lands- nummer/kod.
    • {DIVISION}: {DIVISION} ger Skjutstil
    • {CLASS}: {CLASS} ger Klass
    • {TOURNAMENT}: {TOURNAMENT} ger Tävlingskoden
    '; +$lang['BarCodeFields']='
    • Blank: En "–" separerad sträng med, licensnummer, Skjutstil och klass skrivs ut.
    • {ENCODE}: {ENCODE} ger licensnummer
    • {COUNTRY}: {COUNTRY} ger Klubb-/lands- nummer/kod.
    • {DIVISION}: {DIVISION} ger Skjutstil
    • {CLASS}: {CLASS} ger Klass
    • {TOURNAMENT}: {TOURNAMENT} ger Tävlingskoden
    '; $lang['BarcodeSeparator']='Streckkodsavskiljare'; $lang['BgImage']='Bakgrundsbild'; -$lang['BibNumber']='Idrotts-ID'; +$lang['BibNumber']='Licensnr.'; $lang['BlackWhite']='Svart/Vit'; $lang['Bold']='Fet'; $lang['Category']='Klass'; @@ -78,16 +78,23 @@ $lang['FamCaps']='EFTERNAMN'; $lang['FamCaps-GAlone']='EFTERNAMN F.'; $lang['FamCaps-GivCamel']='EFTERNAMN Förnamn'; +$lang['FamCaps-GivCamel-ClubCamel']='EFTERNAMN Förnamn, Klubbnamn'; +$lang['FamCaps-GivCamel-ClubCaps']='EFTERNAMN Förnamn, KLUBBNAMN'; $lang['FamCaps-GivCaps']='EFTERNAMN FÖRNAMN'; +$lang['FamCaps-GivCaps-ClubCaps']='EFTERNAMN FÖRNAMN, KLUBBNAMN'; $lang['FinPosition']='Total placering'; $lang['Flag']='Klubblogga'; $lang['GAlone-FamCamel']='F. Efternamn'; $lang['GAlone-FamCaps']='F. EFTERNAMN'; $lang['GivCamel']='FörNamn'; $lang['GivCamel-FamCamel']='Förnamn Efternamn'; +$lang['GivCamel-FamCamel-ClubCamel']='Förnamn Efternamn, Klubbnamn'; $lang['GivCamel-FamCaps']='Förnamn EFTERNAMN'; +$lang['GivCamel-FamCaps-ClubCamel']='Förnamn EFTERNAMN, Klubbnamn'; +$lang['GivCamel-FamCaps-ClubCaps']='Förnamn EFTERNAMN, KLUBBNAMN'; $lang['GivCaps']='FÖRNAMN'; $lang['GivCaps-FamCaps']='FÖRNAMN EFTERNAMN'; +$lang['GivCaps-FamCaps-ClubCaps']='FÖRNAMN EFTERNAMN, KLUBBNAMN'; $lang['GivenNameInitial']='Förnamn, initial'; $lang['Heigh']='Höjd'; $lang['HLine']='Horisontell linje'; @@ -103,6 +110,7 @@ $lang['IncludeLogo']='Inkludera flagga/klubblogga'; $lang['IncludeSession']='Inkludera omgång vid utskrift'; $lang['Italic']='Kursiv'; +$lang['Landscape']='Landskap'; $lang['NewBadgeName']='Namnge Badge'; $lang['NocCaps']='Klubbnummer'; $lang['NocCaps-ClubCamel']='KLUBBNUMMER Klubbnamn'; @@ -112,12 +120,13 @@ $lang['PageDimension']='Sidstorlek'; $lang['PaperDimention']='Pappersstorlek'; $lang['Picture']='Deltagarfoto'; +$lang['Portrait']='Porträtt'; $lang['PosX']='Position (X)'; $lang['PosY']='Posistion(Y)'; $lang['PrintBackNo']='Skrivt ut "startnummerlappar"'; $lang['PrintSpecificBadges']='Print Using Auto-matching Badges'; $lang['Q-Badge']='Startnummerlapp'; -$lang['QrCodeFields']='
    • Blank: En "–" separerad sträng med, IdrottsID, Skjutstil och klass skrivs ut.
    • {ENCODE}: {ENCODE} ger IdrottsID
    • {COUNTRY}: {COUNTRY} ger Klubb-/lands- nummer/kod.
    • {DIVISION}: {DIVISION} ger Skjutstil
    • {CLASS}: {CLASS} ger Klass
    • {TOURNAMENT}: {TOURNAMENT} ger Tävlingskoden
    '; +$lang['QrCodeFields']='
    • Blank: En "–" separerad sträng med, licensnummer, Skjutstil och klass skrivs ut.
    • {ENCODE}: {ENCODE} ger licensnummer
    • {COUNTRY}: {COUNTRY} ger Klubb-/lands- nummer/kod.
    • {DIVISION}: {DIVISION} ger Skjutstil
    • {CLASS}: {CLASS} ger Klass
    • {TOURNAMENT}: {TOURNAMENT} ger Tävlingskoden
    '; $lang['QualPosition']='Placering efter kval.'; $lang['RandomImage']='Bild/foto'; $lang['Ranking']='Ranking kvalomgång'; @@ -137,6 +146,7 @@ $lang['ToRight']='Tävlingslogga (Höger)'; $lang['TVViewIdCard']='Visa som ID-kort'; $lang['TVViewIdCardDescr']='När matcher visas ställer denna in så att skyttarnas namn och klubb visas på två rader.
    Resultatet visas mellan skyttarna.'; +$lang['VLayout']='Vertikal'; $lang['Width']='Bredd'; $lang['Y-Badge']='Individuellt diplom'; $lang['Z-Badge']='Lagdiplom'; diff --git a/src/Common/Languages/sv/Common.php b/src/Common/Languages/sv/Common.php index 4660c08e..d81e17ff 100644 --- a/src/Common/Languages/sv/Common.php +++ b/src/Common/Languages/sv/Common.php @@ -1,7 +1,7 @@ startsidan
    och öppna en.'; $lang['CW']='Kadett damer'; $lang['DateFmt']='d-m-Y'; $lang['DateFmtDB']='%d-%m-%Y'; @@ -122,6 +124,10 @@ $lang['Finish']='Slut'; $lang['FirstPhase']='Första delen'; $lang['FopSetup']='Layout tävlingsomr. (FOP)'; +$lang['Gender0']='Man'; +$lang['Gender1']='Kvinna'; +$lang['GenderShort0']='M'; +$lang['GenderShort1']='K'; $lang['GF']='Young Girls'; $lang['GM']='Young Boy'; $lang['HELP']='HJÄLP!'; @@ -137,6 +143,8 @@ $lang['IndFinEventWithoutShootOff']='OBS!
    I följande klasser finns skyttar kvar att särskilja innan stegarna kan visas!'; $lang['IndImport']='Importera data till individuella stegarna'; $lang['Individual']='Individuell'; +$lang['IndTeam-0']='Individuell'; +$lang['IndTeam-1']='Lag'; $lang['InitFinalGrids']='Skapa stegar'; $lang['InitPools']='Skapa stegar'; $lang['ISK-Configuration']='Hantera enheter'; @@ -194,6 +202,7 @@ $lang['MenuLM_Category Result List']='Resultatlista per klass'; $lang['MenuLM_Change Components']='Ändra lagsammansättning'; $lang['MenuLM_ChangeNationsNames']='Ändra nations-/klubbnamn'; +$lang['MenuLM_ChangePassword']='Ändra lösenord'; $lang['MenuLM_Check Data Update']='Check Data Update'; $lang['MenuLM_Check shoot-off before eliminations']='Kontrollera särskjutning innan eliminering'; $lang['MenuLM_Check shoot-off before final phases']='Kontrollera särskjutning innan finaler'; @@ -266,6 +275,7 @@ $lang['MenuLM_ListLoad']='Uppladdning lista(kalkylblad)'; $lang['MenuLM_Lock manage']='Inställningar för nätverksåtkomst'; $lang['MenuLM_Lock setup']='Blockera redigering'; +$lang['MenuLM_Logout']='Logga ut'; $lang['MenuLM_LueFill']='Create LookUp from File'; $lang['MenuLM_Manage Events']='Hantera tävling'; $lang['MenuLM_ManAwards']='Prisutdelning'; @@ -328,7 +338,7 @@ $lang['MenuLM_TargetAssignmentSecond']='Tavelhantering del 2'; $lang['MenuLM_TargetAssignmentThird']='Tavelhantering del 3'; $lang['MenuLM_TargetFromRank']='Tavelplacering enligt ranking'; -$lang['MenuLM_Targets']='Tapetval'; +$lang['MenuLM_Targets']='Tapet-/målval'; $lang['MenuLM_Team Final Setup']='Inställningar Lagfinaler'; $lang['MenuLM_Team Finals']='Lagfinaler'; $lang['MenuLM_Team Spot']='Team Spot'; @@ -336,6 +346,7 @@ $lang['MenuLM_TV Channels']='Ställ in "TV Output" kanaler'; $lang['MenuLM_TV Output']='TV Output'; $lang['MenuLM_TVAdvanced']='TV Output (Advanced)'; +$lang['MenuLM_Twitter']='X'; $lang['MenuLM_Update']='Uppdatera IANSEO'; $lang['MenuLM_UpdateWeb']='ianseo live (särskild tjänst)'; $lang['MenuLM_Versioning']='Ställ in version'; @@ -360,7 +371,7 @@ $lang['MsgAttentionFinReset']='VARNING!
    Du kan inte ångra detta!!!
    Alla data i individuella final- och lagstegar kommer att raderas.
    Denna procedur används endast om det har rättats till fel i kvalet eller shoot-off.
    Vill du fortsätta?'; $lang['MsgImportError']='Error!
    Cannot Import Data!'; $lang['MsgImportOk']='Import slutförd'; -$lang['MsgInitFinalGridsError']='VARNING!
    Stegarna är redan inställda, vill du fortsätta?
    Registrerade poäng kommer att raderas.'; +$lang['MsgInitFinalGridsError']='VARNING!
    Stegarna är redan inställda, vill du fortsätta?
    Poäng registrerade i stegen kommer att raderas.'; $lang['MsgInitFinalGridsOk']='Initiering lyckades'; $lang['MsgMakeFinReset']='Final Brackets Re-Initialized!
    Redo all the preliminary operation before insert new data!'; $lang['MsgNeedInitGrids']='FEL!
    Stegarna är inte inställda!'; @@ -415,6 +426,7 @@ $lang['Score1Page1Match']='Matchprotokoll'; $lang['ScoreDrawing']='Tomma skjutkort (Ett per sida)'; $lang['ScoreFilled']='Skriv ut skjutkort med ifyllda pilvärden och sammanräkning'; +$lang['ScoreIncAllNames']='Inkludera alla möjliga motståndare'; $lang['ScoreIncEmpty']='Skriv ut matcher även när motståndare saknas'; $lang['Scorer']='Markör'; $lang['SelectAll']='Välj alla'; @@ -433,8 +445,8 @@ $lang['SpottingTeam']='Team Spot'; $lang['Status_0']='Får delta'; $lang['Status_1']='Tillåts delta efter kontroll'; -$lang['Status_5']='Okänd status fram till tävlingsdagen'; -$lang['Status_6']='Drar sig ur'; +$lang['Status_5']='Saknar giltig licens'; +$lang['Status_6']='DNF - bryter'; $lang['Status_7']='Ej ackrediterad – DNS'; $lang['Status_8']='Tillåts ej delta - ofullständig dokumentation'; $lang['Status_9']='Tillåts ej delta'; @@ -446,6 +458,7 @@ $lang['TargetType']='Tapet/mål'; $lang['TB']='Shoot off'; $lang['Team']='Lag'; +$lang['TeamComponents']='Lagmedlemmar'; $lang['TeamDefinition']='Lagdefinition'; $lang['TeamEventList']='Lagfinaler/elimineringar'; $lang['TeamFinal']='Lagfinaler'; diff --git a/src/Common/Languages/sv/Errors.php b/src/Common/Languages/sv/Errors.php index 396d3a0f..1fc4e0cd 100644 --- a/src/Common/Languages/sv/Errors.php +++ b/src/Common/Languages/sv/Errors.php @@ -4,11 +4,18 @@ $lang['BarCodeSession']='Kontrollera inställningarna. Omgång är inte inställd.'; $lang['BarCodeSettings']='Kontrollera inställningarna.'; $lang['ClassFromToError']='Från och till får bara innehålla siffror'; +$lang['EndsArrowsMisMatch']='$a som har fel inställningar för serier/pilar'; +$lang['EntriesNoCategory']='Anmälda som saknar klass'; +$lang['EntriesNoCountry']='Anmälda som saknar Klubb/Land'; $lang['ErrCodeExists']='Ansökan är redan gjord för denna tävlingskod!
    Om du inte fått bekräftelsemail, prova att byta kod och ansök igen.'; +$lang['ErrEmptyFields']='Uppgifter saknas eller är felaktiga.'; $lang['ErrNoError']='Ansökan lyckades! Du kommer strax att få ett mail med koden. Tävlingen är inte aktiverad just nu. Du kommer att få ett mail när den är aktiverad.'; $lang['ErrNoName']='Namn saknas'; $lang['ErrUnknownNation']='Okänt land'; +$lang['EventIncompleteSetting']='$a med saknade klassinställningar'; $lang['LockedProcedure']='Processen är låst. Öppna tävlingen igen för att fortsätta.'; +$lang['NoDistancesSet']='Klasser som saknar avståndsinställningar'; $lang['NoPrivilege']='Behörighet saknas. Redigering är låst.'; $lang['NoSameOrders']='Ordningstalet kan inte vara samma som på en annan del i kanalen.'; +$lang['NoTargetSet']='Klasser som saknar tapet-/mål-inställningar'; ?> \ No newline at end of file diff --git a/src/Common/Languages/sv/Help.php b/src/Common/Languages/sv/Help.php index d1d4a1a0..b0c3928f 100644 --- a/src/Common/Languages/sv/Help.php +++ b/src/Common/Languages/sv/Help.php @@ -1,4 +1,5 @@ Tillåten joker "%"'; $lang['AutoImportSettings']='OBS! Endast för experter
    Om du ändrar dessa inställningar till manuellt, får du inte publicera några resultat förrän du uppdaterat rankingen manuellt.
    Det är viktigt att du uppdaterar ranking som du ställt om till "manuellt" INNAN du skickar till ianseo.net, eller publicerar/skriver ut.'; $lang['ChangeComponents']='

    Börja med att klicka ur den skytt du vill ta bort ur laget innan du klicka i en ny.

    ▶ Skyttens poäng är inräknad i lagets kvalpoäng.
    ▷ Skyttens poäng är inte medräknad i lagets kvalpoäng.'; $lang['GetBarcodeSeparator']='Efter att du skrivit ut Streckkodskommandon, scanna «SEPARATOR» koden för att aktivera rätt inställningar för streckkodsläsaren.'; @@ -9,4 +10,6 @@ Om du skriver något inringat av taggen <qrcode>...</qrcode>, kommer detta att omvandlas till en QR-kod.'; $lang['ScoreBarCodeShortcuts']='OBS! Välj omgång och avstånd innan du scannar/skriver.
    Tänk på att scanna streckkoden för aktuellt avstånd.
    Scanna streckkoden på skjutkortet.
    Saknar du scanner kan du fylla i manuellt i rutan "scanna streckkod".
    Skriv @ följt av tavelnummer, tryck enter.
    Eller, skriv # följt av skyttens namn, tryck enter.
    '; +$lang['UserName']='Unikt användarnamn. Minst 6 tecken.'; +$lang['UserPassword']='Lämna tomt för att behålla nuvarande lösenord.'; ?> \ No newline at end of file diff --git a/src/Common/Languages/sv/IOC_Codes.php b/src/Common/Languages/sv/IOC_Codes.php index a2fe3225..a70d21f4 100644 --- a/src/Common/Languages/sv/IOC_Codes.php +++ b/src/Common/Languages/sv/IOC_Codes.php @@ -12,7 +12,6 @@ $lang['ASA']='Amerikanska Samoaöarna'; $lang['AUS']='Australien'; $lang['AUT']='Österrike'; -$lang['Award-Anthem']='Mina damer och herrar, var goda och stå upp för nationalsången för'; $lang['Award-Applause']='Mina damer och herrar, kan vi ge en varm applåd till alla våra deltagare.'; $lang['Award-Intro']='Mina damer och herrar, medaljceremonin för'; $lang['Award-MedalGiver']='Medaljerna presenteras av $a'; @@ -41,16 +40,13 @@ $lang['BUL']='Bulgarien'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Centralafrikanska Republiken'; -$lang['CAM']='Kambodja'; $lang['CAN']='Kanada'; $lang['CAY']='Caymanöarna'; $lang['CGO']='Republiken Kongo'; $lang['CHA']='Tchad'; $lang['CHI']='Chile'; -$lang['CHN']='Kina'; $lang['CIV']='Elfenbenskusten'; $lang['CMR']='Kamerun'; -$lang['COD']='Kongos demokratiska republik'; $lang['COK']='Cooköarna'; $lang['COL']='Columbia'; $lang['COM']='Komorerna'; @@ -59,7 +55,6 @@ $lang['CRO']='Kroatien'; $lang['CUB']='Kuba'; $lang['CYP']='Cypern'; -$lang['CZE']='Tjeckien'; $lang['DEN']='Danmark'; $lang['DJI']='Djibouti'; $lang['DMA']='Dominica'; @@ -90,17 +85,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Ungern'; $lang['INA']='Indonesien'; $lang['IND']='Indien'; -$lang['IRI']='Iran'; $lang['IRL']='Irland'; $lang['IRQ']='Irak'; $lang['ISL']='Island'; $lang['ISR']='Israel'; -$lang['ISV']='Amerikanska Jungfruöarna'; $lang['ITA']='Italien'; $lang['IVB']='Brittiska Jungfruöarna'; $lang['JAM']='Jamaica'; @@ -113,7 +105,6 @@ $lang['KOR']='Sydkorea'; $lang['KSA']='Saudiarabien'; $lang['KUW']='Kuwait'; -$lang['LAO']='Laos'; $lang['LAT']='Lettland'; $lang['LBA']='Libyen'; $lang['LBR']='Liberia'; @@ -127,7 +118,6 @@ $lang['MAR']='Marocko'; $lang['MAS']='Malaysia'; $lang['MAW']='Malavi'; -$lang['MDA']='Moldavien'; $lang['MDV']='Maldiverna'; $lang['Medal-1']='Guld medaljen'; $lang['Medal-2']='Silver medaljen'; @@ -136,7 +126,6 @@ $lang['MEX']='Mexiko'; $lang['MGL']='Mongoliet'; $lang['MHL']='Marshallöarna'; -$lang['MKD']='Makedonien'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Montenegro'; @@ -165,7 +154,6 @@ $lang['PNG']='Papua Nya Guinea'; $lang['POL']='Polen'; $lang['POR']='Portugal'; -$lang['PRK']='Nordkorea'; $lang['PUR']='Puerto Rico'; $lang['QAT']='Qatar'; $lang['ROU']='Rumänien'; @@ -191,13 +179,11 @@ $lang['SVK']='Slovakien'; $lang['SWE']='Sverige'; $lang['SWZ']='Swaziland'; -$lang['SYR']='Syrien'; $lang['TAN']='Tanzania'; $lang['TGA']='Tonga'; $lang['THA']='Thailand'; $lang['TJK']='Tajikistan'; $lang['TKM']='Turkmenistan'; -$lang['TLS']='Östtimor'; $lang['TOG']='Togo'; $lang['TPE']='Chinese Taipei'; $lang['TRI']='Trinidad och Tobago'; diff --git a/src/Common/Languages/sv/ISK-App.php b/src/Common/Languages/sv/ISK-App.php index 586124ec..50c02edb 100644 --- a/src/Common/Languages/sv/ISK-App.php +++ b/src/Common/Languages/sv/ISK-App.php @@ -126,7 +126,7 @@ $lang['SettingsElimFirstTarget']='Första mål'; $lang['SettingsEventSelection']='Tävlingskonfiguration'; $lang['SettingsFunctionsCategory']='Övriga funktioner'; -$lang['SettingsFunctionsResetSettings']='Återställ alla inställningar'; +$lang['SettingsFunctionsResetSettings']='Nollställ alla inställningar'; $lang['SettingsGenerateQr']='Skapa'; $lang['SettingsGpsCategory']='GPS-position'; $lang['SettingsGpsFrequency']='Frekvens'; @@ -162,7 +162,7 @@ $lang['SettingsQrCodesDevice']='Enhet'; $lang['SettingsQrCodesPayload']='QR-data'; $lang['SettingsQrCodesScorecard']='Skjutkort'; -$lang['SettingsReset']='Återställ'; +$lang['SettingsReset']='Nollställ'; $lang['SettingsSaveConfig']='Spara'; $lang['SettingsScanSendQr']='Skanna'; $lang['SettingsScanSendQrError']='Kunde inte hantera QR-koden'; @@ -189,7 +189,7 @@ $lang['ShootoffClosestNew']='Ny shoot-off'; $lang['ShootoffClosestTitle']='Närmast till center krävs'; $lang['ShootoffNewConfirmation']='Shoot-off bekräftelse'; -$lang['ShootoffNewIsNeeded']='Krävs en till shoot-off för att avgöra vinnaren?'; +$lang['ShootoffNewIsNeeded']='Krävs det en till shoot-off för att avgöra vinnaren?'; $lang['SignatureClear']='Ta bort'; $lang['SignatureIncorrectCodeMessage']='QR-koden stämmer inte för denna skytt. Är du säker på att du har scannat koden för {{n}}? V.g. scanna rätt QR-kod.'; $lang['SignatureIncorrectCodeTitle']='Felaktig kod'; diff --git a/src/Common/Languages/sv/Install.php b/src/Common/Languages/sv/Install.php index d888a84d..3edb079a 100644 --- a/src/Common/Languages/sv/Install.php +++ b/src/Common/Languages/sv/Install.php @@ -9,8 +9,12 @@ $lang['Credits-Coordination']='IT Project Coordination'; $lang['Credits-CoreGroup']='IANSEO Core Group'; $lang['Credits-Credits']='Credits'; +$lang['Credits-Documentation']='Dokumentation & Support'; +$lang['Credits-FitarcoCredits']='Vad är Ianseo? Ianseo är ett system för resultathantering på en bågskyttetävling.
    Ianseo är ett Open Source projekt möjliggjort med stöd av det Italienska bågskytteförbundet, som beslutat att dela med sig systemet gratis till att börja med i Europa.
    Systemet har sedan spridits och används över hela världen, och används på alla nivåer allt ifrån enkla klubbtävlingar till Världscuppstävlingar och Olympiska spel.
    +Systemet har utvecklats ifrån att endast hantera skyttarnas poäng till att sköta allt från avgiftsadministration och materialkontroll till publicering av TV-grafik i direktsändningar. Utöver detta finner du säkert fler funktioner, mer eller mindre användbara för just din tävling.'; $lang['Credits-HHT']='HHT Integration'; $lang['Credits-IanseoTeam']='Ianseo & Ianseo Team'; +$lang['Credits-IanseoWorld']='I.A.N.S.E.O, en grupp av experter, har erfarenheter som sträcker sig enda tillbaka till 1970-talet.Sedan 2006 arbetar gruppen som ett team som involverats i allt högre grad inom bågskyttet. Till att börja med tävlingar inom Italien till att idag ansvara för systemet i World Archerys regi under allt från Olympiska spel till Världscupstävlingar.'; $lang['Credits-License']='IANSEO is released under GNU GENERAL PUBLIC LICENSE version 3 (GPLV3)'; $lang['Credits-Translators']='IANSEO Translation Team'; $lang['Database name']='Databasnamn'; @@ -40,7 +44,7 @@ $lang['ModuleSetNo']='The Norwegian Ruleset has been made thanks to a contribution of the Norwegian Archery Federation (Norges Bueskytterforbund).'; $lang['ModuleSetSE']='The Swedish Ruleset has been made thanks to a contribution of the Swedish Archery Federation (Svenska Bågskytteförbundet).'; $lang['Mysql-description']='Data can be written and read in two separate servers,
    provided the read server is a synchronous replica (slave) of the first.
    If in doubt leave the right column blank!'; -$lang['Mysql-root-description']='If user and database are to be created from scratch,
    you can provide the password of the ROOT user of the servers.
    WARNING!!! PASSWORDS WILL BE TRANSMITTED IN CLEAR TEXT
    OVER THE INTERNET SO IT MIGHT BE WISER
    TO CREATE THE USERS WITH OTHER TOOLS!!!'; +$lang['Mysql-root-description']='If user and database are to be created from scratch,
    you can provide the password of the ROOT user of the servers.
    WARNING!!! PASSWORDS WILL BE TRANSMITTED IN CLEAR TEXT
    OVER THE INTERNET SO IT MIGHT BE WISER
    TO CREATE THE USERS WITH OTHER TOOLS!!!'; $lang['NoData']='No data provided...'; $lang['NoDowngrade']='It is not possible to downgrade your installation. If you do want so, please install a fresh version of Ianseo ON A DIFFERENT DATABASE.'; $lang['NorgesRunden']='Norges Runden'; @@ -53,7 +57,6 @@ $lang['Parameter']='Parameter'; $lang['Password']='Lösenord'; $lang['PHP settings']='PHP-inställningar'; -$lang['PHP too old']='Your PHP installation is too old. The minimum version number for IANSEO is 5.0.'; $lang['PHP version']='PHP-version'; $lang['php.ini file']='php.ini file'; $lang['Prepare']='Förbereder för uppdatering.'; diff --git a/src/Common/Languages/sv/ODF.php b/src/Common/Languages/sv/ODF.php index b4845b57..ebeb53be 100644 --- a/src/Common/Languages/sv/ODF.php +++ b/src/Common/Languages/sv/ODF.php @@ -2,4 +2,6 @@ $lang['DocumentVersion']='Version'; $lang['IntEVENT']='Namn'; $lang['IntSCHED']='Schema'; +$lang['IrmHelp']='IRM: När du ställer in IRM status kommer ianseo att ställa in rankingen så att skytten hamnar längst ner på resultatlistorna. DNF (no rank) --> 29.999; DNS ––> 30.000; DSQ ––> 31.000; DQB ––> 32.000. Om du återställer en inställd IRM status måste du uppdatera rankingen och kontrollera att ALLT blivit rätt i resultatlistorna.'; +$lang['WinnerMatchName']='Vinnare av match $a'; ?> \ No newline at end of file diff --git a/src/Common/Languages/sv/RunArchery.php b/src/Common/Languages/sv/RunArchery.php index 9d46378b..c2513285 100644 --- a/src/Common/Languages/sv/RunArchery.php +++ b/src/Common/Languages/sv/RunArchery.php @@ -2,6 +2,7 @@ $lang['AdjustedTime']='Korrigering'; $lang['ArrowShort']='Pil'; $lang['ArrowsShot']='Skjutna pilar'; +$lang['Bib']='Licensnr.'; $lang['CompetitionRounds']='Ronder'; $lang['CreateTeams']='Återskapa Lag'; $lang['PhaseName-2']='Semifinaler'; diff --git a/src/Common/Languages/sv/Tournament.php b/src/Common/Languages/sv/Tournament.php index 77749975..9b4cd34c 100644 --- a/src/Common/Languages/sv/Tournament.php +++ b/src/Common/Languages/sv/Tournament.php @@ -25,7 +25,6 @@ $lang['AclISKServer']='Hantera enheter'; $lang['AclModules']='Moduler'; $lang['ACLNoAccess']='Ingen åtkomst'; -$lang['AclNotes']='Observera att:
    • Inställningarna är tävlingsspecifika, de påverkar inte andra tävlingar på servern.
    • När restriktioner är aktiverade kommer icke listade klienter(datorer etc) inte att ha tillgång till tävlingen. Detta gäller inte appen
    • Klienter som försöker ansluta till tävlingen dyker upp i listan ovan, och kan ges behörighet.
    • localhost (127.0.0.1 eller ::1) kan inte spärras.
    • Tänk på att inte aktivera restriktioner om du inte har tillgång till servern utan att först ha listat din IP-adress Börja med att aktivera registrering av IP-adresser,
      ppdatera sidan så att din IP-adress läggs till. Klicka på den gröna bocken till vänster om din IP-adress
    • Om du råkar låsa dig ute från tävlingen, så kan restriktionerna avaktiveras genom att gå in på servern skriva: {$a}
    • Du kan manuellt ställa in ett spann av IP-adresser genom att använda * exempelvis (192.168.0.* eller 172.16.*)
      Anslutna datorer i en grupp får begränsade behörigheter som kan ändras här.
    '; $lang['AclOdf']='Hantera ODF'; $lang['AclParticipants']='Deltagare'; $lang['AclQualification']='Kval. omg.'; @@ -105,7 +104,7 @@ $lang['Badge4PerPage']='4 badge per sida'; $lang['BadgeConfirmPrinted']='Konfirmera utskrift'; $lang['BadgeConfirmPrintedDescr']='Tryck endast om badge är korrekt utskrivna'; -$lang['BadgeIncludePhoto']='Infoga foto på badgen?'; +$lang['BadgeIncludePhoto']='Infoga foto på badgen'; $lang['BadgeNames']='Namn (Ej utskrivna först)'; $lang['BadgeNoData']='Inget att skriva ut'; $lang['BadgeOnlyNotPrinted']='Endast ej tidigare utskriven badge?'; @@ -170,7 +169,7 @@ $lang['CatOC']='Tävlingskommitté'; $lang['ChairmanJudge']='Huvuddomare'; $lang['ChairmanJudgeDeputy']='Vice huvuddomare'; -$lang['ChairmanJury']='Chef tävlingsjury'; +$lang['ChairmanJury']='Ordförande tävlingsjury'; $lang['ChangeLookUpTable']='Välj'; $lang['ChangeNationsNames']='Ändra nations-/klubbnamn'; $lang['Channel']='Kanal'; @@ -205,7 +204,7 @@ $lang['Coach']='Coach'; $lang['CoalesceScorecards']='Slå ihop scorekort'; $lang['CoalesceScorecardsTip']='Vid en eller två skyttar per tavla paras skyttarna ihop 2 och 2 per scorekort'; -$lang['Code']='Idrotts-ID'; +$lang['Code']='Licensnr.'; $lang['CoinToss']='Singla slant'; $lang['CoinTossShort']='Slantsingling'; $lang['Collation']='Collation'; @@ -251,17 +250,17 @@ $lang['DeleteTourConfirm']='Fyll i följande kod och klicka på "Radera tävling" för att radera tävlingen:'; $lang['DeleteTournament']='Radera tävling'; $lang['Deleting']='Raderar...'; -$lang['DescCaption']='Varje TAB separerad rad som börjar med ##CAPTION## följt av IdrottsID och Ackrediteringsrubrik, kommer att visa Ackrediteringsrubriken istället för klass på ackrediteringsbadge, startnummerlapp etc.'; -$lang['DescDOB']='Varje TAB separerad rad som börjar med ##DOB## följt av IdrottID och födelsedatum (ex. 01-16-1994) kommer att sätta/uppdatera skyttens födelsedata.'; -$lang['DescEmail']='Varje TAB separerad rad som börjar med ##EMAIL## följt av IdrottsID och en en epost adress, uppdaterar skyttens info med den epostadressen'; -$lang['DescID-OC']='Varje TAB separerad rad som börjar med ##ID-OC## följt av IdrottsID och Lokalt ID kommer att ställa in detta för skytten. Kan användas som exempelvis startnummer, anmälningsnummer etc.'; +$lang['DescCaption']='Varje TAB separerad rad som börjar med ##CAPTION## följt av Licensnr. och Ackrediteringsrubrik, kommer att visa Ackrediteringsrubriken istället för klass på ackrediteringsbadge, startnummerlapp etc.'; +$lang['DescDOB']='Varje TAB separerad rad som börjar med ##DOB## följt av Licensnr. och födelsedatum (ex. 01-16-1994) kommer att sätta/uppdatera skyttens födelsedata.'; +$lang['DescEmail']='Varje TAB separerad rad som börjar med ##EMAIL## följt av Licensnr. och en en epost adress, uppdaterar skyttens info med den epostadressen'; +$lang['DescID-OC']='Varje TAB separerad rad som börjar med ##ID-OC## följt av Licensnr. och Lokalt ID kommer att ställa in detta för skytten. Kan användas som exempelvis startnummer, anmälningsnummer etc.'; $lang['DescPhotoName']='Se kod'; $lang['Descr']='Namn/beskrivn.'; $lang['DescSession']='Varje TAB separerad rad som börjar med ##SESSION## följt av omgång(nummer), Omgångens namn och antal tavlor kommer att uppdatera inställningen för den omgången.'; -$lang['DescSubClass']='Varje TAB separerad rad som börjar med ##SUBCLASS## följt av IdrottsID och subklasskod, ställer in subklassen för skytten.'; -$lang['DescTarget']='Varje TAB separerad rad som börjar med ##TARGET## följt av IdrottsID <tab> skjutstil (en bokstav) <tab> klass <tab> tapetval (0=standard, 1=andraval), kommer att ställa in/uppdatera tapetvalet för skytten.'; -$lang['DescTargetNo']='Varje TAB separerad rad som börjar med ##TARGETNO## följt av IdrottsID, Omgång(nummer) och tavelplacering kommer att ställa in tavelplacering för den skytten.'; -$lang['DescWheelchair']='Varje TAB separerad rad som börjar med ##WHEELCHAIR## följt av IdrottsID kommer att ändra inställningen för skytten så att tavelplaceringen gör det möjligt för skytten att sitta kvar då två skjutlag används.'; +$lang['DescSubClass']='Varje TAB separerad rad som börjar med ##SUBCLASS## följt av Licensnr. och subklasskod, ställer in subklassen för skytten.'; +$lang['DescTarget']='Varje TAB separerad rad som börjar med ##TARGET## följt av Licensnr. <tab> skjutstil (en bokstav) <tab> klass <tab> tapetval (0=standard, 1=andraval), kommer att ställa in/uppdatera tapetvalet för skytten.'; +$lang['DescTargetNo']='Varje TAB separerad rad som börjar med ##TARGETNO## följt av Licensnr.<tab>  Omgång(nummer)<tab>  och <tab> tavelplacering kommer att ställa in tavelplacering för den skytten.'; +$lang['DescWheelchair']='Varje TAB separerad rad som börjar med ##WHEELCHAIR## följt av Licensnr. kommer att ändra inställningen för skytten så att tavelplaceringen gör det möjligt för skytten att sitta kvar då två skjutlag används.'; $lang['DestroyTarget']='Destroy Target'; $lang['Details']='Detaljer'; $lang['Distance']='Avstånd'; @@ -353,13 +352,14 @@ $lang['FirstPhaseInOut']='Kvalificerade (inte kvalificerade)'; $lang['FirstPhaseMatchesBye']='# matcher (och bye)'; $lang['FirstTarget']='Första tavlan'; -$lang['Flags']='Nationsflagga/logga'; +$lang['Flags']='Nations-, klubb- flaggor/logos'; $lang['FlightsCategory']='Klass'; $lang['FlightsDescription']='Namn/beskrivning'; $lang['FlightsEnd']='Serie/mål $a'; $lang['FlightsReset']='Återställ'; $lang['FOP-ODS']='Layout tävlingsomr. (ODS)'; $lang['ForceAccreditation']='Tvinga ackreditering'; +$lang['ForceOldPhotos']='Inkludera gamla foton'; $lang['ForcePayment']='Tvinga betalningstatus'; $lang['FourScoresNFAA']='4 skjutkort per sida (NFAA)'; $lang['Freetext']='Text att visa på kanalen/skärmen'; @@ -390,7 +390,7 @@ $lang['ImportedTour']='Tävling importerad'; $lang['IncompatibleVersions']='Kunde inte importera tävlingen pga att den är exporterad från en nyare version av ianseo.
    Uppdatera din version på $a, eller med "Uppdatera ianseo" i menyn Moduler.'; $lang['IndClEvent']='Indivíduellt kval'; -$lang['IndFin']='Individual - Elim. & Final Round'; +$lang['IndFin']='Individuell - Eliminering & Final'; $lang['IndFinEvent']='Individuell final'; $lang['IndoorTourCategory']='Inomhustävling'; $lang['IndQual']='Kval individuellt'; @@ -398,6 +398,7 @@ $lang['InnerTens']='X'; $lang['Invalid Password']='Felaktigt lösenord'; $lang['IOCcode']='IOC Nationskod'; +$lang['IRM-7']='DNF-Skytten bröt (ingen ranking/placering)'; $lang['IrmUpdateIndividual']='Kom ihåg att uppdatera den individuella rankingen manuellt.'; $lang['IsParamWarning']='Inställningar InfoSystem!
    ENDAST avancerade användare!'; $lang['Judge']='Domare'; @@ -407,7 +408,7 @@ $lang['LastTarget']='Sista tavlan'; $lang['LastUpdate']='Senaste uppdatering'; $lang['LegendSO']='Särskjutning & slantsingling'; -$lang['LegendStatus']='Förklaring "Skyttarnas status" - Deltagande i tävlingen'; +$lang['LegendStatus']='"Skyttarnas status" för deltagande i tävlingen.'; $lang['Length']='Minuter'; $lang['ListCountries']='Nationslista'; $lang['ListLoad']='Ladda upp skyttar.'; @@ -422,8 +423,9 @@ $lang['LocalRule']='Regeluppsättning (land)'; $lang['LocalRuleAlert']='ATTENTION!\n\nRemember to select the correct Local Rule, if any, in the next combo box!'; $lang['LocalSubRule']='Underregel'; -$lang['Location']='Område'; +$lang['Location']='Område/plats'; $lang['LocRuleDefaultNo']='Standard'; +$lang['Login']='Logga in'; $lang['LogisticResp']='Logistikansvarig'; $lang['LogoB']='Logo sidfot (Bilddimension för A4 är 19:1, letter 20:1)'; $lang['LogoL']='Logo uppe vänster'; @@ -445,6 +447,7 @@ $lang['ManageByes']='Hantera Bye'; $lang['ManAthStatus']='Hantering av skytts status'; $lang['ManColors']='Färghantering'; +$lang['MandatoryLoginACL']='Kräv inloggning från icke registrerad IP-adress.'; $lang['ManDistances']='Avståndshantering'; $lang['ManDivClass']='Klasshantering'; $lang['ManMatchArr4Phase']='Hantering av aktuell fas antal pilar per set'; @@ -476,7 +479,7 @@ $lang['Missing Credentials']='Fyll i rätt tävlings ID (publiceringskod 4 siffror),
    och lösenord'; $lang['Missing Tournament']='Saknad tävling'; $lang['MissingScorecards']='Saknade skjutkort i Omgång $a, avstånd $a'; -$lang['MixedTeamFinEvent']='Mixed lagfinal'; +$lang['MixedTeamFinEvent']='Mixad lagfinal'; $lang['MoveWinner2NextPhase']='Flytta vinnare till nästa del'; $lang['MoveWinner2PoolA']='Flytta vinnare till vinnare Pool A'; $lang['MoveWinner2PoolB']='Flytta vinnare till vinnare Pool B'; @@ -492,9 +495,10 @@ $lang['MsgSelOneValue']='Snälla, välj ett värde!'; $lang['MsgSyncFile']='

    Läs in licensfil. Senaste versionen av licensfil hämtar du från din tävlingssida på

    https://resultat.bagskytte.se

    '; $lang['MsgSyncNet']='Ladda uppdatering via Internet'; -$lang['MsgSyncronize']='Uppdatera licensfil och skyttarnas status'; +$lang['MsgSyncronize']='Synkronisera licenser, foton och klubblogos.'; $lang['Multimedia']='Multimedia'; $lang['Name']='Namn'; +$lang['Nameplates']='Namnskyltar'; $lang['NationShort']='Klubb/land'; $lang['Natl-Nation']='Land'; $lang['New']='Ny'; @@ -513,7 +517,7 @@ $lang['NoPay']='Gratis'; $lang['NoPictureAvailable']='Inget foto registrerat'; $lang['NoRowSelected']='Inga rader valda'; -$lang['NoSession']='No Session'; +$lang['NoSession']='Ingen omgång'; $lang['NoStaffOnField']='Inga funktionärer'; $lang['NotAllShootoffResolved']='Följande finalstegar sparades inte på grund av att det finns shootoffs kvar att lösa: $a'; $lang['NoTeamUpdate']='Uppdatera INTE Lag'; @@ -527,8 +531,9 @@ $lang['NumberOfEntriesByEvent']='Antal deltagare per tävlingsmoment'; $lang['NumResult']='Antal placerade (0: Alla)'; $lang['NumSession']='Antal omgångar'; -$lang['OnlineId']='Publiceringskod.
    (Tävlingsnr. på ianseo.net)'; +$lang['OnlineId']='Publiceringskod.
    (Tävlingsnummer på ianseo.net)'; $lang['OnlyAccredited']='Endast ackrediterade'; +$lang['OnlyMissing']='Endast saknade'; $lang['OnlyPaid']='Endast de som betalat'; $lang['OnlyToday']='Visa bara dagens matcher'; $lang['OnlyWithoutPhoto']='Visa endast de som saknar foto'; @@ -569,9 +574,9 @@ $lang['PhaseBlock_6']='Tävlingsinformationen'; $lang['PhaseBlock_8']='Ackreditering'; $lang['PhasesDetails']='Inställningar för finaldelarna'; -$lang['PhaseTimeDescription']='När du ställt in datum och tid för en finaldel, kan du snabbt ställa in datum och tid för nästkommande del genom att skriva «+» följt av antal minuter efter den förra delen du vill att denna ska starta. Klicka sedan på "Ställ in på alla matcher i denna del"
    När du ska ställa in schema för nästa klass kan du enkelt välja lämplig inställning ur menyn under "Ställ in på alla matcher i denna del", och klicka på "Ställ in på alla matcher i denna del"'; +$lang['PhaseTimeDescription']='När du ställt in datum och tid för en finaldel, kan du snabbt ställa in datum och tid för nästkommande del genom att skriva «+» följt av antal minuter efter den förra delens starttid du vill att denna ska starta. Klicka sedan på "Ställ in på alla matcher i denna del"
    När du ska ställa in schema för nästa klass kan du enkelt välja lämplig inställning ur menyn under "Ställ in på alla matcher i denna del", och klicka på "Ställ in på alla matcher i denna del"'; $lang['Phone']='Telefonnummer (med landskod)'; -$lang['Photo']='Bild'; +$lang['Photo']='Bild/foto'; $lang['PhotoBadTypeError']='Felaktigt format!'; $lang['PhotoDelete']='Radera foto'; $lang['PhotoDimError']='Max dimension: Width: $a[0] px, Height: $a[1] px!'; @@ -628,6 +633,7 @@ $lang['RequestDisclaimer']='Inskickad ansökan innebär inte att tävlingen automatiskt blir godkänd för publicering.
    Du kommer att få ett bekräftelsemail när tävlingen godkänts.
    Tjänsten levereras "as is", och kan läggas ner utan förvarning.
    Om en publicerad tävling saknar resultat efter att tävlingen avslutats, kan den komma att raderas utan förvarning.

    Om du tänker använda Scorekeeper NG PRO, så köper du PRO-kod genom att klicka på länken i mailet du fått från ianseo.'; $lang['RequestedDescription']='These fields MUST be present in the file. Field separator is a Tab, record separator is a newline.'; $lang['RequestEmail']='Mailadress till resultatansvarig:'; +$lang['ResetBadges']='Återställ utskriftsstatus'; $lang['ResetBeforeSO']='Återställ ranking till ställningen FÖRE Shootoff'; $lang['ResetElimError']='Varning! Fel vid återställningen av elimineringen'; $lang['ResultAbs']='Kvalificering - komplett'; @@ -678,10 +684,13 @@ $lang['SearchResults']='Sök resultat'; $lang['Secondary']='Sekundär'; $lang['SecondPhase']='Del två'; +$lang['SelectedClub-0']='Visa 1a Klubb-/Landsnamn'; +$lang['SelectedClub-1']='Visa 2a Klubb-/Landsnamn'; +$lang['SelectedClub-2']='Visa 3e Klubb-/Landsnamn'; $lang['SelectSession']='Välj omgång'; $lang['Send2Ianseo']='Publicera på www.ianseo.net'; $lang['SendData']='Sänd data'; -$lang['SendLogos']='Publicera bilder/loggor och rubriker för tävlingen.'; +$lang['SendLogos']='Publicera rubriker och bilder för tävlingen.'; $lang['SeparateClasses']='Separera klasser'; $lang['SeparateDivisions']='Separera skjutstilar'; $lang['ServerFile']='Sökväg till Fil på servern'; @@ -700,8 +709,8 @@ $lang['SetTotal']='Set Total'; $lang['Sex']='Kön'; $lang['ShootOffArrows']='Särskjutningspilar'; -$lang['ShortFemale']='D'; -$lang['ShortMale']='H'; +$lang['ShortFemale']='W'; +$lang['ShortMale']='M'; $lang['ShortTable']='Standard tabell'; $lang['ShortUnisex']='U'; $lang['ShotOff']='Shoot Off'; @@ -709,12 +718,17 @@ $lang['ShowAgeClass']='Visa åldersklass'; $lang['ShowCaption']='Visa Ackrediteringsrubrik'; $lang['ShowChildren']='Visa underliggande stegar'; +$lang['ShowCountry2']='Visa 2a Klubb/Land'; +$lang['ShowCountry3']='Visa 3e Klubb/Land'; +$lang['ShowDisable']='Visa Rullstol'; $lang['ShowIanseoMenu']='Visa i@nseomenyer'; $lang['ShowLocalCode']='Visa lokalt ID'; $lang['ShowMissing']='Visa saknade skjutkort'; $lang['ShowPdfFlags']='Inkludera loggor/flaggor i PDF'; $lang['showRecords']='Visa rekord'; $lang['ShowSetEnds']='Inkludera set-serier'; +$lang['ShowSubClass']='Visa Subklass'; +$lang['ShowTourCode']='Visa Tävlingskod'; $lang['Sign/guide-board']='Skylt/infolapp'; $lang['SignedTotal']='Signerad total'; $lang['SingleArrow']='Pil för pil'; @@ -744,13 +758,15 @@ $lang['StartlistTeam']='Deltagarlista sorterad efter klass'; $lang['StatClasses']='Statistik(åldersklasser och skjutstilar)'; $lang['StatCountries']='Statistik(nation/förening)'; -$lang['StatEvents']='Statistik (Skyttar fördelat på klasser och omgångar)'; +$lang['StatEvents']='Statistik (Klasser och finaler)'; $lang['Status']='Status'; $lang['StdORIS']='Standard ORIS layout'; $lang['StickersBarcode']='Print Barcode'; $lang['StickersBarcodeDescr']='Toggles printing of the athlete\'s bar code'; $lang['StickersBotMargin']='Bottenmarginal'; $lang['StickersBotMarginDescr']='Bottenmarginal mellan sista märket och papprets kant'; +$lang['StickersCodes']='Licensnr.'; +$lang['StickersCodesDescr']='Begränsa utskriften till följande Licensnr.'; $lang['StickersCols']='Kolumner'; $lang['StickersColsDescr']='Number of labels in 1 row'; $lang['StickersInterCols']='Spacing between columns'; @@ -795,7 +811,7 @@ $lang['TargetAssExclude']='Exkludera redan tavelplacerade klasser'; $lang['TargetAssigned']='Tavla $a tilldelad'; $lang['TargetAssignment']='Skriv ut tavelplaceringar'; -$lang['TargetAssignmentDescription']='Ange tavelnummer där matchen skjuts.
    Om du sätter ett "+" tecken efter siffran, kommer ianseo att fylla i tavelnummer för resterande matcher i den delen.
    Om du sätter ett "-" tecken efter siffran, kommer ianseo att fylla i tavelnummer för resterande icke bye matcher i den delen.
    Om du sätter ett "*" tecken efter siffran, kommer ianseo att fylla i tavelnummer för resterande matcher i den delen, och lämna en tavlas mellanrum efter två intilliggande tavlor.'; +$lang['TargetAssignmentDescription']='Ange tavelnummer där matchen skjuts.
    Om du sätter ett "+" tecken efter siffran och trycker på tab, kommer ianseo att fylla i tavelnummer för resterande matcher i den delen.
    Om du sätter ett "-" tecken efter siffran och trycker på tab, kommer ianseo att fylla i tavelnummer för resterande icke bye matcher i den delen.
    Om du sätter ett "*" tecken efter siffran och trycker på tab, kommer ianseo att fylla i tavelnummer för resterande matcher i den delen, och lämna en tavlas mellanrum efter två intilliggande tavlor.'; $lang['TargetDoAssignment']='Tavelplacering'; $lang['TargetFrom']='Från tavla'; $lang['TargetJudgeSignature']='Domares signatur'; @@ -811,7 +827,7 @@ $lang['TeamCreationMode_2']='Alltid 2a laget'; $lang['TeamCreationMode_3']='Alltid 3e laget'; $lang['TeamFin']='Lag - eliminering och final'; -$lang['TeamFinEvent']='Lagfinal'; +$lang['TeamFinEvent']='Lagfinaler'; $lang['TeamManagerSignature']='Signatur Lagansvarig'; $lang['TeamPlace']='Lag/klubb-skylt (engelsk version)'; $lang['TeamPlaceLocal']='Lag/klubb-skylt (svensk/engelsk)'; @@ -832,7 +848,7 @@ $lang['TooManyElimSO']='Det är för många särskjutningspilar!'; $lang['Total1']='Total (1/2)'; $lang['Total2']='Total (2/2)'; -$lang['TotalMissingScorecars']='$a saknade skjutkort'; +$lang['TotalMissingScorecars']='$a saknade Tavlor/patruller'; $lang['TotalPoints']='Totala setpoäng'; $lang['TotalProg']='Summa'; $lang['TotalShort']='Tot.'; @@ -854,7 +870,7 @@ $lang['TourRecordSetup']='Inställningar för rekord'; $lang['TourRuleReset']='Återställ till grundinställningar'; $lang['TourRuleResetDescr']='Det här återställer tävlingen till grundinställningarna för den valda ronden: Skjutstilar, klasser, avstånd, taveltyper mm...
    Klicka i denna efter att du ändrat i menyn ovan. Om du VERKLIGEN vill ändra inställningarna, trycker du på "Spara"'; -$lang['TourShortName']='Rubrik som visas i
    appens övre fält'; +$lang['TourShortName']='Rubrik som visas i
    appens rubrikfält'; $lang['TourTimeZone']='Tidszon'; $lang['TourType']='Tävling'; $lang['TourTypeName']='Tournament Type Name'; @@ -1043,7 +1059,9 @@ $lang['UserDetails']='Användardetaljer (beskrivn.)'; $lang['UserEnabled']='Aktiverad'; $lang['UserName']='Användarnamn'; -$lang['UserPassword']='Lösenord'; +$lang['UserPassword']='Nytt lösenord.'; +$lang['UserPasswordOld']='Nuvarande lösenord.'; +$lang['UserPasswordRetype']='Upprepa nytt lösenord.'; $lang['UseSubClasses']='Ställ in för vald subklass'; $lang['ValidClass']='Tillåtna klasser'; $lang['ValidDivisions']='Tillåtna skjutstilar (lämna tomt för alla)'; @@ -1068,4 +1086,5 @@ $lang['XNineLabel']='XNine Label'; $lang['YearEnd']='Till år'; $lang['YearStart']='Från år'; +$lang['Z-Session']='Övriga texter i schemat'; ?> \ No newline at end of file diff --git a/src/Common/Languages/tlh/IOC_Codes.php b/src/Common/Languages/tlh/IOC_Codes.php index c38273d8..e8f3e1b4 100644 --- a/src/Common/Languages/tlh/IOC_Codes.php +++ b/src/Common/Languages/tlh/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']=' '; $lang['AUS']=''; $lang['AUT']=''; -$lang['Award-Anthem']=',     '; -$lang['Award-Anthem-TPE']=',    '; $lang['Award-Applause']=',    ()'; $lang['Award-Intro']=',   {$a}'; $lang['Award-MedalGiver']='   $a'; @@ -42,16 +40,12 @@ $lang['BUL']=''; $lang['BUR']=' '; $lang['CAF']='  '; -$lang['CAM']=''; $lang['CAN']=''; $lang['CAY']=' '; $lang['CGO']='  '; $lang['CHA']=''; $lang['CHI']=''; -$lang['CHN']=''; -$lang['CIV']=' '; $lang['CMR']=''; -$lang['COD']='   '; $lang['COK']=' '; $lang['COL']=''; $lang['COM']=''; @@ -60,7 +54,6 @@ $lang['CRO']=''; $lang['CUB']=''; $lang['CYP']=''; -$lang['CZE']=''; $lang['DEN']=''; $lang['DJI']=''; $lang['DMA']=''; @@ -91,17 +84,14 @@ $lang['GUM']=''; $lang['GUY']=''; $lang['HAI']=''; -$lang['HKG']=' '; $lang['HON']=''; $lang['HUN']=''; $lang['INA']=''; $lang['IND']=''; -$lang['IRI']=''; $lang['IRL']=''; $lang['IRQ']=''; $lang['ISL']=''; $lang['ISR']=''; -$lang['ISV']=' '; $lang['ITA']=''; $lang['IVB']=' '; $lang['JAM']=''; @@ -114,7 +104,6 @@ $lang['KOR']='  '; $lang['KSA']=' '; $lang['KUW']=''; -$lang['LAO']=''; $lang['LAT']=''; $lang['LBA']=''; $lang['LBR']=''; @@ -128,7 +117,6 @@ $lang['MAR']=''; $lang['MAS']=''; $lang['MAW']=''; -$lang['MDA']=''; $lang['MDV']=''; $lang['Medal-1']=' '; $lang['Medal-2']=' '; @@ -165,7 +153,6 @@ $lang['PNG']='  '; $lang['POL']=''; $lang['POR']=''; -$lang['PRK']=' '; $lang['PUR']=' '; $lang['QAT']=''; $lang['ROU']=''; @@ -190,13 +177,11 @@ $lang['SUR']=''; $lang['SVK']=''; $lang['SWE']=''; -$lang['SYR']=''; $lang['TAN']=''; $lang['TGA']=''; $lang['THA']=''; $lang['TJK']=''; $lang['TKM']=''; -$lang['TLS']=' '; $lang['TOG']=''; $lang['TPE']=' '; $lang['TRI']=''; diff --git a/src/Common/Languages/tlh/Install.php b/src/Common/Languages/tlh/Install.php index f88ddde4..bde87820 100644 --- a/src/Common/Languages/tlh/Install.php +++ b/src/Common/Languages/tlh/Install.php @@ -73,7 +73,6 @@ $lang['Parameter']=''; $lang['Password']=''; $lang['PHP settings']=' '; -$lang['PHP too old']='  .    : ..'; $lang['PHP version']=''; $lang['php.ini file']='. '; $lang['Prepare']='   '; diff --git a/src/Common/Languages/tlh/Tournament.php b/src/Common/Languages/tlh/Tournament.php index f5276a5b..681994eb 100644 --- a/src/Common/Languages/tlh/Tournament.php +++ b/src/Common/Languages/tlh/Tournament.php @@ -103,7 +103,6 @@ $lang['BadgeIncludePhoto']='  ?'; $lang['BadgeNames']=' (  )'; $lang['BadgeNoData']='   '; -$lang['BadgeOnlyNotPrinted']='    ?'; $lang['BadgeOnlyPrintAccredited']='    ?'; $lang['BadgeOnlyPrintPhoto']='    ?'; $lang['BadgeOptions']=''; @@ -164,8 +163,6 @@ $lang['CatJudge']=''; $lang['CatJury']=''; $lang['CatOC']=''; -$lang['ChairmanJudge']=''; -$lang['ChairmanJury']=' '; $lang['ChangeLookUpTable']=' '; $lang['ChangeNationsNames']='  '; $lang['Channel']=''; @@ -260,7 +257,6 @@ $lang['EliminationType']=' '; $lang['ElimSO']='   '; $lang['Email']=''; -$lang['EnableAccess']='/ '; $lang['Ends']=''; $lang['EndUpdate']='  '; $lang['Entries']=''; @@ -899,7 +895,6 @@ $lang['TeamCreationMode_2']=' '; $lang['TeamCreationMode_3']=' '; $lang['TeamFin']=' -  '; -$lang['TeamFinEvent']=' '; $lang['TeamLoaded']='     {$a}'; $lang['TeamPlace']=' '; $lang['TeamPlaceLocal']='  ()'; diff --git a/src/Common/Languages/tr/Errors.php b/src/Common/Languages/tr/Errors.php index 2e6e5938..91892a72 100644 --- a/src/Common/Languages/tr/Errors.php +++ b/src/Common/Languages/tr/Errors.php @@ -4,9 +4,15 @@ $lang['Anomalies']='Sorunlar'; $lang['BarCodeSession']='Ayarlarda bir hata var: Bir oturum ayarlamayı deneyin!'; $lang['BarCodeSettings']='Ayarlardsa bir hata var'; +$lang['CategoresNotDefined']='Eksik Kategori tanımları'; $lang['ClassFromToError']='Başlangıç ve Bitiş aralıkları sayısal değer olmalı'; $lang['ClubNotFound']='Kulüp kodu mevcut kulüpler arasında bulunamadı. Lütfen önce veritabanını güncelleyin!'; +$lang['ConflictingCategories']='Filtre tanımı, bu kategoriler için önceki filtrelerle çakışıyor: $a!'; +$lang['DecodeError']='Kod Çözme Hatası'; +$lang['DiameterMandatory']='Hedef yüzünün çapı zorunludur'; $lang['DirectoryNotWriteable']='$a dizini web sunucusu tarafından yazılamaz durumda. Lütfen dizin izinlerini herkes tarafından yazılabilir olacak şekilde değiştirin.'; +$lang['DistanceOutRange']='Mesafe menzil dışında'; +$lang['DivClasNumberNotEmpty']='En az bir kategori ve bir sınıf (ve takımlarda kaç okçu olacağını) seçmelisiniz.'; $lang['EmptyBody']='Gövde Boş: bu alan zorunludur!'; $lang['EmptyFrom']='E-posta Boş: bu alan zorunludur!'; $lang['EmptySubject']='Konu Boş: bu alan zorunludur!'; @@ -22,4 +28,10 @@ $lang['ImageSaveError']='Görsel kaydedilmedi'; $lang['MissingData']='Veri Eksik'; $lang['NameNotEmpty']='İsim boş bırakılamaz'; +$lang['TargetRangeMismatch']='Hedef Aralıkları, bir tire (eksi işareti) ile ayrılmış 2 hedef sayısından (harf yok) oluşmalıdır; ilki ikincisinden düşük olmalıdır, örneğin 23-44'; +$lang['TextSmtpDelete']='Lütfen Ianseo\'nun bu kurulumunda SMTP ayarlarını kaldırmak istediğinizi onaylayın'; +$lang['TooManyArrows']='Toplamda çok fazla ok var: maksimum $a'; +$lang['TooManyDistancesMatch']='Birden fazla mesafe ayarı bulunan kategoriler'; +$lang['WrongData']='Yanlış veri girildi'; +$lang['WrongPort']='Bu port desteklenmiyor!'; ?> \ No newline at end of file diff --git a/src/Common/Languages/tr/IOC_Codes.php b/src/Common/Languages/tr/IOC_Codes.php index 2b1d4889..a1f7d085 100644 --- a/src/Common/Languages/tr/IOC_Codes.php +++ b/src/Common/Languages/tr/IOC_Codes.php @@ -12,8 +12,6 @@ $lang['ASA']='Amerikan Samoası'; $lang['AUS']='Avustralya'; $lang['AUT']='Avusturya'; -$lang['Award-Anthem']='Bayanlar baylar, lütfen <ülke adı> milli marşı için ayağa kalkın'; -$lang['Award-Anthem-TPE']='Bayanlar baylar, lütfen <ülke adı> marşı için ayağa kalkın'; $lang['Award-Applause']='Bayanlar baylar, sporcularımızı tebrik ediyor ve onları alkışlıyoruz'; $lang['Award-Intro']='Bayanlar baylar, {$a} ödül töreni'; $lang['Award-MedalGiver']='Madalyaları $a takdim edecek'; @@ -42,16 +40,12 @@ $lang['BUL']='Bulgaristan'; $lang['BUR']='Burkina Faso'; $lang['CAF']='Orta Afrika Cumhuriyeti'; -$lang['CAM']='Kamboçya'; $lang['CAN']='Kanada'; $lang['CAY']='Cayman Adaları'; $lang['CGO']='Kongo Cumhuriyeti'; $lang['CHA']='Çad'; $lang['CHI']='Şili'; -$lang['CHN']='Çin'; -$lang['CIV']='Fildişi Sahili'; $lang['CMR']='Kamerun'; -$lang['COD']='Demokratik Kongo Cumhuriyeti'; $lang['COK']='Cook Adaları'; $lang['COL']='Kolombiya'; $lang['COM']='Komorlar'; @@ -60,7 +54,6 @@ $lang['CRO']='Hırvatistan'; $lang['CUB']='Küba'; $lang['CYP']='Kıbrıs'; -$lang['CZE']='Çek Cumhuriyeti'; $lang['DEN']='Danimarka'; $lang['DJI']='Cibuti'; $lang['DMA']='Dominik'; @@ -91,17 +84,14 @@ $lang['GUM']='Guam'; $lang['GUY']='Guyana'; $lang['HAI']='Haiti'; -$lang['HKG']='Hong Kong'; $lang['HON']='Honduras'; $lang['HUN']='Macaristan'; $lang['INA']='Endonezya'; $lang['IND']='Hindistan Cumhuriyeti'; -$lang['IRI']='İran'; $lang['IRL']='İrlanda'; $lang['IRQ']='Irak'; $lang['ISL']='İzlanda'; $lang['ISR']='İsrail'; -$lang['ISV']='ABD Virgin Adaları'; $lang['ITA']='İtalya'; $lang['IVB']='Britanya Virgin Adaları'; $lang['JAM']='Jamaika'; @@ -114,7 +104,6 @@ $lang['KOR']='Kore Cumhuriyeti'; $lang['KSA']='Suudi Arabistan'; $lang['KUW']='Kuveyt'; -$lang['LAO']='Laos'; $lang['LAT']='Letonya'; $lang['LBA']='Libya'; $lang['LBR']='Liberya'; @@ -128,7 +117,6 @@ $lang['MAR']='Fas'; $lang['MAS']='Malezya'; $lang['MAW']='Malavi'; -$lang['MDA']='Moldova'; $lang['MDV']='Maldivler'; $lang['Medal-1']='Altın Madalya'; $lang['Medal-2']='Gümüş Madalya'; @@ -137,7 +125,6 @@ $lang['MEX']='Meksika'; $lang['MGL']='Moğolistan'; $lang['MHL']='Marshall Adaları'; -$lang['MKD']='Kuzey Makedonya'; $lang['MLI']='Mali'; $lang['MLT']='Malta'; $lang['MNE']='Karadağ'; @@ -166,7 +153,6 @@ $lang['PNG']='Papua Yeni Gine'; $lang['POL']='Polonya'; $lang['POR']='Portekiz'; -$lang['PRK']='Kuzey Kore'; $lang['PUR']='Porto Riko'; $lang['QAT']='Katar'; $lang['ROU']='Romanya'; @@ -193,13 +179,11 @@ $lang['SVK']='Slovakya'; $lang['SWE']='İsveç'; $lang['SWZ']='Svaziland'; -$lang['SYR']='Suriye'; $lang['TAN']='Tanzanya'; $lang['TGA']='Tonga'; $lang['THA']='Tayland'; $lang['TJK']='Tacikistan'; $lang['TKM']='Türkmenistan'; -$lang['TLS']='Doğu Timor'; $lang['TOG']='Togo'; $lang['TPE']='Çin Taipei'; $lang['TRI']='Trinidad ve Tobago'; diff --git a/src/Common/Languages/tr/ISK-App.php b/src/Common/Languages/tr/ISK-App.php new file mode 100644 index 00000000..dbfc4975 --- /dev/null +++ b/src/Common/Languages/tr/ISK-App.php @@ -0,0 +1,112 @@ + \ No newline at end of file diff --git a/src/Common/Languages/tr/ISK.php b/src/Common/Languages/tr/ISK.php index 178c8ea5..c8ee8a35 100644 --- a/src/Common/Languages/tr/ISK.php +++ b/src/Common/Languages/tr/ISK.php @@ -1,5 +1,7 @@ Toplamı'; $lang['Event']='Yarışma'; $lang['Exit']='Çıkış'; +$lang['FieldControl']='Saha Kontrolü'; $lang['FirstTarget']='1. Hedef'; $lang['Help']='Yardım'; $lang['IpAddr']='IP Adresi'; +$lang['LastEndDist']='Bu turun son serisi tamamlandı. Diğer tura devam etmek için TAMAM\'a (OK) basın, aynı turda kalmak istiyorsanız İPTAL\'e (Cancel) basın.'; +$lang['LastEndSession']='Bu oturum için son seri tamamlandı. Atılacak başka bir seri kalmadı. Skorkartı kontrol edebilir ya da kuruluma dönebilirsiniz.'; +$lang['LockAll']='Tüm Oturumları Kilitle'; +$lang['LRSwipeLabel']='Sol/Sağ Kaydırma Duyarlılığı'; +$lang['ManageLockedSessions']='Kilitli Oturumu Yönet'; $lang['ManualEntry']='Manuel Giriş'; $lang['Match']='Maç'; $lang['MatchNum']='Maç'; +$lang['MatchSummary']='Maç Özeti'; $lang['Menu']='Menü'; +$lang['NetworkConn']='Ağa Bağlanıldı'; +$lang['NetworkId']='Ağ Kimliği'; $lang['NextArcher']='Sonraki Sporcu'; $lang['NextArcherDesc']='Sonraki Sporcu (Sonraki Okçunun Skorunu Gir)'; +$lang['NextDistAlert']='Sonraki tura devam etmek istediğinize emin misiniz?'; +$lang['No']='Hayır'; +$lang['NoArrowScored']='Merkeze yakın olan ok işsretlenmeden önce bir ok değeri girilmeli.'; +$lang['NoAthletes']='Sporcu bulunamadı'; +$lang['NoDist']='Tur bulunamadı.'; +$lang['NoTargetTypes']='Hedef türü bulunamadı.'; $lang['Number']='Numara'; $lang['Ok']='Tamam'; +$lang['OnlyPro']='Bu yaroşmada sadece Scorekeeper Pro uygulamaları kullanılabilir.'; $lang['Points']='Puan'; +$lang['PrevDistAlert']='Bir önceki tura dönmek istediğinize emin misiniz?'; +$lang['ProEnd']='Seriyi Seçin'; $lang['Reset']='Sıfırla'; $lang['Save']='Kaydet'; $lang['Score']='Skor'; diff --git a/src/Common/Languages/tr/Ianseo.php b/src/Common/Languages/tr/Ianseo.php index 8e28ca35..7f1c8a1f 100644 --- a/src/Common/Languages/tr/Ianseo.php +++ b/src/Common/Languages/tr/Ianseo.php @@ -7,4 +7,9 @@ $lang['Cert-Level4']='Master Kurs'; $lang['Cert-Level5']='Ianseo Ekibi'; $lang['CertificateManagement']='Sertifika Yönetimi'; +$lang['GenerateFile']='Dosya Oluştur'; +$lang['ResetItems']='Ögeleri Sıfırla.
    Bu eylem onay gerektirmez ve geri alınamaz!
    Sıralama turlarını sıfırlamak o sıralamaya bağlı olan tüm turları sıfırlayacaktır!'; +$lang['ResetResult']='Talep edilen oturumlar sıfırlandı'; +$lang['ResetSessions']='Sıfırlamayı Onayla'; +$lang['ShuffleResults']='Sonuçları Karıştır'; ?> \ No newline at end of file diff --git a/src/Common/Languages/tr/Tournament.php b/src/Common/Languages/tr/Tournament.php index 7bef988e..bad529f4 100644 --- a/src/Common/Languages/tr/Tournament.php +++ b/src/Common/Languages/tr/Tournament.php @@ -16,6 +16,7 @@ $lang['AccreditationBooth']='Sadece Akreditasyon Boothu'; $lang['AccreditationCards']='Akreditasyon Kartlarının dağıtımı bekleniyor.'; $lang['AclAccreditation']='Akreditasyon'; +$lang['AclAPI']='API'; $lang['AclCompetition']='Yarışma'; $lang['AclEliminations']='Elemeler'; $lang['AclIndividuals']='Bireysel Finaller'; @@ -37,8 +38,10 @@ $lang['ActualFlag']='Kullanılmış Bayrak'; $lang['AddMaxRows']='Tüm uygun satırları ekle'; $lang['AddTournament']='Turnuva Ekle'; +$lang['AdvancedParams']='Gelişmiş Parametreler'; $lang['AfterDistance']='Şu mesafeden SONRAKİ sıralama:'; $lang['AfterXDistance']='$a metreden SONRAKİ sıralama'; +$lang['AgeClass']='Yaş Sınıfı'; $lang['AllDistances']='Tümü'; $lang['AllEvents']='Tüm Karşılaşmalar'; $lang['AllRound']='Tüm Turlar'; @@ -50,6 +53,7 @@ $lang['Announcer']='Sunucu/Konuşmacı'; $lang['ArcherNotFound']='Sporcu bulunamadı!'; $lang['ArcherSignature']='Sporcu/Temsilcisi'; +$lang['Areas']='Erişim Alanları'; $lang['Area_0']='Tüm alanlara girebilir'; $lang['Area_0*']='Tüm Alanlara girebilir, ancak yarışma alanına sadece özel durumlarda girebilir'; $lang['Area_1']='Yarışma Sahası'; @@ -60,11 +64,14 @@ $lang['Area_5']='Televizyon Alanları'; $lang['Area_6']='Vip Alanı'; $lang['Area_7']='$a Alanları'; +$lang['Arr4Set']='Set Başına Ok'; $lang['ArrowPhaseLegend1']='Eleme Turları için Ok/Seri detayları'; $lang['ArrowPhaseLegend2']='Final Turları için Ok/Seri detayları'; $lang['Arrows']='Oklar'; $lang['Arrows4End']='Ok/Seri: $a'; $lang['ArrowsPerEnd']='Ok/Seri'; +$lang['AthButtLegend1']='Hedef Başına Rakip'; +$lang['Award']='Ödül'; $lang['AwardName']='Ödül Adı'; $lang['Awards']='Ödül'; $lang['AwardSecondLanguage']='İkinci Dil'; @@ -72,20 +79,32 @@ $lang['BadgeSessions']='Oturumlar'; $lang['BF_Phase']='Bronz Madalya'; $lang['Birthdays']='Doğum Günü'; +$lang['BlockedPhase']='Aşama kilitli'; +$lang['BlockSet']='Düzenlemeyi Kilitle'; +$lang['BlockSetup']='Yarışma Alanında Ayarları Kilitle'; +$lang['BlockUnset']='Düzenlemeyi Etkinleştir'; +$lang['Block_Manage']='Ağ Erişim Kuralları'; +$lang['Block_TemplateName']='Açıklama'; +$lang['BytesSession']='Oturum'; $lang['BytesTotal']='Toplam'; $lang['Camera']='Kamera'; $lang['CamPreview']='Önizleme'; $lang['CatDos']='Atış Yöneticisi'; $lang['CatJudge']='Hakemler'; +$lang['ChangeNationsNames']='Ulus Adlarını Değiştir'; $lang['Close2Center']='Merkeze yakın'; $lang['Club-Nation']='Kulüp'; $lang['CmdAdd']='Ekle'; $lang['CmdDelete']='Sil'; +$lang['CmdImport']='İçe aktar'; +$lang['CmdSend']='Gönder'; $lang['CoinToss']='Yazı Tura'; $lang['CoinTossShort']='YT'; +$lang['CompetitionOfficials']='Yarışma Görevlileri'; $lang['CompleteSchedule']='Yarışma Programı'; $lang['CompVenue']='Saha'; $lang['CountryClubNames']='Ülke/Kulüp isimleri'; +$lang['CR-short']='CR'; $lang['DailySchedule']='Günlük Program'; $lang['Date']='Tarih'; $lang['DateTimeSignature']='Tarih ve Saat'; @@ -95,6 +114,8 @@ $lang['Descr']='Açıklama'; $lang['Distance']='Mesafe'; $lang['Distances']='Mesafeler'; +$lang['Div-C']='Makaralı Yay'; +$lang['Div-R']='Klasik Yay'; $lang['DNF']='Tamamlamadı'; $lang['DNS']='Başlamadı'; $lang['DOB']='Doğum tarihi'; @@ -126,6 +147,8 @@ $lang['FlightsCategory']='Kategori'; $lang['FlightsDescription']='Açıklama'; $lang['FlightsDistTotal']='Toplam $a'; +$lang['FlightsManagement']='Bayrak Yönetimi'; +$lang['FlightsReset']='Sıfırla'; $lang['FlightsTotals']='Toplamlar'; $lang['From']='Başlangıç'; $lang['F_Phase']='Altın Madalya'; @@ -134,16 +157,20 @@ $lang['I-Session']='Bireysel Maçlar'; $lang['Image']='Resim'; $lang['IndQual']='Bireysel - Sıralama Turu'; +$lang['InitEliminations']='Elemeleri Başlat'; $lang['IRM-10']='DNS-Başlamadı'; $lang['IRM-5']='DNF-Tamamlamadı'; $lang['IRM-7']='DNF-Tamamlamadı (sıralama yok)'; $lang['Judge']='Hakem'; $lang['LegendSO']='Beraberlik Atışı / Yazı Tura Kısaltması'; $lang['LocalRule']='Yarışma Kuralı'; +$lang['LogoB']='Alt Resim'; $lang['LogoL']='Sol Üst Resim'; $lang['LogoManagement']='Resim Yönetimi'; $lang['LogoR']='Sağ Üst Resim'; +$lang['MailTitle']='Ad'; $lang['ManDistances']='Mesafeleri Yönet'; +$lang['ManStaffOnField']='Saha Ekibi Yönetimi'; $lang['Match']='Maç'; $lang['MatchesSchedule']='Maç Programları'; $lang['MatchName-0']='Altın Madalya Maçı'; @@ -158,16 +185,21 @@ $lang['MedalSqClass']='Sınıf & Kategori Sonuçları - Tskım Madalyaları'; $lang['MissingPhoto']='Fotoğraf Eksik'; $lang['MixedTeamFinEvent']='Karışık Takım Finali'; +$lang['MsgLookup5']='Seri'; $lang['Name']='Ad'; $lang['New']='Yeni'; $lang['NoAcc']='Akredite Edilmemiş'; +$lang['NoStaffOnField']='Saha Ekibi Yok'; $lang['NumberOfEntriesByCountry']='Kulüp Bazında Katılım Sayısı'; $lang['NumberOfEntriesByEvent']='Etkinlik Bazında Katılım Sayısı'; $lang['Options']='Seçenekler'; $lang['OR-Record']='Olimpiyat rekoru'; +$lang['OR-short']='OR'; $lang['Order']='Sırala'; $lang['PaperSize']='Kağıt Boyutu'; $lang['PhaseBlock_1']='Sıralama'; +$lang['PhaseBlock_11']='Robin Turu'; +$lang['PhaseBlock_2']='Eleme'; $lang['PhaseBlock_3']='Bireysel final'; $lang['PhaseBlock_4']='Takım finali'; $lang['PhaseBlock_5']='Son Rapor'; @@ -177,6 +209,7 @@ $lang['PrintLanguage']='Çıktı Dili'; $lang['Q-Session']='Sıralama Atışları'; $lang['QF_Phase']='Çeyrek Final'; +$lang['R-Session']='Robin Turu'; $lang['RankFinals']='Final Sıralaması'; $lang['RealCountry']='Kulüp'; $lang['Reference']='Referans'; @@ -209,6 +242,7 @@ $lang['ShotOff']='Beraberlik Atışı'; $lang['ShotOffShort']='BA'; $lang['ShowMissing']='Eksik Skor Kartlarını Göster'; +$lang['StaffOnField']='Yarışma Görevlileri'; $lang['StartlistAlpha']='Katılımcı Listesi Alfabetik Sıralı'; $lang['StartlistCategory']='Katılımcı Listesi Gruplandırılmış Kategoriye Göre'; $lang['StartlistCountry']='Katılımcı Listesi (kulüp,ülke)'; @@ -219,6 +253,8 @@ $lang['StatClasses']='İstatistik (Sınıf ve Kategori)'; $lang['StatCountries']='İstatistik (Kulüp)'; $lang['StatEvents']='İstatistik (Ödül ve Etkinlik)'; +$lang['StatRecordsBroken']='Kırılmış Rekorlar'; +$lang['StatRecordsStanding']='Mevcut Rekorlar'; $lang['Status']='Durum'; $lang['StickersTopMargin']='Üst Kenar Boşluğu'; $lang['StickersUnitInches']='inç'; @@ -264,10 +300,24 @@ $lang['Type_FITA+50']='FITA + 50m Atışı'; $lang['Type_NorH']='Avcı'; $lang['Unisex']='Unisex'; +$lang['UserEnabled']='Etkinleştirilmiş'; +$lang['UserName']='Kullanıcı adı'; +$lang['VersionFile']='Dosya'; +$lang['VersionMajVersion']='Ana Versiyon'; +$lang['VersionMinVersion']='Alt Versiyon'; $lang['VersionPrintDateTime']='Çıktı Tarih ve Saati'; +$lang['VertScoreAllDist']='Dikey Skor Kartı Tüm Mesafeler (Lancaster)'; +$lang['ViewTeamComponents']='Takım rakiplerini göster'; +$lang['WaCategory']='WA Kategorisi'; +$lang['WaIdShort']='Sporcu ID'; $lang['WarmUp']='Deneme Atışı'; +$lang['WarmUpMins']='Deneme Atışı (dak.)'; $lang['WarmupTargets']='Deneme Atış Hedefleri'; $lang['Warning']='Dikkat!'; +$lang['WheelChair']='Tekerlekli Sandalye'; $lang['WR-Record']='Dünya rekoru'; $lang['WR-short']='WR'; +$lang['YearEnd']='Bitiş Yılı'; +$lang['YearStart']='Başlangıç Yılı'; +$lang['YourFollowingMatches']='Maçınızın sonucuna bağlı olarak olası eşleşmelerin listesi'; ?> \ No newline at end of file diff --git a/src/Common/Languages/uk/Boinx.php b/src/Common/Languages/uk/Boinx.php index aee0f0b0..ff4dc1f5 100644 --- a/src/Common/Languages/uk/Boinx.php +++ b/src/Common/Languages/uk/Boinx.php @@ -3,11 +3,15 @@ $lang['BoinxSchedule']='Планувальник шарів Boinx'; $lang['CssArrowCommon']='Стріли'; $lang['CssFlexArrowsDiv']='По одній Стрілі Див.'; +$lang['CssPointsCommon']='Очки'; $lang['CssSetsCommon']='Встановіть Очки'; +$lang['CssSoPointsCommon']='Очки'; $lang['CssVegasFreeTextText']='Текст'; $lang['CssVegasFreeTextTitle']='Заголовок'; $lang['CssVegasInOutName']='Назва'; +$lang['CssVegasInOutPoints']='Очки'; $lang['CssVegasSOName']='Назва'; +$lang['CssVegasSOPoints']='Очки'; $lang['CssVegasSOTarget']='Щит'; $lang['ScheduleAwards']='Церемонія нагородження'; $lang['ScheduleFeed']='RSS-канали'; diff --git a/src/Common/Languages/uk/Errors.php b/src/Common/Languages/uk/Errors.php index c1a5264f..2ed2799a 100644 --- a/src/Common/Languages/uk/Errors.php +++ b/src/Common/Languages/uk/Errors.php @@ -1,5 +1,6 @@ \ No newline at end of file diff --git a/src/Common/Languages/uk/Install.php b/src/Common/Languages/uk/Install.php index da42fcc7..449b8ab5 100644 --- a/src/Common/Languages/uk/Install.php +++ b/src/Common/Languages/uk/Install.php @@ -7,6 +7,7 @@ $lang['AcceptGPL-Logo']='Більше інформації'; $lang['AcceptGPL-ReadTXT']='Прочитати ліцензію'; $lang['AcceptGPL-Start']='Щоб установити, оновити та використовувати Ianseo, поставте прапорець у наступному полі:'; +$lang['cmdForceUpdate']='Примусове оновлення'; $lang['Credits-BeiterCredits']='Модуль штрих-коду випущено безкоштовно для всієї спільноти I@NSEO завдяки підтримці компанії Beiter Archery Products і доброті пана Андреаса Лоренца'; $lang['Credits-Coordination']='Координація ІТ-проекту'; $lang['Credits-DebugManager']='Відділ налагодження'; @@ -44,13 +45,13 @@ $lang['SetOutdoor']='На відкритому повітрі'; $lang['Setup-Select']='Виберіть правильне локальне правило'; $lang['Status']='Статус'; +$lang['UpdateInProgress']='Оновлення вже триває, зачекайте...'; $lang['UpdatePrepared']='Вашу установку буде автоматично оновлено. Перед початком не забудьте створити резервну копію всіх змагань. Процес оновлення може зайняти тривалий час, залежно від підключення та елементів, які потрібно оновити.
    Пам\'ятайте, що будь-який неоригінальний файл буде видалено, окрім вмісту папки «Modules/Custom».'; $lang['Updating']='Оновлення локальної інсталяції Ianseo'; $lang['UpdatingLanguages']='Оновлення встановлених мов'; $lang['UpgradeFinished']='Процес оновлення завершено.'; $lang['WhatIanseoDoes01']='Відповідність правилам World Archery: Ianseo завжди в курсі правил World Archery. Розробники також доступні для налаштувань відповідно до національних правил і специфічних правил змагань!'; $lang['WhatIanseoDoes02']='Допомога та підтримка: якщо вам потрібна допомога, надішліть електронний лист на $a: ви отримаєте відповідь безпосередньо від основних розробників Ianseo!'; -$lang['WhatIanseoDoes03']='Навчання та курси на місці: Ianseo доступний для керування спеціальними курсами на місці. Два рівня: без і з електронними пристроями. Перший спрямований на знання всіх аспектів ianseo від підготовки до змагань і розкладу до онлайн-публікації та місцевого поширення результатів. Другий спрямований на отримання всіх специфічних знань для проведення змагань «стріла за стрілою».'; $lang['WhatIanseoDoes04']='Пожертвуйте! Ianseo є безкоштовним із відкритим кодом... якщо вам це подобається, допоможіть нам підтримувати програмне забезпечення та сервер в актуальному стані: натисніть кнопку «Пожертвувати» на домашній сторінці $a!'; $lang['WhatIanseoDoes05']='Соціальні мережі: Ianseo також на $a!'; $lang['WhatIanseoDoesTitle']='Що Ianseo може зробити для ваших змагань'; diff --git a/src/Common/Languages/uk/RoundRobin.php b/src/Common/Languages/uk/RoundRobin.php index 498768bd..117911ca 100644 --- a/src/Common/Languages/uk/RoundRobin.php +++ b/src/Common/Languages/uk/RoundRobin.php @@ -1,10 +1,40 @@ Номер щита, після якого йде "**", працює як "*", але для всіх раундів'; +$lang['TieAllowed']='Нічия дозволена'; $lang['TieBreak-1-Short']='TB1'; $lang['TieBreak-2-Short']='TB2'; $lang['TiebreakSystem-2']='Рахунок в Сеті'; $lang['TiebreakSystem-4']='Перестрілка'; +$lang['TiePoints']='Очки за нічию'; +$lang['WinPoints']='Очки для переможця'; ?> \ No newline at end of file diff --git a/src/Common/Languages/uk/RunArchery.php b/src/Common/Languages/uk/RunArchery.php index fc408997..579d718d 100644 --- a/src/Common/Languages/uk/RunArchery.php +++ b/src/Common/Languages/uk/RunArchery.php @@ -1,5 +1,6 @@ Оновіть Ianseo до останньої версії з $a.'; $lang['IndClEvent']='Інд. Квал.'; $lang['IndFin']='Індив. - Елім. та Фін. Раунди'; $lang['IndFinEvent']='Інд. Фінал'; @@ -325,6 +326,7 @@ $lang['ManualTargetAssignment']='Призначення щитів вручну'; $lang['Match']='Матч'; $lang['Match4Target']='Кількість матчів на щиті'; +$lang['MatchDateTime']='Дата/час матчу'; $lang['MatchesSchedule']='Розклад матчів'; $lang['MatchMins']='Тривалість матчу (хв.)'; $lang['MatchName-0']='Матч за Золоту медаль'; @@ -404,7 +406,7 @@ $lang['PersonList']='Список людей'; $lang['PhaseBlock_0']='Офіційні особи змагання'; $lang['PhaseBlock_1']='Кваліфікація'; -$lang['PhaseBlock_11']='Кругові'; +$lang['PhaseBlock_11']='КРУГОВІ'; $lang['PhaseBlock_2']='Елімінація'; $lang['PhaseBlock_3']='Індивідуальні фінали'; $lang['PhaseBlock_4']='Ком. фінал'; @@ -420,6 +422,7 @@ $lang['PhotoDelete']='Видалити фото'; $lang['PhotoRetake']='Перезняти Фото'; $lang['PhotoUploaded']='Фото оновлено!'; +$lang['Points']='Очки'; $lang['PointsAsGold']='Значення для "золотого сектору"'; $lang['PointsAsXNine']='Значення для Х/9'; $lang['Poule']='Група'; @@ -443,7 +446,7 @@ $lang['QR-Code']='QR-код'; $lang['QrCode']='QR-код з деталями спортсмена'; $lang['QualSessionShort']='Квал. зміни'; -$lang['R-Session']='Кругові'; +$lang['R-Session']='КРУГОВІ'; $lang['RA-Session']='Ран арчері'; $lang['RaiseFlag']='Підняти Прапори'; $lang['RankByDistance']='Ранг по дистанціям'; @@ -465,6 +468,8 @@ $lang['ResultSqAbs']='Кваліфікаційний Раунд Командний'; $lang['ResultSqClass']='Результати по Категоріям і Дивізіонам - Командні'; $lang['ReverseNameFunction']='Зворотна назва та функція'; +$lang['Round']='Раунд'; +$lang['Round#']='Раунд $a'; $lang['Row-1']='Перший рядок'; $lang['Row-2']='Другий рядок'; $lang['RunningTotal']='Підсумок'; @@ -596,7 +601,6 @@ $lang['TeamCreationMode_2']='Завжди друга команда'; $lang['TeamCreationMode_3']='Завжди третя команда'; $lang['TeamFin']='Ком. - Елім. та Фін. Раунди'; -$lang['TeamFinEvent']='Ком. Фінал'; $lang['TeamLoaded']='Командні матчі завантажено для розкладу {$a}'; $lang['TeamPlace']='Таблички місця команд'; $lang['TeamPlaceLocal']='Таблички місця команд (локалізовані)'; @@ -605,6 +609,7 @@ $lang['TicketGetScore']='Лист для проміжних результатів'; $lang['TieWinner']='Переможець у нічию'; $lang['Time']='Час початку'; +$lang['TimeAt']='Час'; $lang['TimeStampSignature']='Мітка часу підпису (ЧЧ:ММ)'; $lang['TipDate']='Вставте «-» для видалення дати Вставте «d+N» для введення N-го дня змагань Вставте «d» встановлює місяць і рік як сьогодні Вставте «d-m» встановлює рік як сьогодні Вставте дату у форматі «РРРР-мм-дд», якщо невпевнений'; $lang['Title']='Заголовок'; @@ -729,7 +734,6 @@ $lang['Unset-DSQ']='Видалити DSQ'; $lang['UploadFile']='Завантаження файлу (PDF)'; $lang['UserEnabled']='Увімкнено'; -$lang['UserPassword']='Пароль'; $lang['UseSubClasses']='Застосовувати до конкретних підкласів'; $lang['ValidClass']='Призначаються класи'; $lang['ValidDivisions']='Дозволено Дів. (порожній для всіх)'; diff --git a/src/Common/Languages/zh-cn/Api.php b/src/Common/Languages/zh-cn/Api.php index 0a268eec..436ac912 100644 --- a/src/Common/Languages/zh-cn/Api.php +++ b/src/Common/Languages/zh-cn/Api.php @@ -77,7 +77,7 @@ $lang['IskSpuriousScore-Empty']='设备$a[0]已在位置$a[1]计分'; $lang['IskSpuriousScore-End']='设备$a[0]在第$a[1]组计分'; $lang['IskSpuriousScore-Match']='设备$a[0]在$a[1]比赛计分'; -$lang['IskTargetTitle']='$a靶位'; +$lang['IskTargetTitle']='{$a}靶位'; $lang['LockToEnds']='以下组限制计分(无代表非限制计分)'; $lang['ManageGroupTarget']='团队和目标管理'; $lang['Masters']='大师赛'; diff --git a/src/Common/Languages/zh-cn/Common.php b/src/Common/Languages/zh-cn/Common.php index 63dd7a90..4efde10b 100644 --- a/src/Common/Languages/zh-cn/Common.php +++ b/src/Common/Languages/zh-cn/Common.php @@ -11,7 +11,7 @@ $lang['64_Phase']='1/64'; $lang['8_Phase']='1/8'; $lang['Advanced']='晋级'; -$lang['AfterXArrows']='$a支箭后'; +$lang['AfterXArrows']='{$a}支箭后'; $lang['AllMainReviews']='主要语言评论'; $lang['AllowPartialTeams']='允许未完成队伍'; $lang['AllSecReviews']='第二语言评论'; diff --git a/src/Common/Languages/zh-cn/IOC_Codes.php b/src/Common/Languages/zh-cn/IOC_Codes.php index dfb34494..bf4db77d 100644 --- a/src/Common/Languages/zh-cn/IOC_Codes.php +++ b/src/Common/Languages/zh-cn/IOC_Codes.php @@ -1,6 +1,4 @@ - - - - - - - - \ No newline at end of file + + \ No newline at end of file diff --git a/src/Common/Lib/ArrTargets.inc.php b/src/Common/Lib/ArrTargets.inc.php index 322d69e5..469a8057 100644 --- a/src/Common/Lib/ArrTargets.inc.php +++ b/src/Common/Lib/ArrTargets.inc.php @@ -904,7 +904,7 @@ function GetMaxScores($EventCode, $MatchNo=0, $TeamEvent=0, $TourId=-1){ } -function GetTarget($TourId, $TrgName='') { +function GetTarget($TourId, $TrgName='', $Value=false) { global $LetterPoint; if($TrgName) { $q=safe_r_SQL("select Targets.* from Targets where TarDescr='$TrgName'"); @@ -919,16 +919,30 @@ function GetTarget($TourId, $TrgName='') { foreach(range('Z','B') as $key) { if($MyRow->{$key.'_size'}) { // fills the accepted arrows array - $ret[] = $LetterPoint[$key]['P']; + if($Value) { + $ret[] = $LetterPoint[$key]['N']; + } else { + $ret[] = $LetterPoint[$key]['P']; + } } } foreach(range('9','1') as $key) { if($MyRow->{$key.'_size'}) { // fills the accepted arrows array - $ret[] = $LetterPoint[$key]['P']; + if($Value) { + $ret[] = $LetterPoint[$key]['N']; + } else { + $ret[] = $LetterPoint[$key]['P']; + } } } - $ret[] = $LetterPoint['A']['P']; + if($Value) { + $ret[] = $LetterPoint['A']['N']; + arsort($ret); + $ret=array_unique($ret); + } else { + $ret[] = $LetterPoint['A']['P']; + } return $ret; } diff --git a/src/Common/Lib/CommonLib.php b/src/Common/Lib/CommonLib.php index 4de19127..000ba673 100644 --- a/src/Common/Lib/CommonLib.php +++ b/src/Common/Lib/CommonLib.php @@ -530,8 +530,8 @@ function get_photo_ianseo($r, $h=0, $side=false, $Extra='', $force=false, $direc $startY=(($WorkH - (count($texts)*$WorkH/5))/2)+$WorkH/7; foreach($texts as $i=>$t) { $dim=imagettfbbox($WorkH/10, 12, $font, $t); - $x=($w+$dim[0]-$dim[2])/2; - $y=$startY+$i*$WorkH/5; + $x=intval(($w+$dim[0]-$dim[2])/2); + $y=intval($startY+$i*$WorkH/5); imagettftext($im, $WorkH/10, 12, $x, $y, $blue, $font, $t); } ob_start(); @@ -646,6 +646,8 @@ function getApiScheduledSessions($ScheduleOptions=[]) { $Options->TOURID=$_SESSION['TourId']; } + $Today=getToday(); + $ret=array(); $aSQL=[]; if(!$Options->TYPE or in_array('Q', $Options->TYPE)) { @@ -671,7 +673,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { LEFT JOIN DistanceInformation on DiTournament=SesTournament and DiType=SesType and DiSession=SesOrder LEFT JOIN Scheduler ON SchTournament=SesTournament AND SchSesType=SesType AND SchSesOrder=SesOrder WHERE SesTournament={$Options->TOURID} AND SesType='Q' $SubQuery - " . ($Options->ONLYTODAY ? " AND (date(convert_tz(SchDay, ToTimeZone, '+00:00'))=UTC_DATE() or date(convert_tz(DiDay, ToTimeZone, '+00:00'))=UTC_DATE())" : "") ." + " . ($Options->ONLYTODAY ? " AND (SchDay='$Today' or DiDay='$Today')" : "") ." GROUP BY SesOrder, SesType"; } @@ -687,7 +689,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { left JOIN Session on EvTournament=SesTournament and ElSession=SesOrder AND SesType='E' LEFT JOIN Scheduler ON SchTournament=EvTournament AND SchSesType='E' AND SchSesOrder=ElSession WHERE EvTournament={$Options->TOURID} - " . ($Options->ONLYTODAY ? "AND date(convert_tz(SchDay, ToTimeZone, '+00:00'))=UTC_DATE()" : "") ." + " . ($Options->ONLYTODAY ? "AND SchDay='$Today'" : "") ." " . ($Options->UNFINISHED ? "AND EvE1ShootOff=0" : "") ." GROUP BY EvCode"; @@ -702,7 +704,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { left JOIN Session on SesTournament=ElTournament and ElSession=SesOrder AND SesType='E' LEFT JOIN Scheduler ON SchTournament=EvTournament AND SchSesType='E' AND SchSesOrder=ElSession WHERE EvTournament={$Options->TOURID} - " . ($Options->ONLYTODAY ? "AND date(convert_tz(SchDay, ToTimeZone, '+00:00'))=UTC_DATE()" : "") ." + " . ($Options->ONLYTODAY ? "AND SchDay='$Today'" : "") ." " . ($Options->UNFINISHED ? "AND EvE2ShootOff=0" : "") ." GROUP BY EvCode"; } @@ -718,7 +720,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { inner join Events on EvTournament=f1.FinTournament and EvCode=f1.FinEvent and EvTeamEvent=0 inner join Grids on GrMatchNo=f1.FinMatchNo where f1.FinTournament={$Options->TOURID} and f1.FinMatchNo%2=0 and - ((greatest(f1.FinAthlete, f2.FinAthlete)=0 and GrPhase0)) + ((greatest(f1.FinAthlete, f2.FinAthlete)=0 and GrPhase<=EvFinalFirstPhase) OR (greatest(f1.FinWinLose,f2.FinWinLose, f1.FinTie, f2.FinTie)=0 and greatest(f1.FinAthlete,f2.FinAthlete)>0)) group by f1.FinEvent, f1.FinMatchNo )"; } @@ -731,7 +733,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { inner join Grids on GrMatchNo=FsMatchNo inner join Events on EvCode=FsEvent and EvTournament=FsTournament and EvTeamEvent=FsTeamEvent $SubQuery WHERE FSTournament={$Options->TOURID} and FSScheduledDate>0 and FsTeamEvent=0 " - . ($Options->ONLYTODAY ? "AND date(convert_tz(FSScheduledDate, ToTimeZone, '+00:00'))=utc_date() " : "") + . ($Options->ONLYTODAY ? "AND FSScheduledDate='$Today' " : "") . ($Options->TYPE=='I' ? "AND EvTeamEvent=0 " : "") ."GROUP BY CONCAT('I', FSScheduledDate, FSScheduledTime)"; } @@ -747,7 +749,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { inner join Events on EvTournament=f1.tfTournament and EvCode=f1.tfEvent and EvTeamEvent=1 inner join Grids on GrMatchNo=f1.tfMatchNo where f1.tfTournament={$Options->TOURID} and f1.TfMatchNo%2=0 and - ((greatest(f1.TfTeam, f2.TfTeam)=0 and GrPhase0)) + ((greatest(f1.TfTeam, f2.TfTeam)=0 and GrPhase<=EvFinalFirstPhase) OR (greatest(f1.TfWinLose,f2.TfWinLose, f1.TfTie, f2.TfTie)=0 and greatest(f1.TfTeam, f2.TfTeam)>0)) group by f1.TfEvent, f1.TfMatchNo )"; } @@ -760,7 +762,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { inner join Grids on GrMatchNo=FsMatchNo inner join Events on EvCode=FsEvent and EvTournament=FsTournament and EvTeamEvent=FsTeamEvent $SubQuery WHERE FSTournament={$Options->TOURID} and FSScheduledDate>0 and FsTeamEvent=1 - " . ($Options->ONLYTODAY ? "AND date(convert_tz(FSScheduledDate, ToTimeZone, '+00:00'))=UTC_DATE()" : "") ." + " . ($Options->ONLYTODAY ? "AND FSScheduledDate='$Today'" : "") ." " . ($Options->TYPE=='T' ? "AND EvTeamEvent=1" : "") ." GROUP BY CONCAT('T', FSScheduledDate, FSScheduledTime)"; } @@ -780,6 +782,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { and f2.RrMatchTournament=f1.RrMatchTournament and f2.RrMatchMatchNo=f1.RrMatchMatchNo+1 where f1.RrMatchTournament={$Options->TOURID} and f1.RrMatchMatchNo%2=0 and greatest(f1.RrMatchWinLose,f2.RrMatchWinLose, f1.RrMatchTie, f2.RrMatchTie)=0 and greatest(f1.RrMatchAthlete, f2.RrMatchAthlete)>0 + " . ($Options->ONLYTODAY ? "AND f1.RRMatchScheduledDate='$Today'" : "") ." group by f1.RrMatchTeam, f1.RrMatchEvent )"; } @@ -793,7 +796,7 @@ function getApiScheduledSessions($ScheduleOptions=[]) { inner join RoundRobinLevel on RrLevTournament=RrMatchTournament and RrLevTeam=RrMatchTeam and RrLevLevel=RrMatchLevel inner join Events on EvCode=RrMatchEvent and EvTournament=RrMatchTournament and EvTeamEvent=RrMatchTeam WHERE RrMatchTournament={$Options->TOURID} and RrMatchScheduledDate>0 $SubQuery - " . ($Options->ONLYTODAY ? "AND date(convert_tz(RRMatchScheduledDate, ToTimeZone, '+00:00'))=UTC_DATE()" : "") ." + " . ($Options->ONLYTODAY ? "AND RRMatchScheduledDate='$Today'" : "") ." GROUP BY RrMatchScheduledDate, RRMatchScheduledTime"; } @@ -1483,195 +1486,229 @@ function CheckCredentials($OnlineId, $OnlineAuth, $Return, $LicenseVoucher='') { function get_Countries() { // get list from WA Countries $Flags=array( - 'AFG' => 'Afghanistan', - 'ALB' => 'Albania', - 'ALG' => 'Algeria', - 'AND' => 'Andorra', - 'ARG' => 'Argentina', - 'ARM' => 'Armenia', - 'ARU' => 'Aruba', - 'ASA' => 'American Samoa', - 'AUS' => 'Australia', - 'AUT' => 'Austria', - 'AZE' => 'Azerbaijan', - 'BAH' => 'Bahamas', - 'BAN' => 'Bangladesh', - 'BAR' => 'Barbados', - 'BEL' => 'Belgium', - 'BEN' => 'Benin', - 'BER' => 'Bermuda', - 'BHU' => 'Bhutan', - 'BIH' => 'Bosnia and Herzegovina', - 'BLR' => 'Belarus', - 'BOL' => 'Bolivia', - 'BRA' => 'Brazil', - 'BUL' => 'Bulgaria', - 'BUR' => 'Burkina Faso', - 'CAF' => 'Central African Republic', - 'CAM' => 'Cambodia', - 'CAN' => 'Canada', - 'CHA' => 'Chad', - 'CHI' => 'Chile', - 'CHN' => 'PR China', - 'CIV' => 'Cote d Ivoire', - 'CMR' => 'Cameroon', - 'COD' => 'DR Congo', - 'COL' => 'Colombia', - 'COM' => 'Comoros', - 'CRC' => 'Costa Rica', - 'CRO' => 'Croatia', - 'CUB' => 'Cuba', - 'CYP' => 'Cyprus', - 'CZE' => 'Czech Republic', - 'DEN' => 'Denmark', - 'DJI' => 'Djibouti', - 'DMA' => 'Dominica', - 'DOM' => 'Dominican Republic', - 'ECU' => 'Ecuador', - 'EGY' => 'Egypt', - 'ERI' => 'Eritrea', - 'ESA' => 'El Salvador', - 'ESP' => 'Spain', - 'EST' => 'Estonia', - 'FIJ' => 'Fiji', - 'FIN' => 'Finland', - 'FLK' => 'Falkland Island', - 'FPO' => 'Tahiti', - 'FRA' => 'France', - 'FRO' => 'Faroe Islands', - 'GAB' => 'Gabon', - 'GBR' => 'Great Britain', - 'GEO' => 'Georgia', - 'GER' => 'Germany', - 'GHA' => 'Ghana', - 'GLP' => 'Guadalupe', - 'GRE' => 'Greece', - 'GUA' => 'Guatemala', - 'GUI' => 'Guinea', - 'GUM' => 'Guam', - 'GUY' => 'Guyana', - 'HAI' => 'Haiti', - 'HKG' => 'Hong Kong, China', - 'HON' => 'Honduras', - 'HUN' => 'Hungary', - 'INA' => 'Indonesia', - 'IND' => 'India', - 'IOA' => 'Int. Olympic Archer', - 'IPA' => 'Int. Paralympic Archer', - 'IRI' => 'IR Iran', - 'IRL' => 'Ireland', - 'IRQ' => 'Iraq', - 'ISL' => 'Iceland', - 'ISR' => 'Israel', - 'ISV' => 'Virgin Islands, US', - 'ITA' => 'Italy', - 'IVB' => 'British Virgin Islands', - 'JOR' => 'Jordan', - 'JPN' => 'Japan', - 'KAZ' => 'Kazakhstan', - 'KEN' => 'Kenya', - 'KGZ' => 'Kyrgyzstan', - 'KIR' => 'Kiribati', - 'KOR' => 'Korea', - 'KOS' => 'Kosovo', - 'KSA' => 'Saudi Arabia', - 'KUW' => 'Kuwait', - 'LAO' => 'Laos', - 'LAT' => 'Latvia', - 'LBA' => 'Libya', - 'LBR' => 'Liberia', - 'LES' => 'Lesotho', - 'LIB' => 'Lebanon', - 'LIE' => 'Liechtenstein', - 'LTU' => 'Lithuania', - 'LUX' => 'Luxembourg', - 'MAC' => 'Macau, China', - 'MAD' => 'Madagascar', - 'MAR' => 'Morocco', - 'MAS' => 'Malaysia', - 'MAW' => 'Malawi', - 'MDA' => 'Moldova', - 'MEX' => 'Mexico', - 'MGL' => 'Mongolia', - 'MKD' => 'North Macedonia', - 'MLI' => 'Mali', - 'MLT' => 'Malta', - 'MNE' => 'Montenegro', - 'MON' => 'Monaco', - 'MRI' => 'Mauritius', - 'MTN' => 'Mauritania', - 'MTQ' => 'Martinique', - 'MYA' => 'Myanmar', - 'NAM' => 'Namibia', - 'NCA' => 'Nicaragua', - 'NCL' => 'New Caledonia', - 'NED' => 'Netherlands', - 'NEP' => 'Nepal', - 'NFK' => 'Norfolk Island', - 'NGR' => 'Nigeria', - 'NIG' => 'Niger', - 'NIU' => 'Niue', - 'NMI' => 'Northern Mariana Islands', - 'NOR' => 'Norway', - 'NZL' => 'New Zealand', - 'PAK' => 'Pakistan', - 'PAN' => 'Panama', - 'PAR' => 'Paraguay', - 'PER' => 'Peru', - 'PHI' => 'Philippines', - 'PLW' => 'Palau', - 'PNG' => 'Papua New Guinea', - 'POL' => 'Poland', - 'POR' => 'Portugal', - 'PRK' => 'DPR Korea', - 'PUR' => 'Puerto Rico', - 'QAT' => 'Qatar', - 'ROU' => 'Romania', - 'RSA' => 'South Africa', - 'RUS' => 'Russia', - 'RWA' => 'Rwanda', - 'SAM' => 'Samoa', - 'SCG' => 'Serbia and Montenegro', - 'SEN' => 'Senegal', - 'SGP' => 'Singapore', - 'SKN' => 'Saint Kitts and Nevis', - 'SLE' => 'Sierra Leone', - 'SLO' => 'Slovenia', - 'SMR' => 'San Marino', - 'SOL' => 'Solomon Islands', - 'SOM' => 'Somalia', - 'SRB' => 'Serbia', - 'SRI' => 'Sri Lanka', - 'SUD' => 'Sudan', - 'SUI' => 'Switzerland', - 'SUN' => 'USSR', - 'SUR' => 'Suriname', - 'SVK' => 'Slovakia', - 'SWE' => 'Sweden', - 'SYR' => 'Syria', - 'TGA' => 'Tonga', - 'THA' => 'Thailand', - 'TJK' => 'Tajikistan', - 'TKM' => 'Turkmenistan', - 'TOG' => 'Togo', - 'TPE' => 'Chinese Taipei', - 'TTO' => 'Trinidad and Tobago', - 'TUN' => 'Tunisia', - 'TUR' => 'Turkey', - 'UAE' => 'UAE', - 'UGA' => 'Uganda', - 'UKR' => 'Ukraine', - 'URU' => 'Uruguay', - 'USA' => 'USA', - 'UZB' => 'Uzbekistan', - 'VAN' => 'Vanuatu', - 'VEN' => 'Venezuela', - 'VIE' => 'Vietnam', - 'VIN' => 'St Vincent and the Grenadines', - 'YEM' => 'Yemen', - 'YUG' => 'Yugoslavia', - 'ZAM' => 'Zambia', - 'ZIM' => 'Zimbabwe', + 'AFG' => 'Afghanistan', + 'ALB' => 'Albania', + 'ALG' => 'Algeria', + 'AND' => 'Andorra', + 'ANG' => 'Angola', + 'ANT' => 'Antigua and Barbuda', + 'ARG' => 'Argentina', + 'ARM' => 'Armenia', + 'ARU' => 'Aruba', + 'ASA' => 'American Samoa', + 'AUS' => 'Australia', + 'AUT' => 'Austria', + 'AZE' => 'Azerbaijan', + 'BAH' => 'Bahamas', + 'BAN' => 'Bangladesh', + 'BAR' => 'Barbados', + 'BDI' => 'Burundi', + 'BEL' => 'Belgium', + 'BEN' => 'Benin', + 'BER' => 'Bermuda', + 'BHU' => 'Bhutan', + 'BIH' => 'Bosnia and Herzegovina', + 'BIZ' => 'Belize', + 'BLR' => 'Belarus', + 'BOL' => 'Bolivia', + 'BOT' => 'Botswana', + 'BRA' => 'Brazil', + 'BRN' => 'Bahrain', + 'BRU' => 'Brunei', + 'BUL' => 'Bulgaria', + 'BUR' => 'Burkina Faso', + 'CAF' => 'Central African Republic', + 'CAM' => 'Cambodia', + 'CAN' => 'Canada', + 'CAY' => 'Cayman Islands', + 'CGO' => 'Republic of the Congo', + 'CHA' => 'Chad', + 'CHI' => 'Chile', + 'CHN' => 'PR China', + 'CIV' => 'Côte d\'Ivoire', + 'CMR' => 'Cameroon', + 'COD' => 'Democratic Republic of the Congo', + 'COK' => 'Cook Islands', + 'COL' => 'Colombia', + 'COM' => 'Comoros', + 'CPV' => 'Cape Verde', + 'CRC' => 'Costa Rica', + 'CRO' => 'Croatia', + 'CUB' => 'Cuba', + 'CYP' => 'Cyprus', + 'CZE' => 'Czechia', + 'DEN' => 'Denmark', + 'DJI' => 'Djibouti', + 'DMA' => 'Dominica', + 'DOM' => 'Dominican Republic', + 'ECU' => 'Ecuador', + 'EGY' => 'Egypt', + 'ERI' => 'Eritrea', + 'ESA' => 'El Salvador', + 'ESP' => 'Spain', + 'EST' => 'Estonia', + 'ETH' => 'Ethiopia', + 'FIJ' => 'Fiji', + 'FIN' => 'Finland', + 'FRA' => 'France', + 'FSM' => 'Federated States of Micronesia', + 'GAB' => 'Gabon', + 'GAM' => 'The Gambia', + 'GBR' => 'Great Britain', + 'GBS' => 'Guinea-Bissau', + 'GEO' => 'Georgia', + 'GEQ' => 'Equatorial Guinea', + 'GER' => 'Germany', + 'GHA' => 'Ghana', + 'GRE' => 'Greece', + 'GRN' => 'Grenada', + 'GUA' => 'Guatemala', + 'GUI' => 'Guinea', + 'GUM' => 'Guam', + 'GUY' => 'Guyana', + 'HAI' => 'Haiti', + 'HKG' => 'Hong Kong, China', + 'HON' => 'Honduras', + 'HUN' => 'Hungary', + 'INA' => 'Indonesia', + 'IND' => 'India', + 'IRI' => 'IR Iran', + 'IRL' => 'Ireland', + 'IRQ' => 'Iraq', + 'ISL' => 'Iceland', + 'ISR' => 'Israel', + 'ISV' => 'Virgin Islands, US', + 'ITA' => 'Italy', + 'IVB' => 'British Virgin Islands', + 'JAM' => 'Jamaica', + 'JOR' => 'Jordan', + 'JPN' => 'Japan', + 'KAZ' => 'Kazakhstan', + 'KEN' => 'Kenya', + 'KGZ' => 'Kyrgyzstan', + 'KIR' => 'Kiribati', + 'KOR' => 'South Korea', + 'KOS' => 'Kosovo', + 'KSA' => 'Saudi Arabia', + 'KUW' => 'Kuwait', + 'LAO' => 'Laos', + 'LAT' => 'Latvia', + 'LBA' => 'Libya', + 'LBN' => 'Lebanon', + 'LBR' => 'Liberia', + 'LCA' => 'Saint Lucia', + 'LES' => 'Lesotho', + 'LIE' => 'Liechtenstein', + 'LTU' => 'Lithuania', + 'LUX' => 'Luxembourg', + 'MAD' => 'Madagascar', + 'MAR' => 'Morocco', + 'MAS' => 'Malaysia', + 'MAW' => 'Malawi', + 'MDA' => 'Moldova', + 'MDV' => 'Maldives', + 'MEX' => 'Mexico', + 'MGL' => 'Mongolia', + 'MHL' => 'Marshall Islands', + 'MKD' => 'North Macedonia', + 'MLI' => 'Mali', + 'MLT' => 'Malta', + 'MNE' => 'Montenegro', + 'MON' => 'Monaco', + 'MOZ' => 'Mozambique', + 'MRI' => 'Mauritius', + 'MTN' => 'Mauritania', + 'MYA' => 'Myanmar', + 'NAM' => 'Namibia', + 'NCA' => 'Nicaragua', + 'NED' => 'Netherlands', + 'NEP' => 'Nepal', + 'NGR' => 'Nigeria', + 'NIG' => 'Niger', + 'NOR' => 'Norway', + 'NRU' => 'Nauru', + 'NZL' => 'New Zealand', + 'OMA' => 'Oman', + 'PAK' => 'Pakistan', + 'PAN' => 'Panama', + 'PAR' => 'Paraguay', + 'PER' => 'Peru', + 'PHI' => 'Philippines', + 'PLE' => 'Palestine', + 'PLW' => 'Palau', + 'PNG' => 'Papua New Guinea', + 'POL' => 'Poland', + 'POR' => 'Portugal', + 'PRK' => 'DPR Korea', + 'PUR' => 'Puerto Rico', + 'QAT' => 'Qatar', + 'ROU' => 'Romania', + 'RSA' => 'South Africa', + 'RUS' => 'Russia', + 'RWA' => 'Rwanda', + 'SAM' => 'Samoa', + 'SEN' => 'Senegal', + 'SEY' => 'Seychelles', + 'SGP' => 'Singapore', + 'SKN' => 'Saint Kitts and Nevis', + 'SLE' => 'Sierra Leone', + 'SLO' => 'Slovenia', + 'SMR' => 'San Marino', + 'SOL' => 'Solomon Islands', + 'SOM' => 'Somalia', + 'SRB' => 'Serbia', + 'SRI' => 'Sri Lanka', + 'SSD' => 'South Sudan', + 'STP' => 'São Tomé and Príncipe', + 'SUD' => 'Sudan', + 'SUI' => 'Switzerland', + 'SUR' => 'Suriname', + 'SVK' => 'Slovakia', + 'SWE' => 'Sweden', + 'SWZ' => 'Eswatini', + 'SYR' => 'Syria', + 'TAN' => 'Tanzania', + 'TGA' => 'Tonga', + 'THA' => 'Thailand', + 'TJK' => 'Tajikistan', + 'TKM' => 'Turkmenistan', + 'TLS' => 'East Timor', + 'TOG' => 'Togo', + 'TPE' => 'Chinese Taipei', + 'TTO' => 'Trinidad and Tobago', + 'TUN' => 'Tunisia', + 'TUR' => 'Türkiye', + 'TUV' => 'Tuvalu', + 'UAE' => 'United Arab Emirates', + 'UGA' => 'Uganda', + 'UKR' => 'Ukraine', + 'URU' => 'Uruguay', + 'USA' => 'United States of America', + 'UZB' => 'Uzbekistan', + 'VAN' => 'Vanuatu', + 'VEN' => 'Venezuela', + 'VIE' => 'Vietnam', + 'VIN' => 'Saint Vincent and the Grenadines', + 'YEM' => 'Yemen', + 'ZAM' => 'Zambia', + 'ZIM' => 'Zimbabwe', +// Kept for Historical reason + 'FLK' => 'Falkland Island', + 'FPO' => 'Tahiti', + 'FRO' => 'Faroe Islands', + 'GLP' => 'Guadalupe', + 'IOA' => 'Int. Olympic Archer', + 'IPA' => 'Int. Paralympic Archer', + 'LIB' => 'Lebanon', + 'MAC' => 'Macau, China', + 'MTQ' => 'Martinique', + 'NCL' => 'New Caledonia', + 'NFK' => 'Norfolk Island', + 'NIU' => 'Niue', + 'NMI' => 'Northern Mariana Islands', + 'SCG' => 'Serbia and Montenegro', + 'SUN' => 'USSR', + 'YUG' => 'Yugoslavia', ); return $Flags; } @@ -1751,4 +1788,103 @@ function OdfCapitalise($Name, $Type='A') { } return $Name; +} + +function ordinal($number) { + $ends = array('th','st','nd','rd','th','th','th','th','th','th'); + if ((($number % 100) >= 11) && (($number%100) <= 13)) + return $number. 'th'; + else + return $number. $ends[$number % 10]; +} + +function intToRoman($num) { + // This function takes integer as input and return a string with roman representation of given integer. If integer not in between 1 and 3999 return given integer because there is no roman representation of number outside of that range + $num=intval($num); + if(!$num) { + return ''; + } + if($num>3999){ + return $num; + } + + if($num<=0){ + return $num; + } + + // Define an array mapping integers to their Roman numeral counterparts + $map = [ + 'M' => 1000, + 'CM' => 900, + 'D' => 500, + 'CD' => 400, + 'C' => 100, + 'XC' => 90, + 'L' => 50, + 'XL' => 40, + 'X' => 10, + 'IX' => 9, + 'V' => 5, + 'IV' => 4, + 'I' => 1 + ]; + + $result = ''; + + // Loop through the map and append the Roman numeral while reducing the integer + foreach ($map as $roman => $value) { + // While the current value can be subtracted from num + while ($num >= $value) { + $result .= $roman; + $num -= $value; + } + } + + return $result; +} + +/** + * @param $Type one of the following:
    • A[ll]: (default) returns all available fonts
    • S[ystem]: returns the fonts located in tcpdf/fonts
    • E[xtra]: returns the extra fonts located in module, if present
    + * @return void + */ +function getFonts($Type='All') { + global $CFG; + require_once('Common/Lib/FontMeta.php'); + require_once('Common/Lib/FontInfo.php'); + $aFonts=array(); + $Type=strtoupper($Type[0]); + if($Type=='A' or $Type=='S') { + foreach(glob($CFG->FONT_PATH.'*.ttf') as $f) { +// $ff=new FontMeta($f); +// $aFonts[basename($f)]=['name'=>ucfirst($ff->getPostscriptName()), 'file'=>$f]; + $ff=new FontInfo($f); + $aFonts[basename($f)]=['name'=>ucfirst($ff->getFontName()), 'file'=>$f, 'type'=>'S']; + } + foreach(glob($CFG->INCLUDE_PATH.'/Modules/FontManagement/fonts/*.otf') as $f) { +// $ff=new FontMeta($f); +// $aFonts[basename($f)]=['name'=>ucfirst($ff->getPostscriptName()), 'file'=>$f]; + $ff=new FontInfo($f); + $aFonts[basename($f)]=['name'=>ucfirst($ff->getFontName()), 'file'=>$f, 'type'=>'E']; + } + } + + if($Type=='A' or ($Type=='E' and is_dir($CFG->INCLUDE_PATH.'/Modules/FontManagement'))) { + foreach(glob($CFG->INCLUDE_PATH.'/Modules/FontManagement/fonts/*.ttf') as $f) { +// $ff=new FontMeta($f); +// $aFonts[basename($f)]=['name'=>ucfirst($ff->getPostscriptName()), 'file'=>$f]; + $ff=new FontInfo($f); + $aFonts[basename($f)]=['name'=>ucfirst($ff->getFontName()), 'file'=>$f, 'type'=>'E']; + } + foreach(glob($CFG->INCLUDE_PATH.'/Modules/FontManagement/fonts/*.otf') as $f) { +// $ff=new FontMeta($f); +// $aFonts[basename($f)]=['name'=>ucfirst($ff->getPostscriptName()), 'file'=>$f]; + $ff=new FontInfo($f); + $aFonts[basename($f)]=['name'=>ucfirst($ff->getFontName()), 'file'=>$f, 'type'=>'E']; + } + } + + uasort($aFonts, function($a, $b) { + return $a['name'] <=> $b['name']; + }); + return $aFonts; } \ No newline at end of file diff --git a/src/Common/Lib/FontInfo.php b/src/Common/Lib/FontInfo.php new file mode 100644 index 00000000..08779c47 --- /dev/null +++ b/src/Common/Lib/FontInfo.php @@ -0,0 +1,144 @@ +_arrInfo = $this->getFontInfo($strFontPath); + } + + /** + * Gets the information about the font at the specified path. + * @param strFontPath + * @return + */ + private function getFontInfo($strFontPath) + { + $arrFontTags=[]; + // Open the file and read its contents. + $obintJFile = fopen($strFontPath, "r"); + $strText = fread($obintJFile, filesize($strFontPath)); + fclose($obintJFile); + + $intOffsetStorage=0; + + // Grab information. + $intNumberOfTables = hexdec($this->dec2ord($strText[4]) . $this->dec2ord($strText[5])); + for ($intI = 0; $intI < $intNumberOfTables; $intI++) { + $strTag = $strText[12 + $intI * 16] . $strText[12 + $intI * 16 + 1] . $strText[12 + $intI * 16 + 2] . $strText[12 + $intI * 16 + 3]; + + if ($strTag == "name") { + $intOffset = hexdec( + $this->dec2ord($strText[12 + $intI * 16 + 8]) . $this->dec2ord($strText[12 + $intI * 16 + 8 + 1]) . + $this->dec2ord($strText[12 + $intI * 16 + 8 + 2]) . $this->dec2ord($strText[12 + $intI * 16 + 8 + 3]) + ); + $intOffsetStorage = hexdec($this->dec2ord($strText[$intOffset + 4]) . $this->dec2ord($strText[$intOffset + 5])); + $intNumberOfNameRecords = hexdec($this->dec2ord($strText[$intOffset + 2]) . $this->dec2ord($strText[$intOffset + 3])); + } + } + + $intStorageDecimal = $intOffsetStorage + $intOffset; + $strStorageHexadecimal = strtoupper(dechex($intStorageDecimal)); + + for ($intJ = 0; $intJ < $intNumberOfNameRecords; $intJ++) { + //$platform_id_dec = hexdec( $this->dec2ord( $this->text[$this->ntOffset+6+$intJ*12+0]).$this->dec2ord( $this->text[$this->ntOffset+6+$intJ*12+1])); + $intNameId = hexdec($this->dec2ord($strText[$intOffset + 6 + $intJ * 12 + 6]) . $this->dec2ord($strText[$intOffset + 6 + $intJ * 12 + 7])); + $intStringLength = hexdec($this->dec2ord($strText[$intOffset + 6 + $intJ * 12 + 8]) . $this->dec2ord($strText[$intOffset + 6 + $intJ * 12 + 9])); + $intStringOffset = hexdec($this->dec2ord($strText[$intOffset + 6 + $intJ * 12 + 10]) . $this->dec2ord($strText[$intOffset + 6 + $intJ * 12 + 11])); + + if (!empty($intNameId) && empty($arrFontTags[$intNameId])) { + $arrFontTags[$intNameId]=''; + for ($intL = 0; $intL < $intStringLength; $intL++) { + if (ord($strText[$intStorageDecimal + $intStringOffset + $intL]) == "0") { + continue; + } else { + $arrFontTags[$intNameId] .= $strText[$intStorageDecimal + $intStringOffset + $intL]; + } + } + } + } + + return $arrFontTags; + } + + /** + * Converts decimal to hex using the ascii value. + * @param intDecimal + * @return + */ + protected function dec2ord($intDecimal) + { + return $this->dec2hex(ord($intDecimal)); + } + + /** + * Performs hexadecimal to decimal conversion with proper padding. + * @param intDecimal + * @return + */ + protected function dec2hex($intDecimal) + { + return str_repeat("0", 2 - strlen(($strHexadecimal = strtoupper(dechex($intDecimal))))) . $strHexadecimal; + } + + /** + * Gets the copyright. + * @return + */ + public function getCopyright() + { + return $this->_arrInfo[0]; + } + + /** + * Gets the font family. + * @return + */ + public function getFontFamily() + { + return $this->_arrInfo[1]; + } + + /** + * Gets the sub font family. + * @return + */ + public function getFontSubFamily() + { + return $this->_arrInfo[2]; + } + + /** + * Gets the font id. + * @return + */ + public function getFontId() + { + return $this->_arrInfo[3]; + } + + /** + * Gets the font name. + * @return + */ + public function getFontName() + { + return $this->_arrInfo[4]; + } + +} \ No newline at end of file diff --git a/src/Common/Lib/Fun_Export.php b/src/Common/Lib/Fun_Export.php new file mode 100644 index 00000000..85101a3c --- /dev/null +++ b/src/Common/Lib/Fun_Export.php @@ -0,0 +1,400 @@ + 'Ac', + 'AccEntries' => 'AE', + 'AccPrice' => 'AP', + 'ACL' => 'Acl', + 'AclDetails' => 'AclDt', + 'AclTemplates' => 'AclTe', + 'AvailableTarget' => 'At', + 'Awards' => 'Aw', + 'Awarded' => 'Aw', + 'BackNumber' => 'Bn', + 'CasScore' => 'CaS', + 'CasTeam' => 'Ca', + 'CasTeamFinal' => 'CTF', + 'CasTeamTarget' => 'CTT', + 'Classes' => 'Cl', + 'ClassWaEquivalents' => 'ClWaEq', + 'ClubTeam' => 'CT', + 'ClubTeamScore' => 'CTS', + 'Divisions' => 'Div', + 'DistanceInformation' => 'Di', + 'DocumentVersions' => 'Dv', + 'Eliminations' => 'El', + 'Emails' => 'Em', + 'EventClass' => 'Ec', + 'Events' => 'Ev', + 'FinalReportA' => 'Fra', + 'Finals' => 'Fin', + 'FinOdfTiming' => 'FinOdf', + 'FinSchedule' => 'FS', + 'FinWarmup' => 'Fw', + 'GateLog' => 'GL', + 'HeartBeat'=>'Hb', + 'HhtData' => 'Hd', + 'HhtEvents' => 'He', + 'HhtSetup' => 'Hs', + 'IdCardElements' => 'Ice', + 'IdCards' => 'Ic', + 'Images' => 'Im', + 'IskData' => 'IskDt', + 'Individuals' => 'Ind', + 'Logs' => 'Log', + 'ModulesParameters' => 'Mp', +// 'OnLineIds' => 'Oli', // This table is rewritten everytime so no need to export/import it + 'OdfDocuments' => 'OdfDoc', + 'OdfTranslations' => 'OdfTr', + 'OdfMessageStatus' => 'Oms', + 'Rankings' => 'Rank', + 'RecBroken' => 'RecBro', + 'RecTournament' => 'Rt', + 'Reviews' => 'Rev', + "RoundRobinGrids" => "RrGrid", + "RoundRobinGroup" => "RrGr", + "RoundRobinLevel" => "RrLev", + "RoundRobinMatches" => "RrMatch", + "RoundRobinParticipants" => "RrPart", + 'RunArchery' => 'Ra', + 'RunArcheryRank' => 'Rar', + 'RunArcheryParticipants' => 'Rap', + 'Scheduler'=>'Sch', + 'Session'=>'Ses', + 'SubClass' => 'Sc', + 'TargetFaces' => 'Tf', + 'TargetGroups' => 'Tg', + 'TeamComponent' => 'Tc', + 'TeamDavis' => 'TeDa', + 'TeamFinals' => 'Tf', + 'TeamFinComponent' => 'Tfc', + 'TeamFinComponentLog' => 'Tfcl', + 'Teams' => 'Te', + 'TournamentDistances' => 'Td', + 'TournamentInvolved' => 'Ti', + 'TourRecords' => 'Tr', + 'TVContents' => 'TVC', + 'TVParams' => 'TVP', + 'TVRules' => 'TVR', + 'TVSequence' => 'TVS', + 'VegasAwards'=>'Va', + ); + + //if(!$InfoSystem) { +// $tabs['']=''; +// } + + // Tabs where there is an EnID + $tabsEnId=array( + 'AccEntries' => 'AEId', + 'Awarded' => 'AwEntry', + 'ElabQualifications' => 'EqId', + 'Eliminations' => 'ElId', + 'ExtraData' => 'EdId', + 'Finals' => array('FinAthlete','FinCoach'), + 'GateLog' => 'GLEntry', + 'HhtData' => 'HdEnId', + 'Individuals' => 'IndId', + 'Logs' => 'LogEntry', + 'Photos' => 'PhEnId', + 'Qualifications' => 'QuId', + 'RecBroken' => 'RecBroAthlete', + 'RunArchery'=>'RaArcher', + 'TeamComponent' => 'TcId', + 'TeamFinals' => 'TfCoach', + 'TeamFinComponent' => 'TfcId', + 'TeamFinComponentLog' => array('TfclIdPrev','TfclIdNext'), + 'Vegas'=>'VeId', + ); + + // Tabs where there is an CoID + $tabsCoId=array( + 'CasTeam' => 'CaTeam', + 'ClubTeam' => 'CTTeam', + 'ExtraDataCountries' => 'EdcId', + 'RecBroken' => 'RecBroTeam', + 'TeamComponent' => 'TcCoId', + 'TeamFinComponent' => 'TfcCoId', + 'TeamFinComponentLog' => 'TfclCoId', + 'TeamFinals' => 'TfTeam', + 'Teams' => 'TeCoId', + 'TournamentInvolved' => 'TiCountry', + ); + + $RoundRobins=[ + "RoundRobinMatches" => ['RrMatchTeam', 'RrMatchAthlete'], + "RoundRobinParticipants" => ['RrPartTeam', 'RrPartParticipant'], + "RunArchery" => ['RaTeam', 'RaEntry'], + "RunArcheryRank" => ['RarTeam', 'RarEntry'], + "RunArcheryParticipants" => ['RapTeam', 'RapEntry'], + ]; + + $Gara['Photos']=array(); + $Gara['Flags']=array(); + + // check if there are local Records NOT maintained from WA + $Gara['RecAreas']=array(); + $q=safe_r_sql("select RecAreas.* from RecAreas inner join TourRecords on TrRecCode=ReArCode and TrTournament={$TourId} where ReArWaMaintenance=0"); + while($r=safe_fetch($q)) { + $Gara['RecAreas'][]=$r; + } + + if($Complete) { + // Adds localized Flags + $Select + = "SELECT distinct Flags.* FROM Entries + inner join Countries on EnCountry=CoId + inner join Flags on CoCode=FlCode and FlTournament = {$TourId} + WHERE EnTournament={$TourId} + ORDER BY FlCode, FlTournament DESC"; + $Rs=safe_r_sql($Select); + $oldCode=''; + while($MyRow=safe_fetch_assoc($Rs)){ + if($oldCode!=$MyRow["FlCode"]) + $Gara['Flags'][]=$MyRow; + $oldCode=$MyRow["FlCode"]; + } + + // and Pictures + $Select + = "SELECT Photos.* FROM Photos inner join Entries on Entries.EnId=Photos.PhEnId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; + $Rs=safe_r_sql($Select); + while($MyRow=safe_fetch_assoc($Rs)){ + $Gara['Photos'][]=$MyRow; + } + } + + $noIds=array( + 'AccPrice' => 'APId', + ); + + // prendo le Tabelle definite nell'array che si estraggono sul Tournament + foreach($tabs as $tab=>$code) { + $Gara[$tab]=array(); + $Select = "SELECT * FROM $tab WHERE {$code}Tournament=" . StrSafe_DB($TourId) . " "; + if(!empty($NotExportableKeys[$tab])) { + $Select.= " and ".implode(' AND ', $NotExportableKeys[$tab]); + } + $Rs=safe_r_sql($Select); + while($MyRow=safe_fetch_assoc($Rs)){ + if(isset($noIds[$tab])) unset($MyRow[$noIds[$tab]]); + $Gara[$tab][]=$MyRow; + } + } + + // ExtraData + $Gara['ExtraData']=array(); + $Select + = "SELECT ExtraData.* FROM ExtraData inner join Entries on Entries.EnId=ExtraData.EdId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; + $Rs=safe_r_sql($Select); + while($MyRow=safe_fetch_assoc($Rs)){ + $Gara['ExtraData'][]=$MyRow; + } + + // ExtraDataCountries + $Gara['ExtraDataCountries']=array(); + $Select + = "SELECT ExtraDataCountries.* FROM ExtraDataCountries inner join Countries on CoId=EdcId WHERE CoTournament=" . StrSafe_DB($TourId) . " "; + $Rs=safe_r_sql($Select); + while($MyRow=safe_fetch_assoc($Rs)){ + $Gara['ExtraDataCountries'][]=$MyRow; + } + + // ElabQualifications + $Gara['ElabQualifications']=array(); + $Select + = "SELECT ElabQualifications.* FROM ElabQualifications inner join Entries on Entries.EnId=ElabQualifications.EqId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; + $Rs=safe_r_sql($Select); + while($MyRow=safe_fetch_assoc($Rs)){ + $Gara['ElabQualifications'][]=$MyRow; + } + + // Qualifications + $Gara['Qualifications']=array(); + $Select + = "SELECT Qualifications.* FROM Qualifications inner join Entries on Entries.EnId=Qualifications.QuId WHERE Entries.EnTournament=" . StrSafe_DB($TourId) . " "; + $Rs=safe_r_sql($Select); + while($MyRow=safe_fetch_assoc($Rs)){ + $Gara['Qualifications'][]=$MyRow; + } + + // Vegas + $Gara['Vegas']=array(); + $Select + = "SELECT Vegas.* FROM Vegas inner join Entries on EnId=VeId WHERE EnTournament=" . StrSafe_DB($TourId) . " "; + $Rs=safe_r_sql($Select); + while($MyRow=safe_fetch_assoc($Rs)){ + $Gara['Vegas'][]=$MyRow; + } + + if($InfoSystem) { + // protects Tournament images + $Gara['Tournament']['ToImgL']=' '.bin2hex($Gara['Tournament']['ToImgL']); + $Gara['Tournament']['ToImgR']=' '.bin2hex($Gara['Tournament']['ToImgR']); + $Gara['Tournament']['ToImgB']=' '.bin2hex($Gara['Tournament']['ToImgB']); + $Gara['Tournament']['ToImgB2']=' '.bin2hex($Gara['Tournament']['ToImgB2']); + // gets all data in an array + $switches=array(); + $q=safe_r_SQL("Select * from OnLineIds where OliServer='$InfoSystem' and OliTournament={$_SESSION['TourId']}"); + while($r=safe_fetch($q)) { + $switches[$r->OliType][$r->OliId]=$r->OliOnlineId; + } + + // removes not defined entries/countries + //adjust Entries + $NewEntries=array(); + foreach($Gara['Entries'] as $Id => $Entry) { + if(empty($switches['E'][$Id]) + or empty($switches['C'][$Entry['EnCountry']]) + or (empty($switches['C'][$Entry['EnCountry2']]) and $Entry['EnCountry2']) + or (empty($switches['C'][$Entry['EnCountry3']]) and $Entry['EnCountry3']) + ) { + unset($switches['E'][$Id]); // missing entry, deletes the entry + continue; // skip the new entries + } + $Entry['EnId']=$switches['E'][$Id]; + $Entry['EnOnlineId']=$switches['E'][$Id]; + $Entry['EnTournament']=$switches['T'][$_SESSION['TourId']]; + $Entry['EnCountry']=$switches['C'][$Entry['EnCountry']]; + if($Entry['EnCountry2']) $Entry['EnCountry2']=$switches['C'][$Entry['EnCountry2']]; + if($Entry['EnCountry3']) $Entry['EnCountry3']=$switches['C'][$Entry['EnCountry3']]; + $NewEntries[$Entry['EnId']]=$Entry; + } + $Gara['Entries']=$NewEntries; + + // adjust Countries + $NewEntries=array(); + foreach($Gara['Countries'] as $Id => $Entry) { + if(empty($switches['C'][$Id])) { + unset($switches['C'][$Id]); // missing country, deletes the entry + continue; // skip the new entries + } + $Entry['CoId']=$switches['C'][$Id]; + $Entry['CoOnlineId']=$switches['C'][$Id]; + $Entry['CoTournament']=$switches['T'][$_SESSION['TourId']]; + $NewEntries[$Entry['CoId']]=$Entry; + } + $Gara['Countries']=$NewEntries; + + // adjust EnId + foreach($tabsEnId as $tab => $Ids) { + if(is_array($Ids)) { + foreach($Ids as $Id) { + foreach($Gara[$tab] as $k=>$v) { + if($v[$Id] and !empty($switches['E'][$v[$Id]])) { + // the user has an Online ID + $Gara[$tab][$k][$Id]=$switches['E'][$v[$Id]]; + } elseif($tab!='Finals') { + // unset the record... will be send later on the next cycle + unset($Gara[$tab][$k]); + } + } + } + } else { + foreach($Gara[$tab] as $k=>$v) { + if($v[$Ids] and !empty($switches['E'][$v[$Ids]])) { + // the user has an Online ID + $Gara[$tab][$k][$Ids]=$switches['E'][$v[$Ids]]; + } elseif($tab!='Finals' and $tab!='Eliminations' and $tab!='TeamFinals') { + // unset the record... will be send later on the next cycle + unset($Gara[$tab][$k]); + } + } + } + } + + // adjust CoId + foreach($tabsCoId as $tab => $Id) { + foreach($Gara[$tab] as $k=>$v) { + if($v[$Id] and !empty($switches['C'][$v[$Id]])) { + // the user has an Online ID + $Gara[$tab][$k][$Id]=$switches['C'][$v[$Id]]; + } elseif($tab!='TeamFinals') { + // unset the record... will be send later on the next cycle + unset($Gara[$tab][$k]); + } + } + } + + // Adjust mixed tables + foreach($RoundRobins as $tab => $flags) { + foreach($Gara[$tab] as $k=>$v) { + if($v[$flags[0]]) { + // it is a team ID + if($v[$flags[1]] and !empty($switches['C'][$v[$flags[1]]])) { + // the user has an Online ID + $Gara[$tab][$k][$flags[1]]=$switches['C'][$v[$flags[1]]]; +// } elseif($tab!='TeamFinals') { +// // unset the record... will be send later on the next cycle +// unset($Gara[$tab][$k]); + } + } else { + // it is an entry ID + if($v[$flags[1]] and !empty($switches['E'][$v[$flags[1]]])) { + // the user has an Online ID + $Gara[$tab][$k][$flags[1]]=$switches['E'][$v[$flags[1]]]; +// } elseif($tab!='Finals' and $tab!='Eliminations') { +// // unset the record... will be send later on the next cycle +// unset($Gara[$tab][$k]); + } + } + } + } + + // adjust the array-based IDs + foreach($Gara['TeamFinals'] as $k=>$line) { + if($line['TfShootingArchers']) { + $newArchers=[]; + foreach(json_decode($line['TfShootingArchers']) as $a=>$b) { + if(!empty($switches['E'][$b])) { + $newArchers["$a"]=$switches['E'][$b]; + } + } + $Gara['TeamFinals'][$k]['TfShootingArchers']=json_encode($newArchers); + } + } + + // adjust ToId + if($Complete) $tabs['Flags']='Fl'; + foreach($tabs as $tab => $Id) { + foreach($Gara[$tab] as $k=>$v) { + $Gara[$tab][$k][$Id.'Tournament']=$switches['T'][$_SESSION['TourId']]; + } + } + } + + return $Gara; +} diff --git a/src/Common/Lib/Fun_Scheduler.php b/src/Common/Lib/Fun_Scheduler.php index df60e42d..5618cb40 100644 --- a/src/Common/Lib/Fun_Scheduler.php +++ b/src/Common/Lib/Fun_Scheduler.php @@ -353,8 +353,8 @@ function GetSchedule() { inner join Tournament on ToId=SchTournament where SchTournament=$this->TourId and SchDay>0 and SchStart>0 - ".($this->SingleDay ? " and date(convert_tz(SchDay, ToTimeZone, '+00:00'))='$this->SingleDay'" : '')." - ".($this->FromDay ? " and date(convert_tz(SchDay, ToTimeZone, '+00:00'))>='$this->FromDay'" : '')." + ".($this->SingleDay ? " and SchDay='$this->SingleDay'" : '')." + ".($this->FromDay ? " and SchDay>='$this->FromDay'" : '')." "; } @@ -426,14 +426,14 @@ function GetSchedule() { where DiTournament=$this->TourId and DiDay>0 and (DiStart>0 or DiWarmStart>0) - " .($this->SingleDay ? " and date(convert_tz(DiDay, ToTimeZone, '+00:00'))='$this->SingleDay'" : '') ." - " .($this->FromDay ? " and date(convert_tz(DiDay, ToTimeZone, '+00:00'))>='$this->FromDay'" : '') ." + " .($this->SingleDay ? " and DiDay='$this->SingleDay'" : '') ." + " .($this->FromDay ? " and DiDay>='$this->FromDay'" : '') ." " .(strlen($this->SesFilter) ? " and DiSession='$this->SesFilter'" : '') ." group by DiDistance, DiSession, DiType order by DiDay, DiStart, DiWarmStart, DiSession, DiDistance"; } else { for($i=1; $i<=8; $i++) { - $DistanceNames.=" left join (select TdTournament as Td{$i}Tournament, group_concat(distinct Td{$i} separator '£££') as Td{$i}, QuSession as Td{$i}Session from TournamentDistances inner join Entries on EnTournament=TdTournament and concat(EnDivision,EnClass) like TdClasses inner join Qualifications on QuId=EnId where TdTournament={$this->TourId} group by Td{$i}, Td{$i}Session) Td{$i} on Td{$i}Tournament=DiTournament and DiDistance={$i} and Td{$i}Session=DiSession \n"; + $DistanceNames.=" left join (select TdTournament as Td{$i}Tournament, group_concat(distinct Td{$i} order by Td{$i} desc separator '£££') as Td{$i}, QuSession as Td{$i}Session from TournamentDistances inner join Entries on EnTournament=TdTournament and concat(EnDivision,EnClass) like TdClasses inner join Qualifications on QuId=EnId where TdTournament={$this->TourId} group by Td{$i}Session) Td{$i} on Td{$i}Tournament=DiTournament and DiDistance={$i} and Td{$i}Session=DiSession \n"; } $SQL[]="select distinct @@ -468,8 +468,8 @@ function GetSchedule() { $DistanceNames where DiTournament=$this->TourId and DiDay>0 and (DiStart>0 or DiWarmStart>0) - ".($this->SingleDay ? " and date(convert_tz(DiDay, ToTimeZone, '+00:00'))='$this->SingleDay'" : '')." - ".($this->FromDay ? " and date(convert_tz(DiDay, ToTimeZone, '+00:00'))>='$this->FromDay'" : '')." + ".($this->SingleDay ? " and DiDay='$this->SingleDay'" : '')." + ".($this->FromDay ? " and DiDay>='$this->FromDay'" : '')." ".(strlen($this->SesFilter) ? " and DiSession='$this->SesFilter'" : '')." order by DiDay, DiStart, DiWarmStart, DiSession, DiDistance"; } @@ -511,8 +511,8 @@ function GetSchedule() { inner join DistanceInformation on SesTournament=DiTournament and SesOrder=DiSession and ElElimPhase=DiDistance and DiType='E' where DiTournament=$this->TourId and DiDay>0 and (DiStart>0 or DiWarmStart>0) - ".($this->SingleDay ? " and date(convert_tz(DiDay, ToTimeZone, '+00:00'))='$this->SingleDay'" : '')." - ".($this->FromDay ? " and date(convert_tz(DiDay, ToTimeZone, '+00:00'))>='$this->FromDay'" : '')." + ".($this->SingleDay ? " and DiDay='$this->SingleDay'" : '')." + ".($this->FromDay ? " and DiDay>='$this->FromDay'" : '')." order by DiDay, DiStart, DiWarmStart, DiSession, DiDistance"; } @@ -587,8 +587,8 @@ function GetSchedule() { where SesTournament=$this->TourId and SesName!='' and SesDtStart>0 - ".($this->SingleDay ? " and date(convert_tz(SesDtStart, ToTimeZone, '+00:00'))='$this->SingleDay'" : '')." - ".($this->FromDay ? " and date(convert_tz(SesDtStart, ToTimeZone, '+00:00'))>='$this->FromDay'" : '')." + ".($this->SingleDay ? " and date(SesDtStart)='$this->SingleDay'" : '')." + ".($this->FromDay ? " and date(SesDtStart)>='$this->FromDay'" : '')." order by SesDtStart"; $SQL[]="select distinct @@ -625,8 +625,8 @@ function GetSchedule() { left join FinWarmup on FsEvent=FwEvent and FsTeamEvent=FwTeamEvent and FsTournament=FwTournament and FsScheduledDate=FwDay and FsScheduledTime=FwMatchTime where FsTournament=$this->TourId and FsScheduledDate>0 and (FsScheduledTime>0 or FwTime>0) - ".($this->SingleDay ? " and date(convert_tz(FsScheduledDate, ToTimeZone, '+00:00'))='$this->SingleDay'" : '')." - ".($this->FromDay ? " and date(convert_tz(FsScheduledDate, ToTimeZone, '+00:00'))>='$this->FromDay'" : '')." + ".($this->SingleDay ? " and FSScheduledDate='$this->SingleDay'" : '')." + ".($this->FromDay ? " and FSScheduledDate>='$this->FromDay'" : '')." group by /*if(EvElimType>=3, FsMatchNo, 0), */FsTeamEvent, FsScheduledDate, FsScheduledTime, Locations, if(EvWinnerFinalRank>1, EvWinnerFinalRank*100-GrPhase, GrPhase), FwTime order by FsTeamEvent, FsScheduledDate, FsScheduledTime, EvFirstRank, GrPhase, FwTime "; @@ -637,9 +637,9 @@ function GetSchedule() { $LocationFields=sprintf($LocField, 'RrMatchTarget*1'); $Date="RrMatchScheduledDate>0"; if($this->SingleDay) { - $Date="date(convert_tz(RrMatchScheduledDate, ToTimeZone, '+00:00'))='$this->SingleDay'"; + $Date="RRMatchScheduledDate='$this->SingleDay'"; } elseif($this->FromDay) { - $Date="date(convert_tz(RrMatchScheduledDate, ToTimeZone, '+00:00'))>='$this->FromDay'"; + $Date="RRMatchScheduledDate>='$this->FromDay'"; } $SQL[]="select distinct concat_ws('-',group_concat(distinct RrMatchEvent order by EvProgr separator '-'), (RrMatchLevel*1000000)+(RrMatchGroup*10000)+(RrMatchRound*100), sum(RrMatchMatchNo)) as UID, @@ -685,9 +685,9 @@ function GetSchedule() { $LocationFields=sprintf($LocField, '0'); $Date="RarStartlist>0"; if($this->SingleDay) { - $Date="date(convert_tz(RarStartlist, ToTimeZone, '+00:00'))='$this->SingleDay'"; + $Date="date(RarStartlist)='$this->SingleDay'"; } elseif($this->FromDay) { - $Date="date(convert_tz(RarStartlist, ToTimeZone, '+00:00'))>='$this->FromDay'"; + $Date="date(RarStartlist)>='$this->FromDay'"; } $SQL[]="select distinct concat_ws('-', RarTeam, RarEvent, RarPhase, RarPool, RarGroup) as UID, @@ -778,7 +778,7 @@ function getScheduleHTML($Type='IS', $Title='') { .'|'.$Time .'|'.$Session .'|'.$Distance - .'|'.round($Item->Order, 4); + .'|'.round((float) $Item->Order, 4); if($Item->Comments) { $SingleKey="{$Item->Duration}-{$Item->Title}-{$Item->SubTitle}-{$Item->Comments}"; if(in_array($SingleKey, $Singles)) continue; @@ -910,11 +910,19 @@ function getScheduleHTML($Type='IS', $Title='') { if($Item->Text!=$OldText) { $txt=$Item->Text.'
    '.$txt; } - } elseif($Item==@end(end(end(end($this->Groups[$Item->Type][$Session]))))) { - $txt=$Item->DistanceName.implode('
    ', $lnk); +// } elseif($Item==@end(end(end(end($this->Groups[$Item->Type][$Session]))))) { } else { - $txt=$Item->DistanceName; - // more distances defined so format is different... + $txt=$Item->DistanceName; + foreach($this->Groups[$Item->Type][$Session] as $k1=>$v1) { + if(!empty($v1[$Date][$Time])) { + foreach($v1[$Date][$Time] as $tmp) { + if($tmp==$Item) { + $txt.='
    '.implode('
    ', $lnk); + break 2; + } + } + } + } } if($Item->RowLocation) { diff --git a/src/Common/Menu.php b/src/Common/Menu.php index d9dbed62..421ec520 100644 --- a/src/Common/Menu.php +++ b/src/Common/Menu.php @@ -116,9 +116,6 @@ function get_which_menu($on=false) { $ret['COMP']['EXPT'][] = get_text('MenuLM_Export Tournament') . '|' . $CFG->ROOT_DIR . 'Tournament/TournamentExport.php'; $ret['COMP']['EXPT'][] = get_text('MenuLM_Export Tournament Photo') . '|' . $CFG->ROOT_DIR . 'Tournament/TournamentExport.php?Complete=1'; if (ProgramRelease == 'HEAD') $ret['COMP']['EXPT'][] = get_text('MenuLM_Export Entries') . '|' . $CFG->ROOT_DIR . 'Partecipants/EntriesExchange.php'; - if($_SESSION['TourType']==6 AND $_SESSION['TourRealWhenFrom']>='2023-10-27' AND $_SESSION['TourRealWhenTo']<='2024-02-05') { - $ret['COMP']['EXPT'][] = get_text('MenuLM_ExportIndoorWorldSeries') . '|' . $CFG->ROOT_DIR . 'Qualification/ExportIWS.php'; - } $ret['COMP'][] = MENU_DIVIDER; } if ($acl[AclInternetPublish] == AclReadWrite) { @@ -457,14 +454,6 @@ function get_which_menu($on=false) { $ret['API'][] = get_text('ISKMenuHeader') .''; switch($_SESSION['UseApi']) { - case 2: - case 1: - // MUST stay here!!! - @include_once('Api/ISK/menu.php'); - break; - case 3: - @include_once('Api/ISK-Live/menu.php'); - break; case 11: case 12: case 13: @@ -663,238 +652,24 @@ function get_which_run_menu($on=false) { if ($acl[AclQualification] == AclReadWrite) { $ret['RUN']['SCOR'][] = get_text('MenuLM_Input Score') . '|' . $CFG->ROOT_DIR . 'RunArchery/index.php'; $ret['RUN']['SCOR'][] = get_text('MenuLM_Standard Table') . '|' . $CFG->ROOT_DIR . 'RunArchery/index.php'; - // $ret['RUN']['SCOR'][] = get_text('MenuLM_Extended Table') . '|' . $CFG->ROOT_DIR . 'RunArchery/index_all.php'; - // $ret['RUN']['SCOR'][] = get_text('MenuLM_Arrow by Arrow (Advanced user)') . '|' . $CFG->ROOT_DIR . 'RunArchery/WriteArrows.php'; - // $ret['RUN']['SCOR'][] = get_text('MenuLM_Arrow by Arrow (Scorecards)') . '|' . $CFG->ROOT_DIR . 'RunArchery/WriteScoreCard.php'; - // $ret['RUN']['SCOR'][] = MENU_DIVIDER; - // $ret['RUN']['SCOR'][] = get_text('MenuLM_Check Data Update') . '|' . $CFG->ROOT_DIR . 'RunArchery/CheckTargetUpdate.php'; - // $ret['RUN']['SCOR'][] = get_text('SnapshotConf') . '|' . $CFG->ROOT_DIR . 'RunArchery/SnapshotConf.php'; $ret['RUN'][] = MENU_DIVIDER; } if ($acl[AclQualification] >= AclReadOnly) { - // $ret['RUN'][] = get_text('MenuLM_Export Text File') . '|' . $CFG->ROOT_DIR . 'RunArchery/ExportTSV.php'; - // $ret['RUN'][] = MENU_DIVIDER; $ret['RUN'][] = get_text('MenuLM_Scorecard Printout') . '|' . $CFG->ROOT_DIR . 'RunArchery/PrintScore.php'; $ret['RUN'][] = get_text('MenuLM_NewBacknumbers') . '|' . $CFG->ROOT_DIR . 'Accreditation/IdCards.php?CardType=Q'; - // $ret['RUN'][] = get_text('MenuLM_Qualification Field of Play Layout') . '|' . $CFG->ROOT_DIR . 'RunArchery/FopSetup.php|||PrintOut'; - // $ret['RUN'][] = MENU_DIVIDER; - // $ret['RUN'][] = get_text('MenuLM_Personal Rank') . '|' . $CFG->ROOT_DIR . 'RunArchery/RankPersonal1.php'; - // $ret['RUN'][] = MENU_DIVIDER; - // if($_SESSION['TourType']>=6 AND $_SESSION['TourType']<=8 AND $_SESSION['TourLocRule']=='IT') { - // $ret['RUN'][] = get_text('SubClassRank','Tournament') . '|' . $CFG->ROOT_DIR . 'RunArchery/PrnIndividual.php?SubClassRank=on&SubClassClassRank=on|||PrintOut'; - // } + $ret['RUN'][] = get_text('Rankings') . '|' . $CFG->ROOT_DIR . 'RunArchery/PrintOut.php'; $ret['RUN'][] = get_text('MenuLM_OdsExport') . '|' . $CFG->ROOT_DIR . 'RunArchery/Export.php'; - // $ret['RUN'][] = get_text('MenuLM_Qualification Round') . '|' . $CFG->ROOT_DIR . 'RunArchery/PrintOutAbs.php'; } - - // /** QUALIFICATIONS MENU **/ - // $ret['QUAL'][] = get_text('MenuLM_Qualification') .''; - // if ($acl[AclQualification] == AclReadWrite) { - // $ret['QUAL']['SCOR'][] = get_text('MenuLM_Input Score'); - // $ret['QUAL']['SCOR'][] = get_text('MenuLM_Standard Table') . '|' . $CFG->ROOT_DIR . 'Qualification/index.php'; - // $ret['QUAL']['SCOR'][] = get_text('MenuLM_Extended Table') . '|' . $CFG->ROOT_DIR . 'Qualification/index_all.php'; - // $ret['QUAL']['SCOR'][] = get_text('MenuLM_Arrow by Arrow (Advanced user)') . '|' . $CFG->ROOT_DIR . 'Qualification/WriteArrows.php'; - // $ret['QUAL']['SCOR'][] = get_text('MenuLM_Arrow by Arrow (Scorecards)') . '|' . $CFG->ROOT_DIR . 'Qualification/WriteScoreCard.php'; - // $ret['QUAL']['SCOR'][] = MENU_DIVIDER; - // $ret['QUAL']['SCOR'][] = get_text('MenuLM_Check Data Update') . '|' . $CFG->ROOT_DIR . 'Qualification/CheckTargetUpdate.php'; - // $ret['QUAL']['SCOR'][] = get_text('SnapshotConf') . '|' . $CFG->ROOT_DIR . 'Qualification/SnapshotConf.php'; - // $ret['QUAL'][] = MENU_DIVIDER; - // } - // if ($acl[AclQualification] >= AclReadOnly) { - // $ret['QUAL'][] = get_text('MenuLM_Export Text File') . '|' . $CFG->ROOT_DIR . 'Qualification/ExportTSV.php'; - // $ret['QUAL'][] = MENU_DIVIDER; - // $ret['QUAL'][] = get_text('MenuLM_Scorecard Printout') . '|' . $CFG->ROOT_DIR . 'Qualification/PrintScore.php'; - // $ret['QUAL'][] = get_text('MenuLM_NewBacknumbers') . '|' . $CFG->ROOT_DIR . 'Accreditation/IdCards.php?CardType=Q'; - // $ret['QUAL'][] = get_text('MenuLM_Qualification Field of Play Layout') . '|' . $CFG->ROOT_DIR . 'Qualification/FopSetup.php|||PrintOut'; - // $ret['QUAL'][] = MENU_DIVIDER; - // $ret['QUAL'][] = get_text('MenuLM_Personal Rank') . '|' . $CFG->ROOT_DIR . 'Qualification/RankPersonal1.php'; - // $ret['QUAL'][] = MENU_DIVIDER; - // if($_SESSION['TourType']>=6 AND $_SESSION['TourType']<=8 AND $_SESSION['TourLocRule']=='IT') { - // $ret['QUAL'][] = get_text('SubClassRank','Tournament') . '|' . $CFG->ROOT_DIR . 'Qualification/PrnIndividual.php?SubClassRank=on&SubClassClassRank=on|||PrintOut'; - // } - // $ret['QUAL'][] = get_text('MenuLM_Category Result List') . '|' . $CFG->ROOT_DIR . 'Qualification/PrintOut.php'; - // $ret['QUAL'][] = get_text('MenuLM_Qualification Round') . '|' . $CFG->ROOT_DIR . 'Qualification/PrintOutAbs.php'; - // } - - /** ELIMINATION MENU **/ -// if($_SESSION['MenuElimDo']) { -// $ret['ELIM'][] = get_text('MenuLM_Eliminations') .''; -// if ($acl[AclEliminations] == AclReadWrite) { -// $tmp = get_text('MenuLM_Check shoot-off before eliminations') . ''; -// if ($_SESSION['MenuElim1']) { -// $tmp .= ' (Round 1: ' . implode('-', $_SESSION['MenuElim1']) . ')'; -// } -// if ($_SESSION['MenuElim2']) { -// $tmp .= ' (Round 2: ' . implode('-', $_SESSION['MenuElim2']) . ')'; -// } -// $tmp .= '|' . $CFG->ROOT_DIR . 'Final/Individual/AbsIndividual.php'; -// $ret['ELIM'][] = $tmp; -// $ret['ELIM'][] = MENU_DIVIDER; -// } -// if ($acl[AclEliminations] >= AclReadOnly) { -// $ret['ELIM'][] = get_text('MenuLM_Scorecard Printout') . '|' . $CFG->ROOT_DIR . 'Elimination/PrintScore.php'; -// $ret['ELIM'][] = get_text('MenuLM_NewBacknumbers') . '|' . $CFG->ROOT_DIR . 'Accreditation/IdCards.php?CardType=E'; -// $ret['ELIM'][] = MENU_DIVIDER; -// } -// if ($acl[AclEliminations] == AclReadWrite) { -// $ret['ELIM'][] = get_text('MenuLM_Target Assignment') . '|' . $CFG->ROOT_DIR . 'Elimination/SetTarget.php'; -// } -// if($_SESSION['MenuElimOn']) { -// if ($acl[AclEliminations] == AclReadWrite) { -// $ret['ELIM']['SCOR'][] = get_text('MenuLM_Input Score'); -// $ret['ELIM']['SCOR'][] = get_text('MenuLM_Standard Table') . '|' . $CFG->ROOT_DIR . 'Elimination/index.php'; -// $ret['ELIM']['SCOR'][] = get_text('MenuLM_Arrow by Arrow (Advanced user)') . '|' . $CFG->ROOT_DIR . 'Elimination/WriteArrows.php'; -// $ret['ELIM']['SCOR'][] = get_text('MenuLM_Arrow by Arrow (Scorecards)') . '|' . $CFG->ROOT_DIR . 'Elimination/WriteScoreCard.php'; -// $ret['ELIM'][] = MENU_DIVIDER; -// } -// if ($acl[AclEliminations] >= AclReadOnly) { -// $ret['ELIM'][] = get_text('MenuLM_Printout') . '|' . $CFG->ROOT_DIR . 'Elimination/PrintOut.php'; -// } -// } -// } -// -// if($_SESSION['MenuElimPoolDo']) { -// $ret['ELIMP'][] = get_text('MenuLM_Pools') .''; -// if ($acl[AclEliminations] == AclReadWrite) { -// $tmp = get_text('MenuLM_Check shoot-off before eliminations') . ''; -// if ($_SESSION['MenuElimPool']) { -// $tmp .= ' (Pool: ' . implode('-', $_SESSION['MenuElimPool']) . ')'; -// } -// $tmp .= '|' . $CFG->ROOT_DIR . 'Final/Individual/AbsIndividual.php'; -// $ret['ELIMP'][] = $tmp; -// $ret['ELIMP'][] = MENU_DIVIDER; -// } -// if ($acl[AclEliminations] >= AclReadOnly) { -// $ret['ELIMP'][] = get_text('MenuLM_Scorecard Printout') . '|' . $CFG->ROOT_DIR . 'Final/Individual/PrintScore.php'; -// $ret['ELIMP'][] = get_text('MenuLM_NewBacknumbers') . '|' . $CFG->ROOT_DIR . 'Accreditation/IdCards.php?CardType=I'; -// $ret['ELIMP'][] = MENU_DIVIDER; -// } -// if ($acl[AclEliminations] == AclReadWrite) { -// $ret['ELIMP'][] = get_text('MenuLM_Target Assignment') . '|' . $CFG->ROOT_DIR . 'Elimination/SetTarget.php'; -// } -// if($_SESSION['MenuElimOn']) { -// if ($acl[AclEliminations] == AclReadWrite) { -// $ret['ELIMP'][] = get_text('MenuLM_Spotting') . '|' . $CFG->ROOT_DIR . 'Final/Spotting.php'; -// $ret['ELIMP'][] = MENU_DIVIDER; -// $ret['ELIMP']['SCOR'][] = get_text('MenuLM_Input Score'); -// $ret['ELIMP']['SCOR'][] = get_text('MenuLM_Data insert (Table view)') . '|' . $CFG->ROOT_DIR . 'Final/Individual/InsertPoint1.php'; -// } -// if ($acl[AclEliminations] >= AclReadOnly) { -// $ret['ELIMP'][] = get_text('MenuLM_Printout') . '|' . $CFG->ROOT_DIR . 'Elimination/PrintOut.php'; -// } -// } -// } -// -// -// /** INDIVIDUAL FINAL MENU **/ -// if($_SESSION['MenuFinIDo']) { -// $ret['FIN'][] = get_text('MenuLM_Individual Finals') .''; -// if($acl[AclIndividuals] == AclReadWrite) { -// $tmp = get_text('MenuLM_Check shoot-off before final phases') . ''; -// if ($_SESSION['MenuFinI']) { -// $tmp .= ' (' . implode('-', $_SESSION['MenuFinI']) . ')'; -// } -// $tmp .= '|' . $CFG->ROOT_DIR . 'Final/Individual/AbsIndividual.php'; -// $ret['FIN'][] = $tmp; -// } -// if($acl[AclIndividuals] >= AclReadOnly) { -// $ret['FIN'][] = get_text('MenuLM_PrnShootOff') . '|' . $CFG->ROOT_DIR . 'Qualification/PrnShootoff.php|||PrintOut'; -// $ret['FIN'][] = MENU_DIVIDER; -// $ret['FIN'][] = get_text('MenuLM_Export Text File') . '|' . $CFG->ROOT_DIR . 'Final/ExportTSV.php'; -// $ret['FIN'][] = MENU_DIVIDER; -// $ret['FIN'][] = get_text('MenuLM_Scorecard Printout') . '|' . $CFG->ROOT_DIR . 'Final/Individual/PrintScore.php'; -// // $ret['FIN'][] = get_text('MenuLM_Back Number Printout') .'|'.$CFG->ROOT_DIR.'Final/Individual/PrintBackNo.php'; -// $ret['FIN'][] = get_text('MenuLM_NewBacknumbers') . '|' . $CFG->ROOT_DIR . 'Accreditation/IdCards.php?CardType=I'; -// } -// if($_SESSION['MenuFinIOn']) { -// if($acl[AclIndividuals] == AclReadWrite) { -// $ret['FIN'][] = MENU_DIVIDER; -// $ret['FIN'][] = get_text('MenuLM_Data insert (Bracket view)') . '|' . $CFG->ROOT_DIR . 'Final/Individual/InsertPoint_Bra.php'; -// $ret['FIN'][] = get_text('MenuLM_Data insert (Table view)') . '|' . $CFG->ROOT_DIR . 'Final/Individual/InsertPoint1.php'; -// $ret['FIN'][] = get_text('MenuLM_Arrow by Arrow (Advanced user)') . '|' . $CFG->ROOT_DIR . 'Final/WriteArrows.php'; -// $ret['FIN'][] = get_text('MenuLM_Spotting') . '|' . $CFG->ROOT_DIR . 'Final/Spotting.php'; -// } -// if($acl[AclIndividuals] >= AclReadOnly) { -// $ret['FIN'][] = MENU_DIVIDER; -// $ret['FIN'][] = get_text('MenuLM_Printout') . '|' . $CFG->ROOT_DIR . 'Final/PrintOut.php'; -// } -// } -// } - /** PRINTOUT MENU **/ $ret['PRNT'][] = get_text('MenuLM_Printout') .''; - // if ($acl[AclParticipants] >= AclReadOnly) { - // $ret['PRNT'][] = get_text('MenuLM_Participant Lists') . '|' . $CFG->ROOT_DIR . 'Partecipants/PrintOut.php'; - // $ret['PRNT'][] = get_text('MenuLM_Statistics') . '|' . $CFG->ROOT_DIR . 'Partecipants/PrintOutStat.php'; - // $ret['PRNT'][] = MENU_DIVIDER; - // } if ($acl[AclQualification] >= AclReadOnly) { $ret['PRNT'][] = get_text('Rankings') . '|' . $CFG->ROOT_DIR . 'RunArchery/PrintOut.php'; $ret['PRNT'][] = MENU_DIVIDER; } - // if ($acl[AclIndividuals] >= AclReadOnly OR $acl[AclTeams] >= AclReadOnly) { - // $ret['PRNT'][] = get_text('MenuLM_Final Rounds') . '|' . $CFG->ROOT_DIR . 'Final/PrintOut.php'; - // $ret['PRNT'][] = MENU_DIVIDER; - // } - // if ($acl[AclQualification] == AclReadWrite OR $acl[AclEliminations] == AclReadWrite OR $acl[AclIndividuals] == AclReadWrite OR $acl[AclTeams] == AclReadWrite) { - // $ret['PRNT'][] = get_text('MenuLM_Header for Result Printouts') . '|' . $CFG->ROOT_DIR . 'Tournament/PrintoutComments.php'; - // $ret['PRNT'][] = MENU_DIVIDER; - // } - // if ($acl[AclCompetition] == AclReadWrite) { - // $ret['PRNT'][] = get_text('MenuLM_ManAwards') . '|' . $CFG->ROOT_DIR . 'Tournament/ManAwards.php'; - // } - // if ($acl[AclCompetition] >= AclReadOnly) { - // $ret['PRNT'][] = get_text('MenuLM_CheckAwards') . '|' . $CFG->ROOT_DIR . 'Tournament/PDFAward-check.php|||PrintOut'; - // $ret['PRNT'][] = get_text('MenuLM_PrintAwardsPositions') . '|' . $CFG->ROOT_DIR . 'Tournament/PDFAward-Positions.php|||PrintOut'; - // $ret['PRNT'][] = get_text('MenuLM_PrintAwards') . '|' . $CFG->ROOT_DIR . 'Tournament/PDFAward.php|||PrintOut'; - // $ret['PRNT'][] = MENU_DIVIDER; - // } if ($acl[AclCompetition] == AclReadWrite) { $ret['PRNT'][] = get_text('MenuLM_Print Sign') . '|' . $CFG->ROOT_DIR . 'Common/Sign'; } - // - // /** HHT MENU **/ - // if ($_SESSION['MenuHHT'] AND ($acl[AclQualification] == AclReadWrite OR $acl[AclIndividuals] == AclReadWrite OR $acl[AclTeams] == AclReadWrite)) { - // $ret['HHT'][] = get_text('MenuLM_HTT') .''; - // $ret['HHT'][] = get_text('MenuLM_HTT Communication Setup') .'|'.$CFG->ROOT_DIR.'HHT/Configuration.php'; - // $ret['HHT'][] = MENU_DIVIDER; - // $ret['HHT'][] = get_text('MenuLM_HTT Setup') .'|'.$CFG->ROOT_DIR.'HHT/InitHTT.php'; - // $ret['HHT'][] = get_text('MenuLM_Athletes Setup') .'|'.$CFG->ROOT_DIR.'HHT/InitAthletes.php'; - // $ret['HHT'][] = get_text('MenuLM_Scores Setup') .'|'.$CFG->ROOT_DIR.'HHT/InitScores.php'; - // $ret['HHT'][] = get_text('MenuLM_Setup HTT Sequence') .'|'.$CFG->ROOT_DIR.'HHT/Sequence.php'; - // $ret['HHT'][] = get_text('MenuLM_Collect Data') .'|'.$CFG->ROOT_DIR.'HHT/Collect.php'; - // $ret['HHT'][] = get_text('MenuLM_Get Info') .'|'.$CFG->ROOT_DIR.'HHT/GetInfo.php'; - // } - // - // if(!empty($_SESSION['UseApi'])) { - // $ret['API'][] = get_text('ISKMenuHeader') .''; - // - // switch($_SESSION['UseApi']) { - // case 2: - // case 1: - // // MUST stay here!!! - // @include_once('Api/ISK/menu.php'); - // break; - // case 3: - // @include_once('Api/ISK-Live/menu.php'); - // break; - // } - // } - // - // /** OUTPUT MENU **/ - // $ret['MEDI'][] = get_text('MenuLM_Output') .''; - // if ($acl[AclOutput] >= AclReadOnly) { - // $ret['MEDI'][] = get_text('MenuLM_TV Output') . '|' . $CFG->ROOT_DIR . 'TV/'; - // $ret['MEDI'][] = get_text('MenuLM_TV Channels') . '|' . $CFG->ROOT_DIR . 'TV/ChannelSetup.php'; - // $ret['MEDI'][] = MENU_DIVIDER; - // $ret['MEDI'][] = get_text('MenuLM_Spotting') . '|' . $CFG->ROOT_DIR . 'Final/Viewer/|||_blank'; - // //if(ProgramRelease=='HEAD' or ProgramRelease=='TESTING') { - // // $ret['MEDI'][] = 'Judges\' Output (EXPERIMENTAL)|' . $CFG->ROOT_DIR . 'Final/Viewer/|||_blank'; - // //} - // $ret['MEDI'][] = 'ShowTvLiveScore|' . $CFG->ROOT_DIR . 'Final/ShowTVScore.php?TourId=' . $_SESSION['TourCode'] . '|||TV'; - // } - } else { // MENU OFF!!! diff --git a/src/Common/OrisFunctions.php b/src/Common/OrisFunctions.php index b19b0421..55f695dc 100644 --- a/src/Common/OrisFunctions.php +++ b/src/Common/OrisFunctions.php @@ -615,6 +615,7 @@ function getStatEntriesByEvent($ORIS='') { $Data->Description='Number of Entries by Event'; $Data->IndexName='Number of Entries by Event'; $Data->Continue=get_text('Continue'); + $Data->LastUpdate=''; $Data->Data=array(); if($ORIS) { @@ -624,6 +625,9 @@ function getStatEntriesByEvent($ORIS='') { $MyQuery = getStatEntriesByEventQuery('IF'); $Rs=safe_r_sql($MyQuery); while ($Row=safe_fetch($Rs)) { + if($Row->EnTimestamp>$Data->LastUpdate) { + $Data->LastUpdate=$Row->EnTimestamp; + } $Data->Data[$Row->Code]=array( 'Name' => $Row->EventName, 'Number' => $Row->Quanti, @@ -710,6 +714,9 @@ function getStatEntriesByEvent($ORIS='') { $QR['Data']=array(); $Rs=safe_r_sql($MyQuery); while ($Row=safe_fetch($Rs)) { + if($Row->EnTimestamp>$Data->LastUpdate) { + $Data->LastUpdate=$Row->EnTimestamp; + } if(!in_array($Row->Divisione, $QR['Div'])) { $QR['Div'][] = $Row->Divisione; } @@ -832,6 +839,7 @@ function getStatEntriesByCountries($ORIS='', $Athletes=false) { $Data->Header=array("NOC","Men#","Women#","Total\nCompetitors#","","Officials#", "Total#"); $Data->HeaderWidth=array(array(10,40),15,15,25,10,15,15,5); $Data->Phase=''; + $Data->LastUpdate=''; $Data->StatCountries=get_text('StatCountries','Tournament'); $Data->Continue=get_text('Continue'); $Data->TotalShort=get_text('TotalShort','Tournament'); @@ -855,6 +863,9 @@ function getStatEntriesByCountries($ORIS='', $Athletes=false) { while ($MyRow=safe_fetch($Rs)) { + if($MyRow->EnTimestamp>$Data->LastUpdate) { + $Data->LastUpdate=$MyRow->EnTimestamp; + } $Data->Data['Items'][$MyRow->NationCode]=$MyRow; } @@ -871,8 +882,9 @@ function getCompetitionOfficials($ORIS=false) { $Data->HeaderWidth=array(55,60,array(10,50),15); $Data->Phase=''; $Data->Data=array(); + $Data->LastUpdate=''; - $Sql = "SELECT TiName, TiGivenName, TiGender, ItDescription, CoCode, CoNameComplete, + $Sql = "SELECT TiName, TiGivenName, TiGender, TiTimeStamp, ItDescription, CoCode, CoNameComplete, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, DvNotes as DocNotes FROM TournamentInvolved LEFT JOIN InvolvedType ON TiType=ItId @@ -886,6 +898,9 @@ function getCompetitionOfficials($ORIS=false) { $Data->DocVersionNotes=''; $q=safe_r_sql($Sql); while ($r=safe_fetch($q)) { + if($r->TiTimeStamp>$Data->LastUpdate) { + $Data->LastUpdate=$r->TiTimeStamp; + } $r->ItDescription=get_text($r->ItDescription, 'Tournament'); $Data->Data['Items'][$r->ItDescription][]=$r; if(!empty($r->DocVersion)) { @@ -954,6 +969,7 @@ function getStartListByCountries($ORIS=false, $Athletes=false, $orderByName=fals $Data->DocVersion=''; $Data->DocVersionDate=''; $Data->DocVersionNotes=''; + $Data->LastUpdate=''; if($ORIS) { $Data->Data['Fields']['TargetNo']='Target'; @@ -976,6 +992,9 @@ function getStartListByCountries($ORIS=false, $Athletes=false, $orderByName=fals while ($MyRow=safe_fetch($Rs)) { if(!empty($MyRow->EvCodeParent)) continue; if(!empty($MyRow->EventName)) $MyRow->EventName=get_text($MyRow->EventName,'','',true); + if($MyRow->EnTimestamp>$Data->LastUpdate) { + $Data->LastUpdate=$MyRow->EnTimestamp; + } $MyRow->DivDescription=get_text($MyRow->DivDescription,'','',true); $MyRow->ClDescription=get_text($MyRow->ClDescription,'','',true); $MyRow->TfName=get_text($MyRow->TfName,'Tournament','',true); @@ -1008,7 +1027,8 @@ function getStandingRecords($ORIS=true) { $Data->DocVersion=''; $Data->DocVersionDate=''; $Data->DocVersionNotes=''; - $Data->RecordAs=$_SESSION['TourRealWhenFrom']; + $Data->RecordAs=''; + $Data->LastUpdate=''; $Data->SubSections=array(); $Data->Data=array(); @@ -1038,7 +1058,10 @@ function getStandingRecords($ORIS=true) { if($MyRow->RtRecDate=='0000-00-00') { $MyRow->RtRecDate=''; } - if($MyRow->RtRecLastUpdated<$Data->RecordAs) { + if($MyRow->RtRecLastUpdated>$Data->LastUpdate) { + $Data->LastUpdate=$MyRow->RtRecLastUpdated; + } + if(substr($MyRow->RtRecLastUpdated, 0, 10)>$Data->RecordAs) { $Data->RecordAs=substr($MyRow->RtRecLastUpdated, 0, 10); } if(!empty($MyRow->EventName)) { @@ -1054,7 +1077,10 @@ function getStandingRecords($ORIS=true) { $Data->DocVersionNotes=$MyRow->DocNotes; } } - + $Data->RecordAs=min($_SESSION['TourRealWhenFrom'], $Data->RecordAs); + if(substr($Data->LastUpdate,0,10)>$_SESSION['TourRealWhenFrom']) { + $Data->LastUpdate=$_SESSION['TourRealWhenFrom']; + } return $Data; } @@ -1077,6 +1103,7 @@ function getBrokenRecords($ORIS=true) { $Data->DocVersionDate=''; $Data->DocVersionNotes=''; $Data->RecordAs=$_SESSION['TourRealWhenTo']; + $Data->LastUpdate=''; $Data->SubSections=array(); $Data->Data=array(); @@ -1101,8 +1128,8 @@ function getBrokenRecords($ORIS=true) { $Rs=safe_r_sql($MyQuery); $Record=array(); - if($CheckDate=(date('Y-m-d')<$Data->RecordAs)) { - $Data->RecordAs=date('Y-m-d'); + if($CheckDate=(getToday()<$Data->RecordAs)) { + $Data->RecordAs=getToday(); } //error_reporting(E_ALL); while ($MyRow=safe_fetch($Rs)) { @@ -1110,6 +1137,9 @@ function getBrokenRecords($ORIS=true) { // // in case full scores the X are marked so check the Xs of the new record // continue; //} + if($MyRow->RecordDate>$Data->LastUpdate) { + $Data->LastUpdate=$MyRow->RecordDate; + } switch($MyRow->Phase) { case '1': if(!$MyRow->RtRecXNine) { @@ -1146,6 +1176,9 @@ function getBrokenRecords($ORIS=true) { $Data->DocVersionNotes=$MyRow->DocNotes; } } + if($Data->LastUpdate) { + $Data->RecordAs=substr($Data->LastUpdate, 0, 10); + } return $Data; } @@ -1160,6 +1193,7 @@ function getCountriesList($ORIS='') { $Data->IndexName='List of Countries'; $Data->HeaderWidth=array(10,20,160); $Data->Phase=''; + $Data->LastUpdate=''; $Data->Data=array(); $Data->Data['Fields'] = array( @@ -1179,13 +1213,16 @@ function getCountriesList($ORIS='') { //echo $MyQuery;exit; $Rs=safe_r_sql($MyQuery); while ($MyRow=safe_fetch($Rs)) { + if($MyRow->EnTimestamp>$Data->LastUpdate) { + $Data->LastUpdate=$MyRow->EnTimestamp; + } $Data->Data['Items'][$MyRow->NationCode][]=$MyRow; } return $Data; } -function getStartListAlphabetical($ORIS='') { +function getStartListAlphabetical($ORIS='', $Athlete=false) { $Data=new StdClass(); $Data->Code='C32B'; @@ -1200,6 +1237,7 @@ function getStartListAlphabetical($ORIS='') { $Data->DocVersion=''; $Data->DocVersionDate=''; $Data->DocVersionNotes=''; + $Data->LastUpdate=''; $Locations=array(); if($FopLocations=Get_Tournament_Option('FopLocations')) { @@ -1249,7 +1287,7 @@ function getStartListAlphabetical($ORIS='') { $Data->IndexName=get_text('StartlistAlpha','Tournament'); $Data->Header=array(get_text('Name', 'Tournament'), get_text('Country'), get_text('Nation'), get_text('DOB', 'Tournament')." #", get_text('Target'), get_text("Event")); } - $MyQuery = getStartListAlphaQuery($ORIS); + $MyQuery = getStartListAlphaQuery($ORIS, $Athlete); $OldLetter=''; $Group=0; @@ -1257,6 +1295,9 @@ function getStartListAlphabetical($ORIS='') { //echo $MyQuery;exit; $Rs=safe_r_sql($MyQuery); while ($MyRow=safe_fetch($Rs)) { + if($MyRow->EnTimestamp>$Data->LastUpdate) { + $Data->LastUpdate=$MyRow->EnTimestamp; + } if(isset($Locations[intval($MyRow->TargetButt)])) { $MyRow->Location=$Locations[intval($MyRow->TargetButt)]; } @@ -1296,6 +1337,7 @@ function getStartListCategory($ORIS=false, $orderByTeam=0, $Events=array()) { $Data->DocVersion=''; $Data->DocVersionDate=''; $Data->DocVersionNotes=''; + $Data->LastUpdate=''; $Data->Data['Fields'] = array( 'SesName' => get_text('Session'), @@ -1352,6 +1394,9 @@ function getStartListCategory($ORIS=false, $orderByTeam=0, $Events=array()) { $Rs=safe_r_sql($MyQuery); while ($MyRow=safe_fetch($Rs)) { + if($MyRow->EnTimestamp>$Data->LastUpdate) { + $Data->LastUpdate=$MyRow->EnTimestamp; + } if($OldCategory != $MyRow->EventCode) { $Group++; $OldCategory = $MyRow->EventCode; @@ -2051,7 +2096,7 @@ function getMedalStand($ORIS=false, $TourId=0) { if($section['meta']['medals']) { $Data->OdfTotalEvents++; foreach($section['items'] as $item) { - if($item['rank']!=0) { + if(is_numeric($item['rank']) and $item['rank']!=0) { if(empty($CountryList[$item['countryCode']])) { $CountryList[$item['countryCode']] = clone $tmp; $CountryList[$item['countryCode']]->Name = $item['countryName']; @@ -2096,7 +2141,7 @@ function getMedalStand($ORIS=false, $TourId=0) { if($section['meta']['medals']) { $Data->OdfTotalEvents++; foreach($section['items'] as $item) { - if($item['rank']!=0) { + if(is_numeric($item['rank']) and $item['rank']!=0) { if(empty($CountryList[$item['countryCode']])) { $CountryList[$item['countryCode']] = clone $tmp; $CountryList[$item['countryCode']]->Name = $item['countryName']; diff --git a/src/Common/PhotoResize.php b/src/Common/PhotoResize.php index 7192f4e6..c19366f8 100644 --- a/src/Common/PhotoResize.php +++ b/src/Common/PhotoResize.php @@ -39,13 +39,13 @@ function photoresize($file, $direct=false, $String=false) { $ratio=min($width/MAX_WIDTH, $height/MAX_HEIGHT); // we resize the image to fit the greater value - $new_width=$width/$ratio; - $new_height=$height/$ratio; + $new_width=intval($width/$ratio); + $new_height=intval($height/$ratio); $im2=imagecreatetruecolor( MAX_WIDTH, MAX_HEIGHT); $bgcolor=imagecolorallocate($im2, 255, 255, 255); imagefill($im2, 0,0,$bgcolor); - if(!imagecopyresampled( $im2, $im, (MAX_WIDTH-$new_width)/2, (MAX_HEIGHT-$new_height)/2,0,0, $new_width, $new_height, $width, $height)) { + if(!imagecopyresampled( $im2, $im, intval((MAX_WIDTH-$new_width)/2), intval((MAX_HEIGHT-$new_height)/2),0,0, $new_width, $new_height, $width, $height)) { $errMsg=get_text('PhotoDimError','Tournament',array(MAX_WIDTH,MAX_HEIGHT)); } else { // check now the proportions diff --git a/src/Common/Rank/Obj_Rank.php b/src/Common/Rank/Obj_Rank.php index de46afac..4cf06a39 100644 --- a/src/Common/Rank/Obj_Rank.php +++ b/src/Common/Rank/Obj_Rank.php @@ -77,7 +77,7 @@ public function __construct($opts=null) $this->tournament=$_SESSION['TourId']; } - $q=safe_r_sql("select ToTimeZone, ToOptions, ToCode, year(ToWhenTo) as ToYear, ToBlock & 1024 as Flighted, RecAreas.* + $q=safe_r_sql("select ToTimeZone, ToOptions, ToCode, year(ToWhenTo) as ToYear, ((ToBlock & 1024) AND ToLocRule='NFAA') as Flighted, RecAreas.* from Tournament left join (select distinct RecAreas.*, TrTournament from RecAreas inner join TourRecords on TrRecCode=ReArCode and TrTournament=$this->tournament) RecAreas on TrTournament=ToId where ToId=$this->tournament"); diff --git a/src/Common/Rank/Obj_Rank_Abs.php b/src/Common/Rank/Obj_Rank_Abs.php index 58483456..28e52673 100644 --- a/src/Common/Rank/Obj_Rank_Abs.php +++ b/src/Common/Rank/Obj_Rank_Abs.php @@ -188,9 +188,9 @@ public function read(){ if (array_key_exists('cutRank',$this->opts)) { if(is_numeric($this->opts['cutRank']) && $this->opts['cutRank']>0) { - $EnFilter.= "AND Ind{$dd}Rank<={$this->opts['cutRank']} "; + $EnFilter.= "AND (Ind{$dd}Rank<={$this->opts['cutRank']} AND Ind{$dd}Rank!=0)"; } elseif (strtolower($this->opts['cutRank'])=='cut') { - $EnFilter.= "AND Ind{$dd}Rank<=EvNumQualified "; + $EnFilter.= "AND (Ind{$dd}Rank<=EvNumQualified AND Ind{$dd}Rank!=0)"; } } @@ -242,7 +242,7 @@ public function read(){ QuD1Gold, QuD2Gold, QuD3Gold, QuD4Gold, QuD5Gold, QuD6Gold, QuD7Gold, QuD8Gold, QuD1Xnine, QuD2Xnine, QuD3Xnine, QuD4Xnine, QuD5Xnine, QuD6Xnine, QuD7Xnine, QuD8Xnine, QuD1Arrowstring,QuD2Arrowstring,QuD3Arrowstring,QuD4Arrowstring,QuD5Arrowstring,QuD6Arrowstring,QuD7Arrowstring,QuD8Arrowstring, - QuScore, QuNotes, QuConfirm, IndNotes, (EvShootOff OR EvE1ShootOff OR EvE2ShootOff) as ShootOffSolved, + QuScore, QuNotes, QuConfirm, QuArrow, IndNotes, (EvShootOff OR EvE1ShootOff OR EvE2ShootOff) as ShootOffSolved, IF(EvRunning=1,IFNULL(ROUND(QuScore/QuHits,3),0),0) as RunningScore, EvCode,EvEventName,EvRunning, EvFinalFirstPhase, EvElim1, EvElim2, EvIsPara, coalesce(OdfTrOdfCode,'') as OdfUnitCode, EvOdfCode, {$tmp} AS Arrows_Shot, @@ -341,7 +341,7 @@ public function read(){ if(!empty($this->opts['runningDist']) && $this->opts['runningDist']>0) { $q .= "OrderScore DESC, OrderGold DESC, OrderXnine DESC, FirstName, Name "; } else { - $q .= "RunningScore DESC, Ind{$dd}Rank=0, Ind{$dd}Rank ASC, FirstName, Name "; + $q .= "Ind{$dd}Rank=0, Ind{$dd}Rank ASC, FirstName, Name "; } $r=safe_r_sql($q); @@ -353,30 +353,23 @@ public function read(){ $this->data['sections']=array(); if (safe_num_rows($r)>0) { - $curEvent=''; + $curEvent=''; - $section=null; + $section=null; - $runningOldScore=-1; - $runningPos=0; - $runningRank=0; + $oldScore=-1; + $oldGold=-1; + $oldXnine=-1; + $myPos=0; + $myRank=0; - $oldScore=-1; - $oldGold=-1; - $oldXnine=-1; - $myPos=0; - $myRank=0; - - while ($myRow=safe_fetch($r)) - { - if ($curEvent!=$myRow->EvCode) - { + while ($myRow=safe_fetch($r)) { + if ($curEvent!=$myRow->EvCode) { /* * se non sono all'inizio, prima di iniziare una sezione devo prendere quella appena fatta * e accodarla alle altre */ - if ($curEvent!='') - { + if ($curEvent!='') { foreach($section["meta"]["arrowsShot"] as $k => $v) { if($v) $section["meta"]["sesArrows"][$k] = get_text('AfterXArrows', 'Common', $v); } @@ -388,8 +381,7 @@ public function read(){ $curEvent=$myRow->EvCode; // inizializzo i meta che son comuni a tutta la classifica - if ($this->data['meta']['numDist']==-1) - { + if ($this->data['meta']['numDist']==-1) { $this->data['meta']['numDist']=$myRow->ToNumDist; $this->data['meta']['double']=$myRow->ToDouble; } @@ -446,8 +438,7 @@ public function read(){ 'hits' => get_text('Arrows','Tournament') ); - if ($this->opts['dist']==0 && empty($this->opts['runningDist'])) - { + if ($this->opts['dist']==0 && empty($this->opts['runningDist'])) { $fields=$fields+array( 'tiebreak' => get_text('TieArrows'), 'tiebreakClosest' => get_text('Close2Center', 'Tournament'), @@ -502,31 +493,21 @@ public function read(){ $oldXnine=-1; $myPos=0; $myRank=0; - - $runningOldScore=-1; - $runningPos=0; - $runningRank=0; - } - - if($myRow->EvRunning==1) - { - $runningPos++; - if($runningOldScore!=$myRow->RunningScore) - $runningRank=$runningPos; - $runningOldScore=$myRow->RunningScore; } - $myPos++; - if(!($oldScore==$myRow->OrderScore && $oldGold==$myRow->OrderGold && $oldXnine==$myRow->OrderXnine)) - $myRank = $myPos; - $oldScore = $myRow->OrderScore; - $oldGold = $myRow->OrderGold; - $oldXnine = $myRow->OrderXnine; - + if(!empty($this->opts['runningDist']) && $this->opts['runningDist']>0) { + $myPos++; + if (!($oldScore == $myRow->OrderScore && $oldGold == $myRow->OrderGold && $oldXnine == $myRow->OrderXnine)) { + $myRank = $myPos; + } + $oldScore = $myRow->OrderScore; + $oldGold = $myRow->OrderGold; + $oldXnine = $myRow->OrderXnine; + } // creo un elemento per la sezione if($myRow->IrmShowRank) { - $tmpRank= (!empty($this->opts['runningDist']) && $this->opts['runningDist']>0 ? $myRank : ($myRow->EvRunning==1 ? $runningRank: $myRow->Rank)); + $tmpRank= (!empty($this->opts['runningDist']) && $this->opts['runningDist']>0 ? $myRank : $myRow->Rank); } else { $tmpRank = $myRow->IrmType; } @@ -568,6 +549,7 @@ public function read(){ 'gold' => $myRow->IrmShowRank ? (!empty($this->opts['runningDist']) && $this->opts['runningDist']>0 ? $myRow->OrderGold : $myRow->Gold) : '', 'xnine' => $myRow->IrmShowRank ? (!empty($this->opts['runningDist']) && $this->opts['runningDist']>0 ? $myRow->OrderXnine : $myRow->XNine) : '', 'hits' => $myRow->IrmShowRank ? $myRow->Hits : '', + 'miss' => $myRow->IrmShowRank ? $myRow->Hits-$myRow->QuArrow : '', 'notes' => trim($myRow->QuNotes. ' ' . $myRow->IndNotes), 'record' => $this->ManageBitRecord($myRow->RecBitLevel, $myRow->CoCaCode, $myRow->CoMaCode, $myRow->EvIsPara), 'irm' => $myRow->IndIrmType, @@ -575,7 +557,7 @@ public function read(){ 'recordGap' => ($myRow->Arrows_Shot*10)-$myRow->Score, ); - if ($this->opts['dist']==0 && empty($this->opts['runningDist'])) { + if ($this->opts['dist']==0 AND empty($this->opts['runningDist'])) { $item=$item+array( 'tiebreak' => trim($myRow->IndTiebreak), 'tiebreakClosest' => $myRow->IndTbClosest, @@ -603,12 +585,10 @@ public function read(){ $item=$item+$distFields; //Gestisco il numero di frecce tirate per sessione - if(empty($section["meta"]["arrowsShot"][$myRow->Session]) || $section["meta"]["arrowsShot"][$myRow->Session]<=$myRow->Arrows_Shot) - $section["meta"]["arrowsShot"][$myRow->Session] = $myRow->Arrows_Shot; - + if($myRow->IndIrmType==0 AND (empty($section["meta"]["arrowsShot"][$myRow->Session]) OR $section["meta"]["arrowsShot"][$myRow->Session]<=$myRow->Arrows_Shot)) { + $section["meta"]["arrowsShot"][$myRow->Session] = $myRow->Arrows_Shot; + } - // e lo aggiungo alla sezione - //print_r($item); $section['items'][]=$item; if ($myRow->IndTimestamp>$this->data['meta']['lastUpdate']) { diff --git a/src/Common/Rank/Obj_Rank_AbsTeam.php b/src/Common/Rank/Obj_Rank_AbsTeam.php index 8f901837..d12504ba 100644 --- a/src/Common/Rank/Obj_Rank_AbsTeam.php +++ b/src/Common/Rank/Obj_Rank_AbsTeam.php @@ -190,9 +190,9 @@ public function read() $TeamFilter=''; if (array_key_exists('cutRank',$this->opts)) { if(is_numeric($this->opts['cutRank']) && $this->opts['cutRank']>0) { - $TeamFilter.= " AND Teams.teRank<={$this->opts['cutRank']} "; + $TeamFilter.= " AND (Teams.teRank<={$this->opts['cutRank']} AND Teams.teRank!=0)"; } elseif (strtolower($this->opts['cutRank'])=='cut') { - $TeamFilter.= " AND Teams.teRank<=EvNumQualified "; + $TeamFilter.= " AND (Teams.teRank<=EvNumQualified AND Teams.teRank!=0)"; } } @@ -280,7 +280,7 @@ public function read() {$filter} {$TeamFilter} ORDER BY - EvProgr,TeEvent, RunningScore DESC, if(IrmShowRank=1, 0, TeIrmType), TeRank ASC, TeGold DESC, TeXnine DESC, CoCode, TeSubTeam, EnSex desc, EnFirstName, tc.TcOrder + EvProgr,TeEvent, if(IrmShowRank=1, 0, TeIrmType), TeRank ASC, TeGold DESC, TeXnine DESC, CoCode, TeSubTeam, EnSex desc, EnFirstName, tc.TcOrder "; $r=safe_r_sql($q); diff --git a/src/Common/Rank/Obj_Rank_AbsTeam_calc.php b/src/Common/Rank/Obj_Rank_AbsTeam_calc.php index 7b59a5ba..d789f3d7 100644 --- a/src/Common/Rank/Obj_Rank_AbsTeam_calc.php +++ b/src/Common/Rank/Obj_Rank_AbsTeam_calc.php @@ -104,10 +104,12 @@ public function calculate() $q=" SELECT - TeTournament,TeCoId,TeSubTeam,TeEvent, - IFNULL(IF(EvRunning=1, TeScore/TeHits,TeScore),0) as TeScore, TeGold, TeXnine, - IF(EvFinalFirstPhase=0,99999,coalesce(RrQualified, EvNumQualified)) AS QualifiedNo, EvFinalFirstPhase, - TeRank AS ActualRank + TeTournament,TeCoId,TeSubTeam,TeEvent, IF(EvFinalFirstPhase=0,99999,coalesce(RrQualified, EvNumQualified)) AS QualifiedNo, EvFinalFirstPhase, TeRank AS ActualRank, + TeScore, TeGold, TeXnine, + IF(EvRunning=1,IFNULL(ROUND(TeScore/TeHits,3),0),TeScore) AS TeScore, + IF(EvRunning=1,IFNULL(ROUND(TeGold/TeHits,3),0),TeGold) AS TeGold, + IF(EvRunning=1,IFNULL(ROUND(TeXnine/TeHits,3),0),TeXnine) AS TeXnine, + TeHits AS Hits FROM Teams INNER JOIN Events ON TeEvent=EvCode AND TeTournament=EvTournament AND EvTeamEvent=1 inner join IrmTypes on IrmId=TeIrmType and IrmShowRank=1 @@ -116,9 +118,8 @@ public function calculate() TeTournament={$this->tournament} AND TeFinEvent=1 AND TeScore<>'0' {$filter} ORDER BY - {$orderBy} - "; - //print $q;exit; + {$orderBy}"; + $r=safe_r_sql($q); @@ -287,12 +288,7 @@ public function setRow($items=array()) { $affected=0; foreach ($items as $item) { - /*print '
    ';
    -				print_r($item);
    -				print '
    ';*/ - $paramsOk=true; - $canUp=false; /* diff --git a/src/Common/Rank/Obj_Rank_Abs_calc.php b/src/Common/Rank/Obj_Rank_Abs_calc.php index a495e780..30f6b54a 100644 --- a/src/Common/Rank/Obj_Rank_Abs_calc.php +++ b/src/Common/Rank/Obj_Rank_Abs_calc.php @@ -117,12 +117,17 @@ public function calculate() { set $sql where IndTournament={$this->tournament}"); - $q="SELECT - IndId AS `athId`,IndEvent AS `EventCode`, - Qu{$dd}Score AS Score,Qu{$dd}Gold AS Gold,Qu{$dd}Xnine AS XNine, Qu{$dd}Hits AS Hits, IndRank as actualRank, - EvFinalFirstPhase, EvElim1, EvElim2, EvElimType, - IF(EvFinalFirstPhase=0,999999,coalesce(RrQualified, IF(EvElimType=0, EvNumQualified, IF(EvElim1=0,EvElim2,EvElim1)))) as QualifiedNo, EvFirstQualified - FROM Events + $q="SELECT IndId AS `athId`,IndEvent AS `EventCode`, IndRank as actualRank, EvFinalFirstPhase, EvElim1, EvElim2, EvElimType, + IF(EvFinalFirstPhase=0,999999,coalesce(RrQualified, IF(EvElimType=0, EvNumQualified, IF(EvElim1=0,EvElim2,EvElim1)))) as QualifiedNo, EvFirstQualified, "; + if($this->opts['dist']==0) { + $q .= "IF(EvRunning=1,IFNULL(ROUND(QuScore/QuHits,3),0),QuScore) AS Score, + IF(EvRunning=1,IFNULL(ROUND(QuGold/QuHits,3),0),QuGold) AS Gold, + IF(EvRunning=1,IFNULL(ROUND(QuXnine/QuHits,3),0),QuXnine) AS XNine, + QuHits AS Hits "; + } else { + $q .= "Qu{$dd}Score AS Score, Qu{$dd}Gold AS Gold, Qu{$dd}Xnine AS XNine, Qu{$dd}Hits AS Hits "; + } + $q .= "FROM Events INNER JOIN Individuals ON EvCode=IndEvent AND EvTournament=IndTournament AND EvTeamEvent=0 inner join IrmTypes on IrmId=IndIrmType and IrmShowRank=1 INNER JOIN Qualifications ON IndId=QuId @@ -132,8 +137,7 @@ public function calculate() { AND (QuScore != 0 OR QuHits !=0) {$filter} ORDER BY - IndEvent,Qu{$dd}Score DESC,Qu{$dd}Gold DESC,Qu{$dd}Xnine DESC - "; + IndEvent, Score DESC, Gold DESC, XNine DESC"; //print $q.'

    '; $r=safe_r_sql($q); diff --git a/src/Common/Rank/Obj_Rank_DivClass.php b/src/Common/Rank/Obj_Rank_DivClass.php index b4314ba7..1680cc25 100644 --- a/src/Common/Rank/Obj_Rank_DivClass.php +++ b/src/Common/Rank/Obj_Rank_DivClass.php @@ -126,6 +126,10 @@ protected function safeFilter() $filter[]="EnId=" . intval($this->opts['enid']) . " "; } + if (!empty($this->opts['enids'])) { + $filter[]="EnId in (" . implode(',',$this->opts['enids']) . ") "; + } + if (!empty($this->opts['encode'])) { if (is_array($this->opts['encode'])) { $filter[]="EnCode IN (" . implode(',', StrSafe_DB($this->opts['encode'])) . ")"; @@ -228,7 +232,7 @@ public function read() QuD1Xnine, QuD2Xnine, QuD3Xnine, QuD4Xnine, QuD5Xnine, QuD6Xnine, QuD7Xnine, QuD8Xnine, QuD1ArrowString, QuD2ArrowString, QuD3ArrowString, QuD4ArrowString, QuD5ArrowString, QuD6ArrowString, QuD7ArrowString, QuD8ArrowString, {$tmp} AS Arrows_Shot, ToNumEnds, DiEnds, DiArrows, FdiDetails, - QuIrmType, IrmType, IrmShowRank, QuNotes, + QuIrmType, IrmType, IrmShowRank, QuNotes, QuArrow, {$MyRank} AS `Rank`, " . (!empty($comparedTo) ? 'IFNULL(QopClRank,0)' : '0') . " as OldRank, Qu{$dd}Score AS Score, Qu{$dd}Gold AS Gold,Qu{$dd}Xnine AS XNine, Qu{$dd}Hits AS Hits, "; if(!empty($this->opts['runningDist']) && $this->opts['runningDist']>0) @@ -454,6 +458,7 @@ public function read() 'gold' => (!empty($this->opts['runningDist']) && $this->opts['runningDist']>0 ? $myRow->OrderGold : $myRow->Gold), 'xnine' => (!empty($this->opts['runningDist']) && $this->opts['runningDist']>0 ? $myRow->OrderXnine : $myRow->XNine), 'hits' => $myRow->Hits, + 'miss' => $myRow->IrmShowRank ? $myRow->Hits-$myRow->QuArrow : '', 'arrowsShot' => $myRow->Arrows_Shot, 'irm' => $myRow->QuIrmType, 'irmText' => $myRow->IrmType, diff --git a/src/Common/Rank/Obj_Rank_GridInd.php b/src/Common/Rank/Obj_Rank_GridInd.php index 3172f068..550fa90a 100644 --- a/src/Common/Rank/Obj_Rank_GridInd.php +++ b/src/Common/Rank/Obj_Rank_GridInd.php @@ -188,6 +188,7 @@ public function getQuery($OrderByTarget=false) { . " upper(a.EnFirstName) FamilyNameUpper," . " a.EnName GivenName," . " a.EnTvFamilyName TvFamilyName," + . " a.EnTvGivenName TvGivenName," . " a.EnTvInitials TvInitials," . " CoId CountryId," . " CoCode CountryCode," @@ -274,6 +275,7 @@ public function getQuery($OrderByTarget=false) { . " IF(EvFinalFirstPhase=48, GrPosition2, if(GrPosition>EvNumQualified, 0, GrPosition)) OppPosition," . " a.EnName OppGivenName," . " a.EnTvFamilyName OppTvFamilyName," + . " a.EnTvGivenName OppTvGivenName," . " a.EnTvInitials OppTvInitials," . " CoId OppCountryId," . " CoCode OppCountryCode," @@ -483,7 +485,7 @@ public function read() { 'elimType' => $myRow->EvElimType, 'targetType' => $myRow->TarDescr, 'targetTypeId' => $myRow->TarId, - 'targetTypeValues' => GetTarget($this->tournament, $myRow->TarDescr), + 'targetTypeValues' => GetTarget($this->tournament, $myRow->TarDescr, true), 'targetSize' => $myRow->TargetSize, 'distance' => $myRow->Distance, 'version' => $myRow->DocVersion, @@ -593,6 +595,7 @@ public function read() { 'familyNameUpper' => $myRow->FamilyNameUpper, 'givenName' => $myRow->GivenName, 'tvFamilyName' => $myRow->TvFamilyName, + 'tvGivenName' => $myRow->TvGivenName, 'tvInitials' => $myRow->TvInitials, 'nameOrder' => $myRow->NameOrder, 'gender' => $myRow->Gender, @@ -655,6 +658,7 @@ public function read() { 'oppFamilyNameUpper' => $myRow->OppFamilyNameUpper, 'oppGivenName' => $myRow->OppGivenName, 'oppTvFamilyName' => $myRow->OppTvFamilyName, + 'oppTvGivenName' => $myRow->OppTvGivenName, 'oppTvInitials' => $myRow->OppTvInitials, 'oppNameOrder' => $myRow->OppNameOrder, 'oppGender' => $myRow->OppGender, diff --git a/src/Common/Rank/Obj_Rank_GridTeam.php b/src/Common/Rank/Obj_Rank_GridTeam.php index 069fcc67..123908de 100644 --- a/src/Common/Rank/Obj_Rank_GridTeam.php +++ b/src/Common/Rank/Obj_Rank_GridTeam.php @@ -446,7 +446,7 @@ public function read() 'elimMaxScore' => $myRow->EvElimArrows*10, 'targetType' => $myRow->TarDescr, 'targetTypeId' => $myRow->TarId, - 'targetTypeValues' => GetTarget($this->tournament, $myRow->TarDescr), + 'targetTypeValues' => GetTarget($this->tournament, $myRow->TarDescr, true), 'targetSize' => $myRow->TargetSize, 'distance' => $myRow->Distance, 'version' => $myRow->DocVersion, diff --git a/src/Common/ScoreEditor/AjaxGetScore.php b/src/Common/ScoreEditor/AjaxGetScore.php index 8eb60315..ab1c3abe 100644 --- a/src/Common/ScoreEditor/AjaxGetScore.php +++ b/src/Common/ScoreEditor/AjaxGetScore.php @@ -211,7 +211,7 @@ $myReview=safe_fetch($rs); $out.='' . get_text($m==1 ? 'RevMainLang' : 'RevSecLang') . '' . "\n"; - $out.='' . "\n"; + $out.='' . "\n"; } $out.='' . "\n"; $scores[$m]=$out; diff --git a/src/Common/StartListQueries.php b/src/Common/StartListQueries.php index d3c8ed63..a0a4b2d1 100644 --- a/src/Common/StartListQueries.php +++ b/src/Common/StartListQueries.php @@ -5,7 +5,7 @@ function getStatEntriesByEventQuery($Type='QR') { $Sql="Select count(*) Quanti, count(distinct EnCountry) Countries, EvCode, EvEventName, EvTeamEvent, EvProgr, EvFirstQualified, EvNumQualified, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, - DvNotes as DocNotes + DvNotes as DocNotes, max(EnTimestamp) as EnTimestamp from Entries inner join Individuals on IndId=EnId and IndTournament=EnTournament inner join Events on EvCode=IndEvent and EvTournament=EnTournament and EvTeamEvent=0 @@ -18,7 +18,7 @@ function getStatEntriesByEventQuery($Type='QR') { $Sql = "SELECT EvCode as Code, EvEventName as EventName, EvFinalFirstPhase as FirstPhase, COUNT(EnId) as Quanti, count(distinct EnCountry) Countries, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, EvFirstQualified, EvNumQualified, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, - DvNotes as DocNotes + DvNotes as DocNotes, max(EnTimestamp) as EnTimestamp FROM Events INNER JOIN Individuals ON EvCode=IndEvent AND EvTournament=IndTournament INNER JOIN Entries ON EnId=IndId AND EnTournament=IndTournament @@ -41,7 +41,7 @@ function getStatEntriesByEventQuery($Type='QR') { $Sql = "SELECT EnDivision as Divisione, EnClass as Classe, SUM(EnIndClEvent) as QuantiInd, IFNULL(numTeam,0) AS QuantiSq, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, - DvNotes as DocNotes + DvNotes as DocNotes, max(EnTimestamp) as EnTimestamp FROM Entries inner join Divisions on EnDivision=DivId and DivAthlete=1 and DivTournament=" . StrSafe_DB($_SESSION['TourId']) . " inner join Classes on EnClass=ClId and ClAthlete=1 and ClTournament=" . StrSafe_DB($_SESSION['TourId']) . " @@ -86,7 +86,7 @@ function getStatEntriesByCountriesQuery($ORIS=false, $Athletes=false) { CoCode as NationCode, CoName as NationName, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, - DvNotes as DocNotes + DvNotes as DocNotes, max(EnTimestamp) as EnTimestamp FROM Entries INNER JOIN Countries ON EnCountry = CoId LEFT JOIN DocumentVersions on EnTournament=DvTournament AND DvFile = 'EN' @@ -114,7 +114,7 @@ function getStatEntriesByCountriesQuery($ORIS=false, $Athletes=false) { $Sql .= "CoCode as NationCode, CoName as NationName, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, - DvNotes as DocNotes + DvNotes as DocNotes, max(EnTimestamp) as EnTimestamp FROM Entries INNER JOIN Countries ON EnCountry = CoId LEFT JOIN DocumentVersions on EnTournament=DvTournament AND DvFile = 'EN' @@ -628,11 +628,11 @@ function getCountryList() { $TmpWhere = substr($TmpWhere,0,-3); } - $MyQuery = "SELECT DISTINCT + $MyQuery = "SELECT upper(CoCode) AS NationCode, CoNameComplete AS Nation, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, - DvNotes as DocNotes + DvNotes as DocNotes, max(EnTimestamp) as EnTimestamp FROM Entries AS e INNER JOIN Countries AS c ON e.EnCountry=c.CoId AND e.EnTournament=c.CoTournament INNER JOIN Qualifications AS q ON e.EnId=q.QuId @@ -644,7 +644,8 @@ function getCountryList() { if($TmpWhere != "") { $MyQuery .= "AND (" . $TmpWhere . ")"; } - $MyQuery.= "ORDER BY CoCode"; + $MyQuery.= "group by CoCode + ORDER BY CoCode"; return $MyQuery; } @@ -678,11 +679,12 @@ function getStartListCountryQuery($ORIS=false, $Athletes=false, $orderByName=fal concat(upper(EnFirstName), ' ', EnName) AS Athlete, DATE_FORMAT(EnDob,'%d %b %Y') as DOB, QuSession AS Session, SUBSTRING(QuTargetNo,2) AS TargetNo, upper(CoCode) AS NationCode, upper(CoName) AS Nation, if(CoNameComplete!='', CoNameComplete, CoName) AS NationComplete, IFNULL(GROUP_CONCAT(EvEventName SEPARATOR ', '), if(DivAthlete and ClAthlete, CONCAT('|',DivDescription, '| |', ClDescription), ClDescription)) as EventName, - IFNULL(GROUP_CONCAT(RankRanking order by EvProgr SEPARATOR ', '), '') as Ranking, + IFNULL(GROUP_CONCAT(DISTINCT RankRanking order by EvProgr SEPARATOR ', '), '') as Ranking, cNumber, PhPhoto is not null as HasPhoto, EnBadgePrinted>0 as HasAccreditation, PhToRetake, PhEnId, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, - DvNotes as DocNotes, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob, '' as TfName + DvNotes as DocNotes, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob, '' as TfName, + EnTimestamp FROM Entries AS e INNER JOIN Countries AS c ON e.EnCountry=c.CoId AND e.EnTournament=c.CoTournament INNER JOIN Qualifications AS q ON e.EnId=q.QuId @@ -757,7 +759,7 @@ function getStartListCountryQuery($ORIS=false, $Athletes=false, $orderByName=fal . ", GROUP_CONCAT(EvCodeParent order by EvProgr SEPARATOR '') as EvCodeParent" . ", GROUP_CONCAT(RankRanking) as Ranking" . ", IF(EnCountry2=0,0,1) as secTeam " - . ", TfName, PhPhoto is not null as HasPhoto, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob "; + . ", TfName, EnTimestamp, PhPhoto is not null as HasPhoto, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob "; $MyQuery.= "FROM Entries AS e "; $MyQuery.= "inner JOIN Tournament ON ToId=EnTournament "; $MyQuery.= "LEFT JOIN Individuals ON IndId=EnId and IndTournament=EnTournament "; @@ -820,7 +822,7 @@ function getStartListCountryQuery($ORIS=false, $Athletes=false, $orderByName=fal . ", GROUP_CONCAT(EvCodeParent order by EvProgr SEPARATOR '') as EvCodeParent" . ", GROUP_CONCAT(RankRanking) as Ranking" . ", 2 as secTeam " - . ", TfName, PhPhoto is not null as HasPhoto, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob "; + . ", TfName, EnTimestamp, PhPhoto is not null as HasPhoto, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob "; $MyQuery.= "FROM Entries AS e "; $MyQuery.= "inner JOIN Tournament ON ToId=EnTournament "; $MyQuery.= "LEFT JOIN Individuals ON IndId=EnId and IndTournament=EnTournament "; @@ -884,7 +886,7 @@ function getStartListCountryQuery($ORIS=false, $Athletes=false, $orderByName=fal . ", GROUP_CONCAT(EvCodeParent order by EvProgr SEPARATOR '') as EvCodeParent" . ", GROUP_CONCAT(RankRanking) as Ranking" . ", 3 as secTeam " - . ", TfName, PhPhoto is not null as HasPhoto, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob "; + . ", TfName, EnTimestamp, PhPhoto is not null as HasPhoto, edmail.EdEmail, edmail.EdExtra, edbib.EdExtra as Bib2, EnDob "; $MyQuery.= "FROM Entries AS e "; $MyQuery.= "inner JOIN Tournament ON ToId=EnTournament "; $MyQuery.= "LEFT JOIN Individuals ON IndId=EnId and IndTournament=EnTournament "; @@ -1083,7 +1085,7 @@ function getBrokenRecordsQuery($ORIS=true) { return "(".implode(') UNION (', $SQL).") order by TeamEvent, ReArBitLevel desc, OrderBy, Phase, SubPhase, RtRecDistance desc, NewRecord desc"; } -function getStartListAlphaQuery($ORIS=false) { +function getStartListAlphaQuery($ORIS=false, $Athlete=false) { $TmpWhere=""; if(isset($_REQUEST["ArcherName"]) && preg_match("/^[-,0-9A-Z]*$/i",str_replace(" ","",$_REQUEST["ArcherName"]))) { foreach(explode(",",$_REQUEST["ArcherName"]) as $Value) { @@ -1097,7 +1099,8 @@ function getStartListAlphaQuery($ORIS=false) { $TmpWhere = substr($TmpWhere,0,-3); } - $Collation = ($_SESSION['TourCollation'] ? "COLLATE utf8_{$_SESSION['TourCollation']}_ci" : ''); +// $Collation = ($_SESSION['TourCollation'] ? "COLLATE utf8_{$_SESSION['TourCollation']}_ci" : ''); + $Collation = ''; $MyQuery = "SELECT distinct upper(substr(EnFirstname $Collation,1,1)) as FirstLetter, @@ -1121,11 +1124,11 @@ function getStartListAlphaQuery($ORIS=false) { EnIndFEvent AS `IF`, EnTeamFEvent as `TF`, EnTeamMixEvent as `TM`, - EvCode, + EvCode, EnTimestamp, IFNULL(EvCode,CONCAT(TRIM(EnDivision),TRIM(EnClass))) as EventCode, DATE_FORMAT(EnDob,'%d %b %Y') as DOB, IFNULL(GROUP_CONCAT(EvEventName order by EvProgr SEPARATOR ', '), if(DivAthlete and ClAthlete, CONCAT('|',DivDescription, '| |', ClDescription), ClDescription)) as EventName , - IFNULL(GROUP_CONCAT(RankRanking order by EvProgr SEPARATOR ', '), '') as Ranking , + IFNULL(GROUP_CONCAT(DISTINCT RankRanking order by EvProgr SEPARATOR ', '), '') as Ranking , TfName, concat(DvMajVersion, '.', DvMinVersion) as DocVersion, date_format(DvPrintDateTime, '%e %b %Y %H:%i UTC') as DocVersionDate, @@ -1168,6 +1171,9 @@ function getStartListAlphaQuery($ORIS=false) { WHERE EnTournament = " . StrSafe_DB($_SESSION['TourId']) ; if(isset($_REQUEST["Session"]) and is_numeric($_REQUEST["Session"])) $MyQuery .= " AND QuSession = " . StrSafe_DB($_REQUEST["Session"]) ; if(!empty($_REQUEST["Divisions"])) $MyQuery .= " AND concat(EnDivision, EnClass) like '{$_REQUEST["Divisions"]}'"; + if($Athlete) { + $MyQuery .= " AND DivAthlete=1 and ClAthlete=1"; + } if($TmpWhere) $MyQuery .= " AND (" . $TmpWhere . ")"; $MyQuery.= " GROUP BY FirstLetter, SesName, Bib, Athlete, Session, TargetNo, NationCode, Nation, NationCode2, Nation2, NationCode3, Nation3, DivDescription, ClDescription, EnSubTeam, ClassCode, DivCode, IsAthlete, AgeClass, SubClass, Status, `IC`, `TC`, `IF`, `TF`, `TM`, @@ -1189,7 +1195,8 @@ function getStartListCategoryQuery($ORIS=false, $orderByTeam=0, $Events=array()) $TmpWhere=" EvCode in (".implode(',', StrSafe_DB($Events)).") "; } - $Collation = ($_SESSION['TourCollation'] ? "COLLATE utf8_{$_SESSION['TourCollation']}_ci" : ''); +// $Collation = ($_SESSION['TourCollation'] ? "COLLATE utf8_{$_SESSION['TourCollation']}_ci" : ''); + $Collation = ''; $MyQuery = "SELECT distinct " . ($ORIS ? ' EvCode as EventCode ' :" IFNULL(EvCode,CONCAT(TRIM(EnDivision),TRIM(EnClass))) as EventCode") . ", @@ -1232,7 +1239,7 @@ function getStartListCategoryQuery($ORIS=false, $orderByTeam=0, $Events=array()) DATE_FORMAT(EnDob,'%d %b %Y') as DOB, IFNULL(GROUP_CONCAT(EvEventName order by EvProgr SEPARATOR ', '),CONCAT('|',DivDescription, '| |', ClDescription)) as EventName , TfName, - cNumber, + cNumber, EnTimestamp, ifnull(GROUP_CONCAT(RankRanking order by EvProgr SEPARATOR ', '), '') as Ranking FROM Entries AS e INNER JOIN Tournament on EnTournament=ToId diff --git a/src/Common/Styles/Blue_screen.css b/src/Common/Styles/Blue_screen.css index 54014095..e6e6b38b 100644 --- a/src/Common/Styles/Blue_screen.css +++ b/src/Common/Styles/Blue_screen.css @@ -202,8 +202,8 @@ table.Tabella td.Top { vertical-align: top;} table.Tabella td.Bold { font-weight:bold;} table.Tabella td.FontMedium { font-size:140%;} table.Tabella td.LiveSpotting {vertical-align:top; text-align:center;} -table.Tabella td.Title { background-color:var(--header-dark); text-align:center; font-weight:bold; padding-left:2px; padding-right:2px; font-weight:bold; color: var(--row-main-text)} -table.Tabella td.Caption { background-color:var(--bg-cell-header); text-align:center; font-weight:bold; padding-left:2px; padding-right:2px; font-weight:bold; color: var(--header-dark)} +table.Tabella td.Title { background-color:var(--header-dark); text-align:center; font-weight:bold; padding-left:2px; padding-right:2px; color: var(--row-main-text)} +table.Tabella td.Caption { background-color:var(--bg-cell-header); text-align:center; font-weight:bold; padding-left:2px; padding-right:2px; color: var(--header-dark)} /*table.Startlist td.Small { width=50px; padding-left:2px; padding-right:2px; padding-top:2px; padding-bottom:2px; font-size:10px; color: var(--black)}*/ table.Tabella td.Divider {background-color: var(--header-dark); height:2px} table.Tabella td.Light {background-color:var(--text-white)} @@ -225,7 +225,7 @@ tr.active td {background-color:var(--bg-yellow);} .LetteraGrande { font-size:150%; font-weight:bold; } .bold {font-weight:bold; } -.small {font-size: smaller } +.small {font-size: smaller!important; } table.Tabella2 {margin:auto; background-color:var(--row-background); border: 2px; border-color:var(--table-background); border-collapse:separate; border-spacing:1px; } table.Tabella2 td { padding:1px;} @@ -287,9 +287,16 @@ a:hover {text-decoration:underline; } .LinkRevert {font-weight:bold; color: var(--text-white); text-decoration:none;} .LinkRevert:hover {text-decoration:underline;} -.medium {width: 75%; margin: 0 auto} -.half {width: 50%;} +.medium {width: 100%; margin: 0 auto} +.half {width: 100%;} +@media screen and (min-width: 600px) { + .half {width:75%;} +} +@media screen and (min-width: 900px) { + .medium {width:75%;} + .half {width:50%;} +} .htt_number { float:left; @@ -390,6 +397,7 @@ body.loading .modal { .alert-warning {background-color: #ffe0a0; border:1px solid #bfa575;} .alert-danger {background-color:lightpink; border:1px solid hotpink;} .alert-success {background-color:lightgreen; border:1px solid darkgreen;} +.alert-info {color:white; background-color:var(--text-info); border:1px solid var(--text-info-hover);} .ml-1, .m-1, .mx-1 {margin-left:0.25em;} @@ -434,6 +442,12 @@ body.loading .modal { .w-90 {width: 90% !important} .w-95 {width: 95% !important} .w-100 {width: 100% !important} +.wmin-3ch {min-width:3ch;} +.wmin-5ch {min-width:5ch;} +.wmin-7ch {min-width:7ch;} +.wmin-10ch {min-width:10ch;} +.wmin-15ch {min-width:15ch;} +.wmin-20ch {min-width:20ch;} .h-0 {height: 0; vertical-align: top;} @@ -458,3 +472,27 @@ div.Center {text-align: center; margin: auto} @MEDIA print { .print_debug {display:none;} } + +/* Define the spin animation */ +@keyframes spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} + +/* Basic styles for the spinner */ +#SpinningIanseo { + position:fixed; + display:flex; + align-items: center; + justify-content: center; + width: 100px; + height: 100px; + top:calc( 50% - 50px); + left:calc( 50% - 50px); + animation: spin 2s linear infinite; +} +.text-right {text-align: right;} \ No newline at end of file diff --git a/src/Common/Templates/head-BS.php b/src/Common/Templates/head-BS.php index 6a974ce0..0ba20b52 100644 --- a/src/Common/Templates/head-BS.php +++ b/src/Common/Templates/head-BS.php @@ -25,6 +25,10 @@ echo ''; if(!empty($JS_SCRIPT)) { + require_once(dirname(__DIR__).'/Lib/CommonLib.php'); + $JS_SCRIPT[]= phpVars2js([ + 'wwwdir'=>$CFG->ROOT_DIR, + ]); foreach($JS_SCRIPT as $script) echo "$script\n"; } diff --git a/src/Common/Templates/head.php b/src/Common/Templates/head.php index 4e41c68d..3b865382 100644 --- a/src/Common/Templates/head.php +++ b/src/Common/Templates/head.php @@ -1,6 +1,7 @@ @@ -34,12 +35,16 @@ $JS_SCRIPT=array(); } +$local_JS[]= phpVars2js([ + 'wwwdir'=>$CFG->ROOT_DIR, +]); if(!empty($IncludeJquery)) { $local_JS[]= ''; $local_JS[]= ''; $local_JS[]= ''; } $local_JS[]= ''; +$local_JS[]= ''; $JS_SCRIPT = array_merge($local_JS, $JS_SCRIPT); diff --git a/src/Common/TourOn.php b/src/Common/TourOn.php index f3d1eeb6..6e3f9918 100644 --- a/src/Common/TourOn.php +++ b/src/Common/TourOn.php @@ -22,7 +22,22 @@ } if($CFG->USERAUTH AND !empty($_SESSION['AUTH_ENABLE']) AND empty($_SESSION['AUTH_ROOT'])) { - if(!in_array(getCodeFromId($_REQUEST['ToId']),$_SESSION["AUTH_COMP"])){ + $AuthFiler = array(); + if($CFG->USERAUTH AND !empty($_SESSION['AUTH_ENABLE']) AND empty($_SESSION['AUTH_ROOT'])) { + $compList = array(); + foreach ($_SESSION["AUTH_COMP"] as $comp) { + if(preg_match('/%/',$comp)) { + $AuthFiler[] = 'ToCode LIKE ' . StrSafe_DB($comp); + } else { + $compList[] = $comp; + } + } + if(count($compList)) { + $AuthFiler[] = 'FIND_IN_SET(ToCode, \'' . implode(',', $compList) . '\') != 0 '; + } + } + $q = safe_r_SQL("SELECT ToId FROM Tournament WHERE ToId=" .$_REQUEST['ToId'] . ' AND (' . (count($AuthFiler) ? implode(' OR ', $AuthFiler) : 'FALSE'). ')'); + if(safe_num_rows($q)!=1){ CD_redirect($CFG->ROOT_DIR); exit; } diff --git a/src/Common/UpdateDb-2023.inc.php b/src/Common/UpdateDb-2023.inc.php index c0a18897..2e2bef2e 100644 --- a/src/Common/UpdateDb-2023.inc.php +++ b/src/Common/UpdateDb-2023.inc.php @@ -201,41 +201,41 @@ } if($version<'2023-11-19 10:00:00') { - safe_w_sql("alter table Finals add FinGolds tinyint not null after FinScore, add FinXNines tinyint not null after FinGolds"); - safe_w_sql("alter table TeamFinals add TfGolds tinyint not null after TfScore, add TfXNines tinyint not null after TfGolds"); - safe_w_sql("alter table Events add EvCodeParentWinnerBranch tinyint not null after EvCodeParent, add EvCheckGolds tinyint not null after EvXNineChars, add EvCheckXNines tinyint not null after EvCheckGolds"); + safe_w_sql("alter table Finals add FinGolds tinyint not null after FinScore, add FinXNines tinyint not null after FinGolds",false,array(1146, 1060)); + safe_w_sql("alter table TeamFinals add TfGolds tinyint not null after TfScore, add TfXNines tinyint not null after TfGolds",false,array(1146, 1060)); + safe_w_sql("alter table Events add EvCodeParentWinnerBranch tinyint not null after EvCodeParent, add EvCheckGolds tinyint not null after EvXNineChars, add EvCheckXNines tinyint not null after EvCheckGolds",false,array(1146, 1060)); db_save_version('2023-11-19 10:00:00'); } if($version<'2023-11-26 10:00:00') { - safe_w_sql("alter table Qualifications add QuTieWeight bigint unsigned not null after QuTie, change QuTieBreak QuTieBreak varchar(50) not null, add index (QuScore, QuGold, QuXnine, QuTieWeight)"); + safe_w_sql("alter table Qualifications add QuTieWeight bigint unsigned not null after QuTie, change QuTieBreak QuTieBreak varchar(50) not null, add index (QuScore, QuGold, QuXnine, QuTieWeight)",false,array(1146, 1060)); db_save_version('2023-11-26 10:00:00'); } if($version<'2023-11-27 10:00:00') { - safe_w_sql("alter table Qualifications add QuTieWeightDecoded varchar(80) not null after QuTieWeight"); - safe_w_sql("alter table Individuals add IndTieWeightDecoded varchar(80) not null after IndTbDecoded"); + safe_w_sql("alter table Qualifications add QuTieWeightDecoded varchar(80) not null after QuTieWeight",false,array(1146, 1060)); + safe_w_sql("alter table Individuals add IndTieWeightDecoded varchar(80) not null after IndTbDecoded",false,array(1146, 1060)); db_save_version('2023-11-27 10:00:00'); } if($version<'2023-11-27 10:00:01') { - safe_w_sql("alter table Qualifications add QuTieWeightDrops text not null after QuTieWeight"); + safe_w_sql("alter table Qualifications add QuTieWeightDrops text not null after QuTieWeight",false,array(1146, 1060)); db_save_version('2023-11-27 10:00:01'); } if($version<'2023-11-28 10:00:01') { - safe_w_sql("alter table Events change EvCodeParentWinnerBranch EvCodeParentWinnerBranch tinyint not null"); - safe_w_sql("alter table RoundRobinMatches add RrMatchGolds tinyint unsigned not null, add RrMatchXNines tinyint unsigned not null"); + safe_w_sql("alter table Events change EvCodeParentWinnerBranch EvCodeParentWinnerBranch tinyint not null",false,array(1146, 1060)); + safe_w_sql("alter table RoundRobinMatches add RrMatchGolds tinyint unsigned not null, add RrMatchXNines tinyint unsigned not null",false,array(1146, 1060)); db_save_version('2023-11-28 10:00:01'); } if($version<'2023-12-18 10:00:01') { - safe_w_sql("ALTER TABLE TeamEligibleComponent ADD TecSubTeam TINYINT NOT NULL AFTER TecCoId;"); - safe_w_sql("alter table RoundRobinLevel add RrLevCheckGolds tinyint not null after RrLevTieBreakSystem2, add RrLevCheckXNines tinyint not null after RrLevCheckGolds"); + safe_w_sql("ALTER TABLE TeamEligibleComponent ADD TecSubTeam TINYINT NOT NULL AFTER TecCoId;",false,array(1146, 1060)); + safe_w_sql("alter table RoundRobinLevel add RrLevCheckGolds tinyint not null after RrLevTieBreakSystem2, add RrLevCheckXNines tinyint not null after RrLevCheckGolds",false,array(1146, 1060)); db_save_version('2023-12-18 10:00:01'); } if($version<'2023-12-18 17:00:01') { - safe_w_sql("alter table RoundRobinMatches add RrMatchSwapped tinyint not null after RrMatchMatchNo"); + safe_w_sql("alter table RoundRobinMatches add RrMatchSwapped tinyint not null after RrMatchMatchNo",false,array(1146, 1060)); db_save_version('2023-12-18 17:00:01'); } @@ -247,6 +247,6 @@ } if($version<'2023-12-31 10:00:00') { - safe_w_sql("alter table Individuals add IndFinTieWeightDecoded varchar(80) not null after IndTieWeightDecoded"); + safe_w_sql("alter table Individuals add IndFinTieWeightDecoded varchar(80) not null after IndTieWeightDecoded",false,array(1146, 1060)); db_save_version('2023-12-31 10:00:00'); } diff --git a/src/Common/UpdateDb-check.php b/src/Common/UpdateDb-check.php index bdef6445..cfbbc622 100644 --- a/src/Common/UpdateDb-check.php +++ b/src/Common/UpdateDb-check.php @@ -8,7 +8,7 @@ DelParameter('UUID'); } -$newversion='2024-05-13 15:25:00'; +$newversion='2024-09-22 10:00:04'; // Check if the DB is up to date if(in_array($CFG->DOCUMENT_PATH . 'Common'.DIRECTORY_SEPARATOR.'config.inc.php', get_included_files())) { diff --git a/src/Common/UpdateDb.inc.php b/src/Common/UpdateDb.inc.php index 4aef86ff..fdaa7d8b 100644 --- a/src/Common/UpdateDb.inc.php +++ b/src/Common/UpdateDb.inc.php @@ -131,15 +131,104 @@ db_save_version('2024-05-13 15:25:00'); } +if($version<'2024-06-08 15:25:00') { + safe_w_sql("alter table RoundRobinMatches add index (RrMatchTournament, RrMatchTeam, RrMatchEvent), add index (RrMatchTournament, RrMatchScheduledDate, RrMatchScheduledTime)", false, array(1146, 1060)); + db_save_version('2024-06-08 15:25:00'); +} + +if($version<'2024-08-26 07:00:02') { + safe_w_sql("UPDATE `LookUpPaths` SET `LupPath` = 'https://dirigeant.ffta.fr/ianseo/download/parametres_ianseo.ffta' WHERE `LookUpPaths`.`LupIocCode` = 'FRA'"); + safe_w_sql("REPLACE INTO `LookUpPaths` (`LupIocCode`, `LupOrigin`, `LupPath`, `LupPhotoPath`, `LupFlagsPath`, `LupLastUpdate`, `LupRankingPath`, `LupClubNamesPath`, `LupRecordsPath`) VALUES ('SWE', 'SWE', '', 'https://resultat.bagskytte.se/Archer/GetIanseoImage', 'https://resultat.bagskytte.se/Club/GetIanseoImage', '0000-00-00 00:00:00', '', '', '')"); + safe_w_sql("ALTER TABLE `TournamentInvolved` ADD `TiTimeStamp` DATETIME NOT NULL AFTER `TiGender`;", false, array(1146, 1060)); + safe_w_sql("UPDATE `TournamentInvolved` INNER JOIN `Tournament` ON `TiTournament`=`ToId` SET `TiTimeStamp`=`ToWhenFrom` WHERE `TiTimeStamp`='0000-00-00'"); + db_save_version('2024-08-26 07:00:02'); +} + +if($version<'2024-09-20 08:00:07') { + safe_w_sql("DROP TABLE IF EXISTS `AclFeatures`"); + safe_w_sql("ALTER TABLE `AclDetails` ADD `AclDtSubFeature` TINYINT NOT NULL AFTER `AclDtFeature`", false, array(1146, 1060)); + safe_w_sql("ALTER TABLE `AclDetails` DROP PRIMARY KEY, ADD PRIMARY KEY (`AclDtTournament`, `AclDtIP`, `AclDtFeature`, `AclDtSubFeature`) USING BTREE;", false, array(1146, 1060)); + safe_w_sql("CREATE TABLE `AclTemplates` ( + `AclTeTournament` INT NOT NULL , + `AclTePattern` VARCHAR(150) NOT NULL , + `AclTeNick` VARCHAR(50) NOT NULL , + `AclTeFeatures` TEXT NOT NULL , + `AclTeEnabled` TINYINT NOT NULL , + PRIMARY KEY (`AclTeTournament`, `AclTePattern`)) ENGINE = InnoDB",false,array(1146, 1050, 1060)); + safe_w_sql("CREATE TABLE `AclUsers` ( + `AclUsUser` VARCHAR(16) NOT NULL , + `AclUsName` VARCHAR(100) NOT NULL , + `AclUsPwd` VARCHAR(64) NOT NULL , + `AclUsEnabled` TINYINT NOT NULL , + `AclUsAuthAdmin` TINYINT NOT NULL, + PRIMARY KEY (`AclUsUser`)) ENGINE = InnoDB",false,array(1146, 1050, 1060)); + + safe_w_sql("update `AclDetails` set `AclDtFeature`=22 where `AclDtFeature`=9"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=23 where `AclDtFeature`=2"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=24 where `AclDtFeature`=7"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=25 where `AclDtFeature`=3"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=26 where `AclDtFeature`=4"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=27 where `AclDtFeature`=16"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=28 where `AclDtFeature`=5"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=29 where `AclDtFeature`=6"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=30 where `AclDtFeature`=13"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=31 where `AclDtFeature`=14"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=32 where `AclDtFeature`=11"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=33 where `AclDtFeature`=12"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=34 where `AclDtFeature`=8"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=35 where `AclDtFeature`=10"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=36 where `AclDtFeature`=15"); + safe_w_sql("UPDATE `AclDetails` set `AclDtFeature`=`AclDtFeature`-20 where `AclDtFeature`>20"); + + safe_w_sql("INSERT IGNORE INTO AclTemplates (`AclTeTournament`, `AclTePattern`, `AclTeNick`, `AclTeFeatures`, `AclTeEnabled`) + SELECT `AclTournament`, `AclIP`, `AclNick`, GROUP_CONCAT(CONCAT_WS('|', AclDtFeature, AclDtSubFeature, AclDtLevel) ORDER BY AclDtFeature, AclDtSubFeature SEPARATOR '#') as `Features`, AclEnabled + FROM `ACL` + INNER JOIN AclDetails on AclTournament=AclDTTournament and AclIP=AclDtIP + WHERE `AclIP` LIKE '%*%' + GROUP BY `AclTournament`, `AclIP`",false,array(1146, 1060)); + safe_w_sql("DELETE FROM `ACL` WHERE `AclIP` LIKE '%*%'",false,array(1146, 1060)); + safe_w_sql("INSERT IGNORE INTO AclTemplates (`AclTeTournament`, `AclTePattern`, `AclTeNick`, `AclTeFeatures`, `AclTeEnabled`) + SELECT `AclTournament`, `AclNick`, 'REGEXP', GROUP_CONCAT(CONCAT_WS('|', AclDtFeature, AclDtSubFeature, AclDtLevel) ORDER BY AclDtFeature, AclDtSubFeature SEPARATOR '#') as `Features`, AclEnabled + FROM `ACL` + INNER JOIN AclDetails on AclTournament=AclDTTournament and AclIP=AclDtIP + WHERE `AclIP` LIKE '0.0.0.%' + GROUP BY `AclTournament`, `AclIP`",false,array(1146, 1060)); + safe_w_sql("DELETE FROM `ACL` WHERE `AclIP` LIKE '0.0.0.%'",false,array(1146, 1060)); + db_save_version('2024-09-20 08:00:07'); +} + +if($version<'2024-09-22 10:00:04') { + safe_w_sql("DROP TABLE IF EXISTS `AclUserFeatures`",false,array(1051)); + safe_w_sql("CREATE TABLE `AclUserFeatures` ( + `AclUFUser` VARCHAR(16) NOT NULL , + `AclUFPattern` VARCHAR(150) NOT NULL , + `AclUFFeature` TEXT NOT NULL , + PRIMARY KEY (`AclUFUser`, `AclUFPattern`)) ENGINE = InnoDB",false,array(1146, 1050, 1060)); + $userList = getParameter("AuthUsers", false, array(), true); + foreach ($userList as $user) { + safe_w_sql("INSERT INTO AclUsers (`AclUsUser`, `AclUsName`, `AclUsPwd`, `AclUsEnabled`, `AclUsAuthAdmin`) + VALUES (".StrSafe_DB($user["u"]).", ".StrSafe_DB($user["d"]).", '".hash("sha256",$user["p"])."', ".intval($user["e"]).", ".intval($user["r"]).") + ON DUPLICATE KEY UPDATE `AclUsName`=".StrSafe_DB($user["d"]).", `AclUsPwd`='".hash("sha256",$user["p"])."', `AclUsEnabled`=".intval($user["e"]).", `AclUsAuthAdmin`=".intval($user["r"]),false,array(1146, 1050, 1060)); + foreach ($user["c"] as $comp) { + safe_w_sql("INSERT INTO `AclUserFeatures` (`AclUFUser`, `AclUFPattern`, `AclUFFeature`) VALUES (".StrSafe_DB($user["u"]).", ".StrSafe_DB($comp).", '') + ON DUPLICATE KEY UPDATE `AclUFPattern`=".StrSafe_DB($comp).", `AclUFFeature`=''",false,array(1146, 1050, 1060)); + } + } + safe_w_sql("DELETE FROM Parameters WHERE ParId=" . StrSafe_DB("AuthUsers"),false,array(1146, 1050, 1060)); + + + db_save_version('2024-09-22 10:00:04'); +} + /* // TEMPLATE IMPORTANT: InfoSystem related things MUST be changed in the lib.php file!!! REMEMBER TO CHANGE ALSO Common/Lib/UpdateTournament.inc.php!!! -if($version<'2024-04-13 15:25:00') { - safe_w_sql("alter table Parameters change ParId ParId varchar(32) not null"); - db_save_version('2024-04-13 15:25:00'); +if($version<'2024-06-08 15:25:00') { + safe_w_sql("alter table RoundRobinMatches add index (RrMatchTournament, RrMatchTeam, RrMatchEvent)"); + db_save_version('2024-06-08 15:25:00'); } */ diff --git a/src/Common/UpdateFunctions.inc.php b/src/Common/UpdateFunctions.inc.php index 65b0d446..03901729 100644 --- a/src/Common/UpdateFunctions.inc.php +++ b/src/Common/UpdateFunctions.inc.php @@ -860,4 +860,45 @@ function updateSevereBug_20240114($ToId) { inner join `Tournament` on ToId=TfTournament and ToLocRule!='LANC' SET TfGolds='', TfGoldsChars='' WHERE TfTournament=$ToId AND `TfGolds` LIKE '11' AND `TfXNine` = '' AND `TfGoldsChars` LIKE 'M' AND `TfXNineChars` = ''",false,array(1146, 1060)); +} + +function updateTournamentInvolvedTS_20240826($ToId) { + safe_w_sql("UPDATE `TournamentInvolved` + INNER JOIN `Tournament` ON `TiTournament`=`ToId` + SET `TiTimeStamp`=`ToWhenFrom` + WHERE `ToId`=$ToId AND `TiTimeStamp`='0000-00-00'"); +} + +function updateAclTemplates_20240920($ToId) { + safe_w_sql("update `AclDetails` set `AclDtFeature`=22 where `AclDtFeature`=9 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=23 where `AclDtFeature`=2 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=24 where `AclDtFeature`=7 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=25 where `AclDtFeature`=3 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=26 where `AclDtFeature`=4 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=27 where `AclDtFeature`=16 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=28 where `AclDtFeature`=5 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=29 where `AclDtFeature`=6 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=30 where `AclDtFeature`=13 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=31 where `AclDtFeature`=14 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=32 where `AclDtFeature`=11 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=33 where `AclDtFeature`=12 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=34 where `AclDtFeature`=8 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=35 where `AclDtFeature`=10 AND `AclDtTournament`=$ToId"); + safe_w_sql("update `AclDetails` set `AclDtFeature`=36 where `AclDtFeature`=15 AND `AclDtTournament`=$ToId"); + safe_w_sql("UPDATE `AclDetails` set `AclDtFeature`=`AclDtFeature`-20 where `AclDtFeature`>20 AND `AclDtTournament`=$ToId"); + + safe_w_sql("INSERT IGNORE INTO AclTemplates (`AclTeTournament`, `AclTePattern`, `AclTeNick`, `AclTeFeatures`, `AclTeEnabled`) + SELECT `AclTournament`, `AclIP`, `AclNick`, GROUP_CONCAT(CONCAT_WS('|', AclDtFeature, AclDtSubFeature, AclDtLevel) ORDER BY AclDtFeature, AclDtSubFeature SEPARATOR '#') as `Features`, AclEnabled + FROM `ACL` + INNER JOIN AclDetails on AclTournament=AclDTTournament and AclIP=AclDtIP + WHERE `AclTournament`=$ToId AND `AclIP` LIKE '%*%' + GROUP BY `AclTournament`, `AclIP`",false,array(1146, 1060)); + safe_w_sql("DELETE FROM `ACL` WHERE `AclTournament`=$ToId AND `AclIP` LIKE '%*%'",false,array(1146, 1060)); + safe_w_sql("INSERT IGNORE INTO AclTemplates (`AclTeTournament`, `AclTePattern`, `AclTeNick`, `AclTeFeatures`, `AclTeEnabled`) + SELECT `AclTournament`, `AclNick`, 'REGEXP', GROUP_CONCAT(CONCAT_WS('|', AclDtFeature, AclDtSubFeature, AclDtLevel) ORDER BY AclDtFeature, AclDtSubFeature SEPARATOR '#') as `Features`, AclEnabled + FROM `ACL` + INNER JOIN AclDetails on AclTournament=AclDTTournament and AclIP=AclDtIP + WHERE `AclTournament`=$ToId AND `AclIP` LIKE '0.0.0.%' + GROUP BY `AclTournament`, `AclIP`",false,array(1146, 1060)); + safe_w_sql("DELETE FROM `ACL` WHERE `AclTournament`=$ToId AND `AclIP` LIKE '0.0.0.%'",false,array(1146, 1060)); } \ No newline at end of file diff --git a/src/Common/UpdatePreOpen.inc.php b/src/Common/UpdatePreOpen.inc.php index c632c455..9a1d7d6c 100644 --- a/src/Common/UpdatePreOpen.inc.php +++ b/src/Common/UpdatePreOpen.inc.php @@ -177,6 +177,16 @@ function UpdatePreOpen($TournamentID) { to_save_version($TournamentID, '2024-01-14 12:55:00'); } + if($version<'2024-08-26 07:00:02') { + updateTournamentInvolvedTS_20240826($TournamentID); + to_save_version($TournamentID, '2024-08-26 07:00:02'); + } + + if($version<'2024-09-20 08:00:07') { + updateAclTemplates_20240920($TournamentID); + to_save_version($TournamentID, '2024-09-20 08:00:07'); + } + to_save_version($TournamentID, $DbVersion); } diff --git a/src/Common/composer.json b/src/Common/composer.json new file mode 100644 index 00000000..055912ee --- /dev/null +++ b/src/Common/composer.json @@ -0,0 +1,5 @@ +{ + "require": { + "phpoffice/phpspreadsheet": "^2.2" + } +} diff --git a/src/Common/composer.lock b/src/Common/composer.lock new file mode 100644 index 00000000..9f117130 --- /dev/null +++ b/src/Common/composer.lock @@ -0,0 +1,522 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", + "This file is @generated automatically" + ], + "content-hash": "a41da3e3be9e5d05b86d8a6c746ff796", + "packages": [ + { + "name": "maennchen/zipstream-php", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-zlib": "*", + "php-64bit": "^8.1" + }, + "require-dev": { + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.16", + "guzzlehttp/guzzle": "^7.5", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^10.0", + "vimeo/psalm": "^5.0" + }, + "suggest": { + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "ZipStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" + } + ], + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": [ + "stream", + "zip" + ], + "support": { + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" + }, + "funding": [ + { + "url": "https://github.com/maennchen", + "type": "github" + }, + { + "url": "https://opencollective.com/zipstream", + "type": "open_collective" + } + ], + "time": "2023-06-21T14:59:35+00:00" + }, + { + "name": "markbaker/complex", + "version": "3.0.2", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPComplex.git", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Complex\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@lange.demon.co.uk" + } + ], + "description": "PHP Class for working with complex numbers", + "homepage": "https://github.com/MarkBaker/PHPComplex", + "keywords": [ + "complex", + "mathematics" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPComplex/issues", + "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2" + }, + "time": "2022-12-06T16:21:08+00:00" + }, + { + "name": "markbaker/matrix", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPMatrix.git", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpdocumentor/phpdocumentor": "2.*", + "phploc/phploc": "^4.0", + "phpmd/phpmd": "2.*", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "sebastian/phpcpd": "^4.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "type": "library", + "autoload": { + "psr-4": { + "Matrix\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@demon-angel.eu" + } + ], + "description": "PHP Class for working with matrices", + "homepage": "https://github.com/MarkBaker/PHPMatrix", + "keywords": [ + "mathematics", + "matrix", + "vector" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPMatrix/issues", + "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1" + }, + "time": "2022-12-02T22:17:43+00:00" + }, + { + "name": "phpoffice/phpspreadsheet", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", + "reference": "a3c5c9e7ce3a2a8577bfa9e69960fbccbd2d4a9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a3c5c9e7ce3a2a8577bfa9e69960fbccbd2d4a9e", + "reference": "a3c5c9e7ce3a2a8577bfa9e69960fbccbd2d4a9e", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-gd": "*", + "ext-iconv": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "ext-xmlreader": "*", + "ext-xmlwriter": "*", + "ext-zip": "*", + "ext-zlib": "*", + "maennchen/zipstream-php": "^2.1 || ^3.0", + "markbaker/complex": "^3.0", + "markbaker/matrix": "^3.0", + "php": "^8.1", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-main", + "dompdf/dompdf": "^2.0 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.2", + "mitoteam/jpgraph": "^10.3", + "mpdf/mpdf": "^8.1.1", + "phpcompatibility/php-compatibility": "^9.3", + "phpstan/phpstan": "^1.1", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.6 || ^10.5", + "squizlabs/php_codesniffer": "^3.7", + "tecnickcom/tcpdf": "^6.5" + }, + "suggest": { + "dompdf/dompdf": "Option for rendering PDF with PDF Writer", + "ext-intl": "PHP Internationalization Functions", + "mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", + "mpdf/mpdf": "Option for rendering PDF with PDF Writer", + "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" + }, + "type": "library", + "autoload": { + "psr-4": { + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maarten Balliauw", + "homepage": "https://blog.maartenballiauw.be" + }, + { + "name": "Mark Baker", + "homepage": "https://markbakeruk.net" + }, + { + "name": "Franck Lefevre", + "homepage": "https://rootslabs.net" + }, + { + "name": "Erik Tilt" + }, + { + "name": "Adrien Crivelli" + } + ], + "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", + "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", + "keywords": [ + "OpenXML", + "excel", + "gnumeric", + "ods", + "php", + "spreadsheet", + "xls", + "xlsx" + ], + "support": { + "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/2.2.1" + }, + "time": "2024-07-29T07:56:06+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "time": "2023-09-23T14:17:50+00:00" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "time": "2024-04-15T12:06:14+00:00" + }, + { + "name": "psr/http-message", + "version": "2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "time": "2023-04-04T09:54:51+00:00" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "time": "2021-10-29T13:26:27+00:00" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": [], + "platform-dev": [], + "plugin-api-version": "2.6.0" +} diff --git a/src/Common/distro.inc.php b/src/Common/distro.inc.php index ba89baa9..c606176e 100644 --- a/src/Common/distro.inc.php +++ b/src/Common/distro.inc.php @@ -1,6 +1,6 @@
    '); + } + } else { + $('#SpinningIanseo').remove(); + } +} \ No newline at end of file diff --git a/src/Common/pdf/IanseoPdf.php b/src/Common/pdf/IanseoPdf.php index a6b1d1a8..dd078ede 100644 --- a/src/Common/pdf/IanseoPdf.php +++ b/src/Common/pdf/IanseoPdf.php @@ -221,7 +221,7 @@ function Footer() { $this->SetXY(IanseoPdf::sideMargin,$this->h - $this->savedBottomMargin); $this->MultiCell(($this->w-20), 5, $this->getGroupPageNo() . "/" . $this->getPageGroupAlias() ,0, "C", 0); //Page number $this->SetXY(($this->w-105),$this->h - $this->savedBottomMargin + 1); //Position at 1.5 cm from bottom - $this->MultiCell(95, 5, $this->Titolo . " - " . $this->docUpdate . ($this->Version ? " (v. $this->Version)" : ''),0, "R", 0); //Page number + $this->MultiCell(95, 5, $this->Titolo . " - " . $this->docUpdate .$this->TzOffset. ($this->Version ? " (v. $this->Version)" : ''),0, "R", 0); //Page number } } diff --git a/src/Common/pdf/OrisPDF.inc.php b/src/Common/pdf/OrisPDF.inc.php index b7acaea2..66eb5ad5 100644 --- a/src/Common/pdf/OrisPDF.inc.php +++ b/src/Common/pdf/OrisPDF.inc.php @@ -43,8 +43,8 @@ function __construct($DocNumber, $DocTitle, $headers='') { } $this->Title=$DocTitle; $this->Number=$DocNumber; - $this->Event=''; - $this->EvPhase=''; + /*$this->Event=''; + $this->EvPhase='';*/ if(isset($_REQUEST["ReportCreated"]) && preg_match("/^[0-9]{12}$/i", $_REQUEST["ReportCreated"])) { $this->utsReportCreated = mktime(substr($_REQUEST["ReportCreated"], 8, 2), substr($_REQUEST["ReportCreated"], 10, 2), 0, substr($_REQUEST["ReportCreated"], 4, 2), substr($_REQUEST["ReportCreated"], 6, 2), substr($_REQUEST["ReportCreated"], 0, 4)); } else { @@ -60,6 +60,12 @@ function __construct($DocNumber, $DocTitle, $headers='') { } public function setDocUpdate($newDate) { + if(!$newDate) { + return; + } + if(strlen($newDate)==10) { + $newDate.=' 00:00:00'; + } $this->utsReportCreated = mktime(substr($newDate,11,2),substr($newDate,14,2),0,substr($newDate,5,2),substr($newDate,8,2),substr($newDate,0,4)); } @@ -395,7 +401,10 @@ function samePage($rowNo, $rowHeight=3.5, $y='', $addPage=true) { } function setOrisCode($newCode='', $newTitle='', $force=false) { - if($newCode != '' or $force) { + // should print the correct Oris Code BEFORE opening the new page + $this->endPage(); + + if($newCode != '' or $force) { $this->Number=$newCode; } if($newTitle != '' or $force) { @@ -557,10 +566,10 @@ function OrisScorecard($Data, $Bottom=0, $Phase=null, $Section=null, $Meta=null, //After: Coach? if(!empty($Data['coach']) OR !empty($Data['oppCoach'])) { $this->Cell($HeadWidthTitle, $CellHeight, $Meta['fields']['coach'] . ':'); - $this->Cell($HeadWidthData, $CellHeight, $Data['coach']); + $this->Cell($HeadWidthData, $CellHeight, $Data['coach'] . ($Data['countryCode']!=$Data['coachCountry'] ? ' ('.$Data['coachCountry'].')' : '' )); $this->Cell($InterspaceWidth, $CellHeight, ''); $this->Cell($HeadWidthTitle, $CellHeight, $Meta['fields']['coach'] . ':'); - $this->Cell($HeadWidthData, $CellHeight, $Data['oppCoach']); + $this->Cell($HeadWidthData, $CellHeight, $Data['oppCoach'] . ($Data['oppCountryCode']!=$Data['oppCoachCountry'] ? ' ('.$Data['oppCoachCountry'].')' : '' )); $this->ln(); } // empty line diff --git a/src/Common/pdf/ResultPDF.inc.php b/src/Common/pdf/ResultPDF.inc.php index 676e38b3..84ed5316 100644 --- a/src/Common/pdf/ResultPDF.inc.php +++ b/src/Common/pdf/ResultPDF.inc.php @@ -192,7 +192,7 @@ function DrawStatusLegend() global $Arr_StrStatus; //Legenda per la possibilit� di partecipazione (STATUS) $this->SetXY(10,$this->GetY()+10); - if(!$this->SamePage(5+ceil(count($Arr_StrStatus)/2)*4)) + if(!$this->SamePage(5+ceil(count($Arr_StrStatus??[])/2)*4)) $this->AddPage(); $this->SetFont($this->FontStd,'B',$this->FontSizeLines); $this->Cell(190, 5, $this->LegendStatus, 1, 1, 'C', 1); @@ -748,7 +748,7 @@ function writeDataRowPrnTeamAbs($item, $endQualified, $running) { $this->Cell(8, 4, $a['subclass'], 1, ($running ? 1 : 0), 'C', 0); $this->SetFont($this->FontFix,'',$this->FontSizeHead); if(!$running) { - $this->Cell(9, 4, number_format($a['quscore'], 0, '', $this->NumberThousandsSeparator), 1, 1, 'R', 0); + $this->Cell(9, 4, number_format(intval($a['quscore']), 0, '', $this->NumberThousandsSeparator), 1, 1, 'R', 0); } $this->SetX(72 - ($running ? 5 : 0)); } diff --git a/src/Common/pdf/ScorePDF.inc.php b/src/Common/pdf/ScorePDF.inc.php index 3d6dabd0..6df2e7ff 100644 --- a/src/Common/pdf/ScorePDF.inc.php +++ b/src/Common/pdf/ScorePDF.inc.php @@ -600,7 +600,7 @@ function DrawScoreField($TopX, $TopY, $Width, $Height, $CurDist=0, $Data=array() global $CFG; static $ArrowEnds=array(); - if($FillWithArrows=$this->FillWithArrows) { + if($FillWithArrows=$this->FillWithArrows and $this->IsRedding) { if($CurDist>1) { foreach(range(1, $CurDist-1) as $k) { if(strlen(trim(str_replace(' ', '', $Data['Arr'.$k])))!=$Data['NumArrows'.$k]) { diff --git a/src/Common/pdf/chunks/Alphabetical.inc.php b/src/Common/pdf/chunks/Alphabetical.inc.php index 8cdab981..6833e69a 100644 --- a/src/Common/pdf/chunks/Alphabetical.inc.php +++ b/src/Common/pdf/chunks/Alphabetical.inc.php @@ -2,6 +2,7 @@ $TargetFace=(isset($_REQUEST['tf']) && $_REQUEST['tf']==1); $pdf->HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $StartLetter = "."; $ShowStatusLegend = false; diff --git a/src/Common/pdf/chunks/Alphabetical_48.inc.php b/src/Common/pdf/chunks/Alphabetical_48.inc.php index f623dca9..2546000d 100644 --- a/src/Common/pdf/chunks/Alphabetical_48.inc.php +++ b/src/Common/pdf/chunks/Alphabetical_48.inc.php @@ -1,6 +1,7 @@ HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $ShowStatusLegend = false; $OldHeader=''; diff --git a/src/Common/pdf/chunks/BracketIndividual.inc.php b/src/Common/pdf/chunks/BracketIndividual.inc.php index 7206e633..941c511b 100644 --- a/src/Common/pdf/chunks/BracketIndividual.inc.php +++ b/src/Common/pdf/chunks/BracketIndividual.inc.php @@ -11,6 +11,7 @@ $pdf->SetLineWidth(0.125); $pdf->setCellPaddings(0.5,0,0.5,0); +$pdf->setDocUpdate($PdfData->LastUpdate ?? ''); //Costanti $PaginaUtile=$pdf->GetPageHeight()-56; // 35 top margin + 20 bottom margin @@ -222,7 +223,7 @@ $pdf->SetXY($LineXstart,$OrgY); } - if($ShowSchedule and $Match['scheduledTime']!='00:00' and $Match['scheduledDate']!='00-00-0000' and (trim($Match['scheduledTime']) or trim($Match['scheduledDate'])) and !($Match['score'] or $Match['setScore']) and !($Match['oppScore'] or $Match['oppSetScore']) and !$Match['tie'] and !$Match['oppTie']) { + if($ShowSchedule and $Match['scheduledTime']!='00:00' and $Match['scheduledDate']!='00-00-0000' and (trim($Match['scheduledTime']??'') or trim($Match['scheduledDate']??'')) and !($Match['score'] or $Match['setScore']) and !($Match['oppScore'] or $Match['oppSetScore']) and !$Match['tie'] and !$Match['oppTie']) { if($FirstPhase && $section['meta']['firstPhase']<24) { $pdf->SetY($OrgY-3, false); $pdf->SetFont($pdf->FontStd,'I',6); diff --git a/src/Common/pdf/chunks/BracketTeam.inc.php b/src/Common/pdf/chunks/BracketTeam.inc.php index abde70c2..afe60a15 100644 --- a/src/Common/pdf/chunks/BracketTeam.inc.php +++ b/src/Common/pdf/chunks/BracketTeam.inc.php @@ -7,6 +7,7 @@ $pdf->SetLineWidth(0.125); $pdf->setCellPaddings(0.5,0,0.5,0); +$pdf->setDocUpdate($PdfData->LastUpdate ?? ''); //error_reporting(E_ALL); diff --git a/src/Common/pdf/chunks/Category.inc.php b/src/Common/pdf/chunks/Category.inc.php index 35ba0604..6343e298 100644 --- a/src/Common/pdf/chunks/Category.inc.php +++ b/src/Common/pdf/chunks/Category.inc.php @@ -3,6 +3,7 @@ $TargetFace=(isset($_REQUEST['tf']) && $_REQUEST['tf']==1); $pdf->HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $StartLetter = "."; $ShowStatusLegend = false; diff --git a/src/Common/pdf/chunks/Category_48.inc.php b/src/Common/pdf/chunks/Category_48.inc.php index dabc2757..01a4422b 100644 --- a/src/Common/pdf/chunks/Category_48.inc.php +++ b/src/Common/pdf/chunks/Category_48.inc.php @@ -1,6 +1,7 @@ HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $ShowStatusLegend = false; $OldHeader=''; diff --git a/src/Common/pdf/chunks/Country-emails.inc.php b/src/Common/pdf/chunks/Country-emails.inc.php index b8a30618..7c282e6b 100644 --- a/src/Common/pdf/chunks/Country-emails.inc.php +++ b/src/Common/pdf/chunks/Country-emails.inc.php @@ -1,6 +1,7 @@ setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $LastCellW=$pdf->getPageWidth()-20-$NatAtlCell*2-$TgtCell*2; diff --git a/src/Common/pdf/chunks/Country-standard.inc.php b/src/Common/pdf/chunks/Country-standard.inc.php index 348ec0cd..67af81cf 100644 --- a/src/Common/pdf/chunks/Country-standard.inc.php +++ b/src/Common/pdf/chunks/Country-standard.inc.php @@ -1,5 +1,6 @@ setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); foreach($PdfData->Data['Items'] as $Country => $Rows) { if($SinglePage and !$FirstTime) { $pdf->AddPage(); diff --git a/src/Common/pdf/chunks/Country.inc.php b/src/Common/pdf/chunks/Country.inc.php index fcc37ebd..2a007e1b 100644 --- a/src/Common/pdf/chunks/Country.inc.php +++ b/src/Common/pdf/chunks/Country.inc.php @@ -1,6 +1,7 @@ HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $SinglePage=isset($_REQUEST['SinglePage']); $TargetFace=(isset($_REQUEST['tf']) && $_REQUEST['tf']==1); diff --git a/src/Common/pdf/chunks/Country_48.inc.php b/src/Common/pdf/chunks/Country_48.inc.php index 7ecab15b..a4a95710 100644 --- a/src/Common/pdf/chunks/Country_48.inc.php +++ b/src/Common/pdf/chunks/Country_48.inc.php @@ -1,6 +1,7 @@ HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $ShowStatusLegend = false; $OldHeader=''; diff --git a/src/Common/pdf/chunks/OrisAlphabetical.inc.php b/src/Common/pdf/chunks/OrisAlphabetical.inc.php index 79c533a3..a4ac1541 100644 --- a/src/Common/pdf/chunks/OrisAlphabetical.inc.php +++ b/src/Common/pdf/chunks/OrisAlphabetical.inc.php @@ -1,5 +1,6 @@ SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $pdf->setPhase('Entries'); $Version=''; if($PdfData->DocVersion) { diff --git a/src/Common/pdf/chunks/OrisBracketIndividual.inc.php b/src/Common/pdf/chunks/OrisBracketIndividual.inc.php index 34513add..b6cab2e4 100644 --- a/src/Common/pdf/chunks/OrisBracketIndividual.inc.php +++ b/src/Common/pdf/chunks/OrisBracketIndividual.inc.php @@ -136,8 +136,8 @@ $Obj1->ScheduledDate = ($ShowSchedule ? $item['scheduledDate'] : ''); $Obj1->ScheduledTime = ($ShowSchedule ? $item['scheduledTime'] : ''); - $Obj1->Saved = ($item['oppPosition'] and $item['oppPosition']<=$section['meta']['numSaved']) ? $PdfData->rankData['meta']['saved'] : ''; - $Obj1->DrawMatch=$DrawMatch; + $Obj1->Saved = ($PhaseNum>=32 AND $item['oppPosition'] and $item['oppPosition']<=$section['meta']['numSaved']) ? $PdfData->rankData['meta']['saved'] : ''; + $Obj1->DrawMatch=$DrawMatch; $Obj1->ToDo = ($DrawMatch or $item['saved']); // second athlete of match @@ -174,8 +174,8 @@ $Obj2->FSTarget = ($ShowTargetNo ? $item['oppTarget'] : ''); $Obj2->ScheduledDate = ($ShowSchedule ? $item['scheduledDate'] : ''); $Obj2->ScheduledTime = ($ShowSchedule ? $item['scheduledTime'] : ''); - $Obj2->Saved = ($item['position'] and $item['position']<=$section['meta']['numSaved']) ? $PdfData->rankData['meta']['saved'] : ''; - $Obj2->DrawMatch=$DrawMatch; + $Obj2->Saved = ($PhaseNum>=32 AND $item['position'] and $item['position']<=$section['meta']['numSaved']) ? $PdfData->rankData['meta']['saved'] : ''; + $Obj2->DrawMatch=$DrawMatch; $Obj2->ToDo = ($DrawMatch or $item['oppSaved']); // what exactly has to print as "score" for side A... diff --git a/src/Common/pdf/chunks/OrisBracketTeam.inc.php b/src/Common/pdf/chunks/OrisBracketTeam.inc.php index a6d9a3d2..f1ad7d11 100644 --- a/src/Common/pdf/chunks/OrisBracketTeam.inc.php +++ b/src/Common/pdf/chunks/OrisBracketTeam.inc.php @@ -13,7 +13,7 @@ $pdf->NotAwarded = $PdfData->rankData['meta']['notAwarded']; $pdf->FinalRank = $PdfData->rankData['meta']['fields']['finRank']; - +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); // Variabile per gestire il cambio di Evento $PhaseCounter=-1; diff --git a/src/Common/pdf/chunks/OrisCompetitionOfficials.inc.php b/src/Common/pdf/chunks/OrisCompetitionOfficials.inc.php index 2746d395..62845b95 100644 --- a/src/Common/pdf/chunks/OrisCompetitionOfficials.inc.php +++ b/src/Common/pdf/chunks/OrisCompetitionOfficials.inc.php @@ -3,6 +3,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase(''); $pdf->setEvent($PdfData->Description); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $Version=''; if($PdfData->DocVersion) { @@ -23,7 +24,7 @@ ($first ? "~".$name->ItDescription : ''), mb_strtoupper($name->TiName, 'UTF-8') . ' ' . $name->TiGivenName, mb_strtoupper($name->CoCode, 'UTF-8'), $name->CoNameComplete, - "§".($name->TiGender==0 ? 'M' : 'W') + "§".($name->TiGender==0 ? 'M' : 'F') ); $first=false; $pdf->printDataRow($tmp); diff --git a/src/Common/pdf/chunks/OrisComponentLogTeam.inc.php b/src/Common/pdf/chunks/OrisComponentLogTeam.inc.php index 0252e31d..c2ce5bff 100644 --- a/src/Common/pdf/chunks/OrisComponentLogTeam.inc.php +++ b/src/Common/pdf/chunks/OrisComponentLogTeam.inc.php @@ -1,6 +1,6 @@ setDocUpdate($PdfData->LastUpdate); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $pdf->setPhase($PdfData->Description); $First=true; diff --git a/src/Common/pdf/chunks/OrisCountry.inc.php b/src/Common/pdf/chunks/OrisCountry.inc.php index d236d5d9..2ab9de1e 100644 --- a/src/Common/pdf/chunks/OrisCountry.inc.php +++ b/src/Common/pdf/chunks/OrisCountry.inc.php @@ -2,6 +2,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase('Entries'); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $Version=''; if($PdfData->DocVersion) { diff --git a/src/Common/pdf/chunks/OrisElimStartList.inc.php b/src/Common/pdf/chunks/OrisElimStartList.inc.php index 01e92558..497daf06 100644 --- a/src/Common/pdf/chunks/OrisElimStartList.inc.php +++ b/src/Common/pdf/chunks/OrisElimStartList.inc.php @@ -3,6 +3,7 @@ require_once('Common/Lib/CommonLib.php'); $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $OldEvent='#@#@#'; $targetNo=-1; diff --git a/src/Common/pdf/chunks/OrisListCountry.inc.php b/src/Common/pdf/chunks/OrisListCountry.inc.php index 46568490..6b3573b2 100644 --- a/src/Common/pdf/chunks/OrisListCountry.inc.php +++ b/src/Common/pdf/chunks/OrisListCountry.inc.php @@ -2,6 +2,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase(''); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $pdf->setOrisCode($PdfData->Code, $PdfData->Description); $pdf->AddPage(); diff --git a/src/Common/pdf/chunks/OrisMedalStand.inc.php b/src/Common/pdf/chunks/OrisMedalStand.inc.php index 6b13ef32..7546a842 100644 --- a/src/Common/pdf/chunks/OrisMedalStand.inc.php +++ b/src/Common/pdf/chunks/OrisMedalStand.inc.php @@ -1,6 +1,7 @@ setPhase($PdfData->Phase); +$pdf->setDocUpdate($PdfData->LastUpdate); if($PdfData->Version) { $pdf->setComment(trim("Vers. {$PdfData->Version} ({$PdfData->VersionDate}) {$PdfData->VersionNote}")); @@ -9,7 +10,6 @@ $pdf->setOrisCode($PdfData->Code,$PdfData->Description); $pdf->AddPage(); $pdf->Bookmark($PdfData->IndexName, 0); -$pdf->setDocUpdate($PdfData->LastUpdate); $pdf->SetXY(OrisPDF::leftMargin,$pdf->lastY); $pdf->SetTopMargin($pdf->lastY); diff --git a/src/Common/pdf/chunks/OrisPoolIndividual.inc.php b/src/Common/pdf/chunks/OrisPoolIndividual.inc.php index dc987df4..6cd9ad72 100644 --- a/src/Common/pdf/chunks/OrisPoolIndividual.inc.php +++ b/src/Common/pdf/chunks/OrisPoolIndividual.inc.php @@ -6,6 +6,7 @@ $PdfData->HeaderPool[5]=''; $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $OldEvent='#@#@#'; $targetNo=-1; diff --git a/src/Common/pdf/chunks/OrisPoolStartlist.inc.php b/src/Common/pdf/chunks/OrisPoolStartlist.inc.php index 1e44f4ff..2d5af131 100644 --- a/src/Common/pdf/chunks/OrisPoolStartlist.inc.php +++ b/src/Common/pdf/chunks/OrisPoolStartlist.inc.php @@ -8,6 +8,7 @@ $targetNo=-1; $OldMatchPhase=-1; +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $First=true; foreach($PdfData->Data['Items'] as $EvCode => $MyRows) { diff --git a/src/Common/pdf/chunks/OrisQualIndividual.inc.php b/src/Common/pdf/chunks/OrisQualIndividual.inc.php index e7622a0f..061a5b0d 100644 --- a/src/Common/pdf/chunks/OrisQualIndividual.inc.php +++ b/src/Common/pdf/chunks/OrisQualIndividual.inc.php @@ -147,12 +147,12 @@ $dataRow[] = ''; } else { $tmpNote = ''; - if($item['so']>0) { //Spareggio + if(($item['so']??0)>0) { //Spareggio $tmpNote .= $pdf->ShotOffShort; if(strlen(trim($item['tiebreak']))) { $tmpNote .= ' ' . $item['tiebreakDecoded']; } - } else if($item['rank'] < $section['meta']['qualifiedNo']+$section['meta']['firstQualified'] AND $item['ct']>1) { + } else if($item['rank'] < $section['meta']['qualifiedNo']+$section['meta']['firstQualified'] AND ($item['ct']??0)>1) { $tmpNote .= $pdf->CoinTossShort; } if($item['notes']) { diff --git a/src/Common/pdf/chunks/OrisQualTeam.inc.php b/src/Common/pdf/chunks/OrisQualTeam.inc.php index 0bd95dcf..6cbe22a1 100644 --- a/src/Common/pdf/chunks/OrisQualTeam.inc.php +++ b/src/Common/pdf/chunks/OrisQualTeam.inc.php @@ -101,19 +101,20 @@ } $dataRow[] = trim($tmpNote); - if($item['so']>0) { - $dataRow[] = "T. " . $item['gold'] . ";" . $item['xnine']; - $dataRow[] = $item['tiebreakDecoded'] ? $pdf->ShotOffShort . ' ' . $item['tiebreakDecoded'] : $pdf->ShotOffShort; - - } elseif ($item['ct']>1) { - $dataRow[] = "T. " . $item['gold'] . ";" . $item['xnine']; - $dataRow[] = $pdf->CoinTossShort; - } elseif ($item['tie']) { - $dataRow[] = "T. " . $item['gold'] . ";" . $item['xnine']; - $dataRow[] = " "; - } else { - $dataRow[]=" "; - $dataRow[]=" "; + if($item['irm']<10) { + if ($item['so'] > 0) { + $dataRow[] = "T. " . $item['gold'] . ";" . $item['xnine']; + $dataRow[] = $item['tiebreakDecoded'] ? $pdf->ShotOffShort . ' ' . $item['tiebreakDecoded'] : $pdf->ShotOffShort; + } elseif ($item['ct'] > 1) { + $dataRow[] = "T. " . $item['gold'] . ";" . $item['xnine']; + $dataRow[] = $pdf->CoinTossShort; + } elseif ($item['tie']) { + $dataRow[] = "T. " . $item['gold'] . ";" . $item['xnine']; + $dataRow[] = " "; + } else { + $dataRow[] = " "; + $dataRow[] = " "; + } } } else { diff --git a/src/Common/pdf/chunks/OrisRecBroken.inc.php b/src/Common/pdf/chunks/OrisRecBroken.inc.php index f365df35..e27fcc04 100644 --- a/src/Common/pdf/chunks/OrisRecBroken.inc.php +++ b/src/Common/pdf/chunks/OrisRecBroken.inc.php @@ -5,6 +5,8 @@ $pdf->setPhase('As of '.$PdfData->RecordAs); $pdf->setEvent($PdfData->Description); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); + $Version=''; if($PdfData->DocVersion) { $Version=trim('Vers. '.$PdfData->DocVersion . " ($PdfData->DocVersionDate) $PdfData->DocVersionNotes"); diff --git a/src/Common/pdf/chunks/OrisRecStanding.inc.php b/src/Common/pdf/chunks/OrisRecStanding.inc.php index 4a8e8fb4..1959d1bd 100644 --- a/src/Common/pdf/chunks/OrisRecStanding.inc.php +++ b/src/Common/pdf/chunks/OrisRecStanding.inc.php @@ -4,6 +4,7 @@ $pdf->StopHeader=true; $pdf->setPhase('As of '.$PdfData->RecordAs); $pdf->setEvent($PdfData->Description); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $Version=''; if($PdfData->DocVersion) { diff --git a/src/Common/pdf/chunks/OrisRunCountry.inc.php b/src/Common/pdf/chunks/OrisRunCountry.inc.php index d2d652ee..80e39908 100644 --- a/src/Common/pdf/chunks/OrisRunCountry.inc.php +++ b/src/Common/pdf/chunks/OrisRunCountry.inc.php @@ -2,6 +2,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase($PdfData->Phase); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $OldEvent=''; $OldTarget=''; diff --git a/src/Common/pdf/chunks/OrisRunSession.inc.php b/src/Common/pdf/chunks/OrisRunSession.inc.php index 188c5fe2..7b601b51 100644 --- a/src/Common/pdf/chunks/OrisRunSession.inc.php +++ b/src/Common/pdf/chunks/OrisRunSession.inc.php @@ -2,6 +2,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase($PdfData->Phase); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $OldEvent=''; $OldTarget=''; diff --git a/src/Common/pdf/chunks/OrisScoreIndividual.inc.php b/src/Common/pdf/chunks/OrisScoreIndividual.inc.php index 22bd4419..766d09c2 100644 --- a/src/Common/pdf/chunks/OrisScoreIndividual.inc.php +++ b/src/Common/pdf/chunks/OrisScoreIndividual.inc.php @@ -9,7 +9,7 @@ $pdf->setEvent($section['meta']['eventName']); $pdf->Records=array(); // $section['records']; $pdf->setPhase($PdfData->ScorePhase); - $pdf->setDocUpdate($PdfData->LastUpdate); +// $pdf->setDocUpdate($PdfData->LastUpdate); $pdf->setDataHeader(array(),array()); if($section['meta']['version']) { @@ -29,12 +29,15 @@ $CurPlace=0; ksort($section['phases']); + $ScoreLastUpdate=''; foreach($section['phases'] as $PhaseNum => $Phase) { foreach($Phase['items'] as $item) { if(!($item['bib'] and $item['oppBib'])) { continue; } + $pdf->setDocUpdate(max($ScoreLastUpdate, $item['lastUpdated'] ?? '')); + $ScoreLastUpdate = $item['lastUpdated']; if($AddPage and !$CurPlace) { $pdf->AddPage('P'); } diff --git a/src/Common/pdf/chunks/OrisStartList.inc.php b/src/Common/pdf/chunks/OrisStartList.inc.php index e498a530..f7ac267b 100644 --- a/src/Common/pdf/chunks/OrisStartList.inc.php +++ b/src/Common/pdf/chunks/OrisStartList.inc.php @@ -2,6 +2,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase($PdfData->Phase); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $OldEvent=''; $OldTarget=''; diff --git a/src/Common/pdf/chunks/OrisStartListEvent.inc.php b/src/Common/pdf/chunks/OrisStartListEvent.inc.php index 446a3043..ca73fe6b 100644 --- a/src/Common/pdf/chunks/OrisStartListEvent.inc.php +++ b/src/Common/pdf/chunks/OrisStartListEvent.inc.php @@ -2,6 +2,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase($PdfData->Phase); +$pdf->setDocUpdate($PdfData->LastUpdate); $OldEvent=''; $OldTarget=''; diff --git a/src/Common/pdf/chunks/OrisStatByCountry.inc.php b/src/Common/pdf/chunks/OrisStatByCountry.inc.php index e666c59f..3ea397ba 100644 --- a/src/Common/pdf/chunks/OrisStatByCountry.inc.php +++ b/src/Common/pdf/chunks/OrisStatByCountry.inc.php @@ -1,6 +1,7 @@ SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase(''); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $pdf->setOrisCode($PdfData->Code, $PdfData->Description); $pdf->AddPage(); @@ -39,7 +40,8 @@ ); } $pdf->lastY += 2; -$pdf->Line(10, $pdf->lastY, array_sum($PdfData->HeaderWidth)+60, $pdf->lastY); + +$pdf->Line(10, $pdf->lastY, array_multisum($PdfData->HeaderWidth)+60, $pdf->lastY); $pdf->lastY += 2; $tmp=array( "", @@ -52,3 +54,11 @@ number_format(($Total["M"]+$Total["W"]+$Total["Of"] ),0,'','.') . "#", ); $pdf->printDataRow($tmp); + +function array_multisum(array $arr): float { + $sum=0; + foreach($arr as $child){ + $sum+=is_array($child) ? array_multisum($child):$child; + } + return $sum; +} \ No newline at end of file diff --git a/src/Common/pdf/chunks/OrisStatByEvent.inc.php b/src/Common/pdf/chunks/OrisStatByEvent.inc.php index 50cbeb44..5b62b8a7 100644 --- a/src/Common/pdf/chunks/OrisStatByEvent.inc.php +++ b/src/Common/pdf/chunks/OrisStatByEvent.inc.php @@ -2,6 +2,7 @@ $pdf->SetDataHeader($PdfData->Header, $PdfData->HeaderWidth); $pdf->setPhase(''); +$pdf->setDocUpdate($PdfData->LastUpdate ?? $PdfData->Timestamp ?? ''); $pdf->setOrisCode($PdfData->Code, $PdfData->Description); $pdf->AddPage(); diff --git a/src/Common/pdf/chunks/StartList.inc.php b/src/Common/pdf/chunks/StartList.inc.php index 9917c3b0..8c20a9ed 100644 --- a/src/Common/pdf/chunks/StartList.inc.php +++ b/src/Common/pdf/chunks/StartList.inc.php @@ -1,6 +1,7 @@ HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $ShowStatusLegend = false; $CurSession=-1; diff --git a/src/Common/pdf/chunks/StartList_48.inc.php b/src/Common/pdf/chunks/StartList_48.inc.php index fcb2c22f..26fa09b7 100644 --- a/src/Common/pdf/chunks/StartList_48.inc.php +++ b/src/Common/pdf/chunks/StartList_48.inc.php @@ -1,6 +1,7 @@ HideCols = $PdfData->HideCols; +$pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $ShowStatusLegend = false; $OldHeader=''; diff --git a/src/Common/pdf/chunks/StatByCountry.inc.php b/src/Common/pdf/chunks/StatByCountry.inc.php index cb9ccf2c..ad6305ce 100644 --- a/src/Common/pdf/chunks/StatByCountry.inc.php +++ b/src/Common/pdf/chunks/StatByCountry.inc.php @@ -2,19 +2,21 @@ $FirstTime=true; if (isset($PdfData->Data['Items']) && count($PdfData->Data['Items'])>0) { - $mainHeaderList = array(); + $pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); + + $mainHeaderList = array(); $cnt = 1; - foreach($PdfData->Data['Fields'] as $field) { - if(strstr($field,'|') !== false) { - list($div,$cl) = explode('|',$field); - if(!array_key_exists($div,$mainHeaderList)) { + foreach($PdfData->Data['Fields'] as $field) { + if(strstr($field,'|') !== false) { + list($div,$cl) = explode('|',$field); + if(!array_key_exists($div,$mainHeaderList)) { $mainHeaderList[$div]=array(); - $cnt++; - } + $cnt++; + } $mainHeaderList[$div][$cl]=0; - $cnt++; - } - } + $cnt++; + } + } $pages=array(); $maxColNo = ($pdf->getPageWidth()< $pdf->getPageHeight() ? 25 : 35); if($cnt<=$maxColNo) { diff --git a/src/Common/pdf/chunks/StatByEvent.inc.php b/src/Common/pdf/chunks/StatByEvent.inc.php index 13afc4df..4a5528a2 100644 --- a/src/Common/pdf/chunks/StatByEvent.inc.php +++ b/src/Common/pdf/chunks/StatByEvent.inc.php @@ -4,6 +4,7 @@ // starts with Qualification Round if (isset($PdfData->Data['QR']) && count($PdfData->Data['QR']['Data'])>0) { $DivSize=($pdf->getPageWidth()-35)/count($PdfData->Data['QR']['Div']); + $pdf->setDocUpdate($PdfData->Timestamp ?? $PdfData->LastUpdate ?? ''); $FirstTime=true; diff --git a/src/Common/tcpdf/CHANGELOG.TXT b/src/Common/tcpdf/CHANGELOG.TXT index e90bd161..4a845350 100644 --- a/src/Common/tcpdf/CHANGELOG.TXT +++ b/src/Common/tcpdf/CHANGELOG.TXT @@ -1,3 +1,63 @@ +6.7.5 (2024-04-20) + - Update GitHub actions + - fix: CSV-2024-22640 (#712) + +6.7.4 (2024-03-24) + - Upgrade tcpdf tag encryption algorithm. + - Fix regression issue #699. + - Fix security issue. + - [BREAKING CHANGE] The tcpdf HTML tag syntax has changed, see example_049.php. + - New K_ALLOWED_TCPDF_TAGS configuration constant to set the allowed methods for the tcdpf HTML tag. + - Raised minimum PHP version to PHP 5.5.0. + +6.6.5 (2023-09-02) + - Fix corrupted file. + - Fix GitHub automation tests. + - Fix SPDX license ID (#591) + - Fix warning "array offset on value of type null" (#620) + - Improve the README about the status of this library (#589) + - Fix deprecation warning with PHP 8.1 (#614) + - Fixes for PHP 8.2 in tcpdf_fonts.php (#632) + - Fix some php 8+ edge cases (#630) + - Fix composite glyph output (#581) + - Fix "access array offset on value of type bool" with PDF/A (#583) + - Fix non-numeric value warning (#627) + - Fix issues with S25 barcode (#611) + - Fix return type annotations (#613) + - Fix some inconsistencies in type hints (#598) + +6.6.2 (2022-12-17) + - Ensure pregSplit return type is always array. + - Add ability to run tests on various operating systems (#566) + - Avoid a deprecated error from PHP8.1 (#573) + +6.6.1 (2022-12-12) + - Add PHPStan and fix level 1 errors (#307) + +6.6.0 (2022-12-06) + - Multi-byte character support for filename during output (#561). (#562) + - Fix garbage collection (#509) + - FIX: PDF417 corrupt output problem, solution set bcmath scale parameter to zero (#534) + - Fix TypeError: count() in PHP8 (#556) + - Fix-getHTMLFontUnits (#547) + - Improved embedded image in HTML allowing src="data:..." format (#552) + - Fix image abscissa when in RTL (#510) + - fix: php 8.1 notices (#548) + - Optimize PNG files (#563) + - Update documentation for a known issue. (#569) + - Fix for PHP 8.1 (#571) + +6.5.0 (2022-08-12) + - encodeUrlQuery takes into account the port (#493) + - Fixing undefined offset error in writeHTML() when last DOM element ha… + - correct some type hints (#495) + - fix: php 8.1 notices (#481) + - Fixed: null check for PHP 8.1 (#476) + - Fix Infinite Loop in Multicell with Auto Page Breaks Off (#473) + - GetCssBorderStyle Has Problem When !important Is Specified (#467) + - Support Apache 2.4 directives in htaccess file (#530) + - Remove examples from dist package (#542) + 6.4.4 (2021-12-31) - PHP 8.1 fixes diff --git a/src/Common/tcpdf/LICENSE.TXT b/src/Common/tcpdf/LICENSE.TXT index 49147d01..ec7968a7 100644 --- a/src/Common/tcpdf/LICENSE.TXT +++ b/src/Common/tcpdf/LICENSE.TXT @@ -7,7 +7,7 @@ published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - 2002-2019 Nicola Asuni - Tecnick.com LTD + 2002-2024 Nicola Asuni - Tecnick.com LTD ********************************************************************** ********************************************************************** diff --git a/src/Common/tcpdf/README.md b/src/Common/tcpdf/README.md index 0fb94009..f59f6633 100644 --- a/src/Common/tcpdf/README.md +++ b/src/Common/tcpdf/README.md @@ -6,15 +6,14 @@ * **category** Library * **author** Nicola Asuni -* **copyright** 2002-2021 Nicola Asuni - Tecnick.com LTD +* **copyright** 2002-2024 Nicola Asuni - Tecnick.com LTD * **license** http://www.gnu.org/copyleft/lesser.html GNU-LGPL v3 (see LICENSE.TXT) * **link** http://www.tcpdf.org * **source** https://github.com/tecnickcom/TCPDF -## IMPORTANT -A new version of this library is under development at https://github.com/tecnickcom/tc-lib-pdf and as a consequence this version will not receive any additional development or support. -This version should be considered obsolete, new projects should use the new version as soon it will become stable. +## NOTE +A new version of this library is under development at https://github.com/tecnickcom/tc-lib-pdf and as a consequence this library is in support only mode. diff --git a/src/Common/tcpdf/VERSION b/src/Common/tcpdf/VERSION index 49df80bf..c56facf8 100644 --- a/src/Common/tcpdf/VERSION +++ b/src/Common/tcpdf/VERSION @@ -1 +1 @@ -6.4.4 +6.7.5 diff --git a/src/Common/tcpdf/composer.json b/src/Common/tcpdf/composer.json index c31514bb..7389d090 100644 --- a/src/Common/tcpdf/composer.json +++ b/src/Common/tcpdf/composer.json @@ -12,8 +12,8 @@ "barcodes" ], "homepage": "http://www.tcpdf.org/", - "version": "6.4.4", - "license": "LGPL-3.0-only", + "version": "6.7.5", + "license": "LGPL-3.0-or-later", "authors": [ { "name": "Nicola Asuni", @@ -22,7 +22,7 @@ } ], "require": { - "php": ">=5.3.0" + "php": ">=5.5.0" }, "autoload": { "classmap": [ @@ -43,5 +43,10 @@ "include/barcodes/pdf417.php", "include/barcodes/qrcode.php" ] + }, + "archive": { + "exclude": [ + "/examples" + ] } } diff --git a/src/Common/tcpdf/config/tcpdf_config.php b/src/Common/tcpdf/config/tcpdf_config.php index 92317b12..9888a677 100644 --- a/src/Common/tcpdf/config/tcpdf_config.php +++ b/src/Common/tcpdf/config/tcpdf_config.php @@ -212,6 +212,14 @@ */ define('K_TCPDF_CALLS_IN_HTML', false); +/** + * List of TCPDF methods that are allowed to be called using HTML syntax. + * Note: each method name must end with surrounded with | (pipe) character. + * The constant K_TCPDF_CALLS_IN_HTML must be set to true. + * IMPORTANT: For security reason, disable this feature if you are allowing user HTML content. + */ +define('K_ALLOWED_TCPDF_TAGS', ''); + /** * If true and PHP version is greater than 5, then the Error() method throw new exception instead of terminating the execution. */ diff --git a/src/Common/tcpdf/include/barcodes/datamatrix.php b/src/Common/tcpdf/include/barcodes/datamatrix.php index 38bd625f..d1cc6d2a 100644 --- a/src/Common/tcpdf/include/barcodes/datamatrix.php +++ b/src/Common/tcpdf/include/barcodes/datamatrix.php @@ -778,7 +778,7 @@ protected function getHighLevelEncoding($data) { if (isset($this->chset['SH1'][$chr])) { $temp_cw[] = 0; // shift 1 $shiftset = $this->chset['SH1']; - } elseif (isset($chr, $this->chset['SH2'][$chr])) { + } elseif (isset($this->chset['SH2'][$chr])) { $temp_cw[] = 1; // shift 2 $shiftset = $this->chset['SH2']; } elseif (($enc == ENC_C40) AND isset($this->chset['S3C'][$chr])) { diff --git a/src/Common/tcpdf/include/barcodes/pdf417.php b/src/Common/tcpdf/include/barcodes/pdf417.php index 742802e1..bda24822 100644 --- a/src/Common/tcpdf/include/barcodes/pdf417.php +++ b/src/Common/tcpdf/include/barcodes/pdf417.php @@ -943,8 +943,8 @@ protected function getCompaction($mode, $code, $addmode=true) { // tmp array for the 6 bytes block $cw6 = array(); do { - $d = bcmod($t, '900'); - $t = bcdiv($t, '900'); + $d = bcmod($t, '900', 0); + $t = bcdiv($t, '900', 0); // prepend the value to the beginning of the array array_unshift($cw6, $d); } while ($t != '0'); @@ -969,8 +969,8 @@ protected function getCompaction($mode, $code, $addmode=true) { } $t = '1'.$code; do { - $d = bcmod($t, '900'); - $t = bcdiv($t, '900'); + $d = bcmod($t, '900', 0); + $t = bcdiv($t, '900', 0); array_unshift($cw, $d); } while ($t != '0'); $code = $rest; diff --git a/src/Common/tcpdf/include/barcodes/qrcode.php b/src/Common/tcpdf/include/barcodes/qrcode.php index 751fc6d6..1a64a4cb 100644 --- a/src/Common/tcpdf/include/barcodes/qrcode.php +++ b/src/Common/tcpdf/include/barcodes/qrcode.php @@ -884,14 +884,15 @@ protected function init($spec) { protected function getCode() { if ($this->count < $this->dataLength) { $row = $this->count % $this->blocks; - $col = intdiv($this->count, $this->blocks); + $col = (int)($this->count / $this->blocks); if ($col >= $this->rsblocks[0]['dataLength']) { $row += $this->b1; } + $row = (int) $row; $ret = $this->rsblocks[$row]['data'][$col]; } elseif ($this->count < $this->dataLength + $this->eccLength) { $row = ($this->count - $this->dataLength) % $this->blocks; - $col = intdiv(($this->count - $this->dataLength),$this->blocks); + $col = (int)(($this->count - $this->dataLength) / $this->blocks); $ret = $this->rsblocks[$row]['ecc'][$col]; } else { return 0; @@ -1062,7 +1063,7 @@ protected function generateMaskNo($maskNo, $width, $frame) { protected function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly=false) { $b = 0; $bitMask = array(); - $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d); + $bitMask = $this->generateMaskNo($maskNo, $width, $s); if ($maskGenOnly) { return; } @@ -1460,7 +1461,7 @@ protected function toUpper() { $stringLen = strlen($this->dataStr); $p = 0; while ($p < $stringLen) { - $mode = $this->identifyMode(substr($this->dataStr, $p), $this->hint); + $mode = $this->identifyMode(substr($this->dataStr, $p)); if ($mode == QR_MODE_KJ) { $p += 2; } else { @@ -1692,7 +1693,7 @@ protected function insertStructuredAppendHeader($items, $size, $index, $parity) return -1; } $buf = array($size, $index, $parity); - $entry = $this->newInputItem(QR_MODE_ST, 3, buf); + $entry = $this->newInputItem(QR_MODE_ST, 3, $buf); array_unshift($items, $entry); return $items; } diff --git a/src/Common/tcpdf/include/tcpdf_colors.php b/src/Common/tcpdf/include/tcpdf_colors.php index 7f337f31..5a51594c 100644 --- a/src/Common/tcpdf/include/tcpdf_colors.php +++ b/src/Common/tcpdf/include/tcpdf_colors.php @@ -275,7 +275,7 @@ public static function convertHTMLColorToDec($hcolor, &$spotc, $defcol=array('R' $color = strtolower($color); // check for javascript color array syntax if (strpos($color, '[') !== false) { - if (preg_match('/[\[][\"\'](t|g|rgb|cmyk)[\"\'][\,]?([0-9\.]*)[\,]?([0-9\.]*)[\,]?([0-9\.]*)[\,]?([0-9\.]*)[\]]/', $color, $m) > 0) { + if (preg_match('/[\[][\"\'](t|g|rgb|cmyk)[\"\'][\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\,]?([0-9\.]*+)[\]]/', $color, $m) > 0) { $returncolor = array(); switch ($m[1]) { case 'cmyk': { diff --git a/src/Common/tcpdf/include/tcpdf_fonts.php b/src/Common/tcpdf/include/tcpdf_fonts.php index c692ef87..a71c84b7 100644 --- a/src/Common/tcpdf/include/tcpdf_fonts.php +++ b/src/Common/tcpdf/include/tcpdf_fonts.php @@ -1151,7 +1151,7 @@ public static function _getTrueTypeFontSubset($font, $subsetchars) { $subsetglyphs[$g] = true; } } - } + } break; } case 6: { // Format 6: Trimmed table mapping @@ -1323,43 +1323,43 @@ public static function _getTrueTypeFontSubset($font, $subsetchars) { // set the checkSumAdjustment to 0 $table[$tag]['data'] = substr($table[$tag]['data'], 0, 8)."\x0\x0\x0\x0".substr($table[$tag]['data'], 12); } - $pad = 4 - ($table[$tag]['length'] % 4); - if ($pad != 4) { - // the length of a table must be a multiple of four bytes - $table[$tag]['length'] += $pad; - $table[$tag]['data'] .= str_repeat("\x0", $pad); - } $table[$tag]['offset'] = $offset; $offset += $table[$tag]['length']; + $numPad = ($offset + 3 & ~3) - $offset; + if($numPad > 0) { + $table[$tag]['data'] .= str_repeat("\x0", $numPad); + $offset += $numPad; + } // check sum is not changed (so keep the following line commented) - //$table[$tag]['checkSum'] = self::_getTTFtableChecksum($table[$tag]['data'], $table[$tag]['length']); + //$table[$tag]['checkSum'] = self::_getTTFtableChecksum($table[$tag]['data'], $table[$tag]['length'] + $numPad); } else { unset($table[$tag]); } } // add loca + $table['loca'] = array(); $table['loca']['data'] = $loca; $table['loca']['length'] = strlen($loca); - $pad = 4 - ($table['loca']['length'] % 4); - if ($pad != 4) { - // the length of a table must be a multiple of four bytes - $table['loca']['length'] += $pad; - $table['loca']['data'] .= str_repeat("\x0", $pad); - } $table['loca']['offset'] = $offset; - $table['loca']['checkSum'] = self::_getTTFtableChecksum($table['loca']['data'], $table['loca']['length']); $offset += $table['loca']['length']; + $numPad = ($offset + 3 & ~3) - $offset; + if($numPad > 0) { + $table['loca']['data'] .= str_repeat("\x0", $numPad); + $offset += $numPad; + } + $table['loca']['checkSum'] = self::_getTTFtableChecksum($table['loca']['data'], $table['loca']['length'] + $numPad); // add glyf + $table['glyf'] = array(); $table['glyf']['data'] = $glyf; $table['glyf']['length'] = strlen($glyf); - $pad = 4 - ($table['glyf']['length'] % 4); - if ($pad != 4) { - // the length of a table must be a multiple of four bytes - $table['glyf']['length'] += $pad; - $table['glyf']['data'] .= str_repeat("\x0", $pad); - } $table['glyf']['offset'] = $offset; - $table['glyf']['checkSum'] = self::_getTTFtableChecksum($table['glyf']['data'], $table['glyf']['length']); + $offset += $table['glyf']['length']; + $numPad = ($offset + 3 & ~3) - $offset; + if($numPad > 0) { + $table['glyf']['data'] .= str_repeat("\x0", $numPad); + $offset += $numPad; + } + $table['glyf']['checkSum'] = self::_getTTFtableChecksum($table['glyf']['data'], $table['glyf']['length'] + $numPad); // rebuild font $font = ''; $font .= pack('N', 0x10000); // sfnt version @@ -1383,7 +1383,7 @@ public static function _getTrueTypeFontSubset($font, $subsetchars) { } // set checkSumAdjustment on head table $checkSumAdjustment = 0xB1B0AFBA - self::_getTTFtableChecksum($font, strlen($font)); - $font = substr($font, 0, $table['head']['offset'] + 8).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + 12); + $font = substr($font, 0, $table['head']['offset'] + $offset + 8).pack('N', $checkSumAdjustment).substr($font, $table['head']['offset'] + $offset + 12); return $font; } @@ -1780,9 +1780,9 @@ public static function arrUTF8ToUTF16BE($unicode, $setbom=false) { */ public static function UTF8ArrayToUniArray($ta, $isunicode=true) { if ($isunicode) { - return array_map(array('TCPDF_FONTS', 'unichrUnicode'), $ta); + return array_map(get_called_class().'::unichrUnicode', $ta); } - return array_map(array('TCPDF_FONTS', 'unichrASCII'), $ta); + return array_map(get_called_class().'::unichrASCII', $ta); } /** @@ -1998,10 +1998,11 @@ public static function getUniord($uch) { * @public static */ public static function UTF8StringToArray($str, $isunicode, &$currentfont) { + $str = is_null($str) ? '' : $str; if ($isunicode) { // requires PCRE unicode support turned on $chars = TCPDF_STATIC::pregSplit('//','u', $str, -1, PREG_SPLIT_NO_EMPTY); - $carr = array_map(array('TCPDF_FONTS', 'uniord'), $chars); + $carr = array_map(get_called_class().'::uniord', $chars); } else { $chars = str_split($str); $carr = array_map('ord', $chars); diff --git a/src/Common/tcpdf/include/tcpdf_static.php b/src/Common/tcpdf/include/tcpdf_static.php index a118d058..04f74461 100644 --- a/src/Common/tcpdf/include/tcpdf_static.php +++ b/src/Common/tcpdf/include/tcpdf_static.php @@ -3,11 +3,11 @@ // File name : tcpdf_static.php // Version : 1.1.4 // Begin : 2002-08-03 -// Last Update : 2019-11-01 +// Last Update : 2023-09-06 // Author : Nicola Asuni - Tecnick.com LTD - www.tecnick.com - info@tecnick.com // License : GNU-LGPL v3 (http://www.gnu.org/copyleft/lesser.html) // ------------------------------------------------------------------- -// Copyright (C) 2002-2021 Nicola Asuni - Tecnick.com LTD +// Copyright (C) 2002-2023 Nicola Asuni - Tecnick.com LTD // // This file is part of TCPDF software library. // @@ -55,7 +55,7 @@ class TCPDF_STATIC { * Current TCPDF version. * @private static */ - private static $tcpdf_version = '6.4.4'; + private static $tcpdf_version = '6.7.5'; /** * String alias for total number of pages. @@ -128,39 +128,6 @@ public static function getTCPDFProducer() { return "\x54\x43\x50\x44\x46\x20".self::getTCPDFVersion()."\x20\x28\x68\x74\x74\x70\x3a\x2f\x2f\x77\x77\x77\x2e\x74\x63\x70\x64\x66\x2e\x6f\x72\x67\x29"; } - /** - * Sets the current active configuration setting of magic_quotes_runtime (if the set_magic_quotes_runtime function exist) - * @param boolean $mqr FALSE for off, TRUE for on. - * @since 4.6.025 (2009-08-17) - * @public static - */ - public static function set_mqr($mqr) { - if (!defined('PHP_VERSION_ID')) { - $version = PHP_VERSION; - define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4])); - } - if (PHP_VERSION_ID < 50300) { - @set_magic_quotes_runtime($mqr); - } - } - - /** - * Gets the current active configuration setting of magic_quotes_runtime (if the get_magic_quotes_runtime function exist) - * @return int Returns 0 if magic quotes runtime is off or get_magic_quotes_runtime doesn't exist, 1 otherwise. - * @since 4.6.025 (2009-08-17) - * @public static - */ - public static function get_mqr() { - if (!defined('PHP_VERSION_ID')) { - $version = PHP_VERSION; - define('PHP_VERSION_ID', (($version[0] * 10000) + ($version[2] * 100) + $version[4])); - } - if (PHP_VERSION_ID < 50300) { - return @get_magic_quotes_runtime(); - } - return 0; - } - /** * Check if the URL exist. * @param string $url URL to check. @@ -319,7 +286,7 @@ public static function _escape($s) { */ public static function _escapeXML($str) { $replaceTable = array("\0" => '', '&' => '&', '<' => '<', '>' => '>'); - $str = strtr($str, $replaceTable); + $str = strtr($str === null ? '' : $str, $replaceTable); return $str; } @@ -852,9 +819,7 @@ public static function getAnnotOptFromJSProp($prop, &$spot_colors, $rtl=false) { if (isset($prop['charLimit'])) { $opt['maxlen'] = intval($prop['charLimit']); } - if (!isset($ff)) { - $ff = 0; // default value - } + $ff = 0; // readonly: The read-only characteristic of a field. If a field is read-only, the user can see the field but cannot change it. if (isset($prop['readonly']) AND ($prop['readonly'] == 'true')) { $ff += 1 << 0; @@ -1811,7 +1776,11 @@ public static function pregSplit($pattern, $modifiers, $subject, $limit=NULL, $f $flags = $flags === null ? 0 : $flags; // the bug only happens on PHP 5.2 when using the u modifier if ((strpos($modifiers, 'u') === FALSE) OR (count(preg_split('//u', "\n\t", -1, PREG_SPLIT_NO_EMPTY)) == 2)) { - return preg_split($pattern.$modifiers, $subject, $limit, $flags); + $ret = preg_split($pattern.$modifiers, $subject, $limit, $flags); + if ($ret === false) { + return array(); + } + return is_array($ret) ? $ret : array(); } // preg_split is bugged - try alternative solution $ret = array(); @@ -1887,7 +1856,8 @@ public static function encodeUrlQuery($url) { if (isset($urlData['query']) && $urlData['query']) { $urlQueryData = array(); parse_str(urldecode($urlData['query']), $urlQueryData); - $updatedUrl = $urlData['scheme'] . '://' . $urlData['host'] . $urlData['path'] . '?' . http_build_query($urlQueryData); + $port = isset($urlData['port']) ? ':'.$urlData['port'] : ''; + $updatedUrl = $urlData['scheme'].'://'.$urlData['host'].$port.$urlData['path'].'?'.http_build_query($urlQueryData); } else { $updatedUrl = $url; } @@ -2154,7 +2124,7 @@ public static function _freadint($f) { * Array of page formats * measures are calculated in this way: (inches * 72) or (millimeters * 72 / 25.4) * @public static - * + * * @var array */ public static $page_formats = array( diff --git a/src/Common/tcpdf/tcpdf.php b/src/Common/tcpdf/tcpdf.php index 40043473..60f93c41 100644 --- a/src/Common/tcpdf/tcpdf.php +++ b/src/Common/tcpdf/tcpdf.php @@ -1,13 +1,13 @@ * @package com.tecnick.tcpdf * @author Nicola Asuni - * @version 6.3.2 + * @version 6.6.5 */ // TCPDF configuration @@ -128,7 +128,7 @@ * TCPDF project (http://www.tcpdf.org) has been originally derived in 2002 from the Public Domain FPDF class by Olivier Plathey (http://www.fpdf.org), but now is almost entirely rewritten.
    * @package com.tecnick.tcpdf * @brief PHP class for generating PDF documents without requiring external extensions. - * @version 6.3.2 + * @version 6.7.5 * @author Nicola Asuni - info@tecnick.com * @IgnoreAnnotation("protected") * @IgnoreAnnotation("public") @@ -574,12 +574,14 @@ class TCPDF { /** * Minimum distance between header and top page margin. * @protected + * @var float */ protected $header_margin; /** * Minimum distance between footer and bottom page margin. * @protected + * @var float */ protected $footer_margin; @@ -836,6 +838,13 @@ class TCPDF { */ protected $file_id; + /** + * Internal secret used to encrypt data. + * @protected + * @since 6.7.5 (2024-03-21) + */ + protected $hash_key; + // --- bookmark --- /** @@ -1878,10 +1887,10 @@ public function __construct($orientation='P', $unit='mm', $format='A4', $unicode // set file ID for trailer $serformat = (is_array($format) ? json_encode($format) : $format); $this->file_id = md5(TCPDF_STATIC::getRandomSeed('TCPDF'.$orientation.$unit.$serformat.$encoding)); + $this->hash_key = hash_hmac('sha256', TCPDF_STATIC::getRandomSeed($this->file_id), TCPDF_STATIC::getRandomSeed('TCPDF'), false); $this->font_obj_ids = array(); $this->page_obj_id = array(); $this->form_obj_id = array(); - // set pdf/a mode if ($pdfa != false) { $this->pdfa_mode = true; @@ -2024,9 +2033,6 @@ public function __construct($orientation='P', $unit='mm', $format='A4', $unicode $this->header_xobj_autoreset = false; $this->custom_xmp = ''; $this->custom_xmp_rdf = ''; - // Call cleanup method after script execution finishes or exit() is called. - // NOTE: This will not be executed if the process is killed with a SIGTERM or SIGKILL signal. - register_shutdown_function(array($this, '_destroy'), true); } /** @@ -2464,7 +2470,7 @@ public function setLastH($h) { */ public function getCellHeight($fontsize, $padding=TRUE) { $height = ($fontsize * $this->cell_height_ratio); - if ($padding) { + if ($padding && !empty($this->cell_padding)) { $height += ($this->cell_padding['T'] + $this->cell_padding['B']); } return round($height, 6); @@ -2530,7 +2536,7 @@ public function getPageDimensions($pagenum=null) { /** * Returns the page width in units. * @param int|null $pagenum page number (empty = current page) - * @return int page width. + * @return int|float page width. * @author Nicola Asuni * @public * @since 1.5.2 @@ -2546,7 +2552,7 @@ public function getPageWidth($pagenum=null) { /** * Returns the page height in units. * @param int|null $pagenum page number (empty = current page) - * @return int page height. + * @return int|float page height. * @author Nicola Asuni * @public * @since 1.5.2 @@ -2562,7 +2568,7 @@ public function getPageHeight($pagenum=null) { /** * Returns the page break margin. * @param int|null $pagenum page number (empty = current page) - * @return int page break margin. + * @return int|float page break margin. * @author Nicola Asuni * @public * @since 1.5.2 @@ -2588,9 +2594,9 @@ public function getScaleFactor() { /** * Defines the left, top and right margins. - * @param float $left Left margin. - * @param float $top Top margin. - * @param float $right Right margin. Default value is the left one. + * @param int|float $left Left margin. + * @param int|float $top Top margin. + * @param int|float|null $right Right margin. Default value is the left one. * @param boolean $keepmargins if true overwrites the default page margins * @public * @since 1.0 @@ -2613,7 +2619,7 @@ public function setMargins($left, $top, $right=null, $keepmargins=false) { /** * Defines the left margin. The method can be called before creating the first page. If the current abscissa gets out of page, it is brought back to the margin. - * @param float $margin The margin. + * @param int|float $margin The margin. * @public * @since 1.4 * @see SetTopMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins() @@ -2628,7 +2634,7 @@ public function setLeftMargin($margin) { /** * Defines the top margin. The method can be called before creating the first page. - * @param float $margin The margin. + * @param int|float $margin The margin. * @public * @since 1.5 * @see SetLeftMargin(), SetRightMargin(), SetAutoPageBreak(), SetMargins() @@ -2643,7 +2649,7 @@ public function setTopMargin($margin) { /** * Defines the right margin. The method can be called before creating the first page. - * @param float $margin The margin. + * @param int|float $margin The margin. * @public * @since 1.5 * @see SetLeftMargin(), SetTopMargin(), SetAutoPageBreak(), SetMargins() @@ -2657,7 +2663,7 @@ public function setRightMargin($margin) { /** * Set the same internal Cell padding for top, right, bottom, left- - * @param float $pad internal padding. + * @param int|float $pad internal padding. * @public * @since 2.1.000 (2008-01-09) * @see getCellPaddings(), setCellPaddings() @@ -2673,10 +2679,10 @@ public function setCellPadding($pad) { /** * Set the internal Cell paddings. - * @param float|null $left left padding - * @param float|null $top top padding - * @param float|null $right right padding - * @param float|null $bottom bottom padding + * @param int|float|null $left left padding + * @param int|float|null $top top padding + * @param int|float|null $right right padding + * @param int|float|null $bottom bottom padding * @public * @since 5.9.000 (2010-10-03) * @see getCellPaddings(), SetCellPadding() @@ -2709,10 +2715,10 @@ public function getCellPaddings() { /** * Set the internal Cell margins. - * @param float|null $left left margin - * @param float|null $top top margin - * @param float|null $right right margin - * @param float|null $bottom bottom margin + * @param int|float|null $left left margin + * @param int|float|null $top top margin + * @param int|float|null $right right margin + * @param int|float|null $bottom bottom margin * @public * @since 5.9.000 (2010-10-03) * @see getCellMargins() @@ -2745,7 +2751,7 @@ public function getCellMargins() { /** * Adjust the internal Cell padding array to take account of the line width. - * @param string|array|int $brd Indicates if borders must be drawn around the cell. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) + * @param string|array|int|bool $brd Indicates if borders must be drawn around the cell. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) * @return void|array array of adjustments * @public * @since 5.9.000 (2010-10-03) @@ -3375,7 +3381,7 @@ public function getHeaderData() { /** * Set header margin. * (minimum distance between header and top page margin) - * @param int $hm distance in user units + * @param float $hm distance in user units * @public */ public function setHeaderMargin($hm=10) { @@ -3395,7 +3401,7 @@ public function getHeaderMargin() { /** * Set footer margin. * (minimum distance between footer and bottom page margin) - * @param int $fm distance in user units + * @param float $fm distance in user units * @public */ public function setFooterMargin($fm=10) { @@ -4105,6 +4111,7 @@ public function setTextColor($col1=0, $col2=-1, $col3=-1, $col4=-1, $ret=false, * @param float $fontsize Font size in points. The default value is the current size. * @param boolean $getarray if true returns an array of characters widths, if false returns the total length. * @return float[]|float total string length or array of characted widths + * @phpstan-return ($getarray is true ? float[] : float) total string length or array of characted widths * @author Nicola Asuni * @public * @since 1.2 @@ -4121,6 +4128,7 @@ public function GetStringWidth($s, $fontname='', $fontstyle='', $fontsize=0, $ge * @param float $fontsize Font size in points. The default value is the current size. * @param boolean $getarray if true returns an array of characters widths, if false returns the total length. * @return float[]|float total string length or array of characted widths + * @phpstan-return ($getarray is true ? float[] : float) total string length or array of characted widths * @author Nicola Asuni * @public * @since 2.4.000 (2008-03-06) @@ -4283,7 +4291,7 @@ public function AddFont($family, $style='', $fontfile='', $subset='default') { // all fonts must be embedded $family = 'pdfa'.$family; } - $tempstyle = strtoupper($style); + $tempstyle = strtoupper($style === null ? '' : $style); $style = ''; // underline if (strpos($tempstyle, 'U') !== false) { @@ -4350,6 +4358,22 @@ public function AddFont($family, $style='', $fontfile='', $subset='default') { } // include font file if (!TCPDF_STATIC::empty_string($fontfile) AND (@TCPDF_STATIC::file_exists($fontfile))) { + $type=null; + $name=null; + $desc=null; + $up=-null; + $ut=null; + $cw=null; + $cbbox=null; + $dw=null; + $enc=null; + $cidinfo=null; + $file=null; + $ctg=null; + $diff=null; + $originalsize=null; + $size1=null; + $size2=null; include($fontfile); } else { $this->Error('Could not include font definition file: '.$family.''); @@ -4410,7 +4434,7 @@ public function AddFont($family, $style='', $fontfile='', $subset='default') { $this->Error('Unknow font type: '.$type.''); } // set name if unset - if (!isset($name) OR empty($name)) { + if (empty($name)) { $name = $fontkey; } // create artificial font style variations if missing (only works with non-embedded fonts) @@ -4453,7 +4477,7 @@ public function AddFont($family, $style='', $fontfile='', $subset='default') { // we are inside an XObject template $this->xobjects[$this->xobjid]['fonts'][$fontkey] = $this->numfonts; } - if (isset($diff) AND (!empty($diff))) { + if (!empty($diff)) { //Search existing encodings $d = 0; $nb = count($this->diffs); @@ -5151,6 +5175,7 @@ public function Cell($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false */ protected function getCellCode($w, $h=0, $txt='', $border=0, $ln=0, $align='', $fill=false, $link='', $stretch=0, $ignore_min_height=false, $calign='T', $valign='M') { // replace 'NO-BREAK SPACE' (U+00A0) character with a simple space + $txt = is_null($txt) ? '' : $txt; $txt = str_replace(TCPDF_FONTS::unichr(160, $this->isunicode), ' ', $txt); $prev_cell_margin = $this->cell_margin; $prev_cell_padding = $this->cell_padding; @@ -5526,12 +5551,12 @@ protected function getCellCode($w, $h=0, $txt='', $border=0, $ln=0, $align='', $ $xdk = $xdx * $k; // print text $s .= sprintf('BT %F %F Td [(%s)] TJ ET', $xdk, (($this->h - $basefonty) * $k), $txt2); - if (isset($uniblock)) { + if (isset($uniblock)) { // @phpstan-ignore-line // print overlapping characters as separate string $xshift = 0; // horizontal shift $ty = (($this->h - $basefonty + (0.2 * $this->FontSize)) * $k); $spw = (($w - $txwidth - $this->cell_padding['L'] - $this->cell_padding['R']) / ($ns?$ns:1)); - foreach ($uniblock as $uk => $uniarr) { + foreach ($uniblock as $uk => $uniarr) { // @phpstan-ignore-line if (($uk % 2) == 0) { // x space to skip if ($spacewidth != 0) { @@ -6395,7 +6420,7 @@ public function Write($h, $txt, $link='', $fill=false, $align='', $ln=false, $st // calculate maximum width for a single character on string $chrw = $this->GetArrStringWidth($chars, '', '', 0, true); array_walk($chrw, array($this, 'getRawCharWidth')); - $maxchwidth = max($chrw); + $maxchwidth = ((is_array($chrw) || $chrw instanceof Countable) && count($chrw) > 0) ? max($chrw) : 0; // get array of chars $uchars = TCPDF_FONTS::UTF8ArrayToUniArray($chars, $this->isunicode); // get the number of characters @@ -6495,14 +6520,16 @@ public function Write($h, $txt, $link='', $fill=false, $align='', $ln=false, $st $shy = false; // account for margin changes if ((($this->y + $this->lasth) > $this->PageBreakTrigger) AND ($this->inPageBody())) { - $this->AcceptPageBreak(); - if ($this->rtl) { - $this->x -= $margin['R']; - } else { - $this->x += $margin['L']; + if ($this->AcceptPageBreak()) + { + if ($this->rtl) { + $this->x -= $margin['R']; + } else { + $this->x += $margin['L']; + } + $this->lMargin += $margin['L']; + $this->rMargin += $margin['R']; } - $this->lMargin += $margin['L']; - $this->rMargin += $margin['R']; } $w = $this->getRemainingWidth(); $wmax = ($w - $this->cell_padding['L'] - $this->cell_padding['R']); @@ -6700,14 +6727,16 @@ public function Write($h, $txt, $link='', $fill=false, $align='', $ln=false, $st } // account for margin changes if ((($this->y + $this->lasth) > $this->PageBreakTrigger) AND ($this->inPageBody())) { - $this->AcceptPageBreak(); - if ($this->rtl) { - $this->x -= $margin['R']; - } else { - $this->x += $margin['L']; + if ($this->AcceptPageBreak()) + { + if ($this->rtl) { + $this->x -= $margin['R']; + } else { + $this->x += $margin['L']; + } + $this->lMargin += $margin['L']; + $this->rMargin += $margin['R']; } - $this->lMargin += $margin['L']; - $this->rMargin += $margin['R']; } $w = $this->getRemainingWidth(); $wmax = $w - $this->cell_padding['L'] - $this->cell_padding['R']; @@ -6854,6 +6883,8 @@ protected function fitBlock($w, $h, $x, $y, $fitonpage=false) { } // resize the block to be contained on the remaining available page or column space if ($fitonpage) { + // fallback to avoid division by zero + $h = $h == 0 ? 1 : $h; $ratio_wh = ($w / $h); if (($y + $h) > $this->PageBreakTrigger) { $h = $this->PageBreakTrigger - $y; @@ -7099,8 +7130,6 @@ public function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='', $ } elseif ($type == 'jpg') { $type = 'jpeg'; } - $mqr = TCPDF_STATIC::get_mqr(); - TCPDF_STATIC::set_mqr(false); // Specific image handlers (defined on TCPDF_IMAGES CLASS) $mtd = '_parse'.$type; // GD image handler function @@ -7202,7 +7231,6 @@ public function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='', $ // unable to process image return false; } - TCPDF_STATIC::set_mqr($mqr); if ($ismask) { // force grayscale $info['cs'] = 'DeviceGray'; @@ -7230,7 +7258,7 @@ public function Image($file, $x=null, $y=null, $w=0, $h=0, $type='', $link='', $ } elseif ($palign == 'R') { $ximg = $this->w - $this->rMargin - $w; } else { - $ximg = $x; + $ximg = $this->rtl ? $x - $w : $x; } if ($ismask OR $hidden) { @@ -7614,7 +7642,7 @@ public function setAbsXY($x, $y) { * Send the document to a given destination: string, local file or browser. * In the last case, the plug-in may be used (if present) or a download ("Save as" dialog box) may be forced.
    * The method first calls Close() if necessary to terminate the document. - * @param string $name The name of the file when saved. Note that special characters are removed and blanks characters are replaced with the underscore character. + * @param string $name The name of the file when saved * @param string $dest Destination where to send the document. It can take one of the following values:
    • I: send the file inline to the browser (default). The plug-in is used if available. The name given by name is used when one selects the "Save as" option on the link generating the PDF.
    • D: send to the browser and force a file download with the name given by name.
    • F: save to a local server file with the name given by name.
    • S: return the document as a string (name is ignored).
    • FI: equivalent to F + I option
    • FD: equivalent to F + D option
    • E: return the document as base64 mime multi-part email attachment (RFC 2045)
    * @return string * @public @@ -7632,10 +7660,7 @@ public function Output($name='doc.pdf', $dest='I') { $dest = $dest ? 'D' : 'F'; } $dest = strtoupper($dest); - if ($dest[0] != 'F') { - $name = preg_replace('/[\s]+/', '_', $name); - $name = preg_replace('/[^a-zA-Z0-9_\.-]/', '', $name); - } + if ($this->sign) { // *** apply digital signature to the document *** // get the document content @@ -7706,7 +7731,8 @@ public function Output($name='doc.pdf', $dest='I') { header('Pragma: public'); header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); - header('Content-Disposition: inline; filename="'.basename($name).'"'); + header('Content-Disposition: inline; filename="' . rawurlencode(basename($name)) . '"; ' . + 'filename*=UTF-8\'\'' . rawurlencode(basename($name))); TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen); } else { echo $this->getBuffer(); @@ -7737,7 +7763,8 @@ public function Output($name='doc.pdf', $dest='I') { header('Content-Type: application/pdf'); } // use the Content-Disposition header to supply a recommended filename - header('Content-Disposition: attachment; filename="'.basename($name).'"'); + header('Content-Disposition: attachment; filename="' . rawurlencode(basename($name)) . '"; ' . + 'filename*=UTF-8\'\'' . rawurlencode(basename($name))); header('Content-Transfer-Encoding: binary'); TCPDF_STATIC::sendOutputData($this->getBuffer(), $this->bufferlen); break; @@ -8429,7 +8456,7 @@ protected function _putannotsobjs() { $annots .= ' /Name /Note'; } $hasStateModel = isset($pl['opt']['statemodel']); - $hasState = isset($pl['opt']['state']); + $hasState = isset($pl['opt']['state']); $statemodels = array('Marked', 'Review'); if (!$hasStateModel && !$hasState) { break; @@ -8867,8 +8894,6 @@ protected function _putfonts() { $this->_newobj(); $this->_out('<< /Type /Encoding /BaseEncoding /WinAnsiEncoding /Differences ['.$diff.'] >>'."\n".'endobj'); } - $mqr = TCPDF_STATIC::get_mqr(); - TCPDF_STATIC::set_mqr(false); foreach ($this->FontFiles as $file => $info) { // search and get font file to embedd $fontfile = TCPDF_FONTS::getFontFullPath($file, $info['fontdir']); @@ -8922,7 +8947,6 @@ protected function _putfonts() { $this->_out($out); } } - TCPDF_STATIC::set_mqr($mqr); foreach ($this->fontkeys as $k) { //Font objects $font = $this->getFontBuffer($k); @@ -9191,6 +9215,7 @@ protected function _putimages() { foreach ($this->imagekeys as $file) { $info = $this->getImageBuffer($file); // set object for alternate images array + $altoid = null; if ((!$this->pdfa_mode) AND isset($info['altimgs']) AND !empty($info['altimgs'])) { $altoid = $this->_newobj(); $out = '['; @@ -9238,7 +9263,7 @@ protected function _putimages() { $out .= ' /Decode [1 0 1 0 1 0 1 0]'; } $out .= ' /BitsPerComponent '.$info['bpc']; - if (isset($altoid) AND ($altoid > 0)) { + if ($altoid > 0) { // reference to alternate images dictionary $out .= ' /Alternates '.$altoid.' 0 R'; } @@ -9913,7 +9938,7 @@ protected function _putcatalog() { } $out .= ' >> >>'; } - $font = $this->getFontBuffer('helvetica'); + $font = $this->getFontBuffer((($this->pdfa_mode) ? 'pdfa' : '') .'helvetica'); $out .= ' /DA (/F'.$font['i'].' 0 Tf 0 g)'; $out .= ' /Q '.(($this->rtl)?'2':'0'); //$out .= ' /XFA '; @@ -11698,7 +11723,7 @@ public function Curve($x0, $y0, $x1, $y1, $x2, $y2, $x3, $y3, $style='', $line_s if ($this->state != 2) { return; } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { + if (!(false === strpos($style, 'F')) AND is_array($fill_color)) { $this->setFillColorArray($fill_color); } $op = TCPDF_STATIC::getPathPaintOperator($style); @@ -11728,7 +11753,7 @@ public function Polycurve($x0, $y0, $segments, $style='', $line_style=array(), $ if ($this->state != 2) { return; } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { + if (!(false === strpos($style, 'F')) AND is_array($fill_color)) { $this->setFillColorArray($fill_color); } $op = TCPDF_STATIC::getPathPaintOperator($style); @@ -11771,7 +11796,7 @@ public function Ellipse($x0, $y0, $rx, $ry=0, $angle=0, $astart=0, $afinish=360, if (TCPDF_STATIC::empty_string($ry) OR ($ry == 0)) { $ry = $rx; } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { + if (!(false === strpos($style, 'F')) AND is_array($fill_color)) { $this->setFillColorArray($fill_color); } $op = TCPDF_STATIC::getPathPaintOperator($style); @@ -11990,7 +12015,7 @@ public function Polygon($p, $style='', $line_style=array(), $fill_color=array(), } $nc += 4; } - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { + if (!(false === strpos($style, 'F')) AND is_array($fill_color)) { $this->setFillColorArray($fill_color); } $op = TCPDF_STATIC::getPathPaintOperator($style); @@ -12193,7 +12218,7 @@ public function RoundedRectXY($x, $y, $w, $h, $rx, $ry, $round_corner='1111', $s return; } // Rounded - if (!(false === strpos($style, 'F')) AND isset($fill_color)) { + if (!(false === strpos($style, 'F')) AND is_array($fill_color)) { $this->setFillColorArray($fill_color); } $op = TCPDF_STATIC::getPathPaintOperator($style); @@ -15072,9 +15097,7 @@ public function ImageEps($file, $x=null, $y=null, $w=0, $h=0, $link='', $useBoun // translate $this->_out(sprintf('%F %F %F %F %F %F cm', 1, 0, 0, 1, $dx, $dy + ($this->hPt - (2 * $y * $k) - ($y2 - $y1)))); // scale - if (isset($scale_x)) { - $this->_out(sprintf('%F %F %F %F %F %F cm', $scale_x, 0, 0, $scale_y, $x1 * (1 - $scale_x), $y2 * (1 - $scale_y))); - } + $this->_out(sprintf('%F %F %F %F %F %F cm', $scale_x, 0, 0, $scale_y, $x1 * (1 - $scale_x), $y2 * (1 - $scale_y))); // handle pc/unix/mac line endings $lines = preg_split('/[\r\n]+/si', $data, -1, PREG_SPLIT_NO_EMPTY); $u=0; @@ -16017,14 +16040,14 @@ protected function getCSSBorderDashStyle($style) { */ protected function getCSSBorderStyle($cssborder) { $bprop = preg_split('/[\s]+/', trim($cssborder)); + $count = count($bprop); + if ($count > 0 && $bprop[$count - 1] === '!important') { + unset($bprop[$count - 1]); + --$count; + } + $border = array(); // value to be returned - switch (count($bprop)) { - case 3: { - $width = $bprop[0]; - $style = $bprop[1]; - $color = $bprop[2]; - break; - } + switch ($count) { case 2: { $width = 'medium'; $style = $bprop[0]; @@ -16037,12 +16060,18 @@ protected function getCSSBorderStyle($cssborder) { $color = 'black'; break; } - default: { + case 0: { $width = 'medium'; $style = 'solid'; $color = 'black'; break; } + default: { + $width = $bprop[0]; + $style = $bprop[1]; + $color = $bprop[2]; + break; + } } if ($style == 'none') { return array(); @@ -16352,6 +16381,7 @@ public function getHTMLFontUnits($val, $refsize=12, $parent_size=12, $defaultuni break; } default: { + $parentSize = $this->getHTMLUnitToUnits($parent_size, $refsize, $defaultunit, true); $size = $this->getHTMLUnitToUnits($val, $parent_size, $defaultunit, true); } } @@ -16366,6 +16396,53 @@ public function getHTMLFontUnits($val, $refsize=12, $parent_size=12, $defaultuni * @since 3.2.000 (2008-06-20) */ protected function getHtmlDomArray($html) { + // set inheritable properties fot the first void element + // possible inheritable properties are: azimuth, border-collapse, border-spacing, caption-side, color, cursor, direction, empty-cells, font, font-family, font-stretch, font-size, font-size-adjust, font-style, font-variant, font-weight, letter-spacing, line-height, list-style, list-style-image, list-style-position, list-style-type, orphans, page, page-break-inside, quotes, speak, speak-header, text-align, text-indent, text-transform, volume, white-space, widows, word-spacing + $dom = array( + array( + 'tag' => false, + 'block' => false, + 'value' => '', + 'parent' => 0, + 'hide' => false, + 'fontname' => $this->FontFamily, + 'fontstyle' => $this->FontStyle, + 'fontsize' => $this->FontSizePt, + 'font-stretch' => $this->font_stretching, + 'letter-spacing' => $this->font_spacing, + 'stroke' => $this->textstrokewidth, + 'fill' => (($this->textrendermode % 2) == 0), + 'clip' => ($this->textrendermode > 3), + 'line-height' => $this->cell_height_ratio, + 'bgcolor' => false, + 'fgcolor' => $this->fgcolor, // color + 'strokecolor' => $this->strokecolor, + 'align' => '', + 'listtype' => '', + 'text-indent' => 0, + 'text-transform' => '', + 'border' => array(), + 'dir' => $this->rtl?'rtl':'ltr', + 'width' => 0, + 'height' => 0, + 'x' => 0, + 'y' => 0, + 'w' => 0, + 'h' => 0, + 'l' => 0, + 't' => 0, + 'r' => 0, + 'b' => 0, + 'padding' => array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0), + 'margin' => array('T' => 0, 'R' => 0, 'B' => 0, 'L' => 0), + 'border-spacing' => array('H' => 0, 'V' => 0), + 'border-collapse' => 'separate', + ) + ); + + if(empty($html)) { + return $dom; + } // array of CSS styles ( selector => properties). $css = array(); // get CSS array defined at previous call @@ -16510,37 +16587,8 @@ protected function getHtmlDomArray($html) { // count elements $maxel = count($a); $elkey = 0; - $key = 0; - // create an array of elements - $dom = array(); - $dom[$key] = array(); - // set inheritable properties fot the first void element - // possible inheritable properties are: azimuth, border-collapse, border-spacing, caption-side, color, cursor, direction, empty-cells, font, font-family, font-stretch, font-size, font-size-adjust, font-style, font-variant, font-weight, letter-spacing, line-height, list-style, list-style-image, list-style-position, list-style-type, orphans, page, page-break-inside, quotes, speak, speak-header, text-align, text-indent, text-transform, volume, white-space, widows, word-spacing - $dom[$key]['tag'] = false; - $dom[$key]['block'] = false; - $dom[$key]['value'] = ''; - $dom[$key]['parent'] = 0; - $dom[$key]['hide'] = false; - $dom[$key]['fontname'] = $this->FontFamily; - $dom[$key]['fontstyle'] = $this->FontStyle; - $dom[$key]['fontsize'] = $this->FontSizePt; - $dom[$key]['font-stretch'] = $this->font_stretching; - $dom[$key]['letter-spacing'] = $this->font_spacing; - $dom[$key]['stroke'] = $this->textstrokewidth; - $dom[$key]['fill'] = (($this->textrendermode % 2) == 0); - $dom[$key]['clip'] = ($this->textrendermode > 3); - $dom[$key]['line-height'] = $this->cell_height_ratio; - $dom[$key]['bgcolor'] = false; - $dom[$key]['fgcolor'] = $this->fgcolor; // color - $dom[$key]['strokecolor'] = $this->strokecolor; - $dom[$key]['align'] = ''; - $dom[$key]['listtype'] = ''; - $dom[$key]['text-indent'] = 0; - $dom[$key]['text-transform'] = ''; - $dom[$key]['border'] = array(); - $dom[$key]['dir'] = $this->rtl?'rtl':'ltr'; $thead = false; // true when we are inside the THEAD tag - ++$key; + $key = 1; $level = array(); array_push($level, 0); // root while ($elkey < $maxel) { @@ -17177,41 +17225,59 @@ protected function getSpaceString() { } /** - * Return an hash code used to ensure that the serialized data has been generated by this TCPDF instance. - * @param string $data serialized data - * @return string - * @public static + * Calculates the hash value of the given data. + * + * @param string $data The data to be hashed. + * @return string The hashed value of the data. */ - protected function getHashForTCPDFtagParams($data) { - return md5(strlen($data).$this->file_id.$data); + protected function hashTCPDFtag($data) { + return hash_hmac('sha256', $data, $this->hash_key, false); } /** - * Serialize an array of parameters to be used with TCPDF tag in HTML code. - * @param array $data parameters array - * @return string containing serialized data + * Serialize data to be used with TCPDF tag in HTML code. + * @param string $method TCPDF method name + * @param array $params Method parameters + * @return string Serialized data * @public static */ - public function serializeTCPDFtagParameters($data) { + public function serializeTCPDFtag($method, $params=array()) { + $data = array('m' => $method, 'p' => $params); $encoded = urlencode(json_encode($data)); - return $this->getHashForTCPDFtagParams($encoded).$encoded; + $hash = $this->hashTCPDFtag($encoded); + return strlen($hash).'+'.$hash.'+'.$encoded; } /** - * Unserialize parameters to be used with TCPDF tag in HTML code. + * Unserialize data to be used with TCPDF tag in HTML code. * @param string $data serialized data * @return array containing unserialized data * @protected static */ - protected function unserializeTCPDFtagParameters($data) { - $hash = substr($data, 0, 32); - $encoded = substr($data, 32); - if ($hash != $this->getHashForTCPDFtagParams($encoded)) { + protected function unserializeTCPDFtag($data) { + $hpos = strpos($data, '+'); + $hlen = intval(substr($data, 0, $hpos)); + $hash = substr($data, $hpos + 1, $hlen); + $encoded = substr($data, $hpos + 2 + $hlen); + if ($hash != $this->hashTCPDFtag($encoded)) { $this->Error('Invalid parameters'); } return json_decode(urldecode($encoded), true); } + /** + * Check if a TCPDF tag is allowed + * @param string $method TCPDF method name + * @return boolean + * @protected + */ + protected function allowedTCPDFtag($method) { + if (defined('K_ALLOWED_TCPDF_TAGS')) { + return (strpos(K_ALLOWED_TCPDF_TAGS, '|'.$method.'|') !== false); + } + return false; + } + /** * Prints a cell (rectangular area) with optional borders, background color and html text string. * The upper-left corner of the cell corresponds to the current position. After the call, the current position moves to the right or to the next line.
    @@ -17225,8 +17291,7 @@ protected function unserializeTCPDFtagParameters($data) { * @param float|null $y upper-left corner Y coordinate * @param string $html html text to print. Default value: empty string. * @param mixed $border Indicates if borders must be drawn around the cell. The value can be a number:
    • 0: no border (default)
    • 1: frame
    or a string containing some or all of the following characters (in any order):
    • L: left
    • T: top
    • R: right
    • B: bottom
    or an array of line styles for each border group - for example: array('LTRB' => array('width' => 2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 0, 'color' => array(0, 0, 0))) - * @param int $ln Indicates where the current position should go after the call. Possible values are:
    • 0: to the right (or left for RTL language)
    • 1: to the beginning of the next line
    • 2: below
    -Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. + * @param int $ln Indicates where the current position should go after the call. Possible values are:
    • 0: to the right (or left for RTL language)
    • 1: to the beginning of the next line
    • 2: below
    Putting 1 is equivalent to putting 0 and calling Ln() just after. Default value: 0. * @param boolean $fill Indicates if the cell background must be painted (true) or transparent (false). * @param boolean $reseth if true reset the last cell height (default true). * @param string $align Allows to center or align the text. Possible values are:
    • L : left align
    • C : center
    • R : right align
    • '' : empty string : left for LTR or right for RTL
    @@ -17359,6 +17424,7 @@ public function writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=fal ++$key; } } + if ($key == $maxel) break; if ($dom[$key]['tag'] AND isset($dom[$key]['attribute']['pagebreak'])) { // check for pagebreak if (($dom[$key]['attribute']['pagebreak'] == 'true') OR ($dom[$key]['attribute']['pagebreak'] == 'left') OR ($dom[$key]['attribute']['pagebreak'] == 'right')) { @@ -17732,7 +17798,7 @@ public function writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=fal $pend = ''; } } - if ((isset($plalign) AND ((($plalign == 'C') OR ($plalign == 'J') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl)))))) { + if ((((($plalign == 'C') OR ($plalign == 'J') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl)))))) { // calculate shifting amount $tw = $w; if (($plalign == 'J') AND $this->isRTLTextDir() AND ($this->num_columns > 1)) { @@ -18338,7 +18404,7 @@ public function writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=fal $dom[$trid]['cellpos'][($cellid - 1)]['bgcolor'] = $dom[$parentid]['bgcolor']; } // store border info - if (isset($tdborder) AND !empty($tdborder)) { + if (!empty($tdborder)) { $dom[$trid]['cellpos'][($cellid - 1)]['border'] = $tdborder; } $prevLastH = $this->lasth; @@ -18574,7 +18640,7 @@ public function writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=fal $strrest = $this->Write($this->lasth, $dom[$key]['value'], '', $wfill, '', false, 0, true, $firstblock, 0, $wadj); // restore default direction if ($reverse_dir AND ($wadj == 0)) { - $this->x = $xws; + $this->x = $xws; // @phpstan-ignore-line $this->rtl = !$this->rtl; $reverse_dir = false; } @@ -18683,7 +18749,7 @@ public function writeHTML($html, $ln=true, $fill=false, $reseth=false, $cell=fal $pend = ''; } } - if ((isset($plalign) AND ((($plalign == 'C') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl)))))) { + if ((((($plalign == 'C') OR (($plalign == 'R') AND (!$this->rtl)) OR (($plalign == 'L') AND ($this->rtl)))))) { // calculate shifting amount $tw = $w; if ($this->lMargin != $prevlMargin) { @@ -18990,6 +19056,9 @@ protected function openHTMLTagHandler($dom, $key, $cell) { // data stream $imgsrc = '@'.base64_decode(substr($imgsrc, 1)); $type = ''; + } else if (preg_match('@^data:image/([^;]*);base64,(.*)@', $imgsrc, $reg)) { + $imgsrc = '@'.base64_decode($reg[2]); + $type = $reg[1]; } elseif ( $this->allowLocalFiles && substr($imgsrc, 0, 7) === 'file://') { // get image type from a local file path $imgsrc = substr($imgsrc, 7); @@ -19483,17 +19552,14 @@ protected function openHTMLTagHandler($dom, $key, $cell) { case 'tcpdf': { if (defined('K_TCPDF_CALLS_IN_HTML') AND (K_TCPDF_CALLS_IN_HTML === true)) { // Special tag used to call TCPDF methods - if (isset($tag['attribute']['method'])) { - $tcpdf_method = $tag['attribute']['method']; - if (method_exists($this, $tcpdf_method)) { - if (isset($tag['attribute']['params']) AND (!empty($tag['attribute']['params']))) { - $params = $this->unserializeTCPDFtagParameters($tag['attribute']['params']); - call_user_func_array(array($this, $tcpdf_method), $params); - } else { - $this->$tcpdf_method(); - } - $this->newline = true; + // This tag is disabled by default by the K_TCPDF_CALLS_IN_HTML constant on TCPDF configuration file. + // Please use this feature only if you are in control of the HTML content and you are sure that it does not contain any harmful code. + if (!empty($tag['attribute']['data'])) { + $tcpdf_tag_data = $this->unserializeTCPDFtag($tag['attribute']['data']); + if ($this->allowedTCPDFtag($tcpdf_tag_data['m'])) { + call_user_func_array(array($this, $tcpdf_tag_data['m']), $tcpdf_tag_data['p']); } + $this->newline = true; } } break; @@ -19703,7 +19769,7 @@ protected function closeHTMLTagHandler($dom, $key, $cell, $maxbottomliney=0) { $table_el = $dom[($dom[$key]['parent'])]; } // for each row - if (count($table_el['trids']) > 0) { + if (!empty($table_el['trids'])) { unset($xmax); } foreach ($table_el['trids'] as $j => $trkey) { @@ -21840,25 +21906,23 @@ public function commitTransaction() { * @since 4.5.029 (2009-03-19) */ public function rollbackTransaction($self=false) { - if (isset($this->objcopy)) { - $objcopy = $this->objcopy; - $this->_destroy(true, true); - if ($self) { - $objvars = get_object_vars($objcopy); - foreach ($objvars as $key => $value) { - $this->$key = $value; - } - $objcopy->_destroy(true, true); - /* The unique file_id should not be used during cleanup again */ - $objcopy->file_id = NULL; - unset($objcopy); - return $this; + if (!isset($this->objcopy)) { + return $this; + } + $file_id = $this->file_id; + $objcopy = $this->objcopy; + $this->_destroy(true, true); + if ($self) { + $objvars = get_object_vars($objcopy); + foreach ($objvars as $key => $value) { + $this->$key = $value; } - /* The unique file_id should not be used during cleanup again */ - $this->file_id = NULL; - return $objcopy; + $objcopy->_destroy(true, true); + unset($objcopy); + return $this; } - return $this; + $this->file_id = $file_id; + return $objcopy; } // --- MULTI COLUMNS METHODS ----------------------- @@ -22034,7 +22098,7 @@ public function getNumberOfColumns() { public function setTextRenderingMode($stroke=0, $fill=true, $clip=false) { // Ref.: PDF 32000-1:2008 - 9.3.6 Text Rendering Mode // convert text rendering parameters - if ($stroke < 0) { + if ($stroke < 0 || !is_numeric($stroke)) { $stroke = 0; } if ($fill === true) { @@ -23883,9 +23947,7 @@ protected function SVGPath($d, $style='') { } $firstcmd = false; } // end foreach - if (!empty($op)) { - $this->_out($op); - } + $this->_out($op); return array($xmin, $ymin, ($xmax - $xmin), ($ymax - $ymin)); } diff --git a/src/Common/tcpdf/tcpdf_autoconfig.php b/src/Common/tcpdf/tcpdf_autoconfig.php index 6ec9ce83..2bcfccb8 100644 --- a/src/Common/tcpdf/tcpdf_autoconfig.php +++ b/src/Common/tcpdf/tcpdf_autoconfig.php @@ -228,6 +228,10 @@ define('K_TCPDF_CALLS_IN_HTML', false); } +if (!defined('K_ALLOWED_TCPDF_TAGS')) { + define('K_ALLOWED_TCPDF_TAGS', ''); +} + if (!defined('K_TCPDF_THROW_EXCEPTION_ERROR')) { define('K_TCPDF_THROW_EXCEPTION_ERROR', false); } diff --git a/src/Common/tcpdf/tcpdf_barcodes_1d.php b/src/Common/tcpdf/tcpdf_barcodes_1d.php index 10a79a72..45d35616 100644 --- a/src/Common/tcpdf/tcpdf_barcodes_1d.php +++ b/src/Common/tcpdf/tcpdf_barcodes_1d.php @@ -828,7 +828,7 @@ protected function barcode_s25($code, $checksum=false) { $chr['5'] = '11101011101010'; $chr['6'] = '10111011101010'; $chr['7'] = '10101011101110'; - $chr['8'] = '10101110111010'; + $chr['8'] = '11101010111010'; $chr['9'] = '10111010111010'; if ($checksum) { // add checksum @@ -838,7 +838,7 @@ protected function barcode_s25($code, $checksum=false) { // add leading zero if code-length is odd $code = '0'.$code; } - $seq = '11011010'; + $seq = '1110111010'; $clen = strlen($code); for ($i = 0; $i < $clen; ++$i) { $digit = $code[$i]; @@ -848,7 +848,7 @@ protected function barcode_s25($code, $checksum=false) { } $seq .= $chr[$digit]; } - $seq .= '1101011'; + $seq .= '111010111'; $bararray = array('code' => $code, 'maxw' => 0, 'maxh' => 1, 'bcode' => array()); return $this->binseq_to_array($seq, $bararray); } diff --git a/src/Common/tcpdf/tcpdf_import.php b/src/Common/tcpdf/tcpdf_import.php index cc6fda78..57f9f4f4 100644 --- a/src/Common/tcpdf/tcpdf_import.php +++ b/src/Common/tcpdf/tcpdf_import.php @@ -61,7 +61,7 @@ class TCPDF_IMPORT extends TCPDF { /** * Import an existing PDF document * @param string $filename Filename of the PDF document to import. - * @return true in case of success, false otherwise + * @return void * @public * @since 1.0.000 (2011-05-24) */ diff --git a/src/Common/vendor/autoload.php b/src/Common/vendor/autoload.php new file mode 100644 index 00000000..6b05c2eb --- /dev/null +++ b/src/Common/vendor/autoload.php @@ -0,0 +1,25 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier + * @author Jordi Boggiano + * @see https://www.php-fig.org/psr/psr-0/ + * @see https://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + /** @var \Closure(string):void */ + private static $includeFile; + + /** @var string|null */ + private $vendorDir; + + // PSR-4 + /** + * @var array> + */ + private $prefixLengthsPsr4 = array(); + /** + * @var array> + */ + private $prefixDirsPsr4 = array(); + /** + * @var list + */ + private $fallbackDirsPsr4 = array(); + + // PSR-0 + /** + * List of PSR-0 prefixes + * + * Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2'))) + * + * @var array>> + */ + private $prefixesPsr0 = array(); + /** + * @var list + */ + private $fallbackDirsPsr0 = array(); + + /** @var bool */ + private $useIncludePath = false; + + /** + * @var array + */ + private $classMap = array(); + + /** @var bool */ + private $classMapAuthoritative = false; + + /** + * @var array + */ + private $missingClasses = array(); + + /** @var string|null */ + private $apcuPrefix; + + /** + * @var array + */ + private static $registeredLoaders = array(); + + /** + * @param string|null $vendorDir + */ + public function __construct($vendorDir = null) + { + $this->vendorDir = $vendorDir; + self::initializeIncludeClosure(); + } + + /** + * @return array> + */ + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', array_values($this->prefixesPsr0)); + } + + return array(); + } + + /** + * @return array> + */ + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + /** + * @return list + */ + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + /** + * @return list + */ + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + /** + * @return array Array of classname => path + */ + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + * + * @return void + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + * + * @return void + */ + public function add($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + $paths = (array) $paths; + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param list|string $paths The PSR-0 base directories + * + * @return void + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param list|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + * + * @return void + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + * + * @return void + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + * + * @return void + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + * + * @return void + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + * + * @return void + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + + if (null === $this->vendorDir) { + return; + } + + if ($prepend) { + self::$registeredLoaders = array($this->vendorDir => $this) + self::$registeredLoaders; + } else { + unset(self::$registeredLoaders[$this->vendorDir]); + self::$registeredLoaders[$this->vendorDir] = $this; + } + } + + /** + * Unregisters this instance as an autoloader. + * + * @return void + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + + if (null !== $this->vendorDir) { + unset(self::$registeredLoaders[$this->vendorDir]); + } + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return true|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + $includeFile = self::$includeFile; + $includeFile($file); + + return true; + } + + return null; + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + /** + * Returns the currently registered loaders keyed by their corresponding vendor directories. + * + * @return array + */ + public static function getRegisteredLoaders() + { + return self::$registeredLoaders; + } + + /** + * @param string $class + * @param string $ext + * @return string|false + */ + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath . '\\'; + if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); + foreach ($this->prefixDirsPsr4[$search] as $dir) { + if (file_exists($file = $dir . $pathEnd)) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } + + /** + * @return void + */ + private static function initializeIncludeClosure() + { + if (self::$includeFile !== null) { + return; + } + + /** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + * + * @param string $file + * @return void + */ + self::$includeFile = \Closure::bind(static function($file) { + include $file; + }, null, null); + } +} diff --git a/src/Common/vendor/composer/InstalledVersions.php b/src/Common/vendor/composer/InstalledVersions.php new file mode 100644 index 00000000..51e734a7 --- /dev/null +++ b/src/Common/vendor/composer/InstalledVersions.php @@ -0,0 +1,359 @@ + + * Jordi Boggiano + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer; + +use Composer\Autoload\ClassLoader; +use Composer\Semver\VersionParser; + +/** + * This class is copied in every Composer installed project and available to all + * + * See also https://getcomposer.org/doc/07-runtime.md#installed-versions + * + * To require its presence, you can require `composer-runtime-api ^2.0` + * + * @final + */ +class InstalledVersions +{ + /** + * @var mixed[]|null + * @psalm-var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array}|array{}|null + */ + private static $installed; + + /** + * @var bool|null + */ + private static $canGetVendors; + + /** + * @var array[] + * @psalm-var array}> + */ + private static $installedByVendor = array(); + + /** + * Returns a list of all package names which are present, either by being installed, replaced or provided + * + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackages() + { + $packages = array(); + foreach (self::getInstalled() as $installed) { + $packages[] = array_keys($installed['versions']); + } + + if (1 === \count($packages)) { + return $packages[0]; + } + + return array_keys(array_flip(\call_user_func_array('array_merge', $packages))); + } + + /** + * Returns a list of all package names with a specific type e.g. 'library' + * + * @param string $type + * @return string[] + * @psalm-return list + */ + public static function getInstalledPackagesByType($type) + { + $packagesByType = array(); + + foreach (self::getInstalled() as $installed) { + foreach ($installed['versions'] as $name => $package) { + if (isset($package['type']) && $package['type'] === $type) { + $packagesByType[] = $name; + } + } + } + + return $packagesByType; + } + + /** + * Checks whether the given package is installed + * + * This also returns true if the package name is provided or replaced by another package + * + * @param string $packageName + * @param bool $includeDevRequirements + * @return bool + */ + public static function isInstalled($packageName, $includeDevRequirements = true) + { + foreach (self::getInstalled() as $installed) { + if (isset($installed['versions'][$packageName])) { + return $includeDevRequirements || !isset($installed['versions'][$packageName]['dev_requirement']) || $installed['versions'][$packageName]['dev_requirement'] === false; + } + } + + return false; + } + + /** + * Checks whether the given package satisfies a version constraint + * + * e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call: + * + * Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3') + * + * @param VersionParser $parser Install composer/semver to have access to this class and functionality + * @param string $packageName + * @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package + * @return bool + */ + public static function satisfies(VersionParser $parser, $packageName, $constraint) + { + $constraint = $parser->parseConstraints((string) $constraint); + $provided = $parser->parseConstraints(self::getVersionRanges($packageName)); + + return $provided->matches($constraint); + } + + /** + * Returns a version constraint representing all the range(s) which are installed for a given package + * + * It is easier to use this via isInstalled() with the $constraint argument if you need to check + * whether a given version of a package is installed, and not just whether it exists + * + * @param string $packageName + * @return string Version constraint usable with composer/semver + */ + public static function getVersionRanges($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + $ranges = array(); + if (isset($installed['versions'][$packageName]['pretty_version'])) { + $ranges[] = $installed['versions'][$packageName]['pretty_version']; + } + if (array_key_exists('aliases', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']); + } + if (array_key_exists('replaced', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']); + } + if (array_key_exists('provided', $installed['versions'][$packageName])) { + $ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']); + } + + return implode(' || ', $ranges); + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['version'])) { + return null; + } + + return $installed['versions'][$packageName]['version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present + */ + public static function getPrettyVersion($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['pretty_version'])) { + return null; + } + + return $installed['versions'][$packageName]['pretty_version']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference + */ + public static function getReference($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + if (!isset($installed['versions'][$packageName]['reference'])) { + return null; + } + + return $installed['versions'][$packageName]['reference']; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @param string $packageName + * @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path. + */ + public static function getInstallPath($packageName) + { + foreach (self::getInstalled() as $installed) { + if (!isset($installed['versions'][$packageName])) { + continue; + } + + return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null; + } + + throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed'); + } + + /** + * @return array + * @psalm-return array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool} + */ + public static function getRootPackage() + { + $installed = self::getInstalled(); + + return $installed[0]['root']; + } + + /** + * Returns the raw installed.php data for custom implementations + * + * @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect. + * @return array[] + * @psalm-return array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} + */ + public static function getRawData() + { + @trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED); + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + self::$installed = include __DIR__ . '/installed.php'; + } else { + self::$installed = array(); + } + } + + return self::$installed; + } + + /** + * Returns the raw data of all installed.php which are currently loaded for custom implementations + * + * @return array[] + * @psalm-return list}> + */ + public static function getAllRawData() + { + return self::getInstalled(); + } + + /** + * Lets you reload the static array from another file + * + * This is only useful for complex integrations in which a project needs to use + * this class but then also needs to execute another project's autoloader in process, + * and wants to ensure both projects have access to their version of installed.php. + * + * A typical case would be PHPUnit, where it would need to make sure it reads all + * the data it needs from this class, then call reload() with + * `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure + * the project in which it runs can then also use this class safely, without + * interference between PHPUnit's dependencies and the project's dependencies. + * + * @param array[] $data A vendor/composer/installed.php data set + * @return void + * + * @psalm-param array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $data + */ + public static function reload($data) + { + self::$installed = $data; + self::$installedByVendor = array(); + } + + /** + * @return array[] + * @psalm-return list}> + */ + private static function getInstalled() + { + if (null === self::$canGetVendors) { + self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders'); + } + + $installed = array(); + + if (self::$canGetVendors) { + foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) { + if (isset(self::$installedByVendor[$vendorDir])) { + $installed[] = self::$installedByVendor[$vendorDir]; + } elseif (is_file($vendorDir.'/composer/installed.php')) { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require $vendorDir.'/composer/installed.php'; + $installed[] = self::$installedByVendor[$vendorDir] = $required; + if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) { + self::$installed = $installed[count($installed) - 1]; + } + } + } + } + + if (null === self::$installed) { + // only require the installed.php file if this file is loaded from its dumped location, + // and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937 + if (substr(__DIR__, -8, 1) !== 'C') { + /** @var array{root: array{name: string, pretty_version: string, version: string, reference: string|null, type: string, install_path: string, aliases: string[], dev: bool}, versions: array} $required */ + $required = require __DIR__ . '/installed.php'; + self::$installed = $required; + } else { + self::$installed = array(); + } + } + + if (self::$installed !== array()) { + $installed[] = self::$installed; + } + + return $installed; + } +} diff --git a/src/Common/vendor/composer/LICENSE b/src/Common/vendor/composer/LICENSE new file mode 100644 index 00000000..62ecfd8d --- /dev/null +++ b/src/Common/vendor/composer/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) Nils Adermann, Jordi Boggiano + +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. diff --git a/src/Common/vendor/composer/autoload_classmap.php b/src/Common/vendor/composer/autoload_classmap.php new file mode 100644 index 00000000..0fb0a2c1 --- /dev/null +++ b/src/Common/vendor/composer/autoload_classmap.php @@ -0,0 +1,10 @@ + $vendorDir . '/composer/InstalledVersions.php', +); diff --git a/src/Common/vendor/composer/autoload_namespaces.php b/src/Common/vendor/composer/autoload_namespaces.php new file mode 100644 index 00000000..15a2ff3a --- /dev/null +++ b/src/Common/vendor/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ + array($vendorDir . '/maennchen/zipstream-php/src'), + 'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'), + 'Psr\\Http\\Message\\' => array($vendorDir . '/psr/http-factory/src', $vendorDir . '/psr/http-message/src'), + 'Psr\\Http\\Client\\' => array($vendorDir . '/psr/http-client/src'), + 'PhpOffice\\PhpSpreadsheet\\' => array($vendorDir . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet'), + 'Matrix\\' => array($vendorDir . '/markbaker/matrix/classes/src'), + 'Complex\\' => array($vendorDir . '/markbaker/complex/classes/src'), +); diff --git a/src/Common/vendor/composer/autoload_real.php b/src/Common/vendor/composer/autoload_real.php new file mode 100644 index 00000000..13565101 --- /dev/null +++ b/src/Common/vendor/composer/autoload_real.php @@ -0,0 +1,38 @@ +register(true); + + return $loader; + } +} diff --git a/src/Common/vendor/composer/autoload_static.php b/src/Common/vendor/composer/autoload_static.php new file mode 100644 index 00000000..b1051fa5 --- /dev/null +++ b/src/Common/vendor/composer/autoload_static.php @@ -0,0 +1,76 @@ + + array ( + 'ZipStream\\' => 10, + ), + 'P' => + array ( + 'Psr\\SimpleCache\\' => 16, + 'Psr\\Http\\Message\\' => 17, + 'Psr\\Http\\Client\\' => 16, + 'PhpOffice\\PhpSpreadsheet\\' => 25, + ), + 'M' => + array ( + 'Matrix\\' => 7, + ), + 'C' => + array ( + 'Complex\\' => 8, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'ZipStream\\' => + array ( + 0 => __DIR__ . '/..' . '/maennchen/zipstream-php/src', + ), + 'Psr\\SimpleCache\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/simple-cache/src', + ), + 'Psr\\Http\\Message\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/http-factory/src', + 1 => __DIR__ . '/..' . '/psr/http-message/src', + ), + 'Psr\\Http\\Client\\' => + array ( + 0 => __DIR__ . '/..' . '/psr/http-client/src', + ), + 'PhpOffice\\PhpSpreadsheet\\' => + array ( + 0 => __DIR__ . '/..' . '/phpoffice/phpspreadsheet/src/PhpSpreadsheet', + ), + 'Matrix\\' => + array ( + 0 => __DIR__ . '/..' . '/markbaker/matrix/classes/src', + ), + 'Complex\\' => + array ( + 0 => __DIR__ . '/..' . '/markbaker/complex/classes/src', + ), + ); + + public static $classMap = array ( + 'Composer\\InstalledVersions' => __DIR__ . '/..' . '/composer/InstalledVersions.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInit62e10e6c8df9afc192311b196c75bb33::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit62e10e6c8df9afc192311b196c75bb33::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInit62e10e6c8df9afc192311b196c75bb33::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/src/Common/vendor/composer/installed.json b/src/Common/vendor/composer/installed.json new file mode 100644 index 00000000..e2762354 --- /dev/null +++ b/src/Common/vendor/composer/installed.json @@ -0,0 +1,533 @@ +{ + "packages": [ + { + "name": "maennchen/zipstream-php", + "version": "3.1.0", + "version_normalized": "3.1.0.0", + "source": { + "type": "git", + "url": "https://github.com/maennchen/ZipStream-PHP.git", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "reference": "b8174494eda667f7d13876b4a7bfef0f62a7c0d1", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "ext-zlib": "*", + "php-64bit": "^8.1" + }, + "require-dev": { + "ext-zip": "*", + "friendsofphp/php-cs-fixer": "^3.16", + "guzzlehttp/guzzle": "^7.5", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.5", + "phpunit/phpunit": "^10.0", + "vimeo/psalm": "^5.0" + }, + "suggest": { + "guzzlehttp/psr7": "^2.4", + "psr/http-message": "^2.0" + }, + "time": "2023-06-21T14:59:35+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "ZipStream\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" + } + ], + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": [ + "stream", + "zip" + ], + "support": { + "issues": "https://github.com/maennchen/ZipStream-PHP/issues", + "source": "https://github.com/maennchen/ZipStream-PHP/tree/3.1.0" + }, + "funding": [ + { + "url": "https://github.com/maennchen", + "type": "github" + }, + { + "url": "https://opencollective.com/zipstream", + "type": "open_collective" + } + ], + "install-path": "../maennchen/zipstream-php" + }, + { + "name": "markbaker/complex", + "version": "3.0.2", + "version_normalized": "3.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPComplex.git", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "time": "2022-12-06T16:21:08+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Complex\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@lange.demon.co.uk" + } + ], + "description": "PHP Class for working with complex numbers", + "homepage": "https://github.com/MarkBaker/PHPComplex", + "keywords": [ + "complex", + "mathematics" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPComplex/issues", + "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2" + }, + "install-path": "../markbaker/complex" + }, + { + "name": "markbaker/matrix", + "version": "3.0.1", + "version_normalized": "3.0.1.0", + "source": { + "type": "git", + "url": "https://github.com/MarkBaker/PHPMatrix.git", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c", + "reference": "728434227fe21be27ff6d86621a1b13107a2562c", + "shasum": "" + }, + "require": { + "php": "^7.1 || ^8.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-master", + "phpcompatibility/php-compatibility": "^9.3", + "phpdocumentor/phpdocumentor": "2.*", + "phploc/phploc": "^4.0", + "phpmd/phpmd": "2.*", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", + "sebastian/phpcpd": "^4.0", + "squizlabs/php_codesniffer": "^3.7" + }, + "time": "2022-12-02T22:17:43+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "Matrix\\": "classes/src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mark Baker", + "email": "mark@demon-angel.eu" + } + ], + "description": "PHP Class for working with matrices", + "homepage": "https://github.com/MarkBaker/PHPMatrix", + "keywords": [ + "mathematics", + "matrix", + "vector" + ], + "support": { + "issues": "https://github.com/MarkBaker/PHPMatrix/issues", + "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1" + }, + "install-path": "../markbaker/matrix" + }, + { + "name": "phpoffice/phpspreadsheet", + "version": "2.2.1", + "version_normalized": "2.2.1.0", + "source": { + "type": "git", + "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", + "reference": "a3c5c9e7ce3a2a8577bfa9e69960fbccbd2d4a9e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a3c5c9e7ce3a2a8577bfa9e69960fbccbd2d4a9e", + "reference": "a3c5c9e7ce3a2a8577bfa9e69960fbccbd2d4a9e", + "shasum": "" + }, + "require": { + "ext-ctype": "*", + "ext-dom": "*", + "ext-fileinfo": "*", + "ext-gd": "*", + "ext-iconv": "*", + "ext-libxml": "*", + "ext-mbstring": "*", + "ext-simplexml": "*", + "ext-xml": "*", + "ext-xmlreader": "*", + "ext-xmlwriter": "*", + "ext-zip": "*", + "ext-zlib": "*", + "maennchen/zipstream-php": "^2.1 || ^3.0", + "markbaker/complex": "^3.0", + "markbaker/matrix": "^3.0", + "php": "^8.1", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.0", + "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "dev-main", + "dompdf/dompdf": "^2.0 || ^3.0", + "friendsofphp/php-cs-fixer": "^3.2", + "mitoteam/jpgraph": "^10.3", + "mpdf/mpdf": "^8.1.1", + "phpcompatibility/php-compatibility": "^9.3", + "phpstan/phpstan": "^1.1", + "phpstan/phpstan-phpunit": "^1.0", + "phpunit/phpunit": "^9.6 || ^10.5", + "squizlabs/php_codesniffer": "^3.7", + "tecnickcom/tcpdf": "^6.5" + }, + "suggest": { + "dompdf/dompdf": "Option for rendering PDF with PDF Writer", + "ext-intl": "PHP Internationalization Functions", + "mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", + "mpdf/mpdf": "Option for rendering PDF with PDF Writer", + "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" + }, + "time": "2024-07-29T07:56:06+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "psr-4": { + "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Maarten Balliauw", + "homepage": "https://blog.maartenballiauw.be" + }, + { + "name": "Mark Baker", + "homepage": "https://markbakeruk.net" + }, + { + "name": "Franck Lefevre", + "homepage": "https://rootslabs.net" + }, + { + "name": "Erik Tilt" + }, + { + "name": "Adrien Crivelli" + } + ], + "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", + "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", + "keywords": [ + "OpenXML", + "excel", + "gnumeric", + "ods", + "php", + "spreadsheet", + "xls", + "xlsx" + ], + "support": { + "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", + "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/2.2.1" + }, + "install-path": "../phpoffice/phpspreadsheet" + }, + { + "name": "psr/http-client", + "version": "1.0.3", + "version_normalized": "1.0.3.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", + "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0 || ^2.0" + }, + "time": "2023-09-23T14:17:50+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client" + }, + "install-path": "../psr/http-client" + }, + { + "name": "psr/http-factory", + "version": "1.1.0", + "version_normalized": "1.1.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-factory.git", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", + "shasum": "" + }, + "require": { + "php": ">=7.1", + "psr/http-message": "^1.0 || ^2.0" + }, + "time": "2024-04-15T12:06:14+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", + "keywords": [ + "factory", + "http", + "message", + "psr", + "psr-17", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-factory" + }, + "install-path": "../psr/http-factory" + }, + { + "name": "psr/http-message", + "version": "2.0", + "version_normalized": "2.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "reference": "402d35bcb92c70c026d1a6a9883f06b2ead23d71", + "shasum": "" + }, + "require": { + "php": "^7.2 || ^8.0" + }, + "time": "2023-04-04T09:54:51+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "homepage": "https://github.com/php-fig/http-message", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/2.0" + }, + "install-path": "../psr/http-message" + }, + { + "name": "psr/simple-cache", + "version": "3.0.0", + "version_normalized": "3.0.0.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/simple-cache.git", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/764e0b3939f5ca87cb904f570ef9be2d78a07865", + "reference": "764e0b3939f5ca87cb904f570ef9be2d78a07865", + "shasum": "" + }, + "require": { + "php": ">=8.0.0" + }, + "time": "2021-10-29T13:26:27+00:00", + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Psr\\SimpleCache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "https://www.php-fig.org/" + } + ], + "description": "Common interfaces for simple caching", + "keywords": [ + "cache", + "caching", + "psr", + "psr-16", + "simple-cache" + ], + "support": { + "source": "https://github.com/php-fig/simple-cache/tree/3.0.0" + }, + "install-path": "../psr/simple-cache" + } + ], + "dev": true, + "dev-package-names": [] +} diff --git a/src/Common/vendor/composer/installed.php b/src/Common/vendor/composer/installed.php new file mode 100644 index 00000000..57d01123 --- /dev/null +++ b/src/Common/vendor/composer/installed.php @@ -0,0 +1,95 @@ + array( + 'name' => '__root__', + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'reference' => '3ced0825b4dfe6bc50d3d439ab4e180b396cdf09', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev' => true, + ), + 'versions' => array( + '__root__' => array( + 'pretty_version' => 'dev-develop', + 'version' => 'dev-develop', + 'reference' => '3ced0825b4dfe6bc50d3d439ab4e180b396cdf09', + 'type' => 'library', + 'install_path' => __DIR__ . '/../../', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'maennchen/zipstream-php' => array( + 'pretty_version' => '3.1.0', + 'version' => '3.1.0.0', + 'reference' => 'b8174494eda667f7d13876b4a7bfef0f62a7c0d1', + 'type' => 'library', + 'install_path' => __DIR__ . '/../maennchen/zipstream-php', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'markbaker/complex' => array( + 'pretty_version' => '3.0.2', + 'version' => '3.0.2.0', + 'reference' => '95c56caa1cf5c766ad6d65b6344b807c1e8405b9', + 'type' => 'library', + 'install_path' => __DIR__ . '/../markbaker/complex', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'markbaker/matrix' => array( + 'pretty_version' => '3.0.1', + 'version' => '3.0.1.0', + 'reference' => '728434227fe21be27ff6d86621a1b13107a2562c', + 'type' => 'library', + 'install_path' => __DIR__ . '/../markbaker/matrix', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'phpoffice/phpspreadsheet' => array( + 'pretty_version' => '2.2.1', + 'version' => '2.2.1.0', + 'reference' => 'a3c5c9e7ce3a2a8577bfa9e69960fbccbd2d4a9e', + 'type' => 'library', + 'install_path' => __DIR__ . '/../phpoffice/phpspreadsheet', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/http-client' => array( + 'pretty_version' => '1.0.3', + 'version' => '1.0.3.0', + 'reference' => 'bb5906edc1c324c9a05aa0873d40117941e5fa90', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-client', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/http-factory' => array( + 'pretty_version' => '1.1.0', + 'version' => '1.1.0.0', + 'reference' => '2b4765fddfe3b508ac62f829e852b1501d3f6e8a', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-factory', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/http-message' => array( + 'pretty_version' => '2.0', + 'version' => '2.0.0.0', + 'reference' => '402d35bcb92c70c026d1a6a9883f06b2ead23d71', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/http-message', + 'aliases' => array(), + 'dev_requirement' => false, + ), + 'psr/simple-cache' => array( + 'pretty_version' => '3.0.0', + 'version' => '3.0.0.0', + 'reference' => '764e0b3939f5ca87cb904f570ef9be2d78a07865', + 'type' => 'library', + 'install_path' => __DIR__ . '/../psr/simple-cache', + 'aliases' => array(), + 'dev_requirement' => false, + ), + ), +); diff --git a/src/Common/vendor/composer/platform_check.php b/src/Common/vendor/composer/platform_check.php new file mode 100644 index 00000000..f71b2f89 --- /dev/null +++ b/src/Common/vendor/composer/platform_check.php @@ -0,0 +1,30 @@ += 80100)) { + $issues[] = 'Your Composer dependencies require a PHP version ">= 8.1.0". You are running ' . PHP_VERSION . '.'; +} + +if (PHP_INT_SIZE !== 8) { + $issues[] = 'Your Composer dependencies require a 64-bit build of PHP.'; +} + +if ($issues) { + if (!headers_sent()) { + header('HTTP/1.1 500 Internal Server Error'); + } + if (!ini_get('display_errors')) { + if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') { + fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL); + } elseif (!headers_sent()) { + echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL; + } + } + trigger_error( + 'Composer detected issues in your platform: ' . implode(' ', $issues), + E_USER_ERROR + ); +} diff --git a/src/Common/vendor/maennchen/zipstream-php/LICENSE b/src/Common/vendor/maennchen/zipstream-php/LICENSE new file mode 100644 index 00000000..ebe7fe2f --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/LICENSE @@ -0,0 +1,24 @@ +MIT License + +Copyright (C) 2007-2009 Paul Duncan +Copyright (C) 2014 Jonatan Männchen +Copyright (C) 2014 Jesse G. Donat +Copyright (C) 2018 Nicolas CARPi + +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. diff --git a/src/Common/vendor/maennchen/zipstream-php/README.md b/src/Common/vendor/maennchen/zipstream-php/README.md new file mode 100644 index 00000000..8ebb2c3c --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/README.md @@ -0,0 +1,183 @@ +# ZipStream-PHP + +[![Main Branch](https://github.com/maennchen/ZipStream-PHP/actions/workflows/branch_main.yml/badge.svg)](https://github.com/maennchen/ZipStream-PHP/actions/workflows/branch_main.yml) +[![Coverage Status](https://coveralls.io/repos/github/maennchen/ZipStream-PHP/badge.svg?branch=main)](https://coveralls.io/github/maennchen/ZipStream-PHP?branch=main) +[![Latest Stable Version](https://poser.pugx.org/maennchen/zipstream-php/v/stable)](https://packagist.org/packages/maennchen/zipstream-php) +[![Total Downloads](https://poser.pugx.org/maennchen/zipstream-php/downloads)](https://packagist.org/packages/maennchen/zipstream-php) +[![Financial Contributors on Open Collective](https://opencollective.com/zipstream/all/badge.svg?label=financial+contributors)](https://opencollective.com/zipstream) [![License](https://img.shields.io/github/license/maennchen/zipstream-php.svg)](LICENSE) + +## Unstable Branch + +The `main` branch is not stable. Please see the +[releases](https://github.com/maennchen/ZipStream-PHP/releases) for a stable +version. + +## Overview + +A fast and simple streaming zip file downloader for PHP. Using this library will +save you from having to write the Zip to disk. You can directly send it to the +user, which is much faster. It can work with S3 buckets or any PSR7 Stream. + +Please see the [LICENSE](LICENSE) file for licensing and warranty information. + +## Installation + +Simply add a dependency on maennchen/zipstream-php to your project's +`composer.json` file if you use Composer to manage the dependencies of your +project. Use following command to add the package to your project's dependencies: + +```bash +composer require maennchen/zipstream-php +``` + +## Usage + +For detailed instructions, please check the +[Documentation](https://maennchen.github.io/ZipStream-PHP/). + +```php +// Autoload the dependencies +require 'vendor/autoload.php'; + +// create a new zipstream object +$zip = new ZipStream\ZipStream( + outputName: 'example.zip', + + // enable output of HTTP headers + sendHttpHeaders: true, +); + +// create a file named 'hello.txt' +$zip->addFile( + fileName: 'hello.txt', + data: 'This is the contents of hello.txt', +); + +// add a file named 'some_image.jpg' from a local file 'path/to/image.jpg' +$zip->addFileFromPath( + fileName: 'some_image.jpg', + path: 'path/to/image.jpg', +); + +// finish the zip stream +$zip->finish(); +``` + +## Upgrade to version 3.0.0 + +### General + +- Minimum PHP Version: `8.1` +- Only 64bit Architecture is supported. +- The class `ZipStream\Option\Method` has been replaced with the enum + `ZipStream\CompressionMethod`. +- Most clases have been flagged as `@internal` and should not be used from the + outside. + If you're using internal resources to extend this library, please open an + issue so that a clean interface can be added & published. + The externally available classes & enums are: + - `ZipStream\CompressionMethod` + - `ZipStream\Exception*` + - `ZipStream\ZipStream` + +### Archive Options + +- The class `ZipStream\Option\Archive` has been replaced in favor of named + arguments in the `ZipStream\ZipStream` constuctor. +- The archive options `largeFileSize` & `largeFileMethod` has been removed. If + you want different `compressionMethods` based on the file size, you'll have to + implement this yourself. +- The archive option `httpHeaderCallback` changed the type from `callable` to + `Closure`. +- The archive option `zeroHeader` has been replaced with the option + `defaultEnableZeroHeader` and can be overridden for every file. Its default + value changed from `false` to `true`. +- The archive option `statFiles` was removed since the library no longer checks + filesizes this way. +- The archive option `deflateLevel` has been replaced with the option + `defaultDeflateLevel` and can be overridden for every file. +- The first argument (`name`) of the `ZipStream\ZipStream` constuctor has been + replaced with the named argument `outputName`. +- Headers are now also sent if the `outputName` is empty. If you do not want to + automatically send http headers, set `sendHttpHeaders` to `false`. + +### File Options + +- The class `ZipStream\Option\File` has been replaced in favor of named + arguments in the `ZipStream\ZipStream->addFile*` functions. +- The file option `method` has been renamed to `compressionMethod`. +- The file option `time` has been renamed to `lastModificationDateTime`. +- The file option `size` has been renamed to `maxSize`. + +## Upgrade to version 2.0.0 + +https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-200 + +## Upgrade to version 1.0.0 + +https://github.com/maennchen/ZipStream-PHP/tree/2.0.0#upgrade-to-version-100 + +## Contributing + +ZipStream-PHP is a collaborative project. Please take a look at the +[.github/CONTRIBUTING.md](.github/CONTRIBUTING.md) file. + +## Version Support + +Versions are supported according to the table below. + +Please do not open any pull requests contradicting the current version support +status. + +Careful: Always check the `README` on `main` for up-to-date information. + +| Version | New Features | Bugfixes | Security | +|---------|--------------|----------|----------| +| *3* | ✓ | ✓ | ✓ | +| *2* | ✗ | ✓ | ✓ | +| *1* | ✗ | ✗ | ✓ | +| *0* | ✗ | ✗ | ✗ | + +This library aligns itself with the PHP core support. New features and bugfixes +will only target PHP versions according to their current status. + +See: https://www.php.net/supported-versions.php + +## About the Authors + +- Paul Duncan - https://pablotron.org/ +- Jonatan Männchen - https://maennchen.dev +- Jesse G. Donat - https://donatstudios.com +- Nicolas CARPi - https://www.deltablot.com +- Nik Barham - https://www.brokencube.co.uk + +## Contributors + +### Code Contributors + +This project exists thanks to all the people who contribute. +[[Contribute](.github/CONTRIBUTING.md)]. + + +### Financial Contributors + +Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/zipstream/contribute)] + +#### Individuals + + + +#### Organizations + +Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/zipstream/contribute)] + + + + + + + + + + + diff --git a/src/Common/vendor/maennchen/zipstream-php/composer.json b/src/Common/vendor/maennchen/zipstream-php/composer.json new file mode 100644 index 00000000..98c536a4 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/composer.json @@ -0,0 +1,88 @@ +{ + "name": "maennchen/zipstream-php", + "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", + "keywords": ["zip", "stream"], + "type": "library", + "license": "MIT", + "authors": [{ + "name": "Paul Duncan", + "email": "pabs@pablotron.org" + }, + { + "name": "Jonatan Männchen", + "email": "jonatan@maennchen.ch" + }, + { + "name": "Jesse Donat", + "email": "donatj@gmail.com" + }, + { + "name": "András Kolesár", + "email": "kolesar@kolesar.hu" + } + ], + "require": { + "php-64bit": "^8.1", + "ext-mbstring": "*", + "ext-zlib": "*" + }, + "require-dev": { + "phpunit/phpunit": "^10.0", + "guzzlehttp/guzzle": "^7.5", + "ext-zip": "*", + "mikey179/vfsstream": "^1.6", + "php-coveralls/php-coveralls": "^2.5", + "friendsofphp/php-cs-fixer": "^3.16", + "vimeo/psalm": "^5.0" + }, + "suggest": { + "psr/http-message": "^2.0", + "guzzlehttp/psr7": "^2.4" + }, + "scripts": { + "format": "php-cs-fixer fix", + "test": [ + "@test:unit", + "@test:formatted", + "@test:lint" + ], + "test:unit": "phpunit --coverage-clover=coverage.clover.xml --coverage-html cov", + "test:unit:slow": "@test:unit --group slow", + "test:unit:fast": "@test:unit --exclude-group slow", + "test:formatted": "@format --dry-run --stop-on-violation --using-cache=no", + "test:lint": "psalm --stats --show-info=true --find-unused-psalm-suppress", + "coverage:report": "php-coveralls --coverage_clover=coverage.clover.xml --json_path=coveralls-upload.json --insecure", + "install:tools": "phive install --trust-gpg-keys 0x67F861C3D889C656", + "docs:generate": "tools/phpdocumentor --sourcecode" + }, + "autoload": { + "psr-4": { + "ZipStream\\": "src/" + } + }, + "autoload-dev": { + "psr-4": { "ZipStream\\Test\\": "test/" } + }, + "archive": { + "exclude": [ + "/composer.lock", + "/docs", + "/.gitattributes", + "/.github", + "/.gitignore", + "/guides", + "/.phive", + "/.php-cs-fixer.cache", + "/.php-cs-fixer.dist.php", + "/.phpdoc", + "/phpdoc.dist.xml", + "/.phpunit.result.cache", + "/phpunit.xml.dist", + "/psalm.xml", + "/test", + "/tools", + "/.tool-versions", + "/vendor" + ] + } +} diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/ContentLength.rst b/src/Common/vendor/maennchen/zipstream-php/guides/ContentLength.rst new file mode 100644 index 00000000..21fea34d --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/ContentLength.rst @@ -0,0 +1,47 @@ +Adding Content-Length header +============= + +Adding a ``Content-Length`` header for ``ZipStream`` can be achieved by +using the options ``SIMULATION_STRICT`` or ``SIMULATION_LAX`` in the +``operationMode`` parameter. + +In the ``SIMULATION_STRICT`` mode, ``ZipStream`` will not allow to calculate the +size based on reading the whole file. ``SIMULATION_LAX`` will read the whole +file if neccessary. + +``SIMULATION_STRICT`` is therefore useful to make sure that the size can be +calculated efficiently. + +.. code-block:: php + use ZipStream\OperationMode; + use ZipStream\ZipStream; + + $zip = new ZipStream( + operationMode: OperationMode::SIMULATE_STRICT, // or SIMULATE_LAX + defaultEnableZeroHeader: false, + sendHttpHeaders: true, + outputStream: $stream, + ); + + // Normally add files + $zip->addFile('sample.txt', 'Sample String Data'); + + // Use addFileFromCallback and exactSize if you want to defer opening of + // the file resource + $zip->addFileFromCallback( + 'sample.txt', + exactSize: 18, + callback: function () { + return fopen('...'); + } + ); + + // Read resulting file size + $size = $zip->finish(); + + // Tell it to the browser + header('Content-Length: '. $size); + + // Execute the Simulation and stream the actual zip to the client + $zip->executeSimulation(); + diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/FlySystem.rst b/src/Common/vendor/maennchen/zipstream-php/guides/FlySystem.rst new file mode 100644 index 00000000..4e6c6fb8 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/FlySystem.rst @@ -0,0 +1,34 @@ +Usage with FlySystem +=============== + +For saving or uploading the generated zip, you can use the +`Flysystem `_ package, and its many +adapters. + +For that you will need to provide another stream than the ``php://output`` +default one, and pass it to Flysystem ``putStream`` method. + +.. code-block:: php + + // Open Stream only once for read and write since it's a memory stream and + // the content is lost when closing the stream / opening another one + $tempStream = fopen('php://memory', 'w+'); + + // Create Zip Archive + $zipStream = new ZipStream( + outputStream: $tempStream, + outputName: 'test.zip', + ); + $zipStream->addFile('test.txt', 'text'); + $zipStream->finish(); + + // Store File + // (see Flysystem documentation, and all its framework integration) + // Can be any adapter (AWS, Google, Ftp, etc.) + $adapter = new Local(__DIR__.'/path/to/folder'); + $filesystem = new Filesystem($adapter); + + $filesystem->writeStream('test.zip', $tempStream) + + // Close Stream + fclose($tempStream); diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/Nginx.rst b/src/Common/vendor/maennchen/zipstream-php/guides/Nginx.rst new file mode 100644 index 00000000..c53d3000 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/Nginx.rst @@ -0,0 +1,16 @@ +Usage with nginx +============= + +If you are using nginx as a webserver, it will try to buffer the response. +So you'll want to disable this with a custom header: + +.. code-block:: php + header('X-Accel-Buffering: no'); + # or with the Response class from Symfony + $response->headers->set('X-Accel-Buffering', 'no'); + +Alternatively, you can tweak the +`fastcgi cache parameters `_ +within nginx config. + +See `original issue `_. \ No newline at end of file diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/Options.rst b/src/Common/vendor/maennchen/zipstream-php/guides/Options.rst new file mode 100644 index 00000000..5e92e94d --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/Options.rst @@ -0,0 +1,66 @@ +Available options +=============== + +Here is the full list of options available to you. You can also have a look at +``src/ZipStream.php`` file. + +.. code-block:: php + + use ZipStream\ZipStream; + + require_once 'vendor/autoload.php'; + + $zip = new ZipStream( + // Define output stream + // (argument is eiter a resource or implementing + // `Psr\Http\Message\StreamInterface`) + // + // Setup with `psr/http-message` & `guzzlehttp/psr7` dependencies + // required when using `Psr\Http\Message\StreamInterface`. + outputStream: $filePointer, + + // Set the deflate level (default is 6; use -1 to disable it) + defaultDeflateLevel: 6, + + // Add a comment to the zip file + comment: 'This is a comment.', + + // Send http headers (default is true) + sendHttpHeaders: false, + + // HTTP Content-Disposition. + // Defaults to 'attachment', where FILENAME is the specified filename. + // Note that this does nothing if you are not sending HTTP headers. + contentDisposition: 'attachment', + + // Output Name for HTTP Content-Disposition + // Defaults to no name + outputName: "example.zip", + + // HTTP Content-Type. + // Defaults to 'application/x-zip'. + // Note that this does nothing if you are not sending HTTP headers. + contentType: 'application/x-zip', + + // Set the function called for setting headers. + // Default is the `header()` of PHP + httpHeaderCallback: header(...), + + // Enable streaming files with single read where general purpose bit 3 + // indicates local file header contain zero values in crc and size + // fields, these appear only after file contents in data descriptor + // block. + // Set to true if your input stream is remote + // (used with addFileFromStream()). + // Default is false. + defaultEnableZeroHeader: false, + + // Enable zip64 extension, allowing very large archives + // (> 4Gb or file count > 64k) + // Default is true + enableZip64: true, + + // Flush output buffer after every write + // Default is false + flushOutput: true, + ); diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/PSR7Streams.rst b/src/Common/vendor/maennchen/zipstream-php/guides/PSR7Streams.rst new file mode 100644 index 00000000..22af71d4 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/PSR7Streams.rst @@ -0,0 +1,21 @@ +Usage with PSR 7 Streams +=============== + +PSR-7 streams are `standardized streams `_. + +ZipStream-PHP supports working with these streams with the function +``addFileFromPsr7Stream``. + +For all parameters of the function see the API documentation. + +Example +--------------- + +.. code-block:: php + + $stream = $response->getBody(); + // add a file named 'streamfile.txt' from the content of the stream + $zip->addFileFromPsr7Stream( + fileName: 'streamfile.txt', + stream: $stream, + ); diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/StreamOutput.rst b/src/Common/vendor/maennchen/zipstream-php/guides/StreamOutput.rst new file mode 100644 index 00000000..9f3165b7 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/StreamOutput.rst @@ -0,0 +1,39 @@ +Stream Output +=============== + +Stream to S3 Bucket +--------------- + +.. code-block:: php + + use Aws\S3\S3Client; + use Aws\Credentials\CredentialProvider; + use ZipStream\ZipStream; + + $bucket = 'your bucket name'; + $client = new S3Client([ + 'region' => 'your region', + 'version' => 'latest', + 'bucketName' => $bucket, + 'credentials' => CredentialProvider::defaultProvider(), + ]); + $client->registerStreamWrapper(); + + $zipFile = fopen("s3://$bucket/example.zip", 'w'); + + $zip = new ZipStream( + enableZip64: false, + outputStream: $zipFile, + ); + + $zip->addFile( + fileName: 'file1.txt', + data: 'File1 data', + ); + $zip->addFile( + fileName: 'file2.txt', + data: 'File2 data', + ); + $zip->finish(); + + fclose($zipFile); diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/Symfony.rst b/src/Common/vendor/maennchen/zipstream-php/guides/Symfony.rst new file mode 100644 index 00000000..902552c9 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/Symfony.rst @@ -0,0 +1,130 @@ +Usage with Symfony +=============== + +Overview for using ZipStream in Symfony +-------- + +Using ZipStream in Symfony requires use of Symfony's ``StreamedResponse`` when +used in controller actions. + +Wrap your call to the relevant ``ZipStream`` stream method (i.e. ``addFile``, +``addFileFromPath``, ``addFileFromStream``) in Symfony's ``StreamedResponse`` +function passing in any required arguments for your use case. + +Using Symfony's ``StreamedResponse`` will allow Symfony to stream output from +ZipStream correctly to users' browsers and avoid a corrupted final zip landing +on the users' end. + +Example for using ``ZipStream`` in a controller action to zip stream files +stored in an AWS S3 bucket by key: + +.. code-block:: php + + use Symfony\Component\HttpFoundation\StreamedResponse; + use Aws\S3\S3Client; + use ZipStream; + + //... + + /** + * @Route("/zipstream", name="zipstream") + */ + public function zipStreamAction() + { + // sample test file on s3 + $s3keys = array( + "ziptestfolder/file1.txt" + ); + + $s3Client = $this->get('app.amazon.s3'); //s3client service + $s3Client->registerStreamWrapper(); //required + + // using StreamedResponse to wrap ZipStream functionality + // for files on AWS s3. + $response = new StreamedResponse(function() use($s3keys, $s3Client) + { + // Define suitable options for ZipStream Archive. + // this is needed to prevent issues with truncated zip files + //initialise zipstream with output zip filename and options. + $zip = new ZipStream\ZipStream( + outputName: 'test.zip', + defaultEnableZeroHeader: true, + contentType: 'application/octet-stream', + ); + + //loop keys - useful for multiple files + foreach ($s3keys as $key) { + // Get the file name in S3 key so we can save it to the zip + //file using the same name. + $fileName = basename($key); + + // concatenate s3path. + // replace with your bucket name or get from parameters file. + $bucket = 'bucketname'; + $s3path = "s3://" . $bucket . "/" . $key; + + //addFileFromStream + if ($streamRead = fopen($s3path, 'r')) { + $zip->addFileFromStream( + fileName: $fileName, + stream: $streamRead, + ); + } else { + die('Could not open stream for reading'); + } + } + + $zip->finish(); + + }); + + return $response; + } + +In the above example, files on AWS S3 are being streamed from S3 to the Symfon +application via ``fopen`` call when the s3Client has ``registerStreamWrapper`` +applied. This stream is then passed to ``ZipStream`` via the +``addFileFromStream`` function, which ZipStream then streams as a zip to the +client browser via Symfony's ``StreamedResponse``. No Zip is created server +side, which makes this approach a more efficient solution for streaming zips to +the client browser especially for larger files. + +For the above use case you will need to have installed +`aws/aws-sdk-php-symfony `_ to +support accessing S3 objects in your Symfony web application. This is not +required for locally stored files on you server you intend to stream via +``ZipStream``. + +See official Symfony documentation for details on +`Symfony's StreamedResponse `_ +``Symfony\Component\HttpFoundation\StreamedResponse``. + +Note from `S3 documentation `_: + + Streams opened in "r" mode only allow data to be read from the stream, and + are not seekable by default. This is so that data can be downloaded from + Amazon S3 in a truly streaming manner, where previously read bytes do not + need to be buffered into memory. If you need a stream to be seekable, you + can pass seekable into the stream context options of a function. + +Make sure to configure your S3 context correctly! + +Uploading a file +-------- + +You need to add correct permissions +(see `#120 `_) + +**example code** + + +.. code-block:: php + + $path = "s3://{$adapter->getBucket()}/{$this->getArchivePath()}"; + + // the important bit + $outputContext = stream_context_create([ + 's3' => ['ACL' => 'public-read'], + ]); + + fopen($path, 'w', null, $outputContext); diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/Varnish.rst b/src/Common/vendor/maennchen/zipstream-php/guides/Varnish.rst new file mode 100644 index 00000000..952d2874 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/Varnish.rst @@ -0,0 +1,22 @@ +Usage with Varnish +============= + +Serving a big zip with varnish in between can cause random stream close. +This can be solved by adding attached code to the vcl file. + +To avoid the problem, add the following to your varnish config file: + +.. code-block:: + sub vcl_recv { + # Varnish can’t intercept the discussion anymore + # helps for streaming big zips + if (req.url ~ "\.(tar|gz|zip|7z|exe)$") { + return (pipe); + } + } + # Varnish can’t intercept the discussion anymore + # helps for streaming big zips + sub vcl_pipe { + set bereq.http.connection = "close"; + return (pipe); + } diff --git a/src/Common/vendor/maennchen/zipstream-php/guides/index.rst b/src/Common/vendor/maennchen/zipstream-php/guides/index.rst new file mode 100644 index 00000000..4583ca58 --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/guides/index.rst @@ -0,0 +1,126 @@ +ZipStream PHP +============= + +A fast and simple streaming zip file downloader for PHP. Using this library will +save you from having to write the Zip to disk. You can directly send it to the +user, which is much faster. It can work with S3 buckets or any PSR7 Stream. + +.. toctree:: + + index + Symfony + Options + StreamOutput + FlySystem + PSR7Streams + Nginx + Varnish + ContentLength + +Installation +--------------- + +Simply add a dependency on ``maennchen/zipstream-php`` to your project's +``composer.json`` file if you use Composer to manage the dependencies of your +project. Use following command to add the package to your project's +dependencies: + +.. code-block:: sh + composer require maennchen/zipstream-php + +If you want to use``addFileFromPsr7Stream``` +(``Psr\Http\Message\StreamInterface``) or use a stream instead of a +``resource`` as ``outputStream``, the following dependencies must be installed +as well: + +.. code-block:: sh + composer require psr/http-message guzzlehttp/psr7 + +If ``composer install`` yields the following error, your installation is missing +the `mbstring extension `_, +either `install it `_ +or run the follwoing command: + +.. code-block:: + Your requirements could not be resolved to an installable set of packages. + + Problem 1 + - Root composer.json requires PHP extension ext-mbstring * but it is + missing from your system. Install or enable PHP's mbstrings extension. + +.. code-block:: sh + composer require symfony/polyfill-mbstring + +Usage Intro +--------------- + +Here's a simple example: + +.. code-block:: php + + // Autoload the dependencies + require 'vendor/autoload.php'; + + // create a new zipstream object + $zip = new ZipStream\ZipStream( + outputName: 'example.zip', + + // enable output of HTTP headers + sendHttpHeaders: true, + ); + + // create a file named 'hello.txt' + $zip->addFile( + fileName: 'hello.txt', + data: 'This is the contents of hello.txt', + ); + + // add a file named 'some_image.jpg' from a local file 'path/to/image.jpg' + $zip->addFileFromPath( + fileName: 'some_image.jpg', + path: 'path/to/image.jpg', + ); + + // add a file named 'goodbye.txt' from an open stream resource + $filePointer = tmpfile(); + fwrite($filePointer, 'The quick brown fox jumped over the lazy dog.'); + rewind($filePointer); + $zip->addFileFromStream( + fileName: 'goodbye.txt', + stream: $filePointer, + ); + fclose($filePointer); + + // add a file named 'streamfile.txt' from the body of a `guzzle` response + // Setup with `psr/http-message` & `guzzlehttp/psr7` dependencies required. + $zip->addFileFromPsr7Stream( + fileName: 'streamfile.txt', + stream: $response->getBody(), + ); + + // finish the zip stream + $zip->finish(); + +You can also add comments, modify file timestamps, and customize (or +disable) the HTTP headers. It is also possible to specify the storage method +when adding files, the current default storage method is ``DEFLATE`` +i.e files are stored with Compression mode 0x08. + +Known Issues +--------------- + +The native Mac OS archive extraction tool prior to macOS 10.15 might not open +archives in some conditions. A workaround is to disable the Zip64 feature with +the option ``enableZip64: false``. This limits the archive to 4 Gb and 64k files +but will allow users on macOS 10.14 and below to open them without issue. +See `#116 `_. + +The linux ``unzip`` utility might not handle properly unicode characters. +It is recommended to extract with another tool like +`7-zip `_. +See `#146 `_. + +It is the responsability of the client code to make sure that files are not +saved with the same path, as it is not possible for the library to figure it out +while streaming a zip. +See `#154 `_. diff --git a/src/Common/vendor/maennchen/zipstream-php/phpdoc.dist.xml b/src/Common/vendor/maennchen/zipstream-php/phpdoc.dist.xml new file mode 100644 index 00000000..b98fe1cd --- /dev/null +++ b/src/Common/vendor/maennchen/zipstream-php/phpdoc.dist.xml @@ -0,0 +1,39 @@ + + + 💾 ZipStream-PHP + + docs + + + latest + + + src + + api + + + php + + public + ZipStream + true + + + + guides + + guide + + + +