Compare commits

...

89 Commits

Author SHA1 Message Date
Danny Coates
173ca461a9 bump version to v2.6.0 2018-11-06 11:49:27 -08:00
Danny Coates
53426b950a added gcs 2018-11-02 14:24:10 -07:00
pyup.io bot
9bb36cd827 Scheduled weekly dependency update for week 43 (#978)
* Update selenium from 3.14.0 to 3.14.1

* Update flake8 from 3.5.0 to 3.6.0

* Update pypom from 2.1.0 to 2.2.0

* Update pytest from 3.8.0 to 3.9.3

* Update pytest-xdist from 1.23.0 to 1.23.2
2018-10-29 14:11:02 -04:00
hi
103aa8a0c8 Pontoon: Update Vietnamese (vi) localization of Test Pilot: Firefox Send
Localization authors:
- hi <hi@duonganhtuan.com>
- Quế Tùng <best.cloney.1301@gmail.com>
- nguyễn việt anh <hatsune141p@gmail.com>
2018-10-28 12:34:28 +00:00
Cristian Silaghi
62d507120c Pontoon: Update Romanian (ro) localization of Test Pilot: Firefox Send
Localization authors:
- Cristian Silaghi <cristian.silaghi@mozilla.ro>
2018-10-22 14:35:32 +00:00
Georgianizator
8ccb1c449a Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2018-10-21 05:34:07 +00:00
新垣结衣松冈茉优长泽雅美门胁麦上野树里石原里美
a07eb1ad1c Pontoon: Update Chinese (China) (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- 新垣结衣松冈茉优长泽雅美门胁麦上野树里石原里美 <eloli@foxmail.com>
2018-10-10 09:34:06 +00:00
Danny Coates
78c6d83462 Merge pull request #965 from mozilla/255
updated deps
2018-10-08 12:13:20 -07:00
Danny Coates
5d41da0e16 bump version & updated deps 2018-10-08 12:06:09 -07:00
新垣结衣松冈茉优长泽雅美门胁麦上野树里石原里美
5afe9ff2af Pontoon: Update Chinese (China) (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- 新垣结衣松冈茉优长泽雅美门胁麦上野树里石原里美 <eloli@foxmail.com>
2018-10-05 23:02:22 +00:00
Myungjae Won
a2eee15a7d Pontoon: Update Korean (ko) localization of Test Pilot: Firefox Send
Localization authors:
- Myungjae Won <breadmj@gmail.com>
2018-09-27 02:13:30 +00:00
alamanda
603a352595 Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- alamanda <dian.ina@gmail.com>
2018-09-24 07:12:00 +00:00
صفا الفليج
7b8655a079 Pontoon: Update Arabic (ar) localization of Test Pilot: Firefox Send
Localization authors:
- صفا الفليج <safa1996alfulaij@gmail.com>
2018-09-21 19:53:21 +00:00
Ruba
d3ba54d05a Pontoon: Update Arabic (ar) localization of Test Pilot: Firefox Send
Localization authors:
- Ruba <ruba.awayes@gmail.com>
2018-09-21 17:52:14 +00:00
صفا الفليج
83e2aec3f5 Pontoon: Update Arabic (ar) localization of Test Pilot: Firefox Send
Localization authors:
- صفا الفليج <safa1996alfulaij@gmail.com>
2018-09-20 22:52:43 +00:00
risger
0abf890fc4 Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- risger <risger@live.com>
2018-09-20 02:32:18 +00:00
pyup.io bot
38fcd7227d Scheduled weekly dependency update for week 37 (#926)
* Update selenium from 3.13.0 to 3.14.0

* Update pypom from 2.0.0 to 2.1.0

* Update pytest from 3.6.3 to 3.8.0

* Update pytest-selenium from 1.13.0 to 1.14.0

* Update pytest-xdist from 1.22.2 to 1.23.0
2018-09-18 11:05:26 -04:00
Enol
6d29cebabb Pontoon: Update Asturian (ast) localization of Test Pilot: Firefox Send
Localization authors:
- Enol <enolp@softastur.org>
2018-09-13 22:22:17 +00:00
Georgianizator
8305b9bd2f Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2018-08-24 20:31:40 +00:00
Mozinet
5c542008ab Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Mozinet <mozinet@gmail.com>
2018-08-20 00:12:16 +00:00
Melo46
e1d6467de4 Pontoon: Update Interlingua (ia) localization of Test Pilot: Firefox Send
Localization authors:
- Melo46 <melo@carmu.com>
2018-08-07 07:52:18 +00:00
Rodrigo Guerra
7dc34ba646 Pontoon: Update Interlingua (ia) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo Guerra <rodmguerra@gmail.com>
2018-08-05 02:14:14 +00:00
Rodrigo Guerra
d5a30b710d Pontoon: Update Interlingua (ia) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo Guerra <rodmguerra@gmail.com>
2018-08-05 01:53:47 +00:00
Georgianizator
c90310405c Pontoon: Update Georgian (ka) localization of Test Pilot: Firefox Send
Localization authors:
- Georgianizator <georgianization@outlook.com>
2018-07-25 05:32:42 +00:00
Arash Mousavi
1bd85ee656 Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- Arash Mousavi <mousavi.arash@gmail.com>
2018-07-20 14:31:37 +00:00
Rodrigo
45452c7153 Pontoon: Update Portuguese (Portugal) (pt-PT) localization of Test Pilot: Firefox Send
Localization authors:
- Rodrigo <rodrigo.mcunha@hotmail.com>
2018-07-19 21:13:18 +00:00
Emily Hou
59ba89262f fix download count on server (#863) 2018-07-17 09:48:47 -07:00
Danny Coates
d906e927ed Merge pull request #862 from mozilla/i844
fixes #844
2018-07-13 09:01:07 -07:00
Emily
527e9f09c9 add a test 2018-07-12 16:07:18 -07:00
Emily
5ff92c6452 fix cancelled downloads increasing count 2018-07-12 14:02:05 -07:00
avelper
dfea1e96fb Pontoon: Update Spanish (Spain) (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- avelper <avelper@mozilla-hispano.org>
- jesferman1993 <jesferman1993@hotmail.com>
2018-07-10 21:33:30 +00:00
pyup.io bot
7e30fe8d33 Scheduled weekly dependency update for week 27 (#861)
* Update selenium from 3.12.0 to 3.13.0

* Update pytest from 3.6.2 to 3.6.3
2018-07-09 15:55:57 -04:00
వీవెన్
a74a560f0a Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- వీవెన్ <veeven@gmail.com>
2018-06-28 10:15:36 +00:00
వీవెన్
93072c0c1e Pontoon: Update Telugu (te) localization of Test Pilot: Firefox Send
Localization authors:
- వీవెన్ <veeven@gmail.com>
2018-06-26 16:12:41 +00:00
pyup.io bot
b3ad207326 Update pytest from 3.6.1 to 3.6.2 (#857) 2018-06-25 13:19:15 -04:00
Yongmin H
dced61eb30 Pontoon: Update Korean (ko) localization of Test Pilot: Firefox Send
Localization authors:
- Yongmin H. <firefox@kumul.pe.kr>
2018-06-25 01:52:27 +00:00
Selim Şumlu
42574af2cc Pontoon: Update Turkish (tr) localization of Test Pilot: Firefox Send
Localization authors:
- Selim Şumlu <selim@sum.lu>
2018-06-22 11:33:08 +00:00
Kohei Yoshino
ab699ebcc6 Pontoon: Update English (Canada) (en-CA) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
2018-06-22 07:32:39 +00:00
Tymur Faradzhev
de37804973 Pontoon: Update Ukrainian (uk) localization of Test Pilot: Firefox Send
Localization authors:
- Lobodzets <Lobodzets@meta.ua>
- Artem Polivanchuk <artem@mozilla.org.ua>
- Tymur Faradzhev <faradzhev.timur@gmail.com>
- Vitaliy Krutko <asmforce@ukr.net>
2018-06-20 19:18:49 +00:00
Frederick Villaluna
7654ec3b7c Pontoon: Update Tagalog (tl) localization of Test Pilot: Firefox Send
Localization authors:
- Frederick Villaluna <fv_comscie@yahoo.com>
2018-06-20 19:18:42 +00:00
Andreas Pettersson
fa84c653ea Pontoon: Update Swedish (sv-SE) localization of Test Pilot: Firefox Send
Localization authors:
- Andreas Pettersson <az@kth.se>
- Luna Jernberg <bittin@cafe8bitar.se>
2018-06-20 19:18:39 +00:00
avelper
7f9b43753e Pontoon: Update Spanish (Spain) (es-ES) localization of Test Pilot: Firefox Send
Localization authors:
- RickieES <rpmdisguise-nave@yahoo.es>
- avelper <avelper@mozilla-hispano.org>
- Jon Vadillo <vadillo.jon@gmail.com>
- jlG <jlg.l10n.es@gmail.com>
- Jordi Cuevas <jordicuevas@gmail.com>
- xxx <fxhelp@yahoo.com>
2018-06-20 19:18:35 +00:00
ravmn
a0c221750b Pontoon: Update Spanish (Chile) (es-CL) localization of Test Pilot: Firefox Send
Localization authors:
- josotrix <josotrix@ravmn.cl>
- ravmn <ravmn@ravmn.cl>
2018-06-20 19:18:28 +00:00
Marcelo Poli
bcb3936e08 Pontoon: Update Spanish (Argentina) (es-AR) localization of Test Pilot: Firefox Send
Localization authors:
- Gabriela <gmontagu@gmail.com>
- Marcelo Poli <enzomatrix@gmail.com>
2018-06-20 19:18:25 +00:00
Michael Wolf
66ec29eee9 Pontoon: Update Sorbian, Upper (hsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2018-06-20 19:18:21 +00:00
Michael Wolf
58535c8c2e Pontoon: Update Sorbian, Lower (dsb) localization of Test Pilot: Firefox Send
Localization authors:
- Michael Wolf <milupo@sorbzilla.de>
2018-06-20 19:18:17 +00:00
Rok Žerdin
563686849f Pontoon: Update Slovenian (sl) localization of Test Pilot: Firefox Send
Localization authors:
- Rok Žerdin <rok.zerdin1990@gmail.com>
- Lan Glad <upwinxp@gmail.com>
- Matjaž Horvat <matjaz.horvat@gmail.com>
2018-06-20 19:18:14 +00:00
Juraj Cigáň
5b607af8d1 Pontoon: Update Slovak (sk) localization of Test Pilot: Firefox Send
Localization authors:
- Juraj Cigáň <kusavica@gmail.com>
2018-06-20 19:18:10 +00:00
Марко Костић (Marko Kostić)
c5061ec51e Pontoon: Update Serbian (sr) localization of Test Pilot: Firefox Send
Localization authors:
- Marko Andrejić <marko.andrejic93@gmail.com>
- Марко Костић (Marko Kostić) <marko.m.kostic@gmail.com>
2018-06-20 19:18:06 +00:00
Maykon Chagas
32074a9bab Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Test Pilot: Firefox Send
Localization authors:
- Maykon Chagas <mchagas@riseup.net>
- Luiz Carlos de Morais <lcom_flip@hotmail.com>
- dgadelha <dgadelha@live.com>
- xxx <fxhelp@yahoo.com>
- Cynthia Pereira <cynthiacpereira@gmail.com>
2018-06-20 19:17:55 +00:00
Bjørn I
26478fc444 Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Bjørn I. <bjorn.svindseth@online.no>
2018-06-20 19:17:49 +00:00
Håvar Henriksen
7c66c07634 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Test Pilot: Firefox Send
Localization authors:
- Håvar Henriksen <havar@firefox.no>
2018-06-20 19:17:45 +00:00
manxmensch
4ef6f8e3bd Pontoon: Update Malay (ms) localization of Test Pilot: Firefox Send
Localization authors:
- manxmensch <manxmensch@gmail.com>
2018-06-20 19:17:42 +00:00
Juan Esteban Ajsivinac Sián
5591fb03f1 Pontoon: Update Kaqchikel (cak) localization of Test Pilot: Firefox Send
Localization authors:
- Juan Esteban Ajsivinac Sián <ajtzibsyan@yahoo.com>
2018-06-20 19:17:37 +00:00
Muḥend Belqasem
fc35acc6e4 Pontoon: Update Kabyle (kab) localization of Test Pilot: Firefox Send
Localization authors:
- Muḥend Belqasem <belkacem77@gmail.com>
- ybouhamam <ybouhamam@gmail.com>
- Uccen Marzuq <merzouk.ouchene@laposte.net>
- Slimane AMIRI <slimane.amiri@gmail.com>
2018-06-20 19:17:33 +00:00
Kohei Yoshino
5c8c6d56a4 Pontoon: Update Japanese (ja) localization of Test Pilot: Firefox Send
Localization authors:
- Kohei Yoshino <kohei.yoshino@gmail.com>
- aefgh39622 <aefgh39622@gmail.com>
2018-06-20 19:17:29 +00:00
Francesco Lodolo
4f9e63beca Pontoon: Update Italian (it) localization of Test Pilot: Firefox Send
Localization authors:
- Francesco Lodolo <francesco.lodolo@mozillaitalia.org>
- Sav22999 <saverio.morelli@outlook.it>
- Sara Todaro <sara.todaro@mozillaitalia.org>
- Sandro <gialloporpora@mozillaitalia.org>
- Winfox <openlib@email.it>
2018-06-20 19:17:25 +00:00
Melo46
6b7f6426a1 Pontoon: Update Interlingua (ia) localization of Test Pilot: Firefox Send
Localization authors:
- Melo46 <melo@carmu.com>
- Rodrigo Guerra <rodmguerra@gmail.com>
2018-06-20 19:17:21 +00:00
Balázs Meskó
1b6fad9d87 Pontoon: Update Hungarian (hu) localization of Test Pilot: Firefox Send
Localization authors:
- siparon <siparon@gmail.com>
- Balázs Meskó <meskobalazs@gmail.com>
2018-06-20 19:17:14 +00:00
hello
016d9bcf91 Pontoon: Update Hebrew (he) localization of Test Pilot: Firefox Send
Localization authors:
- Yaron Shahrabani <sh.yaron@gmail.com>
- hello <hello@ira.abramov.org>
2018-06-20 19:17:11 +00:00
Jim Spentzos
f199c8b96a Pontoon: Update Greek (el) localization of Test Pilot: Firefox Send
Localization authors:
- Jim Spentzos <jim.spentzos@outlook.com>
- Alfredos-Panagiotis Damkalis <fredy@fredy.gr>
- Giorgos S. <giorgos.skafidas@gmx.com>
- Μιχάλης  ĺ ľfb <mikem132@protonmail.com>
2018-06-20 19:17:04 +00:00
Fjoerfoks
06321126e7 Pontoon: Update Frisian (fy-NL) localization of Test Pilot: Firefox Send
Localization authors:
- Fjoerfoks <fryskefirefox@gmail.com>
2018-06-20 19:16:55 +00:00
Sander Lepik
08f9ad5046 Pontoon: Update Estonian (et) localization of Test Pilot: Firefox Send
Localization authors:
- Merike Sell <merikes@gmail.com>
- Sander Lepik <sander.lepik@eesti.ee>
2018-06-20 19:16:49 +00:00
Ton
9aefe7f7c9 Pontoon: Update Dutch (nl) localization of Test Pilot: Firefox Send
Localization authors:
- Mark Heijl <markh@babelzilla.org>
- Ton <tonnes.mb@gmail.com>
2018-06-20 19:16:42 +00:00
Pin-guang Chen
ea2ff28f32 Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Test Pilot: Firefox Send
Localization authors:
- Pin-guang Chen <petercpg@mail.moztw.org>
2018-06-20 19:16:35 +00:00
YFdyh000
339bf12857 Pontoon: Update Chinese (China) (zh-CN) localization of Test Pilot: Firefox Send
Localization authors:
- YFdyh000 <yfdyh000@gmail.com>
- xcffl <xcffl@outlook.com>
2018-06-20 19:16:31 +00:00
Nihad Suljić
7c605ac7af Pontoon: Update Bosnian (bs) localization of Test Pilot: Firefox Send
Localization authors:
- Mirzet Omerović <mirzet.omerovic.1992@gmail.com>
- Kerim Kalamujić <kerim@mozilla.ba>
- Nihad Suljić <nihad.suljic92@gmail.com>
- Adnan Kičin <adnankicin92@gmail.com>
2018-06-20 19:16:23 +00:00
Belayet Hossain
288b878700 Pontoon: Update Bengali (Bangladesh) (bn-BD) localization of Test Pilot: Firefox Send
Localization authors:
- Ashikur Rahman <ashikurrahman068@gmail.com>
- S M Sarwar Nobin <smsarwar1996@gmail.com>
- Belayet Hossain <bellayet@gmail.com>
2018-06-20 19:16:19 +00:00
Emin Mastizada
db84b331c2 Pontoon: Update Azerbaijani (az) localization of Test Pilot: Firefox Send
Localization authors:
- Emin Mastizada <emin@mastizada.com>
2018-06-20 19:16:15 +00:00
Besnik Bleta
2fde21c522 Pontoon: Update Albanian (sq) localization of Test Pilot: Firefox Send
Localization authors:
- Besnik Bleta <besnik@programeshqip.org>
2018-06-20 19:16:03 +00:00
Danny Coates
fb3747785b Merge pull request #846 from pd4d10/patch-1
Fix #843: Upload image on paste
2018-06-18 12:27:58 -07:00
Danny Coates
93d151a29a Merge pull request #852 from Vimal-Raghubir/master
Remove bad role attribute
2018-06-18 10:07:37 -07:00
Vimal Raghubir
e28a92848d Remove bad role attribute 2018-06-15 10:12:34 -04:00
pyup.io bot
f83784e033 Scheduled weekly dependency update for week 23 (#849)
* Update pytest from 3.6.0 to 3.6.1

* Update pytest-html from 1.18.0 to 1.19.0
2018-06-12 15:36:58 -07:00
Rongjian Zhang
11173c520b Add return to prevent multiple uploads 2018-06-07 10:46:55 +08:00
Rongjian Zhang
608112d56c Fix #843: Upload image on paste 2018-06-06 12:39:26 +08:00
Danny Coates
480a06c426 track bytes sent on download 2018-06-05 15:26:24 -07:00
Danny Coates
f0530975ac updated aws-sdk 2018-06-05 13:20:41 -07:00
Danny Coates
6d4973391a Merge pull request #840 from brainlulz/fix/ally-focus-downloadFile
fix: added a tabindex to the CopyUrl and Delete icon
2018-06-04 09:31:02 -07:00
Brainlulz
0edfc8405f fix: added a tabindex to the CopyUrl and Delete icon 2018-06-03 11:36:20 +02:00
eljuno
5274b732b2 Pontoon: Update Indonesian (id) localization of Test Pilot: Firefox Send
Localization authors:
- eljuno <eljunotrie_anggoro@yahoo.co.id>
2018-06-02 19:11:16 +00:00
Michal Stanke
0a71c8c724 Pontoon: Update Czech (cs) localization of Test Pilot: Firefox Send
Localization authors:
- Michal Stanke <mstanke@mozilla.cz>
2018-06-02 11:12:06 +00:00
Arash Mousavi
9feb6866ee Pontoon: Update Persian (fa) localization of Test Pilot: Firefox Send
Localization authors:
- Arash Mousavi <mousavi.arash@gmail.com>
2018-05-31 14:14:28 +00:00
Danny Coates
196d4211b6 an additional tweak to the position of the selectbox arrow 2018-05-29 15:12:00 -07:00
Danny Coates
a50762ebd7 Merge pull request #833 from dashokkumar93/master
changes related to arrow positioning
2018-05-29 14:56:06 -07:00
Danny Coates
3e65f3a906 only include js files in frontend tests. fixes #834 2018-05-29 14:39:54 -07:00
pyup.io bot
bea7d30836 Scheduled weekly dependency update for week 21 (#832)
* Update pytest from 3.5.1 to 3.6.0
* Update pytest-html from 1.17.0 to 1.18.0
* Update pytest-selenium from 1.12.0 to 1.13.0
2018-05-29 09:05:23 -04:00
Ashok kumar
6acf58f9e9 changes related to arrow positioning
Issue fixes related to https://github.com/mozilla/send/issues/820.
2018-05-29 16:42:34 +05:30
Théo Chevalier
33993eda88 Pontoon: Update French (fr) localization of Test Pilot: Firefox Send
Localization authors:
- Théo Chevalier <theo.chevalier11@gmail.com>
2018-05-28 20:12:06 +00:00
61 changed files with 9735 additions and 10592 deletions

View File

@@ -160,6 +160,7 @@ function download(id, keychain, onprogress, canceller) {
resolve(this.result);
};
});
xhr.addEventListener('progress', function(event) {
if (event.lengthComputable && event.target.status === 200) {
onprogress([event.loaded, event.total]);
@@ -170,6 +171,7 @@ function download(id, keychain, onprogress, canceller) {
xhr.setRequestHeader('Authorization', auth);
xhr.responseType = 'blob';
xhr.send();
onprogress([0, 1]);
});
}

View File

@@ -4,6 +4,7 @@ import app from './routes';
import locale from '../common/locales';
import fileManager from './fileManager';
import dragManager from './dragManager';
import pasteManager from './pasteManager';
import { canHasSend } from './utils';
import storage from './storage';
import metrics from './metrics';
@@ -48,5 +49,6 @@ app.use(metrics);
app.use(fileManager);
app.use(dragManager);
app.use(experiments);
app.use(pasteManager);
app.mount('body');

25
app/pasteManager.js Normal file
View File

@@ -0,0 +1,25 @@
/* global MAXFILESIZE */
import { bytes } from './utils';
export default function(state, emitter) {
window.addEventListener('paste', event => {
if (state.route !== '/' || state.uploading) return;
for (const item of event.clipboardData.items) {
if (!item.type.includes('image')) continue;
const file = item.getAsFile();
if (!file) continue; // Sometimes null
if (file.size > MAXFILESIZE) {
// eslint-disable-next-line no-alert
alert(state.translate('fileTooBig', { size: bytes(MAXFILESIZE) }));
continue;
}
emitter.emit('upload', { file, type: 'paste' });
return; // return here since only one file is allowed to be uploaded at a time
}
});
}

View File

@@ -19,7 +19,8 @@ module.exports = function(file, state, emit) {
onclick=${copyClick}
src="${assets.get('copy-16.svg')}"
class="cursor--pointer"
title="${state.translate('copyUrlHover')}">
title="${state.translate('copyUrlHover')}"
tabindex="0">
<span hidden="true">
${state.translate('copiedUrl')}
</span>
@@ -33,7 +34,8 @@ module.exports = function(file, state, emit) {
onclick=${showPopup}
src="${assets.get('close-16.svg')}"
class="cursor--pointer"
title="${state.translate('deleteButtonHover')}">
title="${state.translate('deleteButtonHover')}"
tabindex="0">
${deletePopup(
state.translate('deletePopupText'),
state.translate('deletePopupYes'),

View File

@@ -6,8 +6,7 @@ module.exports = function(state) {
<div class="legalSection">
<a
href="https://www.mozilla.org"
class="legalSection__link"
role="presentation">
class="legalSection__link">
<img
class="legalSection__mozLogo"
src="${assets.get('mozilla-logo.svg')}"
@@ -43,8 +42,7 @@ module.exports = function(state) {
<div class="socialSection">
<a
href="https://github.com/mozilla/send"
class="socialSection__link"
role="presentation">
class="socialSection__link">
<img
class="socialSection__icon"
src="${assets.get('github-icon.svg')}"
@@ -52,8 +50,7 @@ module.exports = function(state) {
</a>
<a
href="https://twitter.com/FxTestPilot"
class="socialSection__link"
role="presentation">
class="socialSection__link">
<img
class="socialSection__icon"
src="${assets.get('twitter-icon.svg')}"

View File

@@ -11,11 +11,10 @@
.select::after {
color: #0094fb;
content: '\25BC';
position: absolute;
right: 0;
padding: 0 10px;
pointer-events: none;
font-size: 20px;
margin-left: -30px;
padding-right: 10px;
}
option {

19604
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
{
"name": "firefox-send",
"description": "File Sharing Experiment",
"version": "2.5.4",
"version": "2.6.0",
"author": "Mozilla (https://mozilla.org)",
"repository": "mozilla/send",
"homepage": "https://github.com/mozilla/send/",
@@ -22,7 +22,6 @@
"format": "prettier '**/*.js' 'assets/*.css' --single-quote --write",
"get-prod-locales": "node scripts/get-prod-locales",
"get-prod-locales:write": "npm run get-prod-locales -- --write",
"changelog": "github-changes -o mozilla -r send --only-pulls --use-commit-body --no-merges",
"contributors": "git shortlog -s | awk -F\\t '{print $2}' > CONTRIBUTORS",
"release": "npm-run-all contributors changelog",
"test": "npm-run-all test:*",
@@ -56,79 +55,80 @@
},
"devDependencies": {
"asmcrypto.js": "^0.22.0",
"babel-core": "^6.26.0",
"babel-loader": "^7.1.4",
"babel-plugin-istanbul": "^4.1.5",
"babel-plugin-yo-yoify": "^1.0.2",
"babel-preset-env": "^1.6.1",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.5",
"babel-plugin-istanbul": "^4.1.6",
"babel-plugin-yo-yoify": "^1.0.3",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"babel-preset-stage-3": "^6.24.1",
"base64-js": "^1.2.3",
"copy-webpack-plugin": "^4.5.0",
"cross-env": "^5.1.3",
"css-loader": "^0.28.10",
"base64-js": "^1.3.0",
"copy-webpack-plugin": "^4.5.2",
"cross-env": "^5.2.0",
"css-loader": "^0.28.11",
"css-mqpacker": "^6.0.2",
"eslint": "^4.18.2",
"eslint": "^4.19.1",
"eslint-plugin-mocha": "^4.12.1",
"eslint-plugin-node": "^6.0.1",
"eslint-plugin-security": "^1.4.0",
"expose-loader": "^0.7.4",
"expose-loader": "^0.7.5",
"extract-loader": "^1.0.2",
"extract-text-webpack-plugin": "^3.0.2",
"fast-text-encoding": "^1.0.0",
"file-loader": "^1.1.11",
"fluent-intl-polyfill": "^0.1.0",
"git-rev-sync": "^1.10.0",
"github-changes": "^1.1.2",
"git-rev-sync": "^1.12.0",
"html-loader": "^0.5.5",
"husky": "^0.14.3",
"lint-staged": "^7.0.0",
"mocha": "^5.0.4",
"nanobus": "^4.3.2",
"nanotiming": "^7.3.0",
"npm-run-all": "^4.1.2",
"lint-staged": "^7.3.0",
"mocha": "^5.2.0",
"nanobus": "^4.3.4",
"nanotiming": "^7.3.1",
"npm-run-all": "^4.1.3",
"nsp": "^3.2.1",
"nyc": "^11.5.0",
"nyc": "^11.9.0",
"postcss-cssnext": "^3.1.0",
"postcss-import": "^11.1.0",
"postcss-loader": "^2.1.1",
"prettier": "^1.11.1",
"postcss-loader": "^2.1.6",
"prettier": "^1.14.3",
"proxyquire": "^1.8.0",
"puppeteer": "^1.1.1",
"raven-js": "^3.23.1",
"puppeteer": "^1.9.0",
"raven-js": "^3.27.0",
"redis-mock": "^0.21.0",
"require-from-string": "^2.0.1",
"require-from-string": "^2.0.2",
"rimraf": "^2.6.2",
"sinon": "^4.4.2",
"sinon": "^4.5.0",
"string-hash": "^1.1.3",
"stylelint": "^9.1.1",
"stylelint": "^9.6.0",
"stylelint-config-standard": "^18.2.0",
"stylelint-no-unsupported-browser-features": "^2.0.0",
"svgo": "^1.0.5",
"svgo-loader": "^2.1.0",
"svgo": "^1.1.1",
"svgo-loader": "^2.2.0",
"testpilot-ga": "^0.3.0",
"val-loader": "^1.1.0",
"webpack": "^3.11.0",
"val-loader": "^1.1.1",
"webpack": "^3.12.0",
"webpack-dev-middleware": "^2.0.6",
"webpack-dev-server": "2.9.1",
"webpack-manifest-plugin": "^1.3.2",
"webpack-unassert-loader": "^1.2.0"
},
"dependencies": {
"aws-sdk": "^2.206.0",
"@google-cloud/storage": "^2.3.0",
"aws-sdk": "^2.349.0",
"babel-polyfill": "^6.26.0",
"choo": "^6.10.0",
"choo": "^6.13.0",
"cldr-core": "^32.0.0",
"connect-busboy": "0.0.2",
"convict": "^4.0.1",
"express": "^4.16.2",
"fluent": "^0.6.3",
"convict": "^4.4.0",
"express": "^4.16.3",
"fast-crc32c": "^1.0.4",
"fluent": "^0.6.4",
"fluent-langneg": "^0.1.0",
"helmet": "^3.12.0",
"helmet": "^3.13.0",
"mkdirp": "^0.5.1",
"mozlog": "^2.2.0",
"raven": "^2.4.2",
"raven": "^2.6.4",
"redis": "^2.8.0"
},
"availableLanguages": [
@@ -145,6 +145,7 @@
"de",
"dsb",
"el",
"en-CA",
"es-AR",
"es-CL",
"es-ES",

View File

@@ -7,8 +7,7 @@ uploadPageExplainer = أرسل الملفات عبر رابط آمن خاص وم
uploadPageLearnMore = اطّلع على المزيد
uploadPageDropMessage = أسقِط ملفّك هنا لبدء الرفع
uploadPageSizeMessage = لتتحصل على أفضل تجربة، من المستحسن أن يكون الملف أصغر من 1 غ.بايت
uploadPageBrowseButton = اختر ملفّا على حاسوبك
.title = اختر ملفّا على حاسوبك
uploadPageBrowseButton = اختر ملفًا على حاسوبك
uploadPageBrowseButton1 = اختر ملفّا لرفعه
uploadPageMultipleFilesAlert = رفع عدة ملفات (أو رفع مجلد) ليس مدعوما حاليا.
uploadPageBrowseButtonTitle = ارفع ملفًا
@@ -20,13 +19,11 @@ decryptingFile = يفك التعمية…
notifyUploadDone = انتهى الرفع.
uploadingPageMessage = ما إن يُرفع الملف سيُتاح ضبط خيارات انتهاء صلاحيته.
uploadingPageCancel = ألغِ الرفع
.title = ألغِ الرفع
uploadCancelNotification = أُلغي الرفع.
uploadingPageLargeFileMessage = هذا الملف كبير الحجم وسيأخذ رفعه وقتا. انتظر رجاءً.
uploadingFileNotification = أعلِمني عندما يكتمل الرفع.
uploadSuccessConfirmHeader = جاهز للإرسال
uploadSvgAlt =
.alt = ارفع
uploadSvgAlt = ارفع
uploadSuccessTimingHeader = ستنتهي صلاحية الرابط الذي يشير إلى الملف في حال: نُزِّل لأول مرة، أو مرّ ٢٤ ساعة على رفعه.
expireInfo = ستنتهي صلاحية رابط الملف بعد { $downloadCount } أو { $timespan }.
downloadCount =
@@ -49,15 +46,11 @@ timespanHours =
}
copyUrlFormLabelWithName = انسخ الرابط وشاركه لإرسال الملف: { $filename }
copyUrlFormButton = انسخ إلى الحافظة
.title = انسخ إلى الحافظة
copiedUrl = نُسخ!
deleteFileButton = احذف الملف
.title = احذف الملف
sendAnotherFileLink = أرسل ملفّا آخر
.title = أرسل ملفّا آخر
sendAnotherFileLink = أرسِل ملفًا آخر
# Alternative text used on the download link/button (indicates an action).
downloadAltText =
.alt = نزّل
downloadAltText = نزّل
downloadsFileList = التنزيلات
# Used as header in a column indicating the amount of time left before a
# download link expires (e.g. "10h 5m")
@@ -74,7 +67,6 @@ downloadFileTitle = نزِّل الملف المعمّى
downloadMessage = يُرسل إليك صديقك ملفا عبر «فَيَرفُكس سِنْد»، وهي خدمة تتيح لك مشاركة الملفات عبر رابط آمن وخاص ومعمّى، حيث تنتهي صلاحياتها تلقائيا لتضمن عدم بقاء ما ترسله إلى الأبد.
# Text and title used on the download link/button (indicates an action).
downloadButtonLabel = نزّل
.title = نزّل
downloadNotification = لقد اكتمل التنزيل.
downloadFinish = اكتمل التنزيل
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
@@ -83,8 +75,7 @@ fileSizeProgress = ({ $partialSize } من أصل { $totalSize })
sendYourFilesLink = جرِّب «فَيَرفُكس سِنْد»
downloadingPageProgress = ينزّل { $filename } ({ $size })
downloadingPageMessage = رجاء أبقِ هذا اللسان مفتوحا حتى نجلب الملف ونفك تعميته.
errorAltText =
.alt = خطأ أثناء الرفع
errorAltText = خطأ أثناء الرفع
errorPageHeader = حدث خطب ما.
errorPageMessage = حدث خطب ما أثناء رفع الملف.
errorPageLink = أرسل ملفا آخر
@@ -110,10 +101,8 @@ legalNoticeMozilla = يخضع استخدام موقع «فَيَرفُكس سِ
deletePopupText = أأحذف هذا الملف؟
deletePopupYes = نعم
deletePopupCancel = ألغِ
deleteButtonHover =
.title = احذف
copyUrlHover =
.title = انسخ الرابط
deleteButtonHover = احذف
copyUrlHover = انسخ الرابط
footerLinkLegal = القانونية
# Test Pilot is a proper name and should not be localized.
footerLinkAbout = حول الاختبار التجريبي

View File

@@ -25,6 +25,7 @@ uploadingFileNotification = Avísame cuando se complete la xuba.
uploadSuccessConfirmHeader = Preparáu pa unviar
uploadSvgAlt = Xubir
uploadSuccessTimingHeader = L'enllaz del to ficheru caducará dempués d'una descarga o en 24 hores.
expireInfo = L'enllaz al ficheru va caducar tres { $downloadCount } o { $timespan }.
downloadCount =
{ $num ->
[one] 1 descarga
@@ -43,6 +44,9 @@ sendAnotherFileLink = Unviar otru ficheru
# Alternative text used on the download link/button (indicates an action).
downloadAltText = Baxar
downloadsFileList = Descargues
# Used as header in a column indicating the amount of time left before a
# download link expires (e.g. "10h 5m")
timeFileList = Tiempu
# Used as header in a column indicating the number of times a file has been
# downloaded
downloadFileName = Baxar { $filename }
@@ -101,5 +105,16 @@ requirePasswordCheckbox = Riquir una contraseña pa baxar esti ficheru
addPasswordButton = Amestar contraseña
changePasswordButton = Camudar
passwordTryAgain = Contraseña incorreuta. Volvi tentalo.
javascriptRequired = Firefox Send rique JavaScript
whyJavascript = ¿Por qué Firefox Send rique JavaScript?
enableJavascript = Activa JavaScript y volvi tentalo, por favor.
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
expiresHoursMinutes = { $hours }h { $minutes }m
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
expiresMinutes = { $minutes }m
# A short status message shown when a password is successfully set
passwordIsSet = Afitóse la contraseña
# A short status message shown when the user enters a long password
maxPasswordLength = Llargor máximu de la contraseña: { $length }
# A short status message shown when there was an error setting the password
passwordSetError = Nun pudo afitase esta contraseña

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Göndərməyə hazır
uploadSvgAlt = Yüklə
uploadSuccessTimingHeader = Faylınızın keçidinin 1 endirmədən və ya 24 saatdan sonra vaxtı çıxacaq.
expireInfo = Faylınız üçün keçidin vaxtı { $downloadCount } sonra və ya { $timespan } tarixində keçəcək.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 endirmə
*[other] { $num } endirmə
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 saat
*[other] { $num } saat
}

View File

@@ -1,4 +1,4 @@
// Firefox Send is a brand name and should not be localized.
# Firefox Send is a brand name and should not be localized.
title = Firefox Send
siteSubtitle = ওয়েব গবেষণা
siteFeedback = প্রতিক্রিয়া
@@ -15,11 +15,13 @@ uploadingPageCancel = আপলোড বাতিল করুন
uploadCancelNotification = আপনার অাপলোড বাতিল করা হয়েছে।
uploadSuccessConfirmHeader = পাঠানোর জন্য প্রস্তুত
uploadSvgAlt = আপলোড
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 ডাউনলোড
*[other] { $num } ডাউনলোডগুলো
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 ঘন্টা
*[other] { $num } ঘন্টা
}
@@ -27,20 +29,20 @@ copyUrlFormButton = ক্লিপবোর্ডে কপি করুন
copiedUrl = কপি করা হয়েছে!
deleteFileButton = ফাইল মুছুন
sendAnotherFileLink = আরেকটি ফাইল পাঠান
// Alternative text used on the download link/button (indicates an action).
# Alternative text used on the download link/button (indicates an action).
downloadAltText = ডাউনলোড
downloadsFileList = ডাউনলোডগুলো
// Used as header in a column indicating the amount of time left before a
// download link expires (e.g. "10h 5m")
# Used as header in a column indicating the amount of time left before a
# download link expires (e.g. "10h 5m")
timeFileList = সময়
// Used as header in a column indicating the number of times a file has been
// downloaded
# Used as header in a column indicating the number of times a file has been
# downloaded
downloadFileName = ডাউনলোড { $filename }
downloadFileSize = ({ $size })
unlockInputLabel = পাসওয়ার্ড লিখুন
unlockInputPlaceholder = পাসওয়ার্ড
unlockButtonLabel = আনলক করুন
// Text and title used on the download link/button (indicates an action).
# Text and title used on the download link/button (indicates an action).
downloadButtonLabel = ডাউনলোড
downloadNotification = আপনার ডাউনলোড সম্পন্ন হয়েছে।
downloadFinish = ডাউনলোড সম্পন্ন
@@ -53,7 +55,7 @@ updateFirefox = Firefox হালনাগাদ করুন
downloadFirefoxButtonSub = বিনামূল্যে ডাউনলোড
uploadedFile = ফাইল
copyFileList = URL অনুলিপি করুন
// expiryFileList is used as a column header
# expiryFileList is used as a column header
expiryFileList = মেয়াদোত্তীর্ণ তারিখ
deleteFileList = মুছে ফেলুন
nevermindButton = কিছু মনে করবেন না
@@ -64,7 +66,7 @@ deletePopupCancel = বাতিল
deleteButtonHover = মুছে ফেলুন
copyUrlHover = URL অনুলিপি করুন
footerLinkLegal = আইনগত
// Test Pilot is a proper name and should not be localized.
# Test Pilot is a proper name and should not be localized.
footerLinkAbout = Test Pilot পরিচিতি
footerLinkPrivacy = গোপনীয়তা
footerLinkTerms = শর্তাবলী

View File

@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Spremno za slanje
uploadSvgAlt = Otpremi
uploadSuccessTimingHeader = Veza prema vašoj datoteci će isteći nakon prvog preuzimanja ili za 24 sata.
expireInfo = Link za vašu datoteku će isteći nakon { $downloadCount } ili { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 preuzimanja
[few] { $num } preuzimanja
*[other] { $num } preuzimanja
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 sat
[few] { $num } sata
*[other] { $num } sati

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ütz chik richin Nitaq
uploadSvgAlt = Tijotob'äx
uploadSuccessTimingHeader = Ri ruximonel yakb'äl xtik'is ruq'ijul toq xtiqasäx jumul o pa 24 ramaj.
expireInfo = Ri ruximöy ayakb'al xtik'is ruq'ijul chi rij ri { $downloadCount } o { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 qasanïk
*[other] { $num } taq qasanïk
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 ramaj
*[other] { $num } taq ramaj
}

View File

@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Připraveno k odeslání
uploadSvgAlt = Nahrát
uploadSuccessTimingHeader = Platnost odkazu na váš soubor vyprší po jeho prvním stažení, nebo po 24 hodinách.
expireInfo = Platnost odkazu na váš soubor vyprší po { $downloadCount } nebo { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] jednom stažení
[few] { $num } staženích
*[other] { $num } staženích
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] jedné hodině
[few] { $num } hodinách
*[other] { $num } hodinách
@@ -88,8 +90,8 @@ expiryFileList = Platnost vyprší za
deleteFileList = Smazat
nevermindButton = Nevadí
legalHeader = Podmínky a ochrana soukromí
legalNoticeTestPilot = Firefox Send je ve fázi experimentu projektu Test Pilot a platí tak pro něj stejné <a>Podmínky používání</a> a <a>Zásady ochrany soukromí</a>. Více o tomto experimentu a sbíraných datech se dozvíte <a>zde</a>.
legalNoticeMozilla = Používání webové služby Firefox Send se řídí <a>Zásadami ochrany soukromí</a> a <a>Podmínkami používání</a> webových stránek Mozilly.
legalNoticeTestPilot = Firefox Send je ve fázi experimentu projektu Test Pilot a platí tak pro něj stejné <a>Podmínky používání</a> a <a>Zásady ochrany osobních údajů</a>. Více o tomto experimentu a sbíraných datech se dozvíte <a>zde</a>.
legalNoticeMozilla = Používání webové služby Firefox Send se řídí <a>Zásadami ochrany osobních údajů</a> a <a>Podmínkami používání</a> webových stránek Mozilly.
deletePopupText = Smazat tento soubor?
deletePopupYes = Ano
deletePopupCancel = Zrušit

View File

@@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Gótowy za słanje
uploadSvgAlt = Nagraś
uploadSuccessTimingHeader = Wótkaz k wašej dataji pó 1 ześěgnjenju abo 24 góźinach spadnjo.
expireInfo = Wótkaz k wašej dataji pó { $downloadCount } abo { $timespan } spadnjo.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 ześěgnjenje
[two] { $num } ześěgnjeni
[few] { $num } ześěgnjenja
*[other] { $num } ześěgnjenjow
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 góźina
[two] { $num } góźinje
[few] { $num } góźiny

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Έτοιμο για αποστολή
uploadSvgAlt = Μεταφόρτωση
uploadSuccessTimingHeader = Ο σύνδεσμος του αρχείου σας θα λήξει έπειτα από 1 λήψη ή 24 ώρες.
expireInfo = Ο σύνδεσμος για το αρχείο σας θα λήξει μετά από { $downloadCount } ή { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 λήψη
*[other] { $num } λήψεις
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 ώρα
*[other] { $num } ώρες
}

View File

@@ -0,0 +1,121 @@
# Firefox Send is a brand name and should not be localized.
title = Firefox Send
siteSubtitle = web experiment
siteFeedback = Feedback
uploadPageHeader = Private, Encrypted File Sharing
uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
uploadPageLearnMore = Learn more
uploadPageDropMessage = Drop your file here to start uploading
uploadPageSizeMessage = For the most reliable operation, its best to keep your file under 1GB
uploadPageBrowseButton = Select a file on your computer
uploadPageBrowseButton1 = Select a file to upload
uploadPageMultipleFilesAlert = Uploading multiple files or a folder is currently not supported.
uploadPageBrowseButtonTitle = Upload file
uploadingPageProgress = Uploading { $filename } ({ $size })
importingFile = Importing…
verifyingFile = Verifying…
encryptingFile = Encrypting…
decryptingFile = Decrypting…
notifyUploadDone = Your upload has finished.
uploadingPageMessage = Once your file uploads you will be able to set expiry options.
uploadingPageCancel = Cancel upload
uploadCancelNotification = Your upload was cancelled.
uploadingPageLargeFileMessage = This file is large and may take a while to upload. Sit tight!
uploadingFileNotification = Notify me when the upload is complete.
uploadSuccessConfirmHeader = Ready to Send
uploadSvgAlt = Upload
uploadSuccessTimingHeader = The link to your file will expire after 1 download or in 24 hours.
expireInfo = The link to your file will expire after { $downloadCount } or { $timespan }.
downloadCount =
{ $num ->
[one] 1 download
*[other] { $num } downloads
}
timespanHours =
{ $num ->
[one] 1 hour
*[other] { $num } hours
}
copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename }
copyUrlFormButton = Copy to clipboard
copiedUrl = Copied!
deleteFileButton = Delete file
sendAnotherFileLink = Send another file
# Alternative text used on the download link/button (indicates an action).
downloadAltText = Download
downloadsFileList = Downloads
# Used as header in a column indicating the amount of time left before a
# download link expires (e.g. "10h 5m")
timeFileList = Time
# Used as header in a column indicating the number of times a file has been
# downloaded
downloadFileName = Download { $filename }
downloadFileSize = ({ $size })
unlockInputLabel = Enter Password
unlockInputPlaceholder = Password
unlockButtonLabel = Unlock
downloadFileTitle = Download Encrypted File
# Firefox Send is a brand name and should not be localized.
downloadMessage = Your friend is sending you a file with Firefox Send, a service that allows you to share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
# Text and title used on the download link/button (indicates an action).
downloadButtonLabel = Download
downloadNotification = Your download has completed.
downloadFinish = Download Complete
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
fileSizeProgress = ({ $partialSize } of { $totalSize })
# Firefox Send is a brand name and should not be localized.
sendYourFilesLink = Try Firefox Send
downloadingPageProgress = Downloading { $filename } ({ $size })
downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it.
errorAltText = Upload error
errorPageHeader = Something went wrong!
errorPageMessage = There has been an error uploading the file.
errorPageLink = Send another file
fileTooBig = That file is too big to upload. It should be less than { $size }.
linkExpiredAlt = Link expired
expiredPageHeader = This link has expired or never existed in the first place!
notSupportedHeader = Your browser is not supported.
# Firefox Send is a brand name and should not be localized.
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. Youll need to try another browser. We recommend Firefox!
notSupportedLink = Why is my browser not supported?
notSupportedOutdatedDetail = Unfortunately this version of Firefox does not support the web technology that powers Firefox Send. Youll need to update your browser.
updateFirefox = Update Firefox
downloadFirefoxButtonSub = Free Download
uploadedFile = File
copyFileList = Copy URL
# expiryFileList is used as a column header
expiryFileList = Expires In
deleteFileList = Delete
nevermindButton = Never mind
legalHeader = Terms & Privacy
legalNoticeTestPilot = Firefox Send is currently a Test Pilot experiment, and subject to the Test Pilot <a>Terms of Service</a> and <a>Privacy Notice</a>. You can learn more about this experiment and its data collection <a>here</a>.
legalNoticeMozilla = Use of the Firefox Send website is also subject to Mozillas <a>Websites Privacy Notice</a> and <a>Websites Terms of Use</a>.
deletePopupText = Delete this file?
deletePopupYes = Yes
deletePopupCancel = Cancel
deleteButtonHover = Delete
copyUrlHover = Copy URL
footerLinkLegal = Legal
# Test Pilot is a proper name and should not be localized.
footerLinkAbout = About Test Pilot
footerLinkPrivacy = Privacy
footerLinkTerms = Terms
footerLinkCookies = Cookies
requirePasswordCheckbox = Require a password to download this file
addPasswordButton = Add password
changePasswordButton = Change
passwordTryAgain = Incorrect password. Try again.
reportIPInfringement = Report IP Infringement
javascriptRequired = Firefox Send requires JavaScript
whyJavascript = Why does Firefox Send require JavaScript?
enableJavascript = Please enable JavaScript and try again.
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
expiresHoursMinutes = { $hours }h { $minutes }m
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
expiresMinutes = { $minutes }m
# A short status message shown when a password is successfully set
passwordIsSet = Password set
# A short status message shown when the user enters a long password
maxPasswordLength = Maximum password length: { $length }
# A short status message shown when there was an error setting the password
passwordSetError = This password could not be set

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar
uploadSvgAlt = Subir
uploadSuccessTimingHeader = El enlace al archivo expirará después de 1 descarga o en 24 horas.
expireInfo = El enlace a tu archivo expirará después de { $downloadCount } o { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 descarga
*[other] { $num } descargas
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 hora
*[other] { $num } horas
}

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar
uploadSvgAlt = Subir
uploadSuccessTimingHeader = El enlace a tu archivo expirará tras 1 descarga o en 24 horas.
expireInfo = El enlace a tu archivo expirará después de { $downloadCount } o { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 descarga
*[other] { $num } descargas
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 hora
*[other] { $num } horas
}

View File

@@ -12,7 +12,7 @@ uploadPageBrowseButton1 = Seleccionar un archivo para subir
uploadPageMultipleFilesAlert = Aún no se pueden subir varios archivos o una carpeta.
uploadPageBrowseButtonTitle = Subir archivo
uploadingPageProgress = Subiendo { $filename } ({ $size })
importingFile = Imporando...
importingFile = Importando...
verifyingFile = Comprobando...
encryptingFile = Encriptando...
decryptingFile = Desencriptando...
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar
uploadSvgAlt = Subir
uploadSuccessTimingHeader = El enlace al archivo caducará tras descargarlo una vez o en 24 horas.
expireInfo = El enlace al archivo expirará tras { $downloadCount } o { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 descarga
*[other] { $num } descargas
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 hora
*[other] { $num } horas
}
@@ -86,7 +88,7 @@ expiryFileList = Caduca en
deleteFileList = Eliminar
nevermindButton = Da igual
legalHeader = Términos y privacidad
legalNoticeTestPilot = Firefox Send sigue siendo un experimento de Test Pilot y está sujero a las <a>Condiciones del servicio</a> y al <a>Aviso de privacidad</a> de Test Pilot.
legalNoticeTestPilot = Firefox Send sigue siendo un experimento de Test Pilot y está sujero a las <a>Condiciones del servicio</a> y al <a>Aviso de privacidad</a> de Test Pilot. <a>Aquí</a> podrás descubrir más sobre este experimento y su recopilación de datos.
legalNoticeMozilla = El uso de la página de Firefox Send también está sujeto al <a>Aviso de privacidad sobre sitios web</a> y a los <a>Términos de uso sobre sitios web</a>.
deletePopupText = ¿Eliminar el archivo?
deletePopupYes = Sí

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Saatmiseks valmis
uploadSvgAlt = Laadi üles
uploadSuccessTimingHeader = Link failile aegub pärast 1. allalaadimist või 24 tunni möödumisel.
expireInfo = Link failile aegub peale { $downloadCount } või { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] üht allalaadimist
*[other] { $num } allalaadimist
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] üht tundi
*[other] { $num } tundi
}

View File

@@ -26,6 +26,16 @@ uploadSuccessConfirmHeader = آماده برای ارسال
uploadSvgAlt = بارگذاری
uploadSuccessTimingHeader = پیوند به پرونده شما بعد از ۱ بار دانلود یا ۲۴ ساعت حذف خواهد شد.
expireInfo = این پیوند به فایل شما پس از { $downloadCount } یا { $timespan } منقضی خواهد شد.
downloadCount =
{ $num ->
[one] ۱ بارگیری
*[other] { $num } بارگیری
}
timespanHours =
{ $num ->
[one] ۱ ساعت
*[other] { $num } ساعت
}
copyUrlFormLabelWithName = برای ارسال پرونده پیوند آن را رونوشت و به اشتراک بگذارید: { $filename }
copyUrlFormButton = رونوشت به کلیپ‌بورد
copiedUrl = رونوشت شد!
@@ -97,7 +107,7 @@ changePasswordButton = تغییر
passwordTryAgain = کلمه عبور اشتباه است. مجدد تلاش کنید.
reportIPInfringement = گزارش تخلف IP
javascriptRequired = Firefox Send نیازمند جاوااسکریپت است
whyJavascript = چراFirefox Send جاوااسکریپت لازم دارد؟
whyJavascript = چرا Firefox Send جاوااسکریپت لازم داد؟
enableJavascript = لطفا جاوااسکریپت را فعال کنید و مجددا تلاش کنید.
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
expiresHoursMinutes = { $hours }ساعت { $minutes }دقیقه

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Paré à lenvoi
uploadSvgAlt = Envoyer
uploadSuccessTimingHeader = Le lien vers votre fichier expirera après le premier téléchargement ou au bout de 24 heures.
expireInfo = Le lien vers votre fichier expirera après { $downloadCount } ou { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 téléchargement
*[other] { $num } téléchargements
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 heure
*[other] { $num } heures
}
@@ -86,8 +88,8 @@ expiryFileList = Expire dans
deleteFileList = Supprimer
nevermindButton = Non merci
legalHeader = Confidentialité et conditions dutilisation
legalNoticeTestPilot = Firefox Send est actuellement une expérience Test Pilot, et en tant que tel est soumis aux <a>conditions dutilisation</a> et à la <a>politique de confidentialité</a> de Test Pilot. Vous pouvez en apprendre plus sur cette expérience et sur la collecte de données <a>ici</a>.
legalNoticeMozilla = Lutilisation du site web Firefox Send est aussi soumise à <a>lavis de confidentialité relatif aux sites Web</a> ainsi quaux <a>conditions dutilisation des sites Web</a> de Mozilla.
legalNoticeTestPilot = Firefox Send est actuellement une expérience Test Pilot, et en tant que telle est soumis aux <a>Conditions dutilisation</a> et à la <a>Politique de confidentialité</a> de Test Pilot. Vous pouvez en apprendre plus sur cette expérience et sur la collecte de données <a>ici</a>.
legalNoticeMozilla = Lutilisation du site web Firefox Send est aussi soumise à <a>lAvis de confidentialité relatif aux sites web</a> ainsi quaux <a>Conditions dutilisation des sites web</a> de Mozilla.
deletePopupText = Supprimer ce fichier ?
deletePopupYes = Oui
deletePopupCancel = Annuler

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ree om te ferstjoeren
uploadSvgAlt = Oplaad
uploadSuccessTimingHeader = De keppeling nei jo bestân sil nei 1 download ferrinne of nei 24 oeren.
expireInfo = De keppeling nei jo bestân sil nei { $downloadCount } of { $timespan } ferrinne.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 download
*[other] { $num } downloads
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 oer
*[other] { $num } oeren
}

View File

@@ -1,4 +1,4 @@
// Firefox Send is a brand name and should not be localized.
# Firefox Send is a brand name and should not be localized.
title = Firefox Send
siteSubtitle = ניסוי אינטרנט
siteFeedback = משוב
@@ -21,7 +21,7 @@ uploadCancelNotification = ההעלאה שלך בוטלה.
uploadingPageLargeFileMessage = קובץ זה גדול ועלול לקחת זמן להעלות אותו. סבלנות!
uploadingFileNotification = נא להודיע לי כשתסתיים ההעלאה.
uploadSuccessConfirmHeader = מוכן לשליחה
uploadSvgAlt
uploadSvgAlt =
.alt = להעלות
uploadSuccessTimingHeader = הקישור לקובץ שלך יפוג אחרי הורדה אחת או בעוד 24 שעות.
copyUrlFormLabelWithName = ניתן להעתיק ולשתף את הקישור כדי לשלוח את הקובץ שלך: { $filename }
@@ -30,32 +30,34 @@ deleteFileButton = מחיקת קובץ
.title = מחיקת קובץ
sendAnotherFileLink = שליחת קובץ נוסף
.title = שליחת קובץ נוסף
// Alternative text used on the download link/button (indicates an action).
downloadAltText
# Alternative text used on the download link/button (indicates an action).
downloadAltText =
.alt = הורדה
# Used as header in a column indicating the number of times a file has been
# downloaded
downloadFileName = ההורדה נכשלה
downloadFileSize = ({ $size })
// Text and title used on the download link/button (indicates an action).
# Text and title used on the download link/button (indicates an action).
downloadButtonLabel = הורדה
.title = הורדה
downloadNotification = ההורדה הושלמה.
downloadFinish = ההורדה הושלמה
// This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
fileSizeProgress = ({ $partialSize } מתוך { $totalSize })
downloadingPageProgress = בהורדה: { $filename } ({ $size })
errorAltText
errorAltText =
.alt = תקלה בהעלאה
errorPageHeader = משהו השתבש!
errorPageLink = שליחת קובץ נוסף
fileTooBig = הקובץ הזה גדול מידי להעלאה. עליו להיות קטן מ־{ $size }.
linkExpiredAlt
linkExpiredAlt =
.alt = קישור פג
notSupportedHeader = הדפדפן שלך לא נתמך.
notSupportedLink = למה אין תמיכה בדפדפן שלי?
downloadFirefoxButtonSub = הורדה בחינם
uploadedFile = קובץ
copyFileList = העתקת כתובת
// expiryFileList is used as a column header
# expiryFileList is used as a column header
expiryFileList = יפוג בעוד
deleteFileList = מחיקה
nevermindButton = לא משנה
@@ -63,9 +65,9 @@ legalHeader = תנאי שירות ופרטיות
deletePopupText = למחוק דף זה?
deletePopupYes = כן
deletePopupCancel = ביטול
deleteButtonHover
deleteButtonHover =
.title = מחיקה
copyUrlHover
copyUrlHover =
.title = העתקת קישור
footerLinkLegal = מידע משפטי
footerLinkPrivacy = פרטיות

View File

@@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Hotowy za słanje
uploadSvgAlt = Nahrać
uploadSuccessTimingHeader = Wotkaz k wašej dataji po 1 sćehnjenju abo 24 hodźinach spadnje.
expireInfo = Wotkaz k wašej dataji po { $downloadCount } abo { $timespan } spadnje.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 sćehnjenje
[two] { $num } sćehnjeni
[few] { $num } sćehnjenja
*[other] { $num } sćehnjenjow
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 hodźina
[two] { $num } hodźinje
[few] { $num } hodźiny

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Küldésre kész
uploadSvgAlt = Feltöltés
uploadSuccessTimingHeader = A fájl hivatkozása lejár 1 letöltés vagy 24 óra múlva.
expireInfo = A fájlhoz tartozó hivatkozás { $downloadCount } vagy { $timespan } múlva lejár.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 letöltés
*[other] { $num } letöltés
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 óra
*[other] { $num } óra
}

View File

@@ -9,7 +9,7 @@ uploadPageDropMessage = Depone ci tu file pro comenciar a lo cargar
uploadPageSizeMessage = Pro evitar problemas, mantene tu file sub 1GB
uploadPageBrowseButton = Elige un file sur tu computator
uploadPageBrowseButton1 = Elige un file a cargar
uploadPageMultipleFilesAlert = Le cargamento de plure files o de un plica actualmente non es supportate.
uploadPageMultipleFilesAlert = Le cargamento de plure files o de un dossier non es actualmente admittite.
uploadPageBrowseButtonTitle = Cargar le file
uploadingPageProgress = Cargamento de { $filename } ({ $size })
importingFile = Importation…
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Preste a inviar
uploadSvgAlt = Cargamento
uploadSuccessTimingHeader = Le ligamine a tu file expirara post un discargamento o in 24 horas.
expireInfo = Le ligamine a tu file expirara post { $downloadCount } o { $timespan }
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] discargamento
*[other] discargamentos
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] hora
*[other] horas
}
@@ -57,7 +59,7 @@ downloadFileTitle = Discargar le file cryptate
downloadMessage = Tu amico te invia un file per Firefox Send, un servicio que te permitte de compartir files per un ligamine secur, private e cryptate, que expira automaticamente pro te assecurar que tu datos non resta online per sempre.
# Text and title used on the download link/button (indicates an action).
downloadButtonLabel = Discargar
downloadNotification = Tu discargamento es completate.
downloadNotification = Discargamento completate.
downloadFinish = Discargamento completate
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
fileSizeProgress = ({ $partialSize } de { $totalSize })
@@ -86,7 +88,7 @@ expiryFileList = Expira in
deleteFileList = Deler
nevermindButton = No, gratias
legalHeader = Terminos & confidentialitate
legalNoticeTestPilot = Firefox Send es actualmente un Experimento pilota, e subjecte a <a>Terminos de servicio</a> e <a>Notitia de confidentialitate</a> de Experimento pilota. Tu pote saper plus re iste experimento e su recolta de datos <a>hic</a>.
legalNoticeTestPilot = Firefox Send es actualmente un experimento pilota, e subjecte a <a>Terminos de servicio</a> e <a>Notification de confidentialitate</a> de Experimento pilota. Tu pote saper plus re iste experimento e su recolta de datos <a>hic</a>.
legalNoticeMozilla = Le uso del sito web de Firefox Send es anque subjecte a <a>Notitia de confidentialitate de sito web</a> e <a>Terminos de servicio sito web</a>.
deletePopupText = Deler iste file?
deletePopupYes = Si

View File

@@ -9,7 +9,6 @@ uploadPageDropMessage = Lepas berkas Anda di sini untuk mulai mengunggah
uploadPageSizeMessage = Untuk pengoperasian yang paling andal, sebaiknya jaga berkas Anda di bawah 1GB
uploadPageBrowseButton = Pilih berkas pada komputer Anda
uploadPageBrowseButton1 = Pilih berkas untuk diunggah
.title = Pilih berkas untuk diunggah
uploadPageMultipleFilesAlert = Saat ini belum mendukung pengunggahan beberapa berkas atau folder.
uploadPageBrowseButtonTitle = Unggah berkas
uploadingPageProgress = Mengunggah { $filename } ({ $size })
@@ -112,5 +111,9 @@ enableJavascript = Silakan aktifkan JavaScript dan coba lagi.
expiresHoursMinutes = { $hours }j { $minutes }m
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
expiresMinutes = { $minutes }m
# A short status message shown when a password is successfully set
passwordIsSet = Sandi diatur
# A short status message shown when the user enters a long password
maxPasswordLength = Panjang sandi maksimal: { $length }
# A short status message shown when there was an error setting the password
passwordSetError = Tidak bisa menyetel sandi ini

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Pronto per linvio
uploadSvgAlt = Carica
uploadSuccessTimingHeader = Il link al file scadrà dopo 1 download o in 24 ore.
expireInfo = Il link a questo file scadrà dopo { $downloadCount } o { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 download
*[other] { $num } download
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 ora
*[other] { $num } ore
}

View File

@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 送信準備完了
uploadSvgAlt = アップロード
uploadSuccessTimingHeader = ファイルへのリンクは、1 回ダウンロードされた後、もしくは 24 時間以内に期限切れとなります。
expireInfo = このファイルへのリンクは { $downloadCount } あるいは { $timespan } 後に期限切れとなります。
downloadCount = { $num ->
downloadCount =
{ $num ->
*[other] { $num } 回のダウンロード
}
timespanHours = { $num ->
timespanHours =
{ $num ->
*[other] { $num } 時間
}
copyUrlFormLabelWithName = ファイルを送信するにはこのリンクをコピー、共有してください: { $filename }

View File

@@ -9,7 +9,7 @@ uploadPageDropMessage = გადმოიტანეთ ფაილი აქ
uploadPageSizeMessage = ყველაზე საიმედო მომსახურება, შეგიძლიათ ატვირთოთ არაუმეტეს 1GB ზომის ფაილი
uploadPageBrowseButton = ფაილის არჩევა კომპიუტერიდან
uploadPageBrowseButton1 = ფაილის არჩევა ასატვირთად
uploadPageMultipleFilesAlert = ერთდროულად რამდენიმე ფაილის, ან საქაღალდის ატვირთვა, ამჟამად არაა ხელმისაწვდომი.
uploadPageMultipleFilesAlert = ერთდროულად რამდენიმე ფაილის ან საქაღალდის ატვირთვა, ამჟამად არაა ხელმისაწვდომი.
uploadPageBrowseButtonTitle = ფაილის ატვირთვა
uploadingPageProgress = მიმდინარეობს ატვირთვა { $filename } ({ $size })
importingFile = გადმოტანა...
@@ -24,7 +24,7 @@ uploadingPageLargeFileMessage = ფაილი დიდია და ატვ
uploadingFileNotification = შეტყობინება, ატვირთვის დასრულებისას.
uploadSuccessConfirmHeader = მზადაა გასაგზავნად
uploadSvgAlt = ატვირთვა
uploadSuccessTimingHeader = ფაილს ვადა გაუვა 1 ჩამოტვირთვის, ან 24 საათის მერე.
uploadSuccessTimingHeader = ფაილს ვადა გაუვა 1 ჩამოტვირთვის ან 24 საათის მერე.
expireInfo = ფაილის ბმულს, ვადა გაუვა { $downloadCount }, ან { $timespan } მერე.
downloadCount =
{ $num ->
@@ -82,7 +82,7 @@ notSupportedOutdatedDetail = სამწუხაროდ, Firefox-ის ა
updateFirefox = Firefox-ის განახლება
downloadFirefoxButtonSub = უფასო ჩამოტვირთვა
uploadedFile = ფაილი
copyFileList = URL ბმულის დაკოპირება
copyFileList = URL-ბმულის დაკოპირება
# expiryFileList is used as a column header
expiryFileList = ვადის გასვლის დრო
deleteFileList = წაშლა
@@ -90,7 +90,7 @@ nevermindButton = არ აქვს მნიშვნელობა
legalHeader = პირობები და პირადულობა
legalNoticeTestPilot = Firefox Send ამჟამად Test Pilot-ის საცდელი პროექტია და ექვემდებარება Test Pilot-ის <a>მომსახურების პირობებსა</a> და <a>პირადი მონაცემების დაცვის დებულებას</a>. ვრცლად, ამ საცდელი პროექტისა და მონაცემების აღრიცხვის შესახებ, შეგიძლიათ იხილოთ <a>აქ</a>.
legalNoticeMozilla = Firefox Send ვებსაიტი, ასევე ექვემდებარება Mozilla-ს <a>ვებსაიტების პირადი მონაცემების შესახებ დებულებას</a> და <a>ვებსაიტების გამოყენების პირობებს</a>.
deletePopupText = გსურთ ამ ფაილის წაშლა?
deletePopupText = წაიშალოს ეს ფაილი?
deletePopupYes = დიახ
deletePopupCancel = გაუქმება
deleteButtonHover = წაშლა

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ihegga i walluy
uploadSvgAlt = Sali
uploadSuccessTimingHeader = Aseɣwen ar ufaylu-ik ad yemmet ticki yuder-d neɣ deffir n 24 n yisragen.
expireInfo = Aseɣwen icudden ar ufaylu-inek ad yemmet send { $downloadCount } naɣ { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 usider
*[other] { $num } isidar
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 usrag
*[other] { $num } isragen
}

View File

@@ -9,7 +9,6 @@ uploadPageDropMessage = 파일을 끌어 놓아 업로드 시작
uploadPageSizeMessage = 확실한 작동을 위해서, 파일의 크기가 1GB보다 작은 것이 좋음
uploadPageBrowseButton = 컴퓨터의 파일을 선택
uploadPageBrowseButton1 = 업로드 할 파일 선택
.title = 업로드 할 파일 선택
uploadPageMultipleFilesAlert = 여러 개의 파일 또는 폴더를 업로드하는 것은 현재로선 지원되지 않습니다.
uploadPageBrowseButtonTitle = 파일 업로드
uploadingPageProgress = { $filename } ({ $size }) 업로드 중
@@ -18,7 +17,7 @@ verifyingFile = 확인하는 중…
encryptingFile = 암호화 중…
decryptingFile = 복호화 중…
notifyUploadDone = 업로드가 완료되었습니다.
uploadingPageMessage = 파일이 업로드 되고나서 만료 옵션을 설정할 수 있습니다.
uploadingPageMessage = 파일이 업로드 되고 나서 만료 옵션을 설정할 수 있습니다.
uploadingPageCancel = 업로드 취소
uploadCancelNotification = 업로드가 취소되었습니다.
uploadingPageLargeFileMessage = 이 파일은 크기가 커서 시간이 다소 걸릴 수 있습니다. 잠시만 기다려주세요!

View File

@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = Sedia untuk Hantar
uploadSvgAlt = Muat naik
uploadSuccessTimingHeader = Pautan ke fail anda akan luput selepas 1 muat turun atau dalam 24 jam.
expireInfo = Pautan ke fail anda akan luput selepas { $downloadCount } atau { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
*[other] { $num } muat turun
}
timespanHours = { $num ->
timespanHours =
{ $num ->
*[other] { $num } jam
}
copyUrlFormLabelWithName = Salin dan kongsi pautan untuk menghantar fail anda: { $filename }

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klar til å sende
uploadSvgAlt = Last opp
uploadSuccessTimingHeader = Lenken til filen din utløper etter 1 nedlasting eller om 24 timer.
expireInfo = Lenken til filen din vil gå ut etter { $downloadCount } eller { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 nedlasting
*[other] { $num } nedlastinger
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 time
*[other] { $num } timer
}

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Gereed voor verzending
uploadSvgAlt = Uploaden
uploadSuccessTimingHeader = De koppeling naar uw bestand zal na 1 download of 24 uur verlopen.
expireInfo = De koppeling naar uw bestand zal na { $downloadCount } of { $timespan } verlopen.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 download
*[other] { $num } downloads
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 uur
*[other] { $num } uur
}

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klår til å senda
uploadSvgAlt = Last opp
uploadSuccessTimingHeader = Lenka til fila di går ut etter 1 nedlasting eller om 24 timar.
expireInfo = Lenka til fila di vil gå ut etter { $downloadCount } eller { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 nedlasting
*[other] { $num } nedlastingar
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 time
*[other] { $num } timar
}

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Pronto para enviar
uploadSvgAlt = Enviado
uploadSuccessTimingHeader = O link para o seu arquivo expirará após 1 download ou em 24 horas.
expireInfo = O link para o seu arquivo expirará após { $downloadCount } ou { $timepan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 download
*[other] { $num } downloads
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 hora
*[other] { $num } horas
}

View File

@@ -21,11 +21,11 @@ uploadingPageMessage = Assim que o seu ficheiro carregar irá poder definir as o
uploadingPageCancel = Cancelar carregamento
uploadCancelNotification = O seu carregamento foi cancelado.
uploadingPageLargeFileMessage = Este ficheiro é grande e pode demorar um pouco a carregar. Fique onde está!
uploadingFileNotification = Notificar-me quando o carregamento estiver completo.
uploadingFileNotification = Notificar-me quando o carregamento estiver concluído.
uploadSuccessConfirmHeader = Pronto para enviar
uploadSvgAlt = Carregar
uploadSuccessTimingHeader = A ligação para o seu ficheiro irá expirar depois de 1 transferência ou em 24 horas.
expireInfo = A ligação para o seu ficheiro irá expirar depois de { $downloadCount } or { $timespan }.
expireInfo = A ligação para o seu ficheiro irá expirar depois de { $downloadCount } ou { $timespan }.
downloadCount =
{ $num ->
[one] 1 transferência
@@ -52,7 +52,7 @@ unlockInputPlaceholder = Palavra-passe
unlockButtonLabel = Desbloquear
downloadFileTitle = Transferir ficheiro encriptado
# Firefox Send is a brand name and should not be localized.
downloadMessage = O seu amigo está a enviar-lhe um ficheiro com o Firefox Send, um serviço que lhe permite partilhar ficheiro com uma ligação segura, privada e encriptada que expira automaticamente para garantir que as suas coisas não fiquem online para sempre.
downloadMessage = O seu amigo está a enviar-lhe um ficheiro com o Firefox Send, um serviço que lhe permite partilhar ficheiros com uma ligação segura, privada e encriptada que expira automaticamente para garantir que as suas coisas não fiquem online para sempre.
# Text and title used on the download link/button (indicates an action).
downloadButtonLabel = Transferir
downloadNotification = A sua transferência foi concluída.

View File

@@ -17,7 +17,7 @@ verifyingFile = Se verifică...
encryptingFile = Se criptează…
decryptingFile = Se decriptează…
notifyUploadDone = Încărcarea s-a finalizat.
uploadingPageMessage = După ce fișierul tău este încărcat vei putea seta opțiuni de expirare.
uploadingPageMessage = După ce fișierul tău este încărcat, vei putea seta opțiuni de expirare.
uploadingPageCancel = Anulează încărcarea
uploadCancelNotification = Încărcarea a fost anulată.
uploadingPageLargeFileMessage = Stai calm! Acest fișier este mare. S-ar putea să dureze un timp încărcarea.
@@ -68,7 +68,7 @@ fileSizeProgress = ({ $partialSize } din { $totalSize })
# Firefox Send is a brand name and should not be localized.
sendYourFilesLink = Încearcă Firefox Send
downloadingPageProgress = Se descarcă { $filename } ({ $size })
downloadingPageMessage = Te rugăm să păstrezi această file deschisă în timp ce preluăm fișierul și îl decriptăm.
downloadingPageMessage = Te rugăm să lași această filă deschisă în timp ce preluăm fișierul și îl decriptăm.
errorAltText = Eroare la încărcare
errorPageHeader = Ceva a mers prost!
errorPageMessage = A apărut o eroare la încărcarea fișierului.
@@ -92,7 +92,7 @@ nevermindButton = Uită
legalHeader = Termeni de utilizare și politica de confidențialitate
legalNoticeTestPilot = Firefox Send este în prezent un experiment Test Pilot și supus <a>Termenilor de utilizare a serviciului</a> și a <a>Politicii de confidențialitate</a> Test Pilot. Poți afla mai multe despre acest experiment și colectarea sa de date <a>aici</a>.
legalNoticeMozilla = Folosirea site-ului Firefox Send mai este supusă <a>Politicii de confidențialitate pentru site-uri web</a> și a <a>Termenilor de utilizare a site-urilor web</a>.
deletePopupText = Ștergi aceast fișier?
deletePopupText = Ștergi acest fișier?
deletePopupYes = Da
deletePopupCancel = Renunță
deleteButtonHover = Șterge
@@ -109,12 +109,12 @@ changePasswordButton = Modifică
passwordTryAgain = Parola este incorectă. Încearcă din nou.
reportIPInfringement = Raportează încălcarea proprietății intelectuale
javascriptRequired = Firefox Send are nevoie de JavaScript
whyJavascript = De ce are nevoie Firefox Send de JavaScript?
whyJavascript = De ce Firefox Send are nevoie de JavaScript?
enableJavascript = Te rugăm să reactivezi JavaScript și să încerci din nou.
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
expiresHoursMinutes = { $hours }h { $minutes }m
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
expiresMinutes = { $minutes } m
expiresMinutes = { $minutes }m
# A short status message shown when a password is successfully set
passwordIsSet = Parola a fost setată
# A short status message shown when the user enters a long password

View File

@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Pripravené na odoslanie
uploadSvgAlt = Nahrať
uploadSuccessTimingHeader = Platnosť odkazu vyprší po 1 prevzatí alebo po uplynutí 24 hodín.
expireInfo = Platnosť odkazu na váš súbor vyprší po { $downloadCount } alebo po { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 prevzatí
[few] { $num } prevzatiach
*[other] { $num } prevzatiach
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 hodine
[few] { $num } hodinách
*[other] { $num } hodinách

View File

@@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Pripravljeno za pošiljanje
uploadSvgAlt = Naloži
uploadSuccessTimingHeader = Povezava do vaše datoteke bo potekla po enem prenosu ali v 24 urah.
expireInfo = Povezava do vaše datoteke bo potekla čez { $downloadCount } ali { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 prenos
[two] { $num } prenosa
[few] { $num } prenosi
*[other] { $num } prenosov
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 ura
[two] { $num } uri
[few] { $num } ure

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Gati për Dërgim
uploadSvgAlt = Ngarkoje
uploadSuccessTimingHeader = Lidhja për te kartela juaj do të skadojë pas 1 shkarkimi ose pas 24 orësh.
expireInfo = Lidhja për te kartela juaj do të skadojë pas { $downloadCount } ose { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 shkarkimi
*[other] { $num } shkarkimesh
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 ore
*[other] { $num } orësh
}

View File

@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Спреман за слање
uploadSvgAlt = Отпреми
uploadSuccessTimingHeader = Веза ка вашој датотеци ће истећи након једног преузимања или након 24 сата.
expireInfo = Веза ка вашој датотеци ће истећи након { $downloadCount } или { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] преузимања
[few] преузимања
*[other] преузимања
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] сата
[few] сата
*[other] сати

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klar för att skicka
uploadSvgAlt = Ladda upp
uploadSuccessTimingHeader = Länken till din fil upphör att gälla efter 1 nedladdning eller om 24 timmar.
expireInfo = Länken till din fil upphör att gälla efter { $downloadCount } eller { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 nedladdning
*[other] { $num } nedladdningar
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 timme
*[other] { $num } timmar
}

View File

@@ -7,6 +7,7 @@ uploadPageDropMessage = ఎగుమతిని ప్రారంభించ
uploadPageSizeMessage = అత్యంత నమ్మకమైన కార్యం కోసం, మీ ఫైలును 1GB కంటే తక్కువగా ఉంచడం ఉత్తమం
uploadPageBrowseButton = మీ కంప్యూటర్లో ఒక ఫైలును ఎంచుకోండి
uploadPageBrowseButton1 = ఎక్కించటానికి ఒక ఫైలును ఎంచుకోండి
uploadPageMultipleFilesAlert = పలు ఫైళ్ళను లేదా సంయచాన్ని ఎక్కించడానికి ప్రస్తుతం తోడ్పాటు లేదు.
uploadPageBrowseButtonTitle = ఫైలును ఎగుమతి చేయండి
uploadingPageProgress = { $filename } ({ $size }) ఎక్కుతోంది
importingFile = దిగుమతవుతోంది...
@@ -64,6 +65,7 @@ errorAltText = ఎగుమతిలో లోపం
errorPageHeader = ఏదో తప్పిదం జరిగింది!
errorPageMessage = ఫైల్ను ఎగుమతి చేయడంలో లోపం ఉంది.
errorPageLink = మరో ఫైలును పంపండి
fileTooBig = ఆ ఫైలు ఎక్కించడానికి చాలా పెద్దగా ఉంది. ఫైళ్ళు { $size } కంటే తక్కువ పరిమాణంలో ఉండాలి.
linkExpiredAlt = లంకె గడువు ముగిసింది
expiredPageHeader = ఈ లంకె గడువు ముగిసింది లేదా ముందు ఎప్పుడూ ఉనికిలో లేదు!
notSupportedHeader = మీ విహారిణికి మద్దతు లేదు.

View File

@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Handa nang Ipadala
uploadSvgAlt = I-upload
uploadSuccessTimingHeader = Mag-e-expire ang link sa iyong file pagkatapos ng 1 pag-download o sa loob ng 24 na oras.
expireInfo = Mag-e-expire ang link sa iyong file pagkatapos ng { $downloadCount } o { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 pag-download
*[other] { $num } na mga pag-download
}
timespanHours = { $num ->
timespanHours =
{ $num ->
*[one] 1 oras
}
copyUrlFormLabelWithName = Kopyahin at ibahagi ang link upang ipadala ang iyong file: { $filename }

View File

@@ -84,7 +84,7 @@ expiryFileList = Bitiş süresi
deleteFileList = Sil
nevermindButton = Boş ver
legalHeader = Şart ve Koşullar
legalNoticeTestPilot = Firefox Send bir Test Pilotu deneyidir ve Test Pilotu <a>Hizmet Koşulları</a> ile <a>Gizlilik Bildirimi</a>ne tabidir. Bu deney ve topladığı veriler hakkında daha fazla bilgi almak isterseniz <a>buraya</a> bakabilirsiniz.
legalNoticeTestPilot = Firefox Send bir Test Pilotu deneyidir ve Test Pilotu <a>Hizmet Koşulları</a> ile <a>Gizlilik Bildirimi</a>ne tabidir. Bu deney ve topladığı veriler hakkında daha fazla bilgi almak isterseniz <a>buraya</a> bakabilirsiniz.
legalNoticeMozilla = Firefox Sendi kullanmak Mozillanın <a>Web Siteleri Gizlilik Bildirimi</a> ve <a>Web Siteleri Kullanım Koşulları</a>na da tabidir.
deletePopupText = Bu dosya silinsin mi?
deletePopupYes = Evet

View File

@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Готовий до надсилання
uploadSvgAlt = Вивантажити
uploadSuccessTimingHeader = Час дії цього посилання закінчиться після 1 завантаження, або через 24 години.
expireInfo = Посилання на ваш файл стане недійсним після { $downloadCount } файла, або через { $timespan }.
downloadCount = { $num ->
downloadCount =
{ $num ->
[one] 1 завантаження
[few] { $num } завантаження
*[other] { $num } завантажень
}
timespanHours = { $num ->
timespanHours =
{ $num ->
[one] 1 година
[few] { $num } години
*[other] { $num } годин

View File

@@ -25,6 +25,7 @@ uploadingFileNotification = Thông báo cho tôi khi tải lên hoàn tất.
uploadSuccessConfirmHeader = Đã sẵn sàng để Gửi
uploadSvgAlt = Tải lên
uploadSuccessTimingHeader = Liên kết đến tập tin của bạn sẽ hết hạn sau 1 lượt tải về hoặc trong 24 giờ.
expireInfo = Liên kết đến tập tin của bạn sẽ hết hạn sau { $downloadCount } hoặc { $timespan }.
downloadCount =
{ $num ->
*[other] lượt tải
@@ -40,6 +41,7 @@ deleteFileButton = Xóa tập tin
sendAnotherFileLink = Gửi tập tin khác
# Alternative text used on the download link/button (indicates an action).
downloadAltText = Tải về
downloadsFileList = Tải về
# Used as header in a column indicating the amount of time left before a
# download link expires (e.g. "10h 5m")
timeFileList = Thời gian
@@ -99,6 +101,7 @@ footerLinkTerms = Điều khoản
footerLinkCookies = Cookies
requirePasswordCheckbox = Yêu cầu mật khẩu khi tải về tập tin này
addPasswordButton = Thêm mật khẩu
changePasswordButton = Thay đổi
passwordTryAgain = Sai mật khẩu. Vui lòng thử lại.
reportIPInfringement = Báo cáo vi phạm
javascriptRequired = Firefox Send cần JavaScript
@@ -112,3 +115,5 @@ expiresMinutes = { $minutes } phút
passwordIsSet = Đã đặt mật khẩu
# A short status message shown when the user enters a long password
maxPasswordLength = Độ dài mật khẩu tối đa: { $length }
# A short status message shown when there was an error setting the password
passwordSetError = Không thể đặt mật khẩu này

View File

@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 准备好发送
uploadSvgAlt = 上传
uploadSuccessTimingHeader = 您的文件的链接将在首次下载或 24 小时后过期。
expireInfo = 指向该文件的链接将在 { $downloadCount } 或 { $timespan } 后过期。
downloadCount = { $num ->
downloadCount =
{ $num ->
*[other] { $num } 次下载
}
timespanHours = { $num ->
timespanHours =
{ $num ->
*[other] { $num } 小时
}
copyUrlFormLabelWithName = 复制并分享链接以发送您的文件:{ $filename }
@@ -95,13 +97,13 @@ footerLinkLegal = 法律
# Test Pilot is a proper name and should not be localized.
footerLinkAbout = 关于 Test Pilot
footerLinkPrivacy = 隐私
footerLinkTerms = 条款
footerLinkTerms = 使用条款
footerLinkCookies = Cookie
requirePasswordCheckbox = 持有密码才能下载此文件
addPasswordButton = 添加密码
changePasswordButton = 更改
passwordTryAgain = 密码不正确。请重试。
reportIPInfringement = 举报知识产权侵权
reportIPInfringement = 举报侵犯知识产权
javascriptRequired = Firefox Send 需要 JavaScript
whyJavascript = 为什么 Firefox Send 需要 JavaScript
enableJavascript = 请启用 JavaScript 并重试。

View File

@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 準備好傳送
uploadSvgAlt = 上傳
uploadSuccessTimingHeader = 您的檔案鏈結將會在首次下載,或 24 小時後失效。
expireInfo = 檔案鏈結將在 { $downloadCount }或 { $timespan }後失效。
downloadCount = { $num ->
downloadCount =
{ $num ->
*[other] { $num } 次下載
}
timespanHours = { $num ->
timespanHours =
{ $num ->
*[other] { $num } 小時
}
copyUrlFormLabelWithName = 複製並分享鏈結來傳送您的檔案: { $filename }
@@ -88,7 +90,7 @@ legalNoticeTestPilot = Firefox Send 目前是一個 Test Pilot 實驗,依照 T
legalNoticeMozilla = 使用 Firefox Send 網站時,亦受到 Mozilla 的<a>網站隱私權公告</a>以及<a>網站使用條款</a>約束。
deletePopupText = 真的要刪除這個檔案嗎?
deletePopupYes = 好的,刪除
deletePopupCancel = 不要刪除
deletePopupCancel = 取消
deleteButtonHover = 刪除
copyUrlHover = 複製網址
footerLinkLegal = 法律資訊

View File

@@ -9,6 +9,11 @@ const conf = convict({
default: '',
env: 'S3_BUCKET'
},
gcs_bucket: {
format: String,
default: '',
env: 'GCS_BUCKET'
},
redis_host: {
format: String,
default: 'localhost',

View File

@@ -14,8 +14,18 @@ module.exports = async function(req, res) {
'WWW-Authenticate': `send-v1 ${req.nonce}`
});
const file_stream = storage.get(id);
let cancelled = false;
req.on('close', () => {
cancelled = true;
file_stream.destroy();
});
file_stream.on('end', async () => {
if (cancelled) {
return;
}
const dl = meta.dl + 1;
const dlimit = meta.dlimit;
try {
@@ -28,6 +38,7 @@ module.exports = async function(req, res) {
log.info('StorageError:', id);
}
});
file_stream.pipe(res);
} catch (e) {
res.sendStatus(404);

37
server/storage/gcs.js Normal file
View File

@@ -0,0 +1,37 @@
const { Storage } = require('@google-cloud/storage');
const storage = new Storage();
class GCSStorage {
constructor(config, log) {
this.bucket = storage.bucket(config.gcs_bucket);
this.log = log;
}
async length(id) {
const data = await this.bucket.file(id).getMetadata();
return data[0].size;
}
getStream(id) {
return this.bucket.file(id).createReadStream();
}
set(id, file) {
return new Promise((resolve, reject) => {
file
.pipe(this.bucket.file(id).createWriteStream())
.on('error', reject)
.on('finish', resolve);
});
}
del(id) {
return this.bucket.file(id).delete();
}
ping() {
return this.bucket.exists();
}
}
module.exports = GCSStorage;

View File

@@ -5,7 +5,14 @@ const createRedisClient = require('./redis');
class DB {
constructor(config) {
const Storage = config.s3_bucket ? require('./s3') : require('./fs');
let Storage = null;
if (config.s3_bucket) {
Storage = require('./s3');
} else if (config.gcs_bucket) {
Storage = require('./gcs');
} else {
Storage = require('./fs');
}
this.log = mozlog('send.storage');
this.expireSeconds = config.expire_seconds;
this.storage = new Storage(config, this.log);

View File

@@ -6,7 +6,9 @@ function kv(f) {
}
module.exports = function() {
const files = fs.readdirSync(path.join(__dirname, 'tests'));
const files = fs
.readdirSync(path.join(__dirname, 'tests'))
.filter(p => /\.js$/.test(p));
const code = "require('fast-text-encoding');\n" + files.map(kv).join(';\n');
return {
code,

View File

@@ -134,6 +134,43 @@ describe('Upload / Download flow', function() {
}
});
it('can increase download count on download', async function() {
const fs = new FileSender(blob);
const file = await fs.upload();
const fr = new FileReceiver({
secretKey: file.toJSON().secretKey,
id: file.id,
nonce: file.keychain.nonce,
requiresPassword: false
});
await fr.getMetadata();
await fr.download(noSave);
await file.updateDownloadCount();
assert.equal(file.dtotal, 1);
});
it('does not increase download count when download cancelled', async function() {
const fs = new FileSender(blob);
const file = await fs.upload();
const fr = new FileReceiver({
secretKey: file.toJSON().secretKey,
id: file.id,
nonce: file.keychain.nonce,
requiresPassword: false
});
await fr.getMetadata();
fr.once('progress', () => fr.cancel());
try {
await fr.download(noSave);
assert.fail('not cancelled');
} catch (e) {
await file.updateDownloadCount();
assert.equal(file.dtotal, 0);
}
});
it('can allow multiple downloads', async function() {
const fs = new FileSender(blob);
const file = await fs.upload();

View File

@@ -1,8 +1,8 @@
selenium==3.12.0
flake8==3.5.0
selenium==3.14.1
flake8==3.6.0
flake8-isort==2.5
PyPOM==2.0.0
pytest==3.5.1
pytest-html==1.17.0
pytest-selenium==1.12.0
pytest-xdist==1.22.2
PyPOM==2.2.0
pytest==3.9.3
pytest-html==1.19.0
pytest-selenium==1.14.0
pytest-xdist==1.23.2