mirror of
https://gitlab.com/timvisee/send.git
synced 2025-12-07 14:40:55 +03:00
Compare commits
42 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
03246532e3 | ||
|
|
cff91b2189 | ||
|
|
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 |
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
|
FROM node:10-slim
|
||||||
RUN addgroup -S -g 10001 app && adduser -S -D -G app -u 10001 app
|
RUN addgroup --gid 10001 app && adduser --disabled-password --gecos '' --gid 10001 --home /app --uid 10001 app
|
||||||
COPY . /app
|
|
||||||
RUN chown -R app /app
|
|
||||||
USER app
|
USER app
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN mkdir static
|
COPY --chown=app:app --from=builder /app .
|
||||||
RUN npm install --production && npm cache clean --force
|
COPY --chown=app:app . .
|
||||||
|
|
||||||
ENV PORT=1443
|
ENV PORT=1443
|
||||||
EXPOSE $PORT
|
EXPOSE $PORT
|
||||||
|
|
||||||
CMD ["npm", "run", "prod"]
|
CMD ["node", "server/prod.js"]
|
||||||
|
|||||||
@@ -162,8 +162,8 @@ function download(id, keychain, onprogress, canceller) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
xhr.addEventListener('progress', function(event) {
|
xhr.addEventListener('progress', function(event) {
|
||||||
if (event.lengthComputable && event.target.status === 200) {
|
if (event.target.status === 200) {
|
||||||
onprogress([event.loaded, event.total]);
|
onprogress(event.loaded);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const auth = await keychain.authHeader();
|
const auth = await keychain.authHeader();
|
||||||
@@ -171,7 +171,7 @@ function download(id, keychain, onprogress, canceller) {
|
|||||||
xhr.setRequestHeader('Authorization', auth);
|
xhr.setRequestHeader('Authorization', auth);
|
||||||
xhr.responseType = 'blob';
|
xhr.responseType = 'blob';
|
||||||
xhr.send();
|
xhr.send();
|
||||||
onprogress([0, 1]);
|
onprogress(0);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ export default class FileReceiver extends Nanobus {
|
|||||||
this.fileInfo.name = meta.name;
|
this.fileInfo.name = meta.name;
|
||||||
this.fileInfo.type = meta.type;
|
this.fileInfo.type = meta.type;
|
||||||
this.fileInfo.iv = meta.iv;
|
this.fileInfo.iv = meta.iv;
|
||||||
this.fileInfo.size = meta.size;
|
this.fileInfo.size = +meta.size;
|
||||||
this.state = 'ready';
|
this.state = 'ready';
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,7 +57,7 @@ export default class FileReceiver extends Nanobus {
|
|||||||
this.fileInfo.id,
|
this.fileInfo.id,
|
||||||
this.keychain,
|
this.keychain,
|
||||||
p => {
|
p => {
|
||||||
this.progress = p;
|
this.progress = [p, this.fileInfo.size];
|
||||||
this.emit('progress');
|
this.emit('progress');
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ version: 2.0
|
|||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/node:8
|
- image: circleci/node:10
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
@@ -19,7 +19,7 @@ jobs:
|
|||||||
- ./dist
|
- ./dist
|
||||||
test:
|
test:
|
||||||
docker:
|
docker:
|
||||||
- image: circleci/node:8-browsers
|
- image: circleci/node:10-browsers
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- restore_cache:
|
- restore_cache:
|
||||||
|
|||||||
2051
package-lock.json
generated
2051
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "firefox-send",
|
"name": "firefox-send",
|
||||||
"description": "File Sharing Experiment",
|
"description": "File Sharing Experiment",
|
||||||
"version": "2.6.0",
|
"version": "2.6.3",
|
||||||
"author": "Mozilla (https://mozilla.org)",
|
"author": "Mozilla (https://mozilla.org)",
|
||||||
"repository": "mozilla/send",
|
"repository": "mozilla/send",
|
||||||
"homepage": "https://github.com/mozilla/send/",
|
"homepage": "https://github.com/mozilla/send/",
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"precommit": "lint-staged",
|
"precommit": "lint-staged",
|
||||||
"prepush": "npm test",
|
"prepush": "npm test",
|
||||||
"check": "nsp check",
|
"check": "npm audit",
|
||||||
"clean": "rimraf dist",
|
"clean": "rimraf dist",
|
||||||
"build": "npm run clean && webpack -p",
|
"build": "npm run clean && webpack -p",
|
||||||
"lint": "npm-run-all lint:*",
|
"lint": "npm-run-all lint:*",
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js && nyc report --reporter=html",
|
"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": "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",
|
"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"
|
"prod": "node server/prod.js"
|
||||||
},
|
},
|
||||||
"lint-staged": {
|
"lint-staged": {
|
||||||
@@ -85,22 +85,21 @@
|
|||||||
"mocha": "^5.2.0",
|
"mocha": "^5.2.0",
|
||||||
"nanobus": "^4.3.4",
|
"nanobus": "^4.3.4",
|
||||||
"nanotiming": "^7.3.1",
|
"nanotiming": "^7.3.1",
|
||||||
"npm-run-all": "^4.1.3",
|
"npm-run-all": "^4.1.5",
|
||||||
"nsp": "^3.2.1",
|
|
||||||
"nyc": "^11.9.0",
|
"nyc": "^11.9.0",
|
||||||
"postcss-cssnext": "^3.1.0",
|
"postcss-cssnext": "^3.1.0",
|
||||||
"postcss-import": "^11.1.0",
|
"postcss-import": "^11.1.0",
|
||||||
"postcss-loader": "^2.1.6",
|
"postcss-loader": "^2.1.6",
|
||||||
"prettier": "^1.14.3",
|
"prettier": "^1.15.2",
|
||||||
"proxyquire": "^1.8.0",
|
"proxyquire": "^1.8.0",
|
||||||
"puppeteer": "^1.9.0",
|
"puppeteer": "^1.11.0",
|
||||||
"raven-js": "^3.27.0",
|
"raven-js": "^3.27.0",
|
||||||
"redis-mock": "^0.21.0",
|
"redis-mock": "^0.21.0",
|
||||||
"require-from-string": "^2.0.2",
|
"require-from-string": "^2.0.2",
|
||||||
"rimraf": "^2.6.2",
|
"rimraf": "^2.6.2",
|
||||||
"sinon": "^4.5.0",
|
"sinon": "^4.5.0",
|
||||||
"string-hash": "^1.1.3",
|
"string-hash": "^1.1.3",
|
||||||
"stylelint": "^9.6.0",
|
"stylelint": "^9.8.0",
|
||||||
"stylelint-config-standard": "^18.2.0",
|
"stylelint-config-standard": "^18.2.0",
|
||||||
"stylelint-no-unsupported-browser-features": "^2.0.0",
|
"stylelint-no-unsupported-browser-features": "^2.0.0",
|
||||||
"svgo": "^1.1.1",
|
"svgo": "^1.1.1",
|
||||||
@@ -109,13 +108,12 @@
|
|||||||
"val-loader": "^1.1.1",
|
"val-loader": "^1.1.1",
|
||||||
"webpack": "^3.12.0",
|
"webpack": "^3.12.0",
|
||||||
"webpack-dev-middleware": "^2.0.6",
|
"webpack-dev-middleware": "^2.0.6",
|
||||||
"webpack-dev-server": "2.9.1",
|
|
||||||
"webpack-manifest-plugin": "^1.3.2",
|
"webpack-manifest-plugin": "^1.3.2",
|
||||||
"webpack-unassert-loader": "^1.2.0"
|
"webpack-unassert-loader": "^1.2.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@google-cloud/storage": "^2.3.0",
|
"@google-cloud/storage": "^2.4.2",
|
||||||
"aws-sdk": "^2.349.0",
|
"aws-sdk": "^2.362.0",
|
||||||
"babel-polyfill": "^6.26.0",
|
"babel-polyfill": "^6.26.0",
|
||||||
"choo": "^6.13.0",
|
"choo": "^6.13.0",
|
||||||
"cldr-core": "^32.0.0",
|
"cldr-core": "^32.0.0",
|
||||||
@@ -125,7 +123,7 @@
|
|||||||
"fast-crc32c": "^1.0.4",
|
"fast-crc32c": "^1.0.4",
|
||||||
"fluent": "^0.6.4",
|
"fluent": "^0.6.4",
|
||||||
"fluent-langneg": "^0.1.0",
|
"fluent-langneg": "^0.1.0",
|
||||||
"helmet": "^3.13.0",
|
"helmet": "^3.15.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"mozlog": "^2.2.0",
|
"mozlog": "^2.2.0",
|
||||||
"raven": "^2.6.4",
|
"raven": "^2.6.4",
|
||||||
@@ -146,6 +144,7 @@
|
|||||||
"dsb",
|
"dsb",
|
||||||
"el",
|
"el",
|
||||||
"en-CA",
|
"en-CA",
|
||||||
|
"en-GB",
|
||||||
"es-AR",
|
"es-AR",
|
||||||
"es-CL",
|
"es-CL",
|
||||||
"es-ES",
|
"es-ES",
|
||||||
@@ -154,6 +153,7 @@
|
|||||||
"fa",
|
"fa",
|
||||||
"fr",
|
"fr",
|
||||||
"fy-NL",
|
"fy-NL",
|
||||||
|
"hr",
|
||||||
"hsb",
|
"hsb",
|
||||||
"hu",
|
"hu",
|
||||||
"ia",
|
"ia",
|
||||||
|
|||||||
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
|
||||||
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
|
||||||
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
|
||||||
@@ -21,37 +21,30 @@ uploadCancelNotification = ההעלאה שלך בוטלה.
|
|||||||
uploadingPageLargeFileMessage = קובץ זה גדול ועלול לקחת זמן להעלות אותו. סבלנות!
|
uploadingPageLargeFileMessage = קובץ זה גדול ועלול לקחת זמן להעלות אותו. סבלנות!
|
||||||
uploadingFileNotification = נא להודיע לי כשתסתיים ההעלאה.
|
uploadingFileNotification = נא להודיע לי כשתסתיים ההעלאה.
|
||||||
uploadSuccessConfirmHeader = מוכן לשליחה
|
uploadSuccessConfirmHeader = מוכן לשליחה
|
||||||
uploadSvgAlt =
|
uploadSvgAlt = העלאה
|
||||||
.alt = להעלות
|
|
||||||
uploadSuccessTimingHeader = הקישור לקובץ שלך יפוג אחרי הורדה אחת או בעוד 24 שעות.
|
uploadSuccessTimingHeader = הקישור לקובץ שלך יפוג אחרי הורדה אחת או בעוד 24 שעות.
|
||||||
copyUrlFormLabelWithName = ניתן להעתיק ולשתף את הקישור כדי לשלוח את הקובץ שלך: { $filename }
|
copyUrlFormLabelWithName = ניתן להעתיק ולשתף את הקישור כדי לשלוח את הקובץ שלך: { $filename }
|
||||||
copiedUrl = הועתק!
|
copiedUrl = הועתק!
|
||||||
deleteFileButton = מחיקת קובץ
|
deleteFileButton = מחיקת קובץ
|
||||||
.title = מחיקת קובץ
|
|
||||||
sendAnotherFileLink = שליחת קובץ נוסף
|
sendAnotherFileLink = שליחת קובץ נוסף
|
||||||
.title = שליחת קובץ נוסף
|
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
# Alternative text used on the download link/button (indicates an action).
|
||||||
downloadAltText =
|
downloadAltText = הורדה
|
||||||
.alt = הורדה
|
|
||||||
# Used as header in a column indicating the number of times a file has been
|
# Used as header in a column indicating the number of times a file has been
|
||||||
# downloaded
|
# downloaded
|
||||||
downloadFileName = ההורדה נכשלה
|
downloadFileName = ההורדה נכשלה
|
||||||
downloadFileSize = ({ $size })
|
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 = הורדה
|
downloadButtonLabel = הורדה
|
||||||
.title = הורדה
|
|
||||||
downloadNotification = ההורדה הושלמה.
|
downloadNotification = ההורדה הושלמה.
|
||||||
downloadFinish = ההורדה הושלמה
|
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 })
|
fileSizeProgress = ({ $partialSize } מתוך { $totalSize })
|
||||||
downloadingPageProgress = בהורדה: { $filename } ({ $size })
|
downloadingPageProgress = בהורדה: { $filename } ({ $size })
|
||||||
errorAltText =
|
errorAltText = תקלה בהעלאה
|
||||||
.alt = תקלה בהעלאה
|
|
||||||
errorPageHeader = משהו השתבש!
|
errorPageHeader = משהו השתבש!
|
||||||
errorPageLink = שליחת קובץ נוסף
|
errorPageLink = שליחת קובץ נוסף
|
||||||
fileTooBig = הקובץ הזה גדול מידי להעלאה. עליו להיות קטן מ־{ $size }.
|
fileTooBig = הקובץ הזה גדול מידי להעלאה. עליו להיות קטן מ־{ $size }.
|
||||||
linkExpiredAlt =
|
linkExpiredAlt = הקישור פג
|
||||||
.alt = קישור פג
|
|
||||||
notSupportedHeader = הדפדפן שלך לא נתמך.
|
notSupportedHeader = הדפדפן שלך לא נתמך.
|
||||||
notSupportedLink = למה אין תמיכה בדפדפן שלי?
|
notSupportedLink = למה אין תמיכה בדפדפן שלי?
|
||||||
downloadFirefoxButtonSub = הורדה בחינם
|
downloadFirefoxButtonSub = הורדה בחינם
|
||||||
@@ -65,10 +58,8 @@ legalHeader = תנאי שירות ופרטיות
|
|||||||
deletePopupText = למחוק דף זה?
|
deletePopupText = למחוק דף זה?
|
||||||
deletePopupYes = כן
|
deletePopupYes = כן
|
||||||
deletePopupCancel = ביטול
|
deletePopupCancel = ביטול
|
||||||
deleteButtonHover =
|
deleteButtonHover = מחיקה
|
||||||
.title = מחיקה
|
copyUrlHover = העתקת קישור
|
||||||
copyUrlHover =
|
|
||||||
.title = העתקת קישור
|
|
||||||
footerLinkLegal = מידע משפטי
|
footerLinkLegal = מידע משפטי
|
||||||
footerLinkPrivacy = פרטיות
|
footerLinkPrivacy = פרטיות
|
||||||
footerLinkTerms = תנאי שימוש
|
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
|
||||||
@@ -88,7 +88,7 @@ expiryFileList = Scade in
|
|||||||
deleteFileList = Elimina
|
deleteFileList = Elimina
|
||||||
nevermindButton = No, grazie
|
nevermindButton = No, grazie
|
||||||
legalHeader = Termini di utilizzo e privacy
|
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.
|
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?
|
deletePopupText = Eliminare questo file?
|
||||||
deletePopupYes = Sì
|
deletePopupYes = Sì
|
||||||
|
|||||||
@@ -36,9 +36,9 @@ timespanHours =
|
|||||||
[one] 1 საათი
|
[one] 1 საათი
|
||||||
*[other] { $num } საათი
|
*[other] { $num } საათი
|
||||||
}
|
}
|
||||||
copyUrlFormLabelWithName = დააკოპირეთ და გააზიარეთ ბმული, ფაილის გასაგზავნად: { $filename }
|
copyUrlFormLabelWithName = აიღეთ ბმულის ასლი და გააზიარეთ, ფაილის გასაგზავნად: { $filename }
|
||||||
copyUrlFormButton = დაკოპირება
|
copyUrlFormButton = ასლის აღება
|
||||||
copiedUrl = დაკოპირდა!
|
copiedUrl = ასლი მზადაა!
|
||||||
deleteFileButton = ფაილის წაშლა
|
deleteFileButton = ფაილის წაშლა
|
||||||
sendAnotherFileLink = სხვა ფაილის გაგზავნა
|
sendAnotherFileLink = სხვა ფაილის გაგზავნა
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
# Alternative text used on the download link/button (indicates an action).
|
||||||
@@ -82,7 +82,7 @@ notSupportedOutdatedDetail = სამწუხაროდ, Firefox-ის ა
|
|||||||
updateFirefox = Firefox-ის განახლება
|
updateFirefox = Firefox-ის განახლება
|
||||||
downloadFirefoxButtonSub = უფასო ჩამოტვირთვა
|
downloadFirefoxButtonSub = უფასო ჩამოტვირთვა
|
||||||
uploadedFile = ფაილი
|
uploadedFile = ფაილი
|
||||||
copyFileList = URL-ბმულის დაკოპირება
|
copyFileList = URL-ბმულის ასლი
|
||||||
# expiryFileList is used as a column header
|
# expiryFileList is used as a column header
|
||||||
expiryFileList = ვადის გასვლის დრო
|
expiryFileList = ვადის გასვლის დრო
|
||||||
deleteFileList = წაშლა
|
deleteFileList = წაშლა
|
||||||
@@ -94,8 +94,8 @@ deletePopupText = წაიშალოს ეს ფაილი?
|
|||||||
deletePopupYes = დიახ
|
deletePopupYes = დიახ
|
||||||
deletePopupCancel = გაუქმება
|
deletePopupCancel = გაუქმება
|
||||||
deleteButtonHover = წაშლა
|
deleteButtonHover = წაშლა
|
||||||
copyUrlHover = URL-ს დაკოპირება
|
copyUrlHover = URL-ს ასლი
|
||||||
footerLinkLegal = იურიდიული ინფორმაცია
|
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-ის შესახებ
|
footerLinkAbout = Test Pilot-ის შესახებ
|
||||||
footerLinkPrivacy = პირადულობა
|
footerLinkPrivacy = პირადულობა
|
||||||
|
|||||||
@@ -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.
|
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
|
uploadPageLearnMore = Saber mais
|
||||||
uploadPageDropMessage = Largue o seu ficheiro aqui para começar a carregar
|
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
|
uploadPageBrowseButton = Selecionar um ficheiro no seu computador
|
||||||
uploadPageBrowseButton1 = Selecionar um ficheiro a carregar
|
uploadPageBrowseButton1 = Selecionar um ficheiro a carregar
|
||||||
uploadPageMultipleFilesAlert = Carregar múltiplos ficheiros ou uma pasta não é atualmente suportado.
|
uploadPageMultipleFilesAlert = Carregar múltiplos ficheiros ou uma pasta não é atualmente suportado.
|
||||||
@@ -91,7 +91,7 @@ deletePopupYes = Sim
|
|||||||
deletePopupCancel = Cancelar
|
deletePopupCancel = Cancelar
|
||||||
deleteButtonHover = Apagar
|
deleteButtonHover = Apagar
|
||||||
copyUrlHover = Copiar URL
|
copyUrlHover = Copiar URL
|
||||||
footerLinkLegal = Legal
|
footerLinkLegal = Informação legal
|
||||||
# Test Pilot is a proper name and should not be localized.
|
# Test Pilot is a proper name and should not be localized.
|
||||||
footerLinkAbout = Acerca do Test Pilot
|
footerLinkAbout = Acerca do Test Pilot
|
||||||
footerLinkPrivacy = Privacidade
|
footerLinkPrivacy = Privacidade
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ importingFile = Se importă…
|
|||||||
verifyingFile = Se verifică...
|
verifyingFile = Se verifică...
|
||||||
encryptingFile = Se criptează…
|
encryptingFile = Se criptează…
|
||||||
decryptingFile = Se decriptează…
|
decryptingFile = Se decriptează…
|
||||||
notifyUploadDone = Încărcarea s-a finalizat.
|
notifyUploadDone = Încărcarea s-a terminat.
|
||||||
uploadingPageMessage = După ce fișierul tău este încărcat, vei putea seta opțiuni de expirare.
|
uploadingPageMessage = După ce fișierul tău este încărcat, vei putea seta opțiuni de expirare.
|
||||||
uploadingPageCancel = Anulează încărcarea
|
uploadingPageCancel = Anulează încărcarea
|
||||||
uploadCancelNotification = Încărcarea a fost anulată.
|
uploadCancelNotification = Încărcarea a fost anulată.
|
||||||
|
|||||||
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
|
||||||
@@ -90,8 +90,8 @@ expiryFileList = Термін дії закінчується
|
|||||||
deleteFileList = Видалити
|
deleteFileList = Видалити
|
||||||
nevermindButton = Не важливо
|
nevermindButton = Не важливо
|
||||||
legalHeader = Умови та конфіденційність
|
legalHeader = Умови та конфіденційність
|
||||||
legalNoticeTestPilot = Firefox Send в даний час є експериментом Test Pilot, і тому підпадає під <a>умови служби</ a> і <a>повідомлення про приватність</a> Test Pilot. Ви можете дізнатись більше про цей експеримент і його збір даних <a>тут</a>.
|
legalNoticeTestPilot = Firefox Send в даний час є експериментом Test Pilot, і тому підпадає під <a>умови служби</a> і <a>повідомлення про приватність</a> Test Pilot. Ви можете дізнатись більше про цей експеримент і його збір даних <a>тут</a>.
|
||||||
legalNoticeMozilla = Використання сайту Firefox Send також підпадає під <a>повідомлення про конфіденційність веб-сайтів</ a> та <a>правила використання веб-сайтів</a> Mozilla.
|
legalNoticeMozilla = Використання сайту Firefox Send також підпадає під <a>повідомлення про конфіденційність веб-сайтів</a> та <a>правила використання веб-сайтів</a> Mozilla.
|
||||||
deletePopupText = Видалити цей файл?
|
deletePopupText = Видалити цей файл?
|
||||||
deletePopupYes = Так
|
deletePopupYes = Так
|
||||||
deletePopupCancel = Скасувати
|
deletePopupCancel = Скасувати
|
||||||
|
|||||||
@@ -22,26 +22,26 @@ uploadingPageCancel = Hủy tải lên
|
|||||||
uploadCancelNotification = Quá trình tải lên đã bị hủy.
|
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é!
|
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.
|
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
|
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 }.
|
expireInfo = Liên kết đến tập tin của bạn sẽ hết hạn sau { $downloadCount } hoặc { $timespan }.
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
*[other] lượt tải
|
*[other] { $num } lượt tải
|
||||||
}
|
}
|
||||||
timespanHours =
|
timespanHours =
|
||||||
{ $num ->
|
{ $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 }
|
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!
|
copiedUrl = Đã sao chép!
|
||||||
deleteFileButton = Xóa tập tin
|
deleteFileButton = Xóa tập tin
|
||||||
sendAnotherFileLink = Gửi tập tin khác
|
sendAnotherFileLink = Gửi tập tin khác
|
||||||
# Alternative text used on the download link/button (indicates an action).
|
# Alternative text used on the download link/button (indicates an action).
|
||||||
downloadAltText = Tải về
|
downloadAltText = Tải xuống
|
||||||
downloadsFileList = Tải về
|
downloadsFileList = Tải xuống
|
||||||
# Used as header in a column indicating the amount of time left before a
|
# Used as header in a column indicating the amount of time left before a
|
||||||
# download link expires (e.g. "10h 5m")
|
# download link expires (e.g. "10h 5m")
|
||||||
timeFileList = Thời gian
|
timeFileList = Thời gian
|
||||||
@@ -98,7 +98,7 @@ footerLinkLegal = Pháp lý
|
|||||||
footerLinkAbout = Về Test Pilot
|
footerLinkAbout = Về Test Pilot
|
||||||
footerLinkPrivacy = Quyền riêng tư
|
footerLinkPrivacy = Quyền riêng tư
|
||||||
footerLinkTerms = Điều khoản
|
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
|
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
|
addPasswordButton = Thêm mật khẩu
|
||||||
changePasswordButton = Thay đổi
|
changePasswordButton = Thay đổi
|
||||||
|
|||||||
@@ -6,13 +6,6 @@ module.exports = async function(req, res) {
|
|||||||
const id = req.params.id;
|
const id = req.params.id;
|
||||||
try {
|
try {
|
||||||
const meta = req.meta;
|
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);
|
const file_stream = storage.get(id);
|
||||||
let cancelled = false;
|
let cancelled = false;
|
||||||
|
|
||||||
@@ -21,7 +14,7 @@ module.exports = async function(req, res) {
|
|||||||
file_stream.destroy();
|
file_stream.destroy();
|
||||||
});
|
});
|
||||||
|
|
||||||
file_stream.on('end', async () => {
|
file_stream.pipe(res).on('finish', async () => {
|
||||||
if (cancelled) {
|
if (cancelled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -38,8 +31,6 @@ module.exports = async function(req, res) {
|
|||||||
log.info('StorageError:', id);
|
log.info('StorageError:', id);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
file_stream.pipe(res);
|
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
res.sendStatus(404);
|
res.sendStatus(404);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ class GCSStorage {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getStream(id) {
|
getStream(id) {
|
||||||
return this.bucket.file(id).createReadStream();
|
return this.bucket.file(id).createReadStream({ validation: false });
|
||||||
}
|
}
|
||||||
|
|
||||||
set(id, file) {
|
set(id, file) {
|
||||||
|
|||||||
@@ -23,7 +23,12 @@ function onConsole(msg) {
|
|||||||
|
|
||||||
const server = app.listen(async function() {
|
const server = app.listen(async function() {
|
||||||
let exitCode = -1;
|
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 {
|
try {
|
||||||
const page = await browser.newPage();
|
const page = await browser.newPage();
|
||||||
page.on('console', onConsole);
|
page.on('console', onConsole);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
selenium==3.14.1
|
selenium==3.141.0
|
||||||
flake8==3.6.0
|
flake8==3.6.0
|
||||||
flake8-isort==2.5
|
flake8-isort==2.6.0
|
||||||
PyPOM==2.2.0
|
PyPOM==2.2.0
|
||||||
pytest==3.9.3
|
pytest==4.1.1
|
||||||
pytest-html==1.19.0
|
pytest-html==1.20.0
|
||||||
pytest-selenium==1.14.0
|
pytest-selenium==1.15.1
|
||||||
pytest-xdist==1.23.2
|
pytest-xdist==1.26.0
|
||||||
|
|||||||
Reference in New Issue
Block a user