Compare commits

...

193 Commits

Author SHA1 Message Date
Victor Ibragimov 11319080a8 Pontoon: Update Russian (ru) localization of Firefox Send
Co-authored-by: Victor Ibragimov <victor.ibragimov@gmail.com>
2020-09-15 12:24:40 +00:00
Quentí 0aefdc18da Pontoon: Update Occitan (oc) localization of Firefox Send
Co-authored-by: Quentí <quentinantonin@free.fr>
2020-09-14 19:43:23 +00:00
Quentí 2be2b6f410 Pontoon: Update Occitan (oc) localization of Firefox Send
Co-authored-by: Quentí <quentinantonin@free.fr>
2020-09-14 19:35:10 +00:00
Quentí d4c42c8ab1 Pontoon: Update Occitan (oc) localization of Firefox Send
Co-authored-by: Quentí <quentinantonin@free.fr>
2020-09-14 18:34:28 +00:00
వీవెన్ b9a329fa34 Pontoon: Update Telugu (te) localization of Firefox Send
Co-authored-by: వీవెన్ <veeven@gmail.com>
2020-09-10 07:47:28 +00:00
Jim Spentzos f84a5f1b18 Pontoon: Update Greek (el) localization of Firefox Send
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Co-authored-by: George kitsoukakis <norhorn@gmail.com>
2020-09-07 13:25:32 +00:00
Lavon Śpirydonaŭ 9f64e08b93 Pontoon: Update Belarusian (be) localization of Firefox Send
Co-authored-by: Mikalai Udodau <crom-a@tut.by>
Co-authored-by: Lavon Śpirydonaŭ <lavon@outlook.de>
2020-09-06 18:34:22 +00:00
robbp 48a11cd33b Pontoon: Update Romanian (ro) localization of Firefox Send
Co-authored-by: robbp <robbpaun@gmail.com>
2020-08-26 05:37:49 +00:00
Bald3mar 32b9fb8aa6 Pontoon: Update Mixtepec Mixtec (mix) localization of Firefox Send
Co-authored-by: Bald3mar <baldemarls@gmail.com>
2020-08-26 03:08:28 +00:00
Gwenn f0bbf822c1 Pontoon: Update Breton (br) localization of Firefox Send
Co-authored-by: Gwenn <tornoz@laposte.net>
2020-08-22 21:25:51 +00:00
Gwenn 3abaa58a1b Pontoon: Update Breton (br) localization of Firefox Send
Co-authored-by: Gwenn <tornoz@laposte.net>
2020-08-22 17:14:29 +00:00
robbp b0ad17d3b7 Pontoon: Update Romanian (ro) localization of Firefox Send
Co-authored-by: robbp <robbpaun@gmail.com>
2020-08-20 15:15:37 +00:00
Besnik Bleta 4597ecf4e1 Pontoon: Update Albanian (sq) localization of Firefox Send
Co-authored-by: Besnik Bleta <besnik@programeshqip.org>
2020-08-17 11:29:04 +00:00
Besnik Bleta 571b6f4003 Pontoon: Update Albanian (sq) localization of Firefox Send
Co-authored-by: Besnik Bleta <besnik@programeshqip.org>
2020-08-17 11:14:06 +00:00
Jim Spentzos 0152a440b4 Pontoon: Update Greek (el) localization of Firefox Send
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
2020-08-15 12:34:07 +00:00
George kitsoukakis 0886352a09 Pontoon: Update Greek (el) localization of Firefox Send
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
Co-authored-by: George kitsoukakis <norhorn@gmail.com>
2020-08-15 12:04:58 +00:00
Bald3mar 98444d68d3 Pontoon: Update Mixtepec Mixtec (mix) localization of Firefox Send
Co-authored-by: Bald3mar <baldemarls@gmail.com>
2020-08-14 03:06:31 +00:00
Bald3mar d38ea6a3fa Pontoon: Update Mixtepec Mixtec (mix) localization of Firefox Send
Co-authored-by: Bald3mar <baldemarls@gmail.com>
2020-08-14 02:55:06 +00:00
Bald3mar e75478af8d Pontoon: Update Mixtepec Mixtec (mix) localization of Firefox Send
Co-authored-by: Bald3mar <baldemarls@gmail.com>
2020-08-14 01:14:23 +00:00
Bald3mar d8e117e61a Pontoon: Update Mixtepec Mixtec (mix) localization of Firefox Send
Co-authored-by: Bald3mar <baldemarls@gmail.com>
2020-08-14 01:07:46 +00:00
Mark Heijl 15c9593e18 Pontoon: Update Dutch (nl) localization of Firefox Send
Co-authored-by: Mark Heijl <markh@babelzilla.org>
2020-08-13 06:55:41 +00:00
వీవెన్ df0644a9da Pontoon: Update Telugu (te) localization of Firefox Send
Co-authored-by: వీవెన్ <veeven@gmail.com>
2020-08-12 12:10:52 +00:00
Abdulrasheed Idris b22b8f089d Pontoon: Update Yoruba (yo) localization of Firefox Send
Co-authored-by: Abdulrasheed Idris <Abdulrash6211@gmail.com>
Co-authored-by: biobell2000 <biobell2000@gmail.com>
Co-authored-by: Umegbewe <nwebedujunior55@gmail.com>
2020-08-10 16:16:42 +00:00
Adaobi 032fddff64 Pontoon: Update Igbo (ig) localization of Firefox Send
Co-authored-by: Adaobi <ada_okeke60@ymail.com>
Co-authored-by: Umegbewe <nwebedujunior55@gmail.com>
2020-08-10 16:07:21 +00:00
Juan Pablo 46bc3d4713 Pontoon: Update Aragonese (an) localization of Firefox Send
Co-authored-by: Juan Pablo <juanpabl@gmail.com>
2020-08-08 21:54:45 +00:00
Juan Pablo d0844ae811 Pontoon: Update Aragonese (an) localization of Firefox Send
Co-authored-by: Juan Pablo <juanpabl@gmail.com>
2020-08-08 21:44:57 +00:00
Juan Pablo 740ab457de Pontoon: Update Aragonese (an) localization of Firefox Send
Co-authored-by: Juan Pablo <juanpabl@gmail.com>
2020-08-08 21:35:20 +00:00
Lan Glad 41865f9fc2 Pontoon: Update Slovenian (sl) localization of Firefox Send
Co-authored-by: Lan Glad <upwinxp@gmail.com>
2020-08-05 19:36:08 +00:00
Lan Glad 915d6c2abd Pontoon: Update Slovenian (sl) localization of Firefox Send
Co-authored-by: Lan Glad <upwinxp@gmail.com>
2020-08-05 18:54:21 +00:00
Lan Glad fc07069900 Pontoon: Update Slovenian (sl) localization of Firefox Send
Co-authored-by: Lan Glad <upwinxp@gmail.com>
2020-08-05 18:45:36 +00:00
Isidora Jukić 98819744af Pontoon: Update Serbian (sr) localization of Firefox Send
Co-authored-by: Isidora Jukić <barad.dur@yahoo.com>
2020-08-04 18:59:47 +00:00
Isidora Jukić c6ddbe1b66 Pontoon: Update Serbian (sr) localization of Firefox Send
Co-authored-by: Isidora Jukić <barad.dur@yahoo.com>
2020-08-04 18:47:27 +00:00
Danny Coates 3c4f502eac
add flex-none to radio buttons on report page. fixes #1509 2020-08-03 09:02:41 -07:00
Danny Coates 320b4cc9f1
remove signin modal from privacy page. fixes #1508 2020-08-03 08:56:10 -07:00
Jim Spentzos e20798e0aa Pontoon: Update Greek (el) localization of Firefox Send
Co-authored-by: Jim Spentzos <jimspentzos2000@gmail.com>
2020-08-03 13:59:48 +00:00
Kim YoungCheon d23eb376f8 Pontoon: Update Korean (ko) localization of Firefox Send
Co-authored-by: Kim YoungCheon <circcc@gmail.com>
2020-08-03 01:07:17 +00:00
Alexander Slovesnik 7654210dbb Pontoon: Update Russian (ru) localization of Firefox Send
Co-authored-by: TrickyFoxy <roman.deev06@gmail.com>
Co-authored-by: Alexander Slovesnik <unghost@mozilla-russia.org>
2020-08-01 11:10:56 +00:00
Aman Alam decc44620b Pontoon: Update Punjabi (pa-IN) localization of Firefox Send
Co-authored-by: Aman Alam <amanpreet.alam@gmail.com>
2020-08-01 06:52:55 +00:00
Danny Coates 246e2c8db0
set downloadMetadata.status to 404 on unfound downloads. fixes #1501 2020-07-31 09:36:03 -07:00
Danny Coates fbc4107262
fixed dark-theme password input style. fixes #1504 2020-07-31 08:57:01 -07:00
Danny Coates dc912678fe
fixed post-report text color. fixes #1500 2020-07-31 08:57:00 -07:00
Danny Coates 1ec2b995b0
restrict "share" to mobile, fixes #1505 2020-07-31 08:57:00 -07:00
Danny Coates fc8673b87a
fix main section height. fixes #1499 2020-07-31 08:57:00 -07:00
Melo46 27bc7de7d0 Pontoon: Update Interlingua (ia) localization of Firefox Send
Co-authored-by: Melo46 <melo@carmu.com>
2020-07-31 15:54:01 +00:00
Melo46 0abcd8ac3b Pontoon: Update Interlingua (ia) localization of Firefox Send
Co-authored-by: Melo46 <melo@carmu.com>
2020-07-31 15:46:39 +00:00
Melo46 604a17a19d Pontoon: Update Interlingua (ia) localization of Firefox Send
Co-authored-by: Melo46 <melo@carmu.com>
2020-07-31 15:37:05 +00:00
Itiel 97efdc572a Pontoon: Update Hebrew (he) localization of Firefox Send
Co-authored-by: Itiel <itiel_yn8@walla.com>
Co-authored-by: Yaron Shahrabani <sh.yaron@gmail.com>
2020-07-30 21:56:24 +00:00
Danny Coates d023a53b74
handle reports for files that have been already been deleted 2020-07-30 10:19:29 -07:00
Abelardo Ayala Rodríguez 06daba9ce0 Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-30 16:11:22 +00:00
Danny Coates deb5c6e5d1
give 404 and error pages the loggedin/ok treatment 2020-07-29 20:56:39 -07:00
Danny Coates d2cdff5975
updated helmet 2020-07-29 20:29:27 -07:00
Danny Coates 0eb35c048c
updated sentry 2020-07-29 20:23:10 -07:00
Danny Coates 028a6c4311
updated @google-cloud/storage 2020-07-29 20:18:30 -07:00
Danny Coates 2356d0fb64
updated babel 2020-07-29 20:04:22 -07:00
Danny Coates ab63a34938
updated fast-text-encoding 2020-07-29 19:58:46 -07:00
Danny Coates 4f03be590a
handle unknown errors in getMetadata 2020-07-29 18:52:55 -07:00
Danny Coates 9bd96a9ec0
exlude puppeteer from docker build 2020-07-29 14:20:39 -07:00
Danny Coates dd59605f3e
support edge 18 maybe 2020-07-29 14:00:48 -07:00
Danny Coates e2425cd6c9
added downloadConfirm string to noStream page 2020-07-29 12:35:47 -07:00
Danny Coates 81e9d81dab
implemented download tokens 2020-07-29 11:02:22 -07:00
Danny Coates 87d46f7ef5
show "OK" button on complete page when logged in instead of "Try Firefox Send" 2020-07-29 09:53:47 -07:00
Danny Coates 2f503c91e4
fixed silly regex bug on startup 2020-07-29 08:49:19 -07:00
Jiri Grönroos 3c27656444 Pontoon: Update Finnish (fi) localization of Firefox Send
Co-authored-by: Jiri Grönroos <jiri.gronroos@iki.fi>
2020-07-29 08:35:27 +00:00
Danny Coates 1cd33282dd
🤷 2020-07-28 15:12:31 -07:00
Gery Escalier db6358abed Pontoon: Update Spanish (Spain) (es-ES) localization of Firefox Send
Co-authored-by: Gery Escalier <geryescalier@yahoo.com>
Co-authored-by: jlG <jlg.l10n.es@gmail.com>
2020-07-28 20:34:44 +00:00
jlG a08333d2b4 Pontoon: Update Spanish (Spain) (es-ES) localization of Firefox Send
Co-authored-by: Paulina Rodriguez <pauli.rodriguez.c@gmail.com>
Co-authored-by: Gery Escalier <geryescalier@yahoo.com>
Co-authored-by: jlG <jlg.l10n.es@gmail.com>
2020-07-28 20:23:33 +00:00
వీవెన్ 8869e34ca5 Pontoon: Update Telugu (te) localization of Firefox Send
Co-authored-by: వీవెన్ <veeven@gmail.com>
2020-07-28 16:43:21 +00:00
వీవెన్ a05c0e16b7 Pontoon: Update Telugu (te) localization of Firefox Send
Co-authored-by: వీవెన్ <veeven@gmail.com>
2020-07-28 16:35:25 +00:00
Danny Coates 192d45f77c
Merge remote-tracking branch 'origin/master' 2020-07-28 09:31:28 -07:00
Danny Coates 8ad4597114
replaced fxa-geodb with load balancer header 2020-07-28 09:31:09 -07:00
Abelardo Ayala Rodríguez 4d96274f79 Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-28 16:14:23 +00:00
Abelardo Ayala Rodríguez 437f712a4d Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-28 16:07:38 +00:00
Danny Coates 7d35e8f61f
fixed local without fxa 2020-07-28 08:23:59 -07:00
Danny Coates 7130c2e7b0
remove browser dependency on "buffer" 2020-07-27 19:23:03 -07:00
Melo46 72d2d6ef31 Pontoon: Update Interlingua (ia) localization of Firefox Send
Co-authored-by: Melo46 <melo@carmu.com>
2020-07-27 19:55:36 +00:00
Abelardo Ayala Rodríguez eadf223e8d Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-27 18:38:23 +00:00
Abelardo Ayala Rodríguez 196099b194 Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-27 16:35:20 +00:00
goofy f0a116d0e4 Pontoon: Update French (fr) localization of Firefox Send
Co-authored-by: goofy <goofy@framasoft.org>
2020-07-27 16:35:16 +00:00
Abelardo Ayala Rodríguez 571049e597 Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-27 16:25:41 +00:00
Abelardo Ayala Rodríguez f637f2f3bc Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-27 16:16:34 +00:00
Abelardo Ayala Rodríguez fe892fdcc1 Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-27 16:09:28 +00:00
Abelardo Ayala Rodríguez f792482478 Pontoon: Update Guarani (gn) localization of Firefox Send
Co-authored-by: Abelardo Ayala Rodríguez <abe_aya@hotmail.com>
2020-07-27 15:55:55 +00:00
nandar 5277730e7c Pontoon: Update Sundanese (su) localization of Firefox Send
Co-authored-by: nandar <ia.adnan@gmail.com>
2020-07-27 15:38:13 +00:00
nandar 696b3f7c05 Pontoon: Update Sundanese (su) localization of Firefox Send
Co-authored-by: nandar <ia.adnan@gmail.com>
2020-07-27 15:25:55 +00:00
alamanda 18eebd1ce2 Pontoon: Update Indonesian (id) localization of Firefox Send
Co-authored-by: alamanda <dian.ina@gmail.com>
2020-07-27 15:25:51 +00:00
alamanda 86326e4e6d Pontoon: Update Indonesian (id) localization of Firefox Send
Co-authored-by: alamanda <dian.ina@gmail.com>
2020-07-27 15:15:06 +00:00
Fjoerfoks 4c02a2ecf7 Pontoon: Update Frisian (fy-NL) localization of Firefox Send
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
2020-07-27 14:56:45 +00:00
Fjoerfoks c00e552f80 Pontoon: Update Frisian (fy-NL) localization of Firefox Send
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
2020-07-27 14:43:59 +00:00
Fjoerfoks bcefd4f1cb Pontoon: Update Dutch (nl) localization of Firefox Send
Co-authored-by: Fjoerfoks <fryskefirefox@gmail.com>
2020-07-27 14:34:47 +00:00
Hyeonseok Shin 82a91f4117 Pontoon: Update Korean (ko) localization of Firefox Send
Co-authored-by: Hyeonseok Shin <hyeonseok@gmail.com>
2020-07-27 13:07:02 +00:00
Hyeonseok Shin 6539da2c53 Pontoon: Update Korean (ko) localization of Firefox Send
Co-authored-by: Hyeonseok Shin <hyeonseok@gmail.com>
Co-authored-by: daysofjuly <daysofjuly@gmail.com>
2020-07-27 12:56:32 +00:00
Théo Chevalier c6152cfcb4 Pontoon: Update French (fr) localization of Firefox Send
Co-authored-by: Théo Chevalier <theo.chevalier11@gmail.com>
2020-07-27 11:45:40 +00:00
Mikeyy 9f8e1051b1 Pontoon: Update Croatian (hr) localization of Firefox Send
Co-authored-by: Mikeyy <mihovil@miho.im>
2020-07-27 06:55:04 +00:00
robbp a2db84e44e Pontoon: Update Romanian (ro) localization of Firefox Send
Co-authored-by: robbp <robbpaun@gmail.com>
2020-07-27 06:44:57 +00:00
Mikeyy 6f967e984f Pontoon: Update Croatian (hr) localization of Firefox Send
Co-authored-by: Mikeyy <mihovil@miho.im>
2020-07-27 06:44:53 +00:00
ZiriSut 6bc0b780be Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: ZiriSut <rgebbid@gmail.com>
2020-07-27 05:14:24 +00:00
Andreas Pettersson a88acee8ee Pontoon: Update Swedish (sv-SE) localization of Firefox Send
Co-authored-by: Andreas Pettersson <az@kth.se>
2020-07-26 21:55:31 +00:00
Luna Jernberg 92759a1f08 Pontoon: Update Swedish (sv-SE) localization of Firefox Send
Co-authored-by: Luna Jernberg <bittin@cafe8bitar.se>
2020-07-26 19:55:58 +00:00
Luna Jernberg 59c4032176 Pontoon: Update Swedish (sv-SE) localization of Firefox Send
Co-authored-by: Luna Jernberg <bittin@cafe8bitar.se>
2020-07-26 19:44:59 +00:00
Quentí 5e9edec93a Pontoon: Update Occitan (oc) localization of Firefox Send
Co-authored-by: Quentí <quentinantonin@free.fr>
2020-07-26 19:14:58 +00:00
Quentí dfb81409c6 Pontoon: Update Occitan (oc) localization of Firefox Send
Co-authored-by: Quentí <quentinantonin@free.fr>
2020-07-26 19:05:34 +00:00
Selyan Slimane Amiri 5ef569fa71 Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: Selyan Slimane Amiri <selyan.kab@gmail.com>
2020-07-26 17:45:07 +00:00
ZiriSut bfff47641a Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: ZiriSut <rgebbid@gmail.com>
2020-07-26 17:34:25 +00:00
ZiriSut 7abe664e79 Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: ZiriSut <rgebbid@gmail.com>
2020-07-26 17:25:41 +00:00
ZiriSut b30ac5605d Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: ZiriSut <rgebbid@gmail.com>
2020-07-26 17:05:37 +00:00
Danny Coates 0f289202bc
add copyright link to bare /report page 2020-07-26 10:04:50 -07:00
ZiriSut 7223956f01 Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: ZiriSut <rgebbid@gmail.com>
2020-07-26 16:45:15 +00:00
ZiriSut e972c9f723 Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: ZiriSut <rgebbid@gmail.com>
2020-07-26 16:34:42 +00:00
Selyan Slimane Amiri 8147d34857 Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: Selyan Slimane Amiri <selyan.kab@gmail.com>
2020-07-26 14:31:06 +00:00
G12r f1c73fcf8d Pontoon: Update Georgian (ka) localization of Firefox Send
Co-authored-by: G12r <georgianization@outlook.com>
2020-07-26 13:22:15 +00:00
Jordi Serratosa 9fa012c04d Pontoon: Update Catalan (ca) localization of Firefox Send
Co-authored-by: Jordi Serratosa <jordis@softcatala.cat>
2020-07-26 13:22:12 +00:00
G12r 75bd771812 Pontoon: Update Georgian (ka) localization of Firefox Send
Co-authored-by: G12r <georgianization@outlook.com>
2020-07-26 13:14:30 +00:00
Jordi Serratosa b98761e08a Pontoon: Update Catalan (ca) localization of Firefox Send
Co-authored-by: Jordi Serratosa <jordis@softcatala.cat>
2020-07-26 13:14:26 +00:00
G12r 93638aa291 Pontoon: Update Georgian (ka) localization of Firefox Send
Co-authored-by: G12r <georgianization@outlook.com>
2020-07-26 13:05:03 +00:00
Jordi Serratosa acb73e1dab Pontoon: Update Catalan (ca) localization of Firefox Send
Co-authored-by: Jordi Serratosa <jordis@softcatala.cat>
2020-07-26 13:04:59 +00:00
Ian Neal 2235414620 Pontoon: Update English (Great Britain) (en-GB) localization of Firefox Send
Co-authored-by: Ian Neal <iann_bugzilla@blueyonder.co.uk>
2020-07-26 12:43:45 +00:00
Enol 1aa0fbb712 Pontoon: Update Asturian (ast) localization of Firefox Send
Co-authored-by: Enol <enolp@softastur.org>
2020-07-26 12:23:37 +00:00
Enol d66d5d65b2 Pontoon: Update Asturian (ast) localization of Firefox Send
Co-authored-by: Enol <enolp@softastur.org>
2020-07-26 12:13:37 +00:00
Björn I 207a27215c Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Firefox Send
Co-authored-by: Björn I. <bjorni.svindseth@yahoo.com>
2020-07-26 11:35:41 +00:00
Björn I 2790b4ca4b Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Firefox Send
Co-authored-by: Björn I. <bjorni.svindseth@yahoo.com>
2020-07-26 11:24:22 +00:00
Luna Jernberg f653838bf4 Pontoon: Update Swedish (sv-SE) localization of Firefox Send
Co-authored-by: Luna Jernberg <bittin@cafe8bitar.se>
2020-07-26 11:14:38 +00:00
Paulius a0770d9b86 Pontoon: Update Lithuanian (lt) localization of Firefox Send
Co-authored-by: Paulius <paulius@mozilla.lt>
2020-07-26 10:23:44 +00:00
Paulius ec1f32fb65 Pontoon: Update Lithuanian (lt) localization of Firefox Send
Co-authored-by: Paulius <paulius@mozilla.lt>
2020-07-26 10:14:52 +00:00
Björn I ca0a05e6dc Pontoon: Update Norwegian Nynorsk (nn-NO) localization of Firefox Send
Co-authored-by: Björn I. <bjorni.svindseth@yahoo.com>
2020-07-26 09:53:34 +00:00
Melo46 0687ec877c Pontoon: Update Interlingua (ia) localization of Firefox Send
Co-authored-by: Melo46 <melo@carmu.com>
2020-07-26 09:22:47 +00:00
marsf 14209baf55 Pontoon: Update Japanese (ja) localization of Firefox Send
Co-authored-by: marsf <chimantaea_mirabilis@yahoo.co.jp>
2020-07-26 03:23:16 +00:00
marsf 75938febfa Pontoon: Update Japanese (ja) localization of Firefox Send
Co-authored-by: marsf <chimantaea_mirabilis@yahoo.co.jp>
2020-07-26 03:13:21 +00:00
marsf a9e9902468 Pontoon: Update Japanese (ja) localization of Firefox Send
Co-authored-by: marsf <chimantaea_mirabilis@yahoo.co.jp>
2020-07-26 03:05:59 +00:00
Cristian Silaghi 91cd7684c4 Pontoon: Update Romanian (ro) localization of Firefox Send
Co-authored-by: Cristian Silaghi <cristian.silaghi@mozilla.ro>
2020-07-26 01:14:11 +00:00
Chengings 8bf8c8d95a Pontoon: Update Thai (th) localization of Firefox Send
Co-authored-by: Chengings <chengings@gmail.com>
2020-07-25 23:53:30 +00:00
Chengings 594916a59d Pontoon: Update Thai (th) localization of Firefox Send
Co-authored-by: Chengings <chengings@gmail.com>
2020-07-25 23:44:02 +00:00
José Manuel 6213762d96 Pontoon: Update Triqui (trs) localization of Firefox Send
Co-authored-by: José Manuel <triki2014jm@gmail.com>
2020-07-25 22:44:29 +00:00
Danny Coates d9cbe058ab
added hmac auth to report route 2020-07-25 15:36:29 -07:00
Itiel 2f6119e2f1 Pontoon: Update Hebrew (he) localization of Firefox Send
Co-authored-by: Itiel <itiel_yn8@walla.com>
2020-07-25 22:34:04 +00:00
Itiel 21d1839818 Pontoon: Update Hebrew (he) localization of Firefox Send
Co-authored-by: Itiel <itiel_yn8@walla.com>
2020-07-25 22:25:05 +00:00
Jakob Kappel 95cde415f6 Pontoon: Update Danish (da) localization of Firefox Send
Co-authored-by: Jakob Kappel <jakobkpetersen@gmail.com>
2020-07-25 21:34:08 +00:00
Gabriela 2e6d1abac2 Pontoon: Update Spanish (Argentina) (es-AR) localization of Firefox Send
Co-authored-by: Gabriela <gmontagu@gmail.com>
2020-07-25 20:33:29 +00:00
Gabriela 3a36a718d2 Pontoon: Update Spanish (Argentina) (es-AR) localization of Firefox Send
Co-authored-by: Gabriela <gmontagu@gmail.com>
2020-07-25 20:23:23 +00:00
Joergen 04b1623f15 Pontoon: Update Danish (da) localization of Firefox Send
Co-authored-by: Joergen <joergenr@stofanet.dk>
2020-07-25 20:13:26 +00:00
Joergen 10ffa1d785 Pontoon: Update Danish (da) localization of Firefox Send
Co-authored-by: Joergen <joergenr@stofanet.dk>
Co-authored-by: Jakob Kappel <jakobkpetersen@gmail.com>
2020-07-25 20:06:37 +00:00
Enol 93e98b9c30 Pontoon: Update Asturian (ast) localization of Firefox Send
Co-authored-by: Enol <enolp@softastur.org>
2020-07-25 19:53:30 +00:00
Enol 618e169895 Pontoon: Update Asturian (ast) localization of Firefox Send
Co-authored-by: Enol <enolp@softastur.org>
2020-07-25 19:43:49 +00:00
Enol 91584649c5 Pontoon: Update Asturian (ast) localization of Firefox Send
Co-authored-by: Enol <enolp@softastur.org>
2020-07-25 19:35:05 +00:00
Michael Wolf 31805031ca Pontoon: Update Sorbian, Upper (hsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-25 19:05:07 +00:00
Michael Wolf 58ffcb171d Pontoon: Update Sorbian, Lower (dsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-25 19:05:03 +00:00
Danny Coates 55df061567
refactored storage, style tweaks 2020-07-25 11:25:55 -07:00
Mikalai Udodau 8fb770a4ea Pontoon: Update Belarusian (be) localization of Firefox Send
Co-authored-by: Mikalai Udodau <crom-a@tut.by>
2020-07-25 17:23:58 +00:00
Juraj Cigáň 83cae687c8 Pontoon: Update Slovak (sk) localization of Firefox Send
Co-authored-by: Juraj Cigáň <kusavica@gmail.com>
2020-07-25 15:50:47 +00:00
Francesco Lodolo 75444ead46 Pontoon: Update Italian (it) localization of Firefox Send
Co-authored-by: Francesco Lodolo <flod+pontoon@mozilla.com>
2020-07-25 15:26:24 +00:00
Cláudio Esperança df62189346 Pontoon: Update Portuguese (Portugal) (pt-PT) localization of Firefox Send
Co-authored-by: Cláudio Esperança <cesperanc@gmail.com>
2020-07-25 14:52:01 +00:00
Muhend Belkacem b1e25ed40c Pontoon: Update Kabyle (kab) localization of Firefox Send
Co-authored-by: Muhend Belkacem <taqbaylitassa@gmail.com>
2020-07-25 14:51:58 +00:00
Michele Rodaro abef9d9b7f Pontoon: Update Italian (it) localization of Firefox Send
Co-authored-by: Michele Rodaro <michele.rodaro@mozillaitalia.org>
Co-authored-by: Francesco Lodolo <flod+pontoon@mozilla.com>
2020-07-25 14:51:54 +00:00
Michael Wolf 748d9b48ff Pontoon: Update Sorbian, Lower (dsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-25 14:06:59 +00:00
Pin-guang Chen 10f60dd2dd Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Firefox Send
Co-authored-by: Pin-guang Chen <petercpg@mail.moztw.org>
2020-07-25 14:06:55 +00:00
Michael Wolf 1882ce5708 Pontoon: Update Sorbian, Lower (dsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-25 13:54:58 +00:00
Michael Wolf 20db9ee6fd Pontoon: Update Sorbian, Lower (dsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-25 13:44:13 +00:00
Piotr Drąg 069efcd257 Pontoon: Update Polish (pl) localization of Firefox Send
Co-authored-by: Piotr Drąg <piotrdrag@gmail.com>
2020-07-25 13:06:13 +00:00
Pin-guang Chen 446e993420 Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Firefox Send
Co-authored-by: Pin-guang Chen <petercpg@mail.moztw.org>
2020-07-25 13:06:09 +00:00
Selim Şumlu 588c793b98 Pontoon: Update Turkish (tr) localization of Firefox Send
Co-authored-by: Selim Şumlu <selim@sum.lu>
2020-07-25 12:45:25 +00:00
Selim Şumlu 3c6f45464b Pontoon: Update Turkish (tr) localization of Firefox Send
Co-authored-by: Selim Şumlu <selim@sum.lu>
2020-07-25 12:34:16 +00:00
Michael Wolf 76ecbbecc6 Pontoon: Update Sorbian, Upper (hsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-25 12:34:12 +00:00
Pin-guang Chen ab1802a371 Pontoon: Update Chinese (Taiwan) (zh-TW) localization of Firefox Send
Co-authored-by: Pin-guang Chen <petercpg@mail.moztw.org>
2020-07-25 12:34:09 +00:00
Selim Şumlu 15f4f386fb Pontoon: Update Turkish (tr) localization of Firefox Send
Co-authored-by: Selim Şumlu <selim@sum.lu>
2020-07-25 12:24:58 +00:00
Michael Wolf 84e9e9f654 Pontoon: Update Sorbian, Upper (hsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-25 12:24:54 +00:00
Quế Tùng e1e7887237 Pontoon: Update Vietnamese (vi) localization of Firefox Send
Co-authored-by: Quế Tùng <best.cloney.1301@gmail.com>
2020-07-25 12:14:10 +00:00
Gwenn 0c274139ed Pontoon: Update Breton (br) localization of Firefox Send
Co-authored-by: Gwenn <tornoz@laposte.net>
2020-07-25 11:15:10 +00:00
Rhoslyn Prys 1dbf7c7b2a Pontoon: Update Welsh (cy) localization of Firefox Send
Co-authored-by: Rhoslyn Prys <rprys@posteo.net>
2020-07-25 10:54:37 +00:00
Rhoslyn Prys 0bec884397 Pontoon: Update Welsh (cy) localization of Firefox Send
Co-authored-by: Rhoslyn Prys <rprys@posteo.net>
2020-07-25 10:43:33 +00:00
Rhoslyn Prys 58095ac676 Pontoon: Update Welsh (cy) localization of Firefox Send
Co-authored-by: Rhoslyn Prys <rprys@posteo.net>
2020-07-25 10:36:09 +00:00
Michael Köhler b680d20bca Pontoon: Update German (de) localization of Firefox Send
Co-authored-by: Michael Köhler <michael.koehler1@gmx.de>
2020-07-25 07:35:29 +00:00
Michal Stanke 5eab9703af Pontoon: Update Czech (cs) localization of Firefox Send
Co-authored-by: Michal Stanke <mstanke@mozilla.cz>
2020-07-25 07:15:19 +00:00
Danny Coates 5c5853c645
minor style tweaks and refresh token fixes 2020-07-24 22:05:35 -07:00
Marcelo Ghelman 4674666807 Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Firefox Send
Co-authored-by: Marcelo Ghelman <marcelo.ghelman@gmail.com>
2020-07-25 02:24:29 +00:00
ravmn 5626e128f2 Pontoon: Update Spanish (Chile) (es-CL) localization of Firefox Send
Co-authored-by: ravmn <ravmn@ravmn.cl>
2020-07-25 02:14:50 +00:00
Marcelo Ghelman 1fa714924e Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Firefox Send
Co-authored-by: Marcelo Ghelman <marcelo.ghelman@gmail.com>
2020-07-25 02:14:46 +00:00
Marcelo Ghelman 89bfa74bb8 Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Firefox Send
Co-authored-by: Marcelo Ghelman <marcelo.ghelman@gmail.com>
Co-authored-by: Mateus Generoso <mtsgeneroso@gmail.com>
2020-07-25 02:06:21 +00:00
πάθοςγιατηζωή 12d6c029ff Pontoon: Update Chinese (China) (zh-CN) localization of Firefox Send
Co-authored-by: πάθοςγιατηζωή <eloli@foxmail.com>
2020-07-25 01:54:31 +00:00
πάθοςγιατηζωή c580282a27 Pontoon: Update Chinese (China) (zh-CN) localization of Firefox Send
Co-authored-by: πάθοςγιατηζωή <eloli@foxmail.com>
2020-07-25 01:43:53 +00:00
Danny Coates f3a1fde07f
added oauth refresh token support 2020-07-24 18:19:33 -07:00
πάθοςγιατηζωή ce507c557f Pontoon: Update Chinese (China) (zh-CN) localization of Firefox Send
Co-authored-by: πάθοςγιατηζωή <eloli@foxmail.com>
2020-07-25 01:07:30 +00:00
Håvar Henriksen 6c984fa127 Pontoon: Update Norwegian Bokmål (nb-NO) localization of Firefox Send
Co-authored-by: Håvar Henriksen <havar@firefox.no>
2020-07-24 22:54:51 +00:00
Håvar Henriksen 359d5d6bdd Pontoon: Update Norwegian Bokmål (nb-NO) localization of Firefox Send
Co-authored-by: Håvar Henriksen <havar@firefox.no>
2020-07-24 22:43:48 +00:00
Michael Wolf 7698564a4d Pontoon: Update Sorbian, Upper (hsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-24 22:22:43 +00:00
Marcelo Ghelman 546b58d4d5 Pontoon: Update Portuguese (Brazil) (pt-BR) localization of Firefox Send
Co-authored-by: Marcelo Ghelman <marcelo.ghelman@gmail.com>
2020-07-24 22:22:39 +00:00
Michael Wolf 813a2d2f25 Pontoon: Update Sorbian, Upper (hsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-24 22:13:11 +00:00
Michael Wolf f8d61479d2 Pontoon: Update Sorbian, Upper (hsb) localization of Firefox Send
Co-authored-by: Michael Wolf <milupo@sorbzilla.de>
2020-07-24 22:06:29 +00:00
Іhor Hordiichuk afcc06ad14 Pontoon: Update Ukrainian (uk) localization of Firefox Send
Co-authored-by: Іhor Hordiichuk <igor_ck@outlook.com>
2020-07-24 20:43:31 +00:00
Kohei Yoshino 84b3796710 Pontoon: Update English (Canada) (en-CA) localization of Firefox Send
Co-authored-by: Kohei Yoshino <kohei.yoshino@gmail.com>
2020-07-24 20:13:10 +00:00
Luna Jernberg 8fd0a4cb01 Pontoon: Update Swedish (sv-SE) localization of Firefox Send
Co-authored-by: Luna Jernberg <bittin@cafe8bitar.se>
2020-07-24 19:54:49 +00:00
Balázs Meskó 2a947a031d Pontoon: Update Hungarian (hu) localization of Firefox Send
Co-authored-by: Balázs Meskó <meskobalazs@mailbox.org>
2020-07-24 19:54:45 +00:00
Danny Coates 0a8663aa51
Merge pull request #1496 from dannycoates/dear-nice-things-too
Begin implementing a reporting mechanism
2020-07-24 12:35:28 -07:00
Danny Coates 17057e725d
add fxa_required option 2020-07-24 10:40:47 -07:00
Danny Coates 9891d1f0ba
Begin implementing a reporting mechanism 2020-07-24 08:32:43 -07:00
130 changed files with 6103 additions and 1452 deletions

View File

@ -16,13 +16,12 @@ RUN set -x \
--home /app \ --home /app \
--uid 10001 \ --uid 10001 \
app app
RUN npm i -g npm
COPY --chown=app:app . /app COPY --chown=app:app . /app
USER app USER app
WORKDIR /app WORKDIR /app
RUN set -x \ RUN set -x \
# Build # Build
&& npm ci \ && PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm ci \
&& npm run build && npm run build

View File

@ -61,7 +61,10 @@ async function fetchWithAuth(url, params, keychain) {
const result = {}; const result = {};
params = params || {}; params = params || {};
const h = await keychain.authHeader(); const h = await keychain.authHeader();
params.headers = new Headers({ Authorization: h }); params.headers = new Headers({
Authorization: h,
'Content-Type': 'application/json'
});
const response = await fetch(url, params); const response = await fetch(url, params);
result.response = response; result.response = response;
result.ok = response.ok; result.ok = response.ok;
@ -127,10 +130,10 @@ export async function metadata(id, keychain) {
return { return {
size: meta.size, size: meta.size,
ttl: data.ttl, ttl: data.ttl,
iv: meta.iv,
name: meta.name, name: meta.name,
type: meta.type, type: meta.type,
manifest: meta.manifest manifest: meta.manifest,
flagged: data.flagged
}; };
} }
throw new Error(result.response.status); throw new Error(result.response.status);
@ -289,20 +292,13 @@ export function uploadWs(
//////////////////////// ////////////////////////
async function downloadS(id, keychain, signal) { async function _downloadStream(id, dlToken, signal) {
const auth = await keychain.authHeader();
const response = await fetch(getApiUrl(`/api/download/${id}`), { const response = await fetch(getApiUrl(`/api/download/${id}`), {
signal: signal, signal: signal,
method: 'GET', method: 'GET',
headers: { Authorization: auth } headers: { Authorization: `Bearer ${dlToken}` }
}); });
const authHeader = response.headers.get('WWW-Authenticate');
if (authHeader) {
keychain.nonce = parseNonce(authHeader);
}
if (response.status !== 200) { if (response.status !== 200) {
throw new Error(response.status); throw new Error(response.status);
} }
@ -310,13 +306,13 @@ async function downloadS(id, keychain, signal) {
return response.body; return response.body;
} }
async function tryDownloadStream(id, keychain, signal, tries = 2) { async function tryDownloadStream(id, dlToken, signal, tries = 2) {
try { try {
const result = await downloadS(id, keychain, signal); const result = await _downloadStream(id, dlToken, signal);
return result; return result;
} catch (e) { } catch (e) {
if (e.message === '401' && --tries > 0) { if (e.message === '401' && --tries > 0) {
return tryDownloadStream(id, keychain, signal, tries); return tryDownloadStream(id, dlToken, signal, tries);
} }
if (e.name === 'AbortError') { if (e.name === 'AbortError') {
throw new Error('0'); throw new Error('0');
@ -325,21 +321,20 @@ async function tryDownloadStream(id, keychain, signal, tries = 2) {
} }
} }
export function downloadStream(id, keychain) { export function downloadStream(id, dlToken) {
const controller = new AbortController(); const controller = new AbortController();
function cancel() { function cancel() {
controller.abort(); controller.abort();
} }
return { return {
cancel, cancel,
result: tryDownloadStream(id, keychain, controller.signal) result: tryDownloadStream(id, dlToken, controller.signal)
}; };
} }
////////////////// //////////////////
async function download(id, keychain, onprogress, canceller) { async function download(id, dlToken, onprogress, canceller) {
const auth = await keychain.authHeader();
const xhr = new XMLHttpRequest(); const xhr = new XMLHttpRequest();
canceller.oncancel = function() { canceller.oncancel = function() {
xhr.abort(); xhr.abort();
@ -347,10 +342,6 @@ async function download(id, keychain, onprogress, canceller) {
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
xhr.addEventListener('loadend', function() { xhr.addEventListener('loadend', function() {
canceller.oncancel = function() {}; canceller.oncancel = function() {};
const authHeader = xhr.getResponseHeader('WWW-Authenticate');
if (authHeader) {
keychain.nonce = parseNonce(authHeader);
}
if (xhr.status !== 200) { if (xhr.status !== 200) {
return reject(new Error(xhr.status)); return reject(new Error(xhr.status));
} }
@ -365,26 +356,26 @@ async function download(id, keychain, onprogress, canceller) {
} }
}); });
xhr.open('get', getApiUrl(`/api/download/blob/${id}`)); xhr.open('get', getApiUrl(`/api/download/blob/${id}`));
xhr.setRequestHeader('Authorization', auth); xhr.setRequestHeader('Authorization', `Bearer ${dlToken}`);
xhr.responseType = 'blob'; xhr.responseType = 'blob';
xhr.send(); xhr.send();
onprogress(0); onprogress(0);
}); });
} }
async function tryDownload(id, keychain, onprogress, canceller, tries = 2) { async function tryDownload(id, dlToken, onprogress, canceller, tries = 2) {
try { try {
const result = await download(id, keychain, onprogress, canceller); const result = await download(id, dlToken, onprogress, canceller);
return result; return result;
} catch (e) { } catch (e) {
if (e.message === '401' && --tries > 0) { if (e.message === '401' && --tries > 0) {
return tryDownload(id, keychain, onprogress, canceller, tries); return tryDownload(id, dlToken, onprogress, canceller, tries);
} }
throw e; throw e;
} }
} }
export function downloadFile(id, keychain, onprogress) { export function downloadFile(id, dlToken, onprogress) {
const canceller = { const canceller = {
oncancel: function() {} // download() sets this oncancel: function() {} // download() sets this
}; };
@ -393,7 +384,7 @@ export function downloadFile(id, keychain, onprogress) {
} }
return { return {
cancel, cancel,
result: tryDownload(id, keychain, onprogress, canceller) result: tryDownload(id, dlToken, onprogress, canceller)
}; };
} }
@ -438,3 +429,44 @@ export async function getConstants() {
throw new Error(response.status); throw new Error(response.status);
} }
export async function reportLink(id, keychain, reason) {
const result = await fetchWithAuthAndRetry(
getApiUrl(`/api/report/${id}`),
{
method: 'POST',
body: JSON.stringify({ reason })
},
keychain
);
if (result.ok) {
return;
}
throw new Error(result.response.status);
}
export async function getDownloadToken(id, keychain) {
const result = await fetchWithAuthAndRetry(
getApiUrl(`/api/download/token/${id}`),
{
method: 'GET'
},
keychain
);
if (result.ok) {
return (await result.response.json()).token;
}
throw new Error(result.response.status);
}
export async function downloadDone(id, dlToken) {
const headers = new Headers({ Authorization: `Bearer ${dlToken}` });
const response = await fetch(getApiUrl(`/api/download/done/${id}`), {
headers,
method: 'POST'
});
return response.ok;
}

View File

@ -77,6 +77,7 @@ async function polyfillStreams() {
export default async function getCapabilities() { export default async function getCapabilities() {
const browser = browserName(); const browser = browserName();
const isMobile = /mobi|android/i.test(navigator.userAgent);
const serviceWorker = 'serviceWorker' in navigator && browser !== 'edge'; const serviceWorker = 'serviceWorker' in navigator && browser !== 'edge';
let crypto = await checkCrypto(); let crypto = await checkCrypto();
const nativeStreams = checkStreams(); const nativeStreams = checkStreams();
@ -91,14 +92,15 @@ export default async function getCapabilities() {
account = false; account = false;
} }
const share = const share =
typeof navigator.share === 'function' && locale().startsWith('en'); // en until strings merge isMobile &&
typeof navigator.share === 'function' &&
locale().startsWith('en'); // en until strings merge
const standalone = const standalone =
window.matchMedia('(display-mode: standalone)').matches || window.matchMedia('(display-mode: standalone)').matches ||
navigator.standalone; navigator.standalone;
const mobileFirefox = const mobileFirefox = browser === 'firefox' && isMobile;
browser === 'firefox' && /mobile/i.test(navigator.userAgent);
return { return {
account, account,

View File

@ -49,8 +49,8 @@ export default function(state, emitter) {
state.user.login(email); state.user.login(email);
}); });
emitter.on('logout', () => { emitter.on('logout', async () => {
state.user.logout(); await state.user.logout();
metrics.loggedOut({ trigger: 'button' }); metrics.loggedOut({ trigger: 'button' });
emitter.emit('pushState', '/'); emitter.emit('pushState', '/');
}); });
@ -178,6 +178,12 @@ export default function(state, emitter) {
//cancelled. do nothing //cancelled. do nothing
metrics.cancelledUpload(archive, err.duration); metrics.cancelledUpload(archive, err.duration);
render(); render();
} else if (err.message === '401') {
const refreshed = await state.user.refresh();
if (refreshed) {
return emitter.emit('upload');
}
emitter.emit('pushState', '/error');
} else { } else {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
console.error(err); console.error(err);
@ -226,9 +232,10 @@ export default function(state, emitter) {
} catch (e) { } catch (e) {
if (e.message === '401' || e.message === '404') { if (e.message === '401' || e.message === '404') {
file.password = null; file.password = null;
if (!file.requiresPassword) { file.dead = e.message === '404';
return emitter.emit('pushState', '/404'); } else {
} console.error(e);
return emitter.emit('pushState', '/error');
} }
} }
@ -244,7 +251,8 @@ export default function(state, emitter) {
const start = Date.now(); const start = Date.now();
try { try {
const dl = state.transfer.download({ const dl = state.transfer.download({
stream: state.capabilities.streamDownload stream: state.capabilities.streamDownload,
storage: state.storage
}); });
render(); render();
await dl; await dl;
@ -263,7 +271,9 @@ export default function(state, emitter) {
} else { } else {
// eslint-disable-next-line no-console // eslint-disable-next-line no-console
state.transfer = null; state.transfer = null;
const location = err.message === '404' ? '/404' : '/error'; const location = ['404', '403'].includes(err.message)
? '/404'
: '/error';
if (location === '/error') { if (location === '/error') {
state.sentry.withScope(scope => { state.sentry.withScope(scope => {
scope.setExtra('duration', err.duration); scope.setExtra('duration', err.duration);
@ -306,6 +316,21 @@ export default function(state, emitter) {
render(); render();
}); });
emitter.on('report', async ({ reason }) => {
try {
const receiver = state.transfer || new FileReceiver(state.fileInfo);
await receiver.reportLink(reason);
render();
} catch (err) {
console.error(err);
if (err.message === '404') {
state.fileInfo = { reported: true };
return render();
}
emitter.emit('pushState', '/error');
}
});
setInterval(() => { setInterval(() => {
// poll for updates of the upload list // poll for updates of the upload list
if (!state.modal && state.route === '/') { if (!state.modal && state.route === '/') {

266
app/crc32.js Normal file
View File

@ -0,0 +1,266 @@
const LOOKUP = Int32Array.from([
0x00000000,
0x77073096,
0xee0e612c,
0x990951ba,
0x076dc419,
0x706af48f,
0xe963a535,
0x9e6495a3,
0x0edb8832,
0x79dcb8a4,
0xe0d5e91e,
0x97d2d988,
0x09b64c2b,
0x7eb17cbd,
0xe7b82d07,
0x90bf1d91,
0x1db71064,
0x6ab020f2,
0xf3b97148,
0x84be41de,
0x1adad47d,
0x6ddde4eb,
0xf4d4b551,
0x83d385c7,
0x136c9856,
0x646ba8c0,
0xfd62f97a,
0x8a65c9ec,
0x14015c4f,
0x63066cd9,
0xfa0f3d63,
0x8d080df5,
0x3b6e20c8,
0x4c69105e,
0xd56041e4,
0xa2677172,
0x3c03e4d1,
0x4b04d447,
0xd20d85fd,
0xa50ab56b,
0x35b5a8fa,
0x42b2986c,
0xdbbbc9d6,
0xacbcf940,
0x32d86ce3,
0x45df5c75,
0xdcd60dcf,
0xabd13d59,
0x26d930ac,
0x51de003a,
0xc8d75180,
0xbfd06116,
0x21b4f4b5,
0x56b3c423,
0xcfba9599,
0xb8bda50f,
0x2802b89e,
0x5f058808,
0xc60cd9b2,
0xb10be924,
0x2f6f7c87,
0x58684c11,
0xc1611dab,
0xb6662d3d,
0x76dc4190,
0x01db7106,
0x98d220bc,
0xefd5102a,
0x71b18589,
0x06b6b51f,
0x9fbfe4a5,
0xe8b8d433,
0x7807c9a2,
0x0f00f934,
0x9609a88e,
0xe10e9818,
0x7f6a0dbb,
0x086d3d2d,
0x91646c97,
0xe6635c01,
0x6b6b51f4,
0x1c6c6162,
0x856530d8,
0xf262004e,
0x6c0695ed,
0x1b01a57b,
0x8208f4c1,
0xf50fc457,
0x65b0d9c6,
0x12b7e950,
0x8bbeb8ea,
0xfcb9887c,
0x62dd1ddf,
0x15da2d49,
0x8cd37cf3,
0xfbd44c65,
0x4db26158,
0x3ab551ce,
0xa3bc0074,
0xd4bb30e2,
0x4adfa541,
0x3dd895d7,
0xa4d1c46d,
0xd3d6f4fb,
0x4369e96a,
0x346ed9fc,
0xad678846,
0xda60b8d0,
0x44042d73,
0x33031de5,
0xaa0a4c5f,
0xdd0d7cc9,
0x5005713c,
0x270241aa,
0xbe0b1010,
0xc90c2086,
0x5768b525,
0x206f85b3,
0xb966d409,
0xce61e49f,
0x5edef90e,
0x29d9c998,
0xb0d09822,
0xc7d7a8b4,
0x59b33d17,
0x2eb40d81,
0xb7bd5c3b,
0xc0ba6cad,
0xedb88320,
0x9abfb3b6,
0x03b6e20c,
0x74b1d29a,
0xead54739,
0x9dd277af,
0x04db2615,
0x73dc1683,
0xe3630b12,
0x94643b84,
0x0d6d6a3e,
0x7a6a5aa8,
0xe40ecf0b,
0x9309ff9d,
0x0a00ae27,
0x7d079eb1,
0xf00f9344,
0x8708a3d2,
0x1e01f268,
0x6906c2fe,
0xf762575d,
0x806567cb,
0x196c3671,
0x6e6b06e7,
0xfed41b76,
0x89d32be0,
0x10da7a5a,
0x67dd4acc,
0xf9b9df6f,
0x8ebeeff9,
0x17b7be43,
0x60b08ed5,
0xd6d6a3e8,
0xa1d1937e,
0x38d8c2c4,
0x4fdff252,
0xd1bb67f1,
0xa6bc5767,
0x3fb506dd,
0x48b2364b,
0xd80d2bda,
0xaf0a1b4c,
0x36034af6,
0x41047a60,
0xdf60efc3,
0xa867df55,
0x316e8eef,
0x4669be79,
0xcb61b38c,
0xbc66831a,
0x256fd2a0,
0x5268e236,
0xcc0c7795,
0xbb0b4703,
0x220216b9,
0x5505262f,
0xc5ba3bbe,
0xb2bd0b28,
0x2bb45a92,
0x5cb36a04,
0xc2d7ffa7,
0xb5d0cf31,
0x2cd99e8b,
0x5bdeae1d,
0x9b64c2b0,
0xec63f226,
0x756aa39c,
0x026d930a,
0x9c0906a9,
0xeb0e363f,
0x72076785,
0x05005713,
0x95bf4a82,
0xe2b87a14,
0x7bb12bae,
0x0cb61b38,
0x92d28e9b,
0xe5d5be0d,
0x7cdcefb7,
0x0bdbdf21,
0x86d3d2d4,
0xf1d4e242,
0x68ddb3f8,
0x1fda836e,
0x81be16cd,
0xf6b9265b,
0x6fb077e1,
0x18b74777,
0x88085ae6,
0xff0f6a70,
0x66063bca,
0x11010b5c,
0x8f659eff,
0xf862ae69,
0x616bffd3,
0x166ccf45,
0xa00ae278,
0xd70dd2ee,
0x4e048354,
0x3903b3c2,
0xa7672661,
0xd06016f7,
0x4969474d,
0x3e6e77db,
0xaed16a4a,
0xd9d65adc,
0x40df0b66,
0x37d83bf0,
0xa9bcae53,
0xdebb9ec5,
0x47b2cf7f,
0x30b5ffe9,
0xbdbdf21c,
0xcabac28a,
0x53b39330,
0x24b4a3a6,
0xbad03605,
0xcdd70693,
0x54de5729,
0x23d967bf,
0xb3667a2e,
0xc4614ab8,
0x5d681b02,
0x2a6f2b94,
0xb40bbe37,
0xc30c8ea1,
0x5a05df1b,
0x2d02ef8d
]);
module.exports = function crc32(uint8Array, previous) {
let crc = previous === 0 ? 0 : ~~previous ^ -1;
for (let i = 0; i < uint8Array.byteLength; i++) {
crc = LOOKUP[(crc ^ uint8Array[i]) & 0xff] ^ (crc >>> 8);
}
return (crc ^ -1) >>> 0;
};

View File

@ -1,5 +1,5 @@
import 'buffer';
import { transformStream } from './streams'; import { transformStream } from './streams';
import { concat } from './utils';
const NONCE_LENGTH = 12; const NONCE_LENGTH = 12;
const TAG_LENGTH = 16; const TAG_LENGTH = 16;
@ -81,19 +81,18 @@ class ECETransformer {
) )
); );
return Buffer.from(base.slice(0, NONCE_LENGTH)); return base.slice(0, NONCE_LENGTH);
} }
generateNonce(seq) { generateNonce(seq) {
if (seq > 0xffffffff) { if (seq > 0xffffffff) {
throw new Error('record sequence number exceeds limit'); throw new Error('record sequence number exceeds limit');
} }
const nonce = Buffer.from(this.nonceBase); const nonce = new DataView(this.nonceBase.slice());
const m = nonce.readUIntBE(nonce.length - 4, 4); const m = nonce.getUint32(nonce.byteLength - 4);
const xor = (m ^ seq) >>> 0; //forces unsigned int xor const xor = (m ^ seq) >>> 0; //forces unsigned int xor
nonce.writeUIntBE(xor, nonce.length - 4, 4); nonce.setUint32(nonce.byteLength - 4, xor);
return new Uint8Array(nonce.buffer);
return nonce;
} }
pad(data, isLast) { pad(data, isLast) {
@ -103,14 +102,11 @@ class ECETransformer {
} }
if (isLast) { if (isLast) {
const padding = Buffer.alloc(1); return concat(data, Uint8Array.of(2));
padding.writeUInt8(2, 0);
return Buffer.concat([data, padding]);
} else { } else {
const padding = Buffer.alloc(this.rs - len - TAG_LENGTH); const padding = new Uint8Array(this.rs - len - TAG_LENGTH);
padding.fill(0); padding[0] = 1;
padding.writeUInt8(1, 0); return concat(data, padding);
return Buffer.concat([data, padding]);
} }
} }
@ -133,10 +129,9 @@ class ECETransformer {
} }
createHeader() { createHeader() {
const nums = Buffer.alloc(5); const nums = new DataView(new ArrayBuffer(5));
nums.writeUIntBE(this.rs, 0, 4); nums.setUint32(0, this.rs);
nums.writeUIntBE(0, 4, 1); return concat(new Uint8Array(this.salt), new Uint8Array(nums.buffer));
return Buffer.concat([Buffer.from(this.salt), nums]);
} }
readHeader(buffer) { readHeader(buffer) {
@ -144,9 +139,10 @@ class ECETransformer {
throw new Error('chunk too small for reading header'); throw new Error('chunk too small for reading header');
} }
const header = {}; const header = {};
header.salt = buffer.buffer.slice(0, KEY_LENGTH); const dv = new DataView(buffer.buffer);
header.rs = buffer.readUIntBE(KEY_LENGTH, 4); header.salt = buffer.slice(0, KEY_LENGTH);
const idlen = buffer.readUInt8(KEY_LENGTH + 4); header.rs = dv.getUint32(KEY_LENGTH);
const idlen = dv.getUint8(KEY_LENGTH + 4);
header.length = idlen + KEY_LENGTH + 5; header.length = idlen + KEY_LENGTH + 5;
return header; return header;
} }
@ -158,7 +154,7 @@ class ECETransformer {
this.key, this.key,
this.pad(buffer, isLast) this.pad(buffer, isLast)
); );
return Buffer.from(encrypted); return new Uint8Array(encrypted);
} }
async decryptRecord(buffer, seq, isLast) { async decryptRecord(buffer, seq, isLast) {
@ -173,7 +169,7 @@ class ECETransformer {
buffer buffer
); );
return this.unpad(Buffer.from(data), isLast); return this.unpad(new Uint8Array(data), isLast);
} }
async start(controller) { async start(controller) {
@ -214,7 +210,7 @@ class ECETransformer {
await this.transformPrevChunk(false, controller); await this.transformPrevChunk(false, controller);
} }
this.firstchunk = false; this.firstchunk = false;
this.prevChunk = Buffer.from(chunk.buffer); this.prevChunk = new Uint8Array(chunk.buffer);
} }
async flush(controller) { async flush(controller) {

View File

@ -1,7 +1,14 @@
import Nanobus from 'nanobus'; import Nanobus from 'nanobus';
import Keychain from './keychain'; import Keychain from './keychain';
import { delay, bytes, streamToArrayBuffer } from './utils'; import { delay, bytes, streamToArrayBuffer } from './utils';
import { downloadFile, metadata, getApiUrl } from './api'; import {
downloadFile,
downloadDone,
metadata,
getApiUrl,
reportLink,
getDownloadToken
} from './api';
import { blobStream } from './streams'; import { blobStream } from './streams';
import Zip from './zip'; import Zip from './zip';
@ -13,9 +20,14 @@ export default class FileReceiver extends Nanobus {
this.keychain.setPassword(fileInfo.password, fileInfo.url); this.keychain.setPassword(fileInfo.password, fileInfo.url);
} }
this.fileInfo = fileInfo; this.fileInfo = fileInfo;
this.dlToken = null;
this.reset(); this.reset();
} }
get id() {
return this.fileInfo.id;
}
get progressRatio() { get progressRatio() {
return this.progress[0] / this.progress[1]; return this.progress[0] / this.progress[1];
} }
@ -47,12 +59,16 @@ export default class FileReceiver extends Nanobus {
const meta = await metadata(this.fileInfo.id, this.keychain); const meta = await metadata(this.fileInfo.id, this.keychain);
this.fileInfo.name = meta.name; this.fileInfo.name = meta.name;
this.fileInfo.type = meta.type; this.fileInfo.type = meta.type;
this.fileInfo.iv = meta.iv;
this.fileInfo.size = +meta.size; this.fileInfo.size = +meta.size;
this.fileInfo.manifest = meta.manifest; this.fileInfo.manifest = meta.manifest;
this.fileInfo.flagged = meta.flagged;
this.state = 'ready'; this.state = 'ready';
} }
async reportLink(reason) {
await reportLink(this.fileInfo.id, this.keychain, reason);
}
sendMessageToSw(msg) { sendMessageToSw(msg) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
const channel = new MessageChannel(); const channel = new MessageChannel();
@ -75,7 +91,7 @@ export default class FileReceiver extends Nanobus {
this.state = 'downloading'; this.state = 'downloading';
this.downloadRequest = await downloadFile( this.downloadRequest = await downloadFile(
this.fileInfo.id, this.fileInfo.id,
this.keychain, this.dlToken,
p => { p => {
this.progress = [p, this.fileInfo.size]; this.progress = [p, this.fileInfo.size];
this.emit('progress'); this.emit('progress');
@ -139,6 +155,7 @@ export default class FileReceiver extends Nanobus {
url: this.fileInfo.url, url: this.fileInfo.url,
size: this.fileInfo.size, size: this.fileInfo.size,
nonce: this.keychain.nonce, nonce: this.keychain.nonce,
dlToken: this.dlToken,
noSave noSave
}; };
await this.sendMessageToSw(info); await this.sendMessageToSw(info);
@ -204,11 +221,19 @@ export default class FileReceiver extends Nanobus {
} }
} }
download(options) { async download({ stream, storage, noSave }) {
if (options.stream) { this.dlToken = storage.getDownloadToken(this.id);
return this.downloadStream(options.noSave); if (!this.dlToken) {
this.dlToken = await getDownloadToken(this.id, this.keychain);
storage.setDownloadToken(this.id, this.dlToken);
} }
return this.downloadBlob(options.noSave); if (stream) {
await this.downloadStream(noSave);
} else {
await this.downloadBlob(noSave);
}
await downloadDone(this.id, this.dlToken);
storage.setDownloadToken(this.id);
} }
} }

View File

@ -1,5 +1,5 @@
/* global AUTH_CONFIG */ /* global AUTH_CONFIG */
import { arrayToB64, b64ToArray } from './utils'; import { arrayToB64, b64ToArray, concat } from './utils';
const encoder = new TextEncoder(); const encoder = new TextEncoder();
const decoder = new TextDecoder(); const decoder = new TextDecoder();
@ -23,13 +23,6 @@ function getOtherInfo(enc) {
return result; return result;
} }
function concat(b1, b2) {
const result = new Uint8Array(b1.length + b2.length);
result.set(b1, 0);
result.set(b2, b1.length);
return result;
}
async function concatKdf(key, enc) { async function concatKdf(key, enc) {
if (key.length !== 32) { if (key.length !== 32) {
throw new Error('unsupported key length'); throw new Error('unsupported key length');

View File

@ -55,6 +55,12 @@ body {
@apply bg-blue-70; @apply bg-blue-70;
} }
.btn:disabled {
@apply bg-grey-transparent;
cursor: not-allowed;
}
.checkbox { .checkbox {
@apply leading-normal; @apply leading-normal;
@apply select-none; @apply select-none;
@ -138,21 +144,6 @@ footer li:hover {
text-decoration: underline; text-decoration: underline;
} }
.feedback-link {
background-color: #000;
background-image: url('../assets/feedback.svg');
background-position: 0.125rem 0.25rem;
background-repeat: no-repeat;
background-size: 1.125rem;
color: #fff;
display: block;
font-size: 0.75rem;
line-height: 0.75rem;
padding: 0.375rem 0.375rem 0.375rem 1.25rem;
text-indent: 0.125rem;
white-space: nowrap;
}
.link-blue { .link-blue {
@apply text-blue-60; @apply text-blue-60;
} }
@ -175,6 +166,10 @@ footer li:hover {
height: unset; height: unset;
} }
.dl-bg {
filter: grayscale(1) opacity(0.15);
}
.main { .main {
display: flex; display: flex;
position: relative; position: relative;
@ -296,7 +291,7 @@ select {
@apply m-auto; @apply m-auto;
@apply py-8; @apply py-8;
min-height: 36rem; min-height: 42rem;
max-height: 42rem; max-height: 42rem;
width: calc(100% - 3rem); width: calc(100% - 3rem);
} }
@ -322,6 +317,10 @@ select {
@apply bg-blue-50; @apply bg-blue-50;
} }
.btn:disabled {
@apply bg-grey-80;
}
.link-blue { .link-blue {
@apply text-blue-40; @apply text-blue-40;
} }
@ -392,48 +391,3 @@ select {
.signin:hover:active { .signin:hover:active {
transform: scale(0.9375); transform: scale(0.9375);
} }
/* begin signin button color experiment */
.white-blue {
@apply border-blue-60;
@apply border-2;
@apply text-blue-60;
}
.white-blue:hover,
.white-blue:focus {
@apply bg-blue-60;
@apply text-white;
}
.blue {
@apply bg-blue-60;
@apply text-white;
}
.white-violet {
@apply border-violet;
@apply border-2;
@apply text-violet;
}
.white-violet:hover,
.white-violet:focus {
@apply bg-violet;
@apply text-white;
background-image: var(--violet-gradient);
}
.violet {
@apply bg-violet;
@apply text-white;
}
.violet:hover,
.violet:focus {
background-image: var(--violet-gradient);
}
/* end signin button color experiment */

View File

@ -13,7 +13,11 @@ module.exports = function(app = choo({ hash: true })) {
app.route('/oauth', function(state, emit) { app.route('/oauth', function(state, emit) {
emit('authenticate', state.query.code, state.query.state); emit('authenticate', state.query.code, state.query.state);
}); });
app.route('/login', body(require('./ui/home'))); app.route('/login', function(state, emit) {
emit('replaceState', '/');
setTimeout(() => emit('render'));
});
app.route('/report', body(require('./ui/report')));
app.route('*', body(require('./ui/notFound'))); app.route('*', body(require('./ui/notFound')));
return app; return app;
}; };

View File

@ -9,7 +9,7 @@ import contentDisposition from 'content-disposition';
let noSave = false; let noSave = false;
const map = new Map(); const map = new Map();
const IMAGES = /.*\.(png|svg|jpg)$/; const IMAGES = /.*\.(png|svg|jpg)$/;
const VERSIONED_ASSET = /\.[A-Fa-f0-9]{8}\.(js|css|png|svg|jpg)$/; const VERSIONED_ASSET = /\.[A-Fa-f0-9]{8}\.(js|css|png|svg|jpg)(#\w+)?$/;
const DOWNLOAD_URL = /\/api\/download\/([A-Fa-f0-9]{4,})/; const DOWNLOAD_URL = /\/api\/download\/([A-Fa-f0-9]{4,})/;
const FONT = /\.woff2?$/; const FONT = /\.woff2?$/;
@ -34,7 +34,7 @@ async function decryptStream(id) {
keychain.setPassword(file.password, file.url); keychain.setPassword(file.password, file.url);
} }
file.download = downloadStream(id, keychain); file.download = downloadStream(id, file.dlToken);
const body = await file.download.result; const body = await file.download.result;
@ -146,6 +146,7 @@ self.onmessage = event => {
type: event.data.type, type: event.data.type,
manifest: event.data.manifest, manifest: event.data.manifest,
size: event.data.size, size: event.data.size,
dlToken: event.data.dlToken,
progress: 0 progress: 0
}; };
map.set(event.data.id, info); map.set(event.data.id, info);

View File

@ -35,6 +35,7 @@ class Storage {
this.engine = new Mem(); this.engine = new Mem();
} }
this._files = this.loadFiles(); this._files = this.loadFiles();
this.pruneTokens();
} }
loadFiles() { loadFiles() {
@ -180,6 +181,48 @@ class Storage {
downloadCount downloadCount
}; };
} }
setDownloadToken(id, token) {
let otherTokens = {};
try {
otherTokens = JSON.parse(this.get('dlTokens'));
} catch (e) {
//
}
if (token) {
const record = { token, ts: Date.now() };
this.set('dlTokens', JSON.stringify({ ...otherTokens, [id]: record }));
} else {
this.set('dlTokens', JSON.stringify({ ...otherTokens, [id]: undefined }));
}
}
getDownloadToken(id) {
try {
return JSON.parse(this.get('dlTokens'))[id].token;
} catch (e) {
return undefined;
}
}
pruneTokens() {
try {
const now = Date.now();
const tokens = JSON.parse(this.get('dlTokens'));
const keep = {};
for (const id of Object.keys(tokens)) {
const t = tokens[id];
if (t.ts > now - 7 * 86400 * 1000) {
keep[id] = t;
}
}
if (Object.keys(keep).length < Object.keys(tokens).length) {
this.set('dlTokens', JSON.stringify(keep));
}
} catch (e) {
console.error(e);
}
}
} }
export default new Storage(); export default new Storage();

View File

@ -54,12 +54,17 @@ class Account extends Component {
createElement() { createElement() {
if (!this.enabled) { if (!this.enabled) {
return html` return html`
<div></div> <send-account></send-account>
`; `;
} }
const user = this.state.user; const user = this.state.user;
const translate = this.state.translate; const translate = this.state.translate;
this.setLocal(); this.setLocal();
if (user.loginRequired && !this.local.loggedIn) {
return html`
<send-account></send-account>
`;
}
if (!this.local.loggedIn) { if (!this.local.loggedIn) {
return html` return html`
<send-account> <send-account>

View File

@ -30,6 +30,12 @@ function password(state) {
return html` return html`
<div class="mb-2 px-1"> <div class="mb-2 px-1">
<input
id="autocomplete-decoy"
class="hidden"
type="password"
value="lol"
/>
<div class="checkbox inline-block mr-3"> <div class="checkbox inline-block mr-3">
<input <input
id="add-password" id="add-password"
@ -482,6 +488,11 @@ module.exports.empty = function(state, emit) {
> >
${state.translate('addFilesButton')} ${state.translate('addFilesButton')}
</label> </label>
<p
class="font-normal text-sm text-grey-50 dark:text-grey-40 my-6 mx-12 text-center max-w-sm leading-loose"
>
${state.translate('trustWarningMessage')}
</p>
${upsell} ${upsell}
</send-upload-area> </send-upload-area>
`; `;
@ -517,13 +528,27 @@ module.exports.preview = function(state, emit) {
`; `;
return html` return html`
<send-archive <send-archive
class="flex flex-col max-h-full bg-white p-4 w-full md:w-128 dark:bg-grey-90" class="flex flex-col max-h-full bg-white w-full dark:bg-grey-90"
> >
<div class="border rounded py-3 px-6 dark:border-grey-70"> <div class="border rounded py-3 px-4 dark:border-grey-70">
${archiveInfo(archive)} ${details} ${archiveInfo(archive)} ${details}
</div> </div>
<div class="checkbox inline-block mt-6 mx-auto">
<input
id="trust-download"
type="checkbox"
autocomplete="off"
onchange="${toggleDownloadEnabled}"
/>
<label for="trust-download">
${state.translate('downloadTrustCheckbox', {
count: archive.manifest.files.length
})}
</label>
</div>
<button <button
id="download-btn" id="download-btn"
disabled
class="btn rounded-lg mt-4 w-full flex-shrink-0 focus:outline" class="btn rounded-lg mt-4 w-full flex-shrink-0 focus:outline"
title="${state.translate('downloadButtonLabel')}" title="${state.translate('downloadButtonLabel')}"
onclick=${download} onclick=${download}
@ -533,6 +558,13 @@ module.exports.preview = function(state, emit) {
</send-archive> </send-archive>
`; `;
function toggleDownloadEnabled(event) {
event.stopPropagation();
const checked = event.target.checked;
const btn = document.getElementById('download-btn');
btn.disabled = !checked;
}
function download(event) { function download(event) {
event.preventDefault(); event.preventDefault();
event.target.disabled = true; event.target.disabled = true;

View File

@ -10,11 +10,9 @@ module.exports = function(name, url) {
<h1 class="text-3xl font-bold my-4"> <h1 class="text-3xl font-bold my-4">
${state.translate('notifyUploadEncryptDone')} ${state.translate('notifyUploadEncryptDone')}
</h1> </h1>
<p <p class="font-normal leading-normal text-grey-80 dark:text-grey-40">
class="font-normal leading-normal text-grey-80 word-break-all dark:text-grey-40"
>
${state.translate('copyLinkDescription')} <br /> ${state.translate('copyLinkDescription')} <br />
${name} <span class="word-break-all">${name}</span>
</p> </p>
<input <input
type="text" type="text"

View File

@ -1,5 +1,6 @@
/* global downloadMetadata */ /* global downloadMetadata */
const html = require('choo/html'); const html = require('choo/html');
const assets = require('../../common/assets');
const archiveTile = require('./archiveTile'); const archiveTile = require('./archiveTile');
const modal = require('./modal'); const modal = require('./modal');
const noStreams = require('./noStreams'); const noStreams = require('./noStreams');
@ -31,22 +32,51 @@ function downloading(state, emit) {
} }
function preview(state, emit) { function preview(state, emit) {
if (state.fileInfo.flagged) {
return html`
<div
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
>
<h1 class="text-xl font-bold">${state.translate('downloadFlagged')}</h1>
</div>
`;
}
if (!state.capabilities.streamDownload && state.fileInfo.size > BIG_SIZE) { if (!state.capabilities.streamDownload && state.fileInfo.size > BIG_SIZE) {
return noStreams(state, emit); return noStreams(state, emit);
} }
return html` return html`
<div <div class="w-full md:flex md:flex-row items-stretch md:flex-1">
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center" <div
> class="px-2 w-full md:px-0 flex-half md:flex md:flex-col mt-12 md:pr-8 pb-4"
<h1 class="text-3xl font-bold mb-4">
${state.translate('downloadTitle')}
</h1>
<p
class="w-full text-grey-80 text-center leading-normal dark:text-grey-40"
> >
${state.translate('downloadDescription')} <h1 class="text-3xl font-bold mb-4 text-center md:text-left">
</p> ${state.translate('downloadTitle')}
${archiveTile.preview(state, emit)} </h1>
<p
class="text-grey-80 leading-normal dark:text-grey-40 mb-4 text-center md:text-left"
>
${state.translate('downloadDescription')}
</p>
<p
class="text-grey-80 leading-normal dark:text-grey-40 font-semibold text-center md:mb-8 md:text-left"
>
${state.translate('downloadConfirmDescription')}
</p>
<img
class="hidden md:block dl-bg w-full"
src="${assets.get('intro.svg')}"
/>
</div>
<div
class="w-full flex-half flex-half md:flex md:flex-col md:justify-center"
>
${archiveTile.preview(state, emit)}
<a href="/report" class="link-blue mt-4 text-center block"
>${state.translate('reportFile', {
count: state.fileInfo.manifest.files.length
})}</a
>
</div>
</div> </div>
`; `;
} }
@ -55,9 +85,17 @@ module.exports = function(state, emit) {
let content = ''; let content = '';
if (!state.fileInfo) { if (!state.fileInfo) {
state.fileInfo = createFileInfo(state); state.fileInfo = createFileInfo(state);
if (!state.fileInfo.nonce) { if (downloadMetadata.status === 404) {
return notFound(state); return notFound(state);
} }
if (!state.fileInfo.nonce) {
// coming from something like the browser back button
return location.reload();
}
}
if (state.fileInfo.dead) {
return notFound(state);
} }
if (!state.transfer && !state.fileInfo.requiresPassword) { if (!state.transfer && !state.fileInfo.requiresPassword) {
@ -83,7 +121,7 @@ module.exports = function(state, emit) {
<main class="main"> <main class="main">
${state.modal && modal(state, emit)} ${state.modal && modal(state, emit)}
<section <section
class="relative h-full w-full p-6 md:p-8 md:rounded-xl md:shadow-big" class="relative overflow-hidden h-full w-full p-6 md:p-8 md:rounded-xl md:shadow-big md:flex md:flex-col"
> >
${content} ${content}
</section> </section>

View File

@ -2,6 +2,7 @@ const html = require('choo/html');
const assets = require('../../common/assets'); const assets = require('../../common/assets');
module.exports = function(state) { module.exports = function(state) {
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
return html` return html`
<div <div
id="download-complete" id="download-complete"
@ -10,15 +11,23 @@ module.exports = function(state) {
<h1 class="text-center text-3xl font-bold my-2"> <h1 class="text-center text-3xl font-bold my-2">
${state.translate('downloadFinish')} ${state.translate('downloadFinish')}
</h1> </h1>
<img src="${assets.get('completed.svg')}" class="my-12 h-48" /> <img src="${assets.get('completed.svg')}" class="my-8 h-48" />
<p class="text-grey-80 leading-normal dark:text-grey-40"> <p
class="text-grey-80 leading-normal dark:text-grey-40 ${state.user
.loggedIn
? 'hidden'
: ''}"
>
${state.translate('trySendDescription')} ${state.translate('trySendDescription')}
</p> </p>
<p class="my-5"> <p class="my-5">
<a href="/" class="btn rounded-lg flex items-center mt-4" role="button" <a href="/" class="btn rounded-lg flex items-center mt-4" role="button"
>${state.translate('sendYourFilesLink')}</a >${state.translate(btnText)}</a
> >
</p> </p>
<p class="">
<a href="/report" class="link-blue">${state.translate('reportFile')}</a>
</p>
</div> </div>
`; `;
}; };

58
app/ui/downloadDialog.js Normal file
View File

@ -0,0 +1,58 @@
const html = require('choo/html');
module.exports = function() {
return function(state, emit, close) {
const archive = state.fileInfo;
return html`
<send-download-dialog
class="flex flex-col w-full max-w-sm h-full mx-auto items-center justify-center"
>
<h1 class="text-3xl font-bold mb-4">
${state.translate('downloadConfirmTitle')}
</h1>
<p
class="w-full text-grey-80 text-center leading-normal dark:text-grey-40 mb-8"
>
${state.translate('downloadConfirmDescription')}
</p>
<div class="checkbox inline-block mr-3 mb-8">
<input
id="trust-download"
type="checkbox"
autocomplete="off"
onchange="${toggleDownloadEnabled}"
/>
<label for="trust-download">
${state.translate('downloadTrustCheckbox')}
</label>
</div>
<button
id="download-btn"
disabled
class="btn rounded-lg w-full flex-shrink-0"
onclick="${download}"
title="${state.translate('downloadButtonLabel')}"
>
${state.translate('downloadButtonLabel')}
</button>
<a href="/report" class="link-blue mt-8"
>${state.translate('reportFile')}</a
>
</send-download-dialog>
`;
function toggleDownloadEnabled(event) {
event.stopPropagation();
const checked = event.target.checked;
const btn = document.getElementById('download-btn');
btn.disabled = !checked;
}
function download(event) {
event.preventDefault();
close();
event.target.disabled = true;
emit('download', archive);
}
};
};

View File

@ -21,6 +21,12 @@ module.exports = function(state, emit) {
onsubmit="${checkPassword}" onsubmit="${checkPassword}"
data-no-csrf data-no-csrf
> >
<input
id="autocomplete-decoy"
class="hidden"
type="password"
value="lol"
/>
<input <input
id="password-input" id="password-input"
class="w-full border-l border-t border-b rounded-l-lg rounded-r-none ${invalid class="w-full border-l border-t border-b rounded-l-lg rounded-r-none ${invalid
@ -63,8 +69,13 @@ module.exports = function(state, emit) {
const input = document.getElementById('password-input'); const input = document.getElementById('password-input');
const btn = document.getElementById('password-btn'); const btn = document.getElementById('password-btn');
label.classList.add('invisible'); label.classList.add('invisible');
input.classList.remove('border-red'); input.classList.remove('border-red', 'dark:border-red-40');
btn.classList.remove('bg-red', 'hover:bg-red', 'focus:bg-red'); btn.classList.remove(
'bg-red',
'hover:bg-red',
'focus:bg-red',
'dark:bg-red-40'
);
} }
function checkPassword(event) { function checkPassword(event) {

View File

@ -3,6 +3,7 @@ const assets = require('../../common/assets');
const modal = require('./modal'); const modal = require('./modal');
module.exports = function(state, emit) { module.exports = function(state, emit) {
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
return html` return html`
<main class="main"> <main class="main">
${state.modal && modal(state, emit)} ${state.modal && modal(state, emit)}
@ -13,12 +14,17 @@ module.exports = function(state, emit) {
${state.translate('errorPageHeader')} ${state.translate('errorPageHeader')}
</h1> </h1>
<img class="my-12 h-48" src="${assets.get('error.svg')}" /> <img class="my-12 h-48" src="${assets.get('error.svg')}" />
<p class="max-w-md text-center text-grey-80 leading-normal"> <p
class="max-w-md text-center text-grey-80 leading-normal dark:text-grey-40 ${state
.user.loggedIn
? 'hidden'
: ''}"
>
${state.translate('trySendDescription')} ${state.translate('trySendDescription')}
</p> </p>
<p class="my-5"> <p class="my-5">
<a href="/" class="btn rounded-lg flex items-center" role="button" <a href="/" class="btn rounded-lg flex items-center" role="button"
>${state.translate('sendYourFilesLink')}</a >${state.translate(btnText)}</a
> >
</p> </p>
</section> </section>

View File

@ -1,7 +1,5 @@
const html = require('choo/html'); const html = require('choo/html');
const Component = require('choo/component'); const Component = require('choo/component');
const version = require('../../package.json').version;
const { browserName } = require('../utils');
class Footer extends Component { class Footer extends Component {
constructor(name, state) { constructor(name, state) {
@ -15,8 +13,6 @@ class Footer extends Component {
createElement() { createElement() {
const translate = this.state.translate; const translate = this.state.translate;
const browser = browserName();
const feedbackUrl = `https://qsurvey.mozilla.com/s3/Firefox-Send-Product-Feedback?ver=${version}&browser=${browser}`;
return html` return html`
<footer <footer
class="flex flex-col md:flex-row items-start w-full flex-none self-start p-6 md:p-8 font-medium text-xs text-grey-60 dark:text-grey-40 md:items-center justify-between" class="flex flex-col md:flex-row items-start w-full flex-none self-start p-6 md:p-8 font-medium text-xs text-grey-60 dark:text-grey-40 md:items-center justify-between"
@ -43,17 +39,6 @@ class Footer extends Component {
<li class="m-2"> <li class="m-2">
<a href="https://github.com/mozilla/send">GitHub </a> <a href="https://github.com/mozilla/send">GitHub </a>
</li> </li>
<li class="m-2">
<a
href="${feedbackUrl}"
rel="noreferrer noopener"
class="feedback-link"
alt="Feedback"
target="_blank"
>
${translate('siteFeedback')}
</a>
</li>
</ul> </ul>
</footer> </footer>
`; `;

View File

@ -33,7 +33,7 @@ class Header extends Component {
alt="${this.state.translate('title')}" alt="${this.state.translate('title')}"
src="${assets.get('icon.svg')}" src="${assets.get('icon.svg')}"
/> />
<svg class="w-48 md:w-64"> <svg viewBox="66 0 340 64" class="w-48 md:w-64">
<use xlink:href="${assets.get('wordmark.svg')}#logo" /> <use xlink:href="${assets.get('wordmark.svg')}#logo" />
</svg> </svg>
</a> </a>

View File

@ -5,6 +5,9 @@ const modal = require('./modal');
const intro = require('./intro'); const intro = require('./intro');
module.exports = function(state, emit) { module.exports = function(state, emit) {
if (state.user.loginRequired && !state.user.loggedIn) {
emit('signup-cta', 'required');
}
const archives = state.storage.files const archives = state.storage.files
.filter(archive => !archive.expired) .filter(archive => !archive.expired)
.map(archive => archiveTile(state, emit, archive)); .map(archive => archiveTile(state, emit, archive));

View File

@ -2,6 +2,7 @@ const html = require('choo/html');
const modal = require('./modal'); const modal = require('./modal');
module.exports = function(state, emit) { module.exports = function(state, emit) {
state.modal = null;
return html` return html`
<main class="main"> <main class="main">
${state.modal && modal(state, emit)} ${state.modal && modal(state, emit)}

View File

@ -6,7 +6,7 @@ module.exports = function(state, emit) {
class="absolute inset-0 flex items-center justify-center overflow-hidden z-40 bg-white md:rounded-xl md:my-8 dark:bg-grey-90" class="absolute inset-0 flex items-center justify-center overflow-hidden z-40 bg-white md:rounded-xl md:my-8 dark:bg-grey-90"
> >
<div <div
class="h-full w-full max-h-screen absolute top-0 flex items-center justify-center" class="h-full w-full max-h-screen absolute top-0 flex justify-center md:items-center"
> >
<div class="w-full"> <div class="w-full">
${state.modal(state, emit, close)} ${state.modal(state, emit, close)}

View File

@ -19,9 +19,9 @@ module.exports = function(state, emit) {
<form class="md:w-128" onsubmit=${submit}> <form class="md:w-128" onsubmit=${submit}>
<fieldset class="border rounded p-4 my-4" onchange=${optionChanged}> <fieldset class="border rounded p-4 my-4" onchange=${optionChanged}>
<div class="flex items-center mb-2"> <div class="flex items-center mb-2">
<img class="mr-3 flex-shrink-0" src="${assets.get( <svg class="h-8 w-6 mr-3 flex-shrink-0 text-white dark:text-grey-90">
'blue_file.svg' <use xlink:href="${assets.get('blue_file.svg')}#icon"/>
)}"/> </svg>
<p class="flex-grow"> <p class="flex-grow">
<h1 class="text-base font-medium word-break-all">${ <h1 class="text-base font-medium word-break-all">${
archive.name archive.name
@ -55,6 +55,11 @@ module.exports = function(state, emit) {
value="${state.translate('copyLinkButton')}" value="${state.translate('copyLinkButton')}"
title="${state.translate('copyLinkButton')}" title="${state.translate('copyLinkButton')}"
type="submit" /> type="submit" />
<p
class="text-grey-80 leading-normal dark:text-grey-40 font-semibold text-center md:my-8 md:text-left"
>
${state.translate('downloadConfirmDescription')}
</p>
</form> </form>
</div> </div>
`; `;
@ -64,6 +69,7 @@ module.exports = function(state, emit) {
const choice = event.target.value; const choice = event.target.value;
const button = event.currentTarget.nextElementSibling; const button = event.currentTarget.nextElementSibling;
let title = button.title; let title = button.title;
console.error(choice, title);
switch (choice) { switch (choice) {
case 'copy': case 'copy':
title = state.translate('copyLinkButton'); title = state.translate('copyLinkButton');

View File

@ -3,6 +3,7 @@ const assets = require('../../common/assets');
const modal = require('./modal'); const modal = require('./modal');
module.exports = function(state, emit) { module.exports = function(state, emit) {
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
return html` return html`
<main class="main"> <main class="main">
${state.modal && modal(state, emit)} ${state.modal && modal(state, emit)}
@ -13,12 +14,22 @@ module.exports = function(state, emit) {
${state.translate('expiredTitle')} ${state.translate('expiredTitle')}
</h1> </h1>
<img src="${assets.get('notFound.svg')}" class="my-12" /> <img src="${assets.get('notFound.svg')}" class="my-12" />
<p class="max-w-md text-center text-grey-80 leading-normal"> <p
class="max-w-md text-center text-grey-80 leading-normal dark:text-grey-40 ${state
.user.loggedIn
? 'hidden'
: ''}"
>
${state.translate('trySendDescription')} ${state.translate('trySendDescription')}
</p> </p>
<p class="my-5"> <p class="my-5">
<a href="/" class="btn rounded-lg flex items-center" role="button" <a href="/" class="btn rounded-lg flex items-center" role="button"
>${state.translate('sendYourFilesLink')}</a >${state.translate(btnText)}</a
>
</p>
<p class="">
<a href="/report" class="link-blue"
>${state.translate('reportFile')}</a
> >
</p> </p>
</section> </section>

139
app/ui/report.js Normal file
View File

@ -0,0 +1,139 @@
const html = require('choo/html');
const raw = require('choo/html/raw');
const assets = require('../../common/assets');
const REPORTABLES = ['Malware', 'Pii', 'Abuse'];
module.exports = function(state, emit) {
let submitting = false;
const file = state.fileInfo;
if (!file) {
return html`
<main class="main">
<section
class="flex flex-col items-center justify-center h-full w-full p-6 md:p-8 overflow-hidden md:rounded-xl md:shadow-big"
>
<p class="text-xl text-center mb-4 leading-normal">
${state.translate('reportUnknownDescription')}
</p>
<p class="text-center">
${raw(
replaceLinks(state.translate('reportReasonCopyright'), [
'https://www.mozilla.org/about/legal/report-infringement/'
])
)}
</p>
</section>
</main>
`;
}
if (file.reported) {
return html`
<main class="main">
<section
class="flex flex-col items-center justify-center h-full w-full p-6 md:p-8 overflow-hidden md:rounded-xl md:shadow-big"
>
<h1 class="text-center text-3xl font-bold my-2">
${state.translate('reportedTitle')}
</h1>
<p class="max-w-md text-center leading-normal">
${state.translate('reportedDescription')}
</p>
<img src="${assets.get('notFound.svg')}" class="my-12" />
<p class="my-5">
<a href="/" class="btn rounded-lg flex items-center" role="button"
>${state.translate('okButton')}</a
>
</p>
</section>
</main>
`;
}
return html`
<main class="main">
<section
class="relative h-full w-full p-6 md:p-8 md:rounded-xl md:shadow-big"
>
<div
class="flex flex-col w-full max-w-sm h-full mx-auto items-center justify-center"
>
<h1 class="text-2xl font-bold mb-4">
${state.translate('reportFile')}
</h1>
<p class="mb-4 leading-normal font-semibold">
${state.translate('reportDescription')}
</p>
<form onsubmit="${report}" data-no-csrf>
<fieldset onchange="${optionChanged}">
<ul
class="list-none p-4 mb-6 rounded-sm bg-grey-10 dark:bg-black"
>
${REPORTABLES.map(
reportable =>
html`
<li class="mb-2 leading-normal">
<label
for="${reportable.toLowerCase()}"
class="flex items-center"
>
<input
type="radio"
name="reason"
id="${reportable.toLowerCase()}"
value="${reportable.toLowerCase()}"
class="mr-2 my-2 w-4 h-4 flex-none"
/>
${state.translate(`reportReason${reportable}`)}
</label>
</li>
`
)}
<li class="mt-4 mb-2 leading-normal">
${raw(
replaceLinks(state.translate('reportReasonCopyright'), [
'https://www.mozilla.org/about/legal/report-infringement/'
])
)}
</li>
</ul>
</fieldset>
<input
type="submit"
disabled
class="btn rounded-lg w-full flex-shrink-0 focus:outline"
title="${state.translate('reportButton')}"
value="${state.translate('reportButton')}"
/>
</form>
</div>
</section>
</main>
`;
function optionChanged(event) {
event.stopPropagation();
const button = event.currentTarget.nextElementSibling;
button.disabled = false;
}
function report(event) {
event.stopPropagation();
event.preventDefault();
if (submitting) {
return;
}
submitting = true;
state.fileInfo.reported = true;
const form = event.target;
emit('report', { reason: form.reason.value });
}
function replaceLinks(str, urls) {
let i = 0;
const s = str.replace(
/<a>([^<]+)<\/a>/g,
(m, v) => `<a class="text-blue" href="${urls[i++]}">${v}</a>`
);
return `<p>${s}</p>`;
}
};

View File

@ -9,11 +9,9 @@ module.exports = function(name, url) {
<h1 class="text-3xl font-bold my-4"> <h1 class="text-3xl font-bold my-4">
${state.translate('notifyUploadEncryptDone')} ${state.translate('notifyUploadEncryptDone')}
</h1> </h1>
<p <p class="font-normal leading-normal text-grey-80 dark:text-grey-40">
class="font-normal leading-normal text-grey-80 word-break-all dark:text-grey-40"
>
${state.translate('shareLinkDescription')}<br /> ${state.translate('shareLinkDescription')}<br />
${name} <span class="word-break-all">${name}</span>
</p> </p>
<input <input
type="text" type="text"

View File

@ -1,22 +1,19 @@
const html = require('choo/html'); const html = require('choo/html');
const assets = require('../../common/assets'); const assets = require('../../common/assets');
const { bytes, platform } = require('../utils'); const { bytes } = require('../utils');
const { canceledSignup, submittedSignup } = require('../metrics'); const { canceledSignup, submittedSignup } = require('../metrics');
module.exports = function(trigger) { module.exports = function(trigger) {
return function(state, emit, close) { return function(state, emit, close) {
const DAYS = Math.floor(state.LIMITS.MAX_EXPIRE_SECONDS / 86400); const DAYS = Math.floor(state.LIMITS.MAX_EXPIRE_SECONDS / 86400);
const hidden = platform() === 'android' ? 'hidden' : '';
let submitting = false; let submitting = false;
return html` return html`
<send-signup-dialog <send-signup-dialog
class="flex flex-col lg:flex-row justify-center px-8 md:px-24 w-full h-full" class="flex flex-col justify-center my-16 md:my-0 px-8 md:px-24 w-full h-full"
> >
<img src="${assets.get('master-logo.svg')}" class="h-16 mt-1 mb-4" /> <img src="${assets.get('master-logo.svg')}" class="h-16 mt-1 mb-4" />
<section <section class="flex flex-col flex-shrink-0 self-center">
class="flex flex-col flex-shrink-0 self-center lg:mx-6 lg:max-w-xs" <h1 class="text-3xl font-bold text-center">
>
<h1 class="text-3xl font-bold text-center lg:text-left">
${state.translate('accountBenefitTitle')} ${state.translate('accountBenefitTitle')}
</h1> </h1>
<ul <ul
@ -32,17 +29,14 @@ module.exports = function(trigger) {
${state.translate('accountBenefitTimeLimit', { count: DAYS })} ${state.translate('accountBenefitTimeLimit', { count: DAYS })}
</li> </li>
<li>${state.translate('accountBenefitSync')}</li> <li>${state.translate('accountBenefitSync')}</li>
<li>${state.translate('accountBenefitMoz')}</li>
</ul> </ul>
</section> </section>
<section <section class="flex flex-col flex-grow m-4 md:self-center md:w-128">
class="flex flex-col flex-grow m-4 md:self-center md:w-128 lg:max-w-xs"
>
<form onsubmit=${submitEmail} data-no-csrf> <form onsubmit=${submitEmail} data-no-csrf>
<input <input
id="email-input" id="email-input"
type="email" type="email"
class="${hidden} border rounded-lg w-full px-2 py-1 h-12 mb-3 text-lg text-grey-70 leading-loose dark:bg-grey-80 dark:text-white" class="hidden border rounded-lg w-full px-2 py-1 h-12 mb-3 text-lg text-grey-70 leading-loose dark:bg-grey-80 dark:text-white"
placeholder=${state.translate('emailPlaceholder')} placeholder=${state.translate('emailPlaceholder')}
/> />
<input <input
@ -53,13 +47,17 @@ module.exports = function(trigger) {
type="submit" type="submit"
/> />
</form> </form>
<button ${state.user.loginRequired
class="my-3 link-blue font-medium" ? ''
title="${state.translate('deletePopupCancel')}" : html`
onclick=${cancel} <button
> class="my-3 link-blue font-medium"
${state.translate('deletePopupCancel')} title="${state.translate('deletePopupCancel')}"
</button> onclick=${cancel}
>
${state.translate('deletePopupCancel')}
</button>
`}
</section> </section>
</send-signup-dialog> </send-signup-dialog>
`; `;

View File

@ -76,6 +76,10 @@ export default class User {
return this.info.access_token; return this.info.access_token;
} }
get refreshToken() {
return this.info.refresh_token;
}
get maxSize() { get maxSize() {
return this.loggedIn return this.loggedIn
? this.limits.MAX_FILE_SIZE ? this.limits.MAX_FILE_SIZE
@ -94,6 +98,10 @@ export default class User {
: this.limits.ANON.MAX_DOWNLOADS; : this.limits.ANON.MAX_DOWNLOADS;
} }
get loginRequired() {
return this.authConfig && this.authConfig.fxa_required;
}
async metricId() { async metricId() {
return this.loggedIn ? hashId(this.info.uid) : undefined; return this.loggedIn ? hashId(this.info.uid) : undefined;
} }
@ -135,6 +143,7 @@ export default class User {
const code_challenge = await preparePkce(this.storage); const code_challenge = await preparePkce(this.storage);
const options = { const options = {
action: 'email', action: 'email',
access_type: 'offline',
client_id: this.authConfig.client_id, client_id: this.authConfig.client_id,
code_challenge, code_challenge,
code_challenge_method: 'S256', code_challenge_method: 'S256',
@ -192,12 +201,69 @@ export default class User {
}); });
const userInfo = await infoResponse.json(); const userInfo = await infoResponse.json();
userInfo.access_token = auth.access_token; userInfo.access_token = auth.access_token;
userInfo.refresh_token = auth.refresh_token;
userInfo.fileListKey = await getFileListKey(this.storage, auth.keys_jwe); userInfo.fileListKey = await getFileListKey(this.storage, auth.keys_jwe);
this.info = userInfo; this.info = userInfo;
this.storage.remove('pkceVerifier'); this.storage.remove('pkceVerifier');
} }
logout() { async refresh() {
if (!this.refreshToken) {
return false;
}
try {
const tokenResponse = await fetch(this.authConfig.token_endpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
client_id: this.authConfig.client_id,
grant_type: 'refresh_token',
refresh_token: this.refreshToken
})
});
if (tokenResponse.ok) {
const auth = await tokenResponse.json();
const info = { ...this.info, access_token: auth.access_token };
this.info = info;
return true;
}
} catch (e) {
console.error(e);
}
await this.logout();
return false;
}
async logout() {
try {
if (this.refreshToken) {
await fetch(this.authConfig.revocation_endpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
refresh_token: this.refreshToken
})
});
}
if (this.bearerToken) {
await fetch(this.authConfig.revocation_endpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
token: this.bearerToken
})
});
}
} catch (e) {
console.error(e);
// oh well, we tried
}
this.storage.clearLocalFiles(); this.storage.clearLocalFiles();
this.info = {}; this.info = {};
} }
@ -211,6 +277,14 @@ export default class User {
const key = b64ToArray(this.info.fileListKey); const key = b64ToArray(this.info.fileListKey);
const sha = await crypto.subtle.digest('SHA-256', key); const sha = await crypto.subtle.digest('SHA-256', key);
const kid = arrayToB64(new Uint8Array(sha)).substring(0, 16); const kid = arrayToB64(new Uint8Array(sha)).substring(0, 16);
const retry = async () => {
const refreshed = await this.refresh();
if (refreshed) {
return await this.syncFileList();
} else {
return { incoming: true };
}
};
try { try {
const encrypted = await getFileList(this.bearerToken, kid); const encrypted = await getFileList(this.bearerToken, kid);
const decrypted = await streamToArrayBuffer( const decrypted = await streamToArrayBuffer(
@ -219,8 +293,7 @@ export default class User {
list = JSON.parse(textDecoder.decode(decrypted)); list = JSON.parse(textDecoder.decode(decrypted));
} catch (e) { } catch (e) {
if (e.message === '401') { if (e.message === '401') {
this.logout(); return retry(e);
return { incoming: true };
} }
} }
changes = await this.storage.merge(list); changes = await this.storage.merge(list);
@ -236,7 +309,9 @@ export default class User {
); );
await setFileList(this.bearerToken, kid, encrypted); await setFileList(this.bearerToken, kid, encrypted);
} catch (e) { } catch (e) {
// if (e.message === '401') {
return retry(e);
}
} }
return changes; return changes;
} }

View File

@ -142,12 +142,16 @@ function openLinksInNewTab(links, should = true) {
function browserName() { function browserName() {
try { try {
// order of these matters
if (/firefox/i.test(navigator.userAgent)) { if (/firefox/i.test(navigator.userAgent)) {
return 'firefox'; return 'firefox';
} }
if (/edge/i.test(navigator.userAgent)) { if (/edge/i.test(navigator.userAgent)) {
return 'edge'; return 'edge';
} }
if (/edg/i.test(navigator.userAgent)) {
return 'edgium';
}
if (/trident/i.test(navigator.userAgent)) { if (/trident/i.test(navigator.userAgent)) {
return 'ie'; return 'ie';
} }
@ -272,7 +276,15 @@ function setTranslate(t) {
translate = t; translate = t;
} }
function concat(b1, b2) {
const result = new Uint8Array(b1.length + b2.length);
result.set(b1, 0);
result.set(b2, b1.length);
return result;
}
module.exports = { module.exports = {
concat,
locale, locale,
fadeOut, fadeOut,
delay, delay,

View File

@ -1,4 +1,4 @@
import crc32 from 'crc/crc32'; import crc32 from './crc32';
const encoder = new TextEncoder(); const encoder = new TextEncoder();

View File

@ -1,5 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<symbol id="logo" viewBox="66 0 340 64"> <symbol id="logo">
<path d="M84,48h5.83V35.87H103.3V30.45H89.83V23.51H103.3V18H84Zm23.57,0h5.79V25.81h-5.79Zm2.88-32.12a3.46,3.46,0,0,0-2.59,1,3.62,3.62,0,0,0-1,2.65,3.57,3.57,0,0,0,1,2.59,3.52,3.52,0,0,0,2.61,1,3.46,3.46,0,0,0,3.65-3.26c0-.12,0-.23,0-.35a3.71,3.71,0,0,0-1-2.65,3.5,3.5,0,0,0-2.67-1Zm19.14,9.53a7.22,7.22,0,0,0-3.72.93,5.82,5.82,0,0,0-2.4,2.89V25.81h-5.59V48h5.63V36.29a5.27,5.27,0,0,1,1.31-4,4.94,4.94,0,0,1,3.49-1.21,6.33,6.33,0,0,1,1.73.23,4,4,0,0,1,1.23.55l2-5.59a7.51,7.51,0,0,0-1.66-.61,8.11,8.11,0,0,0-2-.26Zm23.94,3.19a11.15,11.15,0,0,0-3.61-2.37,12.08,12.08,0,0,0-4.6-.86,11.62,11.62,0,0,0-8.3,3.37,11.17,11.17,0,0,0-2.44,3.67,11.59,11.59,0,0,0-.89,4.54,12.24,12.24,0,0,0,.83,4.52,10.52,10.52,0,0,0,2.36,3.66,10.93,10.93,0,0,0,3.71,2.44,12.75,12.75,0,0,0,4.85.88,12.15,12.15,0,0,0,6.12-1.39,13.25,13.25,0,0,0,4.11-3.74L151,40.6a6.23,6.23,0,0,1-2.18,2.15,6.36,6.36,0,0,1-3.33.8,6.7,6.7,0,0,1-4.13-1.25,6,6,0,0,1-2.23-3.43h17.62V36.74a11.71,11.71,0,0,0-.87-4.56,10.5,10.5,0,0,0-2.35-3.59Zm-14.21,5.85a6.38,6.38,0,0,1,2.26-3.12,6.11,6.11,0,0,1,3.74-1.15,6.26,6.26,0,0,1,3.73,1.08,5.56,5.56,0,0,1,2.1,3.19ZM167,16.08a6.05,6.05,0,0,0-2.91,1.54,6.15,6.15,0,0,0-1.56,2.89,18.1,18.1,0,0,0-.48,4.52v.78H158.4v5.1h3.65V48h5.63V30.91H173v-5.1h-5.3V24.75a13.34,13.34,0,0,1,.12-2,2,2,0,0,1,.6-1.19,2.45,2.45,0,0,1,1.33-.57,15.25,15.25,0,0,1,2.34-.15H173V15.63h-1.48A19.06,19.06,0,0,0,167,16.08Zm27.4,12.65a12,12,0,0,0-16.72,0,10.87,10.87,0,0,0-2.46,3.67,11.61,11.61,0,0,0-.89,4.5,11.46,11.46,0,0,0,7.07,10.64,11.73,11.73,0,0,0,4.64.9,12,12,0,0,0,4.66-.9,11.26,11.26,0,0,0,3.72-2.49,11.83,11.83,0,0,0,2.46-3.67,11.31,11.31,0,0,0,.9-4.48A11.43,11.43,0,0,0,194.4,28.73ZM191.7,39.3a5.88,5.88,0,0,1-1.29,2,6.53,6.53,0,0,1-1.93,1.31,6,6,0,0,1-4.76,0,6.34,6.34,0,0,1-1.93-1.31,6.06,6.06,0,0,1-1.3-2,6.48,6.48,0,0,1,0-4.86,5.76,5.76,0,0,1,1.3-2,6.08,6.08,0,0,1,1.93-1.32,6,6,0,0,1,4.76,0,6.37,6.37,0,0,1,1.93,1.32,5.73,5.73,0,0,1,1.29,2A6.39,6.39,0,0,1,191.7,39.3Zm29.47-13.49h-6.65l-4.68,6.57-4.64-6.57h-6.74l7.84,10.8L198,48h6.82l5-6.94L214.89,48h6.86l-8.46-11.34Zm34,7.46a12.88,12.88,0,0,0-3.37-1.44c-1.25-.34-2.46-.63-3.63-.88l-3.08-.7a10.64,10.64,0,0,1-2.51-.86A4.54,4.54,0,0,1,240.87,28a3.61,3.61,0,0,1-.62-2.19,4.8,4.8,0,0,1,1.58-3.7c1.06-1,2.73-1.44,5-1.44a9.84,9.84,0,0,1,5.07,1.17,10.47,10.47,0,0,1,3.39,3.23l2.79-2.18A15.22,15.22,0,0,0,253.45,19a13.8,13.8,0,0,0-6.59-1.44,12.13,12.13,0,0,0-4.14.66A10.33,10.33,0,0,0,239.53,20a7.53,7.53,0,0,0-2.05,2.63,7.41,7.41,0,0,0-.72,3.24,6.7,6.7,0,0,0,.84,3.53,7.06,7.06,0,0,0,2.2,2.22A11.11,11.11,0,0,0,242.86,33c1.13.32,2.29.6,3.47.84l3.26.74a12.63,12.63,0,0,1,2.8,1,5.86,5.86,0,0,1,2,1.56,3.88,3.88,0,0,1,.74,2.42,5.2,5.2,0,0,1-1.81,4.09A7.83,7.83,0,0,1,248,45.2a11,11,0,0,1-9.89-5.38l-3,2.34a15.86,15.86,0,0,0,5.23,4.54,16.06,16.06,0,0,0,7.7,1.7,12.58,12.58,0,0,0,4.38-.72,10.14,10.14,0,0,0,3.3-2,8.79,8.79,0,0,0,2.1-2.85,8.09,8.09,0,0,0,.74-3.39,6.94,6.94,0,0,0-1-3.8,7.71,7.71,0,0,0-2.42-2.37Zm27.51-4.72a10.53,10.53,0,0,0-3.58-2.34,11.89,11.89,0,0,0-4.49-.84,11.6,11.6,0,0,0-4.62.9,11.35,11.35,0,0,0-3.66,2.46A11.84,11.84,0,0,0,263,37a12.21,12.21,0,0,0,.82,4.51,10.53,10.53,0,0,0,2.36,3.64,11.24,11.24,0,0,0,3.7,2.42,12.41,12.41,0,0,0,4.82.88A11.68,11.68,0,0,0,280.82,47,12.84,12.84,0,0,0,285,42.82l-2.88-1.69a7.85,7.85,0,0,1-7.43,4.27,9,9,0,0,1-3.22-.53,8.21,8.21,0,0,1-2.55-1.5,8,8,0,0,1-1.78-2.28,7.79,7.79,0,0,1-.87-2.91h19.59V36.66a11.75,11.75,0,0,0-.86-4.54,10.92,10.92,0,0,0-2.35-3.57ZM266.4,35.22a8.88,8.88,0,0,1,1-2.73,8.55,8.55,0,0,1,1.79-2.18,8,8,0,0,1,2.44-1.43,8.31,8.31,0,0,1,3-.52,7.45,7.45,0,0,1,7.84,6.86ZM308.82,28a8.11,8.11,0,0,0-3-2,10.89,10.89,0,0,0-3.92-.67,9.06,9.06,0,0,0-4.58,1.14,8.76,8.76,0,0,0-3.14,3V25.82h-3.29V48h3.37V35.67a7.92,7.92,0,0,1,.53-2.93,7,7,0,0,1,1.48-2.3,6.46,6.46,0,0,1,2.22-1.5,7,7,0,0,1,2.75-.54,6.33,6.33,0,0,1,5,1.93A7.46,7.46,0,0,1,308,35.51V48h3.41V35.34a12.46,12.46,0,0,0-.66-4.19A8.68,8.68,0,0,0,308.82,28Zm27-12.42v14.1a8.14,8.14,0,0,0-1.58-1.83,10.08,10.08,0,0,0-2-1.36,10.39,10.39,0,0,0-2.3-.84,10.22,10.22,0,0,0-2.4-.28,11.63,11.63,0,0,0-4.4.84,11.09,11.09,0,0,0-3.59,2.38,11.3,11.3,0,0,0-2.42,3.65,12.81,12.81,0,0,0,0,9.32,11.56,11.56,0,0,0,2.4,3.66,10.58,10.58,0,0,0,3.59,2.38,11.77,11.77,0,0,0,4.42.84,9.69,9.69,0,0,0,2.4-.31,11,11,0,0,0,2.3-.86,9.72,9.72,0,0,0,2-1.37,8.75,8.75,0,0,0,1.58-1.85v4h3.33V15.59Zm-.37,24.58a8.3,8.3,0,0,1-10.85,4.47h0a7.68,7.68,0,0,1-2.6-1.76,7.88,7.88,0,0,1-1.73-2.67,8.93,8.93,0,0,1-.62-3.35,8.67,8.67,0,0,1,.62-3.3A8,8,0,0,1,322,30.89a8.17,8.17,0,0,1,2.6-1.79,8.27,8.27,0,0,1,6.51,0,8.64,8.64,0,0,1,2.63,1.81,7.85,7.85,0,0,1,1.72,2.67,8.67,8.67,0,0,1,.62,3.26,8.86,8.86,0,0,1-.65,3.33Z" fill="currentColor"/> <path d="M84,48h5.83V35.87H103.3V30.45H89.83V23.51H103.3V18H84Zm23.57,0h5.79V25.81h-5.79Zm2.88-32.12a3.46,3.46,0,0,0-2.59,1,3.62,3.62,0,0,0-1,2.65,3.57,3.57,0,0,0,1,2.59,3.52,3.52,0,0,0,2.61,1,3.46,3.46,0,0,0,3.65-3.26c0-.12,0-.23,0-.35a3.71,3.71,0,0,0-1-2.65,3.5,3.5,0,0,0-2.67-1Zm19.14,9.53a7.22,7.22,0,0,0-3.72.93,5.82,5.82,0,0,0-2.4,2.89V25.81h-5.59V48h5.63V36.29a5.27,5.27,0,0,1,1.31-4,4.94,4.94,0,0,1,3.49-1.21,6.33,6.33,0,0,1,1.73.23,4,4,0,0,1,1.23.55l2-5.59a7.51,7.51,0,0,0-1.66-.61,8.11,8.11,0,0,0-2-.26Zm23.94,3.19a11.15,11.15,0,0,0-3.61-2.37,12.08,12.08,0,0,0-4.6-.86,11.62,11.62,0,0,0-8.3,3.37,11.17,11.17,0,0,0-2.44,3.67,11.59,11.59,0,0,0-.89,4.54,12.24,12.24,0,0,0,.83,4.52,10.52,10.52,0,0,0,2.36,3.66,10.93,10.93,0,0,0,3.71,2.44,12.75,12.75,0,0,0,4.85.88,12.15,12.15,0,0,0,6.12-1.39,13.25,13.25,0,0,0,4.11-3.74L151,40.6a6.23,6.23,0,0,1-2.18,2.15,6.36,6.36,0,0,1-3.33.8,6.7,6.7,0,0,1-4.13-1.25,6,6,0,0,1-2.23-3.43h17.62V36.74a11.71,11.71,0,0,0-.87-4.56,10.5,10.5,0,0,0-2.35-3.59Zm-14.21,5.85a6.38,6.38,0,0,1,2.26-3.12,6.11,6.11,0,0,1,3.74-1.15,6.26,6.26,0,0,1,3.73,1.08,5.56,5.56,0,0,1,2.1,3.19ZM167,16.08a6.05,6.05,0,0,0-2.91,1.54,6.15,6.15,0,0,0-1.56,2.89,18.1,18.1,0,0,0-.48,4.52v.78H158.4v5.1h3.65V48h5.63V30.91H173v-5.1h-5.3V24.75a13.34,13.34,0,0,1,.12-2,2,2,0,0,1,.6-1.19,2.45,2.45,0,0,1,1.33-.57,15.25,15.25,0,0,1,2.34-.15H173V15.63h-1.48A19.06,19.06,0,0,0,167,16.08Zm27.4,12.65a12,12,0,0,0-16.72,0,10.87,10.87,0,0,0-2.46,3.67,11.61,11.61,0,0,0-.89,4.5,11.46,11.46,0,0,0,7.07,10.64,11.73,11.73,0,0,0,4.64.9,12,12,0,0,0,4.66-.9,11.26,11.26,0,0,0,3.72-2.49,11.83,11.83,0,0,0,2.46-3.67,11.31,11.31,0,0,0,.9-4.48A11.43,11.43,0,0,0,194.4,28.73ZM191.7,39.3a5.88,5.88,0,0,1-1.29,2,6.53,6.53,0,0,1-1.93,1.31,6,6,0,0,1-4.76,0,6.34,6.34,0,0,1-1.93-1.31,6.06,6.06,0,0,1-1.3-2,6.48,6.48,0,0,1,0-4.86,5.76,5.76,0,0,1,1.3-2,6.08,6.08,0,0,1,1.93-1.32,6,6,0,0,1,4.76,0,6.37,6.37,0,0,1,1.93,1.32,5.73,5.73,0,0,1,1.29,2A6.39,6.39,0,0,1,191.7,39.3Zm29.47-13.49h-6.65l-4.68,6.57-4.64-6.57h-6.74l7.84,10.8L198,48h6.82l5-6.94L214.89,48h6.86l-8.46-11.34Zm34,7.46a12.88,12.88,0,0,0-3.37-1.44c-1.25-.34-2.46-.63-3.63-.88l-3.08-.7a10.64,10.64,0,0,1-2.51-.86A4.54,4.54,0,0,1,240.87,28a3.61,3.61,0,0,1-.62-2.19,4.8,4.8,0,0,1,1.58-3.7c1.06-1,2.73-1.44,5-1.44a9.84,9.84,0,0,1,5.07,1.17,10.47,10.47,0,0,1,3.39,3.23l2.79-2.18A15.22,15.22,0,0,0,253.45,19a13.8,13.8,0,0,0-6.59-1.44,12.13,12.13,0,0,0-4.14.66A10.33,10.33,0,0,0,239.53,20a7.53,7.53,0,0,0-2.05,2.63,7.41,7.41,0,0,0-.72,3.24,6.7,6.7,0,0,0,.84,3.53,7.06,7.06,0,0,0,2.2,2.22A11.11,11.11,0,0,0,242.86,33c1.13.32,2.29.6,3.47.84l3.26.74a12.63,12.63,0,0,1,2.8,1,5.86,5.86,0,0,1,2,1.56,3.88,3.88,0,0,1,.74,2.42,5.2,5.2,0,0,1-1.81,4.09A7.83,7.83,0,0,1,248,45.2a11,11,0,0,1-9.89-5.38l-3,2.34a15.86,15.86,0,0,0,5.23,4.54,16.06,16.06,0,0,0,7.7,1.7,12.58,12.58,0,0,0,4.38-.72,10.14,10.14,0,0,0,3.3-2,8.79,8.79,0,0,0,2.1-2.85,8.09,8.09,0,0,0,.74-3.39,6.94,6.94,0,0,0-1-3.8,7.71,7.71,0,0,0-2.42-2.37Zm27.51-4.72a10.53,10.53,0,0,0-3.58-2.34,11.89,11.89,0,0,0-4.49-.84,11.6,11.6,0,0,0-4.62.9,11.35,11.35,0,0,0-3.66,2.46A11.84,11.84,0,0,0,263,37a12.21,12.21,0,0,0,.82,4.51,10.53,10.53,0,0,0,2.36,3.64,11.24,11.24,0,0,0,3.7,2.42,12.41,12.41,0,0,0,4.82.88A11.68,11.68,0,0,0,280.82,47,12.84,12.84,0,0,0,285,42.82l-2.88-1.69a7.85,7.85,0,0,1-7.43,4.27,9,9,0,0,1-3.22-.53,8.21,8.21,0,0,1-2.55-1.5,8,8,0,0,1-1.78-2.28,7.79,7.79,0,0,1-.87-2.91h19.59V36.66a11.75,11.75,0,0,0-.86-4.54,10.92,10.92,0,0,0-2.35-3.57ZM266.4,35.22a8.88,8.88,0,0,1,1-2.73,8.55,8.55,0,0,1,1.79-2.18,8,8,0,0,1,2.44-1.43,8.31,8.31,0,0,1,3-.52,7.45,7.45,0,0,1,7.84,6.86ZM308.82,28a8.11,8.11,0,0,0-3-2,10.89,10.89,0,0,0-3.92-.67,9.06,9.06,0,0,0-4.58,1.14,8.76,8.76,0,0,0-3.14,3V25.82h-3.29V48h3.37V35.67a7.92,7.92,0,0,1,.53-2.93,7,7,0,0,1,1.48-2.3,6.46,6.46,0,0,1,2.22-1.5,7,7,0,0,1,2.75-.54,6.33,6.33,0,0,1,5,1.93A7.46,7.46,0,0,1,308,35.51V48h3.41V35.34a12.46,12.46,0,0,0-.66-4.19A8.68,8.68,0,0,0,308.82,28Zm27-12.42v14.1a8.14,8.14,0,0,0-1.58-1.83,10.08,10.08,0,0,0-2-1.36,10.39,10.39,0,0,0-2.3-.84,10.22,10.22,0,0,0-2.4-.28,11.63,11.63,0,0,0-4.4.84,11.09,11.09,0,0,0-3.59,2.38,11.3,11.3,0,0,0-2.42,3.65,12.81,12.81,0,0,0,0,9.32,11.56,11.56,0,0,0,2.4,3.66,10.58,10.58,0,0,0,3.59,2.38,11.77,11.77,0,0,0,4.42.84,9.69,9.69,0,0,0,2.4-.31,11,11,0,0,0,2.3-.86,9.72,9.72,0,0,0,2-1.37,8.75,8.75,0,0,0,1.58-1.85v4h3.33V15.59Zm-.37,24.58a8.3,8.3,0,0,1-10.85,4.47h0a7.68,7.68,0,0,1-2.6-1.76,7.88,7.88,0,0,1-1.73-2.67,8.93,8.93,0,0,1-.62-3.35,8.67,8.67,0,0,1,.62-3.3A8,8,0,0,1,322,30.89a8.17,8.17,0,0,1,2.6-1.79,8.27,8.27,0,0,1,6.51,0,8.64,8.64,0,0,1,2.63,1.81,7.85,7.85,0,0,1,1.72,2.67,8.67,8.67,0,0,1,.62,3.26,8.86,8.86,0,0,1-.65,3.33Z" fill="currentColor"/>
</symbol> </symbol>
<use xlink:href="#logo"/> <use xlink:href="#logo"/>

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -2,4 +2,5 @@ last 2 chrome versions
last 2 firefox versions last 2 firefox versions
last 2 safari versions last 2 safari versions
last 2 edge versions last 2 edge versions
edge 18
firefox esr firefox esr

3831
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -23,11 +23,11 @@
"release": "npm-run-all contributors changelog", "release": "npm-run-all contributors changelog",
"test": "npm-run-all test:*", "test": "npm-run-all test:*",
"test:backend": "nyc --reporter=lcovonly mocha --reporter=min test/backend", "test:backend": "nyc --reporter=lcovonly mocha --reporter=min test/backend",
"test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js", "test:frontend": "cross-env NODE_ENV=development FXA_REQUIRED=false node test/frontend/runner.js",
"test:report": "nyc report --reporter=html", "test:report": "nyc report --reporter=html",
"test-integration": "cross-env NODE_ENV=development wdio test/wdio.docker.conf.js", "test-integration": "cross-env NODE_ENV=development wdio test/wdio.docker.conf.js",
"circleci-test-integration": "echo 'webdriverio tests need to be updated to node 12'", "circleci-test-integration": "echo 'webdriverio tests need to be updated to node 12'",
"start": "npm run clean && cross-env NODE_ENV=development L10N_DEV=true FXA_CLIENT_ID=fced6b5e3f4c66b9 BASE_URL=http://localhost:8080 webpack-dev-server --mode=development", "start": "npm run clean && cross-env NODE_ENV=development L10N_DEV=true FXA_CLIENT_ID=fced6b5e3f4c66b9 BASE_URL=http://localhost:1337 webpack-dev-server --port=1337 --mode=development",
"android": "cross-env ANDROID=1 npm start", "android": "cross-env ANDROID=1 npm start",
"prod": "node server/bin/prod.js" "prod": "node server/bin/prod.js"
}, },
@ -61,14 +61,14 @@
"node": "^12.16.3" "node": "^12.16.3"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.7.2", "@babel/core": "^7.10.5",
"@babel/plugin-proposal-class-properties": "^7.7.0", "@babel/plugin-proposal-class-properties": "^7.10.4",
"@babel/plugin-syntax-dynamic-import": "^7.2.0", "@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/preset-env": "^7.7.1", "@babel/preset-env": "^7.10.4",
"@dannycoates/webcrypto-liner": "^0.1.37", "@dannycoates/webcrypto-liner": "^0.1.37",
"@fullhuman/postcss-purgecss": "^1.3.0", "@fullhuman/postcss-purgecss": "^1.3.0",
"@mattiasbuelens/web-streams-polyfill": "0.2.1", "@mattiasbuelens/web-streams-polyfill": "0.2.1",
"@sentry/browser": "^5.8.0", "@sentry/browser": "^5.20.1",
"asmcrypto.js": "^0.22.0", "asmcrypto.js": "^0.22.0",
"babel-loader": "^8.0.6", "babel-loader": "^8.0.6",
"babel-plugin-istanbul": "^5.2.0", "babel-plugin-istanbul": "^5.2.0",
@ -76,7 +76,6 @@
"content-disposition": "^0.5.3", "content-disposition": "^0.5.3",
"copy-webpack-plugin": "^5.0.5", "copy-webpack-plugin": "^5.0.5",
"core-js": "^3.4.0", "core-js": "^3.4.0",
"crc": "^3.8.0",
"cross-env": "^6.0.3", "cross-env": "^6.0.3",
"css-loader": "^3.2.0", "css-loader": "^3.2.0",
"css-mqpacker": "^7.0.0", "css-mqpacker": "^7.0.0",
@ -89,7 +88,7 @@
"expose-loader": "^0.7.5", "expose-loader": "^0.7.5",
"extract-loader": "^3.1.0", "extract-loader": "^3.1.0",
"extract-text-webpack-plugin": "^4.0.0-beta.0", "extract-text-webpack-plugin": "^4.0.0-beta.0",
"fast-text-encoding": "^1.0.0", "fast-text-encoding": "^1.0.3",
"file-loader": "^4.2.0", "file-loader": "^4.2.0",
"git-rev-sync": "^1.12.0", "git-rev-sync": "^1.12.0",
"html-loader": "^0.5.5", "html-loader": "^0.5.5",
@ -123,9 +122,9 @@
"tailwindcss": "^1.1.3", "tailwindcss": "^1.1.3",
"val-loader": "^1.1.1", "val-loader": "^1.1.1",
"webpack": "4.38.0", "webpack": "4.38.0",
"webpack-cli": "^3.3.10", "webpack-cli": "^3.3.12",
"webpack-dev-middleware": "^3.7.2", "webpack-dev-middleware": "^3.7.2",
"webpack-dev-server": "^3.9.0", "webpack-dev-server": "^3.11.0",
"webpack-manifest-plugin": "^2.2.0", "webpack-manifest-plugin": "^2.2.0",
"webpack-unassert-loader": "^1.2.0" "webpack-unassert-loader": "^1.2.0"
}, },
@ -133,8 +132,9 @@
"@dannycoates/express-ws": "^5.0.3", "@dannycoates/express-ws": "^5.0.3",
"@fluent/bundle": "^0.13.0", "@fluent/bundle": "^0.13.0",
"@fluent/langneg": "^0.3.0", "@fluent/langneg": "^0.3.0",
"@google-cloud/storage": "^4.1.1", "@google-cloud/storage": "^5.1.2",
"@sentry/node": "^5.8.0", "@peculiar/webcrypto": "^1.1.1",
"@sentry/node": "^5.20.1",
"aws-sdk": "^2.568.0", "aws-sdk": "^2.568.0",
"body-parser": "^1.19.0", "body-parser": "^1.19.0",
"choo": "^7.0.0", "choo": "^7.0.0",
@ -142,14 +142,13 @@
"configstore": "github:dannycoates/configstore#master", "configstore": "github:dannycoates/configstore#master",
"convict": "^5.2.0", "convict": "^5.2.0",
"express": "^4.17.1", "express": "^4.17.1",
"fxa-geodb": "^1.0.4", "helmet": "^3.23.3",
"helmet": "^3.21.2",
"mkdirp": "^0.5.1", "mkdirp": "^0.5.1",
"mozlog": "^2.2.0", "mozlog": "^2.2.0",
"node-fetch": "^2.6.0", "node-fetch": "^2.6.0",
"redis": "^2.8.0", "redis": "^3.0.2",
"selenium-standalone": "^6.15.6", "selenium-standalone": "^6.15.6",
"ua-parser-js": "^0.7.20" "ua-parser-js": "^0.7.21"
}, },
"availableLanguages": [ "availableLanguages": [
"en-US", "en-US",

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Comentarios
importingFile = Se ye importando… importingFile = Se ye importando…
encryptingFile = Se ye cifrando… encryptingFile = Se ye cifrando…
decryptingFile = Se ye descifrando… decryptingFile = Se ye descifrando…
@ -116,6 +115,7 @@ legalDateStamp = Versió 1.0, con data d'o 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" # 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 } min expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
addFilesButton = Triar los fichers a cargar addFilesButton = Triar los fichers a cargar
trustWarningMessage = Asegura-te de que confías en o destinatario quan compartas datos confidencials.
uploadButton = Cargar uploadButton = Cargar
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arrociega y suelta los fichers dragAndDropFiles = Arrociega y suelta los fichers
@ -153,3 +153,33 @@ shareLinkButton = Compartir lo vinclo
shareMessage = Baixa-te «{ $name }» con { -send-brand }: compartición de fiches simpla y segura shareMessage = Baixa-te «{ $name }» con { -send-brand }: compartición de fiches simpla y segura
trailheadPromo = I hai una manera de protecher la tuya privacidat. Une-te a Firefox. trailheadPromo = I hai una manera de protecher la tuya privacidat. Une-te a Firefox.
learnMore = Mas información learnMore = Mas información
downloadFlagged = Este vinclo s'ha desactivau per violar las condiciones d'uso.
downloadConfirmTitle = Una coseta mas
downloadConfirmDescription = Asegura-te de que confías en a persona que t'ha ninviau este fichero, perque no podemos verificar que no danyará lo tuyo dispositivo.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Confío en a persona que ha ninviau este fichero
*[other] Confío en a persona que ha ninviau estes fichers
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Sinyalar este fichero como sospeitoso
*[other] Sinyalar estes fichers como sospeitoso
}
reportDescription = Aduya-nos a comprender qué ha pasau. Quál creyes que ye lo problema con estes fichers?
reportUnknownDescription = Vest ta la URL d'o vinclo que quiers sinyalar y fe clic en « { reportFile } ».
reportButton = Informar
reportReasonMalware = Estes fichers contienen malware u fan parte d'un ataque de phishing.
reportReasonPii = Estes fichers contienen información personal identificable sobre yo.
reportReasonAbuse = Estes fichers contienen conteniu ilegal u abusivo.
reportReasonCopyright = Pa informar sobre una violación de dreitos d'autor u de marca, sigue lo procedimiento descrito en <a>esta pachina</a>.
reportedTitle = Fichers sinyalaus
reportedDescription = Gracias. Hemos recibiu lo tuyo informe sobre estes fichers.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Comentarios
importingFile = Importando... importingFile = Importando...
encryptingFile = Cifrando... encryptingFile = Cifrando...
decryptingFile = Descifrando... decryptingFile = Descifrando...
@ -99,23 +98,24 @@ trySendDescription = Prueba { -send-brand } pa una compartición de ficheros cen
# count will always be > 10 # count will always be > 10
tooManyFiles = tooManyFiles =
{ $count -> { $count ->
[one] Namái pue xubise 1 ficheru al empar. [one] Namás pue xubise 1 ficheru al empar.
*[other] Namái puen xubise { $count } ficheros al empar. *[other] Namás puen xubise { $count } ficheros al empar.
} }
# count will always be > 10 # count will always be > 10
tooManyArchives = tooManyArchives =
{ $count -> { $count ->
[one] Namái se permite 1 archivu [one] Namás se permite 1 archivu
*[other] Namái se permiten { $count } archivos *[other] Namás se permiten { $count } archivos
} }
expiredTitle = Esti enllaz caducó. 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. notSupportedDescription = { -send-brand } nun va funcionar con esti restolador. { -send-short-brand } funciona meyor cola última versión de { -firefox } y l'actual de la mayoría de restoladores.
downloadFirefox = Baxar { -firefox } downloadFirefox = Baxar { -firefox }
legalTitle = Avisu de privacidá de { -send-short-brand } legalTitle = Avisu de privacidá de { -send-short-brand }
legalDateStamp = Versión 1.0, con data del 12 de marzu de 2019 legalDateStamp = Versión 1.0, con data del 12 de marzu de 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Esbillar los ficheros a unviar addFilesButton = Esbillar los ficheros a unviar
trustWarningMessage = Asegúrate de que t'enfotes nel destinatariu al compartir datos sensibles.
uploadButton = Xubir uploadButton = Xubir
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arrastra y suelta ficheros dragAndDropFiles = Arrastra y suelta ficheros
@ -133,8 +133,8 @@ accountBenefitLargeFiles = Comparti ficheros d'hasta { $size }
accountBenefitDownloadCount = Comparti ficheros con más xente accountBenefitDownloadCount = Comparti ficheros con más xente
accountBenefitTimeLimit = accountBenefitTimeLimit =
{ $count -> { $count ->
[one] Caltén activos los enllaces demientres 1 día [one] Caltién activos los enllaces demientres 1 día
*[other] Caltén activos los enllaces demientres { $count } díes *[other] Caltién activos los enllaces demientres { $count } díes
} }
accountBenefitSync = Xestiona los ficheros compartíos dende cualesquier preséu accountBenefitSync = Xestiona los ficheros compartíos dende cualesquier preséu
accountBenefitMoz = Deprendi más tocante a otros servicios de { -mozilla } accountBenefitMoz = Deprendi más tocante a otros servicios de { -mozilla }
@ -144,3 +144,9 @@ downloadingTitle = Baxando
noStreamsWarning = Esti restolador quiciabes nun seya a descifrar un ficheru d'esti tamañu. noStreamsWarning = Esti restolador quiciabes nun seya a descifrar un ficheru d'esti tamañu.
trailheadPromo = Hai un mou de protexer la to privacidá. Xúnite a Firefox. trailheadPromo = Hai un mou de protexer la to privacidá. Xúnite a Firefox.
learnMore = Deprender más. learnMore = Deprender más.
downloadFlagged = Esti enllaz desactivóse por violar los términos del serviciu.
downloadConfirmTitle = Una cosa más
reportReasonMalware = Estos ficheros contienen malware o son parte d'un ataque de phishing
reportReasonPii = Estos ficheros contienen información que m'identifica.
reportReasonAbuse = Estos ficheros contienen conteníu illegal o abusivu.
reportedDescription = Gracies. Recibiemos l'informe tocante a estos ficheros.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Водгук
importingFile = Імпартаванне... importingFile = Імпартаванне...
encryptingFile = Зашыфроўка... encryptingFile = Зашыфроўка...
decryptingFile = Расшыфроўка... decryptingFile = Расшыфроўка...
@ -124,6 +123,7 @@ legalDateStamp = Версія 1.0 ад 12 сакавіка 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } д. { $hours } г. { $minutes } хв. expiresDaysHoursMinutes = { $days } д. { $hours } г. { $minutes } хв.
addFilesButton = Выберыце файлы для загрузкі addFilesButton = Выберыце файлы для загрузкі
trustWarningMessage = Пераканайцеся, што давяраеце атрымальніку, калі дзеліцеся канфідэнцыяльнымі звесткамі.
uploadButton = Загрузіць uploadButton = Загрузіць
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Перацягніце файлы сюды dragAndDropFiles = Перацягніце файлы сюды
@ -162,3 +162,35 @@ shareLinkButton = Падзяліцца спасылкай
shareMessage = Сцягніце «{ $name }» з { -send-brand }: простага і бяспечнага файлаабменніка shareMessage = Сцягніце «{ $name }» з { -send-brand }: простага і бяспечнага файлаабменніка
trailheadPromo = Ёсць спосаб абараніць вашу прыватнасць. Далучайцеся да Firefox. trailheadPromo = Ёсць спосаб абараніць вашу прыватнасць. Далучайцеся да Firefox.
learnMore = Падрабязней. learnMore = Падрабязней.
downloadFlagged = Гэта спасылка адключана за парушэнне ўмоў прадастаўлення паслуг.
downloadConfirmTitle = Яшчэ адна рэч
downloadConfirmDescription = Пераканайцеся, што давяраеце адпраўніку гэтага файла, бо мы не можам пераканацца, што ён не нашкодзіць Вашай прыладзе.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Я давяраю адпраўніку гэтага файла
[few] Я давяраю адпраўніку гэтых файлаў
*[many] Я давяраю адпраўніку гэтых файлаў
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Паведаміць, што гэты файл падазроныя
[few] Паведаміць, што гэтыя файлы падазроныя
*[many] Паведаміць, што гэтыя файлы падазроныя
}
reportDescription = Дапамажыце нам зразумець, што адбываецца. Як вы лічыце, што не так з гэтымі файламі?
reportUnknownDescription = Калі ласка, перайдзіце да адрасу спасылкі, пра якую хочаце паведаміць, і націсніце “{ reportFile }”.
reportButton = Паведаміць
reportReasonMalware = Гэтыя файлы ўтрымліваюць шкоднасныя праграмы альбо з'яўляюцца часткай фішынг-атакі.
reportReasonPii = Гэтыя файлы ўтрымліваюць асабістую інфармацыю пра мяне.
reportReasonAbuse = Гэтыя файлы ўтрымліваюць незаконнае альбо абразлівае змесціва.
reportReasonCopyright = Каб паведаміць аб парушэнні аўтарскіх правоў або гандлёвых марак, скарыстайцеся алгарытмам, апісаным на <a>гэтай старонцы</a>.
reportedTitle = Пра файлы паведамлена
reportedDescription = Дзякуй. Мы атрымалі Вашу заяву наконт гэтых файлаў.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Roit hoc'h ali
importingFile = Oc'h enporzhiañ … importingFile = Oc'h enporzhiañ …
encryptingFile = Oc'h enrinegañ.. encryptingFile = Oc'h enrinegañ..
decryptingFile = Oc'h ezrinegañ... decryptingFile = Oc'h ezrinegañ...
@ -140,6 +139,7 @@ legalDateStamp = Handelv 1.0, d'an 12 a viz Meurzh 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 }e { $minutes }m expiresDaysHoursMinutes = { $days }d { $hours }e { $minutes }m
addFilesButton = Diuzit ur restr da bellgas addFilesButton = Diuzit ur restr da bellgas
trustWarningMessage = Bezit sur ho peus fiziañs en ho tegemerer pa rannit roadennoù kizidik.
uploadButton = Pellgas uploadButton = Pellgas
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Riklit ha laoskit restroù dragAndDropFiles = Riklit ha laoskit restroù
@ -180,3 +180,6 @@ shareLinkButton = Rannañ an ere
shareMessage = Pellgargañ "{ $name }" gant { -send-brand }: rannañ restroù en un doare eeun ha prevez shareMessage = Pellgargañ "{ $name }" gant { -send-brand }: rannañ restroù en un doare eeun ha prevez
trailheadPromo = Un doare a zo da wareziñ ho puhez prevez. Tremenit da Firefox. trailheadPromo = Un doare a zo da wareziñ ho puhez prevez. Tremenit da Firefox.
learnMore = Gouzout hiroc'h. learnMore = Gouzout hiroc'h.
downloadFlagged = Diweredekaet eo bet an ere-se dre ma ne zouje ket ouzh an divizoù arver.
downloadConfirmTitle = Un draig ouzhpenn
downloadConfirmDescription = Bezit sur ho peus fiziañs en deus en deus kaset ar restr-mañ dre ma n'haller ket gwiriañ ne freuzo ket ho trevnad.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Comentaris
importingFile = S'està important… importingFile = S'està important…
encryptingFile = S'està xifrant… encryptingFile = S'està xifrant…
decryptingFile = S'està desxifrant… decryptingFile = S'està desxifrant…
@ -116,6 +115,7 @@ legalDateStamp = Versió 1.0, amb data del 12 de març de 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 } min expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
addFilesButton = Seleccioneu els fitxers que voleu pujar addFilesButton = Seleccioneu els fitxers que voleu pujar
trustWarningMessage = Assegureu-vos que confieu en el destinatari quan compartiu dades confidencials.
uploadButton = Puja uploadButton = Puja
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arrossegueu i deixeu anar els fitxers dragAndDropFiles = Arrossegueu i deixeu anar els fitxers
@ -153,3 +153,33 @@ shareLinkButton = Comparteix l'enllaç
shareMessage = Baixeu «{ $name }» amb el { -send-brand }: compartició de fitxers senzilla i segura shareMessage = Baixeu «{ $name }» amb el { -send-brand }: compartició de fitxers senzilla i segura
trailheadPromo = Hi ha una manera de protegir la vostra privadesa. Uniu-vos al Firefox. trailheadPromo = Hi ha una manera de protegir la vostra privadesa. Uniu-vos al Firefox.
learnMore = Més informació. learnMore = Més informació.
downloadFlagged = Aquest enllaç s'ha desactivat per infringir les condicions del servei.
downloadConfirmTitle = Una cosa més
downloadConfirmDescription = Assegureu-vos que confieu en la persona que us ha enviat aquest fitxer, perquè nosaltres no podem verificar que no malmeti el vostre dispositiu.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Confio en la persona que ha enviat aquest fitxer
*[other] Confio en la persona que ha enviat aquests fitxers
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Informa que aquest fitxer és sospitós
*[other] Informa que aquests fitxers són sospitos
}
reportDescription = Ajudeu-nos a entendre què passa. Quin problema creieu que tenen aquests fitxers?
reportUnknownDescription = Aneu a l'URL de l'enllaç sobre el qual voleu informar i feu clic a «{ reportFile }».
reportButton = Informa
reportReasonMalware = Aquests fitxers contenen programari maliciós o formen part d'un atac de pesca electrònica.
reportReasonPii = Aquests fitxers contenen informació d'identificació personal meva.
reportReasonAbuse = Aquests fitxers inclouen contingut il·legal o abusiu.
reportReasonCopyright = Per informar sobre una infracció de drets dautor o de marca comercial, utilitzeu el procés descrit en <a>aquesta pàgina</a>.
reportedTitle = S'ha informat d'aquests fitxers
reportedDescription = Gràcies. Hem rebut el vostre informe sobre aquests fitxers.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Zpětná vazba
importingFile = Probíhá import… importingFile = Probíhá import…
encryptingFile = Probíhá šifrování… encryptingFile = Probíhá šifrování…
decryptingFile = Probíhá dešifrování… decryptingFile = Probíhá dešifrování…
@ -160,6 +159,7 @@ legalDateStamp = Verze 1.0, 12. března 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Vyberte soubory k nahrání addFilesButton = Vyberte soubory k nahrání
trustWarningMessage = Ujistěte se, že adresátovi důvěřujete pro sdílení vašich důvěrných dat.
uploadButton = Nahrát uploadButton = Nahrát
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Přetažením myší nebo kliknutím sem dragAndDropFiles = Přetažením myší nebo kliknutím sem
@ -198,3 +198,35 @@ shareLinkButton = Sdílet odkaz
shareMessage = Stáhněte si soubor „{ $name }“ s { -send-brand(case: "ins") } - jednoduché a bezpečné sdílení souborů shareMessage = Stáhněte si soubor „{ $name }“ s { -send-brand(case: "ins") } - jednoduché a bezpečné sdílení souborů
trailheadPromo = Existuje způsob, jak ochránit své soukromí. Používejte Firefox. trailheadPromo = Existuje způsob, jak ochránit své soukromí. Používejte Firefox.
learnMore = Zjistit více. learnMore = Zjistit více.
downloadFlagged = Tento odkaz byl pro porušení podmínek používání služby deaktivován.
downloadConfirmTitle = Ještě jedna věc
downloadConfirmDescription = Ujistěte se, že opravdu důvěřujete odesílateli tohoto souboru, protože nemůžeme potvrdit bezpečnost jeho otevření na vašem zařízení.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Odesílateli tohoto souboru důvěřuji
[few] Odesílateli těchto souborů důvěřuji
*[other] Odesílateli těchto souborů důvěřuji
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Nahlásit tento soubor jako podezřelý
[few] Nahlásit tyto soubory jako podezřelé
*[other] Nahlásit tyto soubory jako podezřelé
}
reportDescription = Pomozte nám. Co si myslíte, že je s těmito soubory špatně?
reportUnknownDescription = Otevřete odkaz, který chcete nahlásit, a klepněte na „{ reportFile }“.
reportButton = Nahlásit
reportReasonMalware = Tyto soubory obsahují malware nebo jsou součástí phishingového útoku.
reportReasonPii = Tyto soubory obsahují mé osobní údaje.
reportReasonAbuse = Tyto soubory obsahují nelegální nebo urážlivý obsah.
reportReasonCopyright = Chcete-li nahlásit porušení autorských práv nebo ochranných známek, použijte postup popsaný na <a>této stránce</a>.
reportedTitle = Soubory byly nahlášeny
reportedDescription = Děkujeme vám za zaslané hlášení ohledně těchto souborů.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Adborth
importingFile = Mewnforio… importingFile = Mewnforio…
encryptingFile = Wrthi'n amgryptio… encryptingFile = Wrthi'n amgryptio…
decryptingFile = Wrthi'n dadgryptio… decryptingFile = Wrthi'n dadgryptio…
@ -148,6 +147,7 @@ legalDateStamp = Fersiwn 1.0, dyddiedig Mawrth 12, 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 } a { $minutes } m expiresDaysHoursMinutes = { $days } d { $hours } a { $minutes } m
addFilesButton = Dewis ffeiliau i'w llwytho i fyny addFilesButton = Dewis ffeiliau i'w llwytho i fyny
trustWarningMessage = Gwnewch yn siŵr eich bod yn ymddiried yn eich derbynnydd pan yn rhannu data sensitif.
uploadButton = Llwytho i fyny uploadButton = Llwytho i fyny
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Llusgo a gollwng ffeiliau dragAndDropFiles = Llusgo a gollwng ffeiliau
@ -189,3 +189,41 @@ shareLinkButton = Rhannu'r ddolen
shareMessage = Llwytho i lawr “{ $name }” gyda { -send-brand }: rhannu ffeiliau syml a diogel shareMessage = Llwytho i lawr “{ $name }” gyda { -send-brand }: rhannu ffeiliau syml a diogel
trailheadPromo = Mae ffordd o ddiogelu eich preifatrwydd. Ymunwch â Firefox. trailheadPromo = Mae ffordd o ddiogelu eich preifatrwydd. Ymunwch â Firefox.
learnMore = Dysgu rhagor. learnMore = Dysgu rhagor.
downloadFlagged = Mae'r ddolen wedi'i analluogi am fynd yn groes i'r telerau gwasanaeth.
downloadConfirmTitle = Un peth arall
downloadConfirmDescription = Gwnewch yn siŵr eich bod yn ymddiried yn y person a anfonodd y ffeil hon atoch oherwydd nid ydym yn gallu gwirio na fydd yn niweidio'ch dyfais.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[zero] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
[one] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
[two] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
[few] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
[many] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
*[other] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[zero] Adrodd y { $count } ffeil yma fel rhai amheus
[one] Adrodd y { $count } ffeil yma fel un amheus
[two] Adrodd y { $count } ffeil yma fel rhai amheus
[few] Adrodd y { $count } ffeil yma fel rhai amheus
[many] Adrodd y { $count } ffeil yma fel rhai amheus
*[other] Adrodd y { $count } ffeil yma fel rhai amheus
}
reportDescription = Helpwch ni i ddeall beth sy'n digwydd. Beth ydych chi'n meddwl sydd o'i le gyda'r ffeiliau hyn?
reportUnknownDescription = Ewch i url y ddolen rydych am adrodd amdani a chlicio “{ reportFile }”.
reportButton = Adrodd
reportReasonMalware = Mae'r ffeiliau hyn yn cynnwys meddalwedd maleisus neu'n rhan o ymosodiad gwe-rwydo.
reportReasonPii = Mae'r ffeiliau hyn yn cynnwys gwybodaeth bersonol adnabyddadwy amdanaf i.
reportReasonAbuse = Mae'r ffeiliau hyn yn cynnwys deunydd anghyfreithlon neu ymosodol.
reportReasonCopyright = I adrodd ar dorri hawlfraint neu nod masnach, defnyddiwch y broses sy'n cael ei ddisgrifio yn y <a>dudalen hon</a>.
reportedTitle = Ffeiliau Adroddwyd Amdanynt
reportedDescription = Diolch. Rydym wedi derbyn eich adroddiad ar y ffeiliau hyn.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Importerer… importingFile = Importerer…
encryptingFile = Krypterer… encryptingFile = Krypterer…
decryptingFile = Dekrypterer… decryptingFile = Dekrypterer…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, udsendt d. 12. marts 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 } t. { $minutes } m. expiresDaysHoursMinutes = { $days } d. { $hours } t. { $minutes } m.
addFilesButton = Vælg filer, der skal uploades addFilesButton = Vælg filer, der skal uploades
trustWarningMessage = Vær sikker på, at du stoler på modtageren, når du deler følsomme data.
uploadButton = Upload uploadButton = Upload
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Træk og slip filer dragAndDropFiles = Træk og slip filer
@ -153,3 +153,33 @@ shareLinkButton = Del link
shareMessage = Hent { $name } med { -send-brand } - simpel og sikker fildeling shareMessage = Hent { $name } med { -send-brand } - simpel og sikker fildeling
trailheadPromo = Beskyt dine digitale rettigheder. Slut dig til Firefox. trailheadPromo = Beskyt dine digitale rettigheder. Slut dig til Firefox.
learnMore = Læs mere. learnMore = Læs mere.
downloadFlagged = Dette link er blevet deaktiveret for overtrædelse af tjenestevilkårene.
downloadConfirmTitle = En ting til
downloadConfirmDescription = Vær sikker på, at du stoler på afsenderen af denne fil, da vi ikke kan garantere, at den ikke vil skade din enhed.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Jeg stoler på personen, som sendte denne fil
*[other] Jeg stoler på personen, som sendte disse filer
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Rapportér denne fil som mistænkelig
*[other] Rapportér disse filer som mistænkelige
}
reportDescription = Hjælp os med at forstå, hvad der foregår. Hvad er der i vejen med disse filer?
reportUnknownDescription = Gå til adressen på det link, du vil rapportere, og klik på “{ reportFile }”.
reportButton = Rapportér
reportReasonMalware = Disse filer indeholder malware eller er en del af et phishing-angreb.
reportReasonPii = Disse filer indeholder oplysninger om mig, der er personligt identificerbare.
reportReasonAbuse = Disse filer indeholder ulovligt eller voldeligt indhold.
reportReasonCopyright = Hvis du vil rapportere overtrædelse af ophavsrettigheder eller varemærker, skal du bruge processen, som er beskrevet på <a>denne side</a>.
reportedTitle = Rapporterede filer
reportedDescription = Tak. Vi har modtaget din rapport om disse filer.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Wird importiert… importingFile = Wird importiert…
encryptingFile = Wird verschlüsselt… encryptingFile = Wird verschlüsselt…
decryptingFile = Wird entschlüsselt… decryptingFile = Wird entschlüsselt…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, Stand 12. März 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Dateien zum Hochladen auswählen addFilesButton = Dateien zum Hochladen auswählen
trustWarningMessage = Sie sollten dem Empfänger vertrauen, wenn Sie vertrauliche Daten weitergeben.
uploadButton = Hochladen uploadButton = Hochladen
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Dateien per Drag & Drop einfügen dragAndDropFiles = Dateien per Drag & Drop einfügen
@ -153,3 +153,33 @@ shareLinkButton = Link teilen
shareMessage = Laden Sie „{ $name }“ mit { -send-brand } herunter: einfaches, sicheres Teilen von Dateien shareMessage = Laden Sie „{ $name }“ mit { -send-brand } herunter: einfaches, sicheres Teilen von Dateien
trailheadPromo = Es gibt einen Weg, deine Privatsphäre zu schützen. Komm zu Firefox. trailheadPromo = Es gibt einen Weg, deine Privatsphäre zu schützen. Komm zu Firefox.
learnMore = Mehr erfahren. learnMore = Mehr erfahren.
downloadFlagged = Dieser Link wurde wegen Verstoßes gegen die Nutzungsbedingungen deaktiviert.
downloadConfirmTitle = Eine Sache noch
downloadConfirmDescription = Sie sollten dem Absender dieser Datei vertrauen, da wir nicht überprüfen können, ob Ihr Gerät dadurch beschädigt wird.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Ich vertraue der Person, die diese Datei gesendet hat
*[other] Ich vertraue der Person, die diese Dateien gesendet hat
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Diese Datei als verdächtig melden
*[other] Diese Dateien als verdächtig melden
}
reportDescription = Helfen Sie uns mit weiteren Informationen. Wo liegt das Problem bei diesen Dateien?
reportUnknownDescription = Bitte besuchen Sie die Adresse des Links, den Sie melden möchten, und klicken Sie auf „{ reportFile }“.
reportButton = Melden
reportReasonMalware = Diese Dateien enthalten Malware oder sind Teil eines Phishing-Angriffs.
reportReasonPii = Diese Dateien enthalten personenbezogene Daten über mich.
reportReasonAbuse = Diese Dateien enthalten illegale oder missbräuchliche Inhalte.
reportReasonCopyright = Um Urheber- oder Markenrechtsverletzungen zu melden, nutzen Sie bitte das auf <a>dieser Seite</a> beschriebene Verfahren.
reportedTitle = Dateien gemeldet
reportedDescription = Vielen Dank. Wir haben Ihren Bericht über diese Dateien erhalten.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Komentar
importingFile = Importěrujo se... importingFile = Importěrujo se...
encryptingFile = Koděrujo se... encryptingFile = Koděrujo se...
decryptingFile = Dešifrěrujo se... decryptingFile = Dešifrěrujo se...
@ -132,6 +131,7 @@ legalDateStamp = Wersija 1.0 wót 12. měrca 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }ź { $hours }g { $minutes }m expiresDaysHoursMinutes = { $days }ź { $hours }g { $minutes }m
addFilesButton = Dataje za nagrawanje wubraś addFilesButton = Dataje za nagrawanje wubraś
trustWarningMessage = Wy měł dostawarjeju dowěriś, gaž sensibelne daty źěliśo.
uploadButton = Nagraś uploadButton = Nagraś
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Śěgniśo a wótpołožćo dataje dragAndDropFiles = Śěgniśo a wótpołožćo dataje
@ -171,3 +171,37 @@ shareLinkButton = Wótkaz źěliś
shareMessage = Ześěgniśo „{ $name }“ z { -send-brand }: jadnore, wěste źělenje datajow shareMessage = Ześěgniśo „{ $name }“ z { -send-brand }: jadnore, wěste źělenje datajow
trailheadPromo = Jo móžnosć, wašu priwatnosć šćitaś. Pśiźćo k Firefox. trailheadPromo = Jo móžnosć, wašu priwatnosć šćitaś. Pśiźćo k Firefox.
learnMore = Dalšne informacije. learnMore = Dalšne informacije.
downloadFlagged = Toś ten wótkaz jo se znjemóžnił pśestupjenja wužywańskich wuměnjenjow dla.
downloadConfirmTitle = Jadna wěc hyšći
downloadConfirmDescription = Wy měł wótpósłarjeju toś teje dataje dowěriś, dokulaž njamóžomy pśeglědaś, lěc to waš rěd kazy.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Dowěrim wósobje, kótaraž jo pósłała toś tu dataju
[two] Dowěrim wósobje, kótaraž jo pósłała toś tej dataji
[few] Dowěrim wósobje, kótaraž jo pósłała toś te dataje
*[other] Dowěrim wósobje, kótaraž jo pósłała toś te dataje
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Toś tu dataju ako suspektnu k wěsći daś
[two] Toś tej dataji ako suspektnej k wěsći daś
[few] Toś te dataje ako suspektne k wěsći daś
*[other] Toś te dataje ako suspektne k wěsći daś
}
reportDescription = Pomagajśo nam rozumić, co se stawa. Co pó wašom měnjenju njejo w pórědku z toś tymi datajami?
reportUnknownDescription = Źiśo pšosym k URL wótkaza, kótaryž cośo k wěsći daś a klikniśo na „{ reportFile }“.
reportButton = K wěsći daś
reportReasonMalware = Toś te dataje škódnu softwaru wopśimuju abo su źěl napada kšadnjenja datow.
reportReasonPii = Toś te dataje wósobinske informacije wó mnje, kótarež mógu mě identificěrowaś.
reportReasonAbuse = Toś te dataje njedowólone abo ranjece wopśimjeśe wopśimuju.
reportReasonCopyright = Aby pśestupjenje awtorskego pšawa abo pšawa wikowwych markow k wěsći dał, wužywajśo póstupowanje, kótarež se na <a>toś tom boku</a> wopisujo.
reportedTitle = Dataje k wěsći dane
reportedDescription = Wjeliki źěk. Smy dostali wašu rozpšawu wó toś tych datajach.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Σχόλια
importingFile = Εισαγωγή… importingFile = Εισαγωγή…
encryptingFile = Κρυπτογράφηση… encryptingFile = Κρυπτογράφηση…
decryptingFile = Αποκρυπτογράφηση… decryptingFile = Αποκρυπτογράφηση…
@ -116,6 +115,7 @@ legalDateStamp = Έκδοση 1.0, από 12 Μαρτίου 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }η { $hours }ώ { $minutes }λ expiresDaysHoursMinutes = { $days }η { $hours }ώ { $minutes }λ
addFilesButton = Επιλέξτε αρχεία για μεταφόρτωση addFilesButton = Επιλέξτε αρχεία για μεταφόρτωση
trustWarningMessage = Βεβαιωθείτε ότι ο παραλήπτης είναι έμπιστος πριν μοιραστείτε ευαίσθητα δεδομένα.
uploadButton = Μεταφόρτωση uploadButton = Μεταφόρτωση
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Σύρετε και εναποθέστε αρχεία dragAndDropFiles = Σύρετε και εναποθέστε αρχεία
@ -140,7 +140,7 @@ accountBenefitSync = Διαχειριστείτε τα διαμοιρασμέν
accountBenefitMoz = Μάθετε για τις άλλες υπηρεσίες της { -mozilla } accountBenefitMoz = Μάθετε για τις άλλες υπηρεσίες της { -mozilla }
signOut = Αποσύνδεση signOut = Αποσύνδεση
okButton = OK okButton = OK
downloadingTitle = Λήψη downloadingTitle = Γίνεται λήψη
noStreamsWarning = Αυτό το πρόγραμμα περιήγησης ενδέχεται να μην μπορέσει να αποκρυπτογραφήσει αρχεία αυτού του μεγέθους. noStreamsWarning = Αυτό το πρόγραμμα περιήγησης ενδέχεται να μην μπορέσει να αποκρυπτογραφήσει αρχεία αυτού του μεγέθους.
noStreamsOptionCopy = Αντιγράψτε το σύνδεσμο για άνοιγμα σε άλλο πρόγραμμα περιήγησης noStreamsOptionCopy = Αντιγράψτε το σύνδεσμο για άνοιγμα σε άλλο πρόγραμμα περιήγησης
noStreamsOptionFirefox = Δοκιμάστε το αγαπημένο μας πρόγραμμα περιήγησης noStreamsOptionFirefox = Δοκιμάστε το αγαπημένο μας πρόγραμμα περιήγησης
@ -153,3 +153,33 @@ shareLinkButton = Κοινή χρήση συνδέσμου
shareMessage = Λήψη του “{ $name }” με το { -send-brand }: απλός και ασφαλής διαμοιρασμός αρχείων shareMessage = Λήψη του “{ $name }” με το { -send-brand }: απλός και ασφαλής διαμοιρασμός αρχείων
trailheadPromo = Υπάρχει τρόπος να προστατέψετε το απόρρητό σας. Γίνετε μέλος του Firefox. trailheadPromo = Υπάρχει τρόπος να προστατέψετε το απόρρητό σας. Γίνετε μέλος του Firefox.
learnMore = Μάθετε περισσότερα. learnMore = Μάθετε περισσότερα.
downloadFlagged = Αυτός ο σύνδεσμος έχει απενεργοποιηθεί λόγω παραβίασης των όρων υπηρεσίας.
downloadConfirmTitle = Κάτι ακόμα
downloadConfirmDescription = Βεβαιωθείτε ότι το αρχείο προέρχεται από έμπιστο άτομο, καθώς δεν μπορούμε να επαληθεύσουμε ότι δεν θα βλάψει τη συσκευή σας.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Εμπιστεύομαι το άτομο που έστειλε το αρχείο
*[other] Εμπιστεύομαι το άτομο που έστειλε τα αρχεία
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Αναφορά ύποπτου αρχείου
*[other] Αναφορά ύποπτων αρχείων
}
reportDescription = Βοηθήστε μας να καταλάβουμε τι συμβαίνει. Τι νομίζετε ότι δεν πάει καλά με αυτά τα αρχεία;
reportUnknownDescription = Παρακαλούμε μεταβείτε στο URL του συνδέσμου που θέλετε να αναφέρετε και κάντε κλικ στο "{ reportFile }".
reportButton = Αναφορά
reportReasonMalware = Αυτά τα αρχεία περιέχουν κακόβουλο λογισμικό ή αποτελούν μέρος μιας επίθεσης ηλεκτρονικού ψαρέματος.
reportReasonPii = Αυτά τα αρχεία περιέχουν προσωπικές μου πληροφορίες ταυτοποίησης.
reportReasonAbuse = Αυτά τα αρχεία περιέχουν παράνομο ή καταχρηστικό περιεχόμενο.
reportReasonCopyright = Για να αναφέρετε παραβίαση πνευματικών δικαιωμάτων ή εμπορικών σημάτων, χρησιμοποιήστε τη διαδικασία που περιγράφεται σε <a>αυτή τη σελίδα</a>.
reportedTitle = Έγινε αναφορά των αρχείων
reportedDescription = Σας ευχαριστούμε. Λάβαμε την αναφορά σας για τα αρχεία.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Importing… importingFile = Importing…
encryptingFile = Encrypting… encryptingFile = Encrypting…
decryptingFile = Decrypting… decryptingFile = Decrypting…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, dated March 12, 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Select files to upload addFilesButton = Select files to upload
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
uploadButton = Upload uploadButton = Upload
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Drag and drop files dragAndDropFiles = Drag and drop files
@ -153,3 +153,33 @@ shareLinkButton = Share link
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
trailheadPromo = There is a way to protect your privacy. Join Firefox. trailheadPromo = There is a way to protect your privacy. Join Firefox.
learnMore = Learn more. learnMore = Learn more.
downloadFlagged = This link has been disabled for violating the terms of service.
downloadConfirmTitle = One more thing
downloadConfirmDescription = Make sure you trust the person who sent you this file because we cant verify that it will not harm your device.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] I trust the person who sent this file
*[other] I trust the person who sent these files
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Report this file as suspicious
*[other] Report these files as suspicious
}
reportDescription = Help us understand whats going on. What do you think is wrong with these files?
reportUnknownDescription = Please go to the URL of the link you wish to report and click “{ reportFile }”.
reportButton = Report
reportReasonMalware = These files contain malware or are part of a phishing attack.
reportReasonPii = These files contain personally identifiable information about me.
reportReasonAbuse = These files contain illegal or abusive content.
reportReasonCopyright = To report copyright or trademark infringement, use the process described at <a>this page</a>.
reportedTitle = Files Reported
reportedDescription = Thank you. We have received your report on these files.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Importing… importingFile = Importing…
encryptingFile = Encrypting… encryptingFile = Encrypting…
decryptingFile = Decrypting… decryptingFile = Decrypting…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, dated March 12, 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Select files to upload addFilesButton = Select files to upload
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
uploadButton = Upload uploadButton = Upload
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Drag and drop files dragAndDropFiles = Drag and drop files
@ -153,3 +153,33 @@ shareLinkButton = Share link
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
trailheadPromo = There is a way to protect your privacy. Join Firefox. trailheadPromo = There is a way to protect your privacy. Join Firefox.
learnMore = Learn more. learnMore = Learn more.
downloadFlagged = This link has been disabled for violating the terms of service.
downloadConfirmTitle = One more thing
downloadConfirmDescription = Make sure you trust the person who sent you this file because we cant verify that it will not harm your device.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] I trust the person who sent this file
*[other] I trust the person who sent these files
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Report this file as suspicious
*[other] Report these files as suspicious
}
reportDescription = Help us understand whats going on. What do you think is wrong with these files?
reportUnknownDescription = Please go to the url of the link you wish to report and click “{ reportFile }”.
reportButton = Report
reportReasonMalware = These files contain malware or are part of a phishing attack.
reportReasonPii = These files contain personally identifiable information about me.
reportReasonAbuse = These files contain illegal or abusive content.
reportReasonCopyright = To report copyright or trademark infringement, use the process described at <a>this page</a>.
reportedTitle = Files Reported
reportedDescription = Thank you. We have received your report on these files.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Importing… importingFile = Importing…
encryptingFile = Encrypting… encryptingFile = Encrypting…
decryptingFile = Decrypting… decryptingFile = Decrypting…
@ -109,6 +108,7 @@ legalDateStamp = Version 1.0, dated March 12, 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Select files to upload addFilesButton = Select files to upload
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
uploadButton = Upload uploadButton = Upload
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Drag and drop files dragAndDropFiles = Drag and drop files
@ -145,3 +145,33 @@ shareLinkButton = Share link
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
trailheadPromo = There is a way to protect your privacy. Join Firefox. trailheadPromo = There is a way to protect your privacy. Join Firefox.
learnMore = Learn more. learnMore = Learn more.
downloadFlagged = This link has been disabled for violating the terms of service.
downloadConfirmTitle = One more thing
downloadConfirmDescription = Make sure you trust the person who sent you this file because we cant verify that it will not harm your device.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] I trust the person who sent this file
*[other] I trust the person who sent these files
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Report this file as suspicious
*[other] Report these files as suspicious
}
reportDescription = Help us understand whats going on. What do you think is wrong with these files?
reportUnknownDescription = Please go to the url of the link you wish to report and click “{ reportFile }”.
reportButton = Report
reportReasonMalware = These files contain malware or are part of a phishing attack.
reportReasonPii = These files contain personally identifiable information about me.
reportReasonAbuse = These files contain illegal or abusive content.
reportReasonCopyright = To report copyright or trademark infringement, use the process described at <a>this page</a>.
reportedTitle = Files Reported
reportedDescription = Thank you. We have received your report on these files.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Opinión
importingFile = Importando… importingFile = Importando…
encryptingFile = Cifrando… encryptingFile = Cifrando…
decryptingFile = Descifrando… decryptingFile = Descifrando…
@ -116,6 +115,7 @@ legalDateStamp = Versión 1.0, con fecha 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" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Seleccionar archivos para subir addFilesButton = Seleccionar archivos para subir
trustWarningMessage = Asegurate de que confiás en tu destinatario cuando compartís datos confidenciales.
uploadButton = Subir uploadButton = Subir
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arrastrar y soltar archivos dragAndDropFiles = Arrastrar y soltar archivos
@ -153,3 +153,33 @@ shareLinkButton = Compartir el enlace
shareMessage = Descargar "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura shareMessage = Descargar "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
trailheadPromo = Hay una forma de proteger tu privacidad. Unite a Firefox. trailheadPromo = Hay una forma de proteger tu privacidad. Unite a Firefox.
learnMore = Conocer más. learnMore = Conocer más.
downloadFlagged = Este enlace fue deshabilitado por violar los términos del servicio.
downloadConfirmTitle = Una cosa más
downloadConfirmDescription = Asegurate de confiar en la persona que te envió este archivo porque no podemos verificar que no va a dañar tu dispositivo.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Confío en la persona que envió este archivo
*[other] Confío en la persona que envió estos archivos
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Denunciar este archivo como sospechoso
*[other] Denunciar estos archivos como sospechosos
}
reportDescription = Ayudanos a entender lo que está pasando. ¿Qué creés que está mal con estos archivos?
reportUnknownDescription = Navegá a la url del enlace que querés denunciar y hacé clic en "{ reportFile }".
reportButton = Denunciar
reportReasonMalware = Estos archivos contienen programas dañinos o son parte de un fraude electrónico.
reportReasonPii = Estos archivos contienen información personal que me puede identificar.
reportReasonAbuse = Estos archivos contienen contenido ilegal o abusivo.
reportReasonCopyright = Para denunciar una infracción de derechos de autor o de marca registrada, seguí el proceso descrito en <a>esta página</a>.
reportedTitle = Archivos denunciados
reportedDescription = Gracias. Recibimos tu denuncia sobre estos archivos.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Comentarios
importingFile = Importando… importingFile = Importando…
encryptingFile = Cifrando… encryptingFile = Cifrando…
decryptingFile = Descifrando… decryptingFile = Descifrando…
@ -116,6 +115,7 @@ 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" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Selecciona los archivos a subir addFilesButton = Selecciona los archivos a subir
trustWarningMessage = Asegúrate de que confías en tu destinatario cuando compartas datos sensibles.
uploadButton = Subir uploadButton = Subir
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arrastra y suelta archivos dragAndDropFiles = Arrastra y suelta archivos
@ -153,3 +153,33 @@ shareLinkButton = Compartir enlace
shareMessage = Baja "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura shareMessage = Baja "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
trailheadPromo = Hay una forma de proteger tu privacidad. Únete a Firefox. trailheadPromo = Hay una forma de proteger tu privacidad. Únete a Firefox.
learnMore = Aprender más. learnMore = Aprender más.
downloadFlagged = Este enlace ha sido deshabilitado por violar los términos del servicio.
downloadConfirmTitle = Una cosa más
downloadConfirmDescription = Asegúrate de confiar en la persona que te envió este archivo porque no podemos verificar que no dañará tu dispositivo.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Confío en la persona que envió es archivo
*[other] Confío en la persona que envió estos archivos
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Reportar este archivo como sospechoso
*[other] Reportar estos archivos como sospechosos
}
reportDescription = Ayúdanos a entender lo que está pasando. ¿Qué crees que está mal con estos archivos?
reportUnknownDescription = Por favor, ve a la url del enlace que quieres reportar y haz clic en "{ reportFile }".
reportButton = Reportar
reportReasonMalware = Estos archivos contienen malware o son parte de un ataque de phishing.
reportReasonPii = Estos archivos contienen información personal identificable sobre mí.
reportReasonAbuse = Estos archivos contienen contenido ilegal o abusivo.
reportReasonCopyright = Para denunciar una infracción de derechos de autor o de marca registrada, sigue el proceso descrito en <a>esta página</a>.
reportedTitle = Archivos reportados
reportedDescription = Gracias. Hemos recibido tu reporte sobre estos archivos.

View File

@ -1,9 +1,8 @@
# 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 title = Firefox Send
siteFeedback = Comentario
importingFile = Importando... importingFile = Importando...
encryptingFile = Encriptando... encryptingFile = Cifrando...
decryptingFile = Desencriptando... decryptingFile = Descifrando...
downloadCount = downloadCount =
{ $num -> { $num ->
[one] 1 descarga [one] 1 descarga
@ -21,11 +20,11 @@ downloadButtonLabel = Descargar
downloadFinish = Descarga completa downloadFinish = Descarga completa
fileSizeProgress = ({ $partialSize } de { $totalSize }) fileSizeProgress = ({ $partialSize } de { $totalSize })
sendYourFilesLink = Prueba Firefox Send sendYourFilesLink = Prueba Firefox Send
errorPageHeader = ¡Se produjo un error! errorPageHeader = ¡Se ha producido un error!
fileTooBig = Ese archivo es muy grande. Debería ocupar menos de { $size }. fileTooBig = Ese archivo es muy grande. Debería ocupar menos de { $size }.
linkExpiredAlt = Enlace caducado linkExpiredAlt = Enlace caducado
notSupportedHeader = Tu navegador no está admitido. notSupportedHeader = Tu navegador no es compatible.
notSupportedLink = ¿Por qué no se admite mi navegador? notSupportedLink = ¿Por qué mi navegador no es compatible?
notSupportedOutdatedDetail = Lamentablemente, esta versión de Firefox no admite la tecnología web que impulsa Firefox Send. Tendrás que actualizar tu navegador. notSupportedOutdatedDetail = Lamentablemente, esta versión de Firefox no admite la tecnología web que impulsa Firefox Send. Tendrás que actualizar tu navegador.
updateFirefox = Actualizar Firefox updateFirefox = Actualizar Firefox
deletePopupCancel = Cancelar deletePopupCancel = Cancelar
@ -33,7 +32,7 @@ deleteButtonHover = Eliminar
footerLinkLegal = Legal footerLinkLegal = Legal
footerLinkPrivacy = Privacidad footerLinkPrivacy = Privacidad
footerLinkCookies = Cookies footerLinkCookies = Cookies
passwordTryAgain = Contraseña incorrecta. Inténtelo de nuevo. passwordTryAgain = Contraseña incorrecta. Inténtalo de nuevo.
javascriptRequired = Firefox Send requiere JavaScript javascriptRequired = Firefox Send requiere JavaScript
whyJavascript = ¿Por qué Firefox Send requiere JavaScript? whyJavascript = ¿Por qué Firefox Send requiere JavaScript?
enableJavascript = Por favor, activa JavaScript y vuelve a intentarlo. enableJavascript = Por favor, activa JavaScript y vuelve a intentarlo.
@ -116,6 +115,7 @@ 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" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Seleccionar archivos para subir addFilesButton = Seleccionar archivos para subir
trustWarningMessage = Asegúrate de que confías en tu destinatario cuando compartas datos sensibles.
uploadButton = Subir uploadButton = Subir
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arrastrar y soltar archivos dragAndDropFiles = Arrastrar y soltar archivos
@ -153,3 +153,33 @@ shareLinkButton = Compartir enlace
shareMessage = Descargar “{ $name }” con { -send-brand }: comparte archivos de forma segura y sencilla shareMessage = Descargar “{ $name }” con { -send-brand }: comparte archivos de forma segura y sencilla
trailheadPromo = Existe la forma de proteger tu privacidad. Únete a Firefox. trailheadPromo = Existe la forma de proteger tu privacidad. Únete a Firefox.
learnMore = Saber más. learnMore = Saber más.
downloadFlagged = Este enlace ha sido desactivado por violar los términos del servicio.
downloadConfirmTitle = Una cosa más
downloadConfirmDescription = Asegúrate de confiar en la persona que te envió este archivo porque no podemos verificar que no va a dañar tu dispositivo.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Confío en la persona que envió este archivo
*[other] Confío en la persona que envió estos archivos
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Denunciar este archivo como sospechoso
*[other] Denunciar estos archivos como sospechosos
}
reportDescription = Ayúdanos a entender lo que está pasando. ¿Qué crees que está mal con estos archivos?
reportUnknownDescription = Por favor, ve a la url del enlace que quieres denunciar y haz clic en “{ reportFile }”.
reportButton = Denunciar
reportReasonMalware = Estos archivos contienen malware o son parte de un ataque de phishing.
reportReasonPii = Estos archivos contienen información personal identificable sobre mí.
reportReasonAbuse = Estos archivos tienen contenido ilegal o abusivo.
reportReasonCopyright = Para denunciar una infracción de derechos de autor o marca registrada, sigue el proceso descrito en <a>esta página</a>.
reportedTitle = Archivos denunciados
reportedDescription = Gracias. Hemos recibido tu denuncia sobre estos archivos.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Palaute
importingFile = Tuodaan… importingFile = Tuodaan…
encryptingFile = Salataan... encryptingFile = Salataan...
decryptingFile = Puretaan salausta... decryptingFile = Puretaan salausta...
@ -116,6 +115,7 @@ legalDateStamp = Versio 1.0, päivätty 13. maaliskuuta 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } pv { $hours } t { $minutes } min expiresDaysHoursMinutes = { $days } pv { $hours } t { $minutes } min
addFilesButton = Valitse lähetettävät tiedostot addFilesButton = Valitse lähetettävät tiedostot
trustWarningMessage = Varmista, että luotat vastaanottajaan jakaessasi arkaluontoisia tietoja.
uploadButton = Lähetä uploadButton = Lähetä
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Vedä ja pudota tiedostot dragAndDropFiles = Vedä ja pudota tiedostot
@ -153,3 +153,33 @@ shareLinkButton = Jaa linkki
shareMessage = Lataa tiedosto ”{ $name }” { -send-brand } -palvelusta: yksinkertaista ja turvallista tiedostonjakoa shareMessage = Lataa tiedosto ”{ $name }” { -send-brand } -palvelusta: yksinkertaista ja turvallista tiedostonjakoa
trailheadPromo = On tapa suojata yksityisyyttään. Liity Firefoxiin. trailheadPromo = On tapa suojata yksityisyyttään. Liity Firefoxiin.
learnMore = Lue lisää. learnMore = Lue lisää.
downloadFlagged = Tämä linkki on poistettu käytöstä palvelun käyttöehtojen rikkomisen vuoksi.
downloadConfirmTitle = Vielä yksi asia
downloadConfirmDescription = Varmista, että luotat sinulle tämän tiedoston lähettäneeseen henkilöön, koska emme voi vahvistaa, ettei kyseinen tiedosto vahingoita laitettasi.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Luotan henkilöön, joka lähetti tämän tiedoston
*[other] Luotan henkilöön, joka lähetti nämä tiedostot
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Ilmoita tämä tiedosto epäilyttävänä
*[other] Ilmoita nämä tiedostot epäilyttävinä
}
reportDescription = Auta meitä ymmärtämään mitä tapahtuu. Mikä on mielestäsi vialla näissä tiedostoissa?
reportUnknownDescription = Siirry sen linkin osoitteeseen, josta haluat tehdä ilmoituksen, ja napsauta “{ reportFile }”.
reportButton = Ilmoita
reportReasonMalware = Nämä tiedostot sisältävät haittaohjelmia tai ovat osa tietojenkalasteluhyökkäystä.
reportReasonPii = Nämä tiedostot sisältävät henkilökohtaisia tietoja minusta.
reportReasonAbuse = Nämä tiedostot sisältävät laitonta tai loukkaavaa sisältöä.
reportReasonCopyright = Ilmoita tekijänoikeuksien tai tavaramerkkien loukkauksista <a>tällä sivulla</a> kuvatun prosessin mukaisesti.
reportedTitle = Tiedostot ilmoitettu
reportedDescription = Kiitos. Olemme vastaanottaneet raporttisi näistä tiedostoista.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Votre avis
importingFile = Importation… importingFile = Importation…
encryptingFile = Chiffrement… encryptingFile = Chiffrement…
decryptingFile = Déchiffrement… decryptingFile = Déchiffrement…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0 du 12 mars 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
addFilesButton = Sélectionnez des fichiers à envoyer addFilesButton = Sélectionnez des fichiers à envoyer
trustWarningMessage = Assurez-vous de faire confiance au destinataire lorsque vous partagez des données sensibles.
uploadButton = Envoyer uploadButton = Envoyer
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Glissez-déposez des fichiers dragAndDropFiles = Glissez-déposez des fichiers
@ -153,3 +153,33 @@ shareLinkButton = Partager le lien
shareMessage = Télécharger « { $name } » avec { -send-brand } : un moyen simple et sûr de partager des fichiers shareMessage = Télécharger « { $name } » avec { -send-brand } : un moyen simple et sûr de partager des fichiers
trailheadPromo = Il existe un moyen de protéger votre vie privée. Rejoignez Firefox. trailheadPromo = Il existe un moyen de protéger votre vie privée. Rejoignez Firefox.
learnMore = En savoir plus. learnMore = En savoir plus.
downloadFlagged = Ce lien a été désactivé en raison dune violation des conditions dutilisation.
downloadConfirmTitle = Une dernière chose
downloadConfirmDescription = Assurez-vous de faire confiance à la personne qui vous a envoyé ce fichier, car nous ne pouvons pas vérifier quil nendommagera pas votre appareil.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Je fais confiance à la personne qui a envoyé ce fichier
*[other] Je fais confiance à la personne qui a envoyé ces fichiers
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Signaler ce fichier comme suspect
*[other] Signaler ces fichiers comme suspects
}
reportDescription = Aidez-nous à comprendre ce qui se passe. Selon vous, quel est le problème avec ces fichiers ?
reportUnknownDescription = Accédez à ladresse du lien que vous souhaitez signaler et cliquez sur « { reportFile } ».
reportButton = Signaler
reportReasonMalware = Ces fichiers contiennent des logiciels malveillants ou contribuent à une attaque de hameçonnage.
reportReasonPii = Ces fichiers contiennent des informations personnelles qui me concernent.
reportReasonAbuse = Ces fichiers contiennent du contenu illégal ou abusif.
reportReasonCopyright = Pour signaler une violation de droit dauteur ou de marque, suivez la procédure décrite sur <a>cette page</a>.
reportedTitle = Fichiers signalés
reportedDescription = Merci, nous avons reçu votre signalement relatif à ces fichiers.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Kommentaar
importingFile = Ymportearje… importingFile = Ymportearje…
encryptingFile = Fersiferje… encryptingFile = Fersiferje…
decryptingFile = Untsiferje… decryptingFile = Untsiferje…
@ -116,6 +115,7 @@ legalDateStamp = Ferzje 1.0, datearre 12 maart 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 }o { $minutes }m expiresDaysHoursMinutes = { $days }d { $hours }o { $minutes }m
addFilesButton = Bestannen selektearje om op te laden addFilesButton = Bestannen selektearje om op te laden
trustWarningMessage = Soargje derfoar dat jo jo ûntfanger fertrouwe wannear't jo gefoelige gegevens diele.
uploadButton = Oplade uploadButton = Oplade
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Sleep en pleats bestannen dragAndDropFiles = Sleep en pleats bestannen
@ -153,3 +153,33 @@ shareLinkButton = Keppeling diele
shareMessage = Download { $name } mei { -send-brand }: ienfâldich, feilich bestannen diele shareMessage = Download { $name } mei { -send-brand }: ienfâldich, feilich bestannen diele
trailheadPromo = Der is in manier om jo privacy te beskermjen. Doch mei mei Firefox. trailheadPromo = Der is in manier om jo privacy te beskermjen. Doch mei mei Firefox.
learnMore = Mear ynfo. learnMore = Mear ynfo.
downloadFlagged = Dizze keppeling is útskeakele fanwegen skeining fan de servicebetingsten.
downloadConfirmTitle = Noch ien ding
downloadConfirmDescription = Soargje derfoar dat jo de persoan fertrouwe dy't jo dit bestân stjoerd hat, omdat wy net ferifiearje kinne dat it jo apparaat net skansearje sil.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Ik fertrou de persoan dy't dit bestân stjoerd hat
*[other] Ik fertrou de persoan dy't dizze bestannen stjoerd hat
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Dit bestân as fertocht rapportearje
*[other] Dizze bestannen as fertocht rapportearje
}
reportDescription = Help ús te begripen wat der oan de hân is. Wat is der neffens jo mis mei dizze bestannen?
reportUnknownDescription = Gean nei de URL fan de keppeling dy't jo melde wolle en klik op { reportFile }.
reportButton = Rapportearje
reportReasonMalware = Dizze bestannen befetsje malware of binne part fan in phishingoanfal.
reportReasonPii = Dizze bestannen befetsje persoanlik identifisearjende ynformaasje oer my.
reportReasonAbuse = Dizze bestannen befetsje yllegale of beledigjende ynhâld.
reportReasonCopyright = Brûk de proseduere op <a>dizze side</a> om ynbreuk op auteursrjochten of hannelsmerken te melden.
reportedTitle = Bestannen rapportearre
reportedDescription = Tank. Wy hawwe jo rapport oer dizze bestannen ûntfongen.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Jeejey
importingFile = Ojegueruhína… importingFile = Ojegueruhína…
encryptingFile = Moãmby… encryptingFile = Moãmby…
decryptingFile = Ñemoão… decryptingFile = Ñemoão…
@ -53,7 +52,7 @@ passwordSetError = Ndaikatúi oikóvo ko ñeẽñemi
-send-short-brand = Send -send-short-brand = Send
-firefox = Firefox -firefox = Firefox
-mozilla = Mozilla -mozilla = Mozilla
introTitle = Marandurenda ñemoambue hasy'ỹ ha ñemiguáva introTitle = Marandurenda ñemoambue hasyỹ ha ñemiguáva
introDescription = { -send-brand } omoherakuãkuaa marandurenda papapýpe ñepyrũ guive opa peve ha juajuha opareíva ijehegui. Ikatu oreko ñemihápe emoherakuãva ha ehecháta mbaéicha ne mbaekuéra noĩri ñandutípe opa ára. introDescription = { -send-brand } omoherakuãkuaa marandurenda papapýpe ñepyrũ guive opa peve ha juajuha opareíva ijehegui. Ikatu oreko ñemihápe emoherakuãva ha ehecháta mbaéicha ne mbaekuéra noĩri ñandutípe opa ára.
notifyUploadEncryptDone = Ne marandurenda oñemoã ha ikatúma emondo notifyUploadEncryptDone = Ne marandurenda oñemoã ha ikatúma emondo
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes' # downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
@ -116,6 +115,7 @@ legalDateStamp = Mbaepyahu 1.0, 12 jasyapy 2019 peguare
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Eiporavo marandurenda ehupi hag̃ua addFilesButton = Eiporavo marandurenda ehupi hag̃ua
trustWarningMessage = Ejerovia añetépa emondotaháre emoherakuãvo mbaekuaarã kañyguáva.
uploadButton = Hupi uploadButton = Hupi
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Embosyryry ha epoi marandurenda dragAndDropFiles = Embosyryry ha epoi marandurenda
@ -137,7 +137,7 @@ accountBenefitTimeLimit =
*[other] Eguereko juajuha hendyhápe { $count } ára *[other] Eguereko juajuha hendyhápe { $count } ára
} }
accountBenefitSync = Eñangareko marandurenda moherakuãmbyrére oimeraẽ mbaeoka guive. accountBenefitSync = Eñangareko marandurenda moherakuãmbyrére oimeraẽ mbaeoka guive.
accountBenefitMoz = Eikuaa ambue { -mozilla } mba'epytyvõrã accountBenefitMoz = Eikuaa ambue { -mozilla } mbaepytyvõrã
signOut = Emboty tembiapo signOut = Emboty tembiapo
okButton = OK okButton = OK
downloadingTitle = Oñemboguejyhína downloadingTitle = Oñemboguejyhína
@ -150,6 +150,36 @@ downloadFirefoxPromo = Ipyahúva { -firefox } omeẽse ndéve { -send-short-b
shareLinkDescription = Emoherakuã juajuha ne mbaeoka ndive: shareLinkDescription = Emoherakuã juajuha ne mbaeoka ndive:
shareLinkButton = Emoherakuã juajuha shareLinkButton = Emoherakuã juajuha
# $name is the name of the file # $name is the name of the file
shareMessage = Emboguejy “{ $name }” { -send-brand } ndive: emoherakuã marandurenda tasy'ỹ ha tekorosãme shareMessage = Emboguejy “{ $name }” { -send-brand } ndive: emoherakuã marandurenda tasyỹ ha tekorosãme
trailheadPromo = Mbaéichapa emoãta ne ñemigua. Eipuru Firefox. trailheadPromo = Mbaéichapa emoãta ne ñemigua. Eipuru Firefox.
learnMore = Kuaave. learnMore = Kuaave.
downloadFlagged = Ko juajuha ojepeáma ombyai rupi mbaepytyvõrã ñemboguata.
downloadConfirmTitle = Peteĩ mbaeve
downloadConfirmDescription = Ejerovia añetépa pe tapicha oguerukáva ndéve ko marandurenda ndaikatúire rohechajey ne mbaeoka.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Ajerovia tapicháre orukáva ko marandurenda
*[other] Ajerovia umi tapicha orukáva koã marandurenda
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Ehechauka ko marandurenda imarãkuaávarõ
*[other] Ehechauka koã marandurenda imarãkuaávarõ
}
reportDescription = Orepytyvõ roikumbývo mbaépa oiko. ¿Mbaépa ere oĩvaiha koã marandurenda ndive?
reportUnknownDescription = Eikundaha pe url juajuha ekoroiseha ndive ha eikutu “{ reportFile }”.
reportButton = Ekorói
reportReasonMalware = Koã marandurenda oreko tembiaporape imarãva térã oñembyaikuaáva.
reportReasonPii = Koã marandurenda oreko marandu nembaetéva che kuaaukakuaáva.
reportReasonAbuse = Koã marandurenda oreko tetepy ivai térã imbaretéva.
reportReasonCopyright = Ekoróitarõ derécho ñembyaíre térã marca registrada, ehecha jehaipyre <a>ko kuatiaroguépe</a>.
reportedTitle = Marandurenda jekoroihague
reportedDescription = Aguyje. Og̃uahẽ nde jekorói koã marandurenda rehegua.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = משוב
importingFile = מתבצע ייבוא… importingFile = מתבצע ייבוא…
encryptingFile = מתבצעת הצפנה... encryptingFile = מתבצעת הצפנה...
decryptingFile = מתבצע פענוח... decryptingFile = מתבצע פענוח...
@ -119,6 +118,7 @@ legalDateStamp = גרסה 1.0, בתאריך 12 במרץ 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } ימים { $hours } שעות { $minutes } דקות expiresDaysHoursMinutes = { $days } ימים { $hours } שעות { $minutes } דקות
addFilesButton = בחירת קבצים להעלאה addFilesButton = בחירת קבצים להעלאה
trustWarningMessage = עליך לוודא שבעת שיתוף מידע רגיש הנמענים שלך הם מהימנים.
uploadButton = העלאה uploadButton = העלאה
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = גרירה והשלכת קבצים dragAndDropFiles = גרירה והשלכת קבצים
@ -156,3 +156,31 @@ shareLinkButton = שיתוף קישור
shareMessage = הורדת ״{ $name }״ עם { -send-brand }: שיתוף קבצים פשוט ובטוח shareMessage = הורדת ״{ $name }״ עם { -send-brand }: שיתוף קבצים פשוט ובטוח
trailheadPromo = ישנן דרכים נוספות להגן על הפרטיות שלכם. הצטרפו אל Firefox. trailheadPromo = ישנן דרכים נוספות להגן על הפרטיות שלכם. הצטרפו אל Firefox.
learnMore = מידע נוסף. learnMore = מידע נוסף.
downloadFlagged = קישור זה הושבת מכיוון שהפר את תנאי השירות.
downloadConfirmTitle = דבר אחד אחרון
downloadConfirmDescription = נא לוודא שמי ששלח לך את הקובץ הזה מהימן כיוון שאין לנו אפשרות לוודא שהוא לא יפגע במכשיר שלך.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] שולח הקובץ הזה מהימן
*[other] שולח הקבצים האלו מהימן
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] דיווח על קובץ זה כחשוד
*[other] דיווח על קבצים אלו כחשודים
}
reportUnknownDescription = נא לגשת אל כתובת הקישור עליו ברצונך לדווח וללחוץ על ״{ reportFile }״.
reportButton = דיווח
reportReasonMalware = קבצים אלה מכילים תוכנה זדונית או שהינם חלק מהתקפת דיוג.
reportReasonAbuse = קבצים אלה מכילים תוכן בלתי חוקי או פוגע.
reportReasonCopyright = כדי לדווח על הפרה של זכויות יוצרים או סימני מסחר, יש להשתמש בתהליך המתואר ב<a>דף זה</a>.
reportedTitle = קבצים שדווחו
reportedDescription = תודה. קיבלנו את הדיווח שלך על קבצים אלה.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Povratne informacije
importingFile = Uvoz… importingFile = Uvoz…
encryptingFile = Šifriranje … encryptingFile = Šifriranje …
decryptingFile = Dešifriranje … decryptingFile = Dešifriranje …
@ -124,6 +123,7 @@ legalDateStamp = Verzija 1.0, od 12. ožujka 2019. godine
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 }s { $minutes }m expiresDaysHoursMinutes = { $days }d { $hours }s { $minutes }m
addFilesButton = Odaberi datoteke za prijenos addFilesButton = Odaberi datoteke za prijenos
trustWarningMessage = Budite sigurni da vjerujete primatelju prije dijeljenja osjetljivih podataka.
uploadButton = Prijenos uploadButton = Prijenos
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Povuci i ispusti datoteke dragAndDropFiles = Povuci i ispusti datoteke
@ -162,3 +162,35 @@ shareLinkButton = Dijeli poveznicu
shareMessage = Preuzmi „{ $name }” pomoću { -send-brand }: jednostavno i sigurno dijeljenje datoteka shareMessage = Preuzmi „{ $name }” pomoću { -send-brand }: jednostavno i sigurno dijeljenje datoteka
trailheadPromo = Postoji način, kako zaštititi vlastitu privatnost. Pridruži se Firefoxu. trailheadPromo = Postoji način, kako zaštititi vlastitu privatnost. Pridruži se Firefoxu.
learnMore = Saznaj više. learnMore = Saznaj više.
downloadFlagged = Poveznica je onemogućena zbog kršenja uvjeta pružanja usluge.
downloadConfirmTitle = Još jedna stvar
downloadConfirmDescription = Budite sigurni da vjerujete osobi koja vam je poslala ovu datoteku, zato što mi ne možemo provjeriti da li će ova datoteka naštetiti vašem uređaju.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Vjerujem osobi koja je poslala ove datoteke
[few] Vjerujem osobi koja je poslala ove datoteke
*[other] Vjerujem osobi koja je poslala ove datoteke
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Prijavi ove datoteke kao sumnjive
[few] Prijavi ove datoteke kao sumnjive
*[other] Prijavi ove datoteke kao sumnjive
}
reportDescription = Pomozite nam da shvatimo što se dešava. Zašto mislite da nešto nije u redu s ovim datotekama?
reportUnknownDescription = Idite na poveznicu koju želite prijaviti i kliknite “{ reportFile }”.
reportButton = Prijavi datoteku
reportReasonMalware = Ove datoteke sadrže zlonamjerni softver ili su dio napada za krađu identiteta.
reportReasonPii = Ove datoteke sadrže moje osobne podatke.
reportReasonAbuse = Ove datoteke sadrže ilegalni ili nasilni sadržaj.
reportReasonCopyright = Kako biste prijavili kršenje autorskih prava, koristite proces opisan na <a>ovoj stranici</a>.
reportedTitle = Datoteke prijavljene
reportedDescription = Hvala vam. Primili smo vašu prijavu za ove datoteke.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Komentar
importingFile = Importuje so... importingFile = Importuje so...
encryptingFile = Zaklučuje so... encryptingFile = Zaklučuje so...
decryptingFile = Dešifruje so... decryptingFile = Dešifruje so...
@ -132,6 +131,7 @@ legalDateStamp = Wersija 1.0 wot 12. měrca 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Dataje za nahrawanje wubrać addFilesButton = Dataje za nahrawanje wubrać
trustWarningMessage = Wy měł přijimarjej dowěrić, hdyž sensibelne daty dźěliće.
uploadButton = Nahrać uploadButton = Nahrać
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Ćehńće a wotkładźće dataje dragAndDropFiles = Ćehńće a wotkładźće dataje
@ -171,3 +171,37 @@ shareLinkButton = Wotkaz dźělić
shareMessage = Sćehńće „{ $name }“ z { -send-brand }: jednore, wěste dźělenje datajow shareMessage = Sćehńće „{ $name }“ z { -send-brand }: jednore, wěste dźělenje datajow
trailheadPromo = Je móžnosć, wašu priwatnosć škitać. Přińdźće k Firefox. trailheadPromo = Je móžnosć, wašu priwatnosć škitać. Přińdźće k Firefox.
learnMore = Dalše informacije. learnMore = Dalše informacije.
downloadFlagged = Tutón wotkaz je so přestupjenja wužiwanskich wuměnjenjow dla znjemóžnił.
downloadConfirmTitle = Jedna wěc hišće
downloadConfirmDescription = Wy měł wotpósłarjej tuteje dataje dowěrić, dokelž njemóžemy přepruwować, hač to wašemu gratej wadźi.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Dowěrju wosobje, kotraž je tutu dataju pósłała
[two] Dowěrju wosobje, kotraž je tutej dataji pósłała
[few] Dowěrju wosobje, kotraž je tute dataje pósłała
*[other] Dowěrju wosobje, kotraž je tute dataje pósłała
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Tutu dataju jako podhladnu zdźělić
[two] Tutej dataji jako podhladnej zdźělić
[few] Tute dataje jako podhladne zdźělić
*[other] Tute dataje jako podhladne zdźělić
}
reportDescription = Pomhajće nam rozumić, što so stawa. Što po wašim zdaću z tutymi datajemi w porjadku njeje?
reportUnknownDescription = Dźiće prošu k URL wotkaza, kotryž chceće zdźělić a klikńće na „{ reportFile }“.
reportButton = Zdźělić
reportReasonMalware = Tute dataje škódnu softwaru wobsahuja abo su dźěl nadpada kradnjenja datow.
reportReasonPii = Tute dataje wosobinske informacije wo mni, kotrež móža mje identifikować.
reportReasonAbuse = Tute dataje njedowoleny abo ranjacy wobsah wobsahuja.
reportReasonCopyright = Zo byšće zranjenje awtorskeho prawa abo prawa wikowanskich znamjenjow zdźělił, wužiwajće postupowanje, kotrež so na <a>tutej stronje</a> wopisuje.
reportedTitle = Dataje su zdźělene
reportedDescription = Wulki dźak. Smy wašu rozprawu wo tutych datajach dóstali.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Visszajelzés
importingFile = Importálás… importingFile = Importálás…
encryptingFile = Titkosítás… encryptingFile = Titkosítás…
decryptingFile = Visszafejtés… decryptingFile = Visszafejtés…
@ -116,6 +115,7 @@ legalDateStamp = 1.0-s verzió, kelt 2019. március 12-én
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }n { $hours }ó { $minutes }p expiresDaysHoursMinutes = { $days }n { $hours }ó { $minutes }p
addFilesButton = Válassza ki a feltöltendő fájlokat addFilesButton = Válassza ki a feltöltendő fájlokat
trustWarningMessage = Érzékeny adatok megosztásakor győződjön meg róla, hogy megbízik-e a címzettben.
uploadButton = Feltöltés uploadButton = Feltöltés
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Húzza ide a fájlokat dragAndDropFiles = Húzza ide a fájlokat
@ -153,3 +153,33 @@ shareLinkButton = Hivatkozás megosztása
shareMessage = „{ $name }” letöltése a { -send-brand } segítségével: egyszerű, biztonságos fájlmegosztás shareMessage = „{ $name }” letöltése a { -send-brand } segítségével: egyszerű, biztonságos fájlmegosztás
trailheadPromo = Védje meg a magánszféráját. Csatlakozzon a Firefoxhoz. trailheadPromo = Védje meg a magánszféráját. Csatlakozzon a Firefoxhoz.
learnMore = További tudnivalók. learnMore = További tudnivalók.
downloadFlagged = Ezt a hivatkozást a szolgáltatási feltételek megsértése miatt letiltottuk.
downloadConfirmTitle = Még egy dolog
downloadConfirmDescription = Győződjön meg arról, hogy megbízik-e abban, aki küldte a fájlt, mert nem tudjuk ellenőrizni, hogy nem okoz-e kárt az eszközén.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Megbízom abban a személyben, aki elküldte ezt a fájlt
*[other] Megbízom abban a személyben, aki elküldte ezeket a fájlokat
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Fájl jelentése gyanúsként
*[other] Fájlok jelentése gyanúsként
}
reportDescription = Segítsen megérteni, hogy mi a helyzet. Ön szerint mi a baj ezekkel a fájlokkal?
reportUnknownDescription = Ugorjon a jelentendő hivatkozás URL-jéhez, és kattintson a „{ reportFile }” gombra.
reportButton = Jelentés
reportReasonMalware = Ezek a fájlok rosszindulatú programokat tartalmaznak, vagy adathalász támadás részét képezik.
reportReasonPii = Ezek a fájlok személyesen azonosítható információkat tartalmaznak rólam.
reportReasonAbuse = Ezek a fájlok illegális vagy visszaélésszerű tartalmúak.
reportReasonCopyright = A szerzői jogok vagy védjegyek megsértésének jelentéséhez használja az <a>ezen az oldalon</a> írt folyamatot.
reportedTitle = Fájlok jelentve
reportedDescription = Köszönjük. Megkaptuk a jelentését ezekről a fájlokról.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Reaction
importingFile = Importation… importingFile = Importation…
encryptingFile = Cryptation... encryptingFile = Cryptation...
decryptingFile = Decryptation… decryptingFile = Decryptation…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0 del 12 martio 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Selige le files a incargar addFilesButton = Selige le files a incargar
trustWarningMessage = Verifica que tu te fide a tu destinatario quando tu comparti datos sensibile.
uploadButton = Incargar uploadButton = Incargar
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Traher e deponer files dragAndDropFiles = Traher e deponer files
@ -153,3 +153,33 @@ shareLinkButton = Condivide ligamine
shareMessage = Discarga “{ $name }” con { -send-brand }: condivide files in modo simple e secur shareMessage = Discarga “{ $name }” con { -send-brand }: condivide files in modo simple e secur
trailheadPromo = Il ha un via pro proteger tu confidentialitate. Junge te a Firefox! trailheadPromo = Il ha un via pro proteger tu confidentialitate. Junge te a Firefox!
learnMore = Saper plus. learnMore = Saper plus.
downloadFlagged = Iste ligamine ha essite disactivate per violation del terminos de servicio.
downloadConfirmTitle = Un altere cosa
downloadConfirmDescription = Verifica que tu te fide al persona qui te inviava iste file, perque nos non pote verificar que illo non violara tu apparato.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Io me fide al persona qui inviava iste file
*[other] Io me fide al persona qui inviava iste files
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] reportar iste file como suspecte
*[other] reportar iste files como suspecte
}
reportDescription = Adjuta nos a comprender lo que eveni. Que pensa tu es problematic con iste files?
reportUnknownDescription = Va al URL del ligamine que tu desira signalar e clicca “{ reportFile }”.
reportButton = Reportar
reportReasonMalware = Iste files contine malware o es parte de un attacco fraudulente.
reportReasonPii = Iste files contine informationes personal identificabile re me.
reportReasonAbuse = Iste files contine contento illegal o abusive.
reportReasonCopyright = Pro signalar violation de derectos de autor o marca de fabrica, usa le procedura describite a <a>iste pagina</a>.
reportedTitle = Files reportate
reportedDescription = Gratias. Nos ha recipite tu reporto sur iste files.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Saran
importingFile = Mengimpor… importingFile = Mengimpor…
encryptingFile = Mengenkripsi... encryptingFile = Mengenkripsi...
decryptingFile = Mendekripsi... decryptingFile = Mendekripsi...
@ -108,6 +107,7 @@ legalDateStamp = Versi 1.0, tertanggal 12 Maret 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }h { $hours }j { $minutes }m expiresDaysHoursMinutes = { $days }h { $hours }j { $minutes }m
addFilesButton = Pilih berkas untuk diunggah addFilesButton = Pilih berkas untuk diunggah
trustWarningMessage = Pastikan Anda mempercayai penerima Anda saat berbagi data sensitif.
uploadButton = Unggah uploadButton = Unggah
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Seret dan jatuhkan berkas dragAndDropFiles = Seret dan jatuhkan berkas
@ -144,3 +144,31 @@ shareLinkButton = Bagikan tautan
shareMessage = Unduh "{ $name }" dengan { -send-brand }: berbagi berkas dengan sederhana dan aman shareMessage = Unduh "{ $name }" dengan { -send-brand }: berbagi berkas dengan sederhana dan aman
trailheadPromo = Ada cara untuk melindungi privasi Anda. Bergabunglah dengan Firefox. trailheadPromo = Ada cara untuk melindungi privasi Anda. Bergabunglah dengan Firefox.
learnMore = Pelajari lebih lanjut. learnMore = Pelajari lebih lanjut.
downloadFlagged = Tautan ini telah dinonaktifkan karena melanggar persyaratan layanan.
downloadConfirmTitle = Satu hal lagi
downloadConfirmDescription = Pastikan Anda memercayai orang yang mengirimi Anda file ini karena kami tidak dapat memverifikasi bahwa hal itu tidak akan merusak perangkat Anda.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
*[other] Saya percaya orang yang mengirim file-file ini
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
*[other] Laporkan file-file ini karena mencurigakan
}
reportDescription = Bantu kami memahami apa yang sedang terjadi. Apa yang menurut Anda salah dengan file-file ini?
reportUnknownDescription = Buka url tautan yang ingin Anda laporkan dan klik “{ reportFile }”.
reportButton = Melaporkan
reportReasonMalware = File-file ini mengandung malware atau merupakan bagian dari serangan phishing.
reportReasonPii = File-file ini mengandung informasi pribadi tentang saya.
reportReasonAbuse = File-file ini mengandung konten ilegal atau kasar.
reportReasonCopyright = Untuk melaporkan pelanggaran hak cipta atau merek dagang, gunakan proses yang dijelaskan di <a> laman ini </a>.
reportedTitle = File Dilaporkan
reportedDescription = Terima kasih. Kami telah menerima laporan Anda tentang file-file ini.

