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:
parent
6ab006de61
commit
7197cc3bea
|
@ -64,9 +64,9 @@ class Account extends Component {
|
||||||
<button
|
<button
|
||||||
class="p-2 md:p-4 border rounded-lg text-blue-dark border-blue-dark hover:text-white hover:bg-blue-dark focus:outline"
|
class="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)}"
|
onclick="${e => this.login(e)}"
|
||||||
title="${translate('signInMenuOption')}"
|
title="${translate('signInButton')}"
|
||||||
>
|
>
|
||||||
${translate('signInMenuOption')}
|
${translate('signInButton')}
|
||||||
</button>
|
</button>
|
||||||
</send-account>
|
</send-account>
|
||||||
`;
|
`;
|
||||||
|
@ -90,9 +90,9 @@ class Account extends Component {
|
||||||
<button
|
<button
|
||||||
class="block w-full text-left px-4 py-2 text-grey-darkest hover:bg-blue hover:text-white cursor-pointer focus:outline"
|
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)}"
|
onclick="${e => this.logout(e)}"
|
||||||
title="${translate('logOut')}"
|
title="${translate('signOut')}"
|
||||||
>
|
>
|
||||||
${translate('logOut')}
|
${translate('signOut')}
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -16,7 +16,7 @@ const expiryOptions = require('./expiryOptions');
|
||||||
function expiryInfo(translate, archive) {
|
function expiryInfo(translate, archive) {
|
||||||
const l10n = timeLeft(archive.expiresAt - Date.now());
|
const l10n = timeLeft(archive.expiresAt - Date.now());
|
||||||
return raw(
|
return raw(
|
||||||
translate('frontPageExpireInfo', {
|
translate('archiveExpiryInfo', {
|
||||||
downloadCount: translate('downloadCount', {
|
downloadCount: translate('downloadCount', {
|
||||||
num: archive.dlimit - archive.dtotal
|
num: archive.dlimit - archive.dtotal
|
||||||
}),
|
}),
|
||||||
|
@ -39,7 +39,7 @@ function password(state) {
|
||||||
onchange="${togglePasswordInput}"
|
onchange="${togglePasswordInput}"
|
||||||
/>
|
/>
|
||||||
<label for="add-password">
|
<label for="add-password">
|
||||||
${state.translate('addPasswordMessage')}
|
${state.translate('addPassword')}
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<input
|
<input
|
||||||
|
@ -172,10 +172,10 @@ module.exports = function(state, emit, archive) {
|
||||||
<button
|
<button
|
||||||
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker focus:outline self-end flex items-center"
|
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker focus:outline self-end flex items-center"
|
||||||
onclick=${copy}
|
onclick=${copy}
|
||||||
title="${state.translate('copyUrlHover')}"
|
title="${state.translate('copyLinkButton')}"
|
||||||
>
|
>
|
||||||
<img src="${assets.get('copy-16.svg')}" class="mr-2" />
|
<img src="${assets.get('copy-16.svg')}" class="mr-2" />
|
||||||
${state.translate('copyUrlHover')}
|
${state.translate('copyLinkButton')}
|
||||||
</button>
|
</button>
|
||||||
`
|
`
|
||||||
: html`
|
: html`
|
||||||
|
@ -238,7 +238,7 @@ module.exports = function(state, emit, archive) {
|
||||||
const text = event.target.lastChild;
|
const text = event.target.lastChild;
|
||||||
text.textContent = state.translate('copiedUrl');
|
text.textContent = state.translate('copiedUrl');
|
||||||
setTimeout(
|
setTimeout(
|
||||||
() => (text.textContent = state.translate('copyUrlHover')),
|
() => (text.textContent = state.translate('copyLinkButton')),
|
||||||
1000
|
1000
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -301,10 +301,10 @@ module.exports.wip = function(state, emit) {
|
||||||
<button
|
<button
|
||||||
id="upload-btn"
|
id="upload-btn"
|
||||||
class="btn rounded-lg flex-no-shrink focus:outline"
|
class="btn rounded-lg flex-no-shrink focus:outline"
|
||||||
title="${state.translate('uploadFilesButton')}"
|
title="${state.translate('uploadButton')}"
|
||||||
onclick="${upload}"
|
onclick="${upload}"
|
||||||
>
|
>
|
||||||
${state.translate('uploadFilesButton')}
|
${state.translate('uploadButton')}
|
||||||
</button>
|
</button>
|
||||||
</send-upload-area>
|
</send-upload-area>
|
||||||
`;
|
`;
|
||||||
|
@ -425,10 +425,12 @@ module.exports.empty = function(state, emit) {
|
||||||
<div
|
<div
|
||||||
class="pt-6 pb-2 text-center text-lg font-bold capitalize tracking-wide"
|
class="pt-6 pb-2 text-center text-lg font-bold capitalize tracking-wide"
|
||||||
>
|
>
|
||||||
${state.translate('uploadDropDragMessage')}
|
${state.translate('dragAndDropFiles')}
|
||||||
</div>
|
</div>
|
||||||
<div class="pb-6 text-center text-base italic">
|
<div class="pb-6 text-center text-base">
|
||||||
${state.translate('uploadDropButtonMessage')}
|
${state.translate('orClickWithSize', {
|
||||||
|
size: bytes(state.user.maxSize)
|
||||||
|
})}
|
||||||
</div>
|
</div>
|
||||||
<input
|
<input
|
||||||
id="file-upload"
|
id="file-upload"
|
||||||
|
@ -444,13 +446,11 @@ module.exports.empty = function(state, emit) {
|
||||||
for="file-upload"
|
for="file-upload"
|
||||||
role="button"
|
role="button"
|
||||||
class="btn rounded-lg flex items-center mt-4"
|
class="btn rounded-lg flex items-center mt-4"
|
||||||
title="${state.translate('addFilesButtonWithSize', {
|
title="${state.translate('addFilesButtonWithSizeUpdate', {
|
||||||
size: bytes(state.user.maxSize)
|
size: bytes(state.user.maxSize)
|
||||||
})}"
|
})}"
|
||||||
>
|
>
|
||||||
${state.translate('addFilesButtonWithSize', {
|
${state.translate('addFilesButton')}
|
||||||
size: bytes(state.user.maxSize)
|
|
||||||
})}
|
|
||||||
</label>
|
</label>
|
||||||
${upsell}
|
${upsell}
|
||||||
</send-upload-area>
|
</send-upload-area>
|
||||||
|
|
|
@ -11,7 +11,7 @@ module.exports = function(name, url) {
|
||||||
${state.translate('notifyUploadEncryptDone')}
|
${state.translate('notifyUploadEncryptDone')}
|
||||||
</h1>
|
</h1>
|
||||||
<p class="font-normal leading-normal text-grey-darkest word-break-all">
|
<p class="font-normal leading-normal text-grey-darkest word-break-all">
|
||||||
${state.translate('copyUrlFormLabel')} <br />
|
${state.translate('copyLinkDescription')} <br />
|
||||||
${name}
|
${name}
|
||||||
</p>
|
</p>
|
||||||
<input
|
<input
|
||||||
|
@ -24,9 +24,9 @@ module.exports = function(name, url) {
|
||||||
<button
|
<button
|
||||||
class="btn rounded-lg w-full flex-no-shrink focus:outline"
|
class="btn rounded-lg w-full flex-no-shrink focus:outline"
|
||||||
onclick="${copy}"
|
onclick="${copy}"
|
||||||
title="${state.translate('copyUrlFormButtonText')}"
|
title="${state.translate('copyLinkButton')}"
|
||||||
>
|
>
|
||||||
${state.translate('copyUrlFormButtonText')}
|
${state.translate('copyLinkButton')}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker my-4 font-medium cursor-pointer focus:outline"
|
class="text-blue-dark hover:text-blue-darker focus:text-blue-darker my-4 font-medium cursor-pointer focus:outline"
|
||||||
|
|
|
@ -36,9 +36,9 @@ function preview(state, emit) {
|
||||||
<div
|
<div
|
||||||
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
|
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">
|
<p class="w-full text-grey-darkest text-center leading-normal">
|
||||||
${state.translate('downloadMessage')}
|
${state.translate('downloadDescription')}
|
||||||
</p>
|
</p>
|
||||||
${archiveTile.preview(state, emit)}
|
${archiveTile.preview(state, emit)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -12,7 +12,7 @@ module.exports = function(state) {
|
||||||
</h1>
|
</h1>
|
||||||
<img src="${assets.get('completed.svg')}" class="my-12 h-48" />
|
<img src="${assets.get('completed.svg')}" class="my-12 h-48" />
|
||||||
<p class="text-grey-darkest leading-normal">
|
<p class="text-grey-darkest leading-normal">
|
||||||
${state.translate('downloadFinishText')}
|
${state.translate('trySendDescription')}
|
||||||
</p>
|
</p>
|
||||||
<p class="my-5">
|
<p class="my-5">
|
||||||
<a href="/" class="btn rounded-lg flex items-center mt-4" role="button"
|
<a href="/" class="btn rounded-lg flex items-center mt-4" role="button"
|
||||||
|
|
|
@ -8,9 +8,9 @@ module.exports = function(state, emit) {
|
||||||
<div
|
<div
|
||||||
class="h-full w-full flex flex-col items-center justify-center bg-white py-8 max-w-md mx-auto"
|
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">
|
<p class="w-full mb-4 text-center text-grey-darkest leading-normal">
|
||||||
${state.translate('downloadMessage')}
|
${state.translate('downloadDescription')}
|
||||||
</p>
|
</p>
|
||||||
<form
|
<form
|
||||||
class="flex flex-row flex-no-wrap w-full md:w-4/5"
|
class="flex flex-row flex-no-wrap w-full md:w-4/5"
|
||||||
|
|
|
@ -14,7 +14,7 @@ module.exports = function(state, emit) {
|
||||||
</h1>
|
</h1>
|
||||||
<img class="my-12 h-48" src="${assets.get('error.svg')}" />
|
<img class="my-12 h-48" src="${assets.get('error.svg')}" />
|
||||||
<p class="max-w-md text-center text-grey-darkest leading-normal">
|
<p class="max-w-md text-center text-grey-darkest leading-normal">
|
||||||
${state.translate('downloadFinishText')}
|
${state.translate('trySendDescription')}
|
||||||
</p>
|
</p>
|
||||||
<p class="my-5">
|
<p class="my-5">
|
||||||
<a href="/" class="btn rounded-lg flex items-center" role="button"
|
<a href="/" class="btn rounded-lg flex items-center" role="button"
|
||||||
|
|
|
@ -7,7 +7,7 @@ module.exports = function(state, emit) {
|
||||||
const el = html`
|
const el = html`
|
||||||
<div class="px-1">
|
<div class="px-1">
|
||||||
${raw(
|
${raw(
|
||||||
state.translate('frontPageExpireInfo', {
|
state.translate('archiveExpiryInfo', {
|
||||||
downloadCount:
|
downloadCount:
|
||||||
'<span class="lg:inline-block md:block sm:inline-block block"></span><select id="dlCount"></select>',
|
'<span class="lg:inline-block md:block sm:inline-block block"></span><select id="dlCount"></select>',
|
||||||
timespan: '<select id="timespan"></select>'
|
timespan: '<select id="timespan"></select>'
|
||||||
|
|
|
@ -8,10 +8,10 @@ module.exports = function intro(state) {
|
||||||
>
|
>
|
||||||
<div class="flex flex-col justify-end h-full">
|
<div class="flex flex-col justify-end h-full">
|
||||||
<h1 class="font-bold">
|
<h1 class="font-bold">
|
||||||
${state.translate('uploadPageHeader')}
|
${state.translate('introTitle')}
|
||||||
</h1>
|
</h1>
|
||||||
<p class="max-w-sm mt-2 pr-16 font-light leading-normal">
|
<p class="max-w-sm mt-2 pr-16 font-light leading-normal">
|
||||||
${state.translate('uploadPageExplainer')}
|
${state.translate('introDescription')}
|
||||||
</p>
|
</p>
|
||||||
<img class="intro" src="${assets.get('intro.svg')}" />
|
<img class="intro" src="${assets.get('intro.svg')}" />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -7,22 +7,60 @@ module.exports = function(state, emit) {
|
||||||
<main class="main">
|
<main class="main">
|
||||||
${state.modal && modal(state, emit)}
|
${state.modal && modal(state, emit)}
|
||||||
<div
|
<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>
|
||||||
${raw(
|
<p class="mt-2">${state.translate('legalDateStamp')}</p>
|
||||||
replaceLinks(state.translate('legalNoticeTestPilot'), [
|
<div class="overflow-scroll px-4">
|
||||||
'https://testpilot.firefox.com/terms',
|
${raw(
|
||||||
'https://testpilot.firefox.com/privacy',
|
replaceLinks(state.translate('legalNoticeSend'), [
|
||||||
'https://testpilot.firefox.com/experiments/send'
|
'https://www.mozilla.org/privacy/',
|
||||||
])
|
'https://github.com/mozilla/send/blob/master/docs/metrics.md'
|
||||||
)}
|
])
|
||||||
${raw(
|
)}
|
||||||
replaceLinks(state.translate('legalNoticeMozilla'), [
|
<ul class="mt-10 max-w-md leading-normal">
|
||||||
'https://www.mozilla.org/privacy/websites/',
|
<li class="mb-4">
|
||||||
'https://www.mozilla.org/about/legal/terms/mozilla/'
|
<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>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
`;
|
`;
|
||||||
|
|
|
@ -8,7 +8,7 @@ module.exports = function(state, emit) {
|
||||||
<div
|
<div
|
||||||
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
|
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
|
<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"
|
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>
|
</fieldset>
|
||||||
<input
|
<input
|
||||||
class="btn rounded-lg w-full flex flex-no-shrink items-center justify-center"
|
class="btn rounded-lg w-full flex flex-no-shrink items-center justify-center"
|
||||||
value="${state.translate('copyUrlFormButtonText')}"
|
value="${state.translate('copyLinkButton')}"
|
||||||
title="${state.translate('copyUrlFormButtonText')}"
|
title="${state.translate('copyLinkButton')}"
|
||||||
type="submit" />
|
type="submit" />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
@ -64,7 +64,7 @@ module.exports = function(state, emit) {
|
||||||
let title = button.title;
|
let title = button.title;
|
||||||
switch (choice) {
|
switch (choice) {
|
||||||
case 'copy':
|
case 'copy':
|
||||||
title = state.translate('copyUrlFormButtonText');
|
title = state.translate('copyLinkButton');
|
||||||
break;
|
break;
|
||||||
case 'firefox':
|
case 'firefox':
|
||||||
title = state.translate('downloadFirefox');
|
title = state.translate('downloadFirefox');
|
||||||
|
|
|
@ -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"
|
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">
|
<h1 class="text-center font-bold my-2">
|
||||||
${state.translate('expiredPageHeaderUpdate')}
|
${state.translate('expiredTitle')}
|
||||||
</h1>
|
</h1>
|
||||||
<img src="${assets.get('notFound.svg')}" class="my-12" />
|
<img src="${assets.get('notFound.svg')}" class="my-12" />
|
||||||
<p class="max-w-md text-center text-grey-darkest leading-normal">
|
<p class="max-w-md text-center text-grey-darkest leading-normal">
|
||||||
${state.translate('downloadFinishText')}
|
${state.translate('trySendDescription')}
|
||||||
</p>
|
</p>
|
||||||
<p class="my-5">
|
<p class="my-5">
|
||||||
<a href="/" class="btn rounded-lg flex items-center" role="button"
|
<a href="/" class="btn rounded-lg flex items-center" role="button"
|
||||||
|
|
|
@ -30,11 +30,12 @@ module.exports = function(trigger) {
|
||||||
size: bytes(state.LIMITS.MAX_FILE_SIZE)
|
size: bytes(state.LIMITS.MAX_FILE_SIZE)
|
||||||
})}
|
})}
|
||||||
</li>
|
</li>
|
||||||
<li>${state.translate('accountBenefitExpiry')}</li>
|
<li>${state.translate('accountBenefitDownloadCount')}</li>
|
||||||
<li>
|
<li>
|
||||||
${state.translate('accountBenefitExpiryTwo', { count: DAYS })}
|
${state.translate('accountBenefitTimeLimit', { count: DAYS })}
|
||||||
</li>
|
</li>
|
||||||
<li>${state.translate('accountBenefitSync')}</li>
|
<li>${state.translate('accountBenefitSync')}</li>
|
||||||
|
<li>${state.translate('accountBenefitMoz')}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
<section
|
<section
|
||||||
|
@ -45,12 +46,12 @@ module.exports = function(trigger) {
|
||||||
id="email-input"
|
id="email-input"
|
||||||
type="email"
|
type="email"
|
||||||
class="${hidden} border rounded-lg w-full px-2 py-1 h-12 mb-3 text-lg text-grey-darker leading-loose"
|
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
|
<input
|
||||||
class="btn rounded-lg w-full flex flex-no-shrink items-center justify-center"
|
class="btn rounded-lg w-full flex flex-no-shrink items-center justify-center"
|
||||||
value="${state.translate('signInMenuOption')}"
|
value="${state.translate('signInButton')}"
|
||||||
title="${state.translate('signInMenuOption')}"
|
title="${state.translate('signInButton')}"
|
||||||
id="email-submit"
|
id="email-submit"
|
||||||
type="submit"
|
type="submit"
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -51,7 +51,7 @@ function outdatedStrings(state) {
|
||||||
function unsupportedStrings(state) {
|
function unsupportedStrings(state) {
|
||||||
return {
|
return {
|
||||||
header: state.translate('notSupportedHeader'),
|
header: state.translate('notSupportedHeader'),
|
||||||
description: state.translate('notSupportedDetailUpdate'),
|
description: state.translate('notSupportedDescription'),
|
||||||
button: state.translate('downloadFirefox')
|
button: state.translate('downloadFirefox')
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,32 +1,13 @@
|
||||||
# Firefox Send is a brand name and should not be localized.
|
# Firefox Send is a brand name and should not be localized.
|
||||||
title = Firefox Send
|
title = Firefox Send
|
||||||
siteFeedback = Feedback
|
siteFeedback = Feedback
|
||||||
uploadPageHeader = Private, Encrypted File Sharing
|
introTitle = Simple, private file sharing
|
||||||
uploadPageExplainer = Send files through a safe, private, and encrypted link that automatically expires to ensure your stuff does not remain online forever.
|
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.
|
||||||
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…
|
importingFile = Importing…
|
||||||
verifyingFile = Verifying…
|
|
||||||
encryptingFile = Encrypting…
|
encryptingFile = Encrypting…
|
||||||
decryptingFile = Decrypting…
|
decryptingFile = Decrypting…
|
||||||
notifyUploadEncryptDone = Your file is encrypted and ready to share.
|
notifyUploadEncryptDone = Your file is encrypted and ready to send
|
||||||
uploadingPageMessage = Once your file uploads you will be able to set expiry options.
|
archiveExpiryInfo = Expires after { $downloadCount } or { $timespan }
|
||||||
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 }
|
|
||||||
downloadCount = { $num ->
|
downloadCount = { $num ->
|
||||||
[one] 1 download
|
[one] 1 download
|
||||||
*[other] { $num } downloads
|
*[other] { $num } downloads
|
||||||
|
@ -52,42 +33,23 @@ fileCount = { $num ->
|
||||||
*[other] { $num } files
|
*[other] { $num } files
|
||||||
}
|
}
|
||||||
totalSize = Total size: { $size }
|
totalSize = Total size: { $size }
|
||||||
copyUrlFormLabel = Copy the link to share your file:
|
copyLinkDescription = Copy the link to share your file:
|
||||||
copyUrlFormButtonText = Copy link
|
copyLinkButton = Copy link
|
||||||
copiedUrl = Copied!
|
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
|
unlockInputPlaceholder = Password
|
||||||
unlockButtonLabel = Unlock
|
unlockButtonLabel = Unlock
|
||||||
downloadFilesTitle = Download Files
|
downloadTitle = Download files
|
||||||
# Firefox Send is a brand name and should not be localized.
|
# 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).
|
# Text and title used on the download link/button (indicates an action).
|
||||||
downloadButtonLabel = Download
|
downloadButtonLabel = Download
|
||||||
downloadNotification = Your download has completed.
|
downloadFinish = Download complete
|
||||||
downloadFinish = Download Complete
|
trySendDescription = Try Firefox Send for simple, safe file sharing.
|
||||||
downloadFinishText = 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)".
|
# This message is displayed when uploading or downloading a file, e.g. "(1,3 MB of 10 MB)".
|
||||||
fileSizeProgress = ({ $partialSize } of { $totalSize })
|
fileSizeProgress = ({ $partialSize } of { $totalSize })
|
||||||
# Firefox Send is a brand name and should not be localized.
|
# Firefox Send is a brand name and should not be localized.
|
||||||
sendYourFilesLink = Try Firefox Send
|
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!
|
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 }.
|
fileTooBig = That file is too big to upload. It should be less than { $size }.
|
||||||
# count will always be > 10
|
# count will always be > 10
|
||||||
tooManyFiles = { $count ->
|
tooManyFiles = { $count ->
|
||||||
|
@ -98,39 +60,41 @@ tooManyArchives = { $count ->
|
||||||
*[other] Only { $count } archives are allowed.
|
*[other] Only { $count } archives are allowed.
|
||||||
}
|
}
|
||||||
linkExpiredAlt = Link expired
|
linkExpiredAlt = Link expired
|
||||||
expiredPageHeaderUpdate = This link has expired.
|
expiredTitle = This link has expired.
|
||||||
notSupportedHeader = Your browser is not supported.
|
notSupportedHeader = Your browser is not supported.
|
||||||
# Firefox Send is a brand name and should not be localized.
|
# 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?
|
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.
|
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
|
updateFirefox = Update Firefox
|
||||||
downloadFirefox = Download Firefox
|
downloadFirefox = Download Firefox
|
||||||
downloadFirefoxButtonSub = Free Download
|
legalTitle = Send Privacy Notice
|
||||||
uploadedFile = File
|
legalDateStamp = Version 1.0, dated March 12, 2019
|
||||||
copyFileList = Copy URL
|
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>.
|
||||||
# expiryFileList is used as a column header
|
legalNoticeSendContentHeader = Content
|
||||||
expiryFileList = Expires In
|
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.
|
||||||
deleteFileList = Delete
|
legalNoticeSendDataHeader = Data on your device
|
||||||
nevermindButton = Never mind
|
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 file’s download URL. This is cleared if you delete your uploaded file or upon visiting Send after the file expires.
|
||||||
legalHeader = Terms & Privacy
|
legalNoticeSendPersonalHeader = Personal data
|
||||||
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>.
|
legalNoticeSendPersonal = The following is necessary to provide the service
|
||||||
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>.
|
legalNoticeSendNonPersonalHeader = Non-personal data
|
||||||
deletePopupText = Delete this file?
|
legalNoticeSendNonPersonal = We receive the following to improve our service and performance
|
||||||
deletePopupYes = Yes
|
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 file’s 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 you’ve 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
|
deletePopupCancel = Cancel
|
||||||
deleteButtonHover = Delete
|
deleteButtonHover = Delete
|
||||||
copyUrlHover = Copy URL
|
|
||||||
footerLinkLegal = Legal
|
footerLinkLegal = Legal
|
||||||
footerLinkPrivacy = Privacy
|
footerLinkPrivacy = Privacy
|
||||||
footerLinkTerms = Terms
|
|
||||||
footerLinkPrivacyAndTerms = Privacy & Terms
|
|
||||||
footerLinkCookies = Cookies
|
footerLinkCookies = Cookies
|
||||||
requirePasswordCheckbox = Require a password to download this file
|
|
||||||
addPasswordButton = Add password
|
|
||||||
changePasswordButton = Change
|
|
||||||
passwordTryAgain = Incorrect password. Try again.
|
passwordTryAgain = Incorrect password. Try again.
|
||||||
reportIPInfringement = Report IP Infringement
|
|
||||||
javascriptRequired = Firefox Send requires JavaScript
|
javascriptRequired = Firefox Send requires JavaScript
|
||||||
whyJavascript = Why does Firefox Send require JavaScript?
|
whyJavascript = Why does Firefox Send require JavaScript?
|
||||||
enableJavascript = Please enable JavaScript and try again.
|
enableJavascript = Please enable JavaScript and try again.
|
||||||
|
@ -140,48 +104,30 @@ expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
expiresHoursMinutes = { $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"
|
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||||
expiresMinutes = { $minutes }m
|
expiresMinutes = { $minutes }m
|
||||||
# A short status message shown when a password is successfully set
|
|
||||||
passwordIsSet = Password set
|
|
||||||
# A short status message shown when the user enters a long password
|
# A short status message shown when the user enters a long password
|
||||||
maxPasswordLength = Maximum password length: { $length }
|
maxPasswordLength = Maximum password length: { $length }
|
||||||
# A short status message shown when there was an error setting the password
|
# A short status message shown when there was an error setting the password
|
||||||
passwordSetError = This password could not be set
|
passwordSetError = This password could not be set
|
||||||
pageHeaderCredits = from the makers of Firefox
|
addFilesButton = Select files to upload
|
||||||
addFilesButton = Add file(s)
|
uploadButton = Upload
|
||||||
addFilesButtonWithSize = Add file(s) up to { $size }
|
dragAndDropFiles = Drag and drop files
|
||||||
uploadFilesButton = Upload
|
orClickWithSize = or click to to send up to { $size }
|
||||||
uploadDropDragMessage = Drop files here
|
addPassword = Protect with password
|
||||||
uploadDropButtonMessage = or click to select files
|
emailPlaceholder = Enter your email
|
||||||
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
|
|
||||||
signInSizeBump = Sign in to send up to { $size }
|
signInSizeBump = Sign in to send up to { $size }
|
||||||
signInContinueMessage = to continue to Firefox Send
|
signInButton = Sign in/up
|
||||||
signInContinueButton = Continue
|
|
||||||
signInMenuOption = Sign in/up
|
|
||||||
signInNextOption = Continue
|
|
||||||
accountMenuOption = Firefox Account
|
|
||||||
accountBenefitTitle = Create a Firefox Account or sign in
|
accountBenefitTitle = Create a Firefox Account or sign in
|
||||||
accountBenefitLargeFiles = Share files up to { $size }
|
accountBenefitLargeFiles = Share files up to { $size }
|
||||||
accountBenefitExpiry = Share files with more people
|
accountBenefitDownloadCount = Share files with more people
|
||||||
accountBenefitExpiryTwo = { $count ->
|
accountBenefitTimeLimit = { $count ->
|
||||||
*[other] Keep links active for up to { $count } days
|
*[other] Keep links active for up to { $count } days
|
||||||
}
|
}
|
||||||
accountBenefitSync = Manage shared files from any device
|
accountBenefitSync = Manage shared files from any device
|
||||||
manageAccount = Manage Account
|
accountBenefitMoz = Learn about other Mozilla services
|
||||||
logOut = Sign Out
|
signOut = Sign Out
|
||||||
okButton = Ok
|
okButton = OK
|
||||||
myUploads = My Uploads
|
|
||||||
downloadingTitle = Downloading
|
downloadingTitle = Downloading
|
||||||
noStreamsWarning = This browser might not be able to decrypt a file this big.
|
noStreamsWarning = This browser might not be able to decrypt a file this big.
|
||||||
noStreamsOptionCopy = Copy the link to open in another browser
|
noStreamsOptionCopy = Copy the link to open in another browser
|
||||||
noStreamsOptionFirefox = Try our favorite browser
|
noStreamsOptionFirefox = Try our favorite browser
|
||||||
noStreamsOptionDownload = Use this browser
|
noStreamsOptionDownload = Continue with this browser
|
Loading…
Reference in New Issue