mirror of
https://gitlab.com/timvisee/send.git
synced 2025-12-06 14:10:53 +03:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cbd7a99e38 | ||
|
|
6a5960c254 | ||
|
|
b70cbd8359 | ||
|
|
ad72fa11a4 | ||
|
|
cc9a5d112a | ||
|
|
122867b926 | ||
|
|
3f7d755070 | ||
|
|
ad9070b7c6 | ||
|
|
30678b824b | ||
|
|
5dedad8ae7 | ||
|
|
748f8cc7f8 | ||
|
|
be9b51adbb | ||
|
|
7f13d4d9b6 | ||
|
|
0e81ef2514 | ||
|
|
b0907095e4 | ||
|
|
c4cc736cff | ||
|
|
c4118c5684 | ||
|
|
fad35cf8fc | ||
|
|
062cbbd1f8 | ||
|
|
f200bd51d2 | ||
|
|
152616574f | ||
|
|
822fcb363d | ||
|
|
e1c6e59495 | ||
|
|
d42d8f8b75 | ||
|
|
ebbb1d05d2 | ||
|
|
67b55d1477 | ||
|
|
e3391ca823 | ||
|
|
0cac3bd0dc | ||
|
|
78de0b7a22 | ||
|
|
14308dc491 | ||
|
|
0012dec277 |
62
CONTRIBUTORS
62
CONTRIBUTORS
@@ -5,17 +5,26 @@ Alberto Castro
|
||||
Alexander Slovesnik
|
||||
Alfredos-Panagiotis Damkalis
|
||||
Amin Mahmudian
|
||||
Ander Elortondo
|
||||
Andreas Pettersson
|
||||
Anesu Chiodza
|
||||
Anika Dorn
|
||||
Arash Mousavi
|
||||
Artem Polivanchuk
|
||||
Ashikur Rahman
|
||||
Ashok kumar
|
||||
Balázs Meskó
|
||||
Belayet Hossain
|
||||
Benjamin Forehand Jr
|
||||
Besnik Bleta
|
||||
Björn I
|
||||
Bjørn I
|
||||
Boopesh Mahendran
|
||||
Brainlulz
|
||||
Breana Gonzales
|
||||
Christopher Ramírez
|
||||
Chuck Harmston
|
||||
Cloney 173741
|
||||
Cláudio Esperança
|
||||
Cristian Silaghi
|
||||
Cynthia Pereira
|
||||
@@ -23,38 +32,53 @@ Daniel Thorn
|
||||
Daniela Arcese
|
||||
Danny Coates
|
||||
Derek Tamsen
|
||||
Dhyey Thakore
|
||||
Donovan Preston
|
||||
Edi Santoso
|
||||
Edmund Huggett
|
||||
Elisa X
|
||||
Emily
|
||||
Emily Hou
|
||||
Emin Mastizada
|
||||
Enol
|
||||
Erica
|
||||
Erica Wright
|
||||
Fauzan Alfi
|
||||
Filip Hruška
|
||||
Fjoerfoks
|
||||
Francesco Lodolo
|
||||
Francesco Lodolo [:flod]
|
||||
Frederick Villaluna
|
||||
G12r
|
||||
Gabriela
|
||||
Gautam krishna.R
|
||||
Georgianizator
|
||||
Gonçalo Matos
|
||||
Hyeonseok Shin
|
||||
Håvar Henriksen
|
||||
Ian Neal
|
||||
Jae Hyeon Park
|
||||
Jakob Kappel
|
||||
Jakub Rychlý
|
||||
Jamie
|
||||
Jarmo
|
||||
Jim Spentzos
|
||||
Jiri Grönroos
|
||||
Jobava
|
||||
Joergen
|
||||
Johann-S
|
||||
John Gruen
|
||||
Jon Buckley
|
||||
Jon Vadillo
|
||||
Jonathan Claudius
|
||||
Jordi Cuevas
|
||||
Jordi Serratosa
|
||||
Juan Esteban Ajsivinac Sián
|
||||
Juan Sián
|
||||
Juraj Cigáň
|
||||
Kerim Kalamujić
|
||||
Khaled Hosny
|
||||
Kim Ludvigsen
|
||||
Kohei Yoshino
|
||||
Lan Glad
|
||||
Laurent Jouanneau
|
||||
@@ -62,11 +86,15 @@ Lobodzets
|
||||
LuFlo
|
||||
Luiz Carlos de Morais
|
||||
Luna Jernberg
|
||||
Mahay Alam Khan
|
||||
Marcelo Ghelman
|
||||
Marcelo Poli
|
||||
Marco Aurélio
|
||||
Mark Heijl
|
||||
Mark Liang
|
||||
Mark Liang (You-Wen)
|
||||
Marko Andrejić
|
||||
Marwan Mohamad
|
||||
Matjaž Horvat
|
||||
Maykon Chagas
|
||||
Melo46
|
||||
@@ -75,9 +103,13 @@ Michael Köhler
|
||||
Michael Wolf
|
||||
Michal Stanke
|
||||
Michal Vašíček
|
||||
Mikeyy
|
||||
Miro Rauhala
|
||||
Mozilla Pontoon
|
||||
Mozinet
|
||||
Moḥend Belqasem
|
||||
Muḥend Belqasem
|
||||
Myungjae Won
|
||||
Nicholas Skinsacos
|
||||
Nihad
|
||||
Nihad Suljić
|
||||
@@ -85,14 +117,20 @@ Oscar
|
||||
Peter deHaan
|
||||
Pierre Neter
|
||||
Pin-guang Chen
|
||||
Piotr Drąg
|
||||
Quế Tùng
|
||||
Radu Popescu
|
||||
Rhoslyn Prys
|
||||
RickieES
|
||||
Rimas Kudelis
|
||||
Rizky Ariestiyansyah
|
||||
Rob Powell
|
||||
Roberto Alvarado
|
||||
Rodrigo
|
||||
Rodrigo Guerra
|
||||
Rok Žerdin
|
||||
Rongjian Zhang
|
||||
Ruba
|
||||
Sahithi
|
||||
Sairam Raavi
|
||||
Sander Lepik
|
||||
@@ -108,25 +146,34 @@ Tema
|
||||
Thomas Dalichow
|
||||
Théo Chevalier
|
||||
Tiago Morais Morgado
|
||||
Tim Visée
|
||||
Tomer Cohen
|
||||
Tomáš Zelina
|
||||
Ton
|
||||
Tymur Faradzhev
|
||||
Uccen Marzuq
|
||||
Varghese Thomas
|
||||
Victor Bychek
|
||||
Vimal Raghubir
|
||||
Vitaliy Krutko
|
||||
Weihang Lo
|
||||
Wil Clouser
|
||||
YFdyh000
|
||||
Yongmin H
|
||||
You-Wen Liang (Mark)
|
||||
aaaaalbert
|
||||
aefgh39622
|
||||
alamanda
|
||||
albertdcastro
|
||||
alex_mayorga
|
||||
ariestiyansyah
|
||||
avelper
|
||||
chilledfrogs
|
||||
dgadelha
|
||||
dskmori
|
||||
ehuggett
|
||||
eljuno
|
||||
emily-hou1
|
||||
erdem cobanoglu
|
||||
gautamkrishnar
|
||||
gmontagu
|
||||
@@ -137,21 +184,36 @@ jesferman1993
|
||||
jlG
|
||||
josotrix
|
||||
jspam
|
||||
julenx
|
||||
kenrick95
|
||||
manxmensch
|
||||
marigalicer
|
||||
mirzet.omerovic.1992
|
||||
passionforlife
|
||||
paul.trevor
|
||||
pyup.io bot
|
||||
ravmn
|
||||
rcmainak
|
||||
reza.habibi2008
|
||||
risger
|
||||
robbp
|
||||
ruikunai
|
||||
savemore99.sm
|
||||
shikhar-scs
|
||||
siparon
|
||||
skystar-p
|
||||
stripTM
|
||||
tatalmondmush
|
||||
tiagomoraismorgado
|
||||
timvisee
|
||||
victor.gonzalezro
|
||||
xcffl
|
||||
ybouhamam
|
||||
yoshimitsu002
|
||||
Μιχάλης
|
||||
Марко Костић (Marko Kostić)
|
||||
صفا الفليج
|
||||
వీవెన్
|
||||
张无忌
|
||||
新垣结衣松冈茉优长泽雅美门胁麦上野树里石原里美
|
||||
莫非前世那一眼
|
||||
|
||||
11
app/user.js
11
app/user.js
@@ -94,10 +94,12 @@ export default class User {
|
||||
return this.loggedIn ? hashId(this.storage.id) : hashId(anonId);
|
||||
}
|
||||
|
||||
async startAuthFlow(source, utms = {}) {
|
||||
async startAuthFlow(trigger, utms = {}) {
|
||||
this.utms = utms;
|
||||
this.trigger = trigger;
|
||||
try {
|
||||
const params = new URLSearchParams({
|
||||
entrypoint: `send-${source}`,
|
||||
entrypoint: `send-${trigger}`,
|
||||
form_type: 'email',
|
||||
utm_source: utms.source || 'send',
|
||||
utm_campaign: utms.campaign || 'none'
|
||||
@@ -111,12 +113,10 @@ export default class User {
|
||||
const { flowId, flowBeginTime } = await res.json();
|
||||
this.flowId = flowId;
|
||||
this.flowBeginTime = flowBeginTime;
|
||||
this.utms = utms;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
this.flowId = null;
|
||||
this.flowBeginTime = null;
|
||||
this.utms = null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -142,6 +142,9 @@ export default class User {
|
||||
options.flow_id = this.flowId;
|
||||
options.flow_begin_time = this.flowBeginTime;
|
||||
}
|
||||
if (this.trigger) {
|
||||
options.endpoint = `send-${this.trigger}`;
|
||||
}
|
||||
if (this.utms) {
|
||||
options.utm_campaign = this.utms.campaign || 'none';
|
||||
options.utm_content = this.utms.content || 'none';
|
||||
|
||||
@@ -50,7 +50,7 @@ class File {
|
||||
v.setUint32(0, 0x08074b50, true); // sig
|
||||
v.setUint32(4, this.crc, true); // crc32
|
||||
v.setUint32(8, this.size, true); // compressed size
|
||||
v.setUint16(12, this.size, true); // uncompressed size
|
||||
v.setUint32(12, this.size, true); // uncompressed size
|
||||
return new Uint8Array(dd);
|
||||
}
|
||||
|
||||
@@ -60,7 +60,7 @@ class File {
|
||||
v.setUint32(0, 0x02014b50, true); // sig
|
||||
v.setUint16(4, 20, true); // version made
|
||||
v.setUint16(6, 20, true); // version required
|
||||
v.setUint16(8, 0, true); // bit flags
|
||||
v.setUint16(8, 8, true); // bit flags (8 = use data descriptor)
|
||||
v.setUint16(10, 0, true); // compression
|
||||
v.setUint16(12, this.dateTime.time, true); // modified time
|
||||
v.setUint16(14, this.dateTime.date, true); // modified date
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## How big of a file can I transfer with Firefox Send?
|
||||
|
||||
There is a 2GB file size limit built in to Send, however, in practice you may
|
||||
There is a 2.5GB file size limit built in to Send(1GB for non-signed in users), however, in practice you may
|
||||
be unable to send files that large. Send encrypts and decrypts the files in
|
||||
the browser which is great for security but will tax your system resources. In
|
||||
particular you can expect to see your memory usage go up by at least the size
|
||||
|
||||
234
package-lock.json
generated
234
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "firefox-send",
|
||||
"version": "3.0.6",
|
||||
"version": "3.0.8",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -965,14 +965,29 @@
|
||||
"integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==",
|
||||
"dev": true
|
||||
},
|
||||
"@dannycoates/webcrypto-liner": {
|
||||
"version": "0.1.34",
|
||||
"resolved": "https://registry.npmjs.org/@dannycoates/webcrypto-liner/-/webcrypto-liner-0.1.34.tgz",
|
||||
"integrity": "sha512-QTP7EIlNkcp3jA5XAHk3uU6q3ZOcXOHRZnmzt+yDPf9dhLa5QR99ooHC8JHrD/J4dwVKuMY995aMCGF+M0g5Cg==",
|
||||
"@dannycoates/elliptic": {
|
||||
"version": "6.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@dannycoates/elliptic/-/elliptic-6.4.2.tgz",
|
||||
"integrity": "sha512-2G4qWMB2SRBk4H75d+BFBbz2b1cseIYCI8G7duGxtxdnjGxhewpripDsVr1lCagmijyYX4zDyfKTNoId5GGyow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"bn.js": "^4.4.0",
|
||||
"brorand": "^1.0.1",
|
||||
"hash.js": "^1.0.0",
|
||||
"hmac-drbg": "^1.0.0",
|
||||
"inherits": "^2.0.1",
|
||||
"minimalistic-assert": "^1.0.0",
|
||||
"minimalistic-crypto-utils": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"@dannycoates/webcrypto-liner": {
|
||||
"version": "0.1.37",
|
||||
"resolved": "https://registry.npmjs.org/@dannycoates/webcrypto-liner/-/webcrypto-liner-0.1.37.tgz",
|
||||
"integrity": "sha512-EM29TDkn7GJaa/oOfLeS1vrAxEkyM+WfUsmHTz7OyrxvMZNqz2SiYdZkXBIvg+QCnKTfXc2x//ORAilesugQlg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@dannycoates/elliptic": "^6.4.2",
|
||||
"asmcrypto.js": "^0.22.0",
|
||||
"elliptic": "^6.4.1",
|
||||
"webcrypto-core": "github:dannycoates/webcrypto-core#8e0152a66d3ae6329cf080ccb3085eb06637070f"
|
||||
}
|
||||
},
|
||||
@@ -2413,8 +2428,7 @@
|
||||
"buffer-crc32": {
|
||||
"version": "0.2.13",
|
||||
"resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz",
|
||||
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=",
|
||||
"dev": true
|
||||
"integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI="
|
||||
},
|
||||
"buffer-equal-constant-time": {
|
||||
"version": "1.0.1",
|
||||
@@ -5863,8 +5877,7 @@
|
||||
"fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
||||
"dev": true
|
||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
||||
},
|
||||
"fs-extra": {
|
||||
"version": "4.0.3",
|
||||
@@ -8054,8 +8067,7 @@
|
||||
"isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
|
||||
"dev": true
|
||||
"integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
|
||||
},
|
||||
"isobject": {
|
||||
"version": "3.0.1",
|
||||
@@ -8305,6 +8317,15 @@
|
||||
"integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==",
|
||||
"dev": true
|
||||
},
|
||||
"klaw": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
|
||||
"integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.9"
|
||||
}
|
||||
},
|
||||
"known-css-properties": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.11.0.tgz",
|
||||
@@ -9616,8 +9637,7 @@
|
||||
"nice-try": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
|
||||
},
|
||||
"nise": {
|
||||
"version": "1.4.10",
|
||||
@@ -11426,8 +11446,7 @@
|
||||
"path-key": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
||||
"dev": true
|
||||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
|
||||
},
|
||||
"path-parse": {
|
||||
"version": "1.0.6",
|
||||
@@ -11475,8 +11494,7 @@
|
||||
"pend": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
|
||||
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=",
|
||||
"dev": true
|
||||
"integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
|
||||
},
|
||||
"perfectionist": {
|
||||
"version": "2.4.0",
|
||||
@@ -12778,8 +12796,7 @@
|
||||
"progress": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
|
||||
},
|
||||
"promise-inflight": {
|
||||
"version": "1.0.1",
|
||||
@@ -12915,6 +12932,15 @@
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
|
||||
"dev": true
|
||||
},
|
||||
"ws": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.0.tgz",
|
||||
"integrity": "sha512-deZYUNlt2O4buFCa3t5bKLf8A7FPP/TVjwOeVNpw818Ma5nk4MLXls2eoEGS39o8119QIYxTrTDoPQ5B/gTD6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"async-limiter": "~1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -13840,6 +13866,130 @@
|
||||
"integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=",
|
||||
"dev": true
|
||||
},
|
||||
"selenium-standalone": {
|
||||
"version": "6.16.0",
|
||||
"resolved": "https://registry.npmjs.org/selenium-standalone/-/selenium-standalone-6.16.0.tgz",
|
||||
"integrity": "sha512-tl7HFH2FOxJD1is7Pzzsl0pY4vuePSdSWiJdPn+6ETBkpeJDiuzou8hBjvWYWpD+eIVcOrmy3L0R3GzkdHLzDw==",
|
||||
"requires": {
|
||||
"async": "^2.6.2",
|
||||
"commander": "^2.19.0",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"debug": "^4.1.1",
|
||||
"lodash": "^4.17.11",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"progress": "2.0.3",
|
||||
"request": "2.88.0",
|
||||
"tar-stream": "2.0.0",
|
||||
"urijs": "^1.19.1",
|
||||
"which": "^1.3.1",
|
||||
"yauzl": "^2.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
|
||||
"integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
|
||||
"requires": {
|
||||
"lodash": "^4.17.11"
|
||||
}
|
||||
},
|
||||
"bl": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-2.2.0.tgz",
|
||||
"integrity": "sha512-wbgvOpqopSr7uq6fJrLH8EsvYMJf9gzfo2jCsL2eTy75qXPukA4pCgHamOQkZtY5vmfVtjB+P3LNlMHW5CEZXA==",
|
||||
"requires": {
|
||||
"readable-stream": "^2.3.5",
|
||||
"safe-buffer": "^5.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"commander": {
|
||||
"version": "2.19.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
|
||||
"integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg=="
|
||||
},
|
||||
"cross-spawn": {
|
||||
"version": "6.0.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
|
||||
"integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
|
||||
"requires": {
|
||||
"nice-try": "^1.0.4",
|
||||
"path-key": "^2.0.1",
|
||||
"semver": "^5.5.0",
|
||||
"shebang-command": "^1.2.0",
|
||||
"which": "^1.2.9"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
|
||||
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
|
||||
"requires": {
|
||||
"ms": "^2.1.1"
|
||||
}
|
||||
},
|
||||
"fd-slicer": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz",
|
||||
"integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=",
|
||||
"requires": {
|
||||
"pend": "~1.2.0"
|
||||
}
|
||||
},
|
||||
"ms": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
|
||||
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.2.0.tgz",
|
||||
"integrity": "sha512-RV20kLjdmpZuTF1INEb9IA3L68Nmi+Ri7ppZqo78wj//Pn62fCoJyV9zalccNzDD/OuJpMG4f+pfMl8+L6QdGw==",
|
||||
"requires": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"tar-stream": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.0.0.tgz",
|
||||
"integrity": "sha512-n2vtsWshZOVr/SY4KtslPoUlyNh06I2SGgAOCZmquCEjlbV/LjY2CY80rDtdQRHFOYXNlgBDo6Fr3ww2CWPOtA==",
|
||||
"requires": {
|
||||
"bl": "^2.2.0",
|
||||
"end-of-stream": "^1.4.1",
|
||||
"fs-constants": "^1.0.0",
|
||||
"inherits": "^2.0.3",
|
||||
"readable-stream": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"yauzl": {
|
||||
"version": "2.10.0",
|
||||
"resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz",
|
||||
"integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=",
|
||||
"requires": {
|
||||
"buffer-crc32": "~0.2.3",
|
||||
"fd-slicer": "~1.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"selfsigned": {
|
||||
"version": "1.10.4",
|
||||
"resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.4.tgz",
|
||||
@@ -14000,7 +14150,6 @@
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
|
||||
"integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"shebang-regex": "^1.0.0"
|
||||
}
|
||||
@@ -14008,8 +14157,7 @@
|
||||
"shebang-regex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=",
|
||||
"dev": true
|
||||
"integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
|
||||
},
|
||||
"shell-quote": {
|
||||
"version": "1.6.1",
|
||||
@@ -16199,6 +16347,11 @@
|
||||
"punycode": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"urijs": {
|
||||
"version": "1.19.1",
|
||||
"resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.1.tgz",
|
||||
"integrity": "sha512-xVrGVi94ueCJNrBSTjWqjvtgvl3cyOTThp2zaMaFNGp3F542TR6sM3f2o8RqZl+AwteClSVmoCyt0ka4RjQOQg=="
|
||||
},
|
||||
"urix": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
|
||||
@@ -16576,6 +16729,40 @@
|
||||
"sauce-connect-launcher": "~1.2.3"
|
||||
}
|
||||
},
|
||||
"wdio-selenium-standalone-service": {
|
||||
"version": "0.0.12",
|
||||
"resolved": "https://registry.npmjs.org/wdio-selenium-standalone-service/-/wdio-selenium-standalone-service-0.0.12.tgz",
|
||||
"integrity": "sha512-R8iUL30SkFfZictAG5wRofeCsHQ4bIucDtaArCQWZkUqS+DlGTStIk3TaIOCaX7dS7UW1YN/lJt9Vsn4Ekmoxg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fs-extra": "^0.30.0",
|
||||
"selenium-standalone": "^6.15.4"
|
||||
},
|
||||
"dependencies": {
|
||||
"fs-extra": {
|
||||
"version": "0.30.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz",
|
||||
"integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"jsonfile": "^2.1.0",
|
||||
"klaw": "^1.0.0",
|
||||
"path-is-absolute": "^1.0.0",
|
||||
"rimraf": "^2.2.8"
|
||||
}
|
||||
},
|
||||
"jsonfile": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"wdio-spec-reporter": {
|
||||
"version": "0.1.5",
|
||||
"resolved": "https://registry.npmjs.org/wdio-spec-reporter/-/wdio-spec-reporter-0.1.5.tgz",
|
||||
@@ -17284,7 +17471,6 @@
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
|
||||
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"isexe": "^2.0.0"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "firefox-send",
|
||||
"description": "File Sharing Experiment",
|
||||
"version": "3.0.6",
|
||||
"version": "3.0.8",
|
||||
"author": "Mozilla (https://mozilla.org)",
|
||||
"repository": "mozilla/send",
|
||||
"homepage": "https://github.com/mozilla/send/",
|
||||
@@ -64,7 +64,7 @@
|
||||
"@babel/plugin-proposal-class-properties": "^7.3.4",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||
"@babel/preset-env": "^7.3.4",
|
||||
"@dannycoates/webcrypto-liner": "^0.1.34",
|
||||
"@dannycoates/webcrypto-liner": "^0.1.37",
|
||||
"@dannycoates/webpack-dev-server": "^3.1.4",
|
||||
"@fullhuman/postcss-purgecss": "^1.1.0",
|
||||
"@mattiasbuelens/web-streams-polyfill": "0.2.1",
|
||||
@@ -159,6 +159,7 @@
|
||||
},
|
||||
"availableLanguages": [
|
||||
"en-US",
|
||||
"ast",
|
||||
"bn-BD",
|
||||
"ca",
|
||||
"cak",
|
||||
@@ -170,6 +171,7 @@
|
||||
"en-CA",
|
||||
"en-GB",
|
||||
"es-AR",
|
||||
"es-CL",
|
||||
"es-ES",
|
||||
"es-MX",
|
||||
"fr",
|
||||
@@ -177,6 +179,7 @@
|
||||
"hr",
|
||||
"hsb",
|
||||
"hu",
|
||||
"ia",
|
||||
"id",
|
||||
"it",
|
||||
"ja",
|
||||
@@ -184,6 +187,7 @@
|
||||
"lt",
|
||||
"nl",
|
||||
"nn-NO",
|
||||
"pl",
|
||||
"pt-BR",
|
||||
"pt-PT",
|
||||
"ro",
|
||||
|
||||
@@ -1,31 +1,9 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = esperimentu web
|
||||
siteFeedback = Feedback
|
||||
uploadPageHeader = Compartición privada y cifrada de ficheros
|
||||
uploadPageExplainer = Unvia ficheros pente un enllaz seguru, priváu y cifráu que caduca automáticamente p'asegurar que les tos coses nun queden siempres na rede.
|
||||
uploadPageLearnMore = Deprendi más
|
||||
uploadPageDropMessage = Suelta equí'l to ficheru p'aniciar la xuba
|
||||
uploadPageSizeMessage = Pal meyor funcionamientu, lo meyor ye que'l to ficheru seya menor de 1GB
|
||||
uploadPageBrowseButton = Esbilla un ficheru nel to ordenador
|
||||
uploadPageBrowseButton1 = Esbilla un ficheru pa unviar
|
||||
uploadPageMultipleFilesAlert = Anguaño nun se sofita la xuba múltiple de ficheros o carpetes.
|
||||
uploadPageBrowseButtonTitle = Xubir ficheru
|
||||
uploadingPageProgress = Xubiendo { $filename } ({ $size })
|
||||
siteFeedback = Comentarios
|
||||
importingFile = Importando...
|
||||
verifyingFile = Verificando...
|
||||
encryptingFile = Cifrando...
|
||||
decryptingFile = Descifrando...
|
||||
notifyUploadDone = Finó la to xuba.
|
||||
uploadingPageMessage = Namái que'l ficheru xuba, sedrás a afitar les opciones de caducidá.
|
||||
uploadingPageCancel = Encaboxar xuba
|
||||
uploadCancelNotification = Encaboxóse la to xuba.
|
||||
uploadingPageLargeFileMessage = Esti ficheru ye grande y pue entardar daqué en xubir. ¡Paciencia!
|
||||
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
|
||||
@@ -36,75 +14,26 @@ timespanHours =
|
||||
[one] 1 hora
|
||||
*[other] { $num } hores
|
||||
}
|
||||
copyUrlFormLabelWithName = Copia y comparti l'enllaz pa unviar el to ficheru: { $filename }
|
||||
copyUrlFormButton = Copiar al cartafueyu
|
||||
copiedUrl = ¡Copióse!
|
||||
deleteFileButton = Desaniciar ficheru
|
||||
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 }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Introducir contraseña
|
||||
unlockInputPlaceholder = Contraseña
|
||||
unlockButtonLabel = Desbloquiar
|
||||
downloadFileTitle = Baxar ficheru cifráu
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = El to collaciu unvióte un ficheru usando Firefox Send, un serviciu que te permite compartir ficheros con un enllaz seguru, priváu y cifráu que caduca automáticamente p'asegurar que les to coses nun queden siempres na rede.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Baxar
|
||||
downloadNotification = Completóse la to descarga.
|
||||
downloadFinish = Descarga completada
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
downloadFinish = Completóse la descarga
|
||||
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Prueba Firefox Send
|
||||
downloadingPageProgress = Baxando { $filename } ({ $size })
|
||||
downloadingPageMessage = Dexa esta llingüeta abierta entrín vamos en cata del to ficheru y lu desciframos, por favor.
|
||||
errorAltText = Fallu de xuba
|
||||
sendYourFilesLink = Probar Firefox Send
|
||||
errorPageHeader = ¡Daqué foi mal!
|
||||
errorPageMessage = Hebo un fallu xubiendo'l ficheru.
|
||||
errorPageLink = Unviar otru ficheru
|
||||
fileTooBig = Esti ficheru ye mui grande como pa xubilu. Debería tener menos de { $size }.
|
||||
linkExpiredAlt = Enllaz caducáu
|
||||
expiredPageHeader = ¡Esti enllaz caducó o enxamás nun esistó!
|
||||
linkExpiredAlt = Caducó l'enllaz
|
||||
notSupportedHeader = El to restolador nun ta sofitáu.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Desafortunadamente esti restolador nun sofita la teunoloxía web qu'usa Firefox Send. Precisarás d'usar otru restolador. ¡Aconseyámoste Firefox!
|
||||
notSupportedLink = ¿Por qué'l mio restolador nun ta sofitáu?
|
||||
notSupportedOutdatedDetail = Desafortunadamente esta versión de Firefox nun sofita la teunoloxía web qu'usa Firefox Send. Precisarás d'anovar Firefox.
|
||||
notSupportedOutdatedDetail = Desafortunadamente esta versión de Firefox nun sofita la teunoloxía web qu'usa Firefox Send. Vas precisar anovar Firefox.
|
||||
updateFirefox = Anovar Firefox
|
||||
downloadFirefoxButtonSub = Descarga de baldre
|
||||
uploadedFile = Ficheru
|
||||
copyFileList = Copiar URL
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Caduca en
|
||||
deleteFileList = Desaniciar
|
||||
nevermindButton = Nun m'importa
|
||||
legalHeader = Términos y privacidá
|
||||
legalNoticeTestPilot = Anguaño Firefox Send ye un esperimentu de Test Pilot y ta suxetu a los <a>Términos de serviciu</a> y l'<a>Avisu de privacidá</a> de Test Pilot. <a>Equí</a> pues deprender más tocante a esti esperimentu y la so recoyida de datos.
|
||||
legalNoticeMozilla = L'usu de Firefox Send tamién ta suxetu al <a>Avisu de privacidá</a> y a los <a>Términos d'usu de la páxina web</a> de Mozilla.
|
||||
deletePopupText = ¿Desaniciar esti ficheru?
|
||||
deletePopupYes = Sí
|
||||
deletePopupCancel = Encaboxar
|
||||
deleteButtonHover = Desaniciar
|
||||
copyUrlHover = Copiar URL
|
||||
footerLinkLegal = Llegal
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Tocante a Test Pilot
|
||||
footerLinkPrivacy = Privacidá
|
||||
footerLinkTerms = Términos
|
||||
footerLinkCookies = Cookies
|
||||
requirePasswordCheckbox = Riquir una contraseña pa baxar esti ficheru
|
||||
addPasswordButton = Amestar contraseña
|
||||
changePasswordButton = Camudar
|
||||
passwordTryAgain = Contraseña incorreuta. Volvi tentalo.
|
||||
passwordTryAgain = La contraseña ye incorreuta. Volvi tentalo.
|
||||
javascriptRequired = Firefox Send rique JavaScript
|
||||
whyJavascript = ¿Por qué Firefox Send rique JavaScript?
|
||||
enableJavascript = Activa JavaScript y volvi tentalo, por favor.
|
||||
@@ -112,9 +41,101 @@ enableJavascript = Activa JavaScript y volvi tentalo, por favor.
|
||||
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
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||
-send-brand = Firefox Send
|
||||
-send-short-brand = Send
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Compartición de ficheros privada y cenciella
|
||||
notifyUploadEncryptDone = El ficheru ta cifráu y preparáu pa unviase
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Caduca tres { $downloadCount } ó { $timespan }
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
[one] 1 minutu
|
||||
*[other] { $num } minutos
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] 1 día
|
||||
*[other] { $num } díes
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] 1 selmana
|
||||
*[other] { $num } selmanes
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] 1 ficheru
|
||||
*[other] { $num } ficheros
|
||||
}
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Tamañu total: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Copia l'enllaz pa compartir el ficheru:
|
||||
copyLinkButton = Copiar l'enllaz
|
||||
downloadTitle = Descarga de ficheros
|
||||
downloadDescription = Esti ficheru compartióse per { -send-brand } con cifráu puntu a puntu y un enllaz que caduca automáticamente.
|
||||
trySendDescription = Prueba { -send-brand } pa una compartición de ficheros cenciella y segura.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Namái pue xubise 1 ficheru al empar.
|
||||
*[other] Namái puen xubise { $count } ficheros al empar.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Namái se permite 1 archivu
|
||||
*[other] Namái se permiten { $count } archivos
|
||||
}
|
||||
expiredTitle = Esti enllaz caducó.
|
||||
notSupportedDescription = { -send-brand } nun va funcionar con esti restolador. { -send-short-brand } funciona meyor cola versión última de { -firefox } y cola versión actual de la mayoría de restoladores.
|
||||
legalTitle = Noticia de privacidá de { -send-short-brand }
|
||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Esbillar los ficheros a unviar
|
||||
uploadButton = Xubir
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Arrastra y suelta ficheros
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = o calca pa unviar hasta { $size }
|
||||
addPassword = Protexer con una contraseña
|
||||
emailPlaceholder = Introduz el to corréu
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Anicia sesión pa unviar hasta { $size }
|
||||
signInButton = Rexistrase/aniciar sesión
|
||||
accountBenefitTitle = Creación d'una cuenta { -firefox } o aniciu de sesión nella
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Comparti ficheros d'hasta { $size }
|
||||
accountBenefitDownloadCount = Comparti ficheros con más xente
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] Caltén activos los enllaces demientres 1 día
|
||||
*[other] Caltén activos los enllaces demientres 1 díes
|
||||
}
|
||||
accountBenefitSync = Xestiona los ficheros compartíos dende cualesquier preséu
|
||||
accountBenefitMoz = Deprendi más tocante a otros servicios de { -mozilla }
|
||||
signOut = Zarrar sesión
|
||||
okButton = Aceutar
|
||||
downloadingTitle = Baxando
|
||||
noStreamsWarning = Esti restolador quiciabes nun seya a descifrar un ficheru d'esti tamañu.
|
||||
|
||||
@@ -78,7 +78,17 @@ fileCount =
|
||||
[one] 1 yakb'äl
|
||||
*[other] { $num } taq yakb'äl
|
||||
}
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Ronojel runimilem: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Tawachib'ej ri ximonel richin nakomonij ri ayakb'al:
|
||||
@@ -110,15 +120,15 @@ uploadButton = Tijotob'äx
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Keqirirëx chuqa' ke'osq'opïx taq yakb'äl
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = o tapitz'a' richin natäq k'a { $size }
|
||||
addPassword = Tichajïx rik'in ewan tzij
|
||||
emailPlaceholder = Tatz'ib'aj ataqoya'l
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Tatikirisaj molojri'ïl richin natäq k'a { $size }
|
||||
signInButton = Tatikirisaj molojri'ïl/tatz'ib'aj ab'i'
|
||||
accountBenefitTitle = Tatz'uku' jun { -firefox } Rub'i' Ataqoy'al o Tatikirisaj molojri'ïl
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Ke'akomonij taq yakb'äl k'a { $size }
|
||||
accountBenefitDownloadCount = Ke'akomonij taq yakb'äl kik'in ch'aqa' chik winaqi'
|
||||
accountBenefitTimeLimit =
|
||||
|
||||
@@ -166,7 +166,7 @@ dragAndDropFiles = Přetažením myší nebo kliknutím sem
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = můžete poslat až { $size }
|
||||
addPassword = Chránit heslem
|
||||
addPassword = Ochránit heslem
|
||||
emailPlaceholder = Zadejte svoji e-mailovou adresu
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Pro odesílání souborů o velikosti až { $size } se prosím přihlaste
|
||||
|
||||
@@ -78,7 +78,17 @@ fileCount =
|
||||
[one] 1 fil
|
||||
*[other] { $num } filer
|
||||
}
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Samlet størrelse: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Kopier linket for at dele din fil:
|
||||
@@ -110,15 +120,15 @@ uploadButton = Upload
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Træk og slip filer
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = eller klik for at sende filer på op til { $size }
|
||||
addPassword = Beskyt med adgangskode
|
||||
emailPlaceholder = Indtast din mailadresse
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Log ind for at sende filer på op til { $size }
|
||||
signInButton = Log ind/tilmeld dig
|
||||
accountBenefitTitle = Opret en { -firefox }-konto eller log ind
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Del filer på op til { $size }
|
||||
accountBenefitDownloadCount = Del filer med flere personer
|
||||
accountBenefitTimeLimit =
|
||||
|
||||
@@ -53,6 +53,9 @@ passwordSetError = Esta contraseña no pudo ser establecida
|
||||
-send-short-brand = Send
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Intercambio de archivos sencillo y privado
|
||||
introDescription = { -send-brand } te permite compartir archivos con cifrado de extremo a extremo y un enlace que expira automáticamente. Así puedes mantener lo que compartes en privado y asegurarte de que tus cosas no permanezcan en línea para siempre.
|
||||
notifyUploadEncryptDone = Tu archivo está cifrado y listo para enviar
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Expira después de { $downloadCount } o { $timespan }
|
||||
timespanMinutes =
|
||||
@@ -75,16 +78,70 @@ fileCount =
|
||||
[one] 1 archivo
|
||||
*[other] { $num } archivos
|
||||
}
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Tamaño total: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Copiar el enlace para compartir el archivo:
|
||||
copyLinkButton = Copiar enlace
|
||||
downloadTitle = Bajando archivos
|
||||
downloadDescription = Este archivo fue compartido a través de { -send-brand } con cifrado de punto a punto y un enlace que expira automáticamente.
|
||||
trySendDescription = Prueba { -send-brand } para compartir archivos de forma sencilla y segura.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Solo 1 archivo puede ser subido a la vez.
|
||||
*[other] Solo { $count } archivos pueden ser subidos a la vez.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Solo 1 archivo está permitido.
|
||||
*[other] Solo { $count } archivos están permitidos.
|
||||
}
|
||||
expiredTitle = Este enlace ha expirado.
|
||||
notSupportedDescription = { -send-brand } no funcionará con este navegador. { -send-short-brand } funciona mejor con la última versión de { -firefox } y con la versión actual de la mayoría de los navegadores.
|
||||
downloadFirefox = Bajar { -firefox }
|
||||
legalTitle = Aviso de privacidad de { -send-short-brand }
|
||||
legalDateStamp = Versión 1.0 del 12 de marzo de 2019
|
||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Selecciona los archivos a subir
|
||||
uploadButton = Subir
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Arrastra y suelta archivos
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = o haz clic para enviar hasta { $size }
|
||||
addPassword = Protegido con contraseña
|
||||
emailPlaceholder = Ingresa tu correo
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Conéctate para enviar hasta { $size }
|
||||
signInButton = Conectarse/registrarse
|
||||
accountBenefitTitle = Crea una cuenta de { -firefox } o conéctate
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Comparte archivos de hasta { $size }
|
||||
accountBenefitDownloadCount = Comparte archivos con más personas
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] Mantener enlaces activos durante 1 día
|
||||
*[other] Mantener enlaces activos durante { $count } días
|
||||
}
|
||||
accountBenefitSync = Administrar los archivos compartidos desde cualquier dispositivo
|
||||
accountBenefitMoz = Aprender más acerca de otros servicios de { -mozilla }
|
||||
signOut = Salir
|
||||
okButton = Aceptar
|
||||
downloadingTitle = Bajando
|
||||
noStreamsWarning = Es posible que este navegador no pueda descifrar un archivo tan grande.
|
||||
noStreamsOptionCopy = Copiar el enlace para abrirlo en otro navegador
|
||||
noStreamsOptionFirefox = Prueba nuestro navegador favorito
|
||||
noStreamsOptionDownload = Continuar con este navegador
|
||||
|
||||
@@ -90,6 +90,18 @@ totalSize = Dimension total: { $size }
|
||||
copyLinkDescription = Copia le ligamine pro compartir le file:
|
||||
copyLinkButton = Copiar ligamine
|
||||
downloadTitle = Discargar files
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Solo 1 file al vice pote ser cargate.
|
||||
*[other] Solo { $count } files al vice pote ser cargate.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Solo 1 archivo es consentite.
|
||||
*[other] Solo { $count } archivos es consentite.
|
||||
}
|
||||
expiredTitle = Iste ligamine ha expirate.
|
||||
downloadFirefox = Discargar { -firefox }
|
||||
legalTitle = Politica de confidentialitate de { -send-short-brand }
|
||||
|
||||
@@ -1,109 +1,37 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = eksperimen web
|
||||
siteFeedback = Saran
|
||||
uploadPageHeader = Pribadi, Berbagi Berkas Terenskripsi
|
||||
uploadPageExplainer = Kirim berkas melalui tautan yang aman, pribadi, dan terenkripsi yang secara otomatis kedaluwarsa untuk memastikan berkas Anda tidak daring selamanya.
|
||||
uploadPageLearnMore = Pelajari lebih lanjut
|
||||
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
|
||||
uploadPageMultipleFilesAlert = Saat ini belum mendukung pengunggahan beberapa berkas atau folder.
|
||||
uploadPageBrowseButtonTitle = Unggah berkas
|
||||
uploadingPageProgress = Mengunggah { $filename } ({ $size })
|
||||
importingFile = Mengimpor…
|
||||
verifyingFile = Memverifikasi…
|
||||
encryptingFile = Mengenkripsi...
|
||||
decryptingFile = Mendekripsi...
|
||||
notifyUploadDone = Unggahan Anda telah selesai.
|
||||
uploadingPageMessage = Setelah berkas diunggah, Anda dapat mengatur pilihan kedaluwarsa.
|
||||
uploadingPageCancel = Batal unggah
|
||||
uploadCancelNotification = Unggahan Anda dibatalkan.
|
||||
uploadingPageLargeFileMessage = Berkas ini berukuran besar dan mungkin perlu beberapa saat untuk mengunggahnya. Silakan tunggu!
|
||||
uploadingFileNotification = Beri tahu saya ketika unggahan telah selesai.
|
||||
uploadSuccessConfirmHeader = Siap untuk Dikirim
|
||||
uploadSvgAlt = Unggah
|
||||
uploadSuccessTimingHeader = Tautan ke berkas Anda akan berakhir setelah 1 unduhan atau dalam 24 jam.
|
||||
expireInfo = Tautan ke berkas Anda akan kedaluwarsa setelah { $downloadCount } atau { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[other] { $number } unduhan
|
||||
*[other] { $num } unduhan
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[other] { $number } jam
|
||||
*[other] { $num } jam
|
||||
}
|
||||
copyUrlFormLabelWithName = Salin dan bagikan tautan untuk mengirim berkas Anda: { $filename }
|
||||
copyUrlFormButton = Salin ke papan klip
|
||||
copiedUrl = Tersalin!
|
||||
deleteFileButton = Hapus berkas
|
||||
sendAnotherFileLink = Kirim berkas lain
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Unduh
|
||||
downloadsFileList = Unduhan
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Waktu
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Unduh { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Masukkan Sandi
|
||||
unlockInputPlaceholder = Sandi
|
||||
unlockButtonLabel = Buka
|
||||
downloadFileTitle = Unduh Berkas Terenkripsi
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Teman Anda mengirimkan berkas dengan Firefox Send, layanan yang memungkinkan Anda berbagi berkas dengan tautan yang aman, pribadi, dan terenkripsi yang secara otomatis berakhir untuk memastikan berkas Anda tidak daring selamanya.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Unduh
|
||||
downloadNotification = Unduhan Anda telah selesai.
|
||||
downloadFinish = Unduhan Selesai
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } dari { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Coba Firefox Send
|
||||
downloadingPageProgress = Mengunduh { $filename } ({ $size })
|
||||
downloadingPageMessage = Sila biarkan tab ini terbuka sementara kami memproses berkas Anda dan mendekripsinya.
|
||||
errorAltText = Unggahan bermasalah
|
||||
errorPageHeader = Terjadi kesalahan!
|
||||
errorPageMessage = Terjadi kesalahan saat mengunggah berkas.
|
||||
errorPageLink = Kirim berkas lain
|
||||
fileTooBig = Berkas terlalu besar untuk diunggah. Harus kurang dari { $size }.
|
||||
linkExpiredAlt = Tautan kedaluwarsa
|
||||
expiredPageHeader = Tautan ini telah kedaluwarsa atau tidak pernah ada!
|
||||
notSupportedHeader = Peramban Anda tidak mendukung.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Sayangnya peramban ini tidak mendukung teknologi web yang menggerakkan Firefox Send. Anda perlu mencoba peramban lain. Kami merekomendasikan Firefox!
|
||||
notSupportedLink = Mengapa peramban saya tidak didukung?
|
||||
notSupportedOutdatedDetail = Sayangnya Firefox versi ini tidak mendukung teknologi web yang menggerakkan Firefox Send. Anda perlu memperbarui peramban Anda.
|
||||
updateFirefox = Perbarui Firefox
|
||||
downloadFirefoxButtonSub = Unduh Gratis
|
||||
uploadedFile = Berkas
|
||||
copyFileList = Salin URL
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Kedaluwarsa Pada
|
||||
deleteFileList = Hapus
|
||||
nevermindButton = Abaikan
|
||||
legalHeader = Syarat & Privasi
|
||||
legalNoticeTestPilot = Saat ini Firefox Send merupakan eksperimen Test Pilot, dan merupakan subyek dari <a>Ketentuan Layanan</a> dan <a>Pemberitahuan Privasi</a> Test Pilot. Anda dapat mempelajari lebih lanjut tentang eksperimen ini dan pengumpulan datanya <a>di sini</a>.
|
||||
legalNoticeMozilla = Penggunaan situs Firefox Send juga merupakan subyek dari <a>Pemberitahuan Privasi Situs Web</a> dan <a>Persyaratan Penggunaan Situs Web</a> Mozilla.
|
||||
deletePopupText = Hapus berkas ini?
|
||||
deletePopupYes = Ya
|
||||
deletePopupCancel = Batal
|
||||
deleteButtonHover = Hapus
|
||||
copyUrlHover = Salin URL
|
||||
footerLinkLegal = Legal
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Tentang Test Pilot
|
||||
footerLinkPrivacy = Privasi
|
||||
footerLinkTerms = Ketentuan
|
||||
footerLinkCookies = Kuki
|
||||
requirePasswordCheckbox = Membutuhkan sandi untuk mengunduh berkas ini
|
||||
addPasswordButton = Tambahkan Sandi
|
||||
changePasswordButton = Ubah
|
||||
passwordTryAgain = Sandi salah. Silakan coba lagi.
|
||||
reportIPInfringement = Laporkan Pelanggaran IP
|
||||
javascriptRequired = Firefox Send membutuhkan JavaScript.
|
||||
whyJavascript = Mengapa Firefox Send membutuhkan JavaScript?
|
||||
enableJavascript = Silakan aktifkan JavaScript dan coba lagi.
|
||||
@@ -111,14 +39,12 @@ 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
|
||||
|
||||
## New strings for the vNext version of Firefox Send
|
||||
## Send version 2 strings
|
||||
|
||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||
-send-brand = Firefox Send
|
||||
@@ -132,21 +58,31 @@ notifyUploadEncryptDone = Berkas Anda terenkripsi dan siap untuk dikirim
|
||||
archiveExpiryInfo = Berakhir setelah { $downloadCount } atau { $timespan }
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
*[other] menit
|
||||
*[other] { $num } menit
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
*[other] hari
|
||||
*[other] { $num } hari
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
*[other] pekan
|
||||
*[other] { $num } pekan
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
*[other] berkas
|
||||
*[other] { $num } berkas
|
||||
}
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Total ukuran: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Salin tautan untuk membagikan berkas Anda:
|
||||
@@ -176,15 +112,15 @@ uploadButton = Unggah
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Seret dan jatuhkan berkas
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = atau klik untuk mengirim hingga { $size }
|
||||
addPassword = Lindungi dengan kata sandi
|
||||
emailPlaceholder = Masukkan surel Anda
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Masuk untuk dapat mengirim hingga { $size }
|
||||
signInButton = Masuk/Daftar
|
||||
accountBenefitTitle = Buat { -firefox } Account atau masuk
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Bagikan berkas hingga { $size }
|
||||
accountBenefitDownloadCount = Bagikan berkas kepada lebih banyak orang
|
||||
accountBenefitTimeLimit =
|
||||
|
||||
@@ -72,7 +72,17 @@ fileCount =
|
||||
{ $num ->
|
||||
*[other] { $num } ファイル
|
||||
}
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = 合計サイズ: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = リンクをコピーしてファイルを共有:
|
||||
@@ -102,15 +112,15 @@ uploadButton = アップロード
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = ファイルをドラッグ&ドロップ
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = または、クリックして最大 { $size } のファイルを送信
|
||||
addPassword = パスワードで保護
|
||||
emailPlaceholder = メールアドレスを入力
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = ログインすると最大 { $size } のファイルを送信できます
|
||||
signInButton = ログイン/登録
|
||||
accountBenefitTitle = { -firefox } アカウントを作成またはログイン
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = 最大 { $size } までのファイルを共有
|
||||
accountBenefitDownloadCount = より多くの人とファイルを共有
|
||||
accountBenefitTimeLimit =
|
||||
|
||||
@@ -77,7 +77,17 @@ fileCount =
|
||||
[one] 1 fil
|
||||
*[other] { $num } filer
|
||||
}
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Total storleik: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Kopier lenka for å dele fila di:
|
||||
@@ -107,15 +117,15 @@ uploadButton = Last opp
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Dra og slepp filer
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = eller klikk for å senda opp til { $size }
|
||||
addPassword = Vern med passord
|
||||
emailPlaceholder = Skriv inn e-postadressa di
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = LOgg inn for å senda opp til { $size }
|
||||
signInButton = Logg inn/Registrer deg
|
||||
accountBenefitTitle = Lag ein { -firefox }-konto eller logg inn
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Del filer opp til { $size }
|
||||
accountBenefitDownloadCount = Del filer med fleire personar
|
||||
accountBenefitTimeLimit =
|
||||
|
||||
@@ -1,5 +1,52 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Wyślij opinię
|
||||
importingFile = Importowanie…
|
||||
encryptingFile = Szyfrowanie…
|
||||
decryptingFile = Odszyfrowywanie…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 pobraniu
|
||||
[few] { $num } pobraniach
|
||||
*[many] { $num } pobraniach
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] godzinie
|
||||
[few] { $num } godzinach
|
||||
*[many] { $num } godzinach
|
||||
}
|
||||
copiedUrl = Skopiowano
|
||||
unlockInputPlaceholder = Hasło
|
||||
unlockButtonLabel = Odblokuj
|
||||
downloadButtonLabel = Pobierz
|
||||
downloadFinish = Ukończono pobieranie
|
||||
fileSizeProgress = ({ $partialSize } z { $totalSize })
|
||||
sendYourFilesLink = Wypróbuj Firefox Send
|
||||
errorPageHeader = Coś się nie udało.
|
||||
fileTooBig = Ten plik jest za duży, aby go wysłać. Musi być mniejszy niż { $size }
|
||||
linkExpiredAlt = Odnośnik wygasł
|
||||
notSupportedHeader = Używana przeglądarka nie jest obsługiwana.
|
||||
notSupportedLink = Dlaczego ta przeglądarka nie jest obsługiwana?
|
||||
notSupportedOutdatedDetail = Ta wersja Firefoksa nie obsługuje technologii internetowej, która napędza Firefox Send. Należy uaktualnić przeglądarkę.
|
||||
updateFirefox = Uaktualnij Firefoksa
|
||||
deletePopupCancel = Anuluj
|
||||
deleteButtonHover = Usuń
|
||||
footerLinkLegal = Kwestie prawne
|
||||
footerLinkPrivacy = Prywatność
|
||||
footerLinkCookies = Ciasteczka
|
||||
passwordTryAgain = Niepoprawne hasło. Spróbuj ponownie.
|
||||
javascriptRequired = Firefox Send wymaga języka JavaScript
|
||||
whyJavascript = Dlaczego Firefox Send wymaga języka JavaScript?
|
||||
enableJavascript = Włącz obsługę języka JavaScript i spróbuj ponownie.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours } godz. { $minutes } min
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes } min
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Maksymalna długość hasła: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Nie można ustawić tego hasła
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
@@ -8,6 +55,35 @@ title = Firefox Send
|
||||
-send-short-brand = Send
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Proste, prywatne udostępnianie plików
|
||||
introDescription = { -send-brand } umożliwia udostępnianie plików za pomocą szyfrowania typu „end-to-end” i odnośników, które automatycznie wygasają. Dzięki temu możesz mieć pewność, że to co udostępniasz jest bezpieczne i nie pozostanie w Internecie na zawsze.
|
||||
notifyUploadEncryptDone = Plik jest zaszyfrowany i gotowy do wysłania
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Wygasa po { $downloadCount } lub { $timespan }
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
[one] minucie
|
||||
[few] { $num } minutach
|
||||
*[many] { $num } minutach
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] dniu
|
||||
[few] { $num } dniach
|
||||
*[many] { $num } dniach
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] tygodniu
|
||||
[few] { $num } tygodniach
|
||||
*[many] { $num } tygodniach
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] 1 plik
|
||||
[few] { $num } pliki
|
||||
*[many] { $num } plików
|
||||
}
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
@@ -18,3 +94,63 @@ mb = MB
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num } { $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Całkowity rozmiar: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Skopiuj odnośnik, aby udostępnić plik:
|
||||
copyLinkButton = Kopiuj odnośnik
|
||||
downloadTitle = Pobierz pliki
|
||||
downloadDescription = Ten plik został udostępniony przez { -send-brand } za pomocą szyfrowania typu „end-to-end” i odnośnika, który automatycznie wygasa.
|
||||
trySendDescription = Wypróbuj { -send-brand }, aby prosto i bezpiecznie udostępniać pliki.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Jednocześnie można wysyłać tylko jeden plik.
|
||||
[few] Jednocześnie można wysyłać tylko { $count } pliki.
|
||||
*[many] Jednocześnie można wysyłać tylko { $count } plików.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Dozwolone jest tylko jedno archiwum.
|
||||
[few] Dozwolone są tylko { $count } archiwa.
|
||||
*[many] Dozwolonych jest tylko { $count } archiwów.
|
||||
}
|
||||
expiredTitle = Ten odnośnik wygasł.
|
||||
notSupportedDescription = { -send-brand } nie będzie działało w tej przeglądarce. { -send-short-brand } najlepiej działa w najnowszej wersji Firefoksa, ale będzie działać także w aktualnych wersjach większości przeglądarek.
|
||||
downloadFirefox = Pobierz Firefoksa
|
||||
legalTitle = Zasady ochrony prywatności serwisu { -send-short-brand }
|
||||
legalDateStamp = Wersja 1.0 z 12 marca 2019 r.
|
||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||
expiresDaysHoursMinutes = { $days } d. { $hours } godz. { $minutes } min
|
||||
addFilesButton = Wybierz pliki do wysłania
|
||||
uploadButton = Wyślij
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Przeciągnij pliki
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = lub kliknij, aby wysłać do { $size }
|
||||
addPassword = Chroń hasłem
|
||||
emailPlaceholder = Wpisz adres e-mail
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Zaloguj się, aby wysłać do { $size }
|
||||
signInButton = Zaloguj/zarejestruj się
|
||||
accountBenefitTitle = Utwórz konto Firefoksa lub zaloguj się
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Udostępniaj pliki do { $size }
|
||||
accountBenefitDownloadCount = Udostępniaj pliki większej liczbie osób
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] Odnośniki aktywne przez jeden dzień
|
||||
[few] Odnośniki aktywne przez { $count } dni
|
||||
*[many] Odnośniki aktywne przez { $count } dni
|
||||
}
|
||||
accountBenefitSync = Zarządzaj udostępnionymi plikami z każdego urządzenia
|
||||
accountBenefitMoz = Poznaj inne serwisy Mozilli
|
||||
signOut = Wyloguj się
|
||||
okButton = OK
|
||||
downloadingTitle = Pobieranie
|
||||
noStreamsWarning = Ta przeglądarka może nie być w stanie odszyfrować tak dużego pliku.
|
||||
noStreamsOptionCopy = Skopiuj odnośnik, aby otworzyć w innej przeglądarce
|
||||
noStreamsOptionFirefox = Wypróbuj naszą ulubioną przeglądarkę
|
||||
noStreamsOptionDownload = Kontynuuj za pomocą tej przeglądarki
|
||||
|
||||
@@ -84,7 +84,17 @@ fileCount =
|
||||
[few] { $num } файла
|
||||
*[other] { $num } файлов
|
||||
}
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# byte abbreviation
|
||||
bytes = Б
|
||||
# kibibyte abbreviation
|
||||
kb = КБ
|
||||
# mebibyte abbreviation
|
||||
mb = МБ
|
||||
# gibibyte abbreviation
|
||||
gb = ГБ
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Общий размер: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Скопируйте ссылку, чтобы поделиться своим файлом:
|
||||
@@ -118,15 +128,15 @@ uploadButton = Выгрузить
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Перетащите файлы сюда
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = или щёлкните здесь, чтобы отправить их (до { $size })
|
||||
addPassword = Защитить паролем
|
||||
emailPlaceholder = Введите ваш адрес электронной почты
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Войдите, чтобы отправлять файлы до { $size }
|
||||
signInButton = Войти/Зарегистрироваться
|
||||
accountBenefitTitle = Создайте Аккаунт { -firefox } или войдите
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Делитесь файлами до { $size }
|
||||
accountBenefitDownloadCount = Делитесь файлами с несколькими людьми
|
||||
accountBenefitTimeLimit =
|
||||
|
||||
@@ -84,7 +84,17 @@ fileCount =
|
||||
[few] { $num } súbory
|
||||
*[other] { $num } súborov
|
||||
}
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = kB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num } { $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Celková veľkosť: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Súbor môžete zdieľať pomocou tohto odkazu:
|
||||
@@ -118,15 +128,15 @@ uploadButton = Nahrať
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Pretiahnutím súboru alebo kliknutím sem
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = môžete poslať až { $size }
|
||||
addPassword = Chrániť heslom
|
||||
emailPlaceholder = Zadajte e-mailovú adresu
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Pre odoslanie súborov s veľkosťou až { $size }, sa, prosím, prihláste
|
||||
signInButton = Prihlásiť sa/Zaregistrovať sa
|
||||
accountBenefitTitle = Vytvorte si účet { -firefox } alebo sa prihláste
|
||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Zdieľanie súborov s veľkosťou až { $size }
|
||||
accountBenefitDownloadCount = Zdieľanie súborov s viacerými ľuďmi
|
||||
accountBenefitTimeLimit =
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
const assert = require('assert');
|
||||
const crypto = require('crypto');
|
||||
const storage = require('../storage');
|
||||
const fxa = require('../fxa');
|
||||
@@ -19,7 +20,7 @@ module.exports = {
|
||||
);
|
||||
hmac.update(Buffer.from(meta.nonce, 'base64'));
|
||||
const verifyHash = hmac.digest();
|
||||
if (verifyHash.equals(Buffer.from(auth, 'base64'))) {
|
||||
if (crypto.timingSafeEqual(verifyHash, Buffer.from(auth, 'base64'))) {
|
||||
req.nonce = crypto.randomBytes(16).toString('base64');
|
||||
storage.setField(id, 'nonce', req.nonce);
|
||||
res.set('WWW-Authenticate', `send-v1 ${req.nonce}`);
|
||||
@@ -48,7 +49,11 @@ module.exports = {
|
||||
if (!req.meta) {
|
||||
return res.sendStatus(404);
|
||||
}
|
||||
req.authorized = req.meta.owner === ownerToken;
|
||||
const metaOwner = Buffer.from(req.meta.owner, 'utf8');
|
||||
const owner = Buffer.from(ownerToken, 'utf8');
|
||||
assert(metaOwner.length > 0);
|
||||
assert(metaOwner.length === owner.length);
|
||||
req.authorized = crypto.timingSafeEqual(metaOwner, owner);
|
||||
} catch (e) {
|
||||
req.authorized = false;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ describe('Owner Middleware', function() {
|
||||
const next = sinon.stub();
|
||||
storage.metadata.returns(Promise.resolve(null));
|
||||
const res = response();
|
||||
await ownerMiddleware(request('x', 'y'), res);
|
||||
await ownerMiddleware(request('a', 'y'), res, next);
|
||||
sinon.assert.notCalled(next);
|
||||
sinon.assert.calledWith(res.sendStatus, 404);
|
||||
});
|
||||
@@ -42,7 +42,7 @@ describe('Owner Middleware', function() {
|
||||
const meta = { owner: 'y' };
|
||||
storage.metadata.returns(Promise.resolve(meta));
|
||||
const res = response();
|
||||
await ownerMiddleware(request('x', null), res);
|
||||
await ownerMiddleware(request('b', null), res, next);
|
||||
sinon.assert.notCalled(next);
|
||||
sinon.assert.calledWith(res.sendStatus, 401);
|
||||
});
|
||||
@@ -52,7 +52,7 @@ describe('Owner Middleware', function() {
|
||||
const meta = { owner: 'y' };
|
||||
storage.metadata.returns(Promise.resolve(meta));
|
||||
const res = response();
|
||||
await ownerMiddleware(request('x', 'z'), res);
|
||||
await ownerMiddleware(request('c', 'z'), res, next);
|
||||
sinon.assert.notCalled(next);
|
||||
sinon.assert.calledWith(res.sendStatus, 401);
|
||||
});
|
||||
@@ -61,7 +61,7 @@ describe('Owner Middleware', function() {
|
||||
const next = sinon.stub();
|
||||
storage.metadata.returns(Promise.reject(new Error()));
|
||||
const res = response();
|
||||
await ownerMiddleware(request('x', 'y'), res);
|
||||
await ownerMiddleware(request('d', 'y'), res, next);
|
||||
sinon.assert.notCalled(next);
|
||||
sinon.assert.calledWith(res.sendStatus, 401);
|
||||
});
|
||||
@@ -70,7 +70,7 @@ describe('Owner Middleware', function() {
|
||||
const next = sinon.stub();
|
||||
const meta = { owner: 'y' };
|
||||
storage.metadata.returns(Promise.resolve(meta));
|
||||
const req = request('x', 'y');
|
||||
const req = request('e', 'y');
|
||||
const res = response();
|
||||
await ownerMiddleware(req, res, next);
|
||||
assert.equal(req.meta, meta);
|
||||
|
||||
@@ -57,4 +57,29 @@ describe('Firefox Send', function() {
|
||||
.includes('Expires after 1 download')
|
||||
);
|
||||
});
|
||||
|
||||
it('should ensure that the downloaded file size matches the uploaded file size', function() {
|
||||
browser.chooseFile(
|
||||
homePage.uploadInput,
|
||||
`${testFilesPath}/${testFiles[0]}`
|
||||
);
|
||||
// get the file size for upload
|
||||
const uploadSize = fs.statSync(`${testFilesPath}/${testFiles[0]}`).size;
|
||||
|
||||
browser.waitForExist(homePage.uploadButton);
|
||||
browser.click(homePage.uploadButton);
|
||||
|
||||
browser.waitForExist(homePage.shareUrl);
|
||||
const downloadPage = new DownloadPage(browser.getValue(homePage.shareUrl));
|
||||
downloadPage.open();
|
||||
downloadPage.download();
|
||||
browser.waitForExist(downloadPage.downloadComplete);
|
||||
|
||||
// get the file size for download
|
||||
const downloadFile = path.join(downloadDir, `${testFiles[0]}`);
|
||||
const downloadSize = fs.statSync(downloadFile).size;
|
||||
|
||||
// check if upload and download file sizes are equal
|
||||
assert.equal(uploadSize, downloadSize);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -40,7 +40,7 @@ const serviceWorker = {
|
||||
test: /\.(png|jpg)$/,
|
||||
loader: 'file-loader',
|
||||
options: {
|
||||
name: '[name].[hash:8].[ext]'
|
||||
name: '[name].[contenthash:8].[ext]'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -49,7 +49,7 @@ const serviceWorker = {
|
||||
{
|
||||
loader: 'file-loader',
|
||||
options: {
|
||||
name: '[name].[hash:8].[ext]'
|
||||
name: '[name].[contenthash:8].[ext]'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -82,7 +82,8 @@ const web = {
|
||||
ios: ['./ios/ios.js']
|
||||
},
|
||||
output: {
|
||||
filename: '[name].[hash:8].js',
|
||||
chunkFilename: '[name].[contenthash:8].js',
|
||||
filename: '[name].[contenthash:8].js',
|
||||
path: path.resolve(__dirname, 'dist')
|
||||
},
|
||||
module: {
|
||||
@@ -124,7 +125,7 @@ const web = {
|
||||
test: /\.(png|jpg)$/,
|
||||
loader: 'file-loader',
|
||||
options: {
|
||||
name: '[name].[hash:8].[ext]'
|
||||
name: '[name].[contenthash:8].[ext]'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -133,7 +134,7 @@ const web = {
|
||||
{
|
||||
loader: 'file-loader',
|
||||
options: {
|
||||
name: '[name].[hash:8].[ext]'
|
||||
name: '[name].[contenthash:8].[ext]'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -189,7 +190,7 @@ const web = {
|
||||
new webpack.EnvironmentPlugin(['NODE_ENV']),
|
||||
new webpack.IgnorePlugin(/\.\.\/dist/), // used in common/*.js
|
||||
new ExtractTextPlugin({
|
||||
filename: '[name].[hash:8].css'
|
||||
filename: '[name].[md5:contenthash:8].css'
|
||||
}),
|
||||
new VersionPlugin(), // used for the /__version__ route
|
||||
new AndroidIndexPlugin(),
|
||||
|
||||
Reference in New Issue
Block a user