Compare commits
59 Commits
Author | SHA1 | Date |
---|---|---|
![]() |
c79f2c5662 | |
![]() |
fb82c52d5c | |
![]() |
e779888a63 | |
![]() |
340a502202 | |
![]() |
9e5deac209 | |
![]() |
769109b66b | |
![]() |
1d39f7b488 | |
![]() |
cd4168d2b8 | |
![]() |
43ee9fc4da | |
![]() |
a001963c3a | |
![]() |
cabee92197 | |
![]() |
139fca3e78 | |
![]() |
6dd96ccb29 | |
![]() |
d601db1112 | |
![]() |
4ab1c3ff50 | |
![]() |
05dea2b9aa | |
![]() |
3c875e8a0a | |
![]() |
2aa41c1b4e | |
![]() |
ced08b40e5 | |
![]() |
76743920c5 | |
![]() |
8cf845d5a7 | |
![]() |
07fc234299 | |
![]() |
d664d1d042 | |
![]() |
276d6034ec | |
![]() |
6b505f3e6d | |
![]() |
4f0b7a7a94 | |
![]() |
371bad81b9 | |
![]() |
88c9967eb9 | |
![]() |
52ad6120c7 | |
![]() |
4d82c5e0a9 | |
![]() |
ff6be72574 | |
![]() |
ba257b7a6a | |
![]() |
9333dff80a | |
![]() |
5048366f2e | |
![]() |
6e859490e5 | |
![]() |
36d23f66b0 | |
![]() |
e8b3cd25da | |
![]() |
b4468ae583 | |
![]() |
8b90547b3f | |
![]() |
588396f4dd | |
![]() |
c8b42bda7b | |
![]() |
4e6ac22d1f | |
![]() |
657d5aa66d | |
![]() |
1b16282aa9 | |
![]() |
515686f009 | |
![]() |
7c8dbdf86c | |
![]() |
42cfc6ad4d | |
![]() |
30a5861c69 | |
![]() |
75560b38be | |
![]() |
1dee0e691e | |
![]() |
3b074a32e5 | |
![]() |
a2e68a2d62 | |
![]() |
ea3292ab84 | |
![]() |
470b262a22 | |
![]() |
cf85571f05 | |
![]() |
17bcb2684f | |
![]() |
c50b7c5463 | |
![]() |
3f1d8d822b | |
![]() |
027d5fd89b |
|
@ -59,8 +59,8 @@ variables:
|
|||
services:
|
||||
- name: rroemhild/test-openldap
|
||||
alias: rroemhild-test-openldap
|
||||
- name: openstackswift/saio
|
||||
alias: swiftstack-picoswiftstack
|
||||
# - name: openstackswift/saio
|
||||
# alias: swiftstack-picoswiftstack
|
||||
.pg_template: &pg_definition
|
||||
<<: *tests_template
|
||||
needs:
|
||||
|
@ -70,8 +70,8 @@ variables:
|
|||
alias: postgres
|
||||
- name: rroemhild/test-openldap
|
||||
alias: rroemhild-test-openldap
|
||||
- name: openstackswift/saio
|
||||
alias: swiftstack-picoswiftstack
|
||||
# - name: openstackswift/saio
|
||||
# alias: swiftstack-picoswiftstack
|
||||
.mysql_template: &mysql_definition
|
||||
<<: *tests_template
|
||||
needs:
|
||||
|
@ -81,15 +81,14 @@ variables:
|
|||
alias: mariadb
|
||||
- name: rroemhild/test-openldap
|
||||
alias: rroemhild-test-openldap
|
||||
- name: openstackswift/saio
|
||||
alias: swiftstack-picoswiftstack
|
||||
# - name: openstackswift/saio
|
||||
# alias: swiftstack-picoswiftstack
|
||||
|
||||
### Publish tag changelog and create a toot
|
||||
##
|
||||
#
|
||||
include:
|
||||
- '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/2aac6c1f3dd725d9aed57549da67a92759f9f9ec/create-release-from-ci.gitlab-ci.yml'
|
||||
- 'https://framagit.org/fiat-tux/gitlabci-snippets/-/raw/4e4e03322e95e9b0124c714456ebf1bdc02ad43f/pouet-it-from-ci.gitlab-ci.yml'
|
||||
|
||||
### Podcheck
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
## ansible-role-lufi
|
||||
|
||||
An ansible role deploy the application on host machine(Ubuntu 20.04)
|
||||
|
||||
## terraform-aws-lufi
|
||||
|
||||
A terraform plan creates necessary AWS infrastructure and deploy the lufi. This terraform plan uses the `lufi_startup.sh` script to deploy application on AWS and also uses above ansible roles `ansible-role-lufi` to configure the application on AWS.
|
|
@ -0,0 +1,50 @@
|
|||
Ansible-Role-Lufi
|
||||
=========
|
||||
This role installs the and configures Lufi on Debian/Ubuntu servers with nginx web server configuration.
|
||||
|
||||
Role Variables
|
||||
--------------
|
||||
| Variable name | Value | Description |
|
||||
| ------------- | ----- | ----------- |
|
||||
| `app_dir` | /var/www/lufi | Set the application directory for the best practice |
|
||||
| `lufi_owner` | www-data | Set the application user for the best practice |
|
||||
| `lufi_group` | www-data | Set the application group for the best practice |
|
||||
| `_contact` | contact.example.com | Contact option (mandatory), where you have to put some way for the users to contact you. |
|
||||
| `_report` | report@example.com | report option (mandatory) Put an email address or an URL to let people report illegal files |
|
||||
| `_project_version` | master | We can chose the project version either Master branch, Dev branch or tag based |
|
||||
| `_server_name` | IP address (or) CNAME/FQDN | Mention the Server Name for the Nginx configurations |
|
||||
|
||||
Sample example of use in a playbook
|
||||
--------------
|
||||
|
||||
The following code has been tested with Ubuntu 20.04
|
||||
|
||||
```yaml
|
||||
|
||||
- name: "install lufi"
|
||||
hosts: enter your hosts file
|
||||
become: yes
|
||||
role:
|
||||
- ansible-role-lufi
|
||||
vars:
|
||||
lufi_owner: "www-data"
|
||||
lufi_group: "www-data"
|
||||
contact: "contact.example.com"
|
||||
report: "report@example.com"
|
||||
app_dir: "/var/www/lufi"
|
||||
project_version: "master"
|
||||
servername: "IP address (or) CNAME/FQDN"
|
||||
```
|
||||
|
||||
Contributing
|
||||
------------
|
||||
Don’t hesitate to create a pull request
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
# defaults file for roles/servers
|
||||
|
||||
robots_text: /var/www/html/
|
|
@ -0,0 +1,8 @@
|
|||
#Path of the script
|
||||
PATH=/var/www/lufi
|
||||
|
||||
carton exec script/lufi cron cleanbdd --mode production
|
||||
carton exec script/lufi cron cleanfiles --mode production
|
||||
carton exec script/lufi cron watch --mode production
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
User-agent: *
|
||||
Allow: /$
|
||||
Allow: /js/
|
||||
Allow: /css/
|
||||
Allow: /font/
|
||||
Allow: /img/
|
||||
Disallow: /r/
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
# handlers file for roles/servers
|
||||
|
||||
- name: restart nginx
|
||||
service: name=nginx state=restarted
|
|
@ -0,0 +1,23 @@
|
|||
#apprun.yml
|
||||
---
|
||||
- name: This command will install the postgress module
|
||||
ansible.builtin.shell:
|
||||
cmd: carton install --deployment --without=test --without=sqlite --without=mysql
|
||||
chdir: "{{ app_dir }}"
|
||||
|
||||
- name: Upload application file
|
||||
ansible.builtin.template:
|
||||
src: ../templates/lufi.conf.j2
|
||||
dest: "{{ app_dir }}/lufi.conf"
|
||||
|
||||
- name: Run the command for app_executes
|
||||
ansible.builtin.shell:
|
||||
cmd: carton exec hypnotoad script/lufi
|
||||
chdir: "{{ app_dir }}"
|
||||
|
||||
- name: Nginx configuration file add
|
||||
ansible.builtin.template:
|
||||
src: ../templates/app.conf
|
||||
dest: /etc/nginx/conf.d/
|
||||
mode: '0644'
|
||||
notify: restart nginx
|
|
@ -0,0 +1,34 @@
|
|||
#cron.yml
|
||||
---
|
||||
- name: Copy the cronjob file
|
||||
ansible.builtin.copy:
|
||||
src: ../files/cronjob
|
||||
dest: /etc/cron.d/
|
||||
owner: www-data
|
||||
group: www-data
|
||||
|
||||
- name: "example cronjob"
|
||||
ansible.builtin.cron:
|
||||
name: "cronjob"
|
||||
state: present
|
||||
user: www-data
|
||||
minute: "0"
|
||||
hour: "0"
|
||||
day: "*"
|
||||
month: "*"
|
||||
weekday: "*"
|
||||
job: |
|
||||
carton exec script/lufi cron cleanbdd --mode production; carton exec script/lufi cron cleanfiles --mode production; carton exec script/lufi cron watch --mode production
|
||||
|
||||
|
||||
|
||||
#- name: Crontab file exists
|
||||
# cron:
|
||||
# name: Add date and time to a file.
|
||||
# minute: "*/2"
|
||||
# hour: 9-16
|
||||
# weekday: 1-5
|
||||
# user: devops
|
||||
# job: df >> /home/devops/disk_usage
|
||||
# cron_file: disk_usage
|
||||
# state: present
|
|
@ -0,0 +1,19 @@
|
|||
#dependencies.yml
|
||||
---
|
||||
- name: Install Dependencies
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- nginx
|
||||
- build-essential
|
||||
- libssl-dev
|
||||
- libio-socket-ssl-perl
|
||||
- liblwp-protocol-https-perl
|
||||
- zlib1g-dev
|
||||
- libmojo-sqlite-perl
|
||||
- carton
|
||||
state: present
|
||||
|
||||
- name: Install Postgress Dev Packages
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- libpq-dev
|
|
@ -0,0 +1,29 @@
|
|||
#gitclone
|
||||
---
|
||||
|
||||
- name: clone the repository
|
||||
ansible.builtin.git:
|
||||
repo: 'https://framagit.org/fiat-tux/hat-softwares/lufi.git'
|
||||
dest: "{{ app_dir }}"
|
||||
clone: yes
|
||||
update: yes
|
||||
version: "{{ project_version }}"
|
||||
|
||||
- name: Change the owner
|
||||
ansible.builtin.file:
|
||||
path: "{{ app_dir }}"
|
||||
owner: "{{ lufi_owner }}"
|
||||
group: "{{ lufi_group }}"
|
||||
state: directory
|
||||
recurse: yes
|
||||
|
||||
- name: Add the robots.txt file
|
||||
ansible.builtin.copy:
|
||||
src: ../files/robots.txt
|
||||
dest: "{{ robots_text }}"
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
---
|
||||
# tasks file for roles/servers
|
||||
|
||||
- include: dependencies.yml
|
||||
- include: gitclone.yml
|
||||
- include: apprun.yml
|
||||
- include: cron.yml
|
|
@ -0,0 +1,362 @@
|
|||
# vim:set sw=4 ts=4 sts=4 ft=perl expandtab:
|
||||
{
|
||||
####################
|
||||
# Hypnotoad settings
|
||||
####################
|
||||
# see http://mojolicio.us/perldoc/Mojo/Server/Hypnotoad for a full list of settings
|
||||
hypnotoad => {
|
||||
# array of IP addresses and ports you want to listen to
|
||||
# you can specify a unix socket too, like 'http+unix://%2Ftmp%2Flufi.sock'
|
||||
listen => ['http://0.0.0.0:8081'],
|
||||
# if you use Lufi behind a reverse proxy like Nginx, you want to set proxy to 1
|
||||
# if you use Lufi directly, let it commented
|
||||
#proxy => 1,
|
||||
|
||||
# Please read http://mojolicious.org/perldoc/Mojo/Server/Hypnotoad#workers
|
||||
# to adjust this to your server
|
||||
workers => 30,
|
||||
clients => 1,
|
||||
},
|
||||
|
||||
# Put a way to contact you here and uncomment it
|
||||
# You can put some HTML in it
|
||||
# MANDATORY
|
||||
contact => '<a href="https://{{ _contact }}">Contact page</a>',
|
||||
|
||||
# Put an URL or an email address to receive file reports and uncomment it
|
||||
# It's for make reporting illegal files easy for users
|
||||
# MANDATORY
|
||||
report => '{{ _report }}',
|
||||
|
||||
# Array of random strings used to encrypt cookies
|
||||
# optional, default is ['fdjsofjoihrei'], PLEASE, CHANGE IT
|
||||
#secrets => ['fdjsofjoihrei'],
|
||||
|
||||
# Name of the instance, displayed next to the logo
|
||||
# optional, default is Lufi
|
||||
#instance_name => 'Lufi',
|
||||
|
||||
# Choose a theme. See the available themes in `themes` directory
|
||||
# Optional, default is 'default'
|
||||
#theme => 'default',
|
||||
|
||||
# Length of the random URL
|
||||
# optional, default is 8
|
||||
#length => 8,
|
||||
|
||||
# How many URLs will be provisioned in a batch ?
|
||||
# optional, default is 5
|
||||
#provis_step => 5,
|
||||
|
||||
# Max number of URLs to be provisioned
|
||||
# optional, default is 100
|
||||
#provisioning => 100,
|
||||
|
||||
# Length of the modify/delete token
|
||||
# optional, default is 32
|
||||
#token_length => 32,
|
||||
|
||||
# Max file size, in octets
|
||||
# You can write it 100*1024*1024
|
||||
# optional, no default
|
||||
#max_file_size => 104857600,
|
||||
|
||||
# If you want to have piwik statistics, provide a piwik image tracker
|
||||
# Only the image tracker is allowed, no javascript
|
||||
# optional, no default
|
||||
#piwik_img => 'https://piwik.example.org/piwik.php?idsite=1&rec=1',
|
||||
|
||||
# Broadcast_message which will displayed on the index page
|
||||
# optional, no default
|
||||
#broadcast_message => 'Maintenance',
|
||||
|
||||
# Default time limit for files
|
||||
# Valid values are 0, 1, 7, 30 and 365
|
||||
# optional, default is 0 (no limit)
|
||||
#default_delay => 0,
|
||||
|
||||
# Number of days after which the files will be deleted, even if they were uploaded with "no delay" (or value superior to max_delay)
|
||||
# A warning message will be displayed on homepage
|
||||
# optional, default is 0 (no limit)
|
||||
#max_delay => 0,
|
||||
|
||||
# Size thresholds: if you want to define max delays for different sizes of file
|
||||
# The keys are size in Bytes, you can't have 10*1000*10000 as key
|
||||
# If a file is smaller than the smallest configured size, it will have a expiration delay of max_delay (see above)
|
||||
# optional, default is using max_delay (see above) for all sizes
|
||||
#delay_for_size => {
|
||||
# 10000000 => 90, # between 10MB and 50MB => max is 90 days, less than 10MB => max is max_delay (see above)
|
||||
# 50000000 => 60, # between 50MB ans 1GB => max is 60 days
|
||||
# 1000000000 => 2, # more than 1GB => max is 2 days
|
||||
#},
|
||||
|
||||
# URL sub-directory in which you want Lufi to be accessible
|
||||
# example: you want to have Lufi under https://example.org/lufi/
|
||||
# => set prefix to '/lufi' or to '/lufi/', it doesn't matter
|
||||
# optional, defaut is /
|
||||
#prefix => '/',
|
||||
|
||||
# Array of authorized domains for API calls.
|
||||
# If you want to authorize everyone to use the API: ['*']
|
||||
# optional, no domains allowed by default
|
||||
#allowed_domains => ['http://1.example.com', 'http://2.example.com'],
|
||||
|
||||
# String of the URL to be redirected to when accessing /logout
|
||||
# optional, default is no redirection after logging out
|
||||
#logout_custom => 'https://sso.example.com/logout?redirect_uri=https%3A%2F%2Fexample.com',
|
||||
|
||||
# Define a path to the upload directory, where the uploaded files will be stored
|
||||
# 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 'files'
|
||||
#upload_dir => 'files',
|
||||
|
||||
#!!!!!!!!!!!!!!!
|
||||
# EXPERIMENTAL !
|
||||
#!!!!!!!!!!!!!!!
|
||||
# You can store files on Swift object storage (https://en.wikipedia.org/wiki/OpenStack#Swift) instead of filesystem
|
||||
# Please read https://metacpan.org/pod/Net::OpenStack::Swift#SYNOPSIS to know how to configure this setting
|
||||
# IMPORTANT: add a `container` key in it, to let Lufi know which container to use. This is not a regular Net::OpenStack::Swift setting, but Lufi need it.
|
||||
# EXPERIMENTAL: if the upload or download of files are stucked, reload Lufi and create a cron task to reload Lufi once a day
|
||||
# You can copy Lufi files to Swift object storage by launching the command `carton exec script/lufi copyFilesToSwift` (can take a long time)
|
||||
# optional, no default
|
||||
#swift => {
|
||||
# auth_url => 'https://auth-endpoint-url/v2.0',
|
||||
# user => 'userid',
|
||||
# password => 'password',
|
||||
# tenant_name => 'project_id',
|
||||
# container => 'lufi'
|
||||
#},
|
||||
|
||||
# Allow to add a password on files, asked before allowing to download files
|
||||
# optional, default is 0
|
||||
#allow_pwd_on_files => 0,
|
||||
|
||||
# Force all files to be in "Burn after reading mode"
|
||||
# optional, default is 0
|
||||
#force_burn_after_reading => 0,
|
||||
|
||||
# If set, the files' URLs will always use this domain
|
||||
# optional, no default
|
||||
#fixed_domain => 'example.org',
|
||||
|
||||
# Abuse reasons
|
||||
# Set an integer in the abuse field of a file in the database and it will not be downloadable anymore
|
||||
# The reason will be displayed to the downloader, according to the reasons you will configure here.
|
||||
# optional, no default
|
||||
#abuse => {
|
||||
# 0 => 'Copyright infringment',
|
||||
# 1 => 'Illegal content',
|
||||
#},
|
||||
|
||||
###############
|
||||
# Mail settings
|
||||
###############
|
||||
|
||||
# Mail configuration
|
||||
# See https://metacpan.org/pod/Mojolicious::Plugin::Mail#EXAMPLES
|
||||
# optional, default to sendmail method with no arguments
|
||||
#mail => {
|
||||
# # Valid values are 'sendmail' and 'smtp'
|
||||
# how => 'smtp',
|
||||
# howargs => ['smtp.example.org']
|
||||
#},
|
||||
|
||||
# Email sender address
|
||||
# optional, default to no-reply@lufi.io
|
||||
#mail_sender => 'no-reply@lufi.io',
|
||||
|
||||
# Disable sending mail through the server
|
||||
# optional, default is false
|
||||
#disable_mail_sending => 0,
|
||||
|
||||
#############
|
||||
# DB settings
|
||||
#############
|
||||
|
||||
# Choose what database you want to use
|
||||
# Valid choices are sqlite, postgresql and mysql (all lowercase)
|
||||
# optional, default is sqlite
|
||||
# dbtype => 'sqlite',
|
||||
|
||||
# SQLite ONLY - only used if dbtype is set to sqlite
|
||||
# Define a path to the SQLite database
|
||||
# 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.db
|
||||
# db_path => 'lufi.db',
|
||||
|
||||
# PostgreSQL ONLY - only used if dbtype is set to postgresql
|
||||
# These are the credentials to access the PostgreSQL database
|
||||
# mandatory if you choosed postgresql as dbtype
|
||||
pgdb => {
|
||||
database => 'lufi',
|
||||
host => 'localhost',
|
||||
# optional, default is 5432
|
||||
port => 5432,
|
||||
user => 'DBUSER',
|
||||
pwd => 'DBPASSWORD',
|
||||
# https://mojolicious.org/perldoc/Mojo/Pg#max_connections
|
||||
# optional, default is 1
|
||||
#max_connections => 1,
|
||||
},
|
||||
|
||||
# MySQL ONLY - only used if dbtype is set to mysql
|
||||
# These are the credentials to access the MySQL database
|
||||
# mandatory if you choosed mysql as dbtype
|
||||
#mysqldb => {
|
||||
# database => 'lufi',
|
||||
# host => 'localhost',
|
||||
# # optional, default is 3306
|
||||
# #port => 3306,
|
||||
# user => 'DBUSER',
|
||||
# pwd => 'DBPASSWORD',
|
||||
# # https://metacpan.org/pod/Mojo::mysql#max_connections
|
||||
# # optional, default is 5 (set to 0 to disable persistent connections)
|
||||
# #max_connections => 5,
|
||||
#},
|
||||
|
||||
#############################################
|
||||
# LDAP settings (authentication and features)
|
||||
#############################################
|
||||
|
||||
# Set `ldap` if you want that only authenticated users can upload files
|
||||
# Please note that everybody can still download files
|
||||
# optional, no default
|
||||
#ldap => {
|
||||
# uri => 'ldaps://ldap.example.org', # server URI
|
||||
# user_tree => 'ou=users,dc=example,dc=org', # search base DN
|
||||
# bind_dn => 'uid=ldap_user,ou=users,dc=example,dc=org', # search bind DN
|
||||
# bind_pwd => 'secr3t', # search bind password
|
||||
# user_attr => 'uid', # user attribute (uid, mail, sAMAccountName, etc.)
|
||||
# user_filter => '(!(uid=ldap_user))', # user filter (to exclude some users, etc.)
|
||||
# # optional start_tls configuration. See https://metacpan.org/pod/distribution/perl-ldap/lib/Net/LDAP.pod#start_tls
|
||||
# # don't set or uncomment if you don't want to configure it
|
||||
# start_tls => {
|
||||
# verify => 'optional',
|
||||
# clientcert => '/etc/ssl/certs/ca-bundle.pem'
|
||||
# }
|
||||
#},
|
||||
|
||||
# If you've set ldap above, the session will last `session_duration` seconds before
|
||||
# the user needs to reauthenticate
|
||||
# optional, default is 3600
|
||||
#session_duration => 3600,
|
||||
|
||||
# If you use `ldap` for authentication, you can map some attributes from LDAP to be able to access them in Lufi
|
||||
# Those attributes will be accessible with:
|
||||
# $c->current_user->{lufi_attribute_name} in Lufi backend files (all that is in `lib` directory)
|
||||
# <%= $self->current_user->{lufi_attribute_name} %> in templates files (in `themes` directory)
|
||||
#
|
||||
# Define the attributes like this: `lufi_attribute_name => 'LDAP_attribute_name'`
|
||||
# Note that you can’t use `username` as a Lufi attribute name: this name is reserved and will contain the login of the user
|
||||
# optional, no default
|
||||
#ldap_map_attr => {
|
||||
# displayname => 'cn',
|
||||
# mail => 'mail'
|
||||
#},
|
||||
|
||||
# When using LDAP authentication, LDAP users can invite people (by mail) to use Lufi to send them files without
|
||||
# being authenticated.
|
||||
# This is where you configure the behavior of the invitations.
|
||||
# You may need to fetch some attributes from LDAP to use some invitations settings. See `ldap_map_attr` above.
|
||||
# optional, no default
|
||||
#invitations => {
|
||||
# # The name of the key set in `ldap_map_attr` (above) that corresponds to the mail of the LDAP user
|
||||
# # optional, default is `mail`
|
||||
# mail_attr => 'mail',
|
||||
# # The `From` header of invitation mail can be the mail of the LDAP user
|
||||
# # Be sure to have a mail system that will correctly send the mail from your users! (DKIM, SPF…)
|
||||
# # To enable this feature, set it to 1
|
||||
# # optional, disabled by default
|
||||
# send_invitation_with_ldap_user_mail => 1,
|
||||
# # The user is able to set an expiration delay for the invitation.
|
||||
# # This expiration delay can’t be more than this setting (in days).
|
||||
# # optional, default is 30 days
|
||||
# max_invitation_expiration_delay => 30,
|
||||
# # Once the guest has submitted his files, he has an additional period of time to submit forgotten files.
|
||||
# # You can set that additional period of time in minutes here.
|
||||
# # To disable that feature, set it to 0 or less
|
||||
# # optional, default is 10 minutes
|
||||
# max_additional_period => 10,
|
||||
# # Lufi follows privacy-by-design, so, by default, no files URLs (with the decode secret) are stored in database.
|
||||
# # However, the concern is different for this case. Storing files URLs makes users able to retrieve the guests’ sent files
|
||||
# # from their `invitations` page.
|
||||
# # Set to 1 to store guests’ files URLs in database
|
||||
# # optional, default is 0 (disabled)
|
||||
# save_files_url_in_db => 0,
|
||||
# # Users can resend the invitation to their guest. This does not extend the invitation’s expiration delay unless you
|
||||
# # set this option to 1.
|
||||
# # optional, default is 0 (disabled)
|
||||
# extend_invitation_expiration_on_resend => 0,
|
||||
#},
|
||||
|
||||
#########################
|
||||
# Htpasswd authentication
|
||||
#########################
|
||||
|
||||
# Set `htpasswd` if you want to use an htpasswd file instead of ldap
|
||||
# See 'man htpasswd' to know how to create such file
|
||||
#htpasswd => 'lufi.passwd',
|
||||
|
||||
#######################
|
||||
# HTTP Headers settings
|
||||
#######################
|
||||
|
||||
# Content-Security-Policy header that will be sent by Lufi
|
||||
# Set to '' to disable CSP header
|
||||
# https://content-security-policy.com/ provides a good documentation about CSP.
|
||||
# https://report-uri.com/home/generate provides a tool to generate a CSP header.
|
||||
# optional, default is "base-uri 'self'; connect-src 'self' ws://YOUR_HOST; default-src 'none'; font-src 'self'; form-action 'self'; frame-ancestors 'none'; img-src 'self' blob:; media-src blob:; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'"
|
||||
#csp => "",
|
||||
|
||||
# X-Frame-Options header that will be sent by Lufi
|
||||
# Valid values are: 'DENY', 'SAMEORIGIN', 'ALLOW-FROM https://example.com/'
|
||||
# Set to '' to disable X-Frame-Options header
|
||||
# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Frame-Options
|
||||
# Please note that this will add a "frame-ancestors" directive to the CSP header (see above) accordingly
|
||||
# to the chosen setting (See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/frame-ancestors)
|
||||
# optional, default is 'DENY'
|
||||
#x_frame_options => 'DENY',
|
||||
|
||||
# X-Content-Type-Options that will be sent by Lufi
|
||||
# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-Content-Type-Options
|
||||
# Set to '' to disable X-Content-Type-Options header
|
||||
# optional, default is 'nosniff'
|
||||
#x_content_type_options => 'nosniff',
|
||||
|
||||
# X-XSS-Protection that will be sent by Lufi
|
||||
# See https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/X-XSS-Protection
|
||||
# Set to '' to disable X-XSS-Protection header
|
||||
# optional, default is '1; mode=block'
|
||||
#x_xss_protection => '1; mode=block',
|
||||
|
||||
#########################
|
||||
# Lufi cron jobs settings
|
||||
#########################
|
||||
|
||||
# Expired files will be kept for 2 additional days after the expiration time has passed!
|
||||
# The reasoning behind this is to allow downloads to complete and avoid deleting them while
|
||||
# they are still being tranfered.
|
||||
|
||||
# Number of days senders' IP addresses are kept in database
|
||||
# After that delay, they will be deleted from database (used with script/lufi cron cleanbdd)
|
||||
# optional, default is 365
|
||||
keep_ip_during => 1,
|
||||
|
||||
# Max size of the files directory, in octets
|
||||
# Used by script/lufi cron watch to trigger an action
|
||||
# optional, no default
|
||||
max_total_size => 10*1024*1024*1024,
|
||||
|
||||
# Default action when files directory is over max_total_size (used with script/lufi cron watch)
|
||||
# Valid values are 'warn', 'stop-upload' and 'delete'
|
||||
# Please, see README.md
|
||||
# optional, default is 'warn'
|
||||
policy_when_full => 'warn',
|
||||
|
||||
# Files which are not viewed since delete_no_longer_viewed_files days will be deleted by the cron cleanfiles task
|
||||
# If delete_no_longer_viewed_files is not set, the no longer viewed files will NOT be deleted
|
||||
# optional, no default
|
||||
delete_no_longer_viewed_files => 1,
|
||||
};
|
|
@ -0,0 +1,10 @@
|
|||
# install perl dependencies
|
||||
apt install liblwp-protocol-https-perl carton
|
||||
sleep 5
|
||||
git pull
|
||||
sleep 5
|
||||
carton install --deployment --without=test --without=sqlite --without=mysql
|
||||
sleep5
|
||||
carton exec hypnotoad script/lufi
|
||||
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
---
|
||||
# vars file for roles/servers
|
||||
|
||||
lufi_owner: "www-data"
|
||||
|
||||
lufi_group: "www-data"
|
||||
|
||||
app_dir: ""
|
||||
|
||||
_contact: "contact.example.com"
|
||||
|
||||
_report: "report@example.com"
|
||||
|
||||
_project_version: ""
|
||||
|
||||
_servername: ""
|
|
@ -0,0 +1,86 @@
|
|||
# Terraform-AWS-Lufi
|
||||
|
||||
This terraform plan create the resourcess of EC2 instance
|
||||
|
||||
## Terraform Variables
|
||||
Edit the `vars.tf` file to add the variables as per your need.
|
||||
|
||||
| Variable name | Value | Description |
|
||||
| ------------- | ----- | ----------- |
|
||||
| `aws_region` | us-east-1 | Set the region |
|
||||
| `vpc_cidr` | 10.0.0.0/16 | Set the cidr value for the vpc |
|
||||
| `public_subnet_cidr` | 10.0.2.0/24 | Set the cidr value for the public subnet |
|
||||
| `user` | ubuntu | Set the EC2 instance user name |
|
||||
| `public_key` | /home/user_name/.ssh/id_rsa_pub | Set the publickey value for the ec2 instance from the host machine |
|
||||
| `private_key` | /home/user_name/.ssh/id_rsa | Set the private key value for the ec2 instance from the hostmachine |
|
||||
| `aws_access_key` | AWSACCESSKEY | Enter your aws access key |
|
||||
| `aws_secrete_key` | AWSSECRETEKEY | Enter your aws secrete key |
|
||||
| `instance_name` | Lufi_app_instance | Set the name for instance |
|
||||
| `app_dir` | /var/www/ | Set the application directory for the best practice |
|
||||
| `lufi_owner` | www-data | Set the application user for the best practice |
|
||||
| `lufi_group` | www-data | Set the application group for the best practice |
|
||||
| `contact` | contact.example.com | Contact option (mandatory), where you have to put some way for the users to contact you. |
|
||||
| `report` | report@example.com | report option (mandatory) Put an email address or an URL to let people report illegal files |
|
||||
|
||||
|
||||
## Usage of terraform plan with lufi deploy script
|
||||
|
||||
```sh
|
||||
git clone https://framagit.org/fiat-tux/hat-softwares/lufi.git
|
||||
|
||||
cd lufi/.provision/terraform-aws-lufi
|
||||
|
||||
terraform init
|
||||
terraform plan
|
||||
terraform apply
|
||||
```
|
||||
## Usage of terraform plan with ansible role
|
||||
|
||||
- Comment out the below `data template` and `user_data` source in __main.tf__ file
|
||||
|
||||
```hcl
|
||||
locals {
|
||||
user_data_vars = {
|
||||
user = var.lufi_owner
|
||||
group = var.lufi_group
|
||||
directory = var.app_dir
|
||||
git_branch = var.project_version
|
||||
contact_lufi = var.contact
|
||||
report_lufi = var.report
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```hcl
|
||||
user_data = templatefile("${path.module}/lufi_startup.sh", local.user_data_vars)
|
||||
```
|
||||
|
||||
- Add the below provisioner data in __main.tf__ file at the `aws_instance` resource
|
||||
|
||||
```sh
|
||||
connection {
|
||||
agent = false
|
||||
type = "ssh"
|
||||
host = aws_instance.ec2_instance.public_dns
|
||||
private_key = "${file(var.private_key)}"
|
||||
user = "${var.user}"
|
||||
}
|
||||
|
||||
provisioner "remote-exec" {
|
||||
inline = [
|
||||
"sudo apt update -y",
|
||||
"sudo apt install python3.9 -y",
|
||||
]
|
||||
}
|
||||
|
||||
provisioner "local-exec" {
|
||||
command = <<EOT
|
||||
sleep 120 && \
|
||||
> hosts && \
|
||||
echo "[Lufi]" | tee -a hosts && \
|
||||
echo "${aws_instance.ec2_instance.public_ip} ansible_user=${var.user} ansible_ssh_private_key_file=${var.private_key}" | tee -a hosts && \
|
||||
export ANSIBLE_HOST_KEY_CHECKING=False && \
|
||||
ansible-playbook -u ${var.user} --private-key ${var.private_key} -i hosts site.yml
|
||||
EOT
|
||||
}
|
||||
```
|
|
@ -0,0 +1,59 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
echo "**********************************************************************"
|
||||
echo " *"
|
||||
echo "Install dependencies *"
|
||||
echo " *"
|
||||
echo "**********************************************************************"
|
||||
|
||||
SUDO=sudo
|
||||
$SUDO apt update
|
||||
$SUDO apt install jq wget unzip carton build-essential nginx libssl-dev libio-socket-ssl-perl liblwp-protocol-https-perl zlib1g-dev libmojo-sqlite-perl libpq-dev -y
|
||||
|
||||
echo "**********************************************************************"
|
||||
echo " *"
|
||||
echo "Configuring the Application *"
|
||||
echo " *"
|
||||
echo "**********************************************************************"
|
||||
|
||||
sleep 10;
|
||||
version=$(curl -s https://framagit.org/api/v4/projects/1998/releases | jq '.[]' | jq -r '.name' | head -1)
|
||||
echo $version
|
||||
pushd ${directory}
|
||||
$SUDO wget https://framagit.org/fiat-tux/hat-softwares/lufi/-/archive/$version/lufi-$version.zip
|
||||
$SUDO unzip lufi-$version.zip
|
||||
$SUDO chown ${user} lufi-$version
|
||||
$SUDO chgrp ${group} lufi-$version
|
||||
pushd lufi-$version
|
||||
|
||||
echo "**********************************************************************"
|
||||
echo " *"
|
||||
echo "Install Carton Packages *"
|
||||
echo " *"
|
||||
echo "**********************************************************************"
|
||||
|
||||
$SUDO carton install --deployment --without=test --without=sqlite --without=mysql
|
||||
|
||||
sleep 10;
|
||||
|
||||
$SUDO cp lufi.conf.template lufi.conf
|
||||
|
||||
sed -i 's/127.0.0.1/0.0.0.0/' lufi.conf
|
||||
sed -i 's/#contact/contact/g' lufi.conf
|
||||
sed -i "s/contact.example.com/${contact_lufi}/g" lufi.conf
|
||||
sed -i 's/#report/report/' -i lufi.conf
|
||||
sed -i "s/report@example.com/${report_lufi}/g" lufi.conf
|
||||
sed -i "192 , 194 s/#/ /g" lufi.conf && \
|
||||
sed -i "195 s/# / /g" lufi.conf && \
|
||||
sed -i "196 , 198 s/#/ /g" lufi.conf && \
|
||||
sed -i "199 , 201 s/# / /g" lufi.conf && \
|
||||
sed -i "202 s/#/ /g" lufi.conf
|
||||
|
||||
echo "**********************************************************************"
|
||||
echo " *"
|
||||
echo "Run the Application *"
|
||||
echo " *"
|
||||
echo "**********************************************************************"
|
||||
|
||||
$SUDO carton exec hypnotoad script/lufi
|
|
@ -0,0 +1,119 @@
|
|||
locals {
|
||||
user_data_vars = {
|
||||
user = var.lufi_owner
|
||||
group = var.lufi_group
|
||||
directory = var.app_dir
|
||||
contact_lufi = var.contact
|
||||
report_lufi = var.report
|
||||
}
|
||||
}
|
||||
|
||||
#Create the VPC
|
||||
resource "aws_vpc" "vpc" {
|
||||
cidr_block = "${var.vpc_cidr}"
|
||||
enable_dns_hostnames = true
|
||||
enable_dns_support = true
|
||||
instance_tenancy = "default"
|
||||
tags = {
|
||||
Name = "lufi-master-vpc"
|
||||
}
|
||||
}
|
||||
|
||||
# Create InternetGateWay and attach to VPC
|
||||
|
||||
resource "aws_internet_gateway" "IGW" {
|
||||
vpc_id = "${aws_vpc.vpc.id}"
|
||||
tags = {
|
||||
"Name" = "lufi-master-igw"
|
||||
}
|
||||
}
|
||||
|
||||
# Create a public subnet
|
||||
|
||||
resource "aws_subnet" "publicsubnet" {
|
||||
vpc_id = "${aws_vpc.vpc.id}"
|
||||
cidr_block = "${var.public_subnet_cidr}"
|
||||
map_public_ip_on_launch = true
|
||||
tags = {
|
||||
Name = "lufi-master-us-east-1-public"
|
||||
}
|
||||
}
|
||||
|
||||
# Create routeTable
|
||||
resource "aws_route_table" "public" {
|
||||
vpc_id = "${aws_vpc.vpc.id}"
|
||||
route {
|
||||
cidr_block = "0.0.0.0/0"
|
||||
gateway_id = "${aws_internet_gateway.IGW.id}"
|
||||
}
|
||||
|
||||
tags = {
|
||||
Name = "lufi-master-us-east-1-public-rt"
|
||||
}
|
||||
}
|
||||
|
||||
resource "aws_main_route_table_association" "mainRTB" {
|
||||
vpc_id = "${aws_vpc.vpc.id}"
|
||||
route_table_id = "${aws_route_table.public.id}"
|
||||
}
|
||||
## Create security group
|
||||
resource "aws_security_group" "security" {
|
||||
name = "lufi-master-sg"
|
||||
description = "allow all traffic"
|
||||
vpc_id = "${aws_vpc.vpc.id}"
|
||||
|
||||
ingress {
|
||||
description = "allow all traffic"
|
||||
from_port = "0"
|
||||
to_port = "65535"
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
ingress {
|
||||
description = "allow port SSH"
|
||||
from_port = "22"
|
||||
to_port = "22"
|
||||
protocol = "tcp"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
egress {
|
||||
from_port = 0
|
||||
to_port = 0
|
||||
protocol = "-1"
|
||||
cidr_blocks = ["0.0.0.0/0"]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#Create key_pair for the instance
|
||||
|
||||
resource "aws_key_pair" "genkey" {
|
||||
key_name = "lufi.webapp"
|
||||
public_key = "${file(var.public_key)}"
|
||||
}
|
||||
|
||||
# Add ubuntu AMI
|
||||
data "aws_ami" "ubuntu" {
|
||||
most_recent = true
|
||||
owners = ["099720109477"]
|
||||
|
||||
filter {
|
||||
name = "name"
|
||||
values = ["ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-*"]
|
||||
}
|
||||
}
|
||||
|
||||
# Craete ec2 instance
|
||||
resource "aws_instance" "ec2_instance" {
|
||||
ami = "${data.aws_ami.ubuntu.id}"
|
||||
instance_type = "t2.medium"
|
||||
associate_public_ip_address = "true"
|
||||
subnet_id = "${aws_subnet.publicsubnet.id}"
|
||||
vpc_security_group_ids = ["${aws_security_group.security.id}"]
|
||||
user_data = templatefile("${path.module}/lufi_startup.sh", local.user_data_vars)
|
||||
key_name = "lufi.webapp"
|
||||
|
||||
tags = {
|
||||
Name = "${var.instance_name}"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
output "public_ip" {
|
||||
value = "${aws_instance.ec2_instance.public_ip}"
|
||||
}
|
||||
|
||||
output "App_running_at" {
|
||||
value = "http://${aws_instance.ec2_instance.public_ip}:8081"
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
terraform {
|
||||
required_providers {
|
||||
aws = {
|
||||
source = "hashicorp/aws"
|
||||
version = "~> 3.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "aws" {
|
||||
access_key = "${var.aws_access_key}"
|
||||
secret_key = "${var.aws_secret_key}"
|
||||
region = "${var.aws_region}"
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
variable "aws_region" {
|
||||
default = "aws_region"
|
||||
}
|
||||
variable "vpc_cidr" {
|
||||
default = "cidr_value"
|
||||
}
|
||||
variable "public_subnet_cidr" {
|
||||
default = "cidr_value"
|
||||
}
|
||||
variable "public_subnet1_cidr" {
|
||||
default = "cidr_value"
|
||||
}
|
||||
|
||||
variable "user" {
|
||||
default = "user_of_instance"
|
||||
}
|
||||
|
||||
variable "public_key" {
|
||||
default = "$PWD_publickey"
|
||||
}
|
||||
variable "private_key" {
|
||||
default = "$PWD_privatekey"
|
||||
}
|
||||
variable "aws_access_key" {
|
||||
default = "aws_access_key"
|
||||
}
|
||||
|
||||
variable "aws_secret_key" {
|
||||
default = "aws_secrete_key"
|
||||
}
|
||||
|
||||
variable "instance_name" {
|
||||
default = "instance_name"
|
||||
}
|
||||
|
||||
variable "lufi_owner" {
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "lufi_group" {
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "app_dir" {
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "contact" {
|
||||
default = ""
|
||||
}
|
||||
|
||||
variable "report" {
|
||||
default = ""
|
||||
}
|
||||
|
28
CHANGELOG
28
CHANGELOG
|
@ -1,6 +1,32 @@
|
|||
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)
|
||||
|
||||
0.05.20 2023-02-21
|
||||
- ⬆️ — Update deps (#284)
|
||||
|
||||
0.05.19 2023-01-11
|
||||
- 🌐 Update translations
|
||||
- 👷 — Deactivate Swift tests in CI
|
||||
- Terraform and Ansible provisioning (@arunodhayamsam)
|
||||
- Support for header authentication (@mildis)
|
||||
|
||||
0.05.18 2022-03-19
|
||||
- ✨ Add support for header authentication, thanks to @mildis (!69)
|
||||
|
|
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 ?= rroemhild/test-openldap:latest
|
||||
LDAP_CONTAINER_IMAGE ?= docker.io/rroemhild/test-openldap:latest
|
||||
LOCAL_LDAP_PORT ?= 10389
|
||||
LOCAL_SWIFT_PORT ?= 8080
|
||||
SWIFT_CONTAINER_IMAGE ?= swiftstack/picoswiftstack:latest
|
||||
SWIFT_CONTAINER_IMAGE ?= docker.io/openstackswift/saio: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:
|
||||
sudo docker run -d -p $(LOCAL_LDAP_PORT):10389 $(LDAP_CONTAINER_IMAGE); exit 0
|
||||
podman run -d -p $(LOCAL_LDAP_PORT):10389 $(LDAP_CONTAINER_IMAGE); exit 0
|
||||
|
||||
ldapdev: ldap dev
|
||||
|
||||
swift:
|
||||
sudo docker run -d --rm -p $(LOCAL_SWIFT_PORT):8080 --hostname="picoswiftstack" --name="picoswiftstack" $(SWIFT_CONTAINER_IMAGE); exit 0
|
||||
podman 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
|
||||
sudo docker exec picoswiftstack get_auth
|
||||
podman exec picoswiftstack get_auth
|
||||
|
||||
swiftdev: swift dev
|
||||
|
||||
|
|
|
@ -95,3 +95,9 @@ It uses:
|
|||
* [Stanford Javascript Crypto Library](http://bitwiseshiftleft.github.com/sjcl/)
|
||||
* [Moment.js](http://momentjs.com/) for displaying real dates instead of unix timestamps.
|
||||
* [Filesize.js](http://filesizejs.com/) for displaying file sizes
|
||||
|
||||
## 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>.
|
||||
|
|
3
cpanfile
3
cpanfile
|
@ -7,12 +7,13 @@ requires 'Mojolicious::Plugin::GzipStatic';
|
|||
requires 'Mojolicious::Plugin::StaticCache';
|
||||
requires 'Mojolicious::Plugin::CSPHeader', '>= 0.06';
|
||||
requires 'Mojolicious::Plugin::FiatTux::Helpers', '== 0.12', url => 'https://framagit.org/fiat-tux/mojolicious/fiat-tux/mojolicious-plugin-fiattux-helpers/-/archive/0.12/mojolicious-plugin-fiattux-helpers-0.12.tar.gz';
|
||||
requires 'Mojolicious::Plugin::FiatTux::GrantAccess', '== 0.08', url => 'https://framagit.org/fiat-tux/mojolicious/fiat-tux/mojolicious-plugin-fiattux-grantaccess/-/archive/0.08/mojolicious-plugin-fiattux-grantaccess-0.08.tar.gz';
|
||||
requires 'Mojolicious::Plugin::FiatTux::GrantAccess', '== 0.10', url => 'https://framagit.org/fiat-tux/mojolicious/fiat-tux/mojolicious-plugin-fiattux-grantaccess/-/archive/0.10/mojolicious-plugin-fiattux-grantaccess-0.10.tar.gz';
|
||||
requires 'Mojolicious::Plugin::FiatTux::Themes', '== 0.02', url => 'https://framagit.org/fiat-tux/mojolicious/fiat-tux/mojolicious-plugin-fiattux-themes/-/archive/0.02/mojolicious-plugin-fiattux-themes-0.02.tar.gz';
|
||||
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,6 +79,9 @@ 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);
|
||||
|
||||
|
@ -191,7 +194,7 @@ sub startup {
|
|||
->name('config');
|
||||
|
||||
# Generated js files
|
||||
$r->get('/partial/:file')
|
||||
$r->get('/partial/<:file>.<:ext>')
|
||||
->to('Misc#js_files')
|
||||
->name('partial');
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ sub upload {
|
|||
my $invitation;
|
||||
my $token = $c->session->{guest_token};
|
||||
$invitation = Lufi::DB::Invitation->new(app => $c->app)->from_token($token) if $token;
|
||||
if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd'))) || $c->is_user_authenticated || $invitation) {
|
||||
if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd')) && !defined($c->config('auth_headers'))) || $c->is_user_authenticated || $invitation) {
|
||||
$c->inactivity_timeout(30000000);
|
||||
|
||||
$c->app->log->debug('Client connected');
|
||||
|
@ -161,7 +161,7 @@ sub upload {
|
|||
|
||||
my $creator = $c->ip;
|
||||
# Authenticated user logging
|
||||
if ((defined($c->config('ldap')) || defined($c->config('htpasswd'))) && !$invitation) {
|
||||
if ((defined($c->config('ldap')) || defined($c->config('htpasswd')) || defined($c->config('auth_headers'))) && !$invitation) {
|
||||
$creator = sprintf('User: %s, IP: %s', $c->current_user->{username}, $creator);
|
||||
}
|
||||
# Guest user logging
|
||||
|
@ -401,7 +401,7 @@ sub get_counter {
|
|||
my $short = $c->param('short');
|
||||
my $token = $c->param('token');
|
||||
|
||||
if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd'))) || $c->is_user_authenticated) {
|
||||
if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd')) && !defined($c->config('auth_headers'))) || $c->is_user_authenticated) {
|
||||
my $ldfile = Lufi::DB::File->new(app => $c->app)->from_short($short);
|
||||
|
||||
if (defined $ldfile) {
|
||||
|
@ -451,7 +451,7 @@ sub delete {
|
|||
my $short = $c->param('short');
|
||||
my $token = $c->param('token');
|
||||
|
||||
if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd'))) || $c->is_user_authenticated) {
|
||||
if ((!defined($c->config('ldap')) && !defined($c->config('htpasswd')) && !defined($c->config('auth_headers'))) || $c->is_user_authenticated) {
|
||||
my $ldfile = Lufi::DB::File->new(app => $c->app)->from_short($short);
|
||||
|
||||
$ldfile = undef unless (defined($ldfile) && $ldfile->mod_token eq $token);
|
||||
|
|
|
@ -140,7 +140,7 @@ sub store {
|
|||
|
||||
# Write file
|
||||
my $file = catfile($c->app->config('upload_dir'), $c->get_path());
|
||||
Mojo::File->new($file)->spurt($text);
|
||||
Mojo::File->new($file)->spew($text);
|
||||
}
|
||||
|
||||
return $c;
|
||||
|
|
|
@ -149,6 +149,14 @@
|
|||
# 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,6 +139,14 @@
|
|||
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,6 +135,14 @@
|
|||
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,6 +139,14 @@
|
|||
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
|
||||
###############
|
||||
|
|
16
t/test.t
16
t/test.t
|
@ -108,10 +108,10 @@ auth_test_suite('zoidberg', 'zoidberg');
|
|||
restore_config();
|
||||
|
||||
## Test Swift object storage
|
||||
switch_to_swift();
|
||||
test_upload_file();
|
||||
test_download_file();
|
||||
restore_config();
|
||||
#switch_to_swift();
|
||||
#test_upload_file();
|
||||
#test_download_file();
|
||||
#restore_config();
|
||||
|
||||
done_testing();
|
||||
|
||||
|
@ -269,13 +269,13 @@ sub test_login {
|
|||
}
|
||||
|
||||
sub restore_config {
|
||||
$config_file->spurt($config_orig);
|
||||
$config_file->spew($config_orig);
|
||||
}
|
||||
|
||||
sub switch_to_htpasswd {
|
||||
$config_content = $config_orig;
|
||||
$config_content =~ s/#?htpasswd.*/htpasswd => 't\/lufi.passwd',/gm;
|
||||
$config_file->spurt($config_content);
|
||||
$config_file->spew($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->spurt($config_content);
|
||||
$config_file->spew($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->spurt($config_content);
|
||||
$config_file->spew($config_content);
|
||||
|
||||
Lufi::DB::Slice->new(app => $m)->delete_all;
|
||||
Lufi::DB::File->new(app => $m)->delete_all;
|
||||
|
|
|
@ -0,0 +1,848 @@
|
|||
# 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: 2022-03-01 10:49+0000\n"
|
||||
"PO-Revision-Date: 2023-05-12 14:05+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.10.1\n"
|
||||
"X-Generator: Weblate 4.17\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 vu hà mandatu schedarii"
|
||||
msgstr "%1 vi hà mandatu schedarii"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
|
||||
|
@ -84,12 +84,12 @@ msgstr ""
|
|||
|
||||
#: themes/default/templates/partial/invitations.js.ep:3
|
||||
msgid "Are you sure you want to delete the selected invitations?"
|
||||
msgstr "Site sicuru di vulè squassà l’invitazioni selezziunate ?"
|
||||
msgstr "Da veru, vulete squassà l’invitazioni selezziunate ?"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:4
|
||||
msgid "Are you sure you want to resend the invitation mail for the selected invitations?"
|
||||
msgstr ""
|
||||
"Site sicuru di vulè mandà torna u messaghju d’invitazione per l’invitazioni "
|
||||
"Da veru, vulete mandà torna u messaghju d’invitazione per l’invitazioni "
|
||||
"selezziunate ?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:17
|
||||
|
@ -224,7 +224,7 @@ msgstr ""
|
|||
|
||||
#: themes/default/templates/index.html.ep:122
|
||||
msgid "Drop files here"
|
||||
msgstr "Depunite i vostri schedarii quì"
|
||||
msgstr "Depunite quì i vostri schedarii"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:40
|
||||
msgid "Email address of your guest"
|
||||
|
@ -607,7 +607,7 @@ msgstr ""
|
|||
#: themes/default/templates/index.html.ep:46
|
||||
msgid "Sorry, the uploading is currently disabled. Please try again later."
|
||||
msgstr ""
|
||||
"Per disgrazia, l’incaricamentu di schedariu hè disattivatu à st’ora. Provate "
|
||||
"Per disgrazia, l’incaricamentu di schedariu hè disattivatu à st’ora. Pruvate "
|
||||
"torna un altra volta."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:82
|
||||
|
|
|
@ -0,0 +1,858 @@
|
|||
# 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 ""
|
|
@ -0,0 +1,925 @@
|
|||
# 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: 2022-10-20 18:33+0000\n"
|
||||
"Last-Translator: Milo Ivir <mail@milotype.de>\n"
|
||||
"Language-Team: Croatian <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/hr/>\n"
|
||||
"Language: hr\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%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.14.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
|
||||
msgid "%1 days"
|
||||
msgstr "%1 dana"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:2
|
||||
msgid "%1 invites you to send him/her files"
|
||||
msgstr "%1 te poziva da mu/joj pošalješ datoteke"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:6
|
||||
msgid "%1 invites you to send him/her files through Lufi."
|
||||
msgstr "%1 te poziva da mu/joj pošalješ datoteke putem Lufia."
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:4
|
||||
msgid "%1 sent you files"
|
||||
msgstr "%1 ti je poslao/la datoteke"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
|
||||
msgid "%1 used your invitation to send you files:"
|
||||
msgstr "%1 je koristio/la tvoju pozivnicu za slanje datoteka:"
|
||||
|
||||
#: 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. %m. %Y. u %T"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:28
|
||||
msgid "(max size: XXX)"
|
||||
msgstr "(maks. veličina: XXX)"
|
||||
|
||||
#: themes/default/templates/index.html.ep:5
|
||||
msgid "1 year"
|
||||
msgstr "1 godina"
|
||||
|
||||
#: themes/default/templates/index.html.ep:4 themes/default/templates/index.html.ep:65
|
||||
msgid "24 hours"
|
||||
msgstr "24 sata"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:40
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
|
||||
#: themes/default/templates/render.html.ep:42
|
||||
msgid "Abort"
|
||||
msgstr "Prekini"
|
||||
|
||||
#: 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 datotekama lozinku"
|
||||
|
||||
#: 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 ""
|
||||
"Dodavanje URL-ova koji nisu povezani s ovom LUFI instancom, sa sadržajem ili "
|
||||
"predmetom e-maila je zabranjeno."
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:3
|
||||
msgid "Are you sure you want to delete the selected invitations?"
|
||||
msgstr "Stvarno želiš izbrisati odabranu pozivnicu?"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:4
|
||||
msgid "Are you sure you want to resend the invitation mail for the selected invitations?"
|
||||
msgstr "Stvarno želiš ponovo poslati e-mail pozivnicu za odabrane pozivnice?"
|
||||
|
||||
#: 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 ""
|
||||
"Budući da je Lufi slobodan softver licenciran pod <a href=\"https://gnu.org/"
|
||||
"licenses/agpl.html\" class=\"classic\">AGPLv3</a> uvjetima, možeš ga "
|
||||
"instalirati na vlastiti poslužitelj. Pogledaj <a href=\"https://framagit.org/"
|
||||
"fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a> za "
|
||||
"postupak."
|
||||
|
||||
#. (stash('nbslices')
|
||||
#: themes/default/templates/partial/render.js.ep:10
|
||||
msgid "Asking for file part XX1 of %1"
|
||||
msgstr "Traži se dio datoteke XX1 od %1"
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "Back to homepage"
|
||||
msgstr "Natrag na web-stranicu"
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:26
|
||||
msgid "Bad CSRF token!"
|
||||
msgstr "Neispravan CSRF token!"
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:27 lib/Lufi/Controller/Auth.pm:49
|
||||
msgid "Bad CSRF token."
|
||||
msgstr "Neispravan CSRF token."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:5
|
||||
msgid "Click here to refresh the page and restart the download."
|
||||
msgstr ""
|
||||
"Pritisni ovdje za aktualiziranje stranice i ponovno pokretanje preuzimanja."
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:8
|
||||
msgid "Click on the following URL to upload files on Lufi:"
|
||||
msgstr "Pritisni sljedeći URL za prijenos datoteka na Lufi:"
|
||||
|
||||
#: themes/default/templates/index.html.ep:126
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Pritisni za otvaranje preglednika datoteka"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:42 themes/default/templates/invitations/my_invitations.html.ep:80
|
||||
msgid "Close"
|
||||
msgstr "Zatvori"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:23
|
||||
msgid "Comma-separated email addresses"
|
||||
msgstr "Zarezom odvojene e-mail adrese"
|
||||
|
||||
#: themes/default/templates/index.html.ep:140
|
||||
msgid "Compressing zip file…"
|
||||
msgstr "Komprimiranje zip datoteke …"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:15
|
||||
msgid "Copy all links to clipboard"
|
||||
msgstr "Kopiraj sve poveznice u međuspremnik"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:18
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopiraj u međuspremnik"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:501
|
||||
msgid "Could not delete the file. You are not authenticated."
|
||||
msgstr "Nije moguće izbrisati datoteku. Nisi autentificiran/a."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:483
|
||||
msgid "Could not find the file. Are you sure of the URL and the token?"
|
||||
msgstr "Nije moguće pronaći datoteku. Jesu li URL i token ispravni?"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:394
|
||||
msgid "Could not find the file. Are you sure of the URL?"
|
||||
msgstr "Nije moguće pronaći datoteku. Je li URL ispravan?"
|
||||
|
||||
#: themes/default/templates/files.html.ep:29
|
||||
msgid "Counter"
|
||||
msgstr "Brojač"
|
||||
|
||||
#: themes/default/templates/index.html.ep:100
|
||||
msgid "Create a zip archive with the files before uploading?"
|
||||
msgstr "Stvoriti zip arhivu s datotekama prije prijenosa?"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:26
|
||||
msgid "Created at"
|
||||
msgstr "Stvoreno"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:14
|
||||
msgid "Delete"
|
||||
msgstr "Izbriši"
|
||||
|
||||
#: themes/default/templates/files.html.ep:30 themes/default/templates/index.html.ep:90
|
||||
msgid "Delete at first download?"
|
||||
msgstr "Izbrisati pri prvom preuzimanju?"
|
||||
|
||||
#: themes/default/templates/files.html.ep:19
|
||||
msgid "Delete selected files"
|
||||
msgstr "Izbriši odabrane datoteke"
|
||||
|
||||
#: themes/default/templates/files.html.ep:33 themes/default/templates/partial/index.js.ep:19
|
||||
msgid "Deletion link"
|
||||
msgstr "Poveznica za brisanje"
|
||||
|
||||
#: 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 ""
|
||||
"Ne brini: ako osoba počne preuzimati datoteku prije isteka i preuzimanje "
|
||||
"završi nakon isteka, ona će moći dobiti datoteku."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:21 themes/default/templates/render.html.ep:28
|
||||
msgid "Download"
|
||||
msgstr "Preuzmi"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:4
|
||||
msgid "Download aborted."
|
||||
msgstr "Preuzimanje je prekinuto."
|
||||
|
||||
#: themes/default/templates/files.html.ep:28 themes/default/templates/partial/index.js.ep:20
|
||||
msgid "Download link"
|
||||
msgstr "Poveznica za preuzimanje"
|
||||
|
||||
#: 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 ""
|
||||
"Povuci i ispusti datoteke u odgovarajućem području ili koristi tradicionalni "
|
||||
"način slanja datoteka. Datoteke će se rastaviti na dijelove, šifrirat će se "
|
||||
"te će se poslati na poslužitelj. Za svaku datoteku ćeš dobiti dvije "
|
||||
"poveznice: poveznicu za preuzimanje koju šalješ ljudima s kojima želiš "
|
||||
"dijeliti datoteku i poveznicu za brisanje koja omogućuje brisanje datoteke "
|
||||
"kad god želiš."
|
||||
|
||||
#: themes/default/templates/index.html.ep:122
|
||||
msgid "Drop files here"
|
||||
msgstr "Ispusti datoteke ovdje"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:40
|
||||
msgid "Email address of your guest"
|
||||
msgstr "E-mail adrese tvog gosta"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:39
|
||||
msgid "Email body"
|
||||
msgstr "Tekst e-maila"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:31
|
||||
msgid "Email subject"
|
||||
msgstr "Predmet e-maila"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:25 themes/default/templates/mail.html.ep:27
|
||||
msgid "Emails"
|
||||
msgstr "E-mailovi"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:22
|
||||
msgid "Encrypting part XX1 of XX2"
|
||||
msgstr "Šifrara se dio XX1 od XX2"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:283
|
||||
msgid "Error: the file existed but was deleted."
|
||||
msgstr "Greška: datoteka je postojala ali je izbrisana."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:363
|
||||
msgid "Error: the file has not been sent entirely."
|
||||
msgstr "Greška: datoteka nije u potpunosti poslana."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:373
|
||||
msgid "Error: unable to find the file. Are you sure of your URL?"
|
||||
msgstr "Greška: nije moguće pronaći datoteku. Je li tvoj URL ispravan?"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:23
|
||||
msgid "Expiration:"
|
||||
msgstr "Istek:"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:27
|
||||
msgid "Expire at"
|
||||
msgstr "Isteču"
|
||||
|
||||
#: themes/default/templates/files.html.ep:32
|
||||
msgid "Expires at"
|
||||
msgstr "Isteče"
|
||||
|
||||
#: themes/default/templates/files.html.ep:12
|
||||
msgid "Export localStorage data"
|
||||
msgstr "Izvezi podatke lokalnog spremišta"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:465
|
||||
msgid "File deleted"
|
||||
msgstr "Datoteka je izbrisana"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:9
|
||||
msgid "File downloaded"
|
||||
msgstr "Datoteka je preuzeta"
|
||||
|
||||
#: themes/default/templates/files.html.ep:27
|
||||
msgid "File name"
|
||||
msgstr "Ime datoteke"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:24
|
||||
msgid "File uploaded"
|
||||
msgstr "Datoteka je prenesena"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:61
|
||||
msgid "Files"
|
||||
msgstr "Datoteke"
|
||||
|
||||
#: themes/default/templates/index.html.ep:80
|
||||
msgid "Files deleted at first download"
|
||||
msgstr "Datoteke su izbrisane pri prvom preuzimanju"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:28
|
||||
msgid "Files sent at"
|
||||
msgstr "Datoteke su poslane na"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:8
|
||||
msgid "Files sent in invitation XX1 by XX2"
|
||||
msgstr "Datoteke su poslane u pozivnici XX1 od XX2"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:8
|
||||
msgid "Get the file"
|
||||
msgstr "Preuzmi datoteku"
|
||||
|
||||
#: 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 ""
|
||||
"Preuzmi izvorni kod sa <a href=\"https://framagit.org/fiat-tux/hat-softwares/"
|
||||
"lufi\" class=\"classic\">službenog repozitorija</a> ili s njegovog <a href="
|
||||
"\"https://github.com/ldidry/lufi\" class=\"classic\">Github zrcala</a>"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:24
|
||||
msgid "Guest mail"
|
||||
msgstr "E-mail adrese gosta"
|
||||
|
||||
#. (ucfirst(stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:6
|
||||
msgid "Hello %1,"
|
||||
msgstr "Zdravo %1,"
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:4
|
||||
msgid "Hello,"
|
||||
msgstr "Zdravo,"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:35
|
||||
msgid "Hello,\\n\\nHere's some files I want to share with you:\\n"
|
||||
msgstr ""
|
||||
"Zdravo,\\n"
|
||||
"\\n"
|
||||
"Evo par datoteka koje s tobom želim dijeliti:\\n"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:35
|
||||
msgid "Here's some files"
|
||||
msgstr "Evo par datoteka"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:7
|
||||
msgid "Hide hidden invitations"
|
||||
msgstr "Sakrij skrivene pozivnice"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:26
|
||||
msgid "Hit Enter, then Ctrl+C to copy all the download links"
|
||||
msgstr ""
|
||||
"Za kopiranje svih poveznica za preuzimanje pritisni Enter, a zatim Ctrl+C"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:25
|
||||
msgid "Hit Enter, then Ctrl+C to copy the download link"
|
||||
msgstr "Za kopiranje poveznice za preuzimanje pritisni Enter, a zatim Ctrl+C"
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "How does it work?"
|
||||
msgstr "Kako radi?"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:46
|
||||
msgid "How many days would you like the invitation to be valid?"
|
||||
msgstr "Koliko dana želiš da pozivnica valja?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "How to install the software on my server?"
|
||||
msgstr "Kako instalirati softver na moj poslužitelj?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "How to report an illegal file?"
|
||||
msgstr "Kako prijaviti ilegalnu sliku?"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:8
|
||||
msgid "If you choose a delay, the file will be deleted after that delay."
|
||||
msgstr "Ako odabereš odgađanje, datoteka će se izbrisati nakon tog odgađanja."
|
||||
|
||||
#: 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 ""
|
||||
"Ako pošalješ e-mail s ovog poslužitelja, poveznice će se poslati na "
|
||||
"poslužitelj, što može smanjiti zaštitu tvoje privatnosti."
|
||||
|
||||
#: themes/default/templates/files.html.ep:14
|
||||
msgid "Import localStorage data"
|
||||
msgstr "Uvezi podatke lokalnog spremišta"
|
||||
|
||||
#: themes/default/templates/index.html.ep:53
|
||||
msgid "Important: more information on delays"
|
||||
msgstr "Važno: više informacija o odgađanjima"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:5
|
||||
msgid "Information about delays"
|
||||
msgstr "Informacije o odgađanjima"
|
||||
|
||||
#: themes/default/templates/files.html.ep:18 themes/default/templates/invitations/my_invitations.html.ep:12
|
||||
msgid "Invert selection"
|
||||
msgstr "Preokreni odabir"
|
||||
|
||||
#. ($i->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:184
|
||||
msgid "Invitation resent to %1.<br> URL: %2"
|
||||
msgstr "Pozivnica ponovo poslana za %1.<br> URL: %2"
|
||||
|
||||
#. ($invitation->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:88
|
||||
msgid "Invitation sent to %1.<br> URL: %2"
|
||||
msgstr "Pozivnica poslana za %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 "Pozovi gosta"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:6
|
||||
msgid "It seems that the key in your URL is incorrect. Please, verify your URL."
|
||||
msgstr "Čini se da je ključ u tvom URL-u netočan. Provjeri svoj URL."
|
||||
|
||||
#: themes/default/templates/index.html.ep:12
|
||||
msgid "Javascript is disabled. You won't be able to use Lufi."
|
||||
msgstr "JavaScript je isključen. Nećeš moći koristiti 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 "Jezik"
|
||||
|
||||
#. (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 "Zadnja izmjena ove instance: %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 "Zadnja oznaka ove instance: %1"
|
||||
|
||||
#: themes/default/templates/login.html.ep:15
|
||||
msgid "Login"
|
||||
msgstr "Prijava"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58 themes/default/templates/layouts/default.html.ep:91
|
||||
msgid "Logout"
|
||||
msgstr "Odjava"
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lufi is a free (as in free speech) file hosting software."
|
||||
msgstr "Lufi je slobodan softver za hosting datoteka."
|
||||
|
||||
#: 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 je nedavno promijenio način spremanja podataka datoteka.\\n"
|
||||
"\\n"
|
||||
"Nijedna datoteka nije pronađene u novom lokalnom spremištu, ali smo pronašli "
|
||||
"datoteke u starom.\\n"
|
||||
"Želiš li uvesti te podatke?\\n"
|
||||
"\\n"
|
||||
"Imaj na umu da jćemo te ovo pitati samo jedanput."
|
||||
|
||||
#: themes/default/templates/files.html.ep:34
|
||||
msgid "Mail"
|
||||
msgstr "Pošta"
|
||||
|
||||
#: 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 datoteke"
|
||||
|
||||
#: 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 pozivnice"
|
||||
|
||||
#: 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 ""
|
||||
"Ne zaboravi: Ovaj popis uključuje popis datoteka koje su ti već poslane."
|
||||
|
||||
#: themes/default/templates/index.html.ep:115
|
||||
msgid "Name of the zip file"
|
||||
msgstr "Ime zip datoteke"
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:109
|
||||
msgid "No enough space available on the server for this file (size: %1)."
|
||||
msgstr ""
|
||||
"Poslužitelj nema dovoljnu količinu memorije za ovu datoteku (veličina: %1)."
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:10 themes/default/templates/partial/index.js.ep:29
|
||||
msgid "No expiration delay"
|
||||
msgstr "Bez odgađanja isteka"
|
||||
|
||||
#: 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 ""
|
||||
"Ovdje će se navesti samo datoteke koje su poslane s ovim preglednikom. Ovaj "
|
||||
"se popis sprema u lokalno spremište: ako izbrišeš svoje podatke lokalnog "
|
||||
"spremišta, izgubit ćeš ovaj popis."
|
||||
|
||||
#: themes/default/templates/index.html.ep:106 themes/default/templates/login.html.ep:21 themes/default/templates/render.html.ep:26
|
||||
msgid "Password"
|
||||
msgstr "Lozinka"
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:13
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Kontaktiraj administratora: %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 ""
|
||||
"Pričekaj dok preuzimamo tvoju datoteku. Prije nego što je možeš preuzeti, "
|
||||
"moramo je najprije preuzeti i dešifrirati sve dijelove."
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:38
|
||||
msgid "Please, check your credentials or your right to access this service: unable to authenticate."
|
||||
msgstr ""
|
||||
"Provjeri svoje podatke za prijavu ili pravo na pristup ovoj usluzi: "
|
||||
"neuspjela autentifikacija."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
msgid "Privacy"
|
||||
msgstr "Privatnost"
|
||||
|
||||
#: themes/default/templates/files.html.ep:13
|
||||
msgid "Purge expired files from localStorage"
|
||||
msgstr "Potpuno izbriši istekle datoteke iz lokalonog spremišta"
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:20
|
||||
msgid "Regards,"
|
||||
msgstr "Pozdrav,"
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:15
|
||||
msgid "Regards."
|
||||
msgstr "Pozdrav."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:31 themes/default/templates/layouts/default.html.ep:64
|
||||
msgid "Report file"
|
||||
msgstr "Prijavi datoteku"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:15
|
||||
msgid "Resend invitation mail"
|
||||
msgstr "Ponovo pošalji e-mail pozivnicu"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:9
|
||||
msgid "Rows in purple mean that the invitations have expired."
|
||||
msgstr "Ljubičasto obojeni redci znače da su pozivnice istekle."
|
||||
|
||||
#: themes/default/templates/files.html.ep:9
|
||||
msgid "Rows in red mean that the files have expired and are no longer available."
|
||||
msgstr ""
|
||||
"Crveno obojeni redci znače da su datoteke istekle i da više nisu dostupne."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:27
|
||||
msgid "Send all links by email"
|
||||
msgstr "Pošalji sve poveznice putem e-maila"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:50
|
||||
msgid "Send the invitation"
|
||||
msgstr "Pošalji pozivnicu"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:47
|
||||
msgid "Send with this server"
|
||||
msgstr "Pošalji s poslužiteljem"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:49
|
||||
msgid "Send with your own mail software"
|
||||
msgstr "Pošalji s vlastitim e-mail softverom"
|
||||
|
||||
#: 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 ""
|
||||
"Slanje dijela XX1 od xx2. Strpi se, može potrajati neko vrijeme dok se traka "
|
||||
"napretka pomakne."
|
||||
|
||||
#. (url_for('/')
|
||||
#: themes/default/templates/partial/mail.js.ep:49
|
||||
msgid "Share your files in total privacy on %1"
|
||||
msgstr "Dijeli svoje datoteke potpuno privatno 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ži skrivene pozivnice"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:12
|
||||
msgid "Show zip content"
|
||||
msgstr "Pokaži sadržaj zip datoteke"
|
||||
|
||||
#: 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 "Registracija"
|
||||
|
||||
#: 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 "Žao nam je, pozivnica ne postoji. Je li se nalaziš na ispravom URL-u?"
|
||||
|
||||
#: themes/default/templates/index.html.ep:46
|
||||
msgid "Sorry, the uploading is currently disabled. Please try again later."
|
||||
msgstr ""
|
||||
"Žao nam je, mogućnost prijenosa je trenutačno isključeno. Pokušaj kasnije "
|
||||
"ponovo."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:82
|
||||
msgid "Sorry, uploading is disabled."
|
||||
msgstr "Žao nam je, mogućnost prijenosa je isključeno."
|
||||
|
||||
#: themes/default/templates/invitations/exception.html.ep:7
|
||||
msgid "Sorry, your invitation has expired or has been deleted."
|
||||
msgstr "Žao nam je, tvoja je pozivnica istekla ili izbrisana."
|
||||
|
||||
#. ($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 ""
|
||||
"Žao nam je, tvoja je pozivnica istekla ili izbrisana. Za dobivanje nove "
|
||||
"pozivnice kontaktiraj %1."
|
||||
|
||||
#. ($invitation->ldap_user_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:295
|
||||
msgid "The URLs of your files have been sent by email to %1."
|
||||
msgstr "URL-ovi tvojih datoteka poslani su e-mailom na %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 može vidjeti samo ime datoteke, njegovu veličinu i vrstu ("
|
||||
"video, tekst itd.)."
|
||||
|
||||
#: 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 ""
|
||||
"Sadržaj e-maila mora sadržati barem jedan URL koji ukazuje na datoteku na "
|
||||
"ovoj instanci."
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:11
|
||||
msgid "The data has been successfully imported."
|
||||
msgstr "Podaci su uspješno uvezeni."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:87
|
||||
msgid "The email body can't be empty."
|
||||
msgstr "Sadržaj e-maila ne smije biti prazan."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:86
|
||||
msgid "The email subject can't be empty."
|
||||
msgstr "Predmet e-maila ne smije biti prazan."
|
||||
|
||||
#. ($expire_at, $max_expire_at)
|
||||
#: lib/Lufi/Controller/Invitation.pm:52
|
||||
msgid "The expiration delay (%1) is not between 1 and %2 days."
|
||||
msgstr "Odgađanja isteka (%1) nije između 1 i %2 dana."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:462
|
||||
msgid "The file has already been deleted"
|
||||
msgstr "Datoteka je već izbrisana"
|
||||
|
||||
#: 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 ""
|
||||
"Na Lufi instancu prenesene datoteke se šifriraju prije prenošenja na "
|
||||
"poslužitelj: administrator poslužitelja ne može vidjeti sadržaj datoteke."
|
||||
|
||||
#. (join(', ', @bad)
|
||||
#: lib/Lufi/Controller/Mail.pm:82
|
||||
msgid "The following email addresses are not valid: %1"
|
||||
msgstr "Sljedeće e-mail adrese nisu ispravne: %1"
|
||||
|
||||
#. ($guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:49
|
||||
msgid "The guest email address (%1) is unvalid."
|
||||
msgstr "E-mail adresa gosta (%1) je neispravna."
|
||||
|
||||
#. ($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 "Pozivnica %1 se ne može izbrisati: nisi autor pozivnice ( %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 ""
|
||||
"Pozivnica %1 se ne može ponovo poslati: %2 je već poslao datoteke.<br>Stvori "
|
||||
"novu pozivnicu."
|
||||
|
||||
#. ($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 "Pozivnica %1 se ne može ponovo poslati: nisi autor pozivnice ( %2)."
|
||||
|
||||
#. ($i->token)
|
||||
#: lib/Lufi/Controller/Invitation.pm:134
|
||||
msgid "The invitation %1 has been deleted."
|
||||
msgstr "Pozivnica %1 je izbrisana."
|
||||
|
||||
#. (stash('user_mail')
|
||||
#: themes/default/templates/invitations/invite.html.ep:34
|
||||
msgid "The invitation mail will be send from your email address (%1)."
|
||||
msgstr "E-mail pozivnica će se poslati s tvoje e-mail adrese (%1)."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:16
|
||||
msgid "The link(s) has been copied to your clipboard"
|
||||
msgstr "Poveznice su kopirane u međuspremnik"
|
||||
|
||||
#. (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 "Poveznice tvojih datoteka će se automatski poslati e-mailom na %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 "Poveznice tvojih datoteka će se automatski poslati e-mailom na %1."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:111
|
||||
msgid "The mail has been sent."
|
||||
msgstr "Ovaj e-mail je poslan."
|
||||
|
||||
#: 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 ""
|
||||
"Izvorni (i samo za sada) autor je <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 ""
|
||||
"Poslužitelj nije uspio pronaći zapis datoteke za dodavanje tvog dijela "
|
||||
"datoteke. Kontaktiraj administratora."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:289
|
||||
msgid "This file has been deactivated by the admins. Contact them to know why."
|
||||
msgstr ""
|
||||
"Administratori su deaktivirali ovu datoteku. Kontaktiraj ih i saznaj zašto."
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:46 themes/default/templates/partial/invitations.js.ep:6
|
||||
msgid "This invitation is normally hidden"
|
||||
msgstr "Ovaj je poziv obično skriven"
|
||||
|
||||
#. (stash('expires')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:13
|
||||
msgid "This invitation is valid until %1."
|
||||
msgstr "Ovaj je poziv valjan 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 ""
|
||||
"Ovaj poslužitelj postavlja ograničenja u skladu s veličinom datoteke. "
|
||||
"Odgađanja isteka tvoje datoteke bit će minimum između onoga što odabereš i "
|
||||
"sljedećih ograničenja:"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:16
|
||||
msgid "Toggle visibility"
|
||||
msgstr "Uključi/isključi vidljivost"
|
||||
|
||||
#: 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 "Neuspjelo kopiranje poveznica u međuspremnik"
|
||||
|
||||
#: 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 ""
|
||||
"Neuspjelo preuzimanje datoteke: previše neuspjelih pokušaja otvaranja "
|
||||
"websocket protokola. Kontaktiraj administratora."
|
||||
|
||||
#. ($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 ""
|
||||
"Neuspjelo dobivanje brojača za %1. Datoteka ne postoji. Uklonit će se iz "
|
||||
"tvog lokalnog spremišta."
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:423
|
||||
msgid "Unable to get counter for %1. The token is invalid."
|
||||
msgstr "Neuspjelo dobivanje brojača za %1. Token nije ispravan."
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:443
|
||||
msgid "Unable to get counter for %1. You are not authenticated."
|
||||
msgstr "Neuspjelo dobivanje brojača za %1. Nisi autentificiran/a.."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:33 themes/default/templates/layouts/default.html.ep:66
|
||||
msgid "Upload files"
|
||||
msgstr "Prenesi datoteke"
|
||||
|
||||
#: themes/default/templates/index.html.ep:145
|
||||
msgid "Upload generated zip file"
|
||||
msgstr "Prenesi generiranu zip datoteku"
|
||||
|
||||
#: themes/default/templates/files.html.ep:31
|
||||
msgid "Uploaded at"
|
||||
msgstr "Preneseno"
|
||||
|
||||
#: themes/default/templates/index.html.ep:153
|
||||
msgid "Uploaded files"
|
||||
msgstr "Prenesene datoteke"
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "Version"
|
||||
msgstr "Verzija"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:31
|
||||
msgid "Websocket communication error"
|
||||
msgstr "Greška u komunikaciji websocket protokola"
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lufi?"
|
||||
msgstr "Što je Lufi?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "Who wrote this software?"
|
||||
msgstr "Tko je napisao ovaj softver?"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:13
|
||||
msgid "XXX file has been added to upload queue."
|
||||
msgstr "XXX datoteka je dodana u red za prijenos."
|
||||
|
||||
#: 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žeš pozvati osobe da ti pošalju datoteke putem ove Lufi instance, čak i "
|
||||
"ako nemaju račun za Lufi instancu."
|
||||
|
||||
#: 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 ""
|
||||
"Popis datoteka možeš vidjeti pritiskom poveznice „Moje datoteke” u gornjem "
|
||||
"desnom kutu ove stranice."
|
||||
|
||||
#. ($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 "Ne možeš dodati URL-ove koji nisu povezani s ovom instancom (%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 ""
|
||||
"Za prenošenje datoteka se ne moraš registrirati, međutim, iz pravnih "
|
||||
"razloga, tvoja IP adresa će se spremiti prilikom slanja datoteke. Nemoj "
|
||||
"paničariti, to obično vrijedi za sve web-stranice na kojima šalješ datoteke."
|
||||
|
||||
#: 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 ""
|
||||
"Čini se da nemaš ključ u svom URL-u. Nećeš moći dešifrirati datoteku. "
|
||||
"Preuzimanje je prekinuto."
|
||||
|
||||
#: 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 ""
|
||||
"Pokušao/la si napustiti ovu stranicu. Preuzimanje će se prekinuti. Stvarno "
|
||||
"to želiš?"
|
||||
|
||||
#: 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 ""
|
||||
"Pokušao/la si napustiti ovu stranicu. Prenošenje će se prekinuti. Stvarno to "
|
||||
"želiš?"
|
||||
|
||||
#: themes/default/templates/logout.html.ep:14
|
||||
msgid "You have been successfully logged out."
|
||||
msgstr "Uspješno si odjevljen/a."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:85
|
||||
msgid "You must give email addresses."
|
||||
msgstr "Moraš upisati e-mail adrese."
|
||||
|
||||
#: 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 ""
|
||||
"Tvoj preglednik nema dovoljno entropije za generiranje snažnog ključa za "
|
||||
"šifriranje. Pričekaj (bolje je ako radiš stvari na računalu dok čekaš)."
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:95
|
||||
msgid "Your file is too big: %1 (maximum size allowed: %2)"
|
||||
msgstr "Tvoja je datoteka prevelika: %1 (maksimalna dozvoljena veličina: %2)"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:345
|
||||
msgid "Your password is not valid. Please refresh the page to retry."
|
||||
msgstr "Tvoja lozinka nije valjana. Aktualiziraj stranicu za ponovni pokušaj."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:14
|
||||
msgid "Zip content:"
|
||||
msgstr "Sadržaj zip datoteke:"
|
||||
|
||||
#. (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 "između %1 i %2, datoteka će se zadržati %3 dan(a)."
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:26
|
||||
msgid "between %1 and %2, the file will be kept forever."
|
||||
msgstr "između %1 i %2, datoteka će se zadržati zauvijek."
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:42
|
||||
msgid "deadline: "
|
||||
msgstr "rok: "
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:5
|
||||
msgid "expires on XXX"
|
||||
msgstr "isteče 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 "za %1 i više, datoteka će se zadržati %2 dan(a)."
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:32
|
||||
msgid "for %1 and more, the file will be kept forever."
|
||||
msgstr "za %1 i više, datoteka će se zadržati zauvijek."
|
||||
|
||||
#: themes/default/templates/index.html.ep:3
|
||||
msgid "no time limit"
|
||||
msgstr "bez vremenskog ograničenja"
|
||||
|
||||
#: themes/default/templates/index.html.ep:124
|
||||
msgid "or"
|
||||
msgstr "ili"
|
||||
|
||||
#. ($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), isteči će %3"
|
||||
|
||||
#:
|
||||
msgid "You can't add URLs that are not related to this instance."
|
||||
msgstr "Ne možeš dodati URL-ove koji nisu povezani s ovom instancom."
|
|
@ -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: 2020-12-25 19:52+0000\n"
|
||||
"Last-Translator: x <hardwired1.0@protonmail.com>\n"
|
||||
"PO-Revision-Date: 2023-03-09 05:34+0000\n"
|
||||
"Last-Translator: lost_geographer <david@chionne.eu>\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.1\n"
|
||||
"X-Generator: Weblate 4.15.2\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
|
@ -998,3 +998,18 @@ 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)."
|
||||
|
|
|
@ -0,0 +1,939 @@
|
|||
# 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."
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2020-11-30 00:52+0000\n"
|
||||
"Last-Translator: Vadim <vad@syping.de>\n"
|
||||
"PO-Revision-Date: 2022-07-20 05:50+0000\n"
|
||||
"Last-Translator: AHOHNMYC <cajico4400@runfons.com>\n"
|
||||
"Language-Team: Russian <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/ru/>\n"
|
||||
"Language: ru\n"
|
||||
|
@ -17,7 +17,7 @@ msgstr ""
|
|||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.1\n"
|
||||
"X-Generator: Weblate 4.13.1\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
|
@ -902,3 +902,25 @@ msgstr "или"
|
|||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:12
|
||||
msgid "— %1 (%2), that will expire on %3"
|
||||
msgstr "— %1 (%2), истечёт %3"
|
||||
|
||||
#. ($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 "Приглашение %1 не может быть удалено: оно было создано не вами (%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 "Вы не можете добавлять ссылки, не связанные с этим сервером (%1)."
|
||||
|
||||
#: 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 ""
|
||||
"Не удаётся загрузить файл: очень много неуспешных попыток открыть websocket. "
|
||||
"Пожалуйста, свяжитесь с администратором."
|
||||
|
||||
#. ($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 ""
|
||||
"Приглашение %1 не может быть переотправлено: оно было создано не вами (%2)."
|
||||
|
|
|
@ -0,0 +1,927 @@
|
|||
# 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: 2022-05-28 23:55+0000\n"
|
||||
"Last-Translator: Jose Riha <jose1711@gmail.com>\n"
|
||||
"Language-Team: Slovak <https://weblate.framasoft.org/projects/lufi/"
|
||||
"default-theme/sk/>\n"
|
||||
"Language: sk\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>=2 && n<=4) ? 1 : 2;\n"
|
||||
"X-Generator: Weblate 4.12\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 dní"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:2
|
||||
msgid "%1 invites you to send him/her files"
|
||||
msgstr "%1 Vás pozýva, aby ste mu/jej poslali súbory"
|
||||
|
||||
#. (stash('ldap_user')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:6
|
||||
msgid "%1 invites you to send him/her files through Lufi."
|
||||
msgstr "%1 Vás pozýva, aby ste mu/jej poslali súbory pomocou Lufi."
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:4
|
||||
msgid "%1 sent you files"
|
||||
msgstr "%1 Vám posiela súbory"
|
||||
|
||||
#. (stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:8
|
||||
msgid "%1 used your invitation to send you files:"
|
||||
msgstr "%1 využil(a) pozvánku a posiela Vám súbory:"
|
||||
|
||||
#: 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 "(max. veľkosť: 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 hodín"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:40
|
||||
msgid ":"
|
||||
msgstr ":"
|
||||
|
||||
#: themes/default/templates/render.html.ep:42
|
||||
msgid "Abort"
|
||||
msgstr "Zrušiť"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:53 themes/default/templates/layouts/default.html.ep:86
|
||||
msgid "About"
|
||||
msgstr "O programe"
|
||||
|
||||
#: themes/default/templates/index.html.ep:107
|
||||
msgid "Add a password to file(s)"
|
||||
msgstr "Pridať heslo pre súbor(y)"
|
||||
|
||||
#: 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 ""
|
||||
"Nie je povolené pridávanie adries URL do tela alebo predmetu e-mailu, ak "
|
||||
"neodkazujú na túto inštanciu Lufi."
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:3
|
||||
msgid "Are you sure you want to delete the selected invitations?"
|
||||
msgstr "Naozaj chcete odstrániť vybrané pozvánky?"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:4
|
||||
msgid "Are you sure you want to resend the invitation mail for the selected invitations?"
|
||||
msgstr "Naozaj chcete opätovné odoslať e-mail s pozvánku pre vybrané pozvánky?"
|
||||
|
||||
#: 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 ""
|
||||
"Keďže Lufi je slobodný softvér šírený podľa podmienok <a href=\"https://gnu."
|
||||
"org/licenses/agpl.html\" class=\"classic\">AGPLv3</a>, môžete ho "
|
||||
"nainštalovať na Váš vlastný server. Navštívte <a href=\"https://framagit.org/"
|
||||
"fiat-tux/hat-softwares/lufi/wikis/home\" class=\"classic\">Wiki</a>, kde je "
|
||||
"nájdete postup."
|
||||
|
||||
#. (stash('nbslices')
|
||||
#: themes/default/templates/partial/render.js.ep:10
|
||||
msgid "Asking for file part XX1 of %1"
|
||||
msgstr "Žiadam časť súboru XX1 z %1"
|
||||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "Back to homepage"
|
||||
msgstr "Späť na domovskú stránku"
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:26
|
||||
msgid "Bad CSRF token!"
|
||||
msgstr "Neplatný CSRF token!"
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:27 lib/Lufi/Controller/Auth.pm:49
|
||||
msgid "Bad CSRF token."
|
||||
msgstr "Neplatný CSRF token."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:5
|
||||
msgid "Click here to refresh the page and restart the download."
|
||||
msgstr "Kliknite sem pre obnovenie stránky a opätovné spustenie sťahovania."
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:8
|
||||
msgid "Click on the following URL to upload files on Lufi:"
|
||||
msgstr "Kliknite na nasledovnú adresu URL pre nahratie súborov do Lufi:"
|
||||
|
||||
#: themes/default/templates/index.html.ep:126
|
||||
msgid "Click to open the file browser"
|
||||
msgstr "Kliknite pre otvorenie prehliadača súborov"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:42 themes/default/templates/invitations/my_invitations.html.ep:80
|
||||
msgid "Close"
|
||||
msgstr "Zavrieť"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:23
|
||||
msgid "Comma-separated email addresses"
|
||||
msgstr "Čiarkou oddelený zoznam e-mailových adries"
|
||||
|
||||
#: themes/default/templates/index.html.ep:140
|
||||
msgid "Compressing zip file…"
|
||||
msgstr "Komprimujem súbor zip…"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:15
|
||||
msgid "Copy all links to clipboard"
|
||||
msgstr "Kopírovať všetky odkazy do schránky"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:18
|
||||
msgid "Copy to clipboard"
|
||||
msgstr "Kopírovať do schránky"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:501
|
||||
msgid "Could not delete the file. You are not authenticated."
|
||||
msgstr "Nepodarilo sa odstrániť súbor. Nie ste prihlásený."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:483
|
||||
msgid "Could not find the file. Are you sure of the URL and the token?"
|
||||
msgstr "Súbor sa nenašiel. Zadali ste správnu adresu URL a token?"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:394
|
||||
msgid "Could not find the file. Are you sure of the URL?"
|
||||
msgstr "Súbor sa nenašiel. Zadali ste správnu adres URL?"
|
||||
|
||||
#: themes/default/templates/files.html.ep:29
|
||||
msgid "Counter"
|
||||
msgstr "Počítadlo"
|
||||
|
||||
#: themes/default/templates/index.html.ep:100
|
||||
msgid "Create a zip archive with the files before uploading?"
|
||||
msgstr "Vytvoriť zip archív so súbormi pred nahratím?"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:26
|
||||
msgid "Created at"
|
||||
msgstr "Vytvorené"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:14
|
||||
msgid "Delete"
|
||||
msgstr "Odstrániť"
|
||||
|
||||
#: themes/default/templates/files.html.ep:30 themes/default/templates/index.html.ep:90
|
||||
msgid "Delete at first download?"
|
||||
msgstr "Odstrániť po prvom stiahnutí?"
|
||||
|
||||
#: themes/default/templates/files.html.ep:19
|
||||
msgid "Delete selected files"
|
||||
msgstr "Odstrániť vybrané súbory"
|
||||
|
||||
#: themes/default/templates/files.html.ep:33 themes/default/templates/partial/index.js.ep:19
|
||||
msgid "Deletion link"
|
||||
msgstr "Odkaz na odstránenie"
|
||||
|
||||
#: 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 ""
|
||||
"Nerobte si starosti: ak používateľ začne súbor sťahovať pred vypršaním jeho "
|
||||
"platnosti a sťahovanie skončí po jej skončení, súbor stále získa."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:21 themes/default/templates/render.html.ep:28
|
||||
msgid "Download"
|
||||
msgstr "Stiahnuť"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:4
|
||||
msgid "Download aborted."
|
||||
msgstr "Sťahovanie zrušené."
|
||||
|
||||
#: themes/default/templates/files.html.ep:28 themes/default/templates/partial/index.js.ep:20
|
||||
msgid "Download link"
|
||||
msgstr "Odkaz na stiahnutie"
|
||||
|
||||
#: 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 ""
|
||||
"Potiahnite do tejto oblasti súbory alebo ich pridajte tradičným spôsobom. "
|
||||
"Súbory budú následne rozdelené, zašifrované a odoslané na server. Pre každý "
|
||||
"súbor obdržíte dva odkazy: odkaz na stiahnutie, ktorý odošlete ľuďom, s "
|
||||
"ktorými chcete zdieľať súbor a odkaz na stiahnutie, ktorý Vám umožní "
|
||||
"kedykoľvek súbor odstrániť."
|
||||
|
||||
#: themes/default/templates/index.html.ep:122
|
||||
msgid "Drop files here"
|
||||
msgstr "Potiahnite súbory sem"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:40
|
||||
msgid "Email address of your guest"
|
||||
msgstr "E-mailová adresa Vášho hosťa"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:39
|
||||
msgid "Email body"
|
||||
msgstr "Telo e-mailu"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:31
|
||||
msgid "Email subject"
|
||||
msgstr "Predmet e-mailu"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:25 themes/default/templates/mail.html.ep:27
|
||||
msgid "Emails"
|
||||
msgstr "E-maily"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:22
|
||||
msgid "Encrypting part XX1 of XX2"
|
||||
msgstr "Šifrujem časť XX1 z XX2"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:283
|
||||
msgid "Error: the file existed but was deleted."
|
||||
msgstr "Chyba: súbor existoval, ale bol odstránený."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:363
|
||||
msgid "Error: the file has not been sent entirely."
|
||||
msgstr "Chyba: súbor nebol odoslaný celý."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:373
|
||||
msgid "Error: unable to find the file. Are you sure of your URL?"
|
||||
msgstr "Chyba: súbor sa nenašiel. Máte správnu adresu URL?"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:23
|
||||
msgid "Expiration:"
|
||||
msgstr "Platnosť:"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:27
|
||||
msgid "Expire at"
|
||||
msgstr "Platnosť končí"
|
||||
|
||||
#: themes/default/templates/files.html.ep:32
|
||||
msgid "Expires at"
|
||||
msgstr "Platnosť končí"
|
||||
|
||||
#: themes/default/templates/files.html.ep:12
|
||||
msgid "Export localStorage data"
|
||||
msgstr "Exportovať údaje z localStorage"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:465
|
||||
msgid "File deleted"
|
||||
msgstr "Súbol bol odstránený"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:9
|
||||
msgid "File downloaded"
|
||||
msgstr "Súbor bol stiahnutý"
|
||||
|
||||
#: themes/default/templates/files.html.ep:27
|
||||
msgid "File name"
|
||||
msgstr "Názov súboru"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:24
|
||||
msgid "File uploaded"
|
||||
msgstr "Súbol bol nahratý"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:61
|
||||
msgid "Files"
|
||||
msgstr "Súbory"
|
||||
|
||||
#: themes/default/templates/index.html.ep:80
|
||||
msgid "Files deleted at first download"
|
||||
msgstr "Súbory odstránené po prvom stiahnutí"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:28
|
||||
msgid "Files sent at"
|
||||
msgstr "Súbory odoslané"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:8
|
||||
msgid "Files sent in invitation XX1 by XX2"
|
||||
msgstr "Súbory odoslané v pozvánke XX1 od XX2"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:8
|
||||
msgid "Get the file"
|
||||
msgstr "Stiahnuť súbor"
|
||||
|
||||
#: 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 ""
|
||||
"Získajte zdrojový kód z <a href=\"https://framagit.org/fiat-tux/"
|
||||
"hat-softwares/lufi\" class=\"classic\">oficiálneho repozitára</a> alebo z "
|
||||
"jeho <a href=\"https://github.com/ldidry/lufi\" class=\"classic\">kópie na "
|
||||
"Githube</a>."
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:24
|
||||
msgid "Guest mail"
|
||||
msgstr "E-mail hosťa"
|
||||
|
||||
#. (ucfirst(stash('invitation')
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:6
|
||||
msgid "Hello %1,"
|
||||
msgstr "Ahoj %1,"
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:4
|
||||
msgid "Hello,"
|
||||
msgstr "Ahoj,"
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:35
|
||||
msgid "Hello,\\n\\nHere's some files I want to share with you:\\n"
|
||||
msgstr ""
|
||||
"Ahoj,\\n"
|
||||
"\\n"
|
||||
"Tu je zopár súborov, ktoré chcem s Vami zdieľať:\\n"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:35
|
||||
msgid "Here's some files"
|
||||
msgstr "Tu je zopár súborov"
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:7
|
||||
msgid "Hide hidden invitations"
|
||||
msgstr "Skryť skryté pozvánky"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:26
|
||||
msgid "Hit Enter, then Ctrl+C to copy all the download links"
|
||||
msgstr ""
|
||||
"Stlačte Enter a potom použite Ctrl+C na skopírovanie všetkých odkazov na "
|
||||
"stiahnutie"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:25
|
||||
msgid "Hit Enter, then Ctrl+C to copy the download link"
|
||||
msgstr ""
|
||||
"Stlačte Enter a potom použite Ctrl-C na skopírovanie odkazu na stiahnutie"
|
||||
|
||||
#: themes/default/templates/about.html.ep:9
|
||||
msgid "How does it work?"
|
||||
msgstr "Ako to funguje?"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:46
|
||||
msgid "How many days would you like the invitation to be valid?"
|
||||
msgstr "Koľko dní má pozvánka platiť?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:16
|
||||
msgid "How to install the software on my server?"
|
||||
msgstr "Ako si nainštalujem softvér na vlastný server?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:12
|
||||
msgid "How to report an illegal file?"
|
||||
msgstr "Ako nahlásiť nelegálny súbor?"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:8
|
||||
msgid "If you choose a delay, the file will be deleted after that delay."
|
||||
msgstr "Ak vyberiete dobu platnosti, súbor bude po jej uplynutí odstránený."
|
||||
|
||||
#: 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 ""
|
||||
"Ak odošlete e-mail z tohto servera, odkazy obdrží aj server, čo môže znížiť "
|
||||
"ochranu Vášho súkromia."
|
||||
|
||||
#: themes/default/templates/files.html.ep:14
|
||||
msgid "Import localStorage data"
|
||||
msgstr "Importovať údaje z localStorage"
|
||||
|
||||
#: themes/default/templates/index.html.ep:53
|
||||
msgid "Important: more information on delays"
|
||||
msgstr "Dôležité: viac informácií o obmedzení platnosti"
|
||||
|
||||
#: themes/default/templates/delays.html.ep:5
|
||||
msgid "Information about delays"
|
||||
msgstr "Informácie o dobe platnosti"
|
||||
|
||||
#: themes/default/templates/files.html.ep:18 themes/default/templates/invitations/my_invitations.html.ep:12
|
||||
msgid "Invert selection"
|
||||
msgstr "Obrátiť výber"
|
||||
|
||||
#. ($i->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:184
|
||||
msgid "Invitation resent to %1.<br> URL: %2"
|
||||
msgstr "Pozvánka znova odoslaná %1.<br> Adresa URL: %2"
|
||||
|
||||
#. ($invitation->guest_mail, $url)
|
||||
#: lib/Lufi/Controller/Invitation.pm:88
|
||||
msgid "Invitation sent to %1.<br> URL: %2"
|
||||
msgstr "Pozvánka odoslaná %1.<br> Adresa 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 "Pozvať hosťa"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:6
|
||||
msgid "It seems that the key in your URL is incorrect. Please, verify your URL."
|
||||
msgstr ""
|
||||
"Zdá sa, že kľúč vo Vašej adrese URL je neplatný. Prosím, skontrolujte adresu "
|
||||
"URL."
|
||||
|
||||
#: themes/default/templates/index.html.ep:12
|
||||
msgid "Javascript is disabled. You won't be able to use Lufi."
|
||||
msgstr "Javascript je vypnutý. Nebudete môcť použiť 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 "Jazyk"
|
||||
|
||||
#. (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 "Posledný commit tejto inštancie: %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 "Posledný tag tejto inštancie: %1"
|
||||
|
||||
#: themes/default/templates/login.html.ep:15
|
||||
msgid "Login"
|
||||
msgstr "Prihlásiť sa"
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:58 themes/default/templates/layouts/default.html.ep:91
|
||||
msgid "Logout"
|
||||
msgstr "Odhlásiť sa"
|
||||
|
||||
#: themes/default/templates/about.html.ep:4
|
||||
msgid "Lufi is a free (as in free speech) file hosting software."
|
||||
msgstr "Lufi je slobodný softvér pre poskytovanie súborov."
|
||||
|
||||
#: 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 nedávno zmenil spôsob, akým sú ukladané informácie o súboroch.\\n"
|
||||
"\\n"
|
||||
"V novom umiestnení localStorage sa nenašli žiadne súbory, ale našli sme "
|
||||
"súbory v starom umiestnení\\n"
|
||||
"Chcete importovať tieto informácie?\\n"
|
||||
"\\\n"
|
||||
"Berte prosím na zreteľ, že sa Vás na toto už viackrát pýtať nebudeme."
|
||||
|
||||
#: 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 súbory"
|
||||
|
||||
#: 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 pozvánky"
|
||||
|
||||
#: 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 "Pozn.: tento zoznam zahŕňa súbory, ktoré Vám niekto poslal."
|
||||
|
||||
#: themes/default/templates/index.html.ep:115
|
||||
msgid "Name of the zip file"
|
||||
msgstr "Názov súboru 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 "Na serveri nie je dostatok voľného miesta pre súbor (veľkosť: %1)."
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:10 themes/default/templates/partial/index.js.ep:29
|
||||
msgid "No expiration delay"
|
||||
msgstr "Žiadne zrdržanie"
|
||||
|
||||
#: 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 ""
|
||||
"Tu budú zobrazené iba súbory odoslané týmto prehliadačom. Tento zoznam je "
|
||||
"uložený v localStorage: ak odstránite údaje localStorage, o tento zoznam "
|
||||
"prídete."
|
||||
|
||||
#: themes/default/templates/index.html.ep:106 themes/default/templates/login.html.ep:21 themes/default/templates/render.html.ep:26
|
||||
msgid "Password"
|
||||
msgstr "Heslo"
|
||||
|
||||
#. (config('contact')
|
||||
#: themes/default/templates/about.html.ep:13
|
||||
msgid "Please contact the administrator: %1"
|
||||
msgstr "Kontaktujte, prosím, správcu: %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 ""
|
||||
"Počkajte, prosím, kým získame Váš súbor. Musíme ho najprv stiahnuť a "
|
||||
"rozšifrovať všetky jeho časti pred tým, ako ho budete môcť uložiť."
|
||||
|
||||
#: lib/Lufi/Controller/Auth.pm:38
|
||||
msgid "Please, check your credentials or your right to access this service: unable to authenticate."
|
||||
msgstr ""
|
||||
"Skontrolujte, prosím, Vaše prihlasovacie údaje alebo prístupové oprávnenia k "
|
||||
"tejto službte: nepodarilo sa prihlásiť."
|
||||
|
||||
#: themes/default/templates/about.html.ep:5
|
||||
msgid "Privacy"
|
||||
msgstr "Súkromie"
|
||||
|
||||
#: themes/default/templates/files.html.ep:13
|
||||
msgid "Purge expired files from localStorage"
|
||||
msgstr "Odstrániť expirované súbory z localStorage"
|
||||
|
||||
#: themes/default/templates/invitations/notification_files_sent.mail.ep:20
|
||||
msgid "Regards,"
|
||||
msgstr "S pozdravom,"
|
||||
|
||||
#: themes/default/templates/invitations/invite.mail.ep:15
|
||||
msgid "Regards."
|
||||
msgstr "S pozdravom."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:31 themes/default/templates/layouts/default.html.ep:64
|
||||
msgid "Report file"
|
||||
msgstr "Nahlásiť súbor"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:15
|
||||
msgid "Resend invitation mail"
|
||||
msgstr "Znovu odoslať e-mail s pozvánkou"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:9
|
||||
msgid "Rows in purple mean that the invitations have expired."
|
||||
msgstr "Fialové riadky označujú pozvánky, ktorým vypršala platnosť."
|
||||
|
||||
#: themes/default/templates/files.html.ep:9
|
||||
msgid "Rows in red mean that the files have expired and are no longer available."
|
||||
msgstr ""
|
||||
"Červené riadky označujú súbory, ktorým vypršala platnosť a nie sú viac "
|
||||
"dostupné."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:27
|
||||
msgid "Send all links by email"
|
||||
msgstr "Odoslať všetky odkazy e-mailom"
|
||||
|
||||
#: themes/default/templates/invitations/invite.html.ep:50
|
||||
msgid "Send the invitation"
|
||||
msgstr "Odoslať pozvánku"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:47
|
||||
msgid "Send with this server"
|
||||
msgstr "Odoslať prostredníctvom tohto servera"
|
||||
|
||||
#: themes/default/templates/mail.html.ep:49
|
||||
msgid "Send with your own mail software"
|
||||
msgstr "Odoslať pomocou Vášho vlastného e-mailového klienta"
|
||||
|
||||
#: 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 ""
|
||||
"Odosielam časť XX1 z XX2. Prosím, buďte trpezlivý, kým ukazovateľ priebehu "
|
||||
"začne ukazovať aktivitu, môže to chvíľku trvať."
|
||||
|
||||
#. (url_for('/')
|
||||
#: themes/default/templates/partial/mail.js.ep:49
|
||||
msgid "Share your files in total privacy on %1"
|
||||
msgstr "Zdieľajte Vaše súbory v úplnom súkromí na %1"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:13 themes/default/templates/partial/invitations.js.ep:9
|
||||
msgid "Show hidden invitations"
|
||||
msgstr "Zobraziť skryté pozvánky"
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:12
|
||||
msgid "Show zip content"
|
||||
msgstr "Zobraziť obsah archívu 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 "Prihlásiť sa"
|
||||
|
||||
#: 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 "Je mi to ľúto, pozvánka neexistuje. Určite máte správnu adresu URL?"
|
||||
|
||||
#: themes/default/templates/index.html.ep:46
|
||||
msgid "Sorry, the uploading is currently disabled. Please try again later."
|
||||
msgstr ""
|
||||
"Je mi to ľúto, nahrávanie je momentálne vypnuté. Skúste to, prosím, neskôr."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:82
|
||||
msgid "Sorry, uploading is disabled."
|
||||
msgstr "Je mi to ľúto, nahrávanie je vypnuté."
|
||||
|
||||
#: themes/default/templates/invitations/exception.html.ep:7
|
||||
msgid "Sorry, your invitation has expired or has been deleted."
|
||||
msgstr "Je mi to ľúto, Vašej pozvánke uplynula platnosť alebo bola odstránená."
|
||||
|
||||
#. ($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 ""
|
||||
"Je mi to ľúto, Vašej pozvánke uplynula platnosť alebo bola odstránená. "
|
||||
"Kontaktujte, prosím, %1 a požiadajte o ďalšiu pozvánku."
|
||||
|
||||
#. ($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 Vašich súborov boli odoslané e-mailom %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 ""
|
||||
"Správca môže vidieť iba názov súboru, jeho veľkosť a typ MIME (o aký typ "
|
||||
"súboru sa jedná: video, text, atď.)."
|
||||
|
||||
#: 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 ""
|
||||
"Telo e-mail musí obsahovať aspoň jednu adresu URL, ktorá odkazuje na súbor "
|
||||
"nachádzajúci sa na tejto inštancii."
|
||||
|
||||
#: themes/default/templates/partial/files.js.ep:11
|
||||
msgid "The data has been successfully imported."
|
||||
msgstr "Údaje boli úspešne importované."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:87
|
||||
msgid "The email body can't be empty."
|
||||
msgstr "Telo e-mailu nesmie byť prázdne."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:86
|
||||
msgid "The email subject can't be empty."
|
||||
msgstr "Predmet e-mailu nesmie byť prázdny."
|
||||
|
||||
#. ($expire_at, $max_expire_at)
|
||||
#: lib/Lufi/Controller/Invitation.pm:52
|
||||
msgid "The expiration delay (%1) is not between 1 and %2 days."
|
||||
msgstr "Obmedzenie platnosti (%1) bolo nastavené medzi 1 a %2 dňami."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:462
|
||||
msgid "The file has already been deleted"
|
||||
msgstr "Súbor bol už odstránený"
|
||||
|
||||
#: 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 ""
|
||||
"Súbory odoslané do inštancie Lufi sú zašifrované pred ich nahraním na server:"
|
||||
" administrátor servera nevidí obsah súborov."
|
||||
|
||||
#. (join(', ', @bad)
|
||||
#: lib/Lufi/Controller/Mail.pm:82
|
||||
msgid "The following email addresses are not valid: %1"
|
||||
msgstr "Nasledujúce e-mailové adresy nie sú platné: %1"
|
||||
|
||||
#. ($guest_mail)
|
||||
#: lib/Lufi/Controller/Invitation.pm:49
|
||||
msgid "The guest email address (%1) is unvalid."
|
||||
msgstr "E-mailová adresa hosťa (%1) nie je platná."
|
||||
|
||||
#. ($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 "Pozvánku %1 nie je možné odstrániť: nevytvorili ste ju Vy (%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 ""
|
||||
"Pozvánku %1 nie je možné znova odoslať: %2 už odoslal(a) "
|
||||
"súbory.<br>Vytvorte, prosím, novú pozvánku."
|
||||
|
||||
#. ($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 "Pozvánku %1 nie je možné znova odoslať: nevytvorili ste ju Vy (%2)."
|
||||
|
||||
#. ($i->token)
|
||||
#: lib/Lufi/Controller/Invitation.pm:134
|
||||
msgid "The invitation %1 has been deleted."
|
||||
msgstr "Pozvánka %1 bola odstránená."
|
||||
|
||||
#. (stash('user_mail')
|
||||
#: themes/default/templates/invitations/invite.html.ep:34
|
||||
msgid "The invitation mail will be send from your email address (%1)."
|
||||
msgstr "E-mail s pozvánku bude odoslaný z Vašej e-mailovej adresy (%1)."
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:16
|
||||
msgid "The link(s) has been copied to your clipboard"
|
||||
msgstr "Odkaz(y) bol(i) skopírovaný(é) do Vašej schránky"
|
||||
|
||||
#. (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 "Odkaz(y) na Váš(e) súbor(y) budú automaticky odoslané e-mailom %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 "Odkaz(y) na Váš(e) súbor(y) budú automaticky odoslané e-mailom %1."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:111
|
||||
msgid "The mail has been sent."
|
||||
msgstr "E-mail bol odoslaný."
|
||||
|
||||
#: 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 ""
|
||||
"Pôvodným a (aktuálne jediným) autorom je <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 ""
|
||||
"Server nedokázal nájsť záznam o súbore, ku ktorému má pridať časť súbory. "
|
||||
"Kontaktujte, prosím, správcu."
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:289
|
||||
msgid "This file has been deactivated by the admins. Contact them to know why."
|
||||
msgstr ""
|
||||
"Tento súbor správcovia vypli. Kontaktujte ich, ak sa chcete dozvedieť dôvod."
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:46 themes/default/templates/partial/invitations.js.ep:6
|
||||
msgid "This invitation is normally hidden"
|
||||
msgstr "Táto pozvánka je normálne skrytá"
|
||||
|
||||
#. (stash('expires')
|
||||
#: themes/default/templates/invitations/invite.mail.ep:13
|
||||
msgid "This invitation is valid until %1."
|
||||
msgstr "Táto pozvánka je platná 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 ""
|
||||
"Tento server nastavuje obmedzenia podľa veľkosti súboru. Doba platnosti "
|
||||
"Vášho súboru bude nastavená na najnižšiu hodnotu medzi hodnotou, ktorú "
|
||||
"vyberiete a nasledovnými obmedzeniami:"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:16
|
||||
msgid "Toggle visibility"
|
||||
msgstr "Prepnúť viditeľnosť"
|
||||
|
||||
#: themes/default/templates/invitations/my_invitations.html.ep:25
|
||||
msgid "URL"
|
||||
msgstr "Adresa URL"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:17
|
||||
msgid "Unable to copy the link(s) to your clipboard"
|
||||
msgstr "Nepodarilo sa skopírovať odkaz(y) do Vašej schránky"
|
||||
|
||||
#: 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 ""
|
||||
"Nepodarilo sa stiahnuť súbor: príliš veľa neúspešných pokusov o otvorenie "
|
||||
"websocketu. Kontaktujte, prosím, správcu."
|
||||
|
||||
#. ($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 ""
|
||||
"Nepodarilo sa získať počítadlo pre %1. Súbor neexistuje. Bude odstránený z "
|
||||
"Vášho localStorage."
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:423
|
||||
msgid "Unable to get counter for %1. The token is invalid."
|
||||
msgstr "Nepodarilo sa získať počítadlo pre %1. Token je neplatný."
|
||||
|
||||
#. ($short)
|
||||
#: lib/Lufi/Controller/Files.pm:443
|
||||
msgid "Unable to get counter for %1. You are not authenticated."
|
||||
msgstr "Nepodarilo sa získať počítadlo pre %1. Nie ste prihlásený."
|
||||
|
||||
#: themes/default/templates/layouts/default.html.ep:33 themes/default/templates/layouts/default.html.ep:66
|
||||
msgid "Upload files"
|
||||
msgstr "Nahrať súbory"
|
||||
|
||||
#: themes/default/templates/index.html.ep:145
|
||||
msgid "Upload generated zip file"
|
||||
msgstr "Nahrať vygenerovaný súbor zip"
|
||||
|
||||
#: themes/default/templates/files.html.ep:31
|
||||
msgid "Uploaded at"
|
||||
msgstr "Nahrané"
|
||||
|
||||
#: themes/default/templates/index.html.ep:153
|
||||
msgid "Uploaded files"
|
||||
msgstr "Nahrané súbory"
|
||||
|
||||
#: themes/default/templates/about.html.ep:20
|
||||
msgid "Version"
|
||||
msgstr "Verzia"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:31
|
||||
msgid "Websocket communication error"
|
||||
msgstr "Chyba websocket komunikácie"
|
||||
|
||||
#: themes/default/templates/about.html.ep:3
|
||||
msgid "What is Lufi?"
|
||||
msgstr "Čo je Lufi?"
|
||||
|
||||
#: themes/default/templates/about.html.ep:14
|
||||
msgid "Who wrote this software?"
|
||||
msgstr "Kto napísal tento softvér?"
|
||||
|
||||
#: themes/default/templates/partial/index.js.ep:13
|
||||
msgid "XXX file has been added to upload queue."
|
||||
msgstr "XXX súbor bol pridaný do poradia nahrávania."
|
||||
|
||||
#: 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 ""
|
||||
"Môžete pozvať niekoho, aby Vám odoslal súbory prostredníctvom tejto "
|
||||
"inštancie Lufi dokonca aj vtedy, keď na nej nemajú vytvorený účet."
|
||||
|
||||
#: 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 ""
|
||||
"Zoznam Vašich súborov zobrazíte po kliknutí na \"Moje súbory\" v hornej "
|
||||
"časti tejto stránky."
|
||||
|
||||
#. ($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 "Nemôžete pridať adresy URL, ktoré neodkazujú na túto inštanciu (%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 ""
|
||||
"Pre nahrávanie súborov sa nemusíte registrovať, ale myslite na to, že zo "
|
||||
"zákonných dôvodov bude Vaša IP adresa uložená, keď súbor odošlete. Nemusíte "
|
||||
"sa obávať, toto je bežnou praxou pre všetky portály, ktoré umožňujú "
|
||||
"odosielanie súborov."
|
||||
|
||||
#: 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 ""
|
||||
"Zdá sa, že Vaša adresa URL neobsahuje kľúč. Nebudete môcť dešifrovať súbor. "
|
||||
"Sťahovanie bolo zrušené."
|
||||
|
||||
#: 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 ""
|
||||
"Pokúsili ste sa opustiť túto stránku. Sťahovanie bude zrušené. Naozaj to "
|
||||
"chcete?"
|
||||
|
||||
#: 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 ""
|
||||
"Pokúsili ste sa opustiť túto stránku. Nahrávanie bude zrušené. Naozaj to "
|
||||
"chcete?"
|
||||
|
||||
#: themes/default/templates/logout.html.ep:14
|
||||
msgid "You have been successfully logged out."
|
||||
msgstr "Úspešne ste sa odhlásili."
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:85
|
||||
msgid "You must give email addresses."
|
||||
msgstr "Musíte zadať e-mailovú adresu."
|
||||
|
||||
#: 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 ""
|
||||
"Váš prehliadač nemá dostatok entropie na vygenerovanie silného šifrovacieho "
|
||||
"kľúča. Počkajte, prosím (pomôže, ak budete počas čakania pracovať na "
|
||||
"počítači)."
|
||||
|
||||
#. (format_bytes($json->{size})
|
||||
#: lib/Lufi/Controller/Files.pm:95
|
||||
msgid "Your file is too big: %1 (maximum size allowed: %2)"
|
||||
msgstr "Váš súbor je príliš veľký: %1 (maximálna povolená veľkosť: %2)"
|
||||
|
||||
#: lib/Lufi/Controller/Files.pm:345
|
||||
msgid "Your password is not valid. Please refresh the page to retry."
|
||||
msgstr "Vaše heslo je neplatné. Obnovte stránku a skúste to znovu."
|
||||
|
||||
#: themes/default/templates/partial/render.js.ep:14
|
||||
msgid "Zip content:"
|
||||
msgstr "Obsah zip súboru:"
|
||||
|
||||
#. (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 "medzi %1 a %2, súbor bude na serveri ponechaný %3 deň/dní."
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:26
|
||||
msgid "between %1 and %2, the file will be kept forever."
|
||||
msgstr "medzi %1 a %2, súbor bude na serveri ponechaný navždy."
|
||||
|
||||
#: themes/default/templates/partial/mail.js.ep:42
|
||||
msgid "deadline: "
|
||||
msgstr "hraničný termín: "
|
||||
|
||||
#: themes/default/templates/partial/invitations.js.ep:5
|
||||
msgid "expires on XXX"
|
||||
msgstr "vyprší 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 "pre %1 a viac bude súbor ponechaný %2 deň/dní."
|
||||
|
||||
#. (format_bytes($keys[$i])
|
||||
#: themes/default/templates/delays.html.ep:32
|
||||
msgid "for %1 and more, the file will be kept forever."
|
||||
msgstr "pre %1 a viac bude súbor ponechaný navždy."
|
||||
|
||||
#: themes/default/templates/index.html.ep:3
|
||||
msgid "no time limit"
|
||||
msgstr "bez časového obmedzenia"
|
||||
|
||||
#: themes/default/templates/index.html.ep:124
|
||||
msgid "or"
|
||||
msgstr "alebo"
|
||||
|
||||
#. ($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), ktorý expiruje dňa %3"
|
||||
|
||||
#:
|
||||
msgid "You can't add URLs that are not related to this instance."
|
||||
msgstr "Nemôžete pridávať adresy URL, ktoré neodkazujú na túto inštanciu."
|
|
@ -7,8 +7,8 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"PO-Revision-Date: 2020-12-06 15:52+0000\n"
|
||||
"Last-Translator: zilliu <zilliu@disroot.org>\n"
|
||||
"PO-Revision-Date: 2022-12-26 01:38+0000\n"
|
||||
"Last-Translator: 李奕寯 <eugenelego88@gmail.com>\n"
|
||||
"Language-Team: Chinese (Traditional) <https://weblate.framasoft.org/projects/"
|
||||
"lufi/default-theme/zh_Hant/>\n"
|
||||
"Language: zh_Hant\n"
|
||||
|
@ -16,7 +16,7 @@ msgstr ""
|
|||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||
"X-Generator: Weblate 4.1\n"
|
||||
"X-Generator: Weblate 4.14.1\n"
|
||||
|
||||
#. ($delay)
|
||||
#. (max_delay)
|
||||
|
@ -102,7 +102,7 @@ msgstr "正在請求檔案第 XX1 / %1 部分"
|
|||
|
||||
#: themes/default/templates/about.html.ep:23
|
||||
msgid "Back to homepage"
|
||||
msgstr "回到主頁"
|
||||
msgstr "回到首頁"
|
||||
|
||||
#: lib/Lufi/Controller/Mail.pm:25
|
||||
msgid "Bad CSRF token!"
|
||||
|
@ -744,7 +744,7 @@ msgstr "誰寫了這個軟件?"
|
|||
|
||||
#: themes/default/templates/partial/index.js.ep:13
|
||||
msgid "XXX file has been added to upload queue."
|
||||
msgstr "XXX 檔案已經被加入到了上傳佇列。"
|
||||
msgstr "檔案 XXX 已經被加入上傳佇列。"
|
||||
|
||||
#: 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."
|
||||
|
@ -843,3 +843,8 @@ msgstr "— %1 (%2), 會在 %3 到期"
|
|||
#: 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 "無法下載檔案:太多不必要的開啓 websocket 嘗試。請聯絡管理員。"
|
||||
|
||||
#. ($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 "您無法加入與此實例 (%1) 無關的網址。"
|
||||
|
|
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,6 +17,16 @@ 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>'].join(''));
|
||||
pbd.html(`<div class="card pink">
|
||||
<div class="card-content white-text">
|
||||
<strong>${msg}</strong>
|
||||
</div>
|
||||
</div>`);
|
||||
}
|
||||
|
||||
// Spawn WebSocket
|
||||
|
@ -55,9 +55,10 @@ function spawnWebsocket(pa) {
|
|||
var l = $('#loading');
|
||||
l.html(i18n.loading.replace(/XX1/, (pa + 1)));
|
||||
if ($('#file_pwd').length === 1) {
|
||||
window.ws.send('{"part":'+pa+', "file_pwd": "'+$('#file_pwd').val()+'"}');
|
||||
val = $('#file_pwd').val();
|
||||
window.ws.send(`{"part":${pa}, "file_pwd": "${val}"}`);
|
||||
} else {
|
||||
window.ws.send('{"part":'+pa+'}');
|
||||
window.ws.send(`{"part":${pa}}`);
|
||||
}
|
||||
};
|
||||
ws.onclose = function() {
|
||||
|
@ -65,7 +66,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);
|
||||
|
@ -89,16 +90,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);
|
||||
|
@ -118,43 +119,44 @@ 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.push('<img id="render-image" class="responsive-img" alt="', escapeHtml(data.name), '" src="', blobURL, '">');
|
||||
innerHTML += `<img id="render-image" class="responsive-img" alt="${escapeHtml(data.name)}" src="${blobURL}">`;
|
||||
} else if (data.type.match(/^video\//) !== null) {
|
||||
innerHTML.push('<video class="responsive-video" controls>',
|
||||
'<source src="', blobURL, '" type="', data.type, '">',
|
||||
'</video>');
|
||||
innerHTML += `<video class="responsive-video" controls>
|
||||
<source src="${blobURL}" type="${data.type}">
|
||||
</video>`;
|
||||
} else if (data.type.match(/^audio\//) !== null) {
|
||||
innerHTML.push('<audio class="responsive-video" controls>',
|
||||
'<source src="', blobURL, '" type="', data.type, '">',
|
||||
'</audio>');
|
||||
innerHTML += `<audio class="responsive-video" controls>
|
||||
<source src="${blobURL}" type="${data.type}">
|
||||
</audio>`;
|
||||
} else if (isZip) {
|
||||
innerHTML.push('<p><a class="btn btn-primary" id="showZipContent">', i18n.showZipContent, '</a></p>');
|
||||
innerHTML += `<p><a class="btn btn-primary" id="showZipContent">${i18n.showZipContent}</a></p>`;
|
||||
}
|
||||
|
||||
pbd.html(innerHTML.join(''));
|
||||
pbd.html(innerHTML);
|
||||
|
||||
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.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 += `<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('</ul>');
|
||||
pbd.append(innerHTML.join(''));
|
||||
innerHTML += '</ul>';
|
||||
pbd.append(innerHTML);
|
||||
$('.download-zip-content').click(function(e) {
|
||||
e.preventDefault();
|
||||
var t = $(this);
|
||||
|
@ -171,7 +173,8 @@ function spawnWebsocket(pa) {
|
|||
});
|
||||
}
|
||||
if ($('#file_pwd').length === 1) {
|
||||
window.ws.send('{"ended":true, "file_pwd": "'+$('#file_pwd').val()+'"}');
|
||||
val = $('#file_pwd').val();
|
||||
window.ws.send(`{"ended":true, "file_pwd": "${val}"}`);
|
||||
} else {
|
||||
window.ws.send('{"ended":true}');
|
||||
}
|
||||
|
@ -187,18 +190,19 @@ 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) {
|
||||
window.ws.send('{"part":'+(data.part + 1)+', "file_pwd": "'+$('#file_pwd').val()+'"}');
|
||||
val = $('#file_pwd').val();
|
||||
window.ws.send(`{"part":${data.part + 1}, "file_pwd": "${val}"}`);
|
||||
} else {
|
||||
window.ws.send('{"part":'+(data.part + 1)+'}');
|
||||
window.ws.send(`{"part":${data.part + 1}}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -215,7 +219,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);
|
||||
|
@ -229,7 +233,13 @@ $(document).ready(function(){
|
|||
window.ws.onclose = function() {};
|
||||
window.ws.close();
|
||||
$('#please-wait, #loading, #pbd, #abort').remove();
|
||||
$('#filesize').parent().append('<h4>'+i18n.aborted1+'</h4><a id="reloadLocation" class="waves-effect waves-light btn">'+i18n.aborted2+'</a></p>');
|
||||
$('#filesize').parent().append(`<h4>${i18n.aborted1}</h4>
|
||||
<p>
|
||||
<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,45 +206,59 @@ 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 : 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 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 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(''));
|
||||
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>`);
|
||||
$('#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();
|
||||
});
|
||||
|
@ -259,13 +273,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,25 +169,15 @@ 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',
|
||||
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>',
|
||||
);
|
||||
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>`;
|
||||
}
|
||||
$('#files-ul').html(content.join(''));
|
||||
$('#files-ul').html(content);
|
||||
}
|
||||
|
||||
$(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,18 +240,16 @@ 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>'
|
||||
].join(''));
|
||||
$('#zip-parts').append(`<li>
|
||||
— ${escapeHtml(filename)} (${filesize(element.size)})
|
||||
</li>`);
|
||||
}
|
||||
} else {
|
||||
if (window.fileList === undefined || window.fileList === null) {
|
||||
|
@ -295,23 +293,32 @@ 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>'].join(''));
|
||||
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>`);
|
||||
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);
|
||||
|
@ -350,7 +357,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){
|
||||
|
@ -387,12 +394,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) {
|
||||
|
@ -403,14 +410,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);
|
||||
});
|
||||
};
|
||||
|
@ -427,7 +434,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
|
||||
|
@ -463,9 +470,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) {
|
||||
|
@ -474,44 +481,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+' '+moment.unix(delay * 86400 + created_at).locale(window.navigator.language).format('LLLL');
|
||||
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)}`;
|
||||
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>'].join(''));
|
||||
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>`);
|
||||
} else {
|
||||
n.html(n.html()+' '+s.html());
|
||||
n.html(`${n.html()} ${s.html()}`);
|
||||
}
|
||||
s.remove();
|
||||
|
||||
|
@ -521,7 +528,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);
|
||||
});
|
||||
|
@ -531,7 +538,12 @@ 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();
|
||||
|
@ -574,7 +586,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
|
||||
|
@ -593,15 +605,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>'].join(''));
|
||||
d.html(`<div class="card-content white-text">
|
||||
<strong>${msg}</strong>
|
||||
</div>`);
|
||||
n.parent().append(d);
|
||||
|
||||
// Upload next file
|
||||
|
@ -653,7 +665,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,6 +39,5 @@
|
|||
</table>
|
||||
</div>
|
||||
|
||||
%= javascript '/partial/files.js.ep'
|
||||
%= javascript '/partial/files.js'
|
||||
%= javascript '/js/lufi-files.js'
|
||||
%= javascript '/js/moment-with-locales.min.js'
|
||||
|
|
|
@ -162,7 +162,6 @@
|
|||
%= 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,5 +83,4 @@
|
|||
|
||||
%= 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-2.2.4.min.js'
|
||||
%= javascript '/js/jquery-3.7.1.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">
|
||||
<input id="login" type="text" class="validate" name="login" autofocus>
|
||||
<label for="login"><%= l('Login') %></label>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -50,4 +50,3 @@
|
|||
</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 : moment.unix(item.delay * 86400 + item.created_at).locale(window.navigator.language).format('LLLL');
|
||||
text = text+'- '+item.name+'<%= l(':') %> '+item.url;
|
||||
var limit = (item.delay === 0) ? null : formatDate(item.delay * 86400 + item.created_at);
|
||||
text += `- ${item.name}<%= l(':') %> ${item.url}`;
|
||||
if (limit !== null) {
|
||||
text = text+"\n (<%= l('deadline: ') %>"+limit+')';
|
||||
text += `\n (<%= l('deadline: ') %>${limit})`;
|
||||
}
|
||||
text = text+"\n";
|
||||
text += "\n";
|
||||
}
|
||||
});
|
||||
|
||||
% if (!defined(config('ldap')) && !defined(config('htpasswd'))) {
|
||||
text = text+"\n-- \n<%= l('Share your files in total privacy on %1', url_for('/')->to_abs) %>";
|
||||
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