mirror of
https://gitlab.com/timvisee/send.git
synced 2025-12-06 22:20:55 +03:00
Compare commits
129 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6ef9b7be92 | ||
|
|
5e4ad28f90 | ||
|
|
bc2a8c6780 | ||
|
|
500b34b666 | ||
|
|
7afe684c3b | ||
|
|
779fe94550 | ||
|
|
95ceff5cc6 | ||
|
|
4cf27030a1 | ||
|
|
f49782c8e3 | ||
|
|
7352e4a1b0 | ||
|
|
d5ce677960 | ||
|
|
7a1de5d651 | ||
|
|
0338de3de7 | ||
|
|
c71bd26789 | ||
|
|
fe3a64941d | ||
|
|
ac9e107094 | ||
|
|
08e0e35041 | ||
|
|
a0e3c7c2ec | ||
|
|
62ffaafeb7 | ||
|
|
236fcc960f | ||
|
|
b7d1d6a632 | ||
|
|
a6c78470ea | ||
|
|
e6f7100bad | ||
|
|
1eba2f09a3 | ||
|
|
1eae5e8e08 | ||
|
|
d3f034c4c3 | ||
|
|
729e0c9f9d | ||
|
|
b6e7fa5496 | ||
|
|
f4b6bab5d7 | ||
|
|
e55b3f828f | ||
|
|
5f8d9cb842 | ||
|
|
81659bce85 | ||
|
|
f761eb92ee | ||
|
|
164f5e7d0e | ||
|
|
7013f5cf80 | ||
|
|
6184a70ba4 | ||
|
|
e264d0da62 | ||
|
|
23a6e338e8 | ||
|
|
2c1dfdbe07 | ||
|
|
994e77a38b | ||
|
|
173ca461a9 | ||
|
|
53426b950a | ||
|
|
9bb36cd827 | ||
|
|
103aa8a0c8 | ||
|
|
62d507120c | ||
|
|
8ccb1c449a | ||
|
|
a07eb1ad1c | ||
|
|
78c6d83462 | ||
|
|
5d41da0e16 | ||
|
|
5afe9ff2af | ||
|
|
a2eee15a7d | ||
|
|
603a352595 | ||
|
|
7b8655a079 | ||
|
|
d3ba54d05a | ||
|
|
83e2aec3f5 | ||
|
|
0abf890fc4 | ||
|
|
38fcd7227d | ||
|
|
6d29cebabb | ||
|
|
8305b9bd2f | ||
|
|
5c542008ab | ||
|
|
e1d6467de4 | ||
|
|
7dc34ba646 | ||
|
|
d5a30b710d | ||
|
|
c90310405c | ||
|
|
1bd85ee656 | ||
|
|
45452c7153 | ||
|
|
59ba89262f | ||
|
|
d906e927ed | ||
|
|
527e9f09c9 | ||
|
|
5ff92c6452 | ||
|
|
dfea1e96fb | ||
|
|
7e30fe8d33 | ||
|
|
a74a560f0a | ||
|
|
93072c0c1e | ||
|
|
b3ad207326 | ||
|
|
dced61eb30 | ||
|
|
42574af2cc | ||
|
|
ab699ebcc6 | ||
|
|
de37804973 | ||
|
|
7654ec3b7c | ||
|
|
fa84c653ea | ||
|
|
7f9b43753e | ||
|
|
a0c221750b | ||
|
|
bcb3936e08 | ||
|
|
66ec29eee9 | ||
|
|
58535c8c2e | ||
|
|
563686849f | ||
|
|
5b607af8d1 | ||
|
|
c5061ec51e | ||
|
|
32074a9bab | ||
|
|
26478fc444 | ||
|
|
7c66c07634 | ||
|
|
4ef6f8e3bd | ||
|
|
5591fb03f1 | ||
|
|
fc35acc6e4 | ||
|
|
5c8c6d56a4 | ||
|
|
4f9e63beca | ||
|
|
6b7f6426a1 | ||
|
|
1b6fad9d87 | ||
|
|
016d9bcf91 | ||
|
|
f199c8b96a | ||
|
|
06321126e7 | ||
|
|
08f9ad5046 | ||
|
|
9aefe7f7c9 | ||
|
|
ea2ff28f32 | ||
|
|
339bf12857 | ||
|
|
7c605ac7af | ||
|
|
288b878700 | ||
|
|
db84b331c2 | ||
|
|
2fde21c522 | ||
|
|
fb3747785b | ||
|
|
93d151a29a | ||
|
|
e28a92848d | ||
|
|
f83784e033 | ||
|
|
11173c520b | ||
|
|
608112d56c | ||
|
|
480a06c426 | ||
|
|
f0530975ac | ||
|
|
6d4973391a | ||
|
|
0edfc8405f | ||
|
|
5274b732b2 | ||
|
|
0a71c8c724 | ||
|
|
9feb6866ee | ||
|
|
196d4211b6 | ||
|
|
a50762ebd7 | ||
|
|
3e65f3a906 | ||
|
|
bea7d30836 | ||
|
|
6acf58f9e9 | ||
|
|
33993eda88 |
18
Dockerfile
18
Dockerfile
@@ -1,15 +1,17 @@
|
||||
FROM node:8-alpine
|
||||
FROM node:10 AS builder
|
||||
RUN addgroup --gid 10001 app && adduser --disabled-password --gecos '' --gid 10001 --home /app --uid 10001 app
|
||||
COPY package*.json /app/
|
||||
WORKDIR /app
|
||||
RUN npm install --production
|
||||
|
||||
RUN apk add --no-cache git
|
||||
RUN addgroup -S -g 10001 app && adduser -S -D -G app -u 10001 app
|
||||
COPY . /app
|
||||
RUN chown -R app /app
|
||||
FROM node:10-slim
|
||||
RUN addgroup --gid 10001 app && adduser --disabled-password --gecos '' --gid 10001 --home /app --uid 10001 app
|
||||
USER app
|
||||
WORKDIR /app
|
||||
RUN mkdir static
|
||||
RUN npm install --production && npm cache clean --force
|
||||
COPY --chown=app:app --from=builder /app .
|
||||
COPY --chown=app:app . .
|
||||
|
||||
ENV PORT=1443
|
||||
EXPOSE $PORT
|
||||
|
||||
CMD ["npm", "run", "prod"]
|
||||
CMD ["node", "server/prod.js"]
|
||||
|
||||
@@ -160,9 +160,10 @@ function download(id, keychain, onprogress, canceller) {
|
||||
resolve(this.result);
|
||||
};
|
||||
});
|
||||
|
||||
xhr.addEventListener('progress', function(event) {
|
||||
if (event.lengthComputable && event.target.status === 200) {
|
||||
onprogress([event.loaded, event.total]);
|
||||
if (event.target.status === 200) {
|
||||
onprogress(event.loaded);
|
||||
}
|
||||
});
|
||||
const auth = await keychain.authHeader();
|
||||
@@ -170,6 +171,7 @@ function download(id, keychain, onprogress, canceller) {
|
||||
xhr.setRequestHeader('Authorization', auth);
|
||||
xhr.responseType = 'blob';
|
||||
xhr.send();
|
||||
onprogress(0);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@ export default class FileReceiver extends Nanobus {
|
||||
this.fileInfo.name = meta.name;
|
||||
this.fileInfo.type = meta.type;
|
||||
this.fileInfo.iv = meta.iv;
|
||||
this.fileInfo.size = meta.size;
|
||||
this.fileInfo.size = +meta.size;
|
||||
this.state = 'ready';
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ export default class FileReceiver extends Nanobus {
|
||||
this.fileInfo.id,
|
||||
this.keychain,
|
||||
p => {
|
||||
this.progress = p;
|
||||
this.progress = [p, this.fileInfo.size];
|
||||
this.emit('progress');
|
||||
}
|
||||
);
|
||||
|
||||
@@ -4,6 +4,7 @@ import app from './routes';
|
||||
import locale from '../common/locales';
|
||||
import fileManager from './fileManager';
|
||||
import dragManager from './dragManager';
|
||||
import pasteManager from './pasteManager';
|
||||
import { canHasSend } from './utils';
|
||||
import storage from './storage';
|
||||
import metrics from './metrics';
|
||||
@@ -48,5 +49,6 @@ app.use(metrics);
|
||||
app.use(fileManager);
|
||||
app.use(dragManager);
|
||||
app.use(experiments);
|
||||
app.use(pasteManager);
|
||||
|
||||
app.mount('body');
|
||||
|
||||
25
app/pasteManager.js
Normal file
25
app/pasteManager.js
Normal file
@@ -0,0 +1,25 @@
|
||||
/* global MAXFILESIZE */
|
||||
import { bytes } from './utils';
|
||||
|
||||
export default function(state, emitter) {
|
||||
window.addEventListener('paste', event => {
|
||||
if (state.route !== '/' || state.uploading) return;
|
||||
|
||||
for (const item of event.clipboardData.items) {
|
||||
if (!item.type.includes('image')) continue;
|
||||
|
||||
const file = item.getAsFile();
|
||||
|
||||
if (!file) continue; // Sometimes null
|
||||
|
||||
if (file.size > MAXFILESIZE) {
|
||||
// eslint-disable-next-line no-alert
|
||||
alert(state.translate('fileTooBig', { size: bytes(MAXFILESIZE) }));
|
||||
continue;
|
||||
}
|
||||
|
||||
emitter.emit('upload', { file, type: 'paste' });
|
||||
return; // return here since only one file is allowed to be uploaded at a time
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -19,7 +19,8 @@ module.exports = function(file, state, emit) {
|
||||
onclick=${copyClick}
|
||||
src="${assets.get('copy-16.svg')}"
|
||||
class="cursor--pointer"
|
||||
title="${state.translate('copyUrlHover')}">
|
||||
title="${state.translate('copyUrlHover')}"
|
||||
tabindex="0">
|
||||
<span hidden="true">
|
||||
${state.translate('copiedUrl')}
|
||||
</span>
|
||||
@@ -33,7 +34,8 @@ module.exports = function(file, state, emit) {
|
||||
onclick=${showPopup}
|
||||
src="${assets.get('close-16.svg')}"
|
||||
class="cursor--pointer"
|
||||
title="${state.translate('deleteButtonHover')}">
|
||||
title="${state.translate('deleteButtonHover')}"
|
||||
tabindex="0">
|
||||
${deletePopup(
|
||||
state.translate('deletePopupText'),
|
||||
state.translate('deletePopupYes'),
|
||||
|
||||
@@ -6,8 +6,7 @@ module.exports = function(state) {
|
||||
<div class="legalSection">
|
||||
<a
|
||||
href="https://www.mozilla.org"
|
||||
class="legalSection__link"
|
||||
role="presentation">
|
||||
class="legalSection__link">
|
||||
<img
|
||||
class="legalSection__mozLogo"
|
||||
src="${assets.get('mozilla-logo.svg')}"
|
||||
@@ -43,8 +42,7 @@ module.exports = function(state) {
|
||||
<div class="socialSection">
|
||||
<a
|
||||
href="https://github.com/mozilla/send"
|
||||
class="socialSection__link"
|
||||
role="presentation">
|
||||
class="socialSection__link">
|
||||
<img
|
||||
class="socialSection__icon"
|
||||
src="${assets.get('github-icon.svg')}"
|
||||
@@ -52,8 +50,7 @@ module.exports = function(state) {
|
||||
</a>
|
||||
<a
|
||||
href="https://twitter.com/FxTestPilot"
|
||||
class="socialSection__link"
|
||||
role="presentation">
|
||||
class="socialSection__link">
|
||||
<img
|
||||
class="socialSection__icon"
|
||||
src="${assets.get('twitter-icon.svg')}"
|
||||
|
||||
@@ -11,11 +11,10 @@
|
||||
.select::after {
|
||||
color: #0094fb;
|
||||
content: '\25BC';
|
||||
position: absolute;
|
||||
right: 0;
|
||||
padding: 0 10px;
|
||||
pointer-events: none;
|
||||
font-size: 20px;
|
||||
margin-left: -30px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
|
||||
option {
|
||||
|
||||
@@ -2,7 +2,7 @@ version: 2.0
|
||||
jobs:
|
||||
build:
|
||||
docker:
|
||||
- image: circleci/node:8
|
||||
- image: circleci/node:10
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
@@ -19,7 +19,7 @@ jobs:
|
||||
- ./dist
|
||||
test:
|
||||
docker:
|
||||
- image: circleci/node:8-browsers
|
||||
- image: circleci/node:10-browsers
|
||||
steps:
|
||||
- checkout
|
||||
- restore_cache:
|
||||
|
||||
19592
package-lock.json
generated
19592
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
87
package.json
87
package.json
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "firefox-send",
|
||||
"description": "File Sharing Experiment",
|
||||
"version": "2.5.4",
|
||||
"version": "2.6.2",
|
||||
"author": "Mozilla (https://mozilla.org)",
|
||||
"repository": "mozilla/send",
|
||||
"homepage": "https://github.com/mozilla/send/",
|
||||
@@ -10,7 +10,7 @@
|
||||
"scripts": {
|
||||
"precommit": "lint-staged",
|
||||
"prepush": "npm test",
|
||||
"check": "nsp check",
|
||||
"check": "npm audit",
|
||||
"clean": "rimraf dist",
|
||||
"build": "npm run clean && webpack -p",
|
||||
"lint": "npm-run-all lint:*",
|
||||
@@ -22,7 +22,6 @@
|
||||
"format": "prettier '**/*.js' 'assets/*.css' --single-quote --write",
|
||||
"get-prod-locales": "node scripts/get-prod-locales",
|
||||
"get-prod-locales:write": "npm run get-prod-locales -- --write",
|
||||
"changelog": "github-changes -o mozilla -r send --only-pulls --use-commit-body --no-merges",
|
||||
"contributors": "git shortlog -s | awk -F\\t '{print $2}' > CONTRIBUTORS",
|
||||
"release": "npm-run-all contributors changelog",
|
||||
"test": "npm-run-all test:*",
|
||||
@@ -30,7 +29,7 @@
|
||||
"test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js && nyc report --reporter=html",
|
||||
"test-integration": "docker-compose up --abort-on-container-exit --exit-code-from integration-tests --build --remove-orphans --quiet-pull && docker-compose down",
|
||||
"test-integration-stage": "cross-env BASE_URL=https://send.stage.mozaws.net npm run test-integration",
|
||||
"start": "npm run clean && cross-env NODE_ENV=development webpack-dev-server",
|
||||
"start": "npm run clean && npm run build && npm run prod",
|
||||
"prod": "node server/prod.js"
|
||||
},
|
||||
"lint-staged": {
|
||||
@@ -56,79 +55,78 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"asmcrypto.js": "^0.22.0",
|
||||
"babel-core": "^6.26.0",
|
||||
"babel-loader": "^7.1.4",
|
||||
"babel-plugin-istanbul": "^4.1.5",
|
||||
"babel-plugin-yo-yoify": "^1.0.2",
|
||||
"babel-preset-env": "^1.6.1",
|
||||
"babel-core": "^6.26.3",
|
||||
"babel-loader": "^7.1.5",
|
||||
"babel-plugin-istanbul": "^4.1.6",
|
||||
"babel-plugin-yo-yoify": "^1.0.3",
|
||||
"babel-preset-env": "^1.7.0",
|
||||
"babel-preset-es2015": "^6.24.1",
|
||||
"babel-preset-stage-2": "^6.24.1",
|
||||
"babel-preset-stage-3": "^6.24.1",
|
||||
"base64-js": "^1.2.3",
|
||||
"copy-webpack-plugin": "^4.5.0",
|
||||
"cross-env": "^5.1.3",
|
||||
"css-loader": "^0.28.10",
|
||||
"base64-js": "^1.3.0",
|
||||
"copy-webpack-plugin": "^4.5.2",
|
||||
"cross-env": "^5.2.0",
|
||||
"css-loader": "^0.28.11",
|
||||
"css-mqpacker": "^6.0.2",
|
||||
"eslint": "^4.18.2",
|
||||
"eslint": "^4.19.1",
|
||||
"eslint-plugin-mocha": "^4.12.1",
|
||||
"eslint-plugin-node": "^6.0.1",
|
||||
"eslint-plugin-security": "^1.4.0",
|
||||
"expose-loader": "^0.7.4",
|
||||
"expose-loader": "^0.7.5",
|
||||
"extract-loader": "^1.0.2",
|
||||
"extract-text-webpack-plugin": "^3.0.2",
|
||||
"fast-text-encoding": "^1.0.0",
|
||||
"file-loader": "^1.1.11",
|
||||
"fluent-intl-polyfill": "^0.1.0",
|
||||
"git-rev-sync": "^1.10.0",
|
||||
"github-changes": "^1.1.2",
|
||||
"git-rev-sync": "^1.12.0",
|
||||
"html-loader": "^0.5.5",
|
||||
"husky": "^0.14.3",
|
||||
"lint-staged": "^7.0.0",
|
||||
"mocha": "^5.0.4",
|
||||
"nanobus": "^4.3.2",
|
||||
"nanotiming": "^7.3.0",
|
||||
"npm-run-all": "^4.1.2",
|
||||
"nsp": "^3.2.1",
|
||||
"nyc": "^11.5.0",
|
||||
"lint-staged": "^7.3.0",
|
||||
"mocha": "^5.2.0",
|
||||
"nanobus": "^4.3.4",
|
||||
"nanotiming": "^7.3.1",
|
||||
"npm-run-all": "^4.1.5",
|
||||
"nyc": "^11.9.0",
|
||||
"postcss-cssnext": "^3.1.0",
|
||||
"postcss-import": "^11.1.0",
|
||||
"postcss-loader": "^2.1.1",
|
||||
"prettier": "^1.11.1",
|
||||
"postcss-loader": "^2.1.6",
|
||||
"prettier": "^1.15.2",
|
||||
"proxyquire": "^1.8.0",
|
||||
"puppeteer": "^1.1.1",
|
||||
"raven-js": "^3.23.1",
|
||||
"puppeteer": "^1.11.0",
|
||||
"raven-js": "^3.27.0",
|
||||
"redis-mock": "^0.21.0",
|
||||
"require-from-string": "^2.0.1",
|
||||
"require-from-string": "^2.0.2",
|
||||
"rimraf": "^2.6.2",
|
||||
"sinon": "^4.4.2",
|
||||
"sinon": "^4.5.0",
|
||||
"string-hash": "^1.1.3",
|
||||
"stylelint": "^9.1.1",
|
||||
"stylelint": "^9.8.0",
|
||||
"stylelint-config-standard": "^18.2.0",
|
||||
"stylelint-no-unsupported-browser-features": "^2.0.0",
|
||||
"svgo": "^1.0.5",
|
||||
"svgo-loader": "^2.1.0",
|
||||
"svgo": "^1.1.1",
|
||||
"svgo-loader": "^2.2.0",
|
||||
"testpilot-ga": "^0.3.0",
|
||||
"val-loader": "^1.1.0",
|
||||
"webpack": "^3.11.0",
|
||||
"val-loader": "^1.1.1",
|
||||
"webpack": "^3.12.0",
|
||||
"webpack-dev-middleware": "^2.0.6",
|
||||
"webpack-dev-server": "2.9.1",
|
||||
"webpack-manifest-plugin": "^1.3.2",
|
||||
"webpack-unassert-loader": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"aws-sdk": "^2.206.0",
|
||||
"@google-cloud/storage": "^2.4.2",
|
||||
"aws-sdk": "^2.362.0",
|
||||
"babel-polyfill": "^6.26.0",
|
||||
"choo": "^6.10.0",
|
||||
"choo": "^6.13.0",
|
||||
"cldr-core": "^32.0.0",
|
||||
"connect-busboy": "0.0.2",
|
||||
"convict": "^4.0.1",
|
||||
"express": "^4.16.2",
|
||||
"fluent": "^0.6.3",
|
||||
"convict": "^4.4.0",
|
||||
"express": "^4.16.3",
|
||||
"fast-crc32c": "^1.0.4",
|
||||
"fluent": "^0.6.4",
|
||||
"fluent-langneg": "^0.1.0",
|
||||
"helmet": "^3.12.0",
|
||||
"helmet": "^3.15.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mozlog": "^2.2.0",
|
||||
"raven": "^2.4.2",
|
||||
"raven": "^2.6.4",
|
||||
"redis": "^2.8.0"
|
||||
},
|
||||
"availableLanguages": [
|
||||
@@ -145,6 +143,8 @@
|
||||
"de",
|
||||
"dsb",
|
||||
"el",
|
||||
"en-CA",
|
||||
"en-GB",
|
||||
"es-AR",
|
||||
"es-CL",
|
||||
"es-ES",
|
||||
@@ -153,6 +153,7 @@
|
||||
"fa",
|
||||
"fr",
|
||||
"fy-NL",
|
||||
"hr",
|
||||
"hsb",
|
||||
"hu",
|
||||
"ia",
|
||||
|
||||
@@ -7,8 +7,7 @@ uploadPageExplainer = أرسل الملفات عبر رابط آمن خاص وم
|
||||
uploadPageLearnMore = اطّلع على المزيد
|
||||
uploadPageDropMessage = أسقِط ملفّك هنا لبدء الرفع
|
||||
uploadPageSizeMessage = لتتحصل على أفضل تجربة، من المستحسن أن يكون الملف أصغر من 1 غ.بايت
|
||||
uploadPageBrowseButton = اختر ملفّا على حاسوبك
|
||||
.title = اختر ملفّا على حاسوبك
|
||||
uploadPageBrowseButton = اختر ملفًا على حاسوبك
|
||||
uploadPageBrowseButton1 = اختر ملفّا لرفعه
|
||||
uploadPageMultipleFilesAlert = رفع عدة ملفات (أو رفع مجلد) ليس مدعوما حاليا.
|
||||
uploadPageBrowseButtonTitle = ارفع ملفًا
|
||||
@@ -20,13 +19,11 @@ decryptingFile = يفك التعمية…
|
||||
notifyUploadDone = انتهى الرفع.
|
||||
uploadingPageMessage = ما إن يُرفع الملف سيُتاح ضبط خيارات انتهاء صلاحيته.
|
||||
uploadingPageCancel = ألغِ الرفع
|
||||
.title = ألغِ الرفع
|
||||
uploadCancelNotification = أُلغي الرفع.
|
||||
uploadingPageLargeFileMessage = هذا الملف كبير الحجم وسيأخذ رفعه وقتا. انتظر رجاءً.
|
||||
uploadingFileNotification = أعلِمني عندما يكتمل الرفع.
|
||||
uploadSuccessConfirmHeader = جاهز للإرسال
|
||||
uploadSvgAlt =
|
||||
.alt = ارفع
|
||||
uploadSvgAlt = ارفع
|
||||
uploadSuccessTimingHeader = ستنتهي صلاحية الرابط الذي يشير إلى الملف في حال: نُزِّل لأول مرة، أو مرّ ٢٤ ساعة على رفعه.
|
||||
expireInfo = ستنتهي صلاحية رابط الملف بعد { $downloadCount } أو { $timespan }.
|
||||
downloadCount =
|
||||
@@ -49,15 +46,11 @@ timespanHours =
|
||||
}
|
||||
copyUrlFormLabelWithName = انسخ الرابط وشاركه لإرسال الملف: { $filename }
|
||||
copyUrlFormButton = انسخ إلى الحافظة
|
||||
.title = انسخ إلى الحافظة
|
||||
copiedUrl = نُسخ!
|
||||
deleteFileButton = احذف الملف
|
||||
.title = احذف الملف
|
||||
sendAnotherFileLink = أرسل ملفّا آخر
|
||||
.title = أرسل ملفّا آخر
|
||||
sendAnotherFileLink = أرسِل ملفًا آخر
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText =
|
||||
.alt = نزّل
|
||||
downloadAltText = نزّل
|
||||
downloadsFileList = التنزيلات
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
@@ -74,7 +67,6 @@ downloadFileTitle = نزِّل الملف المعمّى
|
||||
downloadMessage = يُرسل إليك صديقك ملفا عبر «فَيَرفُكس سِنْد»، وهي خدمة تتيح لك مشاركة الملفات عبر رابط آمن وخاص ومعمّى، حيث تنتهي صلاحياتها تلقائيا لتضمن عدم بقاء ما ترسله إلى الأبد.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = نزّل
|
||||
.title = نزّل
|
||||
downloadNotification = لقد اكتمل التنزيل.
|
||||
downloadFinish = اكتمل التنزيل
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
@@ -83,8 +75,7 @@ fileSizeProgress = ({ $partialSize } من أصل { $totalSize })
|
||||
sendYourFilesLink = جرِّب «فَيَرفُكس سِنْد»
|
||||
downloadingPageProgress = ينزّل { $filename } ({ $size })
|
||||
downloadingPageMessage = رجاء أبقِ هذا اللسان مفتوحا حتى نجلب الملف ونفك تعميته.
|
||||
errorAltText =
|
||||
.alt = خطأ أثناء الرفع
|
||||
errorAltText = خطأ أثناء الرفع
|
||||
errorPageHeader = حدث خطب ما.
|
||||
errorPageMessage = حدث خطب ما أثناء رفع الملف.
|
||||
errorPageLink = أرسل ملفا آخر
|
||||
@@ -110,10 +101,8 @@ legalNoticeMozilla = يخضع استخدام موقع «فَيَرفُكس سِ
|
||||
deletePopupText = أأحذف هذا الملف؟
|
||||
deletePopupYes = نعم
|
||||
deletePopupCancel = ألغِ
|
||||
deleteButtonHover =
|
||||
.title = احذف
|
||||
copyUrlHover =
|
||||
.title = انسخ الرابط
|
||||
deleteButtonHover = احذف
|
||||
copyUrlHover = انسخ الرابط
|
||||
footerLinkLegal = القانونية
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = حول الاختبار التجريبي
|
||||
|
||||
@@ -25,6 +25,7 @@ uploadingFileNotification = Avísame cuando se complete la xuba.
|
||||
uploadSuccessConfirmHeader = Preparáu pa unviar
|
||||
uploadSvgAlt = Xubir
|
||||
uploadSuccessTimingHeader = L'enllaz del to ficheru caducará dempués d'una descarga o en 24 hores.
|
||||
expireInfo = L'enllaz al ficheru va caducar tres { $downloadCount } o { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 descarga
|
||||
@@ -43,6 +44,9 @@ sendAnotherFileLink = Unviar otru ficheru
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Baxar
|
||||
downloadsFileList = Descargues
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Tiempu
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Baxar { $filename }
|
||||
@@ -101,5 +105,16 @@ requirePasswordCheckbox = Riquir una contraseña pa baxar esti ficheru
|
||||
addPasswordButton = Amestar contraseña
|
||||
changePasswordButton = Camudar
|
||||
passwordTryAgain = Contraseña incorreuta. Volvi tentalo.
|
||||
javascriptRequired = Firefox Send rique JavaScript
|
||||
whyJavascript = ¿Por qué Firefox Send rique JavaScript?
|
||||
enableJavascript = Activa JavaScript y volvi tentalo, por favor.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Afitóse la contraseña
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Llargor máximu de la contraseña: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Nun pudo afitase esta contraseña
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Göndərməyə hazır
|
||||
uploadSvgAlt = Yüklə
|
||||
uploadSuccessTimingHeader = Faylınızın keçidinin 1 endirmədən və ya 24 saatdan sonra vaxtı çıxacaq.
|
||||
expireInfo = Faylınız üçün keçidin vaxtı { $downloadCount } sonra və ya { $timespan } tarixində keçəcək.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 endirmə
|
||||
*[other] { $num } endirmə
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 saat
|
||||
*[other] { $num } saat
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
// Firefox Send is a brand name and should not be localized.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = ওয়েব গবেষণা
|
||||
siteFeedback = প্রতিক্রিয়া
|
||||
@@ -15,11 +15,13 @@ uploadingPageCancel = আপলোড বাতিল করুন
|
||||
uploadCancelNotification = আপনার অাপলোড বাতিল করা হয়েছে।
|
||||
uploadSuccessConfirmHeader = পাঠানোর জন্য প্রস্তুত
|
||||
uploadSvgAlt = আপলোড
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 ডাউনলোড
|
||||
*[other] { $num } ডাউনলোডগুলো
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 ঘন্টা
|
||||
*[other] { $num } ঘন্টা
|
||||
}
|
||||
@@ -27,20 +29,20 @@ copyUrlFormButton = ক্লিপবোর্ডে কপি করুন
|
||||
copiedUrl = কপি করা হয়েছে!
|
||||
deleteFileButton = ফাইল মুছুন
|
||||
sendAnotherFileLink = আরেকটি ফাইল পাঠান
|
||||
// Alternative text used on the download link/button (indicates an action).
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = ডাউনলোড
|
||||
downloadsFileList = ডাউনলোডগুলো
|
||||
// Used as header in a column indicating the amount of time left before a
|
||||
// download link expires (e.g. "10h 5m")
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = সময়
|
||||
// Used as header in a column indicating the number of times a file has been
|
||||
// downloaded
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = ডাউনলোড { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = পাসওয়ার্ড লিখুন
|
||||
unlockInputPlaceholder = পাসওয়ার্ড
|
||||
unlockButtonLabel = আনলক করুন
|
||||
// Text and title used on the download link/button (indicates an action).
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = ডাউনলোড
|
||||
downloadNotification = আপনার ডাউনলোড সম্পন্ন হয়েছে।
|
||||
downloadFinish = ডাউনলোড সম্পন্ন
|
||||
@@ -53,7 +55,7 @@ updateFirefox = Firefox হালনাগাদ করুন
|
||||
downloadFirefoxButtonSub = বিনামূল্যে ডাউনলোড
|
||||
uploadedFile = ফাইল
|
||||
copyFileList = URL অনুলিপি করুন
|
||||
// expiryFileList is used as a column header
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = মেয়াদোত্তীর্ণ তারিখ
|
||||
deleteFileList = মুছে ফেলুন
|
||||
nevermindButton = কিছু মনে করবেন না
|
||||
@@ -64,7 +66,7 @@ deletePopupCancel = বাতিল
|
||||
deleteButtonHover = মুছে ফেলুন
|
||||
copyUrlHover = URL অনুলিপি করুন
|
||||
footerLinkLegal = আইনগত
|
||||
// Test Pilot is a proper name and should not be localized.
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Test Pilot পরিচিতি
|
||||
footerLinkPrivacy = গোপনীয়তা
|
||||
footerLinkTerms = শর্তাবলী
|
||||
|
||||
@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Spremno za slanje
|
||||
uploadSvgAlt = Otpremi
|
||||
uploadSuccessTimingHeader = Veza prema vašoj datoteci će isteći nakon prvog preuzimanja ili za 24 sata.
|
||||
expireInfo = Link za vašu datoteku će isteći nakon { $downloadCount } ili { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 preuzimanja
|
||||
[few] { $num } preuzimanja
|
||||
*[other] { $num } preuzimanja
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 sat
|
||||
[few] { $num } sata
|
||||
*[other] { $num } sati
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ütz chik richin Nitaq
|
||||
uploadSvgAlt = Tijotob'äx
|
||||
uploadSuccessTimingHeader = Ri ruximonel yakb'äl xtik'is ruq'ijul toq xtiqasäx jumul o pa 24 ramaj.
|
||||
expireInfo = Ri ruximöy ayakb'al xtik'is ruq'ijul chi rij ri { $downloadCount } o { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 qasanïk
|
||||
*[other] { $num } taq qasanïk
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 ramaj
|
||||
*[other] { $num } taq ramaj
|
||||
}
|
||||
|
||||
@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Připraveno k odeslání
|
||||
uploadSvgAlt = Nahrát
|
||||
uploadSuccessTimingHeader = Platnost odkazu na váš soubor vyprší po jeho prvním stažení, nebo po 24 hodinách.
|
||||
expireInfo = Platnost odkazu na váš soubor vyprší po { $downloadCount } nebo { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] jednom stažení
|
||||
[few] { $num } staženích
|
||||
*[other] { $num } staženích
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] jedné hodině
|
||||
[few] { $num } hodinách
|
||||
*[other] { $num } hodinách
|
||||
@@ -88,8 +90,8 @@ expiryFileList = Platnost vyprší za
|
||||
deleteFileList = Smazat
|
||||
nevermindButton = Nevadí
|
||||
legalHeader = Podmínky a ochrana soukromí
|
||||
legalNoticeTestPilot = Firefox Send je ve fázi experimentu projektu Test Pilot a platí tak pro něj stejné <a>Podmínky používání</a> a <a>Zásady ochrany soukromí</a>. Více o tomto experimentu a sbíraných datech se dozvíte <a>zde</a>.
|
||||
legalNoticeMozilla = Používání webové služby Firefox Send se řídí <a>Zásadami ochrany soukromí</a> a <a>Podmínkami používání</a> webových stránek Mozilly.
|
||||
legalNoticeTestPilot = Firefox Send je ve fázi experimentu projektu Test Pilot a platí tak pro něj stejné <a>Podmínky používání</a> a <a>Zásady ochrany osobních údajů</a>. Více o tomto experimentu a sbíraných datech se dozvíte <a>zde</a>.
|
||||
legalNoticeMozilla = Používání webové služby Firefox Send se řídí <a>Zásadami ochrany osobních údajů</a> a <a>Podmínkami používání</a> webových stránek Mozilly.
|
||||
deletePopupText = Smazat tento soubor?
|
||||
deletePopupYes = Ano
|
||||
deletePopupCancel = Zrušit
|
||||
|
||||
@@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Gótowy za słanje
|
||||
uploadSvgAlt = Nagraś
|
||||
uploadSuccessTimingHeader = Wótkaz k wašej dataji pó 1 ześěgnjenju abo 24 góźinach spadnjo.
|
||||
expireInfo = Wótkaz k wašej dataji pó { $downloadCount } abo { $timespan } spadnjo.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 ześěgnjenje
|
||||
[two] { $num } ześěgnjeni
|
||||
[few] { $num } ześěgnjenja
|
||||
*[other] { $num } ześěgnjenjow
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 góźina
|
||||
[two] { $num } góźinje
|
||||
[few] { $num } góźiny
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Έτοιμο για αποστολή
|
||||
uploadSvgAlt = Μεταφόρτωση
|
||||
uploadSuccessTimingHeader = Ο σύνδεσμος του αρχείου σας θα λήξει έπειτα από 1 λήψη ή 24 ώρες.
|
||||
expireInfo = Ο σύνδεσμος για το αρχείο σας θα λήξει μετά από { $downloadCount } ή { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 λήψη
|
||||
*[other] { $num } λήψεις
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 ώρα
|
||||
*[other] { $num } ώρες
|
||||
}
|
||||
|
||||
121
public/locales/en-CA/send.ftl
Normal file
121
public/locales/en-CA/send.ftl
Normal file
@@ -0,0 +1,121 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = web experiment
|
||||
siteFeedback = Feedback
|
||||
uploadPageHeader = Private, Encrypted File Sharing
|
||||
uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
||||
uploadPageLearnMore = Learn more
|
||||
uploadPageDropMessage = Drop your file here to start uploading
|
||||
uploadPageSizeMessage = For the most reliable operation, 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
|
||||
*[other] { $num } downloads
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hour
|
||||
*[other] { $num } hours
|
||||
}
|
||||
copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename }
|
||||
copyUrlFormButton = Copy to clipboard
|
||||
copiedUrl = Copied!
|
||||
deleteFileButton = Delete file
|
||||
sendAnotherFileLink = Send another file
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Download
|
||||
downloadsFileList = Downloads
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Time
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Download { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Enter Password
|
||||
unlockInputPlaceholder = Password
|
||||
unlockButtonLabel = Unlock
|
||||
downloadFileTitle = Download Encrypted File
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Your friend is sending you a file with Firefox Send, a service that allows you to share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Download
|
||||
downloadNotification = Your download has completed.
|
||||
downloadFinish = Download Complete
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } of { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Try Firefox Send
|
||||
downloadingPageProgress = Downloading { $filename } ({ $size })
|
||||
downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it.
|
||||
errorAltText = Upload error
|
||||
errorPageHeader = Something went wrong!
|
||||
errorPageMessage = There has been an error uploading the file.
|
||||
errorPageLink = Send another file
|
||||
fileTooBig = That file is too big to upload. It should be less than { $size }.
|
||||
linkExpiredAlt = Link expired
|
||||
expiredPageHeader = This link has expired or never existed in the first place!
|
||||
notSupportedHeader = Your browser is not supported.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. 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 website 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.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Password set
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Maximum password length: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = This password could not be set
|
||||
121
public/locales/en-GB/send.ftl
Normal file
121
public/locales/en-GB/send.ftl
Normal file
@@ -0,0 +1,121 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = web experiment
|
||||
siteFeedback = Feedback
|
||||
uploadPageHeader = Private, Encrypted File Sharing
|
||||
uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
||||
uploadPageLearnMore = Learn more
|
||||
uploadPageDropMessage = Drop your file here to start uploading
|
||||
uploadPageSizeMessage = For the most reliable operation, 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
|
||||
*[other] { $num } downloads
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hour
|
||||
*[other] { $num } hours
|
||||
}
|
||||
copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename }
|
||||
copyUrlFormButton = Copy to clipboard
|
||||
copiedUrl = Copied!
|
||||
deleteFileButton = Delete file
|
||||
sendAnotherFileLink = Send another file
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Download
|
||||
downloadsFileList = Downloads
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Time
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Download { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Enter Password
|
||||
unlockInputPlaceholder = Password
|
||||
unlockButtonLabel = Unlock
|
||||
downloadFileTitle = Download Encrypted File
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Your friend is sending you a file with Firefox Send, a service that allows you to share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Download
|
||||
downloadNotification = Your download has completed.
|
||||
downloadFinish = Download Complete
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } of { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Try Firefox Send
|
||||
downloadingPageProgress = Downloading { $filename } ({ $size })
|
||||
downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it.
|
||||
errorAltText = Upload error
|
||||
errorPageHeader = Something went wrong!
|
||||
errorPageMessage = There has been an error uploading the file.
|
||||
errorPageLink = Send another file
|
||||
fileTooBig = That file is too big to upload. It should be less than { $size }.
|
||||
linkExpiredAlt = Link expired
|
||||
expiredPageHeader = This link has expired or never existed in the first place!
|
||||
notSupportedHeader = Your browser is not supported.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. 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.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Password set
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Maximum password length: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = This password could not be set
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar
|
||||
uploadSvgAlt = Subir
|
||||
uploadSuccessTimingHeader = El enlace al archivo expirará después de 1 descarga o en 24 horas.
|
||||
expireInfo = El enlace a tu archivo expirará después de { $downloadCount } o { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 descarga
|
||||
*[other] { $num } descargas
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hora
|
||||
*[other] { $num } horas
|
||||
}
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar
|
||||
uploadSvgAlt = Subir
|
||||
uploadSuccessTimingHeader = El enlace a tu archivo expirará tras 1 descarga o en 24 horas.
|
||||
expireInfo = El enlace a tu archivo expirará después de { $downloadCount } o { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 descarga
|
||||
*[other] { $num } descargas
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hora
|
||||
*[other] { $num } horas
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ uploadPageBrowseButton1 = Seleccionar un archivo para subir
|
||||
uploadPageMultipleFilesAlert = Aún no se pueden subir varios archivos o una carpeta.
|
||||
uploadPageBrowseButtonTitle = Subir archivo
|
||||
uploadingPageProgress = Subiendo { $filename } ({ $size })
|
||||
importingFile = Imporando...
|
||||
importingFile = Importando...
|
||||
verifyingFile = Comprobando...
|
||||
encryptingFile = Encriptando...
|
||||
decryptingFile = Desencriptando...
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Listo para enviar
|
||||
uploadSvgAlt = Subir
|
||||
uploadSuccessTimingHeader = El enlace al archivo caducará tras descargarlo una vez o en 24 horas.
|
||||
expireInfo = El enlace al archivo expirará tras { $downloadCount } o { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 descarga
|
||||
*[other] { $num } descargas
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hora
|
||||
*[other] { $num } horas
|
||||
}
|
||||
@@ -86,7 +88,7 @@ expiryFileList = Caduca en
|
||||
deleteFileList = Eliminar
|
||||
nevermindButton = Da igual
|
||||
legalHeader = Términos y privacidad
|
||||
legalNoticeTestPilot = Firefox Send sigue siendo un experimento de Test Pilot y está sujero a las <a>Condiciones del servicio</a> y al <a>Aviso de privacidad</a> de Test Pilot.
|
||||
legalNoticeTestPilot = Firefox Send sigue siendo un experimento de Test Pilot y está sujero a las <a>Condiciones del servicio</a> y al <a>Aviso de privacidad</a> de Test Pilot. <a>Aquí</a> podrás descubrir más sobre este experimento y su recopilación de datos.
|
||||
legalNoticeMozilla = El uso de la página de Firefox Send también está sujeto al <a>Aviso de privacidad sobre sitios web</a> y a los <a>Términos de uso sobre sitios web</a>.
|
||||
deletePopupText = ¿Eliminar el archivo?
|
||||
deletePopupYes = Sí
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Saatmiseks valmis
|
||||
uploadSvgAlt = Laadi üles
|
||||
uploadSuccessTimingHeader = Link failile aegub pärast 1. allalaadimist või 24 tunni möödumisel.
|
||||
expireInfo = Link failile aegub peale { $downloadCount } või { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] üht allalaadimist
|
||||
*[other] { $num } allalaadimist
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] üht tundi
|
||||
*[other] { $num } tundi
|
||||
}
|
||||
|
||||
@@ -26,6 +26,16 @@ uploadSuccessConfirmHeader = آماده برای ارسال
|
||||
uploadSvgAlt = بارگذاری
|
||||
uploadSuccessTimingHeader = پیوند به پرونده شما بعد از ۱ بار دانلود یا ۲۴ ساعت حذف خواهد شد.
|
||||
expireInfo = این پیوند به فایل شما پس از { $downloadCount } یا { $timespan } منقضی خواهد شد.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] ۱ بارگیری
|
||||
*[other] { $num } بارگیری
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] ۱ ساعت
|
||||
*[other] { $num } ساعت
|
||||
}
|
||||
copyUrlFormLabelWithName = برای ارسال پرونده پیوند آن را رونوشت و به اشتراک بگذارید: { $filename }
|
||||
copyUrlFormButton = رونوشت به کلیپبورد
|
||||
copiedUrl = رونوشت شد!
|
||||
@@ -97,7 +107,7 @@ changePasswordButton = تغییر
|
||||
passwordTryAgain = کلمه عبور اشتباه است. مجدد تلاش کنید.
|
||||
reportIPInfringement = گزارش تخلف IP
|
||||
javascriptRequired = Firefox Send نیازمند جاوااسکریپت است
|
||||
whyJavascript = چراFirefox Send جاوااسکریپت لازم دارد؟
|
||||
whyJavascript = چرا Firefox Send جاوااسکریپت لازم داد؟
|
||||
enableJavascript = لطفا جاوااسکریپت را فعال کنید و مجددا تلاش کنید.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }ساعت { $minutes }دقیقه
|
||||
|
||||
120
public/locales/fi/send.ftl
Normal file
120
public/locales/fi/send.ftl
Normal file
@@ -0,0 +1,120 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = web-kokeilu
|
||||
siteFeedback = Palaute
|
||||
uploadPageHeader = Yksityinen, salattu tiedostojen jakaminen
|
||||
uploadPageExplainer = Lähetä tiedostoja turvallisen, yksityisen ja salatun linkin kautta. Linkki vanhenee automaattisesti, joten tietosi eivät pysy verkossa ikuisesti.
|
||||
uploadPageLearnMore = Lue lisää
|
||||
uploadPageDropMessage = Aloita lataaminen pudottamalla tiedosto tähän
|
||||
uploadPageSizeMessage = Luotettavin toiminta saadaan pitämällä tiedostokoko alle 1 Gt
|
||||
uploadPageBrowseButton = Valitse tiedosto tietokoneesta
|
||||
uploadPageBrowseButton1 = Valitse ladattava tiedosto
|
||||
uploadPageMultipleFilesAlert = Useiden tiedostojen tai kansion lataamista ei tällä hetkellä tueta.
|
||||
uploadPageBrowseButtonTitle = Lataa tiedosto
|
||||
uploadingPageProgress = Ladataan { $filename } ({ $size })
|
||||
importingFile = Tuodaan…
|
||||
verifyingFile = Tarkistetaan...
|
||||
encryptingFile = Salataan...
|
||||
decryptingFile = Puretaan salausta...
|
||||
notifyUploadDone = Latauksesi on päättynyt.
|
||||
uploadingPageMessage = Kun tiedostojen lataaminen on valmista, voit määrittää vanhentumisvaihtoehdot.
|
||||
uploadingPageCancel = Peruuta lataus
|
||||
uploadCancelNotification = Latauksesi peruutettiin.
|
||||
uploadingPageLargeFileMessage = Tämä tiedosto on suuri ja sen lataaminen saattaa kestää jonkin aikaa. Nyt malttia peliin!
|
||||
uploadingFileNotification = Ilmoita minulle, kun lataus on valmis.
|
||||
uploadSuccessConfirmHeader = Valmis lähettämään
|
||||
uploadSvgAlt = Lataa
|
||||
uploadSuccessTimingHeader = Linkki tiedostoon vanhenee 1 latauksen tai 24 tunnin kuluttua.
|
||||
expireInfo = Linkki tiedostoon vanhenee { $downloadCount } tai { $timespan } kuluttua.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] yhden latauksen
|
||||
*[other] { $num } latauksen
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 tunnin
|
||||
*[other] { $num } tunnin
|
||||
}
|
||||
copyUrlFormLabelWithName = Kopioi ja jaa linkki lähettämääsi tiedostoon: { $filename }
|
||||
copyUrlFormButton = Kopioi leikepöydälle
|
||||
copiedUrl = Kopioitu!
|
||||
deleteFileButton = Poista tiedosto
|
||||
sendAnotherFileLink = Lähetä toinen tiedosto
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Lataa
|
||||
downloadsFileList = Lataukset
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Aika
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = { $filename } ladattu
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Syötä salasana
|
||||
unlockInputPlaceholder = Salasana
|
||||
unlockButtonLabel = Avaa
|
||||
downloadFileTitle = Lataa salattu tiedosto
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Ystäväsi lähettää sinulle tiedoston Firefox Send -palvelulla, jonka avulla voidaan jakaa tiedostoja turvallisen, yksityisen ja salatun linkin kautta. Linkki vanhenee automaattisesti, joten tiedot eivät säily verkossa ikuisesti.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Lataa
|
||||
downloadNotification = Latauksesi on valmis.
|
||||
downloadFinish = Lataus valmis
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = { $partialSize } / { $totalSize }
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Kokeile Firefox Sendiä
|
||||
downloadingPageProgress = Ladataan { $filename } ({ $size })
|
||||
downloadingPageMessage = Jätä tämä välilehti auki siksi aikaa kun haemme tiedoston ja puramme sen.
|
||||
errorAltText = Latausvirhe
|
||||
errorPageHeader = Jokin meni pieleen!
|
||||
errorPageMessage = Tiedoston lataamisessa on tapahtunut virhe.
|
||||
errorPageLink = Lähetä toinen tiedosto
|
||||
fileTooBig = Tämä tiedosto on liian suuri ladattavaksi. Sen pitäisi olla pienempi kuin { $size }.
|
||||
linkExpiredAlt = Linkki on vanhentunut
|
||||
expiredPageHeader = Tämä linkki on vanhentunut tai sitä ei ole koskaan ollut olemassa!
|
||||
notSupportedHeader = Selaintasi ei tueta.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Valitettavasti tämä selain ei tue Firefox Sendiä käyttävää web-tekniikkaa. Sinun on kokeiltava toista selainta. Suosittelemme Firefoxia!
|
||||
notSupportedLink = Miksi selaintani ei tueta?
|
||||
notSupportedOutdatedDetail = Valitettavasti tämä Firefoxin versio ei tue Firefox Sendiä käyttävää web-tekniikkaa. Sinun on päivitettävä selaimesi.
|
||||
updateFirefox = Päivitä Firefox
|
||||
downloadFirefoxButtonSub = Ilmainen lataus
|
||||
uploadedFile = Tiedosto
|
||||
copyFileList = Kopioi osoite
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Vanhenee
|
||||
deleteFileList = Poista
|
||||
nevermindButton = Unohda koko juttu
|
||||
legalHeader = Ehdot ja yksityisyys
|
||||
legalNoticeTestPilot = Firefox Send on tällä hetkellä Test Pilot -kokeilu, ja siihen sovelletaan Test Pilot <a>käyttöehtoja</a> ja <a>tietosuojakäytäntöjä</a>. Saat lisätietoja tästä kokeilusta ja sen tiedonkeruusta <a>täällä</a>.
|
||||
deletePopupText = Poista tämä tiedosto?
|
||||
deletePopupYes = Kyllä
|
||||
deletePopupCancel = Peruuta
|
||||
deleteButtonHover = Poista
|
||||
copyUrlHover = Kopioi osoite
|
||||
footerLinkLegal = Juridiset asiat
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Tietoja Test Pilotista
|
||||
footerLinkPrivacy = Tietosuoja
|
||||
footerLinkTerms = Ehdot
|
||||
footerLinkCookies = Evästeet
|
||||
requirePasswordCheckbox = Vaadi salasanaa tämän tiedoston lataamiseen
|
||||
addPasswordButton = Lisää salasana
|
||||
changePasswordButton = Muuta
|
||||
passwordTryAgain = Väärä salasana. Yritä uudelleen.
|
||||
reportIPInfringement = Ilmoita IP-rikkomuksesta
|
||||
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
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }min
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Salasana asetettu
|
||||
# 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
|
||||
passwordSetError = Tätä salasanaa ei voitu asettaa
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Paré à l’envoi
|
||||
uploadSvgAlt = Envoyer
|
||||
uploadSuccessTimingHeader = Le lien vers votre fichier expirera après le premier téléchargement ou au bout de 24 heures.
|
||||
expireInfo = Le lien vers votre fichier expirera après { $downloadCount } ou { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 téléchargement
|
||||
*[other] { $num } téléchargements
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 heure
|
||||
*[other] { $num } heures
|
||||
}
|
||||
@@ -86,8 +88,8 @@ expiryFileList = Expire dans
|
||||
deleteFileList = Supprimer
|
||||
nevermindButton = Non merci
|
||||
legalHeader = Confidentialité et conditions d’utilisation
|
||||
legalNoticeTestPilot = Firefox Send est actuellement une expérience Test Pilot, et en tant que tel est soumis aux <a>conditions d’utilisation</a> et à la <a>politique de confidentialité</a> de Test Pilot. Vous pouvez en apprendre plus sur cette expérience et sur la collecte de données <a>ici</a>.
|
||||
legalNoticeMozilla = L’utilisation du site web Firefox Send est aussi soumise à <a>l’avis de confidentialité relatif aux sites Web</a> ainsi qu’aux <a>conditions d’utilisation des sites Web</a> de Mozilla.
|
||||
legalNoticeTestPilot = Firefox Send est actuellement une expérience Test Pilot, et en tant que telle est soumis aux <a>Conditions d’utilisation</a> et à la <a>Politique de confidentialité</a> de Test Pilot. Vous pouvez en apprendre plus sur cette expérience et sur la collecte de données <a>ici</a>.
|
||||
legalNoticeMozilla = L’utilisation du site web Firefox Send est aussi soumise à <a>l’Avis de confidentialité relatif aux sites web</a> ainsi qu’aux <a>Conditions d’utilisation des sites web</a> de Mozilla.
|
||||
deletePopupText = Supprimer ce fichier ?
|
||||
deletePopupYes = Oui
|
||||
deletePopupCancel = Annuler
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ree om te ferstjoeren
|
||||
uploadSvgAlt = Oplaad
|
||||
uploadSuccessTimingHeader = De keppeling nei jo bestân sil nei 1 download ferrinne of nei 24 oeren.
|
||||
expireInfo = De keppeling nei jo bestân sil nei { $downloadCount } of { $timespan } ferrinne.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 download
|
||||
*[other] { $num } downloads
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 oer
|
||||
*[other] { $num } oeren
|
||||
}
|
||||
|
||||
57
public/locales/gor/send.ftl
Normal file
57
public/locales/gor/send.ftl
Normal file
@@ -0,0 +1,57 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Molawo
|
||||
siteSubtitle = web yimontalo
|
||||
uploadPageLearnMore = Pobalajariya po'olo
|
||||
uploadPageBrowseButton = Tulawota berkas to delomo komputermu
|
||||
uploadPageBrowseButton1 = Tulawota berkas u detohulo
|
||||
uploadPageBrowseButtonTitle = Detohe berkas
|
||||
uploadingPageProgress = Hemodetohu { $filename } ({ $size })
|
||||
notifyUploadDone = Diletohumu ma yilapato
|
||||
uploadingPageMessage = Bataliya modetohu
|
||||
uploadingPageCancel = Bataliya modetohu
|
||||
uploadCancelNotification = Diletohumu ma bilatali
|
||||
uploadingPageLargeFileMessage = Berkas botiya damango wawu paralu wakutu ngope'e mopodetohu. Potihulo'opo!
|
||||
uploadingFileNotification = Poleleya ola'u wonu ma yilapato lodetohu.
|
||||
uploadSuccessConfirmHeader = Siap Molawo
|
||||
uploadSvgAlt = Detohe
|
||||
copiedUrl = Yilami
|
||||
deleteFileButton = Luluta berkas
|
||||
sendAnotherFileLink = Lawola berkas uwewo
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Mopohuli
|
||||
downloadsFileList = Mopohuli
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Wakutu
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Mopohuli { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Tuwota Password
|
||||
unlockInputPlaceholder = Password
|
||||
unlockButtonLabel = Hu'owa
|
||||
downloadFileTitle = Mopohuli Enskripsi Berkas
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Mopohuli
|
||||
downloadNotification = U pilopohulimu ma yilapato.
|
||||
downloadFinish = Mopohuli Yilapato
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } meyalo { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Yimontali Firefox Molawo
|
||||
downloadFirefoxButtonSub = Pereyi Mopohuli
|
||||
uploadedFile = Berkas
|
||||
copyFileList = Kupe'iya URL
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Mopulito To
|
||||
deleteFileList = Luluta
|
||||
nevermindButton = Sambelo
|
||||
deletePopupText = Luluta berkas botiya?
|
||||
deletePopupYes = Joo
|
||||
deletePopupCancel = Bataliya
|
||||
deleteButtonHover = Luluta
|
||||
copyUrlHover = Kupe'iya URL
|
||||
footerLinkLegal = Legal
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Tomimbihu Test Pilot
|
||||
changePasswordButton = Boli'a
|
||||
@@ -1,4 +1,4 @@
|
||||
// Firefox Send is a brand name and should not be localized.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = ניסוי אינטרנט
|
||||
siteFeedback = משוב
|
||||
@@ -21,41 +21,36 @@ uploadCancelNotification = ההעלאה שלך בוטלה.
|
||||
uploadingPageLargeFileMessage = קובץ זה גדול ועלול לקחת זמן להעלות אותו. סבלנות!
|
||||
uploadingFileNotification = נא להודיע לי כשתסתיים ההעלאה.
|
||||
uploadSuccessConfirmHeader = מוכן לשליחה
|
||||
uploadSvgAlt
|
||||
.alt = להעלות
|
||||
uploadSvgAlt = העלאה
|
||||
uploadSuccessTimingHeader = הקישור לקובץ שלך יפוג אחרי הורדה אחת או בעוד 24 שעות.
|
||||
copyUrlFormLabelWithName = ניתן להעתיק ולשתף את הקישור כדי לשלוח את הקובץ שלך: { $filename }
|
||||
copiedUrl = הועתק!
|
||||
deleteFileButton = מחיקת קובץ
|
||||
.title = מחיקת קובץ
|
||||
sendAnotherFileLink = שליחת קובץ נוסף
|
||||
.title = שליחת קובץ נוסף
|
||||
// Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText
|
||||
.alt = הורדה
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = הורדה
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = ההורדה נכשלה
|
||||
downloadFileSize = ({ $size })
|
||||
// Text and title used on the download link/button (indicates an action).
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = הורדה
|
||||
.title = הורדה
|
||||
downloadNotification = ההורדה הושלמה.
|
||||
downloadFinish = ההורדה הושלמה
|
||||
// This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } מתוך { $totalSize })
|
||||
downloadingPageProgress = בהורדה: { $filename } ({ $size })
|
||||
errorAltText
|
||||
.alt = תקלה בהעלאה
|
||||
errorAltText = תקלה בהעלאה
|
||||
errorPageHeader = משהו השתבש!
|
||||
errorPageLink = שליחת קובץ נוסף
|
||||
fileTooBig = הקובץ הזה גדול מידי להעלאה. עליו להיות קטן מ־{ $size }.
|
||||
linkExpiredAlt
|
||||
.alt = קישור פג
|
||||
linkExpiredAlt = הקישור פג
|
||||
notSupportedHeader = הדפדפן שלך לא נתמך.
|
||||
notSupportedLink = למה אין תמיכה בדפדפן שלי?
|
||||
downloadFirefoxButtonSub = הורדה בחינם
|
||||
uploadedFile = קובץ
|
||||
copyFileList = העתקת כתובת
|
||||
// expiryFileList is used as a column header
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = יפוג בעוד
|
||||
deleteFileList = מחיקה
|
||||
nevermindButton = לא משנה
|
||||
@@ -63,10 +58,8 @@ legalHeader = תנאי שירות ופרטיות
|
||||
deletePopupText = למחוק דף זה?
|
||||
deletePopupYes = כן
|
||||
deletePopupCancel = ביטול
|
||||
deleteButtonHover
|
||||
.title = מחיקה
|
||||
copyUrlHover
|
||||
.title = העתקת קישור
|
||||
deleteButtonHover = מחיקה
|
||||
copyUrlHover = העתקת קישור
|
||||
footerLinkLegal = מידע משפטי
|
||||
footerLinkPrivacy = פרטיות
|
||||
footerLinkTerms = תנאי שימוש
|
||||
|
||||
123
public/locales/hr/send.ftl
Normal file
123
public/locales/hr/send.ftl
Normal file
@@ -0,0 +1,123 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteSubtitle = web eksperiment
|
||||
siteFeedback = Povratne informacije
|
||||
uploadPageHeader = Privatno i šifrirano dijeljenje datoteka
|
||||
uploadPageExplainer = Šaljite datoteke preko sigurne, privatne i šifrirane veze koja samostalno istječe, da vaše stvari ne bi ostale na netu zauvijek.
|
||||
uploadPageLearnMore = Saznajte više
|
||||
uploadPageDropMessage = Prevucite vaše datoteke ovdje da biste krenuli sa otpremanjem
|
||||
uploadPageSizeMessage = Za bolji rad predlažemo da datoteka ne bude veća od 1GB
|
||||
uploadPageBrowseButton = Izaberite datoteku na računalu
|
||||
uploadPageBrowseButton1 = Izaberite datoteku za otpremanje
|
||||
uploadPageMultipleFilesAlert = Otpremanje fascikala ili više datoteka trenutno nije podržano.
|
||||
uploadPageBrowseButtonTitle = Otpremi datoteku
|
||||
uploadingPageProgress = Otpremam { $filename } ({ $size })
|
||||
importingFile = Uvozim...
|
||||
verifyingFile = Potvrđujem...
|
||||
encryptingFile = Šifriram...
|
||||
decryptingFile = Dešifriram...
|
||||
notifyUploadDone = Vaše otpremanje je završeno.
|
||||
uploadingPageMessage = Nakon što se vaša datoteka otpremi, moći ćete podesiti opcije isteka.
|
||||
uploadingPageCancel = Otkaži otpremanje
|
||||
uploadCancelNotification = Vaše otpremanje je otkazano.
|
||||
uploadingPageLargeFileMessage = Ovo je velika datoteka i otpremanje može potrajati. Budite strpljivi!
|
||||
uploadingFileNotification = Obavijesti me kada se otpremanje završi.
|
||||
uploadSuccessConfirmHeader = Spreman za slanje
|
||||
uploadSvgAlt = Otpremi
|
||||
uploadSuccessTimingHeader = Veza prema vašoj datoteci će isteći nakon jednog preuzimanja ili nakon 24 sata.
|
||||
expireInfo = Veza prema vašoj datoteci će isteći nakon { $downloadCount } ili { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] preuzimanja
|
||||
[few] preuzimanja
|
||||
*[other] preuzimanja
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] sata
|
||||
[few] sata
|
||||
*[other] sati
|
||||
}
|
||||
copyUrlFormLabelWithName = Iskopirajte i podijelite vezu da biste poslali vašu datoteku: { $filename }
|
||||
copyUrlFormButton = Kopiraj u međuspremnik
|
||||
copiedUrl = Kopirano!
|
||||
deleteFileButton = Obriši datoteku
|
||||
sendAnotherFileLink = Pošalji sljedeću datoteku
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Preuzmi
|
||||
downloadsFileList = Preuzimanja
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Vrijeme
|
||||
# Used as header in a column indicating the number of times a file has been
|
||||
# downloaded
|
||||
downloadFileName = Preuzimanje datoteke { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
unlockInputLabel = Unesite lozinku
|
||||
unlockInputPlaceholder = Lozinka
|
||||
unlockButtonLabel = Otključaj
|
||||
downloadFileTitle = Preuzmi šifriranu datoteku
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = Vaš prijatelj vam je poslao datoteku preko usluge Firefox Send koja vam omogućava da dijelite datoteke preko sigurne, privatne i šifrirane veze koja samostalno istječe, da vaše stvari ne bi ostale na netu zauvijek.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Preuzmi
|
||||
downloadNotification = Vaše preuzimanje je završeno.
|
||||
downloadFinish = Preuzimanje je završeno.
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } od { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Isprobajte Firefox Send
|
||||
downloadingPageProgress = Preuzimam datoteku { $filename } ({ $size })
|
||||
downloadingPageMessage = Ostavite ovaj jezičak otvorenim dok ne dobavimo vašu datoteku i dok je ne dešifriramo.
|
||||
errorAltText = Greška pri otpremanju
|
||||
errorPageHeader = Nešto je pošlo naopako!
|
||||
errorPageMessage = Dogodila se greška prilikom otpremanja datoteke.
|
||||
errorPageLink = Pošalji drugu datoteku
|
||||
fileTooBig = Ta datoteka je prevelika za otpremanje. Treba biti manja od { $size }.
|
||||
linkExpiredAlt = Veza je istekla
|
||||
expiredPageHeader = Veza je ili istekla, ili nikada nije ni postojala!
|
||||
notSupportedHeader = Vaš preglednik nije podržan.
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
notSupportedDetail = Nažalost, ovaj preglednik ne podržava web tehnologiju koja omogućava Firefox Send. Morat ćete probati sa drugim preglednikom. Mi predlažemo Firefox!
|
||||
notSupportedLink = Zašto moj preglednik nije podržan?
|
||||
notSupportedOutdatedDetail = Nažalost, ovo izdanje Firefoxa ne podržava web tehnologiju koja omogućava Firefox Send. Morat ćete ažurirati vaš preglednik.
|
||||
updateFirefox = Ažuriraj Firefox
|
||||
downloadFirefoxButtonSub = Besplatno preuzimanje
|
||||
uploadedFile = Datoteka
|
||||
copyFileList = Kopiraj link
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = Istječe za
|
||||
deleteFileList = Obriši
|
||||
nevermindButton = Zanemari
|
||||
legalHeader = Uvjeti i privatnost
|
||||
legalNoticeTestPilot = Firefox Send je trenutno Test Pilot eksperiment i podložan je <a>uvjetima korištenja</a> Test Pilota i <a>obavijesti o privatnosti</a>. O ovom eksperimentu i o njegovom sakupljanju podataka možete saznati više <a>ovdje</a>.
|
||||
legalNoticeMozilla = Korištenje Firefox Send web stranice podliježe Mozillinoj <a>obavijesti o privatnosti na web stranicama</a> i <a>uvjetima korištenja web stranica</a>.
|
||||
deletePopupText = Obrisati ovu datoteku?
|
||||
deletePopupYes = Da
|
||||
deletePopupCancel = Otkaži
|
||||
deleteButtonHover = Obriši
|
||||
copyUrlHover = Kopiraj link
|
||||
footerLinkLegal = Pravni podaci
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = O Test Pilot
|
||||
footerLinkPrivacy = Privatnost
|
||||
footerLinkTerms = Uvjeti
|
||||
footerLinkCookies = Kolačići
|
||||
requirePasswordCheckbox = Zahtjevaj lozinku pri preuzimanju ove datoteke
|
||||
addPasswordButton = Dodaj lozinku
|
||||
changePasswordButton = Promijeni
|
||||
passwordTryAgain = Netočna lozinka. Pokušaj ponovo.
|
||||
reportIPInfringement = Prijavite IP prekršaj
|
||||
javascriptRequired = Za Firefox Send je potreban JavaScript
|
||||
whyJavascript = Zašto je za Firefox Send potreban JavaScript?
|
||||
enableJavascript = Omogućite JavaScript i pokušajte ponovo.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }s { $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 = Lozinka je postavljena
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Najveća dužina lozinke: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Ne možemo postaviti ovu lozinku
|
||||
@@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Hotowy za słanje
|
||||
uploadSvgAlt = Nahrać
|
||||
uploadSuccessTimingHeader = Wotkaz k wašej dataji po 1 sćehnjenju abo 24 hodźinach spadnje.
|
||||
expireInfo = Wotkaz k wašej dataji po { $downloadCount } abo { $timespan } spadnje.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 sćehnjenje
|
||||
[two] { $num } sćehnjeni
|
||||
[few] { $num } sćehnjenja
|
||||
*[other] { $num } sćehnjenjow
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hodźina
|
||||
[two] { $num } hodźinje
|
||||
[few] { $num } hodźiny
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Küldésre kész
|
||||
uploadSvgAlt = Feltöltés
|
||||
uploadSuccessTimingHeader = A fájl hivatkozása lejár 1 letöltés vagy 24 óra múlva.
|
||||
expireInfo = A fájlhoz tartozó hivatkozás { $downloadCount } vagy { $timespan } múlva lejár.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 letöltés
|
||||
*[other] { $num } letöltés
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 óra
|
||||
*[other] { $num } óra
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ uploadPageDropMessage = Depone ci tu file pro comenciar a lo cargar
|
||||
uploadPageSizeMessage = Pro evitar problemas, mantene tu file sub 1GB
|
||||
uploadPageBrowseButton = Elige un file sur tu computator
|
||||
uploadPageBrowseButton1 = Elige un file a cargar
|
||||
uploadPageMultipleFilesAlert = Le cargamento de plure files o de un plica actualmente non es supportate.
|
||||
uploadPageMultipleFilesAlert = Le cargamento de plure files o de un dossier non es actualmente admittite.
|
||||
uploadPageBrowseButtonTitle = Cargar le file
|
||||
uploadingPageProgress = Cargamento de { $filename } ({ $size })
|
||||
importingFile = Importation…
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Preste a inviar
|
||||
uploadSvgAlt = Cargamento
|
||||
uploadSuccessTimingHeader = Le ligamine a tu file expirara post un discargamento o in 24 horas.
|
||||
expireInfo = Le ligamine a tu file expirara post { $downloadCount } o { $timespan }
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] discargamento
|
||||
*[other] discargamentos
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] hora
|
||||
*[other] horas
|
||||
}
|
||||
@@ -57,7 +59,7 @@ downloadFileTitle = Discargar le file cryptate
|
||||
downloadMessage = Tu amico te invia un file per Firefox Send, un servicio que te permitte de compartir files per un ligamine secur, private e cryptate, que expira automaticamente pro te assecurar que tu datos non resta online per sempre.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Discargar
|
||||
downloadNotification = Tu discargamento es completate.
|
||||
downloadNotification = Discargamento completate.
|
||||
downloadFinish = Discargamento completate
|
||||
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
||||
@@ -86,7 +88,7 @@ expiryFileList = Expira in
|
||||
deleteFileList = Deler
|
||||
nevermindButton = No, gratias
|
||||
legalHeader = Terminos & confidentialitate
|
||||
legalNoticeTestPilot = Firefox Send es actualmente un Experimento pilota, e subjecte a <a>Terminos de servicio</a> e <a>Notitia de confidentialitate</a> de Experimento pilota. Tu pote saper plus re iste experimento e su recolta de datos <a>hic</a>.
|
||||
legalNoticeTestPilot = Firefox Send es actualmente un experimento pilota, e subjecte a <a>Terminos de servicio</a> e <a>Notification de confidentialitate</a> de Experimento pilota. Tu pote saper plus re iste experimento e su recolta de datos <a>hic</a>.
|
||||
legalNoticeMozilla = Le uso del sito web de Firefox Send es anque subjecte a <a>Notitia de confidentialitate de sito web</a> e <a>Terminos de servicio sito web</a>.
|
||||
deletePopupText = Deler iste file?
|
||||
deletePopupYes = Si
|
||||
|
||||
@@ -9,7 +9,6 @@ uploadPageDropMessage = Lepas berkas Anda di sini untuk mulai mengunggah
|
||||
uploadPageSizeMessage = Untuk pengoperasian yang paling andal, sebaiknya jaga berkas Anda di bawah 1GB
|
||||
uploadPageBrowseButton = Pilih berkas pada komputer Anda
|
||||
uploadPageBrowseButton1 = Pilih berkas untuk diunggah
|
||||
.title = Pilih berkas untuk diunggah
|
||||
uploadPageMultipleFilesAlert = Saat ini belum mendukung pengunggahan beberapa berkas atau folder.
|
||||
uploadPageBrowseButtonTitle = Unggah berkas
|
||||
uploadingPageProgress = Mengunggah { $filename } ({ $size })
|
||||
@@ -112,5 +111,9 @@ enableJavascript = Silakan aktifkan JavaScript dan coba lagi.
|
||||
expiresHoursMinutes = { $hours }j { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Sandi diatur
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Panjang sandi maksimal: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Tidak bisa menyetel sandi ini
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Pronto per l’invio
|
||||
uploadSvgAlt = Carica
|
||||
uploadSuccessTimingHeader = Il link al file scadrà dopo 1 download o in 24 ore.
|
||||
expireInfo = Il link a questo file scadrà dopo { $downloadCount } o { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 download
|
||||
*[other] { $num } download
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 ora
|
||||
*[other] { $num } ore
|
||||
}
|
||||
@@ -86,7 +88,7 @@ expiryFileList = Scade in
|
||||
deleteFileList = Elimina
|
||||
nevermindButton = No, grazie
|
||||
legalHeader = Termini di utilizzo e privacy
|
||||
legalNoticeTestPilot = Firefox Send è attualmente un esperimento di Test Pilot ed è soggetto alle <a>Condizioni di utilizzo</a> e all’<a>Informativa sulla privacy</a> di Test Pilot. Per ulteriori informazioni su questo esperimento e i dati raccolti, consulta <a>questa pagina<a>.
|
||||
legalNoticeTestPilot = Firefox Send è attualmente un esperimento di Test Pilot ed è soggetto alle <a>Condizioni di utilizzo</a> e all’<a>Informativa sulla privacy</a> di Test Pilot. Per ulteriori informazioni su questo esperimento e i dati raccolti, consulta <a>questa pagina</a>.
|
||||
legalNoticeMozilla = L’utilizzo del sito di Firefox Send è soggetto all’<a>Informativa sulla privacy</a> e le <a>Condizioni di utilizzo</a> dei siti web Mozilla.
|
||||
deletePopupText = Eliminare questo file?
|
||||
deletePopupYes = Sì
|
||||
|
||||
@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 送信準備完了
|
||||
uploadSvgAlt = アップロード
|
||||
uploadSuccessTimingHeader = ファイルへのリンクは、1 回ダウンロードされた後、もしくは 24 時間以内に期限切れとなります。
|
||||
expireInfo = このファイルへのリンクは { $downloadCount } あるいは { $timespan } 後に期限切れとなります。
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[other] { $num } 回のダウンロード
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[other] { $num } 時間
|
||||
}
|
||||
copyUrlFormLabelWithName = ファイルを送信するにはこのリンクをコピー、共有してください: { $filename }
|
||||
|
||||
@@ -9,7 +9,7 @@ uploadPageDropMessage = გადმოიტანეთ ფაილი აქ
|
||||
uploadPageSizeMessage = ყველაზე საიმედო მომსახურება, შეგიძლიათ ატვირთოთ არაუმეტეს 1GB ზომის ფაილი
|
||||
uploadPageBrowseButton = ფაილის არჩევა კომპიუტერიდან
|
||||
uploadPageBrowseButton1 = ფაილის არჩევა ასატვირთად
|
||||
uploadPageMultipleFilesAlert = ერთდროულად რამდენიმე ფაილის, ან საქაღალდის ატვირთვა, ამჟამად არაა ხელმისაწვდომი.
|
||||
uploadPageMultipleFilesAlert = ერთდროულად რამდენიმე ფაილის ან საქაღალდის ატვირთვა, ამჟამად არაა ხელმისაწვდომი.
|
||||
uploadPageBrowseButtonTitle = ფაილის ატვირთვა
|
||||
uploadingPageProgress = მიმდინარეობს ატვირთვა { $filename } ({ $size })
|
||||
importingFile = გადმოტანა...
|
||||
@@ -24,7 +24,7 @@ uploadingPageLargeFileMessage = ფაილი დიდია და ატვ
|
||||
uploadingFileNotification = შეტყობინება, ატვირთვის დასრულებისას.
|
||||
uploadSuccessConfirmHeader = მზადაა გასაგზავნად
|
||||
uploadSvgAlt = ატვირთვა
|
||||
uploadSuccessTimingHeader = ფაილს ვადა გაუვა 1 ჩამოტვირთვის, ან 24 საათის მერე.
|
||||
uploadSuccessTimingHeader = ფაილს ვადა გაუვა 1 ჩამოტვირთვის ან 24 საათის მერე.
|
||||
expireInfo = ფაილის ბმულს, ვადა გაუვა { $downloadCount }, ან { $timespan } მერე.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
@@ -36,9 +36,9 @@ timespanHours =
|
||||
[one] 1 საათი
|
||||
*[other] { $num } საათი
|
||||
}
|
||||
copyUrlFormLabelWithName = დააკოპირეთ და გააზიარეთ ბმული, ფაილის გასაგზავნად: { $filename }
|
||||
copyUrlFormButton = დაკოპირება
|
||||
copiedUrl = დაკოპირდა!
|
||||
copyUrlFormLabelWithName = აიღეთ ბმულის ასლი და გააზიარეთ, ფაილის გასაგზავნად: { $filename }
|
||||
copyUrlFormButton = ასლის აღება
|
||||
copiedUrl = ასლი მზადაა!
|
||||
deleteFileButton = ფაილის წაშლა
|
||||
sendAnotherFileLink = სხვა ფაილის გაგზავნა
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
@@ -82,7 +82,7 @@ notSupportedOutdatedDetail = სამწუხაროდ, Firefox-ის ა
|
||||
updateFirefox = Firefox-ის განახლება
|
||||
downloadFirefoxButtonSub = უფასო ჩამოტვირთვა
|
||||
uploadedFile = ფაილი
|
||||
copyFileList = URL ბმულის დაკოპირება
|
||||
copyFileList = URL-ბმულის ასლი
|
||||
# expiryFileList is used as a column header
|
||||
expiryFileList = ვადის გასვლის დრო
|
||||
deleteFileList = წაშლა
|
||||
@@ -90,12 +90,12 @@ nevermindButton = არ აქვს მნიშვნელობა
|
||||
legalHeader = პირობები და პირადულობა
|
||||
legalNoticeTestPilot = Firefox Send ამჟამად Test Pilot-ის საცდელი პროექტია და ექვემდებარება Test Pilot-ის <a>მომსახურების პირობებსა</a> და <a>პირადი მონაცემების დაცვის დებულებას</a>. ვრცლად, ამ საცდელი პროექტისა და მონაცემების აღრიცხვის შესახებ, შეგიძლიათ იხილოთ <a>აქ</a>.
|
||||
legalNoticeMozilla = Firefox Send ვებსაიტი, ასევე ექვემდებარება Mozilla-ს <a>ვებსაიტების პირადი მონაცემების შესახებ დებულებას</a> და <a>ვებსაიტების გამოყენების პირობებს</a>.
|
||||
deletePopupText = გსურთ ამ ფაილის წაშლა?
|
||||
deletePopupText = წაიშალოს ეს ფაილი?
|
||||
deletePopupYes = დიახ
|
||||
deletePopupCancel = გაუქმება
|
||||
deleteButtonHover = წაშლა
|
||||
copyUrlHover = URL-ს დაკოპირება
|
||||
footerLinkLegal = იურიდიული ინფორმაცია
|
||||
copyUrlHover = URL-ს ასლი
|
||||
footerLinkLegal = სამართლებრივი საკითხები
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Test Pilot-ის შესახებ
|
||||
footerLinkPrivacy = პირადულობა
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Ihegga i walluy
|
||||
uploadSvgAlt = Sali
|
||||
uploadSuccessTimingHeader = Aseɣwen ar ufaylu-ik ad yemmet ticki yuder-d neɣ deffir n 24 n yisragen.
|
||||
expireInfo = Aseɣwen icudden ar ufaylu-inek ad yemmet send { $downloadCount } naɣ { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 usider
|
||||
*[other] { $num } isidar
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 usrag
|
||||
*[other] { $num } isragen
|
||||
}
|
||||
|
||||
@@ -9,7 +9,6 @@ uploadPageDropMessage = 파일을 끌어 놓아 업로드 시작
|
||||
uploadPageSizeMessage = 확실한 작동을 위해서, 파일의 크기가 1GB보다 작은 것이 좋음
|
||||
uploadPageBrowseButton = 컴퓨터의 파일을 선택
|
||||
uploadPageBrowseButton1 = 업로드 할 파일 선택
|
||||
.title = 업로드 할 파일 선택
|
||||
uploadPageMultipleFilesAlert = 여러 개의 파일 또는 폴더를 업로드하는 것은 현재로선 지원되지 않습니다.
|
||||
uploadPageBrowseButtonTitle = 파일 업로드
|
||||
uploadingPageProgress = { $filename } ({ $size }) 업로드 중
|
||||
@@ -18,7 +17,7 @@ verifyingFile = 확인하는 중…
|
||||
encryptingFile = 암호화 중…
|
||||
decryptingFile = 복호화 중…
|
||||
notifyUploadDone = 업로드가 완료되었습니다.
|
||||
uploadingPageMessage = 파일이 업로드 되고나서 만료 옵션을 설정할 수 있습니다.
|
||||
uploadingPageMessage = 파일이 업로드 되고 나서 만료 옵션을 설정할 수 있습니다.
|
||||
uploadingPageCancel = 업로드 취소
|
||||
uploadCancelNotification = 업로드가 취소되었습니다.
|
||||
uploadingPageLargeFileMessage = 이 파일은 크기가 커서 시간이 다소 걸릴 수 있습니다. 잠시만 기다려주세요!
|
||||
|
||||
@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = Sedia untuk Hantar
|
||||
uploadSvgAlt = Muat naik
|
||||
uploadSuccessTimingHeader = Pautan ke fail anda akan luput selepas 1 muat turun atau dalam 24 jam.
|
||||
expireInfo = Pautan ke fail anda akan luput selepas { $downloadCount } atau { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[other] { $num } muat turun
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[other] { $num } jam
|
||||
}
|
||||
copyUrlFormLabelWithName = Salin dan kongsi pautan untuk menghantar fail anda: { $filename }
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klar til å sende
|
||||
uploadSvgAlt = Last opp
|
||||
uploadSuccessTimingHeader = Lenken til filen din utløper etter 1 nedlasting eller om 24 timer.
|
||||
expireInfo = Lenken til filen din vil gå ut etter { $downloadCount } eller { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 nedlasting
|
||||
*[other] { $num } nedlastinger
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 time
|
||||
*[other] { $num } timer
|
||||
}
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Gereed voor verzending
|
||||
uploadSvgAlt = Uploaden
|
||||
uploadSuccessTimingHeader = De koppeling naar uw bestand zal na 1 download of 24 uur verlopen.
|
||||
expireInfo = De koppeling naar uw bestand zal na { $downloadCount } of { $timespan } verlopen.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 download
|
||||
*[other] { $num } downloads
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 uur
|
||||
*[other] { $num } uur
|
||||
}
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klår til å senda
|
||||
uploadSvgAlt = Last opp
|
||||
uploadSuccessTimingHeader = Lenka til fila di går ut etter 1 nedlasting eller om 24 timar.
|
||||
expireInfo = Lenka til fila di vil gå ut etter { $downloadCount } eller { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 nedlasting
|
||||
*[other] { $num } nedlastingar
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 time
|
||||
*[other] { $num } timar
|
||||
}
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Pronto para enviar
|
||||
uploadSvgAlt = Enviado
|
||||
uploadSuccessTimingHeader = O link para o seu arquivo expirará após 1 download ou em 24 horas.
|
||||
expireInfo = O link para o seu arquivo expirará após { $downloadCount } ou { $timepan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 download
|
||||
*[other] { $num } downloads
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hora
|
||||
*[other] { $num } horas
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ uploadPageHeader = Partilha de ficheiros privada e encriptada
|
||||
uploadPageExplainer = Envie ficheiros através de uma ligação segura, privada e encriptada que expira automaticamente para garantir que as suas coisas não fiquem online para sempre.
|
||||
uploadPageLearnMore = Saber mais
|
||||
uploadPageDropMessage = Largue o seu ficheiro aqui para começar a carregar
|
||||
uploadPageSizeMessage = Para uma operação mais confiável, é melhor manter o seu ficheiro abaixo de 1GB
|
||||
uploadPageSizeMessage = Para uma operação mais fiável, é melhor manter o seu ficheiro abaixo de 1GB
|
||||
uploadPageBrowseButton = Selecionar um ficheiro no seu computador
|
||||
uploadPageBrowseButton1 = Selecionar um ficheiro a carregar
|
||||
uploadPageMultipleFilesAlert = Carregar múltiplos ficheiros ou uma pasta não é atualmente suportado.
|
||||
@@ -21,11 +21,11 @@ uploadingPageMessage = Assim que o seu ficheiro carregar irá poder definir as o
|
||||
uploadingPageCancel = Cancelar carregamento
|
||||
uploadCancelNotification = O seu carregamento foi cancelado.
|
||||
uploadingPageLargeFileMessage = Este ficheiro é grande e pode demorar um pouco a carregar. Fique onde está!
|
||||
uploadingFileNotification = Notificar-me quando o carregamento estiver completo.
|
||||
uploadingFileNotification = Notificar-me quando o carregamento estiver concluído.
|
||||
uploadSuccessConfirmHeader = Pronto para enviar
|
||||
uploadSvgAlt = Carregar
|
||||
uploadSuccessTimingHeader = A ligação para o seu ficheiro irá expirar depois de 1 transferência ou em 24 horas.
|
||||
expireInfo = A ligação para o seu ficheiro irá expirar depois de { $downloadCount } or { $timespan }.
|
||||
expireInfo = A ligação para o seu ficheiro irá expirar depois de { $downloadCount } ou { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 transferência
|
||||
@@ -52,7 +52,7 @@ unlockInputPlaceholder = Palavra-passe
|
||||
unlockButtonLabel = Desbloquear
|
||||
downloadFileTitle = Transferir ficheiro encriptado
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
downloadMessage = O seu amigo está a enviar-lhe um ficheiro com o Firefox Send, um serviço que lhe permite partilhar ficheiro com uma ligação segura, privada e encriptada que expira automaticamente para garantir que as suas coisas não fiquem online para sempre.
|
||||
downloadMessage = O seu amigo está a enviar-lhe um ficheiro com o Firefox Send, um serviço que lhe permite partilhar ficheiros com uma ligação segura, privada e encriptada que expira automaticamente para garantir que as suas coisas não fiquem online para sempre.
|
||||
# Text and title used on the download link/button (indicates an action).
|
||||
downloadButtonLabel = Transferir
|
||||
downloadNotification = A sua transferência foi concluída.
|
||||
@@ -91,7 +91,7 @@ deletePopupYes = Sim
|
||||
deletePopupCancel = Cancelar
|
||||
deleteButtonHover = Apagar
|
||||
copyUrlHover = Copiar URL
|
||||
footerLinkLegal = Legal
|
||||
footerLinkLegal = Informação legal
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = Acerca do Test Pilot
|
||||
footerLinkPrivacy = Privacidade
|
||||
|
||||
@@ -16,8 +16,8 @@ importingFile = Se importă…
|
||||
verifyingFile = Se verifică...
|
||||
encryptingFile = Se criptează…
|
||||
decryptingFile = Se decriptează…
|
||||
notifyUploadDone = Încărcarea s-a finalizat.
|
||||
uploadingPageMessage = După ce fișierul tău este încărcat vei putea seta opțiuni de expirare.
|
||||
notifyUploadDone = Încărcarea s-a terminat.
|
||||
uploadingPageMessage = După ce fișierul tău este încărcat, vei putea seta opțiuni de expirare.
|
||||
uploadingPageCancel = Anulează încărcarea
|
||||
uploadCancelNotification = Încărcarea a fost anulată.
|
||||
uploadingPageLargeFileMessage = Stai calm! Acest fișier este mare. S-ar putea să dureze un timp încărcarea.
|
||||
@@ -68,7 +68,7 @@ fileSizeProgress = ({ $partialSize } din { $totalSize })
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
sendYourFilesLink = Încearcă Firefox Send
|
||||
downloadingPageProgress = Se descarcă { $filename } ({ $size })
|
||||
downloadingPageMessage = Te rugăm să păstrezi această file deschisă în timp ce preluăm fișierul și îl decriptăm.
|
||||
downloadingPageMessage = Te rugăm să lași această filă deschisă în timp ce preluăm fișierul și îl decriptăm.
|
||||
errorAltText = Eroare la încărcare
|
||||
errorPageHeader = Ceva a mers prost!
|
||||
errorPageMessage = A apărut o eroare la încărcarea fișierului.
|
||||
@@ -92,7 +92,7 @@ nevermindButton = Uită
|
||||
legalHeader = Termeni de utilizare și politica de confidențialitate
|
||||
legalNoticeTestPilot = Firefox Send este în prezent un experiment Test Pilot și supus <a>Termenilor de utilizare a serviciului</a> și a <a>Politicii de confidențialitate</a> Test Pilot. Poți afla mai multe despre acest experiment și colectarea sa de date <a>aici</a>.
|
||||
legalNoticeMozilla = Folosirea site-ului Firefox Send mai este supusă <a>Politicii de confidențialitate pentru site-uri web</a> și a <a>Termenilor de utilizare a site-urilor web</a>.
|
||||
deletePopupText = Ștergi aceast fișier?
|
||||
deletePopupText = Ștergi acest fișier?
|
||||
deletePopupYes = Da
|
||||
deletePopupCancel = Renunță
|
||||
deleteButtonHover = Șterge
|
||||
@@ -109,12 +109,12 @@ changePasswordButton = Modifică
|
||||
passwordTryAgain = Parola este incorectă. Încearcă din nou.
|
||||
reportIPInfringement = Raportează încălcarea proprietății intelectuale
|
||||
javascriptRequired = Firefox Send are nevoie de JavaScript
|
||||
whyJavascript = De ce are nevoie Firefox Send de JavaScript?
|
||||
whyJavascript = De ce Firefox Send are nevoie de JavaScript?
|
||||
enableJavascript = Te rugăm să reactivezi JavaScript și să încerci din nou.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes } m
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Parola a fost setată
|
||||
# A short status message shown when the user enters a long password
|
||||
|
||||
@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Pripravené na odoslanie
|
||||
uploadSvgAlt = Nahrať
|
||||
uploadSuccessTimingHeader = Platnosť odkazu vyprší po 1 prevzatí alebo po uplynutí 24 hodín.
|
||||
expireInfo = Platnosť odkazu na váš súbor vyprší po { $downloadCount } alebo po { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 prevzatí
|
||||
[few] { $num } prevzatiach
|
||||
*[other] { $num } prevzatiach
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hodine
|
||||
[few] { $num } hodinách
|
||||
*[other] { $num } hodinách
|
||||
|
||||
@@ -26,13 +26,15 @@ uploadSuccessConfirmHeader = Pripravljeno za pošiljanje
|
||||
uploadSvgAlt = Naloži
|
||||
uploadSuccessTimingHeader = Povezava do vaše datoteke bo potekla po enem prenosu ali v 24 urah.
|
||||
expireInfo = Povezava do vaše datoteke bo potekla čez { $downloadCount } ali { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 prenos
|
||||
[two] { $num } prenosa
|
||||
[few] { $num } prenosi
|
||||
*[other] { $num } prenosov
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 ura
|
||||
[two] { $num } uri
|
||||
[few] { $num } ure
|
||||
|
||||
20
public/locales/sn/send.ftl
Normal file
20
public/locales/sn/send.ftl
Normal file
@@ -0,0 +1,20 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Zvirikutaurwa
|
||||
uploadPageLearnMore = Dzidza zvimwe
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Nguva
|
||||
deletePopupYes = Hongu
|
||||
changePasswordButton = Shandura
|
||||
enableJavascript = Ndinokumbira mubvumidze JavaScript moedza zvekare
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }maawa { $minutes }mineti
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }mineti
|
||||
# A short status message shown when a password is successfully set
|
||||
passwordIsSet = Pasiwedhi yaita
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Pasiwedhi haipfuuri mavara:{ $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Pasiwedhi haina kuita
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Gati për Dërgim
|
||||
uploadSvgAlt = Ngarkoje
|
||||
uploadSuccessTimingHeader = Lidhja për te kartela juaj do të skadojë pas 1 shkarkimi ose pas 24 orësh.
|
||||
expireInfo = Lidhja për te kartela juaj do të skadojë pas { $downloadCount } ose { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 shkarkimi
|
||||
*[other] { $num } shkarkimesh
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 ore
|
||||
*[other] { $num } orësh
|
||||
}
|
||||
|
||||
@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Спреман за слање
|
||||
uploadSvgAlt = Отпреми
|
||||
uploadSuccessTimingHeader = Веза ка вашој датотеци ће истећи након једног преузимања или након 24 сата.
|
||||
expireInfo = Веза ка вашој датотеци ће истећи након { $downloadCount } или { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] преузимања
|
||||
[few] преузимања
|
||||
*[other] преузимања
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] сата
|
||||
[few] сата
|
||||
*[other] сати
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Klar för att skicka
|
||||
uploadSvgAlt = Ladda upp
|
||||
uploadSuccessTimingHeader = Länken till din fil upphör att gälla efter 1 nedladdning eller om 24 timmar.
|
||||
expireInfo = Länken till din fil upphör att gälla efter { $downloadCount } eller { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 nedladdning
|
||||
*[other] { $num } nedladdningar
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 timme
|
||||
*[other] { $num } timmar
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ uploadPageDropMessage = ఎగుమతిని ప్రారంభించ
|
||||
uploadPageSizeMessage = అత్యంత నమ్మకమైన కార్యం కోసం, మీ ఫైలును 1GB కంటే తక్కువగా ఉంచడం ఉత్తమం
|
||||
uploadPageBrowseButton = మీ కంప్యూటర్లో ఒక ఫైలును ఎంచుకోండి
|
||||
uploadPageBrowseButton1 = ఎక్కించటానికి ఒక ఫైలును ఎంచుకోండి
|
||||
uploadPageMultipleFilesAlert = పలు ఫైళ్ళను లేదా సంయచాన్ని ఎక్కించడానికి ప్రస్తుతం తోడ్పాటు లేదు.
|
||||
uploadPageBrowseButtonTitle = ఫైలును ఎగుమతి చేయండి
|
||||
uploadingPageProgress = { $filename } ({ $size }) ఎక్కుతోంది
|
||||
importingFile = దిగుమతవుతోంది...
|
||||
@@ -64,6 +65,7 @@ errorAltText = ఎగుమతిలో లోపం
|
||||
errorPageHeader = ఏదో తప్పిదం జరిగింది!
|
||||
errorPageMessage = ఫైల్ను ఎగుమతి చేయడంలో లోపం ఉంది.
|
||||
errorPageLink = మరో ఫైలును పంపండి
|
||||
fileTooBig = ఆ ఫైలు ఎక్కించడానికి చాలా పెద్దగా ఉంది. ఫైళ్ళు { $size } కంటే తక్కువ పరిమాణంలో ఉండాలి.
|
||||
linkExpiredAlt = లంకె గడువు ముగిసింది
|
||||
expiredPageHeader = ఈ లంకె గడువు ముగిసింది లేదా ముందు ఎప్పుడూ ఉనికిలో లేదు!
|
||||
notSupportedHeader = మీ విహారిణికి మద్దతు లేదు.
|
||||
|
||||
@@ -26,11 +26,13 @@ uploadSuccessConfirmHeader = Handa nang Ipadala
|
||||
uploadSvgAlt = I-upload
|
||||
uploadSuccessTimingHeader = Mag-e-expire ang link sa iyong file pagkatapos ng 1 pag-download o sa loob ng 24 na oras.
|
||||
expireInfo = Mag-e-expire ang link sa iyong file pagkatapos ng { $downloadCount } o { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 pag-download
|
||||
*[other] { $num } na mga pag-download
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[one] 1 oras
|
||||
}
|
||||
copyUrlFormLabelWithName = Kopyahin at ibahagi ang link upang ipadala ang iyong file: { $filename }
|
||||
|
||||
@@ -84,7 +84,7 @@ expiryFileList = Bitiş süresi
|
||||
deleteFileList = Sil
|
||||
nevermindButton = Boş ver
|
||||
legalHeader = Şart ve Koşullar
|
||||
legalNoticeTestPilot = Firefox Send bir Test Pilotu deneyidir ve Test Pilotu <a>Hizmet Koşulları</a> ile <a>Gizlilik Bildirimi</a>’ne tabidir. Bu deney ve topladığı veriler hakkında daha fazla bilgi almak isterseniz <a>buraya</a> bakabilirsiniz.
|
||||
legalNoticeTestPilot = Firefox Send bir Test Pilotu deneyidir ve Test Pilotu <a>Hizmet Koşulları</a> ile <a>Gizlilik Bildirimi</a>’ne tabidir. Bu deney ve topladığı veriler hakkında daha fazla bilgi almak isterseniz <a>buraya</a> bakabilirsiniz.
|
||||
legalNoticeMozilla = Firefox Send’i kullanmak Mozilla’nın <a>Web Siteleri Gizlilik Bildirimi</a> ve <a>Web Siteleri Kullanım Koşulları</a>’na da tabidir.
|
||||
deletePopupText = Bu dosya silinsin mi?
|
||||
deletePopupYes = Evet
|
||||
|
||||
@@ -26,12 +26,14 @@ uploadSuccessConfirmHeader = Готовий до надсилання
|
||||
uploadSvgAlt = Вивантажити
|
||||
uploadSuccessTimingHeader = Час дії цього посилання закінчиться після 1 завантаження, або через 24 години.
|
||||
expireInfo = Посилання на ваш файл стане недійсним після { $downloadCount } файла, або через { $timespan }.
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 завантаження
|
||||
[few] { $num } завантаження
|
||||
*[other] { $num } завантажень
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 година
|
||||
[few] { $num } години
|
||||
*[other] { $num } годин
|
||||
@@ -88,8 +90,8 @@ expiryFileList = Термін дії закінчується
|
||||
deleteFileList = Видалити
|
||||
nevermindButton = Не важливо
|
||||
legalHeader = Умови та конфіденційність
|
||||
legalNoticeTestPilot = Firefox Send в даний час є експериментом Test Pilot, і тому підпадає під <a>умови служби</ a> і <a>повідомлення про приватність</a> Test Pilot. Ви можете дізнатись більше про цей експеримент і його збір даних <a>тут</a>.
|
||||
legalNoticeMozilla = Використання сайту Firefox Send також підпадає під <a>повідомлення про конфіденційність веб-сайтів</ a> та <a>правила використання веб-сайтів</a> Mozilla.
|
||||
legalNoticeTestPilot = Firefox Send в даний час є експериментом Test Pilot, і тому підпадає під <a>умови служби</a> і <a>повідомлення про приватність</a> Test Pilot. Ви можете дізнатись більше про цей експеримент і його збір даних <a>тут</a>.
|
||||
legalNoticeMozilla = Використання сайту Firefox Send також підпадає під <a>повідомлення про конфіденційність веб-сайтів</a> та <a>правила використання веб-сайтів</a> Mozilla.
|
||||
deletePopupText = Видалити цей файл?
|
||||
deletePopupYes = Так
|
||||
deletePopupCancel = Скасувати
|
||||
|
||||
@@ -22,24 +22,26 @@ uploadingPageCancel = Hủy tải lên
|
||||
uploadCancelNotification = Quá trình tải lên đã bị hủy.
|
||||
uploadingPageLargeFileMessage = Tập tin này khá nặng và sẽ tốn một chút thời gian để tải lên. Chờ chút nhé!
|
||||
uploadingFileNotification = Thông báo cho tôi khi tải lên hoàn tất.
|
||||
uploadSuccessConfirmHeader = Đã sẵn sàng để Gửi
|
||||
uploadSuccessConfirmHeader = Đã sẵn sàng để gửi
|
||||
uploadSvgAlt = Tải lên
|
||||
uploadSuccessTimingHeader = Liên kết đến tập tin của bạn sẽ hết hạn sau 1 lượt tải về hoặc trong 24 giờ.
|
||||
uploadSuccessTimingHeader = Liên kết đến tập tin của bạn sẽ hết hạn sau 1 lượt tải hoặc trong 24 giờ.
|
||||
expireInfo = Liên kết đến tập tin của bạn sẽ hết hạn sau { $downloadCount } hoặc { $timespan }.
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[other] lượt tải
|
||||
*[other] { $num } lượt tải
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[other] giờ
|
||||
*[other] { $num } giờ
|
||||
}
|
||||
copyUrlFormLabelWithName = Sao chép và chia sẻ liên kết để gửi tập tin của bạn: { $filename }
|
||||
copyUrlFormButton = Sao chép vào vùng nhớ tạm
|
||||
copyUrlFormButton = Sao chép vào bộ nhớ tạm
|
||||
copiedUrl = Đã sao chép!
|
||||
deleteFileButton = Xóa tập tin
|
||||
sendAnotherFileLink = Gửi tập tin khác
|
||||
# Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText = Tải về
|
||||
downloadAltText = Tải xuống
|
||||
downloadsFileList = Tải xuống
|
||||
# Used as header in a column indicating the amount of time left before a
|
||||
# download link expires (e.g. "10h 5m")
|
||||
timeFileList = Thời gian
|
||||
@@ -96,9 +98,10 @@ footerLinkLegal = Pháp lý
|
||||
footerLinkAbout = Về Test Pilot
|
||||
footerLinkPrivacy = Quyền riêng tư
|
||||
footerLinkTerms = Điều khoản
|
||||
footerLinkCookies = Cookies
|
||||
footerLinkCookies = Cookie
|
||||
requirePasswordCheckbox = Yêu cầu mật khẩu khi tải về tập tin này
|
||||
addPasswordButton = Thêm mật khẩu
|
||||
changePasswordButton = Thay đổi
|
||||
passwordTryAgain = Sai mật khẩu. Vui lòng thử lại.
|
||||
reportIPInfringement = Báo cáo vi phạm
|
||||
javascriptRequired = Firefox Send cần JavaScript
|
||||
@@ -112,3 +115,5 @@ expiresMinutes = { $minutes } phút
|
||||
passwordIsSet = Đã đặt mật khẩu
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Độ dài mật khẩu tối đa: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Không thể đặt mật khẩu này
|
||||
|
||||
@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 准备好发送
|
||||
uploadSvgAlt = 上传
|
||||
uploadSuccessTimingHeader = 您的文件的链接将在首次下载或 24 小时后过期。
|
||||
expireInfo = 指向该文件的链接将在 { $downloadCount } 或 { $timespan } 后过期。
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[other] { $num } 次下载
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[other] { $num } 小时
|
||||
}
|
||||
copyUrlFormLabelWithName = 复制并分享链接以发送您的文件:{ $filename }
|
||||
@@ -95,13 +97,13 @@ footerLinkLegal = 法律
|
||||
# Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = 关于 Test Pilot
|
||||
footerLinkPrivacy = 隐私
|
||||
footerLinkTerms = 条款
|
||||
footerLinkTerms = 使用条款
|
||||
footerLinkCookies = Cookie
|
||||
requirePasswordCheckbox = 持有密码才能下载此文件
|
||||
addPasswordButton = 添加密码
|
||||
changePasswordButton = 更改
|
||||
passwordTryAgain = 密码不正确。请重试。
|
||||
reportIPInfringement = 举报知识产权侵权
|
||||
reportIPInfringement = 举报侵犯知识产权
|
||||
javascriptRequired = Firefox Send 需要 JavaScript
|
||||
whyJavascript = 为什么 Firefox Send 需要 JavaScript?
|
||||
enableJavascript = 请启用 JavaScript 并重试。
|
||||
|
||||
@@ -26,10 +26,12 @@ uploadSuccessConfirmHeader = 準備好傳送
|
||||
uploadSvgAlt = 上傳
|
||||
uploadSuccessTimingHeader = 您的檔案鏈結將會在首次下載,或 24 小時後失效。
|
||||
expireInfo = 檔案鏈結將在 { $downloadCount }或 { $timespan }後失效。
|
||||
downloadCount = { $num ->
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
*[other] { $num } 次下載
|
||||
}
|
||||
timespanHours = { $num ->
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
*[other] { $num } 小時
|
||||
}
|
||||
copyUrlFormLabelWithName = 複製並分享鏈結來傳送您的檔案: { $filename }
|
||||
@@ -88,7 +90,7 @@ legalNoticeTestPilot = Firefox Send 目前是一個 Test Pilot 實驗,依照 T
|
||||
legalNoticeMozilla = 使用 Firefox Send 網站時,亦受到 Mozilla 的<a>網站隱私權公告</a>以及<a>網站使用條款</a>約束。
|
||||
deletePopupText = 真的要刪除這個檔案嗎?
|
||||
deletePopupYes = 好的,刪除
|
||||
deletePopupCancel = 不要刪除
|
||||
deletePopupCancel = 取消
|
||||
deleteButtonHover = 刪除
|
||||
copyUrlHover = 複製網址
|
||||
footerLinkLegal = 法律資訊
|
||||
|
||||
@@ -9,6 +9,11 @@ const conf = convict({
|
||||
default: '',
|
||||
env: 'S3_BUCKET'
|
||||
},
|
||||
gcs_bucket: {
|
||||
format: String,
|
||||
default: '',
|
||||
env: 'GCS_BUCKET'
|
||||
},
|
||||
redis_host: {
|
||||
format: String,
|
||||
default: 'localhost',
|
||||
|
||||
@@ -6,16 +6,19 @@ module.exports = async function(req, res) {
|
||||
const id = req.params.id;
|
||||
try {
|
||||
const meta = req.meta;
|
||||
const contentLength = await storage.length(id);
|
||||
res.writeHead(200, {
|
||||
'Content-Disposition': 'attachment',
|
||||
'Content-Type': 'application/octet-stream',
|
||||
'Content-Length': contentLength,
|
||||
'WWW-Authenticate': `send-v1 ${req.nonce}`
|
||||
});
|
||||
const file_stream = storage.get(id);
|
||||
let cancelled = false;
|
||||
|
||||
req.on('close', () => {
|
||||
cancelled = true;
|
||||
file_stream.destroy();
|
||||
});
|
||||
|
||||
file_stream.pipe(res).on('finish', async () => {
|
||||
if (cancelled) {
|
||||
return;
|
||||
}
|
||||
|
||||
file_stream.on('end', async () => {
|
||||
const dl = meta.dl + 1;
|
||||
const dlimit = meta.dlimit;
|
||||
try {
|
||||
@@ -28,7 +31,6 @@ module.exports = async function(req, res) {
|
||||
log.info('StorageError:', id);
|
||||
}
|
||||
});
|
||||
file_stream.pipe(res);
|
||||
} catch (e) {
|
||||
res.sendStatus(404);
|
||||
}
|
||||
|
||||
37
server/storage/gcs.js
Normal file
37
server/storage/gcs.js
Normal file
@@ -0,0 +1,37 @@
|
||||
const { Storage } = require('@google-cloud/storage');
|
||||
const storage = new Storage();
|
||||
|
||||
class GCSStorage {
|
||||
constructor(config, log) {
|
||||
this.bucket = storage.bucket(config.gcs_bucket);
|
||||
this.log = log;
|
||||
}
|
||||
|
||||
async length(id) {
|
||||
const data = await this.bucket.file(id).getMetadata();
|
||||
return data[0].size;
|
||||
}
|
||||
|
||||
getStream(id) {
|
||||
return this.bucket.file(id).createReadStream({ validation: false });
|
||||
}
|
||||
|
||||
set(id, file) {
|
||||
return new Promise((resolve, reject) => {
|
||||
file
|
||||
.pipe(this.bucket.file(id).createWriteStream())
|
||||
.on('error', reject)
|
||||
.on('finish', resolve);
|
||||
});
|
||||
}
|
||||
|
||||
del(id) {
|
||||
return this.bucket.file(id).delete();
|
||||
}
|
||||
|
||||
ping() {
|
||||
return this.bucket.exists();
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = GCSStorage;
|
||||
@@ -5,7 +5,14 @@ const createRedisClient = require('./redis');
|
||||
|
||||
class DB {
|
||||
constructor(config) {
|
||||
const Storage = config.s3_bucket ? require('./s3') : require('./fs');
|
||||
let Storage = null;
|
||||
if (config.s3_bucket) {
|
||||
Storage = require('./s3');
|
||||
} else if (config.gcs_bucket) {
|
||||
Storage = require('./gcs');
|
||||
} else {
|
||||
Storage = require('./fs');
|
||||
}
|
||||
this.log = mozlog('send.storage');
|
||||
this.expireSeconds = config.expire_seconds;
|
||||
this.storage = new Storage(config, this.log);
|
||||
|
||||
@@ -6,7 +6,9 @@ function kv(f) {
|
||||
}
|
||||
|
||||
module.exports = function() {
|
||||
const files = fs.readdirSync(path.join(__dirname, 'tests'));
|
||||
const files = fs
|
||||
.readdirSync(path.join(__dirname, 'tests'))
|
||||
.filter(p => /\.js$/.test(p));
|
||||
const code = "require('fast-text-encoding');\n" + files.map(kv).join(';\n');
|
||||
return {
|
||||
code,
|
||||
|
||||
@@ -23,7 +23,12 @@ function onConsole(msg) {
|
||||
|
||||
const server = app.listen(async function() {
|
||||
let exitCode = -1;
|
||||
const browser = await puppeteer.launch();
|
||||
const browser = await puppeteer.launch({
|
||||
args: [
|
||||
// puppeteer >= 1.10.0 crashes on Circle CI without this flag set
|
||||
'--no-sandbox'
|
||||
]
|
||||
});
|
||||
try {
|
||||
const page = await browser.newPage();
|
||||
page.on('console', onConsole);
|
||||
|
||||
@@ -134,6 +134,43 @@ describe('Upload / Download flow', function() {
|
||||
}
|
||||
});
|
||||
|
||||
it('can increase download count on download', async function() {
|
||||
const fs = new FileSender(blob);
|
||||
const file = await fs.upload();
|
||||
const fr = new FileReceiver({
|
||||
secretKey: file.toJSON().secretKey,
|
||||
id: file.id,
|
||||
nonce: file.keychain.nonce,
|
||||
requiresPassword: false
|
||||
});
|
||||
await fr.getMetadata();
|
||||
|
||||
await fr.download(noSave);
|
||||
await file.updateDownloadCount();
|
||||
assert.equal(file.dtotal, 1);
|
||||
});
|
||||
|
||||
it('does not increase download count when download cancelled', async function() {
|
||||
const fs = new FileSender(blob);
|
||||
const file = await fs.upload();
|
||||
const fr = new FileReceiver({
|
||||
secretKey: file.toJSON().secretKey,
|
||||
id: file.id,
|
||||
nonce: file.keychain.nonce,
|
||||
requiresPassword: false
|
||||
});
|
||||
await fr.getMetadata();
|
||||
fr.once('progress', () => fr.cancel());
|
||||
|
||||
try {
|
||||
await fr.download(noSave);
|
||||
assert.fail('not cancelled');
|
||||
} catch (e) {
|
||||
await file.updateDownloadCount();
|
||||
assert.equal(file.dtotal, 0);
|
||||
}
|
||||
});
|
||||
|
||||
it('can allow multiple downloads', async function() {
|
||||
const fs = new FileSender(blob);
|
||||
const file = await fs.upload();
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
selenium==3.12.0
|
||||
flake8==3.5.0
|
||||
flake8-isort==2.5
|
||||
PyPOM==2.0.0
|
||||
pytest==3.5.1
|
||||
pytest-html==1.17.0
|
||||
pytest-selenium==1.12.0
|
||||
pytest-xdist==1.22.2
|
||||
selenium==3.141.0
|
||||
flake8==3.6.0
|
||||
flake8-isort==2.6.0
|
||||
PyPOM==2.2.0
|
||||
pytest==4.1.1
|
||||
pytest-html==1.20.0
|
||||
pytest-selenium==1.15.1
|
||||
pytest-xdist==1.26.0
|
||||
|
||||
Reference in New Issue
Block a user