Commit 1d9c1d9d authored by Luc Didry's avatar Luc Didry
Browse files

Merge branch 'development' into 'master'

Time for a new release (0.11.6)

Closes #105

See merge request !62
parents 4a37e722 b701575e
Pipeline #185969 canceled with stages
in 9 minutes and 17 seconds
.ash_history
.git
.cpan
.cpanm
/files/
/local/
/lutim.conf
/lutim.db
\ No newline at end of file
......@@ -18,3 +18,7 @@ tmp/*
.zanata-cache/*
cover_db/*
*.passwd
.ash_history
.vscode/
.DS_Store
.cpanm/
\ No newline at end of file
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@<project-version>.*</project-version>@<project-version>$CI_COMMIT_REF_SLUG</project-version>@" -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
......@@ -17,3 +17,5 @@
* Alexis Clairet (<https://github.com/Turboconnard>), paste image to upload ability
* ButterflyOfFire (<https://mastodon.tetaneutral.net/@BoF>), arabic translation
* Alexander Sapozhnikov (<http://shoorick.ru>), russian translation
* Arnaud de Mouhy, Docker support
* Armando Lüscher (<https://noplanman.ch/>)
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
......
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
......@@ -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
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
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
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: <changeme>
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: <changeme>
MYSQL_DATABASE: lutim_minion
configs:
lutim.conf:
file: ./lutim.conf
\ No newline at end of file
#!/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
#!/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
#!/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
#!/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
......@@ -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 images 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 doesnt 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 doesnt 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] Cant 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 doesnt 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 doesnt 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');
......
......@@ -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<Arguments> : 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<Purpose> : 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<Purpose> : 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<Returns> : integer
......@@ -241,7 +241,7 @@ sub to_hash {
=item B<Arguments> : none
=item B<Purpose> : counts the number of record which path is null
=item B<Purpose> : counts the number of records whose path is null
=item B<Returns> : integer
......@@ -255,7 +255,7 @@ sub to_hash {
=item B<Arguments> : none
=item B<Purpose> : counts the number of record which path is not null
=item B<Purpose> : counts the number of records whose path is not null
=item B<Returns> : integer
......
......@@ -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 <butterflyoffire@protonmail.com>\n"
"Language-Team: Arabic <https://weblate.framasoft.org/projects/lutim/"
"development/ar/>\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 <butterflyoffire@protonmail.com>\n"
"Language-Team: Arabic <butterflyoffire+lutim@protonmail.com>\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</a> 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 ""