View File

@ -1,6 +1,5 @@
# Firefox Send is a brand name and should not be localized. # Firefox Send is a brand name and should not be localized.
title = Firefox Zipu title = Firefox Zipu
siteFeedback = Nzaghachi
importingFile = Mbubata… importingFile = Mbubata…
encryptingFile = ezoro ezo... encryptingFile = ezoro ezo...
decryptingFile = Kpebie decryptingFile = Kpebie
@ -30,6 +29,11 @@ notSupportedOutdatedDetail = Ọ dị nwute na ụdị Firefox a anaghị akwado
updateFirefox = Melite Firefox updateFirefox = Melite Firefox
deletePopupCancel = Kagbuo deletePopupCancel = Kagbuo
deleteButtonHover = Hichapụ deleteButtonHover = Hichapụ
footerLinkLegal = n'Iwu
footerLinkPrivacy = nzuzo
footerLinkCookies = Kuki ga
passwordTryAgain = okwuntughe ezighi ezi.Nwaa ọzọ
javascriptRequired = Firefox Zipu chọrọ
whyJavascript = Kedu ihe kpatara Firefox Send jiri chọ JavaScript? whyJavascript = Kedu ihe kpatara Firefox Send jiri chọ JavaScript?
enableJavascript = Biko họrọ JavaScript ma nwaa ọzọ enableJavascript = Biko họrọ JavaScript ma nwaa ọzọ
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m" # A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
@ -49,6 +53,7 @@ passwordSetError = Enweghị ike ịtọ paswọọdụ a
-firefox = Firefox -firefox = Firefox
-mozilla = Mozilla -mozilla = Mozilla
introTitle = Mfe, nkekọrịta faịlụ nkeonwe introTitle = Mfe, nkekọrịta faịlụ nkeonwe
introDescription = na-ahapu gị ịkekọrịta faịlụ na izo ya na njedebe na njedebe na-akwụsị na akpaghị aka. Yabụ ị nwere ike idobe ihe ị na -eche ma hụ na ngwongwo gị agaghị adị n'ịntanetị ruo mgbe ebighi ebi.
notifyUploadEncryptDone = Failu gi zoro ezo ma di njikere iziga notifyUploadEncryptDone = Failu gi zoro ezo ma di njikere iziga
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes' # downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
archiveExpiryInfo = Ọ ga-agwu mgbe { $downloadCount } ma ọ bụ { $timespan } gasịrị archiveExpiryInfo = Ọ ga-agwu mgbe { $downloadCount } ma ọ bụ { $timespan } gasịrị
@ -62,4 +67,27 @@ timespanWeeks =
[one] 1 izu [one] 1 izu
*[other] izu { $num } *[other] izu { $num }
} }
# 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 = { $Number } { $nkeji }
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
totalSize = { $nha }
# the next line after the colon contains a file name
copyLinkDescription = Detuo njikọ ahụ iji kee faịlụ gị
copyLinkButton = Detuo njikọ
downloadTitle = Budata faịlụ gasi
downloadDescription = Nkekọrịta faịlụ a site na site na iji zoo njedebe na-njedebe yana otu njikọ na-akwụsị na-akpaghị aka.
trySendDescription = Gbalịa maka nyefe faịlụ dị mfe.
expiredTitle = Njikọ a emebiela.
notSupportedDescription = agaghị eji ihe nchọgharị a rụọ ọrụ. na arụ ọrụ kacha mma na ụdị nke , ọ ga-arụkwa ụdị nke ihe nchọgharị ka ugbu a.
downloadFirefox = Budata
legalTitle = Nkwupụta Nzuzo
legalDateStamp = 1.dị 1.0, akara ụbọchị Maachi 12, 2019
okButton = O okButton = O

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Importazione in corso… importingFile = Importazione in corso…
encryptingFile = Crittazione in corso… encryptingFile = Crittazione in corso…
decryptingFile = Decrittazione in corso… decryptingFile = Decrittazione in corso…
@ -108,6 +107,7 @@ legalDateStamp = Versione 1.0 del 12 marzo 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }g { $hours }h { $minutes }m expiresDaysHoursMinutes = { $days }g { $hours }h { $minutes }m
addFilesButton = Seleziona i file da caricare addFilesButton = Seleziona i file da caricare
trustWarningMessage = Assicurati che il destinatario sia affidabile quando condividi dati sensibili.
uploadButton = Carica uploadButton = Carica
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Trascina e rilascia i file dragAndDropFiles = Trascina e rilascia i file
@ -145,3 +145,33 @@ shareLinkButton = Condividi link
shareMessage = Scarica “{ $name }” con { -send-brand }: condivisione di file semplice e sicura shareMessage = Scarica “{ $name }” con { -send-brand }: condivisione di file semplice e sicura
trailheadPromo = Cè un modo per proteggere la tua privacy. Entra in Firefox. trailheadPromo = Cè un modo per proteggere la tua privacy. Entra in Firefox.
learnMore = Ulteriori informazioni. learnMore = Ulteriori informazioni.
downloadFlagged = Questo link è stato disattivato perché vìola i termini di servizio.
downloadConfirmTitle = Unultima cosa
downloadConfirmDescription = Assicurati che la persona che ti ha inviato questo file sia affidabile perché non possiamo garantire che non sia in grado di danneggiare il tuo dispositivo.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Considero affidabile la persona che ha inviato questo file
*[other] Considero affidabile la persona che ha inviato questi file
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Segnala questo file come sospetto
*[other] Segnala questi file come sospetti
}
reportDescription = Aiutaci a capire che cosa è successo. Qual è il problema con questi file?
reportUnknownDescription = Vai allindirizzo del link che vuoi segnalare e fai clic su “{ reportFile }”.
reportButton = Segnala
reportReasonMalware = Questi file contengono malware o fanno parte di un attacco phishing.
reportReasonPii = Questi file contengono informazioni personali identificabili che mi riguardano.
reportReasonAbuse = Questi file contengono contenuti illegali o offensivi.
reportReasonCopyright = Per segnalare violazioni del copyright o abusi di marchi registrati, utilizzare la procedura descritta in <a>questa pagina</a>.
reportedTitle = File segnalati
reportedDescription = Grazie, abbiamo ricevuto la tua segnalazione relativa a questi file.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = フィードバック
importingFile = インポート中... importingFile = インポート中...
encryptingFile = 暗号化中... encryptingFile = 暗号化中...
decryptingFile = 復号化中... decryptingFile = 復号化中...
@ -108,6 +107,7 @@ legalDateStamp = バージョン 1.0, 2019年3月12日時点
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } 日 { $hours } 時 { $minutes } 分 expiresDaysHoursMinutes = { $days } 日 { $hours } 時 { $minutes } 分
addFilesButton = アップロードするファイルを選択 addFilesButton = アップロードするファイルを選択
trustWarningMessage = 機密データを共有する場合は、受信者が信頼できる相手であることを確認してください。
uploadButton = アップロード uploadButton = アップロード
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = ファイルをドラッグ&ドロップ dragAndDropFiles = ファイルをドラッグ&ドロップ
@ -144,3 +144,31 @@ shareLinkButton = リンクを共有
shareMessage = { -send-brand } で "{ $name }" をダウンロード: シンプルで安全なファイル共有 shareMessage = { -send-brand } で "{ $name }" をダウンロード: シンプルで安全なファイル共有
trailheadPromo = プライバシーを保護する方法があります。Firefox を試してください。 trailheadPromo = プライバシーを保護する方法があります。Firefox を試してください。
learnMore = 詳細情報 learnMore = 詳細情報
downloadFlagged = サービス利用規約に違反しているため、このリンクは無効になっています。
downloadConfirmTitle = さらにもう一つ
downloadConfirmDescription = このファイルが端末に悪影響を及ぼさないことを確かめられないため、送信者が信頼できる相手であることを確認してください。
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
*[other] ファイルの送信者を信頼します
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
*[other] 疑わしいファイルとして報告する
}
reportDescription = 詳しく調べるためにお知らせください。これらのファイルの何が問題だと思われますか?
reportUnknownDescription = 報告したい内容のリンクの URL にアクセスし、“{ reportFile }” をクリックしてください。
reportButton = 問題を報告
reportReasonMalware = これらのファイルにはマルウェアが含まれているか、フィッシング詐欺攻撃の一部です。
reportReasonPii = これらのファイルには私に関する個人情報が含まれています。
reportReasonAbuse = これらのファイルには違法または虐待的なコンテンツが含まれています。
reportReasonCopyright = 著作権または商標の侵害を報告するには、<a>このページ</a> に記載された手続きに従ってください。
reportedTitle = ファイルを報告しました
reportedDescription = ご協力ありがとうございました。これらのファイルに関する報告を受け取りました。

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = გამოხმაურება
importingFile = გადმოტანა... importingFile = გადმოტანა...
encryptingFile = დაშიფვრა... encryptingFile = დაშიფვრა...
decryptingFile = გაშიფვრა... decryptingFile = გაშიფვრა...
@ -116,6 +115,7 @@ legalDateStamp = ვერსია 1.0, დათარიღებული 12
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } დღე { $hours } სთ { $minutes } წთ expiresDaysHoursMinutes = { $days } დღე { $hours } სთ { $minutes } წთ
addFilesButton = ფაილების შერჩევა ასატვირთად addFilesButton = ფაილების შერჩევა ასატვირთად
trustWarningMessage = დარწმუნდით, რომ ენდობით მიმღებს, სანამ მნიშვნელოვან მონაცემებს გაუზიარებთ.
uploadButton = ატვირთვა uploadButton = ატვირთვა
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = გადმოიტანეთ და მოათავსეთ ფაილები dragAndDropFiles = გადმოიტანეთ და მოათავსეთ ფაილები
@ -153,3 +153,33 @@ shareLinkButton = ბმულის გაზიარება
shareMessage = ჩამოტვირთეთ „{ $name }“ { -send-brand }-ით: ფაილების გაზიარება მარტივად, უსაფრთხოდ shareMessage = ჩამოტვირთეთ „{ $name }“ { -send-brand }-ით: ფაილების გაზიარება მარტივად, უსაფრთხოდ
trailheadPromo = გზა, თქვენი პირადულობის დასაცავად. შემოუერთდით Firefox-ს. trailheadPromo = გზა, თქვენი პირადულობის დასაცავად. შემოუერთდით Firefox-ს.
learnMore = იხილეთ ვრცლად. learnMore = იხილეთ ვრცლად.
downloadFlagged = ბმული გაუქმებულია, მომსახურების პირობების დარღვევის გამო.
downloadConfirmTitle = კიდევ ერთი რამ
downloadConfirmDescription = დარწმუნდით, რომ სანდოა პირი, ვინც ეს ფაილი გამოგიგზავნათ, რადგან ჩვენ ვერ დაგპირდებით, რომ არ დააზიანებს თქვენს მოწყობილობას.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] ვენდობი პირს, რომელმაც ეს ფაილი გამომიგზავნა
*[other] ვენდობი პირს, რომელმაც ეს ფაილები გამომიგზავნა
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] მოხსენება, საეჭვო ფაილზე
*[other] მოხსენება, საეჭვო ფაილებზე
}
reportDescription = დაგვეხმარეთ გარკვევაში. თქვენი აზრით, რა ფაილებია?
reportUnknownDescription = გთხოვთ გადახვიდეთ ბმულზე, რომლზეც გსურთ გვაცნობოთ და დაწკაპეთ „{ reportFile }“.
reportButton = მოხსენება
reportReasonMalware = ეს ფაილები შეიცავს მავნე კოდს ან თაღლითური შეტევის ნაწილია.
reportReasonPii = ეს ფაილები შეიცავს ვინაობის ამსახველ მასალას ჩემზე.
reportReasonAbuse = ეს ფაილები შეიცავს უკანონო ან შეურაცხმყოფელ მასალას.
reportReasonCopyright = საავტორო უფლებებთან ან სავაჭრო ნიშნებთან დაკავშირებულ დარღვევებზე მოხსენებისთვის, გთხოვთ იხილოთ განმარტებითი მითითებები <a>ამ გვერდზე</a>.
reportedTitle = ფაილებზე მოხსენება გაგზავნილია
reportedDescription = გმადლობთ. მივიღეთ თქვენი მოხსენება, ამ ფაილებზე.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Tikti
importingFile = Akter... importingFile = Akter...
encryptingFile = Awgelhen... encryptingFile = Awgelhen...
decryptingFile = Azmek... decryptingFile = Azmek...
@ -76,7 +75,7 @@ timespanWeeks =
fileCount = fileCount =
{ $num -> { $num ->
[one] 1 n ufaylu [one] 1 n ufaylu
*[other] { $num } n ifuyla *[other] { $num } n yifuyla
} }
# byte abbreviation # byte abbreviation
bytes = B bytes = B
@ -116,6 +115,7 @@ legalDateStamp = Lqem 1.0, azemz n 12 Meɣres 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } ass { $hours } srg { $minutes } tsd expiresDaysHoursMinutes = { $days } ass { $hours } srg { $minutes } tsd
addFilesButton = Fren ifuyla ad tessaliḍ addFilesButton = Fren ifuyla ad tessaliḍ
trustWarningMessage = Ḍmen d akken tumneḍ anermis ticki tebḍiḍ isefka n tbadnit.
uploadButton = Sali uploadButton = Sali
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Ẓuɣer sakin sers ifuyla dragAndDropFiles = Ẓuɣer sakin sers ifuyla
@ -153,3 +153,33 @@ shareLinkButton = Bḍu aseɣwen
shareMessage = Sider "{ $name }" s { -send-brand }: d fessas, d aɣelsan i beṭṭu n yifuyla. shareMessage = Sider "{ $name }" s { -send-brand }: d fessas, d aɣelsan i beṭṭu n yifuyla.
trailheadPromo = Yella wallal n ummesten n tudert-ik tusligt. Ddu ɣer Firefox. trailheadPromo = Yella wallal n ummesten n tudert-ik tusligt. Ddu ɣer Firefox.
learnMore = Issin ugar. learnMore = Issin ugar.
downloadFlagged = Aseɣwen-a yensa acku ur iquder ara tiwtilin n useqdec.
downloadConfirmTitle = Taɣawsa-nniḍen
downloadConfirmDescription = Ḍmen d akken tumneḍ amdan i ak-d-yuznen afaylu-a acku ur nezmir ara ad nwali ma yella ur iṭuṛṛu ara ibenk-ik.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Umneɣ amdan i yi-d-yuznen afaylu-a.
*[other] Umneɣ amdan i yi-d-yuznen ifuyla-a.
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Mmel-d afaylu-a ma tkukraḍ
*[other] Mmel-d ifuyla-a ma tkukraḍ
}
reportDescription = Mudd-aɣ-d afus n tallalt akken ad negzu acu i la iḍerrun. Acu twalaḍ cwiya-t kan deg yifuyla-a?
reportUnknownDescription = Ttxil-k·m rzu ɣer url n useɣwen i tebɣiḍ ad t-tceggreḍ syen sit ɣef “{ reportFile }”.
reportButton = Aneqqis
reportReasonMalware = Ifuyla-a deg-sen yir iseɣzanen neɣ d aḥric seg uẓdam n ṣṣyada.
reportReasonPii = Ifuyla-a deg-sen talɣut tudmawant yettwassnen i yi-yeɛnan.
reportReasonAbuse = Ifuyla-a deg-sen agbur arusḍif neɣ anaffal.
reportReasonCopyright = I ucegger n tkerḍa n yizerfan n umeskar neɣ n tecraḍ, seqdec asesfer i d-yettwagelmen ɣef <a>usebter-a</a>.
reportedTitle = Ifuyla i d-yettwaceqqren
reportedDescription = Tanemmirt. Nermes-d aneqqis-ik·im ɣef yifuyla-a.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = 사용자 의견
importingFile = 가져오는 중… importingFile = 가져오는 중…
encryptingFile = 암호화 중… encryptingFile = 암호화 중…
decryptingFile = 복호화 중… decryptingFile = 복호화 중…
@ -97,11 +96,12 @@ tooManyArchives =
expiredTitle = 이 링크는 만료되었습니다. expiredTitle = 이 링크는 만료되었습니다.
notSupportedDescription = { -send-brand }는 이 브라우저와 작동하지 않습니다. { -send-short-brand }는 최신 { -firefox }와 가장 잘 작동하며, 대부분의 최신 웹 브라우저와도 잘 작동합니다. notSupportedDescription = { -send-brand }는 이 브라우저와 작동하지 않습니다. { -send-short-brand }는 최신 { -firefox }와 가장 잘 작동하며, 대부분의 최신 웹 브라우저와도 잘 작동합니다.
downloadFirefox = { -firefox } 다운로드 downloadFirefox = { -firefox } 다운로드
legalTitle = { -send-short-brand } 개인정보 보호 공지 legalTitle = { -send-short-brand } 개인정보처리방침
legalDateStamp = 버전 1.0, 2019년 3월 12일자 legalDateStamp = 버전 1.0, 2019년 3월 12일자
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }일 { $hours }시간 { $minutes }분 expiresDaysHoursMinutes = { $days }일 { $hours }시간 { $minutes }분
addFilesButton = 업로드할 파일들을 선택하세요 addFilesButton = 업로드할 파일들을 선택하세요
trustWarningMessage = 중요한 정보를 공유할 때는 수신자들이 모두 믿을 만한 사람들인지를 꼭 확인하세요.
uploadButton = 업로드 uploadButton = 업로드
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = 파일들을 여기에 끌어서 놓으세요 dragAndDropFiles = 파일들을 여기에 끌어서 놓으세요
@ -138,3 +138,31 @@ shareLinkButton = 링크 공유
shareMessage = { -send-brand }으로 “{ $name }” 파일을 내려받으세요: 쉽고 안전한 파일 공유입니다. shareMessage = { -send-brand }으로 “{ $name }” 파일을 내려받으세요: 쉽고 안전한 파일 공유입니다.
trailheadPromo = 개인 정보를 보호하는 방법이 있습니다. Firefox에 가입하세요. trailheadPromo = 개인 정보를 보호하는 방법이 있습니다. Firefox에 가입하세요.
learnMore = 더 알아보기. learnMore = 더 알아보기.
downloadFlagged = 서비스 약관 위반으로 인해 비활성화된 링크입니다.
downloadConfirmTitle = 한 가지 더
downloadConfirmDescription = 이 파일이 기기에 해를 끼치지 않는 다는 점을 확인하지 못했기 때문에 이 파일을 보낸 사람을 신뢰할 수 있는지 확인하세요.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
*[other] 이 파일을 보낸 사람을 신뢰함
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
*[other] 이 파일을 의심스러운 것으로 신고
}
reportDescription = 어떤 일이 발생했는지 알려 주세요. 이 파일의 어느 부분이 문제인 것 같나요?
reportUnknownDescription = 신고하려는 링크의 URL로 가서 “{ reportFile }”를 클릭하세요.
reportButton = 신고
reportReasonMalware = 이 파일은 악성 코드를 포함하고 있거나 피싱 공격의 일부입니다.
reportReasonPii = 이 파일에는 본인에 대한 개인 식별 정보가 포함되어 있습니다.
reportReasonAbuse = 이 파일에는 불법적이거나 모욕적인 내용이 들어 있습니다.
reportReasonCopyright = 저작권 또는 상표권 침해를 신고하려면 <a>이 페이지</a>에 설명된 절차를 따르십시오.
reportedTitle = 파일 신고됨
reportedDescription = 파일에 대한 신고를 접수했습니다. 감사합니다.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Pateikti atsiliepimą
importingFile = Importuojama… importingFile = Importuojama…
encryptingFile = Šifruojama… encryptingFile = Šifruojama…
decryptingFile = Iššifruojama… decryptingFile = Iššifruojama…
@ -132,6 +131,7 @@ legalDateStamp = 1.0 versija, 2019 m. kovo 12 d
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 } val. { $minutes } min. expiresDaysHoursMinutes = { $days } d. { $hours } val. { $minutes } min.
addFilesButton = Rinktis failus įkėlimui addFilesButton = Rinktis failus įkėlimui
trustWarningMessage = Dalindamiesi svarbiais duomenimis įsitikinkite, kad pasitikite gavėju.
uploadButton = Įkelti uploadButton = Įkelti
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Užtempkite ir numeskite failus čia dragAndDropFiles = Užtempkite ir numeskite failus čia
@ -170,3 +170,35 @@ shareLinkButton = Dalintis saitu
shareMessage = Atsisiųskite „{ $name }“ su „{ -send-brand }“: paprastas, saugus dalinimasis failais shareMessage = Atsisiųskite „{ $name }“ su „{ -send-brand }“: paprastas, saugus dalinimasis failais
trailheadPromo = Yra būdas apsaugoti jūsų privatumą. Naudokite „Firefox“. trailheadPromo = Yra būdas apsaugoti jūsų privatumą. Naudokite „Firefox“.
learnMore = Sužinoti daugiau. learnMore = Sužinoti daugiau.
downloadFlagged = Šis saitas panaikintas dėl paslaugos teikimo nuostatų pažeidimo.
downloadConfirmTitle = Dar vienas dalykas
downloadConfirmDescription = Įsitikinkite, kad pasitikite asmeniu, atsiuntusiu šį failą, nes mes negalime užtikrinti, kad jis nepakenks jūsų įrenginiui.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Aš pasitikiu asmeniu, atsiuntusiu šį failą
[few] Aš pasitikiu asmeniu, atsiuntusiu šiuos failus
*[other] Aš pasitikiu asmeniu, atsiuntusiu šiuos failus
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Pranešti apie įtartiną failą
[few] Pranešti apie įtartinus failus
*[other] Pranešti apie įtartinus failus
}
reportDescription = Padėkite mums suprasti situaciją. Kas jūsų nuomone negerai su šiais failais?
reportUnknownDescription = Atverkite saitą, apie kurį norite pranešti, ir spustelėkite „{ reportFile }“.
reportButton = Pranešti
reportReasonMalware = Šiuose failuose yra kenkėjiškos programinės įrangos, arba jie yra dalis sukčiavimo atakos.
reportReasonPii = Šiuose failuose yra mano asmeninės informacijos.
reportReasonAbuse = Šiuose failuose yra nelegalaus arba neteisėto turinio.
reportReasonCopyright = Norėdami pranešti apie autorių teisių ar prekės ženklo pažeidimus, vadovaukitės <a>šiame puslapyje</a> aprašytu procesu.
reportedTitle = Apie failus pranešta
reportedDescription = Ačiū. Mes gavome jūsų pranešimą apie šiuos failus.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Tu'un meu
importingFile = Ndakiin… importingFile = Ndakiin…
encryptingFile = Ndasami tu'un… encryptingFile = Ndasami tu'un…
decryptingFile = Nchiko tu'un… decryptingFile = Nchiko tu'un…
@ -116,6 +115,7 @@ 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" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Katsi tutu ku skau addFilesButton = Katsi tutu ku skau
trustWarningMessage = Kunche'e a va'a nu ku ntachuún ña.
uploadButton = Skaa uploadButton = Skaa
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Xita cha sia kue tutu dragAndDropFiles = Xita cha sia kue tutu
@ -153,3 +153,33 @@ shareLinkButton = Stucha Enlace
shareMessage = Snuu «{ $name }» tsi { -send-brand }: kue nchichi shareMessage = Snuu «{ $name }» tsi { -send-brand }: kue nchichi
trailheadPromo = Ku china vau ña chau. Kita'an tsi Firefox. trailheadPromo = Ku china vau ña chau. Kita'an tsi Firefox.
learnMore = Skua'a kuakaa. learnMore = Skua'a kuakaa.
downloadFlagged = Va'á enlace yo.
downloadConfirmTitle = Una cosa más
downloadConfirmDescription = A tsinu nivo tachu'un tutu yo takua ma stivia kàa ndusu ku.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Va'a nivi ntachu'un tutu yo
*[other] Va'a nivi ntachu'un tutu yo
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Katu'un ña va'á tutu yo
*[other] Katu'un ña va'á kue tutu yo
}
reportDescription = Chinche kue yu na kunikue ña yee. ¿A va'á kue tutu yo?
reportUnknownDescription = Sa'a ña mani kuncheu, url ña enlace ña va'á cha katavi “{ reportFile }”.
reportButton = Ka tu'un
reportReasonMalware = Inka ña va'á nu kue tutu yo.
reportReasonPii = Inka kue tu'un me nu kue tutu yo.
reportReasonAbuse = Yee ña va'á nu kue tutu yo.
reportReasonCopyright = Tatu ye ña va'á nu derechos de autor a marca registrada, kavi tutu yo <a>esta página</a>.
reportedTitle = Ku ncheé tutu
reportedDescription = Ti tsavu. tsa kumikue tu'un tsa'a tutuku.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Tilbakemelding
importingFile = Importerer… importingFile = Importerer…
encryptingFile = Krypterer... encryptingFile = Krypterer...
decryptingFile = Dekrypterer... decryptingFile = Dekrypterer...
@ -116,6 +115,7 @@ legalDateStamp = Versjon 1.0, datert den 12. mars 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 }t { $minutes }m expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
addFilesButton = Velg filer du vil laste opp addFilesButton = Velg filer du vil laste opp
trustWarningMessage = Forsikre deg om at du stoler på mottakeren din når du deler sensitive data.
uploadButton = Last opp uploadButton = Last opp
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Dra og slipp filer dragAndDropFiles = Dra og slipp filer
@ -153,3 +153,33 @@ shareLinkButton = Del lenke
shareMessage = Last ned { $name } med { -send-brand }: enkel, trygg fildeling shareMessage = Last ned { $name } med { -send-brand }: enkel, trygg fildeling
trailheadPromo = Det finnes en måte å ta vare på personvernet ditt. Bruk Firefox. trailheadPromo = Det finnes en måte å ta vare på personvernet ditt. Bruk Firefox.
learnMore = Les mer. learnMore = Les mer.
downloadFlagged = Denne koblingen er deaktivert på grunn av brudd på vilkårene for tjenesten.
downloadConfirmTitle = En ting til
downloadConfirmDescription = Forsikre deg om at du stoler på personen som sendte deg denne filen, fordi vi ikke kan bekrefte at den ikke vil skade enheten din.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Jeg stoler på personen som sendte denne filen
*[other] Jeg stoler på personen som sendte disse filene
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Rapporter denne filen som mistenkelig
*[other] Rapporter disse filene som mistenkelige
}
reportDescription = Hjelp oss å forstå hva som skjer. Hva tror du er galt med disse filene?
reportUnknownDescription = Gå til adressen til lenken du ønsker å rapportere, og klikk «{ reportFile }».
reportButton = Rapporter
reportReasonMalware = Disse filene inneholder skadelig programvare eller er del av et nettfiskingsangrep (phishing-angrep).
reportReasonPii = Disse filene inneholder personlig identifiserbar informasjon om meg.
reportReasonAbuse = Disse filene inneholder ulovlig eller voldelig innhold.
reportReasonCopyright = For å rapportere brudd på opphavsrett eller varemerke, bruk prosessen som er beskrevet på <a>denne siden</a>.
reportedTitle = Filer rapportert
reportedDescription = Takk skal du ha. Vi har mottatt rapporten din om disse filene.

