Add legal and final strings (#1185)

* add legal and final strings

* removed unneeded suffixes from string ids

* removed unused strings and simplified string ids for vnext-only strings

* reword nostreams option
This commit is contained in:
John Gruen 2019-03-04 23:13:18 +01:00 committed by Danny Coates
parent 6ab006de61
commit 7197cc3bea
16 changed files with 3307 additions and 3326 deletions

View File

@ -64,9 +64,9 @@ class Account extends Component {
<button
class="p-2 md:p-4 border rounded-lg text-blue-dark border-blue-dark hover:text-white hover:bg-blue-dark focus:outline"
onclick="${e => this.login(e)}"
title="${translate('signInMenuOption')}"
title="${translate('signInButton')}"
>
${translate('signInMenuOption')}
${translate('signInButton')}
</button>
</send-account>
`;
@ -90,9 +90,9 @@ class Account extends Component {
<button
class="block w-full text-left px-4 py-2 text-grey-darkest hover:bg-blue hover:text-white cursor-pointer focus:outline"
onclick="${e => this.logout(e)}"
title="${translate('logOut')}"
title="${translate('signOut')}"
>
${translate('logOut')}
${translate('signOut')}
</button>
</li>
</ul>

View File

@ -16,7 +16,7 @@ const expiryOptions = require('./expiryOptions');
function expiryInfo(translate, archive) {
const l10n = timeLeft(archive.expiresAt - Date.now());
return raw(
translate('frontPageExpireInfo', {
translate('archiveExpiryInfo', {
downloadCount: translate('downloadCount', {
num: archive.dlimit - archive.dtotal
}),
@ -39,7 +39,7 @@ function password(state) {
onchange="${togglePasswordInput}"
/>
<label for="add-password">
${state.translate('addPasswordMessage')}
${state.translate('addPassword')}
</label>
</div>
<input
@ -172,10 +172,10 @@ module.exports = function(state, emit, archive) {
<button
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker focus:outline self-end flex items-center"
onclick=${copy}
title="${state.translate('copyUrlHover')}"
title="${state.translate('copyLinkButton')}"
>
<img src="${assets.get('copy-16.svg')}" class="mr-2" />
${state.translate('copyUrlHover')}
${state.translate('copyLinkButton')}
</button>
`
: html`
@ -238,7 +238,7 @@ module.exports = function(state, emit, archive) {
const text = event.target.lastChild;
text.textContent = state.translate('copiedUrl');
setTimeout(
() => (text.textContent = state.translate('copyUrlHover')),
() => (text.textContent = state.translate('copyLinkButton')),
1000
);
}
@ -301,10 +301,10 @@ module.exports.wip = function(state, emit) {
<button
id="upload-btn"
class="btn rounded-lg flex-no-shrink focus:outline"
title="${state.translate('uploadFilesButton')}"
title="${state.translate('uploadButton')}"
onclick="${upload}"
>
${state.translate('uploadFilesButton')}
${state.translate('uploadButton')}
</button>
</send-upload-area>
`;
@ -425,10 +425,12 @@ module.exports.empty = function(state, emit) {
<div
class="pt-6 pb-2 text-center text-lg font-bold capitalize tracking-wide"
>
${state.translate('uploadDropDragMessage')}
${state.translate('dragAndDropFiles')}
</div>
<div class="pb-6 text-center text-base italic">
${state.translate('uploadDropButtonMessage')}
<div class="pb-6 text-center text-base">
${state.translate('orClickWithSize', {
size: bytes(state.user.maxSize)
})}
</div>
<input
id="file-upload"
@ -444,13 +446,11 @@ module.exports.empty = function(state, emit) {
for="file-upload"
role="button"
class="btn rounded-lg flex items-center mt-4"
title="${state.translate('addFilesButtonWithSize', {
title="${state.translate('addFilesButtonWithSizeUpdate', {
size: bytes(state.user.maxSize)
})}"
>
${state.translate('addFilesButtonWithSize', {
size: bytes(state.user.maxSize)
})}
${state.translate('addFilesButton')}
</label>
${upsell}
</send-upload-area>

View File

@ -11,7 +11,7 @@ module.exports = function(name, url) {
${state.translate('notifyUploadEncryptDone')}
</h1>
<p class="font-normal leading-normal text-grey-darkest word-break-all">
${state.translate('copyUrlFormLabel')} <br />
${state.translate('copyLinkDescription')} <br />
${name}
</p>
<input
@ -24,9 +24,9 @@ module.exports = function(name, url) {
<button
class="btn rounded-lg w-full flex-no-shrink focus:outline"
onclick="${copy}"
title="${state.translate('copyUrlFormButtonText')}"
title="${state.translate('copyLinkButton')}"
>
${state.translate('copyUrlFormButtonText')}
${state.translate('copyLinkButton')}
</button>
<button
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker my-4 font-medium cursor-pointer focus:outline"

View File

@ -36,9 +36,9 @@ function preview(state, emit) {
<div
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
>
<h1 class="mb-4">${state.translate('downloadFilesTitle')}</h1>
<h1 class="mb-4">${state.translate('downloadTitle')}</h1>
<p class="w-full text-grey-darkest text-center leading-normal">
${state.translate('downloadMessage')}
${state.translate('downloadDescription')}
</p>
${archiveTile.preview(state, emit)}
</div>

View File

@ -12,7 +12,7 @@ module.exports = function(state) {
</h1>
<img src="${assets.get('completed.svg')}" class="my-12 h-48" />
<p class="text-grey-darkest leading-normal">
${state.translate('downloadFinishText')}
${state.translate('trySendDescription')}
</p>
<p class="my-5">
<a href="/" class="btn rounded-lg flex items-center mt-4" role="button"

View File

@ -8,9 +8,9 @@ module.exports = function(state, emit) {
<div
class="h-full w-full flex flex-col items-center justify-center bg-white py-8 max-w-md mx-auto"
>
<h1 class="mb-4">${state.translate('downloadFilesTitle')}</h1>
<h1 class="mb-4">${state.translate('downloadTitle')}</h1>
<p class="w-full mb-4 text-center text-grey-darkest leading-normal">
${state.translate('downloadMessage')}
${state.translate('downloadDescription')}
</p>
<form
class="flex flex-row flex-no-wrap w-full md:w-4/5"

View File

@ -14,7 +14,7 @@ module.exports = function(state, emit) {
</h1>
<img class="my-12 h-48" src="${assets.get('error.svg')}" />
<p class="max-w-md text-center text-grey-darkest leading-normal">
${state.translate('downloadFinishText')}
${state.translate('trySendDescription')}
</p>
<p class="my-5">
<a href="/" class="btn rounded-lg flex items-center" role="button"

View File

@ -7,7 +7,7 @@ module.exports = function(state, emit) {
const el = html`
<div class="px-1">
${raw(
state.translate('frontPageExpireInfo', {
state.translate('archiveExpiryInfo', {
downloadCount:
'<span class="lg:inline-block md:block sm:inline-block block"></span><select id="dlCount"></select>',
timespan: '<select id="timespan"></select>'

View File

@ -8,10 +8,10 @@ module.exports = function intro(state) {
>
<div class="flex flex-col justify-end h-full">
<h1 class="font-bold">
${state.translate('uploadPageHeader')}
${state.translate('introTitle')}
</h1>
<p class="max-w-sm mt-2 pr-16 font-light leading-normal">
${state.translate('uploadPageExplainer')}
${state.translate('introDescription')}
</p>
<img class="intro" src="${assets.get('intro.svg')}" />
</div>

View File

@ -7,22 +7,60 @@ module.exports = function(state, emit) {
<main class="main">
${state.modal && modal(state, emit)}
<div
class="flex flex-col items-center bg-white m-6 px-6 py-8 border border-grey-light md:border-none md:px-12 md:py-16 shadow w-full md:h-full"
class="flex flex-col items-center bg-white m-4 px-6 py-8 border border-grey-light md:border-none md:px-12 md:py-16 shadow w-full md:h-full"
>
<h1 class="text-center">${state.translate('legalHeader')}</h1>
<h1 class="text-center">${state.translate('legalTitle')}</h1>
<p class="mt-2">${state.translate('legalDateStamp')}</p>
<div class="overflow-scroll px-4">
${raw(
replaceLinks(state.translate('legalNoticeTestPilot'), [
'https://testpilot.firefox.com/terms',
'https://testpilot.firefox.com/privacy',
'https://testpilot.firefox.com/experiments/send'
])
)}
${raw(
replaceLinks(state.translate('legalNoticeMozilla'), [
'https://www.mozilla.org/privacy/websites/',
'https://www.mozilla.org/about/legal/terms/mozilla/'
replaceLinks(state.translate('legalNoticeSend'), [
'https://www.mozilla.org/privacy/',
'https://github.com/mozilla/send/blob/master/docs/metrics.md'
])
)}
<ul class="mt-10 max-w-md leading-normal">
<li class="mb-4">
<b>${state.translate('legalNoticeSendContentHeader')}:</b>
${state.translate('legalNoticeSendContent')}
</li>
<li class="mb-4">
<b>${state.translate('legalNoticeSendDataHeader')}:</b>
${state.translate('legalNoticeSendData')}
</li>
<li class="mb-4">
<b>${state.translate('legalNoticeSendPersonalHeader')}:</b>
${state.translate('legalNoticeSendPersonal')}:
<ul class="leading-normal">
<li class="my-4">
<u>${state.translate('legalNoticeSendIPHeader')}:</u>
${state.translate('legalNoticeSendIP')}
</li>
<li class="mb-4">
<u>${state.translate('legalNoticeSendFXAHeader')}:</u>
${state.translate('legalNoticeSendFXA')}
</li>
</ul>
</li>
<li class="mb-4">
<b>${state.translate('legalNoticeSendNonPersonalHeader')}:</b>
${state.translate('legalNoticeSendNonPersonal')}:
<ul class="leading-normal">
<li class="my-4">
<u>${state.translate('legalNoticeSendInteractionHeader')}:</u>
${state.translate('legalNoticeSendInteraction')}
</li>
<li class="mb-4">
<u>${state.translate('legalNoticeSendTechnicalHeader')}:</u>
${state.translate('legalNoticeSendTechnical')}
</li>
</ul>
</li>
<li class="mb-4">
<b>${state.translate('legalNoticeSendThirdPartyHeader')}:</b>
${state.translate('legalNoticeSendThirdParty')}
</li>
</ul>
</div>
</div>
</main>
`;

View File

@ -8,7 +8,7 @@ module.exports = function(state, emit) {
<div
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
>
<h1 class="mb-4">${state.translate('downloadFilesTitle')}</h1>
<h1 class="mb-4">${state.translate('downloadTitle')}</h1>
<p
class="w-full p-2 border border-yellow-light rounded md:w-4/5 text-orange-dark bg-yellow-lighter text-center leading-normal"
>
@ -50,8 +50,8 @@ module.exports = function(state, emit) {
</fieldset>
<input
class="btn rounded-lg w-full flex flex-no-shrink items-center justify-center"
value="${state.translate('copyUrlFormButtonText')}"
title="${state.translate('copyUrlFormButtonText')}"
value="${state.translate('copyLinkButton')}"
title="${state.translate('copyLinkButton')}"
type="submit" />
</form>
</div>
@ -64,7 +64,7 @@ module.exports = function(state, emit) {
let title = button.title;
switch (choice) {
case 'copy':
title = state.translate('copyUrlFormButtonText');
title = state.translate('copyLinkButton');
break;
case 'firefox':
title = state.translate('downloadFirefox');

View File

@ -10,11 +10,11 @@ module.exports = function(state, emit) {
class="flex flex-col items-center justify-center h-full w-full p-6 z-10 overflow-hidden md:rounded-lg md:shadow-big"
>
<h1 class="text-center font-bold my-2">
${state.translate('expiredPageHeaderUpdate')}
${state.translate('expiredTitle')}
</h1>
<img src="${assets.get('notFound.svg')}" class="my-12" />
<p class="max-w-md text-center text-grey-darkest leading-normal">
${state.translate('downloadFinishText')}
${state.translate('trySendDescription')}
</p>
<p class="my-5">
<a href="/" class="btn rounded-lg flex items-center" role="button"

View File

@ -30,11 +30,12 @@ module.exports = function(trigger) {
size: bytes(state.LIMITS.MAX_FILE_SIZE)
})}
</li>
<li>${state.translate('accountBenefitExpiry')}</li>
<li>${state.translate('accountBenefitDownloadCount')}</li>
<li>
${state.translate('accountBenefitExpiryTwo', { count: DAYS })}
${state.translate('accountBenefitTimeLimit', { count: DAYS })}
</li>
<li>${state.translate('accountBenefitSync')}</li>
<li>${state.translate('accountBenefitMoz')}</li>
</ul>
</section>
<section
@ -45,12 +46,12 @@ module.exports = function(trigger) {
id="email-input"
type="email"
class="${hidden} border rounded-lg w-full px-2 py-1 h-12 mb-3 text-lg text-grey-darker leading-loose"
placeholder=${state.translate('emailEntryPlaceholder')}
placeholder=${state.translate('emailPlaceholder')}
/>
<input
class="btn rounded-lg w-full flex flex-no-shrink items-center justify-center"
value="${state.translate('signInMenuOption')}"
title="${state.translate('signInMenuOption')}"
value="${state.translate('signInButton')}"
title="${state.translate('signInButton')}"
id="email-submit"
type="submit"
/>

View File

@ -51,7 +51,7 @@ function outdatedStrings(state) {
function unsupportedStrings(state) {
return {
header: state.translate('notSupportedHeader'),
description: state.translate('notSupportedDetailUpdate'),
description: state.translate('notSupportedDescription'),
button: state.translate('downloadFirefox')
};
}

6334
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,13 @@
# Firefox Send is a brand name and should not be localized.
title = Firefox Send
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, its 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 })
introTitle = Simple, private file sharing
introDescription = Firefox Send lets you share files with end-to-end encryption and a link that automatically expires. So you can keep what you share private and make sure your stuff doesn't stay online forever.
importingFile = Importing…
verifyingFile = Verifying…
encryptingFile = Encrypting…
decryptingFile = Decrypting…
notifyUploadEncryptDone = Your file is encrypted and ready to share.
uploadingPageMessage = Once your file uploads you will be able to set expiry options.
uploadingPageCancel = Cancel
uploadCancelNotification = Your upload was cancelled.
downloadCancel = Cancel download
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 }.
frontPageExpireInfo = Expires after { $downloadCount } or { $timespan }
notifyUploadEncryptDone = Your file is encrypted and ready to send
archiveExpiryInfo = Expires after { $downloadCount } or { $timespan }
downloadCount = { $num ->
[one] 1 download
*[other] { $num } downloads
@ -52,42 +33,23 @@ fileCount = { $num ->
*[other] { $num } files
}
totalSize = Total size: { $size }
copyUrlFormLabel = Copy the link to share your file:
copyUrlFormButtonText = Copy link
copyLinkDescription = Copy the link to share your file:
copyLinkButton = Copy link
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
downloadFilesTitle = Download Files
downloadTitle = Download files
# 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.
downloadDescription = This file was shared via Firefox Send with end-to-end encryption and a link that automatically expires.
# Text and title used on the download link/button (indicates an action).
downloadButtonLabel = Download
downloadNotification = Your download has completed.
downloadFinish = Download Complete
downloadFinishText = Try Firefox Send for simple, safe file sharing.
downloadFinish = Download complete
trySendDescription = Try Firefox Send for simple, safe file sharing.
# 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 }.
# count will always be > 10
tooManyFiles = { $count ->
@ -98,39 +60,41 @@ tooManyArchives = { $count ->
*[other] Only { $count } archives are allowed.
}
linkExpiredAlt = Link expired
expiredPageHeaderUpdate = This link has expired.
expiredTitle = This link has expired.
notSupportedHeader = Your browser is not supported.
# Firefox Send is a brand name and should not be localized.
notSupportedDetailUpdate = Firefox Send will not work with this browser. Send works best with the latest version of Firefox, and will work with the current version of most browsers.
notSupportedDescription = Firefox Send will not work with this browser. Send works best with the latest version of Firefox, and will work with the current version of most browsers.
notSupportedLink = Why is my browser not supported?
notSupportedOutdatedDetail = Unfortunately this version of Firefox does not support the web technology that powers Firefox Send. Youll need to update your browser.
updateFirefox = Update Firefox
downloadFirefox = Download 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 Mozillas <a>Websites Privacy Notice</a> and <a>Websites Terms of Use</a>.
deletePopupText = Delete this file?
deletePopupYes = Yes
legalTitle = Send Privacy Notice
legalDateStamp = Version 1.0, dated March 12, 2019
legalNoticeSend = When Mozilla receives information from you, our <a>Mozilla Privacy Policy</a> describes how we handle that information. Below are the top things you should know about Firefox Send. You can also view the code <a>here</a>.
legalNoticeSendContentHeader = Content
legalNoticeSendContent = Mozilla receives an encrypted copy of the file you upload but we cannot access the content or name of your encrypted file. Depending on how you use Send, files are stored for a maximum of either 24 hours or 7 days. If you choose a download cap, the file may be deleted sooner.
legalNoticeSendDataHeader = Data on your device
legalNoticeSendData = So that you can check status or delete files, basic information about your uploaded files is stored on your local device. This includes our identifier for the file, the filename, and the files download URL. This is cleared if you delete your uploaded file or upon visiting Send after the file expires.
legalNoticeSendPersonalHeader = Personal data
legalNoticeSendPersonal = The following is necessary to provide the service
legalNoticeSendNonPersonalHeader = Non-personal data
legalNoticeSendNonPersonal = We receive the following to improve our service and performance
legalNoticeSendThirdPartyHeader = Third Party Services
legalNoticeSendThirdParty = We use Google Cloud Platform
legalNoticeSendIPHeader = IP addresses
legalNoticeSendIP = We receive IP addresses of downloaders and uploaders as part of our standard server logs. These are retained for 90 days, and for that period, may be connected to activity of a files download URL. Although we develop our services in ways that minimize identification, you should know that it may be possible to correlate the IP address of a Send user to the IP address of other Mozilla services with accounts; and if there is a match, this could identify the account email address.
legalNoticeSendFXAHeader = Firefox Account
legalNoticeSendFXA = This is required for authentication only if you wish to upload larger file sizes. Your Firefox Account record will retain aggregate data on your usage of Send: for example, if you created a Firefox Account in connection with Send, number of files sent and approximate file sizes, and how many times youve used the service.
legalNoticeSendInteractionHeader = Interaction data
legalNoticeSendInteraction = This includes information such as number of people sending and receiving files, number of files uploaded and approximate file sizes, percentage of file downloaders who become uploaders, how people engage with the website (time spent, clicks, referrer information, site exit path, use of passwords)
legalNoticeSendTechnicalHeader = Technical data
legalNoticeSendTechnical = This includes information such as operating system, browser, language preference, country, timestamps, duration for file transfer, reasons for errors, reasons for file expiration.
deletePopupCancel = Cancel
deleteButtonHover = Delete
copyUrlHover = Copy URL
footerLinkLegal = Legal
footerLinkPrivacy = Privacy
footerLinkTerms = Terms
footerLinkPrivacyAndTerms = Privacy & 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.
@ -140,48 +104,30 @@ expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
expiresHoursMinutes = { $hours }h { $minutes }m
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
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
pageHeaderCredits = from the makers of Firefox
addFilesButton = Add file(s)
addFilesButtonWithSize = Add file(s) up to { $size }
uploadFilesButton = Upload
uploadDropDragMessage = Drop files here
uploadDropButtonMessage = or click to select files
addPasswordMessage = Protect with password
addPasswordLabel = Password:
copyUrlLabel = Copy and share this link:
passwordReminder = don't forget the password too
signInPromoText = Sign In/Up
signInExplanation = It's free and you can send bigger files.
signInLearnMore = Learn more!
downloadProgressButton = Downloading... { $progress }
downloadMessage2 = Firefox Send lets you share files with a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
signInEmailEnter = Enter your Email
emailEntryPlaceholder = Enter your email
addFilesButton = Select files to upload
uploadButton = Upload
dragAndDropFiles = Drag and drop files
orClickWithSize = or click to to send up to { $size }
addPassword = Protect with password
emailPlaceholder = Enter your email
signInSizeBump = Sign in to send up to { $size }
signInContinueMessage = to continue to Firefox Send
signInContinueButton = Continue
signInMenuOption = Sign in/up
signInNextOption = Continue
accountMenuOption = Firefox Account
signInButton = Sign in/up
accountBenefitTitle = Create a Firefox Account or sign in
accountBenefitLargeFiles = Share files up to { $size }
accountBenefitExpiry = Share files with more people
accountBenefitExpiryTwo = { $count ->
accountBenefitDownloadCount = Share files with more people
accountBenefitTimeLimit = { $count ->
*[other] Keep links active for up to { $count } days
}
accountBenefitSync = Manage shared files from any device
manageAccount = Manage Account
logOut = Sign Out
okButton = Ok
myUploads = My Uploads
accountBenefitMoz = Learn about other Mozilla services
signOut = Sign Out
okButton = OK
downloadingTitle = Downloading
noStreamsWarning = This browser might not be able to decrypt a file this big.
noStreamsOptionCopy = Copy the link to open in another browser
noStreamsOptionFirefox = Try our favorite browser
noStreamsOptionDownload = Use this browser
noStreamsOptionDownload = Continue with this browser