mirror of
https://gitlab.com/timvisee/send.git
synced 2025-12-08 23:18:39 +03:00
Compare commits
116 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8b798ce36c | ||
|
|
894ad6cb08 | ||
|
|
98c4bd0f50 | ||
|
|
898d152810 | ||
|
|
9c588ed008 | ||
|
|
1da7e1c112 | ||
|
|
19d1f8cf80 | ||
|
|
29f243fdda | ||
|
|
bd58022b08 | ||
|
|
a6fa2c642c | ||
|
|
890642fcff | ||
|
|
74ecb598d2 | ||
|
|
48b5d85904 | ||
|
|
373da3f090 | ||
|
|
4a69ccbe51 | ||
|
|
4c1496e1cd | ||
|
|
0a243dfb52 | ||
|
|
79bd847042 | ||
|
|
2fe5cad9d5 | ||
|
|
fbde75fd66 | ||
|
|
24167161b1 | ||
|
|
eda132832f | ||
|
|
4839ff3584 | ||
|
|
de2d11cc59 | ||
|
|
95779b3243 | ||
|
|
7f76a279c3 | ||
|
|
219b1d6806 | ||
|
|
efea0e5ab0 | ||
|
|
5d19a9d696 | ||
|
|
17a12e3194 | ||
|
|
b71265b0c5 | ||
|
|
4a62048d64 | ||
|
|
acd48cc2f5 | ||
|
|
364778c516 | ||
|
|
d7ca9b4f84 | ||
|
|
b6350c787a | ||
|
|
ee8a672873 | ||
|
|
67b812a538 | ||
|
|
c811cbd34e | ||
|
|
2ed09d1fda | ||
|
|
557ecb196d | ||
|
|
88e8a234d6 | ||
|
|
34eb0fce2a | ||
|
|
995054a2cb | ||
|
|
e70161bfb0 | ||
|
|
ebf62761bc | ||
|
|
cf08b03a6b | ||
|
|
f3be26d5f5 | ||
|
|
03c68b0c58 | ||
|
|
59d460e80b | ||
|
|
87f947c31d | ||
|
|
7ff0a7654c | ||
|
|
9f829e8467 | ||
|
|
b68762da50 | ||
|
|
caef279fed | ||
|
|
0dfda7c610 | ||
|
|
5c2d9d8673 | ||
|
|
be51ae7ac9 | ||
|
|
1ba6aceb1f | ||
|
|
0a3c3d8c51 | ||
|
|
38aa460a03 | ||
|
|
58b7a17680 | ||
|
|
1ce115c3e9 | ||
|
|
8cf3b89f91 | ||
|
|
eced5be836 | ||
|
|
bb4fa0a75c | ||
|
|
98b62cd1c2 | ||
|
|
62461f50a5 | ||
|
|
1be87a531c | ||
|
|
f70caf814b | ||
|
|
a9595e501d | ||
|
|
40814207ee | ||
|
|
1970a88ece | ||
|
|
a6d41e70b2 | ||
|
|
549ce3281a | ||
|
|
1ec56df7ad | ||
|
|
c78899c387 | ||
|
|
c76fe3ac96 | ||
|
|
49cfd599ec | ||
|
|
74c08200ad | ||
|
|
8cd5839d36 | ||
|
|
cbd7a99e38 | ||
|
|
6a5960c254 | ||
|
|
b70cbd8359 | ||
|
|
ad72fa11a4 | ||
|
|
cc9a5d112a | ||
|
|
122867b926 | ||
|
|
3f7d755070 | ||
|
|
ad9070b7c6 | ||
|
|
30678b824b | ||
|
|
5dedad8ae7 | ||
|
|
748f8cc7f8 | ||
|
|
be9b51adbb | ||
|
|
7f13d4d9b6 | ||
|
|
0e81ef2514 | ||
|
|
b0907095e4 | ||
|
|
c4cc736cff | ||
|
|
c4118c5684 | ||
|
|
fad35cf8fc | ||
|
|
062cbbd1f8 | ||
|
|
f200bd51d2 | ||
|
|
152616574f | ||
|
|
822fcb363d | ||
|
|
e1c6e59495 | ||
|
|
d42d8f8b75 | ||
|
|
ebbb1d05d2 | ||
|
|
67b55d1477 | ||
|
|
e3391ca823 | ||
|
|
0cac3bd0dc | ||
|
|
78de0b7a22 | ||
|
|
14308dc491 | ||
|
|
f690e4a705 | ||
|
|
3e14d3049d | ||
|
|
6a6f8b86e4 | ||
|
|
c4891c3866 | ||
|
|
0012dec277 |
15
CODE_OF_CONDUCT.md
Normal file
15
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Community Participation Guidelines
|
||||||
|
|
||||||
|
This repository is governed by Mozilla's code of conduct and etiquette guidelines.
|
||||||
|
For more details, please read the
|
||||||
|
[Mozilla Community Participation Guidelines](https://www.mozilla.org/about/governance/policies/participation/).
|
||||||
|
|
||||||
|
## How to Report
|
||||||
|
For more information on how to report violations of the Community Participation Guidelines, please read our '[How to Report](https://www.mozilla.org/about/governance/policies/participation/reporting/)' page.
|
||||||
|
|
||||||
|
<!--
|
||||||
|
## Project Specific Etiquette
|
||||||
|
|
||||||
|
In some cases, there will be additional project etiquette i.e.: (https://bugzilla.mozilla.org/page.cgi?id=etiquette.html).
|
||||||
|
Please update for your project.
|
||||||
|
-->
|
||||||
62
CONTRIBUTORS
62
CONTRIBUTORS
@@ -5,17 +5,26 @@ Alberto Castro
|
|||||||
Alexander Slovesnik
|
Alexander Slovesnik
|
||||||
Alfredos-Panagiotis Damkalis
|
Alfredos-Panagiotis Damkalis
|
||||||
Amin Mahmudian
|
Amin Mahmudian
|
||||||
|
Ander Elortondo
|
||||||
Andreas Pettersson
|
Andreas Pettersson
|
||||||
|
Anesu Chiodza
|
||||||
|
Anika Dorn
|
||||||
Arash Mousavi
|
Arash Mousavi
|
||||||
Artem Polivanchuk
|
Artem Polivanchuk
|
||||||
Ashikur Rahman
|
Ashikur Rahman
|
||||||
|
Ashok kumar
|
||||||
Balázs Meskó
|
Balázs Meskó
|
||||||
Belayet Hossain
|
Belayet Hossain
|
||||||
|
Benjamin Forehand Jr
|
||||||
Besnik Bleta
|
Besnik Bleta
|
||||||
|
Björn I
|
||||||
Bjørn I
|
Bjørn I
|
||||||
Boopesh Mahendran
|
Boopesh Mahendran
|
||||||
|
Brainlulz
|
||||||
Breana Gonzales
|
Breana Gonzales
|
||||||
|
Christopher Ramírez
|
||||||
Chuck Harmston
|
Chuck Harmston
|
||||||
|
Cloney 173741
|
||||||
Cláudio Esperança
|
Cláudio Esperança
|
||||||
Cristian Silaghi
|
Cristian Silaghi
|
||||||
Cynthia Pereira
|
Cynthia Pereira
|
||||||
@@ -23,38 +32,53 @@ Daniel Thorn
|
|||||||
Daniela Arcese
|
Daniela Arcese
|
||||||
Danny Coates
|
Danny Coates
|
||||||
Derek Tamsen
|
Derek Tamsen
|
||||||
|
Dhyey Thakore
|
||||||
|
Donovan Preston
|
||||||
|
Edi Santoso
|
||||||
Edmund Huggett
|
Edmund Huggett
|
||||||
Elisa X
|
Elisa X
|
||||||
|
Emily
|
||||||
|
Emily Hou
|
||||||
Emin Mastizada
|
Emin Mastizada
|
||||||
Enol
|
Enol
|
||||||
Erica
|
Erica
|
||||||
Erica Wright
|
Erica Wright
|
||||||
|
Fauzan Alfi
|
||||||
Filip Hruška
|
Filip Hruška
|
||||||
Fjoerfoks
|
Fjoerfoks
|
||||||
Francesco Lodolo
|
Francesco Lodolo
|
||||||
Francesco Lodolo [:flod]
|
Francesco Lodolo [:flod]
|
||||||
Frederick Villaluna
|
Frederick Villaluna
|
||||||
|
G12r
|
||||||
Gabriela
|
Gabriela
|
||||||
Gautam krishna.R
|
Gautam krishna.R
|
||||||
Georgianizator
|
Georgianizator
|
||||||
Gonçalo Matos
|
Gonçalo Matos
|
||||||
Hyeonseok Shin
|
Hyeonseok Shin
|
||||||
Håvar Henriksen
|
Håvar Henriksen
|
||||||
|
Ian Neal
|
||||||
Jae Hyeon Park
|
Jae Hyeon Park
|
||||||
|
Jakob Kappel
|
||||||
Jakub Rychlý
|
Jakub Rychlý
|
||||||
Jamie
|
Jamie
|
||||||
|
Jarmo
|
||||||
Jim Spentzos
|
Jim Spentzos
|
||||||
|
Jiri Grönroos
|
||||||
Jobava
|
Jobava
|
||||||
|
Joergen
|
||||||
Johann-S
|
Johann-S
|
||||||
John Gruen
|
John Gruen
|
||||||
|
Jon Buckley
|
||||||
Jon Vadillo
|
Jon Vadillo
|
||||||
Jonathan Claudius
|
Jonathan Claudius
|
||||||
Jordi Cuevas
|
Jordi Cuevas
|
||||||
Jordi Serratosa
|
Jordi Serratosa
|
||||||
Juan Esteban Ajsivinac Sián
|
Juan Esteban Ajsivinac Sián
|
||||||
|
Juan Sián
|
||||||
Juraj Cigáň
|
Juraj Cigáň
|
||||||
Kerim Kalamujić
|
Kerim Kalamujić
|
||||||
Khaled Hosny
|
Khaled Hosny
|
||||||
|
Kim Ludvigsen
|
||||||
Kohei Yoshino
|
Kohei Yoshino
|
||||||
Lan Glad
|
Lan Glad
|
||||||
Laurent Jouanneau
|
Laurent Jouanneau
|
||||||
@@ -62,11 +86,15 @@ Lobodzets
|
|||||||
LuFlo
|
LuFlo
|
||||||
Luiz Carlos de Morais
|
Luiz Carlos de Morais
|
||||||
Luna Jernberg
|
Luna Jernberg
|
||||||
|
Mahay Alam Khan
|
||||||
|
Marcelo Ghelman
|
||||||
Marcelo Poli
|
Marcelo Poli
|
||||||
Marco Aurélio
|
Marco Aurélio
|
||||||
Mark Heijl
|
Mark Heijl
|
||||||
Mark Liang
|
Mark Liang
|
||||||
|
Mark Liang (You-Wen)
|
||||||
Marko Andrejić
|
Marko Andrejić
|
||||||
|
Marwan Mohamad
|
||||||
Matjaž Horvat
|
Matjaž Horvat
|
||||||
Maykon Chagas
|
Maykon Chagas
|
||||||
Melo46
|
Melo46
|
||||||
@@ -75,9 +103,13 @@ Michael Köhler
|
|||||||
Michael Wolf
|
Michael Wolf
|
||||||
Michal Stanke
|
Michal Stanke
|
||||||
Michal Vašíček
|
Michal Vašíček
|
||||||
|
Mikeyy
|
||||||
|
Miro Rauhala
|
||||||
Mozilla Pontoon
|
Mozilla Pontoon
|
||||||
|
Mozinet
|
||||||
Moḥend Belqasem
|
Moḥend Belqasem
|
||||||
Muḥend Belqasem
|
Muḥend Belqasem
|
||||||
|
Myungjae Won
|
||||||
Nicholas Skinsacos
|
Nicholas Skinsacos
|
||||||
Nihad
|
Nihad
|
||||||
Nihad Suljić
|
Nihad Suljić
|
||||||
@@ -85,14 +117,20 @@ Oscar
|
|||||||
Peter deHaan
|
Peter deHaan
|
||||||
Pierre Neter
|
Pierre Neter
|
||||||
Pin-guang Chen
|
Pin-guang Chen
|
||||||
|
Piotr Drąg
|
||||||
|
Quế Tùng
|
||||||
Radu Popescu
|
Radu Popescu
|
||||||
Rhoslyn Prys
|
Rhoslyn Prys
|
||||||
RickieES
|
RickieES
|
||||||
|
Rimas Kudelis
|
||||||
Rizky Ariestiyansyah
|
Rizky Ariestiyansyah
|
||||||
|
Rob Powell
|
||||||
Roberto Alvarado
|
Roberto Alvarado
|
||||||
Rodrigo
|
Rodrigo
|
||||||
Rodrigo Guerra
|
Rodrigo Guerra
|
||||||
Rok Žerdin
|
Rok Žerdin
|
||||||
|
Rongjian Zhang
|
||||||
|
Ruba
|
||||||
Sahithi
|
Sahithi
|
||||||
Sairam Raavi
|
Sairam Raavi
|
||||||
Sander Lepik
|
Sander Lepik
|
||||||
@@ -108,25 +146,34 @@ Tema
|
|||||||
Thomas Dalichow
|
Thomas Dalichow
|
||||||
Théo Chevalier
|
Théo Chevalier
|
||||||
Tiago Morais Morgado
|
Tiago Morais Morgado
|
||||||
|
Tim Visée
|
||||||
|
Tomer Cohen
|
||||||
Tomáš Zelina
|
Tomáš Zelina
|
||||||
Ton
|
Ton
|
||||||
Tymur Faradzhev
|
Tymur Faradzhev
|
||||||
Uccen Marzuq
|
Uccen Marzuq
|
||||||
Varghese Thomas
|
Varghese Thomas
|
||||||
Victor Bychek
|
Victor Bychek
|
||||||
|
Vimal Raghubir
|
||||||
Vitaliy Krutko
|
Vitaliy Krutko
|
||||||
Weihang Lo
|
Weihang Lo
|
||||||
Wil Clouser
|
Wil Clouser
|
||||||
YFdyh000
|
YFdyh000
|
||||||
|
Yongmin H
|
||||||
You-Wen Liang (Mark)
|
You-Wen Liang (Mark)
|
||||||
|
aaaaalbert
|
||||||
aefgh39622
|
aefgh39622
|
||||||
|
alamanda
|
||||||
albertdcastro
|
albertdcastro
|
||||||
alex_mayorga
|
alex_mayorga
|
||||||
ariestiyansyah
|
ariestiyansyah
|
||||||
avelper
|
avelper
|
||||||
|
chilledfrogs
|
||||||
dgadelha
|
dgadelha
|
||||||
|
dskmori
|
||||||
ehuggett
|
ehuggett
|
||||||
eljuno
|
eljuno
|
||||||
|
emily-hou1
|
||||||
erdem cobanoglu
|
erdem cobanoglu
|
||||||
gautamkrishnar
|
gautamkrishnar
|
||||||
gmontagu
|
gmontagu
|
||||||
@@ -137,21 +184,36 @@ jesferman1993
|
|||||||
jlG
|
jlG
|
||||||
josotrix
|
josotrix
|
||||||
jspam
|
jspam
|
||||||
|
julenx
|
||||||
kenrick95
|
kenrick95
|
||||||
manxmensch
|
manxmensch
|
||||||
|
marigalicer
|
||||||
mirzet.omerovic.1992
|
mirzet.omerovic.1992
|
||||||
|
passionforlife
|
||||||
|
paul.trevor
|
||||||
|
pyup.io bot
|
||||||
ravmn
|
ravmn
|
||||||
rcmainak
|
rcmainak
|
||||||
reza.habibi2008
|
reza.habibi2008
|
||||||
|
risger
|
||||||
|
robbp
|
||||||
|
ruikunai
|
||||||
savemore99.sm
|
savemore99.sm
|
||||||
shikhar-scs
|
shikhar-scs
|
||||||
siparon
|
siparon
|
||||||
skystar-p
|
skystar-p
|
||||||
|
stripTM
|
||||||
|
tatalmondmush
|
||||||
tiagomoraismorgado
|
tiagomoraismorgado
|
||||||
timvisee
|
timvisee
|
||||||
|
victor.gonzalezro
|
||||||
xcffl
|
xcffl
|
||||||
ybouhamam
|
ybouhamam
|
||||||
|
yoshimitsu002
|
||||||
Μιχάλης
|
Μιχάλης
|
||||||
Марко Костић (Marko Kostić)
|
Марко Костић (Marko Kostić)
|
||||||
صفا الفليج
|
صفا الفليج
|
||||||
వీవెన్
|
వీవెన్
|
||||||
|
张无忌
|
||||||
|
新垣结衣松冈茉优长泽雅美门胁麦上野树里石原里美
|
||||||
|
莫非前世那一眼
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Firefox Send
|
# [](https://send.firefox.com/)
|
||||||
|
|
||||||
[](https://circleci.com/gh/mozilla/send)
|
[](https://circleci.com/gh/mozilla/send)
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,8 @@ import share from './pages/share';
|
|||||||
import preferences from './pages/preferences';
|
import preferences from './pages/preferences';
|
||||||
import error from './pages/error';
|
import error from './pages/error';
|
||||||
import { getTranslator } from '../app/locale';
|
import { getTranslator } from '../app/locale';
|
||||||
|
import { setTranslate } from '../app/utils';
|
||||||
|
|
||||||
import { delay } from '../app/utils';
|
import { delay } from '../app/utils';
|
||||||
|
|
||||||
if (navigator.userAgent === 'Send Android') {
|
if (navigator.userAgent === 'Send Android') {
|
||||||
@@ -69,6 +71,7 @@ function body(main) {
|
|||||||
}
|
}
|
||||||
(async function start() {
|
(async function start() {
|
||||||
const translate = await getTranslator('en-US');
|
const translate = await getTranslator('en-US');
|
||||||
|
setTranslate(translate);
|
||||||
const { LIMITS, DEFAULTS } = await getConstants();
|
const { LIMITS, DEFAULTS } = await getConstants();
|
||||||
app.use(state => {
|
app.use(state => {
|
||||||
state.LIMITS = LIMITS;
|
state.LIMITS = LIMITS;
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
apply plugin: 'com.android.application'
|
apply plugin: 'com.android.application'
|
||||||
|
|
||||||
apply plugin: 'kotlin-android'
|
apply plugin: 'kotlin-android'
|
||||||
|
|
||||||
apply plugin: 'kotlin-android-extensions'
|
apply plugin: 'kotlin-android-extensions'
|
||||||
|
|
||||||
android {
|
android {
|
||||||
@@ -31,7 +29,7 @@ dependencies {
|
|||||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
||||||
implementation 'com.github.delight-im:Android-AdvancedWebView:v3.0.0'
|
implementation 'com.github.delight-im:Android-AdvancedWebView:v3.0.0'
|
||||||
implementation "org.mozilla.components:service-firefox-accounts:${rootProject.ext.android_components_version}"
|
implementation "org.mozilla.components:service-firefox-accounts:$android_components_version"
|
||||||
}
|
}
|
||||||
|
|
||||||
task generateAndLinkBundle(type: Exec, description: 'Generate the android.js bundle and link it into the assets directory') {
|
task generateAndLinkBundle(type: Exec, description: 'Generate the android.js bundle and link it into the assets directory') {
|
||||||
|
|||||||
@@ -1,39 +1,39 @@
|
|||||||
package org.mozilla.firefoxsend
|
package org.mozilla.firefoxsend
|
||||||
|
|
||||||
|
|
||||||
import android.support.v7.app.AppCompatActivity
|
|
||||||
import android.os.Bundle
|
|
||||||
import im.delight.android.webview.AdvancedWebView
|
|
||||||
import android.graphics.Bitmap
|
|
||||||
import android.content.Intent
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
import android.content.ComponentName
|
import android.content.ComponentName
|
||||||
|
import android.content.Intent
|
||||||
|
import android.graphics.Bitmap
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.webkit.WebView
|
import android.os.Bundle
|
||||||
import android.webkit.WebMessage
|
import android.support.v7.app.AppCompatActivity
|
||||||
import android.util.Log
|
|
||||||
import android.util.Base64
|
import android.util.Base64
|
||||||
|
import android.util.Log
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.webkit.ConsoleMessage
|
import android.webkit.*
|
||||||
import android.webkit.JavascriptInterface
|
import im.delight.android.webview.AdvancedWebView
|
||||||
import android.webkit.WebChromeClient
|
import kotlinx.android.synthetic.main.activity_main.*
|
||||||
import mozilla.components.service.fxa.Config
|
import mozilla.components.service.fxa.Config
|
||||||
import mozilla.components.service.fxa.FirefoxAccount
|
import mozilla.components.service.fxa.FirefoxAccount
|
||||||
import mozilla.components.service.fxa.Profile
|
|
||||||
import mozilla.components.service.fxa.FxaResult
|
import mozilla.components.service.fxa.FxaResult
|
||||||
|
import org.json.JSONObject
|
||||||
|
|
||||||
internal class LoggingWebChromeClient : WebChromeClient() {
|
internal class LoggingWebChromeClient : WebChromeClient() {
|
||||||
override fun onConsoleMessage(cm: ConsoleMessage): Boolean {
|
override fun onConsoleMessage(cm: ConsoleMessage): Boolean {
|
||||||
Log.w("CONTENT", String.format("%s @ %d: %s",
|
Log.d(TAG, String.format("%s @ %d: %s",
|
||||||
cm.message(), cm.lineNumber(), cm.sourceId()))
|
cm.message(), cm.lineNumber(), cm.sourceId()))
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val TAG = "CONTENT"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class WebAppInterface(private val mContext: MainActivity) {
|
class WebAppInterface(private val mContext: MainActivity) {
|
||||||
@JavascriptInterface
|
@JavascriptInterface
|
||||||
fun beginOAuthFlow() {
|
fun beginOAuthFlow() {
|
||||||
mContext.beginOAuthFlow();
|
mContext.beginOAuthFlow()
|
||||||
}
|
}
|
||||||
|
|
||||||
@JavascriptInterface
|
@JavascriptInterface
|
||||||
@@ -43,176 +43,184 @@ class WebAppInterface(private val mContext: MainActivity) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class MainActivity : AppCompatActivity(), AdvancedWebView.Listener {
|
class MainActivity : AppCompatActivity(), AdvancedWebView.Listener {
|
||||||
private var mWebView: AdvancedWebView? = null
|
|
||||||
private var mToShare: String? = null
|
private var mToShare: String? = null
|
||||||
private var mToCall: String? = null
|
private var mToCall: String? = null
|
||||||
private var mAccount: FirefoxAccount? = null
|
private var mAccount: FirefoxAccount? = null
|
||||||
|
|
||||||
|
@SuppressLint("SetJavaScriptEnabled")
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.activity_main)
|
||||||
|
|
||||||
// https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews
|
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG)
|
||||||
// WebView.setWebContentsDebuggingEnabled(true); // TODO only dev builds
|
webView.apply {
|
||||||
|
setListener(this@MainActivity, this@MainActivity)
|
||||||
|
addJavascriptInterface(WebAppInterface(this@MainActivity), JS_INTERFACE_NAME)
|
||||||
|
setLayerType(View.LAYER_TYPE_HARDWARE, null)
|
||||||
|
webChromeClient = LoggingWebChromeClient()
|
||||||
|
|
||||||
mWebView = findViewById<WebView>(R.id.webview) as AdvancedWebView
|
settings.apply {
|
||||||
mWebView!!.setListener(this, this)
|
userAgentString = "Send Android"
|
||||||
mWebView!!.setWebChromeClient(LoggingWebChromeClient())
|
allowUniversalAccessFromFileURLs = true
|
||||||
mWebView!!.addJavascriptInterface(WebAppInterface(this), "Android")
|
javaScriptEnabled = true
|
||||||
mWebView!!.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
val webSettings = mWebView!!.getSettings()
|
val type = intent.type
|
||||||
webSettings.setUserAgentString("Send Android")
|
if (Intent.ACTION_SEND == intent.action && type != null) {
|
||||||
webSettings.setAllowUniversalAccessFromFileURLs(true)
|
if (type == "text/plain") {
|
||||||
webSettings.setJavaScriptEnabled(true)
|
|
||||||
|
|
||||||
val intent = getIntent()
|
|
||||||
val action = intent.getAction()
|
|
||||||
val type = intent.getType()
|
|
||||||
|
|
||||||
if (Intent.ACTION_SEND.equals(action) && type != null) {
|
|
||||||
if (type.equals("text/plain")) {
|
|
||||||
val sharedText = intent.getStringExtra(Intent.EXTRA_TEXT)
|
val sharedText = intent.getStringExtra(Intent.EXTRA_TEXT)
|
||||||
Log.w("INTENT", "text/plain " + sharedText)
|
// Log.d(TAG_INTENT, "text/plain $sharedText")
|
||||||
mToShare = "data:text/plain;base64," + Base64.encodeToString(sharedText.toByteArray(), 16).trim()
|
mToShare = "data:text/plain;base64," + Base64.encodeToString(sharedText.toByteArray(), 16).trim()
|
||||||
} else if (type.startsWith("image/")) {
|
} else if (type.startsWith("image/")) {
|
||||||
val imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM) as Uri
|
val imageUri = intent.getParcelableExtra(Intent.EXTRA_STREAM) as Uri
|
||||||
Log.w("INTENT", "image/ " + imageUri)
|
// Log.d(TAG_INTENT, "image/ $imageUri")
|
||||||
mToShare = "data:text/plain;base64," + Base64.encodeToString(imageUri.path.toByteArray(), 16).trim()
|
mToShare = "data:text/plain;base64," + Base64.encodeToString(imageUri.path.toByteArray(), 16).trim()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mWebView!!.loadUrl("file:///android_asset/android.html")
|
webView.loadUrl("file:///android_asset/android.html")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun beginOAuthFlow() {
|
fun beginOAuthFlow() {
|
||||||
Config.release().then(fun (value: Config): FxaResult<Unit> {
|
Config.release().then { value ->
|
||||||
mAccount = FirefoxAccount(value, "20f7931c9054d833", "https://send.firefox.com/fxa/android-redirect.html")
|
mAccount = FirefoxAccount(value, "20f7931c9054d833", "https://send.firefox.com/fxa/android-redirect.html")
|
||||||
mAccount?.beginOAuthFlow(arrayOf("profile", "https://identity.mozilla.com/apps/send"), true)?.then(fun (url: String): FxaResult<Unit> {
|
mAccount?.beginOAuthFlow(arrayOf("profile", "https://identity.mozilla.com/apps/send"), true)
|
||||||
Log.w("CONFIG", "GOT A URL " + url)
|
?.then { url ->
|
||||||
this@MainActivity.runOnUiThread({
|
// Log.d(TAG_CONFIG, "GOT A URL $url")
|
||||||
mWebView!!.loadUrl(url)
|
this@MainActivity.runOnUiThread {
|
||||||
})
|
webView.loadUrl(url)
|
||||||
return FxaResult.fromValue(Unit)
|
}
|
||||||
})
|
FxaResult.fromValue(Unit)
|
||||||
Log.w("CONFIG", "CREATED FIREFOXACCOUNT")
|
}
|
||||||
return FxaResult.fromValue(Unit)
|
// Log.d(TAG_CONFIG, "CREATED FIREFOXACCOUNT")
|
||||||
})
|
FxaResult.fromValue(Unit)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun shareUrl(url: String) {
|
fun shareUrl(url: String) {
|
||||||
val shareIntent = Intent()
|
val shareIntent = Intent().apply {
|
||||||
shareIntent.action = Intent.ACTION_SEND
|
action = Intent.ACTION_SEND
|
||||||
shareIntent.type = "text/plain"
|
type = "text/plain"
|
||||||
shareIntent.putExtra(Intent.EXTRA_TEXT, url)
|
putExtra(Intent.EXTRA_TEXT, url)
|
||||||
|
}
|
||||||
|
|
||||||
|
val components = arrayOf(ComponentName(applicationContext, MainActivity::class.java))
|
||||||
val chooser = Intent.createChooser(shareIntent, "")
|
val chooser = Intent.createChooser(shareIntent, "")
|
||||||
chooser.putExtra(Intent.EXTRA_EXCLUDE_COMPONENTS, arrayOf(ComponentName(applicationContext, MainActivity::class.java)))
|
.putExtra(Intent.EXTRA_EXCLUDE_COMPONENTS, components)
|
||||||
|
|
||||||
startActivity(chooser)
|
startActivity(chooser)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
|
||||||
override fun onResume() {
|
override fun onResume() {
|
||||||
super.onResume()
|
super.onResume()
|
||||||
mWebView!!.onResume()
|
webView.onResume()
|
||||||
// ...
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("NewApi")
|
|
||||||
override fun onPause() {
|
override fun onPause() {
|
||||||
mWebView!!.onPause()
|
webView.onPause()
|
||||||
// ...
|
|
||||||
super.onPause()
|
super.onPause()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDestroy() {
|
override fun onDestroy() {
|
||||||
mWebView!!.onDestroy()
|
webView.onDestroy()
|
||||||
// ...
|
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
|
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
|
||||||
super.onActivityResult(requestCode, resultCode, intent)
|
super.onActivityResult(requestCode, resultCode, intent)
|
||||||
mWebView!!.onActivityResult(requestCode, resultCode, intent)
|
webView.onActivityResult(requestCode, resultCode, intent)
|
||||||
// ...
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onBackPressed() {
|
override fun onBackPressed() {
|
||||||
if (!mWebView!!.onBackPressed()) {
|
if (!webView.onBackPressed()) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// ...
|
|
||||||
super.onBackPressed()
|
super.onBackPressed()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPageStarted(url: String, favicon: Bitmap?) {
|
override fun onPageStarted(url: String, favicon: Bitmap?) {
|
||||||
if (url.startsWith("https://send.firefox.com/fxa/android-redirect.html")) {
|
if (url.startsWith("https://send.firefox.com/fxa/android-redirect.html")) {
|
||||||
// We load this here so the user doesn't see the android-redirect.html page
|
// We load this here so the user doesn't see the android-redirect.html page
|
||||||
mWebView!!.loadUrl("file:///android_asset/android.html")
|
webView.loadUrl("file:///android_asset/android.html")
|
||||||
|
|
||||||
val parsed = Uri.parse(url)
|
val uri = Uri.parse(url)
|
||||||
val code = parsed.getQueryParameter("code")
|
uri.getQueryParameter("code")?.let { code ->
|
||||||
val state = parsed.getQueryParameter("state")
|
uri.getQueryParameter("state")?.let { state ->
|
||||||
|
|
||||||
code?.let { code ->
|
|
||||||
state?.let { state ->
|
|
||||||
mAccount?.completeOAuthFlow(code, state)?.whenComplete { info ->
|
mAccount?.completeOAuthFlow(code, state)?.whenComplete { info ->
|
||||||
//displayAndPersistProfile(code, state)
|
mAccount?.getProfile(false)?.then { profile ->
|
||||||
val profile = mAccount?.getProfile(false)?.then(fun (profile: Profile): FxaResult<Unit> {
|
val profileJsonPayload = JSONObject()
|
||||||
val accessToken = info.accessToken
|
.put("accessToken", info.accessToken)
|
||||||
val keys = info.keys
|
.put("keys", info.keys)
|
||||||
val avatar = profile.avatar
|
.put("avatar", profile.avatar)
|
||||||
val displayName = profile.displayName
|
.put("displayName", profile.displayName)
|
||||||
val email = profile.email
|
.put("email", profile.email)
|
||||||
val uid = profile.uid
|
.put("uid", profile.uid).toString()
|
||||||
val toPass = "{\"accessToken\": \"${accessToken}\", \"keys\": '${keys}', \"avatar\": \"${avatar}\", \"displayName\": \"${displayName}\", \"email\": \"${email}\", \"uid\": \"${uid}\"}"
|
mToCall = "finishLogin($profileJsonPayload)"
|
||||||
mToCall = "finishLogin(${toPass})"
|
this@MainActivity.runOnUiThread {
|
||||||
this@MainActivity.runOnUiThread({
|
|
||||||
// Clear the history so that the user can't use the back button to see broken pages
|
// Clear the history so that the user can't use the back button to see broken pages
|
||||||
// that were inserted into the history by the login process.
|
// that were inserted into the history by the login process.
|
||||||
mWebView!!.clearHistory()
|
webView.clearHistory()
|
||||||
|
|
||||||
// We also reload this here because we need to make sure onPageFinished runs after mToCall has been set.
|
// We also reload this here because we need to make sure onPageFinished runs after mToCall has been set.
|
||||||
// We can't guarantee that onPageFinished wasn't already called at this point.
|
// We can't guarantee that onPageFinished wasn't already called at this point.
|
||||||
mWebView!!.loadUrl("file:///android_asset/android.html")
|
webView.loadUrl("file:///android_asset/android.html")
|
||||||
})
|
}
|
||||||
|
FxaResult.fromValue(Unit)
|
||||||
|
}
|
||||||
return FxaResult.fromValue(Unit)
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Log.w("MAIN", "onPageStarted");
|
if (!url.startsWith("file:///android_asset/") && !url.startsWith("https://accounts.firefox.com/")) {
|
||||||
|
// Don't allow loading anything other than the app in our webview
|
||||||
|
// It should be possible to do this with shouldOverrideUrlLoading
|
||||||
|
// but it didn't seem to be working, so this works as a hack.
|
||||||
|
webView.loadUrl("file:///android_asset/android.html")
|
||||||
|
Log.d(TAG_MAIN, "BAD URL " + url)
|
||||||
|
} else {
|
||||||
|
// Log.d(TAG_MAIN, "onPageStarted " + url)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPageFinished(url: String) {
|
override fun onPageFinished(url: String) {
|
||||||
Log.w("MAIN", "onPageFinished")
|
// Log.d(TAG_MAIN, "onPageFinished")
|
||||||
if (mToShare != null) {
|
if (mToShare != null) {
|
||||||
Log.w("INTENT", mToShare)
|
// Log.d(TAG_INTENT, mToShare)
|
||||||
|
|
||||||
mWebView?.postWebMessage(WebMessage(mToShare), Uri.EMPTY)
|
webView.postWebMessage(WebMessage(mToShare), Uri.EMPTY)
|
||||||
mToShare = null
|
mToShare = null
|
||||||
}
|
}
|
||||||
if (mToCall != null) {
|
if (mToCall != null) {
|
||||||
this@MainActivity.runOnUiThread({
|
this@MainActivity.runOnUiThread {
|
||||||
mWebView?.evaluateJavascript(mToCall, fun (value: String) {
|
webView.evaluateJavascript(mToCall) {
|
||||||
mToCall = null
|
mToCall = null
|
||||||
})
|
}
|
||||||
})
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onPageError(errorCode: Int, description: String, failingUrl: String) {
|
override fun onPageError(errorCode: Int, description: String, failingUrl: String) {
|
||||||
Log.w("MAIN", "onPageError " + description)
|
Log.d(TAG_MAIN, "onPageError($errorCode, $description, $failingUrl)")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onDownloadRequested(url: String, suggestedFilename: String, mimeType: String, contentLength: Long, contentDisposition: String, userAgent: String) {
|
override fun onDownloadRequested(url: String,
|
||||||
Log.w("MAIN", "onDownloadRequested")
|
suggestedFilename: String,
|
||||||
|
mimeType: String,
|
||||||
|
contentLength: Long,
|
||||||
|
contentDisposition: String,
|
||||||
|
userAgent: String) {
|
||||||
|
// Log.d(TAG_MAIN, "onDownloadRequested")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onExternalPageRequest(url: String) {
|
override fun onExternalPageRequest(url: String) {
|
||||||
Log.w("MAIN", "onExternalPageRequest")
|
// Log.d(TAG_MAIN, "onExternalPageRequest($url)")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val TAG_MAIN = "MAIN"
|
||||||
|
private const val TAG_INTENT = "INTENT"
|
||||||
|
private const val TAG_CONFIG = "CONFIG"
|
||||||
|
private const val JS_INTERFACE_NAME = "Android"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<im.delight.android.webview.AdvancedWebView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:id="@+id/webView"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context=".MainActivity">
|
tools:context=".MainActivity" />
|
||||||
|
|
||||||
<im.delight.android.webview.AdvancedWebView
|
|
||||||
android:id="@+id/webview"
|
|
||||||
android:layout_width="match_parent"
|
|
||||||
android:layout_height="match_parent" />
|
|
||||||
</android.support.constraint.ConstraintLayout>
|
|
||||||
@@ -8,20 +8,15 @@ buildscript {
|
|||||||
jcenter()
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.android.tools.build:gradle:3.3.1'
|
classpath 'com.android.tools.build:gradle:3.3.2'
|
||||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
|
||||||
|
|
||||||
// NOTE: Do not place your application dependencies here; they belong
|
|
||||||
// in the individual module build.gradle files
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
maven {
|
maven { url "https://maven.mozilla.org/maven2" }
|
||||||
url "https://maven.mozilla.org/maven2"
|
|
||||||
}
|
|
||||||
jcenter()
|
jcenter()
|
||||||
maven { url "https://jitpack.io" }
|
maven { url "https://jitpack.io" }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,23 +18,6 @@ export default class Keychain {
|
|||||||
false,
|
false,
|
||||||
['deriveKey']
|
['deriveKey']
|
||||||
);
|
);
|
||||||
this.encryptKeyPromise = this.secretKeyPromise.then(function(secretKey) {
|
|
||||||
return crypto.subtle.deriveKey(
|
|
||||||
{
|
|
||||||
name: 'HKDF',
|
|
||||||
salt: new Uint8Array(),
|
|
||||||
info: encoder.encode('encryption'),
|
|
||||||
hash: 'SHA-256'
|
|
||||||
},
|
|
||||||
secretKey,
|
|
||||||
{
|
|
||||||
name: 'AES-GCM',
|
|
||||||
length: 128
|
|
||||||
},
|
|
||||||
false,
|
|
||||||
['encrypt', 'decrypt']
|
|
||||||
);
|
|
||||||
});
|
|
||||||
this.metaKeyPromise = this.secretKeyPromise.then(function(secretKey) {
|
this.metaKeyPromise = this.secretKeyPromise.then(function(secretKey) {
|
||||||
return crypto.subtle.deriveKey(
|
return crypto.subtle.deriveKey(
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -286,7 +286,7 @@ module.exports.wip = function(state, emit) {
|
|||||||
>
|
>
|
||||||
<input
|
<input
|
||||||
id="file-upload"
|
id="file-upload"
|
||||||
class="opacity-0 w-0 h-0 appearance-none absolute"
|
class="opacity-0 w-0 h-0 appearance-none absolute overflow-hidden"
|
||||||
type="file"
|
type="file"
|
||||||
multiple
|
multiple
|
||||||
onfocus="${focus}"
|
onfocus="${focus}"
|
||||||
|
|||||||
11
app/user.js
11
app/user.js
@@ -94,10 +94,12 @@ export default class User {
|
|||||||
return this.loggedIn ? hashId(this.storage.id) : hashId(anonId);
|
return this.loggedIn ? hashId(this.storage.id) : hashId(anonId);
|
||||||
}
|
}
|
||||||
|
|
||||||
async startAuthFlow(source, utms = {}) {
|
async startAuthFlow(trigger, utms = {}) {
|
||||||
|
this.utms = utms;
|
||||||
|
this.trigger = trigger;
|
||||||
try {
|
try {
|
||||||
const params = new URLSearchParams({
|
const params = new URLSearchParams({
|
||||||
entrypoint: `send-${source}`,
|
entrypoint: `send-${trigger}`,
|
||||||
form_type: 'email',
|
form_type: 'email',
|
||||||
utm_source: utms.source || 'send',
|
utm_source: utms.source || 'send',
|
||||||
utm_campaign: utms.campaign || 'none'
|
utm_campaign: utms.campaign || 'none'
|
||||||
@@ -111,12 +113,10 @@ export default class User {
|
|||||||
const { flowId, flowBeginTime } = await res.json();
|
const { flowId, flowBeginTime } = await res.json();
|
||||||
this.flowId = flowId;
|
this.flowId = flowId;
|
||||||
this.flowBeginTime = flowBeginTime;
|
this.flowBeginTime = flowBeginTime;
|
||||||
this.utms = utms;
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error(e);
|
console.error(e);
|
||||||
this.flowId = null;
|
this.flowId = null;
|
||||||
this.flowBeginTime = null;
|
this.flowBeginTime = null;
|
||||||
this.utms = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,6 +142,9 @@ export default class User {
|
|||||||
options.flow_id = this.flowId;
|
options.flow_id = this.flowId;
|
||||||
options.flow_begin_time = this.flowBeginTime;
|
options.flow_begin_time = this.flowBeginTime;
|
||||||
}
|
}
|
||||||
|
if (this.trigger) {
|
||||||
|
options.entrypoint = `send-${this.trigger}`;
|
||||||
|
}
|
||||||
if (this.utms) {
|
if (this.utms) {
|
||||||
options.utm_campaign = this.utms.campaign || 'none';
|
options.utm_campaign = this.utms.campaign || 'none';
|
||||||
options.utm_content = this.utms.content || 'none';
|
options.utm_content = this.utms.content || 'none';
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ function loadShim(polyfill) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function isFile(id) {
|
function isFile(id) {
|
||||||
return /^[0-9a-fA-F]{10}$/.test(id);
|
return /^[0-9a-fA-F]{10,16}$/.test(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
function copyToClipboard(str) {
|
function copyToClipboard(str) {
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ class File {
|
|||||||
v.setUint32(0, 0x08074b50, true); // sig
|
v.setUint32(0, 0x08074b50, true); // sig
|
||||||
v.setUint32(4, this.crc, true); // crc32
|
v.setUint32(4, this.crc, true); // crc32
|
||||||
v.setUint32(8, this.size, true); // compressed size
|
v.setUint32(8, this.size, true); // compressed size
|
||||||
v.setUint16(12, this.size, true); // uncompressed size
|
v.setUint32(12, this.size, true); // uncompressed size
|
||||||
return new Uint8Array(dd);
|
return new Uint8Array(dd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ class File {
|
|||||||
v.setUint32(0, 0x02014b50, true); // sig
|
v.setUint32(0, 0x02014b50, true); // sig
|
||||||
v.setUint16(4, 20, true); // version made
|
v.setUint16(4, 20, true); // version made
|
||||||
v.setUint16(6, 20, true); // version required
|
v.setUint16(6, 20, true); // version required
|
||||||
v.setUint16(8, 0, true); // bit flags
|
v.setUint16(8, 8, true); // bit flags (8 = use data descriptor)
|
||||||
v.setUint16(10, 0, true); // compression
|
v.setUint16(10, 0, true); // compression
|
||||||
v.setUint16(12, this.dateTime.time, true); // modified time
|
v.setUint16(12, this.dateTime.time, true); // modified time
|
||||||
v.setUint16(14, this.dateTime.date, true); // modified date
|
v.setUint16(14, this.dateTime.date, true); // modified date
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ Send use 128-bit AES-GCM encryption via the [Web Crypto API](https://developer.m
|
|||||||
### Uploading
|
### Uploading
|
||||||
|
|
||||||
1. A new secret key is generated with `crypto.getRandomValues`
|
1. A new secret key is generated with `crypto.getRandomValues`
|
||||||
2. The secret key is used to derive 3 more keys via HKDF SHA-256
|
2. The secret key is used to derive more keys via HKDF SHA-256
|
||||||
- an encryption key for the file (AES-GCM)
|
- a series of encryption keys for the file, via [ECE](https://tools.ietf.org/html/rfc8188) (AES-GCM)
|
||||||
- an encryption key for the file metadata (AES-GCM)
|
- an encryption key for the file metadata (AES-GCM)
|
||||||
- a signing key for request authentication (HMAC SHA-256)
|
- a signing key for request authentication (HMAC SHA-256)
|
||||||
3. The file and metadata are encrypted with their corresponding keys
|
3. The file and metadata are encrypted with their corresponding keys
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
## How big of a file can I transfer with Firefox Send?
|
## How big of a file can I transfer with Firefox Send?
|
||||||
|
|
||||||
There is a 2GB file size limit built in to Send, however, in practice you may
|
There is a 2.5GB file size limit built in to Send(1GB for non-signed in users), however, in practice you may
|
||||||
be unable to send files that large. Send encrypts and decrypts the files in
|
be unable to send files that large. Send encrypts and decrypts the files in
|
||||||
the browser which is great for security but will tax your system resources. In
|
the browser which is great for security but will tax your system resources. In
|
||||||
particular you can expect to see your memory usage go up by at least the size
|
particular you can expect to see your memory usage go up by at least the size
|
||||||
|
|||||||
3598
package-lock.json
generated
3598
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
68
package.json
68
package.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "firefox-send",
|
"name": "firefox-send",
|
||||||
"description": "File Sharing Experiment",
|
"description": "File Sharing Experiment",
|
||||||
"version": "3.0.4",
|
"version": "3.0.10",
|
||||||
"author": "Mozilla (https://mozilla.org)",
|
"author": "Mozilla (https://mozilla.org)",
|
||||||
"repository": "mozilla/send",
|
"repository": "mozilla/send",
|
||||||
"homepage": "https://github.com/mozilla/send/",
|
"homepage": "https://github.com/mozilla/send/",
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
"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": "cross-env NODE_ENV=development wdio test/wdio.circleci.conf.js",
|
"circleci-test-integration": "cross-env NODE_ENV=development wdio test/wdio.circleci.conf.js",
|
||||||
"start": "npm run clean && cross-env NODE_ENV=development 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:8080 webpack-dev-server --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"
|
||||||
},
|
},
|
||||||
@@ -60,27 +60,27 @@
|
|||||||
"node": ">=10.0.0"
|
"node": ">=10.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.3.4",
|
"@babel/core": "^7.4.3",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.3.4",
|
"@babel/plugin-proposal-class-properties": "^7.4.0",
|
||||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||||
"@babel/preset-env": "^7.3.4",
|
"@babel/preset-env": "^7.4.3",
|
||||||
"@dannycoates/webcrypto-liner": "^0.1.34",
|
"@dannycoates/webcrypto-liner": "^0.1.37",
|
||||||
"@dannycoates/webpack-dev-server": "^3.1.4",
|
"@dannycoates/webpack-dev-server": "^3.1.4",
|
||||||
"@fullhuman/postcss-purgecss": "^1.1.0",
|
"@fullhuman/postcss-purgecss": "^1.1.0",
|
||||||
"@mattiasbuelens/web-streams-polyfill": "0.2.1",
|
"@mattiasbuelens/web-streams-polyfill": "0.2.1",
|
||||||
"asmcrypto.js": "^0.22.0",
|
"asmcrypto.js": "^0.22.0",
|
||||||
"babel-loader": "^8.0.5",
|
"babel-loader": "^8.0.5",
|
||||||
"babel-plugin-istanbul": "^5.1.1",
|
"babel-plugin-istanbul": "^5.1.2",
|
||||||
"base64-js": "^1.3.0",
|
"base64-js": "^1.3.0",
|
||||||
"content-disposition": "^0.5.3",
|
"content-disposition": "^0.5.3",
|
||||||
"copy-webpack-plugin": "^5.0.0",
|
"copy-webpack-plugin": "^5.0.2",
|
||||||
"core-js": "^2.6.5",
|
"core-js": "^3.0.1",
|
||||||
"crc": "^3.8.0",
|
"crc": "^3.8.0",
|
||||||
"cross-env": "^5.2.0",
|
"cross-env": "^5.2.0",
|
||||||
"css-loader": "^2.1.1",
|
"css-loader": "^2.1.1",
|
||||||
"css-mqpacker": "^7.0.0",
|
"css-mqpacker": "^7.0.0",
|
||||||
"cssnano": "^4.1.10",
|
"cssnano": "^4.1.10",
|
||||||
"eslint": "^5.15.1",
|
"eslint": "^5.16.0",
|
||||||
"eslint-plugin-mocha": "^5.3.0",
|
"eslint-plugin-mocha": "^5.3.0",
|
||||||
"eslint-plugin-node": "^8.0.1",
|
"eslint-plugin-node": "^8.0.1",
|
||||||
"eslint-plugin-security": "^1.4.0",
|
"eslint-plugin-security": "^1.4.0",
|
||||||
@@ -95,29 +95,29 @@
|
|||||||
"http_ece": "^1.1.0",
|
"http_ece": "^1.1.0",
|
||||||
"husky": "^1.3.1",
|
"husky": "^1.3.1",
|
||||||
"lint-staged": "^8.1.5",
|
"lint-staged": "^8.1.5",
|
||||||
"mocha": "^6.0.2",
|
"mocha": "^6.1.3",
|
||||||
"morgan": "^1.9.1",
|
"morgan": "^1.9.1",
|
||||||
"nanobus": "^4.4.0",
|
"nanobus": "^4.4.0",
|
||||||
"nanohtml": "^1.4.0",
|
"nanohtml": "^1.5.0",
|
||||||
"nanotiming": "^7.3.1",
|
"nanotiming": "^7.3.1",
|
||||||
"npm-run-all": "^4.1.5",
|
"npm-run-all": "^4.1.5",
|
||||||
"nyc": "^13.3.0",
|
"nyc": "^14.0.0",
|
||||||
"postcss-loader": "^3.0.0",
|
"postcss-loader": "^3.0.0",
|
||||||
"postcss-preset-env": "^6.6.0",
|
"postcss-preset-env": "^6.6.0",
|
||||||
"prettier": "^1.16.4",
|
"prettier": "^1.17.0",
|
||||||
"proxyquire": "^2.1.0",
|
"proxyquire": "^2.1.0",
|
||||||
"puppeteer": "1.11.0",
|
"puppeteer": "1.11.0",
|
||||||
"raven-js": "^3.27.0",
|
"raven-js": "^3.27.0",
|
||||||
"raw-loader": "^1.0.0",
|
"raw-loader": "^2.0.0",
|
||||||
"redis-mock": "^0.43.0",
|
"redis-mock": "^0.43.0",
|
||||||
"rimraf": "^2.6.3",
|
"rimraf": "^2.6.3",
|
||||||
"script-loader": "^0.7.2",
|
"script-loader": "^0.7.2",
|
||||||
"sinon": "^7.2.7",
|
"sinon": "^7.3.2",
|
||||||
"string-hash": "^1.1.3",
|
"string-hash": "^1.1.3",
|
||||||
"stylelint": "^9.10.1",
|
"stylelint": "^10.0.1",
|
||||||
"stylelint-config-standard": "^18.2.0",
|
"stylelint-config-standard": "^18.3.0",
|
||||||
"stylelint-no-unsupported-browser-features": "^3.0.2",
|
"stylelint-no-unsupported-browser-features": "^3.0.2",
|
||||||
"svgo": "^1.2.0",
|
"svgo": "^1.2.2",
|
||||||
"svgo-loader": "^2.2.0",
|
"svgo-loader": "^2.2.0",
|
||||||
"tailwindcss": "^0.7.4",
|
"tailwindcss": "^0.7.4",
|
||||||
"val-loader": "^1.1.1",
|
"val-loader": "^1.1.1",
|
||||||
@@ -128,26 +128,26 @@
|
|||||||
"wdio-sauce-service": "^0.4.14",
|
"wdio-sauce-service": "^0.4.14",
|
||||||
"wdio-selenium-standalone-service": "0.0.12",
|
"wdio-selenium-standalone-service": "0.0.12",
|
||||||
"wdio-spec-reporter": "^0.1.5",
|
"wdio-spec-reporter": "^0.1.5",
|
||||||
"webdriverio": "^4.14.3",
|
"webdriverio": "^4.14.4",
|
||||||
"webpack": "4.28.4",
|
"webpack": "4.28.4",
|
||||||
"webpack-cli": "^3.2.3",
|
"webpack-cli": "^3.3.0",
|
||||||
"webpack-dev-middleware": "^3.6.1",
|
"webpack-dev-middleware": "^3.6.2",
|
||||||
"webpack-manifest-plugin": "^2.0.4",
|
"webpack-manifest-plugin": "^2.0.4",
|
||||||
"webpack-unassert-loader": "^1.2.0"
|
"webpack-unassert-loader": "^1.2.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google-cloud/storage": "^2.4.2",
|
"@google-cloud/storage": "^2.5.0",
|
||||||
"aws-sdk": "^2.417.0",
|
"aws-sdk": "^2.438.0",
|
||||||
"body-parser": "^1.18.3",
|
"body-parser": "^1.18.3",
|
||||||
"choo": "^6.12.1",
|
"choo": "^6.13.3",
|
||||||
"cldr-core": "^34.0.0",
|
"cldr-core": "^35.0.0",
|
||||||
"convict": "^4.4.1",
|
"convict": "^4.4.1",
|
||||||
"express": "^4.16.3",
|
"express": "^4.16.3",
|
||||||
"express-ws": "github:dannycoates/express-ws",
|
"express-ws": "github:dannycoates/express-ws",
|
||||||
"fluent": "^0.11.0",
|
"fluent": "^0.12.0",
|
||||||
"fluent-langneg": "^0.1.1",
|
"fluent-langneg": "^0.1.1",
|
||||||
"fxa-geodb": "^1.0.4",
|
"fxa-geodb": "^1.0.4",
|
||||||
"helmet": "^3.15.1",
|
"helmet": "^3.16.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"mozlog": "^2.2.0",
|
"mozlog": "^2.2.0",
|
||||||
"node-fetch": "^2.3.0",
|
"node-fetch": "^2.3.0",
|
||||||
@@ -155,10 +155,11 @@
|
|||||||
"redis": "^2.8.0",
|
"redis": "^2.8.0",
|
||||||
"selenium-standalone": "^6.15.6",
|
"selenium-standalone": "^6.15.6",
|
||||||
"ua-parser-js": "^0.7.19",
|
"ua-parser-js": "^0.7.19",
|
||||||
"websocket-stream": "^5.1.2"
|
"websocket-stream": "^5.4.0"
|
||||||
},
|
},
|
||||||
"availableLanguages": [
|
"availableLanguages": [
|
||||||
"en-US",
|
"en-US",
|
||||||
|
"ast",
|
||||||
"bn-BD",
|
"bn-BD",
|
||||||
"ca",
|
"ca",
|
||||||
"cak",
|
"cak",
|
||||||
@@ -167,29 +168,38 @@
|
|||||||
"da",
|
"da",
|
||||||
"de",
|
"de",
|
||||||
"dsb",
|
"dsb",
|
||||||
|
"el",
|
||||||
"en-CA",
|
"en-CA",
|
||||||
"en-GB",
|
"en-GB",
|
||||||
"es-AR",
|
"es-AR",
|
||||||
|
"es-CL",
|
||||||
"es-ES",
|
"es-ES",
|
||||||
"es-MX",
|
"es-MX",
|
||||||
|
"fi",
|
||||||
"fr",
|
"fr",
|
||||||
"fy-NL",
|
"fy-NL",
|
||||||
"hr",
|
"hr",
|
||||||
"hsb",
|
"hsb",
|
||||||
"hu",
|
"hu",
|
||||||
|
"ia",
|
||||||
"id",
|
"id",
|
||||||
"it",
|
"it",
|
||||||
"ja",
|
"ja",
|
||||||
"ka",
|
"ka",
|
||||||
|
"kab",
|
||||||
|
"ko",
|
||||||
"lt",
|
"lt",
|
||||||
"nl",
|
"nl",
|
||||||
"nn-NO",
|
"nn-NO",
|
||||||
|
"pl",
|
||||||
"pt-BR",
|
"pt-BR",
|
||||||
"pt-PT",
|
"pt-PT",
|
||||||
"ro",
|
"ro",
|
||||||
"ru",
|
"ru",
|
||||||
"sk",
|
"sk",
|
||||||
"sl",
|
"sl",
|
||||||
|
"sq",
|
||||||
|
"sr",
|
||||||
"sv-SE",
|
"sv-SE",
|
||||||
"tr",
|
"tr",
|
||||||
"uk",
|
"uk",
|
||||||
|
|||||||
@@ -1,31 +1,9 @@
|
|||||||
# 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
|
||||||
siteSubtitle = esperimentu web
|
siteFeedback = Comentarios
|
||||||
siteFeedback = Feedback
|
|
||||||
uploadPageHeader = Compartición privada y cifrada de ficheros
|
|
||||||
uploadPageExplainer = Unvia ficheros pente un enllaz seguru, priváu y cifráu que caduca automáticamente p'asegurar que les tos coses nun queden siempres na rede.
|
|
||||||
uploadPageLearnMore = Deprendi más
|
|
||||||
uploadPageDropMessage = Suelta equí'l to ficheru p'aniciar la xuba
|
|
||||||
uploadPageSizeMessage = Pal meyor funcionamientu, lo meyor ye que'l to ficheru seya menor de 1GB
|
|
||||||
uploadPageBrowseButton = Esbilla un ficheru nel to ordenador
|
|
||||||
uploadPageBrowseButton1 = Esbilla un ficheru pa unviar
|
|
||||||
uploadPageMultipleFilesAlert = Anguaño nun se sofita la xuba múltiple de ficheros o carpetes.
|
|
||||||
uploadPageBrowseButtonTitle = Xubir ficheru
|
|
||||||
uploadingPageProgress = Xubiendo { $filename } ({ $size })
|
|
||||||
importingFile = Importando...
|
importingFile = Importando...
|
||||||
verifyingFile = Verificando...
|
|
||||||
encryptingFile = Cifrando...
|
encryptingFile = Cifrando...
|
||||||
decryptingFile = Descifrando...
|
decryptingFile = Descifrando...
|
||||||
notifyUploadDone = Finó la to xuba.
|
|
||||||
uploadingPageMessage = Namái que'l ficheru xuba, sedrás a afitar les opciones de caducidá.
|
|
||||||
uploadingPageCancel = Encaboxar xuba
|
|
||||||
uploadCancelNotification = Encaboxóse la to xuba.
|
|
||||||
uploadingPageLargeFileMessage = Esti ficheru ye grande y pue entardar daqué en xubir. ¡Paciencia!
|
|
||||||
uploadingFileNotification = Avísame cuando se complete la xuba.
|
|
||||||
uploadSuccessConfirmHeader = Preparáu pa unviar
|
|
||||||
uploadSvgAlt = Xubir
|
|
||||||
uploadSuccessTimingHeader = L'enllaz del to ficheru caducará dempués d'una descarga o en 24 hores.
|
|
||||||
expireInfo = L'enllaz al ficheru va caducar tres { $downloadCount } o { $timespan }.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 descarga
|
[one] 1 descarga
|
||||||
@@ -36,75 +14,26 @@ timespanHours =
|
|||||||
[one] 1 hora
|
[one] 1 hora
|
||||||
*[other] { $num } hores
|
*[other] { $num } hores
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Copia y comparti l'enllaz pa unviar el to ficheru: { $filename }
|
|
||||||
copyUrlFormButton = Copiar al cartafueyu
|
|
||||||
copiedUrl = ¡Copióse!
|
copiedUrl = ¡Copióse!
|
||||||
deleteFileButton = Desaniciar ficheru
|
|
||||||
sendAnotherFileLink = Unviar otru ficheru
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Baxar
|
|
||||||
downloadsFileList = Descargues
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Tiempu
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = Baxar { $filename }
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Introducir contraseña
|
|
||||||
unlockInputPlaceholder = Contraseña
|
unlockInputPlaceholder = Contraseña
|
||||||
unlockButtonLabel = Desbloquiar
|
unlockButtonLabel = Desbloquiar
|
||||||
downloadFileTitle = Baxar ficheru cifráu
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = El to collaciu unvióte un ficheru usando Firefox Send, un serviciu que te permite compartir ficheros con un enllaz seguru, priváu y cifráu que caduca automáticamente p'asegurar que les to coses nun queden siempres na rede.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Baxar
|
downloadButtonLabel = Baxar
|
||||||
downloadNotification = Completóse la to descarga.
|
downloadFinish = Completóse la descarga
|
||||||
downloadFinish = Descarga completada
|
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
||||||
# Firefox Send is a brand name and should not be localized.
|
sendYourFilesLink = Probar Firefox Send
|
||||||
sendYourFilesLink = Prueba Firefox Send
|
|
||||||
downloadingPageProgress = Baxando { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Dexa esta llingüeta abierta entrín vamos en cata del to ficheru y lu desciframos, por favor.
|
|
||||||
errorAltText = Fallu de xuba
|
|
||||||
errorPageHeader = ¡Daqué foi mal!
|
errorPageHeader = ¡Daqué foi mal!
|
||||||
errorPageMessage = Hebo un fallu xubiendo'l ficheru.
|
|
||||||
errorPageLink = Unviar otru ficheru
|
|
||||||
fileTooBig = Esti ficheru ye mui grande como pa xubilu. Debería tener menos de { $size }.
|
fileTooBig = Esti ficheru ye mui grande como pa xubilu. Debería tener menos de { $size }.
|
||||||
linkExpiredAlt = Enllaz caducáu
|
linkExpiredAlt = Caducó l'enllaz
|
||||||
expiredPageHeader = ¡Esti enllaz caducó o enxamás nun esistó!
|
|
||||||
notSupportedHeader = El to restolador nun ta sofitáu.
|
notSupportedHeader = El to restolador nun ta sofitáu.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Desafortunadamente esti restolador nun sofita la teunoloxía web qu'usa Firefox Send. Precisarás d'usar otru restolador. ¡Aconseyámoste Firefox!
|
|
||||||
notSupportedLink = ¿Por qué'l mio restolador nun ta sofitáu?
|
notSupportedLink = ¿Por qué'l mio restolador nun ta sofitáu?
|
||||||
notSupportedOutdatedDetail = Desafortunadamente esta versión de Firefox nun sofita la teunoloxía web qu'usa Firefox Send. Precisarás d'anovar Firefox.
|
notSupportedOutdatedDetail = Desafortunadamente esta versión de Firefox nun sofita la teunoloxía web qu'usa Firefox Send. Vas precisar anovar Firefox.
|
||||||
updateFirefox = Anovar Firefox
|
updateFirefox = Anovar Firefox
|
||||||
downloadFirefoxButtonSub = Descarga de baldre
|
|
||||||
uploadedFile = Ficheru
|
|
||||||
copyFileList = Copiar URL
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Caduca en
|
|
||||||
deleteFileList = Desaniciar
|
|
||||||
nevermindButton = Nun m'importa
|
|
||||||
legalHeader = Términos y privacidá
|
|
||||||
legalNoticeTestPilot = Anguaño Firefox Send ye un esperimentu de Test Pilot y ta suxetu a los <a>Términos de serviciu</a> y l'<a>Avisu de privacidá</a> de Test Pilot. <a>Equí</a> pues deprender más tocante a esti esperimentu y la so recoyida de datos.
|
|
||||||
legalNoticeMozilla = L'usu de Firefox Send tamién ta suxetu al <a>Avisu de privacidá</a> y a los <a>Términos d'usu de la páxina web</a> de Mozilla.
|
|
||||||
deletePopupText = ¿Desaniciar esti ficheru?
|
|
||||||
deletePopupYes = Sí
|
|
||||||
deletePopupCancel = Encaboxar
|
deletePopupCancel = Encaboxar
|
||||||
deleteButtonHover = Desaniciar
|
deleteButtonHover = Desaniciar
|
||||||
copyUrlHover = Copiar URL
|
|
||||||
footerLinkLegal = Llegal
|
footerLinkLegal = Llegal
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = Tocante a Test Pilot
|
|
||||||
footerLinkPrivacy = Privacidá
|
footerLinkPrivacy = Privacidá
|
||||||
footerLinkTerms = Términos
|
|
||||||
footerLinkCookies = Cookies
|
footerLinkCookies = Cookies
|
||||||
requirePasswordCheckbox = Riquir una contraseña pa baxar esti ficheru
|
passwordTryAgain = La contraseña ye incorreuta. Volvi tentalo.
|
||||||
addPasswordButton = Amestar contraseña
|
|
||||||
changePasswordButton = Camudar
|
|
||||||
passwordTryAgain = Contraseña incorreuta. Volvi tentalo.
|
|
||||||
javascriptRequired = Firefox Send rique JavaScript
|
javascriptRequired = Firefox Send rique JavaScript
|
||||||
whyJavascript = ¿Por qué Firefox Send rique JavaScript?
|
whyJavascript = ¿Por qué Firefox Send rique JavaScript?
|
||||||
enableJavascript = Activa JavaScript y volvi tentalo, por favor.
|
enableJavascript = Activa JavaScript y volvi tentalo, por favor.
|
||||||
@@ -112,9 +41,101 @@ enableJavascript = Activa JavaScript y volvi tentalo, por favor.
|
|||||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }m
|
expiresMinutes = { $minutes }m
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Afitóse la contraseña
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Llargor máximu de la contraseña: { $length }
|
maxPasswordLength = Llargor máximu de la contraseña: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = Nun pudo afitase esta contraseña
|
passwordSetError = Nun pudo afitase esta contraseña
|
||||||
|
|
||||||
|
## Send version 2 strings
|
||||||
|
|
||||||
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
|
-send-brand = Firefox Send
|
||||||
|
-send-short-brand = Send
|
||||||
|
-firefox = Firefox
|
||||||
|
-mozilla = Mozilla
|
||||||
|
introTitle = Compartición de ficheros privada y cenciella
|
||||||
|
notifyUploadEncryptDone = El ficheru ta cifráu y preparáu pa unviase
|
||||||
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
|
archiveExpiryInfo = Caduca tres { $downloadCount } ó { $timespan }
|
||||||
|
timespanMinutes =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 minutu
|
||||||
|
*[other] { $num } minutos
|
||||||
|
}
|
||||||
|
timespanDays =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 día
|
||||||
|
*[other] { $num } díes
|
||||||
|
}
|
||||||
|
timespanWeeks =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 selmana
|
||||||
|
*[other] { $num } selmanes
|
||||||
|
}
|
||||||
|
fileCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 ficheru
|
||||||
|
*[other] { $num } ficheros
|
||||||
|
}
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = Tamañu total: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Copia l'enllaz pa compartir el ficheru:
|
||||||
|
copyLinkButton = Copiar l'enllaz
|
||||||
|
downloadTitle = Descarga de ficheros
|
||||||
|
downloadDescription = Esti ficheru compartióse per { -send-brand } con cifráu puntu a puntu y un enllaz que caduca automáticamente.
|
||||||
|
trySendDescription = Prueba { -send-brand } pa una compartición de ficheros cenciella y segura.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Namái pue xubise 1 ficheru al empar.
|
||||||
|
*[other] Namái puen xubise { $count } ficheros al empar.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Namái se permite 1 archivu
|
||||||
|
*[other] Namái se permiten { $count } archivos
|
||||||
|
}
|
||||||
|
expiredTitle = Esti enllaz caducó.
|
||||||
|
notSupportedDescription = { -send-brand } nun va funcionar con esti restolador. { -send-short-brand } funciona meyor cola versión última de { -firefox } y cola versión actual de la mayoría de restoladores.
|
||||||
|
legalTitle = Noticia de privacidá de { -send-short-brand }
|
||||||
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
|
addFilesButton = Esbillar los ficheros a unviar
|
||||||
|
uploadButton = Xubir
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Arrastra y suelta ficheros
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = o calca pa unviar hasta { $size }
|
||||||
|
addPassword = Protexer con una contraseña
|
||||||
|
emailPlaceholder = Introduz el to corréu
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Anicia sesión pa unviar hasta { $size }
|
||||||
|
signInButton = Rexistrase/aniciar sesión
|
||||||
|
accountBenefitTitle = Creación d'una cuenta { -firefox } o aniciu de sesión nella
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Comparti ficheros d'hasta { $size }
|
||||||
|
accountBenefitDownloadCount = Comparti ficheros con más xente
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Caltén activos los enllaces demientres 1 día
|
||||||
|
*[other] Caltén activos los enllaces demientres 1 díes
|
||||||
|
}
|
||||||
|
accountBenefitSync = Xestiona los ficheros compartíos dende cualesquier preséu
|
||||||
|
accountBenefitMoz = Deprendi más tocante a otros servicios de { -mozilla }
|
||||||
|
signOut = Zarrar sesión
|
||||||
|
okButton = Aceutar
|
||||||
|
downloadingTitle = Baxando
|
||||||
|
noStreamsWarning = Esti restolador quiciabes nun seya a descifrar un ficheru d'esti tamañu.
|
||||||
|
|||||||
@@ -78,7 +78,17 @@ fileCount =
|
|||||||
[one] 1 yakb'äl
|
[one] 1 yakb'äl
|
||||||
*[other] { $num } taq yakb'äl
|
*[other] { $num } taq yakb'äl
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Ronojel runimilem: { $size }
|
totalSize = Ronojel runimilem: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Tawachib'ej ri ximonel richin nakomonij ri ayakb'al:
|
copyLinkDescription = Tawachib'ej ri ximonel richin nakomonij ri ayakb'al:
|
||||||
@@ -110,15 +120,15 @@ uploadButton = Tijotob'äx
|
|||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Keqirirëx chuqa' ke'osq'opïx taq yakb'äl
|
dragAndDropFiles = Keqirirëx chuqa' ke'osq'opïx taq yakb'äl
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = o tapitz'a' richin natäq k'a { $size }
|
orClickWithSize = o tapitz'a' richin natäq k'a { $size }
|
||||||
addPassword = Tichajïx rik'in ewan tzij
|
addPassword = Tichajïx rik'in ewan tzij
|
||||||
emailPlaceholder = Tatz'ib'aj ataqoya'l
|
emailPlaceholder = Tatz'ib'aj ataqoya'l
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = Tatikirisaj molojri'ïl richin natäq k'a { $size }
|
signInSizeBump = Tatikirisaj molojri'ïl richin natäq k'a { $size }
|
||||||
signInButton = Tatikirisaj molojri'ïl/tatz'ib'aj ab'i'
|
signInButton = Tatikirisaj molojri'ïl/tatz'ib'aj ab'i'
|
||||||
accountBenefitTitle = Tatz'uku' jun { -firefox } Rub'i' Ataqoy'al o Tatikirisaj molojri'ïl
|
accountBenefitTitle = Tatz'uku' jun { -firefox } Rub'i' Ataqoy'al o Tatikirisaj molojri'ïl
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Ke'akomonij taq yakb'äl k'a { $size }
|
accountBenefitLargeFiles = Ke'akomonij taq yakb'äl k'a { $size }
|
||||||
accountBenefitDownloadCount = Ke'akomonij taq yakb'äl kik'in ch'aqa' chik winaqi'
|
accountBenefitDownloadCount = Ke'akomonij taq yakb'äl kik'in ch'aqa' chik winaqi'
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -166,7 +166,7 @@ dragAndDropFiles = Přetažením myší nebo kliknutím sem
|
|||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = můžete poslat až { $size }
|
orClickWithSize = můžete poslat až { $size }
|
||||||
addPassword = Chránit heslem
|
addPassword = Ochránit heslem
|
||||||
emailPlaceholder = Zadejte svoji e-mailovou adresu
|
emailPlaceholder = Zadejte svoji e-mailovou adresu
|
||||||
# $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")
|
||||||
signInSizeBump = Pro odesílání souborů o velikosti až { $size } se prosím přihlaste
|
signInSizeBump = Pro odesílání souborů o velikosti až { $size } se prosím přihlaste
|
||||||
|
|||||||
@@ -78,7 +78,17 @@ fileCount =
|
|||||||
[one] 1 fil
|
[one] 1 fil
|
||||||
*[other] { $num } filer
|
*[other] { $num } filer
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Samlet størrelse: { $size }
|
totalSize = Samlet størrelse: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Kopier linket for at dele din fil:
|
copyLinkDescription = Kopier linket for at dele din fil:
|
||||||
@@ -110,15 +120,15 @@ uploadButton = Upload
|
|||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# 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
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = eller klik for at sende filer på op til { $size }
|
orClickWithSize = eller klik for at sende filer på op til { $size }
|
||||||
addPassword = Beskyt med adgangskode
|
addPassword = Beskyt med adgangskode
|
||||||
emailPlaceholder = Indtast din mailadresse
|
emailPlaceholder = Indtast din mailadresse
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = Log ind for at sende filer på op til { $size }
|
signInSizeBump = Log ind for at sende filer på op til { $size }
|
||||||
signInButton = Log ind/tilmeld dig
|
signInButton = Log ind/tilmeld dig
|
||||||
accountBenefitTitle = Opret en { -firefox }-konto eller log ind
|
accountBenefitTitle = Opret en { -firefox }-konto eller log ind
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Del filer på op til { $size }
|
accountBenefitLargeFiles = Del filer på op til { $size }
|
||||||
accountBenefitDownloadCount = Del filer med flere personer
|
accountBenefitDownloadCount = Del filer med flere personer
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -1,31 +1,9 @@
|
|||||||
# 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
|
||||||
siteSubtitle = πείραμα διαδικτύου
|
|
||||||
siteFeedback = Σχόλια
|
siteFeedback = Σχόλια
|
||||||
uploadPageHeader = Ιδιωτική, κρυπτογραφημένη κοινή χρήση αρχείων
|
|
||||||
uploadPageExplainer = Στείλτε αρχεία μέσω ασφαλούς, ιδιωτικού και κρυπτογραφημένου συνδέσμου που λήγει αυτόματα ώστε να διασφαλίσετε ότι τα περιεχόμενά σας δεν θα παραμείνουν στο διαδίκτυο για πάντα.
|
|
||||||
uploadPageLearnMore = Μάθετε περισσότερα
|
|
||||||
uploadPageDropMessage = Εναποθέστε το αρχείο σας εδώ για έναρξη μεταφόρτωσης
|
|
||||||
uploadPageSizeMessage = Για περισσότερο αξιόπιστη λειτουργία, προτείνεται να διατηρήσετε το αρχείο κάτω από 1GB
|
|
||||||
uploadPageBrowseButton = Επιλέξτε αρχείο από τον υπολογιστή σας
|
|
||||||
uploadPageBrowseButton1 = Επιλέξτε ένα αρχείο για μεταφόρτωση
|
|
||||||
uploadPageMultipleFilesAlert = Η μεταφόρτωση πολλαπλών αρχείων ή φακέλου δεν υποστηρίζεται αυτή τη στιγμή.
|
|
||||||
uploadPageBrowseButtonTitle = Μεταφόρτωση αρχείου
|
|
||||||
uploadingPageProgress = Μεταφόρτωση του { $filename } ({ $size })
|
|
||||||
importingFile = Εισαγωγή…
|
importingFile = Εισαγωγή…
|
||||||
verifyingFile = Επαλήθευση...
|
|
||||||
encryptingFile = Κρυπτογράφηση…
|
encryptingFile = Κρυπτογράφηση…
|
||||||
decryptingFile = Αποκρυπτογράφηση…
|
decryptingFile = Αποκρυπτογράφηση…
|
||||||
notifyUploadDone = Η μεταφόρτωσή σας ολοκληρώθηκε.
|
|
||||||
uploadingPageMessage = Αφού μεταφορτωθούν τα αρχεία σας, θα μπορείτε να ορίσετε επιλογές λήξης.
|
|
||||||
uploadingPageCancel = Ακύρωση μεταφόρτωσης
|
|
||||||
uploadCancelNotification = Η μεταφόρτωσή σας ακυρώθηκε.
|
|
||||||
uploadingPageLargeFileMessage = Αυτό το αρχείο είναι μεγάλο και ίσως χρειαστεί λίγος αρκετός χρόνος για μεταφόρτωση. Χαλαρώστε!
|
|
||||||
uploadingFileNotification = Ειδοποίηση όταν ολοκληρωθεί η μεταφόρτωση.
|
|
||||||
uploadSuccessConfirmHeader = Έτοιμο για αποστολή
|
|
||||||
uploadSvgAlt = Μεταφόρτωση
|
|
||||||
uploadSuccessTimingHeader = Ο σύνδεσμος του αρχείου σας θα λήξει έπειτα από 1 λήψη ή 24 ώρες.
|
|
||||||
expireInfo = Ο σύνδεσμος για το αρχείο σας θα λήξει μετά από { $downloadCount } ή { $timespan }.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 λήψη
|
[one] 1 λήψη
|
||||||
@@ -36,76 +14,26 @@ timespanHours =
|
|||||||
[one] 1 ώρα
|
[one] 1 ώρα
|
||||||
*[other] { $num } ώρες
|
*[other] { $num } ώρες
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Αντιγράψτε και μοιραστείτε τον σύνδεσμο για αποστολή του αρχείου σας : { $filename }
|
|
||||||
copyUrlFormButton = Αντιγραφή στο πρόχειρο
|
|
||||||
copiedUrl = Αντιγράφτηκε!
|
copiedUrl = Αντιγράφτηκε!
|
||||||
deleteFileButton = Διαγραφή αρχείου
|
|
||||||
sendAnotherFileLink = Αποστολή άλλου αρχείου
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Λήψη
|
|
||||||
downloadsFileList = Λήψεις
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Ώρα
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = Λήψη του { $filename }
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Εισαγωγή κωδικού πρόσβασης
|
|
||||||
unlockInputPlaceholder = Κωδικός πρόσβασης
|
unlockInputPlaceholder = Κωδικός πρόσβασης
|
||||||
unlockButtonLabel = Ξεκλείδωμα
|
unlockButtonLabel = Ξεκλείδωμα
|
||||||
downloadFileTitle = Λήψη κρυπτογραφημένου αρχείου
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = Ο/Η φίλος/-η σας, σάς στέλνει ένα αρχείο με τη βοήθεια του Firefox Send, μιας υπηρεσίας που επιτρέπει τον διαμοιρασμό αρχείων μέσω ενός ασφαλούς, ιδιωτικού και κρυπτογραφημένου συνδέσμου που λήγει αυτόματα, ώστε να είστε σίγουροι ότι τα αρχεία σας δεν θα παραμείνουν στο διαδίκτυο για πάντα.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Λήψη
|
downloadButtonLabel = Λήψη
|
||||||
downloadNotification = Η λήψη σας ολοκληρώθηκε.
|
|
||||||
downloadFinish = Η λήψη ολοκληρώθηκε
|
downloadFinish = Η λήψη ολοκληρώθηκε
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = ({ $partialSize } από { $totalSize })
|
fileSizeProgress = ({ $partialSize } από { $totalSize })
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
sendYourFilesLink = Δοκιμάστε το Firefox Send
|
sendYourFilesLink = Δοκιμάστε το Firefox Send
|
||||||
downloadingPageProgress = Γίνεται λήψη του { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Παρακαλώ αφήστε ανοικτή αυτή την καρτέλα όσο λαμβάνουμε και αποκρυπτογραφούμε το αρχείο σας.
|
|
||||||
errorAltText = Σφάλμα μεταφόρτωσης
|
|
||||||
errorPageHeader = Κάτι πήγε στραβά!
|
errorPageHeader = Κάτι πήγε στραβά!
|
||||||
errorPageMessage = Παρουσιάστηκε σφάλμα κατά τη μεταφόρτωση του αρχείου.
|
|
||||||
errorPageLink = Αποστολή άλλου αρχείου
|
|
||||||
fileTooBig = Αυτό το αρχείο είναι πολύ μεγάλο για μεταφόρτωση. Πρέπει να είναι μικρότερο από { $size }.
|
fileTooBig = Αυτό το αρχείο είναι πολύ μεγάλο για μεταφόρτωση. Πρέπει να είναι μικρότερο από { $size }.
|
||||||
linkExpiredAlt = Ο σύνδεσμος έληξε
|
linkExpiredAlt = Ο σύνδεσμος έληξε
|
||||||
expiredPageHeader = Αυτός ο σύνδεσμος έχει λήξει ή δεν υπήρξε ποτέ!
|
|
||||||
notSupportedHeader = Το πρόγραμμα περιήγησής σας δεν υποστηρίζεται.
|
notSupportedHeader = Το πρόγραμμα περιήγησής σας δεν υποστηρίζεται.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Δυστυχώς, αυτό το πρόγραμμα περιήγησης δεν υποστηρίζει την τεχνολογία ιστού στην οποία βασίζεται το Firefox Send. Θα πρέπει να δοκιμάσετε ένα άλλο πρόγραμμα περιήγησης. Προτείνουμε το Firefox!
|
|
||||||
notSupportedLink = Γιατί δεν υποστηρίζεται το πρόγραμμα περιήγησής μου;
|
notSupportedLink = Γιατί δεν υποστηρίζεται το πρόγραμμα περιήγησής μου;
|
||||||
notSupportedOutdatedDetail = Δυστυχώς, αυτή η έκδοση του Firefox δεν υποστηρίζει την τεχνολογία ιστού στην οποία βασίζεται το Firefox Send. Πρέπει να ενημερώσετε το πρόγραμμα περιήγησής σας.
|
notSupportedOutdatedDetail = Δυστυχώς, αυτή η έκδοση του Firefox δεν υποστηρίζει την τεχνολογία ιστού στην οποία βασίζεται το Firefox Send. Πρέπει να ενημερώσετε το πρόγραμμα περιήγησής σας.
|
||||||
updateFirefox = Ενημέρωση Firefox
|
updateFirefox = Ενημέρωση Firefox
|
||||||
downloadFirefoxButtonSub = Δωρεάν λήψη
|
|
||||||
uploadedFile = Αρχείο
|
|
||||||
copyFileList = Αντιγραφή URL
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Λήγει σε
|
|
||||||
deleteFileList = Διαγραφή
|
|
||||||
nevermindButton = Μην ανησυχείτε
|
|
||||||
legalHeader = Όροι & απόρρητο
|
|
||||||
legalNoticeTestPilot = Το Firefox Send αποτελεί προς το παρόν ένα πείραμα Test Pilot και υπόκειται στους <a>όρους υπηρεσίας</a> και την <a>πολιτική απορρήτου</a> του Test Pilot. Μπορείτε να μάθετε περισσότερα γι' αυτό το πείραμα και τη συλλογή δεδομένων <a>εδώ</a>.
|
|
||||||
legalNoticeMozilla = Η χρήση της ιστοσελίδας Firefox Send υπόκειται επίσης στην <a>πολιτική απορρήτου ιστοσελίδων</a> και τους <a>όρους χρήσης ιστοσελίδων</a> της Mozilla.
|
|
||||||
deletePopupText = Διαγραφή αρχείου;
|
|
||||||
deletePopupYes = Ναι
|
|
||||||
deletePopupCancel = Ακύρωση
|
deletePopupCancel = Ακύρωση
|
||||||
deleteButtonHover = Διαγραφή
|
deleteButtonHover = Διαγραφή
|
||||||
copyUrlHover = Αντιγραφή URL
|
|
||||||
footerLinkLegal = Νομικά
|
footerLinkLegal = Νομικά
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = Σχετικά με το Test Pilot
|
|
||||||
footerLinkPrivacy = Απόρρητο
|
footerLinkPrivacy = Απόρρητο
|
||||||
footerLinkTerms = Όροι
|
|
||||||
footerLinkCookies = Cookies
|
footerLinkCookies = Cookies
|
||||||
requirePasswordCheckbox = Απαίτηση κωδικού πρόσβασης για λήψη του αρχείου
|
|
||||||
addPasswordButton = Προσθήκη κωδικού πρόσβασης
|
|
||||||
changePasswordButton = Αλλαγή
|
|
||||||
passwordTryAgain = Λάθος κωδικός πρόσβασης. Δοκιμάστε ξανά.
|
passwordTryAgain = Λάθος κωδικός πρόσβασης. Δοκιμάστε ξανά.
|
||||||
reportIPInfringement = Αναφορά παραβίασης IP
|
|
||||||
javascriptRequired = Το Firefox Send απαιτεί JavaScript
|
javascriptRequired = Το Firefox Send απαιτεί JavaScript
|
||||||
whyJavascript = Γιατί το Firefox Send απαιτεί JavaScript;
|
whyJavascript = Γιατί το Firefox Send απαιτεί JavaScript;
|
||||||
enableJavascript = Παρακαλώ ενεργοποιήστε το JavaScript και δοκιμάστε ξανά.
|
enableJavascript = Παρακαλώ ενεργοποιήστε το JavaScript και δοκιμάστε ξανά.
|
||||||
@@ -113,20 +41,23 @@ enableJavascript = Παρακαλώ ενεργοποιήστε το JavaScript
|
|||||||
expiresHoursMinutes = { $hours }ώ { $minutes }λ
|
expiresHoursMinutes = { $hours }ώ { $minutes }λ
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }λ
|
expiresMinutes = { $minutes }λ
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Επιτυχής ορισμός κωδικού
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Μέγιστο μήκος κωδικού: { $length }
|
maxPasswordLength = Μέγιστο μήκος κωδικού: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = Δεν ήταν δυνατός ο ορισμός αυτού του κωδικού
|
passwordSetError = Δεν ήταν δυνατός ο ορισμός αυτού του κωδικού
|
||||||
|
|
||||||
## New strings for the vNext version of Firefox Send
|
## Send version 2 strings
|
||||||
|
|
||||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
-send-brand = Firefox Send
|
-send-brand = Firefox Send
|
||||||
-send-short-brand = Send
|
-send-short-brand = Send
|
||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
|
introTitle = Απλή, ιδιωτική κοινή χρήση αρχείων
|
||||||
|
introDescription = Το { -send-brand } σάς επιτρέπει να μοιράζεστε αρχεία με από άκρη σε άκρη κρυπτογράφηση και ένα σύνδεσμο που λήγει αυτόματα. Έτσι, ό,τι μοιράζεστε παραμένει ιδιωτικό και είστε βέβαιοι πως δεν παραμένει στο διαδίκτυο για πάντα.
|
||||||
|
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 λεπτό
|
||||||
@@ -147,13 +78,70 @@ fileCount =
|
|||||||
[one] 1 αρχείο
|
[one] 1 αρχείο
|
||||||
*[other] { $num } αρχεία
|
*[other] { $num } αρχεία
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Συνολικό μέγεθος: { $size }
|
totalSize = Συνολικό μέγεθος: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Αντιγράψτε το σύνδεσμο για να μοιραστείτε το αρχείο:
|
||||||
copyLinkButton = Αντιγραφή συνδέσμου
|
copyLinkButton = Αντιγραφή συνδέσμου
|
||||||
downloadTitle = Λήψη αρχείων
|
downloadTitle = Λήψη αρχείων
|
||||||
|
downloadDescription = Αυτό το αρχείο διαμοιράστηκε μέσω του { -send-brand } με κρυπτογράφηση από άκρο σε άκρο και με ένα σύνδεσμο που λήγει αυτόματα.
|
||||||
|
trySendDescription = Δοκιμάστε το { -send-brand } για απλό, ασφαλή διαμοιρασμό αρχείων.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Μόνο 1 αρχείο μπορεί να μεταφορτωθεί κάθε φορά.
|
||||||
|
*[other] Μόνο { $count } αρχεία μπορούν να μεταφορτωθούν κάθε φορά.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Μόνο 1 αρχείο επιτρέπεται.
|
||||||
|
*[other] Μόνο { $count } αρχεία επιτρέπονται.
|
||||||
|
}
|
||||||
expiredTitle = Αυτός ο σύνδεσμος έχει λήξει.
|
expiredTitle = Αυτός ο σύνδεσμος έχει λήξει.
|
||||||
|
notSupportedDescription = Το { -send-brand } δεν θα λειτουργήσει με αυτό το πρόγραμμα περιήγησης. Το { -send-short-brand } λειτουργεί καλύτερα με την πιο πρόσφατη έκδοση του { -firefox }, καθώς και με την τρέχουσα έκδοση των περισσότερων προγραμμάτων περιήγησης.
|
||||||
downloadFirefox = Λήψη του { -firefox }
|
downloadFirefox = Λήψη του { -firefox }
|
||||||
|
legalTitle = Σημείωση Απορρήτου { -send-short-brand }
|
||||||
|
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"
|
||||||
|
expiresDaysHoursMinutes = { $days }η { $hours }ώ { $minutes }λ
|
||||||
|
addFilesButton = Επιλέξτε αρχεία για μεταφόρτωση
|
||||||
|
uploadButton = Μεταφόρτωση
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Σύρετε και εναποθέστε αρχεία
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = ή κάντε κλικ για να στείλετε μέχρι { $size }
|
||||||
|
addPassword = Προστασία με κωδικό πρόσβασης
|
||||||
emailPlaceholder = Εισάγετε το email σας
|
emailPlaceholder = Εισάγετε το email σας
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Συνδεθείτε για να στείλετε μέχρι { $size }
|
||||||
signInButton = Σύνδεση/εγγραφή
|
signInButton = Σύνδεση/εγγραφή
|
||||||
|
accountBenefitTitle = Δημιουργία λογαριασμού { -firefox } ή σύνδεση
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Μοιραστείτε αρχεία έως { $size }
|
||||||
|
accountBenefitDownloadCount = Μοιραστείτε αρχεία με περισσότερα άτομα
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Να παραμείνουν οι σύνδεσμοι ενεργοί έως και 1 ημέρα
|
||||||
|
*[other] Να παραμείνουν οι σύνδεσμοι ενεργοί έως και { $count } ημέρες
|
||||||
|
}
|
||||||
|
accountBenefitSync = Διαχειριστείτε τα διαμοιρασμένα αρχεία από οποιαδήποτε συσκευή
|
||||||
|
accountBenefitMoz = Μάθετε για τις άλλες υπηρεσίες της { -mozilla }
|
||||||
signOut = Αποσύνδεση
|
signOut = Αποσύνδεση
|
||||||
okButton = OK
|
okButton = OK
|
||||||
|
downloadingTitle = Λήψη
|
||||||
|
noStreamsWarning = Αυτό το πρόγραμμα περιήγησης ενδέχεται να μην μπορέσει να αποκρυπτογραφήσει αρχεία αυτού του μεγέθους.
|
||||||
|
noStreamsOptionCopy = Αντιγράψτε το σύνδεσμο για άνοιγμα σε άλλο πρόγραμμα περιήγησης
|
||||||
|
noStreamsOptionFirefox = Δοκιμάστε το αγαπημένο μας πρόγραμμα περιήγησης
|
||||||
|
noStreamsOptionDownload = Συνέχεια με αυτό το πρόγραμμα περιήγησης
|
||||||
|
|||||||
@@ -1,31 +1,9 @@
|
|||||||
# 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
|
||||||
siteSubtitle = web experiment
|
|
||||||
siteFeedback = Feedback
|
siteFeedback = Feedback
|
||||||
uploadPageHeader = Private, Encrypted File Sharing
|
|
||||||
uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
|
||||||
uploadPageLearnMore = Learn more
|
|
||||||
uploadPageDropMessage = Drop your file here to start uploading
|
|
||||||
uploadPageSizeMessage = For the most reliable operation, it’s best to keep your file under 1GB
|
|
||||||
uploadPageBrowseButton = Select a file on your computer
|
|
||||||
uploadPageBrowseButton1 = Select a file to upload
|
|
||||||
uploadPageMultipleFilesAlert = Uploading multiple files or a folder is currently not supported.
|
|
||||||
uploadPageBrowseButtonTitle = Upload file
|
|
||||||
uploadingPageProgress = Uploading { $filename } ({ $size })
|
|
||||||
importingFile = Importing…
|
importingFile = Importing…
|
||||||
verifyingFile = Verifying…
|
|
||||||
encryptingFile = Encrypting…
|
encryptingFile = Encrypting…
|
||||||
decryptingFile = Decrypting…
|
decryptingFile = Decrypting…
|
||||||
notifyUploadDone = Your upload has finished.
|
|
||||||
uploadingPageMessage = Once your file uploads you will be able to set expiry options.
|
|
||||||
uploadingPageCancel = Cancel upload
|
|
||||||
uploadCancelNotification = Your upload was cancelled.
|
|
||||||
uploadingPageLargeFileMessage = This file is large and may take a while to upload. Sit tight!
|
|
||||||
uploadingFileNotification = Notify me when the upload is complete.
|
|
||||||
uploadSuccessConfirmHeader = Ready to Send
|
|
||||||
uploadSvgAlt = Upload
|
|
||||||
uploadSuccessTimingHeader = The link to your file will expire after 1 download or in 24 hours.
|
|
||||||
expireInfo = The link to your file will expire after { $downloadCount } or { $timespan }.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 download
|
[one] 1 download
|
||||||
@@ -36,76 +14,26 @@ timespanHours =
|
|||||||
[one] 1 hour
|
[one] 1 hour
|
||||||
*[other] { $num } hours
|
*[other] { $num } hours
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename }
|
|
||||||
copyUrlFormButton = Copy to clipboard
|
|
||||||
copiedUrl = Copied!
|
copiedUrl = Copied!
|
||||||
deleteFileButton = Delete file
|
|
||||||
sendAnotherFileLink = Send another file
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Download
|
|
||||||
downloadsFileList = Downloads
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Time
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = Download { $filename }
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Enter Password
|
|
||||||
unlockInputPlaceholder = Password
|
unlockInputPlaceholder = Password
|
||||||
unlockButtonLabel = Unlock
|
unlockButtonLabel = Unlock
|
||||||
downloadFileTitle = Download Encrypted File
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = Your friend is sending you a file with Firefox Send, a service that allows you to share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Download
|
downloadButtonLabel = Download
|
||||||
downloadNotification = Your download has completed.
|
|
||||||
downloadFinish = Download Complete
|
downloadFinish = Download Complete
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = ({ $partialSize } of { $totalSize })
|
fileSizeProgress = ({ $partialSize } of { $totalSize })
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
sendYourFilesLink = Try Firefox Send
|
sendYourFilesLink = Try Firefox Send
|
||||||
downloadingPageProgress = Downloading { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it.
|
|
||||||
errorAltText = Upload error
|
|
||||||
errorPageHeader = Something went wrong!
|
errorPageHeader = Something went wrong!
|
||||||
errorPageMessage = There has been an error uploading the file.
|
|
||||||
errorPageLink = Send another file
|
|
||||||
fileTooBig = That file is too big to upload. It should be less than { $size }.
|
fileTooBig = That file is too big to upload. It should be less than { $size }.
|
||||||
linkExpiredAlt = Link expired
|
linkExpiredAlt = Link expired
|
||||||
expiredPageHeader = This link has expired or never existed in the first place!
|
|
||||||
notSupportedHeader = Your browser is not supported.
|
notSupportedHeader = Your browser is not supported.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. You’ll need to try another browser. We recommend Firefox!
|
|
||||||
notSupportedLink = Why is my browser not supported?
|
notSupportedLink = Why is my browser not supported?
|
||||||
notSupportedOutdatedDetail = Unfortunately this version of Firefox does not support the web technology that powers Firefox Send. You’ll need to update your browser.
|
notSupportedOutdatedDetail = Unfortunately this version of Firefox does not support the web technology that powers Firefox Send. You’ll need to update your browser.
|
||||||
updateFirefox = Update Firefox
|
updateFirefox = Update Firefox
|
||||||
downloadFirefoxButtonSub = Free Download
|
|
||||||
uploadedFile = File
|
|
||||||
copyFileList = Copy URL
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Expires In
|
|
||||||
deleteFileList = Delete
|
|
||||||
nevermindButton = Never mind
|
|
||||||
legalHeader = Terms & Privacy
|
|
||||||
legalNoticeTestPilot = Firefox Send is currently a Test Pilot experiment, and subject to the Test Pilot <a>Terms of Service</a> and <a>Privacy Notice</a>. You can learn more about this experiment and its data collection <a>here</a>.
|
|
||||||
legalNoticeMozilla = Use of the Firefox Send web site is also subject to Mozilla’s <a>Websites Privacy Notice</a> and <a>Websites Terms of Use</a>.
|
|
||||||
deletePopupText = Delete this file?
|
|
||||||
deletePopupYes = Yes
|
|
||||||
deletePopupCancel = Cancel
|
deletePopupCancel = Cancel
|
||||||
deleteButtonHover = Delete
|
deleteButtonHover = Delete
|
||||||
copyUrlHover = Copy URL
|
|
||||||
footerLinkLegal = Legal
|
footerLinkLegal = Legal
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = About Test Pilot
|
|
||||||
footerLinkPrivacy = Privacy
|
footerLinkPrivacy = Privacy
|
||||||
footerLinkTerms = Terms
|
|
||||||
footerLinkCookies = Cookies
|
footerLinkCookies = Cookies
|
||||||
requirePasswordCheckbox = Require a password to download this file
|
|
||||||
addPasswordButton = Add password
|
|
||||||
changePasswordButton = Change
|
|
||||||
passwordTryAgain = Incorrect password. Try again.
|
passwordTryAgain = Incorrect password. Try again.
|
||||||
reportIPInfringement = Report IP Infringement
|
|
||||||
javascriptRequired = Firefox Send requires JavaScript
|
javascriptRequired = Firefox Send requires JavaScript
|
||||||
whyJavascript = Why does Firefox Send require JavaScript?
|
whyJavascript = Why does Firefox Send require JavaScript?
|
||||||
enableJavascript = Please enable JavaScript and try again.
|
enableJavascript = Please enable JavaScript and try again.
|
||||||
@@ -113,14 +41,12 @@ enableJavascript = Please enable JavaScript and try again.
|
|||||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }m
|
expiresMinutes = { $minutes }m
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Password set
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Maximum password length: { $length }
|
maxPasswordLength = Maximum password length: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = This password could not be set
|
passwordSetError = This password could not be set
|
||||||
|
|
||||||
## New strings for the vNext version of Firefox Send
|
## Send version 2 strings
|
||||||
|
|
||||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
-send-brand = Firefox Send
|
-send-brand = Firefox Send
|
||||||
@@ -152,7 +78,17 @@ fileCount =
|
|||||||
[one] 1 file
|
[one] 1 file
|
||||||
*[other] { $num } files
|
*[other] { $num } files
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = kB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Total size: { $size }
|
totalSize = Total size: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Copy the link to share your file:
|
copyLinkDescription = Copy the link to share your file:
|
||||||
@@ -184,15 +120,15 @@ 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
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = or click to send up to { $size }
|
orClickWithSize = or click to send up to { $size }
|
||||||
addPassword = Protect with password
|
addPassword = Protect with password
|
||||||
emailPlaceholder = Enter your email
|
emailPlaceholder = Enter your email
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = Sign in to send up to { $size }
|
signInSizeBump = Sign in to send up to { $size }
|
||||||
signInButton = Sign in/up
|
signInButton = Sign in/up
|
||||||
accountBenefitTitle = Create a { -firefox } Account or sign in
|
accountBenefitTitle = Create a { -firefox } Account or sign in
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Share files up to { $size }
|
accountBenefitLargeFiles = Share files up to { $size }
|
||||||
accountBenefitDownloadCount = Share files with more people
|
accountBenefitDownloadCount = Share files with more people
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ passwordSetError = Esta contraseña no pudo ser establecida
|
|||||||
-send-short-brand = Send
|
-send-short-brand = Send
|
||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
|
introTitle = Intercambio de archivos sencillo y privado
|
||||||
|
introDescription = { -send-brand } te permite compartir archivos con cifrado de extremo a extremo y un enlace que expira automáticamente. Así puedes mantener lo que compartes en privado y asegurarte de que tus cosas no permanezcan en línea para siempre.
|
||||||
|
notifyUploadEncryptDone = Tu archivo está cifrado y listo para enviar
|
||||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
archiveExpiryInfo = Expira después de { $downloadCount } o { $timespan }
|
archiveExpiryInfo = Expira después de { $downloadCount } o { $timespan }
|
||||||
timespanMinutes =
|
timespanMinutes =
|
||||||
@@ -75,16 +78,70 @@ fileCount =
|
|||||||
[one] 1 archivo
|
[one] 1 archivo
|
||||||
*[other] { $num } archivos
|
*[other] { $num } archivos
|
||||||
}
|
}
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Tamaño total: { $size }
|
totalSize = Tamaño total: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Copiar el enlace para compartir el archivo:
|
||||||
copyLinkButton = Copiar enlace
|
copyLinkButton = Copiar enlace
|
||||||
downloadTitle = Bajando archivos
|
downloadTitle = Bajando archivos
|
||||||
|
downloadDescription = Este archivo fue compartido a través de { -send-brand } con cifrado de punto a punto y un enlace que expira automáticamente.
|
||||||
|
trySendDescription = Prueba { -send-brand } para compartir archivos de forma sencilla y segura.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Solo 1 archivo puede ser subido a la vez.
|
||||||
|
*[other] Solo { $count } archivos pueden ser subidos a la vez.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Solo 1 archivo está permitido.
|
||||||
|
*[other] Solo { $count } archivos están permitidos.
|
||||||
|
}
|
||||||
expiredTitle = Este enlace ha expirado.
|
expiredTitle = Este enlace ha expirado.
|
||||||
|
notSupportedDescription = { -send-brand } no funcionará con este navegador. { -send-short-brand } funciona mejor con la última versión de { -firefox } y con la versión actual de la mayoría de los navegadores.
|
||||||
downloadFirefox = Bajar { -firefox }
|
downloadFirefox = Bajar { -firefox }
|
||||||
|
legalTitle = Aviso de privacidad de { -send-short-brand }
|
||||||
|
legalDateStamp = Versión 1.0 del 12 de marzo de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# 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
|
||||||
uploadButton = Subir
|
uploadButton = Subir
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Arrastra y suelta archivos
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = o haz clic para enviar hasta { $size }
|
||||||
|
addPassword = Protegido con contraseña
|
||||||
|
emailPlaceholder = Ingresa tu correo
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Conéctate para enviar hasta { $size }
|
||||||
|
signInButton = Conectarse/registrarse
|
||||||
|
accountBenefitTitle = Crea una cuenta de { -firefox } o conéctate
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Comparte archivos de hasta { $size }
|
||||||
|
accountBenefitDownloadCount = Comparte archivos con más personas
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Mantener enlaces activos durante 1 día
|
||||||
|
*[other] Mantener enlaces activos durante { $count } días
|
||||||
|
}
|
||||||
|
accountBenefitSync = Administrar los archivos compartidos desde cualquier dispositivo
|
||||||
|
accountBenefitMoz = Aprender más acerca de otros servicios de { -mozilla }
|
||||||
signOut = Salir
|
signOut = Salir
|
||||||
|
okButton = Aceptar
|
||||||
downloadingTitle = Bajando
|
downloadingTitle = Bajando
|
||||||
|
noStreamsWarning = Es posible que este navegador no pueda descifrar un archivo tan grande.
|
||||||
|
noStreamsOptionCopy = Copiar el enlace para abrirlo en otro navegador
|
||||||
noStreamsOptionFirefox = Prueba nuestro navegador favorito
|
noStreamsOptionFirefox = Prueba nuestro navegador favorito
|
||||||
noStreamsOptionDownload = Continuar con este navegador
|
noStreamsOptionDownload = Continuar con este navegador
|
||||||
|
|||||||
@@ -77,7 +77,17 @@ fileCount =
|
|||||||
[one] 1 archivo
|
[one] 1 archivo
|
||||||
*[other] { $num } archivos
|
*[other] { $num } archivos
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Tamaño total: { $size }
|
totalSize = Tamaño total: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Copiar el enlace para compartir el archivo:
|
copyLinkDescription = Copiar el enlace para compartir el archivo:
|
||||||
@@ -109,15 +119,15 @@ 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
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = o hacer clic para enviar hasta { $size }
|
orClickWithSize = o hacer clic para enviar hasta { $size }
|
||||||
addPassword = Protegido con contraseña
|
addPassword = Protegido con contraseña
|
||||||
emailPlaceholder = Ingresa tu correo electrónico
|
emailPlaceholder = Ingresa tu correo electrónico
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = Iniciar sesión para enviar hasta { $size }
|
signInSizeBump = Iniciar sesión para enviar hasta { $size }
|
||||||
signInButton = Iniciar sesión/registrarse
|
signInButton = Iniciar sesión/registrarse
|
||||||
accountBenefitTitle = Crear una cuenta de { -firefox } o iniciar sesión
|
accountBenefitTitle = Crear una cuenta de { -firefox } o iniciar sesión
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Compartir archivos de hasta { $size }
|
accountBenefitLargeFiles = Compartir archivos de hasta { $size }
|
||||||
accountBenefitDownloadCount = Compartir archivos con más personas
|
accountBenefitDownloadCount = Compartir archivos con más personas
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -30,9 +30,30 @@ notSupportedOutdatedDetail = Zoritxarrez Firefox bertsio honek ez du Firefox Sen
|
|||||||
updateFirefox = Eguneratu Firefox
|
updateFirefox = Eguneratu Firefox
|
||||||
deletePopupCancel = Utzi
|
deletePopupCancel = Utzi
|
||||||
deleteButtonHover = Ezabatu
|
deleteButtonHover = Ezabatu
|
||||||
|
footerLinkLegal = Lege-oharra
|
||||||
|
footerLinkPrivacy = Pribatutasuna
|
||||||
|
footerLinkCookies = Cookieak
|
||||||
|
passwordTryAgain = Pasahitz okerra. Saiatu berriro.
|
||||||
|
javascriptRequired = JavaScript beharrezkoa da Firefox Send erabiltzeko.
|
||||||
|
whyJavascript = Zergatik behar du Firefox Send-ek JavasScript?
|
||||||
|
enableJavascript = Gaitu JavaScript eta saiatu berriro.
|
||||||
|
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||||
|
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||||
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
|
expiresMinutes = { $minutes }m
|
||||||
|
# A short status message shown when the user enters a long password
|
||||||
|
maxPasswordLength = Pasahitzaren gehienezko luzera: { $length }
|
||||||
|
# A short status message shown when there was an error setting the password
|
||||||
|
passwordSetError = Pasahitz hau ezin da ezarri
|
||||||
|
|
||||||
## Send version 2 strings
|
## Send version 2 strings
|
||||||
|
|
||||||
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
|
-send-brand = Firefox Send
|
||||||
|
-firefox = Firefox
|
||||||
|
-mozilla = Mozilla
|
||||||
|
introTitle = Partekatu fitxategiak modu sinple eta pribatuan
|
||||||
|
notifyUploadEncryptDone = Zure fitxategia zifratuta eta bidaltzeko prest dago
|
||||||
# byte abbreviation
|
# byte abbreviation
|
||||||
bytes = B
|
bytes = B
|
||||||
# kibibyte abbreviation
|
# kibibyte abbreviation
|
||||||
@@ -41,3 +62,22 @@ kb = KB
|
|||||||
mb = MB
|
mb = MB
|
||||||
# gibibyte abbreviation
|
# gibibyte abbreviation
|
||||||
gb = GB
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
downloadTitle = Deskargatu fitxategiak
|
||||||
|
downloadFirefox = Deskargatu { -firefox }
|
||||||
|
legalDateStamp = 1.0 bertsioa, 2019ko martxoaren 12koa.
|
||||||
|
addFilesButton = Hautatu igotzeko fitxategiak
|
||||||
|
uploadButton = Igo
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Arrastatu eta jaregin fitxategiak
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = edo egin klik { $size } arte igotzeko
|
||||||
|
addPassword = Babestu pasahitzarekin
|
||||||
|
emailPlaceholder = Idatzi zure helbide elektronikoa
|
||||||
|
signInButton = Hasi saioa/eman izena
|
||||||
|
accountBenefitTitle = Sortu { -firefox } kontu bat edo hasi saioa
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Partekatu { $size } arteko fitxategiak
|
||||||
|
accountBenefitDownloadCount = Partekatu fitxategiak jende gehiagorekin
|
||||||
|
|||||||
@@ -1,31 +1,9 @@
|
|||||||
# 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
|
||||||
siteSubtitle = web-kokeilu
|
|
||||||
siteFeedback = Palaute
|
siteFeedback = Palaute
|
||||||
uploadPageHeader = Yksityinen, salattu tiedostojen jakaminen
|
|
||||||
uploadPageExplainer = Lähetä tiedostoja turvallisen, yksityisen ja salatun linkin kautta. Linkki vanhenee automaattisesti, joten tietosi eivät pysy verkossa ikuisesti.
|
|
||||||
uploadPageLearnMore = Lue lisää
|
|
||||||
uploadPageDropMessage = Aloita lataaminen pudottamalla tiedosto tähän
|
|
||||||
uploadPageSizeMessage = Luotettavin toiminta saadaan pitämällä tiedostokoko alle 1 Gt
|
|
||||||
uploadPageBrowseButton = Valitse tiedosto tietokoneesta
|
|
||||||
uploadPageBrowseButton1 = Valitse ladattava tiedosto
|
|
||||||
uploadPageMultipleFilesAlert = Useiden tiedostojen tai kansion lataamista ei tällä hetkellä tueta.
|
|
||||||
uploadPageBrowseButtonTitle = Lataa tiedosto
|
|
||||||
uploadingPageProgress = Ladataan { $filename } ({ $size })
|
|
||||||
importingFile = Tuodaan…
|
importingFile = Tuodaan…
|
||||||
verifyingFile = Tarkistetaan...
|
|
||||||
encryptingFile = Salataan...
|
encryptingFile = Salataan...
|
||||||
decryptingFile = Puretaan salausta...
|
decryptingFile = Puretaan salausta...
|
||||||
notifyUploadDone = Latauksesi on päättynyt.
|
|
||||||
uploadingPageMessage = Kun tiedostojen lataaminen on valmista, voit määrittää vanhentumisvaihtoehdot.
|
|
||||||
uploadingPageCancel = Peruuta lataus
|
|
||||||
uploadCancelNotification = Latauksesi peruutettiin.
|
|
||||||
uploadingPageLargeFileMessage = Tämä tiedosto on suuri ja sen lataaminen saattaa kestää jonkin aikaa. Nyt malttia peliin!
|
|
||||||
uploadingFileNotification = Ilmoita minulle, kun lataus on valmis.
|
|
||||||
uploadSuccessConfirmHeader = Valmis lähettämään
|
|
||||||
uploadSvgAlt = Lataa
|
|
||||||
uploadSuccessTimingHeader = Linkki tiedostoon vanhenee 1 latauksen tai 24 tunnin kuluttua.
|
|
||||||
expireInfo = Linkki tiedostoon vanhenee { $downloadCount } tai { $timespan } kuluttua.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] yhden latauksen
|
[one] yhden latauksen
|
||||||
@@ -36,86 +14,134 @@ timespanHours =
|
|||||||
[one] 1 tunnin
|
[one] 1 tunnin
|
||||||
*[other] { $num } tunnin
|
*[other] { $num } tunnin
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Kopioi ja jaa linkki lähettämääsi tiedostoon: { $filename }
|
|
||||||
copyUrlFormButton = Kopioi leikepöydälle
|
|
||||||
copiedUrl = Kopioitu!
|
copiedUrl = Kopioitu!
|
||||||
deleteFileButton = Poista tiedosto
|
|
||||||
sendAnotherFileLink = Lähetä toinen tiedosto
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Lataa
|
|
||||||
downloadsFileList = Lataukset
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Aika
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = { $filename } ladattu
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Syötä salasana
|
|
||||||
unlockInputPlaceholder = Salasana
|
unlockInputPlaceholder = Salasana
|
||||||
unlockButtonLabel = Avaa
|
unlockButtonLabel = Avaa
|
||||||
downloadFileTitle = Lataa salattu tiedosto
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = Ystäväsi lähettää sinulle tiedoston Firefox Send -palvelulla, jonka avulla voidaan jakaa tiedostoja turvallisen, yksityisen ja salatun linkin kautta. Linkki vanhenee automaattisesti, joten tiedot eivät säily verkossa ikuisesti.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Lataa
|
downloadButtonLabel = Lataa
|
||||||
downloadNotification = Latauksesi on valmis.
|
|
||||||
downloadFinish = Lataus valmis
|
downloadFinish = Lataus valmis
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = { $partialSize } / { $totalSize }
|
fileSizeProgress = { $partialSize } / { $totalSize }
|
||||||
# Firefox Send is a brand name and should not be localized.
|
sendYourFilesLink = Kokeile Firefox Send -palvelua
|
||||||
sendYourFilesLink = Kokeile Firefox Sendiä
|
|
||||||
downloadingPageProgress = Ladataan { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Jätä tämä välilehti auki siksi aikaa kun haemme tiedoston ja puramme sen.
|
|
||||||
errorAltText = Latausvirhe
|
|
||||||
errorPageHeader = Jokin meni pieleen!
|
errorPageHeader = Jokin meni pieleen!
|
||||||
errorPageMessage = Tiedoston lataamisessa on tapahtunut virhe.
|
|
||||||
errorPageLink = Lähetä toinen tiedosto
|
|
||||||
fileTooBig = Tämä tiedosto on liian suuri ladattavaksi. Sen pitäisi olla pienempi kuin { $size }.
|
fileTooBig = Tämä tiedosto on liian suuri ladattavaksi. Sen pitäisi olla pienempi kuin { $size }.
|
||||||
linkExpiredAlt = Linkki on vanhentunut
|
linkExpiredAlt = Linkki on vanhentunut
|
||||||
expiredPageHeader = Tämä linkki on vanhentunut tai sitä ei ole koskaan ollut olemassa!
|
|
||||||
notSupportedHeader = Selaintasi ei tueta.
|
notSupportedHeader = Selaintasi ei tueta.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Valitettavasti tämä selain ei tue Firefox Sendiä käyttävää web-tekniikkaa. Sinun on kokeiltava toista selainta. Suosittelemme Firefoxia!
|
|
||||||
notSupportedLink = Miksi selaintani ei tueta?
|
notSupportedLink = Miksi selaintani ei tueta?
|
||||||
notSupportedOutdatedDetail = Valitettavasti tämä Firefoxin versio ei tue Firefox Sendiä käyttävää web-tekniikkaa. Sinun on päivitettävä selaimesi.
|
notSupportedOutdatedDetail = Valitettavasti tämä Firefoxin versio ei tue Firefox Sendiä käyttävää web-tekniikkaa. Sinun on päivitettävä selaimesi.
|
||||||
updateFirefox = Päivitä Firefox
|
updateFirefox = Päivitä Firefox
|
||||||
downloadFirefoxButtonSub = Ilmainen lataus
|
|
||||||
uploadedFile = Tiedosto
|
|
||||||
copyFileList = Kopioi osoite
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Vanhenee
|
|
||||||
deleteFileList = Poista
|
|
||||||
nevermindButton = Unohda koko juttu
|
|
||||||
legalHeader = Ehdot ja yksityisyys
|
|
||||||
legalNoticeTestPilot = Firefox Send on tällä hetkellä Test Pilot -kokeilu, ja siihen sovelletaan Test Pilot <a>käyttöehtoja</a> ja <a>tietosuojakäytäntöjä</a>. Saat lisätietoja tästä kokeilusta ja sen tiedonkeruusta <a>täällä</a>.
|
|
||||||
legalNoticeMozilla = Firefox Send -sivuston käyttöön sovelletaan Mozillan <a>verkkosivustojen yksityisyyskäytäntöjä</a> ja <a>verkkosivustojen käyttöehtoja</a>.
|
|
||||||
deletePopupText = Poista tämä tiedosto?
|
|
||||||
deletePopupYes = Kyllä
|
|
||||||
deletePopupCancel = Peruuta
|
deletePopupCancel = Peruuta
|
||||||
deleteButtonHover = Poista
|
deleteButtonHover = Poista
|
||||||
copyUrlHover = Kopioi osoite
|
|
||||||
footerLinkLegal = Juridiset asiat
|
footerLinkLegal = Juridiset asiat
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = Tietoja Test Pilotista
|
|
||||||
footerLinkPrivacy = Tietosuoja
|
footerLinkPrivacy = Tietosuoja
|
||||||
footerLinkTerms = Ehdot
|
|
||||||
footerLinkCookies = Evästeet
|
footerLinkCookies = Evästeet
|
||||||
requirePasswordCheckbox = Vaadi salasanaa tämän tiedoston lataamiseen
|
|
||||||
addPasswordButton = Lisää salasana
|
|
||||||
changePasswordButton = Muuta
|
|
||||||
passwordTryAgain = Väärä salasana. Yritä uudelleen.
|
passwordTryAgain = Väärä salasana. Yritä uudelleen.
|
||||||
reportIPInfringement = Ilmoita IP-rikkomuksesta
|
|
||||||
javascriptRequired = Firefox-Send vaatii JavaScriptin
|
javascriptRequired = Firefox-Send vaatii JavaScriptin
|
||||||
whyJavascript = Miksi Firefox Send vaatii JavaScriptin?
|
whyJavascript = Miksi Firefox Send vaatii JavaScriptin?
|
||||||
enableJavascript = Ota JavaScript käyttöön ja yritä uudelleen.
|
enableJavascript = Ota JavaScript käyttöön ja yritä uudelleen.
|
||||||
# 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"
|
||||||
expiresHoursMinutes = { $hours }t { $minutes }min
|
expiresHoursMinutes = { $hours } t { $minutes } min
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }min
|
expiresMinutes = { $minutes } min
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Salasana asetettu
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Salasanan enimmäispituus: { $length }
|
maxPasswordLength = Salasanan enimmäispituus: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = Tätä salasanaa ei voitu asettaa
|
passwordSetError = Tätä salasanaa ei voitu asettaa
|
||||||
|
|
||||||
|
## Send version 2 strings
|
||||||
|
|
||||||
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
|
-send-brand = Firefox Send
|
||||||
|
-send-short-brand = Send
|
||||||
|
-firefox = Firefox
|
||||||
|
-mozilla = Mozilla
|
||||||
|
introTitle = Helppoa ja yksityistä tiedostonjakoa
|
||||||
|
introDescription = { -send-brand } mahdollistaa tiedostojen jakamisen automaattisesti vanhenevalla linkillä. Tiedostojen jakaminen tapahtuu päästä päähän -salattuna. Näin jakamasi tiedostot pysyvät yksityisinä ja voit olla varma, etteivät lähettämäsi tiedostot pysy verkossa ikuisesti.
|
||||||
|
notifyUploadEncryptDone = Tiedosto on salattu ja valmis lähetettäväksi
|
||||||
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
|
archiveExpiryInfo = Vanhenee { $downloadCount } tai { $timespan } jälkeen
|
||||||
|
timespanMinutes =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 minuutin
|
||||||
|
*[other] { $num } minuutin
|
||||||
|
}
|
||||||
|
timespanDays =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 päivä
|
||||||
|
*[other] { $num } päivää
|
||||||
|
}
|
||||||
|
timespanWeeks =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 viikko
|
||||||
|
*[other] { $num } viikkoa
|
||||||
|
}
|
||||||
|
fileCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 tiedosto
|
||||||
|
*[other] { $num } tiedostoa
|
||||||
|
}
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = t
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = kt
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = Mt
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = Gt
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num } { $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = Koko yhteensä: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Kopioi linkki jakaaksesi tiedoston:
|
||||||
|
copyLinkButton = Kopioi linkki
|
||||||
|
downloadTitle = Lataa tiedostot
|
||||||
|
downloadDescription = Tämä tiedosto jaettiin { -send-brand } -palvelun kautta päästä päähän -salattuna ja automaattisesti vanhenevalla linkillä.
|
||||||
|
trySendDescription = Kokeile { -send-brand } -palvelua jakaaksesi tiedostoja helposti ja turvallisesti.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Vain 1 tiedosto on mahdollistaa lähettää kerralla.
|
||||||
|
*[other] Vain { $count } tiedostoa on mahdollista lähettää kerralla.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Vain 1 arkisto on sallittu.
|
||||||
|
*[other] Vain { $count } arkistoa on sallittu.
|
||||||
|
}
|
||||||
|
expiredTitle = Tämä linkki on vanhentunut.
|
||||||
|
notSupportedDescription = { -send-brand } ei toimi tällä selaimella. { -send-short-brand } toimii parhaiten { -firefox }in uusimmalla versiolla, ja toimii useimpien selainten uusimmilla versioilla.
|
||||||
|
downloadFirefox = Lataa { -firefox }
|
||||||
|
legalTitle = { -send-short-brand }-yksityisyyskäytäntö
|
||||||
|
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"
|
||||||
|
expiresDaysHoursMinutes = { $days } pv { $hours } t { $minutes } min
|
||||||
|
addFilesButton = Valitse lähetettävät tiedostot
|
||||||
|
uploadButton = Lähetä
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Vedä ja pudota tiedostot
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = tai napsauta lähettääksesi tiedostoja, joiden koko voi olla enintään { $size }
|
||||||
|
addPassword = Suojaa salasanalla
|
||||||
|
emailPlaceholder = Kirjoita sähköpostiosoitteesi
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Kirjautumalla voit lähettää jopa { $size } kokoisia tiedostoja
|
||||||
|
signInButton = Kirjaudu tai rekisteröidy
|
||||||
|
accountBenefitTitle = Luo { -firefox }-tili tai kirjaudu sisään
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Jaa jopa { $size } kokoisia tiedostoja
|
||||||
|
accountBenefitDownloadCount = Jaa tiedostoja useamman ihmisen kesken
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Säilytä linkit aktiivisina 1 päivän ajan
|
||||||
|
*[other] Säilytä linkit aktiivisina { $count } päivän ajan
|
||||||
|
}
|
||||||
|
accountBenefitSync = Hallitse jaettuja tiedostoja miltä tahansa laitteelta
|
||||||
|
accountBenefitMoz = Lue lisää muista { -mozilla }-palveluista
|
||||||
|
signOut = Kirjaudu ulos
|
||||||
|
okButton = OK
|
||||||
|
downloadingTitle = Ladataan
|
||||||
|
noStreamsWarning = Tämä selain ei välttämättä osaa purkaa salausta näin suurikokoisista tiedostoista.
|
||||||
|
noStreamsOptionCopy = Kopioi linkki avataksesi sen toisessa selaimessa
|
||||||
|
noStreamsOptionFirefox = Kokeile suosikkiselaintamme
|
||||||
|
noStreamsOptionDownload = Jatka tällä selaimella
|
||||||
|
|||||||
@@ -54,6 +54,9 @@ passwordSetError = Iste contrasigno non pote ser definite
|
|||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
introTitle = Comparti file in maniera confidential
|
introTitle = Comparti file in maniera confidential
|
||||||
|
notifyUploadEncryptDone = Tu file es cryptate e preste pro ser inviate.
|
||||||
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
|
archiveExpiryInfo = Expira post { $downloadCount } o { $timespan }
|
||||||
timespanMinutes =
|
timespanMinutes =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 minuta
|
[one] 1 minuta
|
||||||
@@ -90,6 +93,18 @@ totalSize = Dimension total: { $size }
|
|||||||
copyLinkDescription = Copia le ligamine pro compartir le file:
|
copyLinkDescription = Copia le ligamine pro compartir le file:
|
||||||
copyLinkButton = Copiar ligamine
|
copyLinkButton = Copiar ligamine
|
||||||
downloadTitle = Discargar files
|
downloadTitle = Discargar files
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Solo 1 file al vice pote ser cargate.
|
||||||
|
*[other] Solo { $count } files al vice pote ser cargate.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Solo 1 archivo es consentite.
|
||||||
|
*[other] Solo { $count } archivos es consentite.
|
||||||
|
}
|
||||||
expiredTitle = Iste ligamine ha expirate.
|
expiredTitle = Iste ligamine ha expirate.
|
||||||
downloadFirefox = Discargar { -firefox }
|
downloadFirefox = Discargar { -firefox }
|
||||||
legalTitle = Politica de confidentialitate de { -send-short-brand }
|
legalTitle = Politica de confidentialitate de { -send-short-brand }
|
||||||
@@ -117,6 +132,11 @@ accountBenefitTimeLimit =
|
|||||||
[one] Retene active le ligamine pro 1 die
|
[one] Retene active le ligamine pro 1 die
|
||||||
*[other] Retene active le ligamine pro { $count } dies
|
*[other] Retene active le ligamine pro { $count } dies
|
||||||
}
|
}
|
||||||
|
accountBenefitSync = Gere files compartite ab ulle apparato
|
||||||
|
accountBenefitMoz = Discoperi altere servicios de { -mozilla }
|
||||||
signOut = Disconnecter
|
signOut = Disconnecter
|
||||||
okButton = OK
|
okButton = OK
|
||||||
downloadingTitle = Discargamento
|
downloadingTitle = Discargamento
|
||||||
|
noStreamsOptionCopy = Copiar le ligamine e aperir lo in un altere navigator
|
||||||
|
noStreamsOptionFirefox = Prova nostre navigator favorite
|
||||||
|
noStreamsOptionDownload = Continuar con iste navigator
|
||||||
|
|||||||
@@ -1,109 +1,37 @@
|
|||||||
# 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
|
||||||
siteSubtitle = eksperimen web
|
|
||||||
siteFeedback = Saran
|
siteFeedback = Saran
|
||||||
uploadPageHeader = Pribadi, Berbagi Berkas Terenskripsi
|
|
||||||
uploadPageExplainer = Kirim berkas melalui tautan yang aman, pribadi, dan terenkripsi yang secara otomatis kedaluwarsa untuk memastikan berkas Anda tidak daring selamanya.
|
|
||||||
uploadPageLearnMore = Pelajari lebih lanjut
|
|
||||||
uploadPageDropMessage = Lepas berkas Anda di sini untuk mulai mengunggah
|
|
||||||
uploadPageSizeMessage = Untuk pengoperasian yang paling andal, sebaiknya jaga berkas Anda di bawah 1GB
|
|
||||||
uploadPageBrowseButton = Pilih berkas pada komputer Anda
|
|
||||||
uploadPageBrowseButton1 = Pilih berkas untuk diunggah
|
|
||||||
uploadPageMultipleFilesAlert = Saat ini belum mendukung pengunggahan beberapa berkas atau folder.
|
|
||||||
uploadPageBrowseButtonTitle = Unggah berkas
|
|
||||||
uploadingPageProgress = Mengunggah { $filename } ({ $size })
|
|
||||||
importingFile = Mengimpor…
|
importingFile = Mengimpor…
|
||||||
verifyingFile = Memverifikasi…
|
|
||||||
encryptingFile = Mengenkripsi...
|
encryptingFile = Mengenkripsi...
|
||||||
decryptingFile = Mendekripsi...
|
decryptingFile = Mendekripsi...
|
||||||
notifyUploadDone = Unggahan Anda telah selesai.
|
|
||||||
uploadingPageMessage = Setelah berkas diunggah, Anda dapat mengatur pilihan kedaluwarsa.
|
|
||||||
uploadingPageCancel = Batal unggah
|
|
||||||
uploadCancelNotification = Unggahan Anda dibatalkan.
|
|
||||||
uploadingPageLargeFileMessage = Berkas ini berukuran besar dan mungkin perlu beberapa saat untuk mengunggahnya. Silakan tunggu!
|
|
||||||
uploadingFileNotification = Beri tahu saya ketika unggahan telah selesai.
|
|
||||||
uploadSuccessConfirmHeader = Siap untuk Dikirim
|
|
||||||
uploadSvgAlt = Unggah
|
|
||||||
uploadSuccessTimingHeader = Tautan ke berkas Anda akan berakhir setelah 1 unduhan atau dalam 24 jam.
|
|
||||||
expireInfo = Tautan ke berkas Anda akan kedaluwarsa setelah { $downloadCount } atau { $timespan }.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] { $number } unduhan
|
*[other] { $num } unduhan
|
||||||
}
|
}
|
||||||
timespanHours =
|
timespanHours =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] { $number } jam
|
*[other] { $num } jam
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Salin dan bagikan tautan untuk mengirim berkas Anda: { $filename }
|
|
||||||
copyUrlFormButton = Salin ke papan klip
|
|
||||||
copiedUrl = Tersalin!
|
copiedUrl = Tersalin!
|
||||||
deleteFileButton = Hapus berkas
|
|
||||||
sendAnotherFileLink = Kirim berkas lain
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Unduh
|
|
||||||
downloadsFileList = Unduhan
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Waktu
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = Unduh { $filename }
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Masukkan Sandi
|
|
||||||
unlockInputPlaceholder = Sandi
|
unlockInputPlaceholder = Sandi
|
||||||
unlockButtonLabel = Buka
|
unlockButtonLabel = Buka
|
||||||
downloadFileTitle = Unduh Berkas Terenkripsi
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = Teman Anda mengirimkan berkas dengan Firefox Send, layanan yang memungkinkan Anda berbagi berkas dengan tautan yang aman, pribadi, dan terenkripsi yang secara otomatis berakhir untuk memastikan berkas Anda tidak daring selamanya.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Unduh
|
downloadButtonLabel = Unduh
|
||||||
downloadNotification = Unduhan Anda telah selesai.
|
|
||||||
downloadFinish = Unduhan Selesai
|
downloadFinish = Unduhan Selesai
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = ({ $partialSize } dari { $totalSize })
|
fileSizeProgress = ({ $partialSize } dari { $totalSize })
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
sendYourFilesLink = Coba Firefox Send
|
sendYourFilesLink = Coba Firefox Send
|
||||||
downloadingPageProgress = Mengunduh { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Sila biarkan tab ini terbuka sementara kami memproses berkas Anda dan mendekripsinya.
|
|
||||||
errorAltText = Unggahan bermasalah
|
|
||||||
errorPageHeader = Terjadi kesalahan!
|
errorPageHeader = Terjadi kesalahan!
|
||||||
errorPageMessage = Terjadi kesalahan saat mengunggah berkas.
|
|
||||||
errorPageLink = Kirim berkas lain
|
|
||||||
fileTooBig = Berkas terlalu besar untuk diunggah. Harus kurang dari { $size }.
|
fileTooBig = Berkas terlalu besar untuk diunggah. Harus kurang dari { $size }.
|
||||||
linkExpiredAlt = Tautan kedaluwarsa
|
linkExpiredAlt = Tautan kedaluwarsa
|
||||||
expiredPageHeader = Tautan ini telah kedaluwarsa atau tidak pernah ada!
|
|
||||||
notSupportedHeader = Peramban Anda tidak mendukung.
|
notSupportedHeader = Peramban Anda tidak mendukung.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Sayangnya peramban ini tidak mendukung teknologi web yang menggerakkan Firefox Send. Anda perlu mencoba peramban lain. Kami merekomendasikan Firefox!
|
|
||||||
notSupportedLink = Mengapa peramban saya tidak didukung?
|
notSupportedLink = Mengapa peramban saya tidak didukung?
|
||||||
notSupportedOutdatedDetail = Sayangnya Firefox versi ini tidak mendukung teknologi web yang menggerakkan Firefox Send. Anda perlu memperbarui peramban Anda.
|
notSupportedOutdatedDetail = Sayangnya Firefox versi ini tidak mendukung teknologi web yang menggerakkan Firefox Send. Anda perlu memperbarui peramban Anda.
|
||||||
updateFirefox = Perbarui Firefox
|
updateFirefox = Perbarui Firefox
|
||||||
downloadFirefoxButtonSub = Unduh Gratis
|
|
||||||
uploadedFile = Berkas
|
|
||||||
copyFileList = Salin URL
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Kedaluwarsa Pada
|
|
||||||
deleteFileList = Hapus
|
|
||||||
nevermindButton = Abaikan
|
|
||||||
legalHeader = Syarat & Privasi
|
|
||||||
legalNoticeTestPilot = Saat ini Firefox Send merupakan eksperimen Test Pilot, dan merupakan subyek dari <a>Ketentuan Layanan</a> dan <a>Pemberitahuan Privasi</a> Test Pilot. Anda dapat mempelajari lebih lanjut tentang eksperimen ini dan pengumpulan datanya <a>di sini</a>.
|
|
||||||
legalNoticeMozilla = Penggunaan situs Firefox Send juga merupakan subyek dari <a>Pemberitahuan Privasi Situs Web</a> dan <a>Persyaratan Penggunaan Situs Web</a> Mozilla.
|
|
||||||
deletePopupText = Hapus berkas ini?
|
|
||||||
deletePopupYes = Ya
|
|
||||||
deletePopupCancel = Batal
|
deletePopupCancel = Batal
|
||||||
deleteButtonHover = Hapus
|
deleteButtonHover = Hapus
|
||||||
copyUrlHover = Salin URL
|
|
||||||
footerLinkLegal = Legal
|
footerLinkLegal = Legal
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = Tentang Test Pilot
|
|
||||||
footerLinkPrivacy = Privasi
|
footerLinkPrivacy = Privasi
|
||||||
footerLinkTerms = Ketentuan
|
|
||||||
footerLinkCookies = Kuki
|
footerLinkCookies = Kuki
|
||||||
requirePasswordCheckbox = Membutuhkan sandi untuk mengunduh berkas ini
|
|
||||||
addPasswordButton = Tambahkan Sandi
|
|
||||||
changePasswordButton = Ubah
|
|
||||||
passwordTryAgain = Sandi salah. Silakan coba lagi.
|
passwordTryAgain = Sandi salah. Silakan coba lagi.
|
||||||
reportIPInfringement = Laporkan Pelanggaran IP
|
|
||||||
javascriptRequired = Firefox Send membutuhkan JavaScript.
|
javascriptRequired = Firefox Send membutuhkan JavaScript.
|
||||||
whyJavascript = Mengapa Firefox Send membutuhkan JavaScript?
|
whyJavascript = Mengapa Firefox Send membutuhkan JavaScript?
|
||||||
enableJavascript = Silakan aktifkan JavaScript dan coba lagi.
|
enableJavascript = Silakan aktifkan JavaScript dan coba lagi.
|
||||||
@@ -111,14 +39,12 @@ enableJavascript = Silakan aktifkan JavaScript dan coba lagi.
|
|||||||
expiresHoursMinutes = { $hours }j { $minutes }m
|
expiresHoursMinutes = { $hours }j { $minutes }m
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }m
|
expiresMinutes = { $minutes }m
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Sandi diatur
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Panjang sandi maksimal: { $length }
|
maxPasswordLength = Panjang sandi maksimal: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = Tidak bisa menyetel sandi ini
|
passwordSetError = Tidak bisa menyetel sandi ini
|
||||||
|
|
||||||
## New strings for the vNext version of Firefox Send
|
## Send version 2 strings
|
||||||
|
|
||||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
-send-brand = Firefox Send
|
-send-brand = Firefox Send
|
||||||
@@ -132,21 +58,31 @@ notifyUploadEncryptDone = Berkas Anda terenkripsi dan siap untuk dikirim
|
|||||||
archiveExpiryInfo = Berakhir setelah { $downloadCount } atau { $timespan }
|
archiveExpiryInfo = Berakhir setelah { $downloadCount } atau { $timespan }
|
||||||
timespanMinutes =
|
timespanMinutes =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] menit
|
*[other] { $num } menit
|
||||||
}
|
}
|
||||||
timespanDays =
|
timespanDays =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] hari
|
*[other] { $num } hari
|
||||||
}
|
}
|
||||||
timespanWeeks =
|
timespanWeeks =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] pekan
|
*[other] { $num } pekan
|
||||||
}
|
}
|
||||||
fileCount =
|
fileCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] berkas
|
*[other] { $num } berkas
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Total ukuran: { $size }
|
totalSize = Total ukuran: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Salin tautan untuk membagikan berkas Anda:
|
copyLinkDescription = Salin tautan untuk membagikan berkas Anda:
|
||||||
@@ -176,15 +112,15 @@ uploadButton = Unggah
|
|||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# 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
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = atau klik untuk mengirim hingga { $size }
|
orClickWithSize = atau klik untuk mengirim hingga { $size }
|
||||||
addPassword = Lindungi dengan kata sandi
|
addPassword = Lindungi dengan kata sandi
|
||||||
emailPlaceholder = Masukkan surel Anda
|
emailPlaceholder = Masukkan surel Anda
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = Masuk untuk dapat mengirim hingga { $size }
|
signInSizeBump = Masuk untuk dapat mengirim hingga { $size }
|
||||||
signInButton = Masuk/Daftar
|
signInButton = Masuk/Daftar
|
||||||
accountBenefitTitle = Buat { -firefox } Account atau masuk
|
accountBenefitTitle = Buat { -firefox } Account atau masuk
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Bagikan berkas hingga { $size }
|
accountBenefitLargeFiles = Bagikan berkas hingga { $size }
|
||||||
accountBenefitDownloadCount = Bagikan berkas kepada lebih banyak orang
|
accountBenefitDownloadCount = Bagikan berkas kepada lebih banyak orang
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -72,7 +72,17 @@ fileCount =
|
|||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] { $num } ファイル
|
*[other] { $num } ファイル
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = 合計サイズ: { $size }
|
totalSize = 合計サイズ: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = リンクをコピーしてファイルを共有:
|
copyLinkDescription = リンクをコピーしてファイルを共有:
|
||||||
@@ -102,15 +112,15 @@ 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 = ファイルをドラッグ&ドロップ
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = または、クリックして最大 { $size } のファイルを送信
|
orClickWithSize = または、クリックして最大 { $size } のファイルを送信
|
||||||
addPassword = パスワードで保護
|
addPassword = パスワードで保護
|
||||||
emailPlaceholder = メールアドレスを入力
|
emailPlaceholder = メールアドレスを入力
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = ログインすると最大 { $size } のファイルを送信できます
|
signInSizeBump = ログインすると最大 { $size } のファイルを送信できます
|
||||||
signInButton = ログイン/登録
|
signInButton = ログイン/登録
|
||||||
accountBenefitTitle = { -firefox } アカウントを作成またはログイン
|
accountBenefitTitle = { -firefox } アカウントを作成またはログイン
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = 最大 { $size } までのファイルを共有
|
accountBenefitLargeFiles = 最大 { $size } までのファイルを共有
|
||||||
accountBenefitDownloadCount = より多くの人とファイルを共有
|
accountBenefitDownloadCount = より多くの人とファイルを共有
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -1,31 +1,9 @@
|
|||||||
# 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
|
||||||
siteSubtitle = Tarmit web
|
|
||||||
siteFeedback = Tikti
|
siteFeedback = Tikti
|
||||||
uploadPageHeader = Beṭṭu n ifuyla s uwgelhen akked tbaḍnit
|
|
||||||
uploadPageExplainer = Azen ifuyla s wudem aɣelsant, s tbaḍnit akked uwgelhen, s useqdec n useɣwen ara yemten s wudem awurman akken talqut-ik ur tettɣimi ara srid i lebda.
|
|
||||||
uploadPageLearnMore = Issin ugar
|
|
||||||
uploadPageDropMessage = Zuɣeṛ afaylu-ik ar dagi akken ad tebduḍ asali
|
|
||||||
uploadPageSizeMessage = I ugmuḍ ufrin, yelha ad tesqedceḍ ifuyla daw n 1 GAṬ
|
|
||||||
uploadPageBrowseButton = Fren afaylu sef uselkim-ik
|
|
||||||
uploadPageBrowseButton1 = Fren afaylu ad tazneḍ
|
|
||||||
uploadPageMultipleFilesAlert = Asali n ddeqs n ifuyla neɣ ikaramen ur ittusefrak ara yakan.
|
|
||||||
uploadPageBrowseButtonTitle = Sali ifuyla
|
|
||||||
uploadingPageProgress = Tuzna n { $filename } ({ $size })
|
|
||||||
importingFile = Akter...
|
importingFile = Akter...
|
||||||
verifyingFile = Asenqed...
|
|
||||||
encryptingFile = Awgelhen...
|
encryptingFile = Awgelhen...
|
||||||
decryptingFile = Azmek...
|
decryptingFile = Azmek...
|
||||||
notifyUploadDone = Asali n ufaylu yemmed.
|
|
||||||
uploadingPageMessage = Ticki afaylu-ik yettali, ad tizmired ad ternuḍ iɣewwaṛen n wazen n tagara.
|
|
||||||
uploadingPageCancel = Sefsex asali
|
|
||||||
uploadCancelNotification = Asali-ik yefsex.
|
|
||||||
uploadingPageLargeFileMessage = Afaylu meqqer aṭas ihi yezmer ad yawi ddeqs n wakud. Rǧu ihi!
|
|
||||||
uploadingFileNotification = Lɣu-yid ticki yemmed usali.
|
|
||||||
uploadSuccessConfirmHeader = Ihegga i walluy
|
|
||||||
uploadSvgAlt = Sali
|
|
||||||
uploadSuccessTimingHeader = Aseɣwen ar ufaylu-ik ad yemmet ticki yuder-d neɣ deffir n 24 n yisragen.
|
|
||||||
expireInfo = Aseɣwen icudden ar ufaylu-inek ad yemmet send { $downloadCount } naɣ { $timespan }.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 usider
|
[one] 1 usider
|
||||||
@@ -36,76 +14,26 @@ timespanHours =
|
|||||||
[one] 1 usrag
|
[one] 1 usrag
|
||||||
*[other] { $num } isragen
|
*[other] { $num } isragen
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Nɣel sakin Bḍu aseɣwen akken ad tazneḍ afaylu-ik: { $filename }
|
|
||||||
copyUrlFormButton = Sers ɣef afus
|
|
||||||
copiedUrl = Yenɣel!
|
copiedUrl = Yenɣel!
|
||||||
deleteFileButton = Kkes afaylu
|
|
||||||
sendAnotherFileLink = Azen afaylu-nniḍen
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Sider
|
|
||||||
downloadsFileList = Isidar
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Akud
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = Sider { $filename }
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Sekcem awal uffir
|
|
||||||
unlockInputPlaceholder = Awal uffir
|
unlockInputPlaceholder = Awal uffir
|
||||||
unlockButtonLabel = Serreḥ
|
unlockButtonLabel = Serreḥ
|
||||||
downloadFileTitle = Sider afaylu awgelhan
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = Amdakel-ik yuzen-ak-d afaylu s Firefox Firefox Send, ameẓlu ara yeǧǧen tuzna n ifuyla s wudem aɣelsan, s tbadnit akked uwgelhen s useqdec n useqwen ara yeùten s wudem awurman akken talqut-ik ur tettɣimi ara srid i lebda.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Sider
|
downloadButtonLabel = Sider
|
||||||
downloadNotification = Asider-ik yemmed.
|
|
||||||
downloadFinish = Asider yemmed
|
downloadFinish = Asider yemmed
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = ({ $partialSize } seg { $totalSize })
|
fileSizeProgress = ({ $partialSize } seg { $totalSize })
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
sendYourFilesLink = Ɛreḍ Firefox Send
|
sendYourFilesLink = Ɛreḍ Firefox Send
|
||||||
downloadingPageProgress = Asider n { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Eǧǧ iccer-agi yeldi ticki nettnadi afaylu akken ad newgelhen.
|
|
||||||
errorAltText = Tuccḍa n tuzna
|
|
||||||
errorPageHeader = Yella wayen yeḍran!
|
errorPageHeader = Yella wayen yeḍran!
|
||||||
errorPageMessage = Teḍra-d tuccḍa deg usali n ufaylu.
|
|
||||||
errorPageLink = Azen afaylu-nniḍen
|
|
||||||
fileTooBig = Afaylu-agi meqqeṛ aṭas. Yessefk ad yili daw n { $size }.
|
fileTooBig = Afaylu-agi meqqeṛ aṭas. Yessefk ad yili daw n { $size }.
|
||||||
linkExpiredAlt = Aseɣwen yemmut
|
linkExpiredAlt = Aseɣwen yemmut
|
||||||
expiredPageHeader = Aseɣwen-agi yemmut neɣ wurǧin yella seg tazwara!
|
|
||||||
notSupportedHeader = Iminig-ik ur ittusefrak ara
|
notSupportedHeader = Iminig-ik ur ittusefrak ara
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Ad nesḥissef imi iminig-ik ur isefrak ara tatiknulujit web iseqdac Firefox Send. Yessefk ad tesqedceḍ iminig-nniḍen. Seqdec Firefox!
|
|
||||||
notSupportedLink = Ayγer iminig inu ur yettwasefrek ara?
|
notSupportedLink = Ayγer iminig inu ur yettwasefrek ara?
|
||||||
notSupportedOutdatedDetail = Ad nesḥissef imilqem-agi n Firefox Firefox ur isefrak ara titiknulujiyin web yettwaseqdacen di Firefox Send. Yessefk ad tleqmeḍ iminig-ik.
|
notSupportedOutdatedDetail = Ad nesḥissef imilqem-agi n Firefox Firefox ur isefrak ara titiknulujiyin web yettwaseqdacen di Firefox Send. Yessefk ad tleqmeḍ iminig-ik.
|
||||||
updateFirefox = Leqqem Firefox
|
updateFirefox = Leqqem Firefox
|
||||||
downloadFirefoxButtonSub = Asider ilelli
|
|
||||||
uploadedFile = Afaylu
|
|
||||||
copyFileList = Nɣel URL
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Ad ifak di
|
|
||||||
deleteFileList = Kkes
|
|
||||||
nevermindButton = Wicqa
|
|
||||||
legalHeader = Tiwtilin &tabaḍnit
|
|
||||||
legalNoticeTestPilot = Firefox Send yettwasekyad akka tura am tarmit Test Pilot, ihi ad yili daw n <a>n tewtilin n useqdec </a> n Test Pilot akked <a>Tasertit n tbaḍnit</a>. Tzemreḍ ad teẓreḍ ugar ɣeef tarmit-agi akked ulqaḍ n isefka<a> dagihere</a>.
|
|
||||||
legalNoticeMozilla = Aseqdec n usmel n Firefox Send yella daw n <a> ilugan tbaḍnit n yismal web </a> n Mozilla akked <a> Tiwtilin n useqdec n yismal Web</a> n Mozilla.
|
|
||||||
deletePopupText = Kkes afaylu-agi?
|
|
||||||
deletePopupYes = Ih
|
|
||||||
deletePopupCancel = Sefsex
|
deletePopupCancel = Sefsex
|
||||||
deleteButtonHover = Kkes
|
deleteButtonHover = Kkes
|
||||||
copyUrlHover = Nɣel URL.
|
|
||||||
footerLinkLegal = Usḍif
|
footerLinkLegal = Usḍif
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = Ɣef Test Pilot
|
|
||||||
footerLinkPrivacy = Tabaḍnit
|
footerLinkPrivacy = Tabaḍnit
|
||||||
footerLinkTerms = Tiwtilin
|
|
||||||
footerLinkCookies = Inagan n tuqqna
|
footerLinkCookies = Inagan n tuqqna
|
||||||
requirePasswordCheckbox = YEsra awal uffir akken ad isider afaylu-agi
|
|
||||||
addPasswordButton = rnu awal uffir
|
|
||||||
changePasswordButton = Snifel
|
|
||||||
passwordTryAgain = Yir awal uffir. Ɛreḍ tikelt nniḍen.
|
passwordTryAgain = Yir awal uffir. Ɛreḍ tikelt nniḍen.
|
||||||
reportIPInfringement = Neqqes akukel n IP
|
|
||||||
javascriptRequired = Firefox Send yesra JavaScript
|
javascriptRequired = Firefox Send yesra JavaScript
|
||||||
whyJavascript = Ayɣer firefox Send yesra JavaScript?
|
whyJavascript = Ayɣer firefox Send yesra JavaScript?
|
||||||
enableJavascript = Ma ulac aɣilif rmed JavaScript sakin ɛreḍ tikkelt nniḍen.
|
enableJavascript = Ma ulac aɣilif rmed JavaScript sakin ɛreḍ tikkelt nniḍen.
|
||||||
@@ -113,9 +41,66 @@ enableJavascript = Ma ulac aɣilif rmed JavaScript sakin ɛreḍ tikkelt nniḍe
|
|||||||
expiresHoursMinutes = { $hours }Isragen { $minutes }Tisdatin
|
expiresHoursMinutes = { $hours }Isragen { $minutes }Tisdatin
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }Tisdatin
|
expiresMinutes = { $minutes }Tisdatin
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Awal uffir ittwasbaded
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Tuγzi tafellayt n wawal uffir: { $length }
|
maxPasswordLength = Tuγzi tafellayt n wawal uffir: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = Awal-agi uffir ur izmir ara ad ittwabaded
|
passwordSetError = Awal-agi uffir ur izmir ara ad ittwabaded
|
||||||
|
|
||||||
|
## Send version 2 strings
|
||||||
|
|
||||||
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
|
-send-brand = Firefox Send
|
||||||
|
-send-short-brand = Send
|
||||||
|
-firefox = Firefox
|
||||||
|
-mozilla = Mozilla
|
||||||
|
introTitle = Afessas, beṭṭu n ifuyla s wudem uslig
|
||||||
|
timespanMinutes =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 n tsedat
|
||||||
|
*[other] { $num } n tsedatin
|
||||||
|
}
|
||||||
|
timespanDays =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 n wass
|
||||||
|
*[other] { $num } n wussan
|
||||||
|
}
|
||||||
|
timespanWeeks =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 n dduṛt
|
||||||
|
*[other] { $num } n ledwaṛ
|
||||||
|
}
|
||||||
|
fileCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 n ufaylu
|
||||||
|
*[other] { $num } n ifuyla
|
||||||
|
}
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KAṬ
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MAṬ
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GAṬ
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = Tuɣzi s umata: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Nɣel aseɣwen akken ad tebḍuḍ afaylu-inek
|
||||||
|
copyLinkButton = Nɣel aseɣwen
|
||||||
|
downloadTitle = Sider ifuyla
|
||||||
|
expiredTitle = Immut useɣwen.
|
||||||
|
downloadFirefox = Sider { -firefox }
|
||||||
|
legalDateStamp = Lqem 1.0, azemz n 12 Meɣres 2019
|
||||||
|
addFilesButton = Fren ifuyla ad tessaliḍ
|
||||||
|
uploadButton = Sali
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Ẓuɣer sakin sers ifuyla
|
||||||
|
addPassword = Ḥrez s wawal uffir
|
||||||
|
emailPlaceholder = Sekcem imayl inek
|
||||||
|
signInButton = Kcem/jerred
|
||||||
|
signOut = Ffeɣ
|
||||||
|
okButton = IH
|
||||||
|
downloadingTitle = Azdam
|
||||||
|
noStreamsOptionDownload = Kemmel akked iminig-a
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ siteFeedback = 사용자 의견
|
|||||||
importingFile = 가져오는 중…
|
importingFile = 가져오는 중…
|
||||||
encryptingFile = 암호화 중…
|
encryptingFile = 암호화 중…
|
||||||
decryptingFile = 복호화 중…
|
decryptingFile = 복호화 중…
|
||||||
downloadCount = 1 다운로드
|
downloadCount = { $num } 다운로드
|
||||||
timespanHours = 1 시간
|
timespanHours = 1 시간
|
||||||
copiedUrl = 복사 완료!
|
copiedUrl = 복사 완료!
|
||||||
unlockInputPlaceholder = 비밀번호
|
unlockInputPlaceholder = 비밀번호
|
||||||
@@ -18,7 +18,7 @@ fileTooBig = 파일의 크기가 너무 큽니다. { $size } 보다 작아야
|
|||||||
linkExpiredAlt = 링크가 만료됨
|
linkExpiredAlt = 링크가 만료됨
|
||||||
notSupportedHeader = 이 브라우저는 지원되지 않습니다.
|
notSupportedHeader = 이 브라우저는 지원되지 않습니다.
|
||||||
notSupportedLink = 왜 이 브라우저는 지원이 되지 않나요?
|
notSupportedLink = 왜 이 브라우저는 지원이 되지 않나요?
|
||||||
notSupportedOutdatedDetail = 안타깝게도 현재 브라우저 버전에서는 Firefox Send에 사용되는 웹 기술을 지원하지 않습니다. 브라우저 업데이트가 필요합니다.
|
notSupportedOutdatedDetail = 안타깝게도 사용중인 Firefox 버전에서는 Firefox Send에 사용되는 웹 기술을 지원하지 않습니다. 브라우저 업데이트가 필요합니다.
|
||||||
updateFirefox = Firefox 업데이트
|
updateFirefox = Firefox 업데이트
|
||||||
deletePopupCancel = 아니오
|
deletePopupCancel = 아니오
|
||||||
deleteButtonHover = 삭제
|
deleteButtonHover = 삭제
|
||||||
@@ -45,7 +45,7 @@ passwordSetError = 이 비밀번호를 설정할 수 없었습니다
|
|||||||
-send-short-brand = Send
|
-send-short-brand = Send
|
||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
introTitle = 간단하고 안전한 파일 공유
|
introTitle = 간단하고, 사생활을 보호하는 파일 공유
|
||||||
introDescription = { -send-brand }를 사용하면 종단 암호화와 자동으로 만료되는 링크를 사용해 파일을 공유할 수 있습니다. 안전하게 공유할 수 있고 공유된 파일이 계속 온라인에 남지 않게 됩니다.
|
introDescription = { -send-brand }를 사용하면 종단 암호화와 자동으로 만료되는 링크를 사용해 파일을 공유할 수 있습니다. 안전하게 공유할 수 있고 공유된 파일이 계속 온라인에 남지 않게 됩니다.
|
||||||
notifyUploadEncryptDone = 파일이 암호화 되어서 보낼 수 있게 됐습니다
|
notifyUploadEncryptDone = 파일이 암호화 되어서 보낼 수 있게 됐습니다
|
||||||
# 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'
|
||||||
@@ -82,6 +82,43 @@ totalSize = 전체 크기: { $size }
|
|||||||
copyLinkDescription = 링크를 복사해서 파일을 공유하세요:
|
copyLinkDescription = 링크를 복사해서 파일을 공유하세요:
|
||||||
copyLinkButton = 링크 복사
|
copyLinkButton = 링크 복사
|
||||||
downloadTitle = 파일 다운로드
|
downloadTitle = 파일 다운로드
|
||||||
|
downloadDescription = 이 파일은 종단간 암호화 및 자동으로 만료되는 링크를 지원하는 { -send-brand }를 통해 공유되었습니다.
|
||||||
|
trySendDescription = 간단하고 안전한 파일 공유를 원하시나요? { -send-brand }를 사용해보세요.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
*[other] 한번에 { $count }개의 파일만 업로드 할 수 있습니다.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
*[other] { $count }개의 아카이브만 허용됩니다.
|
||||||
|
}
|
||||||
|
expiredTitle = 이 링크는 만료되었습니다.
|
||||||
|
notSupportedDescription = { -send-brand }는 이 브라우저와 작동하지 않습니다. { -send-short-brand }는 최신 { -firefox }와 가장 잘 작동하며, 대부분의 최신 웹 브라우저와도 잘 작동합니다.
|
||||||
downloadFirefox = 다운로드 { -firefox }
|
downloadFirefox = 다운로드 { -firefox }
|
||||||
|
legalTitle = { -send-short-brand } 개인정보 보호 공지
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# 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 = 업로드할 파일을 선택하세요
|
||||||
|
uploadButton = 업로드
|
||||||
|
addPassword = 비밀번호로 파일 보호
|
||||||
|
emailPlaceholder = 이메일 입력
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = { $size }까지 파일을 보낼 수 있게 로그인
|
||||||
|
signInButton = 로그인/등록
|
||||||
|
accountBenefitTitle = { -firefox } 계정을 하나 만들거나, 로그인
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = { $size }까지의 파일 공유
|
||||||
|
accountBenefitDownloadCount = 더 많은 사람들과 함께 파일 공유
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
*[other] 최대 { $count }일까지 링크 유지
|
||||||
|
}
|
||||||
|
accountBenefitSync = 어떤 기기에서든지 공유된 링크 관리
|
||||||
|
accountBenefitMoz = 더 많은 { -mozilla } 서비스에 대해 알아보기
|
||||||
|
signOut = 로그아웃
|
||||||
|
okButton = 확인
|
||||||
|
downloadingTitle = 다운로드 중
|
||||||
|
noStreamsWarning = 이 브라우저는 이렇게 큰 용량의 파일 암호화를 풀 수 없을 수도 있습니다.
|
||||||
|
noStreamsOptionDownload = 이 브라우저로 계속하기
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ passwordSetError = Dette passordet kunne ikkje stillast inn
|
|||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
introTitle = Enkel, privat fildeling
|
introTitle = Enkel, privat fildeling
|
||||||
|
introDescription = { -send-brand } lèt deg dele filer via ei tidsavgrensa lenke med ende-til-ende-kryptering. På den måten kan du dele filer privat og samstundes vere trygg på at det ikkje ligg på nettet for alltid.
|
||||||
notifyUploadEncryptDone = Fila di er kryptert og klar til å bli sendt
|
notifyUploadEncryptDone = Fila di er kryptert og klar til å bli sendt
|
||||||
# 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 = Går ut etter { $downloadCount } eller { $timespan }
|
archiveExpiryInfo = Går ut etter { $downloadCount } eller { $timespan }
|
||||||
@@ -77,12 +78,23 @@ fileCount =
|
|||||||
[one] 1 fil
|
[one] 1 fil
|
||||||
*[other] { $num } filer
|
*[other] { $num } filer
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Total storleik: { $size }
|
totalSize = Total storleik: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Kopier lenka for å dele fila di:
|
copyLinkDescription = Kopier lenka for å dele fila di:
|
||||||
copyLinkButton = Kopier lenke
|
copyLinkButton = Kopier lenke
|
||||||
downloadTitle = Last ned filer
|
downloadTitle = Last ned filer
|
||||||
|
downloadDescription = Denne fila vart delt via { -send-brand } med ende-til-ende-kryptering og ei lenke som automatisk går ut.
|
||||||
trySendDescription = Prøv { -send-brand } for enkel og sikker fildeling.
|
trySendDescription = Prøv { -send-brand } for enkel og sikker fildeling.
|
||||||
# count will always be > 10
|
# count will always be > 10
|
||||||
tooManyFiles =
|
tooManyFiles =
|
||||||
@@ -97,6 +109,7 @@ tooManyArchives =
|
|||||||
*[other] Berre { $count } arkiv er lov.
|
*[other] Berre { $count } arkiv er lov.
|
||||||
}
|
}
|
||||||
expiredTitle = Denne lenka har gått ut.
|
expiredTitle = Denne lenka har gått ut.
|
||||||
|
notSupportedDescription = { -send-brand } fungerer ikkje med denne nettlesaren. { -send-short-brand } fungerer best med siste versjon av { -firefox } og med dei fleste andre nye nettlesarar.
|
||||||
downloadFirefox = Last ned { -firefox }
|
downloadFirefox = Last ned { -firefox }
|
||||||
legalTitle = { -send-short-brand }, om personvernpraksis
|
legalTitle = { -send-short-brand }, om personvernpraksis
|
||||||
legalDateStamp = Versjon 1.0, datert den 12 mars 2019
|
legalDateStamp = Versjon 1.0, datert den 12 mars 2019
|
||||||
@@ -107,23 +120,23 @@ 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
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = eller klikk for å senda opp til { $size }
|
orClickWithSize = eller klikk for å sende filer på opptil { $size }
|
||||||
addPassword = Vern med passord
|
addPassword = Vern med passord
|
||||||
emailPlaceholder = Skriv inn e-postadressa di
|
emailPlaceholder = Skriv inn e-postadressa di
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = LOgg inn for å senda opp til { $size }
|
signInSizeBump = Logg inn for å sende filer på opptil { $size }
|
||||||
signInButton = Logg inn/Registrer deg
|
signInButton = Logg inn/Registrer deg
|
||||||
accountBenefitTitle = Lag ein { -firefox }-konto eller logg inn
|
accountBenefitTitle = Lag ein { -firefox }-konto eller logg inn
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Del filer opp til { $size }
|
accountBenefitLargeFiles = Del filer på opptil { $size }
|
||||||
accountBenefitDownloadCount = Del filer med fleire personar
|
accountBenefitDownloadCount = Del filer med fleire personar
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
{ $count ->
|
{ $count ->
|
||||||
[one] Hald lenka aktiv opp til 1 dag
|
[one] Hald lenka aktiv opptil 1 dag
|
||||||
*[other] Hald lenker aktive opp til { $count } dagar
|
*[other] Hald lenker aktive opptil { $count } dagar
|
||||||
}
|
}
|
||||||
accountBenefitSync = Handter delte filer frå alle einingar
|
accountBenefitSync = Handter delte filer frå kva som helst eining
|
||||||
accountBenefitMoz = Les om andre { -mozilla }-tenster
|
accountBenefitMoz = Les om andre { -mozilla }-tenster
|
||||||
signOut = Logg ut
|
signOut = Logg ut
|
||||||
okButton = OK
|
okButton = OK
|
||||||
|
|||||||
@@ -1,5 +1,52 @@
|
|||||||
# 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…
|
||||||
|
encryptingFile = Szyfrowanie…
|
||||||
|
decryptingFile = Odszyfrowywanie…
|
||||||
|
downloadCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 pobraniu
|
||||||
|
[few] { $num } pobraniach
|
||||||
|
*[many] { $num } pobraniach
|
||||||
|
}
|
||||||
|
timespanHours =
|
||||||
|
{ $num ->
|
||||||
|
[one] godzinie
|
||||||
|
[few] { $num } godzinach
|
||||||
|
*[many] { $num } godzinach
|
||||||
|
}
|
||||||
|
copiedUrl = Skopiowano
|
||||||
|
unlockInputPlaceholder = Hasło
|
||||||
|
unlockButtonLabel = Odblokuj
|
||||||
|
downloadButtonLabel = Pobierz
|
||||||
|
downloadFinish = Ukończono pobieranie
|
||||||
|
fileSizeProgress = ({ $partialSize } z { $totalSize })
|
||||||
|
sendYourFilesLink = Wypróbuj Firefox Send
|
||||||
|
errorPageHeader = Coś się nie udało.
|
||||||
|
fileTooBig = Ten plik jest za duży, aby go wysłać. Musi być mniejszy niż { $size }
|
||||||
|
linkExpiredAlt = Odnośnik wygasł
|
||||||
|
notSupportedHeader = Używana przeglądarka nie jest obsługiwana.
|
||||||
|
notSupportedLink = Dlaczego ta przeglądarka nie jest obsługiwana?
|
||||||
|
notSupportedOutdatedDetail = Ta wersja Firefoksa nie obsługuje technologii internetowej, która napędza Firefox Send. Należy uaktualnić przeglądarkę.
|
||||||
|
updateFirefox = Uaktualnij Firefoksa
|
||||||
|
deletePopupCancel = Anuluj
|
||||||
|
deleteButtonHover = Usuń
|
||||||
|
footerLinkLegal = Kwestie prawne
|
||||||
|
footerLinkPrivacy = Prywatność
|
||||||
|
footerLinkCookies = Ciasteczka
|
||||||
|
passwordTryAgain = Niepoprawne hasło. Spróbuj ponownie.
|
||||||
|
javascriptRequired = Firefox Send wymaga języka JavaScript
|
||||||
|
whyJavascript = Dlaczego Firefox Send wymaga języka JavaScript?
|
||||||
|
enableJavascript = Włącz obsługę języka JavaScript i spróbuj ponownie.
|
||||||
|
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||||
|
expiresHoursMinutes = { $hours } godz. { $minutes } min
|
||||||
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
|
expiresMinutes = { $minutes } min
|
||||||
|
# A short status message shown when the user enters a long password
|
||||||
|
maxPasswordLength = Maksymalna długość hasła: { $length }
|
||||||
|
# A short status message shown when there was an error setting the password
|
||||||
|
passwordSetError = Nie można ustawić tego hasła
|
||||||
|
|
||||||
## Send version 2 strings
|
## Send version 2 strings
|
||||||
|
|
||||||
@@ -8,6 +55,35 @@ title = Firefox Send
|
|||||||
-send-short-brand = Send
|
-send-short-brand = Send
|
||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
|
introTitle = Proste, prywatne udostępnianie plików
|
||||||
|
introDescription = { -send-brand } umożliwia udostępnianie plików za pomocą szyfrowania typu „end-to-end” i odnośników, które automatycznie wygasają. Dzięki temu możesz mieć pewność, że to co udostępniasz jest bezpieczne i nie pozostanie w Internecie na zawsze.
|
||||||
|
notifyUploadEncryptDone = Plik jest zaszyfrowany i gotowy do wysłania
|
||||||
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
|
archiveExpiryInfo = Wygasa po { $downloadCount } lub { $timespan }
|
||||||
|
timespanMinutes =
|
||||||
|
{ $num ->
|
||||||
|
[one] minucie
|
||||||
|
[few] { $num } minutach
|
||||||
|
*[many] { $num } minutach
|
||||||
|
}
|
||||||
|
timespanDays =
|
||||||
|
{ $num ->
|
||||||
|
[one] dniu
|
||||||
|
[few] { $num } dniach
|
||||||
|
*[many] { $num } dniach
|
||||||
|
}
|
||||||
|
timespanWeeks =
|
||||||
|
{ $num ->
|
||||||
|
[one] tygodniu
|
||||||
|
[few] { $num } tygodniach
|
||||||
|
*[many] { $num } tygodniach
|
||||||
|
}
|
||||||
|
fileCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 plik
|
||||||
|
[few] { $num } pliki
|
||||||
|
*[many] { $num } plików
|
||||||
|
}
|
||||||
# byte abbreviation
|
# byte abbreviation
|
||||||
bytes = B
|
bytes = B
|
||||||
# kibibyte abbreviation
|
# kibibyte abbreviation
|
||||||
@@ -18,3 +94,63 @@ mb = MB
|
|||||||
gb = GB
|
gb = GB
|
||||||
# localized number and byte abbreviation. example "2.5MB"
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
fileSize = { $num } { $units }
|
fileSize = { $num } { $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = Całkowity rozmiar: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Skopiuj odnośnik, aby udostępnić plik:
|
||||||
|
copyLinkButton = Kopiuj odnośnik
|
||||||
|
downloadTitle = Pobierz pliki
|
||||||
|
downloadDescription = Ten plik został udostępniony przez { -send-brand } za pomocą szyfrowania typu „end-to-end” i odnośnika, który automatycznie wygasa.
|
||||||
|
trySendDescription = Wypróbuj { -send-brand }, aby prosto i bezpiecznie udostępniać pliki.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Jednocześnie można wysyłać tylko jeden plik.
|
||||||
|
[few] Jednocześnie można wysyłać tylko { $count } pliki.
|
||||||
|
*[many] Jednocześnie można wysyłać tylko { $count } plików.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Dozwolone jest tylko jedno archiwum.
|
||||||
|
[few] Dozwolone są tylko { $count } archiwa.
|
||||||
|
*[many] Dozwolonych jest tylko { $count } archiwów.
|
||||||
|
}
|
||||||
|
expiredTitle = Ten odnośnik wygasł.
|
||||||
|
notSupportedDescription = { -send-brand } nie będzie działało w tej przeglądarce. { -send-short-brand } najlepiej działa w najnowszej wersji Firefoksa, ale będzie działać także w aktualnych wersjach większości przeglądarek.
|
||||||
|
downloadFirefox = Pobierz Firefoksa
|
||||||
|
legalTitle = Zasady ochrony prywatności serwisu { -send-short-brand }
|
||||||
|
legalDateStamp = Wersja 1.0 z 12 marca 2019 r.
|
||||||
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
|
expiresDaysHoursMinutes = { $days } d. { $hours } godz. { $minutes } min
|
||||||
|
addFilesButton = Wybierz pliki do wysłania
|
||||||
|
uploadButton = Wyślij
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Przeciągnij pliki
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = lub kliknij, aby wysłać do { $size }
|
||||||
|
addPassword = Chroń hasłem
|
||||||
|
emailPlaceholder = Wpisz adres e-mail
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Zaloguj się, aby wysłać do { $size }
|
||||||
|
signInButton = Zaloguj/zarejestruj się
|
||||||
|
accountBenefitTitle = Utwórz konto Firefoksa lub zaloguj się
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Udostępniaj pliki do { $size }
|
||||||
|
accountBenefitDownloadCount = Udostępniaj pliki większej liczbie osób
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Odnośniki aktywne przez jeden dzień
|
||||||
|
[few] Odnośniki aktywne przez { $count } dni
|
||||||
|
*[many] Odnośniki aktywne przez { $count } dni
|
||||||
|
}
|
||||||
|
accountBenefitSync = Zarządzaj udostępnionymi plikami z każdego urządzenia
|
||||||
|
accountBenefitMoz = Poznaj inne serwisy Mozilli
|
||||||
|
signOut = Wyloguj się
|
||||||
|
okButton = OK
|
||||||
|
downloadingTitle = Pobieranie
|
||||||
|
noStreamsWarning = Ta przeglądarka może nie być w stanie odszyfrować tak dużego pliku.
|
||||||
|
noStreamsOptionCopy = Skopiuj odnośnik, aby otworzyć w innej przeglądarce
|
||||||
|
noStreamsOptionFirefox = Wypróbuj naszą ulubioną przeglądarkę
|
||||||
|
noStreamsOptionDownload = Kontynuuj za pomocą tej przeglądarki
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ passwordSetError = Această parolă nu a putut fi setată
|
|||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
introTitle = Partajare de fișiere simplă și privată
|
introTitle = Partajare de fișiere simplă și privată
|
||||||
|
introDescription = { -send-brand } îți permite să partajezi fișiere cu criptare end-to-end și un link care expiră automat. Deci, poți păstra confidențial ceea ce partajezi și te poți asigura că ce ai partajat nu rămâne online pentru totdeauna.
|
||||||
notifyUploadEncryptDone = Fișierul tău este criptat și gata de trimitere
|
notifyUploadEncryptDone = Fișierul tău este criptat și gata de trimitere
|
||||||
# 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 = Expiră după { $downloadCount } sau { $timespan }
|
archiveExpiryInfo = Expiră după { $downloadCount } sau { $timespan }
|
||||||
@@ -83,10 +84,23 @@ fileCount =
|
|||||||
[few] { $num } fișiere
|
[few] { $num } fișiere
|
||||||
*[other] { $num } de fișiere
|
*[other] { $num } de fișiere
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Mărime totală: { $size }
|
totalSize = Mărime totală: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Copiază linkul pentru partajarea fișierului:
|
||||||
copyLinkButton = Copiază linkul
|
copyLinkButton = Copiază linkul
|
||||||
downloadTitle = Descarcă fișierele
|
downloadTitle = Descarcă fișierele
|
||||||
|
downloadDescription = Acest fișier a fost partajat prin { -send-brand }, cu criptare end-to-end și un link ce expiră automat.
|
||||||
trySendDescription = Încearcă { -send-brand } pentru o partajare de fișiere simplă și sigură.
|
trySendDescription = Încearcă { -send-brand } pentru o partajare de fișiere simplă și sigură.
|
||||||
# count will always be > 10
|
# count will always be > 10
|
||||||
tooManyFiles =
|
tooManyFiles =
|
||||||
@@ -103,6 +117,7 @@ tooManyArchives =
|
|||||||
*[other] Numai { $count } de arhive sunt permise.
|
*[other] Numai { $count } de arhive sunt permise.
|
||||||
}
|
}
|
||||||
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.
|
||||||
downloadFirefox = Descarcă { -firefox }
|
downloadFirefox = Descarcă { -firefox }
|
||||||
legalTitle = Politica de confidențialitate { -send-short-brand }
|
legalTitle = Politica de confidențialitate { -send-short-brand }
|
||||||
legalDateStamp = Versiunea 1.0 din data de 12 martie 2019
|
legalDateStamp = Versiunea 1.0 din data de 12 martie 2019
|
||||||
@@ -113,14 +128,23 @@ 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
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = sau dă clic pentru a trimite până la { $size }
|
orClickWithSize = sau dă clic pentru a trimite până la { $size }
|
||||||
addPassword = Protejează cu parolă
|
addPassword = Protejează cu parolă
|
||||||
emailPlaceholder = Introdu e-mailul tău
|
emailPlaceholder = Introdu e-mailul tău
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Autentifică-te ca să trimiți până la { $size }
|
||||||
signInButton = Autentificare/Înregistrare
|
signInButton = Autentificare/Înregistrare
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
accountBenefitTitle = Creează un cont { -firefox } sau autentifică-te
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Partajează fișiere de până la { $size }
|
accountBenefitLargeFiles = Partajează fișiere de până la { $size }
|
||||||
accountBenefitDownloadCount = Partajează fișiere cu mai multe persoane
|
accountBenefitDownloadCount = Partajează fișiere cu mai multe persoane
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Păstrează linkurile active până la 1 zi
|
||||||
|
[few] Păstrează linkurile active până la { $count } zile
|
||||||
|
*[other] Păstrează linkurile active până la { $count } de zile
|
||||||
|
}
|
||||||
accountBenefitSync = Gestionează fișierele partajate de pe orice dispozitiv
|
accountBenefitSync = Gestionează fișierele partajate de pe orice dispozitiv
|
||||||
accountBenefitMoz = Află despre celelalte servicii { -mozilla }
|
accountBenefitMoz = Află despre celelalte servicii { -mozilla }
|
||||||
signOut = Deconectare
|
signOut = Deconectare
|
||||||
|
|||||||
@@ -84,7 +84,17 @@ fileCount =
|
|||||||
[few] { $num } файла
|
[few] { $num } файла
|
||||||
*[other] { $num } файлов
|
*[other] { $num } файлов
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = Б
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = КБ
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = МБ
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = ГБ
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Общий размер: { $size }
|
totalSize = Общий размер: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Скопируйте ссылку, чтобы поделиться своим файлом:
|
copyLinkDescription = Скопируйте ссылку, чтобы поделиться своим файлом:
|
||||||
@@ -118,15 +128,15 @@ 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 = Перетащите файлы сюда
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = или щёлкните здесь, чтобы отправить их (до { $size })
|
orClickWithSize = или щёлкните здесь, чтобы отправить их (до { $size })
|
||||||
addPassword = Защитить паролем
|
addPassword = Защитить паролем
|
||||||
emailPlaceholder = Введите ваш адрес электронной почты
|
emailPlaceholder = Введите ваш адрес электронной почты
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = Войдите, чтобы отправлять файлы до { $size }
|
signInSizeBump = Войдите, чтобы отправлять файлы до { $size }
|
||||||
signInButton = Войти/Зарегистрироваться
|
signInButton = Войти/Зарегистрироваться
|
||||||
accountBenefitTitle = Создайте Аккаунт { -firefox } или войдите
|
accountBenefitTitle = Создайте Аккаунт { -firefox } или войдите
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Делитесь файлами до { $size }
|
accountBenefitLargeFiles = Делитесь файлами до { $size }
|
||||||
accountBenefitDownloadCount = Делитесь файлами с несколькими людьми
|
accountBenefitDownloadCount = Делитесь файлами с несколькими людьми
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -84,7 +84,17 @@ fileCount =
|
|||||||
[few] { $num } súbory
|
[few] { $num } súbory
|
||||||
*[other] { $num } súborov
|
*[other] { $num } súborov
|
||||||
}
|
}
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = kB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num } { $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
totalSize = Celková veľkosť: { $size }
|
totalSize = Celková veľkosť: { $size }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
copyLinkDescription = Súbor môžete zdieľať pomocou tohto odkazu:
|
copyLinkDescription = Súbor môžete zdieľať pomocou tohto odkazu:
|
||||||
@@ -118,15 +128,15 @@ uploadButton = Nahrať
|
|||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# 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
|
||||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
orClickWithSize = môžete poslať až { $size }
|
orClickWithSize = môžete poslať až { $size }
|
||||||
addPassword = Chrániť heslom
|
addPassword = Chrániť heslom
|
||||||
emailPlaceholder = Zadajte e-mailovú adresu
|
emailPlaceholder = Zadajte e-mailovú adresu
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
signInSizeBump = Pre odoslanie súborov s veľkosťou až { $size }, sa, prosím, prihláste
|
signInSizeBump = Pre odoslanie súborov s veľkosťou až { $size }, sa, prosím, prihláste
|
||||||
signInButton = Prihlásiť sa/Zaregistrovať sa
|
signInButton = Prihlásiť sa/Zaregistrovať sa
|
||||||
accountBenefitTitle = Vytvorte si účet { -firefox } alebo sa prihláste
|
accountBenefitTitle = Vytvorte si účet { -firefox } alebo sa prihláste
|
||||||
# size is a localized number followed by a unit of bytes, ex. 2.5GB
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = Zdieľanie súborov s veľkosťou až { $size }
|
accountBenefitLargeFiles = Zdieľanie súborov s veľkosťou až { $size }
|
||||||
accountBenefitDownloadCount = Zdieľanie súborov s viacerými ľuďmi
|
accountBenefitDownloadCount = Zdieľanie súborov s viacerými ľuďmi
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
|
|||||||
@@ -1,31 +1,9 @@
|
|||||||
# 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
|
||||||
siteSubtitle = eksperiment web
|
|
||||||
siteFeedback = Përshtypje
|
siteFeedback = Përshtypje
|
||||||
uploadPageHeader = Shkëmbim Privat, i Fshehtëzuar, Kartelash
|
|
||||||
uploadPageExplainer = Dërgoni kartela përmes një lidhjeje të parrezik, private dhe të fshehtëzuar, që skadon automatikisht për të garantuar që gjërat tuaja nuk mbesin në internet përgjithmonë.
|
|
||||||
uploadPageLearnMore = Mësoni më tepër
|
|
||||||
uploadPageDropMessage = Që të fillojë ngarkimi, hidheni kartelën tuaj këtu
|
|
||||||
uploadPageSizeMessage = Për ecurinë më të qëndrueshme, më e mira është t’i mbani kartelat tuaja nën 1GB
|
|
||||||
uploadPageBrowseButton = Përzgjidhni një kartelë nga kompjuteri juaj
|
|
||||||
uploadPageBrowseButton1 = Përzgjidhni një kartelë për ngarkim
|
|
||||||
uploadPageMultipleFilesAlert = Ngarkimi i shumë kartelave njëherësh, ose i një dosjeje, hëpërhë nuk mbulohen.
|
|
||||||
uploadPageBrowseButtonTitle = Ngarkoje kartelën
|
|
||||||
uploadingPageProgress = Po ngarkohet { $filename } ({ $size })
|
|
||||||
importingFile = Po importohet…
|
importingFile = Po importohet…
|
||||||
verifyingFile = Po verifikohet…
|
|
||||||
encryptingFile = Po fshehtëzohet…
|
encryptingFile = Po fshehtëzohet…
|
||||||
decryptingFile = Po shfshehtëzohet…
|
decryptingFile = Po shfshehtëzohet…
|
||||||
notifyUploadDone = Ngarkimi juaj përfundoi.
|
|
||||||
uploadingPageMessage = Do të jeni në gjendje të caktoni parametra skadimi sapo kartela juaj të jetë ngarkuar.
|
|
||||||
uploadingPageCancel = Anuloje ngarkimin
|
|
||||||
uploadCancelNotification = Ngarkimi juaj u anulua.
|
|
||||||
uploadingPageLargeFileMessage = Kjo kartelë është e madhe dhe mund të dojë ca kohë të ngarkohet. Rrini këtu!
|
|
||||||
uploadingFileNotification = Njoftomë kur të jetë plotësuar ngarkimi .
|
|
||||||
uploadSuccessConfirmHeader = Gati për Dërgim
|
|
||||||
uploadSvgAlt = Ngarkoje
|
|
||||||
uploadSuccessTimingHeader = Lidhja për te kartela juaj do të skadojë pas 1 shkarkimi ose pas 24 orësh.
|
|
||||||
expireInfo = Lidhja për te kartela juaj do të skadojë pas { $downloadCount } ose { $timespan }.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 shkarkimi
|
[one] 1 shkarkimi
|
||||||
@@ -36,76 +14,26 @@ timespanHours =
|
|||||||
[one] 1 ore
|
[one] 1 ore
|
||||||
*[other] { $num } orësh
|
*[other] { $num } orësh
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Kopjojeni dhe jepuani të tjerëve lidhje që të dërgoni kartelën tuaj: { $filename }
|
|
||||||
copyUrlFormButton = Kopjoje te e papastra
|
|
||||||
copiedUrl = U kopjua!
|
copiedUrl = U kopjua!
|
||||||
deleteFileButton = Fshije kartelën
|
|
||||||
sendAnotherFileLink = Dërgoni një kartelë tjetër
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Shkarkoje
|
|
||||||
downloadsFileList = Shkarkime
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Kohë
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = Shkarkoje { $filename }
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Jepni Fjalëkalimin
|
|
||||||
unlockInputPlaceholder = Fjalëkalim
|
unlockInputPlaceholder = Fjalëkalim
|
||||||
unlockButtonLabel = Zhbllokoje
|
unlockButtonLabel = Zhbllokoje
|
||||||
downloadFileTitle = Shkarko Kartelën e Fshehtëzuar
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = Shoku juaj po ju dërgon një kartelë me Firefox Send, një shërbim që ju lejon të shkëmbeni kartela përmes një lidhjeje të parrezik, private, dhe të fshehtëzuar, që skadon automatikisht, për të garantuar që gjërat tuaja të mos mbeten në internet përgjithmonë.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Shkarkoje
|
downloadButtonLabel = Shkarkoje
|
||||||
downloadNotification = Shkarkimi juaj u plotësua.
|
|
||||||
downloadFinish = Shkarkim i Plotësuar
|
downloadFinish = Shkarkim i Plotësuar
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = ({ $partialSize } nga { $totalSize }) gjithsej
|
fileSizeProgress = ({ $partialSize } nga { $totalSize }) gjithsej
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
sendYourFilesLink = Provoni Firefox Send
|
sendYourFilesLink = Provoni Firefox Send
|
||||||
downloadingPageProgress = Po shkarkohet { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Ju lutemi, lëreni hapur këtë skedë ndërkohë që ne sjellim dhe shfshehtëzojmë kartelën tuaj.
|
|
||||||
errorAltText = Gabim ngarkimi
|
|
||||||
errorPageHeader = Diç shkoi ters!
|
errorPageHeader = Diç shkoi ters!
|
||||||
errorPageMessage = Pati një gabim gjatë ngarkimit të kartelës.
|
|
||||||
errorPageLink = Dërgoni një kartelë tjetër
|
|
||||||
fileTooBig = Kjo kartelë është shumë e madhe për ngarkim. Do të duhej të ishte më pak se { $size }.
|
fileTooBig = Kjo kartelë është shumë e madhe për ngarkim. Do të duhej të ishte më pak se { $size }.
|
||||||
linkExpiredAlt = Lidhja skadoi
|
linkExpiredAlt = Lidhja skadoi
|
||||||
expiredPageHeader = Kjo lidhje ka skaduar ose s’ka ekzistuar kurrë!
|
|
||||||
notSupportedHeader = Shfletuesi juaj nuk mbulohet.
|
notSupportedHeader = Shfletuesi juaj nuk mbulohet.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Mjerisht, ky shfletues nuk mbulon teknologjinë web mbi të cilën bazohet Firefox Send.Do t’ju duhet të provoni një shfletues tjetër. Ju këshillojmë Firefox-in!
|
|
||||||
notSupportedLink = Pse nuk mbulohet ky shfletues?
|
notSupportedLink = Pse nuk mbulohet ky shfletues?
|
||||||
notSupportedOutdatedDetail = Mjerisht, ky version i Firefox-it nuk e mbulon teknologjinë web mbi të cilën bazohet Firefox Send. Do t’ju duhet të përditësoni shfletuesin tuaj.
|
notSupportedOutdatedDetail = Mjerisht, ky version i Firefox-it nuk e mbulon teknologjinë web mbi të cilën bazohet Firefox Send. Do t’ju duhet të përditësoni shfletuesin tuaj.
|
||||||
updateFirefox = Përditësojeni Firefox-in
|
updateFirefox = Përditësojeni Firefox-in
|
||||||
downloadFirefoxButtonSub = Shkarkim Falas
|
|
||||||
uploadedFile = Kartelë
|
|
||||||
copyFileList = Kopjo URL-në
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Skadon Më
|
|
||||||
deleteFileList = Fshije
|
|
||||||
nevermindButton = S’prish punë
|
|
||||||
legalHeader = Kushte & Privatësi
|
|
||||||
legalNoticeTestPilot = Firefox Send është një eksperiment Pilot Testesh dhe subjekt i <a>Kushteve të Shërbimit</a> dhe <a>Shënim Privacësie</a> për Pilot Testesh. <a>Këtu</a> mund të mësoni më tepër mbi këtë eksperiment dhe grumbullimit të të dhënave që ai kryen.
|
|
||||||
legalNoticeMozilla = Përdorimi i sajtit Firefox Send është gjithashtu subjekt i <a>Shënimit Mbi Privatësi Sajtesh</a> të Mozilla-s dhe <a>Kushteve të Përdorimit të Sajtit</a>.
|
|
||||||
deletePopupText = Të fshihet kjo kartelë?
|
|
||||||
deletePopupYes = Po
|
|
||||||
deletePopupCancel = Anuloje
|
deletePopupCancel = Anuloje
|
||||||
deleteButtonHover = Fshije
|
deleteButtonHover = Fshije
|
||||||
copyUrlHover = Kopjoji URL-në
|
|
||||||
footerLinkLegal = Ligjore
|
footerLinkLegal = Ligjore
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = Rreth Pilot Testesh
|
|
||||||
footerLinkPrivacy = Privatësi
|
footerLinkPrivacy = Privatësi
|
||||||
footerLinkTerms = Kushte
|
|
||||||
footerLinkCookies = Cookies
|
footerLinkCookies = Cookies
|
||||||
requirePasswordCheckbox = Kërko doemos një fjalëkalim për shkarkim të kësaj kartele
|
|
||||||
addPasswordButton = Shtoni fjalëkalim
|
|
||||||
changePasswordButton = Ndryshoje
|
|
||||||
passwordTryAgain = Fjalëkalim i pasaktë. Riprovoni.
|
passwordTryAgain = Fjalëkalim i pasaktë. Riprovoni.
|
||||||
reportIPInfringement = Raportoni Cenim IP-je
|
|
||||||
javascriptRequired = Firefox Send lyp JavaScript
|
javascriptRequired = Firefox Send lyp JavaScript
|
||||||
whyJavascript = Ç’i duhet Firefox Send-it JavaScript-i?
|
whyJavascript = Ç’i duhet Firefox Send-it JavaScript-i?
|
||||||
enableJavascript = Ju lutemi, aktivizoni JavaScript-in dhe riprovoni.
|
enableJavascript = Ju lutemi, aktivizoni JavaScript-in dhe riprovoni.
|
||||||
@@ -113,9 +41,107 @@ enableJavascript = Ju lutemi, aktivizoni JavaScript-in dhe riprovoni.
|
|||||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }m
|
expiresMinutes = { $minutes }m
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Fjalëkalimi u caktua
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Gjatësi maksimum fjalëkalimi: { $length }
|
maxPasswordLength = Gjatësi maksimum fjalëkalimi: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = Ky fjalëkalim s’u caktua dot
|
passwordSetError = Ky fjalëkalim s’u caktua dot
|
||||||
|
|
||||||
|
## Send version 2 strings
|
||||||
|
|
||||||
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
|
-send-brand = Firefox Send
|
||||||
|
-send-short-brand = Send
|
||||||
|
-firefox = Firefox
|
||||||
|
-mozilla = Mozilla
|
||||||
|
introTitle = Ndarje e thjeshtë, private, kartelash me të tjerët
|
||||||
|
introDescription = { -send-brand } ju lejon të ndani kartela me të tjerët, me fshehtëzim skaj-më-skaj dhe me një lidhje që skadon automatikisht. Kështu mund ta mbani private atë që ndani me të tjerë dhe të garantoni që gjërat tuaja s’do të qëndrojnë në linjë përgjithmonë.
|
||||||
|
notifyUploadEncryptDone = Kartela juaj është fshehtëzuar dhe gati për dërgim
|
||||||
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
|
archiveExpiryInfo = Skadon pas { $downloadCount } ose { $timespan }
|
||||||
|
timespanMinutes =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 minutë
|
||||||
|
*[other] { $num } minuta
|
||||||
|
}
|
||||||
|
timespanDays =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 ditë
|
||||||
|
*[other] { $num } ditë
|
||||||
|
}
|
||||||
|
timespanWeeks =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 javë
|
||||||
|
*[other] { $num } javë
|
||||||
|
}
|
||||||
|
fileCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] 1 kartelë
|
||||||
|
*[other] { $num } kartela
|
||||||
|
}
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = Madhësia gjithsej: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Kopjoni lidhjen për dhënien e kartelës tuaj:
|
||||||
|
copyLinkButton = Kopjoje lidhjen
|
||||||
|
downloadTitle = Shkarkoni kartela
|
||||||
|
downloadDescription = Kjo kartelë u nda me të tjerët përmes { -send-brand }, me fshehtëzim skaj-më-skaj dhe një lidhje që skadon automatikisht.
|
||||||
|
trySendDescription = Provoni { -send-brand }, për ndarje të thjeshtë, të parrezik, kartelash me të tjerët.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Mund të ngarkohet vetëm 1 kartelë në herë.
|
||||||
|
*[other] Mund të ngarkohen vetëm { $count } kartela në herë.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Lejohet vetëm 1 arkiv.
|
||||||
|
*[other] Lejohen vetëm { $count } arkiva.
|
||||||
|
}
|
||||||
|
expiredTitle = Kjo lidhje ka skaduar.
|
||||||
|
notSupportedDescription = { -send-brand } s’do të funksionojë me këtë shfletues. { -send-short-brand } funksionin më mirë me versionin më të ri të { -firefox }, dhe do të funksionojë me versionin e tanishëm të shumicës së shfletuesve.
|
||||||
|
downloadFirefox = Shkarkoni { -firefox }
|
||||||
|
legalTitle = Njoftim Privatësie Për { -send-short-brand }
|
||||||
|
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"
|
||||||
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
|
addFilesButton = Përzgjidhni kartela për ngarkim
|
||||||
|
uploadButton = Ngarkoje
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Tërhiqni dhe lini kartela
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = ose klikoni që të dërgohen deri në { $size }
|
||||||
|
addPassword = Mbrojini me fjalëkalim
|
||||||
|
emailPlaceholder = Jepni email-in tuaj
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Bëni hyrjen që të dërgoni deri më { $size }
|
||||||
|
signInButton = Hyni/Regjistrohuni
|
||||||
|
accountBenefitTitle = Krijoni një Llogari { -firefox } ose bëni hyrjen në një të tillë
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Ndani me të tjerët kartela deri { $size }
|
||||||
|
accountBenefitDownloadCount = Ndani kartela me më tepër persona
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Mbaji aktive lidhjet për deri 1 ditë
|
||||||
|
*[other] Mbaji aktive lidhjet për deri { $count } ditë
|
||||||
|
}
|
||||||
|
accountBenefitSync = Administroni nga çfarëdo pajisje kartela të përbashkëta
|
||||||
|
accountBenefitMoz = Mësoni më tepër rreth shërbimesh { -mozilla }
|
||||||
|
signOut = Dilni
|
||||||
|
okButton = OK
|
||||||
|
downloadingTitle = Shkarkim
|
||||||
|
noStreamsWarning = Ky shfletues mund të mos jetë në gjendje të shfshehtëzojë një kartelë kaq të madhe.
|
||||||
|
noStreamsOptionCopy = Kopjoje lidhjen për ta hapur në një tjetër shfletues
|
||||||
|
noStreamsOptionFirefox = Provoni shfletuesin tonë të parapëlqyer
|
||||||
|
noStreamsOptionDownload = Vazhdo me këtë shfletues
|
||||||
|
|||||||
@@ -1,31 +1,9 @@
|
|||||||
# 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
|
||||||
siteSubtitle = веб експеримент
|
|
||||||
siteFeedback = Повратне информације
|
siteFeedback = Повратне информације
|
||||||
uploadPageHeader = Приватно и шифровано дељење датотека
|
|
||||||
uploadPageExplainer = Шаљите датотеке преко безбедне, приватне и шифроване везе која самостално истиче да ваше ствари не би остале на нету заувек.
|
|
||||||
uploadPageLearnMore = Сазнајте више
|
|
||||||
uploadPageDropMessage = Превуците ваше датотеке овде да бисте кренули са отпремањем
|
|
||||||
uploadPageSizeMessage = За бољи рад предлажемо да датотека не буде већа од 1GB
|
|
||||||
uploadPageBrowseButton = Изаберите датотеку на рачунару
|
|
||||||
uploadPageBrowseButton1 = Изаберите датотеку за отпремање
|
|
||||||
uploadPageMultipleFilesAlert = Отпремање фасцикли или више датотека тренутно није подржано.
|
|
||||||
uploadPageBrowseButtonTitle = Отпреми датотеку
|
|
||||||
uploadingPageProgress = Отпремам { $filename } ({ $size })
|
|
||||||
importingFile = Увозим…
|
importingFile = Увозим…
|
||||||
verifyingFile = Потврђујем…
|
|
||||||
encryptingFile = Шифрујем…
|
encryptingFile = Шифрујем…
|
||||||
decryptingFile = Дешифрујем…
|
decryptingFile = Дешифрујем…
|
||||||
notifyUploadDone = Ваше отпремање је завршено.
|
|
||||||
uploadingPageMessage = Након што се ваша датотека отпреми, моћи ћете да подесите опције истека.
|
|
||||||
uploadingPageCancel = Откажи отпремање
|
|
||||||
uploadCancelNotification = Ваше отпремање је отказано.
|
|
||||||
uploadingPageLargeFileMessage = Ово је велика датотека и отпремање може потрајати. Будите стрпљиви!
|
|
||||||
uploadingFileNotification = Обавести ме када се отпремање заврши.
|
|
||||||
uploadSuccessConfirmHeader = Спреман за слање
|
|
||||||
uploadSvgAlt = Отпреми
|
|
||||||
uploadSuccessTimingHeader = Веза ка вашој датотеци ће истећи након једног преузимања или након 24 сата.
|
|
||||||
expireInfo = Веза ка вашој датотеци ће истећи након { $downloadCount } или { $timespan }.
|
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] преузимања
|
[one] преузимања
|
||||||
@@ -38,76 +16,26 @@ timespanHours =
|
|||||||
[few] сата
|
[few] сата
|
||||||
*[other] сати
|
*[other] сати
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = Ископирајте и поделите везу да бисте послали вашу датотеку: { $filename }
|
|
||||||
copyUrlFormButton = Копирај у оставу
|
|
||||||
copiedUrl = Ископирано!
|
copiedUrl = Ископирано!
|
||||||
deleteFileButton = Обриши датотеку
|
|
||||||
sendAnotherFileLink = Пошаљи другу датотеку
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
|
||||||
downloadAltText = Преузми
|
|
||||||
downloadsFileList = Преузимања
|
|
||||||
# Used as header in a column indicating the amount of time left before a
|
|
||||||
# download link expires (e.g. "10h 5m")
|
|
||||||
timeFileList = Време
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
|
||||||
# downloaded
|
|
||||||
downloadFileName = Преузимање датотеке { $filename }
|
|
||||||
downloadFileSize = ({ $size })
|
|
||||||
unlockInputLabel = Унесите лозинку
|
|
||||||
unlockInputPlaceholder = Лозинка
|
unlockInputPlaceholder = Лозинка
|
||||||
unlockButtonLabel = Откључај
|
unlockButtonLabel = Откључај
|
||||||
downloadFileTitle = Преузми шифровану датотеку
|
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
downloadMessage = Ваш пријатељ вам је послао датотеку преко услуге Firefox Send која вам омогућава да делите датотеке преко безбедне, приватне и шифроване везе која самостално истиче да ваше ствари не би остале на нету заувек.
|
|
||||||
# Text and title used on the download link/button (indicates an action).
|
|
||||||
downloadButtonLabel = Преузми
|
downloadButtonLabel = Преузми
|
||||||
downloadNotification = Ваше преузимање је завршено.
|
|
||||||
downloadFinish = Преузимање је завршено.
|
downloadFinish = Преузимање је завршено.
|
||||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
|
||||||
fileSizeProgress = ({ $partialSize } од { $totalSize })
|
fileSizeProgress = ({ $partialSize } од { $totalSize })
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
sendYourFilesLink = Испробајте Firefox Send
|
sendYourFilesLink = Испробајте Firefox Send
|
||||||
downloadingPageProgress = Преузимам датотеку { $filename } ({ $size })
|
|
||||||
downloadingPageMessage = Оставите овај језичак отвореним док не добавимо вашу датотеку и док је не дешифрујемо.
|
|
||||||
errorAltText = Грешка при отпремању
|
|
||||||
errorPageHeader = Нешто је пошло наопако!
|
errorPageHeader = Нешто је пошло наопако!
|
||||||
errorPageMessage = Догодила се грешка приликом отпремања датотеке.
|
|
||||||
errorPageLink = Пошаљи другу датотеку
|
|
||||||
fileTooBig = Та датотека је превелика за отпремање. Треба да буде мања од { $size }.
|
fileTooBig = Та датотека је превелика за отпремање. Треба да буде мања од { $size }.
|
||||||
linkExpiredAlt = Веза је истекла
|
linkExpiredAlt = Веза је истекла
|
||||||
expiredPageHeader = Веза је или истекла, или никада није ни постојала!
|
|
||||||
notSupportedHeader = Ваш прегледач није подржан.
|
notSupportedHeader = Ваш прегледач није подржан.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
|
||||||
notSupportedDetail = Нажалост, овај прегледач не подржава веб технологију која омогућава Firefox Send. Мораћете да пробате са другим прегледачем. Ми предлажемо Firefox!
|
|
||||||
notSupportedLink = Зашто мој прегледач није подржан?
|
notSupportedLink = Зашто мој прегледач није подржан?
|
||||||
notSupportedOutdatedDetail = Нажалост, ово издање Firefox-a не подржава веб технологију која омогућава Firefox Send. Мораћете да ажурирате ваш прегледач.
|
notSupportedOutdatedDetail = Нажалост, ово издање Firefox-a не подржава веб технологију која омогућава Firefox Send. Мораћете да ажурирате ваш прегледач.
|
||||||
updateFirefox = Ажурирај Firefox
|
updateFirefox = Ажурирај Firefox
|
||||||
downloadFirefoxButtonSub = Бесплатно преузимање
|
|
||||||
uploadedFile = Датотека
|
|
||||||
copyFileList = URL за копирање
|
|
||||||
# expiryFileList is used as a column header
|
|
||||||
expiryFileList = Истиче за
|
|
||||||
deleteFileList = Брисање
|
|
||||||
nevermindButton = Занемари
|
|
||||||
legalHeader = Услови и приватност
|
|
||||||
legalNoticeTestPilot = Firefox Send је тренутно Тест Пилот експеримент и подложан је <a>условима коришћења</a> Тест Пилота и <a>обавештењем о приватности</a>. Можете сазнати више о овом експерименту и о његовом сакупљању података <a>овде</a>.
|
|
||||||
legalNoticeMozilla = Коришћење Firefox Send веб сајта подлеже Mozilla-ином <a>обавештењу о приватности на веб сајтовима</a> и <a>условима коришћења веб сајтова</a>.
|
|
||||||
deletePopupText = Обрисати ову датотеку?
|
|
||||||
deletePopupYes = Да
|
|
||||||
deletePopupCancel = Откажи
|
deletePopupCancel = Откажи
|
||||||
deleteButtonHover = Обриши
|
deleteButtonHover = Обриши
|
||||||
copyUrlHover = Ископирај URL
|
|
||||||
footerLinkLegal = Правни подаци
|
footerLinkLegal = Правни подаци
|
||||||
# Test Pilot is a proper name and should not be localized.
|
|
||||||
footerLinkAbout = О Тест Пилоту
|
|
||||||
footerLinkPrivacy = Приватност
|
footerLinkPrivacy = Приватност
|
||||||
footerLinkTerms = Услови
|
|
||||||
footerLinkCookies = Колачићи
|
footerLinkCookies = Колачићи
|
||||||
requirePasswordCheckbox = Захтевај лозинку да би преузео ову датотеку
|
|
||||||
addPasswordButton = Додај лозинку
|
|
||||||
changePasswordButton = Промени
|
|
||||||
passwordTryAgain = Нетачна лозинка. Пробајте поново.
|
passwordTryAgain = Нетачна лозинка. Пробајте поново.
|
||||||
reportIPInfringement = Пријавите IP прекршај
|
|
||||||
javascriptRequired = За Firefox Send је потребан JavaScript
|
javascriptRequired = За Firefox Send је потребан JavaScript
|
||||||
whyJavascript = Зашто је потребан JavaScript за Firefox Send?
|
whyJavascript = Зашто је потребан JavaScript за Firefox Send?
|
||||||
enableJavascript = Омогућите JavaScript и пробајте поново.
|
enableJavascript = Омогућите JavaScript и пробајте поново.
|
||||||
@@ -115,9 +43,114 @@ enableJavascript = Омогућите JavaScript и пробајте понов
|
|||||||
expiresHoursMinutes = { $hours }ч { $minutes }м
|
expiresHoursMinutes = { $hours }ч { $minutes }м
|
||||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }м
|
expiresMinutes = { $minutes }м
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Лозинка је постављена
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Највећа дужина лозинке: { $length }
|
maxPasswordLength = Највећа дужина лозинке: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = Не можемо поставити ову лозинку
|
passwordSetError = Не можемо поставити ову лозинку
|
||||||
|
|
||||||
|
## Send version 2 strings
|
||||||
|
|
||||||
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
|
-send-brand = Firefox Send
|
||||||
|
-send-short-brand = Send
|
||||||
|
-firefox = Firefox
|
||||||
|
-mozilla = Mozilla
|
||||||
|
introTitle = Једноставно и приватно дељење датотека
|
||||||
|
introDescription = { -send-brand } вам дозвољава да делите датотеке које су шифроване с краја на крај преко везе која самостално истиче. Тако да можете приватно делити ваше ствари које неће остати на вебу заувек.
|
||||||
|
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 =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } минут
|
||||||
|
[few] { $num } минута
|
||||||
|
*[other] { $num } минута
|
||||||
|
}
|
||||||
|
timespanDays =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } дан
|
||||||
|
[few] { $num } дана
|
||||||
|
*[other] { $num } дана
|
||||||
|
}
|
||||||
|
timespanWeeks =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } недеља
|
||||||
|
[few] { $num } недеље
|
||||||
|
*[other] { $num } недеља
|
||||||
|
}
|
||||||
|
fileCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } датотека
|
||||||
|
[few] { $num } датотеке
|
||||||
|
*[other] { $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 = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = Укупна величина: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Копирајте везу да бисте поделили вашу датотеку:
|
||||||
|
copyLinkButton = Копирај везу
|
||||||
|
downloadTitle = Преузми датотеке
|
||||||
|
downloadDescription = Ова датотека је подељена преко услуге { -send-brand } која омогућава шифровање с краја на крај преко везе која самостално истиче.
|
||||||
|
trySendDescription = Пробајте { -send-brand } за једноставно и безбедно дељење датотека.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] Можете отпремити само { $count } датотеку истовремено.
|
||||||
|
[few] Можете отпремити само { $count } датотеке истовремено.
|
||||||
|
*[other] Можете отпремити само { $count } датотека истовремено.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] Дозвољена је само { $count } архива.
|
||||||
|
[few] Дозвољене су само { $count } архиве.
|
||||||
|
*[other] Дозвољено је само { $count } архива.
|
||||||
|
}
|
||||||
|
expiredTitle = Ова веза је истекла.
|
||||||
|
notSupportedDescription = { -send-brand } неће радити у овом прегледачу. { -send-short-brand } најбоље ради са последњим издањем прегледача { -firefox } и радиће са тренутним издањима већине других прегледача.
|
||||||
|
downloadFirefox = Преузми { -firefox }
|
||||||
|
legalTitle = Политика приватности услуге { -send-short-brand }
|
||||||
|
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"
|
||||||
|
expiresDaysHoursMinutes = { $days }д { $hours }ч { $minutes }м
|
||||||
|
addFilesButton = Изаберите датотеке за отпремање
|
||||||
|
uploadButton = Отпреми
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = Превуците и пустите датотеке
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = или кликните за слање садржаја великог до { $size }
|
||||||
|
addPassword = Заштитите лозинком
|
||||||
|
emailPlaceholder = Унесите вашу е-адресу
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = Пријавите се да пошаљете садржај до { $size }
|
||||||
|
signInButton = Пријава/регистрација
|
||||||
|
accountBenefitTitle = Направите { -firefox } налог или се пријавите
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = Поделите датотеке велике до { $size }
|
||||||
|
accountBenefitDownloadCount = Поделите датотеке са више особа
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] Остави везе активним највише { $count } дан
|
||||||
|
[few] Остави везе активним највише { $count } дана
|
||||||
|
*[other] Остави везе активним највише { $count } дана
|
||||||
|
}
|
||||||
|
accountBenefitSync = Управљајте подељеним датотекама са било ког уређаја
|
||||||
|
accountBenefitMoz = Сазнајте више о другим { -mozilla }-иним услугама
|
||||||
|
signOut = Одјава
|
||||||
|
okButton = У реду
|
||||||
|
downloadingTitle = Преузимам
|
||||||
|
noStreamsWarning = Овај прегледач можда неће моћи да дешифрује оволико велику датотеку.
|
||||||
|
noStreamsOptionCopy = Копирај везу за отварање у другом прегледачу
|
||||||
|
noStreamsOptionFirefox = Пробајте наш омиљени прегледач
|
||||||
|
noStreamsOptionDownload = Наставите у овом прегледачу
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ passwordSetError = Det här lösenordet kunde inte ställas in
|
|||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
introTitle = Enkel, privat fildelning
|
introTitle = Enkel, privat fildelning
|
||||||
introDescription = { -send-brand } låter dig dela filer med end-to-end-kryptering och en länk som automatiskt upphör. Så att du kan behålla det du delar privat och se till att dina saker inte stannar online för alltid.
|
introDescription = { -send-brand } låter dig dela filer med end-to-end-kryptering och en länk som automatiskt upphör. Så att du kan behålla det du delar privat och se till att dina saker inte stannar online för alltid.
|
||||||
notifyUploadEncryptDone = Din fil är krypterad och redo att skicka
|
notifyUploadEncryptDone = Din fil är krypterad och redo att skickas
|
||||||
# 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 = Förfaller efter { $downloadCount } eller { $timespan }
|
archiveExpiryInfo = Förfaller efter { $downloadCount } eller { $timespan }
|
||||||
timespanMinutes =
|
timespanMinutes =
|
||||||
|
|||||||
147
public/locales/zgh/send.ftl
Normal file
147
public/locales/zgh/send.ftl
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
# Firefox Send is a brand name and should not be localized.
|
||||||
|
title = ⴼⴰⵢⵔⴼⵓⴽⵙ ⵙⵉⵏⴷ
|
||||||
|
siteFeedback = ⵜⴰⵙⴷⵎⵉⵔⵜ
|
||||||
|
importingFile = ⴰⵙⴽⵛⵎ...
|
||||||
|
encryptingFile = ⴰⵙⵙⵏⵜⵍ...
|
||||||
|
decryptingFile = ⵜⵓⴽⴽⵙⴰ ⵏ ⵓⵙⵙⵏⵜⵍ...
|
||||||
|
downloadCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } ⵜⴰⴳⴰⵎⵜ
|
||||||
|
*[other] { $num } ⵜⴰⴳⴰⵎⵉⵏ
|
||||||
|
}
|
||||||
|
timespanHours =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } ⵜⵙⵔⴰⴳⵜ
|
||||||
|
*[other] { $num } ⵜⵙⵔⴰⴳⵉⵏ
|
||||||
|
}
|
||||||
|
copiedUrl = ⵉⵏⵖⵍ!
|
||||||
|
unlockInputPlaceholder = ⵜⴰⴳⵓⵔⵉ ⵏ ⵓⵣⵔⴰⵢ
|
||||||
|
unlockButtonLabel = ⴽⴽⵙ ⴰⵔⴳⴰⵍ
|
||||||
|
downloadButtonLabel = ⴰⴳⵎ
|
||||||
|
downloadFinish = ⵉⵎⴷⴰ ⵡⴰⴳⴰⵎ
|
||||||
|
fileSizeProgress = ({ $partialSize } ⵙⴳ { $totalSize })
|
||||||
|
sendYourFilesLink = ⴰⵔⵎ ⴼⴰⵢⵔⴼⵓⴽⵙ ⵙⵉⵏⴷ
|
||||||
|
errorPageHeader = ⵜⵙⴰⵔ ⴽⵔⴰ ⵏ ⵜⵣⴳⴰⵍⵜ!
|
||||||
|
fileTooBig = ⵉⵎⵇⵇⵓⵔ ⴱⴰⵀⵔⴰ ⵓⴼⴰⵢⵍⵓ ⴰ ⵖⴼ ⵓⵙⵙⴽⵜⵔ. ⵉⵅⵚⵚⴰ ⵜ ⴰⴷ ⵢⵉⵍⵉ ⴷⴷⴰⵡ ⵏ { $size }
|
||||||
|
linkExpiredAlt = ⵉⵎⵎⵓⵜ ⵓⵙⵖⵏ
|
||||||
|
notSupportedHeader = ⵓⵔ ⵉⵜⵜⵡⴰⵏⵏⴰⵍ ⵓⵎⵙⵙⴰⵔⴰ ⵏⵏⵓⵏ.
|
||||||
|
notSupportedLink = ⵎⴰⵖⴼ ⵓⵔ ⵉⵜⵜⵡⴰⵏⵏⴰⵍ ⵓⵎⵙⵙⴰⵔⴰ ⵉⵏⵓ?
|
||||||
|
notSupportedOutdatedDetail = ⵙ ⵜⵎⴳⵕⵥⴰ, ⵜⴰⵍⵇⵇⵎⵜ ⴰ ⵏ ⴼⴰⵢⵔⴼⵓⴽⵙ ⵓⵔ ⴷⴰ ⵜⴻⵜⵜⵏⴰⵍ ⵜⴰⵜⵉⴽⵏⵓⵍⵓⵊⵉⵜ ⵏ ⵓⵡⵉⴱ ⵏⵏⴰ ⵙ ⵉⵙⵡⵓⵔⵓⵢ ⴼⴰⵢⵔⴼⵓⴽⵙ ⵙⵉⵏⴷ. ⵔⴰⴷ ⵜⴰⵙⵔⵎ ⴰⴷ ⵜⵙⴷⵖⵉⵎ ⴰⵎⵙⵙⴰⵔⴰ ⵏⵏⵓⵏ.
|
||||||
|
updateFirefox = ⵙⴷⵖⵉ ⴼⴰⵢⵔⴼⵓⴽⵙ
|
||||||
|
deletePopupCancel = ⵙⵔ
|
||||||
|
deleteButtonHover = ⴽⴽⵙ
|
||||||
|
footerLinkLegal = ⵓⵙⴹⵉⴼ
|
||||||
|
footerLinkPrivacy = ⵜⵉⵏⵏⵓⵜⵍⴰ
|
||||||
|
footerLinkCookies = ⵉⴽⵓⴽⵉⵜⵏ
|
||||||
|
passwordTryAgain = ⵜⴰⴳⵓⵔⵉ ⵏ ⵓⵣⵔⴰⵢ ⵓⵔ ⵢⵓⵖⴷⵏ. ⴰⵔⵎ ⴷⴰⵖ.
|
||||||
|
javascriptRequired = ⴷⴰ ⵉⵜⵜⴰⵙⵔ ⴼⴰⵢⵔⴼⵓⴽⵙ ⵙⵉⵏⴷ ⵊⴰⴼⴰⵙⴽⵔⵉⴱⵜ
|
||||||
|
whyJavascript = ⵎⴰⵖⴼ ⴷⴰ ⵉⵜⵜⴰⵙⵔ ⴼⴰⵢⵔⴼⵓⴽⵙ ⵙⵉⵏⴷ ⵊⴰⴼⴰⵙⴽⵔⵉⴱⵜ?
|
||||||
|
enableJavascript = ⵎⴽ ⵜⵓⴼⴰⵎ, ⵙⵏⵓⵛⵛⴳⴰⵜ ⵊⴰⴼⴰⵙⴽⵔⵉⴱⵜ, ⵜⴰⵔⵎⵎ ⴷⴰⵖ.
|
||||||
|
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||||
|
expiresHoursMinutes = { $hours }ⵙⵔⴳ { $minutes }ⵙⴷ
|
||||||
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
|
expiresMinutes = { $minutes }ⵙⴷ
|
||||||
|
# A short status message shown when the user enters a long password
|
||||||
|
maxPasswordLength = ⵜⵉⵖⵣⵉ ⵜⴰⵎⵓⵣⵣⵓⵔⵜ ⵏ ⵜⴳⵓⵔⵉ ⵏ ⵓⵣⵔⴰⵢ: { $length }
|
||||||
|
# A short status message shown when there was an error setting the password
|
||||||
|
passwordSetError = ⵓⵔ ⵜⵣⵎⵉⵔ ⵜⴳⵓⵔⵉ ⴰ ⵏ ⵓⵣⵔⴰⵢ ⴰⴷ ⵜⴻⵜⵜⵓⵙⵖⵍ
|
||||||
|
|
||||||
|
## Send version 2 strings
|
||||||
|
|
||||||
|
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||||
|
-send-brand = ⴼⴰⵢⵔⴼⵓⴽⵙ ⵙⵉⵏⴷ
|
||||||
|
-send-short-brand = ⵙⵉⵏⴷ
|
||||||
|
-firefox = ⴼⴰⵢⵔⴼⵓⴽⵙ
|
||||||
|
-mozilla = ⵎⵓⵣⵉⵍⴰ
|
||||||
|
introTitle = ⴰⴱⵟⵟⵓ ⴰⴼⵔⴰⵔ ⴷ ⵡⵓⵙⵍⵉⴳ ⵏ ⵉⴼⵓⵢⵍⴰ
|
||||||
|
introDescription = ⴷⴰ ⴽⵯⵏ ⵉⵜⵜⴰⵊⵊⴰ { -send-brand } ⴰⴷ ⵜⴱⴹⵓⵎ ⵉⴼⵓⵢⵍⴰ ⵙ ⵓⵙⵙⵏⵜⵍ ⵙⴳ ⵜⴰⵎⴰ ⴰⵔ ⵜⴰⵎⴰ ⴷ ⵢⴰⵏ ⵓⵙⵖⵏ ⵏⵏⴰ ⵉⵜⵜⵎⵎⵜⴰⵜⵏ ⵙ ⵓⵡⵔⵎⴰⵏ. ⵙ ⵓⵢⴰ, ⵜⵣⵎⵔⵎ ⴰⴷ ⵜⴰⵊⵊⵎ ⴰⵢⵏⵏⴰ ⵜⴱⵟⵟⵓⵎ ⴷ ⵓⵙⵍⵉⴳ, ⵜⵙⵙⵉⵖⵥⵉⵏⵎ ⵎⴰⵙ ⵓⵔ ⵔⴰⴷ ⴰⴱⴷⴰ ⵉⵇⵇⵉⵎ ⵡⴰⵏⵏⴰⴷ ⵏⵏⵓⵏ ⴳ ⵉⴼⵉⵍⵉ.
|
||||||
|
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 =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } ⵜⵓⵙⴷⵉⴷⵜ
|
||||||
|
*[other] { $num } ⵜⵓⵙⴷⵉⴷⵉⵏ
|
||||||
|
}
|
||||||
|
timespanDays =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } ⵡⴰⵙⵙ
|
||||||
|
*[other] { $num } ⵡⵓⵙⵙⴰⵏ
|
||||||
|
}
|
||||||
|
timespanWeeks =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } ⵉⵎⴰⵍⴰⵙⵙ
|
||||||
|
*[other] { $num } ⵉⵎⴰⵍⴰⵙⵙⵏ
|
||||||
|
}
|
||||||
|
fileCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] { $num } ⵓⴼⴰⵢⵍⵓ
|
||||||
|
*[other] { $num } ⵉⴼⵓⵢⵍⴰ
|
||||||
|
}
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = ⵜ
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = ⴽⵜ
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = ⵎⵜ
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = ⵊⵜ
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $num }{ $units }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = ⵜⵉⴷⴷⵉ ⵉⵎⵎⵓⵜⵜⵔⵏ: { $size }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = ⵙⵙⵏⵖⵍⴰⵜ ⴰⵙⵖⵏ ⴰⴼⴰⴷ ⴰⴷ ⵜⴱⴹⵓⵎ ⴰⴼⴰⵢⵍⵓ ⵏⵏⵓⵏ:
|
||||||
|
copyLinkButton = ⵙⵙⵏⵖⵍ ⴰⵙⵖⵏ
|
||||||
|
downloadTitle = ⴰⴳⵎ ⵉⴼⵓⵢⵍⴰ
|
||||||
|
downloadDescription = ⵉⵜⵜⵓⴱⴹⴰ ⵓⴼⴰⵢⵍⵓ ⴰ ⵙⴳ { -send-brand } ⵙ ⵓⵙⵙⵏⵜⵍ ⵙⴳ ⵜⴰⵎⴰ ⴰⵔ ⵜⴰⵎⴰ ⴷ ⵢⴰⵏ ⵓⵙⵖⵏ ⵏⵏⴰ ⵉⵜⵜⵎⵎⵜⴰⵜⵏ ⵙ ⵓⵡⵔⵎⴰⵏ.
|
||||||
|
trySendDescription = ⴰⵔⵎ { -send-brand } ⵉ ⵓⴱⵟⵟⵓ ⴰⴼⵔⴰⵔ ⴷ ⵡⵓⴼⵔⵉⴳ.
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyFiles =
|
||||||
|
{ $count ->
|
||||||
|
[one] ⵖⴰⵙ { $count } ⵓⴼⴰⵢⵍⵓ ⴰⵢ ⵉⵣⵎⵔⵏ ⴰⴷ ⵉⴽⵜⵔ ⴳ ⵢⴰⵜ ⵜⵉⴽⴽⵍⵜ.
|
||||||
|
*[other] ⵖⴰⵙ { $count } ⵉⴼⵓⵢⵍⴰ ⴰⵢ ⵉⵣⵎⵔⵏ ⴰⴷ ⴽⵜⵔⵏ ⴳ ⵢⴰⵜ ⵜⵉⴽⴽⵍⵜ.
|
||||||
|
}
|
||||||
|
# count will always be > 10
|
||||||
|
tooManyArchives =
|
||||||
|
{ $count ->
|
||||||
|
[one] ⵖⴰⵙ { $count } ⵜⵎⵃⴹⵉⵜ ⴰⵢ ⵉⵔⵔⴳⵏ.
|
||||||
|
*[other] ⵖⴰⵙ { $count } ⵜⵎⵃⴹⴰⵢ ⴰⵢ ⵉⵔⵔⴳⵏ.
|
||||||
|
}
|
||||||
|
expiredTitle = ⵉⵎⵎⵓⵜ ⵓⵙⵖⵏ ⴰ.
|
||||||
|
notSupportedDescription = ⵓⵔ ⵔⴰⴷ ⵉⵙⵡⵓⵔⵉ { -send-brand } ⵙ ⵓⵎⵙⵙⴰⵔⴰ ⴰ. ⴷⴰ ⵉⵙⵡⵓⵔⵓⵢ { -send-short-brand } ⵎⵍⵉⵃ ⵙ ⵜⵍⵇⵇⵎⵜ ⵜⴰⵎⴳⴳⴰⵔⵓⵜ ⵏ { -firefox }, ⴷ ⵔⴰⴷ ⵉⵙⵡⵓⵔⵉ ⵙ ⵜⵍⵇⵇⵎⵜ ⵜⴰⵎⵉⵔⴰⵏⵜ ⵏ ⵓⵎⴰⵜⴰ ⵏ ⵉⵎⵙⵙⴰⵔⴰⵜⵏ.
|
||||||
|
downloadFirefox = ⴰⴳⵎ { -firefox }
|
||||||
|
legalTitle = ⵜⵓⵙⵎⵉⵔⵜ ⵏ ⵜⵉⵏⵏⵓⵜⵍⴰ ⵏ { -send-short-brand }
|
||||||
|
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"
|
||||||
|
expiresDaysHoursMinutes = { $days }ⵙ { $hours }ⵙⵔⴳ { $minutes }ⵙⴷ
|
||||||
|
addFilesButton = ⵙⵜⵢ ⵉⴼⵓⵢⵍⴰ ⵉ ⵓⵙⵙⴽⵜⵔ
|
||||||
|
uploadButton = ⵙⵙⴽⵜⵔ
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = ⵙⵓⵛⵛⴹⴰⵜ, ⵜⵙⵔⵙⵎ ⵉⴼⵓⵢⵍⴰ
|
||||||
|
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
orClickWithSize = ⵏⵉⵖ ⵜⴽⵍⵉⴽⵉⵎ ⴰⴼⴰⴷ ⴰⴷ ⵜⴰⵣⵏⵎ ⴰⵔ { $size }
|
||||||
|
addPassword = ⴰⵔⵢ ⵙ ⵜⴳⵓⵔⵉ ⵏ ⵓⵣⵔⴰⵢ
|
||||||
|
emailPlaceholder = ⵙⵙⴽⵛⵎⴰⵜ ⵉⵎⴰⵢⵍ ⵏⵏⵓⵏ
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
signInSizeBump = ⴽⵛⵎ ⴰⴼⴰⴷ ⴰⴷ ⵜⴰⵣⵏⴷ ⴰⵔ { $size }
|
||||||
|
signInButton = ⴽⵛⵎ/ⵣⵎⵎⴻⵎ
|
||||||
|
accountBenefitTitle = ⵙⵏⴼⵍⵓⵍ ⴰⵎⵉⴹⴰⵏ ⵏ { -firefox } ⵏⵉⵖ ⵜⵣⵎⵎⴻⵎⴷ
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
accountBenefitLargeFiles = ⴱⴹⵓ ⵉⴼⵓⵢⵍⴰ ⴰⵔ { $size }
|
||||||
|
accountBenefitDownloadCount = ⴱⴹⵓ ⵉⴼⵓⵢⵍⴰ ⴰⴽⴷ ⵡⵓⴳⴳⴰⵔ ⵏ ⵎⴷⴷⵏ
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
[one] ⴰⵊⵊⴰⵜ ⵉⵙⵖⴰⵏ ⴰⴷ ⵜⵜⵏⵓⵛⵛⵓⴳⵏ ⴰⵔ { $count } ⵡⴰⵙⵙ
|
||||||
|
*[other] ⴰⵊⵊⴰⵜ ⵉⵙⵖⴰⵏ ⴰⴷ ⵜⵜⵏⵓⵛⵛⵓⴳⵏ ⴰⵔ { $count } ⵡⵓⵙⵙⴰⵏ
|
||||||
|
}
|
||||||
|
accountBenefitSync = ⵙⵡⵓⴷⴷⵡⴰⵜ ⵉⴼⵓⵢⵍⴰ ⵜⵜⵓⴱⴹⴰⵏⵉⵏ ⵙⴳ ⴽⵓ ⴰⵍⵍⴰⵍ
|
||||||
|
accountBenefitMoz = ⵍⵎⴷ ⵖⴼ ⵜⵏⵓⴼⴰ ⵢⴰⴹⵏⵉⵏ ⵏ { -mozilla }
|
||||||
|
signOut = ⴼⴼⵖ
|
||||||
|
okButton = ⵡⴰⵅⵅⴰ
|
||||||
|
downloadingTitle = ⴰⴳⴰⵎ
|
||||||
|
noStreamsWarning = ⵉⵣⵎⵔ ⵓⵎⵙⵙⴰⵔⴰ ⴰ ⴰⴷ ⵓⵔ ⵉⵖⴰⵢ ⴰⴷ ⵉⴽⴽⵙ ⴰⵙⵙⵏⵜⵍ ⵉ ⵢⴰⵏ ⵓⴼⴰⵢⵍⵓ ⵉⵎⵇⵇⵓⵔⵏ ⵙ ⵡⴰⵏⵛⵜ ⴰ.
|
||||||
|
noStreamsOptionCopy = ⵙⵙⵏⵖⵍⴰⵜ ⴰⵙⵖⵏ ⴰⴼⴰⴷ ⴰⴷ ⵜ ⵜⵕⵥⵎⵎ ⴳ ⴽⵔⴰ ⵏ ⵓⵎⵙⵙⴰⵔⴰ ⵢⴰⴹⵏ
|
||||||
|
noStreamsOptionFirefox = ⴰⵔⵎⴰⵜ ⴰⵎⵙⵙⴰⵔⴰ ⵏⵏⵖ ⴰⵎⵓⴼⴰⵢ
|
||||||
|
noStreamsOptionDownload = ⵙⵎⴷ ⵙ ⵓⵎⵙⵙⴰⵔⴰ ⴰ
|
||||||
@@ -7,7 +7,7 @@ const expressWs = require('express-ws');
|
|||||||
const morgan = require('morgan');
|
const morgan = require('morgan');
|
||||||
const config = require('../config');
|
const config = require('../config');
|
||||||
|
|
||||||
const ID_REGEX = '([0-9a-fA-F]{10})';
|
const ID_REGEX = '([0-9a-fA-F]{10, 16})';
|
||||||
|
|
||||||
module.exports = function(app, devServer) {
|
module.exports = function(app, devServer) {
|
||||||
const wsapp = express();
|
const wsapp = express();
|
||||||
|
|||||||
@@ -9,10 +9,7 @@ module.exports = function(state, body = '') {
|
|||||||
<head>
|
<head>
|
||||||
<title>${state.title}</title>
|
<title>${state.title}</title>
|
||||||
<base href="/" />
|
<base href="/" />
|
||||||
<meta
|
<meta name="robots" content="${state.robots},noarchive" />
|
||||||
name="robots"
|
|
||||||
content="${state.route === 'download/:id' ? 'none' : 'all'},noarchive"
|
|
||||||
/>
|
|
||||||
<meta name="google" content="nositelinkssearchbox" />
|
<meta name="google" content="nositelinkssearchbox" />
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
const assert = require('assert');
|
||||||
const crypto = require('crypto');
|
const crypto = require('crypto');
|
||||||
const storage = require('../storage');
|
const storage = require('../storage');
|
||||||
const fxa = require('../fxa');
|
const fxa = require('../fxa');
|
||||||
@@ -19,7 +20,7 @@ module.exports = {
|
|||||||
);
|
);
|
||||||
hmac.update(Buffer.from(meta.nonce, 'base64'));
|
hmac.update(Buffer.from(meta.nonce, 'base64'));
|
||||||
const verifyHash = hmac.digest();
|
const verifyHash = hmac.digest();
|
||||||
if (verifyHash.equals(Buffer.from(auth, 'base64'))) {
|
if (crypto.timingSafeEqual(verifyHash, Buffer.from(auth, 'base64'))) {
|
||||||
req.nonce = crypto.randomBytes(16).toString('base64');
|
req.nonce = crypto.randomBytes(16).toString('base64');
|
||||||
storage.setField(id, 'nonce', req.nonce);
|
storage.setField(id, 'nonce', req.nonce);
|
||||||
res.set('WWW-Authenticate', `send-v1 ${req.nonce}`);
|
res.set('WWW-Authenticate', `send-v1 ${req.nonce}`);
|
||||||
@@ -48,7 +49,11 @@ module.exports = {
|
|||||||
if (!req.meta) {
|
if (!req.meta) {
|
||||||
return res.sendStatus(404);
|
return res.sendStatus(404);
|
||||||
}
|
}
|
||||||
req.authorized = req.meta.owner === ownerToken;
|
const metaOwner = Buffer.from(req.meta.owner, 'utf8');
|
||||||
|
const owner = Buffer.from(ownerToken, 'utf8');
|
||||||
|
assert(metaOwner.length > 0);
|
||||||
|
assert(metaOwner.length === owner.length);
|
||||||
|
req.authorized = crypto.timingSafeEqual(metaOwner, owner);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
req.authorized = false;
|
req.authorized = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,9 +11,7 @@ const langData = require('cldr-core/supplemental/likelySubtags.json');
|
|||||||
const acceptLanguages = /(([a-zA-Z]+(-[a-zA-Z0-9]+){0,2})|\*)(;q=[0-1](\.[0-9]+)?)?/g;
|
const acceptLanguages = /(([a-zA-Z]+(-[a-zA-Z0-9]+){0,2})|\*)(;q=[0-1](\.[0-9]+)?)?/g;
|
||||||
|
|
||||||
function allLangs() {
|
function allLangs() {
|
||||||
return fs.readdirSync(
|
return fs.readdirSync(path.join(__dirname, '..', '..', 'public', 'locales'));
|
||||||
path.join(__dirname, '..', '..', 'dist', 'public', 'locales')
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const languages = config.l10n_dev ? allLangs() : availableLanguages;
|
const languages = config.l10n_dev ? allLangs() : availableLanguages;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ const filelist = require('./filelist');
|
|||||||
const clientConstants = require('../clientConstants');
|
const clientConstants = require('../clientConstants');
|
||||||
|
|
||||||
const IS_DEV = config.env === 'development';
|
const IS_DEV = config.env === 'development';
|
||||||
const ID_REGEX = '([0-9a-fA-F]{10})';
|
const ID_REGEX = '([0-9a-fA-F]{10,16})';
|
||||||
|
|
||||||
module.exports = function(app) {
|
module.exports = function(app) {
|
||||||
app.set('trust proxy', true);
|
app.set('trust proxy', true);
|
||||||
@@ -48,7 +48,8 @@ module.exports = function(app) {
|
|||||||
imgSrc: [
|
imgSrc: [
|
||||||
"'self'",
|
"'self'",
|
||||||
'https://*.dev.lcip.org',
|
'https://*.dev.lcip.org',
|
||||||
'https://firefoxusercontent.com'
|
'https://firefoxusercontent.com',
|
||||||
|
'https://secure.gravatar.com'
|
||||||
],
|
],
|
||||||
scriptSrc: [
|
scriptSrc: [
|
||||||
"'self'",
|
"'self'",
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ const { encryptedSize } = require('../../app/utils');
|
|||||||
const log = mozlog('send.upload');
|
const log = mozlog('send.upload');
|
||||||
|
|
||||||
module.exports = async function(req, res) {
|
module.exports = async function(req, res) {
|
||||||
const newId = crypto.randomBytes(5).toString('hex');
|
const newId = crypto.randomBytes(8).toString('hex');
|
||||||
const metadata = req.header('X-File-Metadata');
|
const metadata = req.header('X-File-Metadata');
|
||||||
const auth = req.header('Authorization');
|
const auth = req.header('Authorization');
|
||||||
if (!metadata || !auth) {
|
if (!metadata || !auth) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ module.exports = function(ws, req) {
|
|||||||
|
|
||||||
ws.once('message', async function(message) {
|
ws.once('message', async function(message) {
|
||||||
try {
|
try {
|
||||||
const newId = crypto.randomBytes(5).toString('hex');
|
const newId = crypto.randomBytes(8).toString('hex');
|
||||||
const owner = crypto.randomBytes(10).toString('hex');
|
const owner = crypto.randomBytes(10).toString('hex');
|
||||||
|
|
||||||
const fileInfo = JSON.parse(message);
|
const fileInfo = JSON.parse(message);
|
||||||
|
|||||||
@@ -7,6 +7,10 @@ const { getFxaConfig } = require('./fxa');
|
|||||||
module.exports = async function(req) {
|
module.exports = async function(req) {
|
||||||
const locale = req.language || 'en-US';
|
const locale = req.language || 'en-US';
|
||||||
let authConfig = null;
|
let authConfig = null;
|
||||||
|
let robots = 'none';
|
||||||
|
if (req.route && req.route.path === '/') {
|
||||||
|
robots = 'all';
|
||||||
|
}
|
||||||
if (config.fxa_client_id) {
|
if (config.fxa_client_id) {
|
||||||
try {
|
try {
|
||||||
authConfig = await getFxaConfig();
|
authConfig = await getFxaConfig();
|
||||||
@@ -33,7 +37,7 @@ module.exports = async function(req) {
|
|||||||
fileInfo: {},
|
fileInfo: {},
|
||||||
cspNonce: req.cspNonce,
|
cspNonce: req.cspNonce,
|
||||||
user: { avatar: assets.get('user.svg'), loggedIn: false },
|
user: { avatar: assets.get('user.svg'), loggedIn: false },
|
||||||
route: req.route.path,
|
robots,
|
||||||
authConfig,
|
authConfig,
|
||||||
layout
|
layout
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ describe('Owner Middleware', function() {
|
|||||||
const next = sinon.stub();
|
const next = sinon.stub();
|
||||||
storage.metadata.returns(Promise.resolve(null));
|
storage.metadata.returns(Promise.resolve(null));
|
||||||
const res = response();
|
const res = response();
|
||||||
await ownerMiddleware(request('x', 'y'), res);
|
await ownerMiddleware(request('a', 'y'), res, next);
|
||||||
sinon.assert.notCalled(next);
|
sinon.assert.notCalled(next);
|
||||||
sinon.assert.calledWith(res.sendStatus, 404);
|
sinon.assert.calledWith(res.sendStatus, 404);
|
||||||
});
|
});
|
||||||
@@ -42,7 +42,7 @@ describe('Owner Middleware', function() {
|
|||||||
const meta = { owner: 'y' };
|
const meta = { owner: 'y' };
|
||||||
storage.metadata.returns(Promise.resolve(meta));
|
storage.metadata.returns(Promise.resolve(meta));
|
||||||
const res = response();
|
const res = response();
|
||||||
await ownerMiddleware(request('x', null), res);
|
await ownerMiddleware(request('b', null), res, next);
|
||||||
sinon.assert.notCalled(next);
|
sinon.assert.notCalled(next);
|
||||||
sinon.assert.calledWith(res.sendStatus, 401);
|
sinon.assert.calledWith(res.sendStatus, 401);
|
||||||
});
|
});
|
||||||
@@ -52,7 +52,7 @@ describe('Owner Middleware', function() {
|
|||||||
const meta = { owner: 'y' };
|
const meta = { owner: 'y' };
|
||||||
storage.metadata.returns(Promise.resolve(meta));
|
storage.metadata.returns(Promise.resolve(meta));
|
||||||
const res = response();
|
const res = response();
|
||||||
await ownerMiddleware(request('x', 'z'), res);
|
await ownerMiddleware(request('c', 'z'), res, next);
|
||||||
sinon.assert.notCalled(next);
|
sinon.assert.notCalled(next);
|
||||||
sinon.assert.calledWith(res.sendStatus, 401);
|
sinon.assert.calledWith(res.sendStatus, 401);
|
||||||
});
|
});
|
||||||
@@ -61,7 +61,7 @@ describe('Owner Middleware', function() {
|
|||||||
const next = sinon.stub();
|
const next = sinon.stub();
|
||||||
storage.metadata.returns(Promise.reject(new Error()));
|
storage.metadata.returns(Promise.reject(new Error()));
|
||||||
const res = response();
|
const res = response();
|
||||||
await ownerMiddleware(request('x', 'y'), res);
|
await ownerMiddleware(request('d', 'y'), res, next);
|
||||||
sinon.assert.notCalled(next);
|
sinon.assert.notCalled(next);
|
||||||
sinon.assert.calledWith(res.sendStatus, 401);
|
sinon.assert.calledWith(res.sendStatus, 401);
|
||||||
});
|
});
|
||||||
@@ -70,7 +70,7 @@ describe('Owner Middleware', function() {
|
|||||||
const next = sinon.stub();
|
const next = sinon.stub();
|
||||||
const meta = { owner: 'y' };
|
const meta = { owner: 'y' };
|
||||||
storage.metadata.returns(Promise.resolve(meta));
|
storage.metadata.returns(Promise.resolve(meta));
|
||||||
const req = request('x', 'y');
|
const req = request('e', 'y');
|
||||||
const res = response();
|
const res = response();
|
||||||
await ownerMiddleware(req, res, next);
|
await ownerMiddleware(req, res, next);
|
||||||
assert.equal(req.meta, meta);
|
assert.equal(req.meta, meta);
|
||||||
|
|||||||
@@ -57,4 +57,29 @@ describe('Firefox Send', function() {
|
|||||||
.includes('Expires after 1 download')
|
.includes('Expires after 1 download')
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should ensure that the downloaded file size matches the uploaded file size', function() {
|
||||||
|
browser.chooseFile(
|
||||||
|
homePage.uploadInput,
|
||||||
|
`${testFilesPath}/${testFiles[0]}`
|
||||||
|
);
|
||||||
|
// get the file size for upload
|
||||||
|
const uploadSize = fs.statSync(`${testFilesPath}/${testFiles[0]}`).size;
|
||||||
|
|
||||||
|
browser.waitForExist(homePage.uploadButton);
|
||||||
|
browser.click(homePage.uploadButton);
|
||||||
|
|
||||||
|
browser.waitForExist(homePage.shareUrl);
|
||||||
|
const downloadPage = new DownloadPage(browser.getValue(homePage.shareUrl));
|
||||||
|
downloadPage.open();
|
||||||
|
downloadPage.download();
|
||||||
|
browser.waitForExist(downloadPage.downloadComplete);
|
||||||
|
|
||||||
|
// get the file size for download
|
||||||
|
const downloadFile = path.join(downloadDir, `${testFiles[0]}`);
|
||||||
|
const downloadSize = fs.statSync(downloadFile).size;
|
||||||
|
|
||||||
|
// check if upload and download file sizes are equal
|
||||||
|
assert.equal(uploadSize, downloadSize);
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -12,7 +12,8 @@ const webJsOptions = {
|
|||||||
[
|
[
|
||||||
'@babel/preset-env',
|
'@babel/preset-env',
|
||||||
{
|
{
|
||||||
useBuiltIns: 'entry'
|
useBuiltIns: 'entry',
|
||||||
|
corejs: 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
],
|
],
|
||||||
@@ -40,7 +41,7 @@ const serviceWorker = {
|
|||||||
test: /\.(png|jpg)$/,
|
test: /\.(png|jpg)$/,
|
||||||
loader: 'file-loader',
|
loader: 'file-loader',
|
||||||
options: {
|
options: {
|
||||||
name: '[name].[hash:8].[ext]'
|
name: '[name].[contenthash:8].[ext]'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -49,7 +50,7 @@ const serviceWorker = {
|
|||||||
{
|
{
|
||||||
loader: 'file-loader',
|
loader: 'file-loader',
|
||||||
options: {
|
options: {
|
||||||
name: '[name].[hash:8].[ext]'
|
name: '[name].[contenthash:8].[ext]'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -82,7 +83,8 @@ const web = {
|
|||||||
ios: ['./ios/ios.js']
|
ios: ['./ios/ios.js']
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
filename: '[name].[hash:8].js',
|
chunkFilename: '[name].[contenthash:8].js',
|
||||||
|
filename: '[name].[contenthash:8].js',
|
||||||
path: path.resolve(__dirname, 'dist')
|
path: path.resolve(__dirname, 'dist')
|
||||||
},
|
},
|
||||||
module: {
|
module: {
|
||||||
@@ -124,7 +126,7 @@ const web = {
|
|||||||
test: /\.(png|jpg)$/,
|
test: /\.(png|jpg)$/,
|
||||||
loader: 'file-loader',
|
loader: 'file-loader',
|
||||||
options: {
|
options: {
|
||||||
name: '[name].[hash:8].[ext]'
|
name: '[name].[contenthash:8].[ext]'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -133,7 +135,7 @@ const web = {
|
|||||||
{
|
{
|
||||||
loader: 'file-loader',
|
loader: 'file-loader',
|
||||||
options: {
|
options: {
|
||||||
name: '[name].[hash:8].[ext]'
|
name: '[name].[contenthash:8].[ext]'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -189,7 +191,7 @@ const web = {
|
|||||||
new webpack.EnvironmentPlugin(['NODE_ENV']),
|
new webpack.EnvironmentPlugin(['NODE_ENV']),
|
||||||
new webpack.IgnorePlugin(/\.\.\/dist/), // used in common/*.js
|
new webpack.IgnorePlugin(/\.\.\/dist/), // used in common/*.js
|
||||||
new ExtractTextPlugin({
|
new ExtractTextPlugin({
|
||||||
filename: '[name].[hash:8].css'
|
filename: '[name].[md5:contenthash:8].css'
|
||||||
}),
|
}),
|
||||||
new VersionPlugin(), // used for the /__version__ route
|
new VersionPlugin(), // used for the /__version__ route
|
||||||
new AndroidIndexPlugin(),
|
new AndroidIndexPlugin(),
|
||||||
|
|||||||
Reference in New Issue
Block a user