View File

@ -1,9 +1,8 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Importeren… importingFile = Importeren…
encryptingFile = Versleutelen… encryptingFile = Versleutelen…
decryptingFile = Ontcijferen… decryptingFile = Ontsleutelen…
downloadCount = downloadCount =
{ $num -> { $num ->
[one] 1 download [one] 1 download
@ -116,6 +115,7 @@ legalDateStamp = Versie 1.0 d.d. 12 maart 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 }u { $minutes }m expiresDaysHoursMinutes = { $days }d { $hours }u { $minutes }m
addFilesButton = Selecteer te uploaden bestanden addFilesButton = Selecteer te uploaden bestanden
trustWarningMessage = Zorg ervoor dat u uw ontvanger vertrouwt wanneer u gevoelige gegevens deelt.
uploadButton = Uploaden uploadButton = Uploaden
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Versleep bestanden dragAndDropFiles = Versleep bestanden
@ -153,3 +153,33 @@ shareLinkButton = Koppeling delen
shareMessage = Download { $name } met { -send-brand }: eenvoudig, veilig bestanden delen shareMessage = Download { $name } met { -send-brand }: eenvoudig, veilig bestanden delen
trailheadPromo = Er is een manier om uw privacy te beschermen. Doe mee met Firefox. trailheadPromo = Er is een manier om uw privacy te beschermen. Doe mee met Firefox.
learnMore = Meer info. learnMore = Meer info.
downloadFlagged = Deze koppeling is uitgeschakeld wegens schending van de servicevoorwaarden.
downloadConfirmTitle = Nog een ding
downloadConfirmDescription = Zorg ervoor dat u de persoon vertrouwt die u dit bestand heeft gestuurd, omdat we niet kunnen verifiëren dat het uw apparaat niet zal schaden.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Ik vertrouw de persoon die dit bestand heeft verzonden
*[other] Ik vertrouw de persoon die deze bestanden heeft verzonden
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Dit bestand als verdacht rapporteren
*[other] Deze bestanden als verdacht rapporteren
}
reportDescription = Help ons te begrijpen wat er aan de hand is. Wat is er volgens u mis met deze bestanden?
reportUnknownDescription = Ga naar de URL van de koppeling die u wilt melden en klik op { reportFile }.
reportButton = Rapporteren
reportReasonMalware = Deze bestanden bevatten malware of zijn onderdeel van een phishingaanval.
reportReasonPii = Deze bestanden bevatten persoonlijk identificeerbare informatie over mij.
reportReasonAbuse = Deze bestanden bevatten illegale of beledigende inhoud.
reportReasonCopyright = Gebruik de procedure op <a>deze pagina</a> om inbreuk op auteursrechten of handelsmerken te melden.
reportedTitle = Bestanden gerapporteerd
reportedDescription = Dank u. We hebben uw rapport over deze bestanden ontvangen.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Tilbakemelding
importingFile = Importerer… importingFile = Importerer…
encryptingFile = Krypterer… encryptingFile = Krypterer…
decryptingFile = Dekrypterer... decryptingFile = Dekrypterer...
@ -116,6 +115,7 @@ legalDateStamp = Versjon 1.0, datert den 12 mars 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 }t { $minutes }m expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
addFilesButton = Vel filer som skal lastast opp addFilesButton = Vel filer som skal lastast opp
trustWarningMessage = Forsikre deg om at du stolar på mottakaren din når du deler sensitive data.
uploadButton = Last opp uploadButton = Last opp
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Dra og slepp filer dragAndDropFiles = Dra og slepp filer
@ -153,3 +153,33 @@ shareLinkButton = Del lenke
shareMessage = Last ned "{ $name }" med { -send-brand }: enkel, trygg fildelning shareMessage = Last ned "{ $name }" med { -send-brand }: enkel, trygg fildelning
trailheadPromo = Det finst ein måte å ta vare på personvernet ditt. Ver med Firefox på ferda. trailheadPromo = Det finst ein måte å ta vare på personvernet ditt. Ver med Firefox på ferda.
learnMore = Les meir. learnMore = Les meir.
downloadFlagged = Denne koplinga er deaktivert på grunn av brot på vilkåra for tenesta.
downloadConfirmTitle = Ein ting til
downloadConfirmDescription = Forsikre deg om at du stolar på personen som sende deg denne fila fordi, vi ikkje kan stadfeste at ho ikkje vil skade eininga di.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Eg stolar på personen som sende denne fila
*[other] Eg stolar på personen som sende desse filene
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Rapporter denne fila som mistenkjeleg
*[other] Rapporter desse filene som mistenkjelege
}
reportDescription = Hjelp oss å forstå kva som skjer. Kva trur du er gale med desse filene?
reportUnknownDescription = Gå til lenkeadressa du ønskjer å rapportere, og klikk «{ reportFile }».
reportButton = Rapporter
reportReasonMalware = Desse filene inneheld skadeleg programvare eller er del av eit nettfiskingsangrep (phishing-angrep).
reportReasonPii = Desse filene inneheld personleg identifiserbar informasjon om meg.
reportReasonAbuse = Desse filene inneheld ulovleg eller valdeleg innhald.
reportReasonCopyright = For å rapportere brot på opphavsrett eller varemerke, bruk prosessen som er beskriven på <a>denne sida</a>.
reportedTitle = Rapporterte filer
reportedDescription = Takk skal du ha. Vi har fått rapporten din om desse filene.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Comentaris
importingFile = Importacion… importingFile = Importacion…
encryptingFile = Chiframent… encryptingFile = Chiframent…
decryptingFile = Deschiframent… decryptingFile = Deschiframent…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0 del 12 de març de 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
addFilesButton = Seleccionatz los fichièrs de mandar addFilesButton = Seleccionatz los fichièrs de mandar
trustWarningMessage = Asseguratz-vos que vos fisatz del destinari quand partejatz de donadas confidencialas.
uploadButton = Enviar uploadButton = Enviar
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Lisatz-depausatz de fichièrs dragAndDropFiles = Lisatz-depausatz de fichièrs
@ -153,3 +153,33 @@ shareLinkButton = Partejar lo ligam
shareMessage = Telecargar « { $name } » amb { -send-brand } : un biais simple e segur de partejar de fichièrs. shareMessage = Telecargar « { $name } » amb { -send-brand } : un biais simple e segur de partejar de fichièrs.
trailheadPromo = Existís un biais de protegir vòstra vida privada. Rejonhètz Firefox. trailheadPromo = Existís un biais de protegir vòstra vida privada. Rejonhètz Firefox.
learnMore = Ne saber mai. learnMore = Ne saber mai.
downloadFlagged = Aqueste ligam foguèt desactivat a causa duna infraccions a las condicions dutilizacion.
downloadConfirmTitle = Un quicomet mai
downloadConfirmDescription = Asseguratz-vos que la persona que vos mandèt aqueste fichièr perque podèm pas verificar ques pas malfasent per vòstre periferic
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Me fisi de la persona que me mandèt lo fichièr
*[other] Me fisi de la persona que me mandèt los fichièrs
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Senhalar aqueste fichièr coma suspècte
*[other] Senhalar aquestes fichièrs coma suspèctes
}
reportDescription = Ajudatz-nos a comprendre qué passa. Qué vos fa pensar que quicòm truca amb aquestes fichièrs?
reportUnknownDescription = Anatz a lURL del ligam que volètz senhalar e clicatz « { reportFile } ».
reportButton = Senhalar
reportReasonMalware = Aquestes fichièrs contenon de logicials malvolents o forman part dun atac de pesca electronica.
reportReasonPii = Aquestes fichièrs contenon dinformacions didentificacion personala que me concernisson.
reportReasonAbuse = Aquestes fichièrs contenon de contengut illegal o abusiu.
reportReasonCopyright = Per senhalar una violacion de drech dautor o de marca, seguissètz la procedura descricha sus <a>aquesta pagina</a>.
reportedTitle = Fichièrs senhalats
reportedDescription = Mercés. Avèm recebut vòstre senhalament daquestes fichièrs.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = ਸੁਝਾਅ
importingFile = ...ਦਰਾਮਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ importingFile = ...ਦਰਾਮਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
encryptingFile = ...ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ encryptingFile = ...ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
decryptingFile = ...ਡਿਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ decryptingFile = ...ਡਿਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
@ -153,3 +152,4 @@ shareLinkButton = ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ
shareMessage = { -send-brand } ਨਾਲ "{ $name }" ਡਾਊਨਲੋਡ ਕਰੋ: ਸੌਖਾ, ਸੁਰੱਖਿਅਤ ਫਾਇਲ ਸਾਂਝਾ ਕਰਨਾ shareMessage = { -send-brand } ਨਾਲ "{ $name }" ਡਾਊਨਲੋਡ ਕਰੋ: ਸੌਖਾ, ਸੁਰੱਖਿਅਤ ਫਾਇਲ ਸਾਂਝਾ ਕਰਨਾ
trailheadPromo = ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਦਾ ਢੰਗ ਹੈ। ਫਾਇਰਫਾਕਸ ਨਾਲ ਜੁੜੋ। trailheadPromo = ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਦਾ ਢੰਗ ਹੈ। ਫਾਇਰਫਾਕਸ ਨਾਲ ਜੁੜੋ।
learnMore = ਹੋਰ ਸਿੱਖੋ learnMore = ਹੋਰ ਸਿੱਖੋ
downloadConfirmTitle = ਇੱਕ ਗੱਲ ਹੋਰ

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Wyślij opinię
importingFile = Importowanie… importingFile = Importowanie…
encryptingFile = Szyfrowanie… encryptingFile = Szyfrowanie…
decryptingFile = Odszyfrowywanie… decryptingFile = Odszyfrowywanie…
@ -124,6 +123,7 @@ 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" # 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 expiresDaysHoursMinutes = { $days } d. { $hours } godz. { $minutes } min
addFilesButton = Wybierz pliki do wysłania addFilesButton = Wybierz pliki do wysłania
trustWarningMessage = Upewnij się, że ufasz odbiorcy, kiedy udostępniasz prywatne dane.
uploadButton = Wyślij uploadButton = Wyślij
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Przeciągnij pliki dragAndDropFiles = Przeciągnij pliki
@ -162,3 +162,35 @@ shareLinkButton = Udostępnij odnośnik
shareMessage = Pobierz „{ $name }” za pomocą { -send-brand }: prostego i bezpiecznego udostępniania plików shareMessage = Pobierz „{ $name }” za pomocą { -send-brand }: prostego i bezpiecznego udostępniania plików
trailheadPromo = Jest sposób na ochronę swojej prywatności. Dołącz do Firefoksa. trailheadPromo = Jest sposób na ochronę swojej prywatności. Dołącz do Firefoksa.
learnMore = Więcej informacji. learnMore = Więcej informacji.
downloadFlagged = Ten odnośnik został wyłączony z powodu naruszenia warunków korzystania z usługi.
downloadConfirmTitle = Jeszcze jedna rzecz
downloadConfirmDescription = Upewnij się, że ufasz osobie, która wysłała Ci ten plik, ponieważ nie możemy zweryfikować, czy nie spowoduje on uszkodzenia Twojego urządzenia.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Ufam osobie, która wysłała ten plik
[few] Ufam osobie, która wysłała te pliki
*[many] Ufam osobie, która wysłała te pliki
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Zgłoś ten plik jako podejrzany
[few] Zgłoś te pliki jako podejrzane
*[many] Zgłoś te pliki jako podejrzane
}
reportDescription = Pomóż nam zrozumieć, co się stało. Co według Ciebie jest nie tak z tymi plikami?
reportUnknownDescription = Przejdź do adresu odnośnika, który chcesz zgłosić, i kliknij „{ reportFile }”.
reportButton = Zgłoś
reportReasonMalware = Te pliki zawierają złośliwe oprogramowanie lub są częścią próby oszustwa.
reportReasonPii = Te pliki zawierają informacje umożliwiające identyfikację mojej osoby.
reportReasonAbuse = Te pliki zawierają nielegalne lub obraźliwe treści.
reportReasonCopyright = Aby zgłosić naruszenie praw autorskich lub znaków towarowych, skorzystaj z procedury opisanej na <a>ten stronie</a>.
reportedTitle = Pliki zostały zgłoszone
reportedDescription = Dziękujemy. Otrzymaliśmy Twoje zgłoszenie dotyczące tych plików.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Opinião
importingFile = Importando… importingFile = Importando…
encryptingFile = Criptografando… encryptingFile = Criptografando…
decryptingFile = Descriptografando… decryptingFile = Descriptografando…
@ -116,6 +115,7 @@ legalDateStamp = Versão 1.0, de 12 de março de 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Selecionar arquivos para enviar addFilesButton = Selecionar arquivos para enviar
trustWarningMessage = Certifique-se de que confia no destinatário ao compartilhar dados sensíveis.
uploadButton = Enviar uploadButton = Enviar
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arraste e solte arquivos aqui dragAndDropFiles = Arraste e solte arquivos aqui
@ -153,3 +153,33 @@ shareLinkButton = Compartilhar link
shareMessage = Baixe "{ $name }" com o { -send-brand }: compartilhamento de arquivos simples e seguro shareMessage = Baixe "{ $name }" com o { -send-brand }: compartilhamento de arquivos simples e seguro
trailheadPromo = Existe um meio de proteger sua privacidade. Use o Firefox. trailheadPromo = Existe um meio de proteger sua privacidade. Use o Firefox.
learnMore = Saiba mais. learnMore = Saiba mais.
downloadFlagged = Este link foi desativado por violar os termos do serviço.
downloadConfirmTitle = Mais uma coisa
downloadConfirmDescription = Certifique-se de que confia na pessoa que enviou este arquivo, pois não podemos conferir se não prejudicará seu dispositivo.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Eu confio na pessoa que enviou este arquivo
*[other] Eu confio na pessoa que enviou estes arquivos
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Denunciar este arquivo como suspeito
*[other] Denunciar estes arquivos como suspeitos
}
reportDescription = Ajude-nos a entender o que está acontecendo. O que você acha que há de errado com estes arquivos?
reportUnknownDescription = Acesse o endereço do link que deseja denunciar e clique em “{ reportFile }”.
reportButton = Denunciar
reportReasonMalware = Estes arquivos contêm malware (código malicioso) ou fazem parte de um ataque de phishing (fraude).
reportReasonPii = Estes arquivos contêm informações de identificação pessoal sobre mim.
reportReasonAbuse = Estes arquivos contêm conteúdo ilegal ou abusivo.
reportReasonCopyright = Para denunciar violação de direitos autorais ou de marca, siga o procedimento descrito <a>nesta página</a>.
reportedTitle = Arquivos denunciados
reportedDescription = Obrigado. Recebemos sua denúncia sobre estes arquivos.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = A importar... importingFile = A importar...
encryptingFile = A encriptar... encryptingFile = A encriptar...
decryptingFile = A desencriptar... decryptingFile = A desencriptar...
@ -116,6 +115,7 @@ legalDateStamp = Versão 1.0, de 12 de março de 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Selecionar ficheiros para carregar addFilesButton = Selecionar ficheiros para carregar
trustWarningMessage = Tenha a certeza que confia no destinatário ao partilhar dados sensíveis.
uploadButton = Carregar uploadButton = Carregar
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Arraste e largue ficheiros dragAndDropFiles = Arraste e largue ficheiros
@ -153,3 +153,33 @@ shareLinkButton = Partilhar ligação
shareMessage = Transferir “{ $name }“ com o { -send-brand }: partilha de ficheiros simples e segura shareMessage = Transferir “{ $name }“ com o { -send-brand }: partilha de ficheiros simples e segura
trailheadPromo = Existe um modo para proteger a sua privacidade. Adira ao Firefox. trailheadPromo = Existe um modo para proteger a sua privacidade. Adira ao Firefox.
learnMore = Saiba mais. learnMore = Saiba mais.
downloadFlagged = Esta ligação foi desativada por violar os termos do serviço.
downloadConfirmTitle = Mais uma coisa
downloadConfirmDescription = Tenha a certeza que confia na pessoa que lhe enviou este ficheiro, pois não podemos garantir que o mesmo não irá danificar o seu dispositivo.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Eu confio na pessoa que enviou este ficheiro
*[other] Eu confio na pessoa que enviou estes ficheiros
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Denunciar este ficheiro como suspeito
*[other] Denunciar estes ficheiros como suspeitos
}
reportDescription = Ajude-nos a compreender o que está a acontecer. O que acha que está errado com estes ficheiros?
reportUnknownDescription = Por favor, aceda ao endereço da ligação que pretende denunciar e clique em “{ reportFile }”.
reportButton = Denunciar
reportReasonMalware = Estes ficheiros contêm software malicioso ou fazem parte de um ataque de phishing.
reportReasonPii = Estes ficheiros contêm dados pessoais sobre mim.
reportReasonAbuse = Estes ficheiros contêm conteúdo ilegal ou abusivo.
reportReasonCopyright = Para denunciar violação de direitos de autor ou de marca comercial, utilize o procedimento descrito <a>nesta página</a>.
reportedTitle = Ficheiros denunciados
reportedDescription = Obrigado. Recebemos a sua denúncia sobre estes ficheiros.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Feedback
importingFile = Se importă… importingFile = Se importă…
encryptingFile = Se criptează… encryptingFile = Se criptează…
decryptingFile = Se decriptează… decryptingFile = Se decriptează…
@ -119,11 +118,12 @@ tooManyArchives =
expiredTitle = Acest link a expirat. expiredTitle = Acest link a expirat.
notSupportedDescription = { -send-brand } nu va funcționa pe acest browser. { -send-short-brand } funcționează cel mai bine cu ultima versiune de { -firefox } și va funcționa cu versiunea curentă a majorității browserelor. notSupportedDescription = { -send-brand } nu va funcționa pe acest browser. { -send-short-brand } funcționează cel mai bine cu ultima versiune de { -firefox } și va funcționa cu versiunea curentă a majorității browserelor.
downloadFirefox = Descarcă { -firefox } downloadFirefox = Descarcă { -firefox }
legalTitle = Declarație de confidențialitate { -send-short-brand } legalTitle = Notificare privind confidențialitatea { -send-short-brand }
legalDateStamp = Versiunea 1.0 din data de 12 martie 2019 legalDateStamp = Versiunea 1.0 din data de 12 martie 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }z { $hours }h { $minutes }m expiresDaysHoursMinutes = { $days }z { $hours }h { $minutes }m
addFilesButton = Selectează fișierele pentru încărcare addFilesButton = Selectează fișierele pentru încărcare
trustWarningMessage = Asigură-te că destinatarul este de încredere când partajezi date sensibile.
uploadButton = Încarcă uploadButton = Încarcă
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Trage și plasează fișierele dragAndDropFiles = Trage și plasează fișierele
@ -160,5 +160,37 @@ shareLinkDescription = Partajează linkul către fișier:
shareLinkButton = Partajează linkul shareLinkButton = Partajează linkul
# $name is the name of the file # $name is the name of the file
shareMessage = Descarcă „{ $name }” cu { -send-brand }: partajare simplă și sigură a fișierelor shareMessage = Descarcă „{ $name }” cu { -send-brand }: partajare simplă și sigură a fișierelor
trailheadPromo = Există o modalitate de a-ți proteja viața privată. Alătură-te Firefox. trailheadPromo = Există o modalitate de a-ți proteja viața privată. Folosește Firefox.
learnMore = Află mai multe. learnMore = Află mai multe.
downloadFlagged = Acest link a fost dezactivat pentru că încalcă termenii de utilizare a serviciului.
downloadConfirmTitle = Încă ceva
downloadConfirmDescription = Asigură-te că persoana care ți-a trimis acest fișier este de încredere pentru că noi nu putem verifica dacă nu cumva îți va afecta dispozitivul.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Am încredere în persoana care a trimis acest fișier
[few] Am încredere în persoana care a trimis aceste fișiere
*[other] Am încredere în persoana care a trimis aceste fișiere
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Raportează acest fișier ca suspect
[few] Raportează aceste fișiere ca suspecte
*[other] Raportează aceste fișiere ca suspecte
}
reportDescription = Ajută-ne să înțelegem ce se întâmplă. Ce crezi că e în neregulă cu aceste fișiere?
reportUnknownDescription = Intră pe URL-ul linkului pe care vrei să îl raportezi și dă clic pe „{ reportFile }”.
reportButton = Raportează
reportReasonMalware = Aceste fișiere conțin cod rău-intenționat sau fac parte dintr-un atac de înșelăciune.
reportReasonPii = Aceste fișiere conțin date cu caracter personal identificabile despre mine.
reportReasonAbuse = Aceste fișiere au un conținut ilegal sau ofensator.
reportReasonCopyright = Pentru a raporta o încălcare a drepturilor de reproducere sau a mărcilor comerciale, folosește procedura descrisă <a>aici</a>.
reportedTitle = Fișiere raportate
reportedDescription = Îți mulțumim. Am primit raportarea ta despre aceste fișiere.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Отзывы
importingFile = Импортирование... importingFile = Импортирование...
encryptingFile = Шифрование... encryptingFile = Шифрование...
decryptingFile = Расшифровка... decryptingFile = Расшифровка...
@ -119,11 +118,12 @@ tooManyArchives =
expiredTitle = Срок действия этой ссылки истёк. expiredTitle = Срок действия этой ссылки истёк.
notSupportedDescription = { -send-brand } не будет работать в этом браузере. { -send-short-brand } лучше всего работает с последней версией { -firefox }, и будет работать с последними версиями популярных браузеров. notSupportedDescription = { -send-brand } не будет работать в этом браузере. { -send-short-brand } лучше всего работает с последней версией { -firefox }, и будет работать с последними версиями популярных браузеров.
downloadFirefox = Загрузить { -firefox } downloadFirefox = Загрузить { -firefox }
legalTitle = Политика приватности { -send-short-brand } legalTitle = Уведомление о конфиденциальности { -send-short-brand }
legalDateStamp = Версия 1.0, от 12 марта 2019 года legalDateStamp = Версия 1.0, от 12 марта 2019 года
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } дн. { $hours } ч. { $minutes } мин. expiresDaysHoursMinutes = { $days } дн. { $hours } ч. { $minutes } мин.
addFilesButton = Выберите файлы для выгрузки addFilesButton = Выберите файлы для выгрузки
trustWarningMessage = Убедитесь, что вы доверяете своему получателю при обмене конфиденциальными данными.
uploadButton = Выгрузить uploadButton = Выгрузить
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Перетащите файлы сюда dragAndDropFiles = Перетащите файлы сюда
@ -162,3 +162,35 @@ shareLinkButton = Поделиться ссылкой
shareMessage = Загрузите «{ $name }» с { -send-brand }: простой и безопасный обмен файлами shareMessage = Загрузите «{ $name }» с { -send-brand }: простой и безопасный обмен файлами
trailheadPromo = Существует способ защитить вашу приватность. Присоединяйтесь к Firefox. trailheadPromo = Существует способ защитить вашу приватность. Присоединяйтесь к Firefox.
learnMore = Подробнее. learnMore = Подробнее.
downloadFlagged = Эта ссылка была отключена за нарушение условий использования.
downloadConfirmTitle = Ещё один совет
downloadConfirmDescription = Убедитесь, что вы доверяете человеку, который отправил вам этот файл, потому что мы не знаем, не повредит ли файл вашему устройству.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Я доверяю человеку, который отправил этот файл
[few] Я доверяю человеку, который отправил эти файлы
*[many] Я доверяю человеку, который отправил эти файлы
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Сообщить об этом файле как о подозрительном
[few] Сообщить об этих файлах как о подозрительных
*[many] Сообщить об этих файлах как о подозрительных
}
reportDescription = Помогите нам понять, что происходит. Что по вашему мнению не так с этими файлами?
reportUnknownDescription = Перейдите к адресу ссылки, о которой хотите сообщить, и щёлкните «{ reportFile }».
reportButton = Сообщить
reportReasonMalware = Эти файлы содержат вредоносные программы или являются частью фишинговой атаки.
reportReasonPii = Эти файлы содержат мои личные данные.
reportReasonAbuse = Эти файлы содержат незаконный или оскорбительный контент.
reportReasonCopyright = Чтобы сообщить о нарушении авторских прав или товарных знаков, используйте процедуру, описанную на <a>этой странице</a>.
reportedTitle = О файлах сообщено
reportedDescription = Спасибо. Мы получили вашу жалобу на эти файлы.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Spätná väzba
importingFile = Importuje sa… importingFile = Importuje sa…
encryptingFile = Šifruje sa… encryptingFile = Šifruje sa…
decryptingFile = Dešifruje sa… decryptingFile = Dešifruje sa…
@ -124,6 +123,7 @@ legalDateStamp = Verzia 1.0, z 12. marca 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 } min expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
addFilesButton = Vyberte súbory pre nahratie addFilesButton = Vyberte súbory pre nahratie
trustWarningMessage = Uistite sa, že pri zdieľaní citlivých údajov dôverujete adresátovi.
uploadButton = Nahrať uploadButton = Nahrať
# the first part of the string 'Drag and drop files or click to send up to 1GB' # 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 dragAndDropFiles = Pretiahnutím súboru alebo kliknutím sem
@ -162,3 +162,35 @@ shareLinkButton = Zdieľať odkaz
shareMessage = Prevezmite si súbor „{ $name }“ so službou { -send-brand } - jednoduché a bezpečné zdieľanie súborov shareMessage = Prevezmite si súbor „{ $name }“ so službou { -send-brand } - jednoduché a bezpečné zdieľanie súborov
trailheadPromo = Existuje spôsob, ako chrániť vaše súkromie. Prihláste sa do Firefoxu. trailheadPromo = Existuje spôsob, ako chrániť vaše súkromie. Prihláste sa do Firefoxu.
learnMore = Ďalšie informácie. learnMore = Ďalšie informácie.
downloadFlagged = Tento odkaz bol pre porušenie podmienok používania služby deaktivovaný.
downloadConfirmTitle = Ešte jedna vec
downloadConfirmDescription = Uistite sa, že naozaj dôverujete odosielateľovi tohto súboru, pretože nemôžeme overiť jeho bezpečnosť.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Dôverujem odosielateľovi tohto súboru
[few] Dôverujem odosielateľovi týchto súborov
*[other] Dôverujem odosielateľovi týchto súborov
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Nahlásiť tento súbor ako podozrivý
[few] Nahlásiť tieto súbory ako podozrivé
*[other] Nahlásiť tieto súbory ako podozrivé
}
reportDescription = Pomôžte nám pochopiť, čo sa deje. Čo si myslíte, že s týmito súbormi nie je v poriadku?
reportUnknownDescription = Otvorte odkaz, ktorý chcete nahlásiť, a kliknite na „{ reportFile }“.
reportButton = Nahlásiť
reportReasonMalware = Tieto súbory obsahujú malvér alebo sú súčasťou pshishingového útoku.
reportReasonPii = Tieto súbory obsahujú moje osobné údaje.
reportReasonAbuse = Tieto súbory obsahujú nelegálny alebo urážlivý obsah.
reportReasonCopyright = Ak chcete nahlásiť porušenie autorských práv alebo zneužitie ochranných známok, použite postup popísaný na <a>tejto stránke</a>.
reportedTitle = Súbory boli nahlásené
reportedDescription = Ďakujeme vám za nahlásenie týchto súborov.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Povratne informacije
importingFile = Uvažanje … importingFile = Uvažanje …
encryptingFile = Šifriranje ... encryptingFile = Šifriranje ...
decryptingFile = Dešifriranje ... decryptingFile = Dešifriranje ...
@ -148,6 +147,7 @@ legalDateStamp = Različica 1.0, v veljavi od 12. marca 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Izberite datoteke za nalaganje addFilesButton = Izberite datoteke za nalaganje
trustWarningMessage = Pri deljenju občutljivih podatkov bodite prepričani, da zaupate prejemniku.
uploadButton = Naloži uploadButton = Naloži
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Povlecite in spustite datoteke dragAndDropFiles = Povlecite in spustite datoteke
@ -187,3 +187,37 @@ shareLinkButton = Deli povezavo
shareMessage = Prenesite "{ $name }" s { -send-brand }om: enostavno in varno deljenje datotek shareMessage = Prenesite "{ $name }" s { -send-brand }om: enostavno in varno deljenje datotek
trailheadPromo = Vašo zasebnost lahko zaščitite. Pridružite se Firefoxu. trailheadPromo = Vašo zasebnost lahko zaščitite. Pridružite se Firefoxu.
learnMore = Več o tem. learnMore = Več o tem.
downloadFlagged = Ta povezava je bila onemogočena, ker je kršila pogoje storitve.
downloadConfirmTitle = Še to
downloadConfirmDescription = Bodite prepričani, da zaupate osebi, ki vam je poslala to datoteko, ker ne moremo preveriti, da ne bo škodovala vaši napravi.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Zaupam pošiljatelju te datoteke
[two] Zaupam pošiljatelju teh datotek
[few] Zaupam pošiljatelju teh datotek
*[other] Zaupam pošiljatelju teh datotek
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Prijavi sumljivo datoteko
[two] Prijavi sumljivi datoteki
[few] Prijavi sumljive datoteke
*[other] Prijavi sumljive datoteke
}
reportDescription = Pomagajte nam razumeti, kaj se dogaja. Kaj mislite, da je s temi datotekami narobe?
reportUnknownDescription = Obiščite naslov povezave, ki jo želite prijaviti, in kliknite »{ reportFile }«.
reportButton = Prijavi
reportReasonMalware = Te datoteke vsebujejo zlonamerno programsko opremo ali so del napada lažnega predstavljanja.
reportReasonPii = Te datoteke vsebujejo osebne podatke o meni.
reportReasonAbuse = Te datoteke vsebujejo nezakonito ali nasilno vsebino.
reportReasonCopyright = Za prijavo kršitve avtorskih pravic ali blagovne znamke sledite postopku, opisanem na <a>tej strani</a>.
reportedTitle = Datoteke prijavljene
reportedDescription = Hvala. Prejeli smo vašo prijavo teh datotek.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Përshtypje
importingFile = Po importohet… importingFile = Po importohet…
encryptingFile = Po fshehtëzohet… encryptingFile = Po fshehtëzohet…
decryptingFile = Po shfshehtëzohet… decryptingFile = Po shfshehtëzohet…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, daton 12 mars, 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
addFilesButton = Përzgjidhni kartela për ngarkim addFilesButton = Përzgjidhni kartela për ngarkim
trustWarningMessage = Sigurohuni se i besoni marrësit tuaj, kur ndani me të të dhëna rezervat.
uploadButton = Ngarkoje uploadButton = Ngarkoje
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Tërhiqni dhe lini kartela dragAndDropFiles = Tërhiqni dhe lini kartela
@ -153,3 +153,33 @@ shareLinkButton = Ndani me të tjerët lidhjen
shareMessage = Shkarkojeni “{ $name }” me { -send-brand }: shkëmbim kartelash dhe thjesht dhe pa rrezik shareMessage = Shkarkojeni “{ $name }” me { -send-brand }: shkëmbim kartelash dhe thjesht dhe pa rrezik
trailheadPromo = Ka një rrugë për të mbrojtur privatësinë tuaj. Bëhuni pjesë e Firefox-it. trailheadPromo = Ka një rrugë për të mbrojtur privatësinë tuaj. Bëhuni pjesë e Firefox-it.
learnMore = Mësoni më tepër. learnMore = Mësoni më tepër.
downloadFlagged = Kjo lidhje është çaktivizuar, ngaqë cenon kushtet e shërbimit.
downloadConfirmTitle = Edhe një gjë të fundit
downloadConfirmDescription = Sigurohuni se i besoni personit që ju dërgoi këtë kartelë, ngaqë smund të verifikojmë se nuk do të vërë në rrezik pajisjen tuaj.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] I besoj personit që dërgoi këtë kartelë
*[other] I besoj personit që dërgoi këto kartela
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Raportojeni këtë kartelë si të dyshimtë
*[other] Raportojeni këto kartela si të dyshimta
}
reportDescription = Ndihmonani të kuptojmë çpo ndodh. Çfarë mendoni se është gabim me këto kartela?
reportUnknownDescription = Ju lutemi, shkoni te url-ja e lidhjes që doni të raportoni dhe klikoni mbi “{ reportFile }”.
reportButton = Raportoje
reportReasonMalware = Këto kartela përmbajnë <em>malware</em> ose janë pjesë e një sulmi karremëzimi.
reportReasonPii = Këto kartela përmbajnë të dhëna personalisht të identifikueshme rreth meje.
reportReasonAbuse = Këto kartela përmbajnë lëndë të paligjshme ose abuzive.
reportReasonCopyright = Për të raportuar cenim të drejtash kopjimi ose shenjash tregtare, përdorni procesin e përshkruar në <a>këtë faqe</a>.
reportedTitle = Kartela të Raportuara
reportedDescription = Faleminderit. E kemimarrë raportin tuaj rreth këtyre kartelave.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Повратне информације
importingFile = Увозим… importingFile = Увозим…
encryptingFile = Шифрујем… encryptingFile = Шифрујем…
decryptingFile = Дешифрујем… decryptingFile = Дешифрујем…
@ -124,6 +123,7 @@ legalDateStamp = Издање 1.0, датум објављивања 12. мар
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }д { $hours }ч { $minutes }м expiresDaysHoursMinutes = { $days }д { $hours }ч { $minutes }м
addFilesButton = Изаберите датотеке за отпремање addFilesButton = Изаберите датотеке за отпремање
trustWarningMessage = Будите сигурни да верујете примаоцу пре дељења осетљивих података.
uploadButton = Отпреми uploadButton = Отпреми
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Превуците и пустите датотеке dragAndDropFiles = Превуците и пустите датотеке
@ -162,3 +162,35 @@ shareLinkButton = Поделите везу
shareMessage = Преузмите „{ $name }“ помоћу програма { -send-brand }: једноставно и безбедно дељење датотека shareMessage = Преузмите „{ $name }“ помоћу програма { -send-brand }: једноставно и безбедно дељење датотека
trailheadPromo = Постоји начин да заштитите вашу приватност. Придружите се Firefox-у. trailheadPromo = Постоји начин да заштитите вашу приватност. Придружите се Firefox-у.
learnMore = Сазнајте више. learnMore = Сазнајте више.
downloadFlagged = Ова веза је онемогућена због кршења услова услуге.
downloadConfirmTitle = Још једна ствар
downloadConfirmDescription = Будите сигурни да верујете особи која вам је послала ову датотеку, јер не можемо обећати да неће оштетити ваш уређа.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Верујем особи која је послала ову датотеку
[few] Верујем особи која је послала ове датотеке
*[other] Верујем особама које су послале ове датотеке
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Пријави ову датотеку као сумњиву
[few] Пријави ове датотеке као сумњиве
*[other] Пријави ове датотеке као сумњиве
}
reportDescription = Помозите нам да схватимо шта се дешава. Шта мислите да није у реду са овим датотекама?
reportUnknownDescription = Идите на адресу везе коју желите да пријавите и изаберите “{ reportFile }”.
reportButton = Пријави
reportReasonMalware = Ове датотеке садрже злонамеран софтвер или су део напада за крађу идентитета.
reportReasonPii = Ове датотеке садрже моје личне податке.
reportReasonAbuse = Ове датотеке садрже илегални или насилни садржај.
reportReasonCopyright = Да бисте пријавили кршење ауторских права или заштитног знака, следите кораке на <a>овој страници</a>.
reportedTitle = Датотеке су пријављене
reportedDescription = Хвала вам. Примили смо вашу пријаву ових датотека.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Pangdeudeul
importingFile = Ngimpor... importingFile = Ngimpor...
encryptingFile = Ngénkripsi... encryptingFile = Ngénkripsi...
decryptingFile = Ngadékripsi... decryptingFile = Ngadékripsi...
@ -114,6 +113,7 @@ legalDateStamp = Versi 1.0, kaping 12 Maret 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }p { $hours }j { $minutes }m expiresDaysHoursMinutes = { $days }p { $hours }j { $minutes }m
addFilesButton = Pilih koropak unjalkeuneun addFilesButton = Pilih koropak unjalkeuneun
trustWarningMessage = Sing yakin yén anjeun percaya nalika ngabagi data sénsitip ka nu nampa.
uploadButton = Unjal uploadButton = Unjal
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Ésérkeun sarta ésotkeun koropak dragAndDropFiles = Ésérkeun sarta ésotkeun koropak
@ -151,3 +151,31 @@ shareLinkButton = Bagikeun tutumbu
shareMessage = Undeur "{ $name }" ku { -send-brand }: simpel, babagi koropak aman shareMessage = Undeur "{ $name }" ku { -send-brand }: simpel, babagi koropak aman
trailheadPromo = Aya cara pikeun ngamankeun privasi anjeun. Jabung jeung Firefox. trailheadPromo = Aya cara pikeun ngamankeun privasi anjeun. Jabung jeung Firefox.
learnMore = Lenyepan. learnMore = Lenyepan.
downloadFlagged = Ieu tutumbu ditumpurkeun alatan ngarumpak katangtuan layanan.
downloadConfirmTitle = Hiji deui
downloadConfirmDescription = Sing yakin yén anjeun percaya ka jalma nu ngirim ieu berkas kusabab kami teu bisa mariksa kaamanan ieu berkas.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
*[other] Kami percaya ka jalma nu ngirim ieu berkas
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
*[other] Laporkeun ieu berkas salaku picurigaeun
}
reportDescription = Béjakeun ka kami masalahna. Naon anu sakirana salah dina ieu berkas?
reportUnknownDescription = Mangga buka url tutumbu anu rék dilaporkeun sarta klik “{ reportFile }”.
reportButton = Laporkeun
reportReasonMalware = Ieu berkas ngandung malwér atawa bagian ti tarajang pising.
reportReasonPii = Ieu berkas ngandung émbaran pribadi kami.
reportReasonAbuse = Ieu berkas ngandung kontén ilégal atawa panyalahgunaan.
reportReasonCopyright = Pikeun ngalaporkeun rumpakan hak cipta atawa mérk dagang, paké prosés anu diécéskeun <a>di dieu</a>.
reportedTitle = Berkas Dilaporkeun
reportedDescription = Nuhun. Laporan anjeun ngeunaan ieu berkas geus katampa.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Återkoppling
importingFile = Importerar… importingFile = Importerar…
encryptingFile = Krypterar… encryptingFile = Krypterar…
decryptingFile = Avkodar… decryptingFile = Avkodar…
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, daterad den 12 mars 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # 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 }t { $minutes }m expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
addFilesButton = Välj filer som ska laddas upp addFilesButton = Välj filer som ska laddas upp
trustWarningMessage = Se till att du litar på din mottagare när du delar känslig information.
uploadButton = Ladda upp uploadButton = Ladda upp
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Dra och släpp filer dragAndDropFiles = Dra och släpp filer
@ -153,3 +153,33 @@ shareLinkButton = Dela länk
shareMessage = Ladda ner "{ $name }" med { -send-brand }: enkel, säker fildelning shareMessage = Ladda ner "{ $name }" med { -send-brand }: enkel, säker fildelning
trailheadPromo = Det finns ett sätt att skydda din integritet. Gå med i Firefox. trailheadPromo = Det finns ett sätt att skydda din integritet. Gå med i Firefox.
learnMore = Läs mer. learnMore = Läs mer.
downloadFlagged = Den här länken har inaktiverats pga brott mot användarvillkoren.
downloadConfirmTitle = En sak till
downloadConfirmDescription = Se till att du litar på personen som skickade dig den här filen eftersom vi inte kan verifiera att den inte skadar din enhet.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Jag litar på personen som skickade denna filen
*[other] Jag litar på personen som skickade dessa filer
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Rapportera denna filen som misstänkt
*[other] Rapportera dessa filer som misstänkta
}
reportDescription = Hjälp oss att förstå vad som händer. Vad tycker du är fel med dessa filer?
reportUnknownDescription = Gå till den url till länken du vill rapportera och klicka på "{ reportFile }".
reportButton = Rapportera
reportReasonMalware = Dessa filer innehåller skadlig kod eller är en del av en nätfiskeattack.
reportReasonPii = Dessa filer innehåller personlig identifierbar information om mig.
reportReasonAbuse = Dessa filer innehåller olagligt eller våldsamt innehåll.
reportReasonCopyright = För att rapportera intrång i upphovsrätt eller varumärke, använd processen som beskrivs på <a>den här sidan</a>.
reportedTitle = Rapporterade filer
reportedDescription = Tack. Vi har fått din rapport om dessa filer.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = అభిప్రాయం
importingFile = దిగుమతవుతోంది... importingFile = దిగుమతవుతోంది...
encryptingFile = గుప్తీకరిస్తోంది... encryptingFile = గుప్తీకరిస్తోంది...
decryptingFile = వ్యక్తపరుస్తోంది... decryptingFile = వ్యక్తపరుస్తోంది...
@ -53,6 +52,9 @@ passwordSetError = ఈ సంకేతపదం పెట్టలేకపో
-send-short-brand = పంపించు -send-short-brand = పంపించు
-firefox = Firefox -firefox = Firefox
-mozilla = Mozilla -mozilla = Mozilla
notifyUploadEncryptDone = మీ ఫైలు గుప్తీకరించబడింది, పంపడానికి సిద్ధంగా ఉంది
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
archiveExpiryInfo = { $downloadCount } లేదా { $timespan } తర్వాత కాలంచెల్లుతుంది
timespanMinutes = timespanMinutes =
{ $num -> { $num ->
[one] 1 నిమిషం [one] 1 నిమిషం
@ -111,6 +113,10 @@ accountBenefitTitle = ఒక { -firefox } ఖాతాని సృష్టి
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB") # $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
accountBenefitLargeFiles = { $size } పరిమాణం ఫైళ్ళ వరకు పంచుకోండి accountBenefitLargeFiles = { $size } పరిమాణం ఫైళ్ళ వరకు పంచుకోండి
accountBenefitDownloadCount = ఫైళ్లను ఎక్కువ మందితో పంచుకోండి accountBenefitDownloadCount = ఫైళ్లను ఎక్కువ మందితో పంచుకోండి
accountBenefitTimeLimit =
{ $count ->
*[other] లంకెలను { $count } రోజుల వరకు చేతనంగా ఉంచు
}
accountBenefitSync = ఏదైనా పరికరం నుండి పంచుకున్న ఫైళ్ళను నిర్వహించండి accountBenefitSync = ఏదైనా పరికరం నుండి పంచుకున్న ఫైళ్ళను నిర్వహించండి
accountBenefitMoz = ఇతర { -mozilla } సేవల గురించి తెలుసుకోండి accountBenefitMoz = ఇతర { -mozilla } సేవల గురించి తెలుసుకోండి
signOut = నిష్క్రమించు signOut = నిష్క్రమించు
@ -124,4 +130,7 @@ downloadFirefoxPromo = { -send-short-brand } క్రొత్త { -firefox }
# the next line after the colon contains a file name # the next line after the colon contains a file name
shareLinkDescription = మీ ఫైలుకు లంకెను పంచుకోండి: shareLinkDescription = మీ ఫైలుకు లంకెను పంచుకోండి:
shareLinkButton = లంకెను పంచుకోండి shareLinkButton = లంకెను పంచుకోండి
# $name is the name of the file
shareMessage = “{ $name }”‌ని { -send-brand }తో దించుకోండి: తేలికైన, సురక్షితమైన ఫైలు పంచుకోలు సేవ
trailheadPromo = మీ అంతరంగికతను కాపాడుకోడానికి ఓ మార్గం ఉంది. Firefoxతో చేరండి.
learnMore = ఇంకా తెలుసుకోండి. learnMore = ఇంకా తెలుసుకోండి.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = ข้อคิดเห็น
importingFile = กำลังนำเข้า… importingFile = กำลังนำเข้า…
encryptingFile = กำลังเข้ารหัส… encryptingFile = กำลังเข้ารหัส…
decryptingFile = กำลังถอดรหัส… decryptingFile = กำลังถอดรหัส…
@ -108,6 +107,7 @@ legalDateStamp = รุ่น 1.0 วันที่ 12 มีนาคม 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } วัน { $hours } ชม. { $minutes } นาที expiresDaysHoursMinutes = { $days } วัน { $hours } ชม. { $minutes } นาที
addFilesButton = เลือกไฟล์ที่จะอัปโหลด addFilesButton = เลือกไฟล์ที่จะอัปโหลด
trustWarningMessage = ตรวจสอบให้แน่ใจว่าคุณเชื่อใจผู้รับของคุณขณะที่คุณแบ่งปันข้อมูลที่ละเอียดอ่อน
uploadButton = อัปโหลด uploadButton = อัปโหลด
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = ลากแล้วปล่อยไฟล์ dragAndDropFiles = ลากแล้วปล่อยไฟล์
@ -144,3 +144,31 @@ shareLinkButton = แบ่งปันลิงก์
shareMessage = ดาวน์โหลด “{ $name }” ด้วย { -send-brand }: การแบ่งปันไฟล์ที่ง่ายและเป็นส่วนตัว shareMessage = ดาวน์โหลด “{ $name }” ด้วย { -send-brand }: การแบ่งปันไฟล์ที่ง่ายและเป็นส่วนตัว
trailheadPromo = มีวิธีปกป้องความเป็นส่วนตัวของคุณ เข้าร่วม Firefox trailheadPromo = มีวิธีปกป้องความเป็นส่วนตัวของคุณ เข้าร่วม Firefox
learnMore = เรียนรู้เพิ่มเติม learnMore = เรียนรู้เพิ่มเติม
downloadFlagged = ลิงก์นี้ถูกปิดการใช้งานเนื่องจากละเมิดข้อกำหนดในการให้บริการ
downloadConfirmTitle = อีกหนึ่งอย่าง
downloadConfirmDescription = ตรวจสอบให้แน่ใจว่าคุณเชื่อถือคนที่ส่งไฟล์นี้ให้คุณ เพราะเราไม่สามารถยืนยันได้ว่าไฟล์นี้จะไม่เป็นอันตรายต่ออุปกรณ์ของคุณ
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
*[other] ฉันเชื่อใจคนที่ส่งไฟล์เหล่านี้
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
*[other] รายงานไฟล์เหล่านี้ว่าน่าสงสัย
}
reportDescription = ช่วยให้เราเข้าใจสิ่งที่เกิดขึ้น คุณคิดอย่างไรว่าไฟล์เหล่านี้ผิดปกติ?
reportUnknownDescription = โปรดไปที่ URL ของลิงก์ที่คุณต้องการรายงานและคลิก “{ reportFile }”
reportButton = รายงาน
reportReasonMalware = ไฟล์เหล่านี้มีมัลแวร์หรือเป็นส่วนหนึ่งของการโจมตีแบบฟิชชิ่ง
reportReasonPii = ไฟล์เหล่านี้มีข้อมูลที่สามารถระบุตัวบุคคลได้เกี่ยวกับฉัน
reportReasonAbuse = ไฟล์เหล่านี้มีเนื้อหาที่ผิดกฎหมายหรือไม่เหมาะสม
reportReasonCopyright = หากต้องการรายงานการละเมิดลิขสิทธิ์หรือเครื่องหมายการค้าให้ใช้กระบวนการที่อธิบายไว้ใน <a> หน้านี้ </a>
reportedTitle = ไฟล์ถูกรายงานแล้ว
reportedDescription = ขอบคุณ เราได้รับรายงานของคุณเกี่ยวกับไฟล์เหล่านี้แล้ว

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Görüş bildir
importingFile = İçe aktarılıyor… importingFile = İçe aktarılıyor…
encryptingFile = Şifreleniyor… encryptingFile = Şifreleniyor…
decryptingFile = Şifre çözülüyor… decryptingFile = Şifre çözülüyor…
@ -112,6 +111,7 @@ legalDateStamp = Sürüm 1.0, 12 Mart 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } g { $hours } sa { $minutes } dk expiresDaysHoursMinutes = { $days } g { $hours } sa { $minutes } dk
addFilesButton = Yüklenecek dosyaları seçin addFilesButton = Yüklenecek dosyaları seçin
trustWarningMessage = Hassas verileri paylaşırken alıcıya güvendiğinizden emin olun.
uploadButton = Yükle uploadButton = Yükle
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Dosyaları sürükleyip bırakarak dragAndDropFiles = Dosyaları sürükleyip bırakarak
@ -149,3 +149,33 @@ shareLinkButton = Bağlantıyı paylaş
shareMessage = “{ $name }” dosyasını { -send-brand } ile indirin: basit ve güvenli dosya paylaşımı shareMessage = “{ $name }” dosyasını { -send-brand } ile indirin: basit ve güvenli dosya paylaşımı
trailheadPromo = Gizliliğinizi korumanın bir yolu var. Firefoxa katılın. trailheadPromo = Gizliliğinizi korumanın bir yolu var. Firefoxa katılın.
learnMore = Daha fazla bilgi alın. learnMore = Daha fazla bilgi alın.
downloadFlagged = Bu bağlantı hizmet koşullarımızı ihlal ettiği için devre dışı bırakıldı.
downloadConfirmTitle = Bir şey daha
downloadConfirmDescription = Bu dosyayı gönderen kişiye güvendiğinizden emin olun. Dosyanın cihazınıza zarar vermeyeceğini garanti edemeyiz.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Bu dosyayı gönderen kişiye güveniyorum
*[other] Bu dosyaları gönderen kişiye güveniyorum
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Bu dosyanın şüpheli olduğunu bildir
*[other] Bu dosyaların şüpheli olduğunu bildir
}
reportDescription = Meseleyi anlamamıza yardımcı olun. Bu dosyalardaki sorun nedir?
reportUnknownDescription = Lütfen rapor etmek istediğiniz bağlantının adresine girip “{ reportFile }” bağlantısına tıklayın.
reportButton = Şikâyet et
reportReasonMalware = Bu dosyalar kötü amaçlı yazılım içeriyor veya kimlik avı saldırında kullanılıyor.
reportReasonPii = Bu dosyalar benim hakkımda kişisel bilgiler içeriyor.
reportReasonAbuse = Bu dosyalar yasa dışı veya istismar amaçlı içerik içeriyor.
reportReasonCopyright = Telif hakkı veya ticari marka ihlallerini bildirmek için <a>bu sayfadaki</a> adımları izlemelisiniz.
reportedTitle = Dosyalar rapor edildi
reportedDescription = Teşekkür ederiz. Bu dosyalarla ilgili şikâyetinizi aldık.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Nuguan' tàj doj
importingFile = Hìaj a'nïn huan'ānj… importingFile = Hìaj a'nïn huan'ānj…
encryptingFile = Nagi'iaj hùij… encryptingFile = Nagi'iaj hùij…
decryptingFile = Hìaj nâ'nïn… decryptingFile = Hìaj nâ'nïn…
@ -96,6 +95,12 @@ copyLinkButton = Guxûn lînk
downloadTitle = Nadunïnj nej archîbo downloadTitle = Nadunïnj nej archîbo
downloadFirefox = Nadunïnj { -firefox } downloadFirefox = Nadunïnj { -firefox }
legalTitle = Nuguan huì nikāj { -send-short-brand } legalTitle = Nuguan huì nikāj { -send-short-brand }
uploadButton = Nādusîj
addPassword = Dugumî danga huìi man
emailPlaceholder = Gāchrūn si korreot
signInOnlyButton = Gāyi'ì sēsiûn
signOut = Narun' sesiôn signOut = Narun' sesiôn
okButton = Ga'ue okButton = Ga'ue
downloadingTitle = Hìaj nadunīnj man
shareLinkButton = Duguachîn enlâse shareLinkButton = Duguachîn enlâse
learnMore = Gāhuin chrūn doj.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Відгуки
importingFile = Імпортуємо... importingFile = Імпортуємо...
encryptingFile = Шифруємо... encryptingFile = Шифруємо...
decryptingFile = Розшифровуємо... decryptingFile = Розшифровуємо...
@ -124,6 +123,7 @@ legalDateStamp = Версія 1.0 від 12 березня 2019 року
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days }д { $hours }г { $minutes }хв expiresDaysHoursMinutes = { $days }д { $hours }г { $minutes }хв
addFilesButton = Оберіть файли для вивантаження addFilesButton = Оберіть файли для вивантаження
trustWarningMessage = Переконайтеся, що довіряєте одержувачу коли ділитеся вразливими даними.
uploadButton = Вивантажити uploadButton = Вивантажити
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Перетягуйте файли dragAndDropFiles = Перетягуйте файли
@ -162,3 +162,35 @@ shareLinkButton = Поділитись посиланням
shareMessage = Завантажте “{ $name }” з { -send-brand }: простий та безпечний обмін файлами shareMessage = Завантажте “{ $name }” з { -send-brand }: простий та безпечний обмін файлами
trailheadPromo = Існує спосіб захистити вашу приватність. Приєднуйтесь до Firefox. trailheadPromo = Існує спосіб захистити вашу приватність. Приєднуйтесь до Firefox.
learnMore = Докладніше. learnMore = Докладніше.
downloadFlagged = Це посилання вимкнено через порушення умов надання послуг.
downloadConfirmTitle = Ще порада
downloadConfirmDescription = Переконайтеся, що довіряєте відправнику цього файлу, оскільки ми не можемо перевірити, чи він не зашкодить вашому пристрою.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] Я довіряю відправнику цього файлу
[few] Я довіряю відправнику цих файлів
*[many] Я довіряю відправнику цих файлів
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] Повідомити, що цей файл є підозрілим
[few] Повідомити, що ці файли є підозрілими
*[many] Повідомити, що ці файли є підозрілими
}
reportDescription = Допоможіть нам зрозуміти, що відбувається. Що, на вашу думку, з цими файлами не так?
reportUnknownDescription = Перейдіть до url-адреси посилання, про яке хочете надіслати звіт, та натисніть “{ reportFile }”.
reportButton = Надіслати звіт
reportReasonMalware = Ці файли містять зловмисне програмне забезпечення або є частиною фішинг-атаки.
reportReasonPii = Ці файли містять мої особисті дані.
reportReasonAbuse = Ці файли містять незаконний або образливий вміст.
reportReasonCopyright = Щоб повідомити про порушення авторських прав або торговельних марок, скористайтеся настановами з <a>цієї сторінки</a>.
reportedTitle = Звіт про файли надіслано
reportedDescription = Дякуємо. Ми отримали ваш звіт про ці файли.

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = Phản hồi
importingFile = Đang nhập... importingFile = Đang nhập...
encryptingFile = Đang mã hóa... encryptingFile = Đang mã hóa...
decryptingFile = Đang giải mã... decryptingFile = Đang giải mã...
@ -108,6 +107,7 @@ legalDateStamp = Phiên bản 1.0, ngày 12 tháng 3 năm 2019
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } ngày { $hours } giờ { $minutes } phút expiresDaysHoursMinutes = { $days } ngày { $hours } giờ { $minutes } phút
addFilesButton = Chọn tập tin để tải lên addFilesButton = Chọn tập tin để tải lên
trustWarningMessage = Hãy chắc chắn rằng bạn tin tưởng người nhận khi chia sẻ dữ liệu nhạy cảm.
uploadButton = Tải lên uploadButton = Tải lên
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = Kéo và thả tập tin dragAndDropFiles = Kéo và thả tập tin
@ -144,3 +144,31 @@ shareLinkButton = Chia sẻ liên kết
shareMessage = Tải xuống “{ $name }“ với { -send-brand }: chia sẻ tập tin đơn giản, an toàn shareMessage = Tải xuống “{ $name }“ với { -send-brand }: chia sẻ tập tin đơn giản, an toàn
trailheadPromo = Đây là một cách để bảo vệ sự riêng tư của bạn. Tham gia Firefox. trailheadPromo = Đây là một cách để bảo vệ sự riêng tư của bạn. Tham gia Firefox.
learnMore = Tìm hiểu thêm. learnMore = Tìm hiểu thêm.
downloadFlagged = Liên kết này đã bị vô hiệu hóa do vi phạm các điều khoản dịch vụ.
downloadConfirmTitle = Một điều nữa
downloadConfirmDescription = Hãy chắc chắn rằng bạn tin tưởng người đã gửi cho bạn tập tin này vì chúng tôi không thể xác minh rằng nó sẽ không gây hại cho thiết bị của bạn.
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
*[other] Tôi tin tưởng người đã gửi những tập tin này
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
*[other] Báo cáo các tập tin này là đáng ngờ
}
reportDescription = Hãy giúp chúng tôi hiểu những gì đang diễn ra. Bạn nghĩ gì có gì không đúng với những tập tin này?
reportUnknownDescription = Vui lòng truy cập url của liên kết bạn muốn báo cáo và nhấp vào “{ reportFile }”.
reportButton = Báo cáo
reportReasonMalware = Những tập tin này chứa phần mềm độc hại hoặc là một phần của cuộc tấn công lừa đảo.
reportReasonPii = Những tập tin này chứa thông tin cá nhân về tôi.
reportReasonAbuse = Những tập tin này chứa nội dung bất hợp pháp hoặc lạm dụng.
reportReasonCopyright = Để báo cáo vi phạm bản quyền hoặc nhãn hiệu, hãy sử dụng quy trình được mô tả tại <a>trang này</a>.
reportedTitle = Đã báo cáo tập tin
reportedDescription = Cảm ơn bạn. Chúng tôi đã nhận được báo cáo của bạn về các tập tin này.

