mirror of
https://gitlab.com/timvisee/send.git
synced 2024-11-10 13:13:00 +01:00
Merge branch 'master' into ux-tweak
This commit is contained in:
commit
e7688a62c6
@ -144,12 +144,15 @@ $(document).ready(function() {
|
||||
cd6: err
|
||||
});
|
||||
|
||||
document.l10n.formatValue('expiredPageHeader').then(translated => {
|
||||
$('.title').text(translated);
|
||||
});
|
||||
$('#download-btn').attr('hidden', true);
|
||||
$('#expired-img').removeAttr('hidden');
|
||||
console.log('The file has expired, or has already been deleted.');
|
||||
if (err.message === 'notfound') {
|
||||
location.reload();
|
||||
} else {
|
||||
document.l10n.formatValue('errorPageHeader').then(translated => {
|
||||
$('.title').text(translated);
|
||||
});
|
||||
$('#download-btn').attr('hidden', true);
|
||||
$('#expired-img').removeAttr('hidden');
|
||||
}
|
||||
return;
|
||||
})
|
||||
.then(([decrypted, fname]) => {
|
||||
|
@ -20,7 +20,7 @@ class FileReceiver extends EventEmitter {
|
||||
xhr.onload = function(event) {
|
||||
if (xhr.status === 404) {
|
||||
reject(
|
||||
new Error('The file has expired, or has already been deleted.')
|
||||
new Error('notfound')
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
@ -306,6 +306,11 @@ $(document).ready(function() {
|
||||
});
|
||||
})
|
||||
.catch(err => {
|
||||
// err is 0 when coming from a cancel upload event
|
||||
if (err === 0) {
|
||||
return;
|
||||
}
|
||||
// only show error page when the error is anything other than user cancelling the upload
|
||||
Raven.captureException(err);
|
||||
$('#page-one').attr('hidden', true);
|
||||
$('#upload-progress').attr('hidden', true);
|
||||
@ -462,10 +467,8 @@ $(document).ready(function() {
|
||||
popupDiv.classList.add('popup');
|
||||
const $popupMessage = $('<div>', { class: 'popup-message' });
|
||||
$popupMessage.attr('data-l10n-id', 'deletePopupText');
|
||||
|
||||
const $popupDelSpan = $('<span>', { class: 'popup-yes' });
|
||||
$popupDelSpan.attr('data-l10n-id', 'deletePopupYes');
|
||||
|
||||
const $popupNvmSpan = $('<span>', { class: 'popup-no' });
|
||||
$popupNvmSpan.attr('data-l10n-id', 'deletePopupCancel');
|
||||
|
||||
|
12
l10n.toml
Normal file
12
l10n.toml
Normal file
@ -0,0 +1,12 @@
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
basepath = "."
|
||||
|
||||
[env]
|
||||
l = "{l10n_base}/public/locales/{locale}/"
|
||||
|
||||
[[paths]]
|
||||
reference = "public/locales/en-US/**"
|
||||
l10n = "{l}**"
|
2398
package-lock.json
generated
2398
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -1,95 +1,95 @@
|
||||
// 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
|
||||
.title = {uploadPageBrowseButtonTitle}
|
||||
.title = Select a file on your computer
|
||||
uploadPageMultipleFilesAlert = Uploading multiple files or a folder is currently not supported.
|
||||
|
||||
uploadPageBrowseButtonTitle = Upload file
|
||||
|
||||
uploadingPageHeader = Uploading Your File
|
||||
importingFile = Importing...
|
||||
verifyingFile = Verifying...
|
||||
encryptingFile = Encrypting...
|
||||
decryptingFile = Decrypting...
|
||||
|
||||
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
|
||||
.title = {uploadingPageCancel}
|
||||
.title = Cancel upload
|
||||
uploadCancelNotification = Your upload was cancelled.
|
||||
|
||||
uploadingPageLargeFileMessage = This file is large and may take awhile to upload. Sit tight!
|
||||
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.alt = Upload
|
||||
|
||||
|
||||
//Note the spec suggests that this string is editable. That feature will not appear at Launch
|
||||
uploadSvgAlt
|
||||
.alt = Upload
|
||||
uploadSuccessTimingHeader = The link to your file will expire after 1 download or in 24 hours.
|
||||
copyUrlFormLabel = Copy and share the link to send your file:
|
||||
copyUrlFormLabelWithName = Copy and share the link to send your file: { $filename }
|
||||
// Note: Title text for button should be the same
|
||||
// Note: Title text for button should be the same.
|
||||
copyUrlFormButton = Copy to clipboard
|
||||
.title = {copyUrlFormButton}
|
||||
|
||||
.title = Copy to clipboard
|
||||
copiedUrl = Copied!
|
||||
|
||||
// Note: Title text for button should be the same.
|
||||
deleteFileButton = Delete file
|
||||
.title = {deleteFileButton}
|
||||
.title = Delete file
|
||||
// Note: Title text for button should be the same.
|
||||
sendAnotherFileLink = Send another file
|
||||
.title = {sendAnotherFileLink}
|
||||
|
||||
downloadAltText.alt = Download
|
||||
downloadFileName = Download { $filename }
|
||||
.title = Send another file
|
||||
// Alternative text used on the download link/button (indicates an action).
|
||||
downloadAltText
|
||||
.alt = Download
|
||||
downloadFileName = Download { $filename }
|
||||
downloadFileSize = ({ $size })
|
||||
// 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
|
||||
.title = {downloadButtonLabel}
|
||||
.title = Download
|
||||
downloadNotification = Your download has completed.
|
||||
downloadFinish = Download Complete
|
||||
|
||||
// Firefox Send is a brand name and should not be localized. Title text for button should be the same.
|
||||
sendYourFilesLink = Try Firefox Send
|
||||
.title = {sendYourFilesLink}
|
||||
.title = Try Firefox Send
|
||||
downloadingPageProgress = Downloading { $filename } ({ $size })
|
||||
downloadingPageMessage = Please leave this tab open while we fetch your file and decrypt it.
|
||||
|
||||
errorAltText.alt = Upload error
|
||||
errorAltText
|
||||
.alt = 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.alt = Link expired
|
||||
linkExpiredAlt
|
||||
.alt = Link expired
|
||||
expiredPageHeader = This link has expired or never existed in the first place!
|
||||
notSupportedHeader = Your browser is not supported.
|
||||
notSupportedDetail = Unfortunately this browser does not support the web technology that powers Firefox Send. You'll need to try another browser. We recommend Firefox!
|
||||
// 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!
|
||||
downloadFirefoxButtonSub = Free Download
|
||||
|
||||
|
||||
sentFilesTitle1 = File
|
||||
sentFilesTitle2 = Copy URL
|
||||
sentFilesTitle3 = Expires In
|
||||
sentFilesTitle4 = Delete
|
||||
|
||||
uploadedFile = File
|
||||
copyFileList = Copy URL
|
||||
// expiryFileList is used as a column header
|
||||
expiryFileList = Expires In
|
||||
deleteFileList = Delete
|
||||
nevermindButton = Never mind
|
||||
deleteButtonHover
|
||||
.title = Delete
|
||||
copyUrlHover
|
||||
.title = Copy URL
|
||||
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.title = {sentFilesTitle4}
|
||||
copyUrlHover.title = {sentFilesTitle2}
|
||||
|
||||
deleteButtonHover
|
||||
.title = Delete
|
||||
copyUrlHover
|
||||
.title = Copy URL
|
||||
footerLinkLegal = Legal
|
||||
// Test Pilot is a proper name and should not be localized.
|
||||
footerLinkAbout = About Test Pilot
|
||||
footerLinkPrivacy = Privacy
|
||||
footerLinkTerms = Terms
|
1
public/locales/it/send.ftl
Normal file
1
public/locales/it/send.ftl
Normal file
@ -0,0 +1 @@
|
||||
importingFile = Importazione in corso…
|
@ -45,20 +45,19 @@ app.use(
|
||||
connectSrc: [
|
||||
"'self'",
|
||||
'https://sentry.prod.mozaws.net',
|
||||
'https://www.google-analytics.com',
|
||||
'https://ssl.google-analytics.com'
|
||||
'https://www.google-analytics.com'
|
||||
],
|
||||
imgSrc: [
|
||||
"'self'",
|
||||
'https://www.google-analytics.com',
|
||||
'https://ssl.google-analytics.com'
|
||||
'https://www.google-analytics.com'
|
||||
],
|
||||
scriptSrc: ["'self'", 'https://ssl.google-analytics.com'],
|
||||
scriptSrc: ["'self'"],
|
||||
styleSrc: ["'self'", 'https://code.cdn.mozilla.net'],
|
||||
fontSrc: ["'self'", 'https://code.cdn.mozilla.net'],
|
||||
formAction: ["'none'"],
|
||||
frameAncestors: ["'none'"],
|
||||
objectSrc: ["'none'"]
|
||||
objectSrc: ["'none'"],
|
||||
reportUri: '/__cspreport__'
|
||||
}
|
||||
})
|
||||
);
|
||||
@ -80,6 +79,10 @@ app.get('/unsupported', (req, res) => {
|
||||
res.render('unsupported');
|
||||
});
|
||||
|
||||
app.get('/legal', (req, res) => {
|
||||
res.render('legal');
|
||||
});
|
||||
|
||||
app.get('/jsconfig.js', (req, res) => {
|
||||
res.set('Content-Type', 'application/javascript');
|
||||
res.render('jsconfig', {
|
||||
|
@ -21,10 +21,10 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- htmllint attr-bans="false" -->
|
||||
<th width="35%" data-l10n-id="sentFilesTitle1"></th>
|
||||
<th width="25%" data-l10n-id="sentFilesTitle2"></th>
|
||||
<th width="21%" data-l10n-id="sentFilesTitle3"></th>
|
||||
<th width="12%" data-l10n-id="sentFilesTitle4"></th>
|
||||
<th width="35%" data-l10n-id="uploadedFile"></th>
|
||||
<th width="25%" data-l10n-id="copyFileList"></th>
|
||||
<th width="21%" data-l10n-id="expiryFileList"></th>
|
||||
<th width="12%" data-l10n-id="deleteFileList"></th>
|
||||
<!-- htmllint tag-bans="$previous" -->
|
||||
</tr>
|
||||
</thead>
|
||||
@ -55,7 +55,7 @@
|
||||
<div id="share-link" hidden="true">
|
||||
<div class="title" data-l10n-id="uploadSuccessTimingHeader"></div>
|
||||
<div id="share-window">
|
||||
<div id="copy-text" data-l10n-id="copyUrlFormLabel"></div>
|
||||
<div id="copy-text"></div>
|
||||
<div id="copy">
|
||||
<input id="link" type="url" value="" readonly/>
|
||||
<button id="copy-btn" data-l10n-id="copyUrlFormButton"></button>
|
||||
|
@ -9,12 +9,13 @@
|
||||
|
||||
<meta name="defaultLanguage" content="en-US">
|
||||
<meta name="availableLanguages" content="en-US">
|
||||
<link rel="localization" href="/locales/send.{locale}.ftl">
|
||||
|
||||
<link rel="icon" type="image/png" href="/resources/favicon-32x32.png" sizes="32x32" />
|
||||
<link rel="localization" href="/locales/{locale}/send.ftl">
|
||||
<script defer src="/l20n.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<header class="header">
|
||||
<header class="header">
|
||||
<div class="send-logo">
|
||||
<a href="/">
|
||||
<img src="/resources/send_logo.svg" alt="Send"/><h1 class="site-title">Send</h1>
|
||||
@ -34,8 +35,8 @@
|
||||
<a href="https://www.mozilla.org"><img class="mozilla-logo" src="/resources/mozilla-logo.svg"/></a>
|
||||
<a href="https://www.mozilla.org/about/legal" data-l10n-id="footerLinkLegal"></a>
|
||||
<a href="https://testpilot.firefox.com/about" data-l10n-id="footerLinkAbout"></a>
|
||||
<a href="https://testpilot.firefox.com/privacy" data-l10n-id="footerLinkPrivacy"></a>
|
||||
<a href="https://testpilot.firefox.com/terms" data-l10n-id="footerLinkTerms"></a>
|
||||
<a href="/legal" data-l10n-id="footerLinkPrivacy"></a>
|
||||
<a href="/legal" data-l10n-id="footerLinkTerms"></a>
|
||||
<a href="https://www.mozilla.org/en-US/privacy/websites/#cookies" data-l10n-id="footerLinkCookies"></a>
|
||||
</div>
|
||||
<div class="social-links">
|
||||
|
12
views/legal.handlebars
Normal file
12
views/legal.handlebars
Normal file
@ -0,0 +1,12 @@
|
||||
<div id="legal">
|
||||
<div class="title" data-l10n-id="legalHeader"></div>
|
||||
<div class="description" data-l10n-id="legalNoticeTestPilot">
|
||||
<a href="https://testpilot.firefox.com/terms"></a>
|
||||
<a href="https://testpilot.firefox.com/privacy"></a>
|
||||
<a href="https://testpilot.firefox.com/experiments/send"></a>
|
||||
</div>
|
||||
<div class="description" data-l10n-id="legalNoticeMozilla">
|
||||
<a href="https://www.mozilla.org/privacy/websites/"></a>
|
||||
<a href="https://www.mozilla.org/about/legal/terms/mozilla/"></a>
|
||||
</div>
|
||||
</div>
|
Loading…
Reference in New Issue
Block a user