mirror of
https://framagit.org/fiat-tux/hat-softwares/lutim.git
synced 2026-03-28 17:42:54 +01:00
Compare commits
56 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
86b3652471 | ||
|
|
c29acb8944 | ||
|
|
564a0ef69d | ||
|
|
fe07945af7 | ||
|
|
f27cf293dd | ||
|
|
0295ba3666 | ||
|
|
485436aa67 | ||
|
|
0e0e6da677 | ||
|
|
781e96c073 | ||
|
|
fb610e1a80 | ||
|
|
13b7ece5e2 | ||
|
|
7446edba48 | ||
|
|
35eb60a27f | ||
|
|
0b1f21be31 | ||
|
|
b1e1e88af4 | ||
|
|
68d3ddb61a | ||
|
|
b6ac7d2818 | ||
|
|
da36aad520 | ||
|
|
d00f151a2e | ||
|
|
9c79c9a392 | ||
|
|
eb575519ed | ||
|
|
125bda1687 | ||
|
|
b5836d88bb | ||
|
|
8daef83846 | ||
|
|
883004b7b6 | ||
|
|
5a5e629e29 | ||
|
|
6daabaf054 | ||
|
|
f94d72f978 | ||
|
|
41abd109b6 | ||
|
|
91d2be631b | ||
|
|
56b87bb7c7 | ||
|
|
ab48e8976f | ||
|
|
fa5c3e465b | ||
|
|
474680e600 | ||
|
|
b19a3f6005 | ||
|
|
8e7065e714 | ||
|
|
2529234df9 | ||
|
|
5ad1caea68 | ||
|
|
ef1297be7d | ||
|
|
d6b59c45a6 | ||
|
|
59000d53d6 | ||
|
|
4e1d36ce60 | ||
|
|
bcb0710fde | ||
|
|
799124a58d | ||
|
|
c9a6fd2be4 | ||
|
|
9958a9cca9 | ||
|
|
6b012b7382 | ||
|
|
6921496a19 | ||
|
|
6ab6b76c8f | ||
|
|
8b9791b6b4 | ||
|
|
6f43566664 | ||
|
|
e7e02931ac | ||
|
|
210a2a8df2 | ||
|
|
41e5f292eb | ||
|
|
72f0469674 | ||
|
|
a842311304 |
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
||||
zanata.xml merge=ours
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
@@ -13,5 +13,5 @@ themes/*
|
||||
themes/default/templates/data.html.ep
|
||||
themes/default/templates/raw.html.ep
|
||||
themes/default/templates/stats.json.ep
|
||||
themes/default/public/packed/*
|
||||
tmp/*
|
||||
.zanata-cache/*
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## Main developers
|
||||
|
||||
* Luc Didry, aka Sky (<http://www.fiat-tux.fr>), core developer, @framasky on [Twitter](https://twitter.com/framasky) and on [Diaspora*](https://framasphere.org/public/framasky)
|
||||
* Luc Didry, aka Sky (<http://www.fiat-tux.fr>), core developer, @framasky on [Mastodon](https://framapiaf.org/@framasky) and on [Diaspora*](https://framasphere.org/public/framasky)
|
||||
* Dattaz (<http://dattaz.fr>), webapp developer, [@dat_taz](https://twitter.com/dat_taz)
|
||||
|
||||
## Contributors
|
||||
@@ -15,3 +15,5 @@
|
||||
* Thor77 (<http://thor77.org>), german translation, among other things
|
||||
* Quentin Pagès, occitan translation
|
||||
* 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
|
||||
|
||||
48
CHANGELOG
48
CHANGELOG
@@ -1,5 +1,53 @@
|
||||
Revision history for Lutim
|
||||
|
||||
0.9.5 2018-03-11
|
||||
- Add russian translation, thanks to Alexander Sapozhnikov
|
||||
|
||||
0.9.4 2018-03-11
|
||||
- Replace Twitter account URL with Mastodon one
|
||||
|
||||
0.9.3 2018-03-11
|
||||
- Use woff2 format for HennyPenny font
|
||||
|
||||
0.9.2 2018-03-09
|
||||
- Fix langage drop-down
|
||||
- Allow to use HTML in broadcast message
|
||||
- Remove old targets from Makefile
|
||||
|
||||
0.9.1 2018-03-09
|
||||
- Fix default setting bug (db_path)
|
||||
|
||||
0.9.0 2018-03-09
|
||||
- Added partial arabic translation (thx to ButterflyOfFire)
|
||||
- Default theme is now non-fluid (ie don't take all the width of the screen)
|
||||
- Use Photoswipe for the gallery instead of Unite gallery
|
||||
- Use Zanata for translations (https://trad.framasoft.org)
|
||||
- Add an option to personnalize proposed retention delays
|
||||
- Use random Initialization Vector for encryption
|
||||
- Use Mojo::SQLite instead of ORLite
|
||||
- Fix various bugs
|
||||
|
||||
0.8.8 2018-02-07
|
||||
- Fix security issues, thanks to SecuNinja
|
||||
|
||||
0.8.7 2017-12-22
|
||||
- Fix bug if dbtype not configured in lutim.conf
|
||||
|
||||
0.8.6 2017-11-18
|
||||
- Fix bug resulting in no EXIF tags deletion
|
||||
|
||||
0.8.5 2017-07-09
|
||||
- Fix Henny Penny font path in css
|
||||
|
||||
0.8.4 2017-06-24
|
||||
- Mitigate a bug using the same empty record twice
|
||||
|
||||
0.8.3 2017-06-15
|
||||
- Fix the donuts charts in the /stats page.
|
||||
|
||||
0.8.2 2017-06-14
|
||||
- Enforce Mojolicious::Plugin::AssetPack version
|
||||
|
||||
0.8.1 2017-06-13
|
||||
- Fix #46
|
||||
|
||||
|
||||
30
Makefile
30
Makefile
@@ -1,20 +1,21 @@
|
||||
EXTRACTDIR=-D lib -D themes/default/templates
|
||||
EN=themes/default/lib/Lutim/I18N/en.po
|
||||
FR=themes/default/lib/Lutim/I18N/fr.po
|
||||
DE=themes/default/lib/Lutim/I18N/de.po
|
||||
ES=themes/default/lib/Lutim/I18N/es.po
|
||||
OC=themes/default/lib/Lutim/I18N/oc.po
|
||||
XGETTEXT=carton exec local/bin/xgettext.pl
|
||||
POT=themes/default/lib/Lutim/I18N/lutim.pot
|
||||
XGETTEXT=carton exec local/bin/xgettext.pl -u
|
||||
CARTON=carton exec
|
||||
LUTIM=script/lutim
|
||||
REAL_LUTIM=script/application
|
||||
|
||||
locales:
|
||||
$(XGETTEXT) $(EXTRACTDIR) -o $(EN) 2>/dev/null
|
||||
$(XGETTEXT) $(EXTRACTDIR) -o $(FR) 2>/dev/null
|
||||
$(XGETTEXT) $(EXTRACTDIR) -o $(DE) 2>/dev/null
|
||||
$(XGETTEXT) $(EXTRACTDIR) -o $(ES) 2>/dev/null
|
||||
$(XGETTEXT) $(EXTRACTDIR) -o $(OC) 2>/dev/null
|
||||
$(XGETTEXT) $(EXTRACTDIR) -o $(POT) 2>/dev/null
|
||||
|
||||
push-locales: locales
|
||||
zanata-cli -q -B push
|
||||
|
||||
pull-locales:
|
||||
zanata-cli -q -B pull
|
||||
|
||||
stats-locales:
|
||||
zanata-cli -q stats
|
||||
|
||||
podcheck:
|
||||
podchecker lib/Lutim/DB/Image.pm
|
||||
@@ -30,16 +31,13 @@ test: podcheck test-sqlite test-pg
|
||||
clean:
|
||||
rm -rf lutim.db files/
|
||||
|
||||
rmassets:
|
||||
rm -rf themes/default/public/packed/*
|
||||
|
||||
dev: rmassets
|
||||
dev:
|
||||
$(CARTON) morbo $(LUTIM) --listen http://0.0.0.0:3000 --watch lib/ --watch script/ --watch themes/ --watch lutim.conf
|
||||
|
||||
devlog:
|
||||
multitail log/development.log
|
||||
|
||||
prod: rmassets
|
||||
prod:
|
||||
$(CARTON) hypnotoad -f $(LUTIM)
|
||||
|
||||
prodlog:
|
||||
|
||||
@@ -64,6 +64,6 @@ It uses:
|
||||
* [Moment.js](http://momentjs.com/) for displaying real dates instead of unix timestamps.
|
||||
* [Fontello](http://fontello.com/) and the [markdown font](https://github.com/dcurtis/markdown-mark/) for the icons, licenses for the fontello icons fonts are in `public/font/LICENSE.txt`
|
||||
* [Henny Penny](https://www.google.com/fonts/specimen/Henny+Penny) font designed by Olga Umpeleva for [Brownfox](http://brownfox.org)
|
||||
* [Unite gallery](http://unitegallery.net/) for the gallery
|
||||
* [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
|
||||
|
||||
7
cpanfile
7
cpanfile
@@ -1,18 +1,17 @@
|
||||
requires 'Mojolicious', '>= 7.31';
|
||||
requires 'EV';
|
||||
requires 'IO::Socket::SSL';
|
||||
requires 'Net::SSLeay', '>= 1.81';
|
||||
requires 'Data::Validate::URI';
|
||||
requires 'Net::Domain::TLD', '>= 1.73'; # Must have the last version to handle (at least) .xyz and .link
|
||||
requires 'Mojo::Pg';
|
||||
requires 'Mojo::SQLite';
|
||||
requires 'Mojolicious::Plugin::I18N';
|
||||
requires 'Mojolicious::Plugin::AssetPack', '>= 1.44';
|
||||
requires 'Mojolicious::Plugin::DebugDumperHelper';
|
||||
requires 'Mojolicious::Plugin::PgURLHelper';
|
||||
requires 'Mojolicious::Plugin::StaticCache';
|
||||
requires "Minion", "== 4.06";
|
||||
requires 'Minion::Backend::SQLite', "== 0.009";
|
||||
requires 'CSS::Minifier::XS';
|
||||
requires 'JavaScript::Minifier::XS';
|
||||
requires 'ORLite';
|
||||
requires 'Text::Unidecode';
|
||||
requires 'DateTime';
|
||||
requires 'Filesys::DiskUsage';
|
||||
|
||||
1626
cpanfile.snapshot
1626
cpanfile.snapshot
File diff suppressed because it is too large
Load Diff
39
lib/Lutim.pm
39
lib/Lutim.pm
@@ -35,6 +35,7 @@ sub startup {
|
||||
tweet_card_via => '@framasky',
|
||||
max_file_size => 10*1024*1024,
|
||||
https => 0,
|
||||
proposed_delays => '0,1,7,30,365',
|
||||
default_delay => 0,
|
||||
max_delay => 0,
|
||||
token_length => 24,
|
||||
@@ -42,8 +43,10 @@ sub startup {
|
||||
thumbnail_size => 100,
|
||||
theme => 'default',
|
||||
dbtype => 'sqlite',
|
||||
db_path => 'lutim.db',
|
||||
max_files_in_zip => 15,
|
||||
minion => {
|
||||
prefix => '/',
|
||||
minion => {
|
||||
enabled => 0,
|
||||
dbtype => 'sqlite',
|
||||
db_path => 'minion.db'
|
||||
@@ -67,16 +70,18 @@ sub startup {
|
||||
}
|
||||
push @{$self->renderer->paths}, $self->home->rel_file('themes/default/templates');
|
||||
push @{$self->static->paths}, $self->home->rel_file('themes/default/public');
|
||||
|
||||
# Internationalization
|
||||
my $lib = $self->home->rel_file('themes/'.$config->{theme}.'/lib');
|
||||
eval qq(use lib "$lib");
|
||||
$self->plugin('I18N');
|
||||
|
||||
# Compressed assets
|
||||
$self->plugin('AssetPack' => { pipes => [qw(Combine)] });
|
||||
# Cache static files
|
||||
$self->plugin('StaticCache');
|
||||
|
||||
# Helpers
|
||||
$self->plugin('Lutim::Plugin::Helpers');
|
||||
$self->plugin('Lutim::Plugin::Lang');
|
||||
|
||||
# Minion
|
||||
if ($config->{minion}->{enabled}) {
|
||||
@@ -136,20 +141,6 @@ sub startup {
|
||||
delete @{$wait_for_it}{grep { time - $wait_for_it->{$_} > $c->config->{anti_flood_delay} } keys %{$wait_for_it}} if (defined($wait_for_it));
|
||||
}
|
||||
);
|
||||
$self->hook(after_static => sub {
|
||||
my $c = shift;
|
||||
$c->res->headers->cache_control('max-age=2592000, must-revalidate');
|
||||
});
|
||||
|
||||
$self->asset->store->paths($self->static->paths);
|
||||
$self->asset->process('index.css' => ('css/bootstrap.min.css', 'css/fontello-embedded.css', 'css/animation.css', 'css/uploader.css', 'css/hennypenny.css', 'css/lutim.css', 'css/markdown.css'));
|
||||
$self->asset->process('stats.css' => ('css/bootstrap.min.css', 'css/fontello-embedded.css', 'css/morris-0.4.3.min.css', 'css/hennypenny.css', 'css/lutim.css'));
|
||||
$self->asset->process('about.css' => ('css/bootstrap.min.css', 'css/fontello-embedded.css', 'css/hennypenny.css', 'css/lutim.css'));
|
||||
$self->asset->process('gallery.css' => ('/gallery/css/unite-gallery.css', '/gallery/themes/default/ug-theme-default.css'));
|
||||
|
||||
$self->asset->process('index.js' => ('js/bootstrap.min.js', 'js/lutim.js', 'js/dmuploader.min.js'));
|
||||
$self->asset->process('stats.js' => ('js/bootstrap.min.js', 'js/lutim.js', 'js/raphael-min.js', 'js/morris-0.4.3.min.js', 'js/stats.js'));
|
||||
$self->asset->process('freeze.js' => ('js/jquery-2.1.0.min.js', 'js/freezeframe.min.js'));
|
||||
|
||||
$self->defaults(layout => 'default');
|
||||
|
||||
@@ -180,6 +171,10 @@ sub startup {
|
||||
to('Controller#stats')->
|
||||
name('stats');
|
||||
|
||||
$r->get('/lang/:l')->
|
||||
to('Controller#change_lang')->
|
||||
name('lang');
|
||||
|
||||
$r->get('/partial/:file' => sub {
|
||||
my $c = shift;
|
||||
$c->render(
|
||||
@@ -230,14 +225,24 @@ sub startup {
|
||||
to('Controller#get_counter')->
|
||||
name('counter');
|
||||
|
||||
$r->get('/about/(:short).(:f)')->
|
||||
to('Controller#about_img')->
|
||||
name('about_img');
|
||||
|
||||
$r->get('/about/:short/(:key).(:f)')->
|
||||
to('Controller#about_img')->
|
||||
name('about_img');
|
||||
|
||||
$r->get('/(:short).(:f)')->
|
||||
to('Controller#short')->
|
||||
name('short');
|
||||
|
||||
$r->get('/:short')->
|
||||
to('Controller#short');
|
||||
|
||||
$r->get('/:short/(:key).(:f)')->
|
||||
to('Controller#short');
|
||||
|
||||
$r->get('/:short/:key')->
|
||||
to('Controller#short');
|
||||
}
|
||||
|
||||
@@ -41,10 +41,16 @@ use Locale::Maketext::Lexicon {
|
||||
_style => 'gettext',
|
||||
'*' => [
|
||||
Gettext => dirname(__FILE__) . '/I18N/*.po',
|
||||
Gettext => dirname(__FILE__) . '/../../../default/lib/Lutim/I18N/*.po',
|
||||
Gettext => $app_dir . 'themes/default/lib/Lutim/I18N/*.po',
|
||||
]
|
||||
};
|
||||
|
||||
use vars qw($app_dir);
|
||||
BEGIN {
|
||||
use Cwd;
|
||||
my $app_dir = getcwd;
|
||||
}
|
||||
|
||||
1;
|
||||
EOF
|
||||
|
||||
@@ -58,6 +64,7 @@ FR=lib/Lutim/I18N/fr.po
|
||||
DE=lib/Lutim/I18N/de.po
|
||||
ES=lib/Lutim/I18N/es.po
|
||||
OC=lib/Lutim/I18N/oc.po
|
||||
AR=lib/Lutim/I18N/ar.po
|
||||
SEDOPTS=-e "s\@SOME DESCRIPTIVE TITLE\@Lutim language file\@" \\
|
||||
-e "s\@YEAR THE PACKAGE'S COPYRIGHT HOLDER\@2015 Luc Didry\@" \\
|
||||
-e "s\@CHARSET\@utf8\@" \\
|
||||
@@ -74,6 +81,7 @@ locales:
|
||||
\$(XGETTEXT) -D templates -D ../default/templates -o \$(DE) 2>/dev/null
|
||||
\$(XGETTEXT) -D templates -D ../default/templates -o \$(ES) 2>/dev/null
|
||||
\$(XGETTEXT) -D templates -D ../default/templates -o \$(OC) 2>/dev/null
|
||||
\$(XGETTEXT) -D templates -D ../default/templates -o \$(AR) 2>/dev/null
|
||||
sed \$(SEDOPTS) -i \$(EN)
|
||||
sed \$(SEDOPTS2) -i \$(EN)
|
||||
sed \$(SEDOPTS) -i \$(FR)
|
||||
@@ -83,7 +91,9 @@ locales:
|
||||
sed \$(SEDOPTS) -i \$(ES)
|
||||
sed \$(SEDOPTS2) -i \$(ES)
|
||||
sed \$(SEDOPTS) -i \$(OC)
|
||||
sed \$(SEDOPTS2) -i \$(OC)
|
||||
sed \$(SEDOPTS) -i \$(OC)
|
||||
sed \$(SEDOPTS2) -i \$(AR)
|
||||
sed \$(SEDOPTS2) -i \$(AR)
|
||||
EOF
|
||||
|
||||
open $f, '>', File::Spec->catfile($home, 'Makefile') or die "Unable to open $home/Makefile: $!";
|
||||
|
||||
@@ -45,6 +45,19 @@ sub about {
|
||||
shift->render(template => 'about');
|
||||
}
|
||||
|
||||
sub change_lang {
|
||||
my $c = shift;
|
||||
my $l = $c->param('l');
|
||||
|
||||
$c->cookie(lutim_lang => $l, { path => $c->config('prefix') });
|
||||
|
||||
if ($c->req->headers->referrer) {
|
||||
return $c->redirect_to($c->req->headers->referrer);
|
||||
} else {
|
||||
return $c->redirect_to('/');
|
||||
}
|
||||
}
|
||||
|
||||
sub stats {
|
||||
my $c = shift;
|
||||
|
||||
@@ -71,6 +84,31 @@ sub infos {
|
||||
);
|
||||
}
|
||||
|
||||
sub about_img {
|
||||
my $c = shift;
|
||||
my $short = $c->param('short');
|
||||
|
||||
my $image = Lutim::DB::Image->new(app => $c->app, short => $short);
|
||||
if ($image->enabled && $image->path) {
|
||||
return $c->render(
|
||||
json => {
|
||||
success => true,
|
||||
data => {
|
||||
width => $image->width,
|
||||
height => $image->height,
|
||||
}
|
||||
}
|
||||
);
|
||||
} else {
|
||||
return $c->render(
|
||||
json => {
|
||||
success => false,
|
||||
msg => $c->l('Unable to find the image %1.', $short)
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
sub webapp {
|
||||
my $c = shift;
|
||||
|
||||
@@ -234,7 +272,7 @@ sub delete {
|
||||
}
|
||||
},
|
||||
any => sub {
|
||||
shift->render_not_found;
|
||||
$c->helpers->reply->not_found;
|
||||
}
|
||||
);
|
||||
}
|
||||
@@ -384,29 +422,31 @@ sub add {
|
||||
|
||||
}
|
||||
|
||||
unless ((defined($keep_exif) && $keep_exif) || $mediatype eq 'image/svg+xml' || $mediatype !~ m#image/(x-)?xcf# || $mediatype ne 'image/webp') {
|
||||
# Remove the EXIF tags
|
||||
my $data = new IO::Scalar \$upload->slurp();
|
||||
my $et = new Image::ExifTool;
|
||||
unless (defined($keep_exif) && $keep_exif) {
|
||||
if ($mediatype ne 'image/svg+xml' && $mediatype !~ m#image/(x-)?xcf# && $mediatype ne 'image/webp') {
|
||||
# Remove the EXIF tags
|
||||
my $data = new IO::Scalar \$upload->slurp();
|
||||
my $et = new Image::ExifTool;
|
||||
|
||||
# Use $data in Image::ExifTool object
|
||||
$et->ExtractInfo($data);
|
||||
# Remove all metadata
|
||||
$et->SetNewValue('*', undef);
|
||||
# Use $data in Image::ExifTool object
|
||||
$et->ExtractInfo($data);
|
||||
# Remove all metadata
|
||||
$et->SetNewValue('*', undef);
|
||||
|
||||
# Create a temporary IO::Scalar to write into
|
||||
my $temp;
|
||||
my $a = new IO::Scalar \$temp;
|
||||
$et->WriteInfo($data, $a);
|
||||
# Create a temporary IO::Scalar to write into
|
||||
my $temp;
|
||||
my $a = new IO::Scalar \$temp;
|
||||
$et->WriteInfo($data, $a);
|
||||
|
||||
# Update the uploaded file with it's no-tags clone
|
||||
$data = Mojo::Asset::Memory->new->add_chunk($temp);
|
||||
$upload->asset($data);
|
||||
# Update the uploaded file with it's no-tags clone
|
||||
$data = Mojo::Asset::Memory->new->add_chunk($temp);
|
||||
$upload->asset($data);
|
||||
}
|
||||
}
|
||||
|
||||
my $key;
|
||||
my ($key, $iv);
|
||||
if ($c->param('crypt') || $c->config('always_encrypt')) {
|
||||
($upload, $key) = $c->crypt($upload, $filename);
|
||||
($upload, $key, $iv) = $c->crypt($upload, $filename);
|
||||
}
|
||||
$upload->move_to($path);
|
||||
|
||||
@@ -421,6 +461,7 @@ sub add {
|
||||
->created_by($ip)
|
||||
->width($width)
|
||||
->height($height)
|
||||
->iv($iv)
|
||||
->write;
|
||||
|
||||
# Log image creation
|
||||
@@ -512,7 +553,9 @@ sub short {
|
||||
my $short = $c->param('short');
|
||||
my $touit = $c->param('t');
|
||||
my $key = $c->param('key');
|
||||
my $thumb = $c->param('thumb');
|
||||
my $thumb;
|
||||
$thumb = '' if defined $c->param('thumb');
|
||||
$thumb = $c->param('width') if defined $c->param('width');
|
||||
my $dl = (defined($c->param('dl'))) ? 'attachment' : 'inline';
|
||||
|
||||
my $image = Lutim::DB::Image->new(app => $c->app, short => $short);
|
||||
@@ -532,7 +575,7 @@ sub short {
|
||||
}
|
||||
|
||||
my $test;
|
||||
if (defined($touit)) {
|
||||
if (defined($touit) && $image->mediatype !~ m/svg/) {
|
||||
$test = 1;
|
||||
my $short = $image->short;
|
||||
$short .= '/'.$key if (defined($key));
|
||||
@@ -575,12 +618,7 @@ sub short {
|
||||
);
|
||||
return $c->redirect_to('/');
|
||||
} else {
|
||||
my $expires = ($image->delete_at_day) ? $image->delete_at_day : 360;
|
||||
my $dt = DateTime->from_epoch( epoch => $expires * 86400 + $image->created_at);
|
||||
$dt->set_time_zone('GMT');
|
||||
$expires = $dt->strftime("%a, %d %b %Y %H:%M:%S GMT");
|
||||
|
||||
$test = $c->render_file($im_loaded, $image->filename, $image->path, $image->mediatype, $dl, $expires, $image->delete_at_first_view, $key, $thumb);
|
||||
$test = $c->render_file($im_loaded, $image, $dl, $key, $thumb);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -618,7 +656,7 @@ sub short {
|
||||
return $c->redirect_to('/');
|
||||
} else {
|
||||
# Image never existed
|
||||
$c->render_not_found;
|
||||
$c->helpers->reply->not_found;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@ has 'last_access_at';
|
||||
has 'mod_token';
|
||||
has 'width';
|
||||
has 'height';
|
||||
has 'iv';
|
||||
has 'app';
|
||||
|
||||
=head1 NAME
|
||||
@@ -64,6 +65,8 @@ Have a look at Lutim::DB::Image::SQLite's code: it's simple and may be more unde
|
||||
|
||||
=item B<height> : integer
|
||||
|
||||
=item B<iv> : initialization vector for the file encryption
|
||||
|
||||
=item B<app> : a mojolicious object
|
||||
|
||||
=back
|
||||
@@ -125,7 +128,8 @@ sub to_hash {
|
||||
last_access_at => $c->last_access_at,
|
||||
mod_token => $c->mod_token,
|
||||
width => $c->width,
|
||||
height => $c->height
|
||||
height => $c->height,
|
||||
height => $c->iv
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -69,7 +69,8 @@ sub select_created_after {
|
||||
sub select_empty {
|
||||
my $c = shift;
|
||||
|
||||
my $record = $c->app->pg->db->query('SELECT * FROM lutim WHERE path IS NULL LIMIT 1')->hashes->first;
|
||||
my $record = $c->app->pg->db->query('SELECT * FROM lutim WHERE path IS NULL')->hashes->shuffle->first;
|
||||
$c->app->pg->db->query('UPDATE lutim SET path = ? WHERE short = ?', 'used', $record->{short});
|
||||
|
||||
$c = $c->_slurp($record);
|
||||
|
||||
@@ -80,9 +81,9 @@ sub write {
|
||||
my $c = shift;
|
||||
|
||||
if ($c->record) {
|
||||
$c->app->pg->db->query('UPDATE lutim SET counter = ?, created_at = ?, created_by = ?, delete_at_day = ?, delete_at_first_view = ?, enabled = ?, filename = ?, footprint = ?, height = ?, last_access_at = ?, mediatype = ?, mod_token = ?, path = ?, short = ?, width = ? WHERE short = ?', $c->counter, $c->created_at, $c->created_by, $c->delete_at_day, $c->delete_at_first_view, $c->enabled, $c->filename, $c->footprint, $c->height, $c->last_access_at, $c->mediatype, $c->mod_token, $c->path, $c->short, $c->width, $c->short);
|
||||
$c->app->pg->db->query('UPDATE lutim SET counter = ?, created_at = ?, created_by = ?, delete_at_day = ?, delete_at_first_view = ?, enabled = ?, filename = ?, footprint = ?, height = ?, last_access_at = ?, mediatype = ?, mod_token = ?, path = ?, short = ?, width = ?, iv = ? WHERE short = ?', $c->counter, $c->created_at, $c->created_by, $c->delete_at_day, $c->delete_at_first_view, $c->enabled, $c->filename, $c->footprint, $c->height, $c->last_access_at, $c->mediatype, $c->mod_token, $c->path, $c->short, $c->width, $c->iv, $c->short);
|
||||
} else {
|
||||
$c->app->pg->db->query('INSERT INTO lutim (counter, created_at, created_by, delete_at_day, delete_at_first_view, enabled, filename, footprint, height, last_access_at, mediatype, mod_token, path, short, width) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $c->counter, $c->created_at, $c->created_by, $c->delete_at_day, $c->delete_at_first_view, $c->enabled, $c->filename, $c->footprint, $c->height, $c->last_access_at, $c->mediatype, $c->mod_token, $c->path, $c->short, $c->width);
|
||||
$c->app->pg->db->query('INSERT INTO lutim (counter, created_at, created_by, delete_at_day, delete_at_first_view, enabled, filename, footprint, height, last_access_at, mediatype, mod_token, path, short, width, iv) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $c->counter, $c->created_at, $c->created_by, $c->delete_at_day, $c->delete_at_first_view, $c->enabled, $c->filename, $c->footprint, $c->height, $c->last_access_at, $c->mediatype, $c->mod_token, $c->path, $c->short, $c->width, $c->iv);
|
||||
$c->record(1);
|
||||
}
|
||||
|
||||
@@ -219,6 +220,7 @@ sub _slurp {
|
||||
$c->mod_token($image->{mod_token});
|
||||
$c->width($image->{width});
|
||||
$c->height($image->{height});
|
||||
$c->iv($image->{iv});
|
||||
|
||||
$c->record(1);
|
||||
}
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
|
||||
package Lutim::DB::Image::SQLite;
|
||||
use Mojo::Base 'Lutim::DB::Image';
|
||||
use Lutim::DB::SQLite;
|
||||
use Mojo::Collection 'c';
|
||||
|
||||
has 'record';
|
||||
has 'record' => 0;
|
||||
|
||||
sub new {
|
||||
my $c = shift;
|
||||
@@ -19,13 +18,10 @@ sub accessed {
|
||||
my $c = shift;
|
||||
my $time = shift;
|
||||
|
||||
$c->record->update(
|
||||
counter => $c->counter + 1,
|
||||
last_access_at => $time
|
||||
);
|
||||
|
||||
$c->counter($c->record->counter);
|
||||
$c->last_access_at($c->record->last_access_at);
|
||||
$c->app->sqlite->db->query('UPDATE lutim SET counter = counter + 1, last_access_at = ? WHERE short = ?', $time, $c->short);
|
||||
my $h = $c->app->sqlite->db->query('SELECT counter, last_access_at FROM lutim WHERE short = ?', $c->short)->hashes->first;
|
||||
$c->counter($h->{counter});
|
||||
$c->last_access_at($h->{last_access_at});
|
||||
|
||||
return $c;
|
||||
}
|
||||
@@ -37,9 +33,9 @@ sub count_delete_at_day_endis {
|
||||
my $created = shift;
|
||||
|
||||
if (defined $created) {
|
||||
return Lutim::DB::SQLite::Lutim->count('WHERE path IS NOT NULL AND delete_at_day = ? AND enabled = ? AND created_at < ?', $day, $enabled, $created);
|
||||
return $c->app->sqlite->db->query('SELECT count(short) AS count FROM lutim WHERE path IS NOT NULL AND delete_at_day = ? AND enabled = ? AND created_at < ?', $day, $enabled, $created)->hashes->first->{count};
|
||||
} else {
|
||||
return Lutim::DB::SQLite::Lutim->count('WHERE path IS NOT NULL AND delete_at_day = ? AND enabled = ?', $day, $enabled);
|
||||
return $c->app->sqlite->db->query('SELECT count(short) AS count FROM lutim WHERE path IS NOT NULL AND delete_at_day = ? AND enabled = ?', $day, $enabled)->hashes->first->{count};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +43,7 @@ sub count_created_before {
|
||||
my $c = shift;
|
||||
my $time = shift;
|
||||
|
||||
return Lutim::DB::SQLite::Lutim->count('WHERE path IS NOT NULL AND created_at < ?', $time);
|
||||
return $c->app->sqlite->db->query('SELECT count(short) AS count FROM lutim WHERE path IS NOT NULL AND created_at < ?', $time)->hashes->first->{count};
|
||||
}
|
||||
|
||||
sub select_created_after {
|
||||
@@ -56,15 +52,17 @@ sub select_created_after {
|
||||
|
||||
my @images;
|
||||
|
||||
my @records = Lutim::DB::SQLite::Lutim->select('WHERE path IS NOT NULL AND created_at >= ?', $time);
|
||||
my $records = $c->app->sqlite->db->query('SELECT * FROM lutim WHERE path IS NOT NULL AND created_at >= ?', $time)->hashes;
|
||||
|
||||
for my $e (@records) {
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->record($e);
|
||||
$i->_slurp;
|
||||
$records->each(
|
||||
sub {
|
||||
my ($e, $num) = @_;
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->_slurp($e);
|
||||
|
||||
push @images, $i;
|
||||
}
|
||||
push @images, $i;
|
||||
}
|
||||
);
|
||||
|
||||
return c(@images);
|
||||
}
|
||||
@@ -72,10 +70,10 @@ sub select_created_after {
|
||||
sub select_empty {
|
||||
my $c = shift;
|
||||
|
||||
my @records = Lutim::DB::SQLite::Lutim->select('WHERE path IS NULL LIMIT 1');
|
||||
my $record = $c->app->sqlite->db->query('SELECT * FROM lutim WHERE path IS NULL')->hashes->shuffle->first;
|
||||
$c->app->sqlite->db->query('UPDATE lutim SET path = ? WHERE short = ?', 'used', $record->{short});
|
||||
|
||||
$c->record($records[0]);
|
||||
$c = $c->_slurp;
|
||||
$c = $c->_slurp($record);
|
||||
|
||||
return $c;
|
||||
}
|
||||
@@ -84,42 +82,10 @@ sub write {
|
||||
my $c = shift;
|
||||
|
||||
if ($c->record) {
|
||||
$c->record->update(
|
||||
counter => $c->counter,
|
||||
created_at => $c->created_at,
|
||||
created_by => $c->created_by,
|
||||
delete_at_day => $c->delete_at_day,
|
||||
delete_at_first_view => $c->delete_at_first_view,
|
||||
enabled => $c->enabled,
|
||||
filename => $c->filename,
|
||||
footprint => $c->footprint,
|
||||
height => $c->height,
|
||||
last_access_at => $c->last_access_at,
|
||||
mediatype => $c->mediatype,
|
||||
mod_token => $c->mod_token,
|
||||
path => $c->path,
|
||||
short => $c->short,
|
||||
width => $c->width
|
||||
);
|
||||
$c->app->sqlite->db->query('UPDATE lutim SET counter = ?, created_at = ?, created_by = ?, delete_at_day = ?, delete_at_first_view = ?, enabled = ?, filename = ?, footprint = ?, height = ?, last_access_at = ?, mediatype = ?, mod_token = ?, path = ?, short = ?, width = ?, iv = ? WHERE short = ?', $c->counter, $c->created_at, $c->created_by, $c->delete_at_day, $c->delete_at_first_view, $c->enabled, $c->filename, $c->footprint, $c->height, $c->last_access_at, $c->mediatype, $c->mod_token, $c->path, $c->short, $c->width, $c->iv, $c->short);
|
||||
} else {
|
||||
my $record = Lutim::DB::SQLite::Lutim->create(
|
||||
counter => $c->counter,
|
||||
created_at => $c->created_at,
|
||||
created_by => $c->created_by,
|
||||
delete_at_day => $c->delete_at_day,
|
||||
delete_at_first_view => $c->delete_at_first_view,
|
||||
enabled => $c->enabled,
|
||||
filename => $c->filename,
|
||||
footprint => $c->footprint,
|
||||
height => $c->height,
|
||||
last_access_at => $c->last_access_at,
|
||||
mediatype => $c->mediatype,
|
||||
mod_token => $c->mod_token,
|
||||
path => $c->path,
|
||||
short => $c->short,
|
||||
width => $c->width
|
||||
);
|
||||
$c->record($record);
|
||||
$c->app->sqlite->db->query('INSERT INTO lutim (counter, created_at, created_by, delete_at_day, delete_at_first_view, enabled, filename, footprint, height, last_access_at, mediatype, mod_token, path, short, width, iv) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', $c->counter, $c->created_at, $c->created_by, $c->delete_at_day, $c->delete_at_first_view, $c->enabled, $c->filename, $c->footprint, $c->height, $c->last_access_at, $c->mediatype, $c->mod_token, $c->path, $c->short, $c->width, $c->iv);
|
||||
$c->record(1);
|
||||
}
|
||||
|
||||
return $c;
|
||||
@@ -129,30 +95,26 @@ sub count_short {
|
||||
my $c = shift;
|
||||
my $short = shift;
|
||||
|
||||
return Lutim::DB::SQLite::Lutim->count('WHERE short IS ?', $short);
|
||||
return $c->app->sqlite->db->query('SELECT count(short) AS count FROM lutim WHERE short = ?', $short)->hashes->first->{count};
|
||||
}
|
||||
|
||||
sub count_empty {
|
||||
my $c = shift;
|
||||
|
||||
return Lutim::DB::SQLite::Lutim->count('WHERE path IS NULL');
|
||||
return $c->app->sqlite->db->query('SELECT count(short) AS count FROM lutim WHERE path IS NULL')->hashes->first->{count};
|
||||
}
|
||||
|
||||
sub count_not_empty {
|
||||
my $c = shift;
|
||||
|
||||
return Lutim::DB::SQLite::Lutim->count('WHERE path IS NOT NULL');
|
||||
return $c->app->sqlite->db->query('SELECT count(short) AS count FROM lutim WHERE path IS NOT NULL')->hashes->first->{count};
|
||||
}
|
||||
|
||||
sub clean_ips_until {
|
||||
my $c = shift;
|
||||
my $time = shift;
|
||||
|
||||
Lutim::DB::SQLite->do(
|
||||
'UPDATE lutim SET created_by = "" WHERE path IS NOT NULL AND created_at < ?',
|
||||
{},
|
||||
$time
|
||||
);
|
||||
$c->app->sqlite->db->query('UPDATE lutim SET created_by = NULL WHERE path IS NOT NULL AND created_at < ?', $time);
|
||||
|
||||
return $c;
|
||||
}
|
||||
@@ -163,15 +125,18 @@ sub get_no_longer_viewed_files {
|
||||
|
||||
my @images;
|
||||
|
||||
my @records = Lutim::DB::SQLite::Lutim->select('WHERE enabled = 1 AND last_access_at < ?', $time);
|
||||
my $records = $c->app->sqlite->db->query('SELECT * FROM lutim WHERE enabled = 1 AND last_access_at < ?', $time)->{hashes};
|
||||
|
||||
for my $e (@records) {
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->record($e);
|
||||
$i->_slurp;
|
||||
$records->each(
|
||||
sub {
|
||||
my ($e, $num) = @_;
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->record(1);
|
||||
$i->_slurp($e);
|
||||
|
||||
push @images, $i;
|
||||
}
|
||||
push @images, $i;
|
||||
}
|
||||
);
|
||||
|
||||
return c(@images);
|
||||
}
|
||||
@@ -181,15 +146,17 @@ sub get_images_to_clean {
|
||||
|
||||
my @images;
|
||||
|
||||
my @records = Lutim::DB::SQLite::Lutim->select('WHERE enabled = 1 AND (delete_at_day * 86400) < (? - created_at) AND delete_at_day != 0', time());
|
||||
my $records = $c->app->sqlite->db->query('SELECT * FROM lutim WHERE enabled = 1 AND (delete_at_day * 86400) < (? - created_at) AND delete_at_day != 0', time())->hashes;
|
||||
|
||||
for my $e (@records) {
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->record($e);
|
||||
$i->_slurp;
|
||||
$records->each(
|
||||
sub {
|
||||
my ($e, $num) = @_;
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->_slurp($e);
|
||||
|
||||
push @images, $i;
|
||||
}
|
||||
push @images, $i;
|
||||
}
|
||||
);
|
||||
|
||||
return c(@images);
|
||||
}
|
||||
@@ -199,15 +166,17 @@ sub get_50_oldest {
|
||||
|
||||
my @images;
|
||||
|
||||
my @records = Lutim::DB::SQLite::Lutim->select('WHERE path IS NOT NULL AND enabled = 1 ORDER BY created_at ASC LIMIT 50');
|
||||
my $records = $c->app->sqlite->db->query('SELECT * FROM lutim WHERE path IS NOT NULL AND enabled = 1 ORDER BY created_at ASC LIMIT 50')->hashes;
|
||||
|
||||
for my $e (@records) {
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->record($e);
|
||||
$i->_slurp;
|
||||
$records->each(
|
||||
sub {
|
||||
my ($e, $num) = @_;
|
||||
my $i = Lutim::DB::Image->new(app => $c->app);
|
||||
$i->_slurp($e);
|
||||
|
||||
push @images, $i;
|
||||
}
|
||||
push @images, $i;
|
||||
}
|
||||
);
|
||||
|
||||
return c(@images);
|
||||
}
|
||||
@@ -215,7 +184,7 @@ sub get_50_oldest {
|
||||
sub disable {
|
||||
my $c = shift;
|
||||
|
||||
$c->record->update(enabled => 0);
|
||||
$c->app->sqlite->db->query('UPDATE lutim SET enabled = 0 WHERE short = ?', $c->short);
|
||||
$c->enabled(0);
|
||||
|
||||
return $c;
|
||||
@@ -223,34 +192,38 @@ sub disable {
|
||||
|
||||
sub _slurp {
|
||||
my $c = shift;
|
||||
my $r = shift;
|
||||
|
||||
my @images;
|
||||
if ($c->record) {
|
||||
@images = ($c->record);
|
||||
} elsif ($c->short) {
|
||||
@images = Lutim::DB::SQLite::Lutim->select('WHERE short = ?', $c->short);
|
||||
my $image;
|
||||
if (defined $r) {
|
||||
$image = $r;
|
||||
} else {
|
||||
my $images = $c->app->sqlite->db->query('SELECT * FROM lutim WHERE short = ?', $c->short)->hashes;
|
||||
|
||||
if ($images->size) {
|
||||
$image = $images->first;
|
||||
}
|
||||
}
|
||||
|
||||
if (scalar @images) {
|
||||
my $image = $images[0];
|
||||
if ($image) {
|
||||
$c->short($image->{short});
|
||||
$c->path($image->{path});
|
||||
$c->footprint($image->{footprint});
|
||||
$c->enabled($image->{enabled});
|
||||
$c->mediatype($image->{mediatype});
|
||||
$c->filename($image->{filename});
|
||||
$c->counter($image->{counter});
|
||||
$c->delete_at_first_view($image->{delete_at_first_view});
|
||||
$c->delete_at_day($image->{delete_at_day});
|
||||
$c->created_at($image->{created_at});
|
||||
$c->created_by($image->{created_by});
|
||||
$c->last_access_at($image->{last_access_at});
|
||||
$c->mod_token($image->{mod_token});
|
||||
$c->width($image->{width});
|
||||
$c->height($image->{height});
|
||||
$c->iv($image->{iv});
|
||||
|
||||
$c->short($image->short);
|
||||
$c->path($image->path);
|
||||
$c->footprint($image->footprint);
|
||||
$c->enabled($image->enabled);
|
||||
$c->mediatype($image->mediatype);
|
||||
$c->filename($image->filename);
|
||||
$c->counter($image->counter);
|
||||
$c->delete_at_first_view($image->delete_at_first_view);
|
||||
$c->delete_at_day($image->delete_at_day);
|
||||
$c->created_at($image->created_at);
|
||||
$c->created_by($image->created_by);
|
||||
$c->last_access_at($image->last_access_at);
|
||||
$c->mod_token($image->mod_token);
|
||||
$c->width($image->width);
|
||||
$c->height($image->height);
|
||||
|
||||
$c->record($image) unless $c->record;
|
||||
$c->record(1);
|
||||
}
|
||||
|
||||
return $c;
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
|
||||
package Lutim::DB::SQLite;
|
||||
use Mojolicious;
|
||||
use Mojo::File;
|
||||
use FindBin qw($Bin);
|
||||
|
||||
BEGIN {
|
||||
my $m = Mojolicious->new;
|
||||
my $cfile = Mojo::File->new($Bin, '..' , 'lutim.conf');
|
||||
if (defined $ENV{MOJO_CONFIG}) {
|
||||
$cfile = Mojo::File->new($ENV{MOJO_CONFIG});
|
||||
unless (-e $cfile->to_abs) {
|
||||
$cfile = Mojo::File->new($Bin, '..', $ENV{MOJO_CONFIG});
|
||||
}
|
||||
}
|
||||
our $config = $m->plugin('Config' =>
|
||||
{
|
||||
file => $cfile->to_abs->to_string,
|
||||
default => {
|
||||
db_path => 'lutim.db'
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
# Create database
|
||||
use ORLite {
|
||||
file => $config->{db_path},
|
||||
unicode => 1,
|
||||
create => sub {
|
||||
my $dbh = shift;
|
||||
$dbh->do(
|
||||
'CREATE TABLE lutim (
|
||||
short TEXT PRIMARY KEY,
|
||||
path TEXT,
|
||||
footprint TEXT,
|
||||
enabled INTEGER,
|
||||
mediatype TEXT,
|
||||
filename TEXT,
|
||||
counter INTEGER,
|
||||
delete_at_first_view INTEGER,
|
||||
delete_at_day INTEGER,
|
||||
created_at INTEGER,
|
||||
created_by TEXT,
|
||||
last_access_at INTEGER,
|
||||
mod_token TEXT,
|
||||
width INTEGER,
|
||||
height INTEGER)'
|
||||
);
|
||||
return 1;
|
||||
}
|
||||
};
|
||||
|
||||
1;
|
||||
@@ -4,6 +4,7 @@ use Mojo::Base 'Mojolicious::Plugin';
|
||||
use Mojo::Util qw(quote);
|
||||
use Crypt::CBC;
|
||||
use Data::Entropy qw(entropy_source);
|
||||
use DateTime;
|
||||
|
||||
sub register {
|
||||
my ($self, $app) = @_;
|
||||
@@ -17,23 +18,35 @@ sub register {
|
||||
# Database migration
|
||||
my $migrations = Mojo::Pg::Migrations->new(pg => $app->pg);
|
||||
if ($app->mode eq 'development' && $ENV{LUTIM_DEBUG}) {
|
||||
$migrations->from_file('utilities/migrations.sql')->migrate(0)->migrate(1);
|
||||
$migrations->from_file('utilities/migrations/postgresql.sql')->migrate(0)->migrate(2);
|
||||
} else {
|
||||
$migrations->from_file('utilities/migrations.sql')->migrate(1);
|
||||
$migrations->from_file('utilities/migrations/postgresql.sql')->migrate(2);
|
||||
}
|
||||
} elsif ($app->config('dbtype') eq 'sqlite') {
|
||||
# SQLite database migration if needed
|
||||
use Mojo::SQLite;
|
||||
$app->helper(sqlite => \&_sqlite);
|
||||
|
||||
my $sql = Mojo::SQLite->new('sqlite:'.$app->config('db_path'));
|
||||
my $migrations = $sql->migrations;
|
||||
if ($app->mode eq 'development' && $ENV{LUTIM_DEBUG}) {
|
||||
$migrations->from_file('utilities/migrations/sqlite.sql')->migrate(0)->migrate(2);
|
||||
} else {
|
||||
$migrations->from_file('utilities/migrations/sqlite.sql')->migrate(2);
|
||||
}
|
||||
}
|
||||
|
||||
$app->helper(render_file => \&_render_file);
|
||||
$app->helper(ip => \&_ip);
|
||||
$app->helper(provisioning => \&_provisioning);
|
||||
$app->helper(shortener => \&_shortener);
|
||||
$app->helper(stop_upload => \&_stop_upload);
|
||||
$app->helper(max_delay => \&_max_delay);
|
||||
$app->helper(default_delay => \&_default_delay);
|
||||
$app->helper(is_selected => \&_is_selected);
|
||||
$app->helper(crypt => \&_crypt);
|
||||
$app->helper(decrypt => \&_decrypt);
|
||||
$app->helper(delete_image => \&_delete_image);
|
||||
$app->helper(render_file => \&_render_file);
|
||||
$app->helper(ip => \&_ip);
|
||||
$app->helper(provisioning => \&_provisioning);
|
||||
$app->helper(shortener => \&_shortener);
|
||||
$app->helper(stop_upload => \&_stop_upload);
|
||||
$app->helper(max_delay => \&_max_delay);
|
||||
$app->helper(default_delay => \&_default_delay);
|
||||
$app->helper(is_selected => \&_is_selected);
|
||||
$app->helper(crypt => \&_crypt);
|
||||
$app->helper(decrypt => \&_decrypt);
|
||||
$app->helper(delete_image => \&_delete_image);
|
||||
}
|
||||
|
||||
sub _pg {
|
||||
@@ -43,9 +56,23 @@ sub _pg {
|
||||
return $pg;
|
||||
}
|
||||
|
||||
sub _sqlite {
|
||||
my $c = shift;
|
||||
|
||||
state $sqlite = Mojo::SQLite->new('sqlite:'.$c->app->config('db_path'));
|
||||
return $sqlite;
|
||||
}
|
||||
|
||||
sub _render_file {
|
||||
my $c = shift;
|
||||
my ($im_loaded, $filename, $path, $mediatype, $dl, $expires, $nocache, $key, $thumb) = @_;
|
||||
my ($im_loaded, $img, $dl, $key, $thumb) = @_;
|
||||
|
||||
my ($filename, $path, $iv, $mediatype, $no_cache) = ($img->filename, $img->path, $img->iv, $img->mediatype, $img->delete_at_first_view);
|
||||
|
||||
my $expires = ($img->delete_at_day) ? $img->delete_at_day : 360;
|
||||
my $dt = DateTime->from_epoch( epoch => $expires * 86400 + $img->created_at);
|
||||
$dt->set_time_zone('GMT');
|
||||
$expires = $dt->strftime("%a, %d %b %Y %H:%M:%S GMT");
|
||||
|
||||
$dl = 'attachment' if ($mediatype =~ m/svg/);
|
||||
$filename = quote($filename);
|
||||
@@ -62,7 +89,7 @@ sub _render_file {
|
||||
$mediatype =~ s/x-//;
|
||||
|
||||
my $headers = Mojo::Headers->new();
|
||||
if ($nocache) {
|
||||
if ($no_cache || defined($thumb)) {
|
||||
$headers->add('Cache-Control' => 'no-cache, no-store, max-age=0, must-revalidate');
|
||||
} else {
|
||||
$headers->add('Expires' => $expires);
|
||||
@@ -72,7 +99,7 @@ sub _render_file {
|
||||
$c->res->content->headers($headers);
|
||||
|
||||
if ($key) {
|
||||
$asset = $c->decrypt($key, $path);
|
||||
$asset = $c->decrypt($key, $path, $iv);
|
||||
} else {
|
||||
$asset = Mojo::Asset::File->new(path => $path);
|
||||
}
|
||||
@@ -82,7 +109,11 @@ sub _render_file {
|
||||
$im->BlobToImage($asset->slurp);
|
||||
|
||||
# Create the thumbnail
|
||||
$im->Resize(geometry=>'x'.$c->config('thumbnail_size'));
|
||||
if ($thumb eq '') {
|
||||
$im->Resize(geometry => 'x'.$c->config('thumbnail_size'));
|
||||
} else {
|
||||
$im->Resize(geometry => $thumb);
|
||||
}
|
||||
|
||||
# Replace the asset with the thumbnail
|
||||
$asset = Mojo::Asset::Memory->new->add_chunk($im->ImageToBlob());
|
||||
@@ -187,12 +218,13 @@ sub _crypt {
|
||||
my $filename = shift;
|
||||
|
||||
my $key = $c->shortener($c->config('crypto_key_length'));
|
||||
my $iv = $c->shortener(8);
|
||||
|
||||
my $cipher = Crypt::CBC->new(
|
||||
-key => $key,
|
||||
-cipher => 'Blowfish',
|
||||
-header => 'none',
|
||||
-iv => 'dupajasi'
|
||||
-iv => $iv
|
||||
);
|
||||
|
||||
$cipher->start('encrypting');
|
||||
@@ -206,19 +238,21 @@ sub _crypt {
|
||||
$crypt_upload->filename($filename);
|
||||
$crypt_upload->asset($crypt_asset);
|
||||
|
||||
return ($crypt_upload, $key);
|
||||
return ($crypt_upload, $key, $iv);
|
||||
}
|
||||
|
||||
sub _decrypt {
|
||||
my $c = shift;
|
||||
my $key = shift;
|
||||
my $file = shift;
|
||||
my $iv = shift;
|
||||
$iv = 'dupajasi' unless $iv;
|
||||
|
||||
my $cipher = Crypt::CBC->new(
|
||||
-key => $key,
|
||||
-cipher => 'Blowfish',
|
||||
-header => 'none',
|
||||
-iv => 'dupajasi'
|
||||
-iv => $iv
|
||||
);
|
||||
|
||||
$cipher->start('decrypting');
|
||||
|
||||
38
lib/Lutim/Plugin/Lang.pm
Normal file
38
lib/Lutim/Plugin/Lang.pm
Normal file
@@ -0,0 +1,38 @@
|
||||
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
|
||||
package Lutim::Plugin::Lang;
|
||||
use Mojo::Base 'Mojolicious::Plugin';
|
||||
use Mojo::Collection;
|
||||
use Mojo::File;
|
||||
|
||||
sub register {
|
||||
my ($self, $app) = @_;
|
||||
|
||||
$app->helper(available_langs => \&_available_langs);
|
||||
|
||||
$app->hook(
|
||||
before_dispatch => sub {
|
||||
my $c = shift;
|
||||
$c->languages($c->cookie('lutim_lang')) if $c->cookie('lutim_lang');
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
sub _available_langs {
|
||||
my $c = shift;
|
||||
|
||||
state $langs = Mojo::Collection->new(
|
||||
glob($c->app->home->rel_file('themes/'.$c->config('theme').'/lib/Lutim/I18N/*po')),
|
||||
glob($c->app->home->rel_file('themes/default/lib/Lutim/I18N/*po'))
|
||||
)->map(
|
||||
sub {
|
||||
Mojo::File->new($_)->basename('.po');
|
||||
}
|
||||
)->uniq->sort(
|
||||
sub {
|
||||
$c->l($a) cmp $c->l($b)
|
||||
}
|
||||
)->to_array;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
@@ -22,14 +22,34 @@ sub startup {
|
||||
{
|
||||
file => $cfile,
|
||||
default => {
|
||||
prefix => '/',
|
||||
theme => 'default',
|
||||
provisioning => 100,
|
||||
provis_step => 5,
|
||||
length => 8,
|
||||
always_encrypt => 0,
|
||||
anti_flood_delay => 5,
|
||||
tweet_card_via => '@framasky',
|
||||
max_file_size => 10*1024*1024,
|
||||
https => 0,
|
||||
proposed_delays => '0,1,7,30,365',
|
||||
default_delay => 0,
|
||||
max_delay => 0,
|
||||
token_length => 24,
|
||||
crypto_key_length => 8,
|
||||
thumbnail_size => 100,
|
||||
theme => 'default',
|
||||
dbtype => 'sqlite',
|
||||
db_path => 'lutim.db',
|
||||
max_files_in_zip => 15,
|
||||
prefix => '/',
|
||||
minion => {
|
||||
enabled => 0,
|
||||
dbtype => 'sqlite',
|
||||
db_path => 'minion.db'
|
||||
},
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
$self->plugin('Lutim::Plugin::Helpers');
|
||||
|
||||
$config->{prefix} = $config->{url_sub_dir} if (defined($config->{url_sub_dir}) && $config->{prefix} eq '/');
|
||||
|
||||
$self->app->log->warn('"url_sub_dir" configuration option is deprecated. Use "prefix" instead. "url_sub_dir" will be removed in the future') if (defined($config->{url_sub_dir}));
|
||||
@@ -42,10 +62,12 @@ sub startup {
|
||||
}
|
||||
push @{$self->static->paths}, $self->home->rel_file('themes/default/public');
|
||||
|
||||
$self->hook(after_static => sub {
|
||||
my $c = shift;
|
||||
$c->res->headers->cache_control('max-age=2592000, must-revalidate');
|
||||
});
|
||||
# Cache static files
|
||||
$self->plugin('StaticCache');
|
||||
|
||||
# Helpers
|
||||
$self->plugin('Lutim::Plugin::Helpers');
|
||||
|
||||
$self->plugin('Mount' => {$config->{prefix} => File::Spec->catfile($Bin, '..', 'script', 'application')});
|
||||
}
|
||||
|
||||
|
||||
@@ -89,6 +89,10 @@
|
||||
# optional, default is 0 (no limit)
|
||||
#default_delay => 0,
|
||||
|
||||
# comma-separated values proposed for delays
|
||||
# optional, default is '0,1,7,30,365'
|
||||
#proposed_delays => '0,1,7,30,365',
|
||||
|
||||
# number of days after which the images will be deleted, even if they were uploaded with "no delay" (or value superior to max_delay)
|
||||
# a warning message will be displayed on homepage
|
||||
# optional, default is 0 (no limit)
|
||||
|
||||
11
push-trad-to-zanata.sh
Executable file
11
push-trad-to-zanata.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
FILE=$1
|
||||
if [[ ! -e themes/default/lib/Lutim/I18N/$FILE.po ]]
|
||||
then
|
||||
echo "themes/default/lib/Lutim/I18N/$FILE.po does not exist. Exiting."
|
||||
exit 1
|
||||
else
|
||||
LOCALE=$(echo $FILE | sed -e "s@_@-@g")
|
||||
zanata-cli -q -B push --push-type trans -l $LOCALE
|
||||
fi
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
# you can define it relative to lutim directory or set an absolute path
|
||||
# remember that it has to be in a directory writable by Lutim user
|
||||
# optional, default is lutim.db
|
||||
db_path => 'testdqlite1.db',
|
||||
db_path => 'testsqlite1.db',
|
||||
|
||||
# PostgreSQL ONLY - only used if dbtype is set to postgresql
|
||||
# these are the credentials to access the PostgreSQL database
|
||||
|
||||
587
themes/default/lib/Lutim/I18N/ar.po
Normal file
587
themes/default/lib/Lutim/I18N/ar.po
Normal file
@@ -0,0 +1,587 @@
|
||||
# Lutim language file
|
||||
# Copyright (C) 2014 Luc Didry
|
||||
# This file is distributed under the same license as the Lutim package.
|
||||
#
|
||||
# Translators:
|
||||
# ButterflyOfFire <butterflyoffire@protonmail.com>, ٢٠١٨, 2018.
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2018-01-30 01:11+0000\n"
|
||||
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\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"
|
||||
"n%100<=10 ? 3: n%100>=11 ? 4 : 5);\n"
|
||||
"X-Generator: Zanata 4.3.3\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr "%1 أيام"
|
||||
|
||||
#. ($total)
|
||||
#: themes/default/templates/stats.html.ep:2
|
||||
msgid "%1 sent images on this instance from beginning."
|
||||
msgstr "تم إرسال %1 صورة على مثيل الخادوم هذا منذ البداية."
|
||||
|
||||
#: themes/default/templates/index.html.ep:190
|
||||
msgid "-or-"
|
||||
msgstr "-أو-"
|
||||
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "سنة واحدة"
|
||||
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 ساعة"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:57
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr ": طرأ هناك خطأ أثناء محاولة إستعادة العداد."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr "عن البرنامج"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr "الصور النشطة"
|
||||
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "طرأ هناك خطأ أثناء عملية تنزيل الصورة."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:2
|
||||
msgid "Archives download"
|
||||
msgstr "تنزيل الأرشيف"
|
||||
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "العودة إلى الصفحة الرئيسية"
|
||||
|
||||
#: themes/default/templates/index.html.ep:193 themes/default/templates/index.html.ep:194
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "إضغط لفتح مدير الملفات"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "المساهمون"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr "أنسخ كافة روابط العرض إلى الحافظة"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "أنسخ إلى الحافظة"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:52
|
||||
msgid "Counter"
|
||||
msgstr "العداد"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:18
|
||||
msgid "Delay repartition chart for disabled images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:15
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "هل تود حذف الصورة مباشرة بعد أول عرض ؟"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:145 themes/default/templates/raw.html.ep:4
|
||||
msgid "Deleted images"
|
||||
msgstr "الصور المحذوفة"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:146 themes/default/templates/raw.html.ep:5
|
||||
msgid "Deleted images in 30 days"
|
||||
msgstr "الصور المحذوفة منذ 30 يوما"
|
||||
|
||||
#: themes/default/templates/index.html.ep:98 themes/default/templates/myfiles.html.ep:56 themes/default/templates/partial/common.js.ep:142 themes/default/templates/partial/common.js.ep:145
|
||||
msgid "Deletion link"
|
||||
msgstr "رابط الحذف"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr "تنزيل كافة الصور"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "رابط التنزيل"
|
||||
|
||||
#: themes/default/templates/index.html.ep:28 themes/default/templates/index.html.ep:31 themes/default/templates/myfiles.html.ep:30 themes/default/templates/myfiles.html.ep:33
|
||||
msgid "Download zip link"
|
||||
msgstr "رابط التنزيل كحزمة مضغوطة"
|
||||
|
||||
#: themes/default/templates/index.html.ep:189
|
||||
msgid "Drag & drop images here"
|
||||
msgstr "إسحب ثم القي الصور هنا"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "قم بتعمية و تشفير الصورة (لوتان Lutim لا يحتفظ بالمفتاح)."
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr "طرأ هناك خطأ أثناء عملية تعديل الصورة."
|
||||
|
||||
#: themes/default/templates/stats.html.ep:10
|
||||
msgid "Evolution of total files"
|
||||
msgstr "تطور العدد الإجمالي للملفات"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:55
|
||||
msgid "Expires at"
|
||||
msgstr "تنتهي مدة صلاحيتها في"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:50
|
||||
msgid "File name"
|
||||
msgstr "إسم الملف"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"للمزيد من التفاصيل، قم بزيارة <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">الصفحة الرئيسة للمشروع</a>."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "قم بتشعيبي !"
|
||||
|
||||
#: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:13 themes/default/templates/myfiles.html.ep:12 themes/default/templates/myfiles.html.ep:15
|
||||
msgid "Gallery link"
|
||||
msgstr "رابط المعرض"
|
||||
|
||||
#: themes/default/templates/partial/common.js.ep:104 themes/default/templates/partial/common.js.ep:87
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr "إضغط على CTRL+C ثم على مفتاح الإدخال للقيام بنسخ الرابط القصير"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "الصفحة الرئيسية"
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "How do you pronounce Lutim?"
|
||||
msgstr "كيف يُنطق Lutim ؟"
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "How does it work?"
|
||||
msgstr "كيف يشتغل ؟"
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "How to report an image?"
|
||||
msgstr "كيف يتم الإبلاغ عن صورة ما ؟"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"إذا تم حذف الملفات و إن قمت بطلب ذلك أثناء الإرسال سوف نقوم بالإحتفاظ ببصمات "
|
||||
"SHA512 الخاصة بالصور."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
msgstr "رابط الصورة"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:2
|
||||
msgid "Image delay"
|
||||
msgstr "تأجيل الصورة"
|
||||
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr "الصورة غير موجودة."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "معلومات"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "نتصيب برنامج الويب"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr "إحصائيات مثيل الخادوم"
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "Is it really anonymous?"
|
||||
msgstr "هل يدعم حقا التخفي ؟"
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "Is it really free (as in free beer)?"
|
||||
msgstr "هل هو مجاني (كما في عبارة مشروب مجاني) ؟"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"يُنطق مِثل الكلمة الفرنسية <a href=\"https://fr.wikipedia.org/wiki/"
|
||||
"Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "الإبقاء على بيانات EXIF"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "هيا بنا !"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "الرخصة :"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "رابط للمشاركة على شبكات التواصل الإجتماعي"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
"ليس بمقدور لوتان ضغط العديد من الصور في آن واحد، لذا قام بتقطيع طلبك على شكل "
|
||||
"عدةروابط."
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:165 themes/default/templates/index.html.ep:198
|
||||
msgid "Only images are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"these details."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
msgstr ""
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:19
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:158
|
||||
msgid "Send an image"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr ""
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
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:52
|
||||
msgid "Support the author"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
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 ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr ""
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:12
|
||||
msgid "The graph's datas are not updated in real-time."
|
||||
msgstr ""
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr ""
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
msgid "The image's delay has been successfully modified"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:45
|
||||
msgid "The images are encrypted on the server (Lutim does not keep the key)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 ""
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
msgid "There is no more available URL. Retry or contact the administrator. %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:54
|
||||
msgid "Uploaded at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:6
|
||||
msgid "Uploaded files by days"
|
||||
msgstr ""
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:22
|
||||
msgid "What about the software which provides the service?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lutim?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:15
|
||||
msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:38
|
||||
msgid "occitan translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "on"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:28
|
||||
msgid "webapp developer"
|
||||
msgstr ""
|
||||
@@ -5,24 +5,26 @@
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Thor77 <thor77@thor77.org>, 2015
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Lutim\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2015-09-18 13:34+0000\n"
|
||||
"Last-Translator: Thor77 <thor77@thor77.org>\n"
|
||||
"Language-Team: German (http://www.transifex.com/fiat-tux/lutim/language/de/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2018-03-11 08:51+0000\n"
|
||||
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\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"
|
||||
"X-Generator: Zanata 4.3.3\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:3 themes/default/templates/partial/lutim.js.ep:138 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/partial/lutim.js.ep:148 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr "%1 Tage"
|
||||
|
||||
@@ -35,11 +37,11 @@ msgstr "%1 Bilder wurden bisher über diese Instanz versendet."
|
||||
msgid "-or-"
|
||||
msgstr "-oder-"
|
||||
|
||||
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "1 Jahr"
|
||||
|
||||
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 Stunden"
|
||||
|
||||
@@ -47,11 +49,15 @@ msgstr "24 Stunden"
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr ":Fehler beim Abrufen des Zählers."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:288
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "Beim Herunterladen des Bildes ist ein Fehler aufgetreten."
|
||||
|
||||
@@ -59,7 +65,7 @@ msgstr "Beim Herunterladen des Bildes ist ein Fehler aufgetreten."
|
||||
msgid "Archives download"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:41 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "Zurück zur Hauptseite"
|
||||
|
||||
@@ -67,15 +73,19 @@ msgstr "Zurück zur Hauptseite"
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Klicken um den Dateibrowser zu öffnen"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "Mitwirkende"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:214 themes/default/templates/partial/lutim.js.ep:268 themes/default/templates/partial/lutim.js.ep:346
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr "Alle Links zum Anschauen in die Zwischenablage kopieren"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:105 themes/default/templates/partial/lutim.js.ep:120 themes/default/templates/partial/lutim.js.ep:79 themes/default/templates/partial/lutim.js.ep:91
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "In die Zwischenablage kopieren"
|
||||
|
||||
@@ -91,7 +101,7 @@ msgstr ""
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:159
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "Nach erstem Aufruf löschen?"
|
||||
|
||||
@@ -107,11 +117,11 @@ msgstr ""
|
||||
msgid "Deletion link"
|
||||
msgstr "Link zum Löschen"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:6
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr "Laden Sie alle Bilder"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:101 themes/default/templates/partial/lutim.js.ep:97
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "Link zum Herunterladen"
|
||||
|
||||
@@ -124,14 +134,21 @@ msgid "Drag & drop images here"
|
||||
msgstr "Bilder hierher ziehen"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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 "Ziehe Bilder in den dafür vorgesehenen Bereich und Lutim wird vier URLs generieren. Eine zum Anschauen, eine zum direkten Herunterladen, eine zum Nutzen in sozialen Netzwerken und eine letzte um das Bild zu löschen."
|
||||
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 ""
|
||||
"Ziehe Bilder in den dafür vorgesehenen Bereich und Lutim wird vier URLs "
|
||||
"generieren. Eine zum Anschauen, eine zum direkten Herunterladen, eine zum "
|
||||
"Nutzen in sozialen Netzwerken und eine letzte um das Bild zu löschen."
|
||||
|
||||
#: themes/default/templates/index.html.ep:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "Verschlüssle das Bild (Lutim behält den Key nicht)"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:44
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr "Beim bearbeiten des Bildes ist ein Fehler aufgetreten."
|
||||
|
||||
@@ -148,10 +165,14 @@ msgid "File name"
|
||||
msgstr "Dateiname"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid "For more details, see the <a href=\"https://framagit.org/luc/lutim\">homepage of the project</a>."
|
||||
msgstr "Besuche für mehr Details die <a href=\"https://framagit.org/luc/lutim\">Homepage des Projekts</a>."
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"Besuche für mehr Details die <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">Homepage des Projekts</a>."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:55
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "Fork me!"
|
||||
|
||||
@@ -163,7 +184,7 @@ msgstr "Link zur Galerie"
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr "Drücke STRG+C und dann Enter um den Kurz-Link zu kopieren."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:50
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "Webseite"
|
||||
|
||||
@@ -180,8 +201,12 @@ msgid "How to report an image?"
|
||||
msgstr "Wie kann ich ein Bild melden?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "If the files are deleted if you ask it while posting it, their SHA512 footprint are retained."
|
||||
msgstr "Wenn du versuchst, ein Bild während dem Hochladen zu löschen, wird die SHA512-Summe des Bildes behalten."
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"Wenn du versuchst, ein Bild während dem Hochladen zu löschen, wird die "
|
||||
"SHA512-Summe des Bildes behalten."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
@@ -191,19 +216,19 @@ msgstr "Bild-URL"
|
||||
msgid "Image delay"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:710
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr "Bild nicht gefunden"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "Informationen"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:62
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "Installiere die Webapp"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:61
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,35 +241,44 @@ msgid "Is it really free (as in free beer)?"
|
||||
msgstr "Is es wirklich kostenlos?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr "Genauso wie das französische Wort <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"Genauso wie das französische Wort <a href=\"https://fr.wikipedia.org/wiki/"
|
||||
"Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "Behalte EXIF-Daten"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:163
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "Los gehts!"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
msgid "Liberapay button"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "Lizenz:"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:111 themes/default/templates/partial/lutim.js.ep:115
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "Links zum teilen auf sozialen Netzwerken"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid "Lutim can't zip so many images at once, so it splitted your demand in multiple URLs."
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lutim is a free (as in free beer) and anonymous image hosting service. It's also the name of the free (as in free speech) software which provides this service."
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
"Lutim ist ein freier und anonymer Bilder-Upload-Service.\n"
|
||||
"Es ist auch der Name der freien Software, die diesen Service bietet."
|
||||
@@ -253,14 +287,18 @@ msgstr ""
|
||||
msgid "Main developers"
|
||||
msgstr "Haupt-Entwickler"
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:85 themes/default/templates/partial/lutim.js.ep:88
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr "Markdown Syntax"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:60 themes/default/templates/myfiles.html.ep:2
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr "Meine Bilder"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr "Keine Begrenzung"
|
||||
@@ -270,12 +308,22 @@ msgid "Only images are allowed"
|
||||
msgstr "Es sind nur Bilder erlaubt"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid "Only the images sent with this browser will be listed here. The informations are stored in localStorage: if you delete your localStorage data, you'll loose this informations."
|
||||
msgstr "Nur die Bilder, die über diesen Browser versendet wurden, werden hier angezeigt. Die Informationen werden im localStorage gespeichert, wenn du diesen leerst, sind die Informationen verloren."
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"these details."
|
||||
msgstr ""
|
||||
"Nur die Bilder, die über diesen Browser versendet wurden, werden hier "
|
||||
"angezeigt. Die Details werden im localStorage gespeichert, wenn du diesen "
|
||||
"leerst, sind die Details verloren."
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "Only the uploader! (well, only if he's the only owner of the images' rights before the upload)"
|
||||
msgstr "Nur der Hochladende (natürlich nur, wenn er vorher auch Rechteinhaber des Bildes war)"
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
"Nur der Hochladende (natürlich nur, wenn er vorher auch Rechteinhaber des "
|
||||
"Bildes war)"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
@@ -286,6 +334,10 @@ msgstr ""
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Kontaktiere den Administrator: %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr ""
|
||||
@@ -294,60 +346,84 @@ msgstr ""
|
||||
msgid "Send an image"
|
||||
msgstr "Sende ein Bild"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:20
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr "Teile es!"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:56
|
||||
msgid "Share on Twitter"
|
||||
msgstr "Teile es auf Twitter"
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/lutim.js.ep:174
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr "Es ist ein Fehler aufgetreten"
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:717
|
||||
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
|
||||
msgstr "Es ist ein Fehler aufgetreten. Versuche es erneut oder kontaktiere den Administrator (%1)."
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
msgid ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
msgstr ""
|
||||
"Es ist ein Fehler aufgetreten. Versuche es erneut oder kontaktiere den "
|
||||
"Administrator (%1)."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
#: themes/default/templates/partial/navbar.html.ep:52
|
||||
msgid "Support the author"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
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 "Die IP-Adresse des Nutzers wird für eine bestimmte Zeit gespeichert. Diese kann der Administrator frei wählen (für die offizielle Instanz, die in Frankreich gehostet ist, liegt diese Zeit bei einem Jahr)"
|
||||
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 ""
|
||||
"Die IP-Adresse des Nutzers wird für eine bestimmte Zeit gespeichert. Diese "
|
||||
"kann der Administrator frei wählen (für die offizielle Instanz, die in "
|
||||
"Frankreich gehostet ist, liegt diese Zeit bei einem Jahr)"
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/Free_software\">free software</a>, which allows you to download and install it on you own server. Have a look at the <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr "Lutim ist <a href=\"https://de.wikipedia.org/wiki/Freie_Software\">freie Software</a>, was dir erlaubt sie herunterzuladen und sie auf deinem eigenem Server zu installieren. Schau dir die <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> an um deine Recht zu sehen."
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
"Lutim ist <a href=\"https://de.wikipedia.org/wiki/Freie_Software\">freie "
|
||||
"Software</a>, was dir erlaubt sie herunterzuladen und sie auf deinem eigenem "
|
||||
"Server zu installieren. Schau dir die <a href=\"https://www.gnu.org/licenses/"
|
||||
"agpl-3.0.html\">AGPL</a> an um deine Recht zu sehen."
|
||||
|
||||
#: lib/Lutim/Controller.pm:307
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr "Die URL ist nicht gültig."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid "The automatic download process will open a tab in your browser for each link. You need to allow popups for Lutim."
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:120 lib/Lutim/Controller.pm:188
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr "Das Token zum Löschen ist ungültig."
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:445
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:271 lib/Lutim/Controller.pm:340 themes/default/templates/partial/lutim.js.ep:240
|
||||
#: lib/Lutim/Controller.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr "Die Datei überschreitet die Größenbeschränkung (%1)"
|
||||
|
||||
@@ -356,60 +432,75 @@ 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.pm:190
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr "Das Bild %1 wurde schon gelöscht."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:199 lib/Lutim/Controller.pm:204
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr "Das Bild %1 wurde erfolgreich gelöscht."
|
||||
|
||||
#: lib/Lutim/Controller.pm:128
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
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:45
|
||||
msgid "The images are encrypted on the server (Lutim does not keep the key)."
|
||||
msgstr "Die Bilder werden auf dem Server verschlüsselt (Lutim behält den Key nicht)"
|
||||
msgstr ""
|
||||
"Die Bilder werden auf dem Server verschlüsselt (Lutim behält den Key nicht)"
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 "Die Bilder, die du auf Lutim hochlädst, können entweder nie, nach dem ersten Aufruf oder nach einer bestimmten Zeit gelöscht werden."
|
||||
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 ""
|
||||
"Die Bilder, die du auf Lutim hochlädst, können entweder nie, nach dem ersten "
|
||||
"Aufruf oder nach einer bestimmten Zeit gelöscht werden."
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:442
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
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 Administrator. %1"
|
||||
msgstr ""
|
||||
"Es sind keine URLs mehr verfügbar. Versuche es erneut oder kontaktiere den "
|
||||
"Administrator. %1"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
msgid "Tipeee button"
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:14
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr "Twittere es!"
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:162 lib/Lutim/Controller.pm:233
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr "Konnte das Bild %1 nicht finden."
|
||||
|
||||
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr "Dieses Bild wurde gelöscht."
|
||||
|
||||
#: lib/Lutim/Controller.pm:105
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr "Konnte den Zähler nicht abrufen"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "Unlike many image sharing services, you don't give us rights on uploaded images."
|
||||
msgstr "Im Gegensatz zu anderen Bild-Hosting-Diensten, überträgst du uns nicht die Rechte an hochgeladenen Bildern."
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
"Im Gegensatz zu anderen Bild-Hosting-Diensten, überträgst du uns nicht die "
|
||||
"Rechte an hochgeladenen Bildern."
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
@@ -424,11 +515,15 @@ msgid "Uploaded files by days"
|
||||
msgstr "Hochgeladene Bilder pro Tag"
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:152
|
||||
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
|
||||
msgstr "Hochladen ist momentan deaktiviert. Versuche es später erneut oder kontaktiere den Administrator (%1)."
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
"Hochladen ist momentan deaktiviert. Versuche es später erneut oder "
|
||||
"kontaktiere den Administrator (%1)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:71 themes/default/templates/partial/lutim.js.ep:75
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr "Link ansehen"
|
||||
|
||||
@@ -445,30 +540,55 @@ msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr "Wer hat die Rechte an auf Lutim hochgeladenen Bildern?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "Yes, it is! On the other side, for legal reasons, your IP address will be stored when you send an image. Don't panic, it is normally the case of all sites on which you send files!"
|
||||
msgstr "Ja, ist es! Auf der anderen Seite wird deine IP-Adresse, wegen rechtlichen Gründen, beim hochladen gespeichert. Keine Panik, das ist normalerweise der Fall für alle Seiten, an die du Dateien sendest!"
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
"Ja, ist es! Auf der anderen Seite wird deine IP-Adresse, wegen rechtlichen "
|
||||
"Gründen, beim hochladen gespeichert. Keine Panik, das ist normalerweise der "
|
||||
"Fall für alle Seiten, an die du Dateien sendest!"
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr "Ja, ist es! Auf der anderen Seite kannst du den Entwickler via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> oder <a href=\"https://liberapay.com/sky/\">Liberapay</a> unterstützen."
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
"Ja, ist es! Auf der anderen Seite kannst du den Entwickler via <a href="
|
||||
"\"https://www.tipeee.com/fiat-tux\">Tipeee</a> oder <a href=\"https://"
|
||||
"liberapay.com/sky/\">Liberapay</a> unterstützen."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You can, optionally, request that the image(s) posted on Lutim to be deleted at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr "Du kannst Bilder, die du auf Lutim hochlädst, entweder nach dem ernsten Ansehen (oder Herunterladen) oder nach einem der vorgeschlagenen Zeiten löschen lassen."
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
"Du kannst Bilder, die du auf Lutim hochlädst, entweder nach dem ernsten "
|
||||
"Ansehen (oder Herunterladen) oder nach einem der vorgeschlagenen Zeiten "
|
||||
"löschen lassen."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr "und auf"
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr "Haupt-Entwickler"
|
||||
|
||||
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr "keine Zeit-Begrenzung"
|
||||
|
||||
@@ -480,6 +600,14 @@ msgstr "okzitanisch Übersetzung"
|
||||
msgid "on"
|
||||
msgstr "auf"
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr "russische Übersetzung"
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr "spanische Übersetzung"
|
||||
|
||||
@@ -1,28 +1,25 @@
|
||||
# Lutim language file
|
||||
# Copyright (C) 2014 Luc Didry
|
||||
# This file is distributed under the same license as the Lutim package.
|
||||
#
|
||||
# Translators:
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Lutim\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2015-09-10 23:28+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@didry.org>\n"
|
||||
"Language-Team: English (http://www.transifex.com/fiat-tux/lutim/language/en/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2018-03-11 08:53+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@framasoft.org>\n"
|
||||
"Language-Team: English\n"
|
||||
"Language: en\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Zanata 4.3.3\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:3 themes/default/templates/partial/lutim.js.ep:138 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/partial/lutim.js.ep:148 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr ""
|
||||
msgstr "%1 days"
|
||||
|
||||
#. ($total)
|
||||
#: themes/default/templates/stats.html.ep:2
|
||||
@@ -33,31 +30,35 @@ msgstr "%1 sent images on this instance from beginning."
|
||||
msgid "-or-"
|
||||
msgstr "-or-"
|
||||
|
||||
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "1 year"
|
||||
|
||||
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 hours"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:57
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr ""
|
||||
msgstr ": Error while trying to get the counter."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr "About"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr ""
|
||||
msgstr "Active images"
|
||||
|
||||
#: lib/Lutim/Controller.pm:288
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "An error occured while downloading the image."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:2
|
||||
msgid "Archives download"
|
||||
msgstr ""
|
||||
msgstr "Archives download"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "Back to homepage"
|
||||
|
||||
@@ -65,73 +66,85 @@ msgstr "Back to homepage"
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Click to open the file browser"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Close (Esc)"
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "Contributors"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:214 themes/default/templates/partial/lutim.js.ep:268 themes/default/templates/partial/lutim.js.ep:346
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr ""
|
||||
msgstr "Copy all view links to clipboard"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:105 themes/default/templates/partial/lutim.js.ep:120 themes/default/templates/partial/lutim.js.ep:79 themes/default/templates/partial/lutim.js.ep:91
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copy to clipboard"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:52
|
||||
msgid "Counter"
|
||||
msgstr ""
|
||||
msgstr "Counter"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:18
|
||||
msgid "Delay repartition chart for disabled images"
|
||||
msgstr ""
|
||||
msgstr "Delay repartition chart for disabled images"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:15
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr ""
|
||||
msgstr "Delay repartition chart for enabled images"
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:159
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "Delete at first view?"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:145 themes/default/templates/raw.html.ep:4
|
||||
msgid "Deleted images"
|
||||
msgstr ""
|
||||
msgstr "Deleted images"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:146 themes/default/templates/raw.html.ep:5
|
||||
msgid "Deleted images in 30 days"
|
||||
msgstr ""
|
||||
msgstr "Deleted images in 30 days"
|
||||
|
||||
#: themes/default/templates/index.html.ep:98 themes/default/templates/myfiles.html.ep:56 themes/default/templates/partial/common.js.ep:142 themes/default/templates/partial/common.js.ep:145
|
||||
msgid "Deletion link"
|
||||
msgstr "Deletion link"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:6
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr ""
|
||||
msgstr "Download all images"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:101 themes/default/templates/partial/lutim.js.ep:97
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "Download link"
|
||||
|
||||
#: themes/default/templates/index.html.ep:28 themes/default/templates/index.html.ep:31 themes/default/templates/myfiles.html.ep:30 themes/default/templates/myfiles.html.ep:33
|
||||
msgid "Download zip link"
|
||||
msgstr ""
|
||||
msgstr "Download zip link"
|
||||
|
||||
#: themes/default/templates/index.html.ep:189
|
||||
msgid "Drag & drop images here"
|
||||
msgstr "Drag & drop images here"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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 "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."
|
||||
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 ""
|
||||
"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."
|
||||
|
||||
#: themes/default/templates/index.html.ep:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "Encrypt the image (Lutim does not keep the key)."
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:44
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr ""
|
||||
msgstr "Error while trying to modify the image."
|
||||
|
||||
#: themes/default/templates/stats.html.ep:10
|
||||
msgid "Evolution of total files"
|
||||
@@ -139,29 +152,33 @@ msgstr "Evolution of total files"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:55
|
||||
msgid "Expires at"
|
||||
msgstr ""
|
||||
msgstr "Expires at"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:50
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
msgstr "File name"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid "For more details, see the <a href=\"https://framagit.org/luc/lutim\">homepage of the project</a>."
|
||||
msgstr "For more details, see the <a href=\"https://framagit.org/luc/lutim\">homepage of the project</a>."
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:55
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "Fork me!"
|
||||
|
||||
#: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:13 themes/default/templates/myfiles.html.ep:12 themes/default/templates/myfiles.html.ep:15
|
||||
msgid "Gallery link"
|
||||
msgstr ""
|
||||
msgstr "Gallery link"
|
||||
|
||||
#: themes/default/templates/partial/common.js.ep:104 themes/default/templates/partial/common.js.ep:87
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr ""
|
||||
msgstr "Hit Ctrl+C, then Enter to copy the short link"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:50
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "Homepage"
|
||||
|
||||
@@ -178,8 +195,12 @@ msgid "How to report an image?"
|
||||
msgstr "How to report an image?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "If the files are deleted if you ask it while posting it, their SHA512 footprint are retained."
|
||||
msgstr "If the files are deleted if you ask it while posting it, their SHA512 footprint are retained."
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
@@ -187,23 +208,23 @@ msgstr "Image URL"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:2
|
||||
msgid "Image delay"
|
||||
msgstr ""
|
||||
msgstr "Image delay"
|
||||
|
||||
#: lib/Lutim/Controller.pm:710
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr ""
|
||||
msgstr "Image not found."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "Informations"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:62
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "Install webapp"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:61
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr ""
|
||||
msgstr "Instance's statistics"
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "Is it really anonymous?"
|
||||
@@ -214,136 +235,194 @@ msgid "Is it really free (as in free beer)?"
|
||||
msgstr "Is it really free (as in free beer)?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr "Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "Keep EXIF tags"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:163
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr "Language"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "Let's go!"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
msgid "Liberapay button"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "License:"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:111 themes/default/templates/partial/lutim.js.ep:115
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "Link for share on social networks"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid "Lutim can't zip so many images at once, so it splitted your demand in multiple URLs."
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lutim is a free (as in free beer) and anonymous image hosting service. It's also the name of the free (as in free speech) software which provides this service."
|
||||
msgstr "Lutim is a free (as in free beer) and anonymous image hosting service. It's also the name of the free (as in free speech) software which provides this service."
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr "Main developers"
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:85 themes/default/templates/partial/lutim.js.ep:88
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr "Markdown syntax"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:60 themes/default/templates/myfiles.html.ep:2
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr ""
|
||||
msgstr "My images"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr "Next (arrow right)"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr ""
|
||||
msgstr "No limit"
|
||||
|
||||
#: themes/default/templates/index.html.ep:165 themes/default/templates/index.html.ep:198
|
||||
msgid "Only images are allowed"
|
||||
msgstr "Only images are allowed"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid "Only the images sent with this browser will be listed here. The informations are stored in localStorage: if you delete your localStorage data, you'll loose this informations."
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"these details."
|
||||
msgstr ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"these details."
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "Only the uploader! (well, only if he's the only owner of the images' rights before the upload)"
|
||||
msgstr "Only the uploader! (well, only if he's the only owner of the images' rights before the upload)"
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
msgstr ""
|
||||
msgstr "Please click on each URL to download the different zip files."
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:19
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Please contact the administrator: %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr "Previous (arrow left)"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr ""
|
||||
msgstr "Raw stats"
|
||||
|
||||
#: themes/default/templates/index.html.ep:158
|
||||
msgid "Send an image"
|
||||
msgstr "Send an image"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:20
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr ""
|
||||
msgstr "Share it!"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:56
|
||||
msgid "Share on Twitter"
|
||||
msgstr "Share on Twitter"
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/lutim.js.ep:174
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr "Something bad happened"
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:717
|
||||
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
msgid ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
msgstr ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
#: themes/default/templates/partial/navbar.html.ep:52
|
||||
msgid "Support the author"
|
||||
msgstr "Support the author"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr ""
|
||||
msgstr "Support the author on Liberapay"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr ""
|
||||
msgstr "Support the author on Tipeee"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
msgstr "Support the author with bitcoins"
|
||||
|
||||
#: 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 "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)."
|
||||
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 ""
|
||||
"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)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/Free_software\">free software</a>, which allows you to download and install it on you own server. Have a look at the <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr "The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/Free_software\">free software</a>, which allows you to download and install it on you own server. Have a look at the <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
|
||||
#: lib/Lutim/Controller.pm:307
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr "The URL is not valid."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid "The automatic download process will open a tab in your browser for each link. You need to allow popups for Lutim."
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
|
||||
#: lib/Lutim/Controller.pm:120 lib/Lutim/Controller.pm:188
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr "The delete token is invalid."
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:445
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:271 lib/Lutim/Controller.pm:340 themes/default/templates/partial/lutim.js.ep:240
|
||||
#: lib/Lutim/Controller.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr "The file exceed the size limit (%1)"
|
||||
|
||||
@@ -352,16 +431,16 @@ 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.pm:190
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr "The image %1 has already been deleted."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:199 lib/Lutim/Controller.pm:204
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr "The image %1 has been successfully deleted"
|
||||
|
||||
#: lib/Lutim/Controller.pm:128
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
msgid "The image's delay has been successfully modified"
|
||||
msgstr "The image's delay has been successfully modified"
|
||||
|
||||
@@ -370,42 +449,55 @@ 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)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 "The images you post on Lutim can be stored indefinitely or be deleted at first view or after a delay selected from those proposed."
|
||||
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 ""
|
||||
"The images you post on Lutim can be stored indefinitely or be deleted at "
|
||||
"first view or after a delay selected from those proposed."
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:442
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
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"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
msgid "Tipeee button"
|
||||
msgstr ""
|
||||
"There is no more available URL. Retry or contact the administrator. %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr "Toggle fullscreen"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr "Toggle navigation"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
msgstr "Total"
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:14
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr "Tweet it!"
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:162 lib/Lutim/Controller.pm:233
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr "Unable to find the image %1."
|
||||
|
||||
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr "Unable to find the image: it has been deleted."
|
||||
|
||||
#: lib/Lutim/Controller.pm:105
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr ""
|
||||
msgstr "Unable to get counter"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "Unlike many image sharing services, you don't give us rights on uploaded images."
|
||||
msgstr "Unlike many image sharing services, you don't give us rights on uploaded images."
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
@@ -413,18 +505,22 @@ msgstr "Upload an image with its URL"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:54
|
||||
msgid "Uploaded at"
|
||||
msgstr ""
|
||||
msgstr "Uploaded at"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:6
|
||||
msgid "Uploaded files by days"
|
||||
msgstr "Uploaded files by days"
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:152
|
||||
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
|
||||
msgstr "Uploading is currently disabled, please try later or contact the administrator (%1)."
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:71 themes/default/templates/partial/lutim.js.ep:75
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr "View link"
|
||||
|
||||
@@ -441,45 +537,73 @@ msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr "Who owns rights on images uploaded on Lutim?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "Yes, it is! On the other side, for legal reasons, your IP address will be stored when you send an image. Don't panic, it is normally the case of all sites on which you send files!"
|
||||
msgstr "Yes, it is! On the other side, for legal reasons, your IP address will be stored when you send an image. Don't panic, it is normally the case of all sites on which you send files!"
|
||||
|
||||
#:
|
||||
msgid "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://flattr.com/submit/auto?user_id=_SKy_&url=%1&title=Lutim&category=software\">Flattr</a> or with <a href=\"bitcoin:1JCEtmx9pyzWfitMQj2pKAk8GNgyix7RmA?label=lutim\">BitCoin</a>."
|
||||
msgstr "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://flattr.com/submit/auto?user_id=_SKy_&url=%1&title=Lutim&category=software\">Flattr</a> or with <a href=\"bitcoin:1JCEtmx9pyzWfitMQj2pKAk8GNgyix7RmA?label=lutim\">BitCoin</a>."
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr ""
|
||||
msgstr "You asked to download a zip archive for too much files."
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You can, optionally, request that the image(s) posted on Lutim to be deleted at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr "You can, optionally, request that the image(s) posted on Lutim to be deleted at first view (or download) or after the delay selected from those proposed."
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr "Zoom in/out"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr "and on"
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr "arabic translation"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr "core developer"
|
||||
|
||||
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr "no time limit"
|
||||
|
||||
#: themes/default/templates/about.html.ep:38
|
||||
msgid "occitan translation"
|
||||
msgstr ""
|
||||
msgstr "occitan translation"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "on"
|
||||
msgstr "on"
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr "paste image to upload ability"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr "russian translation"
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr "spanish translation"
|
||||
|
||||
@@ -5,24 +5,27 @@
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Luc Didry <luc@didry.org>, 2015
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Lutim\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2015-09-17 22:00+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@didry.org>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/fiat-tux/lutim/language/es/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2018-03-03 05:33+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@framasoft.org>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/fiat-tux/lutim/language/es/"
|
||||
")\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Zanata 4.3.3\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:3 themes/default/templates/partial/lutim.js.ep:138 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/partial/lutim.js.ep:148 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr "%1 días"
|
||||
|
||||
@@ -35,11 +38,11 @@ msgstr "%1 imágenes enviadas a esta instancia desde el inicio."
|
||||
msgid "-or-"
|
||||
msgstr "-o-"
|
||||
|
||||
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "1 año"
|
||||
|
||||
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 horas"
|
||||
|
||||
@@ -47,11 +50,15 @@ msgstr "24 horas"
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr ": Error al intentar obtener el contador."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:288
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "Error al intentar modificar la imagen."
|
||||
|
||||
@@ -59,7 +66,7 @@ msgstr "Error al intentar modificar la imagen."
|
||||
msgid "Archives download"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:41 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "Volver a la página inicial"
|
||||
|
||||
@@ -67,15 +74,19 @@ msgstr "Volver a la página inicial"
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Clic para abrir el explorador de archivos"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "Contribuidores"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:214 themes/default/templates/partial/lutim.js.ep:268 themes/default/templates/partial/lutim.js.ep:346
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr "Copiar todos los enlaces de visualización al portapapeles"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:105 themes/default/templates/partial/lutim.js.ep:120 themes/default/templates/partial/lutim.js.ep:79 themes/default/templates/partial/lutim.js.ep:91
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar al portapapeles"
|
||||
|
||||
@@ -91,7 +102,7 @@ msgstr ""
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:159
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "¿Borrar en la primera vista?"
|
||||
|
||||
@@ -107,11 +118,11 @@ msgstr ""
|
||||
msgid "Deletion link"
|
||||
msgstr "Enlace para borrar"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:6
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr "Descargar todas las imágenes"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:101 themes/default/templates/partial/lutim.js.ep:97
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "Enlace de descarga"
|
||||
|
||||
@@ -124,14 +135,22 @@ msgid "Drag & drop images here"
|
||||
msgstr "Arrastre y suelte imágenes aquí"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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 "Arrastre y suelte una imagen en el área apropiada, o use el método tradicional para enviar ficheros, y Lutim proporcionará cuatro URLs. Una para ver la imagen, otra para descargarla directamente, una que upede usar en redes sociales, y una última para borrar la imagen cuando lo desee."
|
||||
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 ""
|
||||
"Arrastre y suelte una imagen en el área apropiada, o use el método "
|
||||
"tradicional para enviar ficheros, y Lutim proporcionará cuatro URLs. Una "
|
||||
"para ver la imagen, otra para descargarla directamente, una que upede usar "
|
||||
"en redes sociales, y una última para borrar la imagen cuando lo desee."
|
||||
|
||||
#: themes/default/templates/index.html.ep:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "Las imágenes se cifran en el servidor (Lutim no guarda la clave)."
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:44
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr "Error al intentar modificar la imagen."
|
||||
|
||||
@@ -148,10 +167,14 @@ msgid "File name"
|
||||
msgstr "Nombre de archivo"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid "For more details, see the <a href=\"https://framagit.org/luc/lutim\">homepage of the project</a>."
|
||||
msgstr "Para más detalles, vea la <a href=\"https://framagit.org/luc/lutim\">página del proyecto</a>."
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"Para más detalles, vea la <a href=\"https://framagit.org/luc/lutim\">página "
|
||||
"del proyecto</a>."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:55
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "¡Clóname!"
|
||||
|
||||
@@ -163,7 +186,7 @@ msgstr "Enlace a la galería"
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr "Presione Ctrl + C, entonces Ingresar para copiar el enlace"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:50
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "Página inicial"
|
||||
|
||||
@@ -180,8 +203,12 @@ msgid "How to report an image?"
|
||||
msgstr "¿Cómo informar sobre una imagen?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "If the files are deleted if you ask it while posting it, their SHA512 footprint are retained."
|
||||
msgstr "Si los ficheros se borran por haberlo solicitado al enviarlos, se retiene su huella digital SHA512."
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"Si los ficheros se borran por haberlo solicitado al enviarlos, se retiene su "
|
||||
"huella digital SHA512."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
@@ -191,19 +218,19 @@ msgstr "URL de la imagen"
|
||||
msgid "Image delay"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:710
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr "Imagen no encontrada."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "Informaciones"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:62
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "Instalar webapp"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:61
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr ""
|
||||
|
||||
@@ -216,49 +243,64 @@ msgid "Is it really free (as in free beer)?"
|
||||
msgstr "¿Es realmente gratis?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr "Tal y como se pronuncia la palabra francesa <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"Tal y como se pronuncia la palabra francesa <a href=\"https://fr.wikipedia."
|
||||
"org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "Mantener las etiquetas EXIF"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:163
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "¡Vamos allá!"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
msgid "Liberapay button"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "Licencia:"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:111 themes/default/templates/partial/lutim.js.ep:115
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "Enlace para compartir en redes sociales"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid "Lutim can't zip so many images at once, so it splitted your demand in multiple URLs."
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lutim is a free (as in free beer) and anonymous image hosting service. It's also the name of the free (as in free speech) software which provides this service."
|
||||
msgstr "Lutim es un servicio de alojamiento de imágenes anónimo y gratuito. También es el nombre del software libre que proporciona este servicio."
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
"Lutim es un servicio de alojamiento de imágenes anónimo y gratuito. También "
|
||||
"es el nombre del software libre que proporciona este servicio."
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr "Desarrolladores principales"
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:85 themes/default/templates/partial/lutim.js.ep:88
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr "Sintaxis de Markdown"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:60 themes/default/templates/myfiles.html.ep:2
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr "Mis Imágenes"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr "Sin fecha de caducidad"
|
||||
@@ -268,12 +310,22 @@ msgid "Only images are allowed"
|
||||
msgstr "Sólo se admiten imágenes"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid "Only the images sent with this browser will be listed here. The informations are stored in localStorage: if you delete your localStorage data, you'll loose this informations."
|
||||
msgstr "Sólo se enumeran aquí las imágenes enviadas con este navegador. Las informaciones se almacenan en localStorage: si elimina sus datos localStorage, perderás esta información."
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"these details."
|
||||
msgstr ""
|
||||
"Sólo se enumeran aquí las imágenes enviadas con este navegador. Los detalles "
|
||||
"se almacenan en localStorage: si elimina sus datos localStorage, perderás "
|
||||
"estos detalles."
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "Only the uploader! (well, only if he's the only owner of the images' rights before the upload)"
|
||||
msgstr "¡Sólo el usuario! (bueno, sólo si él/ela es el único titular de los derechos de las imágenes antes de subirlas)"
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
"¡Sólo el usuario! (bueno, sólo si él/ela es el único titular de los derechos "
|
||||
"de las imágenes antes de subirlas)"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
@@ -284,6 +336,10 @@ msgstr ""
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Por favor, contacte con el administrador: %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr ""
|
||||
@@ -292,60 +348,85 @@ msgstr ""
|
||||
msgid "Send an image"
|
||||
msgstr "Enviar una imagen"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:20
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr "¡Compártelo!"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:56
|
||||
msgid "Share on Twitter"
|
||||
msgstr "Compartir en Twitter"
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/lutim.js.ep:174
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr "Algo malo ha pasado"
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:717
|
||||
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
|
||||
msgstr "Algo malo ha pasado. Inténtelo de nuevo más tarde o contacte con el administrador (%1)."
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
msgid ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
msgstr ""
|
||||
"Algo malo ha pasado. Inténtelo de nuevo más tarde o contacte con el "
|
||||
"administrador (%1)."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
#: themes/default/templates/partial/navbar.html.ep:52
|
||||
msgid "Support the author"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
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 "La dirección IP del remitente de la imagen se retiene durante un tiempo, que depende de lo que elija el administrador (para la instancia oficial, que está localizada en Francia, es un año)."
|
||||
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 ""
|
||||
"La dirección IP del remitente de la imagen se retiene durante un tiempo, que "
|
||||
"depende de lo que elija el administrador (para la instancia oficial, que "
|
||||
"está localizada en Francia, es un año)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/Free_software\">free software</a>, which allows you to download and install it on you own server. Have a look at the <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr "El software Lutim es <a href=\"http://es.wikipedia.org/wiki/Software_libre\">software libre</a>, lo que le permite descargarlo e instalarlo en su propio servidor. Eche un vistazo a la licencia <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> para ver qué puede hacer."
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
"El software Lutim es <a href=\"http://es.wikipedia.org/wiki/"
|
||||
"Software_libre\">software libre</a>, lo que le permite descargarlo e "
|
||||
"instalarlo en su propio servidor. Eche un vistazo a la licencia <a href="
|
||||
"\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> para ver qué puede "
|
||||
"hacer."
|
||||
|
||||
#: lib/Lutim/Controller.pm:307
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr "La URL no es válida."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid "The automatic download process will open a tab in your browser for each link. You need to allow popups for Lutim."
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:120 lib/Lutim/Controller.pm:188
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr "El código de borrado no es válido."
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:445
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:271 lib/Lutim/Controller.pm:340 themes/default/templates/partial/lutim.js.ep:240
|
||||
#: lib/Lutim/Controller.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr "El archivo supera el límite de tamaño (%1)"
|
||||
|
||||
@@ -354,16 +435,16 @@ 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.pm:190
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr "La imagen %1 ya se ha borrado."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:199 lib/Lutim/Controller.pm:204
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr "La imagen %1 se ha borrado correctamente"
|
||||
|
||||
#: lib/Lutim/Controller.pm:128
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
msgid "The image's delay has been successfully modified"
|
||||
msgstr "Se ha modificado correctamente el tiempo de la imagen"
|
||||
|
||||
@@ -372,42 +453,57 @@ 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)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 "Puede, opcionalmente, solicitar que la imagen publicada en Lutim se elimine con la primera vista (o descarga) o tras un tiempo seleccionado de entre varios propuestos."
|
||||
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 ""
|
||||
"Puede, opcionalmente, solicitar que la imagen publicada en Lutim se elimine "
|
||||
"con la primera vista (o descarga) o tras un tiempo seleccionado de entre "
|
||||
"varios propuestos."
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:442
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
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. %1"
|
||||
msgstr ""
|
||||
"No más URL disponibles. Inténtelo de nuevo o contacte con el administrador. "
|
||||
"%1"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
msgid "Tipeee button"
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:14
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr "¡Tuitéalo!"
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:162 lib/Lutim/Controller.pm:233
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr "No se ha podido encontrar la imagen %1."
|
||||
|
||||
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr "No se ha podido encontrar la imagen: ha sido borrada."
|
||||
|
||||
#: lib/Lutim/Controller.pm:105
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr "Imposible recuperar el contador"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "Unlike many image sharing services, you don't give us rights on uploaded images."
|
||||
msgstr "A diferencia de muchos servicios de compartición de imágenes, usted no cede los derechos de las imágenes que sube."
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
"A diferencia de muchos servicios de compartición de imágenes, usted no cede "
|
||||
"los derechos de las imágenes que sube."
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
@@ -422,11 +518,15 @@ msgid "Uploaded files by days"
|
||||
msgstr "Archivos enviados por día"
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:152
|
||||
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
|
||||
msgstr "La carga está deshabilitada en estos momentos, por favor inténtelo más tarde o contacte con el administrador (%1)."
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
"La carga está deshabilitada en estos momentos, por favor inténtelo más tarde "
|
||||
"o contacte con el administrador (%1)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:71 themes/default/templates/partial/lutim.js.ep:75
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr "Enlace de visualización"
|
||||
|
||||
@@ -443,30 +543,55 @@ msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr "¿Quién posee los derechos de las imágenes que se suben a Lutim?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "Yes, it is! On the other side, for legal reasons, your IP address will be stored when you send an image. Don't panic, it is normally the case of all sites on which you send files!"
|
||||
msgstr "¡Sí, lo es! Por otro lado, por razones legales, se almacena la dirección IP cuando se envía una imagen. Que no cunda el pánico, ¡es el caso habitual para todos los sitios a los cuales se envían ficheros!"
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
"¡Sí, lo es! Por otro lado, por razones legales, se almacena la dirección IP "
|
||||
"cuando se envía una imagen. Que no cunda el pánico, ¡es el caso habitual "
|
||||
"para todos los sitios a los cuales se envían ficheros!"
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr "¡Sí, lo es! Por otro lado, si quiere ayudar a apoyar al desarrollador, puede hacerlo vía <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> o con <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
"¡Sí, lo es! Por otro lado, si quiere ayudar a apoyar al desarrollador, puede "
|
||||
"hacerlo vía <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> o con <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You can, optionally, request that the image(s) posted on Lutim to be deleted at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr "Puede, opcionalmente, solicitar que la imagen publicada en Lutim se elimine con la primera vista (o descarga) o tras un tiempo seleccionado de entre varios propuestos."
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
"Puede, opcionalmente, solicitar que la imagen publicada en Lutim se elimine "
|
||||
"con la primera vista (o descarga) o tras un tiempo seleccionado de entre "
|
||||
"varios propuestos."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr "y en"
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr "desarrollador principal"
|
||||
|
||||
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr "Sin tiempo límite"
|
||||
|
||||
@@ -478,6 +603,14 @@ msgstr "traducción al occitano"
|
||||
msgid "on"
|
||||
msgstr "en"
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr "traducción al español"
|
||||
|
||||
@@ -5,24 +5,26 @@
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Luc Didry <luc@didry.org>, 2015
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Lutim\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2017-06-05 15:54+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@didry.org>\n"
|
||||
"Language-Team: French (http://www.transifex.com/fiat-tux/lutim/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-03-11 08:53+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@framasoft.org>\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.3.3\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:3 themes/default/templates/partial/lutim.js.ep:138 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/partial/lutim.js.ep:148 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr "%1 jours"
|
||||
|
||||
@@ -35,11 +37,11 @@ msgstr "%1 images envoyées sur cette instance depuis le début."
|
||||
msgid "-or-"
|
||||
msgstr "-ou-"
|
||||
|
||||
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "1 an"
|
||||
|
||||
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 heures"
|
||||
|
||||
@@ -47,11 +49,15 @@ msgstr "24 heures"
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr " : Erreur en essayant de récupérer le compteur."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr "À propos"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr "Images actives"
|
||||
|
||||
#: lib/Lutim/Controller.pm:288
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "Une erreur est survenue lors du téléchargement de l’image."
|
||||
|
||||
@@ -59,7 +65,7 @@ msgstr "Une erreur est survenue lors du téléchargement de l’image."
|
||||
msgid "Archives download"
|
||||
msgstr "Téléchargement d’archives"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "Retour à la page d’accueil"
|
||||
|
||||
@@ -67,15 +73,19 @@ msgstr "Retour à la page d’accueil"
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Cliquez pour utiliser le navigateur de fichier"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Fermer (Esc)"
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "Contributeurs"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:214 themes/default/templates/partial/lutim.js.ep:268 themes/default/templates/partial/lutim.js.ep:346
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr "Copier tous les liens de visualisation dans le presse-papier"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:105 themes/default/templates/partial/lutim.js.ep:120 themes/default/templates/partial/lutim.js.ep:79 themes/default/templates/partial/lutim.js.ep:91
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copier dans le presse-papier"
|
||||
|
||||
@@ -91,7 +101,7 @@ msgstr "Graphe de répartition des délais pour les images supprimées"
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr "Graphe de répartition des délais pour les images actives"
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:159
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "Supprimer au premier accès ?"
|
||||
|
||||
@@ -107,11 +117,11 @@ msgstr "Images supprimées dans 30 jours"
|
||||
msgid "Deletion link"
|
||||
msgstr "Lien de suppression"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:6
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr "Télécharger toutes les images"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:101 themes/default/templates/partial/lutim.js.ep:97
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "Lien de téléchargement"
|
||||
|
||||
@@ -124,14 +134,23 @@ msgid "Drag & drop images here"
|
||||
msgstr "Déposez vos images ici"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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 "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"
|
||||
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 ""
|
||||
"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"
|
||||
|
||||
#: themes/default/templates/index.html.ep:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "Chiffrer l’image (Lutim ne stocke pas la clé)."
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:44
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr "Une erreur est survenue en essayant de modifier l’image."
|
||||
|
||||
@@ -148,10 +167,14 @@ msgid "File name"
|
||||
msgstr "Nom du fichier"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid "For more details, see the <a href=\"https://framagit.org/luc/lutim\">homepage of the project</a>."
|
||||
msgstr "Pour plus de détails, consultez la page <a href=\"https://framagit.org/luc/lutim\">Github</a> du projet."
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"Pour plus de détails, consultez la page <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">Github</a> du projet."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:55
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "Créez un fork !"
|
||||
|
||||
@@ -163,7 +186,7 @@ msgstr "Lien vers la galerie"
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr "Faites Ctrl+C puis appuyez sur la touche Entrée pour copier le lien"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:50
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "Accueil"
|
||||
|
||||
@@ -180,8 +203,12 @@ msgid "How to report an image?"
|
||||
msgstr "Comment peut-on faire pour signaler une image ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "If the files are deleted if you ask it while posting it, their SHA512 footprint are retained."
|
||||
msgstr "Si les fichiers sont bien supprimés si vous en avez exprimé le choix, leur empreinte SHA512 est toutefois conservée."
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"Si les fichiers sont bien supprimés si vous en avez exprimé le choix, leur "
|
||||
"empreinte SHA512 est toutefois conservée."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
@@ -191,19 +218,19 @@ msgstr "URL de l’image"
|
||||
msgid "Image delay"
|
||||
msgstr "Durée de rétention de l’image"
|
||||
|
||||
#: lib/Lutim/Controller.pm:710
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr "Image non trouvée."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "Informations"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:62
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "Installer la webapp"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:61
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr "Statistiques de l’instance"
|
||||
|
||||
@@ -216,49 +243,66 @@ msgid "Is it really free (as in free beer)?"
|
||||
msgstr "C’est vraiment gratuit ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr "Comme on prononce <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"Comme on prononce <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> "
|
||||
"(/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "Conserver les données EXIF"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:163
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "Allons-y !"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
msgid "Liberapay button"
|
||||
msgstr "Bouton Liberapay"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "Licence :"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:111 themes/default/templates/partial/lutim.js.ep:115
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "Lien pour partager sur les réseaux sociaux"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid "Lutim can't zip so many images at once, so it splitted your demand in multiple URLs."
|
||||
msgstr "Lutim ne peut zipper autant d’images à la fois, votre demande a donc été découpée en plusieurs URL."
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
"Lutim ne peut zipper autant d’images à la fois, votre demande a donc été "
|
||||
"découpée en plusieurs URL."
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lutim is a free (as in free beer) and anonymous image hosting service. It's also the name of the free (as in free speech) software which provides this service."
|
||||
msgstr "Lutim est un service gratuit et anonyme d’hébergement d’images. Il s’agit aussi du nom du logiciel (libre) qui fournit ce service."
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
"Lutim est un service gratuit et anonyme d’hébergement d’images. Il s’agit "
|
||||
"aussi du nom du logiciel (libre) qui fournit ce service."
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr "Développeurs de l’application"
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:85 themes/default/templates/partial/lutim.js.ep:88
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr "Syntaxe Markdown"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:60 themes/default/templates/myfiles.html.ep:2
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr "Mes images"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr "Suivant (flêche droite)"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr "Pas de date d’expiration"
|
||||
@@ -268,22 +312,38 @@ msgid "Only images are allowed"
|
||||
msgstr "Seules les images sont acceptées"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid "Only the images sent with this browser will be listed here. The informations are stored in localStorage: if you delete your localStorage data, you'll loose this informations."
|
||||
msgstr "Seules les images envoyées avec ce navigateur seront listées ici. Les informations sont stockées en localStorage : si vous supprimez vos données localStorage, vous perdrez ces informations."
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"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 "
|
||||
"localStorage, vous perdrez ces détails."
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "Only the uploader! (well, only if he's the only owner of the images' rights before the upload)"
|
||||
msgstr "Seulement l’envoyeur ! (enfin, seulement s’il possède des droits exclusifs sur les images avant de les envoyer)"
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
"Seulement l’envoyeur ! (enfin, seulement s’il possède des droits exclusifs "
|
||||
"sur les images avant de les envoyer)"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
msgstr "Veuillez cliquer sur chaque URL pour télécharger les différents fichiers zip."
|
||||
msgstr ""
|
||||
"Veuillez cliquer sur chaque URL pour télécharger les différents fichiers zip."
|
||||
""
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:19
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Veuillez contacter l’administrateur : %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr "Précédent (flêche gauche)"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr "Statistiques brutes"
|
||||
@@ -292,62 +352,89 @@ msgstr "Statistiques brutes"
|
||||
msgid "Send an image"
|
||||
msgstr "Envoyer une image"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:20
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr "Partagez !"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:56
|
||||
msgid "Share on Twitter"
|
||||
msgstr "Partager sur Twitter"
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/lutim.js.ep:174
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr "Un problème est survenu"
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:717
|
||||
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
|
||||
msgstr "Quelque chose s’est mal passé lors de la création de l’archive. Veuillez réessayer plus tard ou contactez l’administrateur (%1)."
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
msgid ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
msgstr ""
|
||||
"Quelque chose s’est mal passé lors de la création de l’archive. Veuillez "
|
||||
"réessayer plus tard ou contactez l’administrateur (%1)."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
#: themes/default/templates/partial/navbar.html.ep:52
|
||||
msgid "Support the author"
|
||||
msgstr "Supportez l’auteur"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr "Supporter l’auteur sur Liberapay"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr "Supporter l’auteur sur Tipeee"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
msgstr "Supporter l’auteur avec des bitcoins"
|
||||
|
||||
#: 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)."
|
||||
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 ""
|
||||
"L’IP de la personne ayant déposé l’image est stockée pendant un délai dépendant de l’administrateur de l’instance (pour l’instance officielle, dont le serveur est en France, c’est un délai\n"
|
||||
"L’IP de la personne ayant déposé l’image est stockée pendant un délai "
|
||||
"dépendant de l’administrateur de l’instance (pour l’instance officielle, "
|
||||
"dont le serveur est en France, c’est un délai\n"
|
||||
" d’un an)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/Free_software\">free software</a>, which allows you to download and install it on you own server. Have a look at the <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr "Le logiciel Lutim est un <a href=\"https://fr.wikipedia.org/wiki/Logiciel_libre\">logiciel libre</a>, ce qui vous permet de le télécharger et de l’installer sur votre propre serveur. Jetez un coup d’œil à l’<a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> pour voir quels sont vos droits"
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
"Le logiciel Lutim est un <a href=\"https://fr.wikipedia.org/wiki/"
|
||||
"Logiciel_libre\">logiciel libre</a>, ce qui vous permet de le télécharger et "
|
||||
"de l’installer sur votre propre serveur. Jetez un coup d’œil à l’<a href="
|
||||
"\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> pour voir quels sont "
|
||||
"vos droits"
|
||||
|
||||
#: lib/Lutim/Controller.pm:307
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr "L’URL n’est pas valide."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid "The automatic download process will open a tab in your browser for each link. You need to allow popups for Lutim."
|
||||
msgstr "Le processus de téléchargement automatique va ouvrir un onglet dans votre navigateur pour chaque lien. Vous devez autoriser les fenêtres popup pour Lutim."
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
"Le processus de téléchargement automatique va ouvrir un onglet dans votre "
|
||||
"navigateur pour chaque lien. Vous devez autoriser les fenêtres popup pour "
|
||||
"Lutim."
|
||||
|
||||
#: lib/Lutim/Controller.pm:120 lib/Lutim/Controller.pm:188
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr "Le jeton de suppression est invalide."
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:445
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:271 lib/Lutim/Controller.pm:340 themes/default/templates/partial/lutim.js.ep:240
|
||||
#: lib/Lutim/Controller.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr "Le fichier dépasse la limite de taille (%1)"
|
||||
|
||||
@@ -356,60 +443,76 @@ 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.pm:190
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr "L’image %1 a déjà été supprimée."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:199 lib/Lutim/Controller.pm:204
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr "L’image %1 a été supprimée avec succès."
|
||||
|
||||
#: lib/Lutim/Controller.pm:128
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
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/index.html.ep:45
|
||||
msgid "The images are encrypted on the server (Lutim does not keep the key)."
|
||||
msgstr "Les images sont chiffrées sur le serveur (Lutim ne stocke pas la clé)."
|
||||
msgstr ""
|
||||
"Les images sont chiffrées sur le serveur (Lutim ne stocke pas la clé)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 "Les images déposées sur Lutim peuvent être stockées indéfiniment, ou s’effacer dès le premier affichage ou au bout du délai choisi parmi ceux proposés."
|
||||
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 ""
|
||||
"Les images déposées sur Lutim peuvent être stockées indéfiniment, ou "
|
||||
"s’effacer dès le premier affichage ou au bout du délai choisi parmi ceux "
|
||||
"proposés."
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:442
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
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."
|
||||
msgstr ""
|
||||
"Il n’y a plus d’URL disponible. Veuillez réessayer ou contacter "
|
||||
"l’administrateur. %1."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
msgid "Tipeee button"
|
||||
msgstr "Bouton Tipeee"
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr "Basculler le plein écran"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr "Étendre la barre de navigation"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:14
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr "Tweetez !"
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:162 lib/Lutim/Controller.pm:233
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr "Impossible de trouver l’image %1."
|
||||
|
||||
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr "Impossible de trouver l’image : elle a été supprimée."
|
||||
|
||||
#: lib/Lutim/Controller.pm:105
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr "Impossible de récupérer le compteur"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "Unlike many image sharing services, you don't give us rights on uploaded images."
|
||||
msgstr "Au contraire de la majorité des services de partages d’image, vous ne nous cédez aucun droit sur les images envoyées."
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
"Au contraire de la majorité des services de partages d’image, vous ne nous "
|
||||
"cédez aucun droit sur les images envoyées."
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
@@ -424,11 +527,15 @@ msgid "Uploaded files by days"
|
||||
msgstr "Fichiers envoyés, par jour"
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:152
|
||||
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
|
||||
msgstr "L’envoi d’images est actuellement désactivé, veuillez réessayer plus tard ou contacter l’administrateur (%1)."
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
"L’envoi d’images est actuellement désactivé, veuillez réessayer plus tard ou "
|
||||
"contacter l’administrateur (%1)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:71 themes/default/templates/partial/lutim.js.ep:75
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr "Lien d’affichage"
|
||||
|
||||
@@ -445,30 +552,58 @@ msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr "Qui possède des droits sur les images envoyées sur Lutim ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "Yes, it is! On the other side, for legal reasons, your IP address will be stored when you send an image. Don't panic, it is normally the case of all sites on which you send files!"
|
||||
msgstr "Oui, ça l’est ! Par contre, pour des raisons légales, votre adresse IP sera enregistrée lorsque vous enverrez une image. Ne vous affolez pas, c’est de toute façon normalement le cas de tous les sites sur lesquels vous envoyez des fichiers !"
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
"Oui, ça l’est ! Par contre, pour des raisons légales, votre adresse IP sera "
|
||||
"enregistrée lorsque vous enverrez une image. Ne vous affolez pas, c’est de "
|
||||
"toute façon normalement le cas de tous les sites sur lesquels vous envoyez "
|
||||
"des fichiers !"
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr "Oui, ça l’est ! Par contre, si vous avez envie de soutenir le développeur, vous pouvez faire un microdon avec <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> ou via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
"Oui, ça l’est ! Par contre, si vous avez envie de soutenir le développeur, "
|
||||
"vous pouvez faire un microdon avec <a href=\"https://www.tipeee.com/fiat-"
|
||||
"tux\">Tipeee</a> ou via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr "Vous avez demandé de télécharger une archive zip pour trop de fichiers."
|
||||
msgstr ""
|
||||
"Vous avez demandé de télécharger une archive zip pour trop de fichiers."
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You can, optionally, request that the image(s) posted on Lutim to be deleted at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr "Vous pouvez, de façon facultative, demander à ce que la ou les images déposées sur Lutim soient supprimées après leur premier affichage (ou téléchargement) ou au bout d’un délai choisi parmi ceux proposés."
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
"Vous pouvez, de façon facultative, demander à ce que la ou les images "
|
||||
"déposées sur Lutim soient supprimées après leur premier affichage (ou "
|
||||
"téléchargement) ou au bout d’un délai choisi parmi ceux proposés."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr "Zoomer / dézoomer"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr "et sur"
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr "traduction en arabe"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr "développeur principal"
|
||||
|
||||
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr "Pas de limitation de durée"
|
||||
|
||||
@@ -480,6 +615,14 @@ msgstr "traduction occitane"
|
||||
msgid "on"
|
||||
msgstr "sur"
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr "possibilité de coller une image pour l’envoyer"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr "traduction russe"
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr "traduction espagnole"
|
||||
|
||||
632
themes/default/lib/Lutim/I18N/fr_FR.po
Normal file
632
themes/default/lib/Lutim/I18N/fr_FR.po
Normal file
@@ -0,0 +1,632 @@
|
||||
# Lutim language file
|
||||
# Copyright (C) 2014 Luc Didry
|
||||
# This file is distributed under the same license as the Lutim package.
|
||||
#
|
||||
# Translators:
|
||||
# Translators:
|
||||
# Luc Didry <luc@didry.org>, 2015
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2018-03-11 08:53+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@framasoft.org>\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.3.3\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr "%1 jours"
|
||||
|
||||
#. ($total)
|
||||
#: themes/default/templates/stats.html.ep:2
|
||||
msgid "%1 sent images on this instance from beginning."
|
||||
msgstr "%1 images envoyées sur cette instance depuis le début."
|
||||
|
||||
#: themes/default/templates/index.html.ep:190
|
||||
msgid "-or-"
|
||||
msgstr "-ou-"
|
||||
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "1 an"
|
||||
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 heures"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:57
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr " : Erreur en essayant de récupérer le compteur."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr "À propos"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr "Images actives"
|
||||
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "Une erreur est survenue lors du téléchargement de l’image."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:2
|
||||
msgid "Archives download"
|
||||
msgstr "Téléchargement d’archives"
|
||||
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "Retour à la page d’accueil"
|
||||
|
||||
#: themes/default/templates/index.html.ep:193 themes/default/templates/index.html.ep:194
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Cliquez pour utiliser le navigateur de fichier"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Fermer (Esc)"
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "Contributeurs"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr "Copier tous les liens de visualisation dans le presse-papier"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copier dans le presse-papier"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:52
|
||||
msgid "Counter"
|
||||
msgstr "Compteur"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:18
|
||||
msgid "Delay repartition chart for disabled images"
|
||||
msgstr "Graphe de répartition des délais pour les images supprimées"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:15
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr "Graphe de répartition des délais pour les images actives"
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "Supprimer au premier accès ?"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:145 themes/default/templates/raw.html.ep:4
|
||||
msgid "Deleted images"
|
||||
msgstr "Images supprimées"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:146 themes/default/templates/raw.html.ep:5
|
||||
msgid "Deleted images in 30 days"
|
||||
msgstr "Images supprimées dans 30 jours"
|
||||
|
||||
#: themes/default/templates/index.html.ep:98 themes/default/templates/myfiles.html.ep:56 themes/default/templates/partial/common.js.ep:142 themes/default/templates/partial/common.js.ep:145
|
||||
msgid "Deletion link"
|
||||
msgstr "Lien de suppression"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr "Télécharger toutes les images"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "Lien de téléchargement"
|
||||
|
||||
#: themes/default/templates/index.html.ep:28 themes/default/templates/index.html.ep:31 themes/default/templates/myfiles.html.ep:30 themes/default/templates/myfiles.html.ep:33
|
||||
msgid "Download zip link"
|
||||
msgstr "Lien de téléchargement de l’archive des images"
|
||||
|
||||
#: themes/default/templates/index.html.ep:189
|
||||
msgid "Drag & drop images here"
|
||||
msgstr "Déposez vos images ici"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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 ""
|
||||
"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"
|
||||
|
||||
#: themes/default/templates/index.html.ep:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "Chiffrer l’image (Lutim ne stocke pas la clé)."
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr "Une erreur est survenue en essayant de modifier l’image."
|
||||
|
||||
#: themes/default/templates/stats.html.ep:10
|
||||
msgid "Evolution of total files"
|
||||
msgstr "Évolution du nombre total de fichiers"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:55
|
||||
msgid "Expires at"
|
||||
msgstr "Expire le"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:50
|
||||
msgid "File name"
|
||||
msgstr "Nom du fichier"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"Pour plus de détails, consultez la page <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">Github</a> du projet."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "Créez un fork !"
|
||||
|
||||
#: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:13 themes/default/templates/myfiles.html.ep:12 themes/default/templates/myfiles.html.ep:15
|
||||
msgid "Gallery link"
|
||||
msgstr "Lien vers la galerie"
|
||||
|
||||
#: themes/default/templates/partial/common.js.ep:104 themes/default/templates/partial/common.js.ep:87
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr "Faites Ctrl+C puis appuyez sur la touche Entrée pour copier le lien"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "Accueil"
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "How do you pronounce Lutim?"
|
||||
msgstr "Comment doit-on prononcer Lutim ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "How does it work?"
|
||||
msgstr "Comment ça marche ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "How to report an image?"
|
||||
msgstr "Comment peut-on faire pour signaler une image ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"Si les fichiers sont bien supprimés si vous en avez exprimé le choix, leur "
|
||||
"empreinte SHA512 est toutefois conservée."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
msgstr "URL de l’image"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:2
|
||||
msgid "Image delay"
|
||||
msgstr "Durée de rétention de l’image"
|
||||
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr "Image non trouvée."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "Informations"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "Installer la webapp"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr "Statistiques de l’instance"
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "Is it really anonymous?"
|
||||
msgstr "C’est vraiment anonyme ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "Is it really free (as in free beer)?"
|
||||
msgstr "C’est vraiment gratuit ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"Comme on prononce <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> "
|
||||
"(/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "Conserver les données EXIF"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr "Langue"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "Allons-y !"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "Licence :"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "Lien pour partager sur les réseaux sociaux"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
"Lutim ne peut zipper autant d’images à la fois, votre demande a donc été "
|
||||
"découpée en plusieurs URL."
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
"Lutim est un service gratuit et anonyme d’hébergement d’images. Il s’agit "
|
||||
"aussi du nom du logiciel (libre) qui fournit ce service."
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr "Développeurs de l’application"
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr "Syntaxe Markdown"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr "Mes images"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr "Suivant (flêche droite)"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr "Pas de date d’expiration"
|
||||
|
||||
#: themes/default/templates/index.html.ep:165 themes/default/templates/index.html.ep:198
|
||||
msgid "Only images are allowed"
|
||||
msgstr "Seules les images sont acceptées"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"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 "
|
||||
"localStorage, vous perdrez ces détails."
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
"Seulement l’envoyeur ! (enfin, seulement s’il possède des droits exclusifs "
|
||||
"sur les images avant de les envoyer)"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
msgstr ""
|
||||
"Veuillez cliquer sur chaque URL pour télécharger les différents fichiers zip."
|
||||
""
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:19
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Veuillez contacter l’administrateur : %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr "Précédent (flêche gauche)"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr "Statistiques brutes"
|
||||
|
||||
#: themes/default/templates/index.html.ep:158
|
||||
msgid "Send an image"
|
||||
msgstr "Envoyer une image"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr "Partagez !"
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr "Un problème est survenu"
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
msgid ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
msgstr ""
|
||||
"Quelque chose s’est mal passé lors de la création de l’archive. Veuillez "
|
||||
"réessayer plus tard ou contactez l’administrateur (%1)."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:52
|
||||
msgid "Support the author"
|
||||
msgstr "Supportez l’auteur"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr "Supporter l’auteur sur Liberapay"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr "Supporter l’auteur sur Tipeee"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
msgstr "Supporter l’auteur avec des bitcoins"
|
||||
|
||||
#: 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 ""
|
||||
"L’IP de la personne ayant déposé l’image est stockée pendant un délai "
|
||||
"dépendant de l’administrateur de l’instance (pour l’instance officielle, "
|
||||
"dont le serveur est en France, c’est un délai\n"
|
||||
" d’un an)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
"Le logiciel Lutim est un <a href=\"https://fr.wikipedia.org/wiki/"
|
||||
"Logiciel_libre\">logiciel libre</a>, ce qui vous permet de le télécharger et "
|
||||
"de l’installer sur votre propre serveur. Jetez un coup d’œil à l’<a href="
|
||||
"\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> pour voir quels sont "
|
||||
"vos droits"
|
||||
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr "L’URL n’est pas valide."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
"Le processus de téléchargement automatique va ouvrir un onglet dans votre "
|
||||
"navigateur pour chaque lien. Vous devez autoriser les fenêtres popup pour "
|
||||
"Lutim."
|
||||
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr "Le jeton de suppression est invalide."
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr "Le fichier dépasse la limite de taille (%1)"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:12
|
||||
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.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr "L’image %1 a déjà été supprimée."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr "L’image %1 a été supprimée avec succès."
|
||||
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
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/index.html.ep:45
|
||||
msgid "The images are encrypted on the server (Lutim does not keep the key)."
|
||||
msgstr ""
|
||||
"Les images sont chiffrées sur le serveur (Lutim ne stocke pas la clé)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 ""
|
||||
"Les images déposées sur Lutim peuvent être stockées indéfiniment, ou "
|
||||
"s’effacer dès le premier affichage ou au bout du délai choisi parmi ceux "
|
||||
"proposés."
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
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."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr "Basculler le plein écran"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr "Étendre la barre de navigation"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr "Tweetez !"
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr "Impossible de trouver l’image %1."
|
||||
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr "Impossible de trouver l’image : elle a été supprimée."
|
||||
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr "Impossible de récupérer le compteur"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
"Au contraire de la majorité des services de partages d’image, vous ne nous "
|
||||
"cédez aucun droit sur les images envoyées."
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
msgstr "Déposer une image par son URL"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:54
|
||||
msgid "Uploaded at"
|
||||
msgstr "Envoyé le"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:6
|
||||
msgid "Uploaded files by days"
|
||||
msgstr "Fichiers envoyés, par jour"
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
"L’envoi d’images est actuellement désactivé, veuillez réessayer plus tard ou "
|
||||
"contacter l’administrateur (%1)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr "Lien d’affichage"
|
||||
|
||||
#: themes/default/templates/about.html.ep:22
|
||||
msgid "What about the software which provides the service?"
|
||||
msgstr "Et à propos du logiciel qui fournit le service ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lutim?"
|
||||
msgstr "Qu’est-ce que Lutim ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:15
|
||||
msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr "Qui possède des droits sur les images envoyées sur Lutim ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
"Oui, ça l’est ! Par contre, pour des raisons légales, votre adresse IP sera "
|
||||
"enregistrée lorsque vous enverrez une image. Ne vous affolez pas, c’est de "
|
||||
"toute façon normalement le cas de tous les sites sur lesquels vous envoyez "
|
||||
"des fichiers !"
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
"Oui, ça l’est ! Par contre, si vous avez envie de soutenir le développeur, "
|
||||
"vous pouvez faire un microdon avec <a href=\"https://www.tipeee.com/fiat-"
|
||||
"tux\">Tipeee</a> ou via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr ""
|
||||
"Vous avez demandé de télécharger une archive zip pour trop de fichiers."
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
"Vous pouvez, de façon facultative, demander à ce que la ou les images "
|
||||
"déposées sur Lutim soient supprimées après leur premier affichage (ou "
|
||||
"téléchargement) ou au bout d’un délai choisi parmi ceux proposés."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr "Zoomer / dézoomer"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr "et sur"
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr "traduction en arabe"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr "développeur principal"
|
||||
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr "Pas de limitation de durée"
|
||||
|
||||
#: themes/default/templates/about.html.ep:38
|
||||
msgid "occitan translation"
|
||||
msgstr "traduction occitane"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "on"
|
||||
msgstr "sur"
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr "possibilité de coller une image pour l’envoyer"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr "traduction russe"
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr "traduction espagnole"
|
||||
|
||||
#: themes/default/templates/about.html.ep:28
|
||||
msgid "webapp developer"
|
||||
msgstr "développeur de la webapp"
|
||||
524
themes/default/lib/Lutim/I18N/lutim.pot
Normal file
524
themes/default/lib/Lutim/I18N/lutim.pot
Normal file
@@ -0,0 +1,524 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=CHARSET\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr ""
|
||||
|
||||
#. ($total)
|
||||
#: themes/default/templates/stats.html.ep:2
|
||||
msgid "%1 sent images on this instance from beginning."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:190
|
||||
msgid "-or-"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:57
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:2
|
||||
msgid "Archives download"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:193 themes/default/templates/index.html.ep:194
|
||||
msgid "Click to open the file browser"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:52
|
||||
msgid "Counter"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:18
|
||||
msgid "Delay repartition chart for disabled images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:15
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:145 themes/default/templates/raw.html.ep:4
|
||||
msgid "Deleted images"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:146 themes/default/templates/raw.html.ep:5
|
||||
msgid "Deleted images in 30 days"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:98 themes/default/templates/myfiles.html.ep:56 themes/default/templates/partial/common.js.ep:142 themes/default/templates/partial/common.js.ep:145
|
||||
msgid "Deletion link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:28 themes/default/templates/index.html.ep:31 themes/default/templates/myfiles.html.ep:30 themes/default/templates/myfiles.html.ep:33
|
||||
msgid "Download zip link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:189
|
||||
msgid "Drag & drop images here"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:10
|
||||
msgid "Evolution of total files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:55
|
||||
msgid "Expires at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:50
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid "For more details, see the <a href=\"https://framagit.org/luc/lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:13 themes/default/templates/myfiles.html.ep:12 themes/default/templates/myfiles.html.ep:15
|
||||
msgid "Gallery link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/common.js.ep:104 themes/default/templates/partial/common.js.ep:87
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "How do you pronounce Lutim?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "How does it work?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "How to report an image?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
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:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:2
|
||||
msgid "Image delay"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "Is it really anonymous?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "Is it really free (as in free beer)?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid "Lutim can't zip so many images at once, so it splitted your demand in multiple URLs."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lutim is a free (as in free beer) and anonymous image hosting service. It's also the name of the free (as in free speech) software which provides this service."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:165 themes/default/templates/index.html.ep:198
|
||||
msgid "Only images are allowed"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid "Only the images sent with this browser will be listed here. The details are stored in localStorage: if you delete your localStorage data, you'll loose these details."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "Only the uploader! (well, only if he's the only owner of the images' rights before the upload)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
msgstr ""
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:19
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:158
|
||||
msgid "Send an image"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr ""
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
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:52
|
||||
msgid "Support the author"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
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 ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/Free_software\">free software</a>, which allows you to download and install it on you own server. Have a look at the <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid "The automatic download process will open a tab in your browser for each link. You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr ""
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:12
|
||||
msgid "The graph's datas are not updated in real-time."
|
||||
msgstr ""
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr ""
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
msgid "The image's delay has been successfully modified"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:45
|
||||
msgid "The images are encrypted on the server (Lutim does not keep the key)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 ""
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
msgid "There is no more available URL. Retry or contact the administrator. %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "Unlike many image sharing services, you don't give us rights on uploaded images."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:54
|
||||
msgid "Uploaded at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/stats.html.ep:6
|
||||
msgid "Uploaded files by days"
|
||||
msgstr ""
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:22
|
||||
msgid "What about the software which provides the service?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lutim?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:15
|
||||
msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "Yes, it is! On the other side, for legal reasons, your IP address will be stored when you send an image. Don't panic, it is normally the case of all sites on which you send files!"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You can, optionally, request that the image(s) posted on Lutim to be deleted at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:38
|
||||
msgid "occitan translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "on"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:28
|
||||
msgid "webapp developer"
|
||||
msgstr ""
|
||||
@@ -2,26 +2,27 @@
|
||||
# Copyright (C) 2014 Luc Didry
|
||||
# This file is distributed under the same license as the Lutim package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Lutim\n"
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: Quentin Pagès\n"
|
||||
"Language-Team: Occitan (http://www.transifex.com/fiat-tux/lutim/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-03-03 05:34+0000\n"
|
||||
"Last-Translator: Luc Didry <luc@framasoft.org>\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.3.3\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/for_my_delay.html.ep:3 themes/default/templates/partial/lutim.js.ep:138 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/partial/lutim.js.ep:148 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr "%1 jorns"
|
||||
|
||||
@@ -34,11 +35,11 @@ msgstr "%1 imatges mandats sus aquesta instància dempuèi lo començament."
|
||||
msgid "-or-"
|
||||
msgstr "-o-"
|
||||
|
||||
#: lib/Lutim.pm:192 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "1 an"
|
||||
|
||||
#: lib/Lutim.pm:191 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:12 themes/default/templates/partial/lutim.js.ep:147 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 oras"
|
||||
|
||||
@@ -46,11 +47,15 @@ msgstr "24 oras"
|
||||
msgid ": Error while trying to get the counter."
|
||||
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:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr "Imatges actius"
|
||||
|
||||
#: lib/Lutim/Controller.pm:288
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "Una error es apareguda pendent lo telecargament de l'imatge."
|
||||
|
||||
@@ -58,7 +63,7 @@ msgstr "Una error es apareguda pendent lo telecargament de l'imatge."
|
||||
msgid "Archives download"
|
||||
msgstr "Telecargar los archius"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "Tornar a la pagina d'acuèlh"
|
||||
|
||||
@@ -66,15 +71,19 @@ msgstr "Tornar a la pagina d'acuèlh"
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Clicatz per utilizar lo navigator de fichièr"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Tampar (Esc)"
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "Contribudors"
|
||||
msgstr "Contributors"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:214 themes/default/templates/partial/lutim.js.ep:268 themes/default/templates/partial/lutim.js.ep:346
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr "Copiar totes los ligams de visualizacion dins lo quichapapièrs"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:105 themes/default/templates/partial/lutim.js.ep:120 themes/default/templates/partial/lutim.js.ep:79 themes/default/templates/partial/lutim.js.ep:91
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Copiar dins lo quichapapièrs"
|
||||
|
||||
@@ -90,7 +99,7 @@ msgstr "Grafic de despartiment dels delais pels imatges desactivats"
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr "Grafic de despartiment dels delais pels imatges activats"
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:159
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "Suprimir al primièr accès ?"
|
||||
|
||||
@@ -106,11 +115,11 @@ msgstr "Imatges per èsser suprimits dins 30 jorns"
|
||||
msgid "Deletion link"
|
||||
msgstr "Ligam de supression"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:6
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr "Telecargar totes los imatges"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:101 themes/default/templates/partial/lutim.js.ep:97
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "Ligam de telecargament"
|
||||
|
||||
@@ -123,14 +132,23 @@ msgid "Drag & drop images here"
|
||||
msgstr "Lisatz e depausatz vòstres imatges aquí"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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 "Depausatz vòstres imatges dins la zòna prevista per aquò o seleccionatz un fichièr d'un biais classic e Lutim vos donarà quatre URLs en torna. Una per afichar l'imatge, una mai per lo telecargar dirèctament, una per l'utilizar suls malhums socials e una darrièra per suprimir vòstre imatge quand volguèssetz."
|
||||
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 ""
|
||||
"Depausatz vòstres imatges dins la zòna prevista per aquò o seleccionatz un "
|
||||
"fichièr d'un biais classic e Lutim vos donarà quatre URLs en torna. Una per "
|
||||
"afichar l'imatge, una mai per lo telecargar dirèctament, una per l'utilizar "
|
||||
"suls malhums socials e una darrièra per suprimir vòstre imatge quand "
|
||||
"volguèssetz."
|
||||
|
||||
#: themes/default/templates/index.html.ep:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "Chifrar l'imatge (Lutim garda pas la clau)."
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:44
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr "Una error es apareguda al moment de modificar l'imatge."
|
||||
|
||||
@@ -147,10 +165,14 @@ msgid "File name"
|
||||
msgstr "Nom del fichièr"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid "For more details, see the <a href=\"https://framagit.org/luc/lutim\">homepage of the project</a>."
|
||||
msgstr "Per mai de detalhs, consultatz la pagina <a href=\"https://framagit.org/luc/lutim\">Github</a> del projècte."
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"Per mai de detalhs, consultatz la <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">pagina</a> del projècte."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:55
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "Tustatz-me !"
|
||||
|
||||
@@ -162,7 +184,7 @@ msgstr "Ligam cap a la galariá"
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr "Fasètz Ctrl+C puèi picatz Entrada per copiar lo ligam"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:50
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "Acuèlh"
|
||||
|
||||
@@ -172,15 +194,19 @@ msgstr "Cossí cal prononciar Lutim ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "How does it work?"
|
||||
msgstr "Cossí aquò marcha ?"
|
||||
msgstr "Cossí aquò fonciona ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "How to report an image?"
|
||||
msgstr "Qué far per senhalar un imatge ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "If the files are deleted if you ask it while posting it, their SHA512 footprint are retained."
|
||||
msgstr "Se los fichièrs son ben estats suprimits se o avètz demandat, lors signaturas SHA512 son gardadas."
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"Se los fichièrs son ben estats suprimits se o avètz demandat, lors "
|
||||
"signaturas SHA512 son gardadas."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
@@ -190,19 +216,19 @@ msgstr "URL de l'imatge"
|
||||
msgid "Image delay"
|
||||
msgstr "Delai de l'imatge"
|
||||
|
||||
#: lib/Lutim/Controller.pm:710
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr "Imatge pas trobat."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "Informacions"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:62
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "Installar la webapp"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:61
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr "Estatisticas de l'instància"
|
||||
|
||||
@@ -215,49 +241,67 @@ msgid "Is it really free (as in free beer)?"
|
||||
msgstr "Es vertadièrament gratuit ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr "Òm pronóncia coma en occitan lengadocian, LU-TI-N, amb una M finala que sona N, o coma la paraula francesa lutin (/ly.tɛ̃/)."
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"Òm pronóncia coma en occitan lengadocian, LU-TI-N, amb una M finala que sona "
|
||||
"N, o coma la paraula francesa <a href=\"https://fr.wikipedia.org/wiki/"
|
||||
"Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "Conservar las donadas EXIF"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:163
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr "Lenga"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "Zo !"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
msgid "Liberapay button"
|
||||
msgstr "Boton Liberapay"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "Licéncia :"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:111 themes/default/templates/partial/lutim.js.ep:115
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "Ligam per partejar suls malhums socials"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid "Lutim can't zip so many images at once, so it splitted your demand in multiple URLs."
|
||||
msgstr "Lutim pòt pas comprimir tan d'imatge d'un còp, a doncas trocejat vòstra demanda en multiplas URLs"
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
"Lutim pòt pas comprimir tan d'imatge d'un còp, a doncas trocejat vòstra "
|
||||
"demanda en multiplas URLs"
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lutim is a free (as in free beer) and anonymous image hosting service. It's also the name of the free (as in free speech) software which provides this service."
|
||||
msgstr "Lutim es un servici gratuit e anonim d’albergament d’imatges. S’agís tanben del nom del logicial (liure) que fornís aqueste servici."
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
"Lutim es un servici gratuit e anonim d’albergament d’imatges. S’agís tanben "
|
||||
"del nom del logicial (liure) que fornís aqueste servici."
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr "Desvolopaires de l'aplicacion"
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:85 themes/default/templates/partial/lutim.js.ep:88
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr "Sintaxi Markdown"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:60 themes/default/templates/myfiles.html.ep:2
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr "Mos imatges"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr "Seguent (sageta dreita)"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr "Pas cap de data d'expiracion"
|
||||
@@ -267,22 +311,37 @@ msgid "Only images are allowed"
|
||||
msgstr "Solament son acceptats los imatges"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid "Only the images sent with this browser will be listed here. The informations are stored in localStorage: if you delete your localStorage data, you'll loose this informations."
|
||||
msgstr "Solament los imatges mandats amb aqueste navigador seràn listats aquí. Las informacions son gardadas en localStorage : se escafatz vòstras donadas localStorage, perdretz aquelas informacions."
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"these details."
|
||||
msgstr ""
|
||||
"Solament los imatges mandats amb aqueste navigador seràn listats aquí. Las "
|
||||
"menudalhas son gardadas en localStorage : se escafatz vòstras donadas "
|
||||
"localStorage, perdretz aquelas menudalhas."
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "Only the uploader! (well, only if he's the only owner of the images' rights before the upload)"
|
||||
msgstr "Solament lo qu'a mandat ! (ben, solament se ten los dreits exclusius dels imatges abans de los mandar)"
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
"Solament lo qu'a mandat ! (ben, solament se ten los dreits exclusius dels "
|
||||
"imatges abans de los mandar)"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
msgstr "Mercés de clicar sus cada URL per telecargar los diferents archius ZIP."
|
||||
msgstr ""
|
||||
"Mercés de clicar sus cada URL per telecargar los diferents archius ZIP."
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:19
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Mercés de contactar l'administrator : %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr "Precedent (sageta esquèrra)"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr "Estatisticas brutas"
|
||||
@@ -291,60 +350,86 @@ msgstr "Estatisticas brutas"
|
||||
msgid "Send an image"
|
||||
msgstr "Mandar un imatge"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:20
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr "Partejatz-lo !"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:56
|
||||
msgid "Share on Twitter"
|
||||
msgstr "Partejar sus Twitter"
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/lutim.js.ep:174
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr "Un problèma es aparegut"
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:717
|
||||
msgid "Something went wrong when creating the zip file. Try again later or contact the administrator (%1)."
|
||||
msgstr "Quicòm a trucat pendent la creacion de l'archiu. Mercés de tornar ensajar pus tard o de contactar l'administrator (%1)."
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
msgid ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
msgstr ""
|
||||
"Quicòm a trucat pendent la creacion de l'archiu. Mercés de tornar ensajar "
|
||||
"pus tard o de contactar l'administrator (%1)."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58
|
||||
#: themes/default/templates/partial/navbar.html.ep:52
|
||||
msgid "Support the author"
|
||||
msgstr "Sostenir l’autor"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr "Sostenir l'autor sus Liberapay"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr "Sostenir l'autor sus Tipeee"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
msgstr "Sostenir l’autor amb bitcoins"
|
||||
|
||||
#: 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 "L’IP de la persona que mandèt l'imatge es gardada pendent un delai que depend de l'administrator de l'instància (per l'instància oficiala que lo servidor es en França, es un delai d'un an)."
|
||||
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 ""
|
||||
"L’IP de la persona que mandèt l'imatge es gardada pendent un delai que "
|
||||
"depend de l'administrator de l'instància (per l'instància oficiala que lo "
|
||||
"servidor es en França, es un delai d'un an)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/Free_software\">free software</a>, which allows you to download and install it on you own server. Have a look at the <a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr "Lo logicial Lutim es un <a href=\"https://oc.wikipedia.org/wiki/Logicial_liure\">logicial liure</a>, que permet de lo telecargar e de l’installar sus vòstre pròpri servidor. Gaitatz l’<a href=\"https://www.gnu.org/licenses/agpl-3.0.html\">AGPL</a> per veire que son vòstres dreits"
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
"Lo logicial Lutim es un <a href=\"https://oc.wikipedia.org/wiki/"
|
||||
"Logicial_liure\">logicial liure</a>, que permet de lo telecargar e de "
|
||||
"l’installar sus vòstre pròpri servidor. Gaitatz l’<a href=\"https://www.gnu."
|
||||
"org/licenses/agpl-3.0.html\">AGPL</a> per veire que son vòstres dreits"
|
||||
|
||||
#: lib/Lutim/Controller.pm:307
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr "L'URL n'es pas valida."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid "The automatic download process will open a tab in your browser for each link. You need to allow popups for Lutim."
|
||||
msgstr "Lo processús automatic de telecargament obrirà un onglet dins lo navigato per cada ligam. Vos cal autorizar las popups per Lutim."
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
"Lo processús automatic de telecargament obrirà un onglet dins lo navigato "
|
||||
"per cada ligam. Vos cal autorizar las popups per Lutim."
|
||||
|
||||
#: lib/Lutim/Controller.pm:120 lib/Lutim/Controller.pm:188
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr "Lo geton de supression es invalida."
|
||||
msgstr "Lo geton de supression es invalid."
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:445
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:271 lib/Lutim/Controller.pm:340 themes/default/templates/partial/lutim.js.ep:240
|
||||
#: lib/Lutim/Controller.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr "Lo fichièr depassa lo limit de talha (%1)"
|
||||
|
||||
@@ -353,16 +438,16 @@ 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.pm:190
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr "L'imatge %1 es ja estat suprimit."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:199 lib/Lutim/Controller.pm:204
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr "L'imatge %1 es estat suprimit amb succès."
|
||||
|
||||
#: lib/Lutim/Controller.pm:128
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
msgid "The image's delay has been successfully modified"
|
||||
msgstr "Lo delai de l'imatge es plan estat modificat."
|
||||
|
||||
@@ -371,42 +456,56 @@ msgid "The images are encrypted on the server (Lutim does not keep the key)."
|
||||
msgstr "Los imatges son chifrats sul servidor (Lutim garda pas la clau)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 "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."
|
||||
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 ""
|
||||
"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."
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:442
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
msgid "There is no more available URL. Retry or contact the administrator. %1"
|
||||
msgstr "I a pas mai d'URL disponibla. Mercés de tornar ensajar o de contactar l'administrator. %1."
|
||||
msgstr ""
|
||||
"I a pas mai d'URL disponiblas. Mercés de tornar ensajar o de contactar "
|
||||
"l'administrator. %1."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:57
|
||||
msgid "Tipeee button"
|
||||
msgstr "Boton Tipeee"
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr "Passar al plen ecran"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr "Passar en navigacion"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr "Total"
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:14
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr "Tweetejatz-lo !"
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:162 lib/Lutim/Controller.pm:233
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr "Impossible de trobar l'imatge %1."
|
||||
|
||||
#: lib/Lutim/Controller.pm:529 lib/Lutim/Controller.pm:574 lib/Lutim/Controller.pm:616 lib/Lutim/Controller.pm:659 lib/Lutim/Controller.pm:671 lib/Lutim/Controller.pm:682 lib/Lutim/Controller.pm:707 lib/Lutim/Plugin/Helpers.pm:57
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr "Impossible de trobar l'imatge : es estat suprimit."
|
||||
|
||||
#: lib/Lutim/Controller.pm:105
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr "Impossible de recuperar lo comptador"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "Unlike many image sharing services, you don't give us rights on uploaded images."
|
||||
msgstr "A l'invèrse de la màger part dels servicis de partiment d'imatge, daissatz pas cap de dreit suls imatges que mandatz."
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
"A l'invèrse de la màger part dels servicis de partiment d'imatge, daissatz "
|
||||
"pas cap de dreit suls imatges que mandatz."
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
@@ -421,11 +520,15 @@ msgid "Uploaded files by days"
|
||||
msgstr "Fichièrs mandats per jorn"
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:152
|
||||
msgid "Uploading is currently disabled, please try later or contact the administrator (%1)."
|
||||
msgstr "La mesa en linha es desactivada pel moment, mercés de tornar ensajar mai tard o de contactar l'administrator (%1)."
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
"La mesa en linha es desactivada pel moment, mercés de tornar ensajar mai "
|
||||
"tard o de contactar l'administrator (%1)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:71 themes/default/templates/partial/lutim.js.ep:75
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr "Ligam d'afichatge"
|
||||
|
||||
@@ -442,30 +545,56 @@ msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr "Qual a los dreits suls imatges mandats sus Lutim ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "Yes, it is! On the other side, for legal reasons, your IP address will be stored when you send an image. Don't panic, it is normally the case of all sites on which you send files!"
|
||||
msgstr "Òc, es aquò ! Al contrari, per de rasons legalas, vòstra adreça IP serà enregistrada quand mandaretz un imatge. Perdetz pas lo cap, normalament es çò normal pels demai dels sites suls quals mandatz de fichièrs !"
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
"Òc, es aquò ! Al contrari, per de rasons legalas, vòstra adreça IP serà "
|
||||
"enregistrada quand mandaretz un imatge. Perdetz pas lo cap, normalament es "
|
||||
"çò normal pels demai dels sites suls quals mandatz de fichièrs !"
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Yes, it is! On the other side, if you want to support the developer, you can do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr "Òc, o es ! Al contrari, s'avètz enveja de sosténer lo desvolopaire, podètz far un microdon amb <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> o via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
"Òc, o es ! Al contrari, s'avètz enveja de sosténer lo desvolopaire, podètz "
|
||||
"far un microdon amb <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> o "
|
||||
"via <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr "Avètz demandat de telecargar tròp d'imatges d'un còp dins un archiu ZIP."
|
||||
msgstr ""
|
||||
"Avètz demandat de telecargar tròp d'imatges d'un còp dins un archiu ZIP."
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You can, optionally, request that the image(s) posted on Lutim to be deleted at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr "Podètz, d'un biais facultatiu, demandar que l'imatge o los imatges depausats sus Lutim sián suprimits aprèp lor primièr afichatge (o telecargament) o al cap d'un delai causit entre las prepausadas."
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
"Podètz, d'un biais facultatiu, demandar que l'imatge o los imatges depausats "
|
||||
"sus Lutim sián suprimits aprèp lor primièr afichatge (o telecargament) o al "
|
||||
"cap d'un delai causit entre las prepausadas."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr "Agrandir/Reduire"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr "e sus"
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr "traduccion en arabi"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr "desvolopaire màger"
|
||||
|
||||
#: lib/Lutim.pm:190 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr "Pas cap de limitacion de durada"
|
||||
|
||||
@@ -477,6 +606,14 @@ msgstr "traduccion en occitan"
|
||||
msgid "on"
|
||||
msgstr "sus"
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr "possibilitat de pegar un imatge per lo mandar"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr "traduccion en espanhòl"
|
||||
|
||||
618
themes/default/lib/Lutim/I18N/ru.po
Normal file
618
themes/default/lib/Lutim/I18N/ru.po
Normal file
@@ -0,0 +1,618 @@
|
||||
# Luc Didry <luc@framasoft.org>, 2018. #zanata
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"PO-Revision-Date: 2018-03-11 08:50+0000\n"
|
||||
"Last-Translator: Copied by Zanata <copied-by-zanata@zanata.org>\n"
|
||||
"Language-Team: Russian\n"
|
||||
"Language: ru\n"
|
||||
"X-Generator: Zanata 4.3.3\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<="
|
||||
"4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
|
||||
#. (7)
|
||||
#. (30)
|
||||
#. ($delay)
|
||||
#. (config('max_delay')
|
||||
#: lib/Lutim/Command/cron/stats.pm:149 lib/Lutim/Command/cron/stats.pm:150 lib/Lutim/Command/cron/stats.pm:160 lib/Lutim/Command/cron/stats.pm:161 lib/Lutim/Command/cron/stats.pm:177 lib/Lutim/Command/cron/stats.pm:178 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:142 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/partial/lutim.js.ep:152 themes/default/templates/raw.html.ep:19 themes/default/templates/raw.html.ep:20 themes/default/templates/raw.html.ep:36 themes/default/templates/raw.html.ep:37 themes/default/templates/raw.html.ep:8 themes/default/templates/raw.html.ep:9
|
||||
msgid "%1 days"
|
||||
msgstr "%1 дней"
|
||||
|
||||
#. ($total)
|
||||
#: themes/default/templates/stats.html.ep:2
|
||||
msgid "%1 sent images on this instance from beginning."
|
||||
msgstr "%1 изображений загружено в этот экземпляр с самого начала."
|
||||
|
||||
#: themes/default/templates/index.html.ep:190
|
||||
msgid "-or-"
|
||||
msgstr "-или-"
|
||||
|
||||
#: lib/Lutim.pm:187 lib/Lutim/Command/cron/stats.pm:151 lib/Lutim/Command/cron/stats.pm:162 lib/Lutim/Command/cron/stats.pm:179 themes/default/templates/index.html.ep:5 themes/default/templates/raw.html.ep:10 themes/default/templates/raw.html.ep:21 themes/default/templates/raw.html.ep:38
|
||||
msgid "1 year"
|
||||
msgstr "1 год"
|
||||
|
||||
#: lib/Lutim.pm:186 lib/Lutim/Command/cron/stats.pm:148 lib/Lutim/Command/cron/stats.pm:159 lib/Lutim/Command/cron/stats.pm:176 themes/default/templates/index.html.ep:4 themes/default/templates/partial/for_my_delay.html.ep:13 themes/default/templates/partial/lutim.js.ep:151 themes/default/templates/raw.html.ep:18 themes/default/templates/raw.html.ep:35 themes/default/templates/raw.html.ep:7
|
||||
msgid "24 hours"
|
||||
msgstr "24 часа"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:57
|
||||
msgid ": Error while trying to get the counter."
|
||||
msgstr ": Error while trying to get the counter."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:77
|
||||
msgid "About"
|
||||
msgstr "О Lutim"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:144 themes/default/templates/raw.html.ep:3
|
||||
msgid "Active images"
|
||||
msgstr "Активные изображения"
|
||||
|
||||
#: lib/Lutim/Controller.pm:326
|
||||
msgid "An error occured while downloading the image."
|
||||
msgstr "Произошла ошибка при скачивании изображения."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:2
|
||||
msgid "Archives download"
|
||||
msgstr "Archives download"
|
||||
|
||||
#: themes/default/templates/about.html.ep:44 themes/default/templates/myfiles.html.ep:64 themes/default/templates/stats.html.ep:25
|
||||
msgid "Back to homepage"
|
||||
msgstr "Вернуться на главную страницу"
|
||||
|
||||
#: themes/default/templates/index.html.ep:193 themes/default/templates/index.html.ep:194
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Щёлкните для выбора файлов"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:27
|
||||
msgid "Close (Esc)"
|
||||
msgstr "Закрыть (Esc)"
|
||||
|
||||
#: themes/default/templates/about.html.ep:30
|
||||
msgid "Contributors"
|
||||
msgstr "Участники"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:218 themes/default/templates/partial/lutim.js.ep:272 themes/default/templates/partial/lutim.js.ep:350
|
||||
msgid "Copy all view links to clipboard"
|
||||
msgstr "Скопировать в буфер все ссылки на просмотр"
|
||||
|
||||
#: themes/default/templates/index.html.ep:18 themes/default/templates/index.html.ep:36 themes/default/templates/index.html.ep:69 themes/default/templates/index.html.ep:77 themes/default/templates/index.html.ep:85 themes/default/templates/index.html.ep:93 themes/default/templates/myfiles.html.ep:20 themes/default/templates/myfiles.html.ep:38 themes/default/templates/partial/common.js.ep:150 themes/default/templates/partial/lutim.js.ep:108 themes/default/templates/partial/lutim.js.ep:123 themes/default/templates/partial/lutim.js.ep:82 themes/default/templates/partial/lutim.js.ep:94
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Скопировать в буфер"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:52
|
||||
msgid "Counter"
|
||||
msgstr "Счётчик"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:18
|
||||
msgid "Delay repartition chart for disabled images"
|
||||
msgstr "Распределение сроков хранения недоступных изображений"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:15
|
||||
msgid "Delay repartition chart for enabled images"
|
||||
msgstr "Распределение сроков хранения доступных изображений"
|
||||
|
||||
#: themes/default/templates/index.html.ep:115 themes/default/templates/index.html.ep:147 themes/default/templates/index.html.ep:178 themes/default/templates/myfiles.html.ep:53 themes/default/templates/partial/lutim.js.ep:163
|
||||
msgid "Delete at first view?"
|
||||
msgstr "Удалить после первого просмотра?"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:145 themes/default/templates/raw.html.ep:4
|
||||
msgid "Deleted images"
|
||||
msgstr "Удалённые изображения"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:146 themes/default/templates/raw.html.ep:5
|
||||
msgid "Deleted images in 30 days"
|
||||
msgstr "Удалить изображения через 30 дней"
|
||||
|
||||
#: themes/default/templates/index.html.ep:98 themes/default/templates/myfiles.html.ep:56 themes/default/templates/partial/common.js.ep:142 themes/default/templates/partial/common.js.ep:145
|
||||
msgid "Deletion link"
|
||||
msgstr "Ссылка на удаление"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:8
|
||||
msgid "Download all images"
|
||||
msgstr "Скачать все изображения"
|
||||
|
||||
#: themes/default/templates/index.html.ep:81 themes/default/templates/index.html.ep:83 themes/default/templates/partial/lutim.js.ep:100 themes/default/templates/partial/lutim.js.ep:104
|
||||
msgid "Download link"
|
||||
msgstr "Ссылка на скачивание"
|
||||
|
||||
#: themes/default/templates/index.html.ep:28 themes/default/templates/index.html.ep:31 themes/default/templates/myfiles.html.ep:30 themes/default/templates/myfiles.html.ep:33
|
||||
msgid "Download zip link"
|
||||
msgstr "Ссылка на скачивание zip-архивом"
|
||||
|
||||
#: themes/default/templates/index.html.ep:189
|
||||
msgid "Drag & drop images here"
|
||||
msgstr "Перетащите и бросьте изображения сюда"
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
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 ""
|
||||
"Перетащите и бросьте изображение либо воспользуйтесь традиционным путём для "
|
||||
"загрузки файлов, и Lutim предоставит вам четыре URL. Один для просмотра "
|
||||
"изображения, другой — для скачивания, следующий вы можете использовать в "
|
||||
"социальных сетях и последний — для удаления изображения, когда заходите."
|
||||
|
||||
#: themes/default/templates/index.html.ep:150 themes/default/templates/index.html.ep:181
|
||||
msgid "Encrypt the image (Lutim does not keep the key)."
|
||||
msgstr "Зашифровать изображение (Lutim не хранит ключ)."
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:47
|
||||
msgid "Error while trying to modify the image."
|
||||
msgstr "Ошибка при попытке модифицировать изображение."
|
||||
|
||||
#: themes/default/templates/stats.html.ep:10
|
||||
msgid "Evolution of total files"
|
||||
msgstr "Общее количество файлов"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:55
|
||||
msgid "Expires at"
|
||||
msgstr "Истекает в"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:50
|
||||
msgid "File name"
|
||||
msgstr "Имя файла"
|
||||
|
||||
#: themes/default/templates/about.html.ep:24
|
||||
msgid ""
|
||||
"For more details, see the <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">homepage of the project</a>."
|
||||
msgstr ""
|
||||
"Чтоб узнать больше, посетите <a href=\"https://framagit.org/luc/"
|
||||
"lutim\">главную страницу проекта</a>."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:80
|
||||
msgid "Fork me!"
|
||||
msgstr "Форкни меня!"
|
||||
|
||||
#: themes/default/templates/index.html.ep:10 themes/default/templates/index.html.ep:13 themes/default/templates/myfiles.html.ep:12 themes/default/templates/myfiles.html.ep:15
|
||||
msgid "Gallery link"
|
||||
msgstr "Ссылка на галерею"
|
||||
|
||||
#: themes/default/templates/partial/common.js.ep:104 themes/default/templates/partial/common.js.ep:87
|
||||
msgid "Hit Ctrl+C, then Enter to copy the short link"
|
||||
msgstr "Нажмите Ctrl+C, а затем Enter для копирования короткой ссылки"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:54
|
||||
msgid "Homepage"
|
||||
msgstr "Главная страница"
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "How do you pronounce Lutim?"
|
||||
msgstr "Как произносится Lutim?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "How does it work?"
|
||||
msgstr "Как это работает?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "How to report an image?"
|
||||
msgstr "Как пожаловаться на изображение?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid ""
|
||||
"If the files are deleted if you ask it while posting it, their SHA512 "
|
||||
"footprint are retained."
|
||||
msgstr ""
|
||||
"Если файлы были удалены, потому что вы указали это при их загрузке, их "
|
||||
"контрольные суммы SHA512 сохранятся."
|
||||
|
||||
#: themes/default/templates/index.html.ep:163 themes/default/templates/index.html.ep:203
|
||||
msgid "Image URL"
|
||||
msgstr "URL изображения"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:143 themes/default/templates/raw.html.ep:2
|
||||
msgid "Image delay"
|
||||
msgstr "Срок хранения"
|
||||
|
||||
#: lib/Lutim/Controller.pm:748
|
||||
msgid "Image not found."
|
||||
msgstr "Изображение не найдено."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:69
|
||||
msgid "Informations"
|
||||
msgstr "Информация"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:33
|
||||
msgid "Install webapp"
|
||||
msgstr "Установить веб-приложение"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:29
|
||||
msgid "Instance's statistics"
|
||||
msgstr "Статистика экземпляра"
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "Is it really anonymous?"
|
||||
msgstr "Это действительно анонимно?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "Is it really free (as in free beer)?"
|
||||
msgstr "Это действительно бесплатно (as in free beer)?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid ""
|
||||
"Juste like you pronounce the French word <a href=\"https://fr.wikipedia.org/"
|
||||
"wiki/Lutin\">lutin</a> (/ly.tɛ̃/)."
|
||||
msgstr ""
|
||||
"Как французское слово <a href=\"https://fr.wikipedia.org/wiki/Lutin\">lutin</"
|
||||
"a> (/ly.tɛ̃/)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:153 themes/default/templates/index.html.ep:184
|
||||
msgid "Keep EXIF tags"
|
||||
msgstr "Сохранить EXIF-теги"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:40
|
||||
msgid "Language"
|
||||
msgstr "Язык"
|
||||
|
||||
#: themes/default/templates/index.html.ep:118 themes/default/templates/index.html.ep:166 themes/default/templates/index.html.ep:206 themes/default/templates/partial/lutim.js.ep:167
|
||||
msgid "Let's go!"
|
||||
msgstr "Вперёд!"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:74
|
||||
msgid "License:"
|
||||
msgstr "Лицензия:"
|
||||
|
||||
#: themes/default/templates/index.html.ep:89 themes/default/templates/index.html.ep:91 themes/default/templates/partial/lutim.js.ep:114 themes/default/templates/partial/lutim.js.ep:118
|
||||
msgid "Link for share on social networks"
|
||||
msgstr "Ссылка для того, чтоб поделиться в социальных сетях"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:7
|
||||
msgid ""
|
||||
"Lutim can't zip so many images at once, so it splitted your demand in "
|
||||
"multiple URLs."
|
||||
msgstr ""
|
||||
"Lutim не может сархивировать так много картинок за раз, поэтому ваш запрос "
|
||||
"разбит на несколько URL."
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid ""
|
||||
"Lutim is a free (as in free beer) and anonymous image hosting service. It's "
|
||||
"also the name of the free (as in free speech) software which provides this "
|
||||
"service."
|
||||
msgstr ""
|
||||
"Lutim — это бесплатный (as in free beer) и анонимный сервис размещения "
|
||||
"изображений. Также это название свободного (as in free speech) программного "
|
||||
"обеспечения, предоставляющего этот сервис."
|
||||
|
||||
#: themes/default/templates/about.html.ep:25
|
||||
msgid "Main developers"
|
||||
msgstr "Главные разработчики"
|
||||
|
||||
#: themes/default/templates/index.html.ep:73 themes/default/templates/index.html.ep:75 themes/default/templates/partial/lutim.js.ep:88 themes/default/templates/partial/lutim.js.ep:91
|
||||
msgid "Markdown syntax"
|
||||
msgstr "Синтаксис Маркдауна"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:2 themes/default/templates/partial/navbar.html.ep:26
|
||||
msgid "My images"
|
||||
msgstr "Мои изображения"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:43
|
||||
msgid "Next (arrow right)"
|
||||
msgstr "Следующий (стрелка вправо)"
|
||||
|
||||
#: themes/default/templates/partial/myfiles.js.ep:19
|
||||
msgid "No limit"
|
||||
msgstr "Без ограничений"
|
||||
|
||||
#: themes/default/templates/index.html.ep:165 themes/default/templates/index.html.ep:198
|
||||
msgid "Only images are allowed"
|
||||
msgstr "Разрешены только изображения"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:6
|
||||
msgid ""
|
||||
"Only the images sent with this browser will be listed here. The details are "
|
||||
"stored in localStorage: if you delete your localStorage data, you'll loose "
|
||||
"these details."
|
||||
msgstr ""
|
||||
"Здесь перечислены только изображения, загруженные через браузер. Статистика "
|
||||
"хранится в localStorage: если вы удалите данные localStorage, вы потеряете "
|
||||
"эту статистику."
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid ""
|
||||
"Only the uploader! (well, only if he's the only owner of the images' rights "
|
||||
"before the upload)"
|
||||
msgstr ""
|
||||
"Только тот, кто загрузил! (ну хорошо, только если он — единственный "
|
||||
"правообладатель изображений до загрузки)"
|
||||
|
||||
#: themes/default/templates/zip.html.ep:12
|
||||
msgid "Please click on each URL to download the different zip files."
|
||||
msgstr ""
|
||||
"Пожалуйста, щёлкните по каждому URL для скачивания отдельными zip-архивами."
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:19
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Пожалуйста, свяжитесь с администратором: %1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:41
|
||||
msgid "Previous (arrow left)"
|
||||
msgstr "Предыдущий (стрелка влево)"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:22
|
||||
msgid "Raw stats"
|
||||
msgstr "Сырые статистические данные"
|
||||
|
||||
#: themes/default/templates/index.html.ep:158
|
||||
msgid "Send an image"
|
||||
msgstr "Послать изображение"
|
||||
|
||||
#: themes/default/templates/partial/lutim.js.ep:23
|
||||
msgid "Share it!"
|
||||
msgstr "Поделиться!"
|
||||
|
||||
#: themes/default/templates/index.html.ep:133 themes/default/templates/partial/gallery.js.ep:211 themes/default/templates/partial/lutim.js.ep:178
|
||||
msgid "Something bad happened"
|
||||
msgstr "Произошло что-то плохое"
|
||||
|
||||
#. ($c->config('contact')
|
||||
#: lib/Lutim/Controller.pm:755
|
||||
msgid ""
|
||||
"Something went wrong when creating the zip file. Try again later or contact "
|
||||
"the administrator (%1)."
|
||||
msgstr ""
|
||||
"Что-то пошло не так при создании zip-архива. Попробуйте позже или свяжитесь "
|
||||
"с администратором (%1)."
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:52
|
||||
msgid "Support the author"
|
||||
msgstr "Поддержать автора"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:60
|
||||
msgid "Support the author on Liberapay"
|
||||
msgstr "Поддержать автора на Liberapay"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:57
|
||||
msgid "Support the author on Tipeee"
|
||||
msgstr "Поддержать автора на Tipeee"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:63
|
||||
msgid "Support the author with bitcoins"
|
||||
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 ""
|
||||
"IP-адрес отправителя изображений сохраняется на время, зависящее от решения "
|
||||
"администратора (официальное требование во Франции — один год)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid ""
|
||||
"The Lutim software is a <a href=\"http://en.wikipedia.org/wiki/"
|
||||
"Free_software\">free software</a>, which allows you to download and install "
|
||||
"it on you own server. Have a look at the <a href=\"https://www.gnu.org/"
|
||||
"licenses/agpl-3.0.html\">AGPL</a> to see what you can do."
|
||||
msgstr ""
|
||||
"Lutim — это <a href=\"https://ru.wikipedia.org/wiki/"
|
||||
"%D0%A1%D0%B2%D0%BE%D0%B1%D0%BE%D0%B4%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D0%B5%D1%81%D0%BF%D0%B5%D1%87%D0%B5%D0%BD%D0%B8%D0%B5\">свободное "
|
||||
"программное обеспечение</a>, которое вы можете скачать и установить на свой "
|
||||
"сервер. Посмотрите <a href=\"https://www.gnu.org/licenses/agpl-3.0."
|
||||
"html\">AGPL</a>, чтоб увидеть, что вы можете делать."
|
||||
|
||||
#: lib/Lutim/Controller.pm:345
|
||||
msgid "The URL is not valid."
|
||||
msgstr "Недопустимый URL."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:16
|
||||
msgid ""
|
||||
"The automatic download process will open a tab in your browser for each link."
|
||||
" You need to allow popups for Lutim."
|
||||
msgstr ""
|
||||
"Процесс автоматического скачивания откроет вкладку в вашем браузере для "
|
||||
"каждой ссылки. Вам надо разрешить всплывающие окна для Lutim."
|
||||
|
||||
#: lib/Lutim/Controller.pm:158 lib/Lutim/Controller.pm:226
|
||||
msgid "The delete token is invalid."
|
||||
msgstr "Неправильный ключ для удаления."
|
||||
|
||||
#. ($upload->filename)
|
||||
#: lib/Lutim/Controller.pm:486
|
||||
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.pm:309 lib/Lutim/Controller.pm:378 themes/default/templates/partial/lutim.js.ep:244
|
||||
msgid "The file exceed the size limit (%1)"
|
||||
msgstr "Размер файла превосходит ограничение (%1)"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:12
|
||||
msgid "The graph's datas are not updated in real-time."
|
||||
msgstr "Данные графиков не обновляются в реальном времени."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:228
|
||||
msgid "The image %1 has already been deleted."
|
||||
msgstr "Изображение %1 уже было удалено."
|
||||
|
||||
#. ($image->filename)
|
||||
#: lib/Lutim/Controller.pm:237 lib/Lutim/Controller.pm:242
|
||||
msgid "The image %1 has been successfully deleted"
|
||||
msgstr "Изображение %1 успешно удалено"
|
||||
|
||||
#: lib/Lutim/Controller.pm:166
|
||||
msgid "The image's delay has been successfully modified"
|
||||
msgstr "Срок хранения изображения успешно изменён"
|
||||
|
||||
#: themes/default/templates/index.html.ep:45
|
||||
msgid "The images are encrypted on the server (Lutim does not keep the key)."
|
||||
msgstr "Изображения зашифрованы на сервере (Lutim не хранит ключ)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
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 ""
|
||||
"Изображения, загружаемые в Lutim, могут храниться неопределённо долго либо "
|
||||
"быть удалёнными после первого просмотра или по истечении определённого "
|
||||
"промежутка времени."
|
||||
|
||||
#. ($c->config->{contact})
|
||||
#: lib/Lutim/Controller.pm:483
|
||||
msgid "There is no more available URL. Retry or contact the administrator. %1"
|
||||
msgstr ""
|
||||
"Больше нет доступных URL. Попробуйте снова или свяжитесь с администратором. "
|
||||
"%1"
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:28
|
||||
msgid "Toggle fullscreen"
|
||||
msgstr "Переключить полноэкранный режим"
|
||||
|
||||
#: themes/default/templates/partial/navbar.html.ep:16
|
||||
msgid "Toggle navigation"
|
||||
msgstr "Переключить навигацию"
|
||||
|
||||
#: lib/Lutim/Command/cron/stats.pm:152 themes/default/templates/raw.html.ep:11
|
||||
msgid "Total"
|
||||
msgstr "Итого"
|
||||
|
||||
#: themes/default/templates/index.html.ep:60 themes/default/templates/partial/lutim.js.ep:17
|
||||
msgid "Tweet it!"
|
||||
msgstr "Твитнуть!"
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lutim/Controller.pm:106 lib/Lutim/Controller.pm:200 lib/Lutim/Controller.pm:271
|
||||
msgid "Unable to find the image %1."
|
||||
msgstr "Невозможно найти изображение %1."
|
||||
|
||||
#: lib/Lutim/Controller.pm:572 lib/Lutim/Controller.pm:617 lib/Lutim/Controller.pm:654 lib/Lutim/Controller.pm:697 lib/Lutim/Controller.pm:709 lib/Lutim/Controller.pm:720 lib/Lutim/Controller.pm:745 lib/Lutim/Plugin/Helpers.pm:84
|
||||
msgid "Unable to find the image: it has been deleted."
|
||||
msgstr "Невозможно найти изображение: оно было удалено."
|
||||
|
||||
#: lib/Lutim/Controller.pm:143
|
||||
msgid "Unable to get counter"
|
||||
msgstr "Невозможно получить счётчик"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid ""
|
||||
"Unlike many image sharing services, you don't give us rights on uploaded "
|
||||
"images."
|
||||
msgstr ""
|
||||
"В отличие от многих сервисов публикации изображений, вы не даёте нам права "
|
||||
"на переданные изображения."
|
||||
|
||||
#: themes/default/templates/index.html.ep:162 themes/default/templates/index.html.ep:201
|
||||
msgid "Upload an image with its URL"
|
||||
msgstr "Загрузить изображение с URL"
|
||||
|
||||
#: themes/default/templates/myfiles.html.ep:54
|
||||
msgid "Uploaded at"
|
||||
msgstr "Загружено в"
|
||||
|
||||
#: themes/default/templates/stats.html.ep:6
|
||||
msgid "Uploaded files by days"
|
||||
msgstr "Загружено файлов по дням"
|
||||
|
||||
#. ($c->app->config('contact')
|
||||
#: lib/Lutim/Plugin/Helpers.pm:183
|
||||
msgid ""
|
||||
"Uploading is currently disabled, please try later or contact the "
|
||||
"administrator (%1)."
|
||||
msgstr ""
|
||||
"Загрузка сейчас отключена, пожалуйста, попробуйте позже или свяжитесь с "
|
||||
"администратором (%1)."
|
||||
|
||||
#: themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:67 themes/default/templates/myfiles.html.ep:51 themes/default/templates/partial/lutim.js.ep:74 themes/default/templates/partial/lutim.js.ep:78
|
||||
msgid "View link"
|
||||
msgstr "Ссылка на просмотр"
|
||||
|
||||
#: themes/default/templates/about.html.ep:22
|
||||
msgid "What about the software which provides the service?"
|
||||
msgstr "Что насчёт программного обеспечения, предоставляющего этот сервис?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lutim?"
|
||||
msgstr "Что такое Lutim?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:15
|
||||
msgid "Who owns rights on images uploaded on Lutim?"
|
||||
msgstr "Кто обладает правами на изображения, загруженные на Lutim?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, for legal reasons, your IP address will be "
|
||||
"stored when you send an image. Don't panic, it is normally the case of all "
|
||||
"sites on which you send files!"
|
||||
msgstr ""
|
||||
"Да, это так! С другой стороны, согласно требованиям закона, ваш IP-адрес "
|
||||
"будет сохранён при загрузке изображения. Без паники, это обычная практика на "
|
||||
"всех сайтах, куда посылают файлы."
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid ""
|
||||
"Yes, it is! On the other side, if you want to support the developer, you can "
|
||||
"do it via <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</a> or via <a "
|
||||
"href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
msgstr ""
|
||||
"Да, это так! С другой стороны, если вы хотите поддержать разработчика, вы "
|
||||
"можете сделать это через <a href=\"https://www.tipeee.com/fiat-tux\">Tipeee</"
|
||||
"a> или <a href=\"https://liberapay.com/sky/\">Liberapay</a>."
|
||||
|
||||
#: themes/default/templates/zip.html.ep:6
|
||||
msgid "You asked to download a zip archive for too much files."
|
||||
msgstr "Вы запросили скачивание zip-архива с очень большим числом файлов."
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid ""
|
||||
"You can, optionally, request that the image(s) posted on Lutim to be deleted "
|
||||
"at first view (or download) or after the delay selected from those proposed."
|
||||
msgstr ""
|
||||
"Вы можете, при желании, запросить, чтоб загруженные в Lutim изображения были "
|
||||
"удалены после первого просмотра (либо скачивания) или по истечении "
|
||||
"выбранного промежутка времени."
|
||||
|
||||
#: themes/default/templates/gallery.html.ep:29
|
||||
msgid "Zoom in/out"
|
||||
msgstr "Приблизить/отдалить"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "and on"
|
||||
msgstr "и на"
|
||||
|
||||
#: themes/default/templates/about.html.ep:40
|
||||
msgid "arabic translation"
|
||||
msgstr "арабский перевод"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "core developer"
|
||||
msgstr "разработчик ядра"
|
||||
|
||||
#: lib/Lutim.pm:185 lib/Lutim/Command/cron/stats.pm:147 lib/Lutim/Command/cron/stats.pm:158 lib/Lutim/Command/cron/stats.pm:175 themes/default/templates/index.html.ep:3 themes/default/templates/raw.html.ep:17 themes/default/templates/raw.html.ep:34 themes/default/templates/raw.html.ep:6
|
||||
msgid "no time limit"
|
||||
msgstr "без ограничения времени"
|
||||
|
||||
#: themes/default/templates/about.html.ep:38
|
||||
msgid "occitan translation"
|
||||
msgstr "окситанский перевод"
|
||||
|
||||
#: themes/default/templates/about.html.ep:27
|
||||
msgid "on"
|
||||
msgstr "в"
|
||||
|
||||
#: themes/default/templates/about.html.ep:39
|
||||
msgid "paste image to upload ability"
|
||||
msgstr "paste image to upload ability"
|
||||
|
||||
#: themes/default/templates/about.html.ep:41
|
||||
msgid "russian translation"
|
||||
msgstr "русский перевод"
|
||||
|
||||
#: themes/default/templates/about.html.ep:36
|
||||
msgid "spanish translation"
|
||||
msgstr "испанский перевод"
|
||||
|
||||
#: themes/default/templates/about.html.ep:28
|
||||
msgid "webapp developer"
|
||||
msgstr "разработчик веб-приложения"
|
||||
893
themes/default/public/css/bootstrap.css
vendored
893
themes/default/public/css/bootstrap.css
vendored
@@ -1,16 +1,16 @@
|
||||
/*!
|
||||
* Bootstrap v3.3.5 (http://getbootstrap.com)
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=a3e981920dd6bd53664e6b133bd0d53f)
|
||||
* Config saved to config.json and https://gist.github.com/a3e981920dd6bd53664e6b133bd0d53f
|
||||
* Generated using the Bootstrap Customizer (<none>)
|
||||
* Config saved to config.json and <none>
|
||||
*/
|
||||
/*!
|
||||
* Bootstrap v3.3.6 (http://getbootstrap.com)
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
|
||||
@@ -309,7 +309,6 @@ a:focus {
|
||||
text-decoration: underline;
|
||||
}
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
@@ -1682,7 +1681,6 @@ select[size] {
|
||||
input[type="file"]:focus,
|
||||
input[type="radio"]:focus,
|
||||
input[type="checkbox"]:focus {
|
||||
outline: thin dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
@@ -2174,7 +2172,6 @@ select[multiple].input-lg {
|
||||
.btn.focus,
|
||||
.btn:active.focus,
|
||||
.btn.active.focus {
|
||||
outline: thin dotted;
|
||||
outline: 5px auto -webkit-focus-ring-color;
|
||||
outline-offset: -2px;
|
||||
}
|
||||
@@ -2647,6 +2644,149 @@ tbody.collapse.in {
|
||||
-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;
|
||||
}
|
||||
.dropup,
|
||||
.dropdown {
|
||||
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: #ffffff;
|
||||
border: 1px solid #cccccc;
|
||||
border: 1px solid rgba(0, 0, 0, 0.15);
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
||||
box-shadow: 0 6px 12px rgba(0, 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: normal;
|
||||
line-height: 1.42857143;
|
||||
color: #333333;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
text-decoration: none;
|
||||
color: #262626;
|
||||
background-color: #f5f5f5;
|
||||
}
|
||||
.dropdown-menu > .active > a,
|
||||
.dropdown-menu > .active > a:hover,
|
||||
.dropdown-menu > .active > a:focus {
|
||||
color: #ffffff;
|
||||
text-decoration: none;
|
||||
outline: 0;
|
||||
background-color: #428bca;
|
||||
}
|
||||
.dropdown-menu > .disabled > a,
|
||||
.dropdown-menu > .disabled > a:hover,
|
||||
.dropdown-menu > .disabled > a:focus {
|
||||
color: #999999;
|
||||
}
|
||||
.dropdown-menu > .disabled > a:hover,
|
||||
.dropdown-menu > .disabled > a:focus {
|
||||
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: #999999;
|
||||
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;
|
||||
@@ -2976,6 +3116,725 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
|
||||
z-index: 2;
|
||||
margin-left: -1px;
|
||||
}
|
||||
.nav {
|
||||
margin-bottom: 0;
|
||||
padding-left: 0;
|
||||
list-style: none;
|
||||
}
|
||||
.nav > li {
|
||||
position: relative;
|
||||
display: block;
|
||||
}
|
||||
.nav > li > a {
|
||||
position: relative;
|
||||
display: block;
|
||||
padding: 10px 15px;
|
||||
}
|
||||
.nav > li > a:hover,
|
||||
.nav > li > a:focus {
|
||||
text-decoration: none;
|
||||
background-color: #eeeeee;
|
||||
}
|
||||
.nav > li.disabled > a {
|
||||
color: #999999;
|
||||
}
|
||||
.nav > li.disabled > a:hover,
|
||||
.nav > li.disabled > a:focus {
|
||||
color: #999999;
|
||||
text-decoration: none;
|
||||
background-color: transparent;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
.nav .open > a,
|
||||
.nav .open > a:hover,
|
||||
.nav .open > a:focus {
|
||||
background-color: #eeeeee;
|
||||
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 #dddddd;
|
||||
}
|
||||
.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: #eeeeee #eeeeee #dddddd;
|
||||
}
|
||||
.nav-tabs > li.active > a,
|
||||
.nav-tabs > li.active > a:hover,
|
||||
.nav-tabs > li.active > a:focus {
|
||||
color: #555555;
|
||||
background-color: #ffffff;
|
||||
border: 1px solid #dddddd;
|
||||
border-bottom-color: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
.nav-tabs.nav-justified {
|
||||
width: 100%;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.nav-tabs.nav-justified > li {
|
||||
float: none;
|
||||
}
|
||||
.nav-tabs.nav-justified > li > a {
|
||||
text-align: center;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.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:hover,
|
||||
.nav-tabs.nav-justified > .active > a:focus {
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.nav-tabs.nav-justified > li > a {
|
||||
border-bottom: 1px solid #dddddd;
|
||||
border-radius: 4px 4px 0 0;
|
||||
}
|
||||
.nav-tabs.nav-justified > .active > a,
|
||||
.nav-tabs.nav-justified > .active > a:hover,
|
||||
.nav-tabs.nav-justified > .active > a:focus {
|
||||
border-bottom-color: #ffffff;
|
||||
}
|
||||
}
|
||||
.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:hover,
|
||||
.nav-pills > li.active > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: #428bca;
|
||||
}
|
||||
.nav-stacked > li {
|
||||
float: none;
|
||||
}
|
||||
.nav-stacked > li + li {
|
||||
margin-top: 2px;
|
||||
margin-left: 0;
|
||||
}
|
||||
.nav-justified {
|
||||
width: 100%;
|
||||
}
|
||||
.nav-justified > li {
|
||||
float: none;
|
||||
}
|
||||
.nav-justified > li > a {
|
||||
text-align: center;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
.nav-justified > .dropdown .dropdown-menu {
|
||||
top: auto;
|
||||
left: auto;
|
||||
}
|
||||
@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:hover,
|
||||
.nav-tabs-justified > .active > a:focus {
|
||||
border: 1px solid #dddddd;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.nav-tabs-justified > li > a {
|
||||
border-bottom: 1px solid #dddddd;
|
||||
border-radius: 4px 4px 0 0;
|
||||
}
|
||||
.nav-tabs-justified > .active > a,
|
||||
.nav-tabs-justified > .active > a:hover,
|
||||
.nav-tabs-justified > .active > a:focus {
|
||||
border-bottom-color: #ffffff;
|
||||
}
|
||||
}
|
||||
.tab-content > .tab-pane {
|
||||
display: none;
|
||||
}
|
||||
.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;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.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, 0.1);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.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-top .navbar-collapse,
|
||||
.navbar-static-top .navbar-collapse,
|
||||
.navbar-fixed-bottom .navbar-collapse {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
.navbar-fixed-top .navbar-collapse,
|
||||
.navbar-fixed-bottom .navbar-collapse {
|
||||
max-height: 340px;
|
||||
}
|
||||
@media (max-device-width: 480px) and (orientation: landscape) {
|
||||
.navbar-fixed-top .navbar-collapse,
|
||||
.navbar-fixed-bottom .navbar-collapse {
|
||||
max-height: 200px;
|
||||
}
|
||||
}
|
||||
.container > .navbar-header,
|
||||
.container-fluid > .navbar-header,
|
||||
.container > .navbar-collapse,
|
||||
.container-fluid > .navbar-collapse {
|
||||
margin-right: -15px;
|
||||
margin-left: -15px;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.container > .navbar-header,
|
||||
.container-fluid > .navbar-header,
|
||||
.container > .navbar-collapse,
|
||||
.container-fluid > .navbar-collapse {
|
||||
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-top,
|
||||
.navbar-fixed-bottom {
|
||||
position: fixed;
|
||||
right: 0;
|
||||
left: 0;
|
||||
z-index: 1030;
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.navbar-fixed-top,
|
||||
.navbar-fixed-bottom {
|
||||
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 15px;
|
||||
font-size: 18px;
|
||||
line-height: 20px;
|
||||
height: 50px;
|
||||
}
|
||||
.navbar-brand:hover,
|
||||
.navbar-brand:focus {
|
||||
text-decoration: none;
|
||||
}
|
||||
.navbar-brand > img {
|
||||
display: block;
|
||||
}
|
||||
@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 > li > a,
|
||||
.navbar-nav .open .dropdown-menu .dropdown-header {
|
||||
padding: 5px 15px 5px 25px;
|
||||
}
|
||||
.navbar-nav .open .dropdown-menu > li > a {
|
||||
line-height: 20px;
|
||||
}
|
||||
.navbar-nav .open .dropdown-menu > li > a:hover,
|
||||
.navbar-nav .open .dropdown-menu > li > a:focus {
|
||||
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 {
|
||||
margin-left: -15px;
|
||||
margin-right: -15px;
|
||||
padding: 10px 15px;
|
||||
border-top: 1px solid transparent;
|
||||
border-bottom: 1px solid transparent;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
|
||||
margin-top: 8px;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
@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 .input-group-addon,
|
||||
.navbar-form .input-group .input-group-btn,
|
||||
.navbar-form .input-group .form-control {
|
||||
width: auto;
|
||||
}
|
||||
.navbar-form .input-group > .form-control {
|
||||
width: 100%;
|
||||
}
|
||||
.navbar-form .control-label {
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.navbar-form .radio,
|
||||
.navbar-form .checkbox {
|
||||
display: inline-block;
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
.navbar-form .radio label,
|
||||
.navbar-form .checkbox label {
|
||||
padding-left: 0;
|
||||
}
|
||||
.navbar-form .radio input[type="radio"],
|
||||
.navbar-form .checkbox input[type="checkbox"] {
|
||||
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;
|
||||
}
|
||||
}
|
||||
@media (min-width: 768px) {
|
||||
.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 {
|
||||
color: #777777;
|
||||
}
|
||||
.navbar-default .navbar-brand:hover,
|
||||
.navbar-default .navbar-brand:focus {
|
||||
color: #5e5e5e;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default .navbar-text {
|
||||
color: #777777;
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a {
|
||||
color: #777777;
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a:hover,
|
||||
.navbar-default .navbar-nav > li > a:focus {
|
||||
color: #333333;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default .navbar-nav > .active > a,
|
||||
.navbar-default .navbar-nav > .active > a:hover,
|
||||
.navbar-default .navbar-nav > .active > a:focus {
|
||||
color: #555555;
|
||||
background-color: #e7e7e7;
|
||||
}
|
||||
.navbar-default .navbar-nav > .disabled > a,
|
||||
.navbar-default .navbar-nav > .disabled > a:hover,
|
||||
.navbar-default .navbar-nav > .disabled > a:focus {
|
||||
color: #cccccc;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default .navbar-toggle {
|
||||
border-color: #dddddd;
|
||||
}
|
||||
.navbar-default .navbar-toggle:hover,
|
||||
.navbar-default .navbar-toggle:focus {
|
||||
background-color: #dddddd;
|
||||
}
|
||||
.navbar-default .navbar-toggle .icon-bar {
|
||||
background-color: #888888;
|
||||
}
|
||||
.navbar-default .navbar-collapse,
|
||||
.navbar-default .navbar-form {
|
||||
border-color: #e7e7e7;
|
||||
}
|
||||
.navbar-default .navbar-nav > .open > a,
|
||||
.navbar-default .navbar-nav > .open > a:hover,
|
||||
.navbar-default .navbar-nav > .open > a:focus {
|
||||
background-color: #e7e7e7;
|
||||
color: #555555;
|
||||
}
|
||||
@media (max-width: 767px) {
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li > a {
|
||||
color: #777777;
|
||||
}
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
|
||||
color: #333333;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .active > a,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
|
||||
color: #555555;
|
||||
background-color: #e7e7e7;
|
||||
}
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
|
||||
color: #cccccc;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
.navbar-default .navbar-link {
|
||||
color: #777777;
|
||||
}
|
||||
.navbar-default .navbar-link:hover {
|
||||
color: #333333;
|
||||
}
|
||||
.navbar-default .btn-link {
|
||||
color: #777777;
|
||||
}
|
||||
.navbar-default .btn-link:hover,
|
||||
.navbar-default .btn-link:focus {
|
||||
color: #333333;
|
||||
}
|
||||
.navbar-default .btn-link[disabled]:hover,
|
||||
fieldset[disabled] .navbar-default .btn-link:hover,
|
||||
.navbar-default .btn-link[disabled]:focus,
|
||||
fieldset[disabled] .navbar-default .btn-link:focus {
|
||||
color: #cccccc;
|
||||
}
|
||||
.navbar-inverse {
|
||||
background-color: #222222;
|
||||
border-color: #080808;
|
||||
}
|
||||
.navbar-inverse .navbar-brand {
|
||||
color: #999999;
|
||||
}
|
||||
.navbar-inverse .navbar-brand:hover,
|
||||
.navbar-inverse .navbar-brand:focus {
|
||||
color: #ffffff;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-inverse .navbar-text {
|
||||
color: #999999;
|
||||
}
|
||||
.navbar-inverse .navbar-nav > li > a {
|
||||
color: #999999;
|
||||
}
|
||||
.navbar-inverse .navbar-nav > li > a:hover,
|
||||
.navbar-inverse .navbar-nav > li > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-inverse .navbar-nav > .active > a,
|
||||
.navbar-inverse .navbar-nav > .active > a:hover,
|
||||
.navbar-inverse .navbar-nav > .active > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: #080808;
|
||||
}
|
||||
.navbar-inverse .navbar-nav > .disabled > a,
|
||||
.navbar-inverse .navbar-nav > .disabled > a:hover,
|
||||
.navbar-inverse .navbar-nav > .disabled > a:focus {
|
||||
color: #444444;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-inverse .navbar-toggle {
|
||||
border-color: #333333;
|
||||
}
|
||||
.navbar-inverse .navbar-toggle:hover,
|
||||
.navbar-inverse .navbar-toggle:focus {
|
||||
background-color: #333333;
|
||||
}
|
||||
.navbar-inverse .navbar-toggle .icon-bar {
|
||||
background-color: #ffffff;
|
||||
}
|
||||
.navbar-inverse .navbar-collapse,
|
||||
.navbar-inverse .navbar-form {
|
||||
border-color: #101010;
|
||||
}
|
||||
.navbar-inverse .navbar-nav > .open > a,
|
||||
.navbar-inverse .navbar-nav > .open > a:hover,
|
||||
.navbar-inverse .navbar-nav > .open > a:focus {
|
||||
background-color: #080808;
|
||||
color: #ffffff;
|
||||
}
|
||||
@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: #999999;
|
||||
}
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: transparent;
|
||||
}
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
|
||||
color: #ffffff;
|
||||
background-color: #080808;
|
||||
}
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
|
||||
.navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
|
||||
color: #444444;
|
||||
background-color: transparent;
|
||||
}
|
||||
}
|
||||
.navbar-inverse .navbar-link {
|
||||
color: #999999;
|
||||
}
|
||||
.navbar-inverse .navbar-link:hover {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-inverse .btn-link {
|
||||
color: #999999;
|
||||
}
|
||||
.navbar-inverse .btn-link:hover,
|
||||
.navbar-inverse .btn-link:focus {
|
||||
color: #ffffff;
|
||||
}
|
||||
.navbar-inverse .btn-link[disabled]:hover,
|
||||
fieldset[disabled] .navbar-inverse .btn-link:hover,
|
||||
.navbar-inverse .btn-link[disabled]:focus,
|
||||
fieldset[disabled] .navbar-inverse .btn-link:focus {
|
||||
color: #444444;
|
||||
}
|
||||
.alert {
|
||||
padding: 15px;
|
||||
margin-bottom: 20px;
|
||||
@@ -3185,7 +4044,15 @@ button.close {
|
||||
.btn-toolbar:before,
|
||||
.btn-toolbar:after,
|
||||
.btn-group-vertical > .btn-group:before,
|
||||
.btn-group-vertical > .btn-group:after {
|
||||
.btn-group-vertical > .btn-group:after,
|
||||
.nav:before,
|
||||
.nav:after,
|
||||
.navbar:before,
|
||||
.navbar:after,
|
||||
.navbar-header:before,
|
||||
.navbar-header:after,
|
||||
.navbar-collapse:before,
|
||||
.navbar-collapse:after {
|
||||
content: " ";
|
||||
display: table;
|
||||
}
|
||||
@@ -3196,7 +4063,11 @@ button.close {
|
||||
.row:after,
|
||||
.form-horizontal .form-group:after,
|
||||
.btn-toolbar:after,
|
||||
.btn-group-vertical > .btn-group:after {
|
||||
.btn-group-vertical > .btn-group:after,
|
||||
.nav:after,
|
||||
.navbar:after,
|
||||
.navbar-header:after,
|
||||
.navbar-collapse:after {
|
||||
clear: both;
|
||||
}
|
||||
.center-block {
|
||||
|
||||
14
themes/default/public/css/bootstrap.min.css
vendored
14
themes/default/public/css/bootstrap.min.css
vendored
File diff suppressed because one or more lines are too long
482
themes/default/public/css/default-skin/default-skin.css
Normal file
482
themes/default/public/css/default-skin/default-skin.css
Normal file
@@ -0,0 +1,482 @@
|
||||
/*! PhotoSwipe Default UI CSS by Dmitry Semenov | photoswipe.com | MIT license */
|
||||
/*
|
||||
|
||||
Contents:
|
||||
|
||||
1. Buttons
|
||||
2. Share modal and links
|
||||
3. Index indicator ("1 of X" counter)
|
||||
4. Caption
|
||||
5. Loading indicator
|
||||
6. Additional styles (root element, top bar, idle state, hidden state, etc.)
|
||||
|
||||
*/
|
||||
/*
|
||||
|
||||
1. Buttons
|
||||
|
||||
*/
|
||||
/* <button> css reset */
|
||||
.pswp__button {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
position: relative;
|
||||
background: none;
|
||||
cursor: pointer;
|
||||
overflow: visible;
|
||||
-webkit-appearance: none;
|
||||
display: block;
|
||||
border: 0;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
float: right;
|
||||
opacity: 0.75;
|
||||
-webkit-transition: opacity 0.2s;
|
||||
transition: opacity 0.2s;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none; }
|
||||
.pswp__button:focus, .pswp__button:hover {
|
||||
opacity: 1; }
|
||||
.pswp__button:active {
|
||||
outline: none;
|
||||
opacity: 0.9; }
|
||||
.pswp__button::-moz-focus-inner {
|
||||
padding: 0;
|
||||
border: 0; }
|
||||
|
||||
/* pswp__ui--over-close class it added when mouse is over element that should close gallery */
|
||||
.pswp__ui--over-close .pswp__button--close {
|
||||
opacity: 1; }
|
||||
|
||||
.pswp__button,
|
||||
.pswp__button--arrow--left:before,
|
||||
.pswp__button--arrow--right:before {
|
||||
background: url(default-skin.png) 0 0 no-repeat;
|
||||
background-size: 264px 88px;
|
||||
width: 44px;
|
||||
height: 44px; }
|
||||
|
||||
@media (-webkit-min-device-pixel-ratio: 1.1), (-webkit-min-device-pixel-ratio: 1.09375), (min-resolution: 105dpi), (min-resolution: 1.1dppx) {
|
||||
/* Serve SVG sprite if browser supports SVG and resolution is more than 105dpi */
|
||||
.pswp--svg .pswp__button,
|
||||
.pswp--svg .pswp__button--arrow--left:before,
|
||||
.pswp--svg .pswp__button--arrow--right:before {
|
||||
background-image: url(default-skin.svg); }
|
||||
.pswp--svg .pswp__button--arrow--left,
|
||||
.pswp--svg .pswp__button--arrow--right {
|
||||
background: none; } }
|
||||
|
||||
.pswp__button--close {
|
||||
background-position: 0 -44px; }
|
||||
|
||||
.pswp__button--share {
|
||||
background-position: -44px -44px; }
|
||||
|
||||
.pswp__button--fs {
|
||||
display: none; }
|
||||
|
||||
.pswp--supports-fs .pswp__button--fs {
|
||||
display: block; }
|
||||
|
||||
.pswp--fs .pswp__button--fs {
|
||||
background-position: -44px 0; }
|
||||
|
||||
.pswp__button--zoom {
|
||||
display: none;
|
||||
background-position: -88px 0; }
|
||||
|
||||
.pswp--zoom-allowed .pswp__button--zoom {
|
||||
display: block; }
|
||||
|
||||
.pswp--zoomed-in .pswp__button--zoom {
|
||||
background-position: -132px 0; }
|
||||
|
||||
/* no arrows on touch screens */
|
||||
.pswp--touch .pswp__button--arrow--left,
|
||||
.pswp--touch .pswp__button--arrow--right {
|
||||
visibility: hidden; }
|
||||
|
||||
/*
|
||||
Arrow buttons hit area
|
||||
(icon is added to :before pseudo-element)
|
||||
*/
|
||||
.pswp__button--arrow--left,
|
||||
.pswp__button--arrow--right {
|
||||
background: none;
|
||||
top: 50%;
|
||||
margin-top: -50px;
|
||||
width: 70px;
|
||||
height: 100px;
|
||||
position: absolute; }
|
||||
|
||||
.pswp__button--arrow--left {
|
||||
left: 0; }
|
||||
|
||||
.pswp__button--arrow--right {
|
||||
right: 0; }
|
||||
|
||||
.pswp__button--arrow--left:before,
|
||||
.pswp__button--arrow--right:before {
|
||||
content: '';
|
||||
top: 35px;
|
||||
background-color: rgba(0, 0, 0, 0.3);
|
||||
height: 30px;
|
||||
width: 32px;
|
||||
position: absolute; }
|
||||
|
||||
.pswp__button--arrow--left:before {
|
||||
left: 6px;
|
||||
background-position: -138px -44px; }
|
||||
|
||||
.pswp__button--arrow--right:before {
|
||||
right: 6px;
|
||||
background-position: -94px -44px; }
|
||||
|
||||
/*
|
||||
|
||||
2. Share modal/popup and links
|
||||
|
||||
*/
|
||||
.pswp__counter,
|
||||
.pswp__share-modal {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.pswp__share-modal {
|
||||
display: block;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 10px;
|
||||
position: absolute;
|
||||
z-index: 1600;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.25s ease-out;
|
||||
transition: opacity 0.25s ease-out;
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: opacity; }
|
||||
|
||||
.pswp__share-modal--hidden {
|
||||
display: none; }
|
||||
|
||||
.pswp__share-tooltip {
|
||||
z-index: 1620;
|
||||
position: absolute;
|
||||
background: #FFF;
|
||||
top: 56px;
|
||||
border-radius: 2px;
|
||||
display: block;
|
||||
width: auto;
|
||||
right: 44px;
|
||||
-webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25);
|
||||
-webkit-transform: translateY(6px);
|
||||
-ms-transform: translateY(6px);
|
||||
transform: translateY(6px);
|
||||
-webkit-transition: -webkit-transform 0.25s;
|
||||
transition: transform 0.25s;
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: transform; }
|
||||
.pswp__share-tooltip a {
|
||||
display: block;
|
||||
padding: 8px 12px;
|
||||
color: #000;
|
||||
text-decoration: none;
|
||||
font-size: 14px;
|
||||
line-height: 18px; }
|
||||
.pswp__share-tooltip a:hover {
|
||||
text-decoration: none;
|
||||
color: #000; }
|
||||
.pswp__share-tooltip a:first-child {
|
||||
/* round corners on the first/last list item */
|
||||
border-radius: 2px 2px 0 0; }
|
||||
.pswp__share-tooltip a:last-child {
|
||||
border-radius: 0 0 2px 2px; }
|
||||
|
||||
.pswp__share-modal--fade-in {
|
||||
opacity: 1; }
|
||||
.pswp__share-modal--fade-in .pswp__share-tooltip {
|
||||
-webkit-transform: translateY(0);
|
||||
-ms-transform: translateY(0);
|
||||
transform: translateY(0); }
|
||||
|
||||
/* increase size of share links on touch devices */
|
||||
.pswp--touch .pswp__share-tooltip a {
|
||||
padding: 16px 12px; }
|
||||
|
||||
a.pswp__share--facebook:before {
|
||||
content: '';
|
||||
display: block;
|
||||
width: 0;
|
||||
height: 0;
|
||||
position: absolute;
|
||||
top: -12px;
|
||||
right: 15px;
|
||||
border: 6px solid transparent;
|
||||
border-bottom-color: #FFF;
|
||||
-webkit-pointer-events: none;
|
||||
-moz-pointer-events: none;
|
||||
pointer-events: none; }
|
||||
|
||||
a.pswp__share--facebook:hover {
|
||||
background: #3E5C9A;
|
||||
color: #FFF; }
|
||||
a.pswp__share--facebook:hover:before {
|
||||
border-bottom-color: #3E5C9A; }
|
||||
|
||||
a.pswp__share--twitter:hover {
|
||||
background: #55ACEE;
|
||||
color: #FFF; }
|
||||
|
||||
a.pswp__share--pinterest:hover {
|
||||
background: #CCC;
|
||||
color: #CE272D; }
|
||||
|
||||
a.pswp__share--download:hover {
|
||||
background: #DDD; }
|
||||
|
||||
/*
|
||||
|
||||
3. Index indicator ("1 of X" counter)
|
||||
|
||||
*/
|
||||
.pswp__counter {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 44px;
|
||||
font-size: 13px;
|
||||
line-height: 44px;
|
||||
color: #FFF;
|
||||
opacity: 0.75;
|
||||
padding: 0 10px; }
|
||||
|
||||
/*
|
||||
|
||||
4. Caption
|
||||
|
||||
*/
|
||||
.pswp__caption {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
min-height: 44px; }
|
||||
.pswp__caption small {
|
||||
font-size: 11px;
|
||||
color: #BBB; }
|
||||
|
||||
.pswp__caption__center {
|
||||
text-align: left;
|
||||
max-width: 420px;
|
||||
margin: 0 auto;
|
||||
font-size: 13px;
|
||||
padding: 10px;
|
||||
line-height: 20px;
|
||||
color: #CCC; }
|
||||
|
||||
.pswp__caption--empty {
|
||||
display: none; }
|
||||
|
||||
/* Fake caption element, used to calculate height of next/prev image */
|
||||
.pswp__caption--fake {
|
||||
visibility: hidden; }
|
||||
|
||||
/*
|
||||
|
||||
5. Loading indicator (preloader)
|
||||
|
||||
You can play with it here - http://codepen.io/dimsemenov/pen/yyBWoR
|
||||
|
||||
*/
|
||||
.pswp__preloader {
|
||||
width: 44px;
|
||||
height: 44px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left: -22px;
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.25s ease-out;
|
||||
transition: opacity 0.25s ease-out;
|
||||
will-change: opacity;
|
||||
direction: ltr; }
|
||||
|
||||
.pswp__preloader__icn {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
margin: 12px; }
|
||||
|
||||
.pswp__preloader--active {
|
||||
opacity: 1; }
|
||||
.pswp__preloader--active .pswp__preloader__icn {
|
||||
/* We use .gif in browsers that don't support CSS animation */
|
||||
background: url(preloader.gif) 0 0 no-repeat; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader--active {
|
||||
opacity: 1; }
|
||||
.pswp--css_animation .pswp__preloader--active .pswp__preloader__icn {
|
||||
-webkit-animation: clockwise 500ms linear infinite;
|
||||
animation: clockwise 500ms linear infinite; }
|
||||
.pswp--css_animation .pswp__preloader--active .pswp__preloader__donut {
|
||||
-webkit-animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite;
|
||||
animation: donut-rotate 1000ms cubic-bezier(0.4, 0, 0.22, 1) infinite; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader__icn {
|
||||
background: none;
|
||||
opacity: 0.75;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
position: absolute;
|
||||
left: 15px;
|
||||
top: 15px;
|
||||
margin: 0; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader__cut {
|
||||
/*
|
||||
The idea of animating inner circle is based on Polymer ("material") loading indicator
|
||||
by Keanu Lee https://blog.keanulee.com/2014/10/20/the-tale-of-three-spinners.html
|
||||
*/
|
||||
position: relative;
|
||||
width: 7px;
|
||||
height: 14px;
|
||||
overflow: hidden; }
|
||||
|
||||
.pswp--css_animation .pswp__preloader__donut {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
border: 2px solid #FFF;
|
||||
border-radius: 50%;
|
||||
border-left-color: transparent;
|
||||
border-bottom-color: transparent;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
background: none;
|
||||
margin: 0; }
|
||||
|
||||
@media screen and (max-width: 1024px) {
|
||||
.pswp__preloader {
|
||||
position: relative;
|
||||
left: auto;
|
||||
top: auto;
|
||||
margin: 0;
|
||||
float: right; } }
|
||||
|
||||
@-webkit-keyframes clockwise {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes clockwise {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@-webkit-keyframes donut-rotate {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); }
|
||||
50% {
|
||||
-webkit-transform: rotate(-140deg);
|
||||
transform: rotate(-140deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); } }
|
||||
|
||||
@keyframes donut-rotate {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); }
|
||||
50% {
|
||||
-webkit-transform: rotate(-140deg);
|
||||
transform: rotate(-140deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); } }
|
||||
|
||||
/*
|
||||
|
||||
6. Additional styles
|
||||
|
||||
*/
|
||||
/* root element of UI */
|
||||
.pswp__ui {
|
||||
-webkit-font-smoothing: auto;
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
z-index: 1550; }
|
||||
|
||||
/* top black bar with buttons and "1 of X" indicator */
|
||||
.pswp__top-bar {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
height: 44px;
|
||||
width: 100%; }
|
||||
|
||||
.pswp__caption,
|
||||
.pswp__top-bar,
|
||||
.pswp--has_mouse .pswp__button--arrow--left,
|
||||
.pswp--has_mouse .pswp__button--arrow--right {
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: opacity;
|
||||
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
/* pswp--has_mouse class is added only when two subsequent mousemove events occur */
|
||||
.pswp--has_mouse .pswp__button--arrow--left,
|
||||
.pswp--has_mouse .pswp__button--arrow--right {
|
||||
visibility: visible; }
|
||||
|
||||
.pswp__top-bar,
|
||||
.pswp__caption {
|
||||
background-color: rgba(0, 0, 0, 0.5); }
|
||||
|
||||
/* pswp__ui--fit class is added when main image "fits" between top bar and bottom bar (caption) */
|
||||
.pswp__ui--fit .pswp__top-bar,
|
||||
.pswp__ui--fit .pswp__caption {
|
||||
background-color: rgba(0, 0, 0, 0.3); }
|
||||
|
||||
/* pswp__ui--idle class is added when mouse isn't moving for several seconds (JS option timeToIdle) */
|
||||
.pswp__ui--idle .pswp__top-bar {
|
||||
opacity: 0; }
|
||||
|
||||
.pswp__ui--idle .pswp__button--arrow--left,
|
||||
.pswp__ui--idle .pswp__button--arrow--right {
|
||||
opacity: 0; }
|
||||
|
||||
/*
|
||||
pswp__ui--hidden class is added when controls are hidden
|
||||
e.g. when user taps to toggle visibility of controls
|
||||
*/
|
||||
.pswp__ui--hidden .pswp__top-bar,
|
||||
.pswp__ui--hidden .pswp__caption,
|
||||
.pswp__ui--hidden .pswp__button--arrow--left,
|
||||
.pswp__ui--hidden .pswp__button--arrow--right {
|
||||
/* Force paint & create composition layer for controls. */
|
||||
opacity: 0.001; }
|
||||
|
||||
/* pswp__ui--one-slide class is added when there is just one item in gallery */
|
||||
.pswp__ui--one-slide .pswp__button--arrow--left,
|
||||
.pswp__ui--one-slide .pswp__button--arrow--right,
|
||||
.pswp__ui--one-slide .pswp__counter {
|
||||
display: none; }
|
||||
|
||||
.pswp__element--disabled {
|
||||
display: none !important; }
|
||||
|
||||
.pswp--minimal--dark .pswp__top-bar {
|
||||
background: none; }
|
||||
BIN
themes/default/public/css/default-skin/default-skin.png
Normal file
BIN
themes/default/public/css/default-skin/default-skin.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 547 B |
1
themes/default/public/css/default-skin/default-skin.svg
Normal file
1
themes/default/public/css/default-skin/default-skin.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg width="264" height="88" viewBox="0 0 264 88" xmlns="http://www.w3.org/2000/svg"><title>default-skin 2</title><g fill="none" fill-rule="evenodd"><g><path d="M67.002 59.5v3.768c-6.307.84-9.184 5.75-10.002 9.732 2.22-2.83 5.564-5.098 10.002-5.098V71.5L73 65.585 67.002 59.5z" id="Shape" fill="#fff"/><g fill="#fff"><path d="M13 29v-5h2v3h3v2h-5zM13 15h5v2h-3v3h-2v-5zM31 15v5h-2v-3h-3v-2h5zM31 29h-5v-2h3v-3h2v5z" id="Shape"/></g><g fill="#fff"><path d="M62 24v5h-2v-3h-3v-2h5zM62 20h-5v-2h3v-3h2v5zM70 20v-5h2v3h3v2h-5zM70 24h5v2h-3v3h-2v-5z"/></g><path d="M20.586 66l-5.656-5.656 1.414-1.414L22 64.586l5.656-5.656 1.414 1.414L23.414 66l5.656 5.656-1.414 1.414L22 67.414l-5.656 5.656-1.414-1.414L20.586 66z" fill="#fff"/><path d="M111.785 65.03L110 63.5l3-3.5h-10v-2h10l-3-3.5 1.785-1.468L117 59l-5.215 6.03z" fill="#fff"/><path d="M152.215 65.03L154 63.5l-3-3.5h10v-2h-10l3-3.5-1.785-1.468L147 59l5.215 6.03z" fill="#fff"/><g><path id="Rectangle-11" fill="#fff" d="M160.957 28.543l-3.25-3.25-1.413 1.414 3.25 3.25z"/><path d="M152.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" id="Oval-1" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M150 21h5v1h-5z"/></g><g><path d="M116.957 28.543l-1.414 1.414-3.25-3.25 1.414-1.414 3.25 3.25z" fill="#fff"/><path d="M108.5 27c3.038 0 5.5-2.462 5.5-5.5s-2.462-5.5-5.5-5.5-5.5 2.462-5.5 5.5 2.462 5.5 5.5 5.5z" stroke="#fff" stroke-width="1.5"/><path fill="#fff" d="M106 21h5v1h-5z"/><path fill="#fff" d="M109.043 19.008l-.085 5-1-.017.085-5z"/></g></g></g></svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
BIN
themes/default/public/css/default-skin/preloader.gif
Normal file
BIN
themes/default/public/css/default-skin/preloader.gif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 866 B |
3
themes/default/public/css/fontello-codes.css
vendored
3
themes/default/public/css/fontello-codes.css
vendored
@@ -12,4 +12,5 @@
|
||||
.icon-flattr:before { content: '\e80a'; } /* '' */
|
||||
.icon-cancel:before { content: '\e80b'; } /* '' */
|
||||
.icon-picture:before { content: '\e80c'; } /* '' */
|
||||
.icon-file-archive:before { content: '\e80d'; } /* '' */
|
||||
.icon-file-archive:before { content: '\e80d'; } /* '' */
|
||||
.icon-language:before { content: '\e80e'; } /* '' */
|
||||
15
themes/default/public/css/fontello-embedded.css
vendored
15
themes/default/public/css/fontello-embedded.css
vendored
File diff suppressed because one or more lines are too long
@@ -12,4 +12,5 @@
|
||||
.icon-flattr { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-file-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-file-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-language { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
3
themes/default/public/css/fontello-ie7.css
vendored
3
themes/default/public/css/fontello-ie7.css
vendored
@@ -23,4 +23,5 @@
|
||||
.icon-flattr { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-cancel { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-picture { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-file-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-file-archive { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
.icon-language { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); }
|
||||
17
themes/default/public/css/fontello.css
vendored
17
themes/default/public/css/fontello.css
vendored
@@ -1,11 +1,11 @@
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.eot?79499210');
|
||||
src: url('../font/fontello.eot?79499210#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.woff2?79499210') format('woff2'),
|
||||
url('../font/fontello.woff?79499210') format('woff'),
|
||||
url('../font/fontello.ttf?79499210') format('truetype'),
|
||||
url('../font/fontello.svg?79499210#fontello') format('svg');
|
||||
src: url('../font/fontello.eot?84200725');
|
||||
src: url('../font/fontello.eot?84200725#iefix') format('embedded-opentype'),
|
||||
url('../font/fontello.woff2?84200725') format('woff2'),
|
||||
url('../font/fontello.woff?84200725') format('woff'),
|
||||
url('../font/fontello.ttf?84200725') format('truetype'),
|
||||
url('../font/fontello.svg?84200725#fontello') format('svg');
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
@@ -15,7 +15,7 @@
|
||||
@media screen and (-webkit-min-device-pixel-ratio:0) {
|
||||
@font-face {
|
||||
font-family: 'fontello';
|
||||
src: url('../font/fontello.svg?79499210#fontello') format('svg');
|
||||
src: url('../font/fontello.svg?84200725#fontello') format('svg');
|
||||
}
|
||||
}
|
||||
*/
|
||||
@@ -68,4 +68,5 @@
|
||||
.icon-flattr:before { content: '\e80a'; } /* '' */
|
||||
.icon-cancel:before { content: '\e80b'; } /* '' */
|
||||
.icon-picture:before { content: '\e80c'; } /* '' */
|
||||
.icon-file-archive:before { content: '\e80d'; } /* '' */
|
||||
.icon-file-archive:before { content: '\e80d'; } /* '' */
|
||||
.icon-language:before { content: '\e80e'; } /* '' */
|
||||
@@ -2,5 +2,6 @@
|
||||
font-family: 'Henny_Penny';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local('Henny Penny'), local('HennyPenny-Regular'), url(../font/hennypenny.ttf) format('truetype');
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* vim:set sw=4 ts=4 sts=4 ft=css expandtab: */
|
||||
@media (max-width: 767px) {
|
||||
body {
|
||||
padding-top: 5px;
|
||||
@@ -7,7 +8,6 @@
|
||||
|
||||
@media (min-width: 768px) {
|
||||
body {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,10 @@
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
nav .container {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.jsonly {
|
||||
display: none;
|
||||
}
|
||||
@@ -83,3 +87,20 @@ label.always-encrypt {
|
||||
width: 0;
|
||||
display: hidden;
|
||||
}
|
||||
.gallery figure {
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
@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 }
|
||||
}
|
||||
|
||||
179
themes/default/public/css/photoswipe.css
Normal file
179
themes/default/public/css/photoswipe.css
Normal file
@@ -0,0 +1,179 @@
|
||||
/*! PhotoSwipe main CSS by Dmitry Semenov | photoswipe.com | MIT license */
|
||||
/*
|
||||
Styles for basic PhotoSwipe functionality (sliding area, open/close transitions)
|
||||
*/
|
||||
/* pswp = photoswipe */
|
||||
.pswp {
|
||||
display: none;
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
left: 0;
|
||||
top: 0;
|
||||
overflow: hidden;
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
z-index: 1500;
|
||||
-webkit-text-size-adjust: 100%;
|
||||
/* create separate layer, to avoid paint on window.onscroll in webkit/blink */
|
||||
-webkit-backface-visibility: hidden;
|
||||
outline: none; }
|
||||
.pswp * {
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box; }
|
||||
.pswp img {
|
||||
max-width: none; }
|
||||
|
||||
/* style is added when JS option showHideOpacity is set to true */
|
||||
.pswp--animate_opacity {
|
||||
/* 0.001, because opacity:0 doesn't trigger Paint action, which causes lag at start of transition */
|
||||
opacity: 0.001;
|
||||
will-change: opacity;
|
||||
/* for open/close transition */
|
||||
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
.pswp--open {
|
||||
display: block; }
|
||||
|
||||
.pswp--zoom-allowed .pswp__img {
|
||||
/* autoprefixer: off */
|
||||
cursor: -webkit-zoom-in;
|
||||
cursor: -moz-zoom-in;
|
||||
cursor: zoom-in; }
|
||||
|
||||
.pswp--zoomed-in .pswp__img {
|
||||
/* autoprefixer: off */
|
||||
cursor: -webkit-grab;
|
||||
cursor: -moz-grab;
|
||||
cursor: grab; }
|
||||
|
||||
.pswp--dragging .pswp__img {
|
||||
/* autoprefixer: off */
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: -moz-grabbing;
|
||||
cursor: grabbing; }
|
||||
|
||||
/*
|
||||
Background is added as a separate element.
|
||||
As animating opacity is much faster than animating rgba() background-color.
|
||||
*/
|
||||
.pswp__bg {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #000;
|
||||
opacity: 0;
|
||||
-webkit-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-backface-visibility: hidden;
|
||||
will-change: opacity; }
|
||||
|
||||
.pswp__scroll-wrap {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden; }
|
||||
|
||||
.pswp__container,
|
||||
.pswp__zoom-wrap {
|
||||
-ms-touch-action: none;
|
||||
touch-action: none;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0; }
|
||||
|
||||
/* Prevent selection and tap highlights */
|
||||
.pswp__container,
|
||||
.pswp__img {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
-webkit-touch-callout: none; }
|
||||
|
||||
.pswp__zoom-wrap {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
-webkit-transform-origin: left top;
|
||||
-ms-transform-origin: left top;
|
||||
transform-origin: left top;
|
||||
/* for open/close transition */
|
||||
-webkit-transition: -webkit-transform 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: transform 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
.pswp__bg {
|
||||
will-change: opacity;
|
||||
/* for open/close transition */
|
||||
-webkit-transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1);
|
||||
transition: opacity 333ms cubic-bezier(0.4, 0, 0.22, 1); }
|
||||
|
||||
.pswp--animated-in .pswp__bg,
|
||||
.pswp--animated-in .pswp__zoom-wrap {
|
||||
-webkit-transition: none;
|
||||
transition: none; }
|
||||
|
||||
.pswp__container,
|
||||
.pswp__zoom-wrap {
|
||||
-webkit-backface-visibility: hidden; }
|
||||
|
||||
.pswp__item {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
overflow: hidden; }
|
||||
|
||||
.pswp__img {
|
||||
position: absolute;
|
||||
width: auto;
|
||||
height: auto;
|
||||
top: 0;
|
||||
left: 0; }
|
||||
|
||||
/*
|
||||
stretched thumbnail or div placeholder element (see below)
|
||||
style is added to avoid flickering in webkit/blink when layers overlap
|
||||
*/
|
||||
.pswp__img--placeholder {
|
||||
-webkit-backface-visibility: hidden; }
|
||||
|
||||
/*
|
||||
div element that matches size of large image
|
||||
large image loads on top of it
|
||||
*/
|
||||
.pswp__img--placeholder--blank {
|
||||
background: #222; }
|
||||
|
||||
.pswp--ie .pswp__img {
|
||||
width: 100% !important;
|
||||
height: auto !important;
|
||||
left: 0;
|
||||
top: 0; }
|
||||
|
||||
/*
|
||||
Error message appears when image is not loaded
|
||||
(JS option errorMsg controls markup)
|
||||
*/
|
||||
.pswp__error-msg {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
margin-top: -8px;
|
||||
color: #CCC; }
|
||||
|
||||
.pswp__error-msg a {
|
||||
color: #CCC;
|
||||
text-decoration: underline; }
|
||||
@@ -3,7 +3,7 @@ Font license info
|
||||
|
||||
## Font Awesome
|
||||
|
||||
Copyright (C) 2012 by Dave Gandy
|
||||
Copyright (C) 2016 by Dave Gandy
|
||||
|
||||
Author: Dave Gandy
|
||||
License: SIL ()
|
||||
@@ -55,3 +55,12 @@ Font license info
|
||||
Homepage: http://www.justbenicestudio.com/
|
||||
|
||||
|
||||
## Entypo
|
||||
|
||||
Copyright (C) 2012 by Daniel Bruce
|
||||
|
||||
Author: Daniel Bruce
|
||||
License: SIL (http://scripts.sil.org/OFL)
|
||||
Homepage: http://www.entypo.com
|
||||
|
||||
|
||||
|
||||
Binary file not shown.
@@ -1,26 +1,26 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata>Copyright (C) 2016 by original authors @ fontello.com</metadata>
|
||||
<metadata>Copyright (C) 2018 by original authors @ fontello.com</metadata>
|
||||
<defs>
|
||||
<font id="fontello" horiz-adv-x="1000" >
|
||||
<font-face font-family="fontello" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
|
||||
<missing-glyph horiz-adv-x="1000" />
|
||||
<glyph glyph-name="ok" unicode="" d="M932 534q0-22-15-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q15-16 15-38z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="ok" unicode="" d="M933 534q0-22-16-38l-404-404-76-76q-16-15-38-15t-38 15l-76 76-202 202q-15 16-15 38t15 38l76 76q16 16 38 16t38-16l164-165 366 367q16 16 38 16t38-16l76-76q16-15 16-38z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="eye" unicode="" d="M929 314q-85 132-213 197 34-58 34-125 0-104-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 242 68 187 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="eye" unicode="" d="M929 314q-85 132-213 197 34-58 34-125 0-103-73-177t-177-73-177 73-73 177q0 67 34 125-128-65-213-197 75-114 187-182t242-68 243 68 186 182z m-402 215q0 11-8 19t-19 7q-70 0-120-50t-50-119q0-11 8-19t19-8 19 8 8 19q0 48 34 82t82 34q11 0 19 8t8 19z m473-215q0-19-11-38-78-129-210-206t-279-77-279 77-210 206q-11 19-11 38t11 39q78 128 210 205t279 78 279-78 210-205q11-20 11-39z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="download" unicode="" d="M714 100q0 15-10 25t-25 11-26-11-10-25 10-25 26-11 25 11 10 25z m143 0q0 15-10 25t-26 11-25-11-10-25 10-25 25-11 26 11 10 25z m72 125v-179q0-22-16-37t-38-16h-821q-23 0-38 16t-16 37v179q0 22 16 38t38 16h259l75-76q33-32 76-32t76 32l76 76h259q22 0 38-16t16-38z m-182 318q10-23-8-40l-250-250q-10-10-25-10t-25 10l-250 250q-17 17-8 40 10 21 33 21h143v250q0 15 11 25t25 11h143q14 0 25-11t10-25v-250h143q24 0 33-21z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="download" unicode="" d="M714 100q0 15-10 25t-25 11-25-11-11-25 11-25 25-11 25 11 10 25z m143 0q0 15-10 25t-26 11-25-11-10-25 10-25 25-11 26 11 10 25z m72 125v-179q0-22-16-37t-38-16h-821q-23 0-38 16t-16 37v179q0 22 16 38t38 16h259l75-76q33-32 76-32t76 32l76 76h259q22 0 38-16t16-38z m-182 318q10-23-8-39l-250-250q-10-11-25-11t-25 11l-250 250q-17 16-8 39 10 21 33 21h143v250q0 15 11 25t25 11h143q14 0 25-11t10-25v-250h143q24 0 33-21z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="share" unicode="" d="M679 279q74 0 126-53t52-126-52-126-126-53-127 53-52 126q0 7 1 19l-201 100q-51-48-121-48-75 0-127 53t-52 126 52 126 127 53q70 0 121-48l201 100q-1 12-1 19 0 74 52 126t127 53 126-53 52-126-52-126-126-53q-71 0-122 48l-201-100q1-12 1-19t-1-19l201-100q51 48 122 48z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="trash" unicode="" d="M286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15 6-5h464q2 0 6 5t8 15 4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q22 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
||||
<glyph glyph-name="trash" unicode="" d="M286 439v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m143 0v-321q0-8-5-13t-13-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q8 0 13-5t5-13z m142 0v-321q0-8-5-13t-12-5h-36q-8 0-13 5t-5 13v321q0 8 5 13t13 5h36q7 0 12-5t5-13z m72-404v529h-500v-529q0-12 4-22t8-15 6-5h464q2 0 6 5t8 15 4 22z m-375 601h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q23 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />
|
||||
|
||||
<glyph glyph-name="bitcoin" unicode="" d="M651 493q10-102-73-144 65-16 98-58t25-119q-4-40-18-70t-36-49-54-33-68-19-81-9v-142h-86v140q-45 0-68 1v-141h-86v142q-10 0-30 1t-31 0h-112l18 102h62q27 0 32 28v225h9q-4 0-9 0v160q-7 38-50 38h-62v92l119-1q35 0 54 1v141h86v-138q45 1 68 1v137h86v-141q44-4 78-13t63-25 46-43 20-64z m-120-304q0 20-8 35t-21 26-32 17-36 10-42 5-38 2-36 0-27-1v-189q5 0 21 0t27 0 29 1 33 2 32 5 31 8 26 11 22 17 14 22 5 29z m-39 265q0 19-7 33t-17 23-27 16-31 9-34 5-33 1-30 0-22-1v-171q3 0 20 0t26 0 27 1 31 3 29 6 27 10 21 15 15 22 5 28z" horiz-adv-x="714.3" />
|
||||
<glyph glyph-name="bitcoin" unicode="" d="M651 493q10-102-73-144 65-16 98-58t25-119q-4-40-18-70t-36-49-54-33-68-19-81-9v-142h-86v140q-45 0-68 1v-141h-86v142q-10 0-30 1t-31 0h-112l18 102h62q27 0 32 28v225h9q-4 0-9 0v161q-7 37-50 37h-62v92l119-1q35 0 54 1v141h86v-138q45 1 68 1v137h86v-141q44-4 78-13t63-25 46-43 20-64z m-120-304q0 20-8 35t-21 26-32 17-36 11-42 5-38 1-36 0-27-1v-189q5 0 21 0t27 0 29 1 33 2 32 5 31 8 26 11 22 17 14 22 5 29z m-39 265q0 19-7 33t-17 23-27 16-31 9-34 5-32 1-31 0-22-1v-171q3 0 20 0t26 0 27 1 31 3 29 6 27 10 21 15 15 22 5 28z" horiz-adv-x="714.3" />
|
||||
|
||||
<glyph glyph-name="git" unicode="" d="M332 5q0 56-92 56-88 0-88-58 0-57 96-57 84 0 84 59z m-33 421q0 35-17 57t-49 23q-69 0-69-81 0-75 69-75 66 0 66 76z m150 181v-112q-20-7-44-13 9-24 9-47 0-70-41-120t-110-63q-22-5-33-15t-11-33q0-17 13-28t32-18 44-12 48-15 44-21 32-35 13-55q0-170-203-170-38 0-72 7t-65 23-49 46-18 71q0 92 102 125v3q-38 22-38 70 0 61 35 76v3q-40 13-66 60t-27 92q0 78 53 130t131 51q54 0 100-26 54 0 121 26z m178-491h-124q2 25 2 74v340q0 53-2 72h124q-3-19-3-70v-342q0-49 3-74z m335 124v-110q-40-22-97-22-35 0-60 12t-39 27-22 44-10 51-2 58v196h1v2q-4 0-11 0t-10 1q-12 0-33-3v106h54v42q0 30-4 50h127q-3-23-3-92h95v-106q-8 0-24 1t-24 1h-47v-204q0-73 48-73 34 0 61 19z m-321 528q0-32-22-57t-54-24q-32 0-54 24t-23 57q0 33 22 57t55 25q33 0 54-25t22-57z" horiz-adv-x="1000" />
|
||||
<glyph glyph-name="git" unicode="" d="M332 5q0 56-92 56-88 0-88-58 0-57 96-57 84 0 84 59z m-33 422q0 34-17 56t-49 23q-69 0-69-81 0-75 69-75 66 0 66 77z m150 180v-112q-20-7-44-13 9-24 9-47 0-70-41-120t-110-63q-22-5-33-15t-11-33q0-17 13-28t32-18 44-12 48-15 44-21 32-35 13-55q0-170-203-170-38 0-72 7t-65 23-49 46-18 71q0 92 102 125v3q-38 22-38 70 0 61 35 76v3q-40 13-66 60t-27 93q0 77 53 129t131 51q54 0 100-26 54 0 121 26z m178-491h-124q2 25 2 74v340q0 53-2 72h124q-3-19-3-69v-343q0-49 3-74z m335 124v-110q-40-22-97-22-35 0-60 12t-39 27-22 44-10 51-2 58v196h1v2q-4 0-11 0t-10 1q-12 0-33-3v106h54v42q0 30-4 50h127q-3-23-3-92h95v-106q-8 0-24 1t-24 1h-47v-204q0-73 48-73 34 0 61 19z m-321 528q0-32-22-57t-54-24q-32 0-54 24t-23 57q0 33 22 57t55 25q33 0 54-25t22-57z" horiz-adv-x="1000" />
|
||||
|
||||
<glyph glyph-name="twitter" unicode="" d="M904 622q-37-54-90-93 0-8 0-23 0-73-21-145t-64-139-103-117-144-82-181-30q-151 0-276 81 19-2 43-2 126 0 224 77-59 1-105 36t-64 89q19-3 34-3 24 0 48 6-63 13-104 62t-41 115v2q38-21 82-23-37 25-59 64t-22 86q0 49 25 91 68-83 164-133t208-55q-5 21-5 41 0 75 53 127t127 53q79 0 132-57 61 12 114 44-20-64-79-100 52 6 104 28z" horiz-adv-x="928.6" />
|
||||
<glyph glyph-name="twitter" unicode="" d="M904 622q-37-54-90-93 0-8 0-23 0-73-21-145t-64-139-103-117-144-82-181-30q-151 0-276 81 19-2 43-2 126 0 224 77-59 1-105 36t-64 89q19-3 34-3 24 0 48 6-63 13-104 62t-41 115v2q38-21 82-23-37 25-59 64t-22 86q0 49 25 91 68-83 164-133t208-55q-5 21-5 41 0 75 53 127t127 53q79 0 132-57 61 12 115 44-21-64-80-100 52 6 104 28z" horiz-adv-x="928.6" />
|
||||
|
||||
<glyph glyph-name="clipboard" unicode="" d="M678 819q65 0 110-46t46-110l0-625q0-65-46-111t-110-46l-522 0q-65 0-110 46t-46 111l0 625q0 65 46 110t110 46l522 0z m-418-104l0-52q0-21 16-37t37-16l208 0q22 0 37 16t15 37l0 52-313 0z m469-677l0 625q0 21-15 37t-36 15l-53 0 0-52q0-43-30-73t-74-31l-208 0q-43 0-74 31t-30 73l0 52-53 0q-21 0-37-15t-15-37l0-625q0-21 15-37t37-16l522 0q21 0 36 16t15 37z m-104 52l-416 0q-26 0-26 25 0 12 7 19t19 8l416 0q11 0 19-8t7-19q0-25-26-25z m0 157l-416 0q-11 0-19 7t-7 19q0 25 26 25l416 0q26 0 26-25 0-11-7-19t-19-7z m0 156l-416 0q-26 0-26 25 0 11 7 19t19 7l416 0q11 0 19-7t7-19q0-25-26-25z" horiz-adv-x="834" />
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
|
||||
<glyph glyph-name="picture" unicode="" d="M1360 849v-1000h-1360v1000h1360z m-1240-880h1120v760h-1120v-760z m1000 560q0-33-23-56t-57-24-56 24-24 56 24 57 56 23 57-23 23-57z m43-473q2-1 1-4t-4-3h-956q-4 0-4 4v2q18 36 135 280t144 299q1 2 4 3t3-2l311-386 152 122h7l1-2q39-50 102-155t104-158z" horiz-adv-x="1360" />
|
||||
|
||||
<glyph glyph-name="file-archive" unicode="" d="M357 636v71h-71v-71h71z m72-72v72h-72v-72h72z m-72-71v71h-71v-71h71z m72-72v72h-72v-72h72z m390 217q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 16-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 15t-16 38v233h-71v-72h-72v72h-286v-858h715z m-350 403l60-195q4-15 4-29 0-46-40-77t-103-30-102 30-41 77q0 14 5 29 12 35 67 221v71h71v-71h44q13 0 22-7t13-19z m-79-260q30 0 51 11t21 25-21 25-51 11-50-11-21-25 21-25 50-11z" horiz-adv-x="857.1" />
|
||||
<glyph glyph-name="file-archive" unicode="" d="M357 636v71h-71v-71h71z m72-72v72h-72v-72h72z m-72-71v71h-71v-71h71z m72-72v72h-72v-72h72z m390 217q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-71v-72h-72v72h-286v-858h715z m-350 403l60-195q4-15 4-29 0-46-40-77t-103-30-102 30-41 77q0 14 5 29 12 35 67 221v71h71v-71h44q13 0 22-7t13-19z m-79-260q30 0 51 11t21 25-21 25-51 11-50-11-21-25 21-25 50-11z" horiz-adv-x="857.1" />
|
||||
|
||||
<glyph glyph-name="language" unicode="" d="M988 306q30-82-10-176t-134-160q-10 0-12 2t-16 19-16 19q-2 6 2 10 86 60 117 152t-11 148q-16-38-39-76t-59-80-86-65-106-15q-52 6-84 41t-32 93q0 84 60 148 50 50 114 66l-2 100q-140-24-146-24-6-2-10 4 0 2-5 29t-5 31q-2 2 1 4t7 2l156 28q0 110-2 114 0 8 8 8 46 0 52 2 10 0 10-8l0-104q158 22 164 22 8 4 10-6 0-2 4-23t4-25q4-10-4-12l-176-30 0-102 12 0q86 0 148-36t86-100z m-370-160q28-6 62 6l-4 214q-34-12-60-40-44-44-44-108 0-66 46-72z m122 28q28 24 58 68t45 79 7 41q-36 18-96 18-2 0-6-1t-6-1z m-448 382q10-28 53-165t83-261 40-126q0-4-4-4l-86 0q-6 0-6 4l-50 166-176 0q-48-164-50-166 0-4-6-4l-86 0q-4 0-4 4 10 18 176 552 2 8 10 8l96 0q10 0 10-8z m-130-316l144 0-72 264z" horiz-adv-x="1001" />
|
||||
</font>
|
||||
</defs>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 7.2 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
themes/default/public/font/hennypenny.woff2
Normal file
BIN
themes/default/public/font/hennypenny.woff2
Normal file
Binary file not shown.
403
themes/default/public/js/bootstrap.js
vendored
403
themes/default/public/js/bootstrap.js
vendored
@@ -1,12 +1,12 @@
|
||||
/*!
|
||||
* Bootstrap v3.3.5 (http://getbootstrap.com)
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* Bootstrap v3.3.7 (http://getbootstrap.com)
|
||||
* Copyright 2011-2018 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
/*!
|
||||
* Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=a3e981920dd6bd53664e6b133bd0d53f)
|
||||
* Config saved to config.json and https://gist.github.com/a3e981920dd6bd53664e6b133bd0d53f
|
||||
* Generated using the Bootstrap Customizer (<none>)
|
||||
* Config saved to config.json and <none>
|
||||
*/
|
||||
if (typeof jQuery === 'undefined') {
|
||||
throw new Error('Bootstrap\'s JavaScript requires jQuery')
|
||||
@@ -14,16 +14,16 @@ if (typeof jQuery === 'undefined') {
|
||||
+function ($) {
|
||||
'use strict';
|
||||
var version = $.fn.jquery.split(' ')[0].split('.')
|
||||
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 2)) {
|
||||
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3')
|
||||
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {
|
||||
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')
|
||||
}
|
||||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: alert.js v3.3.6
|
||||
* Bootstrap: alert.js v3.3.7
|
||||
* http://getbootstrap.com/javascript/#alerts
|
||||
* ========================================================================
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
@@ -39,7 +39,7 @@ if (typeof jQuery === 'undefined') {
|
||||
$(el).on('click', dismiss, this.close)
|
||||
}
|
||||
|
||||
Alert.VERSION = '3.3.6'
|
||||
Alert.VERSION = '3.3.7'
|
||||
|
||||
Alert.TRANSITION_DURATION = 150
|
||||
|
||||
@@ -52,7 +52,7 @@ if (typeof jQuery === 'undefined') {
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||
}
|
||||
|
||||
var $parent = $(selector)
|
||||
var $parent = $(selector === '#' ? [] : selector)
|
||||
|
||||
if (e) e.preventDefault()
|
||||
|
||||
@@ -115,10 +115,389 @@ if (typeof jQuery === 'undefined') {
|
||||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: transition.js v3.3.6
|
||||
* Bootstrap: dropdown.js v3.3.7
|
||||
* http://getbootstrap.com/javascript/#dropdowns
|
||||
* ========================================================================
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
||||
+function ($) {
|
||||
'use strict';
|
||||
|
||||
// DROPDOWN CLASS DEFINITION
|
||||
// =========================
|
||||
|
||||
var backdrop = '.dropdown-backdrop'
|
||||
var toggle = '[data-toggle="dropdown"]'
|
||||
var Dropdown = function (element) {
|
||||
$(element).on('click.bs.dropdown', this.toggle)
|
||||
}
|
||||
|
||||
Dropdown.VERSION = '3.3.7'
|
||||
|
||||
function getParent($this) {
|
||||
var selector = $this.attr('data-target')
|
||||
|
||||
if (!selector) {
|
||||
selector = $this.attr('href')
|
||||
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
||||
}
|
||||
|
||||
var $parent = selector && $(selector)
|
||||
|
||||
return $parent && $parent.length ? $parent : $this.parent()
|
||||
}
|
||||
|
||||
function clearMenus(e) {
|
||||
if (e && e.which === 3) return
|
||||
$(backdrop).remove()
|
||||
$(toggle).each(function () {
|
||||
var $this = $(this)
|
||||
var $parent = getParent($this)
|
||||
var relatedTarget = { relatedTarget: this }
|
||||
|
||||
if (!$parent.hasClass('open')) return
|
||||
|
||||
if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
|
||||
|
||||
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
|
||||
$this.attr('aria-expanded', 'false')
|
||||
$parent.removeClass('open').trigger($.Event('hidden.bs.dropdown', relatedTarget))
|
||||
})
|
||||
}
|
||||
|
||||
Dropdown.prototype.toggle = function (e) {
|
||||
var $this = $(this)
|
||||
|
||||
if ($this.is('.disabled, :disabled')) return
|
||||
|
||||
var $parent = getParent($this)
|
||||
var isActive = $parent.hasClass('open')
|
||||
|
||||
clearMenus()
|
||||
|
||||
if (!isActive) {
|
||||
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
||||
// if mobile we use a backdrop because click events don't delegate
|
||||
$(document.createElement('div'))
|
||||
.addClass('dropdown-backdrop')
|
||||
.insertAfter($(this))
|
||||
.on('click', clearMenus)
|
||||
}
|
||||
|
||||
var relatedTarget = { relatedTarget: this }
|
||||
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
|
||||
$this
|
||||
.trigger('focus')
|
||||
.attr('aria-expanded', 'true')
|
||||
|
||||
$parent
|
||||
.toggleClass('open')
|
||||
.trigger($.Event('shown.bs.dropdown', relatedTarget))
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
Dropdown.prototype.keydown = function (e) {
|
||||
if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
|
||||
|
||||
var $this = $(this)
|
||||
|
||||
e.preventDefault()
|
||||
e.stopPropagation()
|
||||
|
||||
if ($this.is('.disabled, :disabled')) return
|
||||
|
||||
var $parent = getParent($this)
|
||||
var isActive = $parent.hasClass('open')
|
||||
|
||||
if (!isActive && e.which != 27 || isActive && e.which == 27) {
|
||||
if (e.which == 27) $parent.find(toggle).trigger('focus')
|
||||
return $this.trigger('click')
|
||||
}
|
||||
|
||||
var desc = ' li:not(.disabled):visible a'
|
||||
var $items = $parent.find('.dropdown-menu' + desc)
|
||||
|
||||
if (!$items.length) return
|
||||
|
||||
var index = $items.index(e.target)
|
||||
|
||||
if (e.which == 38 && index > 0) index-- // up
|
||||
if (e.which == 40 && index < $items.length - 1) index++ // down
|
||||
if (!~index) index = 0
|
||||
|
||||
$items.eq(index).trigger('focus')
|
||||
}
|
||||
|
||||
|
||||
// DROPDOWN PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.dropdown')
|
||||
|
||||
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
|
||||
if (typeof option == 'string') data[option].call($this)
|
||||
})
|
||||
}
|
||||
|
||||
var old = $.fn.dropdown
|
||||
|
||||
$.fn.dropdown = Plugin
|
||||
$.fn.dropdown.Constructor = Dropdown
|
||||
|
||||
|
||||
// DROPDOWN NO CONFLICT
|
||||
// ====================
|
||||
|
||||
$.fn.dropdown.noConflict = function () {
|
||||
$.fn.dropdown = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
// APPLY TO STANDARD DROPDOWN ELEMENTS
|
||||
// ===================================
|
||||
|
||||
$(document)
|
||||
.on('click.bs.dropdown.data-api', clearMenus)
|
||||
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
||||
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
||||
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
||||
.on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
|
||||
|
||||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: collapse.js v3.3.7
|
||||
* http://getbootstrap.com/javascript/#collapse
|
||||
* ========================================================================
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
/* jshint latedef: false */
|
||||
|
||||
+function ($) {
|
||||
'use strict';
|
||||
|
||||
// COLLAPSE PUBLIC CLASS DEFINITION
|
||||
// ================================
|
||||
|
||||
var Collapse = function (element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, Collapse.DEFAULTS, options)
|
||||
this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
|
||||
'[data-toggle="collapse"][data-target="#' + element.id + '"]')
|
||||
this.transitioning = null
|
||||
|
||||
if (this.options.parent) {
|
||||
this.$parent = this.getParent()
|
||||
} else {
|
||||
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
|
||||
}
|
||||
|
||||
if (this.options.toggle) this.toggle()
|
||||
}
|
||||
|
||||
Collapse.VERSION = '3.3.7'
|
||||
|
||||
Collapse.TRANSITION_DURATION = 350
|
||||
|
||||
Collapse.DEFAULTS = {
|
||||
toggle: true
|
||||
}
|
||||
|
||||
Collapse.prototype.dimension = function () {
|
||||
var hasWidth = this.$element.hasClass('width')
|
||||
return hasWidth ? 'width' : 'height'
|
||||
}
|
||||
|
||||
Collapse.prototype.show = function () {
|
||||
if (this.transitioning || this.$element.hasClass('in')) return
|
||||
|
||||
var activesData
|
||||
var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
|
||||
|
||||
if (actives && actives.length) {
|
||||
activesData = actives.data('bs.collapse')
|
||||
if (activesData && activesData.transitioning) return
|
||||
}
|
||||
|
||||
var startEvent = $.Event('show.bs.collapse')
|
||||
this.$element.trigger(startEvent)
|
||||
if (startEvent.isDefaultPrevented()) return
|
||||
|
||||
if (actives && actives.length) {
|
||||
Plugin.call(actives, 'hide')
|
||||
activesData || actives.data('bs.collapse', null)
|
||||
}
|
||||
|
||||
var dimension = this.dimension()
|
||||
|
||||
this.$element
|
||||
.removeClass('collapse')
|
||||
.addClass('collapsing')[dimension](0)
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.$trigger
|
||||
.removeClass('collapsed')
|
||||
.attr('aria-expanded', true)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
this.$element
|
||||
.removeClass('collapsing')
|
||||
.addClass('collapse in')[dimension]('')
|
||||
this.transitioning = 0
|
||||
this.$element
|
||||
.trigger('shown.bs.collapse')
|
||||
}
|
||||
|
||||
if (!$.support.transition) return complete.call(this)
|
||||
|
||||
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
|
||||
|
||||
this.$element
|
||||
.one('bsTransitionEnd', $.proxy(complete, this))
|
||||
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
|
||||
}
|
||||
|
||||
Collapse.prototype.hide = function () {
|
||||
if (this.transitioning || !this.$element.hasClass('in')) return
|
||||
|
||||
var startEvent = $.Event('hide.bs.collapse')
|
||||
this.$element.trigger(startEvent)
|
||||
if (startEvent.isDefaultPrevented()) return
|
||||
|
||||
var dimension = this.dimension()
|
||||
|
||||
this.$element[dimension](this.$element[dimension]())[0].offsetHeight
|
||||
|
||||
this.$element
|
||||
.addClass('collapsing')
|
||||
.removeClass('collapse in')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.$trigger
|
||||
.addClass('collapsed')
|
||||
.attr('aria-expanded', false)
|
||||
|
||||
this.transitioning = 1
|
||||
|
||||
var complete = function () {
|
||||
this.transitioning = 0
|
||||
this.$element
|
||||
.removeClass('collapsing')
|
||||
.addClass('collapse')
|
||||
.trigger('hidden.bs.collapse')
|
||||
}
|
||||
|
||||
if (!$.support.transition) return complete.call(this)
|
||||
|
||||
this.$element
|
||||
[dimension](0)
|
||||
.one('bsTransitionEnd', $.proxy(complete, this))
|
||||
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)
|
||||
}
|
||||
|
||||
Collapse.prototype.toggle = function () {
|
||||
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
||||
}
|
||||
|
||||
Collapse.prototype.getParent = function () {
|
||||
return $(this.options.parent)
|
||||
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
|
||||
.each($.proxy(function (i, element) {
|
||||
var $element = $(element)
|
||||
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
|
||||
}, this))
|
||||
.end()
|
||||
}
|
||||
|
||||
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
|
||||
var isOpen = $element.hasClass('in')
|
||||
|
||||
$element.attr('aria-expanded', isOpen)
|
||||
$trigger
|
||||
.toggleClass('collapsed', !isOpen)
|
||||
.attr('aria-expanded', isOpen)
|
||||
}
|
||||
|
||||
function getTargetFromTrigger($trigger) {
|
||||
var href
|
||||
var target = $trigger.attr('data-target')
|
||||
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
|
||||
|
||||
return $(target)
|
||||
}
|
||||
|
||||
|
||||
// COLLAPSE PLUGIN DEFINITION
|
||||
// ==========================
|
||||
|
||||
function Plugin(option) {
|
||||
return this.each(function () {
|
||||
var $this = $(this)
|
||||
var data = $this.data('bs.collapse')
|
||||
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
|
||||
|
||||
if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
|
||||
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
|
||||
if (typeof option == 'string') data[option]()
|
||||
})
|
||||
}
|
||||
|
||||
var old = $.fn.collapse
|
||||
|
||||
$.fn.collapse = Plugin
|
||||
$.fn.collapse.Constructor = Collapse
|
||||
|
||||
|
||||
// COLLAPSE NO CONFLICT
|
||||
// ====================
|
||||
|
||||
$.fn.collapse.noConflict = function () {
|
||||
$.fn.collapse = old
|
||||
return this
|
||||
}
|
||||
|
||||
|
||||
// COLLAPSE DATA-API
|
||||
// =================
|
||||
|
||||
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
|
||||
var $this = $(this)
|
||||
|
||||
if (!$this.attr('data-target')) e.preventDefault()
|
||||
|
||||
var $target = getTargetFromTrigger($this)
|
||||
var data = $target.data('bs.collapse')
|
||||
var option = data ? 'toggle' : $this.data()
|
||||
|
||||
Plugin.call($target, option)
|
||||
})
|
||||
|
||||
}(jQuery);
|
||||
|
||||
/* ========================================================================
|
||||
* Bootstrap: transition.js v3.3.7
|
||||
* http://getbootstrap.com/javascript/#transitions
|
||||
* ========================================================================
|
||||
* Copyright 2011-2015 Twitter, Inc.
|
||||
* Copyright 2011-2016 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
* ======================================================================== */
|
||||
|
||||
|
||||
10
themes/default/public/js/bootstrap.min.js
vendored
10
themes/default/public/js/bootstrap.min.js
vendored
File diff suppressed because one or more lines are too long
4
themes/default/public/js/jquery-2.1.0.min.js
vendored
4
themes/default/public/js/jquery-2.1.0.min.js
vendored
File diff suppressed because one or more lines are too long
4
themes/default/public/js/jquery-3.2.1.min.js
vendored
Normal file
4
themes/default/public/js/jquery-3.2.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
themes/default/public/js/jquery-3.2.1.min.map
Normal file
1
themes/default/public/js/jquery-3.2.1.min.map
Normal file
File diff suppressed because one or more lines are too long
861
themes/default/public/js/photoswipe-ui-default.js
Normal file
861
themes/default/public/js/photoswipe-ui-default.js
Normal file
@@ -0,0 +1,861 @@
|
||||
/*! PhotoSwipe Default UI - 4.1.2 - 2017-04-05
|
||||
* http://photoswipe.com
|
||||
* Copyright (c) 2017 Dmitry Semenov; */
|
||||
/**
|
||||
*
|
||||
* UI on top of main sliding area (caption, arrows, close button, etc.).
|
||||
* Built just using public methods/properties of PhotoSwipe.
|
||||
*
|
||||
*/
|
||||
(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
define(factory);
|
||||
} else if (typeof exports === 'object') {
|
||||
module.exports = factory();
|
||||
} else {
|
||||
root.PhotoSwipeUI_Default = factory();
|
||||
}
|
||||
})(this, function () {
|
||||
|
||||
'use strict';
|
||||
|
||||
|
||||
|
||||
var PhotoSwipeUI_Default =
|
||||
function(pswp, framework) {
|
||||
|
||||
var ui = this;
|
||||
var _overlayUIUpdated = false,
|
||||
_controlsVisible = true,
|
||||
_fullscrenAPI,
|
||||
_controls,
|
||||
_captionContainer,
|
||||
_fakeCaptionContainer,
|
||||
_indexIndicator,
|
||||
_shareButton,
|
||||
_shareModal,
|
||||
_shareModalHidden = true,
|
||||
_initalCloseOnScrollValue,
|
||||
_isIdle,
|
||||
_listen,
|
||||
|
||||
_loadingIndicator,
|
||||
_loadingIndicatorHidden,
|
||||
_loadingIndicatorTimeout,
|
||||
|
||||
_galleryHasOneSlide,
|
||||
|
||||
_options,
|
||||
_defaultUIOptions = {
|
||||
barsSize: {top:44, bottom:'auto'},
|
||||
closeElClasses: ['item', 'caption', 'zoom-wrap', 'ui', 'top-bar'],
|
||||
timeToIdle: 4000,
|
||||
timeToIdleOutside: 1000,
|
||||
loadingIndicatorDelay: 1000, // 2s
|
||||
|
||||
addCaptionHTMLFn: function(item, captionEl /*, isFake */) {
|
||||
if(!item.title) {
|
||||
captionEl.children[0].innerHTML = '';
|
||||
return false;
|
||||
}
|
||||
captionEl.children[0].innerHTML = item.title;
|
||||
return true;
|
||||
},
|
||||
|
||||
closeEl:true,
|
||||
captionEl: true,
|
||||
fullscreenEl: true,
|
||||
zoomEl: true,
|
||||
shareEl: true,
|
||||
counterEl: true,
|
||||
arrowEl: true,
|
||||
preloaderEl: true,
|
||||
|
||||
tapToClose: false,
|
||||
tapToToggleControls: true,
|
||||
|
||||
clickToCloseNonZoomable: true,
|
||||
|
||||
shareButtons: [
|
||||
{id:'facebook', label:'Share on Facebook', url:'https://www.facebook.com/sharer/sharer.php?u={{url}}'},
|
||||
{id:'twitter', label:'Tweet', url:'https://twitter.com/intent/tweet?text={{text}}&url={{url}}'},
|
||||
{id:'pinterest', label:'Pin it', url:'http://www.pinterest.com/pin/create/button/'+
|
||||
'?url={{url}}&media={{image_url}}&description={{text}}'},
|
||||
{id:'download', label:'Download image', url:'{{raw_image_url}}', download:true}
|
||||
],
|
||||
getImageURLForShare: function( /* shareButtonData */ ) {
|
||||
return pswp.currItem.src || '';
|
||||
},
|
||||
getPageURLForShare: function( /* shareButtonData */ ) {
|
||||
return window.location.href;
|
||||
},
|
||||
getTextForShare: function( /* shareButtonData */ ) {
|
||||
return pswp.currItem.title || '';
|
||||
},
|
||||
|
||||
indexIndicatorSep: ' / ',
|
||||
fitControlsWidth: 1200
|
||||
|
||||
},
|
||||
_blockControlsTap,
|
||||
_blockControlsTapTimeout;
|
||||
|
||||
|
||||
|
||||
var _onControlsTap = function(e) {
|
||||
if(_blockControlsTap) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
e = e || window.event;
|
||||
|
||||
if(_options.timeToIdle && _options.mouseUsed && !_isIdle) {
|
||||
// reset idle timer
|
||||
_onIdleMouseMove();
|
||||
}
|
||||
|
||||
|
||||
var target = e.target || e.srcElement,
|
||||
uiElement,
|
||||
clickedClass = target.getAttribute('class') || '',
|
||||
found;
|
||||
|
||||
for(var i = 0; i < _uiElements.length; i++) {
|
||||
uiElement = _uiElements[i];
|
||||
if(uiElement.onTap && clickedClass.indexOf('pswp__' + uiElement.name ) > -1 ) {
|
||||
uiElement.onTap();
|
||||
found = true;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(found) {
|
||||
if(e.stopPropagation) {
|
||||
e.stopPropagation();
|
||||
}
|
||||
_blockControlsTap = true;
|
||||
|
||||
// Some versions of Android don't prevent ghost click event
|
||||
// when preventDefault() was called on touchstart and/or touchend.
|
||||
//
|
||||
// This happens on v4.3, 4.2, 4.1,
|
||||
// older versions strangely work correctly,
|
||||
// but just in case we add delay on all of them)
|
||||
var tapDelay = framework.features.isOldAndroid ? 600 : 30;
|
||||
_blockControlsTapTimeout = setTimeout(function() {
|
||||
_blockControlsTap = false;
|
||||
}, tapDelay);
|
||||
}
|
||||
|
||||
},
|
||||
_fitControlsInViewport = function() {
|
||||
return !pswp.likelyTouchDevice || _options.mouseUsed || screen.width > _options.fitControlsWidth;
|
||||
},
|
||||
_togglePswpClass = function(el, cName, add) {
|
||||
framework[ (add ? 'add' : 'remove') + 'Class' ](el, 'pswp__' + cName);
|
||||
},
|
||||
|
||||
// add class when there is just one item in the gallery
|
||||
// (by default it hides left/right arrows and 1ofX counter)
|
||||
_countNumItems = function() {
|
||||
var hasOneSlide = (_options.getNumItemsFn() === 1);
|
||||
|
||||
if(hasOneSlide !== _galleryHasOneSlide) {
|
||||
_togglePswpClass(_controls, 'ui--one-slide', hasOneSlide);
|
||||
_galleryHasOneSlide = hasOneSlide;
|
||||
}
|
||||
},
|
||||
_toggleShareModalClass = function() {
|
||||
_togglePswpClass(_shareModal, 'share-modal--hidden', _shareModalHidden);
|
||||
},
|
||||
_toggleShareModal = function() {
|
||||
|
||||
_shareModalHidden = !_shareModalHidden;
|
||||
|
||||
|
||||
if(!_shareModalHidden) {
|
||||
_toggleShareModalClass();
|
||||
setTimeout(function() {
|
||||
if(!_shareModalHidden) {
|
||||
framework.addClass(_shareModal, 'pswp__share-modal--fade-in');
|
||||
}
|
||||
}, 30);
|
||||
} else {
|
||||
framework.removeClass(_shareModal, 'pswp__share-modal--fade-in');
|
||||
setTimeout(function() {
|
||||
if(_shareModalHidden) {
|
||||
_toggleShareModalClass();
|
||||
}
|
||||
}, 300);
|
||||
}
|
||||
|
||||
if(!_shareModalHidden) {
|
||||
_updateShareURLs();
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
_openWindowPopup = function(e) {
|
||||
e = e || window.event;
|
||||
var target = e.target || e.srcElement;
|
||||
|
||||
pswp.shout('shareLinkClick', e, target);
|
||||
|
||||
if(!target.href) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if( target.hasAttribute('download') ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
window.open(target.href, 'pswp_share', 'scrollbars=yes,resizable=yes,toolbar=no,'+
|
||||
'location=yes,width=550,height=420,top=100,left=' +
|
||||
(window.screen ? Math.round(screen.width / 2 - 275) : 100) );
|
||||
|
||||
if(!_shareModalHidden) {
|
||||
_toggleShareModal();
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
_updateShareURLs = function() {
|
||||
var shareButtonOut = '',
|
||||
shareButtonData,
|
||||
shareURL,
|
||||
image_url,
|
||||
page_url,
|
||||
share_text;
|
||||
|
||||
for(var i = 0; i < _options.shareButtons.length; i++) {
|
||||
shareButtonData = _options.shareButtons[i];
|
||||
|
||||
image_url = _options.getImageURLForShare(shareButtonData);
|
||||
page_url = _options.getPageURLForShare(shareButtonData);
|
||||
share_text = _options.getTextForShare(shareButtonData);
|
||||
|
||||
shareURL = shareButtonData.url.replace('{{url}}', encodeURIComponent(page_url) )
|
||||
.replace('{{image_url}}', encodeURIComponent(image_url) )
|
||||
.replace('{{raw_image_url}}', image_url )
|
||||
.replace('{{text}}', encodeURIComponent(share_text) );
|
||||
|
||||
shareButtonOut += '<a href="' + shareURL + '" target="_blank" '+
|
||||
'class="pswp__share--' + shareButtonData.id + '"' +
|
||||
(shareButtonData.download ? 'download' : '') + '>' +
|
||||
shareButtonData.label + '</a>';
|
||||
|
||||
if(_options.parseShareButtonOut) {
|
||||
shareButtonOut = _options.parseShareButtonOut(shareButtonData, shareButtonOut);
|
||||
}
|
||||
}
|
||||
_shareModal.children[0].innerHTML = shareButtonOut;
|
||||
_shareModal.children[0].onclick = _openWindowPopup;
|
||||
|
||||
},
|
||||
_hasCloseClass = function(target) {
|
||||
for(var i = 0; i < _options.closeElClasses.length; i++) {
|
||||
if( framework.hasClass(target, 'pswp__' + _options.closeElClasses[i]) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
},
|
||||
_idleInterval,
|
||||
_idleTimer,
|
||||
_idleIncrement = 0,
|
||||
_onIdleMouseMove = function() {
|
||||
clearTimeout(_idleTimer);
|
||||
_idleIncrement = 0;
|
||||
if(_isIdle) {
|
||||
ui.setIdle(false);
|
||||
}
|
||||
},
|
||||
_onMouseLeaveWindow = function(e) {
|
||||
e = e ? e : window.event;
|
||||
var from = e.relatedTarget || e.toElement;
|
||||
if (!from || from.nodeName === 'HTML') {
|
||||
clearTimeout(_idleTimer);
|
||||
_idleTimer = setTimeout(function() {
|
||||
ui.setIdle(true);
|
||||
}, _options.timeToIdleOutside);
|
||||
}
|
||||
},
|
||||
_setupFullscreenAPI = function() {
|
||||
if(_options.fullscreenEl && !framework.features.isOldAndroid) {
|
||||
if(!_fullscrenAPI) {
|
||||
_fullscrenAPI = ui.getFullscreenAPI();
|
||||
}
|
||||
if(_fullscrenAPI) {
|
||||
framework.bind(document, _fullscrenAPI.eventK, ui.updateFullscreen);
|
||||
ui.updateFullscreen();
|
||||
framework.addClass(pswp.template, 'pswp--supports-fs');
|
||||
} else {
|
||||
framework.removeClass(pswp.template, 'pswp--supports-fs');
|
||||
}
|
||||
}
|
||||
},
|
||||
_setupLoadingIndicator = function() {
|
||||
// Setup loading indicator
|
||||
if(_options.preloaderEl) {
|
||||
|
||||
_toggleLoadingIndicator(true);
|
||||
|
||||
_listen('beforeChange', function() {
|
||||
|
||||
clearTimeout(_loadingIndicatorTimeout);
|
||||
|
||||
// display loading indicator with delay
|
||||
_loadingIndicatorTimeout = setTimeout(function() {
|
||||
|
||||
if(pswp.currItem && pswp.currItem.loading) {
|
||||
|
||||
if( !pswp.allowProgressiveImg() || (pswp.currItem.img && !pswp.currItem.img.naturalWidth) ) {
|
||||
// show preloader if progressive loading is not enabled,
|
||||
// or image width is not defined yet (because of slow connection)
|
||||
_toggleLoadingIndicator(false);
|
||||
// items-controller.js function allowProgressiveImg
|
||||
}
|
||||
|
||||
} else {
|
||||
_toggleLoadingIndicator(true); // hide preloader
|
||||
}
|
||||
|
||||
}, _options.loadingIndicatorDelay);
|
||||
|
||||
});
|
||||
_listen('imageLoadComplete', function(index, item) {
|
||||
if(pswp.currItem === item) {
|
||||
_toggleLoadingIndicator(true);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
},
|
||||
_toggleLoadingIndicator = function(hide) {
|
||||
if( _loadingIndicatorHidden !== hide ) {
|
||||
_togglePswpClass(_loadingIndicator, 'preloader--active', !hide);
|
||||
_loadingIndicatorHidden = hide;
|
||||
}
|
||||
},
|
||||
_applyNavBarGaps = function(item) {
|
||||
var gap = item.vGap;
|
||||
|
||||
if( _fitControlsInViewport() ) {
|
||||
|
||||
var bars = _options.barsSize;
|
||||
if(_options.captionEl && bars.bottom === 'auto') {
|
||||
if(!_fakeCaptionContainer) {
|
||||
_fakeCaptionContainer = framework.createEl('pswp__caption pswp__caption--fake');
|
||||
_fakeCaptionContainer.appendChild( framework.createEl('pswp__caption__center') );
|
||||
_controls.insertBefore(_fakeCaptionContainer, _captionContainer);
|
||||
framework.addClass(_controls, 'pswp__ui--fit');
|
||||
}
|
||||
if( _options.addCaptionHTMLFn(item, _fakeCaptionContainer, true) ) {
|
||||
|
||||
var captionSize = _fakeCaptionContainer.clientHeight;
|
||||
gap.bottom = parseInt(captionSize,10) || 44;
|
||||
} else {
|
||||
gap.bottom = bars.top; // if no caption, set size of bottom gap to size of top
|
||||
}
|
||||
} else {
|
||||
gap.bottom = bars.bottom === 'auto' ? 0 : bars.bottom;
|
||||
}
|
||||
|
||||
// height of top bar is static, no need to calculate it
|
||||
gap.top = bars.top;
|
||||
} else {
|
||||
gap.top = gap.bottom = 0;
|
||||
}
|
||||
},
|
||||
_setupIdle = function() {
|
||||
// Hide controls when mouse is used
|
||||
if(_options.timeToIdle) {
|
||||
_listen('mouseUsed', function() {
|
||||
|
||||
framework.bind(document, 'mousemove', _onIdleMouseMove);
|
||||
framework.bind(document, 'mouseout', _onMouseLeaveWindow);
|
||||
|
||||
_idleInterval = setInterval(function() {
|
||||
_idleIncrement++;
|
||||
if(_idleIncrement === 2) {
|
||||
ui.setIdle(true);
|
||||
}
|
||||
}, _options.timeToIdle / 2);
|
||||
});
|
||||
}
|
||||
},
|
||||
_setupHidingControlsDuringGestures = function() {
|
||||
|
||||
// Hide controls on vertical drag
|
||||
_listen('onVerticalDrag', function(now) {
|
||||
if(_controlsVisible && now < 0.95) {
|
||||
ui.hideControls();
|
||||
} else if(!_controlsVisible && now >= 0.95) {
|
||||
ui.showControls();
|
||||
}
|
||||
});
|
||||
|
||||
// Hide controls when pinching to close
|
||||
var pinchControlsHidden;
|
||||
_listen('onPinchClose' , function(now) {
|
||||
if(_controlsVisible && now < 0.9) {
|
||||
ui.hideControls();
|
||||
pinchControlsHidden = true;
|
||||
} else if(pinchControlsHidden && !_controlsVisible && now > 0.9) {
|
||||
ui.showControls();
|
||||
}
|
||||
});
|
||||
|
||||
_listen('zoomGestureEnded', function() {
|
||||
pinchControlsHidden = false;
|
||||
if(pinchControlsHidden && !_controlsVisible) {
|
||||
ui.showControls();
|
||||
}
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
var _uiElements = [
|
||||
{
|
||||
name: 'caption',
|
||||
option: 'captionEl',
|
||||
onInit: function(el) {
|
||||
_captionContainer = el;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'share-modal',
|
||||
option: 'shareEl',
|
||||
onInit: function(el) {
|
||||
_shareModal = el;
|
||||
},
|
||||
onTap: function() {
|
||||
_toggleShareModal();
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'button--share',
|
||||
option: 'shareEl',
|
||||
onInit: function(el) {
|
||||
_shareButton = el;
|
||||
},
|
||||
onTap: function() {
|
||||
_toggleShareModal();
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'button--zoom',
|
||||
option: 'zoomEl',
|
||||
onTap: pswp.toggleDesktopZoom
|
||||
},
|
||||
{
|
||||
name: 'counter',
|
||||
option: 'counterEl',
|
||||
onInit: function(el) {
|
||||
_indexIndicator = el;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'button--close',
|
||||
option: 'closeEl',
|
||||
onTap: pswp.close
|
||||
},
|
||||
{
|
||||
name: 'button--arrow--left',
|
||||
option: 'arrowEl',
|
||||
onTap: pswp.prev
|
||||
},
|
||||
{
|
||||
name: 'button--arrow--right',
|
||||
option: 'arrowEl',
|
||||
onTap: pswp.next
|
||||
},
|
||||
{
|
||||
name: 'button--fs',
|
||||
option: 'fullscreenEl',
|
||||
onTap: function() {
|
||||
if(_fullscrenAPI.isFullscreen()) {
|
||||
_fullscrenAPI.exit();
|
||||
} else {
|
||||
_fullscrenAPI.enter();
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'preloader',
|
||||
option: 'preloaderEl',
|
||||
onInit: function(el) {
|
||||
_loadingIndicator = el;
|
||||
}
|
||||
}
|
||||
|
||||
];
|
||||
|
||||
var _setupUIElements = function() {
|
||||
var item,
|
||||
classAttr,
|
||||
uiElement;
|
||||
|
||||
var loopThroughChildElements = function(sChildren) {
|
||||
if(!sChildren) {
|
||||
return;
|
||||
}
|
||||
|
||||
var l = sChildren.length;
|
||||
for(var i = 0; i < l; i++) {
|
||||
item = sChildren[i];
|
||||
classAttr = item.className;
|
||||
|
||||
for(var a = 0; a < _uiElements.length; a++) {
|
||||
uiElement = _uiElements[a];
|
||||
|
||||
if(classAttr.indexOf('pswp__' + uiElement.name) > -1 ) {
|
||||
|
||||
if( _options[uiElement.option] ) { // if element is not disabled from options
|
||||
|
||||
framework.removeClass(item, 'pswp__element--disabled');
|
||||
if(uiElement.onInit) {
|
||||
uiElement.onInit(item);
|
||||
}
|
||||
|
||||
//item.style.display = 'block';
|
||||
} else {
|
||||
framework.addClass(item, 'pswp__element--disabled');
|
||||
//item.style.display = 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
loopThroughChildElements(_controls.children);
|
||||
|
||||
var topBar = framework.getChildByClass(_controls, 'pswp__top-bar');
|
||||
if(topBar) {
|
||||
loopThroughChildElements( topBar.children );
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
ui.init = function() {
|
||||
|
||||
// extend options
|
||||
framework.extend(pswp.options, _defaultUIOptions, true);
|
||||
|
||||
// create local link for fast access
|
||||
_options = pswp.options;
|
||||
|
||||
// find pswp__ui element
|
||||
_controls = framework.getChildByClass(pswp.scrollWrap, 'pswp__ui');
|
||||
|
||||
// create local link
|
||||
_listen = pswp.listen;
|
||||
|
||||
|
||||
_setupHidingControlsDuringGestures();
|
||||
|
||||
// update controls when slides change
|
||||
_listen('beforeChange', ui.update);
|
||||
|
||||
// toggle zoom on double-tap
|
||||
_listen('doubleTap', function(point) {
|
||||
var initialZoomLevel = pswp.currItem.initialZoomLevel;
|
||||
if(pswp.getZoomLevel() !== initialZoomLevel) {
|
||||
pswp.zoomTo(initialZoomLevel, point, 333);
|
||||
} else {
|
||||
pswp.zoomTo(_options.getDoubleTapZoom(false, pswp.currItem), point, 333);
|
||||
}
|
||||
});
|
||||
|
||||
// Allow text selection in caption
|
||||
_listen('preventDragEvent', function(e, isDown, preventObj) {
|
||||
var t = e.target || e.srcElement;
|
||||
if(
|
||||
t &&
|
||||
t.getAttribute('class') && e.type.indexOf('mouse') > -1 &&
|
||||
( t.getAttribute('class').indexOf('__caption') > 0 || (/(SMALL|STRONG|EM)/i).test(t.tagName) )
|
||||
) {
|
||||
preventObj.prevent = false;
|
||||
}
|
||||
});
|
||||
|
||||
// bind events for UI
|
||||
_listen('bindEvents', function() {
|
||||
framework.bind(_controls, 'pswpTap click', _onControlsTap);
|
||||
framework.bind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);
|
||||
|
||||
if(!pswp.likelyTouchDevice) {
|
||||
framework.bind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);
|
||||
}
|
||||
});
|
||||
|
||||
// unbind events for UI
|
||||
_listen('unbindEvents', function() {
|
||||
if(!_shareModalHidden) {
|
||||
_toggleShareModal();
|
||||
}
|
||||
|
||||
if(_idleInterval) {
|
||||
clearInterval(_idleInterval);
|
||||
}
|
||||
framework.unbind(document, 'mouseout', _onMouseLeaveWindow);
|
||||
framework.unbind(document, 'mousemove', _onIdleMouseMove);
|
||||
framework.unbind(_controls, 'pswpTap click', _onControlsTap);
|
||||
framework.unbind(pswp.scrollWrap, 'pswpTap', ui.onGlobalTap);
|
||||
framework.unbind(pswp.scrollWrap, 'mouseover', ui.onMouseOver);
|
||||
|
||||
if(_fullscrenAPI) {
|
||||
framework.unbind(document, _fullscrenAPI.eventK, ui.updateFullscreen);
|
||||
if(_fullscrenAPI.isFullscreen()) {
|
||||
_options.hideAnimationDuration = 0;
|
||||
_fullscrenAPI.exit();
|
||||
}
|
||||
_fullscrenAPI = null;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// clean up things when gallery is destroyed
|
||||
_listen('destroy', function() {
|
||||
if(_options.captionEl) {
|
||||
if(_fakeCaptionContainer) {
|
||||
_controls.removeChild(_fakeCaptionContainer);
|
||||
}
|
||||
framework.removeClass(_captionContainer, 'pswp__caption--empty');
|
||||
}
|
||||
|
||||
if(_shareModal) {
|
||||
_shareModal.children[0].onclick = null;
|
||||
}
|
||||
framework.removeClass(_controls, 'pswp__ui--over-close');
|
||||
framework.addClass( _controls, 'pswp__ui--hidden');
|
||||
ui.setIdle(false);
|
||||
});
|
||||
|
||||
|
||||
if(!_options.showAnimationDuration) {
|
||||
framework.removeClass( _controls, 'pswp__ui--hidden');
|
||||
}
|
||||
_listen('initialZoomIn', function() {
|
||||
if(_options.showAnimationDuration) {
|
||||
framework.removeClass( _controls, 'pswp__ui--hidden');
|
||||
}
|
||||
});
|
||||
_listen('initialZoomOut', function() {
|
||||
framework.addClass( _controls, 'pswp__ui--hidden');
|
||||
});
|
||||
|
||||
_listen('parseVerticalMargin', _applyNavBarGaps);
|
||||
|
||||
_setupUIElements();
|
||||
|
||||
if(_options.shareEl && _shareButton && _shareModal) {
|
||||
_shareModalHidden = true;
|
||||
}
|
||||
|
||||
_countNumItems();
|
||||
|
||||
_setupIdle();
|
||||
|
||||
_setupFullscreenAPI();
|
||||
|
||||
_setupLoadingIndicator();
|
||||
};
|
||||
|
||||
ui.setIdle = function(isIdle) {
|
||||
_isIdle = isIdle;
|
||||
_togglePswpClass(_controls, 'ui--idle', isIdle);
|
||||
};
|
||||
|
||||
ui.update = function() {
|
||||
// Don't update UI if it's hidden
|
||||
if(_controlsVisible && pswp.currItem) {
|
||||
|
||||
ui.updateIndexIndicator();
|
||||
|
||||
if(_options.captionEl) {
|
||||
_options.addCaptionHTMLFn(pswp.currItem, _captionContainer);
|
||||
|
||||
_togglePswpClass(_captionContainer, 'caption--empty', !pswp.currItem.title);
|
||||
}
|
||||
|
||||
_overlayUIUpdated = true;
|
||||
|
||||
} else {
|
||||
_overlayUIUpdated = false;
|
||||
}
|
||||
|
||||
if(!_shareModalHidden) {
|
||||
_toggleShareModal();
|
||||
}
|
||||
|
||||
_countNumItems();
|
||||
};
|
||||
|
||||
ui.updateFullscreen = function(e) {
|
||||
|
||||
if(e) {
|
||||
// some browsers change window scroll position during the fullscreen
|
||||
// so PhotoSwipe updates it just in case
|
||||
setTimeout(function() {
|
||||
pswp.setScrollOffset( 0, framework.getScrollY() );
|
||||
}, 50);
|
||||
}
|
||||
|
||||
// toogle pswp--fs class on root element
|
||||
framework[ (_fullscrenAPI.isFullscreen() ? 'add' : 'remove') + 'Class' ](pswp.template, 'pswp--fs');
|
||||
};
|
||||
|
||||
ui.updateIndexIndicator = function() {
|
||||
if(_options.counterEl) {
|
||||
_indexIndicator.innerHTML = (pswp.getCurrentIndex()+1) +
|
||||
_options.indexIndicatorSep +
|
||||
_options.getNumItemsFn();
|
||||
}
|
||||
};
|
||||
|
||||
ui.onGlobalTap = function(e) {
|
||||
e = e || window.event;
|
||||
var target = e.target || e.srcElement;
|
||||
|
||||
if(_blockControlsTap) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(e.detail && e.detail.pointerType === 'mouse') {
|
||||
|
||||
// close gallery if clicked outside of the image
|
||||
if(_hasCloseClass(target)) {
|
||||
pswp.close();
|
||||
return;
|
||||
}
|
||||
|
||||
if(framework.hasClass(target, 'pswp__img')) {
|
||||
if(pswp.getZoomLevel() === 1 && pswp.getZoomLevel() <= pswp.currItem.fitRatio) {
|
||||
if(_options.clickToCloseNonZoomable) {
|
||||
pswp.close();
|
||||
}
|
||||
} else {
|
||||
pswp.toggleDesktopZoom(e.detail.releasePoint);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
// tap anywhere (except buttons) to toggle visibility of controls
|
||||
if(_options.tapToToggleControls) {
|
||||
if(_controlsVisible) {
|
||||
ui.hideControls();
|
||||
} else {
|
||||
ui.showControls();
|
||||
}
|
||||
}
|
||||
|
||||
// tap to close gallery
|
||||
if(_options.tapToClose && (framework.hasClass(target, 'pswp__img') || _hasCloseClass(target)) ) {
|
||||
pswp.close();
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
ui.onMouseOver = function(e) {
|
||||
e = e || window.event;
|
||||
var target = e.target || e.srcElement;
|
||||
|
||||
// add class when mouse is over an element that should close the gallery
|
||||
_togglePswpClass(_controls, 'ui--over-close', _hasCloseClass(target));
|
||||
};
|
||||
|
||||
ui.hideControls = function() {
|
||||
framework.addClass(_controls,'pswp__ui--hidden');
|
||||
_controlsVisible = false;
|
||||
};
|
||||
|
||||
ui.showControls = function() {
|
||||
_controlsVisible = true;
|
||||
if(!_overlayUIUpdated) {
|
||||
ui.update();
|
||||
}
|
||||
framework.removeClass(_controls,'pswp__ui--hidden');
|
||||
};
|
||||
|
||||
ui.supportsFullscreen = function() {
|
||||
var d = document;
|
||||
return !!(d.exitFullscreen || d.mozCancelFullScreen || d.webkitExitFullscreen || d.msExitFullscreen);
|
||||
};
|
||||
|
||||
ui.getFullscreenAPI = function() {
|
||||
var dE = document.documentElement,
|
||||
api,
|
||||
tF = 'fullscreenchange';
|
||||
|
||||
if (dE.requestFullscreen) {
|
||||
api = {
|
||||
enterK: 'requestFullscreen',
|
||||
exitK: 'exitFullscreen',
|
||||
elementK: 'fullscreenElement',
|
||||
eventK: tF
|
||||
};
|
||||
|
||||
} else if(dE.mozRequestFullScreen ) {
|
||||
api = {
|
||||
enterK: 'mozRequestFullScreen',
|
||||
exitK: 'mozCancelFullScreen',
|
||||
elementK: 'mozFullScreenElement',
|
||||
eventK: 'moz' + tF
|
||||
};
|
||||
|
||||
|
||||
|
||||
} else if(dE.webkitRequestFullscreen) {
|
||||
api = {
|
||||
enterK: 'webkitRequestFullscreen',
|
||||
exitK: 'webkitExitFullscreen',
|
||||
elementK: 'webkitFullscreenElement',
|
||||
eventK: 'webkit' + tF
|
||||
};
|
||||
|
||||
} else if(dE.msRequestFullscreen) {
|
||||
api = {
|
||||
enterK: 'msRequestFullscreen',
|
||||
exitK: 'msExitFullscreen',
|
||||
elementK: 'msFullscreenElement',
|
||||
eventK: 'MSFullscreenChange'
|
||||
};
|
||||
}
|
||||
|
||||
if(api) {
|
||||
api.enter = function() {
|
||||
// disable close-on-scroll in fullscreen
|
||||
_initalCloseOnScrollValue = _options.closeOnScroll;
|
||||
_options.closeOnScroll = false;
|
||||
|
||||
if(this.enterK === 'webkitRequestFullscreen') {
|
||||
pswp.template[this.enterK]( Element.ALLOW_KEYBOARD_INPUT );
|
||||
} else {
|
||||
return pswp.template[this.enterK]();
|
||||
}
|
||||
};
|
||||
api.exit = function() {
|
||||
_options.closeOnScroll = _initalCloseOnScrollValue;
|
||||
|
||||
return document[this.exitK]();
|
||||
|
||||
};
|
||||
api.isFullscreen = function() { return document[this.elementK]; };
|
||||
}
|
||||
|
||||
return api;
|
||||
};
|
||||
|
||||
|
||||
|
||||
};
|
||||
return PhotoSwipeUI_Default;
|
||||
|
||||
|
||||
});
|
||||
4
themes/default/public/js/photoswipe-ui-default.min.js
vendored
Normal file
4
themes/default/public/js/photoswipe-ui-default.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
3734
themes/default/public/js/photoswipe.js
Normal file
3734
themes/default/public/js/photoswipe.js
Normal file
File diff suppressed because it is too large
Load Diff
4
themes/default/public/js/photoswipe.min.js
vendored
Normal file
4
themes/default/public/js/photoswipe.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@@ -24,7 +24,7 @@
|
||||
<p><%== l('For more details, see the <a href="https://framagit.org/luc/lutim">homepage of the project</a>.') %></p>
|
||||
<h4><%= l('Main developers') %></h4>
|
||||
<ul>
|
||||
<li>Luc Didry, aka Sky (<a href="https://fiat-tux.fr">https://fiat-tux.fr</a>), <%= l('core developer') %>, @framasky <%= l('on') %> <a href="https://framasphere.org/people/b13eb6b0beac0131e7e32a0000053625">Diaspora*</a> <%= l('and on') %> <a href="https://twitter.com/framasky">Twitter</a></li>
|
||||
<li>Luc Didry, aka Sky (<a href="https://fiat-tux.fr">https://fiat-tux.fr</a>), <%= l('core developer') %>, @framasky <%= l('on') %> <a href="https://framasphere.org/people/b13eb6b0beac0131e7e32a0000053625">Diaspora*</a> <%= l('and on') %> <a href="https://framapiaf.org/@framasky">Mastodon</a></li>
|
||||
<li>Dattaz (<a href="http://dattaz.fr">http://dattaz.fr</a>), <%= l('webapp developer') %>, <a href="https://twitter.com/dat_taz">@dat_taz</a></li>
|
||||
</ul>
|
||||
<h4><%= l('Contributors') %></h4>
|
||||
@@ -36,6 +36,9 @@
|
||||
<li>Laura Arjona Reina (<a href="https://wiki.debian.org/LauraArjona">https://wiki.debian.org/LauraArjona</a>), <%= l('spanish translation') %>
|
||||
<li>Thor77 (<a href="http://thor77.org">http://thor77.org</a>)</li>
|
||||
<li>Quentin Pagès, <%= l('occitan translation') %></li>
|
||||
<li>Alexis Clairet (<a href="https://github.com/Turboconnard">https://github.com/Turboconnard</a>), <%= l('paste image to upload ability') %></li>
|
||||
<li>ButterflyOfFire, <%= l('arabic translation') %></li>
|
||||
<li>Alexander Sapozhnikov (<a href="http://shoorick.ru">http://shoorick.ru</a>), <%= l('russian translation') %></li>
|
||||
</ul>
|
||||
|
||||
<%= link_to url_for('/') => ( class => "btn btn-primary btn-lg" ) => begin %><%= l('Back to homepage') %><% end%>
|
||||
|
||||
@@ -1,14 +1,52 @@
|
||||
% # vim:set sw=4 ts=4 sts=4 ft=html.epl expandtab:
|
||||
<div class="container">
|
||||
<div>
|
||||
<div class="row" id="infos-msg">
|
||||
</div>
|
||||
<div class="row">
|
||||
<p>
|
||||
<a href="<%= url_for('/zip?i=') %>" id="download-all" class="btn btn-info col-sm-12">
|
||||
<%= l('Download all images') %>
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="container">
|
||||
<div id="gallery" style="display:none;">
|
||||
<div class="row">
|
||||
<div class="gallery" itemscope itemtype="http://schema.org/ImageGallery">
|
||||
</div>
|
||||
<!-- Root element of PhotoSwipe. Must have class pswp. -->
|
||||
<div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
|
||||
<div class="pswp__bg"></div>
|
||||
<div class="pswp__scroll-wrap">
|
||||
<div class="pswp__container">
|
||||
<div class="pswp__item"></div>
|
||||
<div class="pswp__item"></div>
|
||||
<div class="pswp__item"></div>
|
||||
</div>
|
||||
<div class="pswp__ui pswp__ui--hidden">
|
||||
<div class="pswp__top-bar">
|
||||
<div class="pswp__counter"></div>
|
||||
<button class="pswp__button pswp__button--close" title="<%= l('Close (Esc)') %>"></button>
|
||||
<button class="pswp__button pswp__button--fs" title="<%= l('Toggle fullscreen') %>"></button>
|
||||
<button class="pswp__button pswp__button--zoom" title="<%= l('Zoom in/out') %>"></button>
|
||||
<div class="pswp__preloader">
|
||||
<div class="pswp__preloader__icn">
|
||||
<div class="pswp__preloader__cut">
|
||||
<div class="pswp__preloader__donut"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
|
||||
<div class="pswp__share-tooltip"></div>
|
||||
</div>
|
||||
<button class="pswp__button pswp__button--arrow--left" title="<%= l('Previous (arrow left)') %>">
|
||||
</button>
|
||||
<button class="pswp__button pswp__button--arrow--right" title="<%= l('Next (arrow right)') %>">
|
||||
</button>
|
||||
<div class="pswp__caption">
|
||||
<div class="pswp__caption__center"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -21,22 +21,26 @@
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="<%= url_for('/img/lutim120.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="<%= url_for('/img/lutim152.png') %>">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="128x128" href="<%= url_for('/img/lutim128.png') %>">
|
||||
%= stylesheet '/css/bootstrap.min.css'
|
||||
%= stylesheet '/css/fontello-embedded.css'
|
||||
%= stylesheet '/css/hennypenny.css'
|
||||
%= stylesheet '/css/lutim.css'
|
||||
% if (current_route 'stats') {
|
||||
%= asset 'stats.css'
|
||||
% } elsif (current_route 'about') {
|
||||
%= asset 'about.css'
|
||||
%= stylesheet '/css/morris-0.4.3.min.css'
|
||||
% } else {
|
||||
%= asset 'index.css'
|
||||
%= stylesheet '/css/animation.css'
|
||||
%= stylesheet '/css/uploader.css'
|
||||
%= stylesheet '/css/markdown.css'
|
||||
% }
|
||||
% if (current_route 'gallery') {
|
||||
%= asset 'gallery.css'
|
||||
% }
|
||||
% if (!(current_route 'about')) {
|
||||
%= javascript '/js/jquery-2.1.0.min.js'
|
||||
%= stylesheet '/css/photoswipe.css'
|
||||
%= stylesheet '/css/default-skin/default-skin.css'
|
||||
% }
|
||||
%= javascript '/js/jquery-3.2.1.min.js'
|
||||
</head>
|
||||
<body>
|
||||
<div class="container-fluid">
|
||||
%= include 'partial/navbar', twitter_url => $twitter_url
|
||||
<div class="container">
|
||||
<div>
|
||||
% if (defined(config('hosted_by'))) {
|
||||
<div class="pull-right">
|
||||
@@ -48,24 +52,11 @@
|
||||
<img src="<%= url_for('/img/Lutim_small.png') %>" alt="Lutim logo" width="57" height="75">
|
||||
</div>
|
||||
<a class="link_nocol" href="<%= url_for('/') %>" title="<%= l('Homepage') %>"><h1 class="hennypenny">Let's Upload That Image!</h1></a>
|
||||
<p>
|
||||
© 2014 <%= link_to 'http://www.fiat-tux.fr' => begin %>Luc Didry<% end %> —
|
||||
<%= l('License:') %> <%= link_to 'https://www.gnu.org/licenses/agpl-3.0.html' => begin %>AGPL<% end %> —
|
||||
<%= link_to url_for('about') => begin %><%= l('Informations') %><% end %> —
|
||||
<%= link_to 'https://framagit.org/luc/lutim' => (title => l('Fork me!')) => begin %><i class="lead icon icon-git"></i><% end %>
|
||||
<%= link_to $twitter_url => (title => l('Share on Twitter')) => begin %><i class="lead icon icon-twitter"></i><% end %>
|
||||
<%= link_to 'https://tipeee.com/fiat-tux' => (title => l('Support the author on Tipeee')) => begin %><img id="tipeee-img" src="/img/tipeee-tip-btn.png" alt="<%= l('Tipeee button') %>"><% end %>
|
||||
<%= link_to 'https://liberapay.com/sky' => (title => l('Support the author on Liberapay')) => begin %><img id="liberapay-img" src="/img/liberapay.svg" alt="<%= l('Liberapay button') %>"><% end %>
|
||||
<%= link_to 'bitcoin:1JCEtmx9pyzWfitMQj2pKAk8GNgyix7RmA?label=lutim' => (title => 'Give Bitcoins') => begin %><i class="lead icon icon-bitcoin"></i><% end %> —
|
||||
<%= link_to url_for('myfiles') => begin %><%= l('My images') %><% end %> —
|
||||
<%= link_to url_for('stats') => begin %><%= l('Instance\'s statistics') %><% end %> —
|
||||
<a class="btn btn-default btn-xs" href="#" id="install-app"><img src="<%= url_for('/img/rocket.png') %>" alt="mozilla rocket logo"> <%= l('Install webapp') %></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
% if (defined(config('broadcast_message'))) {
|
||||
<div class="alert alert-info">
|
||||
<strong><%= config('broadcast_message') %></strong>
|
||||
<strong><%== config('broadcast_message') %></strong>
|
||||
</div>
|
||||
% }
|
||||
% if (defined(stash('stop_upload'))) {
|
||||
@@ -81,21 +72,27 @@
|
||||
% if (defined(config('piwik_img'))) {
|
||||
<img src="<%== config('piwik_img') %>" style="border:0" alt="">
|
||||
% }
|
||||
%= javascript '/js/bootstrap.min.js'
|
||||
% if (current_route 'stats') {
|
||||
%= asset 'stats.js'
|
||||
%= javascript '/js/lutim.js'
|
||||
%= javascript '/js/raphael-min.js'
|
||||
%= javascript '/js/morris-0.4.3.min.js'
|
||||
%= javascript '/js/stats.js'
|
||||
% } elsif (!(current_route 'about')) {
|
||||
%= asset 'index.js'
|
||||
%= javascript '/js/lutim.js'
|
||||
%= javascript '/js/dmuploader.min.js'
|
||||
% }
|
||||
% if (current_route 'index') {
|
||||
%= javascript '/partial/common.js'
|
||||
%= javascript '/partial/lutim.js'
|
||||
% }
|
||||
% if (current_route 'gallery') {
|
||||
%= javascript '/gallery/js/unitegallery.js'
|
||||
%= javascript '/gallery/themes/tiles/ug-theme-tiles.js'
|
||||
%= javascript '/js/photoswipe.min.js'
|
||||
%= javascript '/js/photoswipe-ui-default.min.js'
|
||||
%= javascript '/js/jszip.min.js'
|
||||
%= javascript '/js/FileSaver.min.js'
|
||||
%= javascript '/partial/gallery.js'
|
||||
%= javascript '/partial/lutim.js'
|
||||
% }
|
||||
% if (current_route 'myfiles') {
|
||||
%= javascript '/partial/common.js'
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<hr>
|
||||
|
||||
<p>
|
||||
<%= l('Only the images sent with this browser will be listed here. The informations are stored in localStorage: if you delete your localStorage data, you\'ll loose this informations.') %>
|
||||
<%= l('Only the images sent with this browser will be listed here. The details are stored in localStorage: if you delete your localStorage data, you\'ll loose these details.') %>
|
||||
</p>
|
||||
|
||||
<div id="gallery-url" class="hidden row">
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
% # vim:set sw=4 ts=4 sts=4 ft=html.epl expandtab:
|
||||
% for my $delay (qw/0 1 7 30 365/) {
|
||||
% my @delays = split(',', $self->config('proposed_delays'));
|
||||
% for my $delay (@delays) {
|
||||
% my $text = ($delay == 7 || $delay == 30) ? l('%1 days', $delay) : $d->{'delay_'.$delay};
|
||||
% if (config('max_delay')) {
|
||||
% if ($delay) {
|
||||
|
||||
@@ -1,7 +1,252 @@
|
||||
% # vim:set sw=4 ts=4 sts=4 ft=javascript expandtab:
|
||||
$(document).ready(function() {
|
||||
var absUrl = '<%= url_for('/') %>';
|
||||
var absUrl = '<%= url_for('/') %>';
|
||||
|
||||
var initPhotoSwipeFromDOM = function(gallerySelector) {
|
||||
|
||||
// parse slide data (url, title, size ...) from DOM elements
|
||||
// (children of gallerySelector)
|
||||
var parseThumbnailElements = function(el) {
|
||||
var thumbElements = el.childNodes,
|
||||
numNodes = thumbElements.length,
|
||||
items = [],
|
||||
figureEl,
|
||||
linkEl,
|
||||
size,
|
||||
item;
|
||||
|
||||
for(var i = 0; i < numNodes; i++) {
|
||||
|
||||
figureEl = thumbElements[i]; // <figure> element
|
||||
|
||||
// include only element nodes
|
||||
if(figureEl.nodeType !== 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
linkEl = figureEl.children[0]; // <a> element
|
||||
|
||||
size = linkEl.getAttribute('data-size').split('x');
|
||||
|
||||
// create slide object
|
||||
item = {
|
||||
src: linkEl.getAttribute('href'),
|
||||
w: parseInt(size[0], 10),
|
||||
h: parseInt(size[1], 10)
|
||||
};
|
||||
|
||||
|
||||
|
||||
if(figureEl.children.length > 1) {
|
||||
// <figcaption> content
|
||||
item.title = figureEl.children[1].innerHTML;
|
||||
}
|
||||
|
||||
if(linkEl.children.length > 0) {
|
||||
// <img> thumbnail element, retrieving thumbnail url
|
||||
item.msrc = linkEl.children[0].getAttribute('src');
|
||||
}
|
||||
|
||||
item.el = figureEl; // save link to element for getThumbBoundsFn
|
||||
items.push(item);
|
||||
}
|
||||
|
||||
return items;
|
||||
};
|
||||
|
||||
// find nearest parent element
|
||||
var closest = function closest(el, fn) {
|
||||
return el && ( fn(el) ? el : closest(el.parentNode, fn) );
|
||||
};
|
||||
|
||||
// triggers when user clicks on thumbnail
|
||||
var onThumbnailsClick = function(e) {
|
||||
e = e || window.event;
|
||||
e.preventDefault ? e.preventDefault() : e.returnValue = false;
|
||||
|
||||
var eTarget = e.target || e.srcElement;
|
||||
|
||||
// find root element of slide
|
||||
var clickedListItem = closest(eTarget, function(el) {
|
||||
return (el.tagName && el.tagName.toUpperCase() === 'FIGURE');
|
||||
});
|
||||
|
||||
if(!clickedListItem) {
|
||||
return;
|
||||
}
|
||||
|
||||
// find index of clicked item by looping through all child nodes
|
||||
// alternatively, you may define index via data- attribute
|
||||
var clickedGallery = clickedListItem.parentNode,
|
||||
childNodes = clickedListItem.parentNode.childNodes,
|
||||
numChildNodes = childNodes.length,
|
||||
nodeIndex = 0,
|
||||
index;
|
||||
|
||||
for (var i = 0; i < numChildNodes; i++) {
|
||||
if(childNodes[i].nodeType !== 1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(childNodes[i] === clickedListItem) {
|
||||
index = nodeIndex;
|
||||
break;
|
||||
}
|
||||
nodeIndex++;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(index >= 0) {
|
||||
// open PhotoSwipe if valid index found
|
||||
openPhotoSwipe( index, clickedGallery );
|
||||
}
|
||||
return false;
|
||||
};
|
||||
|
||||
// parse picture index and gallery index from URL (#&pid=1&gid=2)
|
||||
var photoswipeParseHash = function() {
|
||||
var hash = window.location.hash.substring(1),
|
||||
params = {};
|
||||
|
||||
if(hash.length < 5) {
|
||||
return params;
|
||||
}
|
||||
|
||||
var vars = hash.split('&');
|
||||
for (var i = 0; i < vars.length; i++) {
|
||||
if(!vars[i]) {
|
||||
continue;
|
||||
}
|
||||
var pair = vars[i].split('=');
|
||||
if(pair.length < 2) {
|
||||
continue;
|
||||
}
|
||||
params[pair[0]] = pair[1];
|
||||
}
|
||||
|
||||
if(params.gid) {
|
||||
params.gid = parseInt(params.gid, 10);
|
||||
}
|
||||
|
||||
return params;
|
||||
};
|
||||
|
||||
var openPhotoSwipe = function(index, galleryElement, disableAnimation, fromURL) {
|
||||
var pswpElement = document.querySelectorAll('.pswp')[0],
|
||||
gallery,
|
||||
options,
|
||||
items;
|
||||
|
||||
items = parseThumbnailElements(galleryElement);
|
||||
|
||||
// define options (if needed)
|
||||
options = {
|
||||
|
||||
// define gallery index (for URL)
|
||||
galleryUID: galleryElement.getAttribute('data-pswp-uid'),
|
||||
|
||||
getThumbBoundsFn: function(index) {
|
||||
// See Options -> getThumbBoundsFn section of documentation for more info
|
||||
var thumbnail = items[index].el.getElementsByTagName('img')[0], // find thumbnail
|
||||
pageYScroll = window.pageYOffset || document.documentElement.scrollTop,
|
||||
rect = thumbnail.getBoundingClientRect();
|
||||
|
||||
return {x:rect.left, y:rect.top + pageYScroll, w:rect.width};
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// PhotoSwipe opened from URL
|
||||
if(fromURL) {
|
||||
if(options.galleryPIDs) {
|
||||
// parse real index when custom PIDs are used
|
||||
// http://photoswipe.com/documentation/faq.html#custom-pid-in-url
|
||||
for(var j = 0; j < items.length; j++) {
|
||||
if(items[j].pid == index) {
|
||||
options.index = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// in URL indexes start from 1
|
||||
options.index = parseInt(index, 10) - 1;
|
||||
}
|
||||
} else {
|
||||
options.index = parseInt(index, 10);
|
||||
}
|
||||
|
||||
// exit if index not found
|
||||
if( isNaN(options.index) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if(disableAnimation) {
|
||||
options.showAnimationDuration = 0;
|
||||
}
|
||||
|
||||
// Pass data to PhotoSwipe and initialize it
|
||||
gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, items, options);
|
||||
gallery.init();
|
||||
};
|
||||
|
||||
// loop through all gallery elements and bind events
|
||||
var galleryElements = document.querySelectorAll( gallerySelector );
|
||||
|
||||
for(var i = 0, l = galleryElements.length; i < l; i++) {
|
||||
galleryElements[i].setAttribute('data-pswp-uid', i+1);
|
||||
galleryElements[i].onclick = onThumbnailsClick;
|
||||
}
|
||||
|
||||
// Parse URL and open gallery if it contains #&pid=3&gid=1
|
||||
var hashData = photoswipeParseHash();
|
||||
if(hashData.pid && hashData.gid) {
|
||||
openPhotoSwipe( hashData.pid , galleryElements[ hashData.gid - 1 ], true, true );
|
||||
}
|
||||
};
|
||||
|
||||
function addAlert(e) {
|
||||
$('#infos-msg').append([
|
||||
'<div class="alert alert-danger">',
|
||||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>',
|
||||
'<strong><%= l('Something bad happened') %></strong><br>',
|
||||
cleanName(e, false),
|
||||
'</div>'
|
||||
].join(''));
|
||||
}
|
||||
|
||||
function addElement(keys) {
|
||||
element = keys.shift();
|
||||
if (!element.match('xcf')) {
|
||||
$.ajax({
|
||||
url: '<%= url_for('about_img') %>'+'/'+element,
|
||||
method: 'GET',
|
||||
dataType: 'json',
|
||||
success: function(data, textStatus, jqXHR) {
|
||||
if (data.success) {
|
||||
$('.gallery').append(
|
||||
[
|
||||
'<figure itemprop="associatedMedia" itemscope itemtype="http://schema.org/ImageObject">',
|
||||
' <a href="', absUrl+element, '" itemprop="contentUrl" data-size="', data.data.width, 'x', data.data.height, '">',
|
||||
' <img src="', absUrl+element, '?width=275" itemprop="thumbnail" alt="" class="img-responsive"/>',
|
||||
' </a>',
|
||||
'</figure>'
|
||||
].join('')
|
||||
);
|
||||
} else {
|
||||
addAlert(data.msg);
|
||||
}
|
||||
},
|
||||
complete: function() {
|
||||
if (keys.length > 0) {
|
||||
addElement(keys);
|
||||
} else {
|
||||
initPhotoSwipeFromDOM('.gallery');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
$(document).ready(function() {
|
||||
var key = window.location.hash.substring(1); // Get key
|
||||
// First, strip everything after the equal sign (=) which signals end of base64 string.
|
||||
i = key.indexOf('='); if (i>-1) { key = key.substring(0,i+1); }
|
||||
@@ -12,19 +257,5 @@ $(document).ready(function() {
|
||||
|
||||
$('#download-all').attr('href', $('#download-all').attr('href')+keys.join('&i='));
|
||||
|
||||
var items = [];
|
||||
keys.forEach(function(element, index, array) {
|
||||
if (!element.match('xcf')) {
|
||||
$('#gallery').append(
|
||||
[
|
||||
'<img src="', absUrl+element, '" data-image="', absUrl+element, '" data-description="" alt="">'
|
||||
].join('')
|
||||
);
|
||||
}
|
||||
});
|
||||
var api = $("#gallery").unitegallery({
|
||||
gallery_theme: "tiles",
|
||||
tiles_max_columns: 4,
|
||||
lightbox_overlay_color: "#DDD"
|
||||
});
|
||||
addElement(keys);
|
||||
});
|
||||
|
||||
@@ -3,6 +3,9 @@ function selectInput() {
|
||||
$(this).select();
|
||||
}
|
||||
function cleanName(name, empty) {
|
||||
if (typeof(name) === 'undefined') {
|
||||
return name;
|
||||
}
|
||||
if (empty !== undefined && empty !== null && empty) {
|
||||
return name.replace(/&(l|g)t;/g, '').replace(/"/g, '\'');
|
||||
} else {
|
||||
@@ -134,7 +137,8 @@ function buildMessage(success, msg) {
|
||||
'<form class="form col-sm-11 col-sm-offset-1" role="form" method="POST" action="', link(msg.real_short, '', msg.token, true), '">',
|
||||
'<div class="form-group form-inline">',
|
||||
'<select id="day-', msg.real_short, '" name="delete-day" class="form-control">',
|
||||
% for my $delay (qw/0 1 7 30 365/) {
|
||||
% my @delays = split(',', $self->config('proposed_delays'));
|
||||
% for my $delay (@delays) {
|
||||
% my $text = ($delay == 7 || $delay == 30) ? l('%1 days', $delay) : $d->{'delay_'.$delay};
|
||||
% if (config('max_delay')) {
|
||||
% if ($delay) {
|
||||
@@ -172,9 +176,9 @@ function buildMessage(success, msg) {
|
||||
'<div class="alert alert-danger">',
|
||||
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>',
|
||||
'<strong><%= l('Something bad happened') %></strong><br>',
|
||||
msg.filename,
|
||||
cleanName(msg.filename, false),
|
||||
'<br>',
|
||||
msg.msg,
|
||||
cleanName(msg.msg, false),
|
||||
'</div>'
|
||||
].join('');
|
||||
}
|
||||
|
||||
87
themes/default/templates/partial/navbar.html.ep
Normal file
87
themes/default/templates/partial/navbar.html.ep
Normal file
@@ -0,0 +1,87 @@
|
||||
% # vim:set sw=4 ts=4 sts=4 ft=html.epl expandtab:
|
||||
% my $l = {
|
||||
% ar => 'العربية',
|
||||
% de => 'Deutsch',
|
||||
% en => 'English',
|
||||
% es => 'Español',
|
||||
% fr => 'Français',
|
||||
% fr_FR => 'Français (France)',
|
||||
% oc => 'Occitan',
|
||||
% ru => 'Русский',
|
||||
% };
|
||||
<nav class="navbar navbar-default">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-lutim" aria-expanded="false">
|
||||
<span class="sr-only"><%= l('Toggle navigation') %></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="<%= url_for('/') %>">Lutim</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="navbar-lutim">
|
||||
<ul class="nav navbar-nav">
|
||||
<li>
|
||||
<%= link_to url_for('myfiles') => begin %><%= l('My images') %><% end %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to url_for('stats') => begin %><%= l('Instance\'s statistics') %><% end %>
|
||||
</li>
|
||||
<li>
|
||||
<a class="btn btn-default btn-xs" href="#" id="install-app">
|
||||
<img src="<%= url_for('/img/rocket.png') %>" alt="mozilla rocket logo"> <%= l('Install webapp') %>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
|
||||
<span class="icon-language" aria-hidden="true" title="<%= l('Language') %>"></span><span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu" role="menu">
|
||||
% for my $i (@{$self->available_langs}) {
|
||||
<li<%== ($i eq $self->languages) ? ' class="active"' : '' %>>
|
||||
<a href="<%= url_for('lang', l => $i) %>" class="set-lang"><%= $l->{$i} %></a>
|
||||
</li>
|
||||
% }
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
||||
<%= l('Support the author') %>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<%= link_to 'https://tipeee.com/fiat-tux' => begin %><%= l('Support the author on Tipeee') %><% end %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to 'https://liberapay.com/sky' => begin %><%= l('Support the author on Liberapay') %><% end %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to 'bitcoin:3MJBezS1S1jPZ1Jgn8MYURLLu78CcPfqew?label=lutim' => begin %><%= l('Support the author with bitcoins') %><% end %>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
|
||||
<%= l('Informations') %>
|
||||
<span class="caret"></span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<%= link_to 'https://www.gnu.org/licenses/agpl-3.0.html' => begin %><%= l('License:') %> AGPL<% end %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to url_for('about') => begin %><%= l('About') %><% end %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to 'https://framagit.org/luc/lutim' => begin %><%= l('Fork me!') %><% end %>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -23,7 +23,8 @@
|
||||
<meta name="twitter:title" content="<%= $filename %>">
|
||||
<meta name="twitter:player:width" content="<%= $width %>">
|
||||
<meta name="twitter:player:height" content="<%= $height %>">
|
||||
%= asset 'freeze.js', { inline => 1 }
|
||||
%= javascript '/js/jquery-3.2.1.min.js'
|
||||
%= javascript '/js/freezeframe.min.js'
|
||||
%= javascript begin
|
||||
freezeframe_options = {
|
||||
trigger_event: "click",
|
||||
|
||||
@@ -391,14 +391,19 @@
|
||||
"responsive-utilities.less",
|
||||
"button-groups.less",
|
||||
"input-groups.less",
|
||||
"navs.less",
|
||||
"navbar.less",
|
||||
"alerts.less",
|
||||
"progress-bars.less",
|
||||
"close.less",
|
||||
"component-animations.less"
|
||||
"component-animations.less",
|
||||
"dropdowns.less"
|
||||
],
|
||||
"js": [
|
||||
"alert.js",
|
||||
"dropdown.js",
|
||||
"collapse.js",
|
||||
"transition.js"
|
||||
],
|
||||
"customizerUrl": "http://getbootstrap.com/customize/?id=a3e981920dd6bd53664e6b133bd0d53f"
|
||||
"customizerUrl": "<none>"
|
||||
}
|
||||
@@ -89,6 +89,12 @@
|
||||
"css": "file-archive",
|
||||
"code": 59405,
|
||||
"src": "fontawesome"
|
||||
},
|
||||
{
|
||||
"uid": "ddecf5ad7935e3fb1b70dac6ed00d06a",
|
||||
"css": "language",
|
||||
"code": 59406,
|
||||
"src": "entypo"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -18,3 +18,7 @@ CREATE TABLE IF NOT EXISTS lutim (
|
||||
);
|
||||
-- 1 down
|
||||
DROP TABLE lutim;
|
||||
-- 2 up
|
||||
ALTER TABLE lutim ADD COLUMN iv text;
|
||||
-- 2 down
|
||||
ALTER TABLE lutim DROP COLUMN iv;
|
||||
23
utilities/migrations/sqlite.sql
Normal file
23
utilities/migrations/sqlite.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
-- 1 up
|
||||
CREATE TABLE IF NOT EXISTS lutim (
|
||||
short TEXT PRIMARY KEY,
|
||||
path TEXT,
|
||||
footprint TEXT,
|
||||
enabled INTEGER,
|
||||
mediatype TEXT,
|
||||
filename TEXT,
|
||||
counter INTEGER,
|
||||
delete_at_first_view INTEGER,
|
||||
delete_at_day INTEGER,
|
||||
created_at INTEGER,
|
||||
created_by TEXT,
|
||||
last_access_at INTEGER,
|
||||
mod_token TEXT,
|
||||
width INTEGER,
|
||||
height INTEGER
|
||||
);
|
||||
-- 1 down
|
||||
DROP TABLE lutim;
|
||||
-- 2 up
|
||||
ALTER TABLE lutim ADD COLUMN iv TEXT;
|
||||
-- 2 down
|
||||
11
zanata.xml
Normal file
11
zanata.xml
Normal file
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||
<config xmlns="http://zanata.org/namespace/config/">
|
||||
<url>https://trad.framasoft.org/zanata/</url>
|
||||
<project>lutim</project>
|
||||
|
||||
<project-version>master</project-version>
|
||||
|
||||
<project-type>gettext</project-type>
|
||||
<src-dir>themes/default/lib/Lutim/I18N/</src-dir>
|
||||
<trans-dir>themes/default/lib/Lutim/I18N/</trans-dir>
|
||||
</config>
|
||||
Reference in New Issue
Block a user