View File

@ -1,9 +1,18 @@
# 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 je oruko ile-ise kan, kò sì ye ki a so di ibile. title = Firefox Send je oruko ile-ise kan, kò sì ye ki a so di ibile.
siteFeedback = abo
importingFile = akowọle… importingFile = akowọle…
encryptingFile = Fifi ọrọ ṣiṣẹ… encryptingFile = Fifi ọrọ ṣiṣẹ…
decryptingFile = Ti nkọ nkan… decryptingFile = Ti nkọ nkan…
downloadCount =
{ $num ->
[one] ìsíwá kan…
*[other] ọ̀pọ̀ ìsíwá…
}
timespanHours =
{ $num ->
[one] Wákàtí kan
*[other] Ọ̀pọ wákàtí
}
copiedUrl = dakọ copiedUrl = dakọ
unlockInputPlaceholder = unlockInputPlaceholder =
aṣínà aṣínà
@ -87,3 +96,23 @@ passwordSetError =
introTitle = introTitle =
Fáìlì pípín níkọ̀kọ̀ tó dẹrùn Fáìlì pípín níkọ̀kọ̀ tó dẹrùn
Fáìlì pípín níkọ̀kọ̀ onírọ̀rùn Fáìlì pípín níkọ̀kọ̀ onírọ̀rùn
# byte abbreviation
bytes = B
# kibibyte abbreviation
kb = Kilobaiti
# mebibyte abbreviation
mb = Megabaiti
# gibibyte abbreviation
gb = Gigabaiti
downloadTitle = Se igabisile faili
addFilesButton = E yan awon faili lati gbasoke
# the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = E mu awon faili ki ede ju si bi
emailPlaceholder = E fi imeli si
accountBenefitDownloadCount = E pin faili pelu awon eyan si
okButton = O DA
downloadingTitle = N se igabsile
noStreamsOptionFirefox = E gbiyanju asawakiri to je ayanfe wa
noStreamsOptionDownload = Tesiwaju pelu aṣàwákiri yi
trailheadPromo = Ona wa lati dabobo ipamo re. Darapo mo Firefox
learnMore = Keeko si

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = 反馈
importingFile = 正在导入… importingFile = 正在导入…
encryptingFile = 正在加密… encryptingFile = 正在加密…
decryptingFile = 正在解密… decryptingFile = 正在解密…
@ -113,6 +112,7 @@ legalDateStamp = 版本 1.0,于 2019年3月12日
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } 天 { $hours } 小时 { $minutes } 分钟 expiresDaysHoursMinutes = { $days } 天 { $hours } 小时 { $minutes } 分钟
addFilesButton = 选择要上传的文件 addFilesButton = 选择要上传的文件
trustWarningMessage = 分享敏感数据时,请确保您信任接收人。
uploadButton = 上传 uploadButton = 上传
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = 拖放文件 dragAndDropFiles = 拖放文件
@ -150,3 +150,33 @@ shareLinkButton = 分享链接
shareMessage = 使用 { -send-brand } 下载“{ $name }”:简单、安全的文件分享服务 shareMessage = 使用 { -send-brand } 下载“{ $name }”:简单、安全的文件分享服务
trailheadPromo = 捍卫隐私不是幻想。加入 Firefox 一同抗争。 trailheadPromo = 捍卫隐私不是幻想。加入 Firefox 一同抗争。
learnMore = 详细了解。 learnMore = 详细了解。
downloadFlagged = 由于违反服务条款,此链接已被禁用。
downloadConfirmTitle = 除此之外
downloadConfirmDescription = 请确保您信任发送此文件的人,因为我们无法验证该文件是否会损坏您的设备。
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
[one] 我信任发送此文件的人
*[other] 我信任发送这些文件的人
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
[one] 举报此可疑文件
*[other] 举报这些可疑文件
}
reportDescription = 帮助我们了解发生了什么。您认为这些文件存在什么问题?
reportUnknownDescription = 请转至您要举报的链接 URL然后点击 “{ reportFile }”。
reportButton = 举报
reportReasonMalware = 这些文件包含恶意软件或是网络钓鱼攻击的一环。
reportReasonPii = 这些文件包含我的个人身份信息。
reportReasonAbuse = 这些文件包含非法或滥用内容。
reportReasonCopyright = 要举报版权或商标侵权,请按照<a>此页面</a>中所述步骤。
reportedTitle = 文件已举报
reportedDescription = 感谢,我们已收到您关于这些文件的举报。

