mirror of
https://gitlab.com/timvisee/send.git
synced 2025-12-06 14:10:53 +03:00
Compare commits
209 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f5116cee29 | ||
|
|
72ab5bdbf3 | ||
|
|
94f0b928ae | ||
|
|
5e14a0b45a | ||
|
|
84a382af77 | ||
|
|
8680dc6b3c | ||
|
|
cf787eef9f | ||
|
|
a5dffdba14 | ||
|
|
2dcc3730d9 | ||
|
|
3fb3f6f77f | ||
|
|
0a4a9f674d | ||
|
|
7e2e171f83 | ||
|
|
a64bb4ac8b | ||
|
|
acab58ca1e | ||
|
|
10ed88fa40 | ||
|
|
9b2a7dfcd7 | ||
|
|
517f51f4f0 | ||
|
|
73735010ae | ||
|
|
72497b77b2 | ||
|
|
7c4a00ecd1 | ||
|
|
d96cb1aec4 | ||
|
|
fc99ed584f | ||
|
|
da1ffe581b | ||
|
|
6cbbbab691 | ||
|
|
b91bd2b859 | ||
|
|
14ae124ca8 | ||
|
|
3bd087a66d | ||
|
|
57e9fbcd26 | ||
|
|
bd42445a98 | ||
|
|
0e1027544c | ||
|
|
c7532f3f4a | ||
|
|
97e861f050 | ||
|
|
9f3adbf6ad | ||
|
|
7b4c42a56f | ||
|
|
0f763ca4ec | ||
|
|
97164a4b08 | ||
|
|
ee8baff557 | ||
|
|
637a6d86fb | ||
|
|
f8f200cbcd | ||
|
|
0e4b9f425f | ||
|
|
eb4a2c9f02 | ||
|
|
55f3abaa1b | ||
|
|
bb1ee80c34 | ||
|
|
f9edf196a2 | ||
|
|
9bebab3f66 | ||
|
|
e9bf6e235b | ||
|
|
88a3dc94d5 | ||
|
|
d7143ab63a | ||
|
|
b340969cc1 | ||
|
|
ce0bf26b9e | ||
|
|
193f43ac9d | ||
|
|
e376f978a2 | ||
|
|
bd93fb66a5 | ||
|
|
fc79233ade | ||
|
|
8263a9eaa9 | ||
|
|
5d02f47e41 | ||
|
|
23ecb632eb | ||
|
|
b82177dc44 | ||
|
|
51296d5489 | ||
|
|
f603f40f43 | ||
|
|
19ac0480ee | ||
|
|
7d43f4f145 | ||
|
|
8f17c86611 | ||
|
|
f517c514d8 | ||
|
|
e2d9c0acca | ||
|
|
c3221bddf2 | ||
|
|
5ac10a2057 | ||
|
|
85ce14a991 | ||
|
|
2594581965 | ||
|
|
1a3968476a | ||
|
|
281abfc79b | ||
|
|
6dd4a92467 | ||
|
|
9614c119aa | ||
|
|
1e1c21a45a | ||
|
|
8cff6f9441 | ||
|
|
23c2a61567 | ||
|
|
903cb9cc49 | ||
|
|
d4901662f8 | ||
|
|
686197be61 | ||
|
|
dd848f19b4 | ||
|
|
a7d1607cb3 | ||
|
|
508e252067 | ||
|
|
2cf409ca11 | ||
|
|
3f0fac738a | ||
|
|
9bd14a17f9 | ||
|
|
4505296b35 | ||
|
|
5a91ba47c6 | ||
|
|
b82e2efd33 | ||
|
|
284676d956 | ||
|
|
d91edcb653 | ||
|
|
9ffc792dec | ||
|
|
7d3973a5e4 | ||
|
|
ffc0d57576 | ||
|
|
f28ee8ab78 | ||
|
|
6b02a2167c | ||
|
|
c9b9c338d7 | ||
|
|
d22d54dee0 | ||
|
|
20b9279eec | ||
|
|
ce4157ac08 | ||
|
|
3c74d9958f | ||
|
|
569d110f6e | ||
|
|
e69c91b5eb | ||
|
|
2477b6cde8 | ||
|
|
8cf42a2711 | ||
|
|
5207c3fb15 | ||
|
|
a166f98b66 | ||
|
|
d572c44dd0 | ||
|
|
9286140b15 | ||
|
|
0b738bc152 | ||
|
|
f06ddfd888 | ||
|
|
f10ed62310 | ||
|
|
a5c05daac5 | ||
|
|
a84ce0b0cf | ||
|
|
adecddae77 | ||
|
|
927706d67c | ||
|
|
e70c883673 | ||
|
|
09f583c569 | ||
|
|
6e676404a0 | ||
|
|
daa70a61eb | ||
|
|
2ed4ad6772 | ||
|
|
f0a42c5c07 | ||
|
|
02174c3245 | ||
|
|
8a148747bd | ||
|
|
66750ca9ff | ||
|
|
e84ec0fcb3 | ||
|
|
39edee306e | ||
|
|
464fdc9873 | ||
|
|
38ef8db3f1 | ||
|
|
3fee10c890 | ||
|
|
3a35b2ae2a | ||
|
|
cff4227132 | ||
|
|
b01dbdc119 | ||
|
|
62603f095e | ||
|
|
1e95a9122e | ||
|
|
308fd0cdcb | ||
|
|
a4e8c0b4a3 | ||
|
|
e7964c03ed | ||
|
|
c800257678 | ||
|
|
89a3c984e7 | ||
|
|
05d32ef9d7 | ||
|
|
a2ec22a4e0 | ||
|
|
7ae676ce8a | ||
|
|
b0c2c329e2 | ||
|
|
9c423bb435 | ||
|
|
3cb6952d68 | ||
|
|
147ed4c736 | ||
|
|
f94918bebd | ||
|
|
ee45a835be | ||
|
|
26ad1b8763 | ||
|
|
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 |
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.
|
||||
-->
|
||||
@@ -1,4 +1,4 @@
|
||||
# Firefox Send
|
||||
# [](https://send.firefox.com/)
|
||||
|
||||
[](https://circleci.com/gh/mozilla/send)
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@ import share from './pages/share';
|
||||
import preferences from './pages/preferences';
|
||||
import error from './pages/error';
|
||||
import { getTranslator } from '../app/locale';
|
||||
import { setTranslate } from '../app/utils';
|
||||
|
||||
import { delay } from '../app/utils';
|
||||
|
||||
if (navigator.userAgent === 'Send Android') {
|
||||
@@ -69,6 +71,7 @@ function body(main) {
|
||||
}
|
||||
(async function start() {
|
||||
const translate = await getTranslator('en-US');
|
||||
setTranslate(translate);
|
||||
const { LIMITS, DEFAULTS } = await getConstants();
|
||||
app.use(state => {
|
||||
state.LIMITS = LIMITS;
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
apply plugin: 'com.android.application'
|
||||
|
||||
apply plugin: 'kotlin-android'
|
||||
|
||||
apply plugin: 'kotlin-android-extensions'
|
||||
|
||||
android {
|
||||
@@ -31,7 +29,7 @@ dependencies {
|
||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
||||
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
|
||||
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') {
|
||||
|
||||
@@ -1,39 +1,39 @@
|
||||
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.content.ComponentName
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
import android.webkit.WebView
|
||||
import android.webkit.WebMessage
|
||||
import android.util.Log
|
||||
import android.os.Bundle
|
||||
import android.support.v7.app.AppCompatActivity
|
||||
import android.util.Base64
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.webkit.ConsoleMessage
|
||||
import android.webkit.JavascriptInterface
|
||||
import android.webkit.WebChromeClient
|
||||
import android.webkit.*
|
||||
import im.delight.android.webview.AdvancedWebView
|
||||
import kotlinx.android.synthetic.main.activity_main.*
|
||||
import mozilla.components.service.fxa.Config
|
||||
import mozilla.components.service.fxa.FirefoxAccount
|
||||
import mozilla.components.service.fxa.Profile
|
||||
import mozilla.components.service.fxa.FxaResult
|
||||
import org.json.JSONObject
|
||||
|
||||
internal class LoggingWebChromeClient : WebChromeClient() {
|
||||
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()))
|
||||
return true
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val TAG = "CONTENT"
|
||||
}
|
||||
}
|
||||
|
||||
class WebAppInterface(private val mContext: MainActivity) {
|
||||
@JavascriptInterface
|
||||
fun beginOAuthFlow() {
|
||||
mContext.beginOAuthFlow();
|
||||
mContext.beginOAuthFlow()
|
||||
}
|
||||
|
||||
@JavascriptInterface
|
||||
@@ -43,176 +43,184 @@ class WebAppInterface(private val mContext: MainActivity) {
|
||||
}
|
||||
|
||||
class MainActivity : AppCompatActivity(), AdvancedWebView.Listener {
|
||||
private var mWebView: AdvancedWebView? = null
|
||||
|
||||
private var mToShare: String? = null
|
||||
private var mToCall: String? = null
|
||||
private var mAccount: FirefoxAccount? = null
|
||||
|
||||
@SuppressLint("SetJavaScriptEnabled")
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_main)
|
||||
|
||||
// https://developers.google.com/web/tools/chrome-devtools/remote-debugging/webviews
|
||||
// WebView.setWebContentsDebuggingEnabled(true); // TODO only dev builds
|
||||
WebView.setWebContentsDebuggingEnabled(BuildConfig.DEBUG)
|
||||
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
|
||||
mWebView!!.setListener(this, this)
|
||||
mWebView!!.setWebChromeClient(LoggingWebChromeClient())
|
||||
mWebView!!.addJavascriptInterface(WebAppInterface(this), "Android")
|
||||
mWebView!!.setLayerType(View.LAYER_TYPE_HARDWARE, null);
|
||||
settings.apply {
|
||||
userAgentString = "Send Android"
|
||||
allowUniversalAccessFromFileURLs = true
|
||||
javaScriptEnabled = true
|
||||
}
|
||||
}
|
||||
|
||||
val webSettings = mWebView!!.getSettings()
|
||||
webSettings.setUserAgentString("Send Android")
|
||||
webSettings.setAllowUniversalAccessFromFileURLs(true)
|
||||
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 type = intent.type
|
||||
if (Intent.ACTION_SEND == intent.action && type != null) {
|
||||
if (type == "text/plain") {
|
||||
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()
|
||||
} else if (type.startsWith("image/")) {
|
||||
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()
|
||||
}
|
||||
}
|
||||
mWebView!!.loadUrl("file:///android_asset/android.html")
|
||||
|
||||
webView.loadUrl("file:///android_asset/android.html")
|
||||
}
|
||||
|
||||
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?.beginOAuthFlow(arrayOf("profile", "https://identity.mozilla.com/apps/send"), true)?.then(fun (url: String): FxaResult<Unit> {
|
||||
Log.w("CONFIG", "GOT A URL " + url)
|
||||
this@MainActivity.runOnUiThread({
|
||||
mWebView!!.loadUrl(url)
|
||||
})
|
||||
return FxaResult.fromValue(Unit)
|
||||
})
|
||||
Log.w("CONFIG", "CREATED FIREFOXACCOUNT")
|
||||
return FxaResult.fromValue(Unit)
|
||||
})
|
||||
mAccount?.beginOAuthFlow(arrayOf("profile", "https://identity.mozilla.com/apps/send"), true)
|
||||
?.then { url ->
|
||||
// Log.d(TAG_CONFIG, "GOT A URL $url")
|
||||
this@MainActivity.runOnUiThread {
|
||||
webView.loadUrl(url)
|
||||
}
|
||||
FxaResult.fromValue(Unit)
|
||||
}
|
||||
// Log.d(TAG_CONFIG, "CREATED FIREFOXACCOUNT")
|
||||
FxaResult.fromValue(Unit)
|
||||
}
|
||||
}
|
||||
|
||||
fun shareUrl(url: String) {
|
||||
val shareIntent = Intent()
|
||||
shareIntent.action = Intent.ACTION_SEND
|
||||
shareIntent.type = "text/plain"
|
||||
shareIntent.putExtra(Intent.EXTRA_TEXT, url)
|
||||
val shareIntent = Intent().apply {
|
||||
action = Intent.ACTION_SEND
|
||||
type = "text/plain"
|
||||
putExtra(Intent.EXTRA_TEXT, url)
|
||||
}
|
||||
|
||||
val components = arrayOf(ComponentName(applicationContext, MainActivity::class.java))
|
||||
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)
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
override fun onResume() {
|
||||
super.onResume()
|
||||
mWebView!!.onResume()
|
||||
// ...
|
||||
webView.onResume()
|
||||
}
|
||||
|
||||
@SuppressLint("NewApi")
|
||||
override fun onPause() {
|
||||
mWebView!!.onPause()
|
||||
// ...
|
||||
webView.onPause()
|
||||
super.onPause()
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
mWebView!!.onDestroy()
|
||||
// ...
|
||||
webView.onDestroy()
|
||||
super.onDestroy()
|
||||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
|
||||
super.onActivityResult(requestCode, resultCode, intent)
|
||||
mWebView!!.onActivityResult(requestCode, resultCode, intent)
|
||||
// ...
|
||||
webView.onActivityResult(requestCode, resultCode, intent)
|
||||
}
|
||||
|
||||
override fun onBackPressed() {
|
||||
if (!mWebView!!.onBackPressed()) {
|
||||
if (!webView.onBackPressed()) {
|
||||
return
|
||||
}
|
||||
// ...
|
||||
super.onBackPressed()
|
||||
}
|
||||
|
||||
override fun onPageStarted(url: String, favicon: Bitmap?) {
|
||||
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
|
||||
mWebView!!.loadUrl("file:///android_asset/android.html")
|
||||
webView.loadUrl("file:///android_asset/android.html")
|
||||
|
||||
val parsed = Uri.parse(url)
|
||||
val code = parsed.getQueryParameter("code")
|
||||
val state = parsed.getQueryParameter("state")
|
||||
|
||||
code?.let { code ->
|
||||
state?.let { state ->
|
||||
val uri = Uri.parse(url)
|
||||
uri.getQueryParameter("code")?.let { code ->
|
||||
uri.getQueryParameter("state")?.let { state ->
|
||||
mAccount?.completeOAuthFlow(code, state)?.whenComplete { info ->
|
||||
//displayAndPersistProfile(code, state)
|
||||
val profile = mAccount?.getProfile(false)?.then(fun (profile: Profile): FxaResult<Unit> {
|
||||
val accessToken = info.accessToken
|
||||
val keys = info.keys
|
||||
val avatar = profile.avatar
|
||||
val displayName = profile.displayName
|
||||
val email = profile.email
|
||||
val uid = profile.uid
|
||||
val toPass = "{\"accessToken\": \"${accessToken}\", \"keys\": '${keys}', \"avatar\": \"${avatar}\", \"displayName\": \"${displayName}\", \"email\": \"${email}\", \"uid\": \"${uid}\"}"
|
||||
mToCall = "finishLogin(${toPass})"
|
||||
this@MainActivity.runOnUiThread({
|
||||
mAccount?.getProfile(false)?.then { profile ->
|
||||
val profileJsonPayload = JSONObject()
|
||||
.put("accessToken", info.accessToken)
|
||||
.put("keys", info.keys)
|
||||
.put("avatar", profile.avatar)
|
||||
.put("displayName", profile.displayName)
|
||||
.put("email", profile.email)
|
||||
.put("uid", profile.uid).toString()
|
||||
mToCall = "finishLogin($profileJsonPayload)"
|
||||
this@MainActivity.runOnUiThread {
|
||||
// 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.
|
||||
mWebView!!.clearHistory()
|
||||
webView.clearHistory()
|
||||
|
||||
// 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.
|
||||
mWebView!!.loadUrl("file:///android_asset/android.html")
|
||||
})
|
||||
|
||||
|
||||
return FxaResult.fromValue(Unit)
|
||||
})
|
||||
webView.loadUrl("file:///android_asset/android.html")
|
||||
}
|
||||
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) {
|
||||
Log.w("MAIN", "onPageFinished")
|
||||
// Log.d(TAG_MAIN, "onPageFinished")
|
||||
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
|
||||
}
|
||||
if (mToCall != null) {
|
||||
this@MainActivity.runOnUiThread({
|
||||
mWebView?.evaluateJavascript(mToCall, fun (value: String) {
|
||||
this@MainActivity.runOnUiThread {
|
||||
webView.evaluateJavascript(mToCall) {
|
||||
mToCall = null
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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) {
|
||||
Log.w("MAIN", "onDownloadRequested")
|
||||
override fun onDownloadRequested(url: String,
|
||||
suggestedFilename: String,
|
||||
mimeType: String,
|
||||
contentLength: Long,
|
||||
contentDisposition: String,
|
||||
userAgent: String) {
|
||||
// Log.d(TAG_MAIN, "onDownloadRequested")
|
||||
}
|
||||
|
||||
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"?>
|
||||
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
<im.delight.android.webview.AdvancedWebView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/webView"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
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>
|
||||
tools:context=".MainActivity" />
|
||||
@@ -8,20 +8,15 @@ buildscript {
|
||||
jcenter()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:3.3.1'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.20"
|
||||
|
||||
// NOTE: Do not place your application dependencies here; they belong
|
||||
// in the individual module build.gradle files
|
||||
classpath 'com.android.tools.build:gradle:3.3.2'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.21"
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
maven {
|
||||
url "https://maven.mozilla.org/maven2"
|
||||
}
|
||||
maven { url "https://maven.mozilla.org/maven2" }
|
||||
jcenter()
|
||||
maven { url "https://jitpack.io" }
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* global AUTH_CONFIG LOCALE */
|
||||
import { browserName } from './utils';
|
||||
/* global AUTH_CONFIG */
|
||||
import { browserName, locale } from './utils';
|
||||
|
||||
async function checkCrypto() {
|
||||
try {
|
||||
@@ -91,7 +91,7 @@ export default async function getCapabilities() {
|
||||
account = false;
|
||||
}
|
||||
const share =
|
||||
typeof navigator.share === 'function' && LOCALE.startsWith('en'); // en until strings merge
|
||||
typeof navigator.share === 'function' && locale().startsWith('en'); // en until strings merge
|
||||
|
||||
const standalone =
|
||||
window.matchMedia('(display-mode: standalone)').matches ||
|
||||
|
||||
@@ -2,11 +2,12 @@ import FileSender from './fileSender';
|
||||
import FileReceiver from './fileReceiver';
|
||||
import { copyToClipboard, delay, openLinksInNewTab, percent } from './utils';
|
||||
import * as metrics from './metrics';
|
||||
import { bytes } from './utils';
|
||||
import { bytes, locale } from './utils';
|
||||
import okDialog from './ui/okDialog';
|
||||
import copyDialog from './ui/copyDialog';
|
||||
import shareDialog from './ui/shareDialog';
|
||||
import signupDialog from './ui/signupDialog';
|
||||
import surveyDialog from './ui/surveyDialog';
|
||||
|
||||
export default function(state, emitter) {
|
||||
let lastRender = 0;
|
||||
@@ -281,6 +282,22 @@ export default function(state, emitter) {
|
||||
// metrics.copiedLink({ location });
|
||||
});
|
||||
|
||||
emitter.on('closeModal', () => {
|
||||
if (
|
||||
state.PREFS.surveyUrl &&
|
||||
['copy', 'share'].includes(state.modal.type) &&
|
||||
locale().startsWith('en') &&
|
||||
(state.storage.totalUploads > 1 || state.storage.totalDownloads > 0) &&
|
||||
!state.user.surveyed
|
||||
) {
|
||||
state.user.surveyed = true;
|
||||
state.modal = surveyDialog();
|
||||
} else {
|
||||
state.modal = null;
|
||||
}
|
||||
render();
|
||||
});
|
||||
|
||||
setInterval(() => {
|
||||
// poll for updates of the upload list
|
||||
if (!state.modal && state.route === '/') {
|
||||
|
||||
@@ -1,6 +1,22 @@
|
||||
import hash from 'string-hash';
|
||||
import Account from './ui/account';
|
||||
|
||||
const experiments = {};
|
||||
const experiments = {
|
||||
signin_button_color: {
|
||||
eligible: function() {
|
||||
return true;
|
||||
},
|
||||
variant: function() {
|
||||
return ['white-blue', 'blue', 'white-violet', 'violet'][
|
||||
Math.floor(Math.random() * 4)
|
||||
];
|
||||
},
|
||||
run: function(variant, state) {
|
||||
const account = state.cache(Account, 'account');
|
||||
account.buttonClass = variant;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//Returns a number between 0 and 1
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
@@ -25,23 +41,12 @@ export default function initialize(state, emitter) {
|
||||
xp.run(+state.query.v, state, emitter);
|
||||
}
|
||||
});
|
||||
|
||||
if (!state.storage.get('testpilot_ga__cid')) {
|
||||
// first ever visit. check again after cid is assigned.
|
||||
emitter.on('DOMContentLoaded', () => {
|
||||
checkExperiments(state, emitter);
|
||||
});
|
||||
const enrolled = state.storage.enrolled;
|
||||
// single experiment per session for now
|
||||
const id = Object.keys(enrolled)[0];
|
||||
if (Object.keys(experiments).includes(id)) {
|
||||
experiments[id].run(enrolled[id], state, emitter);
|
||||
} else {
|
||||
const enrolled = state.storage.enrolled.filter(([id, variant]) => {
|
||||
const xp = experiments[id];
|
||||
if (xp) {
|
||||
xp.run(variant, state, emitter);
|
||||
}
|
||||
return !!xp;
|
||||
});
|
||||
// single experiment per session for now
|
||||
if (enrolled.length === 0) {
|
||||
checkExperiments(state, emitter);
|
||||
}
|
||||
checkExperiments(state, emitter);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,23 +18,6 @@ export default class Keychain {
|
||||
false,
|
||||
['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) {
|
||||
return crypto.subtle.deriveKey(
|
||||
{
|
||||
|
||||
92
app/main.css
92
app/main.css
@@ -8,6 +8,14 @@
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
:root {
|
||||
--violet-gradient: linear-gradient(
|
||||
-180deg,
|
||||
rgba(144, 89, 255, 0.8) 0%,
|
||||
rgba(144, 89, 255, 0.4) 100%
|
||||
);
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
@@ -31,6 +39,7 @@ body {
|
||||
@apply cursor-pointer;
|
||||
@apply py-4;
|
||||
@apply px-6;
|
||||
@apply font-semibold;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
@@ -139,6 +148,11 @@ footer li:hover {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.main-header img {
|
||||
height: 32px;
|
||||
width: 170px;
|
||||
}
|
||||
|
||||
.intro {
|
||||
max-width: 100%;
|
||||
height: unset;
|
||||
@@ -159,7 +173,7 @@ footer li:hover {
|
||||
.mozilla-logo {
|
||||
background-image: url('../assets/mozilla-logo.svg');
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100px, 32px;
|
||||
background-size: 100px, 48px;
|
||||
overflow: hidden;
|
||||
text-indent: 120%;
|
||||
white-space: nowrap;
|
||||
@@ -246,6 +260,11 @@ select {
|
||||
}
|
||||
|
||||
@screen md {
|
||||
.main-header img {
|
||||
height: 48px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.intro {
|
||||
max-width: unset;
|
||||
height: unset;
|
||||
@@ -261,7 +280,7 @@ select {
|
||||
@apply py-8;
|
||||
|
||||
min-height: 36rem;
|
||||
max-height: 40rem;
|
||||
max-height: 42rem;
|
||||
width: calc(100% - 3rem);
|
||||
}
|
||||
}
|
||||
@@ -274,8 +293,9 @@ select {
|
||||
}
|
||||
|
||||
.shadow-big {
|
||||
box-shadow: 0 0 32px 0 rgba(12, 12, 13, 0.1),
|
||||
0 2px 16px 0 rgba(12, 12, 13, 0.05);
|
||||
box-shadow: 0 12px 18px 2px rgba(34, 0, 51, 0.04),
|
||||
0 6px 22px 4px rgba(7, 48, 114, 0.12),
|
||||
0 6px 10px -4px rgba(14, 13, 26, 0.12);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -287,4 +307,68 @@ select {
|
||||
|
||||
.word-break-all {
|
||||
word-break: break-all;
|
||||
line-break: anywhere;
|
||||
}
|
||||
|
||||
.signin {
|
||||
border-radius: 6px;
|
||||
transition-property: transform, background-color;
|
||||
transition-duration: 250ms;
|
||||
transition-timing-function: cubic-bezier(0.07, 0.95, 0, 1);
|
||||
}
|
||||
|
||||
.signin:hover,
|
||||
.signin:focus {
|
||||
@apply shadow-btn;
|
||||
|
||||
transform: scale(1.0625);
|
||||
}
|
||||
|
||||
.signin:hover:active {
|
||||
transform: scale(0.9375);
|
||||
}
|
||||
|
||||
/* begin signin button color experiment */
|
||||
|
||||
.white-blue {
|
||||
@apply border-blue-dark;
|
||||
@apply border-2;
|
||||
@apply text-blue-dark;
|
||||
}
|
||||
|
||||
.white-blue:hover,
|
||||
.white-blue:focus {
|
||||
@apply bg-blue-dark;
|
||||
@apply text-white;
|
||||
}
|
||||
|
||||
.blue {
|
||||
@apply bg-blue-dark;
|
||||
@apply text-white;
|
||||
}
|
||||
|
||||
.white-violet {
|
||||
@apply border-violet;
|
||||
@apply border-2;
|
||||
@apply text-violet;
|
||||
}
|
||||
|
||||
.white-violet:hover,
|
||||
.white-violet:focus {
|
||||
@apply bg-violet;
|
||||
@apply text-white;
|
||||
|
||||
background-image: var(--violet-gradient);
|
||||
}
|
||||
|
||||
.violet {
|
||||
@apply bg-violet;
|
||||
@apply text-white;
|
||||
}
|
||||
|
||||
.violet:hover,
|
||||
.violet:focus {
|
||||
background-image: var(--violet-gradient);
|
||||
}
|
||||
|
||||
/* end signin button color experiment */
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* global DEFAULTS LIMITS LOCALE */
|
||||
/* global DEFAULTS LIMITS PREFS */
|
||||
import 'core-js';
|
||||
import 'fast-text-encoding'; // MS Edge support
|
||||
import 'fluent-intl-polyfill';
|
||||
@@ -17,7 +17,7 @@ import './main.css';
|
||||
import User from './user';
|
||||
import { getTranslator } from './locale';
|
||||
import Archive from './archive';
|
||||
import { setTranslate } from './utils';
|
||||
import { setTranslate, locale } from './utils';
|
||||
|
||||
if (navigator.doNotTrack !== '1' && window.RAVEN_CONFIG) {
|
||||
Raven.config(window.SENTRY_ID, window.RAVEN_CONFIG).install();
|
||||
@@ -45,11 +45,12 @@ if (process.env.NODE_ENV === 'production') {
|
||||
}
|
||||
}
|
||||
|
||||
const translate = await getTranslator(LOCALE);
|
||||
const translate = await getTranslator(locale());
|
||||
setTranslate(translate);
|
||||
window.initialState = {
|
||||
LIMITS,
|
||||
DEFAULTS,
|
||||
PREFS,
|
||||
archive: new Archive([], DEFAULTS.EXPIRE_SECONDS),
|
||||
capabilities,
|
||||
translate,
|
||||
@@ -62,10 +63,10 @@ if (process.env.NODE_ENV === 'production') {
|
||||
|
||||
const app = routes(choo());
|
||||
window.app = app;
|
||||
app.use(experiments);
|
||||
app.use(metrics);
|
||||
app.use(controller);
|
||||
app.use(dragManager);
|
||||
app.use(experiments);
|
||||
app.use(pasteManager);
|
||||
app.mount('body');
|
||||
})();
|
||||
|
||||
@@ -1,21 +1,23 @@
|
||||
import storage from './storage';
|
||||
import { platform } from './utils';
|
||||
import { platform, locale } from './utils';
|
||||
import { sendMetrics } from './api';
|
||||
|
||||
let appState = null;
|
||||
// let experiment = null;
|
||||
let experiment = null;
|
||||
const HOUR = 1000 * 60 * 60;
|
||||
const events = [];
|
||||
let session_id = Date.now();
|
||||
const lang = document.querySelector('html').lang;
|
||||
const lang = locale();
|
||||
|
||||
export default function initialize(state, emitter) {
|
||||
appState = state;
|
||||
if (!appState.user.firstAction) {
|
||||
appState.user.firstAction = appState.route === '/' ? 'upload' : 'download';
|
||||
}
|
||||
|
||||
emitter.on('DOMContentLoaded', () => {
|
||||
// experiment = storage.enrolled[0];
|
||||
experiment = storage.enrolled;
|
||||
if (!appState.user.firstAction) {
|
||||
appState.user.firstAction =
|
||||
appState.route === '/' ? 'upload' : 'download';
|
||||
}
|
||||
const query = appState.query;
|
||||
addEvent('client_visit', {
|
||||
entrypoint: appState.route === '/' ? 'upload' : 'download',
|
||||
@@ -59,6 +61,11 @@ function submitEvents() {
|
||||
async function addEvent(event_type, event_properties) {
|
||||
const user_id = await appState.user.metricId();
|
||||
const device_id = await appState.user.deviceId();
|
||||
const ab_id = Object.keys(experiment)[0];
|
||||
if (ab_id) {
|
||||
event_properties.experiment = ab_id;
|
||||
event_properties.variant = experiment[ab_id];
|
||||
}
|
||||
events.push({
|
||||
device_id,
|
||||
event_properties,
|
||||
|
||||
@@ -86,16 +86,13 @@ class Storage {
|
||||
this.engine.setItem('referrer', str);
|
||||
}
|
||||
get enrolled() {
|
||||
return JSON.parse(this.engine.getItem('experiments') || '[]');
|
||||
return JSON.parse(this.engine.getItem('ab_experiments') || '{}');
|
||||
}
|
||||
|
||||
enroll(id, variant) {
|
||||
const enrolled = this.enrolled;
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
if (!enrolled.find(([i, v]) => i === id)) {
|
||||
enrolled.push([id, variant]);
|
||||
this.engine.setItem('experiments', JSON.stringify(enrolled));
|
||||
}
|
||||
const enrolled = {};
|
||||
enrolled[id] = variant;
|
||||
this.engine.setItem('ab_experiments', JSON.stringify(enrolled));
|
||||
}
|
||||
|
||||
get files() {
|
||||
|
||||
@@ -8,7 +8,8 @@ class Account extends Component {
|
||||
this.emit = emit;
|
||||
this.enabled = state.capabilities.account;
|
||||
this.local = state.components[name] = {};
|
||||
this.setState();
|
||||
this.buttonClass = '';
|
||||
this.setLocal();
|
||||
}
|
||||
|
||||
avatarClick(event) {
|
||||
@@ -38,7 +39,7 @@ class Account extends Component {
|
||||
return this.local.loggedIn !== this.state.user.loggedIn;
|
||||
}
|
||||
|
||||
setState() {
|
||||
setLocal() {
|
||||
const changed = this.changed();
|
||||
if (changed) {
|
||||
this.local.loggedIn = this.state.user.loggedIn;
|
||||
@@ -47,7 +48,7 @@ class Account extends Component {
|
||||
}
|
||||
|
||||
update() {
|
||||
return this.setState();
|
||||
return this.setLocal();
|
||||
}
|
||||
|
||||
createElement() {
|
||||
@@ -58,15 +59,17 @@ class Account extends Component {
|
||||
}
|
||||
const user = this.state.user;
|
||||
const translate = this.state.translate;
|
||||
this.setLocal();
|
||||
if (!this.local.loggedIn) {
|
||||
return html`
|
||||
<send-account>
|
||||
<button
|
||||
class="p-2 md:p-4 border rounded-lg text-blue-dark border-blue-dark hover:text-white hover:bg-blue-dark focus:outline"
|
||||
class="px-4 py-2 md:px-8 md:py-4 focus:outline signin ${this
|
||||
.buttonClass}"
|
||||
onclick="${e => this.login(e)}"
|
||||
title="${translate('signInButton')}"
|
||||
title="${translate('signInOnlyButton')}"
|
||||
>
|
||||
${translate('signInButton')}
|
||||
${translate('signInOnlyButton')}
|
||||
</button>
|
||||
</send-account>
|
||||
`;
|
||||
|
||||
@@ -286,7 +286,7 @@ module.exports.wip = function(state, emit) {
|
||||
>
|
||||
<input
|
||||
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"
|
||||
multiple
|
||||
onfocus="${focus}"
|
||||
@@ -430,7 +430,7 @@ module.exports.empty = function(state, emit) {
|
||||
`;
|
||||
return html`
|
||||
<send-upload-area
|
||||
class="flex flex-col items-center justify-center border-2 border-dashed border-grey rounded px-6 py-16 h-full w-full"
|
||||
class="flex flex-col items-center justify-center border-2 border-dashed border-grey-transparent rounded px-6 py-16 h-full w-full"
|
||||
onclick="${e => {
|
||||
if (e.target.tagName !== 'LABEL') {
|
||||
document.getElementById('file-upload').click();
|
||||
@@ -448,7 +448,7 @@ module.exports.empty = function(state, emit) {
|
||||
</div>
|
||||
<input
|
||||
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"
|
||||
multiple
|
||||
onfocus="${focus}"
|
||||
|
||||
@@ -4,7 +4,7 @@ module.exports = function() {
|
||||
return html`
|
||||
<main class="main">
|
||||
<section
|
||||
class="h-full w-full p-6 md:flex md:flex-row md:rounded-lg md:shadow-big"
|
||||
class="h-full w-full p-6 md:p-8 md:flex md:flex-row md:rounded-xl md:shadow-big"
|
||||
>
|
||||
<div class="md:mr-6 md:w-1/2 w-full"></div>
|
||||
<div class="md:w-1/2 mt-6 md:mt-0 w-full"></div>
|
||||
|
||||
@@ -10,7 +10,6 @@ function banner(state) {
|
||||
const show =
|
||||
!state.capabilities.standalone &&
|
||||
!/firefox/i.test(navigator.userAgent) &&
|
||||
document.querySelector('html').lang.startsWith('en') &&
|
||||
!state.route.startsWith('/unsupported/');
|
||||
if (show) {
|
||||
return state.cache(Promo, 'promo').render();
|
||||
|
||||
@@ -2,7 +2,7 @@ const html = require('choo/html');
|
||||
const { copyToClipboard } = require('../utils');
|
||||
|
||||
module.exports = function(name, url) {
|
||||
return function(state, emit, close) {
|
||||
const dialog = function(state, emit, close) {
|
||||
return html`
|
||||
<send-copy-dialog
|
||||
class="flex flex-col items-center text-center p-4 max-w-sm m-auto"
|
||||
@@ -45,4 +45,6 @@ module.exports = function(name, url) {
|
||||
setTimeout(close, 1000);
|
||||
}
|
||||
};
|
||||
dialog.type = 'copy';
|
||||
return dialog;
|
||||
};
|
||||
|
||||
@@ -76,7 +76,9 @@ module.exports = function(state, emit) {
|
||||
return html`
|
||||
<main class="main">
|
||||
${state.modal && modal(state, emit)}
|
||||
<section class="relative h-full w-full p-6 md:rounded-lg md:shadow-big">
|
||||
<section
|
||||
class="relative h-full w-full p-6 md:p-8 md:rounded-xl md:shadow-big"
|
||||
>
|
||||
${content}
|
||||
</section>
|
||||
</main>
|
||||
|
||||
@@ -7,7 +7,7 @@ module.exports = function(state, emit) {
|
||||
<main class="main">
|
||||
${state.modal && modal(state, emit)}
|
||||
<section
|
||||
class="flex flex-col items-center justify-center h-full w-full p-6 overflow-hidden md:rounded-lg md:shadow-big"
|
||||
class="flex flex-col items-center justify-center h-full w-full p-6 md:p-8 overflow-hidden md:rounded-xl md:shadow-big"
|
||||
>
|
||||
<h1 class="text-center font-bold my-2">
|
||||
${state.translate('errorPageHeader')}
|
||||
|
||||
@@ -19,7 +19,7 @@ class Footer extends Component {
|
||||
const feedbackUrl = `https://qsurvey.mozilla.com/s3/Firefox-Send-Product-Feedback?ver=${version}&browser=${browser}`;
|
||||
return html`
|
||||
<footer
|
||||
class="flex flex-col md:flex-row items-start w-full flex-none self-start p-6 font-medium text-xs text-grey-dark md:items-center justify-between"
|
||||
class="flex flex-col md:flex-row items-start w-full flex-none self-start p-6 md:p-8 font-medium text-xs text-grey-dark md:items-center justify-between"
|
||||
>
|
||||
<a
|
||||
class="mozilla-logo pb-10 md:pb-0 m-2"
|
||||
|
||||
@@ -28,7 +28,7 @@ class Header extends Component {
|
||||
`;
|
||||
return html`
|
||||
<header
|
||||
class="relative flex-none flex flex-row items-center justify-between w-full px-6 h-16 md:h-24 z-20 bg-transparent"
|
||||
class="main-header relative flex-none flex flex-row items-center justify-between w-full px-6 md:px-8 h-16 md:h-24 z-20 bg-transparent"
|
||||
>
|
||||
${title} ${this.account.render()}
|
||||
</header>
|
||||
|
||||
@@ -30,9 +30,9 @@ module.exports = function(state, emit) {
|
||||
<main class="main">
|
||||
${state.modal && modal(state, emit)}
|
||||
<section
|
||||
class="h-full w-full p-6 overflow-hidden md:flex md:flex-row md:rounded-lg md:shadow-big"
|
||||
class="h-full w-full p-6 md:p-8 overflow-hidden md:flex md:flex-row md:rounded-xl md:shadow-big"
|
||||
>
|
||||
<div class="px-2 w-full md:px-0 md:mr-6 md:w-1/2">${left}</div>
|
||||
<div class="px-2 w-full md:px-0 md:mr-8 md:w-1/2">${left}</div>
|
||||
<div class="mt-6 w-full md:w-1/2 md:-m-2">${right}</div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
@@ -7,10 +7,10 @@ module.exports = function intro(state) {
|
||||
class="flex flex-col items-center justify-center bg-white px-6 md:py-0 py-6 mb-0 h-full w-full"
|
||||
>
|
||||
<div class="mt-12 flex flex-col h-full">
|
||||
<h1 class="font-bold">
|
||||
<h1 class="font-bold md:pb-2">
|
||||
${state.translate('introTitle')}
|
||||
</h1>
|
||||
<p class="max-w-sm leading-normal mt-6 md:mt-2 md:pr-16">
|
||||
<p class="max-w-sm leading-loose mt-6 md:mt-2 md:pr-14">
|
||||
${state.translate('introDescription')}
|
||||
</p>
|
||||
<img class="intro" src="${assets.get('intro.svg')}" />
|
||||
|
||||
@@ -10,7 +10,7 @@ module.exports = function(state, emit) {
|
||||
>
|
||||
<h1 class="text-center">${state.translate('legalTitle')}</h1>
|
||||
<p class="mt-2">${state.translate('legalDateStamp')}</p>
|
||||
<div class="overflow-scroll py-8 px-12">
|
||||
<div class="overflow-y-scroll py-8 px-12">
|
||||
<p class="leading-normal">
|
||||
<span>When Mozilla receives information from you, our</span>
|
||||
<a
|
||||
|
||||
@@ -3,7 +3,7 @@ const html = require('choo/html');
|
||||
module.exports = function(state, emit) {
|
||||
return html`
|
||||
<send-modal
|
||||
class="absolute pin flex items-center justify-center overflow-hidden z-40 bg-white md:rounded-lg md:my-8"
|
||||
class="absolute pin flex items-center justify-center overflow-hidden z-40 bg-white md:rounded-xl md:my-8"
|
||||
onclick="${close}"
|
||||
>
|
||||
<div
|
||||
@@ -21,7 +21,6 @@ module.exports = function(state, emit) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
}
|
||||
state.modal = null;
|
||||
emit('render');
|
||||
emit('closeModal');
|
||||
}
|
||||
};
|
||||
|
||||
@@ -7,7 +7,7 @@ module.exports = function(state, emit) {
|
||||
<main class="main">
|
||||
${state.modal && modal(state, emit)}
|
||||
<section
|
||||
class="flex flex-col items-center justify-center h-full w-full p-6 overflow-hidden md:rounded-lg md:shadow-big"
|
||||
class="flex flex-col items-center justify-center h-full w-full p-6 md:p-8 overflow-hidden md:rounded-xl md:shadow-big"
|
||||
>
|
||||
<h1 class="text-center font-bold my-2">
|
||||
${state.translate('expiredTitle')}
|
||||
|
||||
@@ -3,8 +3,9 @@ const Component = require('choo/component');
|
||||
const assets = require('../../common/assets');
|
||||
|
||||
class Promo extends Component {
|
||||
constructor(name) {
|
||||
constructor(name, state) {
|
||||
super(name);
|
||||
this.state = state;
|
||||
}
|
||||
|
||||
update() {
|
||||
@@ -22,13 +23,12 @@ class Promo extends Component {
|
||||
class="w-6"
|
||||
alt="Firefox"
|
||||
/>
|
||||
<span class="ml-3"
|
||||
>Send is brought to you by the all-new Firefox.${' '}
|
||||
<span class="ml-3">
|
||||
${this.state.translate('downloadFirefoxPromo')}${' '}
|
||||
<a
|
||||
class="text-blue"
|
||||
href="https://www.mozilla.org/firefox/new/?utm_campaign=send-acquisition&utm_medium=referral&utm_source=send.firefox.com"
|
||||
>
|
||||
Download Firefox now ≫</a
|
||||
>${this.state.translate('downloadFirefox')}</a
|
||||
>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -1,13 +1,7 @@
|
||||
const html = require('choo/html');
|
||||
|
||||
/* Possible strings for l10n
|
||||
shareLinkDescription = Share the link to your file:
|
||||
shareLinkButton = Share link
|
||||
shareMessage = Download "{ $name }" with { -send-brand }: simple, safe file sharing
|
||||
*/
|
||||
|
||||
module.exports = function(name, url) {
|
||||
return function(state, emit, close) {
|
||||
const dialog = function(state, emit, close) {
|
||||
return html`
|
||||
<send-share-dialog
|
||||
class="flex flex-col items-center text-center p-4 max-w-sm m-auto"
|
||||
@@ -16,7 +10,7 @@ module.exports = function(name, url) {
|
||||
${state.translate('notifyUploadEncryptDone')}
|
||||
</h1>
|
||||
<p class="font-normal leading-normal text-grey-darkest word-break-all">
|
||||
Share the link to your file:<br />
|
||||
${state.translate('shareLinkDescription')}<br />
|
||||
${name}
|
||||
</p>
|
||||
<input
|
||||
@@ -29,9 +23,9 @@ module.exports = function(name, url) {
|
||||
<button
|
||||
class="btn rounded-lg w-full flex-no-shrink focus:outline"
|
||||
onclick="${share}"
|
||||
title="Share link"
|
||||
title="${state.translate('shareLinkButton')}"
|
||||
>
|
||||
Share link
|
||||
${state.translate('shareLinkButton')}
|
||||
</button>
|
||||
<button
|
||||
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker my-4 font-medium cursor-pointer focus:outline"
|
||||
@@ -48,8 +42,7 @@ module.exports = function(name, url) {
|
||||
try {
|
||||
await navigator.share({
|
||||
title: state.translate('-send-brand'),
|
||||
text: `Download "${name}" with Firefox Send: simple, safe file sharing`,
|
||||
//state.translate('shareMessage', { name }),
|
||||
text: state.translate('shareMessage', { name }),
|
||||
url
|
||||
});
|
||||
} catch (e) {
|
||||
@@ -61,4 +54,6 @@ module.exports = function(name, url) {
|
||||
close();
|
||||
}
|
||||
};
|
||||
dialog.type = 'share';
|
||||
return dialog;
|
||||
};
|
||||
|
||||
@@ -50,8 +50,8 @@ module.exports = function(trigger) {
|
||||
/>
|
||||
<input
|
||||
class="btn rounded-lg w-full flex flex-no-shrink items-center justify-center"
|
||||
value="${state.translate('signInButton')}"
|
||||
title="${state.translate('signInButton')}"
|
||||
value="${state.translate('signInOnlyButton')}"
|
||||
title="${state.translate('signInOnlyButton')}"
|
||||
id="email-submit"
|
||||
type="submit"
|
||||
/>
|
||||
|
||||
42
app/ui/surveyDialog.js
Normal file
42
app/ui/surveyDialog.js
Normal file
@@ -0,0 +1,42 @@
|
||||
const html = require('choo/html');
|
||||
const version = require('../../package.json').version;
|
||||
const { browserName } = require('../utils');
|
||||
|
||||
module.exports = function() {
|
||||
return function(state, emit, close) {
|
||||
const surveyUrl = `${
|
||||
state.PREFS.surveyUrl
|
||||
}?ver=${version}&browser=${browserName()}&anon=${
|
||||
state.user.loggedIn
|
||||
}&active_count=${state.storage.files.length}`;
|
||||
return html`
|
||||
<send-survey-dialog
|
||||
class="flex flex-col items-center text-center p-4 max-w-sm m-auto"
|
||||
>
|
||||
<h1 class="font-bold my-4">
|
||||
Tell us what you think.
|
||||
</h1>
|
||||
<p class="font-normal leading-normal text-grey-darkest px-4">
|
||||
Love Firefox Send? Take a quick survey to let us know how we can make
|
||||
it better.
|
||||
</p>
|
||||
<a
|
||||
class="btn rounded-lg w-full flex-no-shrink focus:outline my-5"
|
||||
onclick="${() => emit('closeModal')}"
|
||||
title="Give feedback"
|
||||
href="${surveyUrl}"
|
||||
target="_blank"
|
||||
>
|
||||
Give feedback
|
||||
</a>
|
||||
<button
|
||||
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker font-medium cursor-pointer focus:outline"
|
||||
onclick="${close}"
|
||||
title="Skip"
|
||||
>
|
||||
Skip
|
||||
</button>
|
||||
</send-survey-dialog>
|
||||
`;
|
||||
};
|
||||
};
|
||||
@@ -44,6 +44,14 @@ export default class User {
|
||||
this.storage.set('firstAction', action);
|
||||
}
|
||||
|
||||
get surveyed() {
|
||||
return this.storage.get('surveyed');
|
||||
}
|
||||
|
||||
set surveyed(yes) {
|
||||
this.storage.set('surveyed', yes);
|
||||
}
|
||||
|
||||
get avatar() {
|
||||
const defaultAvatar = assets.get('user.svg');
|
||||
if (this.info.avatarDefault) {
|
||||
|
||||
14
app/utils.js
14
app/utils.js
@@ -14,6 +14,10 @@ function b64ToArray(str) {
|
||||
return b64.toByteArray(str + '==='.slice((str.length + 3) % 4));
|
||||
}
|
||||
|
||||
function locale() {
|
||||
return document.querySelector('html').lang;
|
||||
}
|
||||
|
||||
function loadShim(polyfill) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const shim = document.createElement('script');
|
||||
@@ -67,8 +71,7 @@ function bytes(num) {
|
||||
let nStr = n.toFixed(decimalDigits);
|
||||
if (LOCALIZE_NUMBERS) {
|
||||
try {
|
||||
const locale = document.querySelector('html').lang;
|
||||
nStr = n.toLocaleString(locale, {
|
||||
nStr = n.toLocaleString(locale(), {
|
||||
minimumFractionDigits: decimalDigits,
|
||||
maximumFractionDigits: decimalDigits
|
||||
});
|
||||
@@ -85,8 +88,7 @@ function bytes(num) {
|
||||
function percent(ratio) {
|
||||
if (LOCALIZE_NUMBERS) {
|
||||
try {
|
||||
const locale = document.querySelector('html').lang;
|
||||
return ratio.toLocaleString(locale, { style: 'percent' });
|
||||
return ratio.toLocaleString(locale(), { style: 'percent' });
|
||||
} catch (e) {
|
||||
// fall through
|
||||
}
|
||||
@@ -96,8 +98,7 @@ function percent(ratio) {
|
||||
|
||||
function number(n) {
|
||||
if (LOCALIZE_NUMBERS) {
|
||||
const locale = document.querySelector('html').lang;
|
||||
return n.toLocaleString(locale);
|
||||
return n.toLocaleString(locale());
|
||||
}
|
||||
return n.toString();
|
||||
}
|
||||
@@ -267,6 +268,7 @@ function setTranslate(t) {
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
locale,
|
||||
fadeOut,
|
||||
delay,
|
||||
allowedCopy,
|
||||
|
||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 8.1 KiB |
99
assets/master-logo.svg
Normal file
99
assets/master-logo.svg
Normal file
@@ -0,0 +1,99 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 80 80">
|
||||
<defs>
|
||||
<radialGradient id="a" cx="-1186.91" cy="-517.676" r="90.78" gradientTransform="translate(1258.441 534.061)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff36e"/>
|
||||
<stop offset=".5" stop-color="#fc4055"/>
|
||||
<stop offset="1" stop-color="#e31587"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="b" cx="-1251.812" cy="-513.921" r="53.726" gradientTransform="translate(1258.441 534.061)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".001" stop-color="#c60084"/>
|
||||
<stop offset="1" stop-color="#fc4055" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="c" cx="-1179.15" cy="-522.842" r="106.599" gradientTransform="translate(1258.441 534.061)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#ffde67" stop-opacity=".6"/>
|
||||
<stop offset=".093" stop-color="#ffd966" stop-opacity=".581"/>
|
||||
<stop offset=".203" stop-color="#ffca65" stop-opacity=".525"/>
|
||||
<stop offset=".321" stop-color="#feb262" stop-opacity=".432"/>
|
||||
<stop offset=".446" stop-color="#fe8f5e" stop-opacity=".302"/>
|
||||
<stop offset=".573" stop-color="#fd6459" stop-opacity=".137"/>
|
||||
<stop offset=".664" stop-color="#fc4055" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="d" cx="42.285" cy="44.499" r="137.521" gradientTransform="translate(0 -.095)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".153" stop-color="#810220"/>
|
||||
<stop offset=".167" stop-color="#920b27" stop-opacity=".861"/>
|
||||
<stop offset=".216" stop-color="#cb2740" stop-opacity=".398"/>
|
||||
<stop offset=".253" stop-color="#ef394f" stop-opacity=".11"/>
|
||||
<stop offset=".272" stop-color="#fc4055" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="e" cx="31.878" cy="42.77" r="137.521" gradientTransform="translate(0 -.095)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".113" stop-color="#810220"/>
|
||||
<stop offset=".133" stop-color="#920b27" stop-opacity=".861"/>
|
||||
<stop offset=".204" stop-color="#cb2740" stop-opacity=".398"/>
|
||||
<stop offset=".257" stop-color="#ef394f" stop-opacity=".11"/>
|
||||
<stop offset=".284" stop-color="#fc4055" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="f" x1="-1212.61" y1="-525.103" x2="-1189.052" y2="-484.299" gradientTransform="translate(1258.441 532.89)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#ffbd4f"/>
|
||||
<stop offset=".508" stop-color="#ff9640" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="g" cx="-1255.933" cy="-77.395" r="88.863" gradientTransform="matrix(.959 0 0 .961 1273.896 86.468)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#ff9640"/>
|
||||
<stop offset=".8" stop-color="#fc4055"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="h" cx="-1255.933" cy="-77.395" r="88.863" gradientTransform="matrix(.959 0 0 .961 1273.896 86.468)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".084" stop-color="#ffde67"/>
|
||||
<stop offset=".147" stop-color="#ffdc66" stop-opacity=".968"/>
|
||||
<stop offset=".246" stop-color="#ffd562" stop-opacity=".879"/>
|
||||
<stop offset=".369" stop-color="#ffcb5d" stop-opacity=".734"/>
|
||||
<stop offset=".511" stop-color="#ffbc55" stop-opacity=".533"/>
|
||||
<stop offset=".667" stop-color="#ffaa4b" stop-opacity=".28"/>
|
||||
<stop offset=".822" stop-color="#ff9640" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="i" cx="49.941" cy="38.654" r="41.79" gradientTransform="matrix(.247 .971 -1.011 .259 76.681 -19.851)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".363" stop-color="#fc4055"/>
|
||||
<stop offset=".443" stop-color="#fd604d" stop-opacity=".633"/>
|
||||
<stop offset=".545" stop-color="#fe8644" stop-opacity=".181"/>
|
||||
<stop offset=".59" stop-color="#ff9640" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="j" cx="42.737" cy="42.193" r="41.79" gradientTransform="translate(0 -.095)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".216" stop-color="#fc4055" stop-opacity=".8"/>
|
||||
<stop offset=".267" stop-color="#fd5251" stop-opacity=".633"/>
|
||||
<stop offset=".41" stop-color="#fe8345" stop-opacity=".181"/>
|
||||
<stop offset=".474" stop-color="#ff9640" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="k" cx="-1238.198" cy="-87.433" r="150.195" gradientTransform="matrix(.959 0 0 .961 1273.896 86.468)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".054" stop-color="#fff36e"/>
|
||||
<stop offset=".457" stop-color="#ff9640"/>
|
||||
<stop offset=".639" stop-color="#ff9640"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="l" x1="59.052" y1="7.083" x2="18.155" y2="77.92" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#fff36e" stop-opacity=".8"/>
|
||||
<stop offset=".094" stop-color="#fff36e" stop-opacity=".699"/>
|
||||
<stop offset=".752" stop-color="#fff36e" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="m" x1="40.585" y1="-.67" x2="62.3" y2="62.203" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#b833e1"/>
|
||||
<stop offset=".371" stop-color="#9059ff"/>
|
||||
<stop offset=".614" stop-color="#5b6df8"/>
|
||||
<stop offset="1" stop-color="#0090ed"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="n" x1="-1230.731" y1="-532.566" x2="-1190.37" y2="-492.205" gradientTransform="translate(1258.441 532.89)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset=".805" stop-color="#722291" stop-opacity="0"/>
|
||||
<stop offset="1" stop-color="#592acb" stop-opacity=".5"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<path d="M71.944 15.7A39.47 39.47 0 0 0 41.588.009C32.3-.177 25.884 2.614 22.254 4.858 27.111 2.041 34.14.443 40.294.522c15.83.2 32.832 10.981 35.357 30.413 2.9 22.306-12.637 40.923-34.493 40.98-24.045.061-38.67-21.229-34.847-40.352a19.735 19.735 0 0 1 .413-2.787 37.815 37.815 0 0 1 4.193-14.018c-2.769 1.433-6.295 5.965-8.035 10.163A41.355 41.355 0 0 0 .284 45.1c.06.518.114 1.035.182 1.549A40.062 40.062 0 1 0 71.944 15.7zm-63.4 3.487z" fill="url(#a)"/>
|
||||
<path d="M71.944 15.7A39.47 39.47 0 0 0 41.588.009C32.3-.177 25.884 2.614 22.254 4.858 27.111 2.041 34.14.443 40.294.522c15.83.2 32.832 10.981 35.357 30.413 2.9 22.306-12.637 40.923-34.493 40.98-24.045.061-38.67-21.229-34.847-40.352a19.735 19.735 0 0 1 .413-2.787 37.815 37.815 0 0 1 4.193-14.018c-2.769 1.433-6.295 5.965-8.035 10.163A41.355 41.355 0 0 0 .284 45.1c.06.518.114 1.035.182 1.549A40.062 40.062 0 1 0 71.944 15.7zm-63.4 3.487z" fill="url(#b)" opacity=".67"/>
|
||||
<path d="M71.944 15.7A39.47 39.47 0 0 0 41.588.009C32.3-.177 25.884 2.614 22.254 4.858 27.111 2.041 34.14.443 40.294.522c15.83.2 32.832 10.981 35.357 30.413 2.9 22.306-12.637 40.923-34.493 40.98-24.045.061-38.67-21.229-34.847-40.352a19.735 19.735 0 0 1 .413-2.787 37.815 37.815 0 0 1 4.193-14.018c-2.769 1.433-6.295 5.965-8.035 10.163A41.355 41.355 0 0 0 .284 45.1c.06.518.114 1.035.182 1.549A40.062 40.062 0 1 0 71.944 15.7zm-63.4 3.487z" fill="url(#c)"/>
|
||||
<path d="M71.944 15.7A39.47 39.47 0 0 0 41.588.009C32.3-.177 25.884 2.614 22.254 4.858 27.111 2.041 34.14.443 40.294.522c15.83.2 32.832 10.981 35.357 30.413 2.9 22.306-12.637 40.923-34.493 40.98-24.045.061-38.67-21.229-34.847-40.352a19.735 19.735 0 0 1 .413-2.787 37.815 37.815 0 0 1 4.193-14.018c-2.769 1.433-6.295 5.965-8.035 10.163A41.355 41.355 0 0 0 .284 45.1c.06.518.114 1.035.182 1.549A40.062 40.062 0 1 0 71.944 15.7zm-63.4 3.487z" fill="url(#d)"/>
|
||||
<path d="M71.944 15.7A39.47 39.47 0 0 0 41.588.009C32.3-.177 25.884 2.614 22.254 4.858 27.111 2.041 34.14.443 40.294.522c15.83.2 32.832 10.981 35.357 30.413 2.9 22.306-12.637 40.923-34.493 40.98-24.045.061-38.67-21.229-34.847-40.352a19.735 19.735 0 0 1 .413-2.787 37.815 37.815 0 0 1 4.193-14.018c-2.769 1.433-6.295 5.965-8.035 10.163A41.355 41.355 0 0 0 .284 45.1c.06.518.114 1.035.182 1.549A40.062 40.062 0 1 0 71.944 15.7zm-63.4 3.487z" fill="url(#e)"/>
|
||||
<path d="M75.651 30.935a41.01 41.01 0 0 1 .3 7.247q1.99-.3 3.987-.53A40.01 40.01 0 0 0 71.944 15.7 39.47 39.47 0 0 0 41.588.009C32.3-.177 25.884 2.614 22.254 4.858 27.111 2.041 34.14.443 40.294.522 56.124.724 73.126 11.5 75.651 30.935z" fill="url(#f)"/>
|
||||
<path d="M76.625 29.826C74.374 9.518 56.263.39 40.294.522c-6.155.05-13.183 1.519-18.04 4.336a19.7 19.7 0 0 0-3.56 2.7c.129-.107.514-.424 1.152-.862l.063-.043.056-.038a26.655 26.655 0 0 1 7.692-3.572A43.5 43.5 0 0 1 40.84 1.5a33.254 33.254 0 0 1 31.25 31.993C72.457 46.7 61.648 57.23 49.188 57.84c-9.062.444-17.6-3.941-21.77-12.713a21.68 21.68 0 0 1-1.964-6.333c-1.976-13.35 6.989-24.735 15.21-27.554-4.435-3.874-15.548-3.611-23.819 2.474-5.956 4.382-9.82 11.049-11.1 19a32.945 32.945 0 0 0 2.34 18 35.3 35.3 0 0 0 30.089 21.443q1.489.114 2.984.113c26.462 0 37.942-20.087 35.467-42.444z" fill="url(#g)"/>
|
||||
<path d="M76.625 29.826C74.374 9.518 56.263.39 40.294.522c-6.155.05-13.183 1.519-18.04 4.336a19.7 19.7 0 0 0-3.56 2.7c.129-.107.514-.424 1.152-.862l.063-.043.056-.038a26.655 26.655 0 0 1 7.692-3.572A43.5 43.5 0 0 1 40.84 1.5a33.254 33.254 0 0 1 31.25 31.993C72.457 46.7 61.648 57.23 49.188 57.84c-9.062.444-17.6-3.941-21.77-12.713a21.68 21.68 0 0 1-1.964-6.333c-1.976-13.35 6.989-24.735 15.21-27.554-4.435-3.874-15.548-3.611-23.819 2.474-5.956 4.382-9.82 11.049-11.1 19a32.945 32.945 0 0 0 2.34 18 35.3 35.3 0 0 0 30.089 21.443q1.489.114 2.984.113c26.462 0 37.942-20.087 35.467-42.444z" fill="url(#h)"/>
|
||||
<path d="M76.625 29.826C74.374 9.518 56.263.39 40.294.522c-6.155.05-13.183 1.519-18.04 4.336a19.7 19.7 0 0 0-3.56 2.7c.129-.107.514-.424 1.152-.862l.063-.043.056-.038a26.655 26.655 0 0 1 7.692-3.572A43.5 43.5 0 0 1 40.84 1.5a33.254 33.254 0 0 1 31.25 31.993C72.457 46.7 61.648 57.23 49.188 57.84c-9.062.444-17.6-3.941-21.77-12.713a21.68 21.68 0 0 1-1.964-6.333c-1.976-13.35 6.989-24.735 15.21-27.554-4.435-3.874-15.548-3.611-23.819 2.474-5.956 4.382-9.82 11.049-11.1 19a32.945 32.945 0 0 0 2.34 18 35.3 35.3 0 0 0 30.089 21.443q1.489.114 2.984.113c26.462 0 37.942-20.087 35.467-42.444z" style="mix-blend-mode:multiply" opacity=".53" fill="url(#i)"/>
|
||||
<path d="M76.625 29.826C74.374 9.518 56.263.39 40.294.522c-6.155.05-13.183 1.519-18.04 4.336a19.7 19.7 0 0 0-3.56 2.7c.129-.107.514-.424 1.152-.862l.063-.043.056-.038a26.655 26.655 0 0 1 7.692-3.572A43.5 43.5 0 0 1 40.84 1.5a33.254 33.254 0 0 1 31.25 31.993C72.457 46.7 61.648 57.23 49.188 57.84c-9.062.444-17.6-3.941-21.77-12.713a21.68 21.68 0 0 1-1.964-6.333c-1.976-13.35 6.989-24.735 15.21-27.554-4.435-3.874-15.548-3.611-23.819 2.474-5.956 4.382-9.82 11.049-11.1 19a32.945 32.945 0 0 0 2.34 18 35.3 35.3 0 0 0 30.089 21.443q1.489.114 2.984.113c26.462 0 37.942-20.087 35.467-42.444z" style="mix-blend-mode:multiply" opacity=".53" fill="url(#j)"/>
|
||||
<path d="M49.188 57.84c17.1-1.04 24.42-15.2 24.879-25.245C74.783 16.9 65.472-.02 40.84 1.5a43.5 43.5 0 0 0-13.183 1.546 28.855 28.855 0 0 0-7.692 3.572l-.056.038-.063.043q-.574.4-1.123.842A33.482 33.482 0 0 1 39.7 3.605c14.142 1.856 27.072 12.857 27.072 27.373 0 11.169-8.631 19.7-18.738 19.087-15.015-.9-18.8-16.3-10.989-22.954-2.106-.453-6.064.435-8.82 4.555-2.473 3.7-2.333 9.41-.807 13.461a22.118 22.118 0 0 0 21.77 12.713z" fill="url(#k)"/>
|
||||
<path d="M71.944 15.7a39.958 39.958 0 0 0-3.482-3.982 31.342 31.342 0 0 0-3.177-2.926 24.393 24.393 0 0 1 1.849 1.79 22.466 22.466 0 0 1 4.882 8.144c2.089 6.329 1.953 14.25-2.036 20.471a23.539 23.539 0 0 1-20.855 10.895c-.361 0-.725 0-1.091-.027-15.015-.9-18.8-16.3-10.988-22.954-2.107-.453-6.065.435-8.821 4.555-2.473 3.7-2.333 9.41-.807 13.461a21.679 21.679 0 0 1-1.963-6.333c-1.977-13.35 6.988-24.735 15.209-27.554-4.435-3.874-15.548-3.611-23.819 2.474a27.845 27.845 0 0 0-10.087 14.6 38.5 38.5 0 0 1 4.159-13.553c-2.769 1.433-6.295 5.965-8.035 10.163A41.355 41.355 0 0 0 .284 45.1c.06.518.114 1.035.182 1.549A40.062 40.062 0 1 0 71.944 15.7z" fill="url(#l)"/>
|
||||
<path d="M72.016 18.726a22.458 22.458 0 0 0-4.882-8.144 30.224 30.224 0 0 0-9.094-6.493A40.518 40.518 0 0 0 49.1.92a39.834 39.834 0 0 0-16.565-.1c-5.683 1.2-10.68 3.659-13.841 6.733a32.1 32.1 0 0 1 8.031-3.2 33.565 33.565 0 0 1 31.173 8.1 27.01 27.01 0 0 1 4.329 5.3c4.895 7.959 4.432 17.965.615 23.866-2.835 4.384-8.907 8.5-14.572 8.452A23.629 23.629 0 0 0 69.98 39.2c3.989-6.224 4.125-14.145 2.036-20.474z" fill="url(#m)"/>
|
||||
<path d="M72.016 18.726a22.458 22.458 0 0 0-4.882-8.144 30.224 30.224 0 0 0-9.094-6.493A40.518 40.518 0 0 0 49.1.92a39.834 39.834 0 0 0-16.565-.1c-5.683 1.2-10.68 3.659-13.841 6.733a32.1 32.1 0 0 1 8.031-3.2 33.565 33.565 0 0 1 31.173 8.1 27.01 27.01 0 0 1 4.329 5.3c4.895 7.959 4.432 17.965.615 23.866-2.835 4.384-8.907 8.5-14.572 8.452A23.629 23.629 0 0 0 69.98 39.2c3.989-6.224 4.125-14.145 2.036-20.474z" fill="url(#n)"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 12 KiB |
@@ -7,8 +7,8 @@ Send use 128-bit AES-GCM encryption via the [Web Crypto API](https://developer.m
|
||||
### Uploading
|
||||
|
||||
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
|
||||
- an encryption key for the file (AES-GCM)
|
||||
2. The secret key is used to derive more keys via HKDF SHA-256
|
||||
- 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)
|
||||
- a signing key for request authentication (HMAC SHA-256)
|
||||
3. The file and metadata are encrypted with their corresponding keys
|
||||
|
||||
@@ -68,6 +68,7 @@ Server events allow us to aggregate data about file lifecycle without collecting
|
||||
* `event_properties`
|
||||
* `download_count` downloads completed
|
||||
* `ttl` time remaining before expiry truncated to hour
|
||||
* `agent` the browser name or first 6 characters of the user agent that made the request
|
||||
|
||||
### Client Events
|
||||
|
||||
|
||||
5822
package-lock.json
generated
5822
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
75
package.json
75
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "firefox-send",
|
||||
"description": "File Sharing Experiment",
|
||||
"version": "3.0.9",
|
||||
"version": "3.0.11",
|
||||
"author": "Mozilla (https://mozilla.org)",
|
||||
"repository": "mozilla/send",
|
||||
"homepage": "https://github.com/mozilla/send/",
|
||||
@@ -27,7 +27,7 @@
|
||||
"test:report": "nyc report --reporter=html",
|
||||
"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",
|
||||
"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",
|
||||
"prod": "node server/bin/prod.js"
|
||||
},
|
||||
@@ -60,27 +60,26 @@
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.3.4",
|
||||
"@babel/plugin-proposal-class-properties": "^7.3.4",
|
||||
"@babel/core": "^7.4.4",
|
||||
"@babel/plugin-proposal-class-properties": "^7.4.4",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||
"@babel/preset-env": "^7.3.4",
|
||||
"@babel/preset-env": "^7.4.4",
|
||||
"@dannycoates/webcrypto-liner": "^0.1.37",
|
||||
"@dannycoates/webpack-dev-server": "^3.1.4",
|
||||
"@fullhuman/postcss-purgecss": "^1.1.0",
|
||||
"@fullhuman/postcss-purgecss": "^1.2.0",
|
||||
"@mattiasbuelens/web-streams-polyfill": "0.2.1",
|
||||
"asmcrypto.js": "^0.22.0",
|
||||
"babel-loader": "^8.0.5",
|
||||
"babel-plugin-istanbul": "^5.1.1",
|
||||
"babel-plugin-istanbul": "^5.1.4",
|
||||
"base64-js": "^1.3.0",
|
||||
"content-disposition": "^0.5.3",
|
||||
"copy-webpack-plugin": "^5.0.0",
|
||||
"core-js": "^2.6.5",
|
||||
"copy-webpack-plugin": "^5.0.3",
|
||||
"core-js": "^3.0.1",
|
||||
"crc": "^3.8.0",
|
||||
"cross-env": "^5.2.0",
|
||||
"css-loader": "^2.1.1",
|
||||
"css-mqpacker": "^7.0.0",
|
||||
"cssnano": "^4.1.10",
|
||||
"eslint": "^5.15.1",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-plugin-mocha": "^5.3.0",
|
||||
"eslint-plugin-node": "^8.0.1",
|
||||
"eslint-plugin-security": "^1.4.0",
|
||||
@@ -93,31 +92,31 @@
|
||||
"git-rev-sync": "^1.12.0",
|
||||
"html-loader": "^0.5.5",
|
||||
"http_ece": "^1.1.0",
|
||||
"husky": "^1.3.1",
|
||||
"lint-staged": "^8.1.5",
|
||||
"mocha": "^6.0.2",
|
||||
"husky": "^2.2.0",
|
||||
"lint-staged": "^8.1.6",
|
||||
"mocha": "^6.1.4",
|
||||
"morgan": "^1.9.1",
|
||||
"nanobus": "^4.4.0",
|
||||
"nanohtml": "^1.4.0",
|
||||
"nanohtml": "^1.6.1",
|
||||
"nanotiming": "^7.3.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"nyc": "^13.3.0",
|
||||
"nyc": "^14.1.0",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"postcss-preset-env": "^6.6.0",
|
||||
"prettier": "^1.16.4",
|
||||
"prettier": "^1.17.0",
|
||||
"proxyquire": "^2.1.0",
|
||||
"puppeteer": "1.11.0",
|
||||
"puppeteer": "^1.15.0",
|
||||
"raven-js": "^3.27.0",
|
||||
"raw-loader": "^1.0.0",
|
||||
"raw-loader": "^2.0.0",
|
||||
"redis-mock": "^0.43.0",
|
||||
"rimraf": "^2.6.3",
|
||||
"script-loader": "^0.7.2",
|
||||
"sinon": "^7.2.7",
|
||||
"sinon": "^7.3.2",
|
||||
"string-hash": "^1.1.3",
|
||||
"stylelint": "^9.10.1",
|
||||
"stylelint-config-standard": "^18.2.0",
|
||||
"stylelint": "^10.0.1",
|
||||
"stylelint-config-standard": "^18.3.0",
|
||||
"stylelint-no-unsupported-browser-features": "^3.0.2",
|
||||
"svgo": "^1.2.0",
|
||||
"svgo": "^1.2.2",
|
||||
"svgo-loader": "^2.2.0",
|
||||
"tailwindcss": "^0.7.4",
|
||||
"val-loader": "^1.1.1",
|
||||
@@ -128,34 +127,35 @@
|
||||
"wdio-sauce-service": "^0.4.14",
|
||||
"wdio-selenium-standalone-service": "0.0.12",
|
||||
"wdio-spec-reporter": "^0.1.5",
|
||||
"webdriverio": "^4.14.3",
|
||||
"webpack": "4.28.4",
|
||||
"webpack-cli": "^3.2.3",
|
||||
"webpack-dev-middleware": "^3.6.1",
|
||||
"webdriverio": "^4.14.4",
|
||||
"webpack": "^4.30.0",
|
||||
"webpack-cli": "^3.3.1",
|
||||
"webpack-dev-middleware": "^3.6.2",
|
||||
"webpack-dev-server": "^3.3.1",
|
||||
"webpack-manifest-plugin": "^2.0.4",
|
||||
"webpack-unassert-loader": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@google-cloud/storage": "^2.4.2",
|
||||
"aws-sdk": "^2.417.0",
|
||||
"body-parser": "^1.18.3",
|
||||
"choo": "^6.12.1",
|
||||
"cldr-core": "^34.0.0",
|
||||
"@google-cloud/storage": "^2.5.0",
|
||||
"aws-sdk": "^2.449.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"choo": "^6.13.3",
|
||||
"cldr-core": "^35.1.0",
|
||||
"convict": "^4.4.1",
|
||||
"express": "^4.16.3",
|
||||
"express-ws": "github:dannycoates/express-ws",
|
||||
"fluent": "^0.11.0",
|
||||
"fluent": "^0.12.0",
|
||||
"fluent-langneg": "^0.1.1",
|
||||
"fxa-geodb": "^1.0.4",
|
||||
"helmet": "^3.15.1",
|
||||
"helmet": "^3.17.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mozlog": "^2.2.0",
|
||||
"node-fetch": "^2.3.0",
|
||||
"node-fetch": "^2.5.0",
|
||||
"raven": "^2.6.4",
|
||||
"redis": "^2.8.0",
|
||||
"selenium-standalone": "^6.15.6",
|
||||
"ua-parser-js": "^0.7.19",
|
||||
"websocket-stream": "^5.1.2"
|
||||
"websocket-stream": "^5.5.0"
|
||||
},
|
||||
"availableLanguages": [
|
||||
"en-US",
|
||||
@@ -186,6 +186,8 @@
|
||||
"it",
|
||||
"ja",
|
||||
"ka",
|
||||
"kab",
|
||||
"ko",
|
||||
"lt",
|
||||
"nl",
|
||||
"nn-NO",
|
||||
@@ -196,6 +198,7 @@
|
||||
"ru",
|
||||
"sk",
|
||||
"sl",
|
||||
"sq",
|
||||
"sr",
|
||||
"sv-SE",
|
||||
"tr",
|
||||
|
||||
@@ -1,31 +1,9 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = فَيَرفُكس سِنْد
|
||||
siteSubtitle = تجربة وِبّيّة
|
||||
siteFeedback = الانطباعات
|
||||
uploadPageHeader = شارِك ملفاتك بخصوصية وتعمية
|
||||
uploadPageExplainer = أرسل الملفات عبر رابط آمن خاص ومعمّى تنتهي صلاحيته تلقائيا لتضمن عدم بقاء ما ترسله إلى الأبد.
|
||||
uploadPageLearnMore = اطّلع على المزيد
|
||||
uploadPageDropMessage = أسقِط ملفّك هنا لبدء الرفع
|
||||
uploadPageSizeMessage = لتتحصل على أفضل تجربة، من المستحسن أن يكون الملف أصغر من 1 غ.بايت
|
||||
uploadPageBrowseButton = اختر ملفًا على حاسوبك
|
||||
uploadPageBrowseButton1 = اختر ملفّا لرفعه
|
||||
uploadPageMultipleFilesAlert = رفع عدة ملفات (أو رفع مجلد) ليس مدعوما حاليا.
|
||||
uploadPageBrowseButtonTitle = ارفع ملفًا
|
||||
uploadingPageProgress = يرفع { $filename } ({ $size })
|
||||
importingFile = يستورد…
|
||||
verifyingFile = يتحقق…
|
||||
encryptingFile = يعمّي…
|
||||
decryptingFile = يفك التعمية…
|
||||
notifyUploadDone = انتهى الرفع.
|
||||
uploadingPageMessage = ما إن يُرفع الملف سيُتاح ضبط خيارات انتهاء صلاحيته.
|
||||
uploadingPageCancel = ألغِ الرفع
|
||||
uploadCancelNotification = أُلغي الرفع.
|
||||
uploadingPageLargeFileMessage = هذا الملف كبير الحجم وسيأخذ رفعه وقتا. انتظر رجاءً.
|
||||
uploadingFileNotification = أعلِمني عندما يكتمل الرفع.
|
||||
uploadSuccessConfirmHeader = جاهز للإرسال
|
||||
uploadSvgAlt = ارفع
|
||||
uploadSuccessTimingHeader = ستنتهي صلاحية الرابط الذي يشير إلى الملف في حال: نُزِّل لأول مرة، أو مرّ ٢٤ ساعة على رفعه.
|
||||
expireInfo = ستنتهي صلاحية رابط الملف بعد { $downloadCount } أو { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[zero] لا تنزيلات
|
||||
@@ -44,76 +22,26 @@ timespanHours =
|
||||
[many] { $num } ساعة
|
||||
*[other] { $num } ساعة
|
||||
}
|
||||
copyUrlFormLabelWithName = انسخ الرابط وشاركه لإرسال الملف: { $filename }
|
||||
copyUrlFormButton = انسخ إلى الحافظة
|
||||
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 = كلمة السر
|
||||
unlockButtonLabel = افتح القفل
|
||||
downloadFileTitle = نزِّل الملف المعمّى
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = يُرسل إليك صديقك ملفا عبر «فَيَرفُكس سِنْد»، وهي خدمة تتيح لك مشاركة الملفات عبر رابط آمن وخاص ومعمّى، حيث تنتهي صلاحياتها تلقائيا لتضمن عدم بقاء ما ترسله إلى الأبد.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = نزّل
|
||||
downloadNotification = لقد اكتمل التنزيل.
|
||||
downloadFinish = اكتمل التنزيل
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } من أصل { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = جرِّب «فَيَرفُكس سِنْد»
|
||||
downloadingPageProgress = ينزّل { $filename } ({ $size })
|
||||
downloadingPageMessage = رجاء أبقِ هذا اللسان مفتوحا حتى نجلب الملف ونفك تعميته.
|
||||
errorAltText = خطأ أثناء الرفع
|
||||
errorPageHeader = حدث خطب ما.
|
||||
errorPageMessage = حدث خطب ما أثناء رفع الملف.
|
||||
errorPageLink = أرسل ملفا آخر
|
||||
fileTooBig = حجم الملف كبير للغاية لرفعه. يجب أن يكون أصغر من { $size }.
|
||||
linkExpiredAlt = انتهت صلاحية الرابط
|
||||
expiredPageHeader = انتهت صلاحية هذا الرابط أو لم يكن موجودا في المقام الأول!
|
||||
notSupportedHeader = متصفحك غير مدعوم.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = للأسف فإن متصفحك لا يدعم تقنية الوِب التي يعتمد عليها «فَيَرفُكس سِنْد». عليك تجربة متصفح آخر، ونحن ننصحك بِفَيَرفُكس!
|
||||
notSupportedLink = لماذا متصفحي غير مدعوم؟
|
||||
notSupportedOutdatedDetail = للأسف فإن إصدارة فَيَرفُكس هذه لا تدعم تقنية الوِب التي يعتمد عليها «فَيَرفُكس سِنْد». عليك تحديث متصفحك.
|
||||
updateFirefox = حدّث فَيَرفُكس
|
||||
downloadFirefoxButtonSub = تنزيل مجاني
|
||||
uploadedFile = ملف
|
||||
copyFileList = انسخ الرابط
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = ينتهي في
|
||||
deleteFileList = احذف
|
||||
nevermindButton = لا بأس
|
||||
legalHeader = الشروط والخصوصية
|
||||
legalNoticeTestPilot = «فَيَرفُكس سِنْد» جزء من اختبار تجريبي حاليًا و يخضع <a>لبنود خدمة</a> الاختبار التجريبي و <a>تنويه الخصوصية</a>. يمكنك التعرف على مزيد من المعلومات حول هذه التجربة وجمع البيانات<a>هنا</a>.
|
||||
legalNoticeMozilla = يخضع استخدام موقع «فَيَرفُكس سِنْد» إلى<a>تنويه خصوصية المواقع</a> و <a>بنود خدمة المواقع</a>.
|
||||
deletePopupText = أأحذف هذا الملف؟
|
||||
deletePopupYes = نعم
|
||||
deletePopupCancel = ألغِ
|
||||
deleteButtonHover = احذف
|
||||
copyUrlHover = انسخ الرابط
|
||||
footerLinkLegal = القانونية
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = حول الاختبار التجريبي
|
||||
footerLinkPrivacy = الخصوصية
|
||||
footerLinkTerms = الشروط
|
||||
footerLinkCookies = الكعكات
|
||||
requirePasswordCheckbox = اطلب كلمة سر لتنزيل هذا الملف
|
||||
addPasswordButton = أضِف كلمة سر
|
||||
changePasswordButton = غيّر
|
||||
passwordTryAgain = كلمة السر خاطئة. أعِد المحاولة.
|
||||
reportIPInfringement = أبلغ عن انتهاك للملكية الفكرية
|
||||
javascriptRequired = يتطلب فَيَرفُكس سِنْد جافاسكربت
|
||||
whyJavascript = لماذا يتطلب فَيَرفُكس سِنْد جافاسكربت؟
|
||||
enableJavascript = رجاء فعّل جافاسكربت ثم أعد المحاولة.
|
||||
@@ -121,9 +49,136 @@ enableJavascript = رجاء فعّل جافاسكربت ثم أعد المحاو
|
||||
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 a password is successfully set
|
||||
passwordIsSet = ضُبطت كلمة السر
|
||||
# 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
|
||||
|
||||
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 ->
|
||||
[zero] أقل من دقيقة
|
||||
[one] دقيقة واحدة
|
||||
[two] دقيقتين اثنتين
|
||||
[few] { $num } دقائق
|
||||
[many] { $num } دقيقة
|
||||
*[other] { $num } دقيقة
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[zero] أقل من يوم
|
||||
[one] يوم واحد
|
||||
[two] يومين اثنين
|
||||
[few] { $num } أيام
|
||||
[many] { $num } يومًا
|
||||
*[other] { $num } يوم
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[zero] أقل من أسبوع
|
||||
[one] أسبوع واحد
|
||||
[two] أسبوعين اثنين
|
||||
[few] { $num } أسابيع
|
||||
[many] { $num } أسبوعًا
|
||||
*[other] { $num } أسبوع
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[zero] { $num } ملف
|
||||
[one] ملف واحد
|
||||
[two] ملفان اثنان
|
||||
[few] { $num } ملفات
|
||||
[many] { $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 ->
|
||||
[zero] لا يمكنك تنزيل أي ملف في آن واحد.
|
||||
[one] لا يمكنك تنزيل ما يزيد على ملف واحد في آن واحد.
|
||||
[two] لا يمكنك تنزيل ما يزيد على ملفين اثنين في آن واحد.
|
||||
[few] لا يمكنك تنزيل ما يزيد على { $count } ملفات في آن واحد.
|
||||
[many] لا يمكنك تنزيل ما يزيد على { $count } ملفًا في آن واحد.
|
||||
*[other] لا يمكنك تنزيل ما يزيد على { $count } ملف في آن واحد.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[zero] الأرشيفات ممنوعة.
|
||||
[one] لا يُسمح إلا بأرشيف واحد.
|
||||
[two] لا يُسمح إلا بأرشيفين اثنين.
|
||||
[few] لا يُسمح إلا ب { $count } أرشيفات.
|
||||
[many] لا يُسمح إلا ب { $count } أرشيفًا.
|
||||
*[other] لا يُسمح إلا ب { $count } أرشيف.
|
||||
}
|
||||
expiredTitle = انقضى وقت الرابط.
|
||||
notSupportedDescription = لن يعمل { -send-brand } في هذا المتصفح. أفضل المتصفحات التي يعمل معها { -send-short-brand } هو { -firefox } بآخر إصدارة، كما وأحدث إصدارة من أغلب المتصفحات الموجودة.
|
||||
downloadFirefox = نزِّل { -firefox }
|
||||
legalTitle = تنويه خصوصية { -send-short-brand }
|
||||
legalDateStamp = الإصدارة ١٫٠ بتاريخ ١٢ مارس ٢٠١٩
|
||||
# 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 }
|
||||
signInOnlyButton = لِج
|
||||
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 ->
|
||||
[zero] لا تُبقِ أي روابط نشطة
|
||||
[one] أبقِ الروابط نشطة لمدة تصل إلى يوم واحد
|
||||
[two] أبقِ الروابط نشطة لمدة تصل إلى يومين اثنين
|
||||
[few] أبقِ الروابط نشطة لمدة تصل إلى { $count } أيام
|
||||
[many] أبقِ الروابط نشطة لمدة تصل إلى { $count } يومًا
|
||||
*[other] أبقِ الروابط نشطة لمدة تصل إلى { $count } يوم
|
||||
}
|
||||
accountBenefitSync = أدِر ملفاتك التي شاركتها من أيّ جهاز تريد
|
||||
accountBenefitMoz = اطّلع على المزيد حول خدمات { -mozilla }
|
||||
signOut = اخرج
|
||||
okButton = حسنًا
|
||||
downloadingTitle = يجري التنزيل
|
||||
noStreamsWarning = هناك احتمال بألا يقدر هذا المتصفح على فكّ تعمية الملفات الكبيرة كهذا.
|
||||
noStreamsOptionCopy = انسخ الرابط لتفتحه في متصفح آخر
|
||||
noStreamsOptionFirefox = جرّب متصفّحنا المفضل
|
||||
noStreamsOptionDownload = واصِل بهذا المتصفح
|
||||
downloadFirefoxPromo = { -send-short-brand } تقدمة { -firefox } الجديد الأنيق.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = شارِك الرابط الذي يصل إلى الملف:
|
||||
shareLinkButton = شارِك الرابط
|
||||
# $name is the name of the file
|
||||
shareMessage = نزِّل ”{ $name }“ عبر { -send-brand }: خدمة لمشاركة الملفات بلا عناء وبخصوصية تامة
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Protegeix amb contrasenya
|
||||
emailPlaceholder = Introduïu la vostra adreça electrònica
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Inicieu la sessió per enviar fins a { $size }
|
||||
signInButton = Inicieu la sessió o registreu-vos
|
||||
signInOnlyButton = Inicia la sessió
|
||||
accountBenefitTitle = Creeu un compte del { -firefox } o inicieu la sessió
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Compartiu fitxers fins a { $size }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Pot ser que aquest navegador no pugui desxifrar un fitxer tan
|
||||
noStreamsOptionCopy = Copieu l'enllaç per obrir-lo en un altre navegador
|
||||
noStreamsOptionFirefox = Proveu el nostre navegador preferit
|
||||
noStreamsOptionDownload = Segueix amb aquest navegador
|
||||
downloadFirefoxPromo = El nou { -firefox } us ofereix el { -send-short-brand }
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Compartiu l'enllaç al vostre fitxer:
|
||||
shareLinkButton = Comparteix l'enllaç
|
||||
# $name is the name of the file
|
||||
shareMessage = Baixeu «{ $name }» amb el { -send-brand }: compartició de fitxers senzilla i segura
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Tichajïx rik'in ewan tzij
|
||||
emailPlaceholder = Tatz'ib'aj ataqoya'l
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Tatikirisaj molojri'ïl richin natäq k'a { $size }
|
||||
signInButton = Tatikirisaj molojri'ïl/tatz'ib'aj ab'i'
|
||||
signInOnlyButton = Titikirisäx molojri'ïl
|
||||
accountBenefitTitle = Tatz'uku' jun { -firefox } Rub'i' Ataqoy'al o Tatikirisaj molojri'ïl
|
||||
# $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 }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Rik'in jub'a' re okik'amaya'l re' man nitikïr ta nretamaj ru
|
||||
noStreamsOptionCopy = Tiwachib'ëx ri ximonel richin nijaq pa jun chik okik'amaya'l
|
||||
noStreamsOptionFirefox = Tatojtob'ej ri jeb'ël qokik'amaya'l
|
||||
noStreamsOptionDownload = Kisamäj na rik'in re okik'amaya'l re'
|
||||
downloadFirefoxPromo = Ja ri k'ak'a' { -firefox } nusüj ri { -send-short-brand } chawe.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Nakomonij ri ximonel rik'in ri awokisab'al:
|
||||
shareLinkButton = Tikomonïx ximonel
|
||||
# $name is the name of the file
|
||||
shareMessage = Tiqasäx "{ $name }" rik'in { -send-brand }: man k'ayew ta chuqa' ütz kikomonik ri yakb'äl
|
||||
|
||||
@@ -170,7 +170,7 @@ addPassword = Ochránit heslem
|
||||
emailPlaceholder = Zadejte svoji e-mailovou adresu
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Pro odesílání souborů o velikosti až { $size } se prosím přihlaste
|
||||
signInButton = Přihlásit/Registrovat se
|
||||
signInOnlyButton = Přihlásit se
|
||||
accountBenefitTitle = Vytvořte si účet { -firefox(case: "gen") } nebo se přihlaste
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Sdílejte soubory o velikosti až { $size }
|
||||
@@ -190,3 +190,11 @@ noStreamsWarning = Dešifrování tak velikého souboru se v tomto prohlížeči
|
||||
noStreamsOptionCopy = Zkopírujte odkaz pro otevření v jiném prohlížeči
|
||||
noStreamsOptionFirefox = Vyzkoušejte náš oblíbený prohlížeč
|
||||
noStreamsOptionDownload = Pokračovat v tomto prohlížeči
|
||||
downloadFirefoxPromo = { -send-short-brand } od aplikace { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Sdílet odkaz na soubor:
|
||||
shareLinkButton = Sdílet odkaz
|
||||
# $name is the name of the file
|
||||
shareMessage = Stáhněte si soubor „{ $name }“ s { -send-brand(case: "ins") } - jednoduché a bezpečné sdílení souborů
|
||||
trailheadPromo = Existuje snadný způsob pro ochranu vašeho soukromí. Používejte Firefox.
|
||||
learnMore = Zjistit více.
|
||||
|
||||
@@ -6,21 +6,21 @@ encryptingFile = Wrthi'n amgryptio…
|
||||
decryptingFile = Wrthi'n dadgryptio…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[zero] Llwythi i lawr
|
||||
[one] Llwyth i lawr
|
||||
[two] Lwyth i lawr
|
||||
[few] Llwyth i lawr
|
||||
[many] Llwyth i lawr
|
||||
*[other] Llwyth i lawr
|
||||
[zero] Dim llwythi i lawr
|
||||
[one] 1 llwyth i lawr
|
||||
[two] { $num } llwyth i lawr
|
||||
[few] { $num } llwyth i lawr
|
||||
[many] { $num } llwyth i lawr
|
||||
*[other] { $num } llwyth i lawr
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[zero] awr
|
||||
[one] awr
|
||||
[two] awr
|
||||
[few] awr
|
||||
[many] awr
|
||||
*[other] awr
|
||||
[one] 1 awr
|
||||
[two] { $num } awr
|
||||
[few] { $num } awr
|
||||
[many] { $num } awr
|
||||
*[other] { $num } awr
|
||||
}
|
||||
copiedUrl = Wedi eu copïo!
|
||||
unlockInputPlaceholder = Cyfrinair
|
||||
@@ -78,7 +78,7 @@ timespanMinutes =
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[zero] 0 diwrnod
|
||||
[one] 1 dwrnod
|
||||
[one] 1 diwrnod
|
||||
[two] { $num } diwrnod
|
||||
[few] { $num } diwrnod
|
||||
[many] { $num } diwrnod
|
||||
@@ -158,7 +158,7 @@ addPassword = Diogelu gyda chyfrinair
|
||||
emailPlaceholder = Rhowch eich e-bost
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Mewngofnodi i anfon hyd at { $size }
|
||||
signInButton = Mewngofnodi/Cofrestru
|
||||
signInOnlyButton = Mewngofnodi
|
||||
accountBenefitTitle = Creu Cyfrif { -firefox } neu fewngofnodi
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Rhannu ffeiliau hyd at { $size }
|
||||
@@ -181,3 +181,9 @@ noStreamsWarning = Efallai na fydd y porwr hwn yn gallu dadgryptio ffeil mor faw
|
||||
noStreamsOptionCopy = Copïwch y ddolen i'w agor mewn porwr arall
|
||||
noStreamsOptionFirefox = Rhowch gynnig ar ein hoff porwr
|
||||
noStreamsOptionDownload = Parhau gyda'r porwr hwn
|
||||
downloadFirefoxPromo = Mae { -send-short-brand } yn cael ei gynnig i ci gan y { -firefox } newydd.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Rhannu'r ddolen i'ch ffeil:
|
||||
shareLinkButton = Rhannu'r ddolen
|
||||
# $name is the name of the file
|
||||
shareMessage = Llwytho i lawr “{ $name }” gyda { -send-brand }: rhannu ffeiliau syml a diogel
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Beskyt med adgangskode
|
||||
emailPlaceholder = Indtast din mailadresse
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Log ind for at sende filer på op til { $size }
|
||||
signInButton = Log ind/tilmeld dig
|
||||
signInOnlyButton = Log ind
|
||||
accountBenefitTitle = Opret en { -firefox }-konto eller log ind
|
||||
# $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 }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Denne browser kan muligvis ikke dekryptere en fil, der er så
|
||||
noStreamsOptionCopy = Kopier linket for at åbne det i en anden browser
|
||||
noStreamsOptionFirefox = Prøv vores favorit-browser
|
||||
noStreamsOptionDownload = Fortsæt med denne browser
|
||||
downloadFirefoxPromo = { -send-short-brand } præsenteres af den nye { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Del linket til din fil:
|
||||
shareLinkButton = Del link
|
||||
# $name is the name of the file
|
||||
shareMessage = Hent { $name } med { -send-brand } - simpel og sikker fildeling
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Mit Passwort schützen
|
||||
emailPlaceholder = E-Mail-Adresse eingeben
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Melde dich an, um Dateien bis { $size } zu senden
|
||||
signInButton = Anmelden/Registrieren
|
||||
signInOnlyButton = Anmelden
|
||||
accountBenefitTitle = Erstelle ein { -firefox }-Konto oder melde dich an
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Dateien bis zu { $size } teilen
|
||||
@@ -145,3 +145,11 @@ noStreamsWarning = Dieser Browser kann eine so große Datei möglicherweise nich
|
||||
noStreamsOptionCopy = Kopiere den Link, um ihn in einem anderen Browser zu öffnen
|
||||
noStreamsOptionFirefox = Probiere unseren Lieblingsbrowser aus
|
||||
noStreamsOptionDownload = Mit diesem Browser weitermachen
|
||||
downloadFirefoxPromo = { -send-short-brand } wird Ihnen präsentiert vom brandneuen { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Teilen Sie den Link zu Ihrer Datei:
|
||||
shareLinkButton = Link teilen
|
||||
# $name is the name of the file
|
||||
shareMessage = Laden Sie „{ $name }“ mit { -send-brand } herunter: einfaches, sicheres Teilen von Dateien
|
||||
trailheadPromo = Es gibt einen Weg, deine Privatsphäre zu schützen. Komm zu Firefox.
|
||||
learnMore = Mehr erfahren.
|
||||
|
||||
@@ -142,7 +142,7 @@ addPassword = Z gronidłom šćitaś
|
||||
emailPlaceholder = Zapódajśo swóju e-mailowu adresu
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Pśizjawśo se, aby do { $size } pósłał
|
||||
signInButton = Pśizjawiś/Registrěrowaś
|
||||
signInOnlyButton = Pśizjawiś
|
||||
accountBenefitTitle = Załožćo konto { -firefox } abo pśizjawśo se
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Dataje do { $size } źěliś
|
||||
@@ -163,3 +163,9 @@ noStreamsWarning = Toś ten wobglědowak njamógał taku wjeliku dataju dešifr
|
||||
noStreamsOptionCopy = Kopěrujśo wótkaz, aby jen w drugim wobglědowaku wócynił
|
||||
noStreamsOptionFirefox = Wopytajśo naš nejlubšy wobglědowak
|
||||
noStreamsOptionDownload = Z toś tym wobglědowakom pókšacowaś
|
||||
downloadFirefoxPromo = { -send-short-brand } se wam pśez cele nowy { -firefox } pśinjaso.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Źělśo wótkaz k swójej dataji:
|
||||
shareLinkButton = Wótkaz źěliś
|
||||
# $name is the name of the file
|
||||
shareMessage = Ześěgniśo „{ $name }“ z { -send-brand }: jadnore, wěste źělenje datajow
|
||||
|
||||
@@ -94,15 +94,25 @@ totalSize = Συνολικό μέγεθος: { $size }
|
||||
copyLinkDescription = Αντιγράψτε το σύνδεσμο για να μοιραστείτε το αρχείο:
|
||||
copyLinkButton = Αντιγραφή συνδέσμου
|
||||
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 = Αυτός ο σύνδεσμος έχει λήξει.
|
||||
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 = Επιλέξτε αρχεία για μεταφόρτωση
|
||||
@@ -116,10 +126,28 @@ addPassword = Προστασία με κωδικό πρόσβασης
|
||||
emailPlaceholder = Εισάγετε το email σας
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Συνδεθείτε για να στείλετε μέχρι { $size }
|
||||
signInButton = Σύνδεση/εγγραφή
|
||||
signInOnlyButton = Σύνδεση
|
||||
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 = Αποσύνδεση
|
||||
okButton = OK
|
||||
downloadingTitle = Λήψη
|
||||
noStreamsWarning = Αυτό το πρόγραμμα περιήγησης ενδέχεται να μην μπορέσει να αποκρυπτογραφήσει αρχεία αυτού του μεγέθους.
|
||||
noStreamsOptionCopy = Αντιγράψτε το σύνδεσμο για άνοιγμα σε άλλο πρόγραμμα περιήγησης
|
||||
noStreamsOptionFirefox = Δοκιμάστε το αγαπημένο μας πρόγραμμα περιήγησης
|
||||
noStreamsOptionDownload = Συνέχεια με αυτό το πρόγραμμα περιήγησης
|
||||
downloadFirefoxPromo = Το { -send-short-brand } παρέχεται σε εσάς από το ολοκαίνουριο { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Μοιραστείτε το σύνδεσμο του αρχείου σας:
|
||||
shareLinkButton = Κοινή χρήση συνδέσμου
|
||||
# $name is the name of the file
|
||||
shareMessage = Λήψη του “{ $name }” με το { -send-brand }: απλός και ασφαλής διαμοιρασμός αρχείων
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Protect with password
|
||||
emailPlaceholder = Enter your email
|
||||
# $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 }
|
||||
signInButton = Sign in/up
|
||||
signInOnlyButton = Sign in
|
||||
accountBenefitTitle = Create a { -firefox } Account or sign in
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Share files up to { $size }
|
||||
@@ -145,3 +145,11 @@ noStreamsWarning = This browser might not be able to decrypt a file this big.
|
||||
noStreamsOptionCopy = Copy the link to open in another browser
|
||||
noStreamsOptionFirefox = Try our favourite browser
|
||||
noStreamsOptionDownload = Continue with this browser
|
||||
downloadFirefoxPromo = { -send-short-brand } is brought to you by the all-new { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Share the link to your file:
|
||||
shareLinkButton = Share link
|
||||
# $name is the name of the file
|
||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||
learnMore = Learn more.
|
||||
|
||||
@@ -1,31 +1,9 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = web experiment
|
||||
siteFeedback = Feedback
|
||||
uploadPageHeader = Private, Encrypted File Sharing
|
||||
uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
||||
uploadPageLearnMore = Learn more
|
||||
uploadPageDropMessage = Drop your file here to start uploading
|
||||
uploadPageSizeMessage = For the most reliable operation, 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…
|
||||
verifyingFile = Verifying…
|
||||
encryptingFile = Encrypting…
|
||||
decryptingFile = Decrypting…
|
||||
notifyUploadDone = Your upload has finished.
|
||||
uploadingPageMessage = Once your file uploads you will be able to set expiry options.
|
||||
uploadingPageCancel = Cancel upload
|
||||
uploadCancelNotification = Your upload was cancelled.
|
||||
uploadingPageLargeFileMessage = This file is large and may take a while to upload. Sit tight!
|
||||
uploadingFileNotification = Notify me when the upload is complete.
|
||||
uploadSuccessConfirmHeader = Ready to Send
|
||||
uploadSvgAlt = Upload
|
||||
uploadSuccessTimingHeader = The link to your file will expire after 1 download or in 24 hours.
|
||||
expireInfo = The link to your file will expire after { $downloadCount } or { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 download
|
||||
@@ -36,76 +14,26 @@ timespanHours =
|
||||
[one] 1 hour
|
||||
*[other] { $num } hours
|
||||
}
|
||||
copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename }
|
||||
copyUrlFormButton = Copy to clipboard
|
||||
copiedUrl = Copied!
|
||||
deleteFileButton = Delete file
|
||||
sendAnotherFileLink = Send another file
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Download
|
||||
downloadsFileList = Downloads
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Time
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Download { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Enter Password
|
||||
unlockInputPlaceholder = Password
|
||||
unlockButtonLabel = Unlock
|
||||
downloadFileTitle = Download Encrypted File
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Your friend is sending you a file with Firefox Send, a service that allows you to share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Download
|
||||
downloadNotification = Your download has completed.
|
||||
downloadFinish = Download Complete
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } of { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Try Firefox Send
|
||||
downloadingPageProgress = Downloading { $filename } ({ $size })
|
||||
downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it.
|
||||
errorAltText = Upload error
|
||||
errorPageHeader = Something went wrong!
|
||||
errorPageMessage = There has been an error uploading the file.
|
||||
errorPageLink = Send another file
|
||||
fileTooBig = That file is too big to upload. It should be less than { $size }.
|
||||
linkExpiredAlt = Link expired
|
||||
expiredPageHeader = This link has expired or never existed in the first place!
|
||||
notSupportedHeader = Your browser is not supported.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. You’ll need to try another browser. We recommend Firefox!
|
||||
notSupportedLink = Why is my browser not supported?
|
||||
notSupportedOutdatedDetail = Unfortunately this version of Firefox does not support the web technology that powers Firefox Send. You’ll need to update your browser.
|
||||
updateFirefox = Update Firefox
|
||||
downloadFirefoxButtonSub = Free Download
|
||||
uploadedFile = File
|
||||
copyFileList = Copy URL
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Expires In
|
||||
deleteFileList = Delete
|
||||
nevermindButton = Never mind
|
||||
legalHeader = Terms & Privacy
|
||||
legalNoticeTestPilot = Firefox Send is currently a Test Pilot experiment, and subject to the Test Pilot <a>Terms of Service</a> and <a>Privacy Notice</a>. You can learn more about this experiment and its data collection <a>here</a>.
|
||||
legalNoticeMozilla = Use of the Firefox Send 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
|
||||
deleteButtonHover = Delete
|
||||
copyUrlHover = Copy URL
|
||||
footerLinkLegal = Legal
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = About Test Pilot
|
||||
footerLinkPrivacy = Privacy
|
||||
footerLinkTerms = Terms
|
||||
footerLinkCookies = Cookies
|
||||
requirePasswordCheckbox = Require a password to download this file
|
||||
addPasswordButton = Add password
|
||||
changePasswordButton = Change
|
||||
passwordTryAgain = Incorrect password. Try again.
|
||||
reportIPInfringement = Report IP Infringement
|
||||
javascriptRequired = Firefox Send requires JavaScript
|
||||
whyJavascript = Why does Firefox Send require JavaScript?
|
||||
enableJavascript = Please enable JavaScript and try again.
|
||||
@@ -113,14 +41,12 @@ enableJavascript = Please enable JavaScript and try again.
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Password set
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Maximum password length: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = This password could not be set
|
||||
|
||||
## New strings for the vNext version of Firefox Send
|
||||
## Send version 2 strings
|
||||
|
||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||
-send-brand = Firefox Send
|
||||
@@ -152,7 +78,17 @@ fileCount =
|
||||
[one] 1 file
|
||||
*[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 }
|
||||
# the next line after the colon contains a file name
|
||||
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'
|
||||
dragAndDropFiles = Drag and drop files
|
||||
# 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 }
|
||||
addPassword = Protect with password
|
||||
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 }
|
||||
signInButton = Sign in/up
|
||||
signInOnlyButton = 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 }
|
||||
accountBenefitDownloadCount = Share files with more people
|
||||
accountBenefitTimeLimit =
|
||||
@@ -209,3 +145,9 @@ noStreamsWarning = This browser might not be able to decrypt a file this big.
|
||||
noStreamsOptionCopy = Copy the link to open in another browser
|
||||
noStreamsOptionFirefox = Try our favourite browser
|
||||
noStreamsOptionDownload = Continue with this browser
|
||||
downloadFirefoxPromo = { -send-short-brand } is brought to you by the all-new { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Share the link to your file:
|
||||
shareLinkButton = Share link
|
||||
# $name is the name of the file
|
||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||
|
||||
@@ -119,7 +119,7 @@ addPassword = Protect with password
|
||||
emailPlaceholder = Enter your email
|
||||
# $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 }
|
||||
signInButton = Sign in/up
|
||||
signInOnlyButton = Sign in
|
||||
accountBenefitTitle = Create a { -firefox } Account or sign in
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Share files up to { $size }
|
||||
@@ -137,3 +137,11 @@ noStreamsWarning = This browser might not be able to decrypt a file this big.
|
||||
noStreamsOptionCopy = Copy the link to open in another browser
|
||||
noStreamsOptionFirefox = Try our favorite browser
|
||||
noStreamsOptionDownload = Continue with this browser
|
||||
downloadFirefoxPromo = { -send-short-brand } is brought to you by the all-new { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Share the link to your file:
|
||||
shareLinkButton = Share link
|
||||
# $name is the name of the file
|
||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||
learnMore = Learn more.
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Proteger con contraseña
|
||||
emailPlaceholder = Ingrese su correo electrónico
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Inicie sesión para enviar hasta { $size }
|
||||
signInButton = Iniciar sesión/registrarse
|
||||
signInOnlyButton = Iniciar sesión
|
||||
accountBenefitTitle = Cree una cuenta de { -firefox } o inicie la sesión
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Compartir archivos hasta { $size }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Es posible que este navegador no pueda descifrar un archivo t
|
||||
noStreamsOptionCopy = Copiar el enlace para abrir en otro navegador.
|
||||
noStreamsOptionFirefox = Pruebe nuestro navegador favorito
|
||||
noStreamsOptionDownload = Continuar con este navegador
|
||||
downloadFirefoxPromo = El nuevo { -firefox } te ofrece { -send-short-brand }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Compartir el enlace con tu dispositivo:
|
||||
shareLinkButton = Compartir el enlace
|
||||
# $name is the name of the file
|
||||
shareMessage = Descargar "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
|
||||
|
||||
@@ -126,7 +126,7 @@ 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
|
||||
signInOnlyButton = Conectarse
|
||||
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 }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Es posible que este navegador no pueda descifrar un archivo t
|
||||
noStreamsOptionCopy = Copiar el enlace para abrirlo en otro navegador
|
||||
noStreamsOptionFirefox = Prueba nuestro navegador favorito
|
||||
noStreamsOptionDownload = Continuar con este navegador
|
||||
downloadFirefoxPromo = { -send-short-brand } es traído a ti por el renovado { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Comparte el enlace a tu dispositivo:
|
||||
shareLinkButton = Compartir enlace
|
||||
# $name is the name of the file
|
||||
shareMessage = Baja "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Proteger con contraseña
|
||||
emailPlaceholder = Introducir dirección de correo
|
||||
# $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 }
|
||||
signInButton = Iniciar sesión/registrarse
|
||||
signInOnlyButton = Iniciar sesión
|
||||
accountBenefitTitle = Crear una cuenta { -firefox } o iniciar sesión
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Compartir archivos de hasta { $size }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Puede que este navegador no pueda descifrar un archivo tan gr
|
||||
noStreamsOptionCopy = Copiar el enlace para abrirlo en otro navegador
|
||||
noStreamsOptionFirefox = Probar nuestro navegador favorito
|
||||
noStreamsOptionDownload = Continuar en este navegador
|
||||
downloadFirefoxPromo = El nuevo { -firefox } te ofrece { -send-short-brand }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Compartir el enlace a tu archivo:
|
||||
shareLinkButton = Compartir enlace
|
||||
# $name is the name of the file
|
||||
shareMessage = Descargar “{ $name }” con { -send-brand }: comparte archivos de forma segura y sencilla
|
||||
|
||||
@@ -6,7 +6,8 @@ encryptingFile = Encriptando...
|
||||
decryptingFile = Desencriptando...
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[one] 1 descarga
|
||||
[one] 1 descarga
|
||||
*[other] { $num } descargas
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
@@ -77,6 +78,10 @@ fileCount =
|
||||
[one] 1 archivo
|
||||
*[other] { $num } archivos
|
||||
}
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
# gibibyte abbreviation
|
||||
|
||||
@@ -1,31 +1,9 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = veebieksperiment
|
||||
siteFeedback = Tagasiside
|
||||
uploadPageHeader = Privaatne ja krüpteeritud failiedastus
|
||||
uploadPageExplainer = Firefox Send võimaldab saata faile üle ohutu, privaatse ja krüpteeritud kanali. Failid kustutatakse automaatselt, et need ei jääks internetti igaveseks.
|
||||
uploadPageLearnMore = Rohkem teavet
|
||||
uploadPageDropMessage = Faili üleslaadimiseks lohista see siia
|
||||
uploadPageSizeMessage = Parima kogemuse saamiseks tasub faili suurus hoida alla 1GB
|
||||
uploadPageBrowseButton = Vali fail arvutist
|
||||
uploadPageBrowseButton1 = Vali fail üleslaadimiseks
|
||||
uploadPageMultipleFilesAlert = Mitme faili või kausta üleslaadimine pole praegu toetatud.
|
||||
uploadPageBrowseButtonTitle = Laadi fail üles
|
||||
uploadingPageProgress = Faili { $filename } ({ $size }) üleslaadimine
|
||||
importingFile = Importimine...
|
||||
verifyingFile = Kontrollimine…
|
||||
encryptingFile = Krüptimine…
|
||||
decryptingFile = Dekrüptimine...
|
||||
notifyUploadDone = Üleslaadimine on lõpetatud.
|
||||
uploadingPageMessage = Aegumise sätteid saab muuta siis, kui faili üles laaditakse.
|
||||
uploadingPageCancel = Katkesta üleslaadimine
|
||||
uploadCancelNotification = Üleslaadimine katkestati
|
||||
uploadingPageLargeFileMessage = Fail on suur ja selle üleslaadimine võib aega võtta.
|
||||
uploadingFileNotification = Teavita mind üleslaadimise lõppemisest.
|
||||
uploadSuccessConfirmHeader = Saatmiseks valmis
|
||||
uploadSvgAlt = Laadi üles
|
||||
uploadSuccessTimingHeader = Link failile aegub pärast 1. allalaadimist või 24 tunni möödumisel.
|
||||
expireInfo = Link failile aegub peale { $downloadCount } või { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] üht allalaadimist
|
||||
@@ -33,79 +11,29 @@ downloadCount =
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] üht tundi
|
||||
*[other] { $num } tundi
|
||||
[one] 1 tunni
|
||||
*[other] { $num } tunni
|
||||
}
|
||||
copyUrlFormLabelWithName = Kopeeri ja jaga linki faili allalaadimiseks: { $filename }
|
||||
copyUrlFormButton = Kopeeri vahemällu
|
||||
copiedUrl = Kopeeritud!
|
||||
deleteFileButton = Kustuta fail
|
||||
sendAnotherFileLink = Saada järgmine fail
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Laadi alla
|
||||
downloadsFileList = Allalaadimised
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Aega jäänud
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Laadi fail { $filename } alla
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Sisesta parool
|
||||
unlockInputPlaceholder = Parool
|
||||
unlockButtonLabel = Ava
|
||||
downloadFileTitle = Krüptitud faili allalaadimine
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Sulle on saadetud fail Firefox Sendiga - teenusega, mis lubab faile ohutult, privaatselt ja krüpteeritult jagada. Failid kustutatakse automaatselt, et need ei jääks internetti igaveseks.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Laadi alla
|
||||
downloadNotification = Allalaadimine on lõpetatud.
|
||||
downloadFinish = Allalaadimine lõpetati
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize }/{ $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Proovi Firefox Sendi
|
||||
downloadingPageProgress = Faili { $filename } ({ $size }) allalaadimine
|
||||
downloadingPageMessage = Palun jäta see kaart lahti, kuni fail on alla laaditud ja dekrüptitud.
|
||||
errorAltText = Viga üleslaadimisel
|
||||
sendYourFilesLink = Proovi Firefox Send'i
|
||||
errorPageHeader = Midagi läks valesti!
|
||||
errorPageMessage = Faili üleslaadimisel esines viga.
|
||||
errorPageLink = Saada järgmine fail
|
||||
fileTooBig = Fail on üleslaadimiseks liiga suur. See peaks olema väiksem kui { $size }.
|
||||
linkExpiredAlt = Link on aegunud
|
||||
expiredPageHeader = See link on aegunud või seda pole kunagi olnudki!
|
||||
notSupportedHeader = Sinu brauser pole toetatud.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Kahjuks ei toeta see brauser veebitehnoloogiaid, mis teevad Firefox Sendi toimimise võimalikuks. Sa pead proovima teise brauseriga. Me soovitame Firefoxi!
|
||||
notSupportedLink = Miks mu brauser toetatud pole?
|
||||
notSupportedOutdatedDetail = Kahjuks ei toeta see Firefoxi versioon veebitehnoloogiaid, mis teevad Firefox Sendi toimimise võimalikuks. Sa pead oma brauserit uuendama.
|
||||
updateFirefox = Uuenda Firefox
|
||||
downloadFirefoxButtonSub = Laadi alla tasuta
|
||||
uploadedFile = Fail
|
||||
copyFileList = Kopeeri URL
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Aegub
|
||||
deleteFileList = Kustuta
|
||||
nevermindButton = Ära pane tähele
|
||||
legalHeader = Tingimused ja privaatsusreeglid
|
||||
legalNoticeTestPilot = Firefox Send on praegu Test Piloti eksperiment ja sellele rakenduvad Test Piloti <a>teenusetingimused</a> ning <a>privaatsusreeglid</a>. Rohkem teavet selle eksperimendi ja kogutavate andmete kohta leiab <a>siit</a>.
|
||||
legalNoticeMozilla = Firefox Sendi veebilehe kasutamisele rakenduvad ka Mozilla <a>veebilehtede privaatsusreeglid</a> ja <a>veebilehtede teenusetingimused</a>.
|
||||
deletePopupText = Kas kustutada see fail?
|
||||
deletePopupYes = Jah
|
||||
deletePopupCancel = Loobu
|
||||
deleteButtonHover = Kustuta
|
||||
copyUrlHover = Kopeeri URL
|
||||
footerLinkLegal = Õiguslik teave
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Test Pilotist
|
||||
footerLinkPrivacy = Privaatsusest
|
||||
footerLinkTerms = Teenusetingimused
|
||||
footerLinkCookies = Küpsistest
|
||||
requirePasswordCheckbox = Selle faili allalaadimiseks nõutakse parooli
|
||||
addPasswordButton = Lisa parool
|
||||
changePasswordButton = Muuda
|
||||
passwordTryAgain = Vale parool. Palun proovi uuesti.
|
||||
reportIPInfringement = Intellektuaalomandi keelatud kasutamise raporteerimine
|
||||
javascriptRequired = Firefox Send'i kasutamiseks tuleb JavaScript lubada
|
||||
whyJavascript = Miks Firefox Send JavaScripti vajab?
|
||||
enableJavascript = Palun luba JavaScript ja proovi uuesti.
|
||||
@@ -113,9 +41,113 @@ enableJavascript = Palun luba JavaScript ja proovi uuesti.
|
||||
expiresHoursMinutes = { $hours }t { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Parool on muudetud
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Maksimaalne parooli pikkus: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Parooli muutmine ebaõnnestus
|
||||
|
||||
## 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 = Lihtne ja privaatne failijagamine
|
||||
introDescription = { -send-brand } võimaldab sul faile jagada otspunktkrüpteerimise ning automaatselt aeguva lingiga. Nii saad jagatava privaatsena hoida ja kindlustada, et su asjad igavesti internetti vedelema ei jää.
|
||||
notifyUploadEncryptDone = Sinu fail on krüptitud ja saatmiseks valmis
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Aegub peale { $downloadCount } või { $timespan } järel
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
[one] 1 minuti
|
||||
*[other] { $num } minuti
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] 1 päeva
|
||||
*[other] { $num } päeva
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] 1 nädala
|
||||
*[other] { $num } nädala
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] 1 fail
|
||||
*[other] { $num } faili
|
||||
}
|
||||
# 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 = Kogusuurus: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Faili jagamiseks kopeeri link:
|
||||
copyLinkButton = Kopeeri link
|
||||
downloadTitle = Failide allalaadimine
|
||||
downloadDescription = See fail jagati teenuse { -send-brand } kaudu otspunktkrüpteeritult ja automaatselt aeguva lingiga.
|
||||
trySendDescription = Proovi lihtsaks ja turvaliseks failijagamiseks { -send-brand } teenust.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Korraga saab üles laadida vaid 1 faili.
|
||||
*[other] Korraga saab üles laadida vaid { $count } faili.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Vaid 1 arhiveerimine on lubatud.
|
||||
*[other] Vaid { $count } arhiveerimist on lubatud.
|
||||
}
|
||||
expiredTitle = Link on aegunud.
|
||||
notSupportedDescription = { -send-brand } ei tööta selle veebilehitsejaga. Kõige paremini töötab { -send-short-brand } uusima { -firefox }iga ja töötab ka enamikes teistes uuendatud brauserites.
|
||||
downloadFirefox = Laadi { -firefox } alla
|
||||
legalTitle = { -send-short-brand } privaatsusteade
|
||||
legalDateStamp = Versioon 1.0, alates 12. märts 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 }p { $hours }t { $minutes }m
|
||||
addFilesButton = Vali failid üleslaadimiseks
|
||||
uploadButton = Laadi üles
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Lohista failid siia
|
||||
# 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 = või klõpsa kuni { $size } suuruste failide saatmiseks
|
||||
addPassword = Kaitse parooliga
|
||||
emailPlaceholder = Sisesta e-posti aadress
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Logi sisse ning saad saata kuni { $size } suuruseid faile
|
||||
signInOnlyButton = Logi sisse
|
||||
accountBenefitTitle = Loo { -firefox }i konto või logi sisse
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Jaga kuni { $size } suuruseid faile
|
||||
accountBenefitDownloadCount = Jaga faile enamate inimestega
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] Hoia linke aktiivsena 1 päev
|
||||
*[other] Hoia linke aktiivsena kuni { $count } päeva
|
||||
}
|
||||
accountBenefitSync = Jagatud faile saad hallata mis tahes seadmes
|
||||
accountBenefitMoz = Rohkem teavet teistest { -mozilla } teenustest
|
||||
signOut = Logi välja
|
||||
okButton = Olgu
|
||||
downloadingTitle = Allalaadimine
|
||||
noStreamsWarning = Sinu veebilehitseja ei pruugi suuta nii suurt faili dekrüptida.
|
||||
noStreamsOptionCopy = Kopeeri link teises brauseris avamiseks
|
||||
noStreamsOptionFirefox = Proovi meie lemmikbrauserit
|
||||
noStreamsOptionDownload = Jätka selle brauseriga
|
||||
downloadFirefoxPromo = { -send-short-brand } toob sinuni uhiuus { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Jaga linki failile:
|
||||
shareLinkButton = Jaga linki
|
||||
# $name is the name of the file
|
||||
shareMessage = Laadi “{ $name }” alla teenusega { -send-brand }, mis pakub lihtsat ja turvalist failijagamist
|
||||
|
||||
@@ -20,7 +20,7 @@ unlockButtonLabel = Avaa
|
||||
downloadButtonLabel = Lataa
|
||||
downloadFinish = Lataus valmis
|
||||
fileSizeProgress = { $partialSize } / { $totalSize }
|
||||
sendYourFilesLink = Kokeile Firefox Sendiä
|
||||
sendYourFilesLink = Kokeile Firefox Send -palvelua
|
||||
errorPageHeader = Jokin meni pieleen!
|
||||
fileTooBig = Tämä tiedosto on liian suuri ladattavaksi. Sen pitäisi olla pienempi kuin { $size }.
|
||||
linkExpiredAlt = Linkki on vanhentunut
|
||||
@@ -38,9 +38,9 @@ javascriptRequired = Firefox-Send vaatii JavaScriptin
|
||||
whyJavascript = Miksi Firefox Send vaatii JavaScriptin?
|
||||
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"
|
||||
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"
|
||||
expiresMinutes = { $minutes }min
|
||||
expiresMinutes = { $minutes } min
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Salasanan enimmäispituus: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
@@ -54,21 +54,24 @@ passwordSetError = Tätä salasanaa ei voitu asettaa
|
||||
-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 minuutti
|
||||
*[other] { $num } minuuttia
|
||||
[one] 1 minuutin
|
||||
*[other] { $num } minuutin
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] 1 päivä
|
||||
*[other] { $num } päivää
|
||||
[one] 1 päivän
|
||||
*[other] { $num } päivän
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] 1 viikko
|
||||
*[other] { $num } viikkoa
|
||||
[one] 1 viikon
|
||||
*[other] { $num } viikon
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
@@ -87,9 +90,24 @@ gb = Gt
|
||||
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 }
|
||||
@@ -99,17 +117,37 @@ legalDateStamp = Versio 1.0, päivätty 13. maaliskuuta 2019
|
||||
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
|
||||
signInButton = Kirjaudu tai rekisteröidy
|
||||
# $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
|
||||
signInOnlyButton = Kirjaudu sisään
|
||||
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 tiedostoja, joiden koko on enintään { $size }
|
||||
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
|
||||
downloadFirefoxPromo = { -send-short-brand } on olemassa kiitos uuden { -firefox }in.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Jaa linkki tiedostoosi:
|
||||
shareLinkButton = Jaa linkki
|
||||
# $name is the name of the file
|
||||
shareMessage = Lataa tiedosto ”{ $name }” { -send-brand } -palvelusta: yksinkertaista ja turvallista tiedostonjakoa
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Protéger par mot de passe
|
||||
emailPlaceholder = Votre adresse électronique
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Connectez-vous pour envoyer jusqu’à { $size }
|
||||
signInButton = Se connecter/S’inscrire
|
||||
signInOnlyButton = Connexion
|
||||
accountBenefitTitle = Créez un compte { -firefox } ou connectez-vous
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Partagez des fichiers jusqu’à { $size }
|
||||
@@ -145,3 +145,11 @@ noStreamsWarning = Ce navigateur pourrait ne pas être en mesure de déchiffrer
|
||||
noStreamsOptionCopy = Copiez le lien pour l’ouvrir dans un autre navigateur
|
||||
noStreamsOptionFirefox = Essayez notre navigateur préféré
|
||||
noStreamsOptionDownload = Continuer avec ce navigateur
|
||||
downloadFirefoxPromo = { -send-short-brand } vous est proposé par le tout nouveau { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Partagez le lien vers votre fichier :
|
||||
shareLinkButton = Partager le lien
|
||||
# $name is the name of the file
|
||||
shareMessage = Télécharger « { $name } » avec { -send-brand } : un moyen simple et sûr de partager des fichiers
|
||||
trailheadPromo = Il existe un moyen de protéger votre vie privée. Rejoignez Firefox.
|
||||
learnMore = En savoir plus.
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Mei wachtwurd beskermje
|
||||
emailPlaceholder = Fier jo e-mailadres yn
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Meld jo oan, om bestannen oant { $size } te stjoeren
|
||||
signInButton = Oanmelde/Registrearje
|
||||
signInOnlyButton = Oanmelde
|
||||
accountBenefitTitle = Meitsje in { -firefox }-account of meld jo oan
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Diel bestannen oant { $size }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Dizze browser kin in sa'n grut bestân mooglik net fersiferje
|
||||
noStreamsOptionCopy = Kopiearje de koppeling om yn in oare browser te iepenjen
|
||||
noStreamsOptionFirefox = Probearje ús favorite browser
|
||||
noStreamsOptionDownload = Trochgean mei dizze browser
|
||||
downloadFirefoxPromo = { -send-short-brand } wurdt jo oanbean troch it folslein fernijde { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Diel de keppeling nei jo bestân:
|
||||
shareLinkButton = Keppeling diele
|
||||
# $name is the name of the file
|
||||
shareMessage = Download ‘{ $name }’ mei { -send-brand }: ienfâldich, feilich bestannen diele
|
||||
|
||||
@@ -134,7 +134,7 @@ addPassword = Zaštitite lozinkom
|
||||
emailPlaceholder = Unesite svoju adresu e-pošte
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Prijavite se za slanje do { $size }
|
||||
signInButton = Prijavite se
|
||||
signInOnlyButton = Prijavi se
|
||||
accountBenefitTitle = Stvorite { -firefox } račun ili se prijavite
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Dijelite datoteke do { $size }
|
||||
@@ -154,3 +154,9 @@ noStreamsWarning = Ovaj preglednik možda neće moći dekriptirati datoteku ove
|
||||
noStreamsOptionCopy = Kopirajte poveznicu kako biste je otvorili u drugom pregledniku
|
||||
noStreamsOptionFirefox = Isprobajte naš omiljeni preglednik
|
||||
noStreamsOptionDownload = Nastavite s ovim preglednikom
|
||||
downloadFirefoxPromo = Potpuno novi { -firefox } vam donosi { -send-short-brand }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Dijelite poveznicu na svoju datoteku:
|
||||
shareLinkButton = Dijeli poveznicu
|
||||
# $name is the name of the file
|
||||
shareMessage = Preuzmite “{ $name }” sa { -send-brand }: jednostavno i sigurno dijeljenje datoteka
|
||||
|
||||
@@ -142,7 +142,7 @@ addPassword = Z hesłom škitać
|
||||
emailPlaceholder = Zapodajće swoju e-mejlowu adresu
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Přizjewće so, zo byšće do { $size } pósłał
|
||||
signInButton = Přizjewić/Registrować
|
||||
signInOnlyButton = Přizjewić
|
||||
accountBenefitTitle = Załožće konto { -firefox } abo přizjewće so
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Dataje do { $size } dźělić
|
||||
@@ -163,3 +163,9 @@ noStreamsWarning = Tutón wobhladowak njemóhł tajku wulku dataju dešifrować.
|
||||
noStreamsOptionCopy = Kopěrujće wotkaz, zo byšće jón w druhim wobhladowaku wočinił
|
||||
noStreamsOptionFirefox = Wupruwujće naš najlubši wobhladowak
|
||||
noStreamsOptionDownload = Z tutym wobhladowakom pokročować
|
||||
downloadFirefoxPromo = { -send-short-brand } so wam přez cyle nowy { -firefox } přinjese.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Dźělće wotkaz k swojej dataji:
|
||||
shareLinkButton = Wotkaz dźělić
|
||||
# $name is the name of the file
|
||||
shareMessage = Sćehńće „{ $name }“ z { -send-brand }: jednore, wěste dźělenje datajow
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Jelszavas védelem
|
||||
emailPlaceholder = Adja meg az e-mail címét
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Jelentkezzen be, és küldjön legfeljebb { $size }-ot
|
||||
signInButton = Bejelentkezés/regisztráció
|
||||
signInOnlyButton = Bejelentkezés
|
||||
accountBenefitTitle = Hozzon létre egy { -firefox } fiókot vagy jelentkezzen be
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Osszon meg fájlokat { $size }-ig
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Előfordulhat, hogy a böngésző nem fog tudni visszafejteni
|
||||
noStreamsOptionCopy = Másolja a hivatkozást, és nyissa meg egy másik böngészőben
|
||||
noStreamsOptionFirefox = Próbálja ki a kedvenc böngészőnket
|
||||
noStreamsOptionDownload = Folytatás ezzel a böngészővel
|
||||
downloadFirefoxPromo = A { -send-short-brand }et a vadonatúj { -firefox } hozza el Önnek.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Ossza meg a fájlja hivatkozását:
|
||||
shareLinkButton = Hivatkozás megosztása
|
||||
# $name is the name of the file
|
||||
shareMessage = „{ $name }” letöltése a { -send-brand } segítségével: egyszerű, biztonságos fájlmegosztás
|
||||
|
||||
@@ -54,6 +54,10 @@ passwordSetError = Iste contrasigno non pote ser definite
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Comparti file in maniera confidential
|
||||
introDescription = { -send-brand } te pone in grado de compartir files con cryptographia bilateral e un ligamine que automaticamente expira. Assi que tu pote mantener private lo que tu comparti e liberar te del anxietate que tu problema resta online per sempre.
|
||||
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 =
|
||||
{ $num ->
|
||||
[one] 1 minuta
|
||||
@@ -90,6 +94,8 @@ totalSize = Dimension total: { $size }
|
||||
copyLinkDescription = Copia le ligamine pro compartir le file:
|
||||
copyLinkButton = Copiar ligamine
|
||||
downloadTitle = Discargar files
|
||||
downloadDescription = Iste file era compartite via { -send-brand } con cryptographia bilateral e un ligamine que expira automaticamente.
|
||||
trySendDescription = Prova { -send-brand } pro le compartimento de file simple e secur.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
@@ -103,6 +109,7 @@ tooManyArchives =
|
||||
*[other] Solo { $count } archivos es consentite.
|
||||
}
|
||||
expiredTitle = Iste ligamine ha expirate.
|
||||
notSupportedDescription = { -send-brand } non functionara con iste navigator. { -send-short-brand } functiona melio con le ultime version de { -firefox }, e functionara con le version actual de plure navigatores.
|
||||
downloadFirefox = Discargar { -firefox }
|
||||
legalTitle = Politica de confidentialitate de { -send-short-brand }
|
||||
legalDateStamp = Version 1.0 del 12 martio 2019
|
||||
@@ -119,7 +126,7 @@ addPassword = Proteger per contrasigno
|
||||
emailPlaceholder = Insere tu adresse email
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Accede pro inviar usque { $size }
|
||||
signInButton = Authentica/registra te
|
||||
signInOnlyButton = Authentica te
|
||||
accountBenefitTitle = Crea un conto { -firefox } o registra te
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Comparti files usque { $size }
|
||||
@@ -129,8 +136,20 @@ accountBenefitTimeLimit =
|
||||
[one] Retene active le ligamine pro 1 die
|
||||
*[other] Retene active le ligamine pro { $count } dies
|
||||
}
|
||||
accountBenefitSync = Gere files compartite ab ulle apparato
|
||||
accountBenefitMoz = Discoperi altere servicios de { -mozilla }
|
||||
signOut = Disconnecter
|
||||
okButton = OK
|
||||
downloadingTitle = Discargamento
|
||||
noStreamsWarning = Iste navigator pote non pote decifrar un file assi grande.
|
||||
noStreamsOptionCopy = Copiar le ligamine e aperir lo in un altere navigator
|
||||
noStreamsOptionFirefox = Prova nostre navigator favorite
|
||||
noStreamsOptionDownload = Continuar con iste navigator
|
||||
downloadFirefoxPromo = { -send-short-brand } es portate a te per le novissime { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Condivide le ligamine a tu file:
|
||||
shareLinkButton = Condivide ligamine
|
||||
# $name is the name of the file
|
||||
shareMessage = Discarga “{ $name }” con { -send-brand }: condivide files in modo simple e secur
|
||||
trailheadPromo = Il ha un via pro proteger tu confidentialitate. Junge te a Firefox!
|
||||
learnMore = Saper plus.
|
||||
|
||||
@@ -118,7 +118,7 @@ addPassword = Lindungi dengan kata sandi
|
||||
emailPlaceholder = Masukkan surel Anda
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Masuk untuk dapat mengirim hingga { $size }
|
||||
signInButton = Masuk/Daftar
|
||||
signInOnlyButton = Masuk
|
||||
accountBenefitTitle = Buat { -firefox } Account atau masuk
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Bagikan berkas hingga { $size }
|
||||
@@ -130,9 +130,15 @@ accountBenefitTimeLimit =
|
||||
accountBenefitSync = Kelola berkas yang dibagikan dari perangkat apa pun
|
||||
accountBenefitMoz = Pelajari tentang layanan { -mozilla } lainnya
|
||||
signOut = Keluar
|
||||
okButton = OK
|
||||
okButton = Oke
|
||||
downloadingTitle = Mengunduh
|
||||
noStreamsWarning = Peramban ini mungkin tidak dapat mendekripsi berkas sebesar ini.
|
||||
noStreamsOptionCopy = Salin tautan untuk dibuka di peramban lainnya
|
||||
noStreamsOptionFirefox = Coba peramban favorit kami
|
||||
noStreamsOptionDownload = Lanjutkan dengan peramban ini
|
||||
downloadFirefoxPromo = { -send-short-brand } dipersembahkan untuk Anda oleh { -firefox } terbaru.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Bagikan tautan ke berkas Anda:
|
||||
shareLinkButton = Bagikan tautan
|
||||
# $name is the name of the file
|
||||
shareMessage = Unduh "{ $name }" dengan { -send-brand }: berbagi berkas dengan sederhana dan aman
|
||||
|
||||
@@ -118,7 +118,7 @@ addPassword = Proteggi con una password
|
||||
emailPlaceholder = Inserisci il tuo indirizzo email
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Accedi per inviare fino a { $size }
|
||||
signInButton = Accedi o registrati
|
||||
signInOnlyButton = Accedi
|
||||
accountBenefitTitle = Crea un account { -firefox } o accedi
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Condividi file fino a { $size }
|
||||
@@ -137,3 +137,11 @@ noStreamsWarning = Questo browser potrebbe non essere in grado di decrittare un
|
||||
noStreamsOptionCopy = Copia il link e aprilo in un altro browser
|
||||
noStreamsOptionFirefox = Prova il nostro browser preferito
|
||||
noStreamsOptionDownload = Continua con questo browser
|
||||
downloadFirefoxPromo = { -send-short-brand } è offerto dal nuovissimo { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Condividi il link al tuo file:
|
||||
shareLinkButton = Condividi link
|
||||
# $name is the name of the file
|
||||
shareMessage = Scarica “{ $name }” con { -send-brand }: condivisione di file semplice e sicura
|
||||
trailheadPromo = C’è un modo per proteggere la tua privacy. Entra a far parte di Firefox.
|
||||
learnMore = Ulteriori informazioni.
|
||||
|
||||
@@ -118,7 +118,7 @@ addPassword = パスワードで保護
|
||||
emailPlaceholder = メールアドレスを入力
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = ログインすると最大 { $size } のファイルを送信できます
|
||||
signInButton = ログイン/登録
|
||||
signInOnlyButton = ログイン
|
||||
accountBenefitTitle = { -firefox } アカウントを作成またはログイン
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = 最大 { $size } までのファイルを共有
|
||||
@@ -135,3 +135,8 @@ downloadingTitle = ダウンロード中
|
||||
noStreamsWarning = このブラウザーは、この大きさのファイルを復号化できません。
|
||||
noStreamsOptionCopy = リンクをコピーして他のブラウザーで開いてください
|
||||
noStreamsOptionDownload = このブラウザーで続ける
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = ファイルへのリンクを共有しましょう:
|
||||
shareLinkButton = リンクを共有
|
||||
# $name is the name of the file
|
||||
shareMessage = { -send-brand } で "{ $name }" をダウンロード: シンプルで安全なファイル共有
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = პაროლით დაცვა
|
||||
emailPlaceholder = შეიყვანეთ ელფოსტა
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = შედით ანგარიშზე, რომ გაგზავნოთ { $size }-მდე
|
||||
signInButton = ანგარიშზე შესვლა/შექმნა
|
||||
signInOnlyButton = შესვლა
|
||||
accountBenefitTitle = შექმენით { -firefox }-ანგარიში ან შედით
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = გააზიარეთ ფაილები { $size }-მდე
|
||||
@@ -145,3 +145,11 @@ noStreamsWarning = ამ ბრაუზერმა, შესაძლოა
|
||||
noStreamsOptionCopy = ბმულის ასლის აღება სხვა ბრაუზერში გასახსნელად
|
||||
noStreamsOptionFirefox = სცადეთ ჩვენი რჩეული ბრაუზერი
|
||||
noStreamsOptionDownload = განაგრძეთ ამ ბრაუზერით
|
||||
downloadFirefoxPromo = { -send-short-brand }-ს წარმოგიდგინეთ უახლესი { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = ფაილის ბმულის გაზიარება:
|
||||
shareLinkButton = ბმულის გაზიარება
|
||||
# $name is the name of the file
|
||||
shareMessage = ჩამოტვირთეთ „{ $name }“ { -send-brand }-ით: ფაილების გაზიარება მარტივად, უსაფრთხოდ
|
||||
trailheadPromo = გზა, თქვენი პირადულობის დასაცავად. შემოუერთდით Firefox-ს.
|
||||
learnMore = იხილეთ ვრცლად.
|
||||
|
||||
@@ -1,31 +1,9 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = Tarmit web
|
||||
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...
|
||||
verifyingFile = Asenqed...
|
||||
encryptingFile = Awgelhen...
|
||||
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 =
|
||||
{ $num ->
|
||||
[one] 1 usider
|
||||
@@ -36,76 +14,26 @@ timespanHours =
|
||||
[one] 1 usrag
|
||||
*[other] { $num } isragen
|
||||
}
|
||||
copyUrlFormLabelWithName = Nɣel sakin Bḍu aseɣwen akken ad tazneḍ afaylu-ik: { $filename }
|
||||
copyUrlFormButton = Sers ɣef afus
|
||||
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
|
||||
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
|
||||
downloadNotification = Asider-ik 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 })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
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!
|
||||
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 }.
|
||||
linkExpiredAlt = Aseɣwen yemmut
|
||||
expiredPageHeader = Aseɣwen-agi yemmut neɣ wurǧin yella seg tazwara!
|
||||
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?
|
||||
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
|
||||
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
|
||||
deleteButtonHover = Kkes
|
||||
copyUrlHover = Nɣel URL.
|
||||
footerLinkLegal = Usḍif
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Ɣef Test Pilot
|
||||
footerLinkPrivacy = Tabaḍnit
|
||||
footerLinkTerms = Tiwtilin
|
||||
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.
|
||||
reportIPInfringement = Neqqes akukel n IP
|
||||
javascriptRequired = Firefox Send yesra JavaScript
|
||||
whyJavascript = Ayɣer firefox Send yesra JavaScript?
|
||||
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
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
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
|
||||
maxPasswordLength = Tuγzi tafellayt n wawal uffir: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
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 = 가져오는 중…
|
||||
encryptingFile = 암호화 중…
|
||||
decryptingFile = 복호화 중…
|
||||
downloadCount = 1 다운로드
|
||||
downloadCount = { $num } 다운로드
|
||||
timespanHours = 1 시간
|
||||
copiedUrl = 복사 완료!
|
||||
unlockInputPlaceholder = 비밀번호
|
||||
@@ -18,7 +18,7 @@ fileTooBig = 파일의 크기가 너무 큽니다. { $size } 보다 작아야
|
||||
linkExpiredAlt = 링크가 만료됨
|
||||
notSupportedHeader = 이 브라우저는 지원되지 않습니다.
|
||||
notSupportedLink = 왜 이 브라우저는 지원이 되지 않나요?
|
||||
notSupportedOutdatedDetail = 안타깝게도 현재 브라우저 버전에서는 Firefox Send에 사용되는 웹 기술을 지원하지 않습니다. 브라우저 업데이트가 필요합니다.
|
||||
notSupportedOutdatedDetail = 안타깝게도 사용중인 Firefox 버전에서는 Firefox Send에 사용되는 웹 기술을 지원하지 않습니다. 브라우저 업데이트가 필요합니다.
|
||||
updateFirefox = Firefox 업데이트
|
||||
deletePopupCancel = 아니오
|
||||
deleteButtonHover = 삭제
|
||||
@@ -45,7 +45,7 @@ passwordSetError = 이 비밀번호를 설정할 수 없었습니다
|
||||
-send-short-brand = Send
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = 간단하고 안전한 파일 공유
|
||||
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'
|
||||
@@ -82,8 +82,51 @@ totalSize = 전체 크기: { $size }
|
||||
copyLinkDescription = 링크를 복사해서 파일을 공유하세요:
|
||||
copyLinkButton = 링크 복사
|
||||
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 }
|
||||
legalTitle = { -send-short-brand } 개인정보 보호 공지
|
||||
legalDateStamp = 버전 1.0, 2019년 3월 12일 출시됨
|
||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||
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 = 로그인/등록
|
||||
signOut = 로그 아웃
|
||||
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 = 이 브라우저는 이렇게 큰 용량의 파일 암호화를 풀 수 없을 수도 있습니다.
|
||||
noStreamsOptionCopy = 다른 브라우저에서 열 수 있도록 링크를 복사
|
||||
noStreamsOptionFirefox = 우리가 애용하는 브라우저를 사용해 보세요
|
||||
noStreamsOptionDownload = 이 브라우저로 계속하기
|
||||
|
||||
@@ -142,7 +142,7 @@ addPassword = Apsaugoti slaptažodžiu
|
||||
emailPlaceholder = Įveskite savo el. pašto adresą
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Prisijunkite, jeigu norite siųsti iki { $size }
|
||||
signInButton = Prisijungti / registruotis
|
||||
signInOnlyButton = Prisijungti
|
||||
accountBenefitTitle = Susikurkite „{ -firefox }“ paskyrą arba prisijunkite
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Dalinkitės iki { $size } dydžio failais
|
||||
@@ -162,3 +162,9 @@ noStreamsWarning = jūsų naršyklei gali nepavykti iššifruoti tokio didelio f
|
||||
noStreamsOptionCopy = Nukopijuokite saitą ir atverkite jį kita naršykle
|
||||
noStreamsOptionFirefox = Išbandykite mūsų mėgstamiausią naršyklę
|
||||
noStreamsOptionDownload = Tęsti naudojantis šia naršykle
|
||||
downloadFirefoxPromo = „{ -send-short-brand }“ jums atkeliauja iš naujosios „{ -firefox }“.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Pasidalinkite saitu į jūsų failą:
|
||||
shareLinkButton = Dalintis saitu
|
||||
# $name is the name of the file
|
||||
shareMessage = Atsisiųskite „{ $name }“ su „{ -send-brand }“: paprastas, saugus dalinimasis failais
|
||||
|
||||
153
public/locales/ml/send.ftl
Normal file
153
public/locales/ml/send.ftl
Normal file
@@ -0,0 +1,153 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = ഫയർഫോക്സ് സെൻഡ്
|
||||
siteFeedback = പ്രതികരണം
|
||||
importingFile = ഇറക്കുമതി ചെയ്യുന്നു...
|
||||
encryptingFile = എൻക്രിപ്റ്റ് ചെയ്യുന്നു...
|
||||
decryptingFile = ഡീക്രിപ്റ്റ് ചെയ്യുന്നു...
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] ഒരു ഡൗൺലോഡ്
|
||||
*[other] { $num } ഡൗൺലോഡുകൾ
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 മണിക്കൂർ
|
||||
*[other] { $num } മണിക്കൂറുകൾ
|
||||
}
|
||||
copiedUrl = പകർത്തി!
|
||||
unlockInputPlaceholder = രഹസ്യവാക്ക്
|
||||
unlockButtonLabel = തുറക്കുക
|
||||
downloadButtonLabel = ഡൗൺലോഡ്
|
||||
downloadFinish = ഡൗൺലോഡ് പൂർത്തിയായി
|
||||
fileSizeProgress = ({ $totalSize } -ന്റെ { $partialSize })
|
||||
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] മിനുട്ട്
|
||||
*[other] { $num } മിനുട്ട്
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] 1 ദിവസം
|
||||
*[other] { $num } ദിവസം
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] 1 ആഴ്ച
|
||||
*[other] { $num } ആഴ്ച
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] 1 ഫയൽ
|
||||
*[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] ഒരേസമയം 1 ഫയൽ മാത്രമേ അപ്ലോഡു ചെയ്യാൻ കഴിയൂ.
|
||||
*[other] ഒരേസമയം { $count } ഫയലുകൾ മാത്രമേ അപ്ലോഡു ചെയ്യാൻ കഴിയൂ.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] ഒരു ആർക്കൈവ് മാത്രമേ അനുവദിച്ചിട്ടുള്ളൂ.
|
||||
*[other] { $count } ആർക്കൈവുകൾ മാത്രമേ അനുവദിച്ചിട്ടുള്ളൂ.
|
||||
}
|
||||
expiredTitle = ഈ ലിങ്ക് കാലഹരണപ്പെട്ടു.
|
||||
notSupportedDescription = ഈ ബ്രൌസറിൽ { -send-brand } പ്രവർത്തിക്കില്ല. { -send-short-brand } { -firefox }- ന്റെ ഏറ്റവും പുതിയ പതിപ്പിൽ വളരെ നന്നായി പ്രവർത്തിക്കുന്നു, കൂടാതെ മിക്ക ബ്രൌസറുകളുടെയും നിലവിലെ പതിപ്പിൽ പ്രവർത്തിക്കുകയും ചെയ്യും.
|
||||
downloadFirefox = { -firefox } ഡൗണ്ലോഡ് ചെയ്യുക
|
||||
legalTitle = { -send-short-brand } സ്വകാര്യതാ അറിയിപ്പ്
|
||||
legalDateStamp = 2019 മാർച്ച് 12 തീയതിയിൽ പതിപ്പ് 1.0
|
||||
# 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 } വരെയുള്ള ഫയലുകൾ അയയ്ക്കുന്നതിന് പ്രവേശിക്കുക
|
||||
signInOnlyButton = പ്രവേശിയ്ക്കുക
|
||||
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] ഒരു ദിവസം വരെ ലിങ്കുകൾ സജീവമായി നിലനിർത്തുക
|
||||
*[other] { $count } ദിവസം വരെ ലിങ്കുകൾ സജീവമായി നിലനിർത്തുക
|
||||
}
|
||||
accountBenefitSync = ഏതൊരു ഉപകരണത്തിൽ നിന്നും പങ്കിട്ട ഫയലുകൾ കൈകാര്യം ചെയ്യുക
|
||||
accountBenefitMoz = മറ്റ് { -mozilla } സേവനങ്ങളെക്കുറിച്ച് അറിയുക
|
||||
signOut = പുറത്തിറങ്ങുക
|
||||
okButton = ശരി
|
||||
downloadingTitle = ഡൌണ്ലോഡ് ചെയ്യുന്നു
|
||||
noStreamsWarning = ഇത്ര വലിയ ഫയൽ ബ്രൌസറില് ഡീക്രിപ്റ്റ് ചെയ്യാൻ കഴിഞ്ഞേക്കില്ല.
|
||||
noStreamsOptionCopy = മറ്റൊരു ബ്രൗസറിൽ തുറക്കുന്നതിന് ലിങ്ക് പകർത്തുക
|
||||
noStreamsOptionFirefox = ഞങ്ങളുടെ പ്രിയപ്പെട്ട ബ്രൗസർ പരീക്ഷിക്കുക
|
||||
noStreamsOptionDownload = ഈ ബ്രൗസറിൽ തുടരുക
|
||||
downloadFirefoxPromo = എറ്റവും പുതിയ { -firefox } { -send-short-brand } മുഖേന നിങ്ങൾക്ക് എത്തിച്ചിരിക്കുന്നു.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = നിങ്ങളുടെ ഫയലിനുള്ള കണ്ണി പങ്കിടുക:
|
||||
shareLinkButton = കണ്ണി പങ്കിടുക
|
||||
# $name is the name of the file
|
||||
shareMessage = "{ -send-brand }" ഉപയോഗിച്ച് { $name } ഡൌൺലോഡ് ചെയ്യുക: ലളിതവും സുരക്ഷിതവുമായ ഫയൽ പങ്കിടൽ
|
||||
@@ -126,7 +126,7 @@ addPassword = Beveiligen met wachtwoord
|
||||
emailPlaceholder = Voer uw e-mailadres in
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Meld u aan om tot { $size } te versturen
|
||||
signInButton = Aanmelden/Registreren
|
||||
signInOnlyButton = Aanmelden
|
||||
accountBenefitTitle = Maak een { -firefox }-account of meld u aan
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Bestanden tot { $size } delen
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Deze browser kan een bestand van deze omvang mogelijk niet on
|
||||
noStreamsOptionCopy = Koppeling kopiëren om in een andere browser te openen
|
||||
noStreamsOptionFirefox = Onze favoriete browser proberen
|
||||
noStreamsOptionDownload = Doorgaan met deze browser
|
||||
downloadFirefoxPromo = { -send-short-brand } wordt u aangeboden door het volledig vernieuwde { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Deel de koppeling naar uw bestand:
|
||||
shareLinkButton = Koppeling delen
|
||||
# $name is the name of the file
|
||||
shareMessage = Download ‘{ $name }’ met { -send-brand }: eenvoudig, veilig bestanden delen
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Vern med passord
|
||||
emailPlaceholder = Skriv inn e-postadressa di
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Logg inn for å sende filer på opptil { $size }
|
||||
signInButton = Logg inn/Registrer deg
|
||||
signInOnlyButton = Logg inn
|
||||
accountBenefitTitle = Lag ein { -firefox }-konto eller logg inn
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Del filer på opptil { $size }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Denne nettlesaren kan kanskje ikkje dekryptere ei så stor fi
|
||||
noStreamsOptionCopy = Kopier lenka for å opne henne i ein annan nettlesar
|
||||
noStreamsOptionFirefox = Prøv favorittnettlesaren vår
|
||||
noStreamsOptionDownload = Fortset med denne nettlesaren
|
||||
downloadFirefoxPromo = { -send-short-brand } vert presentert for deg av den heilt nye { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Del lenka til fila di:
|
||||
shareLinkButton = Del lenke
|
||||
# $name is the name of the file
|
||||
shareMessage = Last ned "{ $name }" med { -send-brand }: enkel, trygg fildelning
|
||||
|
||||
153
public/locales/pa-IN/send.ftl
Normal file
153
public/locales/pa-IN/send.ftl
Normal file
@@ -0,0 +1,153 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = ਸੁਝਾਅ
|
||||
importingFile = ...ਦਰਾਮਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||
encryptingFile = ...ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||
decryptingFile = ...ਡਿਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 ਡਾਊਨਲੋਡ
|
||||
*[other] { $num } ਡਾਊਨਲੋਡ
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 ਘੰਟਾ
|
||||
*[other] { $num } ਘੰਟੇ
|
||||
}
|
||||
copiedUrl = ਨਕਲ ਕੀਤਾ!
|
||||
unlockInputPlaceholder = ਪਾਸਵਰਡ
|
||||
unlockButtonLabel = ਅਣ-ਲਾਕ ਕਰੋ
|
||||
downloadButtonLabel = ਡਾਊਨਲੋਡ ਕਰੋ
|
||||
downloadFinish = ਡਾਊਨਲੋਡ ਪੂਰਾ ਹੋਇਆ
|
||||
fileSizeProgress = ({ $totalSize } ਵਿੱਚੋਂ { $partialSize })
|
||||
sendYourFilesLink = Firefox Send ਵਰਤੋ
|
||||
errorPageHeader = ਕੁਝ ਗਲਤ ਵਾਪਰਿਆ!
|
||||
fileTooBig = ਇਹ ਫਾਇਲ ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਬਹੁਤ ਵੱਡੀ ਹੈ। ਇਸ { $size } ਤੋਂ ਘੱਟ ਚਾਹੀਦੀ ਹੈ
|
||||
linkExpiredAlt = ਲਿੰਕ ਦੀ ਮਿਆਦ ਪੁੱਗੀ
|
||||
notSupportedHeader = ਤੁਹਾਡਾ ਬਰਾਊਜ਼ਰ ਸਹਾਇਕ ਨਹੀਂ ਹੈ।
|
||||
notSupportedLink = ਮੇਰਾ ਬਰਾਊਜ਼ਰ ਸਹਾਇਕ ਕਿਉ ਨਹੀਂ ਹੈ?
|
||||
notSupportedOutdatedDetail = ਅਫ਼ਸੋਸ ਹੈ ਕਿ ਫਾਇਰਫਾਕਸ ਦਾ ਇਹ ਵਰਜ਼ਨ ਵੈੱਬ ਤਕਨਾਲੋਜੀ ਲਈ ਸਹਾਇਕ ਨਹੀਂ ਹੈ, ਜੋ ਕਿ Firefox Send ਨੂੰ ਬਣਾਉਂਦੀਆਂ ਹਨ। ਤੁਹਾਨੂੰ ਆਪਣੇ ਬਰਾਊਜ਼ਰ ਨੂੰ ਅੱਪਡੇਟ ਕਰਨ ਦੀ ਲੋੜ ਹੋਵੇਗੀ।
|
||||
updateFirefox = ਫਾਇਰਫਾਕਸ ਅੱਪਡੇਟ ਕਰੋ
|
||||
deletePopupCancel = ਰੱਦ ਕਰੋ
|
||||
deleteButtonHover = ਹਟਾਓ
|
||||
footerLinkLegal = ਕਨੂੰਨ
|
||||
footerLinkPrivacy = ਪਰਦੇਦਾਰੀ
|
||||
footerLinkCookies = ਕੂਕੀਜ਼
|
||||
passwordTryAgain = ਗਲਤ ਪਾਸਵਰਡ ਹੈ। ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
|
||||
javascriptRequired = Firefox Send ਲਈ ਜਾਵਾ-ਸਕ੍ਰਿਪਟ ਚਾਹੀਦੀ ਹੈ
|
||||
whyJavascript = Firefox Send ਨੂੰ ਜਾਵਾ-ਸਕ੍ਰਿਪਟ ਦੀ ਲੋੜ ਕਿਓ ਹੈ?
|
||||
enableJavascript = ਜਾਵਾ-ਸਕ੍ਰਿਪਟ ਸਮਰੱਥ ਕਰੋ ਤੇ ਮੁੜ ਕੋਸ਼ਿਸ਼ ਕਰੋ।
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }ਘੰ { $minutes }ਮਿੰ
|
||||
# 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 = Firefox Send
|
||||
-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] 1 ਮਿੰਟ
|
||||
*[other] { $num } ਮਿੰਟ
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] 1 ਦਿਨ
|
||||
*[other] { $num } ਦਿਨ
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] 1 ਹਫ਼ਤਾ
|
||||
*[other] { $num } ਹਫ਼ਤੇ
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] 1 ਫ਼ਾਇਲ
|
||||
*[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] ਇੱਕ ਵੇਲੇ ਸਿਰਫ਼ 1 ਫਾਇਲ ਹੀ ਅੱਪਲੋਡ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ।
|
||||
*[other] ਇੱਕ ਵੇਲੇ ਸਿਰਫ਼ { $count } ਫਾਇਲਾਂ ਨੂੰ ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] ਸਿਰਫ਼ 1 ਅਕਾਇਵ ਦੀ ਇਜਾਜ਼ਤ ਹੈ।
|
||||
*[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 } ਤੱਕ ਭੇਜਣ ਲਈ ਸਾਇਨ ਅੱਪ ਕਰੋ
|
||||
signInOnlyButton = ਸਾਇਨ ਇਨ
|
||||
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 = ਸਾਈਨ ਆਉਟ
|
||||
okButton = ਠੀਕ ਹੈ
|
||||
downloadingTitle = ਡਾਊਨਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||
noStreamsWarning = ਇਹ ਬਰਾਊਜ਼ਰ ਨੂੰ ਇਸ ਵੱਡੀ ਫਾਇਲ ਨੂੰ ਡਿਕ੍ਰਿਪਟ ਕਰਨ ਲਈ ਸਮਰੱਥ ਨਹੀਂ ਹੋ ਸਕਦਾ ਹੈ।
|
||||
noStreamsOptionCopy = ਹੋਰ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਖੋਲ੍ਹਣ ਲਈ ਲਿੰਕ ਨੂੰ ਕਾਪੀ ਕਰੋ
|
||||
noStreamsOptionFirefox = ਸਾਡੇ ਮਨਪਸੰਦ ਬਰਾਊਜ਼ਰ ਵਰਤ ਕੇ ਵੇਖੋ
|
||||
noStreamsOptionDownload = ਇਸ ਬਰਾਊਜ਼ਰ ਨਾਲ ਜਾਰੀ ਰੱਖੋ
|
||||
downloadFirefoxPromo = { -send-short-brand } ਤੁਹਾਡੇ ਲਈ ਬਿਲਕੁਲ ਨਵਾਂ { -firefox } ਹੈ।
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = ਆਪਣੀ ਫਾਇਲ ਲਈ ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ:
|
||||
shareLinkButton = ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ
|
||||
# $name is the name of the file
|
||||
shareMessage = { -send-brand } ਨਾਲ "{ $name }" ਡਾਊਨਲੋਡ ਕਰੋ: ਸੌਖਾ, ਸੁਰੱਖਿਅਤ ਫਾਇਲ ਸਾਂਝਾ ਕਰਨਾ
|
||||
@@ -117,8 +117,8 @@ tooManyArchives =
|
||||
*[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
|
||||
notSupportedDescription = { -send-brand } nie będzie działać w tej przeglądarce. { -send-short-brand } najlepiej działa w najnowszej wersji przeglądarki { -firefox }, ale będzie działać także w aktualnych wersjach większości przeglądarek.
|
||||
downloadFirefox = Pobierz przeglądarkę { -firefox }
|
||||
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"
|
||||
@@ -134,8 +134,8 @@ 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ę
|
||||
signInOnlyButton = Zaloguj się
|
||||
accountBenefitTitle = Utwórz konto { -firefox } 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
|
||||
@@ -146,7 +146,7 @@ accountBenefitTimeLimit =
|
||||
*[many] Odnośniki aktywne przez { $count } dni
|
||||
}
|
||||
accountBenefitSync = Zarządzaj udostępnionymi plikami z każdego urządzenia
|
||||
accountBenefitMoz = Poznaj inne serwisy Mozilli
|
||||
accountBenefitMoz = Poznaj inne serwisy organizacji { -mozilla }
|
||||
signOut = Wyloguj się
|
||||
okButton = OK
|
||||
downloadingTitle = Pobieranie
|
||||
@@ -154,3 +154,9 @@ noStreamsWarning = Ta przeglądarka może nie być w stanie odszyfrować tak du
|
||||
noStreamsOptionCopy = Skopiuj odnośnik, aby otworzyć w innej przeglądarce
|
||||
noStreamsOptionFirefox = Wypróbuj naszą ulubioną przeglądarkę
|
||||
noStreamsOptionDownload = Kontynuuj za pomocą tej przeglądarki
|
||||
downloadFirefoxPromo = { -send-short-brand } jest oferowany przez zupełnie nową przeglądarkę { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Udostępnij odnośnik do pliku:
|
||||
shareLinkButton = Udostępnij odnośnik
|
||||
# $name is the name of the file
|
||||
shareMessage = Pobierz „{ $name }” za pomocą { -send-brand }: prostego i bezpiecznego udostępniania plików
|
||||
|
||||
@@ -126,7 +126,7 @@ addPassword = Proteger com senha
|
||||
emailPlaceholder = Informe seu e-mail
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Entre na sua conta para enviar até { $size }
|
||||
signInButton = Entrar / Cadastrar-se
|
||||
signInOnlyButton = Entrar
|
||||
accountBenefitTitle = Crie uma Conta { -firefox } ou entre na sua conta
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Compartilhe arquivos até { $size }
|
||||
@@ -145,3 +145,9 @@ noStreamsWarning = Este navegador pode não conseguir descriptografar um arquivo
|
||||
noStreamsOptionCopy = Copiar o link para abrir em outro navegador
|
||||
noStreamsOptionFirefox = Experimentar nosso navegador preferido
|
||||
noStreamsOptionDownload = Continuar com este navegador
|
||||
downloadFirefoxPromo = O { -send-short-brand } é apresentado pelo novo { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Compartilhe o link para o seu arquivo:
|
||||
shareLinkButton = Compartilhar link
|
||||
# $name is the name of the file
|
||||
shareMessage = Baixe "{ $name }" com o { -send-brand }: compartilhamento de arquivos simples e seguro
|
||||
|
||||
@@ -122,7 +122,7 @@ addPassword = Proteger com palavra-passe
|
||||
emailPlaceholder = Introduzir o seu email
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Iniciar sessão para enviar até { $size }
|
||||
signInButton = Iniciar sessão/registar
|
||||
signInOnlyButton = Iniciar sessão
|
||||
accountBenefitTitle = Crie uma Conta { -firefox } ou inicie sessão
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Partilhe ficheiros até { $size }
|
||||
@@ -141,3 +141,9 @@ noStreamsWarning = Este navegador pode não conseguir desencriptar um ficheiro t
|
||||
noStreamsOptionCopy = Copie a ligação para abrir noutro navegador
|
||||
noStreamsOptionFirefox = Experimente o nosso navegador favorito
|
||||
noStreamsOptionDownload = Continuar com este navegador
|
||||
downloadFirefoxPromo = O { -send-short-brand } é trazido a si pelo novo { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Partilhe a ligação para o seu ficheiro:
|
||||
shareLinkButton = Partilhar ligação
|
||||
# $name is the name of the file
|
||||
shareMessage = Transferir “{ $name }“ com o { -send-brand }: partilha de ficheiros simples e segura
|
||||
|
||||
@@ -119,7 +119,7 @@ tooManyArchives =
|
||||
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 }
|
||||
legalTitle = Politica de confidențialitate { -send-short-brand }
|
||||
legalTitle = Declarație de confidențialitate { -send-short-brand }
|
||||
legalDateStamp = Versiunea 1.0 din data de 12 martie 2019
|
||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||
expiresDaysHoursMinutes = { $days }z { $hours }h { $minutes }m
|
||||
@@ -134,7 +134,7 @@ addPassword = Protejează cu parolă
|
||||
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
|
||||
signInOnlyButton = Autentificare
|
||||
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 }
|
||||
@@ -154,3 +154,9 @@ noStreamsWarning = Este posibil ca acest browser să nu poată decripta un fiși
|
||||
noStreamsOptionCopy = Copiază linkul pentru a-l deschide într-un alt browser
|
||||
noStreamsOptionFirefox = Încearcă browserul nostru favorit
|
||||
noStreamsOptionDownload = Continuă cu acest browser
|
||||
downloadFirefoxPromo = { -send-short-brand } îți este adus de noul { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Partajează linkul către fișier:
|
||||
shareLinkButton = Partajează linkul
|
||||
# $name is the name of the file
|
||||
shareMessage = Descarcă „{ $name }” cu { -send-brand }: partajare simplă și sigură a fișierelor
|
||||
|
||||
@@ -134,7 +134,7 @@ addPassword = Защитить паролем
|
||||
emailPlaceholder = Введите ваш адрес электронной почты
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Войдите, чтобы отправлять файлы до { $size }
|
||||
signInButton = Войти/Зарегистрироваться
|
||||
signInOnlyButton = Войти
|
||||
accountBenefitTitle = Создайте Аккаунт { -firefox } или войдите
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Делитесь файлами до { $size }
|
||||
@@ -154,3 +154,9 @@ noStreamsWarning = Этот браузер может не иметь возмо
|
||||
noStreamsOptionCopy = Скопируйте ссылку, чтобы открыть в другом браузере
|
||||
noStreamsOptionFirefox = Попробуйте наш любимый браузер
|
||||
noStreamsOptionDownload = Продолжить в этом браузере
|
||||
downloadFirefoxPromo = { -send-short-brand } доступен вам в полностью новом { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Поделитесь ссылкой на ваш файл:
|
||||
shareLinkButton = Поделиться ссылкой
|
||||
# $name is the name of the file
|
||||
shareMessage = Загрузите «{ $name }» с { -send-brand }: простой и безопасный обмен файлами
|
||||
|
||||
@@ -134,7 +134,7 @@ addPassword = Chrániť heslom
|
||||
emailPlaceholder = Zadajte e-mailovú adresu
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Pre odoslanie súborov s veľkosťou až { $size }, sa, prosím, prihláste
|
||||
signInButton = Prihlásiť sa/Zaregistrovať sa
|
||||
signInOnlyButton = Prihlásiť sa
|
||||
accountBenefitTitle = Vytvorte si účet { -firefox } alebo sa prihláste
|
||||
# $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 }
|
||||
@@ -154,3 +154,11 @@ noStreamsWarning = Tento prehliadač nemusí byť schopný dešifrovať takto ve
|
||||
noStreamsOptionCopy = Skopírovať odkaz pre otvorenie v inom prehliadači
|
||||
noStreamsOptionFirefox = Vyskúšajte náš obľúbený prehliadač
|
||||
noStreamsOptionDownload = Pokračovať v tomto prehliadači
|
||||
downloadFirefoxPromo = { -send-short-brand } vám prináša najnovší { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Zdieľajte odkaz na súbor:
|
||||
shareLinkButton = Zdieľať odkaz
|
||||
# $name is the name of the file
|
||||
shareMessage = Prevezmite si súbor „{ $name }“ so službou { -send-brand } - jednoduché a bezpečné zdieľanie súborov
|
||||
trailheadPromo = Existuje spôsob, ako chrániť vaše súkromie. Prihláste sa do Firefoxu.
|
||||
learnMore = Ďalšie informácie.
|
||||
|
||||
@@ -158,7 +158,7 @@ addPassword = Zaščiti z geslom
|
||||
emailPlaceholder = Vnesite e-poštni naslov
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Prijavite se za pošiljanje do { $size }
|
||||
signInButton = Prijava/Registracija
|
||||
signInOnlyButton = Prijava
|
||||
accountBenefitTitle = Ustvarite { -firefox } Račun ali se prijavite
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Delite datoteke do velikosti { $size }
|
||||
@@ -179,3 +179,11 @@ noStreamsWarning = Ta brskalnik morda ne bo zmogel dešifrirati tako velike dato
|
||||
noStreamsOptionCopy = Kopirajte povezavo, da jo odprete v drugem brskalniku
|
||||
noStreamsOptionFirefox = Poskusite z našim najljubšim brskalnikom
|
||||
noStreamsOptionDownload = Nadaljujte s tem brskalnikom
|
||||
downloadFirefoxPromo = { -send-short-brand } vam omogoča čisto novi { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Delite povezavo do datoteke:
|
||||
shareLinkButton = Deli povezavo
|
||||
# $name is the name of the file
|
||||
shareMessage = Prenesite "{ $name }" s { -send-brand }om: enostavno in varno deljenje datotek
|
||||
trailheadPromo = Vašo zasebnost lahko zaščitite. Pridružite se Firefoxu.
|
||||
learnMore = Več o tem.
|
||||
|
||||
@@ -1,31 +1,9 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = eksperiment web
|
||||
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…
|
||||
verifyingFile = Po verifikohet…
|
||||
encryptingFile = Po fshehtë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 =
|
||||
{ $num ->
|
||||
[one] 1 shkarkimi
|
||||
@@ -36,76 +14,26 @@ timespanHours =
|
||||
[one] 1 ore
|
||||
*[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!
|
||||
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
|
||||
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
|
||||
downloadNotification = Shkarkimi juaj u plotësua.
|
||||
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
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
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!
|
||||
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 }.
|
||||
linkExpiredAlt = Lidhja skadoi
|
||||
expiredPageHeader = Kjo lidhje ka skaduar ose s’ka ekzistuar kurrë!
|
||||
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?
|
||||
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
|
||||
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
|
||||
deleteButtonHover = Fshije
|
||||
copyUrlHover = Kopjoji URL-në
|
||||
footerLinkLegal = Ligjore
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Rreth Pilot Testesh
|
||||
footerLinkPrivacy = Privatësi
|
||||
footerLinkTerms = Kushte
|
||||
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.
|
||||
reportIPInfringement = Raportoni Cenim IP-je
|
||||
javascriptRequired = Firefox Send lyp JavaScript
|
||||
whyJavascript = Ç’i duhet Firefox Send-it JavaScript-i?
|
||||
enableJavascript = Ju lutemi, aktivizoni JavaScript-in dhe riprovoni.
|
||||
@@ -113,9 +41,113 @@ enableJavascript = Ju lutemi, aktivizoni JavaScript-in dhe riprovoni.
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Fjalëkalimi u caktua
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Gjatësi maksimum fjalëkalimi: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
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 }
|
||||
signInOnlyButton = Hyni
|
||||
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
|
||||
downloadFirefoxPromo = { -send-short-brand } ju vjen nga { -firefox }-i i ri fringo.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Ndani me të tjerët lidhjen për te kartela juaj:
|
||||
shareLinkButton = Ndani me të tjerët lidhjen
|
||||
# $name is the name of the file
|
||||
shareMessage = Shkarkojeni “{ $name }” me { -send-brand }: shkëmbim kartelash dhe thjesht dhe pa rrezik
|
||||
|
||||
151
public/locales/su/send.ftl
Normal file
151
public/locales/su/send.ftl
Normal file
@@ -0,0 +1,151 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Pangdeudeul
|
||||
importingFile = Ngimpor...
|
||||
encryptingFile = Ngénkripsi...
|
||||
decryptingFile = Ngadékripsi...
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[other] { $num } undeuran
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[other] { $num } jam
|
||||
}
|
||||
copiedUrl = Ditiron!
|
||||
unlockInputPlaceholder = Kecap sandi
|
||||
unlockButtonLabel = Laan konci
|
||||
downloadButtonLabel = Undeur
|
||||
downloadFinish = Undeuran anggeus
|
||||
fileSizeProgress = ({ $partialSize } ti { $totalSize })
|
||||
sendYourFilesLink = Pecakan Firefox Send
|
||||
errorPageHeader = Aya nu salah!
|
||||
fileTooBig = Koropak unjalkeuneun badag teuing. Kudu kurang ti { $size }.
|
||||
linkExpiredAlt = Tutumbu kadaluwarsa
|
||||
notSupportedHeader = Panyungsi anjeun teu dirojong
|
||||
notSupportedLink = Naha panyungsi kuring teu dirojong?
|
||||
notSupportedOutdatedDetail = Hanjakal Firefox vérsi ieu teu ngarojong téhnologi wéb nu ngagerakkeun Firefox Send. Anjeun perlu ngapdét panyungsi anjeun.
|
||||
updateFirefox = Apdét Firefox
|
||||
deletePopupCancel = Bolay
|
||||
deleteButtonHover = Pupus
|
||||
footerLinkLegal = Légal
|
||||
footerLinkPrivacy = Privasi
|
||||
footerLinkCookies = Kuki
|
||||
passwordTryAgain = Kecap sandi salah. Pecakan deui.
|
||||
javascriptRequired = Firefox Send merlukeun JavaScript
|
||||
whyJavascript = Naha Firefox Send merlukeun JavaScript?
|
||||
enableJavascript = Prak hurungkeun JavaScript sarta pecakan deui.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }j { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Panjang sandi maksimal: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Ieu kecap sandi teu bisa disét
|
||||
|
||||
## 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 = Simpel, babagi koropak privat
|
||||
introDescription = { -send-brand } migampang anjeun babagi koropak kalawan énkripsi tungtung-ka-tungtung sarta tutumbu nu otomatis kadaluwarsa. Sahingga anjeun bisa ngaraksa naon nu ku anjeun bagi sacara privat jeung mastikeun banda anjeun teu salawasna daring.
|
||||
notifyUploadEncryptDone = Koropak anjeun kaénkripsi sarta siap dikirim.
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Kadaluwarsa sanggeu { $downloadCount } atawa { $timespan }
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
[one] samenit
|
||||
*[other] { $num } menit
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] sapoé
|
||||
*[other] { $num } poé
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] saminggu
|
||||
*[other] { $num } minggu
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] sakoropak
|
||||
*[other] { $num } koropak
|
||||
}
|
||||
# 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 = Ukuran total: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Tiron tutumbu pikeun babagi koropak anjeun:
|
||||
copyLinkButton = Tiron tutumbu
|
||||
downloadTitle = Undeur koropak
|
||||
downloadDescription = Ieu koropak geus dibagikeun liwat { -send-brand } kalawan énkripsi tungtung-ka-tungtung sarta tutumbuna otomatis kadaluwarsa.
|
||||
trySendDescription = Pecakan { -send-brand } pikeun simpelna, babagi koropak aman.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Ayeuna kur sakoropak nu bisa diunjal.
|
||||
*[other] Ngan { $count } koropak nu bisa diunjal sakaligus.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Ngan saarsip nu diidinan.
|
||||
*[other] Ngan { $count } arsip nu diidinan.
|
||||
}
|
||||
expiredTitle = Ieu tutumbu geus kadaluwarsa.
|
||||
notSupportedDescription = { -send-brand } moal jalan di ieu panyungsi. { -send-short-brand } jalan naker dina { -firefox } vérsi pamganyarna, sarta bakal jalan di loba panyungsi vérsi kiwari.
|
||||
downloadFirefox = Undeur { -firefox }
|
||||
legalTitle = { -send-short-brand } Wawar Privasi
|
||||
legalDateStamp = Versi 1.0, kaping 12 Maret 2019
|
||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||
expiresDaysHoursMinutes = { $days }p { $hours }j { $minutes }m
|
||||
addFilesButton = Pilih koropak unjalkeuneun
|
||||
uploadButton = Unjal
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Ésérkeun sarta ésotkeun koropak
|
||||
# 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 = atawa klik pikeun ngirim nika { $size }
|
||||
addPassword = Piningan ku kecap sandi
|
||||
emailPlaceholder = Asupkeun surélék anjeun
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Asup sangkan bisa ngirim nika { $size }
|
||||
signInOnlyButton = Asup
|
||||
accountBenefitTitle = Jieun akun { -firefox } atawa asup
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Bagikeun koropak nika { $size }
|
||||
accountBenefitDownloadCount = Bagikeun koropak ka balaréa
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] Aktipkeun tutumbu jang sapoéeun
|
||||
*[other] Aktipkeun tutumbu jang { $count } poé
|
||||
}
|
||||
accountBenefitSync = Kokolakeun koropak nu dibagikeun ti parangkat mana wé
|
||||
accountBenefitMoz = Tengetan ngeunaan layanan { -mozilla } lianna
|
||||
signOut = Kaluar
|
||||
okButton = OKÉH
|
||||
downloadingTitle = Ngundeur
|
||||
noStreamsWarning = Ieu panyungsi kawasna mah teu bisa ngadékrip koropak badag kieu.
|
||||
noStreamsOptionCopy = Tiron tutumbu jang bukaeun di panyungsi séjén
|
||||
noStreamsOptionFirefox = Pecakan panyungsi karesep kami
|
||||
noStreamsOptionDownload = Tuluykeun ku ieu panyungsi
|
||||
downloadFirefoxPromo = { -send-short-brand } téh disanggakeun keur anjeun kalawan { -firefox } sarwa anyar.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Bagikeun tutumbu ka koropak anjeun:
|
||||
shareLinkButton = Bagikeun tutumbu
|
||||
# $name is the name of the file
|
||||
shareMessage = Undeur "{ $name }" ku { -send-brand }: simpel, babagi koropak aman
|
||||
@@ -55,7 +55,7 @@ passwordSetError = Det här lösenordet kunde inte ställas in
|
||||
-mozilla = Mozilla
|
||||
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.
|
||||
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'
|
||||
archiveExpiryInfo = Förfaller efter { $downloadCount } eller { $timespan }
|
||||
timespanMinutes =
|
||||
@@ -126,7 +126,7 @@ addPassword = Skydda med lösenord
|
||||
emailPlaceholder = Ange din e-postadress
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Logga in för att skicka upp till { $size }
|
||||
signInButton = Logga in/registrera dig
|
||||
signInOnlyButton = Logga in
|
||||
accountBenefitTitle = Skapa ett { -firefox }-konto eller logga in
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Dela filer upp till { $size }
|
||||
@@ -145,3 +145,11 @@ noStreamsWarning = Den här webbläsaren kanske inte kan dekryptera en fil så s
|
||||
noStreamsOptionCopy = Kopiera länken för att öppna i en annan webbläsare
|
||||
noStreamsOptionFirefox = Prova vår favoritwebbläsare
|
||||
noStreamsOptionDownload = Fortsätt med den här webbläsaren
|
||||
downloadFirefoxPromo = { -send-short-brand } presenteras för dig av den helt nya { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Dela länken till din fil:
|
||||
shareLinkButton = Dela länk
|
||||
# $name is the name of the file
|
||||
shareMessage = Ladda ner "{ $name }" med { -send-brand }: enkel, säker fildelning
|
||||
trailheadPromo = Det finns ett sätt att skydda din integritet. Gå med i Firefox.
|
||||
learnMore = Läs mer.
|
||||
|
||||
@@ -122,7 +122,7 @@ addPassword = Parola koruması ekle
|
||||
emailPlaceholder = E-posta adresinizi yazın
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = { $size }’ye kadar dosya göndermek için giriş yapın
|
||||
signInButton = Giriş yap/kaydol
|
||||
signInOnlyButton = Giriş yap
|
||||
accountBenefitTitle = { -firefox } Hesabı açın veya giriş yapın
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = { $size } boyutlu dosyaları paylaşma
|
||||
@@ -141,3 +141,9 @@ noStreamsWarning = Bu tarayıcı bu kadar büyük bir dosyanın şifresini çöz
|
||||
noStreamsOptionCopy = Bağlantıyı başka bir tarayıcıda açmak için kopyala
|
||||
noStreamsOptionFirefox = En sevdiğimiz tarayıcıyı deneyin
|
||||
noStreamsOptionDownload = Bu tarayıcıyla devam edin
|
||||
downloadFirefoxPromo = { -send-short-brand }, yepyeni { -firefox } tarafından sunulmaktadır.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Dosyanızın bağlantısını paylaşın:
|
||||
shareLinkButton = Bağlantıyı paylaş
|
||||
# $name is the name of the file
|
||||
shareMessage = “{ $name }” dosyasını { -send-brand } ile indirin: basit ve güvenli dosya paylaşımı
|
||||
|
||||
@@ -134,16 +134,16 @@ addPassword = Захист паролем
|
||||
emailPlaceholder = Введіть свою електронну пошту
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Увійдіть, щоб надсилати файли розміром до { $size }
|
||||
signInButton = Вхід чи Реєстрація
|
||||
signInOnlyButton = Увійти
|
||||
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 дня
|
||||
[few] Зберігайте посилання активними протягом { $count } днів
|
||||
*[other] Зберігайте посилання активними протягом { $count } днів
|
||||
[one] Зберігати посилання активними протягом 1 дня
|
||||
[few] Зберігати посилання активними протягом { $count } днів
|
||||
*[other] Зберігати посилання активними протягом { $count } днів
|
||||
}
|
||||
accountBenefitSync = Керуйте спільними файлами з буль-якого пристрою
|
||||
accountBenefitMoz = Дізнайтеся про інші сервіси { -mozilla }
|
||||
@@ -154,3 +154,9 @@ noStreamsWarning = Цьому браузеру може не вдатися ро
|
||||
noStreamsOptionCopy = Скопіюйте посилання, щоб відкрити його в іншому браузері
|
||||
noStreamsOptionFirefox = Спробуйте наш улюблений браузер
|
||||
noStreamsOptionDownload = Продовжити в цьому браузері
|
||||
downloadFirefoxPromo = { -send-short-brand } доступний для вас в цілком новому { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Надішліть посилання на свій файл:
|
||||
shareLinkButton = Поділитись посиланням
|
||||
# $name is the name of the file
|
||||
shareMessage = Завантажте “{ $name }” з { -send-brand }: простий та безпечний обмін файлами
|
||||
|
||||
@@ -118,7 +118,7 @@ addPassword = Bảo vệ bằng mật khẩu
|
||||
emailPlaceholder = Nhập email của bạn
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Đăng nhập để gửi tối đa { $size }
|
||||
signInButton = Đăng nhập hoặc đăng ký
|
||||
signInOnlyButton = Đăng nhập
|
||||
accountBenefitTitle = Tạo tài khoản { -firefox } hoặc đăng nhập
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Chia sẻ tập tin lên tới { $size }
|
||||
@@ -136,3 +136,9 @@ noStreamsWarning = Trình duyệt này có khả năng không thể giải mã m
|
||||
noStreamsOptionCopy = Sao chép liên kết để mở trong một trình duyệt khác
|
||||
noStreamsOptionFirefox = Hãy dùng thử trình duyệt yêu thích của chúng tôi
|
||||
noStreamsOptionDownload = Tiếp tục với trình duyệt này
|
||||
downloadFirefoxPromo = { -send-short-brand } được mang đến cho bạn bởi { -firefox } hoàn toàn mới.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Chia sẻ liên kết đến tập tin của bạn:
|
||||
shareLinkButton = Chia sẻ liên kết
|
||||
# $name is the name of the file
|
||||
shareMessage = Tải xuống “{ $name }“ với { -send-brand }: chia sẻ tập tin đơn giản, an toàn
|
||||
|
||||
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 = ⵙⵎⴷ ⵙ ⵓⵎⵙⵙⴰⵔⴰ ⴰ
|
||||
@@ -123,7 +123,7 @@ addPassword = 密码保护
|
||||
emailPlaceholder = 请输入您的电子邮件地址
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = 登录以传送最大 { $size } 文件
|
||||
signInButton = 登录 / 注册
|
||||
signInOnlyButton = 登录
|
||||
accountBenefitTitle = 创建一个 { -firefox } 账户或登录
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = 分享最大 { $size } 文件
|
||||
@@ -142,3 +142,11 @@ noStreamsWarning = 此浏览器可能无法解密这么大的文件。
|
||||
noStreamsOptionCopy = 复制链接以在其他浏览器中打开
|
||||
noStreamsOptionFirefox = 试试大家最喜爱的浏览器
|
||||
noStreamsOptionDownload = 使用此浏览器继续
|
||||
downloadFirefoxPromo = { -send-short-brand } 由焕然一新的 { -firefox } 为您奉上。
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = 您的文件链接:
|
||||
shareLinkButton = 分享链接
|
||||
# $name is the name of the file
|
||||
shareMessage = 使用 { -send-brand } 下载“{ $name }”:简单、安全的文件分享服务
|
||||
trailheadPromo = 有种方法可以保护您的隐私,加入 Firefox。
|
||||
learnMore = 详细了解。
|
||||
|
||||
@@ -89,7 +89,7 @@ copyLinkDescription = 複製鏈結即可分享您的檔案:
|
||||
copyLinkButton = 複製鏈結
|
||||
downloadTitle = 下載檔案
|
||||
downloadDescription = 此檔案是透過 { -send-brand } 進行分享,以點對點加密的方式來分享檔案,並提供會自動失效的鏈結。
|
||||
trySendDescription = 快試試 { -send-brand },簡單而安全地分享檔案。
|
||||
trySendDescription = 快試試 { -send-brand },簡單安全的檔案分享機制。
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
@@ -118,7 +118,7 @@ addPassword = 使用密碼保護
|
||||
emailPlaceholder = 輸入您的電子郵件地址
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = 登入後即可傳送最大 { $size } 的檔案
|
||||
signInButton = 登入 / 註冊
|
||||
signInOnlyButton = 登入
|
||||
accountBenefitTitle = 註冊 { -firefox } 帳號或登入
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = 分享最大 { $size } 的檔案
|
||||
@@ -136,3 +136,11 @@ noStreamsWarning = 此瀏覽器無法解密這麼大的檔案。
|
||||
noStreamsOptionCopy = 複製鏈結,用其他瀏覽器開啟
|
||||
noStreamsOptionFirefox = 試試我們最愛的瀏覽器
|
||||
noStreamsOptionDownload = 繼續使用目前的瀏覽器
|
||||
downloadFirefoxPromo = { -send-short-brand } 是由全新的 { -firefox } 提供。
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = 您的檔案鏈結:
|
||||
shareLinkButton = 分享鏈結
|
||||
# $name is the name of the file
|
||||
shareMessage = 使用 { -send-brand } 下載「{ $name }」: 簡單安全的檔案分享機制
|
||||
trailheadPromo = 有種方法可以保護您的隱私,加入 Firefox。
|
||||
learnMore = 了解更多。
|
||||
|
||||
@@ -45,6 +45,9 @@ function statUploadEvent(data) {
|
||||
size: orderOfMagnitude(data.size),
|
||||
anonymous: data.anonymous
|
||||
},
|
||||
event_properties: {
|
||||
agent: data.agent
|
||||
},
|
||||
event_id: 0
|
||||
};
|
||||
return sendBatch([event]);
|
||||
@@ -61,6 +64,7 @@ function statDownloadEvent(data) {
|
||||
time: truncateToHour(Date.now()),
|
||||
event_type: 'server_download',
|
||||
event_properties: {
|
||||
agent: data.agent,
|
||||
download_count: data.download_count,
|
||||
ttl: data.ttl
|
||||
},
|
||||
@@ -80,6 +84,7 @@ function statDeleteEvent(data) {
|
||||
time: truncateToHour(Date.now()),
|
||||
event_type: 'server_delete',
|
||||
event_properties: {
|
||||
agent: data.agent,
|
||||
download_count: data.download_count,
|
||||
ttl: data.ttl
|
||||
},
|
||||
@@ -113,7 +118,9 @@ function clientEvent(event, ua, language, session_id, deltaT, platform, ip) {
|
||||
utm_content: ep.utm_content,
|
||||
utm_medium: ep.utm_medium,
|
||||
utm_source: ep.utm_source,
|
||||
utm_term: ep.utm_term
|
||||
utm_term: ep.utm_term,
|
||||
experiment: ep.experiment,
|
||||
variant: ep.variant
|
||||
};
|
||||
const user_properties = {
|
||||
active_count: up.active_count,
|
||||
|
||||
@@ -7,11 +7,12 @@ const expressWs = require('express-ws');
|
||||
const morgan = require('morgan');
|
||||
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) {
|
||||
const wsapp = express();
|
||||
expressWs(wsapp, null, { perMessageDeflate: false });
|
||||
routes(wsapp);
|
||||
wsapp.ws('/api/ws', require('../routes/ws'));
|
||||
wsapp.listen(8081, config.listen_address);
|
||||
|
||||
|
||||
@@ -13,8 +13,8 @@ if (config.sentry_dsn) {
|
||||
const app = express();
|
||||
|
||||
expressWs(app, null, { perMessageDeflate: false });
|
||||
app.ws('/api/ws', require('../routes/ws'));
|
||||
routes(app);
|
||||
app.ws('/api/ws', require('../routes/ws'));
|
||||
|
||||
app.use(
|
||||
express.static(path.resolve(__dirname, '../../dist/'), {
|
||||
|
||||
@@ -7,8 +7,8 @@ const expressWs = require('express-ws');
|
||||
module.exports = function(app, devServer) {
|
||||
assets.setMiddleware(devServer.middleware);
|
||||
expressWs(app, null, { perMessageDeflate: false });
|
||||
app.ws('/api/ws', require('../routes/ws'));
|
||||
routes(app);
|
||||
app.ws('/api/ws', require('../routes/ws'));
|
||||
tests(app);
|
||||
// webpack-dev-server routes haven't been added yet
|
||||
// so wait for next tick to add 404 handler
|
||||
|
||||
@@ -144,6 +144,11 @@ const conf = convict({
|
||||
format: String,
|
||||
default: 'https://identity.mozilla.com/apps/send',
|
||||
env: 'FXA_KEY_SCOPE'
|
||||
},
|
||||
survey_url: {
|
||||
format: String,
|
||||
default: '',
|
||||
env: 'SURVEY_URL'
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@ module.exports = function(state) {
|
||||
|
||||
var LIMITS = ${JSON.stringify(clientConstants.LIMITS)};
|
||||
var DEFAULTS = ${JSON.stringify(clientConstants.DEFAULTS)};
|
||||
const LOCALE = '${state.locale}';
|
||||
const downloadMetadata = ${
|
||||
var PREFS = ${JSON.stringify(state.prefs)};
|
||||
var downloadMetadata = ${
|
||||
state.downloadMetadata ? raw(JSON.stringify(state.downloadMetadata)) : '{}'
|
||||
};
|
||||
${authConfig};
|
||||
|
||||
@@ -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;
|
||||
|
||||
function allLangs() {
|
||||
return fs.readdirSync(
|
||||
path.join(__dirname, '..', '..', 'dist', 'public', 'locales')
|
||||
);
|
||||
return fs.readdirSync(path.join(__dirname, '..', '..', 'public', 'locales'));
|
||||
}
|
||||
|
||||
const languages = config.l10n_dev ? allLangs() : availableLanguages;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user