Compare commits
No commits in common. "master" and "0.05.21" have entirely different histories.
|
@ -88,7 +88,8 @@ variables:
|
|||
##
|
||||
#
|
||||
include:
|
||||
- 'https://framagit.org/fiat-tux/gitlabci-snippets/-/raw/2aac6c1f3dd725d9aed57549da67a92759f9f9ec/create-release-from-ci.gitlab-ci.yml'
|
||||
- 'https://framagit.org/fiat-tux/gitlabci-snippets/-/raw/53cf9e6c8c427ecbff4abb9615347a77f7786806/create-release-from-ci.gitlab-ci.yml'
|
||||
- 'https://framagit.org/fiat-tux/gitlabci-snippets/-/raw/4e4e03322e95e9b0124c714456ebf1bdc02ad43f/publish_changelog.gitlab-ci.yml'
|
||||
- 'https://framagit.org/fiat-tux/gitlabci-snippets/-/raw/4e4e03322e95e9b0124c714456ebf1bdc02ad43f/pouet-it-from-ci.gitlab-ci.yml'
|
||||
|
||||
### Podcheck
|
||||
|
|
16
CHANGELOG
16
CHANGELOG
|
@ -1,20 +1,6 @@
|
|||
Revision history for Lufi
|
||||
|
||||
0.08.0 ????-??-??
|
||||
|
||||
0.07.0 2023-12-25
|
||||
- ⬆️ — Update jQuery
|
||||
- 🩹 — Fix a format query parameter
|
||||
- 🎨 — Use template literals in js
|
||||
- ➖ — Replace moment.js with Date().toLocaleDateString(…)
|
||||
- 🩹 — Fix Roboto font warnings in js console
|
||||
- ♿️ — Add autofocus on login input field
|
||||
- ✨ — Add a `lockfile_dir` setting (fix #242)
|
||||
- 👷 — Update the create-release snippet’s URL
|
||||
|
||||
0.06.00 2023-12-18
|
||||
- ⬆️ — Update deps
|
||||
- 🌐 Update translations
|
||||
?.??.? ????-??-??
|
||||
|
||||
0.05.21 2023-02-21
|
||||
- ⬆️ — Update deps (still #284)
|
||||
|
|
10
Makefile
10
Makefile
|
@ -5,10 +5,10 @@ XGETTEXT ?= carton exec local/bin/xgettext.pl -u
|
|||
CARTON ?= carton exec
|
||||
REAL_LUFI ?= script/application
|
||||
LUFI ?= script/lufi
|
||||
LDAP_CONTAINER_IMAGE ?= docker.io/rroemhild/test-openldap:latest
|
||||
LDAP_CONTAINER_IMAGE ?= rroemhild/test-openldap:latest
|
||||
LOCAL_LDAP_PORT ?= 10389
|
||||
LOCAL_SWIFT_PORT ?= 8080
|
||||
SWIFT_CONTAINER_IMAGE ?= docker.io/openstackswift/saio:latest
|
||||
SWIFT_CONTAINER_IMAGE ?= swiftstack/picoswiftstack:latest
|
||||
MORBO_HOST ?= 0.0.0.0
|
||||
MORBO_PORT ?= 3000
|
||||
|
||||
|
@ -33,15 +33,15 @@ dev: clean
|
|||
$(CARTON) morbo $(LUFI) --listen http://$(MORBO_HOST):$(MORBO_PORT) --watch lib/ --watch script/ --watch themes/ --watch lufi.conf
|
||||
|
||||
ldap:
|
||||
podman run -d -p $(LOCAL_LDAP_PORT):10389 $(LDAP_CONTAINER_IMAGE); exit 0
|
||||
sudo docker run -d -p $(LOCAL_LDAP_PORT):10389 $(LDAP_CONTAINER_IMAGE); exit 0
|
||||
|
||||
ldapdev: ldap dev
|
||||
|
||||
swift:
|
||||
podman run -d --rm -p $(LOCAL_SWIFT_PORT):8080 --hostname="picoswiftstack" --name="picoswiftstack" $(SWIFT_CONTAINER_IMAGE); exit 0
|
||||
sudo docker run -d --rm -p $(LOCAL_SWIFT_PORT):8080 --hostname="picoswiftstack" --name="picoswiftstack" $(SWIFT_CONTAINER_IMAGE); exit 0
|
||||
@echo "Sleeping 20 seconds to let picoswiftstack start"
|
||||
@sleep 20
|
||||
podman exec picoswiftstack get_auth
|
||||
sudo docker exec picoswiftstack get_auth
|
||||
|
||||
swiftdev: swift dev
|
||||
|
||||
|
|
|
@ -99,5 +99,3 @@ It uses:
|
|||
## Deploy Lufi
|
||||
|
||||
An ansible role and a terraform plan reside under the `.provision` directory. An user could utilize the terraform plan if they chose to deploy lufi on AWS, if that's not the goal, they could simply execute the ansible role in part. Usage docs for both are present in their respective directories.
|
||||
|
||||
You can use Docker by using the recipe on <https://github.com/megalis-bretagne/lufi-docker>.
|
||||
|
|
1
cpanfile
1
cpanfile
|
@ -13,7 +13,6 @@ requires 'Filesys::DiskUsage';
|
|||
requires 'Switch';
|
||||
requires 'Locale::Maketext';
|
||||
requires 'Locale::Maketext::Extract';
|
||||
requires 'Net::DNS';
|
||||
requires 'Email::Valid';
|
||||
requires 'Number::Bytes::Human';
|
||||
requires 'Filesys::DfPortable';
|
||||
|
|
1497
cpanfile.snapshot
1497
cpanfile.snapshot
File diff suppressed because it is too large
Load Diff
|
@ -79,9 +79,6 @@ sub startup {
|
|||
my $loop = shift;
|
||||
|
||||
my $lockfile = Mojo::File->new($config_file)->basename('.conf').'-provisioning.lock';
|
||||
if (defined($config->{lockfile_dir})) {
|
||||
$lockfile = Mojo::File->new($config->{lockfile_dir}, $lockfile)->to_string;
|
||||
}
|
||||
if (-e $lockfile) {
|
||||
my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat($lockfile);
|
||||
|
||||
|
@ -194,7 +191,7 @@ sub startup {
|
|||
->name('config');
|
||||
|
||||
# Generated js files
|
||||
$r->get('/partial/<:file>.<:ext>')
|
||||
$r->get('/partial/:file')
|
||||
->to('Misc#js_files')
|
||||
->name('partial');
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ sub store {
|
|||
|
||||
# Write file
|
||||
my $file = catfile($c->app->config('upload_dir'), $c->get_path());
|
||||
Mojo::File->new($file)->spew($text);
|
||||
Mojo::File->new($file)->spurt($text);
|
||||
}
|
||||
|
||||
return $c;
|
||||
|
|
|
@ -149,14 +149,6 @@
|
|||
# 1 => 'Illegal content',
|
||||
#},
|
||||
|
||||
# Lockfile directory
|
||||
# In which directory do you want to store the lockfile?
|
||||
# If using load balancing, you will want to set a directory shared by the servers
|
||||
# You can define it relative to lufi directory or set an absolute path
|
||||
# Remember that it has to be in a directory writable by Lufi user
|
||||
# optional, default is lufi directory
|
||||
#lockfile_dir => '.',
|
||||
|
||||
###############
|
||||
# Mail settings
|
||||
###############
|
||||
|
|
|
@ -139,14 +139,6 @@
|
|||
1 => 'Illegal content',
|
||||
},
|
||||
|
||||
# Lockfile directory
|
||||
# In which directory do you want to store the lockfile?
|
||||
# If using load balancing, you will want to set a directory shared by the servers
|
||||
# You can define it relative to lufi directory or set an absolute path
|
||||
# Remember that it has to be in a directory writable by Lufi user
|
||||
# optional, default is lufi directory
|
||||
#lockfile_dir => '.',
|
||||
|
||||
###############
|
||||
# Mail settings
|
||||
###############
|
||||
|
|
|
@ -135,14 +135,6 @@
|
|||
1 => 'Illegal content',
|
||||
},
|
||||
|
||||
# Lockfile directory
|
||||
# In which directory do you want to store the lockfile?
|
||||
# If using load balancing, you will want to set a directory shared by the servers
|
||||
# You can define it relative to lufi directory or set an absolute path
|
||||
# Remember that it has to be in a directory writable by Lufi user
|
||||
# optional, default is lufi directory
|
||||
#lockfile_dir => '.',
|
||||
|
||||
###############
|
||||
# Mail settings
|
||||
###############
|
||||
|
|
|
@ -139,14 +139,6 @@
|
|||
1 => 'Illegal content',
|
||||
},
|
||||
|
||||
# Lockfile directory
|
||||
# In which directory do you want to store the lockfile?
|
||||
# If using load balancing, you will want to set a directory shared by the servers
|
||||
# You can define it relative to lufi directory or set an absolute path
|
||||
# Remember that it has to be in a directory writable by Lufi user
|
||||
# optional, default is lufi directory
|
||||
#lockfile_dir => '.',
|
||||
|
||||
###############
|
||||
# Mail settings
|
||||
###############
|
||||
|
|
8
t/test.t
8
t/test.t
|
@ -269,13 +269,13 @@ sub test_login {
|
|||
}
|
||||
|
||||
sub restore_config {
|
||||
$config_file->spew($config_orig);
|
||||
$config_file->spurt($config_orig);
|
||||
}
|
||||
|
||||
sub switch_to_htpasswd {
|
||||
$config_content = $config_orig;
|
||||
$config_content =~ s/#?htpasswd.*/htpasswd => 't\/lufi.passwd',/gm;
|
||||
$config_file->spew($config_content);
|
||||
$config_file->spurt($config_content);
|
||||
|
||||
Lufi::DB::Slice->new(app => $m)->delete_all;
|
||||
Lufi::DB::File->new(app => $m)->delete_all;
|
||||
|
@ -289,7 +289,7 @@ sub switch_to_htpasswd {
|
|||
sub switch_to_ldap {
|
||||
$config_content = $config_orig;
|
||||
$config_content =~ s/^( +)#?ldap => \{ uri/$1ldap => { uri/gm;
|
||||
$config_file->spew($config_content);
|
||||
$config_file->spurt($config_content);
|
||||
|
||||
Lufi::DB::Slice->new(app => $m)->delete_all;
|
||||
Lufi::DB::File->new(app => $m)->delete_all;
|
||||
|
@ -303,7 +303,7 @@ sub switch_to_ldap {
|
|||
sub switch_to_swift {
|
||||
$config_content = $config_orig;
|
||||
$config_content =~ s/^( +)#?swift => \{ auth_url/$1swift => { auth_url/gm;
|
||||
$config_file->spew($config_content);
|
||||
$config_file->spurt($config_content);
|
||||
|
||||
Lufi::DB::Slice->new(app => $m)->delete_all;
|
||||
Lufi::DB::File->new(app => $m)->delete_all;
|
||||
|
|
|
@ -1,848 +0,0 @@
|
|||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2023-11-23 12:06+0000\n"
|
||||
"Last-Translator: Ewen <darempred@korr.bzh>\n"
|
||||
"Language-Team: Breton <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/br/>\n"
|
||||
"Language: br\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=5; plural=(n % 10 == 1 && n % 100 != 11 && n % 100 != "
|
||||
"71 && n % 100 != 91) ? 0 : ((n % 10 == 2 && n % 100 != 12 && n % 100 != 72 "
|
||||
"&& n % 100 != 92) ? 1 : ((((n % 10 == 3 || n % 10 == 4) || n % 10 == 9) && ("
|
||||
"n % 100 < 10 || n % 100 > 19) && (n % 100 < 70 || n % 100 > 79) && (n % 100 "
|
||||
"< 90 || n % 100 > 99)) ? 2 : ((n != 0 && n % 1000000 == 0) ? 3 : 4)));\n"
|
||||
"X-Generator: Weblate 5.2\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
#: themes/default/templates/index.html.ep:56 themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:66
|
||||
msgid "%1 days"
|
||||
msgstr "%1 devezh"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:2
|
||||
msgid "%1 invites you to send him/her files"
|
||||
msgstr "Pedet oc'h gant %1 da gas dezhi/dezhañ oh fichennaoueg"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:6
|
||||
msgid "%1 invites you to send him/her files through Lufi."
|
||||
msgstr "Pedet oc'h gant %1 da gas dezhi/dezhañ oh fichennaoueg dre Lufi."
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:4
|
||||
msgid "%1 sent you files"
|
||||
msgstr "%1 o deus kaset deoc'h fichennaouegoù"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
|
||||
msgid "%1 used your invitation to send you files:"
|
||||
msgstr "Implijet eo bet oh pedadenn gant %1 :"
|
||||
|
||||
#: lib/Lufi/Controller/Invitation.pm:172 lib/Lufi/Controller/Invitation.pm:85 themes/default/templates/invitations/my_invitations.html.ep:51 themes/default/templates/invitations/my_invitations.html.ep:52 themes/default/templates/invitations/my_invitations.html.ep:53 themes/default/templates/invitations/notification_files_sent.mail.ep:12
|
||||
msgid "%A %d %B %Y at %T"
|
||||
msgstr "%A %d %B %Y da %T"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:28
|
||||
msgid "(max size: XXX)"
|
||||
msgstr "(pouezh maks : XXX)"
|
||||
|
||||
#: themes/default/templates/index.html.ep:5
|
||||
msgid "1 year"
|
||||
msgstr "1 bloazh"
|
||||
|
||||
#: themes/default/templates/index.html.ep:4 themes/default/templates/index.html.ep:65
|
||||
msgid "24 hours"
|
||||
msgstr "24 eur"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:40
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
|
||||
#: themes/default/templates/render.html.ep:42
|
||||
msgid "Abort"
|
||||
msgstr "Nullañ"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53 themes/default/templates/layouts/default.html.ep:86
|
||||
msgid "About"
|
||||
msgstr "Diwar benn"
|
||||
|
||||
#: themes/default/templates/index.html.ep:107
|
||||
msgid "Add a password to file(s)"
|
||||
msgstr "Ouzhpenn ur ger kuzh d'ho fichennaoueg(où)"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:16
|
||||
msgid "Adding URLs not related to this Lufi instance to the mail body or subject is prohibited."
|
||||
msgstr ""
|
||||
"Ouzhpennañ liammoù diliam gant al lec'hienn Lufi-mañ e-barzh sujed pe korf "
|
||||
"oh mail a zo difennet."
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:3
|
||||
msgid "Are you sure you want to delete the selected invitations?"
|
||||
msgstr "Ah sur oc'h dilemel ar pedadennoù choazet ?"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:4
|
||||
msgid "Are you sure you want to resend the invitation mail for the selected invitations?"
|
||||
msgstr "Ah sur oc'h adkas ho mail pediñ evit ar pedadenn choazet ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "As Lufi is a free software licensed under of the terms of the <a href=\"https://gnu.org/licenses/agpl.html\" class=\"classic\">AGPLv3</a>, you can install it on you own server. Have a look on the <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a> for the procedure."
|
||||
msgstr ""
|
||||
"Lufi a zo ur poellad frank diwar aotre-implijout an <a href=\"https://gnu."
|
||||
"org/licenses/agpl.html\" class=\"classic\">AGPLv3</a>, posubl eo deoc'h "
|
||||
"staliañ anezhañ war oh servijer. Kit war omp <a href=\"https://framagit.org/"
|
||||
"fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a> da "
|
||||
"wellout penaos."
|
||||
|
||||
#. (stash('nbslices')
|
||||
#: themes/default/templates/partial/render.js.ep:10
|
||||
msgid "Asking for file part XX1 of %1"
|
||||
msgstr "Oh goulenn evit ar fichennaoueg lodenn XX1 diwar %1"
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "Back to homepage"
|
||||
msgstr "Distro war ar bajenn degemer"
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:26
|
||||
msgid "Bad CSRF token!"
|
||||
msgstr "Token CSRF fall !"
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:27 lib/Lufi/Controller/Auth.pm:49
|
||||
msgid "Bad CSRF token."
|
||||
msgstr "Token CSRF fall."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:5
|
||||
msgid "Click here to refresh the page and restart the download."
|
||||
msgstr "Klik amañ da adkarg ar bajenn ha krog ar pellgargañ adare."
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:8
|
||||
msgid "Click on the following URL to upload files on Lufi:"
|
||||
msgstr "Klik war al liammoù dindan da gas fichennaouegoù gant Lufi :"
|
||||
|
||||
#: themes/default/templates/index.html.ep:126
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Klik da zigor an ergerzher fichennoù"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:42 themes/default/templates/invitations/my_invitations.html.ep:80
|
||||
msgid "Close"
|
||||
msgstr "Seriñ"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:23
|
||||
msgid "Comma-separated email addresses"
|
||||
msgstr "Mailoù dispartiet gant virgulennoù"
|
||||
|
||||
#: themes/default/templates/index.html.ep:140
|
||||
msgid "Compressing zip file…"
|
||||
msgstr "Gwaskañ en ur zip fichenn…"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:15
|
||||
msgid "Copy all links to clipboard"
|
||||
msgstr "Kopiañ holl ar liammoù d'ar gwask-paper"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:18
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopiañ d'ar gwask-paper"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:501
|
||||
msgid "Could not delete the file. You are not authenticated."
|
||||
msgstr "N'eo ket be posubl dilemel ar fichenn. N'och ket luget."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:483
|
||||
msgid "Could not find the file. Are you sure of the URL and the token?"
|
||||
msgstr "Ne oa ket posubl kavout ar fichenn. Ah sur oc'h eus oh liamm ha token ?"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:394
|
||||
msgid "Could not find the file. Are you sure of the URL?"
|
||||
msgstr "Ne oa ket posubl kavout ar fichenn. Ah sur oc'h eus oh liamm ?"
|
||||
|
||||
#: themes/default/templates/files.html.ep:29
|
||||
msgid "Counter"
|
||||
msgstr "Kont"
|
||||
|
||||
#: themes/default/templates/index.html.ep:100
|
||||
msgid "Create a zip archive with the files before uploading?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:26
|
||||
msgid "Created at"
|
||||
msgstr "Krouet d'an/d'ar"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:14
|
||||
msgid "Delete"
|
||||
msgstr "Dilemel"
|
||||
|
||||
#: themes/default/templates/files.html.ep:30 themes/default/templates/index.html.ep:90
|
||||
msgid "Delete at first download?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:19
|
||||
msgid "Delete selected files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:33 themes/default/templates/partial/index.js.ep:19
|
||||
msgid "Deletion link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:9
|
||||
msgid "Don't worry: if a user begins to download the file before the expiration and the download ends after the expiration, he will be able to get the file."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:21 themes/default/templates/render.html.ep:28
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:4
|
||||
msgid "Download aborted."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:28 themes/default/templates/partial/index.js.ep:20
|
||||
msgid "Download link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Drag and drop files in the appropriate area or use the traditional way to send files and the files will be chunked, encrypted and sent to the server. You will get two links per file: a download link, that you give to the people you want to share the file with and a deletion link, allowing you to delete the file whenever you want."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:122
|
||||
msgid "Drop files here"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:40
|
||||
msgid "Email address of your guest"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:39
|
||||
msgid "Email body"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:31
|
||||
msgid "Email subject"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:25 themes/default/templates/mail.html.ep:27
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:22
|
||||
msgid "Encrypting part XX1 of XX2"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:283
|
||||
msgid "Error: the file existed but was deleted."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:363
|
||||
msgid "Error: the file has not been sent entirely."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:373
|
||||
msgid "Error: unable to find the file. Are you sure of your URL?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:23
|
||||
msgid "Expiration:"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:27
|
||||
msgid "Expire at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:32
|
||||
msgid "Expires at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:12
|
||||
msgid "Export localStorage data"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:465
|
||||
msgid "File deleted"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:9
|
||||
msgid "File downloaded"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:27
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:24
|
||||
msgid "File uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:61
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:80
|
||||
msgid "Files deleted at first download"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:28
|
||||
msgid "Files sent at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:8
|
||||
msgid "Files sent in invitation XX1 by XX2"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:8
|
||||
msgid "Get the file"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "Get the source code on <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi\" class=\"classic\">the official repository</a> or on its <a href=\"https://github.com/ldidry/lufi\" class=\"classic\">Github mirror</a>"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:24
|
||||
msgid "Guest mail"
|
||||
msgstr ""
|
||||
|
||||
#. (ucfirst(stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:6
|
||||
msgid "Hello %1,"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:4
|
||||
msgid "Hello,"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:35
|
||||
msgid "Hello,\\n\\nHere's some files I want to share with you:\\n"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:35
|
||||
msgid "Here's some files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:7
|
||||
msgid "Hide hidden invitations"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:26
|
||||
msgid "Hit Enter, then Ctrl+C to copy all the download links"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:25
|
||||
msgid "Hit Enter, then Ctrl+C to copy the download link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "How does it work?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:46
|
||||
msgid "How many days would you like the invitation to be valid?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "How to install the software on my server?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "How to report an illegal file?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:8
|
||||
msgid "If you choose a delay, the file will be deleted after that delay."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:15
|
||||
msgid "If you send the mail from this server, the links will be sent to the server, which may lower your privacy protection."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:14
|
||||
msgid "Import localStorage data"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:53
|
||||
msgid "Important: more information on delays"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:5
|
||||
msgid "Information about delays"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:18 themes/default/templates/invitations/my_invitations.html.ep:12
|
||||
msgid "Invert selection"
|
||||
msgstr ""
|
||||
|
||||
#. ($i->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:184
|
||||
msgid "Invitation resent to %1.<br> URL: %2"
|
||||
msgstr ""
|
||||
|
||||
#. ($invitation->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:88
|
||||
msgid "Invitation sent to %1.<br> URL: %2"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:27 themes/default/templates/layouts/default.html.ep:36 themes/default/templates/layouts/default.html.ep:69
|
||||
msgid "Invite a guest"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:6
|
||||
msgid "It seems that the key in your URL is incorrect. Please, verify your URL."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:12
|
||||
msgid "Javascript is disabled. You won't be able to use Lufi."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:44 themes/default/templates/layouts/default.html.ep:46 themes/default/templates/layouts/default.html.ep:77 themes/default/templates/layouts/default.html.ep:79
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#. (sprintf('<a href="https://framagit.org/fiat-tux/hat-softwares/lufi/-/commit/%s" class="classic">%s</a>', stash('version')
|
||||
#: themes/default/templates/about.html.ep:22
|
||||
msgid "Latest commit of this instance: %1"
|
||||
msgstr ""
|
||||
|
||||
#. (sprintf('<a href="https://framagit.org/fiat-tux/hat-softwares/lufi/-/releases/%s" class="classic">%s</a>', stash('version')
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Latest tag of this instance: %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/login.html.ep:15
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58 themes/default/templates/layouts/default.html.ep:91
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lufi is a free (as in free speech) file hosting software."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:12
|
||||
msgid "Lufi recently changed its way to store files information.\\n\\nNo files have been found in the new localStorage location but we found files in the old one.\\nDo you want to import those informations?\\n\\nPlease note that this is the only time that we will ask you this."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:34
|
||||
msgid "Mail"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:3 themes/default/templates/layouts/default.html.ep:34 themes/default/templates/layouts/default.html.ep:67
|
||||
msgid "My files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:5 themes/default/templates/layouts/default.html.ep:37 themes/default/templates/layouts/default.html.ep:70
|
||||
msgid "My invitations"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:17
|
||||
msgid "NB: this list includes the list of files that have already been sent to you."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:115
|
||||
msgid "Name of the zip file"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:109
|
||||
msgid "No enough space available on the server for this file (size: %1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:10 themes/default/templates/partial/index.js.ep:29
|
||||
msgid "No expiration delay"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:8
|
||||
msgid "Only the files sent with this browser will be listed here. This list is stored in localStorage: if you delete your localStorage data, you'll lose this list."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:106 themes/default/templates/login.html.ep:21 themes/default/templates/render.html.ep:26
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:13
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/render.html.ep:33
|
||||
msgid "Please wait while we are getting your file. We first need to download and decrypt all parts before you can get it."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:38
|
||||
msgid "Please, check your credentials or your right to access this service: unable to authenticate."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
msgid "Privacy"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:13
|
||||
msgid "Purge expired files from localStorage"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:20
|
||||
msgid "Regards,"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:15
|
||||
msgid "Regards."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:31 themes/default/templates/layouts/default.html.ep:64
|
||||
msgid "Report file"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:15
|
||||
msgid "Resend invitation mail"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:9
|
||||
msgid "Rows in purple mean that the invitations have expired."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:9
|
||||
msgid "Rows in red mean that the files have expired and are no longer available."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:27
|
||||
msgid "Send all links by email"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:50
|
||||
msgid "Send the invitation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:47
|
||||
msgid "Send with this server"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:49
|
||||
msgid "Send with your own mail software"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:30
|
||||
msgid "Sending part XX1 of XX2. Please, be patient, the progress bar can take a while to move."
|
||||
msgstr ""
|
||||
|
||||
#. (url_for('/')
|
||||
#: themes/default/templates/partial/mail.js.ep:49
|
||||
msgid "Share your files in total privacy on %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:13 themes/default/templates/partial/invitations.js.ep:9
|
||||
msgid "Show hidden invitations"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:12
|
||||
msgid "Show zip content"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:40 themes/default/templates/layouts/default.html.ep:73 themes/default/templates/login.html.ep:28 themes/default/templates/logout.html.ep:17
|
||||
msgid "Signin"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Invitation.pm:302 themes/default/templates/invitations/exception.html.ep:16
|
||||
msgid "Sorry, the invitation doesn’t exist. Are you sure you are on the right URL?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:46
|
||||
msgid "Sorry, the uploading is currently disabled. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:82
|
||||
msgid "Sorry, uploading is disabled."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/exception.html.ep:7
|
||||
msgid "Sorry, your invitation has expired or has been deleted."
|
||||
msgstr ""
|
||||
|
||||
#. ($invit->ldap_user_mail)
|
||||
#: lib/Lufi/Controller/Files.pm:123
|
||||
msgid "Sorry, your invitation has expired or has been deleted. Please contact %1 to have another invitation."
|
||||
msgstr ""
|
||||
|
||||
#. ($invitation->ldap_user_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:295
|
||||
msgid "The URLs of your files have been sent by email to %1."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
msgid "The administrator can only see the file's name, its size and its mimetype (what kind of file it is: video, text, etc.)."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:67
|
||||
msgid "The body of the mail must contain at least one URL pointing to a file hosted on this instance."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:11
|
||||
msgid "The data has been successfully imported."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:87
|
||||
msgid "The email body can't be empty."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:86
|
||||
msgid "The email subject can't be empty."
|
||||
msgstr ""
|
||||
|
||||
#. ($expire_at, $max_expire_at)
|
||||
#: lib/Lufi/Controller/Invitation.pm:52
|
||||
msgid "The expiration delay (%1) is not between 1 and %2 days."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:462
|
||||
msgid "The file has already been deleted"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "The files uploaded on a Lufi instance are encrypted before the upload to the server: the administrator of the server can not see the file's content."
|
||||
msgstr ""
|
||||
|
||||
#. (join(', ', @bad)
|
||||
#: lib/Lufi/Controller/Mail.pm:82
|
||||
msgid "The following email addresses are not valid: %1"
|
||||
msgstr ""
|
||||
|
||||
#. ($guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:49
|
||||
msgid "The guest email address (%1) is unvalid."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:136
|
||||
msgid "The invitation %1 can’t be deleted: it wasn’t created by you (%2)."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token, $i->guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:163
|
||||
msgid "The invitation %1 can’t be resent: %2 has already sent files.<br>Please create a new invitation."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:187
|
||||
msgid "The invitation %1 can’t be resent: it wasn’t created by you (%2)."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token)
|
||||
#: lib/Lufi/Controller/Invitation.pm:134
|
||||
msgid "The invitation %1 has been deleted."
|
||||
msgstr ""
|
||||
|
||||
#. (stash('user_mail')
|
||||
#: themes/default/templates/invitations/invite.html.ep:34
|
||||
msgid "The invitation mail will be send from your email address (%1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:16
|
||||
msgid "The link(s) has been copied to your clipboard"
|
||||
msgstr ""
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/index.html.ep:30
|
||||
msgid "The link(s) of your file(s) will automatically be sent by mail to %1 (%2)"
|
||||
msgstr ""
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:11
|
||||
msgid "The links of your file(s) will automatically be sent by mail to %1."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:111
|
||||
msgid "The mail has been sent."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:15
|
||||
msgid "The original (and only for now) author is <a href=\"https://fiat-tux.fr\" class=\"classic\">Luc Didry</a>."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:230
|
||||
msgid "The server was unable to find the file record to add your file part to. Please, contact the administrator."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:289
|
||||
msgid "This file has been deactivated by the admins. Contact them to know why."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:46 themes/default/templates/partial/invitations.js.ep:6
|
||||
msgid "This invitation is normally hidden"
|
||||
msgstr ""
|
||||
|
||||
#. (stash('expires')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:13
|
||||
msgid "This invitation is valid until %1."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:13
|
||||
msgid "This server sets limitations according to the file size. The expiration delay of your file will be the minimum between what you choose and the following limitations:"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:16
|
||||
msgid "Toggle visibility"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:25
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:17
|
||||
msgid "Unable to copy the link(s) to your clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:13
|
||||
msgid "Unable to download the file: too much unsuccessful attempts to open a websocket. Please, contact the administrator."
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:433
|
||||
msgid "Unable to get counter for %1. The file does not exists. It will be removed from your localStorage."
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:423
|
||||
msgid "Unable to get counter for %1. The token is invalid."
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:443
|
||||
msgid "Unable to get counter for %1. You are not authenticated."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:33 themes/default/templates/layouts/default.html.ep:66
|
||||
msgid "Upload files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:145
|
||||
msgid "Upload generated zip file"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:31
|
||||
msgid "Uploaded at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:153
|
||||
msgid "Uploaded files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:31
|
||||
msgid "Websocket communication error"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lufi?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "Who wrote this software?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:13
|
||||
msgid "XXX file has been added to upload queue."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:30
|
||||
msgid "You can invite someone to send you files through this Lufi instance even if they don’t have an account on it."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "You can see the list of your files by clicking on the \"My files\" link at the top right of this page."
|
||||
msgstr ""
|
||||
|
||||
#. ($orig_uri)
|
||||
#: lib/Lufi/Controller/Mail.pm:43 lib/Lufi/Controller/Mail.pm:59
|
||||
msgid "You can't add URLs that are not related to this instance (%1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You don't need to register yourself to upload files but be aware that, for legal reasons, your IP address will be stored when you send a file. Don't panic, this is normally the case for all sites on which you send files."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:11
|
||||
msgid "You don't seem to have a key in your URL. You won't be able to decrypt the file. Download canceled."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:7
|
||||
msgid "You have attempted to leave this page. The download will be canceled. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:14
|
||||
msgid "You have attempted to leave this page. The upload will be canceled. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/logout.html.ep:14
|
||||
msgid "You have been successfully logged out."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:85
|
||||
msgid "You must give email addresses."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:38
|
||||
msgid "Your browser does not have enough entropy to generate a strong encryption key. Please wait (it's better if you do things on your computer while waiting)."
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:95
|
||||
msgid "Your file is too big: %1 (maximum size allowed: %2)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:345
|
||||
msgid "Your password is not valid. Please refresh the page to retry."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:14
|
||||
msgid "Zip content:"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:24
|
||||
msgid "between %1 and %2, the file will be kept %3 day(s)."
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:26
|
||||
msgid "between %1 and %2, the file will be kept forever."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:42
|
||||
msgid "deadline: "
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:5
|
||||
msgid "expires on XXX"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:30
|
||||
msgid "for %1 and more, the file will be kept %2 day(s)"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:32
|
||||
msgid "for %1 and more, the file will be kept forever."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:3
|
||||
msgid "no time limit"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:124
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. ($e->{name}, format_bytes($e->{size})
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:12
|
||||
msgid "— %1 (%2), that will expire on %3"
|
||||
msgstr ""
|
|
@ -7,7 +7,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2023-05-12 14:05+0000\n"
|
||||
"PO-Revision-Date: 2022-05-21 15:36+0000\n"
|
||||
"Last-Translator: Patriccollu di Santa Maria è Sichè <Patriccollu@gmail.com>\n"
|
||||
"Language-Team: Corsican <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/co/>\n"
|
||||
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||
"X-Generator: Weblate 4.17\n"
|
||||
"X-Generator: Weblate 4.12\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
|
@ -37,7 +37,7 @@ msgstr "%1 v’invita à mandalli schedarii via Lufi."
|
|||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:4
|
||||
msgid "%1 sent you files"
|
||||
msgstr "%1 vi hà mandatu schedarii"
|
||||
msgstr "%1 vu hà mandatu schedarii"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
|
||||
|
@ -224,7 +224,7 @@ msgstr ""
|
|||
|
||||
#: themes/default/templates/index.html.ep:122
|
||||
msgid "Drop files here"
|
||||
msgstr "Depunite quì i vostri schedarii"
|
||||
msgstr "Depunite i vostri schedarii quì"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:40
|
||||
msgid "Email address of your guest"
|
||||
|
|
|
@ -1,858 +0,0 @@
|
|||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2023-11-06 07:36+0000\n"
|
||||
"Last-Translator: wimo kic <wimokic241@rdluxe.com>\n"
|
||||
"Language-Team: Persian <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/fa/>\n"
|
||||
"Language: fa\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=n > 1;\n"
|
||||
"X-Generator: Weblate 5.1.1\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
#: themes/default/templates/index.html.ep:56 themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:66
|
||||
#, fuzzy
|
||||
msgid "%1 days"
|
||||
msgstr "%1 روز"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:2
|
||||
#, fuzzy
|
||||
msgid "%1 invites you to send him/her files"
|
||||
msgstr "%1 از شما دعوت میکند که برای او فایل ارسال کنید"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:6
|
||||
#, fuzzy
|
||||
msgid "%1 invites you to send him/her files through Lufi."
|
||||
msgstr "%1 از شما دعوت میکند که برای او از طریق \"لوفی\" فایل ارسال کنید."
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:4
|
||||
#, fuzzy
|
||||
msgid "%1 sent you files"
|
||||
msgstr "%1 برای شما فایل ارسال کرد"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
|
||||
#, fuzzy
|
||||
msgid "%1 used your invitation to send you files:"
|
||||
msgstr "%1 از دعوت شما برای ارسال فایل استفاده کرد:"
|
||||
|
||||
#: lib/Lufi/Controller/Invitation.pm:172 lib/Lufi/Controller/Invitation.pm:85 themes/default/templates/invitations/my_invitations.html.ep:51 themes/default/templates/invitations/my_invitations.html.ep:52 themes/default/templates/invitations/my_invitations.html.ep:53 themes/default/templates/invitations/notification_files_sent.mail.ep:12
|
||||
msgid "%A %d %B %Y at %T"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:28
|
||||
#, fuzzy
|
||||
msgid "(max size: XXX)"
|
||||
msgstr "(حداکثر سایز: XXX)"
|
||||
|
||||
#: themes/default/templates/index.html.ep:5
|
||||
#, fuzzy
|
||||
msgid "1 year"
|
||||
msgstr "1 سال"
|
||||
|
||||
#: themes/default/templates/index.html.ep:4 themes/default/templates/index.html.ep:65
|
||||
#, fuzzy
|
||||
msgid "24 hours"
|
||||
msgstr "24 ساعت"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:40
|
||||
#, fuzzy
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
|
||||
#: themes/default/templates/render.html.ep:42
|
||||
#, fuzzy
|
||||
msgid "Abort"
|
||||
msgstr "لغو کردن"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53 themes/default/templates/layouts/default.html.ep:86
|
||||
#, fuzzy
|
||||
msgid "About"
|
||||
msgstr "درباره"
|
||||
|
||||
#: themes/default/templates/index.html.ep:107
|
||||
#, fuzzy
|
||||
msgid "Add a password to file(s)"
|
||||
msgstr "افزودن رمز به فایل"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:16
|
||||
msgid "Adding URLs not related to this Lufi instance to the mail body or subject is prohibited."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:3
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to delete the selected invitations?"
|
||||
msgstr "آیا از حذف دعوتهای انتخاب شده اطمینان دارید؟"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:4
|
||||
#, fuzzy
|
||||
msgid "Are you sure you want to resend the invitation mail for the selected invitations?"
|
||||
msgstr ""
|
||||
"آیا مطمئنید که میخواهید ایمیل دعوت را برای دعوتهای انتخاب شده دوباره ارسال "
|
||||
"کنید؟"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "As Lufi is a free software licensed under of the terms of the <a href=\"https://gnu.org/licenses/agpl.html\" class=\"classic\">AGPLv3</a>, you can install it on you own server. Have a look on the <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a> for the procedure."
|
||||
msgstr ""
|
||||
|
||||
#. (stash('nbslices')
|
||||
#: themes/default/templates/partial/render.js.ep:10
|
||||
#, fuzzy
|
||||
msgid "Asking for file part XX1 of %1"
|
||||
msgstr "درخواست بخش XX1 فایل از %1"
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
#, fuzzy
|
||||
msgid "Back to homepage"
|
||||
msgstr "بازگشت به صفحه اول"
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:26
|
||||
#, fuzzy
|
||||
msgid "Bad CSRF token!"
|
||||
msgstr "توکن CSRF ناقص!"
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:27 lib/Lufi/Controller/Auth.pm:49
|
||||
#, fuzzy
|
||||
msgid "Bad CSRF token."
|
||||
msgstr "توکن CSRF ناقص."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:5
|
||||
#, fuzzy
|
||||
msgid "Click here to refresh the page and restart the download."
|
||||
msgstr "برای تازهسازی صفحه و دانلود مجدد اینجا کلیک کنید."
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:8
|
||||
msgid "Click on the following URL to upload files on Lufi:"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:126
|
||||
msgid "Click to open the file browser"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:42 themes/default/templates/invitations/my_invitations.html.ep:80
|
||||
msgid "Close"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:23
|
||||
msgid "Comma-separated email addresses"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:140
|
||||
msgid "Compressing zip file…"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:15
|
||||
msgid "Copy all links to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:18
|
||||
msgid "Copy to clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:501
|
||||
msgid "Could not delete the file. You are not authenticated."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:483
|
||||
msgid "Could not find the file. Are you sure of the URL and the token?"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:394
|
||||
msgid "Could not find the file. Are you sure of the URL?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:29
|
||||
msgid "Counter"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:100
|
||||
msgid "Create a zip archive with the files before uploading?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:26
|
||||
msgid "Created at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:14
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:30 themes/default/templates/index.html.ep:90
|
||||
msgid "Delete at first download?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:19
|
||||
msgid "Delete selected files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:33 themes/default/templates/partial/index.js.ep:19
|
||||
msgid "Deletion link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:9
|
||||
msgid "Don't worry: if a user begins to download the file before the expiration and the download ends after the expiration, he will be able to get the file."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:21 themes/default/templates/render.html.ep:28
|
||||
msgid "Download"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:4
|
||||
msgid "Download aborted."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:28 themes/default/templates/partial/index.js.ep:20
|
||||
msgid "Download link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Drag and drop files in the appropriate area or use the traditional way to send files and the files will be chunked, encrypted and sent to the server. You will get two links per file: a download link, that you give to the people you want to share the file with and a deletion link, allowing you to delete the file whenever you want."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:122
|
||||
msgid "Drop files here"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:40
|
||||
msgid "Email address of your guest"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:39
|
||||
msgid "Email body"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:31
|
||||
msgid "Email subject"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:25 themes/default/templates/mail.html.ep:27
|
||||
msgid "Emails"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:22
|
||||
msgid "Encrypting part XX1 of XX2"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:283
|
||||
msgid "Error: the file existed but was deleted."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:363
|
||||
msgid "Error: the file has not been sent entirely."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:373
|
||||
msgid "Error: unable to find the file. Are you sure of your URL?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:23
|
||||
msgid "Expiration:"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:27
|
||||
msgid "Expire at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:32
|
||||
msgid "Expires at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:12
|
||||
msgid "Export localStorage data"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:465
|
||||
msgid "File deleted"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:9
|
||||
msgid "File downloaded"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:27
|
||||
msgid "File name"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:24
|
||||
msgid "File uploaded"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:61
|
||||
msgid "Files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:80
|
||||
msgid "Files deleted at first download"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:28
|
||||
msgid "Files sent at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:8
|
||||
msgid "Files sent in invitation XX1 by XX2"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:8
|
||||
msgid "Get the file"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "Get the source code on <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi\" class=\"classic\">the official repository</a> or on its <a href=\"https://github.com/ldidry/lufi\" class=\"classic\">Github mirror</a>"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:24
|
||||
msgid "Guest mail"
|
||||
msgstr ""
|
||||
|
||||
#. (ucfirst(stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:6
|
||||
msgid "Hello %1,"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:4
|
||||
msgid "Hello,"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:35
|
||||
msgid "Hello,\\n\\nHere's some files I want to share with you:\\n"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:35
|
||||
msgid "Here's some files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:7
|
||||
msgid "Hide hidden invitations"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:26
|
||||
msgid "Hit Enter, then Ctrl+C to copy all the download links"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:25
|
||||
msgid "Hit Enter, then Ctrl+C to copy the download link"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "How does it work?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:46
|
||||
msgid "How many days would you like the invitation to be valid?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "How to install the software on my server?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "How to report an illegal file?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:8
|
||||
msgid "If you choose a delay, the file will be deleted after that delay."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:15
|
||||
msgid "If you send the mail from this server, the links will be sent to the server, which may lower your privacy protection."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:14
|
||||
msgid "Import localStorage data"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:53
|
||||
msgid "Important: more information on delays"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:5
|
||||
msgid "Information about delays"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:18 themes/default/templates/invitations/my_invitations.html.ep:12
|
||||
msgid "Invert selection"
|
||||
msgstr ""
|
||||
|
||||
#. ($i->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:184
|
||||
msgid "Invitation resent to %1.<br> URL: %2"
|
||||
msgstr ""
|
||||
|
||||
#. ($invitation->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:88
|
||||
msgid "Invitation sent to %1.<br> URL: %2"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:27 themes/default/templates/layouts/default.html.ep:36 themes/default/templates/layouts/default.html.ep:69
|
||||
msgid "Invite a guest"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:6
|
||||
msgid "It seems that the key in your URL is incorrect. Please, verify your URL."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:12
|
||||
msgid "Javascript is disabled. You won't be able to use Lufi."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:44 themes/default/templates/layouts/default.html.ep:46 themes/default/templates/layouts/default.html.ep:77 themes/default/templates/layouts/default.html.ep:79
|
||||
msgid "Language"
|
||||
msgstr ""
|
||||
|
||||
#. (sprintf('<a href="https://framagit.org/fiat-tux/hat-softwares/lufi/-/commit/%s" class="classic">%s</a>', stash('version')
|
||||
#: themes/default/templates/about.html.ep:22
|
||||
msgid "Latest commit of this instance: %1"
|
||||
msgstr ""
|
||||
|
||||
#. (sprintf('<a href="https://framagit.org/fiat-tux/hat-softwares/lufi/-/releases/%s" class="classic">%s</a>', stash('version')
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Latest tag of this instance: %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/login.html.ep:15
|
||||
msgid "Login"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58 themes/default/templates/layouts/default.html.ep:91
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lufi is a free (as in free speech) file hosting software."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:12
|
||||
msgid "Lufi recently changed its way to store files information.\\n\\nNo files have been found in the new localStorage location but we found files in the old one.\\nDo you want to import those informations?\\n\\nPlease note that this is the only time that we will ask you this."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:34
|
||||
msgid "Mail"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:3 themes/default/templates/layouts/default.html.ep:34 themes/default/templates/layouts/default.html.ep:67
|
||||
msgid "My files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:5 themes/default/templates/layouts/default.html.ep:37 themes/default/templates/layouts/default.html.ep:70
|
||||
msgid "My invitations"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:17
|
||||
msgid "NB: this list includes the list of files that have already been sent to you."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:115
|
||||
msgid "Name of the zip file"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:109
|
||||
msgid "No enough space available on the server for this file (size: %1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:10 themes/default/templates/partial/index.js.ep:29
|
||||
msgid "No expiration delay"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:8
|
||||
msgid "Only the files sent with this browser will be listed here. This list is stored in localStorage: if you delete your localStorage data, you'll lose this list."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:106 themes/default/templates/login.html.ep:21 themes/default/templates/render.html.ep:26
|
||||
msgid "Password"
|
||||
msgstr ""
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:13
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/render.html.ep:33
|
||||
msgid "Please wait while we are getting your file. We first need to download and decrypt all parts before you can get it."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:38
|
||||
msgid "Please, check your credentials or your right to access this service: unable to authenticate."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
msgid "Privacy"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:13
|
||||
msgid "Purge expired files from localStorage"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:20
|
||||
msgid "Regards,"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:15
|
||||
msgid "Regards."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:31 themes/default/templates/layouts/default.html.ep:64
|
||||
msgid "Report file"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:15
|
||||
msgid "Resend invitation mail"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:9
|
||||
msgid "Rows in purple mean that the invitations have expired."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:9
|
||||
msgid "Rows in red mean that the files have expired and are no longer available."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:27
|
||||
msgid "Send all links by email"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:50
|
||||
msgid "Send the invitation"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:47
|
||||
msgid "Send with this server"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/mail.html.ep:49
|
||||
msgid "Send with your own mail software"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:30
|
||||
msgid "Sending part XX1 of XX2. Please, be patient, the progress bar can take a while to move."
|
||||
msgstr ""
|
||||
|
||||
#. (url_for('/')
|
||||
#: themes/default/templates/partial/mail.js.ep:49
|
||||
msgid "Share your files in total privacy on %1"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:13 themes/default/templates/partial/invitations.js.ep:9
|
||||
msgid "Show hidden invitations"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:12
|
||||
msgid "Show zip content"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:40 themes/default/templates/layouts/default.html.ep:73 themes/default/templates/login.html.ep:28 themes/default/templates/logout.html.ep:17
|
||||
msgid "Signin"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Invitation.pm:302 themes/default/templates/invitations/exception.html.ep:16
|
||||
msgid "Sorry, the invitation doesn’t exist. Are you sure you are on the right URL?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:46
|
||||
msgid "Sorry, the uploading is currently disabled. Please try again later."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:82
|
||||
msgid "Sorry, uploading is disabled."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/exception.html.ep:7
|
||||
msgid "Sorry, your invitation has expired or has been deleted."
|
||||
msgstr ""
|
||||
|
||||
#. ($invit->ldap_user_mail)
|
||||
#: lib/Lufi/Controller/Files.pm:123
|
||||
msgid "Sorry, your invitation has expired or has been deleted. Please contact %1 to have another invitation."
|
||||
msgstr ""
|
||||
|
||||
#. ($invitation->ldap_user_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:295
|
||||
msgid "The URLs of your files have been sent by email to %1."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
msgid "The administrator can only see the file's name, its size and its mimetype (what kind of file it is: video, text, etc.)."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:67
|
||||
msgid "The body of the mail must contain at least one URL pointing to a file hosted on this instance."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:11
|
||||
msgid "The data has been successfully imported."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:87
|
||||
msgid "The email body can't be empty."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:86
|
||||
msgid "The email subject can't be empty."
|
||||
msgstr ""
|
||||
|
||||
#. ($expire_at, $max_expire_at)
|
||||
#: lib/Lufi/Controller/Invitation.pm:52
|
||||
msgid "The expiration delay (%1) is not between 1 and %2 days."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:462
|
||||
msgid "The file has already been deleted"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "The files uploaded on a Lufi instance are encrypted before the upload to the server: the administrator of the server can not see the file's content."
|
||||
msgstr ""
|
||||
|
||||
#. (join(', ', @bad)
|
||||
#: lib/Lufi/Controller/Mail.pm:82
|
||||
msgid "The following email addresses are not valid: %1"
|
||||
msgstr ""
|
||||
|
||||
#. ($guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:49
|
||||
msgid "The guest email address (%1) is unvalid."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:136
|
||||
msgid "The invitation %1 can’t be deleted: it wasn’t created by you (%2)."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token, $i->guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:163
|
||||
msgid "The invitation %1 can’t be resent: %2 has already sent files.<br>Please create a new invitation."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:187
|
||||
msgid "The invitation %1 can’t be resent: it wasn’t created by you (%2)."
|
||||
msgstr ""
|
||||
|
||||
#. ($i->token)
|
||||
#: lib/Lufi/Controller/Invitation.pm:134
|
||||
msgid "The invitation %1 has been deleted."
|
||||
msgstr ""
|
||||
|
||||
#. (stash('user_mail')
|
||||
#: themes/default/templates/invitations/invite.html.ep:34
|
||||
msgid "The invitation mail will be send from your email address (%1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:16
|
||||
msgid "The link(s) has been copied to your clipboard"
|
||||
msgstr ""
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/index.html.ep:30
|
||||
msgid "The link(s) of your file(s) will automatically be sent by mail to %1 (%2)"
|
||||
msgstr ""
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:11
|
||||
msgid "The links of your file(s) will automatically be sent by mail to %1."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:111
|
||||
msgid "The mail has been sent."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:15
|
||||
msgid "The original (and only for now) author is <a href=\"https://fiat-tux.fr\" class=\"classic\">Luc Didry</a>."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:230
|
||||
msgid "The server was unable to find the file record to add your file part to. Please, contact the administrator."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:289
|
||||
msgid "This file has been deactivated by the admins. Contact them to know why."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:46 themes/default/templates/partial/invitations.js.ep:6
|
||||
msgid "This invitation is normally hidden"
|
||||
msgstr ""
|
||||
|
||||
#. (stash('expires')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:13
|
||||
msgid "This invitation is valid until %1."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/delays.html.ep:13
|
||||
msgid "This server sets limitations according to the file size. The expiration delay of your file will be the minimum between what you choose and the following limitations:"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:16
|
||||
msgid "Toggle visibility"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:25
|
||||
msgid "URL"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:17
|
||||
msgid "Unable to copy the link(s) to your clipboard"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:13
|
||||
msgid "Unable to download the file: too much unsuccessful attempts to open a websocket. Please, contact the administrator."
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:433
|
||||
msgid "Unable to get counter for %1. The file does not exists. It will be removed from your localStorage."
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:423
|
||||
msgid "Unable to get counter for %1. The token is invalid."
|
||||
msgstr ""
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:443
|
||||
msgid "Unable to get counter for %1. You are not authenticated."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:33 themes/default/templates/layouts/default.html.ep:66
|
||||
msgid "Upload files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:145
|
||||
msgid "Upload generated zip file"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/files.html.ep:31
|
||||
msgid "Uploaded at"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:153
|
||||
msgid "Uploaded files"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "Version"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:31
|
||||
msgid "Websocket communication error"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lufi?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "Who wrote this software?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:13
|
||||
msgid "XXX file has been added to upload queue."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:30
|
||||
msgid "You can invite someone to send you files through this Lufi instance even if they don’t have an account on it."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "You can see the list of your files by clicking on the \"My files\" link at the top right of this page."
|
||||
msgstr ""
|
||||
|
||||
#. ($orig_uri)
|
||||
#: lib/Lufi/Controller/Mail.pm:43 lib/Lufi/Controller/Mail.pm:59
|
||||
msgid "You can't add URLs that are not related to this instance (%1)."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You don't need to register yourself to upload files but be aware that, for legal reasons, your IP address will be stored when you send a file. Don't panic, this is normally the case for all sites on which you send files."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:11
|
||||
msgid "You don't seem to have a key in your URL. You won't be able to decrypt the file. Download canceled."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:7
|
||||
msgid "You have attempted to leave this page. The download will be canceled. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:14
|
||||
msgid "You have attempted to leave this page. The upload will be canceled. Are you sure?"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/logout.html.ep:14
|
||||
msgid "You have been successfully logged out."
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:85
|
||||
msgid "You must give email addresses."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:38
|
||||
msgid "Your browser does not have enough entropy to generate a strong encryption key. Please wait (it's better if you do things on your computer while waiting)."
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:95
|
||||
msgid "Your file is too big: %1 (maximum size allowed: %2)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:345
|
||||
msgid "Your password is not valid. Please refresh the page to retry."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:14
|
||||
msgid "Zip content:"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:24
|
||||
msgid "between %1 and %2, the file will be kept %3 day(s)."
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:26
|
||||
msgid "between %1 and %2, the file will be kept forever."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:42
|
||||
msgid "deadline: "
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:5
|
||||
msgid "expires on XXX"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:30
|
||||
msgid "for %1 and more, the file will be kept %2 day(s)"
|
||||
msgstr ""
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:32
|
||||
msgid "for %1 and more, the file will be kept forever."
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:3
|
||||
msgid "no time limit"
|
||||
msgstr ""
|
||||
|
||||
#: themes/default/templates/index.html.ep:124
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
|
||||
#. ($e->{name}, format_bytes($e->{size})
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:12
|
||||
msgid "— %1 (%2), that will expire on %3"
|
||||
msgstr ""
|
|
@ -8,8 +8,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2023-03-09 05:34+0000\n"
|
||||
"Last-Translator: lost_geographer <david@chionne.eu>\n"
|
||||
"PO-Revision-Date: 2020-12-25 19:52+0000\n"
|
||||
"Last-Translator: x <hardwired1.0@protonmail.com>\n"
|
||||
"Language-Team: Italian <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/it/>\n"
|
||||
"Language: it\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Generator: Weblate 4.15.2\n"
|
||||
"X-Generator: Weblate 4.1\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
|
@ -998,18 +998,3 @@ msgid "Unable to download the file: too much unsuccessful attempts to open a web
|
|||
msgstr ""
|
||||
"Impossibile scaricare il file: troppi tentativi falliti di aprire un "
|
||||
"websocket. Per favore, contatta l'amministratore."
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:136
|
||||
msgid "The invitation %1 can’t be deleted: it wasn’t created by you (%2)."
|
||||
msgstr "L'invito %1 non può essere cancellato: non lo hai creato tu (%2)."
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:187
|
||||
msgid "The invitation %1 can’t be resent: it wasn’t created by you (%2)."
|
||||
msgstr "L'invito %1 non può essere rispedito: non lo hai creato tu (%2)."
|
||||
|
||||
#. ($orig_uri)
|
||||
#: lib/Lufi/Controller/Mail.pm:43 lib/Lufi/Controller/Mail.pm:59
|
||||
msgid "You can't add URLs that are not related to this instance (%1)."
|
||||
msgstr "Non puoi aggiungere URL non correlati a questa istanza (%1)."
|
||||
|
|
|
@ -1,939 +0,0 @@
|
|||
# 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.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2023-07-24 13:27+0000\n"
|
||||
"Last-Translator: Jacek Pazur <jacek.pazur@gmail.com>\n"
|
||||
"Language-Team: Polish <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/pl/>\n"
|
||||
"Language: pl\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.18.2\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
#: themes/default/templates/index.html.ep:56 themes/default/templates/index.html.ep:65 themes/default/templates/index.html.ep:66
|
||||
msgid "%1 days"
|
||||
msgstr "%1 dni"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:2
|
||||
msgid "%1 invites you to send him/her files"
|
||||
msgstr "%1 zaprasza do przesłania jej/jemu plików"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:6
|
||||
msgid "%1 invites you to send him/her files through Lufi."
|
||||
msgstr "%1 zaprasza do przesłania jej/jemu plików poprzez Lufi."
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:4
|
||||
msgid "%1 sent you files"
|
||||
msgstr "%1 wysłał ci pliki"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
|
||||
msgid "%1 used your invitation to send you files:"
|
||||
msgstr "%1 wykorzystał twoje zaproszenie do wysłania plików:"
|
||||
|
||||
#: lib/Lufi/Controller/Invitation.pm:172 lib/Lufi/Controller/Invitation.pm:85 themes/default/templates/invitations/my_invitations.html.ep:51 themes/default/templates/invitations/my_invitations.html.ep:52 themes/default/templates/invitations/my_invitations.html.ep:53 themes/default/templates/invitations/notification_files_sent.mail.ep:12
|
||||
msgid "%A %d %B %Y at %T"
|
||||
msgstr "%A %d %B %Y o %T"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:28
|
||||
msgid "(max size: XXX)"
|
||||
msgstr "(maksymalny rozmiar: XXX)"
|
||||
|
||||
#: themes/default/templates/index.html.ep:5
|
||||
msgid "1 year"
|
||||
msgstr "1 rok"
|
||||
|
||||
#: themes/default/templates/index.html.ep:4 themes/default/templates/index.html.ep:65
|
||||
msgid "24 hours"
|
||||
msgstr "24 godziny"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:40
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
|
||||
#: themes/default/templates/render.html.ep:42
|
||||
msgid "Abort"
|
||||
msgstr "Anuluj"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53 themes/default/templates/layouts/default.html.ep:86
|
||||
msgid "About"
|
||||
msgstr "O"
|
||||
|
||||
#: themes/default/templates/index.html.ep:107
|
||||
msgid "Add a password to file(s)"
|
||||
msgstr "Dodaj hasło do pliku(-ów)"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:16
|
||||
msgid "Adding URLs not related to this Lufi instance to the mail body or subject is prohibited."
|
||||
msgstr ""
|
||||
"Dodawanie adresów URL nie powiązanych z Lufi do treści wiadomości lub tematu "
|
||||
"jest zabronione."
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:3
|
||||
msgid "Are you sure you want to delete the selected invitations?"
|
||||
msgstr "Czy na pewno chcesz usunąć wybrane zaproszenia?"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:4
|
||||
msgid "Are you sure you want to resend the invitation mail for the selected invitations?"
|
||||
msgstr ""
|
||||
"Czy na pewno chcesz ponownie wysłać e-mail z zaproszeniem dla wybranych "
|
||||
"zaproszeń?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
msgid "As Lufi is a free software licensed under of the terms of the <a href=\"https://gnu.org/licenses/agpl.html\" class=\"classic\">AGPLv3</a>, you can install it on you own server. Have a look on the <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a> for the procedure."
|
||||
msgstr ""
|
||||
"Lufi jest wolnym oprogramowaniem licencjonowanym zgodnie z warunkami <a href="
|
||||
"\"https://gnu.org/licenses/agpl.html\" class=\"classic\">AGPLv3</a>, możesz "
|
||||
"zainstalować go na własnym serwerze. Zajrzyj na <a href=\"https://framagit."
|
||||
"org/fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a> po "
|
||||
"instrukcję."
|
||||
|
||||
#. (stash('nbslices')
|
||||
#: themes/default/templates/partial/render.js.ep:10
|
||||
msgid "Asking for file part XX1 of %1"
|
||||
msgstr "Pytanie o część pliku XX1 z %1"
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "Back to homepage"
|
||||
msgstr "Powrót do strony głównej"
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:26
|
||||
msgid "Bad CSRF token!"
|
||||
msgstr "Zły token CSRF!"
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:27 lib/Lufi/Controller/Auth.pm:49
|
||||
msgid "Bad CSRF token."
|
||||
msgstr "Zły token CSRF."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:5
|
||||
msgid "Click here to refresh the page and restart the download."
|
||||
msgstr "Kliknij tutaj, aby odświeżyć stronę i wznowić pobieranie."
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:8
|
||||
msgid "Click on the following URL to upload files on Lufi:"
|
||||
msgstr "Kliknij następujący adres URL, aby przesłać pliki na Lufi:"
|
||||
|
||||
#: themes/default/templates/index.html.ep:126
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Kliknij, aby otworzyć przeglądarkę plików"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:42 themes/default/templates/invitations/my_invitations.html.ep:80
|
||||
msgid "Close"
|
||||
msgstr "Zamknij"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:23
|
||||
msgid "Comma-separated email addresses"
|
||||
msgstr "Adresy e-mail oddzielone przecinkami"
|
||||
|
||||
#: themes/default/templates/index.html.ep:140
|
||||
msgid "Compressing zip file…"
|
||||
msgstr "Kompresowanie pliku zip…"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:15
|
||||
msgid "Copy all links to clipboard"
|
||||
msgstr "Skopiuj wszystkie linki do schowka"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:18
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopiuj do schowka"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:501
|
||||
msgid "Could not delete the file. You are not authenticated."
|
||||
msgstr "Nie można usunąć pliku. Nie jesteś uwierzytelniony."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:483
|
||||
msgid "Could not find the file. Are you sure of the URL and the token?"
|
||||
msgstr "Nie można znaleźć pliku. Czy jesteś pewien adresu URL i tokena?"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:394
|
||||
msgid "Could not find the file. Are you sure of the URL?"
|
||||
msgstr "Nie można znaleźć pliku. Czy jesteś pewien adresu URL?"
|
||||
|
||||
#: themes/default/templates/files.html.ep:29
|
||||
msgid "Counter"
|
||||
msgstr "Licznik"
|
||||
|
||||
#: themes/default/templates/index.html.ep:100
|
||||
msgid "Create a zip archive with the files before uploading?"
|
||||
msgstr "Utworzyć archiwum zip z plikami przed przesłaniem?"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:26
|
||||
msgid "Created at"
|
||||
msgstr "Utworzono w"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:14
|
||||
msgid "Delete"
|
||||
msgstr "Usunąć"
|
||||
|
||||
#: themes/default/templates/files.html.ep:30 themes/default/templates/index.html.ep:90
|
||||
msgid "Delete at first download?"
|
||||
msgstr "Usunąć po pierwszym pobraniu?"
|
||||
|
||||
#: themes/default/templates/files.html.ep:19
|
||||
msgid "Delete selected files"
|
||||
msgstr "Usuń zaznaczone pliki"
|
||||
|
||||
#: themes/default/templates/files.html.ep:33 themes/default/templates/partial/index.js.ep:19
|
||||
msgid "Deletion link"
|
||||
msgstr "Link do usuwania"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:9
|
||||
msgid "Don't worry: if a user begins to download the file before the expiration and the download ends after the expiration, he will be able to get the file."
|
||||
msgstr ""
|
||||
"Bez obaw: jeśli użytkownik rozpocznie pobieranie pliku przed wygaśnięciem, a "
|
||||
"pobieranie zakończy się po wygaśnięciu, będzie mógł pobrać plik."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:21 themes/default/templates/render.html.ep:28
|
||||
msgid "Download"
|
||||
msgstr "Pobierz"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:4
|
||||
msgid "Download aborted."
|
||||
msgstr "Pobieranie przerwane."
|
||||
|
||||
#: themes/default/templates/files.html.ep:28 themes/default/templates/partial/index.js.ep:20
|
||||
msgid "Download link"
|
||||
msgstr "Link do pobrania"
|
||||
|
||||
#: themes/default/templates/about.html.ep:10
|
||||
msgid "Drag and drop files in the appropriate area or use the traditional way to send files and the files will be chunked, encrypted and sent to the server. You will get two links per file: a download link, that you give to the people you want to share the file with and a deletion link, allowing you to delete the file whenever you want."
|
||||
msgstr ""
|
||||
"Przeciągnij i upuść pliki w odpowiednim obszarze lub użyj tradycyjnego "
|
||||
"sposobu wysyłania plików, a pliki zostaną podzielone na fragmenty, "
|
||||
"zaszyfrowane i wysłane na serwer. Otrzymasz dwa linki do każdego pliku: link "
|
||||
"do pobrania, który udostępnisz osobom, którym chcesz udostępnić plik, oraz "
|
||||
"link do usunięcia, umożliwiający usunięcie pliku w dowolnym momencie."
|
||||
|
||||
#: themes/default/templates/index.html.ep:122
|
||||
msgid "Drop files here"
|
||||
msgstr "Upuść pliki tutaj"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:40
|
||||
msgid "Email address of your guest"
|
||||
msgstr "Adres e-mail gościa"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:39
|
||||
msgid "Email body"
|
||||
msgstr "Treść wiadomości email"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:31
|
||||
msgid "Email subject"
|
||||
msgstr "Temat wiadomości e-mail"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:25 themes/default/templates/mail.html.ep:27
|
||||
msgid "Emails"
|
||||
msgstr "E-maile"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:22
|
||||
msgid "Encrypting part XX1 of XX2"
|
||||
msgstr "Szyfrowanie części XX1 z XX2"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:283
|
||||
msgid "Error: the file existed but was deleted."
|
||||
msgstr "Błąd: plik istniał, ale został usunięty."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:363
|
||||
msgid "Error: the file has not been sent entirely."
|
||||
msgstr "Błąd: plik nie został wysłany w całości."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:373
|
||||
msgid "Error: unable to find the file. Are you sure of your URL?"
|
||||
msgstr "Błąd: nie można znaleźć pliku. Czy jesteś pewien adresu URL?"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:23
|
||||
msgid "Expiration:"
|
||||
msgstr "Wygaśnięcie:"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:27
|
||||
msgid "Expire at"
|
||||
msgstr "Wygasa w"
|
||||
|
||||
#: themes/default/templates/files.html.ep:32
|
||||
msgid "Expires at"
|
||||
msgstr "Wygasa z dniem"
|
||||
|
||||
#: themes/default/templates/files.html.ep:12
|
||||
msgid "Export localStorage data"
|
||||
msgstr "Eksportuj dane z localStorage"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:465
|
||||
msgid "File deleted"
|
||||
msgstr "Plik usunięty"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:9
|
||||
msgid "File downloaded"
|
||||
msgstr "Pobrany plik"
|
||||
|
||||
#: themes/default/templates/files.html.ep:27
|
||||
msgid "File name"
|
||||
msgstr "Nazwa pliku"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:24
|
||||
msgid "File uploaded"
|
||||
msgstr "Przesłany plik"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:61
|
||||
msgid "Files"
|
||||
msgstr "Pliki"
|
||||
|
||||
#: themes/default/templates/index.html.ep:80
|
||||
msgid "Files deleted at first download"
|
||||
msgstr "Pliki usunięte po pierwszym pobraniu"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:28
|
||||
msgid "Files sent at"
|
||||
msgstr "Pliki wysłane o"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:8
|
||||
msgid "Files sent in invitation XX1 by XX2"
|
||||
msgstr "Pliki przesłane w zaproszeniu XX1 przez XX2"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:8
|
||||
msgid "Get the file"
|
||||
msgstr "Pobierz plik"
|
||||
|
||||
#: themes/default/templates/about.html.ep:18
|
||||
msgid "Get the source code on <a href=\"https://framagit.org/fiat-tux/hat-softwares/lufi\" class=\"classic\">the official repository</a> or on its <a href=\"https://github.com/ldidry/lufi\" class=\"classic\">Github mirror</a>"
|
||||
msgstr ""
|
||||
"Pobierz kod źródłowy z <a href=\"https://framagit.org/fiat-tux/hat-softwares/"
|
||||
"lufi\" class=\"classic\">oficjalnego repozytorium</a> lub z <a href=\"https"
|
||||
"://github.com/ldidry/lufi\" class=\"classic\">Github mirror</a>"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:24
|
||||
msgid "Guest mail"
|
||||
msgstr "Email gościa"
|
||||
|
||||
#. (ucfirst(stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:6
|
||||
msgid "Hello %1,"
|
||||
msgstr "Witaj %1,"
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:4
|
||||
msgid "Hello,"
|
||||
msgstr "Witaj,"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:35
|
||||
msgid "Hello,\\n\\nHere's some files I want to share with you:\\n"
|
||||
msgstr ""
|
||||
"Witaj,\\n"
|
||||
"\\n"
|
||||
"Oto kilka plików, którymi chcę się z Tobą podzielić:\\n"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:35
|
||||
msgid "Here's some files"
|
||||
msgstr "Oto kilka plików"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:7
|
||||
msgid "Hide hidden invitations"
|
||||
msgstr "Ukryj ukryte zaproszenia"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:26
|
||||
msgid "Hit Enter, then Ctrl+C to copy all the download links"
|
||||
msgstr ""
|
||||
"Naciśnij Enter, a następnie Ctrl + C, aby skopiować wszystkie linki "
|
||||
"pobierania"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:25
|
||||
msgid "Hit Enter, then Ctrl+C to copy the download link"
|
||||
msgstr "Naciśnij Enter, a następnie Ctrl + C, aby skopiować link pobierania"
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "How does it work?"
|
||||
msgstr "Jak to działa?"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:46
|
||||
msgid "How many days would you like the invitation to be valid?"
|
||||
msgstr "Ile dni chcesz, aby zaproszenie było ważne?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "How to install the software on my server?"
|
||||
msgstr "Jak zainstalować oprogramowanie na moim serwerze?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "How to report an illegal file?"
|
||||
msgstr "Jak zgłosić nielegalny plik?"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:8
|
||||
msgid "If you choose a delay, the file will be deleted after that delay."
|
||||
msgstr "Jeśli wybierzesz opóźnienie, plik zostanie usunięty po tym opóźnieniu."
|
||||
|
||||
#: themes/default/templates/mail.html.ep:15
|
||||
msgid "If you send the mail from this server, the links will be sent to the server, which may lower your privacy protection."
|
||||
msgstr ""
|
||||
"Jeśli wyślesz e-mail z tego serwera, linki zostaną wysłane na serwer, co "
|
||||
"może obniżyć ochronę Twojej prywatności."
|
||||
|
||||
#: themes/default/templates/files.html.ep:14
|
||||
msgid "Import localStorage data"
|
||||
msgstr "Importuj dane z localStorage"
|
||||
|
||||
#: themes/default/templates/index.html.ep:53
|
||||
msgid "Important: more information on delays"
|
||||
msgstr "Ważne: więcej informacji o opóźnieniach"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:5
|
||||
msgid "Information about delays"
|
||||
msgstr "Informacje o opóźnieniach"
|
||||
|
||||
#: themes/default/templates/files.html.ep:18 themes/default/templates/invitations/my_invitations.html.ep:12
|
||||
msgid "Invert selection"
|
||||
msgstr "Odwróć wybór"
|
||||
|
||||
#. ($i->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:184
|
||||
msgid "Invitation resent to %1.<br> URL: %2"
|
||||
msgstr "Zaproszenie ponownie wysłane do %1.<br> URL: %2"
|
||||
|
||||
#. ($invitation->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:88
|
||||
msgid "Invitation sent to %1.<br> URL: %2"
|
||||
msgstr "Zaproszenie wysłane do %1.<br> URL: %2"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:27 themes/default/templates/layouts/default.html.ep:36 themes/default/templates/layouts/default.html.ep:69
|
||||
msgid "Invite a guest"
|
||||
msgstr "Zaproś gościa"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:6
|
||||
msgid "It seems that the key in your URL is incorrect. Please, verify your URL."
|
||||
msgstr ""
|
||||
"Wygląda na to, że klucz w adresie URL jest nieprawidłowy. Zweryfikuj swój "
|
||||
"adres URL."
|
||||
|
||||
#: themes/default/templates/index.html.ep:12
|
||||
msgid "Javascript is disabled. You won't be able to use Lufi."
|
||||
msgstr "JavaScript jest wyłączony. Nie będziesz mógł używać Lufi."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:44 themes/default/templates/layouts/default.html.ep:46 themes/default/templates/layouts/default.html.ep:77 themes/default/templates/layouts/default.html.ep:79
|
||||
msgid "Language"
|
||||
msgstr "Język"
|
||||
|
||||
#. (sprintf('<a href="https://framagit.org/fiat-tux/hat-softwares/lufi/-/commit/%s" class="classic">%s</a>', stash('version')
|
||||
#: themes/default/templates/about.html.ep:22
|
||||
msgid "Latest commit of this instance: %1"
|
||||
msgstr "Ostatnie zatwierdzenie tej instancji: %1"
|
||||
|
||||
#. (sprintf('<a href="https://framagit.org/fiat-tux/hat-softwares/lufi/-/releases/%s" class="classic">%s</a>', stash('version')
|
||||
#: themes/default/templates/about.html.ep:21
|
||||
msgid "Latest tag of this instance: %1"
|
||||
msgstr "Najnowszy tag tej instancji: %1"
|
||||
|
||||
#: themes/default/templates/login.html.ep:15
|
||||
msgid "Login"
|
||||
msgstr "Logowanie"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58 themes/default/templates/layouts/default.html.ep:91
|
||||
msgid "Logout"
|
||||
msgstr "Wyloguj"
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lufi is a free (as in free speech) file hosting software."
|
||||
msgstr ""
|
||||
"Lufi to darmowe (podobnie jak w przypadku wolności słowa) oprogramowanie do "
|
||||
"hostingu plików."
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:12
|
||||
msgid "Lufi recently changed its way to store files information.\\n\\nNo files have been found in the new localStorage location but we found files in the old one.\\nDo you want to import those informations?\\n\\nPlease note that this is the only time that we will ask you this."
|
||||
msgstr ""
|
||||
"Lufi niedawno zmieniła sposób przechowywania informacji o plikach.\\n"
|
||||
"\\n"
|
||||
"W nowej lokalizacji localStorage nie znaleziono żadnych plików, ale "
|
||||
"znaleźliśmy pliki w starej.\\n"
|
||||
"Czy chcesz zaimportować te informacje?\\n"
|
||||
"\\n"
|
||||
"Pamiętaj, że jest to jedyny raz, kiedy o to poprosimy."
|
||||
|
||||
#: themes/default/templates/files.html.ep:34
|
||||
msgid "Mail"
|
||||
msgstr "E-mail"
|
||||
|
||||
#: themes/default/templates/files.html.ep:3 themes/default/templates/layouts/default.html.ep:34 themes/default/templates/layouts/default.html.ep:67
|
||||
msgid "My files"
|
||||
msgstr "Moje pliki"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:5 themes/default/templates/layouts/default.html.ep:37 themes/default/templates/layouts/default.html.ep:70
|
||||
msgid "My invitations"
|
||||
msgstr "Moje zaproszenia"
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:17
|
||||
msgid "NB: this list includes the list of files that have already been sent to you."
|
||||
msgstr ""
|
||||
"Uwaga: ta lista zawiera listę plików, które zostały już do Ciebie wysłane."
|
||||
|
||||
#: themes/default/templates/index.html.ep:115
|
||||
msgid "Name of the zip file"
|
||||
msgstr "Nazwa pliku zip"
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:109
|
||||
msgid "No enough space available on the server for this file (size: %1)."
|
||||
msgstr ""
|
||||
"Brak wystarczającej ilości miejsca na serwerze dla tego pliku (wielkość "
|
||||
"pliku: %1)."
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:10 themes/default/templates/partial/index.js.ep:29
|
||||
msgid "No expiration delay"
|
||||
msgstr "Brak opóźnienia wygaśnięcia"
|
||||
|
||||
#: themes/default/templates/files.html.ep:8
|
||||
msgid "Only the files sent with this browser will be listed here. This list is stored in localStorage: if you delete your localStorage data, you'll lose this list."
|
||||
msgstr ""
|
||||
"Tutaj zostaną wyświetlone tylko pliki przesłane za pomocą tej przeglądarki. "
|
||||
"Ta lista jest przechowywana w localStorage: jeśli usuniesz swoje dane "
|
||||
"localStorage, utracisz tę listę."
|
||||
|
||||
#: themes/default/templates/index.html.ep:106 themes/default/templates/login.html.ep:21 themes/default/templates/render.html.ep:26
|
||||
msgid "Password"
|
||||
msgstr "Hasło"
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:13
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Skontaktuj się z administratorem: %1"
|
||||
|
||||
#: themes/default/templates/render.html.ep:33
|
||||
msgid "Please wait while we are getting your file. We first need to download and decrypt all parts before you can get it."
|
||||
msgstr ""
|
||||
"Proszę czekać, pobieramy Twój plik. Najpierw musimy pobrać i odszyfrować "
|
||||
"wszystkie części, zanim będzie można je pobrać."
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:38
|
||||
msgid "Please, check your credentials or your right to access this service: unable to authenticate."
|
||||
msgstr ""
|
||||
"Sprawdź swoje dane uwierzytelniające lub prawo dostępu do tej usługi: nie "
|
||||
"można uwierzytelnić."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
msgid "Privacy"
|
||||
msgstr "Prywatność"
|
||||
|
||||
#: themes/default/templates/files.html.ep:13
|
||||
msgid "Purge expired files from localStorage"
|
||||
msgstr "Wyczyść wygasłe pliki z localStorage"
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:20
|
||||
msgid "Regards,"
|
||||
msgstr "Pozdrowienia,"
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:15
|
||||
msgid "Regards."
|
||||
msgstr "Pozdrowienia."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:31 themes/default/templates/layouts/default.html.ep:64
|
||||
msgid "Report file"
|
||||
msgstr "Plik raportu"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:15
|
||||
msgid "Resend invitation mail"
|
||||
msgstr "Wyślij ponownie e-mail z zaproszeniem"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:9
|
||||
msgid "Rows in purple mean that the invitations have expired."
|
||||
msgstr "Wiersze w kolorze fioletowym oznaczają, że zaproszenia wygasły."
|
||||
|
||||
#: themes/default/templates/files.html.ep:9
|
||||
msgid "Rows in red mean that the files have expired and are no longer available."
|
||||
msgstr ""
|
||||
"Wiersze w kolorze czerwonym oznaczają, że pliki straciły ważność i nie są "
|
||||
"już dostępne."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:27
|
||||
msgid "Send all links by email"
|
||||
msgstr "Wyślij wszystkie linki e-mailem"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:50
|
||||
msgid "Send the invitation"
|
||||
msgstr "Wyślij zaproszenie"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:47
|
||||
msgid "Send with this server"
|
||||
msgstr "Wyślij za pomocą tego serwera"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:49
|
||||
msgid "Send with your own mail software"
|
||||
msgstr "Wysyłaj za pomocą własnego oprogramowania pocztowego"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:30
|
||||
msgid "Sending part XX1 of XX2. Please, be patient, the progress bar can take a while to move."
|
||||
msgstr ""
|
||||
"Wysyłanie części XX1 z XX2. Prosimy o cierpliwość, zmiana paska postępu może "
|
||||
"trochę potrwać."
|
||||
|
||||
#. (url_for('/')
|
||||
#: themes/default/templates/partial/mail.js.ep:49
|
||||
msgid "Share your files in total privacy on %1"
|
||||
msgstr "Udostępnij swoje pliki całkowicie prywatnie na %1"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:13 themes/default/templates/partial/invitations.js.ep:9
|
||||
msgid "Show hidden invitations"
|
||||
msgstr "Pokaż ukryte zaproszenia"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:12
|
||||
msgid "Show zip content"
|
||||
msgstr "Pokaż zawartość ZIP"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:40 themes/default/templates/layouts/default.html.ep:73 themes/default/templates/login.html.ep:28 themes/default/templates/logout.html.ep:17
|
||||
msgid "Signin"
|
||||
msgstr "Zaloguj"
|
||||
|
||||
#: lib/Lufi/Controller/Invitation.pm:302 themes/default/templates/invitations/exception.html.ep:16
|
||||
msgid "Sorry, the invitation doesn’t exist. Are you sure you are on the right URL?"
|
||||
msgstr ""
|
||||
"Przepraszamy, zaproszenie nie istnieje. Czy na pewno użyłeś właściwego "
|
||||
"adresu URL?"
|
||||
|
||||
#: themes/default/templates/index.html.ep:46
|
||||
msgid "Sorry, the uploading is currently disabled. Please try again later."
|
||||
msgstr ""
|
||||
"Przepraszamy, przesyłanie jest obecnie wyłączone. Spróbuj ponownie później."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:82
|
||||
msgid "Sorry, uploading is disabled."
|
||||
msgstr "Przepraszamy, przesyłanie jest wyłączone."
|
||||
|
||||
#: themes/default/templates/invitations/exception.html.ep:7
|
||||
msgid "Sorry, your invitation has expired or has been deleted."
|
||||
msgstr "Przepraszamy, Twoje zaproszenie wygasło lub zostało usunięte."
|
||||
|
||||
#. ($invit->ldap_user_mail)
|
||||
#: lib/Lufi/Controller/Files.pm:123
|
||||
msgid "Sorry, your invitation has expired or has been deleted. Please contact %1 to have another invitation."
|
||||
msgstr ""
|
||||
"Przepraszamy, Twoje zaproszenie wygasło lub zostało usunięte. Skontaktuj się "
|
||||
"z %1, aby otrzymać kolejne zaproszenie."
|
||||
|
||||
#. ($invitation->ldap_user_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:295
|
||||
msgid "The URLs of your files have been sent by email to %1."
|
||||
msgstr "Adresy URL Twoich plików zostały wysłane e-mailem na adres %1."
|
||||
|
||||
#: themes/default/templates/about.html.ep:7
|
||||
msgid "The administrator can only see the file's name, its size and its mimetype (what kind of file it is: video, text, etc.)."
|
||||
msgstr ""
|
||||
"Administrator widzi tylko nazwę pliku, jego rozmiar i typ MIME (jaki to plik:"
|
||||
" wideo, tekst itp.)."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:67
|
||||
msgid "The body of the mail must contain at least one URL pointing to a file hosted on this instance."
|
||||
msgstr ""
|
||||
"Treść wiadomości musi zawierać co najmniej jeden adres URL wskazujący plik "
|
||||
"hostowany w tej instancji."
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:11
|
||||
msgid "The data has been successfully imported."
|
||||
msgstr "Dane zostały pomyślnie zaimportowane."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:87
|
||||
msgid "The email body can't be empty."
|
||||
msgstr "Treść e-maila nie może być pusta."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:86
|
||||
msgid "The email subject can't be empty."
|
||||
msgstr "Temat e-maila nie może być pusty."
|
||||
|
||||
#. ($expire_at, $max_expire_at)
|
||||
#: lib/Lufi/Controller/Invitation.pm:52
|
||||
msgid "The expiration delay (%1) is not between 1 and %2 days."
|
||||
msgstr "Opóźnienie wygaśnięcia (%1) nie mieści się w przedziale od 1 do %2 dni."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:462
|
||||
msgid "The file has already been deleted"
|
||||
msgstr "Plik został już usunięty"
|
||||
|
||||
#: themes/default/templates/about.html.ep:6
|
||||
msgid "The files uploaded on a Lufi instance are encrypted before the upload to the server: the administrator of the server can not see the file's content."
|
||||
msgstr ""
|
||||
"Pliki przesyłane na Lufi są szyfrowane przed przesłaniem na serwer: "
|
||||
"administrator serwera nie może zobaczyć zawartości pliku."
|
||||
|
||||
#. (join(', ', @bad)
|
||||
#: lib/Lufi/Controller/Mail.pm:82
|
||||
msgid "The following email addresses are not valid: %1"
|
||||
msgstr "Następujące adresy e-mail są nieprawidłowe: %1"
|
||||
|
||||
#. ($guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:49
|
||||
msgid "The guest email address (%1) is unvalid."
|
||||
msgstr "Adres e-mail gościa (%1) jest nieprawidłowy."
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:136
|
||||
msgid "The invitation %1 can’t be deleted: it wasn’t created by you (%2)."
|
||||
msgstr ""
|
||||
"Zaproszenie %1 nie może zostać usunięte: nie zostało utworzone przez Ciebie "
|
||||
"(%2)."
|
||||
|
||||
#. ($i->token, $i->guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:163
|
||||
msgid "The invitation %1 can’t be resent: %2 has already sent files.<br>Please create a new invitation."
|
||||
msgstr ""
|
||||
"Zaproszenia %1 nie można wysłać ponownie: %2 wysłał już pliki.<br>Utwórz "
|
||||
"nowe zaproszenie."
|
||||
|
||||
#. ($i->token, $c->current_user->{username})
|
||||
#: lib/Lufi/Controller/Invitation.pm:187
|
||||
msgid "The invitation %1 can’t be resent: it wasn’t created by you (%2)."
|
||||
msgstr ""
|
||||
"Zaproszenia %1 nie można wysłać ponownie: nie zostało utworzone przez Ciebie "
|
||||
"(%2)."
|
||||
|
||||
#. ($i->token)
|
||||
#: lib/Lufi/Controller/Invitation.pm:134
|
||||
msgid "The invitation %1 has been deleted."
|
||||
msgstr "Zaproszenie %1 zostało usunięte."
|
||||
|
||||
#. (stash('user_mail')
|
||||
#: themes/default/templates/invitations/invite.html.ep:34
|
||||
msgid "The invitation mail will be send from your email address (%1)."
|
||||
msgstr "Wiadomość z zaproszeniem zostanie wysłana z Twojego adresu e-mail (%1)."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:16
|
||||
msgid "The link(s) has been copied to your clipboard"
|
||||
msgstr "Linki zostały skopiowane do schowka"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/index.html.ep:30
|
||||
msgid "The link(s) of your file(s) will automatically be sent by mail to %1 (%2)"
|
||||
msgstr ""
|
||||
"Linki do twoich plików zostaną automatycznie wysłane pocztą na adres %1 (%2)"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:11
|
||||
msgid "The links of your file(s) will automatically be sent by mail to %1."
|
||||
msgstr ""
|
||||
"Linki do Twoich plików zostaną automatycznie wysłane pocztą na adres %1."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:111
|
||||
msgid "The mail has been sent."
|
||||
msgstr "E-mail został wysłany."
|
||||
|
||||
#: themes/default/templates/about.html.ep:15
|
||||
msgid "The original (and only for now) author is <a href=\"https://fiat-tux.fr\" class=\"classic\">Luc Didry</a>."
|
||||
msgstr ""
|
||||
"Oryginalnym (i tylko na razie) autorem jest <a href=\"https://fiat-tux.fr\" "
|
||||
"class=\"classic\">Luc Didry</a>."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:230
|
||||
msgid "The server was unable to find the file record to add your file part to. Please, contact the administrator."
|
||||
msgstr ""
|
||||
"Serwer nie mógł znaleźć rekordu pliku, do którego można dodać część pliku. "
|
||||
"Prosimy o kontakt z administratorem."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:289
|
||||
msgid "This file has been deactivated by the admins. Contact them to know why."
|
||||
msgstr ""
|
||||
"Ten plik został dezaktywowany przez administratorów. Skontaktuj się z nimi, "
|
||||
"aby dowiedzieć się dlaczego."
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:46 themes/default/templates/partial/invitations.js.ep:6
|
||||
msgid "This invitation is normally hidden"
|
||||
msgstr "To zaproszenie jest zwykle ukryte"
|
||||
|
||||
#. (stash('expires')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:13
|
||||
msgid "This invitation is valid until %1."
|
||||
msgstr "To zaproszenie jest ważne do %1."
|
||||
|
||||
#: themes/default/templates/delays.html.ep:13
|
||||
msgid "This server sets limitations according to the file size. The expiration delay of your file will be the minimum between what you choose and the following limitations:"
|
||||
msgstr ""
|
||||
"Ten serwer ustawia ograniczenia w zależności od rozmiaru pliku. Opóźnienie "
|
||||
"wygaśnięcia Twojego pliku będzie stanowić minimum między tym, co wybierzesz, "
|
||||
"a następującymi ograniczeniami:"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:16
|
||||
msgid "Toggle visibility"
|
||||
msgstr "Przełączanie widoczności"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:25
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:17
|
||||
msgid "Unable to copy the link(s) to your clipboard"
|
||||
msgstr "Nie można skopiować linków do schowka"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:13
|
||||
msgid "Unable to download the file: too much unsuccessful attempts to open a websocket. Please, contact the administrator."
|
||||
msgstr ""
|
||||
"Nie można pobrać pliku: zbyt wiele nieudanych prób otwarcia połączenia "
|
||||
"sieciowego. Prosimy o kontakt z administratorem."
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:433
|
||||
msgid "Unable to get counter for %1. The file does not exists. It will be removed from your localStorage."
|
||||
msgstr ""
|
||||
"Nie można pobrać stanu licznika dla %1. Plik nie istnieje. Zostanie usunięty "
|
||||
"z twojego localStorage."
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:423
|
||||
msgid "Unable to get counter for %1. The token is invalid."
|
||||
msgstr "Nie można pobrać stanu licznika dla %1. Token jest nieprawidłowy."
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:443
|
||||
msgid "Unable to get counter for %1. You are not authenticated."
|
||||
msgstr "Nie można pobrać stanu licznika dla %1. Nie jesteś uwierzytelniony."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:33 themes/default/templates/layouts/default.html.ep:66
|
||||
msgid "Upload files"
|
||||
msgstr "Prześlij pliki"
|
||||
|
||||
#: themes/default/templates/index.html.ep:145
|
||||
msgid "Upload generated zip file"
|
||||
msgstr "Prześlij wygenerowany plik ZIP"
|
||||
|
||||
#: themes/default/templates/files.html.ep:31
|
||||
msgid "Uploaded at"
|
||||
msgstr "Przesłane o"
|
||||
|
||||
#: themes/default/templates/index.html.ep:153
|
||||
msgid "Uploaded files"
|
||||
msgstr "Przesłane pliki"
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "Version"
|
||||
msgstr "Wersja"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:31
|
||||
msgid "Websocket communication error"
|
||||
msgstr "Błąd komunikacji WebSocket"
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lufi?"
|
||||
msgstr "Co to jest Lufi?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "Who wrote this software?"
|
||||
msgstr "Kto napisał to oprogramowanie?"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:13
|
||||
msgid "XXX file has been added to upload queue."
|
||||
msgstr "Plik XXX został dodany do kolejki przesyłania."
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:30
|
||||
msgid "You can invite someone to send you files through this Lufi instance even if they don’t have an account on it."
|
||||
msgstr ""
|
||||
"Możesz zaprosić kogoś do przesłania Ci plików przez tę Lufi, nawet jeśli ta "
|
||||
"osoba nie ma na niej konta."
|
||||
|
||||
#: themes/default/templates/about.html.ep:11
|
||||
msgid "You can see the list of your files by clicking on the \"My files\" link at the top right of this page."
|
||||
msgstr ""
|
||||
"Możesz zobaczyć listę swoich plików, klikając link „Moje pliki” w prawym "
|
||||
"górnym rogu tej strony."
|
||||
|
||||
#. ($orig_uri)
|
||||
#: lib/Lufi/Controller/Mail.pm:43 lib/Lufi/Controller/Mail.pm:59
|
||||
msgid "You can't add URLs that are not related to this instance (%1)."
|
||||
msgstr "Nie możesz dodawać adresów URL, które nie są powiązane z tym Lufi (%1)."
|
||||
|
||||
#: themes/default/templates/about.html.ep:8
|
||||
msgid "You don't need to register yourself to upload files but be aware that, for legal reasons, your IP address will be stored when you send a file. Don't panic, this is normally the case for all sites on which you send files."
|
||||
msgstr ""
|
||||
"Nie musisz się rejestrować, aby przesyłać pliki, ale pamiętaj, że ze "
|
||||
"względów prawnych Twój adres IP zostanie zapisany podczas wysyłania pliku. "
|
||||
"Nie panikuj, zwykle dotyczy to wszystkich witryn, do których wysyłasz pliki."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:11
|
||||
msgid "You don't seem to have a key in your URL. You won't be able to decrypt the file. Download canceled."
|
||||
msgstr ""
|
||||
"Wygląda na to, że nie masz klucza w adresie URL. Nie będzie można "
|
||||
"odszyfrować pliku. Pobieranie anulowane."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:7
|
||||
msgid "You have attempted to leave this page. The download will be canceled. Are you sure?"
|
||||
msgstr ""
|
||||
"Próbowałeś opuścić tę stronę. Pobieranie zostanie anulowane. Jesteś pewny?"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:14
|
||||
msgid "You have attempted to leave this page. The upload will be canceled. Are you sure?"
|
||||
msgstr ""
|
||||
"Próbowałeś opuścić tę stronę. Przesyłanie zostanie anulowane. Jesteś pewny?"
|
||||
|
||||
#: themes/default/templates/logout.html.ep:14
|
||||
msgid "You have been successfully logged out."
|
||||
msgstr "Wylogowałeś się poprawnie."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:85
|
||||
msgid "You must give email addresses."
|
||||
msgstr "Musisz podać adresy e-mail."
|
||||
|
||||
#: themes/default/templates/index.html.ep:38
|
||||
msgid "Your browser does not have enough entropy to generate a strong encryption key. Please wait (it's better if you do things on your computer while waiting)."
|
||||
msgstr ""
|
||||
"Twoja przeglądarka nie ma wystarczającej entropii, aby wygenerować silny "
|
||||
"klucz szyfrujący. Proszę czekać (lepiej będzie jak zajmiesz się innymi "
|
||||
"rzeczami na komputerze podczas oczekiwania)."
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:95
|
||||
msgid "Your file is too big: %1 (maximum size allowed: %2)"
|
||||
msgstr "Twój plik jest za duży: %1 (maksymalny dozwolony rozmiar: %2)"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:345
|
||||
msgid "Your password is not valid. Please refresh the page to retry."
|
||||
msgstr "Twoje hasło jest nieprawidłowe. Odśwież stronę, aby spróbować ponownie."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:14
|
||||
msgid "Zip content:"
|
||||
msgstr "Zawartość ZIP-a:"
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:24
|
||||
msgid "between %1 and %2, the file will be kept %3 day(s)."
|
||||
msgstr "między %1 a %2, plik będzie przechowywany przez %3 dni."
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:26
|
||||
msgid "between %1 and %2, the file will be kept forever."
|
||||
msgstr "między %1 a %2, plik będzie przechowywany na zawsze."
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:42
|
||||
msgid "deadline: "
|
||||
msgstr "termin ostateczny: "
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:5
|
||||
msgid "expires on XXX"
|
||||
msgstr "wygasa XXX"
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:30
|
||||
msgid "for %1 and more, the file will be kept %2 day(s)"
|
||||
msgstr "dla %1 i więcej, plik będzie przechowywany przez %2 dni"
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:32
|
||||
msgid "for %1 and more, the file will be kept forever."
|
||||
msgstr "dla %1 i więcej plik będzie przechowywany na zawsze."
|
||||
|
||||
#: themes/default/templates/index.html.ep:3
|
||||
msgid "no time limit"
|
||||
msgstr "bez limitu czasu"
|
||||
|
||||
#: themes/default/templates/index.html.ep:124
|
||||
msgid "or"
|
||||
msgstr "lub"
|
||||
|
||||
#. ($e->{name}, format_bytes($e->{size})
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:12
|
||||
msgid "— %1 (%2), that will expire on %3"
|
||||
msgstr "— %1 (%2), który wygaśnie %3"
|
||||
|
||||
#:
|
||||
msgid "You can't add URLs that are not related to this instance."
|
||||
msgstr "Nie możesz dodawać adresów URL, które nie są powiązane z tym Lufi."
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -17,16 +17,6 @@ function escapeHtml(string) {
|
|||
function changeLang() {
|
||||
window.location = langUrl+$(this).val();
|
||||
}
|
||||
function formatDate(unixTimestamp) {
|
||||
return new Date(unixTimestamp * 1000).toLocaleString(window.navigator.language, {
|
||||
year: 'numeric',
|
||||
month: 'long',
|
||||
day: 'numeric',
|
||||
weekday: 'long',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
})
|
||||
}
|
||||
$(document).ready(function(){
|
||||
$('select').material_select();
|
||||
$(".select-lang select").on('change', changeLang);
|
||||
|
|
|
@ -11,13 +11,13 @@ function pageKey() {
|
|||
// We will strip any additional data.
|
||||
|
||||
// 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); }
|
||||
i = key.indexOf('='); if (i>-1) { key = key.substring(0,i+1); }
|
||||
|
||||
// If the equal sign was not present, some parameters may remain:
|
||||
i = key.indexOf('&'); if (i>-1) { key = key.substring(0, i); }
|
||||
i = key.indexOf('&'); if (i>-1) { key = key.substring(0,i); }
|
||||
|
||||
// Then add trailing equal sign if it's missing
|
||||
if (key.charAt(key.length-1)!=='=') key += '=';
|
||||
if (key.charAt(key.length-1)!=='=') key+='=';
|
||||
|
||||
return key;
|
||||
}
|
||||
|
@ -38,11 +38,11 @@ function addAlert(msg) {
|
|||
var pbd = $('.file-progress');
|
||||
pbd.attr('role', 'alert');
|
||||
pbd.removeClass('progress');
|
||||
pbd.html(`<div class="card pink">
|
||||
<div class="card-content white-text">
|
||||
<strong>${msg}</strong>
|
||||
</div>
|
||||
</div>`);
|
||||
pbd.html(['<div class="card pink">',
|
||||
'<div class="card-content white-text">',
|
||||
'<strong>', msg, '</strong>',
|
||||
'</div>',
|
||||
'</div>'].join(''));
|
||||
}
|
||||
|
||||
// Spawn WebSocket
|
||||
|
@ -55,10 +55,9 @@ function spawnWebsocket(pa) {
|
|||
var l = $('#loading');
|
||||
l.html(i18n.loading.replace(/XX1/, (pa + 1)));
|
||||
if ($('#file_pwd').length === 1) {
|
||||
val = $('#file_pwd').val();
|
||||
window.ws.send(`{"part":${pa}, "file_pwd": "${val}"}`);
|
||||
window.ws.send('{"part":'+pa+', "file_pwd": "'+$('#file_pwd').val()+'"}');
|
||||
} else {
|
||||
window.ws.send(`{"part":${pa}}`);
|
||||
window.ws.send('{"part":'+pa+'}');
|
||||
}
|
||||
};
|
||||
ws.onclose = function() {
|
||||
|
@ -66,7 +65,7 @@ function spawnWebsocket(pa) {
|
|||
if (!window.completed) {
|
||||
window.attempts++;
|
||||
if (window.attempts < 10) {
|
||||
console.log(`Connection closed. Retrying to get slice ${pa}`);
|
||||
console.log('Connection closed. Retrying to get slice '+pa);
|
||||
window.ws = spawnWebsocket(pa);
|
||||
} else {
|
||||
alert(i18n.tooMuchAttempts);
|
||||
|
@ -90,16 +89,16 @@ function spawnWebsocket(pa) {
|
|||
window.onbeforeunload = null;
|
||||
window.attempts = 10;
|
||||
} else {
|
||||
console.log(`Getting slice ${data.part + 1} of ${data.total}`);
|
||||
console.log('Getting slice '+(data.part + 1)+' of '+data.total);
|
||||
var slice = JSON.parse(res.shift());
|
||||
var percent = Math.round(1000 * (data.part + 1)/data.total)/10;
|
||||
var wClass = percent.toString().replace('.', '-');
|
||||
var pb = $('#pb');
|
||||
pb.removeClass();
|
||||
pb.addClass('determinate');
|
||||
pb.addClass(`width-${wClass}`);
|
||||
pb.addClass('width-'+wClass);
|
||||
pb.attr('aria-valuenow', percent);
|
||||
$('#pbt').html(`${percent}%`);
|
||||
$('#pbt').html(percent+'%');
|
||||
try {
|
||||
var b64 = sjcl.decrypt(window.key, slice);
|
||||
window.a[data.part] = base64ToArrayBuffer(b64);
|
||||
|
@ -119,44 +118,43 @@ function spawnWebsocket(pa) {
|
|||
} else {
|
||||
var blobURL = URL.createObjectURL(blob);
|
||||
}
|
||||
var innerHTML = `<p><a href="${blobURL}" class="btn btn-primary" download="${escapeHtml(data.name)}">${i18n.download}</a></p>`;
|
||||
var innerHTML = ['<p><a href="', blobURL, '" class="btn btn-primary" download="', escapeHtml(data.name), '">', i18n.download, '</a></p>'];
|
||||
|
||||
var isZip = ($('#filesize').attr('data-zipped') === 'true');
|
||||
if (data.type.match(/^image\//) !== null) {
|
||||
innerHTML += `<img id="render-image" class="responsive-img" alt="${escapeHtml(data.name)}" src="${blobURL}">`;
|
||||
innerHTML.push('<img id="render-image" class="responsive-img" alt="', escapeHtml(data.name), '" src="', blobURL, '">');
|
||||
} else if (data.type.match(/^video\//) !== null) {
|
||||
innerHTML += `<video class="responsive-video" controls>
|
||||
<source src="${blobURL}" type="${data.type}">
|
||||
</video>`;
|
||||
innerHTML.push('<video class="responsive-video" controls>',
|
||||
'<source src="', blobURL, '" type="', data.type, '">',
|
||||
'</video>');
|
||||
} else if (data.type.match(/^audio\//) !== null) {
|
||||
innerHTML += `<audio class="responsive-video" controls>
|
||||
<source src="${blobURL}" type="${data.type}">
|
||||
</audio>`;
|
||||
innerHTML.push('<audio class="responsive-video" controls>',
|
||||
'<source src="', blobURL, '" type="', data.type, '">',
|
||||
'</audio>');
|
||||
} else if (isZip) {
|
||||
innerHTML += `<p><a class="btn btn-primary" id="showZipContent">${i18n.showZipContent}</a></p>`;
|
||||
innerHTML.push('<p><a class="btn btn-primary" id="showZipContent">', i18n.showZipContent, '</a></p>');
|
||||
}
|
||||
|
||||
pbd.html(innerHTML);
|
||||
pbd.html(innerHTML.join(''));
|
||||
|
||||
if (isZip) {
|
||||
$('#showZipContent').click(function() {
|
||||
JSZip.loadAsync(blob)
|
||||
.then(function (zip) {
|
||||
var innerHTML = `<h3>${i18n.zipContent}</h3><ul>`;
|
||||
var innerHTML = ['<h3>', i18n.zipContent, '</h3><ul>'];
|
||||
zip.forEach(function (relativePath, zipEntry) {
|
||||
innerHTML += `<li>
|
||||
${escapeHtml(zipEntry.name)}
|
||||
(${filesize(zipEntry._data.uncompressedSize, {base: 10})})
|
||||
<a href="#"
|
||||
download="${escapeHtml(zipEntry.name)}"
|
||||
class="download-zip-content"
|
||||
title="${i18n.download}">
|
||||
<i class="mdi-file-file-download"></i>
|
||||
</a>
|
||||
</li>`
|
||||
innerHTML.push(
|
||||
'<li>',
|
||||
escapeHtml(zipEntry.name),
|
||||
' (', filesize(zipEntry._data.uncompressedSize, {base: 10}), ') ',
|
||||
'<a href="#" download="', escapeHtml(zipEntry.name), '" class="download-zip-content" title="', i18n.download, '">',
|
||||
'<i class="mdi-file-file-download"></i>',
|
||||
'</a>',
|
||||
'</li>'
|
||||
);
|
||||
});
|
||||
innerHTML += '</ul>';
|
||||
pbd.append(innerHTML);
|
||||
innerHTML.push('</ul>');
|
||||
pbd.append(innerHTML.join(''));
|
||||
$('.download-zip-content').click(function(e) {
|
||||
e.preventDefault();
|
||||
var t = $(this);
|
||||
|
@ -173,8 +171,7 @@ function spawnWebsocket(pa) {
|
|||
});
|
||||
}
|
||||
if ($('#file_pwd').length === 1) {
|
||||
val = $('#file_pwd').val();
|
||||
window.ws.send(`{"ended":true, "file_pwd": "${val}"}`);
|
||||
window.ws.send('{"ended":true, "file_pwd": "'+$('#file_pwd').val()+'"}');
|
||||
} else {
|
||||
window.ws.send('{"ended":true}');
|
||||
}
|
||||
|
@ -190,19 +187,18 @@ function spawnWebsocket(pa) {
|
|||
window.ws.onclose = function() {
|
||||
console.log('Connection is closed');
|
||||
if (!window.completed) {
|
||||
console.log(`Connection closed. Retrying to get slice ${data.part + 1}`);
|
||||
console.log('Connection closed. Retrying to get slice '+(data.part + 1));
|
||||
window.ws = spawnWebsocket(data.part + 1);
|
||||
}
|
||||
}
|
||||
window.ws.onerror = function() {
|
||||
console.log(`Error. Retrying to get slice ${data.part + 1}`);
|
||||
console.log('Error. Retrying to get slice '+(data.part + 1));
|
||||
window.ws = spawnWebsocket(data.part + 1);
|
||||
};
|
||||
if ($('#file_pwd').length === 1) {
|
||||
val = $('#file_pwd').val();
|
||||
window.ws.send(`{"part":${data.part + 1}, "file_pwd": "${val}"}`);
|
||||
window.ws.send('{"part":'+(data.part + 1)+', "file_pwd": "'+$('#file_pwd').val()+'"}');
|
||||
} else {
|
||||
window.ws.send(`{"part":${data.part + 1}}`);
|
||||
window.ws.send('{"part":'+(data.part + 1)+'}');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -219,7 +215,7 @@ function spawnWebsocket(pa) {
|
|||
ws.onerror = function() {
|
||||
window.attempts++;
|
||||
if (window.attempts < 10) {
|
||||
console.log(`Error. Retrying to get slice ${pa}`);
|
||||
console.log('Error. Retrying to get slice '+pa);
|
||||
window.ws = spawnWebsocket(pa);
|
||||
} else {
|
||||
alert(i18n.tooMuchAttempts);
|
||||
|
@ -233,13 +229,7 @@ $(document).ready(function(){
|
|||
window.ws.onclose = function() {};
|
||||
window.ws.close();
|
||||
$('#please-wait, #loading, #pbd, #abort').remove();
|
||||
$('#filesize').parent().append(`<h4>${i18n.aborted1}</h4>
|
||||
<p>
|
||||
<a id="reloadLocation"
|
||||
class="waves-effect waves-light btn">
|
||||
${i18n.aborted2}
|
||||
</a>
|
||||
</p>`);
|
||||
$('#filesize').parent().append('<h4>'+i18n.aborted1+'</h4><a id="reloadLocation" class="waves-effect waves-light btn">'+i18n.aborted2+'</a></p>');
|
||||
window.onbeforeunload = null;
|
||||
$('#reloadLocation').on('click', function(e) {
|
||||
e.preventDefault();
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
// vim:set sw=4 ts=4 sts=4 ft=javascript expandtab:
|
||||
// Add item to localStorage
|
||||
function addItem(item) {
|
||||
var files = localStorage.getItem(`${window.prefix}files`);
|
||||
var files = localStorage.getItem(window.prefix + 'files');
|
||||
if (files === null) {
|
||||
files = new Array();
|
||||
} else {
|
||||
files = JSON.parse(files);
|
||||
}
|
||||
files.push(item);
|
||||
localStorage.setItem(`${window.prefix}files`, JSON.stringify(files));
|
||||
localStorage.setItem(window.prefix + 'files', JSON.stringify(files));
|
||||
}
|
||||
|
||||
function delItem(name) {
|
||||
var files = localStorage.getItem(`${window.prefix}files`);
|
||||
var files = localStorage.getItem(window.prefix + 'files');
|
||||
if (files === null) {
|
||||
files = new Array();
|
||||
} else {
|
||||
|
@ -24,11 +24,11 @@ function delItem(name) {
|
|||
files.splice(i, 1);
|
||||
}
|
||||
}
|
||||
localStorage.setItem(`${window.prefix}files`, JSON.stringify(files));
|
||||
localStorage.setItem(window.prefix + 'files', JSON.stringify(files));
|
||||
}
|
||||
|
||||
function itemExists(name) {
|
||||
var files = localStorage.getItem(`${window.prefix}files`);
|
||||
var files = localStorage.getItem(window.prefix + 'files');
|
||||
if (files === null) {
|
||||
return false;
|
||||
} else {
|
||||
|
@ -59,7 +59,7 @@ function invertSelection(event) {
|
|||
|
||||
function purgeExpired(event) {
|
||||
event.preventDefault();
|
||||
var files = JSON.parse(localStorage.getItem(`${window.prefix}files`));
|
||||
var files = JSON.parse(localStorage.getItem(window.prefix + 'files'));
|
||||
|
||||
files.forEach(function(element, index, array) {
|
||||
$.ajax({
|
||||
|
@ -73,7 +73,7 @@ function purgeExpired(event) {
|
|||
success: function(data, textStatus, jqXHR) {
|
||||
if (data.success) {
|
||||
if (data.deleted) {
|
||||
$(`#count-${data.short}`).parent().remove();
|
||||
$('#count-'+data.short).parent().remove();
|
||||
delItem(data.short);
|
||||
}
|
||||
}
|
||||
|
@ -84,11 +84,11 @@ function purgeExpired(event) {
|
|||
|
||||
function exportStorage(event) {
|
||||
event.preventDefault();
|
||||
var a = $('<a id="data-json">');
|
||||
var a = $('<a id="data-json">');
|
||||
a.hide();
|
||||
$('body').append(a);
|
||||
|
||||
var storageData = [localStorage.getItem(`${window.prefix}files`)];
|
||||
var storageData = [localStorage.getItem(window.prefix + 'files')];
|
||||
var exportFile = new Blob(storageData, {type : 'application/json'});
|
||||
var url = window.URL.createObjectURL(exportFile);
|
||||
|
||||
|
@ -142,11 +142,11 @@ function delFile() {
|
|||
url: dlink,
|
||||
method: 'GET',
|
||||
data: {
|
||||
_format: 'json'
|
||||
format: 'json'
|
||||
},
|
||||
success: function(data) {
|
||||
if (data.success) {
|
||||
$(`#row-${short}`).remove();
|
||||
$('#row-'+short).remove();
|
||||
delItem(short);
|
||||
} else {
|
||||
alert(data.msg);
|
||||
|
@ -178,15 +178,15 @@ function massDelete(event) {
|
|||
function populateFilesTable() {
|
||||
$('#myfiles').empty();
|
||||
|
||||
var files = localStorage.getItem(`${window.prefix}files`);
|
||||
var files = localStorage.getItem(window.prefix + 'files');
|
||||
if (files === null) {
|
||||
var filesWithoutPrefix = localStorage.getItem('files');
|
||||
if (filesWithoutPrefix !== null) {
|
||||
if (window.confirm(i18n.importFilesWithoutPrefix)) {
|
||||
localStorage.setItem(`${window.prefix}files`, filesWithoutPrefix);
|
||||
localStorage.setItem(window.prefix + 'files', filesWithoutPrefix);
|
||||
files = JSON.parse(filesWithoutPrefix);
|
||||
} else {
|
||||
localStorage.setItem(`${window.prefix}files`, JSON.stringify([]));
|
||||
localStorage.setItem(window.prefix + 'files', JSON.stringify([]));
|
||||
files = new Array();
|
||||
}
|
||||
} else {
|
||||
|
@ -206,59 +206,45 @@ function populateFilesTable() {
|
|||
});
|
||||
files.forEach(function(element, index, array) {
|
||||
var del_view = (element.del_at_first_view) ? '<i class="small mdi-action-done"></i>' : '<i class="small mdi-navigation-close"></i>';
|
||||
var dlink = `${actionURL}d/${element.short}/${element.token}`;
|
||||
var limit = (element.delay === 0) ? i18n.noExpiration : formatDate(element.delay * 86400 + element.created_at);
|
||||
var created_at = formatDate(element.created_at);
|
||||
var dlink = actionURL+'d/'+element.short+'/'+element.token;
|
||||
var limit = (element.delay === 0) ? i18n.noExpiration : moment.unix(element.delay * 86400 + element.created_at).locale(window.navigator.language).format('LLLL');
|
||||
var created_at = moment.unix(element.created_at).locale(window.navigator.language).format('LLLL');
|
||||
|
||||
var tr = $(`<tr id="row-${element.short}">`);
|
||||
tr.html(`<td class="center-align">
|
||||
<input type="checkbox"
|
||||
id="check-${element.short}"
|
||||
data-short="${element.short}"
|
||||
data-dlink="${dlink}"
|
||||
data-checked="">
|
||||
<label for="check-${element.short}"></label>
|
||||
</td>
|
||||
<td class="left-align">
|
||||
${escapeHtml(element.name)}
|
||||
</td>
|
||||
<td class="center-align">
|
||||
<a href="${element.url}"
|
||||
class="classic">
|
||||
<i class="small mdi-file-file-download"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td id="count-${element.short}" class="center-align">
|
||||
</td>
|
||||
<td class="center-align">
|
||||
${del_view}
|
||||
</td>
|
||||
<td>
|
||||
${created_at}
|
||||
</td>
|
||||
<td>
|
||||
${limit}
|
||||
</td>
|
||||
<td class="center-align">
|
||||
<a id="del-${element.short}"
|
||||
data-short="${element.short}"
|
||||
data-dlink="${dlink}"
|
||||
href="#"
|
||||
class="classic">
|
||||
<i class="small mdi-action-delete"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td class="center-align">
|
||||
<a href="${actionURL}m?links=["${element.short}"]"
|
||||
class="classic"><i class="small mdi-communication-email"></i></a>
|
||||
</td>`);
|
||||
var tr = $('<tr id="row-'+element.short+'">');
|
||||
tr.html([ '<td class="center-align">',
|
||||
'<input type="checkbox" id="check-', element.short,'" data-short="', element.short, '" data-dlink="', dlink, '" data-checked="">',
|
||||
'<label for="check-', element.short,'"></label>',
|
||||
'</td>',
|
||||
'<td class="left-align">',
|
||||
escapeHtml(element.name),
|
||||
'</td>',
|
||||
'<td class="center-align">',
|
||||
'<a href="', element.url, '" class="classic"><i class="small mdi-file-file-download"></i></a>',
|
||||
'</td>',
|
||||
'<td id="count-', element.short, '" class="center-align">',
|
||||
'</td>',
|
||||
'<td class="center-align">',
|
||||
del_view,
|
||||
'</td>',
|
||||
'<td>',
|
||||
created_at,
|
||||
'</td>',
|
||||
'<td>',
|
||||
limit,
|
||||
'</td>',
|
||||
'<td class="center-align">',
|
||||
'<a id="del-', element.short, '" data-short="', element.short, '" data-dlink="', dlink, '" href="#" class="classic"><i class="small mdi-action-delete"></i></a>',
|
||||
'</td>',
|
||||
'<td class="center-align">',
|
||||
'<a href="'+actionURL+'m?links=["'+element.short+'"]" class="classic"><i class="small mdi-communication-email"></i></a>',
|
||||
'</td>'].join(''));
|
||||
$('#myfiles').append(tr);
|
||||
$(`#del-${element.short}`).on('click', delFile);
|
||||
$(`label[for="check-${element.short}"]`).on('click', function(){
|
||||
if ($(`#check-${element.short}`).attr('data-checked') && $(`#check-${element.short}`).attr('data-checked') === 'data-checked') {
|
||||
$(`#check-${element.short}`).attr('data-checked', null);
|
||||
$('#del-'+element.short).on('click', delFile);
|
||||
$('label[for="check-'+element.short+'"]').on('click', function(){
|
||||
if ($('#check-'+element.short).attr('data-checked') && $('#check-'+element.short).attr('data-checked') === 'data-checked') {
|
||||
$('#check-'+element.short).attr('data-checked', null);
|
||||
} else {
|
||||
$(`#check-${element.short}`).attr('data-checked', 'data-checked');
|
||||
$('#check-'+element.short).attr('data-checked', 'data-checked');
|
||||
}
|
||||
evaluateMassDelete();
|
||||
});
|
||||
|
@ -273,13 +259,13 @@ function populateFilesTable() {
|
|||
},
|
||||
success: function(data, textStatus, jqXHR) {
|
||||
if (data.success) {
|
||||
$(`#count-${data.short}`).html(data.counter);
|
||||
$('#count-'+data.short).html(data.counter);
|
||||
if (data.deleted) {
|
||||
$(`#count-${data.short}`).parent().addClass('purple lighten-4');
|
||||
$('#count-'+data.short).parent().addClass('purple lighten-4');
|
||||
}
|
||||
} else {
|
||||
alert(data.msg);
|
||||
$(`#count-${data.short}`).parent().remove();
|
||||
$('#count-'+data.short).parent().remove();
|
||||
if (data.missing) {
|
||||
delItem(data.short);
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ function deleteInvit(e) {
|
|||
if (data.success) {
|
||||
data.tokens.forEach(function(t) {
|
||||
Materialize.toast(t.msg, 6000, 'teal accent-3');
|
||||
$(`#row-${t.token}`).remove();
|
||||
$('#row-' + t.token).remove();
|
||||
});
|
||||
data.failures.forEach(function(msg) {
|
||||
Materialize.toast(msg, 10000, 'red accent-2');
|
||||
|
@ -74,8 +74,8 @@ function resendMail(e) {
|
|||
success: function(data, textStatus, jqXHR) {
|
||||
data.success.forEach(function(s) {
|
||||
Materialize.toast(s.msg, 6000, 'teal accent-3');
|
||||
$(`#expire-${s.token}`).text(s.expires)
|
||||
$(`#${s.token}`).click();
|
||||
$('#expire-' + s.token).text(s.expires)
|
||||
$('#' + s.token).click();
|
||||
});
|
||||
data.failures.forEach(function(msg) {
|
||||
Materialize.toast(msg, 10000, 'red accent-2');
|
||||
|
@ -97,19 +97,19 @@ function toggleVisibility(e) {
|
|||
success: function(data, textStatus, jqXHR) {
|
||||
if (data.success) {
|
||||
data.tokens.forEach(function(t) {
|
||||
var row = $(`#row-${t.token}`)
|
||||
var row = $('#row-' + t.token)
|
||||
if (t.show) {
|
||||
row.attr('data-visibility', 1);
|
||||
row.removeClass('hide');
|
||||
$(`#row-${t.token} > td:first i`).remove();
|
||||
$('#row-' + t.token + ' > td:first i').remove();
|
||||
} else {
|
||||
row.attr('data-visibility', 0);
|
||||
if ($('#myInvitations').attr('data-visibility') === 'hidden') {
|
||||
row.addClass('hide');
|
||||
}
|
||||
$(`#row-${t.token} > td:first`).append(i18n.hiddenMark);
|
||||
$('#row-' + t.token + ' > td:first').append(i18n.hiddenMark);
|
||||
}
|
||||
$(`#${t.token}`).click();
|
||||
$('#' + t.token).click();
|
||||
});
|
||||
disableButtons();
|
||||
} else {
|
||||
|
@ -169,15 +169,25 @@ function fillModal() {
|
|||
);
|
||||
|
||||
var files = JSON.parse(el.attr('data-files'));
|
||||
var content = '';
|
||||
var content = [];
|
||||
for (i = 0; i < files.length; i++) {
|
||||
var f = files[i];
|
||||
var expires = i18n.expiration.replace('XXX', formatDate(f.delay * 86400 + f.created_at));
|
||||
content += `<li>— <a href="${f.url}">${f.name}</a>
|
||||
(${filesize(f.size)}, ${expires})
|
||||
</li>`;
|
||||
var expires = i18n.expiration.replace('XXX',
|
||||
moment.unix(f.delay * 86400 + f.created_at).locale(window.navigator.language).format('LLLL')
|
||||
);
|
||||
content.push(
|
||||
'<li>— ',
|
||||
'<a href="', f.url, '">',
|
||||
f.name,
|
||||
'</a> (',
|
||||
filesize(f.size),
|
||||
', ',
|
||||
expires,
|
||||
')',
|
||||
'</li>',
|
||||
);
|
||||
}
|
||||
$('#files-ul').html(content);
|
||||
$('#files-ul').html(content.join(''));
|
||||
}
|
||||
|
||||
$(document).ready(function(){
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
function notify(title, body) {
|
||||
if (!'Notification' in window || typeof(Notification) === 'undefined') {
|
||||
console.log(`This browser does not support desktop notification, cannot send following message: ${title} ${body}`);
|
||||
console.log("This browser does not support desktop notification, cannot send following message: "+title+" "+body);
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -68,14 +68,14 @@ function copyAllToClipboard(event) {
|
|||
|
||||
// Add item to localStorage
|
||||
function addItem(name, url, size, del_at_first_view, created_at, delay, short, token) {
|
||||
var files = localStorage.getItem(`${window.prefix}files`);
|
||||
var files = localStorage.getItem(window.prefix + 'files');
|
||||
if (files === null) {
|
||||
files = new Array();
|
||||
} else {
|
||||
files = JSON.parse(files);
|
||||
}
|
||||
files.push({ name: name, short: short, url: url, size: size, del_at_first_view: del_at_first_view, created_at: created_at, delay: delay, token: token });
|
||||
localStorage.setItem(`${window.prefix}files`, JSON.stringify(files));
|
||||
localStorage.setItem(window.prefix + 'files', JSON.stringify(files));
|
||||
}
|
||||
|
||||
// Remove a file block
|
||||
|
@ -192,7 +192,7 @@ function updateMailLink() {
|
|||
for (i = 0; i < a.length; i++) {
|
||||
l.push(a[i].id);
|
||||
}
|
||||
var u = `${actionURL}m?links=${JSON.stringify(l)}`;
|
||||
var u = actionURL+'m?links='+JSON.stringify(l);
|
||||
$('#mailto').attr('href', u);
|
||||
}
|
||||
|
||||
|
@ -240,16 +240,18 @@ function handleFiles(f) {
|
|||
var counter = 0;
|
||||
while (typeof(window.zip.files[filename]) !== 'undefined') {
|
||||
counter += 1;
|
||||
filename = `${origname.substring(0, origname.lastIndexOf('.'))}_(${counter})${origname.substring(origname.lastIndexOf('.'))}`;
|
||||
filename = origname.substring(0, origname.lastIndexOf('.')) + '_(' + counter + ')' + origname.substring(origname.lastIndexOf('.'));
|
||||
}
|
||||
|
||||
window.zip.file(filename, element);
|
||||
|
||||
window.zipSize += element.size;
|
||||
$('#zip-size').text(filesize(window.zipSize));
|
||||
$('#zip-parts').append(`<li>
|
||||
— ${escapeHtml(filename)} (${filesize(element.size)})
|
||||
</li>`);
|
||||
$('#zip-parts').append([
|
||||
'<li>',
|
||||
'— ', escapeHtml(filename), ' (', filesize(element.size), ')',
|
||||
'</li>'
|
||||
].join(''));
|
||||
}
|
||||
} else {
|
||||
if (window.fileList === undefined || window.fileList === null) {
|
||||
|
@ -293,32 +295,23 @@ function uploadFile(i, delay, del_at_first_view) {
|
|||
var r = $('#ul-results');
|
||||
var w = $('<li>');
|
||||
w.addClass('list-group-item');
|
||||
w.html(`<div class="card">
|
||||
<div>
|
||||
<a href="#" id="destroy-${window.fc}">
|
||||
<i class="right mdi-navigation-close small"></i>
|
||||
</a>
|
||||
<div class="card-content">
|
||||
<span class="card-title"
|
||||
id="name-${window.fc}">${name}</span>
|
||||
<span id="size-${window.fc }">(${size})</span>
|
||||
<p id="parts-${window.fc}"></p>
|
||||
</div>
|
||||
<div class="progress">
|
||||
<div id="progress-${window.fc}"
|
||||
data-key="${randomkey}"
|
||||
data-name="${name}"
|
||||
aria-valuemax="100"
|
||||
aria-valuemin="0"
|
||||
aria-valuenow="0"
|
||||
role="progressbar"
|
||||
class="determinate width-0">
|
||||
<span class="sr-only">${name}0%</span>
|
||||
</div>
|
||||
</div>
|
||||
<div>`);
|
||||
w.html(['<div class="card">',
|
||||
'<div>',
|
||||
'<a href="#" id="destroy-', window.fc, '">',
|
||||
'<i class="right mdi-navigation-close small"></i>',
|
||||
'</a>',
|
||||
'<div class="card-content">',
|
||||
'<span class="card-title" id="name-', window.fc, '">', name, '</span> <span id="size-', window.fc ,'">(', size,')</span>',
|
||||
'<p id="parts-', window.fc, '"></p>',
|
||||
'</div>',
|
||||
'<div class="progress">',
|
||||
'<div id="progress-', window.fc, '" data-key="', randomkey, '" data-name="', name, '" aria-valuemax="100" aria-valuemin="0" aria-valuenow="0" role="progressbar" class="determinate width-0">',
|
||||
'<span class="sr-only">', name, '0%</span>',
|
||||
'</div>',
|
||||
'</div>',
|
||||
'<div>'].join(''));
|
||||
r.prepend(w);
|
||||
$(`#destroy-${window.fc}`).on('click', function(event) {
|
||||
$('#destroy-'+window.fc).on('click', function(event) {
|
||||
event.preventDefault();
|
||||
window.cancelled.push(i);
|
||||
destroyBlock(this);
|
||||
|
@ -357,7 +350,7 @@ function sliceAndUpload(randomkey, i, parts, j, delay, del_at_first_view, short,
|
|||
var slice = file.slice(j * window.sliceLength, (j + 1) * window.sliceLength, file.type);
|
||||
var fr = new FileReader();
|
||||
fr.onloadend = function() {
|
||||
var sl = $(`#parts-${window.fc}`);
|
||||
var sl = $('#parts-'+window.fc);
|
||||
|
||||
// Get the binary result, different result in IE browsers (see default.html.ep line 27:48)
|
||||
if (isIE == true){
|
||||
|
@ -394,12 +387,12 @@ function sliceAndUpload(randomkey, i, parts, j, delay, del_at_first_view, short,
|
|||
data['file_pwd'] = $('#file_pwd').val();
|
||||
}
|
||||
}
|
||||
data = `${JSON.stringify(data)}XXMOJOXX${JSON.stringify(encrypted)}`;
|
||||
data = JSON.stringify(data)+'XXMOJOXX'+JSON.stringify(encrypted);;
|
||||
|
||||
var percent = Math.round(1000 * j/parts)/10;
|
||||
console.log(`sending slice ${j + 1}/${parts} of file ${file.name} (${percent}%)`);
|
||||
console.log('sending slice '+(j + 1)+'/'+parts+' of file '+file.name+' ('+percent+'%)');
|
||||
|
||||
sl.html(`${percent.toFixed(1)}%`);
|
||||
sl.html(percent.toFixed(1)+'%');
|
||||
|
||||
// Verify that we have a websocket and send json
|
||||
if (window.ws.readyState === 3) {
|
||||
|
@ -410,14 +403,14 @@ function sliceAndUpload(randomkey, i, parts, j, delay, del_at_first_view, short,
|
|||
window.ws.onclose = function() {
|
||||
console.log('Websocket closed, waiting 10sec.');
|
||||
window.ws = spawnWebsocket(0, function() {
|
||||
console.log(`sending again slice ${j + 1}/${parts} of file ${file.name}`);
|
||||
console.log('sending again slice '+(j + 1)+'/'+parts+' of file '+file.name);
|
||||
window.ws.send(data);
|
||||
});
|
||||
};
|
||||
window.ws.onerror = function() {
|
||||
console.log('Error on Websocket, waiting 10sec.');
|
||||
window.ws = spawnWebsocket(0, function() {
|
||||
console.log(`sending again slice ${j + 1}/${parts} of file ${file.name}`);
|
||||
console.log('sending again slice '+(j + 1)+'/'+parts+' of file '+file.name);
|
||||
window.ws.send(data);
|
||||
});
|
||||
};
|
||||
|
@ -434,7 +427,7 @@ function updateProgressBar(data) {
|
|||
if (data.success) {
|
||||
console.log('Upload successfully cancelled');
|
||||
} else {
|
||||
console.log(`Upload cancellation failed: ${data.msg}`);
|
||||
console.log('Upload cancellation failed: ' + data.msg);
|
||||
}
|
||||
|
||||
// Remove the cancelled index
|
||||
|
@ -470,9 +463,9 @@ function updateProgressBar(data) {
|
|||
var short = data.short;
|
||||
var created_at = data.created_at;
|
||||
|
||||
console.log(`getting response for slice ${j + 1}/${parts} of file ${data.name} (${data.duration} sec)`);
|
||||
console.log('getting response for slice '+(j + 1)+'/'+parts+' of file '+data.name+' ('+data.duration+' sec)');
|
||||
|
||||
var dp = $(`#progress-${window.fc}`);
|
||||
var dp = $('#progress-'+window.fc);
|
||||
var key = dp.attr('data-key');
|
||||
|
||||
if (j + 1 === parts) {
|
||||
|
@ -481,44 +474,44 @@ function updateProgressBar(data) {
|
|||
console.log('Connection is closed.');
|
||||
};
|
||||
window.ws.onerror = function() {
|
||||
console.log('Error on WebSocket connection but file has been fully send, so we don’t care.');
|
||||
console.log('Error on WebSocket connection but file has been fully send, so we don\'t care.');
|
||||
}
|
||||
|
||||
notify(i18n.fileUploaded, data.name);
|
||||
|
||||
$(`#parts-${window.fc}`).remove();
|
||||
var n = $(`#name-${window.fc}`);
|
||||
var s = $(`#size-${window.fc}`);
|
||||
$('#parts-'+window.fc).remove();
|
||||
var n = $('#name-'+window.fc);
|
||||
var s = $('#size-'+window.fc);
|
||||
var d = $('<div>');
|
||||
var url = `${baseURL}r/${short}#${key}`;
|
||||
var del_url = `${actionURL}d/${short}/${data.token}`;
|
||||
var links = encodeURIComponent(`["${short}"]`);
|
||||
var limit = (delay === 0) ? i18n.noLimit : `${i18n.expiration} ${formatDate(delay * 86400 + created_at)}`;
|
||||
var url = baseURL+'r/'+short+'#'+key;
|
||||
var del_url = actionURL+'d/'+short+'/'+data.token;
|
||||
var links = encodeURIComponent('["'+short+'"]');
|
||||
var limit = (delay === 0) ? i18n.noLimit : i18n.expiration+' '+moment.unix(delay * 86400 + created_at).locale(window.navigator.language).format('LLLL');
|
||||
if (!isGuest) {
|
||||
n.html(`${n.html()} ${s.html()} <a href="${actionURL}m?links=${links}"><i class="mdi-communication-email"></i></a><br>${limit}`);
|
||||
d.html(`<div class="card-action">
|
||||
<div class="input-field">
|
||||
<span class="prefix big-prefix">
|
||||
<a href="${url}" target="_blank">
|
||||
<i class="mdi-file-file-download small" title="${i18n.dlText}"></i>
|
||||
</a>
|
||||
<a href="#" id="copyurl-${window.fc}" title="${i18n.cpText}">
|
||||
<i class="mdi-content-content-copy small"></i>
|
||||
</a>
|
||||
</span>
|
||||
<input id="${short}" class="form-control link-input white-background" value="${url}" readonly="" type="text">
|
||||
<label class="active" for="${short}">${i18n.dlText}</label>
|
||||
</div>
|
||||
<div class="input-field">
|
||||
<a href="${del_url}" target="_blank" class="prefix big-prefix">
|
||||
<i class="mdi-action-delete small" title="${i18n.delText}"></i>
|
||||
</a>
|
||||
<input id="delete-${short}" class="form-control white-background" value="${del_url}" readonly="" type="text">
|
||||
<label class="active" for="delete-${short}">${i18n.delText}</label>
|
||||
</div>
|
||||
</div>`);
|
||||
n.html(n.html()+' '+s.html()+' <a href="'+actionURL+'m?links='+links+'"><i class="mdi-communication-email"></i></a><br>'+limit);
|
||||
d.html(['<div class="card-action">',
|
||||
'<div class="input-field">',
|
||||
'<span class="prefix big-prefix">',
|
||||
'<a href="', url, '" target="_blank">',
|
||||
'<i class="mdi-file-file-download small" title="', i18n.dlText, '"></i>',
|
||||
'</a>',
|
||||
'<a href="#" id="copyurl-', window.fc, '" title="', i18n.cpText, '">',
|
||||
'<i class="mdi-content-content-copy small"></i>',
|
||||
'</a>',
|
||||
'</span>',
|
||||
'<input id="', short, '" class="form-control link-input white-background" value="', url, '" readonly="" type="text">',
|
||||
'<label class="active" for="', short, '">', i18n.dlText, '</label>',
|
||||
'</div>',
|
||||
'<div class="input-field">',
|
||||
'<a href="', del_url, '" target="_blank" class="prefix big-prefix">',
|
||||
'<i class="mdi-action-delete small" title="', i18n.delText, '"></i>',
|
||||
'</a>',
|
||||
'<input id="delete-', short, '" class="form-control white-background" value="', del_url, '" readonly="" type="text">',
|
||||
'<label class="active" for="delete-', short, '">', i18n.delText, '</label>',
|
||||
'</div>',
|
||||
'</div>'].join(''));
|
||||
} else {
|
||||
n.html(`${n.html()} ${s.html()}`);
|
||||
n.html(n.html()+' '+s.html());
|
||||
}
|
||||
s.remove();
|
||||
|
||||
|
@ -528,7 +521,7 @@ function updateProgressBar(data) {
|
|||
p2.remove();
|
||||
p1.append(d);
|
||||
|
||||
$(`#copyurl-${window.fc}`).on('click', function(e) {
|
||||
$('#copyurl-'+window.fc).on('click', function(e) {
|
||||
e.preventDefault();
|
||||
copyToClipboard(url);
|
||||
});
|
||||
|
@ -538,12 +531,7 @@ function updateProgressBar(data) {
|
|||
// Add copy all and mailto buttons
|
||||
var misc = $('#misc');
|
||||
if (misc.html() === '' && !isGuest) {
|
||||
misc.html(`<a href="#"
|
||||
id="copyall"
|
||||
class="btn btn-info">${i18n.copyAll}</a>
|
||||
<a id="mailto"
|
||||
href="${actionURL}m?links=${links}"
|
||||
class="btn btn-info">${i18n.mailTo}</a>`);
|
||||
misc.html('<a href="#" id="copyall" class="btn btn-info">'+i18n.copyAll+'</a> <a id="mailto" href="'+actionURL+'m?links='+links+'" class="btn btn-info">'+i18n.mailTo+'</a>');
|
||||
$('#copyall').on('click', copyAllToClipboard);
|
||||
} else {
|
||||
updateMailLink();
|
||||
|
@ -586,7 +574,7 @@ function updateProgressBar(data) {
|
|||
var wClass = percent.toString().replace('.', '-');
|
||||
dp.removeClass();
|
||||
dp.addClass('determinate');
|
||||
dp.addClass(`width-${wClass}`);
|
||||
dp.addClass('width-'+wClass);
|
||||
dp.attr('aria-valuenow', percent);
|
||||
|
||||
// Encrypt and upload next slice
|
||||
|
@ -605,15 +593,15 @@ function updateProgressBar(data) {
|
|||
|
||||
// Write message instead in a file block
|
||||
function addAlertOnFile(msg, i, sent_delay, del_at_first_view) {
|
||||
var n = $(`#name-${window.fc}`);
|
||||
var p = $(`#progress-${window.fc}`);
|
||||
var n = $('#name-'+window.fc);
|
||||
var p = $('#progress-'+window.fc);
|
||||
var d = $('<div>');
|
||||
|
||||
p.parent().remove();
|
||||
d.addClass('card pink');
|
||||
d.html(`<div class="card-content white-text">
|
||||
<strong>${msg}</strong>
|
||||
</div>`);
|
||||
d.html(['<div class="card-content white-text">',
|
||||
'<strong>', msg, '</strong>',
|
||||
'</div>'].join(''));
|
||||
n.parent().append(d);
|
||||
|
||||
// Upload next file
|
||||
|
@ -665,7 +653,7 @@ function spawnWebsocket(i, callback) {
|
|||
ws.onerror = function() {
|
||||
console.log('error');
|
||||
if (i < 5 && callback !== undefined) {
|
||||
console.log(`Retrying to send file (try ${i} of 5)`);
|
||||
console.log('Retrying to send file (try '+i+' of 5)');
|
||||
window.ws = spawnWebsocket(i + 1, callback);
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -39,5 +39,6 @@
|
|||
</table>
|
||||
</div>
|
||||
|
||||
%= javascript '/partial/files.js'
|
||||
%= javascript '/partial/files.js.ep'
|
||||
%= javascript '/js/lufi-files.js'
|
||||
%= javascript '/js/moment-with-locales.min.js'
|
||||
|
|
|
@ -162,6 +162,7 @@
|
|||
%= javascript '/partial/index.js'
|
||||
% }
|
||||
%= javascript '/js/sjcl.js'
|
||||
%= javascript '/js/moment-with-locales.min.js'
|
||||
%= javascript '/js/filesize.min.js'
|
||||
%= javascript '/js/jszip.min.js'
|
||||
%= javascript '/js/lufi-notifications.js'
|
||||
|
|
|
@ -83,4 +83,5 @@
|
|||
|
||||
%= javascript '/partial/invitations.js'
|
||||
%= javascript '/js/lufi-list-invitations.js'
|
||||
%= javascript '/js/moment-with-locales.min.js'
|
||||
%= javascript '/js/filesize.min.js'
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
</div>
|
||||
</nav>
|
||||
<div class="container">
|
||||
%= javascript '/js/jquery-3.7.1.min.js'
|
||||
%= javascript '/js/jquery-2.2.4.min.js'
|
||||
%= javascript '/partial/layout.js'
|
||||
%= javascript '/js/lufi-common.js'
|
||||
<%= content %>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<form class="row" method="post" action="<%= url_for('login') %>">
|
||||
<div class="col s8 m8 offset-s2 offset-m2">
|
||||
<div class="input-field">
|
||||
<input id="login" type="text" class="validate" name="login" autofocus>
|
||||
<input id="login" type="text" class="validate" name="login">
|
||||
<label for="login"><%= l('Login') %></label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -50,3 +50,4 @@
|
|||
</form>
|
||||
<div>
|
||||
%= javascript url_for('/partial/mail.js')->query(populate => (!defined(stash('msg')) && !defined(stash('values'))), links => $links)
|
||||
%= javascript '/js/moment-with-locales.min.js'
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
% # vim:set sts=4 sw=4 ts=4 ft=javascript expandtab:
|
||||
function findItem(name) {
|
||||
var files = localStorage.getItem(`${window.prefix}files`);
|
||||
var files = localStorage.getItem(window.prefix + 'files');
|
||||
if (files === null) {
|
||||
files = new Array();
|
||||
} else {
|
||||
|
@ -19,7 +19,7 @@ function updateMailtoLink() {
|
|||
var subject = document.getElementById('subject');
|
||||
var text = document.getElementById('body');
|
||||
|
||||
btn.href = `mailto:${encodeURIComponent(emails.value)}?subject=${encodeURIComponent(subject.value)}&body=${encodeURIComponent(text.value)}`;
|
||||
btn.href = 'mailto:'+encodeURIComponent(emails.value)+'?subject='+encodeURIComponent(subject.value)+'&body='+encodeURIComponent(text.value);
|
||||
}
|
||||
function populateBody() {
|
||||
var links = [
|
||||
|
@ -36,17 +36,17 @@ function populateBody() {
|
|||
links.forEach(function(name, index, array) {
|
||||
var item = findItem(name);
|
||||
if (item !== null && item !== undefined) {
|
||||
var limit = (item.delay === 0) ? null : formatDate(item.delay * 86400 + item.created_at);
|
||||
text += `- ${item.name}<%= l(':') %> ${item.url}`;
|
||||
var limit = (item.delay === 0) ? null : moment.unix(item.delay * 86400 + item.created_at).locale(window.navigator.language).format('LLLL');
|
||||
text = text+'- '+item.name+'<%= l(':') %> '+item.url;
|
||||
if (limit !== null) {
|
||||
text += `\n (<%= l('deadline: ') %>${limit})`;
|
||||
text = text+"\n (<%= l('deadline: ') %>"+limit+')';
|
||||
}
|
||||
text += "\n";
|
||||
text = text+"\n";
|
||||
}
|
||||
});
|
||||
|
||||
% if (!defined(config('ldap')) && !defined(config('htpasswd'))) {
|
||||
text += "\n-- \n<%= l('Share your files in total privacy on %1', url_for('/')->to_abs) %>";
|
||||
text = text+"\n-- \n<%= l('Share your files in total privacy on %1', url_for('/')->to_abs) %>";
|
||||
% }
|
||||
tArea = document.getElementById('body').value = text;
|
||||
updateMailtoLink();
|
||||
|
|
Loading…
Reference in New Issue