View File

@ -1,6 +1,5 @@
# 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 title = Firefox Send
siteFeedback = 意見回饋
importingFile = 匯入中… importingFile = 匯入中…
encryptingFile = 加密中… encryptingFile = 加密中…
decryptingFile = 解密中… decryptingFile = 解密中…
@ -108,6 +107,7 @@ legalDateStamp = 1.0 版2019 年 3 月 12 日生效
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m" # A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
expiresDaysHoursMinutes = { $days } 天 { $hours } 小時 { $minutes } 分鐘 expiresDaysHoursMinutes = { $days } 天 { $hours } 小時 { $minutes } 分鐘
addFilesButton = 選擇要上傳的檔案 addFilesButton = 選擇要上傳的檔案
trustWarningMessage = 分享敏感資料時,請務必確認收件者是可信任的人。
uploadButton = 上傳 uploadButton = 上傳
# the first part of the string 'Drag and drop files or click to send up to 1GB' # the first part of the string 'Drag and drop files or click to send up to 1GB'
dragAndDropFiles = 拖放檔案到此處 dragAndDropFiles = 拖放檔案到此處
@ -144,3 +144,31 @@ shareLinkButton = 分享鏈結
shareMessage = 使用 { -send-brand } 下載「{ $name }」: 簡單安全的檔案分享機制 shareMessage = 使用 { -send-brand } 下載「{ $name }」: 簡單安全的檔案分享機制
trailheadPromo = 有種方法可以保護您的隱私,加入 Firefox。 trailheadPromo = 有種方法可以保護您的隱私,加入 Firefox。
learnMore = 了解更多。 learnMore = 了解更多。
downloadFlagged = 由於違反了服務條款,已停用此鏈結。
downloadConfirmTitle = 還有一件事
downloadConfirmDescription = 因為我們無法檢查此檔案是否會傷害您的裝置,請務必確認發送者是否可受信任。
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
downloadTrustCheckbox =
{ $count ->
*[other] 我信任傳送檔案給我的人
}
# This string has a special case for '1' and [other] (default). If necessary for
# your language, you can add {$count} to your translations and use the
# standard CLDR forms, or only use the form for [other] if both strings should
# be identical.
reportFile =
{ $count ->
*[other] 回報檔案為可疑檔案
}
reportDescription = 請幫助我們釐清發生了什麼事。您覺得這些檔案有什麼問題?
reportUnknownDescription = 請到想要回報的鏈結網址點擊「{ reportFile }」。
reportButton = 回報
reportReasonMalware = 這些檔案包含惡意軟體,或是釣魚攻擊的一部分。
reportReasonPii = 這些檔案包含我的個人資訊。
reportReasonAbuse = 這些檔案包含非法或濫用內容。
reportReasonCopyright = 若檔案內容侵犯了著作權或商標,請根據<a>此頁面</a>當中描述的方式進行回報。
reportedTitle = 已回報檔案問題
reportedDescription = 感謝您。我們已經收到您對這些檔案的問題回報。

