diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1692082 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.ash_history +.git +.cpan +.cpanm +/files/ +/local/ +/lutim.conf +/lutim.db \ No newline at end of file diff --git a/.gitignore b/.gitignore index 16e53dc..dd3b30b 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,7 @@ tmp/* .zanata-cache/* cover_db/* *.passwd +.ash_history +.vscode/ +.DS_Store +.cpanm/ \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index de3c8c0..fb11973 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,7 @@ image: hatsoftwares/lutim-test-ci:latest stages: - publish_changelog + - pouet_it - podcheck - carton - carton_bdd @@ -26,7 +27,7 @@ variables: artifacts: paths: - local/ - dependencies: + needs: - carton .sqlite_template: &sqlite_definition <<: *retry @@ -34,7 +35,7 @@ variables: artifacts: paths: - cover_db/ - dependencies: + needs: - carton_sqlite .pg_template: &pg_definition <<: *retry @@ -42,26 +43,18 @@ variables: artifacts: paths: - cover_db/ - dependencies: + needs: - carton_postgresql services: - name: postgres:9.6 alias: postgres -### Publish tag changelog +### Publish tag changelog and create a toot ## # -publish_changelog: - image: hatsoftwares/curl-jq:latest - stage: publish_changelog - script: - - export PROJECT_API_URL="https://framagit.org/api/v4/projects/${CI_PROJECT_ID}" - - export DESCRIPTION_URL="${PROJECT_API_URL}/repository/tags/${CI_COMMIT_TAG}/release" - - 'export HEADER="Private-Token: ${GITLAB_API_TOKEN}"' - - sed -n '/^'$CI_COMMIT_TAG'[[:space:]]/,/^[^\t]/p' CHANGELOG | sed -e 's/^[^\t].*//' -e 's/\t//g' | sed '/^[[:space:]]*$/d' > /tmp/text - - if [[ ! -z $GITLAB_API_TOKEN ]]; then curl -s --request POST --data-urlencode "description@/tmp/text" --header "${HEADER}" "${DESCRIPTION_URL}"; fi - only: - - tags +include: + - 'https://framagit.org/fiat-tux/gitlabci-snippets/raw/4e4e03322e95e9b0124c714456ebf1bdc02ad43f/publish_changelog.gitlab-ci.yml' + - 'https://framagit.org/fiat-tux/gitlabci-snippets/raw/4e4e03322e95e9b0124c714456ebf1bdc02ad43f/pouet-it-from-ci.gitlab-ci.yml' ### Podcheck ## @@ -181,18 +174,3 @@ cover: script: - make cover coverage: '/Total .*\d+\.\d+$/' - -### Push new translations strings to https://trad.framasoft.org -## -# -trads: - stage: cover - image: framasoft/push-trad:latest - dependencies: [] - script: - - sed -e "s@.*@$CI_COMMIT_REF_SLUG@" -i zanata.xml - - if [ ! -z ${ZANATA_CONFIG+x} ]; then mkdir -p ${HOME}/.config; echo -e "${ZANATA_CONFIG}" > ${HOME}/.config/zanata.ini; fi - - if [ ! -z ${ZANATA_CONFIG+x} ]; then make push-locales; fi - only: - - development - - master diff --git a/AUTHORS.md b/AUTHORS.md index 5098d32..e8e7f76 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -17,3 +17,5 @@ * Alexis Clairet (), paste image to upload ability * ButterflyOfFire (), arabic translation * Alexander Sapozhnikov (), russian translation +* Arnaud de Mouhy, Docker support +* Armando Lüscher () diff --git a/CHANGELOG b/CHANGELOG index 3df3877..7ecc0a5 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,13 @@ Revision history for Lutim +0.11.6 ????-??-?? + - Remove the "Support the author" dropdown + - Add a "select all" checkbox on /myfiles (#105) + - Update arabic translation + - Group button links fixed to make the whole button a link (Armando Lüscher) + - Docker support (Arnaud de Mouhy) + - Bump toastify-js to version 1.4.0 (Armando Lüscher) + 0.11.5 2019-04-19 - Revert catching Image::Magick problems - In gallery, use JS to find image's width and height if not provided by image's infos diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bbee699 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +FROM alpine:3.9 + +ARG BUILD_DATE +ARG VCS_REF +ARG VERSION +LABEL org.label-schema.build-date=$BUILD_DATE \ + org.label-schema.name="Let's Upload That Image" \ + org.label-schema.url="https://lut.im/" \ + org.label-schema.vcs-ref=$VCS_REF \ + org.label-schema.vcs-url="https://git.framasoft.org/luc/lutim" \ + org.label-schema.vendor="Luc Didry" \ + org.label-schema.version=$VERSION \ + org.label-schema.schema-version="1.0" + +RUN adduser -D lutim +COPY --chown=lutim:lutim . /home/lutim + +WORKDIR /home/lutim +RUN /bin/sh /home/lutim/docker/build.sh + +USER lutim + +ENTRYPOINT ["/bin/sh", "/home/lutim/docker/entrypoint.sh"] \ No newline at end of file diff --git a/README.md b/README.md index 8bf5de1..6b17eaa 100644 --- a/README.md +++ b/README.md @@ -43,7 +43,7 @@ See [AUTHORS.md](AUTHORS.md) file. ## Contribute! -Please consider contributing, either by [reporting issues](https://framagit.org/luc/lutim/issues) or by helping the [internationalization](https://trad.framasoft.org/project/view/lutim). And of course, code contribution are welcome! +Please consider contributing, either by [reporting issues](https://framagit.org/luc/lutim/issues) or by helping the [internationalization](https://weblate.framasoft.org/projects/lutim/). And of course, code contribution are welcome! The details on how to contribute are on the [wiki](https://framagit.org/luc/lutim/wikis/contribute). @@ -67,3 +67,4 @@ It uses: * [PhotoSwipe](http://photoswipe.com/) for the gallery * [JSZip](https://stuk.github.io/jszip/) for generating a zip containing all the images in the gallery * [FileSaver.js](https://github.com/eligrey/FileSaver.js/) for saving the zip +* [Toastify JS](https://apvarun.github.io/toastify-js/) for notifications diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml new file mode 100644 index 0000000..e07b9f9 --- /dev/null +++ b/docker-compose.dev.yml @@ -0,0 +1,22 @@ +version: '3.3' + +services: + app_dev: + build: . + ports: + - 8080:8080 + volumes: + - .:/home/lutim + command: dev + postgres_dev: + image: postgres:11.2-alpine + environment: + POSTGRES_PASSWORD: password + POSTGRES_USER: lutim + POSTGRES_DB: lutim + memcached: + image: memcached:1.5-alpine + adminer: + image: dehy/adminer + ports: + - 8081:80 \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ec40467 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,28 @@ +version: '3.3' + +services: + app: + build: . + ports: + - 8080:8080 + volumes: + - ./lutim.conf:/home/lutim/lutim.conf:ro + db: + image: postgres:11.2-alpine + environment: + POSTGRES_PASSWORD: password + POSTGRES_USER: lutim + POSTGRES_DB: lutim + cache: + image: memcached:1.5-alpine + minion: + build: . + command: minion + volumes: + - ./lutim.conf:/home/lutim/lutim.conf:ro + minion_db: + image: postgres:11.2-alpine + environment: + POSTGRES_PASSWORD: password + POSTGRES_USER: lutim_minion + POSTGRES_DB: lutim_minion \ No newline at end of file diff --git a/docker-stack.yml b/docker-stack.yml new file mode 100644 index 0000000..6fb39ec --- /dev/null +++ b/docker-stack.yml @@ -0,0 +1,39 @@ +version: '3.3' + +services: + app: + image: aquinum/lutim + configs: + - source: lutim.conf + target: /home/lutim/lutim.conf + uid: '1000' + gid: '1000' + mode: 0440 + deploy: + replicas: 1 + db: + image: postgres:11.2-alpine + environment: + POSTGRES_PASSWORD: + POSTGRES_USER: lutim + POSTGRES_DB: lutim + cache: + image: memcached:1.5-alpine + minion: + image: aquinum/lutim + command: minion + configs: + - source: lutim.conf + target: /home/lutim/lutim.conf + uid: '1000' + gid: '1000' + mode: 0440 + minion_db: + image: mariadb:10.3 + environment: + MYSQL_ROOT_PASSWORD: + MYSQL_DATABASE: lutim_minion + +configs: + lutim.conf: + file: ./lutim.conf \ No newline at end of file diff --git a/docker/build.sh b/docker/build.sh new file mode 100644 index 0000000..fd1e763 --- /dev/null +++ b/docker/build.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env sh + +set -eu + +apk update +apk add perl libpq perl-crypt-rijndael perl-io-socket-ssl perl-net-ssleay su-exec shared-mime-info libressl +sh $(dirname $0)/install-dev-env.sh + +sh $(dirname $0)/install-imagemagick.sh + +cpan notest Carton Config::FromHash +carton install --without test + +# Remove dev env +apk del .build-deps +rm -rf /var/cache/apk/* /root/.cpan* \ No newline at end of file diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh new file mode 100644 index 0000000..4fe4050 --- /dev/null +++ b/docker/entrypoint.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +set -eu + +cd ~lutim + +if [ "${1:-}" == "dev" ] +then + echo "" + echo "" + echo "Container started in dev mode. Connect to the container with the following command:" + echo " docker-compose -f docker-compose.dev.yml exec -u root app_dev sh" + echo "" + echo "" + echo "You can then install the build dependencies with this command" + echo " sh ~lutim/docker/install-dev-env.sh" + + tail -f /dev/null + exit 0 +fi + +# If MySQL/PostgreSQL, wait for database to be up +DB_TYPE=$(perl utilities/read_conf.pl dbtype sqlite) +DB_HOST= +DB_PORT= +if [ "$DB_TYPE" == "postgresql" ] +then + DB_HOST=$(perl utilities/read_conf.pl pgdb/host db) + DB_PORT=$(perl utilities/read_conf.pl pgdb/port 5432) +fi +if [ -n "$DB_HOST" -a -n "$DB_PORT" ] +then + while ! nc -vz "${DB_HOST}" "${DB_PORT}"; do + echo "Waiting for database..." + sleep 1; + done +fi + +if [ "${1:-}" == "minion" ] +then + exec carton exec script/application minion worker +fi + +exec carton exec hypnotoad -f script/lutim \ No newline at end of file diff --git a/docker/install-dev-env.sh b/docker/install-dev-env.sh new file mode 100644 index 0000000..2f219d7 --- /dev/null +++ b/docker/install-dev-env.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env sh + +apk --update add --virtual .build-deps build-base perl-utils perl-dev postgresql-dev vim wget zlib-dev \ No newline at end of file diff --git a/docker/install-imagemagick.sh b/docker/install-imagemagick.sh new file mode 100644 index 0000000..5a4f73f --- /dev/null +++ b/docker/install-imagemagick.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env sh + +# Instructions from https://imagemagick.org/script/perl-magick.php + +set -eu + +IM_VERSION=7.0.8-41 +SHA256_DIGEST=93f73a245c25194f757c075df9f2ec40010376200cc664c21646565b8690112c + +IM_DIR="ImageMagick-$IM_VERSION" +TARBALL="$IM_DIR.tar.gz" + +ORIG_DIR="$(pwd)" + +apk add libgomp libgcc libmagic \ + libjpeg libjpeg-turbo-dev \ + libpng libpng-dev \ + tiff tiff-dev \ + libwebp libwebp-dev + +mkdir -p /tmp/im-build +cd /tmp/im-build + +echo "$SHA256_DIGEST *$TARBALL" > SHA256SUM + +wget https://imagemagick.org/download/$TARBALL -O $TARBALL +sha256sum -c SHA256SUM + +tar xvf $TARBALL +cd $IM_DIR +./configure --with-perl --with-jpeg --with-png --with-tiff --with-webp +make -j$(nproc) +make install + +ldconfig /usr/local/lib +perl -MImage::Magick -le 'print Image::Magick->QuantumDepth' + +cd "$ORIG_DIR" +apk del libjpeg-turbo-dev libpng-dev tiff-dev libwebp-dev +rm -rf /tmp/im-build \ No newline at end of file diff --git a/lib/Lutim/Controller/Image.pm b/lib/Lutim/Controller/Image.pm index e3bbc62..d327d7d 100644 --- a/lib/Lutim/Controller/Image.pm +++ b/lib/Lutim/Controller/Image.pm @@ -165,7 +165,7 @@ sub modify { $image->delete_at_first_view(($c->param('first-view')) ? 1 : 0); $image->write; - $msg = $c->l('The image\'s delay has been successfully modified'); + $msg = $c->l('The image’s delay has been successfully modified'); if (defined($c->param('format')) && $c->param('format') eq 'json') { return $c->render( json => { @@ -196,7 +196,7 @@ sub modify { return $c->redirect_to('/'); } } else { - $c->app->log->info('[UNSUCCESSFUL] someone tried to modify '.$short.' but it does\'nt exist.') unless $c->config('quiet_logs'); + $c->app->log->info('[UNSUCCESSFUL] someone tried to modify '.$short.' but it doesn’t exist.') unless $c->config('quiet_logs'); # Image never existed my $msg = $c->l('Unable to find the image %1.', $short); @@ -263,7 +263,7 @@ sub delete { } ); } else { - $c->app->log->info('[UNSUCCESSFUL] someone tried to delete '.$short.' but it does\'nt exist.') unless $c->config('quiet_logs'); + $c->app->log->info('[UNSUCCESSFUL] someone tried to delete '.$short.' but it doesn’t exist.') unless $c->config('quiet_logs'); # Image never existed return $c->respond_to( @@ -649,11 +649,11 @@ sub short { } }); } else { - $c->app->log->error('[ERROR] Can\'t render '.$image->short); + $c->app->log->error('[ERROR] Can’t render '.$image->short); } } elsif ($image->path && !$image->enabled) { # Log access try - $c->app->log->info('[NOT FOUND] someone tried to view '.$short.' but it does\'nt exist anymore.') unless $c->config('quiet_logs'); + $c->app->log->info('[NOT FOUND] someone tried to view '.$short.' but it doesn’t exist anymore.') unless $c->config('quiet_logs'); # Warn user $c->flash( @@ -747,7 +747,7 @@ sub zip { } } elsif ($image->path && !$image->enabled) { # Log access try - $c->app->log->info('[NOT FOUND] someone tried to view '.$short.' but it does\'nt exist anymore.') unless $c->config('quiet_logs'); + $c->app->log->info('[NOT FOUND] someone tried to view '.$short.' but it doesn’t exist anymore.') unless $c->config('quiet_logs'); # Warn user $zip->addString(encode('UTF-8', $c->l('Unable to find the image: it has been deleted.')), 'images/'.$image->filename.'.txt'); diff --git a/lib/Lutim/DB/Image.pm b/lib/Lutim/DB/Image.pm index 8f5a1f1..9722ee8 100644 --- a/lib/Lutim/DB/Image.pm +++ b/lib/Lutim/DB/Image.pm @@ -129,7 +129,7 @@ sub to_hash { mod_token => $c->mod_token, width => $c->width, height => $c->height, - height => $c->iv + iv => $c->iv }; } @@ -156,7 +156,7 @@ sub to_hash { =item B : two mandatory parameters: one integer, the delete_at_day attribute, a boolean (0 or 1), the enabled attribute an optional parameter: an unix timestamp -=item B : count how many images there is with the given delete_at_day attribute, and enabled or disabled, depending on the given enabled attribute +=item B : count how many images there are with the given delete_at_day attribute, and enabled or disabled, depending on the given enabled attribute if the optional parameter is given, count only images according to the given mandatory parameters that were created before the timestamp =item B : integer @@ -241,7 +241,7 @@ sub to_hash { =item B : none -=item B : counts the number of record which path is null +=item B : counts the number of records whose path is null =item B : integer @@ -255,7 +255,7 @@ sub to_hash { =item B : none -=item B : counts the number of record which path is not null +=item B : counts the number of records whose path is not null =item B : integer diff --git a/themes/default/lib/Lutim/I18N/ar.po b/themes/default/lib/Lutim/I18N/ar.po index 706d6ae..8abf2e6 100644 --- a/themes/default/lib/Lutim/I18N/ar.po +++ b/themes/default/lib/Lutim/I18N/ar.po @@ -10,23 +10,24 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2019-11-16 09:11+0000\n" +"Last-Translator: ButterflyOfFire \n" +"Language-Team: Arabic \n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-09-14 01:56+0000\n" -"Last-Translator: ButterflyOfFire \n" -"Language-Team: Arabic \n" -"Language: ar\n" -"Plural-Forms: nplurals=6; plural=(n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " -"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5);\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" +"X-Generator: Weblate 3.9.1\n" "n%100<=10 ? 3: n%100>=11 ? 4 : 5);\n" -"X-Generator: Zanata 4.6.2\n" #. (7) #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 أيام" @@ -39,11 +40,11 @@ msgstr "تم إرسال %1 صورة على مثيل الخادوم هذا منذ msgid "-or-" msgstr "-أو-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "سنة واحدة" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 ساعة" @@ -55,11 +56,11 @@ msgstr ": طرأ هناك خطأ أثناء محاولة إستعادة العد msgid "About" msgstr "عن البرنامج" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" msgstr "الصور النشطة" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "طرأ هناك خطأ أثناء عملية تنزيل الصورة." @@ -77,7 +78,7 @@ msgstr "إضغط لفتح مدير الملفات" #: themes/default/templates/myfiles.html.ep:51 msgid "Close" -msgstr "" +msgstr "إغلاق" #: themes/default/templates/gallery.html.ep:29 msgid "Close (Esc)" @@ -115,11 +116,11 @@ msgstr "" msgid "Delete at first view?" msgstr "هل تود حذف الصورة مباشرة بعد أول عرض ؟" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" msgstr "الصور المحذوفة" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" msgstr "الصور المحذوفة منذ 30 يوما" @@ -227,7 +228,7 @@ msgstr "" msgid "Image URL" msgstr "رابط الصورة" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "تأجيل الصورة" @@ -235,7 +236,7 @@ msgstr "تأجيل الصورة" msgid "Image deleted" msgstr "تم حذف الصورة" -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "الصورة غير موجودة." @@ -324,7 +325,7 @@ msgstr "" #: themes/default/templates/partial/myfiles.js.ep:149 msgid "Modify expiration delay" -msgstr "" +msgstr "تعديل تاريخ نهاية الصلاحية" #: themes/default/templates/myfiles.html.ep:7 themes/default/templates/partial/navbar.html.ep:18 msgid "My images" @@ -357,7 +358,7 @@ msgstr "" #: themes/default/templates/login.html.ep:12 msgid "Password" -msgstr "" +msgstr "الكلمة السرية" #: themes/default/templates/zip.html.ep:12 msgid "Please click on each URL to download the different zip files." @@ -378,7 +379,7 @@ msgstr "" #: themes/default/templates/index.html.ep:46 themes/default/templates/index.html.ep:49 themes/default/templates/myfiles.html.ep:96 themes/default/templates/myfiles.html.ep:99 msgid "Random image link" -msgstr "" +msgstr "رابط إلى صورة عشوائية" #: themes/default/templates/stats.html.ep:22 msgid "Raw stats" @@ -386,7 +387,7 @@ msgstr "الإحصائيات الخامة" #: themes/default/templates/myfiles.html.ep:52 msgid "Save changes" -msgstr "حفظ التغييرات" +msgstr "حفظ التعديلات" #: themes/default/templates/index.html.ep:176 msgid "Send an image" @@ -401,7 +402,7 @@ msgid "Something bad happened" msgstr "طرأ هناك خلل" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -434,9 +435,9 @@ msgid "" "licenses/agpl-3.0.html\">AGPL to see what you can do." msgstr "" -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." -msgstr "" +msgstr "الرابط غير صالح." #: themes/default/templates/zip.html.ep:16 msgid "" @@ -446,21 +447,21 @@ msgstr "" #: themes/default/templates/partial/myfiles.js.ep:32 msgid "The data has been successfully imported." -msgstr "" +msgstr "تم استيراد البيانات بنجاح." -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "" #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "" #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "" @@ -469,19 +470,15 @@ msgid "The graph's datas are not updated in real-time." msgstr "" #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "" #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" msgstr "" -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "" - #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." msgstr "" @@ -492,45 +489,49 @@ msgid "" "first view or after a delay selected from those proposed." msgstr "" -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" #: themes/default/templates/gallery.html.ep:30 msgid "Toggle fullscreen" -msgstr "" +msgstr "الإنتقال إلى وضع الشاشة الكامل" #: themes/default/templates/partial/navbar.html.ep:8 msgid "Toggle navigation" msgstr "" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" msgstr "العدد الإجمالي" #: themes/default/templates/index.html.ep:78 themes/default/templates/partial/lutim.js.ep:17 msgid "Tweet it!" -msgstr "غرِّد الرابط" +msgstr "غرِّد الرابط!" #: themes/default/templates/partial/common.js.ep:110 themes/default/templates/partial/common.js.ep:90 msgid "Unable to copy to clipboard" -msgstr "تعذر النسخ إلى الحافظة" +msgstr "لم يمكن النسخ إلى الحافطة" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "تعذر العثور على الصورة %1." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "تعذر العثور على الصورة : لقد تم حذفها." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "تعذر جلب التعداد" @@ -565,11 +566,11 @@ msgstr "عرض الرابط" #: themes/default/templates/about.html.ep:22 msgid "What about the software which provides the service?" -msgstr "" +msgstr "عن البرنامج الذي يقدم هذه الخدمة؟" #: themes/default/templates/about.html.ep:3 msgid "What is Lutim?" -msgstr "ماذا نقصد بـ Lutim ؟" +msgstr "ماذا نقصد بـ Lutim؟" #: themes/default/templates/about.html.ep:15 msgid "Who owns rights on images uploaded on Lutim?" @@ -605,7 +606,7 @@ msgstr "تم تسجيل دخولك بنجاح." #: lib/Lutim/Controller/Authent.pm:66 themes/default/templates/logout.html.ep:3 msgid "You have been successfully logged out." -msgstr "" +msgstr "تم تسجيل خروجك بنجاح." #: themes/default/templates/gallery.html.ep:31 msgid "Zoom in/out" @@ -613,7 +614,7 @@ msgstr "تكبير/تصغير" #: themes/default/templates/about.html.ep:27 msgid "and on" -msgstr "" +msgstr "وكذا على" #: themes/default/templates/about.html.ep:40 msgid "arabic translation" @@ -623,7 +624,7 @@ msgstr "الترجمة إلى العربية" msgid "core developer" msgstr "المطور الرئيسي" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "" @@ -633,7 +634,7 @@ msgstr "الترجمة إلى الأوكستانية" #: themes/default/templates/about.html.ep:27 msgid "on" -msgstr "" +msgstr "على" #: themes/default/templates/about.html.ep:39 msgid "paste image to upload ability" diff --git a/themes/default/lib/Lutim/I18N/de.po b/themes/default/lib/Lutim/I18N/de.po index efa4285..be4fd53 100644 --- a/themes/default/lib/Lutim/I18N/de.po +++ b/themes/default/lib/Lutim/I18N/de.po @@ -6,6 +6,8 @@ # Translators: # Thor77 , 2015 # Luc Didry , 2018. #zanata +# frju365 , 2018. #zanata +# Luc Didry , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -13,8 +15,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-07-29 08:17+0000\n" -"Last-Translator: Copied by Zanata \n" +"PO-Revision-Date: 2019-05-13 08:47+0000\n" +"Last-Translator: Luc Didry \n" "Language-Team: German (http://www.transifex.com/fiat-tux/lutim/language/de/)\n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" @@ -24,7 +26,7 @@ msgstr "" #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 Tage" @@ -37,11 +39,11 @@ msgstr "%1 Bilder wurden bisher über diese Instanz versendet." msgid "-or-" msgstr "-oder-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "1 Jahr" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 Stunden" @@ -51,19 +53,20 @@ msgstr ":Fehler beim Abrufen des Zählers." #: themes/default/templates/partial/navbar.html.ep:77 msgid "About" -msgstr "" +msgstr "Über" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" -msgstr "" +msgstr "Aktive Bilder" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "Beim Herunterladen des Bildes ist ein Fehler aufgetreten." #: themes/default/templates/zip.html.ep:2 +#, fuzzy msgid "Archives download" -msgstr "" +msgstr "Archiv-Download" #: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:135 themes/default/templates/stats.html.ep:25 msgid "Back to homepage" @@ -87,7 +90,7 @@ msgstr "Mitwirkende" #: themes/default/templates/partial/common.js.ep:113 themes/default/templates/partial/common.js.ep:93 msgid "Copied to clipboard" -msgstr "" +msgstr "in die Zwischenablage kopiert." #: themes/default/templates/partial/lutim.js.ep:215 themes/default/templates/partial/lutim.js.ep:278 themes/default/templates/partial/lutim.js.ep:364 msgid "Copy all view links to clipboard" @@ -113,13 +116,13 @@ msgstr "" msgid "Delete at first view?" msgstr "Nach erstem Aufruf löschen?" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" -msgstr "" +msgstr "Gelöschte Bilder" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" -msgstr "" +msgstr "Gelöschte Bilder in 30 Tagen" #: themes/default/templates/index.html.ep:116 themes/default/templates/myfiles.html.ep:127 themes/default/templates/partial/common.js.ep:178 themes/default/templates/partial/common.js.ep:181 msgid "Deletion link" @@ -224,15 +227,15 @@ msgstr "" msgid "Image URL" msgstr "Bild-URL" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "" #: themes/default/templates/partial/common.js.ep:157 msgid "Image deleted" -msgstr "" +msgstr "Bild gelöscht." -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "Bild nicht gefunden" @@ -250,7 +253,7 @@ msgstr "Installiere die Webapp" #: themes/default/templates/partial/navbar.html.ep:21 msgid "Instance's statistics" -msgstr "" +msgstr "Statistik der Instanz" #: themes/default/templates/about.html.ep:11 msgid "Is it really anonymous?" @@ -297,10 +300,13 @@ msgid "Logout" msgstr "Ausloggen" #: themes/default/templates/zip.html.ep:7 +#, fuzzy msgid "" "Lutim can't zip so many images at once, so it splitted your demand in " "multiple URLs." msgstr "" +"Lutim kann nicht so viele Bilder auf einmal zippen, daher hat es Ihren " +"Bedarf in mehrere URLs aufgeteilt." #: themes/default/templates/about.html.ep:4 msgid "" @@ -321,7 +327,7 @@ msgstr "Markdown Syntax" #: themes/default/templates/partial/myfiles.js.ep:149 msgid "Modify expiration delay" -msgstr "" +msgstr "Ablaufverzögerung verändern" #: themes/default/templates/myfiles.html.ep:7 themes/default/templates/partial/navbar.html.ep:18 msgid "My images" @@ -364,6 +370,8 @@ msgstr "Passwort" #: themes/default/templates/zip.html.ep:12 msgid "Please click on each URL to download the different zip files." msgstr "" +"Bitte klicken Sie auf die jeweilige URL, um die verschiedenen Zip-Dateien " +"herunterzuladen." #. (config('contact') #: themes/default/templates/about.html.ep:19 @@ -373,6 +381,8 @@ msgstr "Kontaktiere den Administrator: %1" #: lib/Lutim/Controller/Authent.pm:36 msgid "Please, check your credentials: unable to authenticate." msgstr "" +"Bitte überprüfen Sie Ihre Anmeldeinformationen: Die Anmeldung kann nicht " +"erfolgen." #: themes/default/templates/gallery.html.ep:43 msgid "Previous (arrow left)" @@ -380,7 +390,7 @@ msgstr "" #: themes/default/templates/index.html.ep:46 themes/default/templates/index.html.ep:49 themes/default/templates/myfiles.html.ep:96 themes/default/templates/myfiles.html.ep:99 msgid "Random image link" -msgstr "" +msgstr "Zufälliger Bildlink" #: themes/default/templates/stats.html.ep:22 msgid "Raw stats" @@ -388,7 +398,7 @@ msgstr "" #: themes/default/templates/myfiles.html.ep:52 msgid "Save changes" -msgstr "" +msgstr "Änderungen speichern" #: themes/default/templates/index.html.ep:176 msgid "Send an image" @@ -403,7 +413,7 @@ msgid "Something bad happened" msgstr "Es ist ein Fehler aufgetreten" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -413,15 +423,15 @@ msgstr "" #: themes/default/templates/partial/navbar.html.ep:55 msgid "Support the author" -msgstr "" +msgstr "Unterstützen Sie den Autor" #: themes/default/templates/partial/navbar.html.ep:63 msgid "Support the author on Liberapay" -msgstr "" +msgstr "Unterstützen den Autor bei Liberapay" #: themes/default/templates/partial/navbar.html.ep:60 msgid "Support the author on Tipeee" -msgstr "" +msgstr "Unterstützen den Autor bei Tipeee" #: themes/default/templates/about.html.ep:13 msgid "" @@ -445,7 +455,7 @@ msgstr "" "Server zu installieren. Schau dir die AGPL an um deine Recht zu sehen." -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." msgstr "Die URL ist nicht gültig." @@ -459,19 +469,19 @@ msgstr "" msgid "The data has been successfully imported." msgstr "" -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "Das Token zum Löschen ist ungültig." #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "Die Datei %1 ist kein Bild." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "Die Datei überschreitet die Größenbeschränkung (%1)" @@ -480,19 +490,15 @@ msgid "The graph's datas are not updated in real-time." msgstr "Die Daten des Graphs werden nicht in Echtzeit aktualisiert." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "Das Bild %1 wurde schon gelöscht." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" msgstr "Das Bild %1 wurde erfolgreich gelöscht." -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "Die Zeit bis zum Löschen des Bildes wurde erfolgreich geändert." - #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." msgstr "" @@ -506,12 +512,16 @@ msgstr "" "Die Bilder, die du auf Lutim hochlädst, können entweder nie, nach dem ersten " "Aufruf oder nach einer bestimmten Zeit gelöscht werden." -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "Die Zeit bis zum Löschen des Bildes wurde erfolgreich geändert." + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" "Es sind keine URLs mehr verfügbar. Versuche es erneut oder kontaktiere den " @@ -525,9 +535,9 @@ msgstr "" msgid "Toggle navigation" msgstr "" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" -msgstr "" +msgstr "Gesamtzahl" #: themes/default/templates/index.html.ep:78 themes/default/templates/partial/lutim.js.ep:17 msgid "Tweet it!" @@ -535,18 +545,18 @@ msgstr "Twittere es!" #: themes/default/templates/partial/common.js.ep:110 themes/default/templates/partial/common.js.ep:90 msgid "Unable to copy to clipboard" -msgstr "" +msgstr "Kopieren in die Zwischenablage nicht möglich" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "Konnte das Bild %1 nicht finden." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "Dieses Bild wurde gelöscht." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "Konnte den Zähler nicht abrufen" @@ -618,6 +628,7 @@ msgstr "" #: themes/default/templates/zip.html.ep:6 msgid "You asked to download a zip archive for too much files." msgstr "" +"Du hast darum gebeten, ein Zip-Archiv für zu viele Dateien herunterzuladen." #: themes/default/templates/about.html.ep:8 msgid "" @@ -630,15 +641,15 @@ msgstr "" #: lib/Lutim/Controller/Authent.pm:27 msgid "You have been successfully logged in." -msgstr "" +msgstr "Sie wurden erfolgreich angemeldet." #: lib/Lutim/Controller/Authent.pm:66 themes/default/templates/logout.html.ep:3 msgid "You have been successfully logged out." -msgstr "" +msgstr "Sie wurden erfolgreich abgemeldet." #: themes/default/templates/gallery.html.ep:31 msgid "Zoom in/out" -msgstr "" +msgstr "Vergrößern/verkleinern" #: themes/default/templates/about.html.ep:27 msgid "and on" @@ -646,13 +657,13 @@ msgstr "und auf" #: themes/default/templates/about.html.ep:40 msgid "arabic translation" -msgstr "" +msgstr "Arabische Übersetzung" #: themes/default/templates/about.html.ep:27 msgid "core developer" msgstr "Haupt-Entwickler" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "keine Zeit-Begrenzung" diff --git a/themes/default/lib/Lutim/I18N/en.po b/themes/default/lib/Lutim/I18N/en.po index fb8ad23..e94ead9 100644 --- a/themes/default/lib/Lutim/I18N/en.po +++ b/themes/default/lib/Lutim/I18N/en.po @@ -1,4 +1,5 @@ # Luc Didry , 2018. #zanata +# Luc Didry , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -6,8 +7,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-07-29 08:17+0000\n" -"Last-Translator: Copied by Zanata \n" +"PO-Revision-Date: 2019-05-13 08:43+0000\n" +"Last-Translator: Luc Didry \n" "Language-Team: English\n" "Language: en\n" "X-Generator: Zanata 4.6.2\n" @@ -17,7 +18,7 @@ msgstr "" #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 days" @@ -30,11 +31,11 @@ msgstr "%1 sent images on this instance from beginning." msgid "-or-" msgstr "-or-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "1 year" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 hours" @@ -46,11 +47,11 @@ msgstr ": Error while trying to get the counter." msgid "About" msgstr "About" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" msgstr "Active images" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "An error occured while downloading the image." @@ -106,11 +107,11 @@ msgstr "Delay repartition chart for enabled images" msgid "Delete at first view?" msgstr "Delete at first view?" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" msgstr "Deleted images" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" msgstr "Deleted images in 30 days" @@ -218,7 +219,7 @@ msgstr "" msgid "Image URL" msgstr "Image URL" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "Image delay" @@ -226,7 +227,7 @@ msgstr "Image delay" msgid "Image deleted" msgstr "Image deleted" -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "Image not found." @@ -400,7 +401,7 @@ msgid "Something bad happened" msgstr "Something bad happened" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -442,7 +443,7 @@ msgstr "" "it on you own server. Have a look at the AGPL to see what you can do." -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." msgstr "The URL is not valid." @@ -458,19 +459,19 @@ msgstr "" msgid "The data has been successfully imported." msgstr "The data has been successfully imported." -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "The delete token is invalid." #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "The file %1 is not an image." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "The file exceed the size limit (%1)" @@ -479,19 +480,15 @@ msgid "The graph's datas are not updated in real-time." msgstr "The graph's datas are not updated in real-time." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "The image %1 has already been deleted." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" msgstr "The image %1 has been successfully deleted" -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "The image's delay has been successfully modified" - #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." msgstr "The images are encrypted on the server (Lutim does not keep the key)." @@ -504,12 +501,16 @@ msgstr "" "The images you post on Lutim can be stored indefinitely or be deleted at " "first view or after a delay selected from those proposed." -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "The image’s delay has been successfully modified" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "There is XXXX image(s) in the gallery" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" "There is no more available URL. Retry or contact the administrator. %1" @@ -522,7 +523,7 @@ msgstr "Toggle fullscreen" msgid "Toggle navigation" msgstr "Toggle navigation" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" msgstr "Total" @@ -535,15 +536,15 @@ msgid "Unable to copy to clipboard" msgstr "Unable to copy to clipboard" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "Unable to find the image %1." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "Unable to find the image: it has been deleted." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "Unable to get counter" @@ -648,7 +649,7 @@ msgstr "arabic translation" msgid "core developer" msgstr "core developer" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "no time limit" diff --git a/themes/default/lib/Lutim/I18N/es.po b/themes/default/lib/Lutim/I18N/es.po index f55d7ed..44b6d8f 100644 --- a/themes/default/lib/Lutim/I18N/es.po +++ b/themes/default/lib/Lutim/I18N/es.po @@ -6,6 +6,7 @@ # Translators: # Luc Didry , 2015 # Luc Didry , 2018. #zanata +# Luc Didry , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -13,8 +14,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-07-29 08:17+0000\n" -"Last-Translator: Copied by Zanata \n" +"PO-Revision-Date: 2019-05-13 08:47+0000\n" +"Last-Translator: Luc Didry \n" "Language-Team: Spanish (http://www.transifex.com/fiat-tux/lutim/language/es/" ")\n" "Language: es\n" @@ -25,7 +26,7 @@ msgstr "" #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 días" @@ -38,11 +39,11 @@ msgstr "%1 imágenes enviadas a esta instancia desde el inicio." msgid "-or-" msgstr "-o-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "1 año" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 horas" @@ -54,11 +55,11 @@ msgstr ": Error al intentar obtener el contador." msgid "About" msgstr "" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" msgstr "" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "Error al intentar modificar la imagen." @@ -114,11 +115,11 @@ msgstr "" msgid "Delete at first view?" msgstr "¿Borrar en la primera vista?" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" msgstr "" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" msgstr "" @@ -226,7 +227,7 @@ msgstr "" msgid "Image URL" msgstr "URL de la imagen" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "" @@ -234,7 +235,7 @@ msgstr "" msgid "Image deleted" msgstr "" -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "Imagen no encontrada." @@ -405,7 +406,7 @@ msgid "Something bad happened" msgstr "Algo malo ha pasado" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -448,7 +449,7 @@ msgstr "" "\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL para ver qué puede " "hacer." -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." msgstr "La URL no es válida." @@ -462,19 +463,19 @@ msgstr "" msgid "The data has been successfully imported." msgstr "" -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "El código de borrado no es válido." #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "El archivo %1 no es una imagen." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "El archivo supera el límite de tamaño (%1)" @@ -483,19 +484,15 @@ msgid "The graph's datas are not updated in real-time." msgstr "Los datos del gráfico no se actualizan en tiempo real." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "La imagen %1 ya se ha borrado." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" msgstr "La imagen %1 se ha borrado correctamente" -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "Se ha modificado correctamente el tiempo de la imagen" - #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." msgstr "Las imágenes se cifran en el servidor (Lutim no guarda la clave)." @@ -509,12 +506,16 @@ msgstr "" "con la primera vista (o descarga) o tras un tiempo seleccionado de entre " "varios propuestos." -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "Se ha modificado correctamente el tiempo de la imagen" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" "No más URL disponibles. Inténtelo de nuevo o contacte con el administrador. " @@ -528,7 +529,7 @@ msgstr "" msgid "Toggle navigation" msgstr "" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" msgstr "" @@ -541,15 +542,15 @@ msgid "Unable to copy to clipboard" msgstr "" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "No se ha podido encontrar la imagen %1." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "No se ha podido encontrar la imagen: ha sido borrada." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "Imposible recuperar el contador" @@ -655,7 +656,7 @@ msgstr "" msgid "core developer" msgstr "desarrollador principal" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "Sin tiempo límite" diff --git a/themes/default/lib/Lutim/I18N/fr.po b/themes/default/lib/Lutim/I18N/fr.po index 86657c7..e7648a9 100644 --- a/themes/default/lib/Lutim/I18N/fr.po +++ b/themes/default/lib/Lutim/I18N/fr.po @@ -6,25 +6,27 @@ # Translators: # Luc Didry , 2015 # Luc Didry , 2018. #zanata +# Luc Didry , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2019-11-16 13:46+0000\n" +"Last-Translator: Luc Didry \n" +"Language-Team: French \n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-07-29 08:17+0000\n" -"Last-Translator: Copied by Zanata \n" -"Language-Team: French (http://www.transifex.com/fiat-tux/lutim/language/fr/)\n" -"Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Zanata 4.6.2\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.9.1\n" #. (7) #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 jours" @@ -37,11 +39,11 @@ msgstr "%1 images envoyées sur cette instance depuis le début." msgid "-or-" msgstr "-ou-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "1 an" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 heures" @@ -53,11 +55,11 @@ msgstr " : Erreur en essayant de récupérer le compteur." msgid "About" msgstr "À propos" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" msgstr "Images actives" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "Une erreur est survenue lors du téléchargement de l’image." @@ -113,11 +115,11 @@ msgstr "Graphe de répartition des délais pour les images actives" msgid "Delete at first view?" msgstr "Supprimer au premier accès ?" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" msgstr "Images supprimées" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" msgstr "Images supprimées dans 30 jours" @@ -150,9 +152,9 @@ msgid "" msgstr "" "Faites glisser des images dans la zone prévue à cet effet ou sélectionnez un " "fichier de façon classique et Lutim vous fournira quatre URLs en retour. Une " -"pour afficher l’image, une autre pour la télécharger directement, une pour " -"l’utiliser sur les réseaux sociaux et une dernière pour supprimer votre " -"image quand vous le souhaitez" +"pour afficher l’image, une autre pour la télécharger directement, une pour l’" +"utiliser sur les réseaux sociaux et une dernière pour supprimer votre image " +"quand vous le souhaitez." #: themes/default/templates/index.html.ep:168 themes/default/templates/index.html.ep:199 msgid "Encrypt the image (Lutim does not keep the key)." @@ -226,7 +228,7 @@ msgstr "" msgid "Image URL" msgstr "URL de l’image" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "Durée de rétention de l’image" @@ -234,7 +236,7 @@ msgstr "Durée de rétention de l’image" msgid "Image deleted" msgstr "Image supprimée" -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "Image non trouvée." @@ -350,7 +352,7 @@ msgid "" "these details." msgstr "" "Seules les images envoyées avec ce navigateur seront listées ici. Les " -"détails sont stockées en localStorage•: si vous supprimez vos données " +"détails sont stockées en localStorage : si vous supprimez vos données " "localStorage, vous perdrez ces détails." #: themes/default/templates/about.html.ep:16 @@ -409,7 +411,7 @@ msgid "Something bad happened" msgstr "Un problème est survenu" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -449,11 +451,11 @@ msgid "" msgstr "" "Le logiciel Lutim est un logiciel libre, ce qui vous permet de le télécharger et " -"de l’installer sur votre propre serveur. Jetez un coup d’œil à l’AGPL pour voir quels sont " -"vos droits" +"de l’installer sur votre propre serveur. Jetez un coup d’œil à l’AGPL pour voir quels sont " +"vos droits." -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." msgstr "L’URL n’est pas valide." @@ -470,19 +472,19 @@ msgstr "" msgid "The data has been successfully imported." msgstr "Les données ont été importées avec succès." -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "Le jeton de suppression est invalide." #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "Le fichier %1 n’est pas une image." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "Le fichier dépasse la limite de taille (%1)" @@ -491,18 +493,14 @@ msgid "The graph's datas are not updated in real-time." msgstr "Les données du graphique ne sont pas mises à jour en temps réél." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "L’image %1 a déjà été supprimée." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" -msgstr "L’image %1 a été supprimée avec succès." - -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "Le délai de l’image a été modifié avec succès." +msgstr "L’image %1 a été supprimée avec succès" #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." @@ -518,26 +516,30 @@ msgstr "" "s’effacer dès le premier affichage ou au bout du délai choisi parmi ceux " "proposés." -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "Le délai de l’image a été modifié avec succès" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "Il y a XXXX image(s) dans la galerie" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" -"Il n’y a plus d’URL disponible. Veuillez réessayer ou contacter " -"l’administrateur. %1." +"Il n’y a plus d’URL disponible. Veuillez réessayer ou contacter l’" +"administrateur. %1" #: themes/default/templates/gallery.html.ep:30 msgid "Toggle fullscreen" -msgstr "Basculler le plein écran" +msgstr "Basculer le plein écran" #: themes/default/templates/partial/navbar.html.ep:8 msgid "Toggle navigation" msgstr "Étendre la barre de navigation" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" msgstr "Total" @@ -550,15 +552,15 @@ msgid "Unable to copy to clipboard" msgstr "Impossible de copier dans le presse-papier" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "Impossible de trouver l’image %1." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "Impossible de trouver l’image : elle a été supprimée." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "Impossible de récupérer le compteur" @@ -667,7 +669,7 @@ msgstr "traduction en arabe" msgid "core developer" msgstr "développeur principal" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "Pas de limitation de durée" diff --git a/themes/default/lib/Lutim/I18N/fr_FR.po b/themes/default/lib/Lutim/I18N/fr_FR.po index 7027acb..fc59f34 100644 --- a/themes/default/lib/Lutim/I18N/fr_FR.po +++ b/themes/default/lib/Lutim/I18N/fr_FR.po @@ -6,25 +6,27 @@ # Translators: # Luc Didry , 2015 # Luc Didry , 2018. #zanata +# Luc Didry , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2019-11-16 13:46+0000\n" +"Last-Translator: Luc Didry \n" +"Language-Team: French (France) \n" +"Language: fr_FR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-07-29 08:17+0000\n" -"Last-Translator: Copied by Zanata \n" -"Language-Team: French (http://www.transifex.com/fiat-tux/lutim/language/fr/)\n" -"Language: fr_FR\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Zanata 4.6.2\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.9.1\n" #. (7) #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 jours" @@ -37,11 +39,11 @@ msgstr "%1 images envoyées sur cette instance depuis le début." msgid "-or-" msgstr "-ou-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "1 an" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 heures" @@ -53,11 +55,11 @@ msgstr " : Erreur en essayant de récupérer le compteur." msgid "About" msgstr "À propos" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" msgstr "Images actives" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "Une erreur est survenue lors du téléchargement de l’image." @@ -113,11 +115,11 @@ msgstr "Graphe de répartition des délais pour les images actives" msgid "Delete at first view?" msgstr "Supprimer au premier accès ?" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" msgstr "Images supprimées" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" msgstr "Images supprimées dans 30 jours" @@ -150,9 +152,9 @@ msgid "" msgstr "" "Faites glisser des images dans la zone prévue à cet effet ou sélectionnez un " "fichier de façon classique et Lutim vous fournira quatre URLs en retour. Une " -"pour afficher l’image, une autre pour la télécharger directement, une pour " -"l’utiliser sur les réseaux sociaux et une dernière pour supprimer votre " -"image quand vous le souhaitez" +"pour afficher l’image, une autre pour la télécharger directement, une pour l’" +"utiliser sur les réseaux sociaux et une dernière pour supprimer votre image " +"quand vous le souhaitez." #: themes/default/templates/index.html.ep:168 themes/default/templates/index.html.ep:199 msgid "Encrypt the image (Lutim does not keep the key)." @@ -226,7 +228,7 @@ msgstr "" msgid "Image URL" msgstr "URL de l’image" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "Durée de rétention de l’image" @@ -234,7 +236,7 @@ msgstr "Durée de rétention de l’image" msgid "Image deleted" msgstr "Image supprimée" -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "Image non trouvée." @@ -409,7 +411,7 @@ msgid "Something bad happened" msgstr "Un problème est survenu" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -449,11 +451,11 @@ msgid "" msgstr "" "Le logiciel Lutim est un logiciel libre, ce qui vous permet de le télécharger et " -"de l’installer sur votre propre serveur. Jetez un coup d’œil à l’AGPL pour voir quels sont " -"vos droits" +"de l’installer sur votre propre serveur. Jetez un coup d’œil à l’AGPL pour voir quels sont " +"vos droits." -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." msgstr "L’URL n’est pas valide." @@ -470,19 +472,19 @@ msgstr "" msgid "The data has been successfully imported." msgstr "Les données ont été importées avec succès." -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "Le jeton de suppression est invalide." #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "Le fichier %1 n’est pas une image." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "Le fichier dépasse la limite de taille (%1)" @@ -491,18 +493,14 @@ msgid "The graph's datas are not updated in real-time." msgstr "Les données du graphique ne sont pas mises à jour en temps réél." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "L’image %1 a déjà été supprimée." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" -msgstr "L’image %1 a été supprimée avec succès." - -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "Le délai de l’image a été modifié avec succès." +msgstr "L’image %1 a été supprimée avec succès" #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." @@ -518,26 +516,30 @@ msgstr "" "s’effacer dès le premier affichage ou au bout du délai choisi parmi ceux " "proposés." -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "Le délai de l’image a été modifié avec succès" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "Il y a XXXX image(s) dans la galerie" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" -"Il n’y a plus d’URL disponible. Veuillez réessayer ou contacter " -"l’administrateur. %1." +"Il n’y a plus d’URL disponible. Veuillez réessayer ou contacter l’" +"administrateur. %1" #: themes/default/templates/gallery.html.ep:30 msgid "Toggle fullscreen" -msgstr "Basculler le plein écran" +msgstr "Basculer le plein écran" #: themes/default/templates/partial/navbar.html.ep:8 msgid "Toggle navigation" msgstr "Étendre la barre de navigation" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" msgstr "Total" @@ -550,15 +552,15 @@ msgid "Unable to copy to clipboard" msgstr "Impossible de copier dans le presse-papier" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "Impossible de trouver l’image %1." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "Impossible de trouver l’image : elle a été supprimée." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "Impossible de récupérer le compteur" @@ -667,7 +669,7 @@ msgstr "traduction en arabe" msgid "core developer" msgstr "développeur principal" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "Pas de limitation de durée" diff --git a/themes/default/lib/Lutim/I18N/it.po b/themes/default/lib/Lutim/I18N/it.po index 42c1ee3..8d986d4 100644 --- a/themes/default/lib/Lutim/I18N/it.po +++ b/themes/default/lib/Lutim/I18N/it.po @@ -4,15 +4,16 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2019-11-16 13:46+0000\n" +"Last-Translator: Luc Didry \n" +"Language-Team: Italian \n" +"Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-11-16 08:13+0000\n" -"Last-Translator: roberto marcolin \n" -"Language-Team: Italian\n" -"Language: it\n" -"X-Generator: Zanata 4.6.2\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 3.9.1\n" #. (7) #. (30) @@ -25,7 +26,7 @@ msgstr "%1 giorni" #. ($total) #: themes/default/templates/stats.html.ep:2 msgid "%1 sent images on this instance from beginning." -msgstr "%1 immagini inviate su questa istanza dall'inizio" +msgstr "%1 immagini inviate su questa istanza dall'inizio." #: themes/default/templates/index.html.ep:208 msgid "-or-" @@ -53,7 +54,7 @@ msgstr "Immagini attive" #: lib/Lutim/Controller/Image.pm:327 msgid "An error occured while downloading the image." -msgstr "È avvenuto un errore durante il download dell'immagine" +msgstr "È avvenuto un errore durante il download dell'immagine." #: themes/default/templates/zip.html.ep:2 msgid "Archives download" @@ -150,11 +151,11 @@ msgstr "" #: themes/default/templates/index.html.ep:168 themes/default/templates/index.html.ep:199 msgid "Encrypt the image (Lutim does not keep the key)." -msgstr "Crittografare l'immagine (Lutim non memorizza la chiave)" +msgstr "Crittografare l'immagine (Lutim non memorizza la chiave)." #: themes/default/templates/partial/lutim.js.ep:45 themes/default/templates/partial/myfiles.js.ep:113 msgid "Error while trying to modify the image." -msgstr "Errore durante la modifica dell'immagine" +msgstr "Errore durante la modifica dell'immagine." #: themes/default/templates/stats.html.ep:10 msgid "Evolution of total files" @@ -182,7 +183,7 @@ msgstr "" #: themes/default/templates/partial/navbar.html.ep:80 msgid "Fork me!" -msgstr "Crea un fork del progetto" +msgstr "Crea un fork del progetto !" #: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:13 themes/default/templates/myfiles.html.ep:60 themes/default/templates/myfiles.html.ep:63 msgid "Gallery link" @@ -230,7 +231,7 @@ msgstr "Immagine cancellata" #: lib/Lutim/Controller/Image.pm:753 msgid "Image not found." -msgstr "Immagine non trovata" +msgstr "Immagine non trovata." #: themes/default/templates/myfiles.html.ep:113 msgid "Import localStorage data" @@ -278,7 +279,7 @@ msgstr "Si parte!" #: themes/default/templates/partial/navbar.html.ep:74 msgid "License:" -msgstr "Licenza" +msgstr "Licenza :" #: themes/default/templates/index.html.ep:107 themes/default/templates/index.html.ep:109 themes/default/templates/partial/lutim.js.ep:112 themes/default/templates/partial/lutim.js.ep:116 msgid "Link for share on social networks" @@ -462,12 +463,12 @@ msgstr "I dati sono stati importati con successo." #: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 msgid "The delete token is invalid." -msgstr "Il token cancellato non è valido" +msgstr "Il token cancellato non è valido." #. ($upload->filename) #: lib/Lutim/Controller/Image.pm:487 msgid "The file %1 is not an image." -msgstr "Il file %1 non è un'immagine" +msgstr "Il file %1 non è un'immagine." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) @@ -492,7 +493,7 @@ msgstr "L'immagine %1 è stata cancellata con successo" #: lib/Lutim/Controller/Image.pm:167 msgid "The image's delay has been successfully modified" -msgstr "La durata dell'immagine è stata modificata con successo." +msgstr "La durata dell'immagine è stata modificata con successo" #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." @@ -556,7 +557,7 @@ msgid "" "images." msgstr "" "A differenza di molti servizi di condivisione di immagini, non ci cedi i " -"diritti sulle immagini che carichi" +"diritti sulle immagini che carichi." #: themes/default/templates/index.html.ep:180 themes/default/templates/index.html.ep:219 msgid "Upload an image with its URL" @@ -577,7 +578,7 @@ msgid "" "administrator (%1)." msgstr "" "Il caricamento (upload) è al momento disabilitato, prova più tardi o " -"contatta l'amministratore (%1)" +"contatta l'amministratore (%1)." #: themes/default/templates/index.html.ep:83 themes/default/templates/index.html.ep:85 themes/default/templates/myfiles.html.ep:122 themes/default/templates/partial/lutim.js.ep:72 themes/default/templates/partial/lutim.js.ep:76 msgid "View link" @@ -603,7 +604,7 @@ msgid "" msgstr "" "Sì, è così. D'altra parte, per motivi legali, il tuo indirizzo IP viene " "registrato quando invii un'immagine. Niente paura, è la procedura usata da " -"tutti i siti in cui puoi inviare dei file." +"tutti i siti in cui puoi inviare dei file !" #: themes/default/templates/about.html.ep:10 msgid "" diff --git a/themes/default/lib/Lutim/I18N/lutim.pot b/themes/default/lib/Lutim/I18N/lutim.pot index 983a324..67b45b0 100644 --- a/themes/default/lib/Lutim/I18N/lutim.pot +++ b/themes/default/lib/Lutim/I18N/lutim.pot @@ -28,7 +28,7 @@ msgstr "" msgid "%1 sent images on this instance from beginning." msgstr "" -#: themes/default/templates/index.html.ep:208 +#: themes/default/templates/index.html.ep:202 msgid "-or-" msgstr "" @@ -40,11 +40,11 @@ msgstr "" msgid "24 hours" msgstr "" -#: themes/default/templates/partial/myfiles.js.ep:180 +#: themes/default/templates/partial/myfiles.js.ep:210 msgid ": Error while trying to get the counter." msgstr "" -#: themes/default/templates/partial/navbar.html.ep:77 +#: themes/default/templates/partial/navbar.html.ep:63 msgid "About" msgstr "" @@ -60,11 +60,11 @@ msgstr "" msgid "Archives download" msgstr "" -#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:135 themes/default/templates/stats.html.ep:25 +#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:129 themes/default/templates/stats.html.ep:25 msgid "Back to homepage" msgstr "" -#: themes/default/templates/index.html.ep:211 themes/default/templates/index.html.ep:212 +#: themes/default/templates/index.html.ep:205 themes/default/templates/index.html.ep:206 msgid "Click to open the file browser" msgstr "" @@ -88,11 +88,11 @@ msgstr "" msgid "Copy all view links to clipboard" msgstr "" -#: themes/default/templates/index.html.ep:103 themes/default/templates/index.html.ep:111 themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:54 themes/default/templates/index.html.ep:87 themes/default/templates/index.html.ep:95 themes/default/templates/myfiles.html.ep:104 themes/default/templates/myfiles.html.ep:68 themes/default/templates/myfiles.html.ep:86 themes/default/templates/partial/common.js.ep:186 themes/default/templates/partial/lutim.js.ep:106 themes/default/templates/partial/lutim.js.ep:121 themes/default/templates/partial/lutim.js.ep:80 themes/default/templates/partial/lutim.js.ep:92 themes/default/templates/partial/myfiles.js.ep:142 +#: themes/default/templates/index.html.ep:105 themes/default/templates/index.html.ep:16 themes/default/templates/index.html.ep:32 themes/default/templates/index.html.ep:48 themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:97 themes/default/templates/myfiles.html.ep:66 themes/default/templates/myfiles.html.ep:82 themes/default/templates/myfiles.html.ep:98 themes/default/templates/partial/common.js.ep:186 themes/default/templates/partial/lutim.js.ep:106 themes/default/templates/partial/lutim.js.ep:121 themes/default/templates/partial/lutim.js.ep:80 themes/default/templates/partial/lutim.js.ep:92 themes/default/templates/partial/myfiles.js.ep:172 msgid "Copy to clipboard" msgstr "" -#: themes/default/templates/myfiles.html.ep:123 +#: themes/default/templates/myfiles.html.ep:117 msgid "Counter" msgstr "" @@ -104,7 +104,7 @@ msgstr "" msgid "Delay repartition chart for enabled images" msgstr "" -#: themes/default/templates/index.html.ep:133 themes/default/templates/index.html.ep:165 themes/default/templates/index.html.ep:196 themes/default/templates/myfiles.html.ep:124 themes/default/templates/myfiles.html.ep:45 themes/default/templates/partial/lutim.js.ep:161 +#: themes/default/templates/index.html.ep:127 themes/default/templates/index.html.ep:159 themes/default/templates/index.html.ep:190 themes/default/templates/myfiles.html.ep:118 themes/default/templates/myfiles.html.ep:45 themes/default/templates/partial/lutim.js.ep:161 msgid "Delete at first view?" msgstr "" @@ -116,7 +116,7 @@ msgstr "" msgid "Deleted images in 30 days" msgstr "" -#: themes/default/templates/index.html.ep:116 themes/default/templates/myfiles.html.ep:127 themes/default/templates/partial/common.js.ep:178 themes/default/templates/partial/common.js.ep:181 +#: themes/default/templates/index.html.ep:110 themes/default/templates/myfiles.html.ep:121 themes/default/templates/partial/common.js.ep:178 themes/default/templates/partial/common.js.ep:181 msgid "Deletion link" msgstr "" @@ -124,15 +124,15 @@ msgstr "" msgid "Download all images" msgstr "" -#: themes/default/templates/index.html.ep:101 themes/default/templates/index.html.ep:99 themes/default/templates/partial/lutim.js.ep:102 themes/default/templates/partial/lutim.js.ep:98 +#: themes/default/templates/index.html.ep:93 themes/default/templates/index.html.ep:95 themes/default/templates/partial/lutim.js.ep:102 themes/default/templates/partial/lutim.js.ep:98 msgid "Download link" msgstr "" -#: themes/default/templates/index.html.ep:28 themes/default/templates/index.html.ep:31 themes/default/templates/myfiles.html.ep:78 themes/default/templates/myfiles.html.ep:81 +#: themes/default/templates/index.html.ep:26 themes/default/templates/index.html.ep:28 themes/default/templates/myfiles.html.ep:76 themes/default/templates/myfiles.html.ep:78 msgid "Download zip link" msgstr "" -#: themes/default/templates/index.html.ep:207 +#: themes/default/templates/index.html.ep:201 msgid "Drag & drop images here" msgstr "" @@ -140,11 +140,11 @@ msgstr "" msgid "Drag and drop an image in the appropriate area or use the traditional way to send files and Lutim will provide you four URLs. One to view the image, an other to directly download it, one you can use on social networks and a last to delete the image when you want." msgstr "" -#: themes/default/templates/index.html.ep:168 themes/default/templates/index.html.ep:199 +#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:193 msgid "Encrypt the image (Lutim does not keep the key)." msgstr "" -#: themes/default/templates/partial/lutim.js.ep:45 themes/default/templates/partial/myfiles.js.ep:113 +#: themes/default/templates/partial/lutim.js.ep:45 themes/default/templates/partial/myfiles.js.ep:128 msgid "Error while trying to modify the image." msgstr "" @@ -152,15 +152,15 @@ msgstr "" msgid "Evolution of total files" msgstr "" -#: themes/default/templates/myfiles.html.ep:126 +#: themes/default/templates/myfiles.html.ep:120 msgid "Expires at" msgstr "" -#: themes/default/templates/myfiles.html.ep:112 +#: themes/default/templates/myfiles.html.ep:106 msgid "Export localStorage data" msgstr "" -#: themes/default/templates/myfiles.html.ep:121 +#: themes/default/templates/myfiles.html.ep:115 msgid "File name" msgstr "" @@ -168,11 +168,11 @@ msgstr "" msgid "For more details, see the homepage of the project." msgstr "" -#: themes/default/templates/partial/navbar.html.ep:80 +#: themes/default/templates/partial/navbar.html.ep:66 msgid "Fork me!" msgstr "" -#: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:13 themes/default/templates/myfiles.html.ep:60 themes/default/templates/myfiles.html.ep:63 +#: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:12 themes/default/templates/myfiles.html.ep:60 themes/default/templates/myfiles.html.ep:62 msgid "Gallery link" msgstr "" @@ -200,7 +200,7 @@ msgstr "" msgid "If the files are deleted if you ask it while posting it, their SHA512 footprint are retained." msgstr "" -#: themes/default/templates/index.html.ep:181 themes/default/templates/index.html.ep:221 +#: themes/default/templates/index.html.ep:175 themes/default/templates/index.html.ep:215 msgid "Image URL" msgstr "" @@ -216,11 +216,11 @@ msgstr "" msgid "Image not found." msgstr "" -#: themes/default/templates/myfiles.html.ep:113 +#: themes/default/templates/myfiles.html.ep:107 msgid "Import localStorage data" msgstr "" -#: themes/default/templates/partial/navbar.html.ep:69 +#: themes/default/templates/partial/navbar.html.ep:55 msgid "Informations" msgstr "" @@ -244,7 +244,7 @@ msgstr "" msgid "Juste like you pronounce the French word lutin (/ly.tɛ̃/)." msgstr "" -#: themes/default/templates/index.html.ep:171 themes/default/templates/index.html.ep:202 +#: themes/default/templates/index.html.ep:165 themes/default/templates/index.html.ep:196 msgid "Keep EXIF tags" msgstr "" @@ -252,15 +252,15 @@ msgstr "" msgid "Language" msgstr "" -#: themes/default/templates/index.html.ep:136 themes/default/templates/index.html.ep:184 themes/default/templates/index.html.ep:224 themes/default/templates/partial/lutim.js.ep:165 +#: themes/default/templates/index.html.ep:130 themes/default/templates/index.html.ep:178 themes/default/templates/index.html.ep:218 themes/default/templates/partial/lutim.js.ep:165 msgid "Let's go!" msgstr "" -#: themes/default/templates/partial/navbar.html.ep:74 +#: themes/default/templates/partial/navbar.html.ep:60 msgid "License:" msgstr "" -#: themes/default/templates/index.html.ep:107 themes/default/templates/index.html.ep:109 themes/default/templates/partial/lutim.js.ep:112 themes/default/templates/partial/lutim.js.ep:116 +#: themes/default/templates/index.html.ep:101 themes/default/templates/index.html.ep:103 themes/default/templates/partial/lutim.js.ep:112 themes/default/templates/partial/lutim.js.ep:116 msgid "Link for share on social networks" msgstr "" @@ -284,11 +284,11 @@ msgstr "" msgid "Main developers" msgstr "" -#: themes/default/templates/index.html.ep:91 themes/default/templates/index.html.ep:93 themes/default/templates/partial/lutim.js.ep:86 themes/default/templates/partial/lutim.js.ep:89 +#: themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:87 themes/default/templates/partial/lutim.js.ep:86 themes/default/templates/partial/lutim.js.ep:89 msgid "Markdown syntax" msgstr "" -#: themes/default/templates/partial/myfiles.js.ep:149 +#: themes/default/templates/partial/myfiles.js.ep:179 msgid "Modify expiration delay" msgstr "" @@ -300,11 +300,11 @@ msgstr "" msgid "Next (arrow right)" msgstr "" -#: themes/default/templates/partial/myfiles.js.ep:105 themes/default/templates/partial/myfiles.js.ep:132 +#: themes/default/templates/partial/myfiles.js.ep:120 themes/default/templates/partial/myfiles.js.ep:162 msgid "No limit" msgstr "" -#: themes/default/templates/index.html.ep:183 themes/default/templates/index.html.ep:216 +#: themes/default/templates/index.html.ep:177 themes/default/templates/index.html.ep:210 msgid "Only images are allowed" msgstr "" @@ -337,7 +337,7 @@ msgstr "" msgid "Previous (arrow left)" msgstr "" -#: themes/default/templates/index.html.ep:46 themes/default/templates/index.html.ep:49 themes/default/templates/myfiles.html.ep:96 themes/default/templates/myfiles.html.ep:99 +#: themes/default/templates/index.html.ep:42 themes/default/templates/index.html.ep:44 themes/default/templates/myfiles.html.ep:92 themes/default/templates/myfiles.html.ep:94 msgid "Random image link" msgstr "" @@ -349,7 +349,7 @@ msgstr "" msgid "Save changes" msgstr "" -#: themes/default/templates/index.html.ep:176 +#: themes/default/templates/index.html.ep:170 msgid "Send an image" msgstr "" @@ -357,7 +357,7 @@ msgstr "" msgid "Signin" msgstr "" -#: themes/default/templates/index.html.ep:151 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:176 +#: themes/default/templates/index.html.ep:145 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:176 msgid "Something bad happened" msgstr "" @@ -366,18 +366,6 @@ msgstr "" msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)." msgstr "" -#: themes/default/templates/partial/navbar.html.ep:55 -msgid "Support the author" -msgstr "" - -#: themes/default/templates/partial/navbar.html.ep:63 -msgid "Support the author on Liberapay" -msgstr "" - -#: themes/default/templates/partial/navbar.html.ep:60 -msgid "Support the author on Tipeee" -msgstr "" - #: themes/default/templates/about.html.ep:13 msgid "The IP address of the image's sender is retained for a delay which depends of the administrator's choice (for the official instance, which is located in France, it's one year)." msgstr "" @@ -428,11 +416,7 @@ msgstr "" msgid "The image %1 has been successfully deleted" msgstr "" -#: lib/Lutim/Controller/Image.pm:168 -msgid "The image's delay has been successfully modified" -msgstr "" - -#: themes/default/templates/index.html.ep:63 +#: themes/default/templates/index.html.ep:57 msgid "The images are encrypted on the server (Lutim does not keep the key)." msgstr "" @@ -440,7 +424,11 @@ msgstr "" msgid "The images you post on Lutim can be stored indefinitely or be deleted at first view or after a delay selected from those proposed." msgstr "" -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "" @@ -461,7 +449,7 @@ msgstr "" msgid "Total" msgstr "" -#: themes/default/templates/index.html.ep:78 themes/default/templates/partial/lutim.js.ep:17 +#: themes/default/templates/index.html.ep:72 themes/default/templates/partial/lutim.js.ep:17 msgid "Tweet it!" msgstr "" @@ -486,11 +474,11 @@ msgstr "" msgid "Unlike many image sharing services, you don't give us rights on uploaded images." msgstr "" -#: themes/default/templates/index.html.ep:180 themes/default/templates/index.html.ep:219 +#: themes/default/templates/index.html.ep:174 themes/default/templates/index.html.ep:213 msgid "Upload an image with its URL" msgstr "" -#: themes/default/templates/myfiles.html.ep:125 +#: themes/default/templates/myfiles.html.ep:119 msgid "Uploaded at" msgstr "" @@ -503,7 +491,7 @@ msgstr "" msgid "Uploading is currently disabled, please try later or contact the administrator (%1)." msgstr "" -#: themes/default/templates/index.html.ep:83 themes/default/templates/index.html.ep:85 themes/default/templates/myfiles.html.ep:122 themes/default/templates/partial/lutim.js.ep:72 themes/default/templates/partial/lutim.js.ep:76 +#: themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:79 themes/default/templates/myfiles.html.ep:116 themes/default/templates/partial/lutim.js.ep:72 themes/default/templates/partial/lutim.js.ep:76 msgid "View link" msgstr "" diff --git a/themes/default/lib/Lutim/I18N/oc.po b/themes/default/lib/Lutim/I18N/oc.po index 00e1d31..4569ac6 100644 --- a/themes/default/lib/Lutim/I18N/oc.po +++ b/themes/default/lib/Lutim/I18N/oc.po @@ -4,26 +4,27 @@ # FIRST AUTHOR , YEAR. # Luc Didry , 2018. #zanata # Quentí, 2018. #zanata +# Luc Didry , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2019-11-16 13:46+0000\n" +"Last-Translator: Luc Didry \n" +"Language-Team: Occitan \n" +"Language: oc\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-07-29 08:17+0000\n" -"Last-Translator: Luc Didry \n" -"Language-Team: Occitan (http://www.transifex.com/fiat-tux/lutim/language/oc/" -")\n" -"Language: oc\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Zanata 4.6.2\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 3.9.1\n" #. (7) #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 jorns" @@ -36,27 +37,27 @@ msgstr "%1 imatges mandats sus aquesta instància dempuèi lo començament." msgid "-or-" msgstr "-o-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "1 an" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 oras" #: themes/default/templates/partial/myfiles.js.ep:180 msgid ": Error while trying to get the counter." -msgstr " : Error al moment de recuperar lo comptador." +msgstr ": Error al moment de recuperar lo comptador." #: themes/default/templates/partial/navbar.html.ep:77 msgid "About" msgstr "A prepaus" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" msgstr "Imatges actius" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "Una error es apareguda pendent lo telecargament de l'imatge." @@ -112,11 +113,11 @@ msgstr "Grafic de despartiment dels delais pels imatges activats" msgid "Delete at first view?" msgstr "Suprimir al primièr accès ?" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" msgstr "Imatges suprimits" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" msgstr "Imatges per èsser suprimits dins 30 jorns" @@ -225,7 +226,7 @@ msgstr "" msgid "Image URL" msgstr "URL de l'imatge" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "Delai de l'imatge" @@ -233,7 +234,7 @@ msgstr "Delai de l'imatge" msgid "Image deleted" msgstr "Imatge suprimit" -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "Imatge pas trobat." @@ -304,7 +305,7 @@ msgid "" "multiple URLs." msgstr "" "Lutim pòt pas comprimir tan d'imatge d'un còp, a doncas trocejat vòstra " -"demanda en multiplas URLs" +"demanda en multiplas URLs." #: themes/default/templates/about.html.ep:4 msgid "" @@ -409,7 +410,7 @@ msgid "Something bad happened" msgstr "Un problèma es aparegut" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -447,11 +448,11 @@ msgid "" "licenses/agpl-3.0.html\">AGPL to see what you can do." msgstr "" "Lo logicial Lutim es un logicial liure, que permet de lo telecargar e de " -"l’installar sus vòstre pròpri servidor. Gaitatz l’AGPL per veire que son vòstres dreits" +"Logicial_liure\">logicial liure, que permet de lo telecargar e de l’" +"installar sus vòstre pròpri servidor. Gaitatz l’AGPL per veire que son vòstres dreits." -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." msgstr "L'URL n'es pas valida." @@ -467,19 +468,19 @@ msgstr "" msgid "The data has been successfully imported." msgstr "Las donadas son ben estadas importadas." -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "Lo geton de supression es invalid." #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "Lo fichièr %1 es pas un imatge." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "Lo fichièr depassa lo limit de talha (%1)" @@ -488,18 +489,14 @@ msgid "The graph's datas are not updated in real-time." msgstr "Las donadas del grafic son pas mesas a jorn en temps real." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "L'imatge %1 es ja estat suprimit." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" -msgstr "L'imatge %1 es estat suprimit amb succès." - -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "Lo delai de l'imatge es plan estat modificat." +msgstr "L'imatge %1 es estat suprimit amb succès" #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." @@ -513,16 +510,20 @@ msgstr "" "Los imatges depausats sus Lutim pòdon èsser gardats sens fin, o s’escafar " "tre lo primièr afichatge o al cap d'un delai causit entre los prepausats." -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "Lo delai de l'imatge es plan estat modificat" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "I a XXXX imatge(s) dins la galariá" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" "I a pas mai d'URL disponiblas. Mercés de tornar ensajar o de contactar " -"l'administrator. %1." +"l'administrator. %1" #: themes/default/templates/gallery.html.ep:30 msgid "Toggle fullscreen" @@ -532,7 +533,7 @@ msgstr "Passar al plen ecran" msgid "Toggle navigation" msgstr "Passar en navigacion" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" msgstr "Total" @@ -545,15 +546,15 @@ msgid "Unable to copy to clipboard" msgstr "Fracàs de la còpia al quichapapièrs" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "Impossible de trobar l'imatge %1." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "Impossible de trobar l'imatge : es estat suprimit." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "Impossible de recuperar lo comptador" @@ -660,7 +661,7 @@ msgstr "traduccion en arabi" msgid "core developer" msgstr "desvolopaire màger" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "Pas cap de limitacion de durada" diff --git a/themes/default/lib/Lutim/I18N/ru.po b/themes/default/lib/Lutim/I18N/ru.po index addb851..f2e42a9 100644 --- a/themes/default/lib/Lutim/I18N/ru.po +++ b/themes/default/lib/Lutim/I18N/ru.po @@ -1,4 +1,5 @@ # Luc Didry , 2018. #zanata +# Luc Didry , 2019. #zanata msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" @@ -6,8 +7,8 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"PO-Revision-Date: 2018-07-29 08:17+0000\n" -"Last-Translator: Copied by Zanata \n" +"PO-Revision-Date: 2019-05-13 08:46+0000\n" +"Last-Translator: Luc Didry \n" "Language-Team: Russian\n" "Language: ru\n" "X-Generator: Zanata 4.6.2\n" @@ -18,7 +19,7 @@ msgstr "" #. (30) #. ($delay) #. (config('max_delay') -#: lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:178 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 +#: lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:173 lib/Lutim/Command/cron/stats.pm:174 lib/Lutim/Command/cron/stats.pm:190 lib/Lutim/Command/cron/stats.pm:191 themes/default/templates/myfiles.html.ep:24 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:34 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:14 themes/default/templates/partial/for_my_delay.html.ep:4 themes/default/templates/partial/lutim.js.ep:140 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/lutim.js.ep:150 themes/default/templates/partial/raw.js.ep:23 themes/default/templates/partial/raw.js.ep:24 themes/default/templates/partial/raw.js.ep:6 themes/default/templates/partial/raw.js.ep:7 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9 msgid "%1 days" msgstr "%1 дней" @@ -31,11 +32,11 @@ msgstr "%1 изображений загружено в этот экземпл msgid "-or-" msgstr "-или-" -#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:163 lib/Lutim/Command/cron/stats.pm:180 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 +#: lib/Lutim.pm:350 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:175 lib/Lutim/Command/cron/stats.pm:192 themes/default/templates/index.html.ep:5 themes/default/templates/myfiles.html.ep:5 themes/default/templates/partial/raw.js.ep:25 themes/default/templates/partial/raw.js.ep:8 themes/default/templates/raw.html.ep:10 msgid "1 year" msgstr "1 год" -#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:146 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:177 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 +#: lib/Lutim.pm:349 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:172 lib/Lutim/Command/cron/stats.pm:189 themes/default/templates/index.html.ep:4 themes/default/templates/myfiles.html.ep:33 themes/default/templates/myfiles.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:149 themes/default/templates/partial/raw.js.ep:22 themes/default/templates/partial/raw.js.ep:5 themes/default/templates/raw.html.ep:7 msgid "24 hours" msgstr "24 часа" @@ -47,11 +48,11 @@ msgstr ": Error while trying to get the counter." msgid "About" msgstr "О Lutim" -#: lib/Lutim/Command/cron/stats.pm:142 themes/default/templates/raw.html.ep:3 +#: lib/Lutim/Command/cron/stats.pm:154 themes/default/templates/raw.html.ep:3 msgid "Active images" msgstr "Активные изображения" -#: lib/Lutim/Controller/Image.pm:327 +#: lib/Lutim/Controller/Image.pm:328 msgid "An error occured while downloading the image." msgstr "Произошла ошибка при скачивании изображения." @@ -107,11 +108,11 @@ msgstr "Распределение сроков хранения доступн msgid "Delete at first view?" msgstr "Удалить после первого просмотра?" -#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:4 +#: lib/Lutim/Command/cron/stats.pm:155 themes/default/templates/raw.html.ep:4 msgid "Deleted images" msgstr "Удалённые изображения" -#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:5 +#: lib/Lutim/Command/cron/stats.pm:156 themes/default/templates/raw.html.ep:5 msgid "Deleted images in 30 days" msgstr "Удалить изображения через 30 дней" @@ -219,7 +220,7 @@ msgstr "" msgid "Image URL" msgstr "URL изображения" -#: lib/Lutim/Command/cron/stats.pm:141 themes/default/templates/raw.html.ep:2 +#: lib/Lutim/Command/cron/stats.pm:153 themes/default/templates/raw.html.ep:2 msgid "Image delay" msgstr "Срок хранения" @@ -227,7 +228,7 @@ msgstr "Срок хранения" msgid "Image deleted" msgstr "" -#: lib/Lutim/Controller/Image.pm:753 +#: lib/Lutim/Controller/Image.pm:756 msgid "Image not found." msgstr "Изображение не найдено." @@ -402,7 +403,7 @@ msgid "Something bad happened" msgstr "Произошло что-то плохое" #. ($c->config('contact') -#: lib/Lutim/Controller/Image.pm:760 +#: lib/Lutim/Controller/Image.pm:763 msgid "" "Something went wrong when creating the zip file. Try again later or contact " "the administrator (%1)." @@ -444,7 +445,7 @@ msgstr "" "сервер. Посмотрите AGPL, чтоб увидеть, что вы можете делать." -#: lib/Lutim/Controller/Image.pm:346 +#: lib/Lutim/Controller/Image.pm:347 msgid "The URL is not valid." msgstr "Недопустимый URL." @@ -460,19 +461,19 @@ msgstr "" msgid "The data has been successfully imported." msgstr "" -#: lib/Lutim/Controller/Image.pm:159 lib/Lutim/Controller/Image.pm:227 +#: lib/Lutim/Controller/Image.pm:160 lib/Lutim/Controller/Image.pm:228 msgid "The delete token is invalid." msgstr "Неправильный ключ для удаления." #. ($upload->filename) -#: lib/Lutim/Controller/Image.pm:487 +#: lib/Lutim/Controller/Image.pm:488 msgid "The file %1 is not an image." msgstr "Файл %1 — не изображение." #. ($tx->res->max_message_size) #. ($c->req->max_message_size) #. (config('max_file_size') -#: lib/Lutim/Controller/Image.pm:310 lib/Lutim/Controller/Image.pm:379 themes/default/templates/partial/lutim.js.ep:249 +#: lib/Lutim/Controller/Image.pm:311 lib/Lutim/Controller/Image.pm:380 themes/default/templates/partial/lutim.js.ep:249 msgid "The file exceed the size limit (%1)" msgstr "Размер файла превосходит ограничение (%1)" @@ -481,19 +482,15 @@ msgid "The graph's datas are not updated in real-time." msgstr "Данные графиков не обновляются в реальном времени." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:229 +#: lib/Lutim/Controller/Image.pm:230 msgid "The image %1 has already been deleted." msgstr "Изображение %1 уже было удалено." #. ($image->filename) -#: lib/Lutim/Controller/Image.pm:238 lib/Lutim/Controller/Image.pm:243 +#: lib/Lutim/Controller/Image.pm:239 lib/Lutim/Controller/Image.pm:244 msgid "The image %1 has been successfully deleted" msgstr "Изображение %1 успешно удалено" -#: lib/Lutim/Controller/Image.pm:167 -msgid "The image's delay has been successfully modified" -msgstr "Срок хранения изображения успешно изменён" - #: themes/default/templates/index.html.ep:63 msgid "The images are encrypted on the server (Lutim does not keep the key)." msgstr "Изображения зашифрованы на сервере (Lutim не хранит ключ)." @@ -507,12 +504,16 @@ msgstr "" "быть удалёнными после первого просмотра или по истечении определённого " "промежутка времени." -#: themes/default/templates/partial/gallery.js.ep:257 +#: lib/Lutim/Controller/Image.pm:168 +msgid "The image’s delay has been successfully modified" +msgstr "Срок хранения изображения успешно изменён" + +#: themes/default/templates/partial/gallery.js.ep:277 msgid "There is XXXX image(s) in the gallery" msgstr "" #. ($c->config->{contact}) -#: lib/Lutim/Controller/Image.pm:484 +#: lib/Lutim/Controller/Image.pm:485 msgid "There is no more available URL. Retry or contact the administrator. %1" msgstr "" "Больше нет доступных URL. Попробуйте снова или свяжитесь с администратором. " @@ -526,7 +527,7 @@ msgstr "Переключить полноэкранный режим" msgid "Toggle navigation" msgstr "Переключить навигацию" -#: lib/Lutim/Command/cron/stats.pm:150 themes/default/templates/raw.html.ep:11 +#: lib/Lutim/Command/cron/stats.pm:162 themes/default/templates/raw.html.ep:11 msgid "Total" msgstr "Итого" @@ -539,15 +540,15 @@ msgid "Unable to copy to clipboard" msgstr "" #. ($short) -#: lib/Lutim/Controller/Image.pm:107 lib/Lutim/Controller/Image.pm:201 lib/Lutim/Controller/Image.pm:272 +#: lib/Lutim/Controller/Image.pm:108 lib/Lutim/Controller/Image.pm:202 lib/Lutim/Controller/Image.pm:273 msgid "Unable to find the image %1." msgstr "Невозможно найти изображение %1." -#: lib/Lutim/Controller/Image.pm:573 lib/Lutim/Controller/Image.pm:618 lib/Lutim/Controller/Image.pm:657 lib/Lutim/Controller/Image.pm:700 lib/Lutim/Controller/Image.pm:712 lib/Lutim/Controller/Image.pm:723 lib/Lutim/Controller/Image.pm:750 lib/Lutim/Plugin/Helpers.pm:88 +#: lib/Lutim/Controller/Image.pm:574 lib/Lutim/Controller/Image.pm:619 lib/Lutim/Controller/Image.pm:660 lib/Lutim/Controller/Image.pm:703 lib/Lutim/Controller/Image.pm:715 lib/Lutim/Controller/Image.pm:726 lib/Lutim/Controller/Image.pm:753 lib/Lutim/Plugin/Helpers.pm:88 msgid "Unable to find the image: it has been deleted." msgstr "Невозможно найти изображение: оно было удалено." -#: lib/Lutim/Controller/Image.pm:144 +#: lib/Lutim/Controller/Image.pm:145 msgid "Unable to get counter" msgstr "Невозможно получить счётчик" @@ -653,7 +654,7 @@ msgstr "арабский перевод" msgid "core developer" msgstr "разработчик ядра" -#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:145 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 +#: lib/Lutim.pm:348 lib/Lutim/Command/cron/stats.pm:157 lib/Lutim/Command/cron/stats.pm:171 lib/Lutim/Command/cron/stats.pm:188 themes/default/templates/index.html.ep:3 themes/default/templates/myfiles.html.ep:3 themes/default/templates/partial/raw.js.ep:21 themes/default/templates/partial/raw.js.ep:4 themes/default/templates/raw.html.ep:6 msgid "no time limit" msgstr "без ограничения времени" diff --git a/themes/default/public/css/common.min.css b/themes/default/public/css/common.min.css index 930ec71..097f78c 100644 --- a/themes/default/public/css/common.min.css +++ b/themes/default/public/css/common.min.css @@ -16,11 +16,11 @@ html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}legend,td,th{padding:0} /*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ @-webkit-keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{0%{background-position:40px 0}to{background-position:0 0}}@media print{*,:after,:before{background:0 0!important;color:#000!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}blockquote,img,pre,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}*,:after,:before,input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:transparent}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#428bca;text-decoration:none}a:focus,a:hover{color:#2a6496;text-decoration:underline}a:focus,input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#999}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{background-color:#fcf8e3;padding:.2em}.text-left,th{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999}.text-primary{color:#428bca}a.text-primary:focus,a.text-primary:hover{color:#3071a9}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#428bca}a.bg-primary:focus,a.bg-primary:hover{background-color:#3071a9}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0;margin-bottom:10px}.alert>p,.alert>ul,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#999}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eee;border-left:0;text-align:right}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999;text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th{padding:8px;line-height:1.42857143;border-top:1px solid #ddd}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;float:none;display:table-column}table td[class*=col-],table th[class*=col-]{position:static;float:none;display:table-cell}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{margin:0;min-width:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file],legend{display:block}input[type=range]{display:block;width:100%}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control,select[multiple],select[multiple].input-sm,select[size],textarea.form-control,textarea.input-sm{height:auto}.form-control,output{display:block;font-size:14px;line-height:1.42857143;color:#555}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control::-ms-expand{border:0;background-color:transparent}.form-control[disabled]{background-color:#eee;opacity:1}.form-control[readonly]{opacity:1}fieldset[disabled] .form-control{background-color:#eee;opacity:1;cursor:not-allowed}.form-control[disabled]{cursor:not-allowed}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],.input-group-sm input[type=time],input[type=date].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm,input[type=time].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],.input-group-lg input[type=time],input[type=date].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg,input[type=time].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.checkbox-inline,.radio label,.radio-inline{padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox label,.radio label{min-height:20px}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-left:-20px;margin-top:4px \9}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;vertical-align:middle}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.form-group-sm .form-control,.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control,select.input-sm{height:30px;line-height:30px}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.form-group-lg .form-control,.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control,select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg select.form-control,select.input-lg{height:46px;line-height:46px}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.33}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;border-color:#3c763d;background-color:#dff0d8}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;border-color:#8a6d3b;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;border-color:#a94442;background-color:#f2dede}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:11px;font-size:18px}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:400;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#428bca;border-color:#357ebd}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#3071a9;border-color:#193c5a}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#3071a9;border-color:#285e8e}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#285e8e;border-color:#193c5a}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#428bca;border-color:#357ebd}.btn-primary .badge{color:#428bca;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{color:#428bca;font-weight:400;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#2a6496;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#999;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-group-sm>.btn,.btn-group-xs>.btn,.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px}.btn-block{display:block;width:100%}.alert>p+p,.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#fff;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{text-decoration:none;color:#262626;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0;background-color:#428bca}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#999}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn{float:left}.btn-group-vertical>.btn,.btn-group>.btn{position:relative}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;width:100%;max-width:100%;float:none}.nav-tabs.nav-justified>li{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified,.input-group{display:table;border-collapse:separate}.btn-group-justified{width:100%;table-layout:fixed}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative}.input-group[class*=col-]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:focus{z-index:3}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon{white-space:nowrap}.input-group-addon,.input-group-btn{width:1%;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{font-size:0;white-space:nowrap}.input-group-btn,.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li,.nav>li>a{position:relative;display:block}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#999}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#428bca}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#428bca}.nav-justified>li,.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{text-align:center;margin-bottom:5px}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.navbar-brand>img,.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand,.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{background-color:#e7e7e7;color:#555}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .btn-link,.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#999}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{background-color:#080808;color:#fff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .btn-link,.navbar-inverse .navbar-link{color:#999}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{background-color:#fcf8e3;border-color:#faebcc;color:#8a6d3b}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{background-color:#f2dede;border-color:#ebccd1;color:#a94442}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#428bca;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-danger,.progress-striped .progress-bar-info,.progress-striped .progress-bar-success,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-bar-warning{background-color:#f0ad4e}.progress-bar-danger{background-color:#d9534f}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2;filter:alpha(opacity=20)}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:0 0;border:0;-webkit-appearance:none}.modal,.modal-open{overflow:hidden}.modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.row:after,.row:before{content:" ";display:table}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.row:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs,.visible-xs-block{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-inline{display:inline!important}.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm,.visible-sm-block{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-inline{display:inline!important}.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md,.visible-md-block{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-inline{display:inline!important}.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg,.visible-lg-block{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}.hidden-print{display:none!important}}@font-face{font-family:'fontello';src:url(../font/fontello.eot?74275093);src:url(../font/fontello.eot?74275093#iefix) format('embedded-opentype'),url(../font/fontello.woff2?74275093) format('woff2'),url(../font/fontello.woff?74275093) format('woff'),url(../font/fontello.ttf?74275093) format('truetype'),url(../font/fontello.svg?74275093#fontello) format('svg');font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:"fontello";font-style:normal;font-weight:400;speak:none;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-ok:before{content:'\e800'}.icon-eye:before{content:'\e801'}.icon-download:before{content:'\e802'}.icon-share:before{content:'\e803'}.icon-trash:before{content:'\e804'}.icon-bitcoin:before{content:'\e805'}.icon-git:before{content:'\e806'}.icon-twitter:before{content:'\e807'}.icon-clipboard:before{content:'\e808'}.icon-spinner:before{content:'\e809'}.icon-shuffle:before{content:'\e80a'}.icon-cancel:before{content:'\e80b'}.icon-picture:before{content:'\e80c'}.icon-file-archive:before{content:'\e80d'}.icon-language:before{content:'\e80e'}.icon-edit:before{content:'\e80f'}@font-face{font-family:'Henny_Penny';font-style:normal;font-weight:400;src:local('Henny Penny'),local('HennyPenny-Regular'),url(../font/hennypenny.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@media (max-width:767px){body{padding-top:5px;padding-bottom:5px}}@media (min-width:768px){body{padding-bottom:40px}}.container{padding:15px;margin:0 auto}nav .container{padding:0}#install-app,.jsonly,label.always-encrypt{display:none}.thumbnail{margin-right:8px}.hennypenny{font-family:'Henny_Penny',cursive;font-size:42px}.logo{margin-right:10px}.link_nocol,.link_nocol:hover{color:#000;text-decoration:none}#install-app img{height:22px}.form-control[readonly]{background-color:#fff}.alert .form-group,.gallery figure{margin-bottom:5px}#copy-all{margin-bottom:8px}#gallery-url{margin-bottom:10px}.adjust-addon{width:42px}.adjust-addon .btn{width:43px}#tipeee-img{margin-top:-4px}#liberapay-img{height:21px;line-height:21px;margin-top:-5.33333px}.pasteZone{position:absolute;top:0;left:-100px;z-index:-999;height:10000vh;width:0;display:hidden}.gallery figure{margin-right:auto;margin-left:auto}@media (min-width:1200px){.gallery{column-count:4}}@media (min-width:991px) and (max-width:1199px){.gallery{column-count:3}}@media (min-width:676px) and (max-width:990px){.gallery{column-count:2}}@media (max-width:675px){.gallery{column-count:1}}.border-zero{border:0}.copy-node{width:1px;height:1px;position:'fixed';top:5px}.width-zero{width:0%}.pdg-left-10{padding-left:10px}.spin{font-size:200%;display:none}#myfiles td.ellips{max-width:300px}#myfiles td.ellips,h1.ellips{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} -/*! - * Toastify js 1.2.0 - * https://github.com/apvarun/toastify-js - * @license MIT licensed - * - * Copyright (C) 2018 Varun A P +/*! + * Toastify js 1.4.0 + * https://github.com/apvarun/toastify-js + * @license MIT licensed + * + * Copyright (C) 2018 Varun A P */ -.toastify{padding:12px 20px;color:#fff;display:inline-block;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(77,96,232,.3);background:-webkit-linear-gradient(315deg,#73a5ff,#5477f5);background:linear-gradient(135deg,#73a5ff,#5477f5);position:fixed;opacity:0;transition:all .4s cubic-bezier(.215,.61,.355,1);border-radius:2px;cursor:pointer;text-decoration:none;max-width:calc(50% - 20px)}.toastify.on{opacity:1}.toast-close{opacity:.4;padding:0 5px}.right{right:15px}.left{left:15px}.top{top:-150px}.bottom{bottom:-150px}.rounded{border-radius:25px}.avatar{width:1.5em;height:1.5em;margin:0 5px;border-radius:2px}@media only screen and (max-width:360px){.left,.right{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content}} +.toastify{padding:12px 20px;color:#fff;display:inline-block;box-shadow:0 3px 6px -1px rgba(0,0,0,.12),0 10px 36px -4px rgba(77,96,232,.3);background:-webkit-linear-gradient(315deg,#73a5ff,#5477f5);background:linear-gradient(135deg,#73a5ff,#5477f5);position:fixed;opacity:0;transition:all .4s cubic-bezier(.215,.61,.355,1);border-radius:2px;cursor:pointer;text-decoration:none;max-width:calc(50% - 20px);z-index:2147483647}.toastify.on{opacity:1}.toast-close{opacity:.4;padding:0 5px}.toastify-right{right:15px}.toastify-left{left:15px}.toastify-top{top:-150px}.toastify-bottom{bottom:-150px}.toastify-rounded{border-radius:25px}.toastify-avatar{width:1.5em;height:1.5em;margin:0 5px;border-radius:2px}@media only screen and (max-width:360px){.toastify-left,.toastify-right{margin-left:auto;margin-right:auto;left:0;right:0;max-width:fit-content}} diff --git a/themes/default/public/css/toastify.css b/themes/default/public/css/toastify.css index 3b0507c..d7a6723 100644 --- a/themes/default/public/css/toastify.css +++ b/themes/default/public/css/toastify.css @@ -1,60 +1,70 @@ -/*! - * Toastify js 1.2.0 - * https://github.com/apvarun/toastify-js - * @license MIT licensed - * - * Copyright (C) 2018 Varun A P - */ -.toastify { - padding: 12px 20px; - color: #ffffff; - display: inline-block; - box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(77, 96, 232, 0.3); - background: -webkit-linear-gradient(315deg, #73a5ff, #5477f5); - background: linear-gradient(135deg, #73a5ff, #5477f5); - position: fixed; - opacity: 0; - transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1); - border-radius: 2px; - cursor: pointer; - text-decoration: none; - max-width: calc(50% - 20px); -} -.toastify.on { - opacity: 1; -} -.toast-close { - opacity: 0.4; - padding: 0 5px; -} -.right { - right: 15px; -} -.left { - left: 15px; -} -.top { - top: -150px; -} -.bottom { - bottom: -150px; -} -.rounded { - border-radius: 25px; -} -.avatar{ - width: 1.5em; - height: 1.5em; - margin: 0 5px; - border-radius: 2px; -} -@media only screen and (max-width: 360px){ - .right, .left{ - margin-left: auto; - margin-right: auto; - left: 0; - right: 0; - max-width: fit-content; - } -} - +/*! + * Toastify js 1.4.0 + * https://github.com/apvarun/toastify-js + * @license MIT licensed + * + * Copyright (C) 2018 Varun A P + */ + +.toastify { + padding: 12px 20px; + color: #ffffff; + display: inline-block; + box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(77, 96, 232, 0.3); + background: -webkit-linear-gradient(315deg, #73a5ff, #5477f5); + background: linear-gradient(135deg, #73a5ff, #5477f5); + position: fixed; + opacity: 0; + transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1); + border-radius: 2px; + cursor: pointer; + text-decoration: none; + max-width: calc(50% - 20px); + z-index: 2147483647; +} + +.toastify.on { + opacity: 1; +} + +.toast-close { + opacity: 0.4; + padding: 0 5px; +} + +.toastify-right { + right: 15px; +} + +.toastify-left { + left: 15px; +} + +.toastify-top { + top: -150px; +} + +.toastify-bottom { + bottom: -150px; +} + +.toastify-rounded { + border-radius: 25px; +} + +.toastify-avatar { + width: 1.5em; + height: 1.5em; + margin: 0 5px; + border-radius: 2px; +} + +@media only screen and (max-width: 360px) { + .toastify-right, .toastify-left { + margin-left: auto; + margin-right: auto; + left: 0; + right: 0; + max-width: fit-content; + } +} \ No newline at end of file diff --git a/themes/default/public/js/lutim.js b/themes/default/public/js/lutim.js index 633928c..1fc9f8c 100644 --- a/themes/default/public/js/lutim.js +++ b/themes/default/public/js/lutim.js @@ -109,6 +109,7 @@ $('document').ready(function() { $('#json-import').on('click', function() { $('#import').click(); }); $('#import').on('change', function() { importStorage(this.files); }) $('#mod-delay').on('click', modifyDelay); + $('#check-all').on('click', checkAll) } $('.copy-to-clipboard-link').on('click', clickOnCopyLink); $('.copy-all-to-clipboard-link').on('click', copyAllToClipboard); diff --git a/themes/default/public/js/toastify.js b/themes/default/public/js/toastify.js index b7c2867..95558e2 100644 --- a/themes/default/public/js/toastify.js +++ b/themes/default/public/js/toastify.js @@ -1,315 +1,319 @@ -/*! - * Toastify js 1.2.0 - * https://github.com/apvarun/toastify-js - * @license MIT licensed - * - * Copyright (C) 2018 Varun A P - */ -; -(function (root, factory) { - if(typeof module === "object" && module.exports) { - require('./toastify.css'); - module.exports = factory(); - } else { - root.Toastify = factory(); - } -}(this, function (global) { - - // Object initialization - var Toastify = function (options) { - - // Returning a new init object - return new Toastify.lib.init(options); - }, - // Library version - version = "1.2.0"; - - // Defining the prototype of the object - Toastify.lib = Toastify.prototype = { - - toastify: version, - - constructor: Toastify, - - // Initializing the object with required parameters - init: function (options) { - - // Verifying and validating the input object - if (!options) { - options = {}; - } - - // Creating the options object - this.options = {}; - - // Validating the options - this.options.text = options.text || 'Hi there!'; // Display message - this.options.duration = options.duration || 3000; // Display duration - this.options.selector = options.selector; // Parent selector - this.options.callback = options.callback || function () { }; // Callback after display - this.options.destination = options.destination; // On-click destination - this.options.newWindow = options.newWindow || false; // Open destination in new window - this.options.close = options.close || false; // Show toast close icon - this.options.gravity = (options.gravity == "bottom") ? "bottom" : "top"; // toast position - top or bottom - this.options.positionLeft = options.positionLeft || false; // toast position - left or right - this.options.backgroundColor = options.backgroundColor || "linear-gradient(135deg, #73a5ff, #5477f5)"; // toast position - left or right - this.options.avatar = options.avatar || ""; // toast position - left or right - - // Returning the current object for chaining functions - return this; - }, - - // Building the DOM element - buildToast: function () { - - // Validating if the options are defined - if (!this.options) { - throw "Toastify is not initialized"; - } - - // Creating the DOM object - var divElement = document.createElement("div"); - divElement.className = 'toastify on'; - - // Positioning toast to left or right - if (this.options.positionLeft === true) { - divElement.className += " left"; - } else { - divElement.className += " right"; - } - - // Assigning gravity of element - divElement.className += " " + this.options.gravity; - - divElement.style.background = this.options.backgroundColor; - - // Adding the toast message - divElement.innerHTML = this.options.text; - - if (this.options.avatar !== "") { - var avatarElement = document.createElement("img"); - avatarElement.src = this.options.avatar; - - avatarElement.className = "avatar"; - - if (this.options.positionLeft === true) { - - // Adding close icon on the left of content - divElement.appendChild(avatarElement); - - } else { - - // Adding close icon on the right of content - divElement.insertAdjacentElement('beforeend', avatarElement); - - } - } - - // Adding a close icon to the toast - if (this.options.close === true) { - - // Create a span for close element - var closeElement = document.createElement("span"); - closeElement.innerHTML = "✖"; - - closeElement.className = 'toast-close'; - - // Triggering the removal of toast from DOM on close click - closeElement.addEventListener('click', function (event) { - - event.stopPropagation(); - this.removeElement(event.target.parentElement); - window.clearTimeout(event.target.parentElement.timeOutValue); - - }.bind(this)); - - //Calculating screen width - var width = (window.innerWidth > 0) ? window.innerWidth : screen.width; - - // Adding the close icon to the toast element - // Display on the right if screen width is less than or equal to 360px - if (this.options.positionLeft === true && width > 360) { - - // Adding close icon on the left of content - divElement.insertAdjacentElement('afterbegin', closeElement); - - } else { - - // Adding close icon on the right of content - divElement.appendChild(closeElement); - - } - - } - - // Adding an on-click destination path - if (typeof this.options.destination !== 'undefined') { - - divElement.addEventListener('click', function (event) { - - event.stopPropagation(); - if(this.options.newWindow === true){ - window.open(this.options.destination, '_blank') - } else { - window.location = this.options.destination; - } - - }.bind(this)); - - } - - // Returning the generated element - return divElement; - }, - - // Displaying the toast - showToast: function () { - - // Creating the DOM object for the toast - var toastElement = this.buildToast(); - - // Getting the root element to with the toast needs to be added - var rootElement; - if (typeof this.options.selector === "undefined") { - rootElement = document.body; - } else { - rootElement = document.getElementById(this.options.selector); - } - - // Validating if root element is present in DOM - if (!rootElement) { - throw "Root element is not defined"; - } - - // Adding the DOM element - rootElement.insertBefore(toastElement, rootElement.firstChild); - - // Repositioning the toasts in case multiple toasts are present - Toastify.reposition(); - - toastElement.timeOutValue = window.setTimeout(function () { - - // Remove the toast from DOM - this.removeElement(toastElement); - - }.bind(this), this.options.duration); // Binding `this` for function invocation - - // Supporting function chaining - return this; - - }, - - // Removing the element from the DOM - removeElement: function (toastElement) { - - // Hiding the element - // toastElement.classList.remove("on"); - toastElement.className = toastElement.className.replace(" on",""); - - // Removing the element from DOM after transition end - window.setTimeout(function () { - - // Remove the elemenf from the DOM - toastElement.parentNode.removeChild(toastElement); - - // Calling the callback function - this.options.callback.call(toastElement); - - // Repositioning the toasts again - Toastify.reposition(); - - }.bind(this), 400); // Binding `this` for function invocation - - } - - } - - // Positioning the toasts on the DOM - Toastify.reposition = function () { - - // Top margins with gravity - var topLeftOffsetSize = { - top: 15, - bottom: 15 - }; - var topRightOffsetSize = { - top: 15, - bottom: 15 - }; - var offsetSize = { - top: 15, - bottom: 15 - }; - - // Get all toast messages on the DOM - var allToasts = document.getElementsByClassName('toastify'); - - var classUsed; - - // Modifying the position of each toast element - for (var i = 0; i < allToasts.length; i++) { - - // Getting the applied gravity - if (containsClass(allToasts[i], 'top') === true) { - classUsed = "top"; - } else { - classUsed = "bottom"; - } - - var height = allToasts[i].offsetHeight; - - // Spacing between toasts - var offset = 15; - - var width = (window.innerWidth > 0) ? window.innerWidth : screen.width; - - // Show toast in center if screen with less than or qual to 360px - if (width <= 360) { - - // Setting the position - allToasts[i].style[classUsed] = offsetSize[classUsed] + 'px'; - - offsetSize[classUsed] += height + offset; - - } else { - - if (containsClass(allToasts[i], 'left') === true) { - - // Setting the position - allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + 'px'; - - topLeftOffsetSize[classUsed] += height + offset; - - } else { - - // Setting the position - allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + 'px'; - - topRightOffsetSize[classUsed] += height + offset; - - } - - } - } - - // Supporting function chaining - return this; - } - - function containsClass(elem, yourClass) { - if(!elem || typeof yourClass !== 'string') { - return false; - } else if(elem.className && elem.className.trim().split(/\s+/gi).indexOf(yourClass) > -1) { - return true; - } else { - return false; - } - } - - // Setting up the prototype for the init object - Toastify.lib.init.prototype = Toastify.lib; - - // Returning the Toastify function to be assigned to the window object/module - return Toastify; - -})); \ No newline at end of file +/*! + * Toastify js 1.4.0 + * https://github.com/apvarun/toastify-js + * @license MIT licensed + * + * Copyright (C) 2018 Varun A P + */ +(function(root, factory) { + if (typeof module === "object" && module.exports) { + module.exports = factory(); + } else { + root.Toastify = factory(); + } +})(this, function(global) { + // Object initialization + var Toastify = function(options) { + // Returning a new init object + return new Toastify.lib.init(options); + }, + // Library version + version = "1.4.0"; + + // Defining the prototype of the object + Toastify.lib = Toastify.prototype = { + toastify: version, + + constructor: Toastify, + + // Initializing the object with required parameters + init: function(options) { + // Verifying and validating the input object + if (!options) { + options = {}; + } + + // Creating the options object + this.options = {}; + + // Validating the options + this.options.text = options.text || "Hi there!"; // Display message + this.options.duration = options.duration || 3000; // Display duration + this.options.selector = options.selector; // Parent selector + this.options.callback = options.callback || function() {}; // Callback after display + this.options.destination = options.destination; // On-click destination + this.options.newWindow = options.newWindow || false; // Open destination in new window + this.options.close = options.close || false; // Show toast close icon + this.options.gravity = options.gravity == "bottom" ? "toastify-bottom" : "toastify-top"; // toast position - top or bottom + this.options.positionLeft = options.positionLeft || false; // toast position - left or right + this.options.backgroundColor = options.backgroundColor; // toast background color + this.options.avatar = options.avatar || ""; // img element src - url or a path + this.options.className = options.className || ""; // additional class names for the toast + this.options.stopOnFocus = options.stopOnFocus || true; // stop timeout on focus + + // Returning the current object for chaining functions + return this; + }, + + // Building the DOM element + buildToast: function() { + // Validating if the options are defined + if (!this.options) { + throw "Toastify is not initialized"; + } + + // Creating the DOM object + var divElement = document.createElement("div"); + divElement.className = "toastify on " + this.options.className; + + // Positioning toast to left or right + if (this.options.positionLeft === true) { + divElement.className += " toastify-left"; + } else { + divElement.className += " toastify-right"; + } + + // Assigning gravity of element + divElement.className += " " + this.options.gravity; + + if (this.options.backgroundColor) { + divElement.style.background = this.options.backgroundColor; + } + + // Adding the toast message + divElement.innerHTML = this.options.text; + + if (this.options.avatar !== "") { + var avatarElement = document.createElement("img"); + avatarElement.src = this.options.avatar; + + avatarElement.className = "toastify-avatar"; + + if (this.options.positionLeft === true) { + // Adding close icon on the left of content + divElement.appendChild(avatarElement); + } else { + // Adding close icon on the right of content + divElement.insertAdjacentElement("beforeend", avatarElement); + } + } + + // Adding a close icon to the toast + if (this.options.close === true) { + // Create a span for close element + var closeElement = document.createElement("span"); + closeElement.innerHTML = "✖"; + + closeElement.className = "toast-close"; + + // Triggering the removal of toast from DOM on close click + closeElement.addEventListener( + "click", + function(event) { + event.stopPropagation(); + this.removeElement(event.target.parentElement); + window.clearTimeout(event.target.parentElement.timeOutValue); + }.bind(this) + ); + + // Clear timeout while toast is focused + if (this.options.stopOnFocus) { + const self = this; + // stop countdown + divElement.addEventListener( + "mouseover", + function(event) { + window.clearTimeout(event.target.timeOutValue); + } + ) + // add back the timeout + divElement.addEventListener( + "mouseleave", + function() { + divElement.timeOutValue = window.setTimeout( + function() { + // Remove the toast from DOM + self.removeElement(divElement); + }, + self.options.duration + ) + } + ) + } + + //Calculating screen width + var width = window.innerWidth > 0 ? window.innerWidth : screen.width; + + // Adding the close icon to the toast element + // Display on the right if screen width is less than or equal to 360px + if (this.options.positionLeft === true && width > 360) { + // Adding close icon on the left of content + divElement.insertAdjacentElement("afterbegin", closeElement); + } else { + // Adding close icon on the right of content + divElement.appendChild(closeElement); + } + } + + // Adding an on-click destination path + if (typeof this.options.destination !== "undefined") { + divElement.addEventListener( + "click", + function(event) { + event.stopPropagation(); + if (this.options.newWindow === true) { + window.open(this.options.destination, "_blank"); + } else { + window.location = this.options.destination; + } + }.bind(this) + ); + } + + // Returning the generated element + return divElement; + }, + + // Displaying the toast + showToast: function() { + // Creating the DOM object for the toast + var toastElement = this.buildToast(); + + // Getting the root element to with the toast needs to be added + var rootElement; + if (typeof this.options.selector === "undefined") { + rootElement = document.body; + } else { + rootElement = document.getElementById(this.options.selector); + } + + // Validating if root element is present in DOM + if (!rootElement) { + throw "Root element is not defined"; + } + + // Adding the DOM element + rootElement.insertBefore(toastElement, rootElement.firstChild); + + // Repositioning the toasts in case multiple toasts are present + Toastify.reposition(); + + toastElement.timeOutValue = window.setTimeout( + function() { + // Remove the toast from DOM + this.removeElement(toastElement); + }.bind(this), + this.options.duration + ); // Binding `this` for function invocation + + // Supporting function chaining + return this; + }, + + // Removing the element from the DOM + removeElement: function(toastElement) { + // Hiding the element + // toastElement.classList.remove("on"); + toastElement.className = toastElement.className.replace(" on", ""); + + // Removing the element from DOM after transition end + window.setTimeout( + function() { + // Remove the elemenf from the DOM + toastElement.parentNode.removeChild(toastElement); + + // Calling the callback function + this.options.callback.call(toastElement); + + // Repositioning the toasts again + Toastify.reposition(); + }.bind(this), + 400 + ); // Binding `this` for function invocation + }, + }; + + // Positioning the toasts on the DOM + Toastify.reposition = function() { + // Top margins with gravity + var topLeftOffsetSize = { + top: 15, + bottom: 15, + }; + var topRightOffsetSize = { + top: 15, + bottom: 15, + }; + var offsetSize = { + top: 15, + bottom: 15, + }; + + // Get all toast messages on the DOM + var allToasts = document.getElementsByClassName("toastify"); + + var classUsed; + + // Modifying the position of each toast element + for (var i = 0; i < allToasts.length; i++) { + // Getting the applied gravity + if (containsClass(allToasts[i], "toastify-top") === true) { + classUsed = "toastify-top"; + } else { + classUsed = "toastify-bottom"; + } + + var height = allToasts[i].offsetHeight; + classUsed = classUsed.substr(9, classUsed.length-1) + // Spacing between toasts + var offset = 15; + + var width = window.innerWidth > 0 ? window.innerWidth : screen.width; + + // Show toast in center if screen with less than or qual to 360px + if (width <= 360) { + // Setting the position + allToasts[i].style[classUsed] = offsetSize[classUsed] + "px"; + + offsetSize[classUsed] += height + offset; + } else { + if (containsClass(allToasts[i], "toastify-left") === true) { + // Setting the position + allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + "px"; + + topLeftOffsetSize[classUsed] += height + offset; + } else { + // Setting the position + allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + "px"; + + topRightOffsetSize[classUsed] += height + offset; + } + } + } + + // Supporting function chaining + return this; + }; + + function containsClass(elem, yourClass) { + if (!elem || typeof yourClass !== "string") { + return false; + } else if ( + elem.className && + elem.className + .trim() + .split(/\s+/gi) + .indexOf(yourClass) > -1 + ) { + return true; + } else { + return false; + } + } + + // Setting up the prototype for the init object + Toastify.lib.init.prototype = Toastify.lib; + + // Returning the Toastify function to be assigned to the window object/module + return Toastify; +}); diff --git a/themes/default/templates/index.html.ep b/themes/default/templates/index.html.ep index d927f82..fcd4353 100644 --- a/themes/default/templates/index.html.ep +++ b/themes/default/templates/index.html.ep @@ -9,11 +9,9 @@
-
- - - -
+ + + @@ -27,11 +25,9 @@
- + + + @@ -45,11 +41,9 @@
- + + + diff --git a/themes/default/templates/myfiles.html.ep b/themes/default/templates/myfiles.html.ep index eebcecb..32b3d2c 100644 --- a/themes/default/templates/myfiles.html.ep +++ b/themes/default/templates/myfiles.html.ep @@ -59,11 +59,9 @@
- + + + @@ -77,11 +75,9 @@
- + + + @@ -95,11 +91,9 @@
- + + + @@ -117,7 +111,7 @@ - + diff --git a/themes/default/templates/partial/common.js.ep b/themes/default/templates/partial/common.js.ep index 61aa447..5ffe430 100644 --- a/themes/default/templates/partial/common.js.ep +++ b/themes/default/templates/partial/common.js.ep @@ -177,7 +177,7 @@ function link(url, dl, token, modify, only_url) { return [ '', '
', - '
', + '
', '', ' ', '', diff --git a/themes/default/templates/partial/myfiles.js.ep b/themes/default/templates/partial/myfiles.js.ep index 6a81f61..7fd99c1 100644 --- a/themes/default/templates/partial/myfiles.js.ep +++ b/themes/default/templates/partial/myfiles.js.ep @@ -60,12 +60,27 @@ function onCheck(e) { addToShortHash(short+'.'+ext); addToZipHash(short); addToRandomHash(short); + if (!$('#check-all').is(':checked') && isAllChecked()) { + $('#check-all').prop('checked', true); + } } else { + if ($('#check-all').is(':checked')) { + $('#check-all').prop('checked', false); + } rmFromShortHash(short+'.'+ext); rmFromZipHash(short); rmFromRandomHash(short); } } +function isAllChecked() { + var allChecked = true; + $('.ckbx').each(function(index) { + if (!$(this).is(':checked')) { + allChecked = false; + } + }); + return allChecked; +} function delView(del_at_view) { return (del_at_view) ? '' : ''; } @@ -117,6 +132,21 @@ function modifyDelay() { } }); } +function checkAll(e) { + var checked = $('#check-all').is(':checked'); + $('.ckbx').each(function(index) { + var element = $(this); + if (checked) { + if (!element.is(':checked')) { + element.click(); + } + } else { + if (element.is(':checked')) { + element.click(); + } + } + }); +} function populateFilesTable() { var localImages = localStorage.getItem('images'); if (localImages === null) { diff --git a/themes/default/templates/partial/navbar.html.ep b/themes/default/templates/partial/navbar.html.ep index d294a7d..7681bc8 100644 --- a/themes/default/templates/partial/navbar.html.ep +++ b/themes/default/templates/partial/navbar.html.ep @@ -50,20 +50,6 @@ % } -
<%= l('File name') %> <%= l('View link') %> <%= l('Counter') %>