View File

@ -3,10 +3,6 @@ const fetch = require('node-fetch');
const config = require('./config'); const config = require('./config');
const pkg = require('../package.json'); const pkg = require('../package.json');
const geoip = config.ip_db
? require('fxa-geodb')({ dbPath: config.ip_db })
: () => ({});
const HOUR = 1000 * 60 * 60; const HOUR = 1000 * 60 * 60;
function truncateToHour(timestamp) { function truncateToHour(timestamp) {
@ -24,20 +20,11 @@ function userId(fileId, ownerId) {
return hash.digest('hex').substring(32); return hash.digest('hex').substring(32);
} }
function location(ip) {
try {
return geoip(ip);
} catch (e) {
return {};
}
}
function statUploadEvent(data) { function statUploadEvent(data) {
const loc = location(data.ip);
const event = { const event = {
session_id: -1, session_id: -1,
country: loc.country, country: data.country,
region: loc.state, region: data.state,
user_id: userId(data.id, data.owner), user_id: userId(data.id, data.owner),
app_version: pkg.version, app_version: pkg.version,
time: truncateToHour(Date.now()), time: truncateToHour(Date.now()),
@ -57,11 +44,10 @@ function statUploadEvent(data) {
} }
function statDownloadEvent(data) { function statDownloadEvent(data) {
const loc = location(data.ip);
const event = { const event = {
session_id: -1, session_id: -1,
country: loc.country, country: data.country,
region: loc.state, region: data.state,
user_id: userId(data.id, data.owner), user_id: userId(data.id, data.owner),
app_version: pkg.version, app_version: pkg.version,
time: truncateToHour(Date.now()), time: truncateToHour(Date.now()),
@ -77,11 +63,10 @@ function statDownloadEvent(data) {
} }
function statDeleteEvent(data) { function statDeleteEvent(data) {
const loc = location(data.ip);
const event = { const event = {
session_id: -1, session_id: -1,
country: loc.country, country: data.country,
region: loc.state, region: data.state,
user_id: userId(data.id, data.owner), user_id: userId(data.id, data.owner),
app_version: pkg.version, app_version: pkg.version,
time: truncateToHour(Date.now()), time: truncateToHour(Date.now()),
@ -96,8 +81,37 @@ function statDeleteEvent(data) {
return sendBatch([event]); return sendBatch([event]);
} }
function clientEvent(event, ua, language, session_id, deltaT, platform, ip) { function statReportEvent(data) {
const loc = location(ip); const event = {
session_id: -1,
country: data.country,
region: data.state,
user_id: userId(data.id, data.owner),
app_version: pkg.version,
time: truncateToHour(Date.now()),
event_type: 'server_report',
event_properties: {
reason: data.reason,
agent: data.agent,
download_limit: data.dlimit,
download_count: data.download_count,
ttl: data.ttl
},
event_id: data.download_count + 1
};
return sendBatch([event]);
}
function clientEvent(
event,
ua,
language,
session_id,
deltaT,
platform,
country,
state
) {
const ep = event.event_properties || {}; const ep = event.event_properties || {};
const up = event.user_properties || {}; const up = event.user_properties || {};
const event_properties = { const event_properties = {
@ -133,7 +147,7 @@ function clientEvent(event, ua, language, session_id, deltaT, platform, ip) {
}; };
return { return {
app_version: pkg.version, app_version: pkg.version,
country: loc.country, country: country,
device_id: event.device_id, device_id: event.device_id,
event_properties, event_properties,
event_type: event.event_type, event_type: event.event_type,
@ -141,7 +155,7 @@ function clientEvent(event, ua, language, session_id, deltaT, platform, ip) {
os_name: ua.os.name, os_name: ua.os.name,
os_version: ua.os.version, os_version: ua.os.version,
platform, platform,
region: loc.state, region: state,
session_id, session_id,
time: event.time + deltaT, time: event.time + deltaT,
user_id: event.user_id, user_id: event.user_id,
@ -173,6 +187,7 @@ module.exports = {
statUploadEvent, statUploadEvent,
statDownloadEvent, statDownloadEvent,
statDeleteEvent, statDeleteEvent,
statReportEvent,
clientEvent, clientEvent,
sendBatch sendBatch
}; };

View File

@ -14,7 +14,7 @@ module.exports = function(app, devServer) {
expressWs(wsapp, null, { perMessageDeflate: false }); expressWs(wsapp, null, { perMessageDeflate: false });
routes(wsapp); routes(wsapp);
wsapp.ws('/api/ws', require('../routes/ws')); wsapp.ws('/api/ws', require('../routes/ws'));
wsapp.listen(8081, config.listen_address); wsapp.listen(1338, config.listen_address);
assets.setMiddleware(devServer.middleware); assets.setMiddleware(devServer.middleware);
app.use(morgan('dev', { stream: process.stderr })); app.use(morgan('dev', { stream: process.stderr }));

View File

@ -71,7 +71,7 @@ const conf = convict({
}, },
redis_host: { redis_host: {
format: String, format: String,
default: 'localhost', default: 'mock',
env: 'REDIS_HOST' env: 'REDIS_HOST'
}, },
redis_event_expire: { redis_event_expire: {
@ -120,6 +120,11 @@ const conf = convict({
default: '', default: '',
env: 'SENTRY_DSN' env: 'SENTRY_DSN'
}, },
sentry_host: {
format: String,
default: 'https://sentry.prod.mozaws.net',
env: 'SENTRY_HOST'
},
env: { env: {
format: ['production', 'development', 'test'], format: ['production', 'development', 'test'],
default: 'development', default: 'development',
@ -150,9 +155,14 @@ const conf = convict({
default: `${tmpdir()}${path.sep}send-${randomBytes(4).toString('hex')}`, default: `${tmpdir()}${path.sep}send-${randomBytes(4).toString('hex')}`,
env: 'FILE_DIR' env: 'FILE_DIR'
}, },
fxa_required: {
format: Boolean,
default: true,
env: 'FXA_REQUIRED'
},
fxa_url: { fxa_url: {
format: 'url', format: 'url',
default: 'https://send-fxa.dev.lcip.org', default: 'http://localhost:3030',
env: 'FXA_URL' env: 'FXA_URL'
}, },
fxa_client_id: { fxa_client_id: {

Some files were not shown because too many files have changed in this diff Show More