Compare commits
193 Commits
master
...
mozilla-ma
Author | SHA1 | Date |
---|---|---|
Victor Ibragimov | 11319080a8 | |
Quentí | 0aefdc18da | |
Quentí | 2be2b6f410 | |
Quentí | d4c42c8ab1 | |
వీవెన్ | b9a329fa34 | |
Jim Spentzos | f84a5f1b18 | |
Lavon Śpirydonaŭ | 9f64e08b93 | |
robbp | 48a11cd33b | |
Bald3mar | 32b9fb8aa6 | |
Gwenn | f0bbf822c1 | |
Gwenn | 3abaa58a1b | |
robbp | b0ad17d3b7 | |
Besnik Bleta | 4597ecf4e1 | |
Besnik Bleta | 571b6f4003 | |
Jim Spentzos | 0152a440b4 | |
George kitsoukakis | 0886352a09 | |
Bald3mar | 98444d68d3 | |
Bald3mar | d38ea6a3fa | |
Bald3mar | e75478af8d | |
Bald3mar | d8e117e61a | |
Mark Heijl | 15c9593e18 | |
వీవెన్ | df0644a9da | |
Abdulrasheed Idris | b22b8f089d | |
Adaobi | 032fddff64 | |
Juan Pablo | 46bc3d4713 | |
Juan Pablo | d0844ae811 | |
Juan Pablo | 740ab457de | |
Lan Glad | 41865f9fc2 | |
Lan Glad | 915d6c2abd | |
Lan Glad | fc07069900 | |
Isidora Jukić | 98819744af | |
Isidora Jukić | c6ddbe1b66 | |
Danny Coates | 3c4f502eac | |
Danny Coates | 320b4cc9f1 | |
Jim Spentzos | e20798e0aa | |
Kim YoungCheon | d23eb376f8 | |
Alexander Slovesnik | 7654210dbb | |
Aman Alam | decc44620b | |
Danny Coates | 246e2c8db0 | |
Danny Coates | fbc4107262 | |
Danny Coates | dc912678fe | |
Danny Coates | 1ec2b995b0 | |
Danny Coates | fc8673b87a | |
Melo46 | 27bc7de7d0 | |
Melo46 | 0abcd8ac3b | |
Melo46 | 604a17a19d | |
Itiel | 97efdc572a | |
Danny Coates | d023a53b74 | |
Abelardo Ayala Rodríguez | 06daba9ce0 | |
Danny Coates | deb5c6e5d1 | |
Danny Coates | d2cdff5975 | |
Danny Coates | 0eb35c048c | |
Danny Coates | 028a6c4311 | |
Danny Coates | 2356d0fb64 | |
Danny Coates | ab63a34938 | |
Danny Coates | 4f03be590a | |
Danny Coates | 9bd96a9ec0 | |
Danny Coates | dd59605f3e | |
Danny Coates | e2425cd6c9 | |
Danny Coates | 81e9d81dab | |
Danny Coates | 87d46f7ef5 | |
Danny Coates | 2f503c91e4 | |
Jiri Grönroos | 3c27656444 | |
Danny Coates | 1cd33282dd | |
Gery Escalier | db6358abed | |
jlG | a08333d2b4 | |
వీవెన్ | 8869e34ca5 | |
వీవెన్ | a05c0e16b7 | |
Danny Coates | 192d45f77c | |
Danny Coates | 8ad4597114 | |
Abelardo Ayala Rodríguez | 4d96274f79 | |
Abelardo Ayala Rodríguez | 437f712a4d | |
Danny Coates | 7d35e8f61f | |
Danny Coates | 7130c2e7b0 | |
Melo46 | 72d2d6ef31 | |
Abelardo Ayala Rodríguez | eadf223e8d | |
Abelardo Ayala Rodríguez | 196099b194 | |
goofy | f0a116d0e4 | |
Abelardo Ayala Rodríguez | 571049e597 | |
Abelardo Ayala Rodríguez | f637f2f3bc | |
Abelardo Ayala Rodríguez | fe892fdcc1 | |
Abelardo Ayala Rodríguez | f792482478 | |
nandar | 5277730e7c | |
nandar | 696b3f7c05 | |
alamanda | 18eebd1ce2 | |
alamanda | 86326e4e6d | |
Fjoerfoks | 4c02a2ecf7 | |
Fjoerfoks | c00e552f80 | |
Fjoerfoks | bcefd4f1cb | |
Hyeonseok Shin | 82a91f4117 | |
Hyeonseok Shin | 6539da2c53 | |
Théo Chevalier | c6152cfcb4 | |
Mikeyy | 9f8e1051b1 | |
robbp | a2db84e44e | |
Mikeyy | 6f967e984f | |
ZiriSut | 6bc0b780be | |
Andreas Pettersson | a88acee8ee | |
Luna Jernberg | 92759a1f08 | |
Luna Jernberg | 59c4032176 | |
Quentí | 5e9edec93a | |
Quentí | dfb81409c6 | |
Selyan Slimane Amiri | 5ef569fa71 | |
ZiriSut | bfff47641a | |
ZiriSut | 7abe664e79 | |
ZiriSut | b30ac5605d | |
Danny Coates | 0f289202bc | |
ZiriSut | 7223956f01 | |
ZiriSut | e972c9f723 | |
Selyan Slimane Amiri | 8147d34857 | |
G12r | f1c73fcf8d | |
Jordi Serratosa | 9fa012c04d | |
G12r | 75bd771812 | |
Jordi Serratosa | b98761e08a | |
G12r | 93638aa291 | |
Jordi Serratosa | acb73e1dab | |
Ian Neal | 2235414620 | |
Enol | 1aa0fbb712 | |
Enol | d66d5d65b2 | |
Björn I | 207a27215c | |
Björn I | 2790b4ca4b | |
Luna Jernberg | f653838bf4 | |
Paulius | a0770d9b86 | |
Paulius | ec1f32fb65 | |
Björn I | ca0a05e6dc | |
Melo46 | 0687ec877c | |
marsf | 14209baf55 | |
marsf | 75938febfa | |
marsf | a9e9902468 | |
Cristian Silaghi | 91cd7684c4 | |
Chengings | 8bf8c8d95a | |
Chengings | 594916a59d | |
José Manuel | 6213762d96 | |
Danny Coates | d9cbe058ab | |
Itiel | 2f6119e2f1 | |
Itiel | 21d1839818 | |
Jakob Kappel | 95cde415f6 | |
Gabriela | 2e6d1abac2 | |
Gabriela | 3a36a718d2 | |
Joergen | 04b1623f15 | |
Joergen | 10ffa1d785 | |
Enol | 93e98b9c30 | |
Enol | 618e169895 | |
Enol | 91584649c5 | |
Michael Wolf | 31805031ca | |
Michael Wolf | 58ffcb171d | |
Danny Coates | 55df061567 | |
Mikalai Udodau | 8fb770a4ea | |
Juraj Cigáň | 83cae687c8 | |
Francesco Lodolo | 75444ead46 | |
Cláudio Esperança | df62189346 | |
Muhend Belkacem | b1e25ed40c | |
Michele Rodaro | abef9d9b7f | |
Michael Wolf | 748d9b48ff | |
Pin-guang Chen | 10f60dd2dd | |
Michael Wolf | 1882ce5708 | |
Michael Wolf | 20db9ee6fd | |
Piotr Drąg | 069efcd257 | |
Pin-guang Chen | 446e993420 | |
Selim Şumlu | 588c793b98 | |
Selim Şumlu | 3c6f45464b | |
Michael Wolf | 76ecbbecc6 | |
Pin-guang Chen | ab1802a371 | |
Selim Şumlu | 15f4f386fb | |
Michael Wolf | 84e9e9f654 | |
Quế Tùng | e1e7887237 | |
Gwenn | 0c274139ed | |
Rhoslyn Prys | 1dbf7c7b2a | |
Rhoslyn Prys | 0bec884397 | |
Rhoslyn Prys | 58095ac676 | |
Michael Köhler | b680d20bca | |
Michal Stanke | 5eab9703af | |
Danny Coates | 5c5853c645 | |
Marcelo Ghelman | 4674666807 | |
ravmn | 5626e128f2 | |
Marcelo Ghelman | 1fa714924e | |
Marcelo Ghelman | 89bfa74bb8 | |
πάθοςγιατηζωή | 12d6c029ff | |
πάθοςγιατηζωή | c580282a27 | |
Danny Coates | f3a1fde07f | |
πάθοςγιατηζωή | ce507c557f | |
Håvar Henriksen | 6c984fa127 | |
Håvar Henriksen | 359d5d6bdd | |
Michael Wolf | 7698564a4d | |
Marcelo Ghelman | 546b58d4d5 | |
Michael Wolf | 813a2d2f25 | |
Michael Wolf | f8d61479d2 | |
Іhor Hordiichuk | afcc06ad14 | |
Kohei Yoshino | 84b3796710 | |
Luna Jernberg | 8fd0a4cb01 | |
Balázs Meskó | 2a947a031d | |
Danny Coates | 0a8663aa51 | |
Danny Coates | 17057e725d | |
Danny Coates | 9891d1f0ba |
|
@ -16,13 +16,12 @@ RUN set -x \
|
||||||
--home /app \
|
--home /app \
|
||||||
--uid 10001 \
|
--uid 10001 \
|
||||||
app
|
app
|
||||||
RUN npm i -g npm
|
|
||||||
COPY --chown=app:app . /app
|
COPY --chown=app:app . /app
|
||||||
USER app
|
USER app
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
RUN set -x \
|
RUN set -x \
|
||||||
# Build
|
# Build
|
||||||
&& npm ci \
|
&& PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm ci \
|
||||||
&& npm run build
|
&& npm run build
|
||||||
|
|
||||||
|
|
||||||
|
|
90
app/api.js
90
app/api.js
|
@ -61,7 +61,10 @@ async function fetchWithAuth(url, params, keychain) {
|
||||||
const result = {};
|
const result = {};
|
||||||
params = params || {};
|
params = params || {};
|
||||||
const h = await keychain.authHeader();
|
const h = await keychain.authHeader();
|
||||||
params.headers = new Headers({ Authorization: h });
|
params.headers = new Headers({
|
||||||
|
Authorization: h,
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
});
|
||||||
const response = await fetch(url, params);
|
const response = await fetch(url, params);
|
||||||
result.response = response;
|
result.response = response;
|
||||||
result.ok = response.ok;
|
result.ok = response.ok;
|
||||||
|
@ -127,10 +130,10 @@ export async function metadata(id, keychain) {
|
||||||
return {
|
return {
|
||||||
size: meta.size,
|
size: meta.size,
|
||||||
ttl: data.ttl,
|
ttl: data.ttl,
|
||||||
iv: meta.iv,
|
|
||||||
name: meta.name,
|
name: meta.name,
|
||||||
type: meta.type,
|
type: meta.type,
|
||||||
manifest: meta.manifest
|
manifest: meta.manifest,
|
||||||
|
flagged: data.flagged
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
throw new Error(result.response.status);
|
throw new Error(result.response.status);
|
||||||
|
@ -289,20 +292,13 @@ export function uploadWs(
|
||||||
|
|
||||||
////////////////////////
|
////////////////////////
|
||||||
|
|
||||||
async function downloadS(id, keychain, signal) {
|
async function _downloadStream(id, dlToken, signal) {
|
||||||
const auth = await keychain.authHeader();
|
|
||||||
|
|
||||||
const response = await fetch(getApiUrl(`/api/download/${id}`), {
|
const response = await fetch(getApiUrl(`/api/download/${id}`), {
|
||||||
signal: signal,
|
signal: signal,
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
headers: { Authorization: auth }
|
headers: { Authorization: `Bearer ${dlToken}` }
|
||||||
});
|
});
|
||||||
|
|
||||||
const authHeader = response.headers.get('WWW-Authenticate');
|
|
||||||
if (authHeader) {
|
|
||||||
keychain.nonce = parseNonce(authHeader);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response.status !== 200) {
|
if (response.status !== 200) {
|
||||||
throw new Error(response.status);
|
throw new Error(response.status);
|
||||||
}
|
}
|
||||||
|
@ -310,13 +306,13 @@ async function downloadS(id, keychain, signal) {
|
||||||
return response.body;
|
return response.body;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function tryDownloadStream(id, keychain, signal, tries = 2) {
|
async function tryDownloadStream(id, dlToken, signal, tries = 2) {
|
||||||
try {
|
try {
|
||||||
const result = await downloadS(id, keychain, signal);
|
const result = await _downloadStream(id, dlToken, signal);
|
||||||
return result;
|
return result;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.message === '401' && --tries > 0) {
|
if (e.message === '401' && --tries > 0) {
|
||||||
return tryDownloadStream(id, keychain, signal, tries);
|
return tryDownloadStream(id, dlToken, signal, tries);
|
||||||
}
|
}
|
||||||
if (e.name === 'AbortError') {
|
if (e.name === 'AbortError') {
|
||||||
throw new Error('0');
|
throw new Error('0');
|
||||||
|
@ -325,21 +321,20 @@ async function tryDownloadStream(id, keychain, signal, tries = 2) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function downloadStream(id, keychain) {
|
export function downloadStream(id, dlToken) {
|
||||||
const controller = new AbortController();
|
const controller = new AbortController();
|
||||||
function cancel() {
|
function cancel() {
|
||||||
controller.abort();
|
controller.abort();
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
cancel,
|
cancel,
|
||||||
result: tryDownloadStream(id, keychain, controller.signal)
|
result: tryDownloadStream(id, dlToken, controller.signal)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////
|
//////////////////
|
||||||
|
|
||||||
async function download(id, keychain, onprogress, canceller) {
|
async function download(id, dlToken, onprogress, canceller) {
|
||||||
const auth = await keychain.authHeader();
|
|
||||||
const xhr = new XMLHttpRequest();
|
const xhr = new XMLHttpRequest();
|
||||||
canceller.oncancel = function() {
|
canceller.oncancel = function() {
|
||||||
xhr.abort();
|
xhr.abort();
|
||||||
|
@ -347,10 +342,6 @@ async function download(id, keychain, onprogress, canceller) {
|
||||||
return new Promise(function(resolve, reject) {
|
return new Promise(function(resolve, reject) {
|
||||||
xhr.addEventListener('loadend', function() {
|
xhr.addEventListener('loadend', function() {
|
||||||
canceller.oncancel = function() {};
|
canceller.oncancel = function() {};
|
||||||
const authHeader = xhr.getResponseHeader('WWW-Authenticate');
|
|
||||||
if (authHeader) {
|
|
||||||
keychain.nonce = parseNonce(authHeader);
|
|
||||||
}
|
|
||||||
if (xhr.status !== 200) {
|
if (xhr.status !== 200) {
|
||||||
return reject(new Error(xhr.status));
|
return reject(new Error(xhr.status));
|
||||||
}
|
}
|
||||||
|
@ -365,26 +356,26 @@ async function download(id, keychain, onprogress, canceller) {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
xhr.open('get', getApiUrl(`/api/download/blob/${id}`));
|
xhr.open('get', getApiUrl(`/api/download/blob/${id}`));
|
||||||
xhr.setRequestHeader('Authorization', auth);
|
xhr.setRequestHeader('Authorization', `Bearer ${dlToken}`);
|
||||||
xhr.responseType = 'blob';
|
xhr.responseType = 'blob';
|
||||||
xhr.send();
|
xhr.send();
|
||||||
onprogress(0);
|
onprogress(0);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function tryDownload(id, keychain, onprogress, canceller, tries = 2) {
|
async function tryDownload(id, dlToken, onprogress, canceller, tries = 2) {
|
||||||
try {
|
try {
|
||||||
const result = await download(id, keychain, onprogress, canceller);
|
const result = await download(id, dlToken, onprogress, canceller);
|
||||||
return result;
|
return result;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.message === '401' && --tries > 0) {
|
if (e.message === '401' && --tries > 0) {
|
||||||
return tryDownload(id, keychain, onprogress, canceller, tries);
|
return tryDownload(id, dlToken, onprogress, canceller, tries);
|
||||||
}
|
}
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function downloadFile(id, keychain, onprogress) {
|
export function downloadFile(id, dlToken, onprogress) {
|
||||||
const canceller = {
|
const canceller = {
|
||||||
oncancel: function() {} // download() sets this
|
oncancel: function() {} // download() sets this
|
||||||
};
|
};
|
||||||
|
@ -393,7 +384,7 @@ export function downloadFile(id, keychain, onprogress) {
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
cancel,
|
cancel,
|
||||||
result: tryDownload(id, keychain, onprogress, canceller)
|
result: tryDownload(id, dlToken, onprogress, canceller)
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -438,3 +429,44 @@ export async function getConstants() {
|
||||||
|
|
||||||
throw new Error(response.status);
|
throw new Error(response.status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export async function reportLink(id, keychain, reason) {
|
||||||
|
const result = await fetchWithAuthAndRetry(
|
||||||
|
getApiUrl(`/api/report/${id}`),
|
||||||
|
{
|
||||||
|
method: 'POST',
|
||||||
|
body: JSON.stringify({ reason })
|
||||||
|
},
|
||||||
|
keychain
|
||||||
|
);
|
||||||
|
|
||||||
|
if (result.ok) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new Error(result.response.status);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function getDownloadToken(id, keychain) {
|
||||||
|
const result = await fetchWithAuthAndRetry(
|
||||||
|
getApiUrl(`/api/download/token/${id}`),
|
||||||
|
{
|
||||||
|
method: 'GET'
|
||||||
|
},
|
||||||
|
keychain
|
||||||
|
);
|
||||||
|
|
||||||
|
if (result.ok) {
|
||||||
|
return (await result.response.json()).token;
|
||||||
|
}
|
||||||
|
throw new Error(result.response.status);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function downloadDone(id, dlToken) {
|
||||||
|
const headers = new Headers({ Authorization: `Bearer ${dlToken}` });
|
||||||
|
const response = await fetch(getApiUrl(`/api/download/done/${id}`), {
|
||||||
|
headers,
|
||||||
|
method: 'POST'
|
||||||
|
});
|
||||||
|
return response.ok;
|
||||||
|
}
|
||||||
|
|
|
@ -77,6 +77,7 @@ async function polyfillStreams() {
|
||||||
|
|
||||||
export default async function getCapabilities() {
|
export default async function getCapabilities() {
|
||||||
const browser = browserName();
|
const browser = browserName();
|
||||||
|
const isMobile = /mobi|android/i.test(navigator.userAgent);
|
||||||
const serviceWorker = 'serviceWorker' in navigator && browser !== 'edge';
|
const serviceWorker = 'serviceWorker' in navigator && browser !== 'edge';
|
||||||
let crypto = await checkCrypto();
|
let crypto = await checkCrypto();
|
||||||
const nativeStreams = checkStreams();
|
const nativeStreams = checkStreams();
|
||||||
|
@ -91,14 +92,15 @@ export default async function getCapabilities() {
|
||||||
account = false;
|
account = false;
|
||||||
}
|
}
|
||||||
const share =
|
const share =
|
||||||
typeof navigator.share === 'function' && locale().startsWith('en'); // en until strings merge
|
isMobile &&
|
||||||
|
typeof navigator.share === 'function' &&
|
||||||
|
locale().startsWith('en'); // en until strings merge
|
||||||
|
|
||||||
const standalone =
|
const standalone =
|
||||||
window.matchMedia('(display-mode: standalone)').matches ||
|
window.matchMedia('(display-mode: standalone)').matches ||
|
||||||
navigator.standalone;
|
navigator.standalone;
|
||||||
|
|
||||||
const mobileFirefox =
|
const mobileFirefox = browser === 'firefox' && isMobile;
|
||||||
browser === 'firefox' && /mobile/i.test(navigator.userAgent);
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
account,
|
account,
|
||||||
|
|
|
@ -49,8 +49,8 @@ export default function(state, emitter) {
|
||||||
state.user.login(email);
|
state.user.login(email);
|
||||||
});
|
});
|
||||||
|
|
||||||
emitter.on('logout', () => {
|
emitter.on('logout', async () => {
|
||||||
state.user.logout();
|
await state.user.logout();
|
||||||
metrics.loggedOut({ trigger: 'button' });
|
metrics.loggedOut({ trigger: 'button' });
|
||||||
emitter.emit('pushState', '/');
|
emitter.emit('pushState', '/');
|
||||||
});
|
});
|
||||||
|
@ -178,6 +178,12 @@ export default function(state, emitter) {
|
||||||
//cancelled. do nothing
|
//cancelled. do nothing
|
||||||
metrics.cancelledUpload(archive, err.duration);
|
metrics.cancelledUpload(archive, err.duration);
|
||||||
render();
|
render();
|
||||||
|
} else if (err.message === '401') {
|
||||||
|
const refreshed = await state.user.refresh();
|
||||||
|
if (refreshed) {
|
||||||
|
return emitter.emit('upload');
|
||||||
|
}
|
||||||
|
emitter.emit('pushState', '/error');
|
||||||
} else {
|
} else {
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
console.error(err);
|
console.error(err);
|
||||||
|
@ -226,9 +232,10 @@ export default function(state, emitter) {
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.message === '401' || e.message === '404') {
|
if (e.message === '401' || e.message === '404') {
|
||||||
file.password = null;
|
file.password = null;
|
||||||
if (!file.requiresPassword) {
|
file.dead = e.message === '404';
|
||||||
return emitter.emit('pushState', '/404');
|
} else {
|
||||||
}
|
console.error(e);
|
||||||
|
return emitter.emit('pushState', '/error');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -244,7 +251,8 @@ export default function(state, emitter) {
|
||||||
const start = Date.now();
|
const start = Date.now();
|
||||||
try {
|
try {
|
||||||
const dl = state.transfer.download({
|
const dl = state.transfer.download({
|
||||||
stream: state.capabilities.streamDownload
|
stream: state.capabilities.streamDownload,
|
||||||
|
storage: state.storage
|
||||||
});
|
});
|
||||||
render();
|
render();
|
||||||
await dl;
|
await dl;
|
||||||
|
@ -263,7 +271,9 @@ export default function(state, emitter) {
|
||||||
} else {
|
} else {
|
||||||
// eslint-disable-next-line no-console
|
// eslint-disable-next-line no-console
|
||||||
state.transfer = null;
|
state.transfer = null;
|
||||||
const location = err.message === '404' ? '/404' : '/error';
|
const location = ['404', '403'].includes(err.message)
|
||||||
|
? '/404'
|
||||||
|
: '/error';
|
||||||
if (location === '/error') {
|
if (location === '/error') {
|
||||||
state.sentry.withScope(scope => {
|
state.sentry.withScope(scope => {
|
||||||
scope.setExtra('duration', err.duration);
|
scope.setExtra('duration', err.duration);
|
||||||
|
@ -306,6 +316,21 @@ export default function(state, emitter) {
|
||||||
render();
|
render();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
emitter.on('report', async ({ reason }) => {
|
||||||
|
try {
|
||||||
|
const receiver = state.transfer || new FileReceiver(state.fileInfo);
|
||||||
|
await receiver.reportLink(reason);
|
||||||
|
render();
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
if (err.message === '404') {
|
||||||
|
state.fileInfo = { reported: true };
|
||||||
|
return render();
|
||||||
|
}
|
||||||
|
emitter.emit('pushState', '/error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
// poll for updates of the upload list
|
// poll for updates of the upload list
|
||||||
if (!state.modal && state.route === '/') {
|
if (!state.modal && state.route === '/') {
|
||||||
|
|
|
@ -0,0 +1,266 @@
|
||||||
|
const LOOKUP = Int32Array.from([
|
||||||
|
0x00000000,
|
||||||
|
0x77073096,
|
||||||
|
0xee0e612c,
|
||||||
|
0x990951ba,
|
||||||
|
0x076dc419,
|
||||||
|
0x706af48f,
|
||||||
|
0xe963a535,
|
||||||
|
0x9e6495a3,
|
||||||
|
0x0edb8832,
|
||||||
|
0x79dcb8a4,
|
||||||
|
0xe0d5e91e,
|
||||||
|
0x97d2d988,
|
||||||
|
0x09b64c2b,
|
||||||
|
0x7eb17cbd,
|
||||||
|
0xe7b82d07,
|
||||||
|
0x90bf1d91,
|
||||||
|
0x1db71064,
|
||||||
|
0x6ab020f2,
|
||||||
|
0xf3b97148,
|
||||||
|
0x84be41de,
|
||||||
|
0x1adad47d,
|
||||||
|
0x6ddde4eb,
|
||||||
|
0xf4d4b551,
|
||||||
|
0x83d385c7,
|
||||||
|
0x136c9856,
|
||||||
|
0x646ba8c0,
|
||||||
|
0xfd62f97a,
|
||||||
|
0x8a65c9ec,
|
||||||
|
0x14015c4f,
|
||||||
|
0x63066cd9,
|
||||||
|
0xfa0f3d63,
|
||||||
|
0x8d080df5,
|
||||||
|
0x3b6e20c8,
|
||||||
|
0x4c69105e,
|
||||||
|
0xd56041e4,
|
||||||
|
0xa2677172,
|
||||||
|
0x3c03e4d1,
|
||||||
|
0x4b04d447,
|
||||||
|
0xd20d85fd,
|
||||||
|
0xa50ab56b,
|
||||||
|
0x35b5a8fa,
|
||||||
|
0x42b2986c,
|
||||||
|
0xdbbbc9d6,
|
||||||
|
0xacbcf940,
|
||||||
|
0x32d86ce3,
|
||||||
|
0x45df5c75,
|
||||||
|
0xdcd60dcf,
|
||||||
|
0xabd13d59,
|
||||||
|
0x26d930ac,
|
||||||
|
0x51de003a,
|
||||||
|
0xc8d75180,
|
||||||
|
0xbfd06116,
|
||||||
|
0x21b4f4b5,
|
||||||
|
0x56b3c423,
|
||||||
|
0xcfba9599,
|
||||||
|
0xb8bda50f,
|
||||||
|
0x2802b89e,
|
||||||
|
0x5f058808,
|
||||||
|
0xc60cd9b2,
|
||||||
|
0xb10be924,
|
||||||
|
0x2f6f7c87,
|
||||||
|
0x58684c11,
|
||||||
|
0xc1611dab,
|
||||||
|
0xb6662d3d,
|
||||||
|
0x76dc4190,
|
||||||
|
0x01db7106,
|
||||||
|
0x98d220bc,
|
||||||
|
0xefd5102a,
|
||||||
|
0x71b18589,
|
||||||
|
0x06b6b51f,
|
||||||
|
0x9fbfe4a5,
|
||||||
|
0xe8b8d433,
|
||||||
|
0x7807c9a2,
|
||||||
|
0x0f00f934,
|
||||||
|
0x9609a88e,
|
||||||
|
0xe10e9818,
|
||||||
|
0x7f6a0dbb,
|
||||||
|
0x086d3d2d,
|
||||||
|
0x91646c97,
|
||||||
|
0xe6635c01,
|
||||||
|
0x6b6b51f4,
|
||||||
|
0x1c6c6162,
|
||||||
|
0x856530d8,
|
||||||
|
0xf262004e,
|
||||||
|
0x6c0695ed,
|
||||||
|
0x1b01a57b,
|
||||||
|
0x8208f4c1,
|
||||||
|
0xf50fc457,
|
||||||
|
0x65b0d9c6,
|
||||||
|
0x12b7e950,
|
||||||
|
0x8bbeb8ea,
|
||||||
|
0xfcb9887c,
|
||||||
|
0x62dd1ddf,
|
||||||
|
0x15da2d49,
|
||||||
|
0x8cd37cf3,
|
||||||
|
0xfbd44c65,
|
||||||
|
0x4db26158,
|
||||||
|
0x3ab551ce,
|
||||||
|
0xa3bc0074,
|
||||||
|
0xd4bb30e2,
|
||||||
|
0x4adfa541,
|
||||||
|
0x3dd895d7,
|
||||||
|
0xa4d1c46d,
|
||||||
|
0xd3d6f4fb,
|
||||||
|
0x4369e96a,
|
||||||
|
0x346ed9fc,
|
||||||
|
0xad678846,
|
||||||
|
0xda60b8d0,
|
||||||
|
0x44042d73,
|
||||||
|
0x33031de5,
|
||||||
|
0xaa0a4c5f,
|
||||||
|
0xdd0d7cc9,
|
||||||
|
0x5005713c,
|
||||||
|
0x270241aa,
|
||||||
|
0xbe0b1010,
|
||||||
|
0xc90c2086,
|
||||||
|
0x5768b525,
|
||||||
|
0x206f85b3,
|
||||||
|
0xb966d409,
|
||||||
|
0xce61e49f,
|
||||||
|
0x5edef90e,
|
||||||
|
0x29d9c998,
|
||||||
|
0xb0d09822,
|
||||||
|
0xc7d7a8b4,
|
||||||
|
0x59b33d17,
|
||||||
|
0x2eb40d81,
|
||||||
|
0xb7bd5c3b,
|
||||||
|
0xc0ba6cad,
|
||||||
|
0xedb88320,
|
||||||
|
0x9abfb3b6,
|
||||||
|
0x03b6e20c,
|
||||||
|
0x74b1d29a,
|
||||||
|
0xead54739,
|
||||||
|
0x9dd277af,
|
||||||
|
0x04db2615,
|
||||||
|
0x73dc1683,
|
||||||
|
0xe3630b12,
|
||||||
|
0x94643b84,
|
||||||
|
0x0d6d6a3e,
|
||||||
|
0x7a6a5aa8,
|
||||||
|
0xe40ecf0b,
|
||||||
|
0x9309ff9d,
|
||||||
|
0x0a00ae27,
|
||||||
|
0x7d079eb1,
|
||||||
|
0xf00f9344,
|
||||||
|
0x8708a3d2,
|
||||||
|
0x1e01f268,
|
||||||
|
0x6906c2fe,
|
||||||
|
0xf762575d,
|
||||||
|
0x806567cb,
|
||||||
|
0x196c3671,
|
||||||
|
0x6e6b06e7,
|
||||||
|
0xfed41b76,
|
||||||
|
0x89d32be0,
|
||||||
|
0x10da7a5a,
|
||||||
|
0x67dd4acc,
|
||||||
|
0xf9b9df6f,
|
||||||
|
0x8ebeeff9,
|
||||||
|
0x17b7be43,
|
||||||
|
0x60b08ed5,
|
||||||
|
0xd6d6a3e8,
|
||||||
|
0xa1d1937e,
|
||||||
|
0x38d8c2c4,
|
||||||
|
0x4fdff252,
|
||||||
|
0xd1bb67f1,
|
||||||
|
0xa6bc5767,
|
||||||
|
0x3fb506dd,
|
||||||
|
0x48b2364b,
|
||||||
|
0xd80d2bda,
|
||||||
|
0xaf0a1b4c,
|
||||||
|
0x36034af6,
|
||||||
|
0x41047a60,
|
||||||
|
0xdf60efc3,
|
||||||
|
0xa867df55,
|
||||||
|
0x316e8eef,
|
||||||
|
0x4669be79,
|
||||||
|
0xcb61b38c,
|
||||||
|
0xbc66831a,
|
||||||
|
0x256fd2a0,
|
||||||
|
0x5268e236,
|
||||||
|
0xcc0c7795,
|
||||||
|
0xbb0b4703,
|
||||||
|
0x220216b9,
|
||||||
|
0x5505262f,
|
||||||
|
0xc5ba3bbe,
|
||||||
|
0xb2bd0b28,
|
||||||
|
0x2bb45a92,
|
||||||
|
0x5cb36a04,
|
||||||
|
0xc2d7ffa7,
|
||||||
|
0xb5d0cf31,
|
||||||
|
0x2cd99e8b,
|
||||||
|
0x5bdeae1d,
|
||||||
|
0x9b64c2b0,
|
||||||
|
0xec63f226,
|
||||||
|
0x756aa39c,
|
||||||
|
0x026d930a,
|
||||||
|
0x9c0906a9,
|
||||||
|
0xeb0e363f,
|
||||||
|
0x72076785,
|
||||||
|
0x05005713,
|
||||||
|
0x95bf4a82,
|
||||||
|
0xe2b87a14,
|
||||||
|
0x7bb12bae,
|
||||||
|
0x0cb61b38,
|
||||||
|
0x92d28e9b,
|
||||||
|
0xe5d5be0d,
|
||||||
|
0x7cdcefb7,
|
||||||
|
0x0bdbdf21,
|
||||||
|
0x86d3d2d4,
|
||||||
|
0xf1d4e242,
|
||||||
|
0x68ddb3f8,
|
||||||
|
0x1fda836e,
|
||||||
|
0x81be16cd,
|
||||||
|
0xf6b9265b,
|
||||||
|
0x6fb077e1,
|
||||||
|
0x18b74777,
|
||||||
|
0x88085ae6,
|
||||||
|
0xff0f6a70,
|
||||||
|
0x66063bca,
|
||||||
|
0x11010b5c,
|
||||||
|
0x8f659eff,
|
||||||
|
0xf862ae69,
|
||||||
|
0x616bffd3,
|
||||||
|
0x166ccf45,
|
||||||
|
0xa00ae278,
|
||||||
|
0xd70dd2ee,
|
||||||
|
0x4e048354,
|
||||||
|
0x3903b3c2,
|
||||||
|
0xa7672661,
|
||||||
|
0xd06016f7,
|
||||||
|
0x4969474d,
|
||||||
|
0x3e6e77db,
|
||||||
|
0xaed16a4a,
|
||||||
|
0xd9d65adc,
|
||||||
|
0x40df0b66,
|
||||||
|
0x37d83bf0,
|
||||||
|
0xa9bcae53,
|
||||||
|
0xdebb9ec5,
|
||||||
|
0x47b2cf7f,
|
||||||
|
0x30b5ffe9,
|
||||||
|
0xbdbdf21c,
|
||||||
|
0xcabac28a,
|
||||||
|
0x53b39330,
|
||||||
|
0x24b4a3a6,
|
||||||
|
0xbad03605,
|
||||||
|
0xcdd70693,
|
||||||
|
0x54de5729,
|
||||||
|
0x23d967bf,
|
||||||
|
0xb3667a2e,
|
||||||
|
0xc4614ab8,
|
||||||
|
0x5d681b02,
|
||||||
|
0x2a6f2b94,
|
||||||
|
0xb40bbe37,
|
||||||
|
0xc30c8ea1,
|
||||||
|
0x5a05df1b,
|
||||||
|
0x2d02ef8d
|
||||||
|
]);
|
||||||
|
|
||||||
|
module.exports = function crc32(uint8Array, previous) {
|
||||||
|
let crc = previous === 0 ? 0 : ~~previous ^ -1;
|
||||||
|
for (let i = 0; i < uint8Array.byteLength; i++) {
|
||||||
|
crc = LOOKUP[(crc ^ uint8Array[i]) & 0xff] ^ (crc >>> 8);
|
||||||
|
}
|
||||||
|
return (crc ^ -1) >>> 0;
|
||||||
|
};
|
44
app/ece.js
44
app/ece.js
|
@ -1,5 +1,5 @@
|
||||||
import 'buffer';
|
|
||||||
import { transformStream } from './streams';
|
import { transformStream } from './streams';
|
||||||
|
import { concat } from './utils';
|
||||||
|
|
||||||
const NONCE_LENGTH = 12;
|
const NONCE_LENGTH = 12;
|
||||||
const TAG_LENGTH = 16;
|
const TAG_LENGTH = 16;
|
||||||
|
@ -81,19 +81,18 @@ class ECETransformer {
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
return Buffer.from(base.slice(0, NONCE_LENGTH));
|
return base.slice(0, NONCE_LENGTH);
|
||||||
}
|
}
|
||||||
|
|
||||||
generateNonce(seq) {
|
generateNonce(seq) {
|
||||||
if (seq > 0xffffffff) {
|
if (seq > 0xffffffff) {
|
||||||
throw new Error('record sequence number exceeds limit');
|
throw new Error('record sequence number exceeds limit');
|
||||||
}
|
}
|
||||||
const nonce = Buffer.from(this.nonceBase);
|
const nonce = new DataView(this.nonceBase.slice());
|
||||||
const m = nonce.readUIntBE(nonce.length - 4, 4);
|
const m = nonce.getUint32(nonce.byteLength - 4);
|
||||||
const xor = (m ^ seq) >>> 0; //forces unsigned int xor
|
const xor = (m ^ seq) >>> 0; //forces unsigned int xor
|
||||||
nonce.writeUIntBE(xor, nonce.length - 4, 4);
|
nonce.setUint32(nonce.byteLength - 4, xor);
|
||||||
|
return new Uint8Array(nonce.buffer);
|
||||||
return nonce;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pad(data, isLast) {
|
pad(data, isLast) {
|
||||||
|
@ -103,14 +102,11 @@ class ECETransformer {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isLast) {
|
if (isLast) {
|
||||||
const padding = Buffer.alloc(1);
|
return concat(data, Uint8Array.of(2));
|
||||||
padding.writeUInt8(2, 0);
|
|
||||||
return Buffer.concat([data, padding]);
|
|
||||||
} else {
|
} else {
|
||||||
const padding = Buffer.alloc(this.rs - len - TAG_LENGTH);
|
const padding = new Uint8Array(this.rs - len - TAG_LENGTH);
|
||||||
padding.fill(0);
|
padding[0] = 1;
|
||||||
padding.writeUInt8(1, 0);
|
return concat(data, padding);
|
||||||
return Buffer.concat([data, padding]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,10 +129,9 @@ class ECETransformer {
|
||||||
}
|
}
|
||||||
|
|
||||||
createHeader() {
|
createHeader() {
|
||||||
const nums = Buffer.alloc(5);
|
const nums = new DataView(new ArrayBuffer(5));
|
||||||
nums.writeUIntBE(this.rs, 0, 4);
|
nums.setUint32(0, this.rs);
|
||||||
nums.writeUIntBE(0, 4, 1);
|
return concat(new Uint8Array(this.salt), new Uint8Array(nums.buffer));
|
||||||
return Buffer.concat([Buffer.from(this.salt), nums]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
readHeader(buffer) {
|
readHeader(buffer) {
|
||||||
|
@ -144,9 +139,10 @@ class ECETransformer {
|
||||||
throw new Error('chunk too small for reading header');
|
throw new Error('chunk too small for reading header');
|
||||||
}
|
}
|
||||||
const header = {};
|
const header = {};
|
||||||
header.salt = buffer.buffer.slice(0, KEY_LENGTH);
|
const dv = new DataView(buffer.buffer);
|
||||||
header.rs = buffer.readUIntBE(KEY_LENGTH, 4);
|
header.salt = buffer.slice(0, KEY_LENGTH);
|
||||||
const idlen = buffer.readUInt8(KEY_LENGTH + 4);
|
header.rs = dv.getUint32(KEY_LENGTH);
|
||||||
|
const idlen = dv.getUint8(KEY_LENGTH + 4);
|
||||||
header.length = idlen + KEY_LENGTH + 5;
|
header.length = idlen + KEY_LENGTH + 5;
|
||||||
return header;
|
return header;
|
||||||
}
|
}
|
||||||
|
@ -158,7 +154,7 @@ class ECETransformer {
|
||||||
this.key,
|
this.key,
|
||||||
this.pad(buffer, isLast)
|
this.pad(buffer, isLast)
|
||||||
);
|
);
|
||||||
return Buffer.from(encrypted);
|
return new Uint8Array(encrypted);
|
||||||
}
|
}
|
||||||
|
|
||||||
async decryptRecord(buffer, seq, isLast) {
|
async decryptRecord(buffer, seq, isLast) {
|
||||||
|
@ -173,7 +169,7 @@ class ECETransformer {
|
||||||
buffer
|
buffer
|
||||||
);
|
);
|
||||||
|
|
||||||
return this.unpad(Buffer.from(data), isLast);
|
return this.unpad(new Uint8Array(data), isLast);
|
||||||
}
|
}
|
||||||
|
|
||||||
async start(controller) {
|
async start(controller) {
|
||||||
|
@ -214,7 +210,7 @@ class ECETransformer {
|
||||||
await this.transformPrevChunk(false, controller);
|
await this.transformPrevChunk(false, controller);
|
||||||
}
|
}
|
||||||
this.firstchunk = false;
|
this.firstchunk = false;
|
||||||
this.prevChunk = Buffer.from(chunk.buffer);
|
this.prevChunk = new Uint8Array(chunk.buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
async flush(controller) {
|
async flush(controller) {
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
import Nanobus from 'nanobus';
|
import Nanobus from 'nanobus';
|
||||||
import Keychain from './keychain';
|
import Keychain from './keychain';
|
||||||
import { delay, bytes, streamToArrayBuffer } from './utils';
|
import { delay, bytes, streamToArrayBuffer } from './utils';
|
||||||
import { downloadFile, metadata, getApiUrl } from './api';
|
import {
|
||||||
|
downloadFile,
|
||||||
|
downloadDone,
|
||||||
|
metadata,
|
||||||
|
getApiUrl,
|
||||||
|
reportLink,
|
||||||
|
getDownloadToken
|
||||||
|
} from './api';
|
||||||
import { blobStream } from './streams';
|
import { blobStream } from './streams';
|
||||||
import Zip from './zip';
|
import Zip from './zip';
|
||||||
|
|
||||||
|
@ -13,9 +20,14 @@ export default class FileReceiver extends Nanobus {
|
||||||
this.keychain.setPassword(fileInfo.password, fileInfo.url);
|
this.keychain.setPassword(fileInfo.password, fileInfo.url);
|
||||||
}
|
}
|
||||||
this.fileInfo = fileInfo;
|
this.fileInfo = fileInfo;
|
||||||
|
this.dlToken = null;
|
||||||
this.reset();
|
this.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get id() {
|
||||||
|
return this.fileInfo.id;
|
||||||
|
}
|
||||||
|
|
||||||
get progressRatio() {
|
get progressRatio() {
|
||||||
return this.progress[0] / this.progress[1];
|
return this.progress[0] / this.progress[1];
|
||||||
}
|
}
|
||||||
|
@ -47,12 +59,16 @@ export default class FileReceiver extends Nanobus {
|
||||||
const meta = await metadata(this.fileInfo.id, this.keychain);
|
const meta = await metadata(this.fileInfo.id, this.keychain);
|
||||||
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.size = +meta.size;
|
this.fileInfo.size = +meta.size;
|
||||||
this.fileInfo.manifest = meta.manifest;
|
this.fileInfo.manifest = meta.manifest;
|
||||||
|
this.fileInfo.flagged = meta.flagged;
|
||||||
this.state = 'ready';
|
this.state = 'ready';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async reportLink(reason) {
|
||||||
|
await reportLink(this.fileInfo.id, this.keychain, reason);
|
||||||
|
}
|
||||||
|
|
||||||
sendMessageToSw(msg) {
|
sendMessageToSw(msg) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
const channel = new MessageChannel();
|
const channel = new MessageChannel();
|
||||||
|
@ -75,7 +91,7 @@ export default class FileReceiver extends Nanobus {
|
||||||
this.state = 'downloading';
|
this.state = 'downloading';
|
||||||
this.downloadRequest = await downloadFile(
|
this.downloadRequest = await downloadFile(
|
||||||
this.fileInfo.id,
|
this.fileInfo.id,
|
||||||
this.keychain,
|
this.dlToken,
|
||||||
p => {
|
p => {
|
||||||
this.progress = [p, this.fileInfo.size];
|
this.progress = [p, this.fileInfo.size];
|
||||||
this.emit('progress');
|
this.emit('progress');
|
||||||
|
@ -139,6 +155,7 @@ export default class FileReceiver extends Nanobus {
|
||||||
url: this.fileInfo.url,
|
url: this.fileInfo.url,
|
||||||
size: this.fileInfo.size,
|
size: this.fileInfo.size,
|
||||||
nonce: this.keychain.nonce,
|
nonce: this.keychain.nonce,
|
||||||
|
dlToken: this.dlToken,
|
||||||
noSave
|
noSave
|
||||||
};
|
};
|
||||||
await this.sendMessageToSw(info);
|
await this.sendMessageToSw(info);
|
||||||
|
@ -204,11 +221,19 @@ export default class FileReceiver extends Nanobus {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
download(options) {
|
async download({ stream, storage, noSave }) {
|
||||||
if (options.stream) {
|
this.dlToken = storage.getDownloadToken(this.id);
|
||||||
return this.downloadStream(options.noSave);
|
if (!this.dlToken) {
|
||||||
|
this.dlToken = await getDownloadToken(this.id, this.keychain);
|
||||||
|
storage.setDownloadToken(this.id, this.dlToken);
|
||||||
}
|
}
|
||||||
return this.downloadBlob(options.noSave);
|
if (stream) {
|
||||||
|
await this.downloadStream(noSave);
|
||||||
|
} else {
|
||||||
|
await this.downloadBlob(noSave);
|
||||||
|
}
|
||||||
|
await downloadDone(this.id, this.dlToken);
|
||||||
|
storage.setDownloadToken(this.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/* global AUTH_CONFIG */
|
/* global AUTH_CONFIG */
|
||||||
import { arrayToB64, b64ToArray } from './utils';
|
import { arrayToB64, b64ToArray, concat } from './utils';
|
||||||
|
|
||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
const decoder = new TextDecoder();
|
const decoder = new TextDecoder();
|
||||||
|
@ -23,13 +23,6 @@ function getOtherInfo(enc) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
function concat(b1, b2) {
|
|
||||||
const result = new Uint8Array(b1.length + b2.length);
|
|
||||||
result.set(b1, 0);
|
|
||||||
result.set(b2, b1.length);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
async function concatKdf(key, enc) {
|
async function concatKdf(key, enc) {
|
||||||
if (key.length !== 32) {
|
if (key.length !== 32) {
|
||||||
throw new Error('unsupported key length');
|
throw new Error('unsupported key length');
|
||||||
|
|
76
app/main.css
76
app/main.css
|
@ -55,6 +55,12 @@ body {
|
||||||
@apply bg-blue-70;
|
@apply bg-blue-70;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn:disabled {
|
||||||
|
@apply bg-grey-transparent;
|
||||||
|
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
|
|
||||||
.checkbox {
|
.checkbox {
|
||||||
@apply leading-normal;
|
@apply leading-normal;
|
||||||
@apply select-none;
|
@apply select-none;
|
||||||
|
@ -138,21 +144,6 @@ footer li:hover {
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.feedback-link {
|
|
||||||
background-color: #000;
|
|
||||||
background-image: url('../assets/feedback.svg');
|
|
||||||
background-position: 0.125rem 0.25rem;
|
|
||||||
background-repeat: no-repeat;
|
|
||||||
background-size: 1.125rem;
|
|
||||||
color: #fff;
|
|
||||||
display: block;
|
|
||||||
font-size: 0.75rem;
|
|
||||||
line-height: 0.75rem;
|
|
||||||
padding: 0.375rem 0.375rem 0.375rem 1.25rem;
|
|
||||||
text-indent: 0.125rem;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.link-blue {
|
.link-blue {
|
||||||
@apply text-blue-60;
|
@apply text-blue-60;
|
||||||
}
|
}
|
||||||
|
@ -175,6 +166,10 @@ footer li:hover {
|
||||||
height: unset;
|
height: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dl-bg {
|
||||||
|
filter: grayscale(1) opacity(0.15);
|
||||||
|
}
|
||||||
|
|
||||||
.main {
|
.main {
|
||||||
display: flex;
|
display: flex;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -296,7 +291,7 @@ select {
|
||||||
@apply m-auto;
|
@apply m-auto;
|
||||||
@apply py-8;
|
@apply py-8;
|
||||||
|
|
||||||
min-height: 36rem;
|
min-height: 42rem;
|
||||||
max-height: 42rem;
|
max-height: 42rem;
|
||||||
width: calc(100% - 3rem);
|
width: calc(100% - 3rem);
|
||||||
}
|
}
|
||||||
|
@ -322,6 +317,10 @@ select {
|
||||||
@apply bg-blue-50;
|
@apply bg-blue-50;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.btn:disabled {
|
||||||
|
@apply bg-grey-80;
|
||||||
|
}
|
||||||
|
|
||||||
.link-blue {
|
.link-blue {
|
||||||
@apply text-blue-40;
|
@apply text-blue-40;
|
||||||
}
|
}
|
||||||
|
@ -392,48 +391,3 @@ select {
|
||||||
.signin:hover:active {
|
.signin:hover:active {
|
||||||
transform: scale(0.9375);
|
transform: scale(0.9375);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* begin signin button color experiment */
|
|
||||||
|
|
||||||
.white-blue {
|
|
||||||
@apply border-blue-60;
|
|
||||||
@apply border-2;
|
|
||||||
@apply text-blue-60;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-blue:hover,
|
|
||||||
.white-blue:focus {
|
|
||||||
@apply bg-blue-60;
|
|
||||||
@apply text-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.blue {
|
|
||||||
@apply bg-blue-60;
|
|
||||||
@apply text-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-violet {
|
|
||||||
@apply border-violet;
|
|
||||||
@apply border-2;
|
|
||||||
@apply text-violet;
|
|
||||||
}
|
|
||||||
|
|
||||||
.white-violet:hover,
|
|
||||||
.white-violet:focus {
|
|
||||||
@apply bg-violet;
|
|
||||||
@apply text-white;
|
|
||||||
|
|
||||||
background-image: var(--violet-gradient);
|
|
||||||
}
|
|
||||||
|
|
||||||
.violet {
|
|
||||||
@apply bg-violet;
|
|
||||||
@apply text-white;
|
|
||||||
}
|
|
||||||
|
|
||||||
.violet:hover,
|
|
||||||
.violet:focus {
|
|
||||||
background-image: var(--violet-gradient);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* end signin button color experiment */
|
|
||||||
|
|
|
@ -13,7 +13,11 @@ module.exports = function(app = choo({ hash: true })) {
|
||||||
app.route('/oauth', function(state, emit) {
|
app.route('/oauth', function(state, emit) {
|
||||||
emit('authenticate', state.query.code, state.query.state);
|
emit('authenticate', state.query.code, state.query.state);
|
||||||
});
|
});
|
||||||
app.route('/login', body(require('./ui/home')));
|
app.route('/login', function(state, emit) {
|
||||||
|
emit('replaceState', '/');
|
||||||
|
setTimeout(() => emit('render'));
|
||||||
|
});
|
||||||
|
app.route('/report', body(require('./ui/report')));
|
||||||
app.route('*', body(require('./ui/notFound')));
|
app.route('*', body(require('./ui/notFound')));
|
||||||
return app;
|
return app;
|
||||||
};
|
};
|
||||||
|
|
|
@ -9,7 +9,7 @@ import contentDisposition from 'content-disposition';
|
||||||
let noSave = false;
|
let noSave = false;
|
||||||
const map = new Map();
|
const map = new Map();
|
||||||
const IMAGES = /.*\.(png|svg|jpg)$/;
|
const IMAGES = /.*\.(png|svg|jpg)$/;
|
||||||
const VERSIONED_ASSET = /\.[A-Fa-f0-9]{8}\.(js|css|png|svg|jpg)$/;
|
const VERSIONED_ASSET = /\.[A-Fa-f0-9]{8}\.(js|css|png|svg|jpg)(#\w+)?$/;
|
||||||
const DOWNLOAD_URL = /\/api\/download\/([A-Fa-f0-9]{4,})/;
|
const DOWNLOAD_URL = /\/api\/download\/([A-Fa-f0-9]{4,})/;
|
||||||
const FONT = /\.woff2?$/;
|
const FONT = /\.woff2?$/;
|
||||||
|
|
||||||
|
@ -34,7 +34,7 @@ async function decryptStream(id) {
|
||||||
keychain.setPassword(file.password, file.url);
|
keychain.setPassword(file.password, file.url);
|
||||||
}
|
}
|
||||||
|
|
||||||
file.download = downloadStream(id, keychain);
|
file.download = downloadStream(id, file.dlToken);
|
||||||
|
|
||||||
const body = await file.download.result;
|
const body = await file.download.result;
|
||||||
|
|
||||||
|
@ -146,6 +146,7 @@ self.onmessage = event => {
|
||||||
type: event.data.type,
|
type: event.data.type,
|
||||||
manifest: event.data.manifest,
|
manifest: event.data.manifest,
|
||||||
size: event.data.size,
|
size: event.data.size,
|
||||||
|
dlToken: event.data.dlToken,
|
||||||
progress: 0
|
progress: 0
|
||||||
};
|
};
|
||||||
map.set(event.data.id, info);
|
map.set(event.data.id, info);
|
||||||
|
|
|
@ -35,6 +35,7 @@ class Storage {
|
||||||
this.engine = new Mem();
|
this.engine = new Mem();
|
||||||
}
|
}
|
||||||
this._files = this.loadFiles();
|
this._files = this.loadFiles();
|
||||||
|
this.pruneTokens();
|
||||||
}
|
}
|
||||||
|
|
||||||
loadFiles() {
|
loadFiles() {
|
||||||
|
@ -180,6 +181,48 @@ class Storage {
|
||||||
downloadCount
|
downloadCount
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setDownloadToken(id, token) {
|
||||||
|
let otherTokens = {};
|
||||||
|
try {
|
||||||
|
otherTokens = JSON.parse(this.get('dlTokens'));
|
||||||
|
} catch (e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
if (token) {
|
||||||
|
const record = { token, ts: Date.now() };
|
||||||
|
this.set('dlTokens', JSON.stringify({ ...otherTokens, [id]: record }));
|
||||||
|
} else {
|
||||||
|
this.set('dlTokens', JSON.stringify({ ...otherTokens, [id]: undefined }));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
getDownloadToken(id) {
|
||||||
|
try {
|
||||||
|
return JSON.parse(this.get('dlTokens'))[id].token;
|
||||||
|
} catch (e) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
pruneTokens() {
|
||||||
|
try {
|
||||||
|
const now = Date.now();
|
||||||
|
const tokens = JSON.parse(this.get('dlTokens'));
|
||||||
|
const keep = {};
|
||||||
|
for (const id of Object.keys(tokens)) {
|
||||||
|
const t = tokens[id];
|
||||||
|
if (t.ts > now - 7 * 86400 * 1000) {
|
||||||
|
keep[id] = t;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (Object.keys(keep).length < Object.keys(tokens).length) {
|
||||||
|
this.set('dlTokens', JSON.stringify(keep));
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default new Storage();
|
export default new Storage();
|
||||||
|
|
|
@ -54,12 +54,17 @@ class Account extends Component {
|
||||||
createElement() {
|
createElement() {
|
||||||
if (!this.enabled) {
|
if (!this.enabled) {
|
||||||
return html`
|
return html`
|
||||||
<div></div>
|
<send-account></send-account>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
const user = this.state.user;
|
const user = this.state.user;
|
||||||
const translate = this.state.translate;
|
const translate = this.state.translate;
|
||||||
this.setLocal();
|
this.setLocal();
|
||||||
|
if (user.loginRequired && !this.local.loggedIn) {
|
||||||
|
return html`
|
||||||
|
<send-account></send-account>
|
||||||
|
`;
|
||||||
|
}
|
||||||
if (!this.local.loggedIn) {
|
if (!this.local.loggedIn) {
|
||||||
return html`
|
return html`
|
||||||
<send-account>
|
<send-account>
|
||||||
|
|
|
@ -30,6 +30,12 @@ function password(state) {
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
<div class="mb-2 px-1">
|
<div class="mb-2 px-1">
|
||||||
|
<input
|
||||||
|
id="autocomplete-decoy"
|
||||||
|
class="hidden"
|
||||||
|
type="password"
|
||||||
|
value="lol"
|
||||||
|
/>
|
||||||
<div class="checkbox inline-block mr-3">
|
<div class="checkbox inline-block mr-3">
|
||||||
<input
|
<input
|
||||||
id="add-password"
|
id="add-password"
|
||||||
|
@ -482,6 +488,11 @@ module.exports.empty = function(state, emit) {
|
||||||
>
|
>
|
||||||
${state.translate('addFilesButton')}
|
${state.translate('addFilesButton')}
|
||||||
</label>
|
</label>
|
||||||
|
<p
|
||||||
|
class="font-normal text-sm text-grey-50 dark:text-grey-40 my-6 mx-12 text-center max-w-sm leading-loose"
|
||||||
|
>
|
||||||
|
${state.translate('trustWarningMessage')}
|
||||||
|
</p>
|
||||||
${upsell}
|
${upsell}
|
||||||
</send-upload-area>
|
</send-upload-area>
|
||||||
`;
|
`;
|
||||||
|
@ -517,13 +528,27 @@ module.exports.preview = function(state, emit) {
|
||||||
`;
|
`;
|
||||||
return html`
|
return html`
|
||||||
<send-archive
|
<send-archive
|
||||||
class="flex flex-col max-h-full bg-white p-4 w-full md:w-128 dark:bg-grey-90"
|
class="flex flex-col max-h-full bg-white w-full dark:bg-grey-90"
|
||||||
>
|
>
|
||||||
<div class="border rounded py-3 px-6 dark:border-grey-70">
|
<div class="border rounded py-3 px-4 dark:border-grey-70">
|
||||||
${archiveInfo(archive)} ${details}
|
${archiveInfo(archive)} ${details}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="checkbox inline-block mt-6 mx-auto">
|
||||||
|
<input
|
||||||
|
id="trust-download"
|
||||||
|
type="checkbox"
|
||||||
|
autocomplete="off"
|
||||||
|
onchange="${toggleDownloadEnabled}"
|
||||||
|
/>
|
||||||
|
<label for="trust-download">
|
||||||
|
${state.translate('downloadTrustCheckbox', {
|
||||||
|
count: archive.manifest.files.length
|
||||||
|
})}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
<button
|
<button
|
||||||
id="download-btn"
|
id="download-btn"
|
||||||
|
disabled
|
||||||
class="btn rounded-lg mt-4 w-full flex-shrink-0 focus:outline"
|
class="btn rounded-lg mt-4 w-full flex-shrink-0 focus:outline"
|
||||||
title="${state.translate('downloadButtonLabel')}"
|
title="${state.translate('downloadButtonLabel')}"
|
||||||
onclick=${download}
|
onclick=${download}
|
||||||
|
@ -533,6 +558,13 @@ module.exports.preview = function(state, emit) {
|
||||||
</send-archive>
|
</send-archive>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
function toggleDownloadEnabled(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
const checked = event.target.checked;
|
||||||
|
const btn = document.getElementById('download-btn');
|
||||||
|
btn.disabled = !checked;
|
||||||
|
}
|
||||||
|
|
||||||
function download(event) {
|
function download(event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.target.disabled = true;
|
event.target.disabled = true;
|
||||||
|
|
|
@ -10,11 +10,9 @@ module.exports = function(name, url) {
|
||||||
<h1 class="text-3xl font-bold my-4">
|
<h1 class="text-3xl font-bold my-4">
|
||||||
${state.translate('notifyUploadEncryptDone')}
|
${state.translate('notifyUploadEncryptDone')}
|
||||||
</h1>
|
</h1>
|
||||||
<p
|
<p class="font-normal leading-normal text-grey-80 dark:text-grey-40">
|
||||||
class="font-normal leading-normal text-grey-80 word-break-all dark:text-grey-40"
|
|
||||||
>
|
|
||||||
${state.translate('copyLinkDescription')} <br />
|
${state.translate('copyLinkDescription')} <br />
|
||||||
${name}
|
<span class="word-break-all">${name}</span>
|
||||||
</p>
|
</p>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
/* global downloadMetadata */
|
/* global downloadMetadata */
|
||||||
const html = require('choo/html');
|
const html = require('choo/html');
|
||||||
|
const assets = require('../../common/assets');
|
||||||
const archiveTile = require('./archiveTile');
|
const archiveTile = require('./archiveTile');
|
||||||
const modal = require('./modal');
|
const modal = require('./modal');
|
||||||
const noStreams = require('./noStreams');
|
const noStreams = require('./noStreams');
|
||||||
|
@ -31,22 +32,51 @@ function downloading(state, emit) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function preview(state, emit) {
|
function preview(state, emit) {
|
||||||
|
if (state.fileInfo.flagged) {
|
||||||
|
return html`
|
||||||
|
<div
|
||||||
|
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
|
||||||
|
>
|
||||||
|
<h1 class="text-xl font-bold">${state.translate('downloadFlagged')}</h1>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
if (!state.capabilities.streamDownload && state.fileInfo.size > BIG_SIZE) {
|
if (!state.capabilities.streamDownload && state.fileInfo.size > BIG_SIZE) {
|
||||||
return noStreams(state, emit);
|
return noStreams(state, emit);
|
||||||
}
|
}
|
||||||
return html`
|
return html`
|
||||||
<div
|
<div class="w-full md:flex md:flex-row items-stretch md:flex-1">
|
||||||
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
|
<div
|
||||||
>
|
class="px-2 w-full md:px-0 flex-half md:flex md:flex-col mt-12 md:pr-8 pb-4"
|
||||||
<h1 class="text-3xl font-bold mb-4">
|
|
||||||
${state.translate('downloadTitle')}
|
|
||||||
</h1>
|
|
||||||
<p
|
|
||||||
class="w-full text-grey-80 text-center leading-normal dark:text-grey-40"
|
|
||||||
>
|
>
|
||||||
${state.translate('downloadDescription')}
|
<h1 class="text-3xl font-bold mb-4 text-center md:text-left">
|
||||||
</p>
|
${state.translate('downloadTitle')}
|
||||||
${archiveTile.preview(state, emit)}
|
</h1>
|
||||||
|
<p
|
||||||
|
class="text-grey-80 leading-normal dark:text-grey-40 mb-4 text-center md:text-left"
|
||||||
|
>
|
||||||
|
${state.translate('downloadDescription')}
|
||||||
|
</p>
|
||||||
|
<p
|
||||||
|
class="text-grey-80 leading-normal dark:text-grey-40 font-semibold text-center md:mb-8 md:text-left"
|
||||||
|
>
|
||||||
|
${state.translate('downloadConfirmDescription')}
|
||||||
|
</p>
|
||||||
|
<img
|
||||||
|
class="hidden md:block dl-bg w-full"
|
||||||
|
src="${assets.get('intro.svg')}"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="w-full flex-half flex-half md:flex md:flex-col md:justify-center"
|
||||||
|
>
|
||||||
|
${archiveTile.preview(state, emit)}
|
||||||
|
<a href="/report" class="link-blue mt-4 text-center block"
|
||||||
|
>${state.translate('reportFile', {
|
||||||
|
count: state.fileInfo.manifest.files.length
|
||||||
|
})}</a
|
||||||
|
>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
@ -55,9 +85,17 @@ module.exports = function(state, emit) {
|
||||||
let content = '';
|
let content = '';
|
||||||
if (!state.fileInfo) {
|
if (!state.fileInfo) {
|
||||||
state.fileInfo = createFileInfo(state);
|
state.fileInfo = createFileInfo(state);
|
||||||
if (!state.fileInfo.nonce) {
|
if (downloadMetadata.status === 404) {
|
||||||
return notFound(state);
|
return notFound(state);
|
||||||
}
|
}
|
||||||
|
if (!state.fileInfo.nonce) {
|
||||||
|
// coming from something like the browser back button
|
||||||
|
return location.reload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (state.fileInfo.dead) {
|
||||||
|
return notFound(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!state.transfer && !state.fileInfo.requiresPassword) {
|
if (!state.transfer && !state.fileInfo.requiresPassword) {
|
||||||
|
@ -83,7 +121,7 @@ module.exports = function(state, emit) {
|
||||||
<main class="main">
|
<main class="main">
|
||||||
${state.modal && modal(state, emit)}
|
${state.modal && modal(state, emit)}
|
||||||
<section
|
<section
|
||||||
class="relative h-full w-full p-6 md:p-8 md:rounded-xl md:shadow-big"
|
class="relative overflow-hidden h-full w-full p-6 md:p-8 md:rounded-xl md:shadow-big md:flex md:flex-col"
|
||||||
>
|
>
|
||||||
${content}
|
${content}
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -2,6 +2,7 @@ const html = require('choo/html');
|
||||||
const assets = require('../../common/assets');
|
const assets = require('../../common/assets');
|
||||||
|
|
||||||
module.exports = function(state) {
|
module.exports = function(state) {
|
||||||
|
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
|
||||||
return html`
|
return html`
|
||||||
<div
|
<div
|
||||||
id="download-complete"
|
id="download-complete"
|
||||||
|
@ -10,15 +11,23 @@ module.exports = function(state) {
|
||||||
<h1 class="text-center text-3xl font-bold my-2">
|
<h1 class="text-center text-3xl font-bold my-2">
|
||||||
${state.translate('downloadFinish')}
|
${state.translate('downloadFinish')}
|
||||||
</h1>
|
</h1>
|
||||||
<img src="${assets.get('completed.svg')}" class="my-12 h-48" />
|
<img src="${assets.get('completed.svg')}" class="my-8 h-48" />
|
||||||
<p class="text-grey-80 leading-normal dark:text-grey-40">
|
<p
|
||||||
|
class="text-grey-80 leading-normal dark:text-grey-40 ${state.user
|
||||||
|
.loggedIn
|
||||||
|
? 'hidden'
|
||||||
|
: ''}"
|
||||||
|
>
|
||||||
${state.translate('trySendDescription')}
|
${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"
|
||||||
>${state.translate('sendYourFilesLink')}</a
|
>${state.translate(btnText)}</a
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
|
<p class="">
|
||||||
|
<a href="/report" class="link-blue">${state.translate('reportFile')}</a>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
};
|
};
|
||||||
|
|
|
@ -0,0 +1,58 @@
|
||||||
|
const html = require('choo/html');
|
||||||
|
|
||||||
|
module.exports = function() {
|
||||||
|
return function(state, emit, close) {
|
||||||
|
const archive = state.fileInfo;
|
||||||
|
return html`
|
||||||
|
<send-download-dialog
|
||||||
|
class="flex flex-col w-full max-w-sm h-full mx-auto items-center justify-center"
|
||||||
|
>
|
||||||
|
<h1 class="text-3xl font-bold mb-4">
|
||||||
|
${state.translate('downloadConfirmTitle')}
|
||||||
|
</h1>
|
||||||
|
<p
|
||||||
|
class="w-full text-grey-80 text-center leading-normal dark:text-grey-40 mb-8"
|
||||||
|
>
|
||||||
|
${state.translate('downloadConfirmDescription')}
|
||||||
|
</p>
|
||||||
|
<div class="checkbox inline-block mr-3 mb-8">
|
||||||
|
<input
|
||||||
|
id="trust-download"
|
||||||
|
type="checkbox"
|
||||||
|
autocomplete="off"
|
||||||
|
onchange="${toggleDownloadEnabled}"
|
||||||
|
/>
|
||||||
|
<label for="trust-download">
|
||||||
|
${state.translate('downloadTrustCheckbox')}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<button
|
||||||
|
id="download-btn"
|
||||||
|
disabled
|
||||||
|
class="btn rounded-lg w-full flex-shrink-0"
|
||||||
|
onclick="${download}"
|
||||||
|
title="${state.translate('downloadButtonLabel')}"
|
||||||
|
>
|
||||||
|
${state.translate('downloadButtonLabel')}
|
||||||
|
</button>
|
||||||
|
<a href="/report" class="link-blue mt-8"
|
||||||
|
>${state.translate('reportFile')}</a
|
||||||
|
>
|
||||||
|
</send-download-dialog>
|
||||||
|
`;
|
||||||
|
|
||||||
|
function toggleDownloadEnabled(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
const checked = event.target.checked;
|
||||||
|
const btn = document.getElementById('download-btn');
|
||||||
|
btn.disabled = !checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
function download(event) {
|
||||||
|
event.preventDefault();
|
||||||
|
close();
|
||||||
|
event.target.disabled = true;
|
||||||
|
emit('download', archive);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
|
@ -21,6 +21,12 @@ module.exports = function(state, emit) {
|
||||||
onsubmit="${checkPassword}"
|
onsubmit="${checkPassword}"
|
||||||
data-no-csrf
|
data-no-csrf
|
||||||
>
|
>
|
||||||
|
<input
|
||||||
|
id="autocomplete-decoy"
|
||||||
|
class="hidden"
|
||||||
|
type="password"
|
||||||
|
value="lol"
|
||||||
|
/>
|
||||||
<input
|
<input
|
||||||
id="password-input"
|
id="password-input"
|
||||||
class="w-full border-l border-t border-b rounded-l-lg rounded-r-none ${invalid
|
class="w-full border-l border-t border-b rounded-l-lg rounded-r-none ${invalid
|
||||||
|
@ -63,8 +69,13 @@ module.exports = function(state, emit) {
|
||||||
const input = document.getElementById('password-input');
|
const input = document.getElementById('password-input');
|
||||||
const btn = document.getElementById('password-btn');
|
const btn = document.getElementById('password-btn');
|
||||||
label.classList.add('invisible');
|
label.classList.add('invisible');
|
||||||
input.classList.remove('border-red');
|
input.classList.remove('border-red', 'dark:border-red-40');
|
||||||
btn.classList.remove('bg-red', 'hover:bg-red', 'focus:bg-red');
|
btn.classList.remove(
|
||||||
|
'bg-red',
|
||||||
|
'hover:bg-red',
|
||||||
|
'focus:bg-red',
|
||||||
|
'dark:bg-red-40'
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkPassword(event) {
|
function checkPassword(event) {
|
||||||
|
|
|
@ -3,6 +3,7 @@ const assets = require('../../common/assets');
|
||||||
const modal = require('./modal');
|
const modal = require('./modal');
|
||||||
|
|
||||||
module.exports = function(state, emit) {
|
module.exports = function(state, emit) {
|
||||||
|
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
|
||||||
return html`
|
return html`
|
||||||
<main class="main">
|
<main class="main">
|
||||||
${state.modal && modal(state, emit)}
|
${state.modal && modal(state, emit)}
|
||||||
|
@ -13,12 +14,17 @@ module.exports = function(state, emit) {
|
||||||
${state.translate('errorPageHeader')}
|
${state.translate('errorPageHeader')}
|
||||||
</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-80 leading-normal">
|
<p
|
||||||
|
class="max-w-md text-center text-grey-80 leading-normal dark:text-grey-40 ${state
|
||||||
|
.user.loggedIn
|
||||||
|
? 'hidden'
|
||||||
|
: ''}"
|
||||||
|
>
|
||||||
${state.translate('trySendDescription')}
|
${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"
|
||||||
>${state.translate('sendYourFilesLink')}</a
|
>${state.translate(btnText)}</a
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
const html = require('choo/html');
|
const html = require('choo/html');
|
||||||
const Component = require('choo/component');
|
const Component = require('choo/component');
|
||||||
const version = require('../../package.json').version;
|
|
||||||
const { browserName } = require('../utils');
|
|
||||||
|
|
||||||
class Footer extends Component {
|
class Footer extends Component {
|
||||||
constructor(name, state) {
|
constructor(name, state) {
|
||||||
|
@ -15,8 +13,6 @@ class Footer extends Component {
|
||||||
|
|
||||||
createElement() {
|
createElement() {
|
||||||
const translate = this.state.translate;
|
const translate = this.state.translate;
|
||||||
const browser = browserName();
|
|
||||||
const feedbackUrl = `https://qsurvey.mozilla.com/s3/Firefox-Send-Product-Feedback?ver=${version}&browser=${browser}`;
|
|
||||||
return html`
|
return html`
|
||||||
<footer
|
<footer
|
||||||
class="flex flex-col md:flex-row items-start w-full flex-none self-start p-6 md:p-8 font-medium text-xs text-grey-60 dark:text-grey-40 md:items-center justify-between"
|
class="flex flex-col md:flex-row items-start w-full flex-none self-start p-6 md:p-8 font-medium text-xs text-grey-60 dark:text-grey-40 md:items-center justify-between"
|
||||||
|
@ -43,17 +39,6 @@ class Footer extends Component {
|
||||||
<li class="m-2">
|
<li class="m-2">
|
||||||
<a href="https://github.com/mozilla/send">GitHub </a>
|
<a href="https://github.com/mozilla/send">GitHub </a>
|
||||||
</li>
|
</li>
|
||||||
<li class="m-2">
|
|
||||||
<a
|
|
||||||
href="${feedbackUrl}"
|
|
||||||
rel="noreferrer noopener"
|
|
||||||
class="feedback-link"
|
|
||||||
alt="Feedback"
|
|
||||||
target="_blank"
|
|
||||||
>
|
|
||||||
${translate('siteFeedback')}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</footer>
|
</footer>
|
||||||
`;
|
`;
|
||||||
|
|
|
@ -33,7 +33,7 @@ class Header extends Component {
|
||||||
alt="${this.state.translate('title')}"
|
alt="${this.state.translate('title')}"
|
||||||
src="${assets.get('icon.svg')}"
|
src="${assets.get('icon.svg')}"
|
||||||
/>
|
/>
|
||||||
<svg class="w-48 md:w-64">
|
<svg viewBox="66 0 340 64" class="w-48 md:w-64">
|
||||||
<use xlink:href="${assets.get('wordmark.svg')}#logo" />
|
<use xlink:href="${assets.get('wordmark.svg')}#logo" />
|
||||||
</svg>
|
</svg>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -5,6 +5,9 @@ const modal = require('./modal');
|
||||||
const intro = require('./intro');
|
const intro = require('./intro');
|
||||||
|
|
||||||
module.exports = function(state, emit) {
|
module.exports = function(state, emit) {
|
||||||
|
if (state.user.loginRequired && !state.user.loggedIn) {
|
||||||
|
emit('signup-cta', 'required');
|
||||||
|
}
|
||||||
const archives = state.storage.files
|
const archives = state.storage.files
|
||||||
.filter(archive => !archive.expired)
|
.filter(archive => !archive.expired)
|
||||||
.map(archive => archiveTile(state, emit, archive));
|
.map(archive => archiveTile(state, emit, archive));
|
||||||
|
|
|
@ -2,6 +2,7 @@ const html = require('choo/html');
|
||||||
const modal = require('./modal');
|
const modal = require('./modal');
|
||||||
|
|
||||||
module.exports = function(state, emit) {
|
module.exports = function(state, emit) {
|
||||||
|
state.modal = null;
|
||||||
return html`
|
return html`
|
||||||
<main class="main">
|
<main class="main">
|
||||||
${state.modal && modal(state, emit)}
|
${state.modal && modal(state, emit)}
|
||||||
|
|
|
@ -6,7 +6,7 @@ module.exports = function(state, emit) {
|
||||||
class="absolute inset-0 flex items-center justify-center overflow-hidden z-40 bg-white md:rounded-xl md:my-8 dark:bg-grey-90"
|
class="absolute inset-0 flex items-center justify-center overflow-hidden z-40 bg-white md:rounded-xl md:my-8 dark:bg-grey-90"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="h-full w-full max-h-screen absolute top-0 flex items-center justify-center"
|
class="h-full w-full max-h-screen absolute top-0 flex justify-center md:items-center"
|
||||||
>
|
>
|
||||||
<div class="w-full">
|
<div class="w-full">
|
||||||
${state.modal(state, emit, close)}
|
${state.modal(state, emit, close)}
|
||||||
|
|
|
@ -19,9 +19,9 @@ module.exports = function(state, emit) {
|
||||||
<form class="md:w-128" onsubmit=${submit}>
|
<form class="md:w-128" onsubmit=${submit}>
|
||||||
<fieldset class="border rounded p-4 my-4" onchange=${optionChanged}>
|
<fieldset class="border rounded p-4 my-4" onchange=${optionChanged}>
|
||||||
<div class="flex items-center mb-2">
|
<div class="flex items-center mb-2">
|
||||||
<img class="mr-3 flex-shrink-0" src="${assets.get(
|
<svg class="h-8 w-6 mr-3 flex-shrink-0 text-white dark:text-grey-90">
|
||||||
'blue_file.svg'
|
<use xlink:href="${assets.get('blue_file.svg')}#icon"/>
|
||||||
)}"/>
|
</svg>
|
||||||
<p class="flex-grow">
|
<p class="flex-grow">
|
||||||
<h1 class="text-base font-medium word-break-all">${
|
<h1 class="text-base font-medium word-break-all">${
|
||||||
archive.name
|
archive.name
|
||||||
|
@ -55,6 +55,11 @@ module.exports = function(state, emit) {
|
||||||
value="${state.translate('copyLinkButton')}"
|
value="${state.translate('copyLinkButton')}"
|
||||||
title="${state.translate('copyLinkButton')}"
|
title="${state.translate('copyLinkButton')}"
|
||||||
type="submit" />
|
type="submit" />
|
||||||
|
<p
|
||||||
|
class="text-grey-80 leading-normal dark:text-grey-40 font-semibold text-center md:my-8 md:text-left"
|
||||||
|
>
|
||||||
|
${state.translate('downloadConfirmDescription')}
|
||||||
|
</p>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
@ -64,6 +69,7 @@ module.exports = function(state, emit) {
|
||||||
const choice = event.target.value;
|
const choice = event.target.value;
|
||||||
const button = event.currentTarget.nextElementSibling;
|
const button = event.currentTarget.nextElementSibling;
|
||||||
let title = button.title;
|
let title = button.title;
|
||||||
|
console.error(choice, title);
|
||||||
switch (choice) {
|
switch (choice) {
|
||||||
case 'copy':
|
case 'copy':
|
||||||
title = state.translate('copyLinkButton');
|
title = state.translate('copyLinkButton');
|
||||||
|
|
|
@ -3,6 +3,7 @@ const assets = require('../../common/assets');
|
||||||
const modal = require('./modal');
|
const modal = require('./modal');
|
||||||
|
|
||||||
module.exports = function(state, emit) {
|
module.exports = function(state, emit) {
|
||||||
|
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
|
||||||
return html`
|
return html`
|
||||||
<main class="main">
|
<main class="main">
|
||||||
${state.modal && modal(state, emit)}
|
${state.modal && modal(state, emit)}
|
||||||
|
@ -13,12 +14,22 @@ module.exports = function(state, emit) {
|
||||||
${state.translate('expiredTitle')}
|
${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-80 leading-normal">
|
<p
|
||||||
|
class="max-w-md text-center text-grey-80 leading-normal dark:text-grey-40 ${state
|
||||||
|
.user.loggedIn
|
||||||
|
? 'hidden'
|
||||||
|
: ''}"
|
||||||
|
>
|
||||||
${state.translate('trySendDescription')}
|
${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"
|
||||||
>${state.translate('sendYourFilesLink')}</a
|
>${state.translate(btnText)}</a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
<p class="">
|
||||||
|
<a href="/report" class="link-blue"
|
||||||
|
>${state.translate('reportFile')}</a
|
||||||
>
|
>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
|
@ -0,0 +1,139 @@
|
||||||
|
const html = require('choo/html');
|
||||||
|
const raw = require('choo/html/raw');
|
||||||
|
const assets = require('../../common/assets');
|
||||||
|
|
||||||
|
const REPORTABLES = ['Malware', 'Pii', 'Abuse'];
|
||||||
|
|
||||||
|
module.exports = function(state, emit) {
|
||||||
|
let submitting = false;
|
||||||
|
const file = state.fileInfo;
|
||||||
|
if (!file) {
|
||||||
|
return html`
|
||||||
|
<main class="main">
|
||||||
|
<section
|
||||||
|
class="flex flex-col items-center justify-center h-full w-full p-6 md:p-8 overflow-hidden md:rounded-xl md:shadow-big"
|
||||||
|
>
|
||||||
|
<p class="text-xl text-center mb-4 leading-normal">
|
||||||
|
${state.translate('reportUnknownDescription')}
|
||||||
|
</p>
|
||||||
|
<p class="text-center">
|
||||||
|
${raw(
|
||||||
|
replaceLinks(state.translate('reportReasonCopyright'), [
|
||||||
|
'https://www.mozilla.org/about/legal/report-infringement/'
|
||||||
|
])
|
||||||
|
)}
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
if (file.reported) {
|
||||||
|
return html`
|
||||||
|
<main class="main">
|
||||||
|
<section
|
||||||
|
class="flex flex-col items-center justify-center h-full w-full p-6 md:p-8 overflow-hidden md:rounded-xl md:shadow-big"
|
||||||
|
>
|
||||||
|
<h1 class="text-center text-3xl font-bold my-2">
|
||||||
|
${state.translate('reportedTitle')}
|
||||||
|
</h1>
|
||||||
|
<p class="max-w-md text-center leading-normal">
|
||||||
|
${state.translate('reportedDescription')}
|
||||||
|
</p>
|
||||||
|
<img src="${assets.get('notFound.svg')}" class="my-12" />
|
||||||
|
<p class="my-5">
|
||||||
|
<a href="/" class="btn rounded-lg flex items-center" role="button"
|
||||||
|
>${state.translate('okButton')}</a
|
||||||
|
>
|
||||||
|
</p>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
return html`
|
||||||
|
<main class="main">
|
||||||
|
<section
|
||||||
|
class="relative h-full w-full p-6 md:p-8 md:rounded-xl md:shadow-big"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="flex flex-col w-full max-w-sm h-full mx-auto items-center justify-center"
|
||||||
|
>
|
||||||
|
<h1 class="text-2xl font-bold mb-4">
|
||||||
|
${state.translate('reportFile')}
|
||||||
|
</h1>
|
||||||
|
<p class="mb-4 leading-normal font-semibold">
|
||||||
|
${state.translate('reportDescription')}
|
||||||
|
</p>
|
||||||
|
<form onsubmit="${report}" data-no-csrf>
|
||||||
|
<fieldset onchange="${optionChanged}">
|
||||||
|
<ul
|
||||||
|
class="list-none p-4 mb-6 rounded-sm bg-grey-10 dark:bg-black"
|
||||||
|
>
|
||||||
|
${REPORTABLES.map(
|
||||||
|
reportable =>
|
||||||
|
html`
|
||||||
|
<li class="mb-2 leading-normal">
|
||||||
|
<label
|
||||||
|
for="${reportable.toLowerCase()}"
|
||||||
|
class="flex items-center"
|
||||||
|
>
|
||||||
|
<input
|
||||||
|
type="radio"
|
||||||
|
name="reason"
|
||||||
|
id="${reportable.toLowerCase()}"
|
||||||
|
value="${reportable.toLowerCase()}"
|
||||||
|
class="mr-2 my-2 w-4 h-4 flex-none"
|
||||||
|
/>
|
||||||
|
${state.translate(`reportReason${reportable}`)}
|
||||||
|
</label>
|
||||||
|
</li>
|
||||||
|
`
|
||||||
|
)}
|
||||||
|
<li class="mt-4 mb-2 leading-normal">
|
||||||
|
${raw(
|
||||||
|
replaceLinks(state.translate('reportReasonCopyright'), [
|
||||||
|
'https://www.mozilla.org/about/legal/report-infringement/'
|
||||||
|
])
|
||||||
|
)}
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</fieldset>
|
||||||
|
<input
|
||||||
|
type="submit"
|
||||||
|
disabled
|
||||||
|
class="btn rounded-lg w-full flex-shrink-0 focus:outline"
|
||||||
|
title="${state.translate('reportButton')}"
|
||||||
|
value="${state.translate('reportButton')}"
|
||||||
|
/>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</main>
|
||||||
|
`;
|
||||||
|
|
||||||
|
function optionChanged(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
const button = event.currentTarget.nextElementSibling;
|
||||||
|
button.disabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
function report(event) {
|
||||||
|
event.stopPropagation();
|
||||||
|
event.preventDefault();
|
||||||
|
if (submitting) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
submitting = true;
|
||||||
|
state.fileInfo.reported = true;
|
||||||
|
const form = event.target;
|
||||||
|
emit('report', { reason: form.reason.value });
|
||||||
|
}
|
||||||
|
|
||||||
|
function replaceLinks(str, urls) {
|
||||||
|
let i = 0;
|
||||||
|
const s = str.replace(
|
||||||
|
/<a>([^<]+)<\/a>/g,
|
||||||
|
(m, v) => `<a class="text-blue" href="${urls[i++]}">${v}</a>`
|
||||||
|
);
|
||||||
|
return `<p>${s}</p>`;
|
||||||
|
}
|
||||||
|
};
|
|
@ -9,11 +9,9 @@ module.exports = function(name, url) {
|
||||||
<h1 class="text-3xl font-bold my-4">
|
<h1 class="text-3xl font-bold my-4">
|
||||||
${state.translate('notifyUploadEncryptDone')}
|
${state.translate('notifyUploadEncryptDone')}
|
||||||
</h1>
|
</h1>
|
||||||
<p
|
<p class="font-normal leading-normal text-grey-80 dark:text-grey-40">
|
||||||
class="font-normal leading-normal text-grey-80 word-break-all dark:text-grey-40"
|
|
||||||
>
|
|
||||||
${state.translate('shareLinkDescription')}<br />
|
${state.translate('shareLinkDescription')}<br />
|
||||||
${name}
|
<span class="word-break-all">${name}</span>
|
||||||
</p>
|
</p>
|
||||||
<input
|
<input
|
||||||
type="text"
|
type="text"
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
const html = require('choo/html');
|
const html = require('choo/html');
|
||||||
const assets = require('../../common/assets');
|
const assets = require('../../common/assets');
|
||||||
const { bytes, platform } = require('../utils');
|
const { bytes } = require('../utils');
|
||||||
const { canceledSignup, submittedSignup } = require('../metrics');
|
const { canceledSignup, submittedSignup } = require('../metrics');
|
||||||
|
|
||||||
module.exports = function(trigger) {
|
module.exports = function(trigger) {
|
||||||
return function(state, emit, close) {
|
return function(state, emit, close) {
|
||||||
const DAYS = Math.floor(state.LIMITS.MAX_EXPIRE_SECONDS / 86400);
|
const DAYS = Math.floor(state.LIMITS.MAX_EXPIRE_SECONDS / 86400);
|
||||||
const hidden = platform() === 'android' ? 'hidden' : '';
|
|
||||||
let submitting = false;
|
let submitting = false;
|
||||||
return html`
|
return html`
|
||||||
<send-signup-dialog
|
<send-signup-dialog
|
||||||
class="flex flex-col lg:flex-row justify-center px-8 md:px-24 w-full h-full"
|
class="flex flex-col justify-center my-16 md:my-0 px-8 md:px-24 w-full h-full"
|
||||||
>
|
>
|
||||||
<img src="${assets.get('master-logo.svg')}" class="h-16 mt-1 mb-4" />
|
<img src="${assets.get('master-logo.svg')}" class="h-16 mt-1 mb-4" />
|
||||||
<section
|
<section class="flex flex-col flex-shrink-0 self-center">
|
||||||
class="flex flex-col flex-shrink-0 self-center lg:mx-6 lg:max-w-xs"
|
<h1 class="text-3xl font-bold text-center">
|
||||||
>
|
|
||||||
<h1 class="text-3xl font-bold text-center lg:text-left">
|
|
||||||
${state.translate('accountBenefitTitle')}
|
${state.translate('accountBenefitTitle')}
|
||||||
</h1>
|
</h1>
|
||||||
<ul
|
<ul
|
||||||
|
@ -32,17 +29,14 @@ module.exports = function(trigger) {
|
||||||
${state.translate('accountBenefitTimeLimit', { 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 class="flex flex-col flex-grow m-4 md:self-center md:w-128">
|
||||||
class="flex flex-col flex-grow m-4 md:self-center md:w-128 lg:max-w-xs"
|
|
||||||
>
|
|
||||||
<form onsubmit=${submitEmail} data-no-csrf>
|
<form onsubmit=${submitEmail} data-no-csrf>
|
||||||
<input
|
<input
|
||||||
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-70 leading-loose dark:bg-grey-80 dark:text-white"
|
class="hidden border rounded-lg w-full px-2 py-1 h-12 mb-3 text-lg text-grey-70 leading-loose dark:bg-grey-80 dark:text-white"
|
||||||
placeholder=${state.translate('emailPlaceholder')}
|
placeholder=${state.translate('emailPlaceholder')}
|
||||||
/>
|
/>
|
||||||
<input
|
<input
|
||||||
|
@ -53,13 +47,17 @@ module.exports = function(trigger) {
|
||||||
type="submit"
|
type="submit"
|
||||||
/>
|
/>
|
||||||
</form>
|
</form>
|
||||||
<button
|
${state.user.loginRequired
|
||||||
class="my-3 link-blue font-medium"
|
? ''
|
||||||
title="${state.translate('deletePopupCancel')}"
|
: html`
|
||||||
onclick=${cancel}
|
<button
|
||||||
>
|
class="my-3 link-blue font-medium"
|
||||||
${state.translate('deletePopupCancel')}
|
title="${state.translate('deletePopupCancel')}"
|
||||||
</button>
|
onclick=${cancel}
|
||||||
|
>
|
||||||
|
${state.translate('deletePopupCancel')}
|
||||||
|
</button>
|
||||||
|
`}
|
||||||
</section>
|
</section>
|
||||||
</send-signup-dialog>
|
</send-signup-dialog>
|
||||||
`;
|
`;
|
||||||
|
|
83
app/user.js
83
app/user.js
|
@ -76,6 +76,10 @@ export default class User {
|
||||||
return this.info.access_token;
|
return this.info.access_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get refreshToken() {
|
||||||
|
return this.info.refresh_token;
|
||||||
|
}
|
||||||
|
|
||||||
get maxSize() {
|
get maxSize() {
|
||||||
return this.loggedIn
|
return this.loggedIn
|
||||||
? this.limits.MAX_FILE_SIZE
|
? this.limits.MAX_FILE_SIZE
|
||||||
|
@ -94,6 +98,10 @@ export default class User {
|
||||||
: this.limits.ANON.MAX_DOWNLOADS;
|
: this.limits.ANON.MAX_DOWNLOADS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
get loginRequired() {
|
||||||
|
return this.authConfig && this.authConfig.fxa_required;
|
||||||
|
}
|
||||||
|
|
||||||
async metricId() {
|
async metricId() {
|
||||||
return this.loggedIn ? hashId(this.info.uid) : undefined;
|
return this.loggedIn ? hashId(this.info.uid) : undefined;
|
||||||
}
|
}
|
||||||
|
@ -135,6 +143,7 @@ export default class User {
|
||||||
const code_challenge = await preparePkce(this.storage);
|
const code_challenge = await preparePkce(this.storage);
|
||||||
const options = {
|
const options = {
|
||||||
action: 'email',
|
action: 'email',
|
||||||
|
access_type: 'offline',
|
||||||
client_id: this.authConfig.client_id,
|
client_id: this.authConfig.client_id,
|
||||||
code_challenge,
|
code_challenge,
|
||||||
code_challenge_method: 'S256',
|
code_challenge_method: 'S256',
|
||||||
|
@ -192,12 +201,69 @@ export default class User {
|
||||||
});
|
});
|
||||||
const userInfo = await infoResponse.json();
|
const userInfo = await infoResponse.json();
|
||||||
userInfo.access_token = auth.access_token;
|
userInfo.access_token = auth.access_token;
|
||||||
|
userInfo.refresh_token = auth.refresh_token;
|
||||||
userInfo.fileListKey = await getFileListKey(this.storage, auth.keys_jwe);
|
userInfo.fileListKey = await getFileListKey(this.storage, auth.keys_jwe);
|
||||||
this.info = userInfo;
|
this.info = userInfo;
|
||||||
this.storage.remove('pkceVerifier');
|
this.storage.remove('pkceVerifier');
|
||||||
}
|
}
|
||||||
|
|
||||||
logout() {
|
async refresh() {
|
||||||
|
if (!this.refreshToken) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
const tokenResponse = await fetch(this.authConfig.token_endpoint, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
client_id: this.authConfig.client_id,
|
||||||
|
grant_type: 'refresh_token',
|
||||||
|
refresh_token: this.refreshToken
|
||||||
|
})
|
||||||
|
});
|
||||||
|
if (tokenResponse.ok) {
|
||||||
|
const auth = await tokenResponse.json();
|
||||||
|
const info = { ...this.info, access_token: auth.access_token };
|
||||||
|
this.info = info;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
}
|
||||||
|
await this.logout();
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
async logout() {
|
||||||
|
try {
|
||||||
|
if (this.refreshToken) {
|
||||||
|
await fetch(this.authConfig.revocation_endpoint, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
refresh_token: this.refreshToken
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (this.bearerToken) {
|
||||||
|
await fetch(this.authConfig.revocation_endpoint, {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
},
|
||||||
|
body: JSON.stringify({
|
||||||
|
token: this.bearerToken
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e);
|
||||||
|
// oh well, we tried
|
||||||
|
}
|
||||||
this.storage.clearLocalFiles();
|
this.storage.clearLocalFiles();
|
||||||
this.info = {};
|
this.info = {};
|
||||||
}
|
}
|
||||||
|
@ -211,6 +277,14 @@ export default class User {
|
||||||
const key = b64ToArray(this.info.fileListKey);
|
const key = b64ToArray(this.info.fileListKey);
|
||||||
const sha = await crypto.subtle.digest('SHA-256', key);
|
const sha = await crypto.subtle.digest('SHA-256', key);
|
||||||
const kid = arrayToB64(new Uint8Array(sha)).substring(0, 16);
|
const kid = arrayToB64(new Uint8Array(sha)).substring(0, 16);
|
||||||
|
const retry = async () => {
|
||||||
|
const refreshed = await this.refresh();
|
||||||
|
if (refreshed) {
|
||||||
|
return await this.syncFileList();
|
||||||
|
} else {
|
||||||
|
return { incoming: true };
|
||||||
|
}
|
||||||
|
};
|
||||||
try {
|
try {
|
||||||
const encrypted = await getFileList(this.bearerToken, kid);
|
const encrypted = await getFileList(this.bearerToken, kid);
|
||||||
const decrypted = await streamToArrayBuffer(
|
const decrypted = await streamToArrayBuffer(
|
||||||
|
@ -219,8 +293,7 @@ export default class User {
|
||||||
list = JSON.parse(textDecoder.decode(decrypted));
|
list = JSON.parse(textDecoder.decode(decrypted));
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (e.message === '401') {
|
if (e.message === '401') {
|
||||||
this.logout();
|
return retry(e);
|
||||||
return { incoming: true };
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
changes = await this.storage.merge(list);
|
changes = await this.storage.merge(list);
|
||||||
|
@ -236,7 +309,9 @@ export default class User {
|
||||||
);
|
);
|
||||||
await setFileList(this.bearerToken, kid, encrypted);
|
await setFileList(this.bearerToken, kid, encrypted);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
//
|
if (e.message === '401') {
|
||||||
|
return retry(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return changes;
|
return changes;
|
||||||
}
|
}
|
||||||
|
|
12
app/utils.js
12
app/utils.js
|
@ -142,12 +142,16 @@ function openLinksInNewTab(links, should = true) {
|
||||||
|
|
||||||
function browserName() {
|
function browserName() {
|
||||||
try {
|
try {
|
||||||
|
// order of these matters
|
||||||
if (/firefox/i.test(navigator.userAgent)) {
|
if (/firefox/i.test(navigator.userAgent)) {
|
||||||
return 'firefox';
|
return 'firefox';
|
||||||
}
|
}
|
||||||
if (/edge/i.test(navigator.userAgent)) {
|
if (/edge/i.test(navigator.userAgent)) {
|
||||||
return 'edge';
|
return 'edge';
|
||||||
}
|
}
|
||||||
|
if (/edg/i.test(navigator.userAgent)) {
|
||||||
|
return 'edgium';
|
||||||
|
}
|
||||||
if (/trident/i.test(navigator.userAgent)) {
|
if (/trident/i.test(navigator.userAgent)) {
|
||||||
return 'ie';
|
return 'ie';
|
||||||
}
|
}
|
||||||
|
@ -272,7 +276,15 @@ function setTranslate(t) {
|
||||||
translate = t;
|
translate = t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function concat(b1, b2) {
|
||||||
|
const result = new Uint8Array(b1.length + b2.length);
|
||||||
|
result.set(b1, 0);
|
||||||
|
result.set(b2, b1.length);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
concat,
|
||||||
locale,
|
locale,
|
||||||
fadeOut,
|
fadeOut,
|
||||||
delay,
|
delay,
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import crc32 from 'crc/crc32';
|
import crc32 from './crc32';
|
||||||
|
|
||||||
const encoder = new TextEncoder();
|
const encoder = new TextEncoder();
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||||
<symbol id="logo" viewBox="66 0 340 64">
|
<symbol id="logo">
|
||||||
<path d="M84,48h5.83V35.87H103.3V30.45H89.83V23.51H103.3V18H84Zm23.57,0h5.79V25.81h-5.79Zm2.88-32.12a3.46,3.46,0,0,0-2.59,1,3.62,3.62,0,0,0-1,2.65,3.57,3.57,0,0,0,1,2.59,3.52,3.52,0,0,0,2.61,1,3.46,3.46,0,0,0,3.65-3.26c0-.12,0-.23,0-.35a3.71,3.71,0,0,0-1-2.65,3.5,3.5,0,0,0-2.67-1Zm19.14,9.53a7.22,7.22,0,0,0-3.72.93,5.82,5.82,0,0,0-2.4,2.89V25.81h-5.59V48h5.63V36.29a5.27,5.27,0,0,1,1.31-4,4.94,4.94,0,0,1,3.49-1.21,6.33,6.33,0,0,1,1.73.23,4,4,0,0,1,1.23.55l2-5.59a7.51,7.51,0,0,0-1.66-.61,8.11,8.11,0,0,0-2-.26Zm23.94,3.19a11.15,11.15,0,0,0-3.61-2.37,12.08,12.08,0,0,0-4.6-.86,11.62,11.62,0,0,0-8.3,3.37,11.17,11.17,0,0,0-2.44,3.67,11.59,11.59,0,0,0-.89,4.54,12.24,12.24,0,0,0,.83,4.52,10.52,10.52,0,0,0,2.36,3.66,10.93,10.93,0,0,0,3.71,2.44,12.75,12.75,0,0,0,4.85.88,12.15,12.15,0,0,0,6.12-1.39,13.25,13.25,0,0,0,4.11-3.74L151,40.6a6.23,6.23,0,0,1-2.18,2.15,6.36,6.36,0,0,1-3.33.8,6.7,6.7,0,0,1-4.13-1.25,6,6,0,0,1-2.23-3.43h17.62V36.74a11.71,11.71,0,0,0-.87-4.56,10.5,10.5,0,0,0-2.35-3.59Zm-14.21,5.85a6.38,6.38,0,0,1,2.26-3.12,6.11,6.11,0,0,1,3.74-1.15,6.26,6.26,0,0,1,3.73,1.08,5.56,5.56,0,0,1,2.1,3.19ZM167,16.08a6.05,6.05,0,0,0-2.91,1.54,6.15,6.15,0,0,0-1.56,2.89,18.1,18.1,0,0,0-.48,4.52v.78H158.4v5.1h3.65V48h5.63V30.91H173v-5.1h-5.3V24.75a13.34,13.34,0,0,1,.12-2,2,2,0,0,1,.6-1.19,2.45,2.45,0,0,1,1.33-.57,15.25,15.25,0,0,1,2.34-.15H173V15.63h-1.48A19.06,19.06,0,0,0,167,16.08Zm27.4,12.65a12,12,0,0,0-16.72,0,10.87,10.87,0,0,0-2.46,3.67,11.61,11.61,0,0,0-.89,4.5,11.46,11.46,0,0,0,7.07,10.64,11.73,11.73,0,0,0,4.64.9,12,12,0,0,0,4.66-.9,11.26,11.26,0,0,0,3.72-2.49,11.83,11.83,0,0,0,2.46-3.67,11.31,11.31,0,0,0,.9-4.48A11.43,11.43,0,0,0,194.4,28.73ZM191.7,39.3a5.88,5.88,0,0,1-1.29,2,6.53,6.53,0,0,1-1.93,1.31,6,6,0,0,1-4.76,0,6.34,6.34,0,0,1-1.93-1.31,6.06,6.06,0,0,1-1.3-2,6.48,6.48,0,0,1,0-4.86,5.76,5.76,0,0,1,1.3-2,6.08,6.08,0,0,1,1.93-1.32,6,6,0,0,1,4.76,0,6.37,6.37,0,0,1,1.93,1.32,5.73,5.73,0,0,1,1.29,2A6.39,6.39,0,0,1,191.7,39.3Zm29.47-13.49h-6.65l-4.68,6.57-4.64-6.57h-6.74l7.84,10.8L198,48h6.82l5-6.94L214.89,48h6.86l-8.46-11.34Zm34,7.46a12.88,12.88,0,0,0-3.37-1.44c-1.25-.34-2.46-.63-3.63-.88l-3.08-.7a10.64,10.64,0,0,1-2.51-.86A4.54,4.54,0,0,1,240.87,28a3.61,3.61,0,0,1-.62-2.19,4.8,4.8,0,0,1,1.58-3.7c1.06-1,2.73-1.44,5-1.44a9.84,9.84,0,0,1,5.07,1.17,10.47,10.47,0,0,1,3.39,3.23l2.79-2.18A15.22,15.22,0,0,0,253.45,19a13.8,13.8,0,0,0-6.59-1.44,12.13,12.13,0,0,0-4.14.66A10.33,10.33,0,0,0,239.53,20a7.53,7.53,0,0,0-2.05,2.63,7.41,7.41,0,0,0-.72,3.24,6.7,6.7,0,0,0,.84,3.53,7.06,7.06,0,0,0,2.2,2.22A11.11,11.11,0,0,0,242.86,33c1.13.32,2.29.6,3.47.84l3.26.74a12.63,12.63,0,0,1,2.8,1,5.86,5.86,0,0,1,2,1.56,3.88,3.88,0,0,1,.74,2.42,5.2,5.2,0,0,1-1.81,4.09A7.83,7.83,0,0,1,248,45.2a11,11,0,0,1-9.89-5.38l-3,2.34a15.86,15.86,0,0,0,5.23,4.54,16.06,16.06,0,0,0,7.7,1.7,12.58,12.58,0,0,0,4.38-.72,10.14,10.14,0,0,0,3.3-2,8.79,8.79,0,0,0,2.1-2.85,8.09,8.09,0,0,0,.74-3.39,6.94,6.94,0,0,0-1-3.8,7.71,7.71,0,0,0-2.42-2.37Zm27.51-4.72a10.53,10.53,0,0,0-3.58-2.34,11.89,11.89,0,0,0-4.49-.84,11.6,11.6,0,0,0-4.62.9,11.35,11.35,0,0,0-3.66,2.46A11.84,11.84,0,0,0,263,37a12.21,12.21,0,0,0,.82,4.51,10.53,10.53,0,0,0,2.36,3.64,11.24,11.24,0,0,0,3.7,2.42,12.41,12.41,0,0,0,4.82.88A11.68,11.68,0,0,0,280.82,47,12.84,12.84,0,0,0,285,42.82l-2.88-1.69a7.85,7.85,0,0,1-7.43,4.27,9,9,0,0,1-3.22-.53,8.21,8.21,0,0,1-2.55-1.5,8,8,0,0,1-1.78-2.28,7.79,7.79,0,0,1-.87-2.91h19.59V36.66a11.75,11.75,0,0,0-.86-4.54,10.92,10.92,0,0,0-2.35-3.57ZM266.4,35.22a8.88,8.88,0,0,1,1-2.73,8.55,8.55,0,0,1,1.79-2.18,8,8,0,0,1,2.44-1.43,8.31,8.31,0,0,1,3-.52,7.45,7.45,0,0,1,7.84,6.86ZM308.82,28a8.11,8.11,0,0,0-3-2,10.89,10.89,0,0,0-3.92-.67,9.06,9.06,0,0,0-4.58,1.14,8.76,8.76,0,0,0-3.14,3V25.82h-3.29V48h3.37V35.67a7.92,7.92,0,0,1,.53-2.93,7,7,0,0,1,1.48-2.3,6.46,6.46,0,0,1,2.22-1.5,7,7,0,0,1,2.75-.54,6.33,6.33,0,0,1,5,1.93A7.46,7.46,0,0,1,308,35.51V48h3.41V35.34a12.46,12.46,0,0,0-.66-4.19A8.68,8.68,0,0,0,308.82,28Zm27-12.42v14.1a8.14,8.14,0,0,0-1.58-1.83,10.08,10.08,0,0,0-2-1.36,10.39,10.39,0,0,0-2.3-.84,10.22,10.22,0,0,0-2.4-.28,11.63,11.63,0,0,0-4.4.84,11.09,11.09,0,0,0-3.59,2.38,11.3,11.3,0,0,0-2.42,3.65,12.81,12.81,0,0,0,0,9.32,11.56,11.56,0,0,0,2.4,3.66,10.58,10.58,0,0,0,3.59,2.38,11.77,11.77,0,0,0,4.42.84,9.69,9.69,0,0,0,2.4-.31,11,11,0,0,0,2.3-.86,9.72,9.72,0,0,0,2-1.37,8.75,8.75,0,0,0,1.58-1.85v4h3.33V15.59Zm-.37,24.58a8.3,8.3,0,0,1-10.85,4.47h0a7.68,7.68,0,0,1-2.6-1.76,7.88,7.88,0,0,1-1.73-2.67,8.93,8.93,0,0,1-.62-3.35,8.67,8.67,0,0,1,.62-3.3A8,8,0,0,1,322,30.89a8.17,8.17,0,0,1,2.6-1.79,8.27,8.27,0,0,1,6.51,0,8.64,8.64,0,0,1,2.63,1.81,7.85,7.85,0,0,1,1.72,2.67,8.67,8.67,0,0,1,.62,3.26,8.86,8.86,0,0,1-.65,3.33Z" fill="currentColor"/>
|
<path d="M84,48h5.83V35.87H103.3V30.45H89.83V23.51H103.3V18H84Zm23.57,0h5.79V25.81h-5.79Zm2.88-32.12a3.46,3.46,0,0,0-2.59,1,3.62,3.62,0,0,0-1,2.65,3.57,3.57,0,0,0,1,2.59,3.52,3.52,0,0,0,2.61,1,3.46,3.46,0,0,0,3.65-3.26c0-.12,0-.23,0-.35a3.71,3.71,0,0,0-1-2.65,3.5,3.5,0,0,0-2.67-1Zm19.14,9.53a7.22,7.22,0,0,0-3.72.93,5.82,5.82,0,0,0-2.4,2.89V25.81h-5.59V48h5.63V36.29a5.27,5.27,0,0,1,1.31-4,4.94,4.94,0,0,1,3.49-1.21,6.33,6.33,0,0,1,1.73.23,4,4,0,0,1,1.23.55l2-5.59a7.51,7.51,0,0,0-1.66-.61,8.11,8.11,0,0,0-2-.26Zm23.94,3.19a11.15,11.15,0,0,0-3.61-2.37,12.08,12.08,0,0,0-4.6-.86,11.62,11.62,0,0,0-8.3,3.37,11.17,11.17,0,0,0-2.44,3.67,11.59,11.59,0,0,0-.89,4.54,12.24,12.24,0,0,0,.83,4.52,10.52,10.52,0,0,0,2.36,3.66,10.93,10.93,0,0,0,3.71,2.44,12.75,12.75,0,0,0,4.85.88,12.15,12.15,0,0,0,6.12-1.39,13.25,13.25,0,0,0,4.11-3.74L151,40.6a6.23,6.23,0,0,1-2.18,2.15,6.36,6.36,0,0,1-3.33.8,6.7,6.7,0,0,1-4.13-1.25,6,6,0,0,1-2.23-3.43h17.62V36.74a11.71,11.71,0,0,0-.87-4.56,10.5,10.5,0,0,0-2.35-3.59Zm-14.21,5.85a6.38,6.38,0,0,1,2.26-3.12,6.11,6.11,0,0,1,3.74-1.15,6.26,6.26,0,0,1,3.73,1.08,5.56,5.56,0,0,1,2.1,3.19ZM167,16.08a6.05,6.05,0,0,0-2.91,1.54,6.15,6.15,0,0,0-1.56,2.89,18.1,18.1,0,0,0-.48,4.52v.78H158.4v5.1h3.65V48h5.63V30.91H173v-5.1h-5.3V24.75a13.34,13.34,0,0,1,.12-2,2,2,0,0,1,.6-1.19,2.45,2.45,0,0,1,1.33-.57,15.25,15.25,0,0,1,2.34-.15H173V15.63h-1.48A19.06,19.06,0,0,0,167,16.08Zm27.4,12.65a12,12,0,0,0-16.72,0,10.87,10.87,0,0,0-2.46,3.67,11.61,11.61,0,0,0-.89,4.5,11.46,11.46,0,0,0,7.07,10.64,11.73,11.73,0,0,0,4.64.9,12,12,0,0,0,4.66-.9,11.26,11.26,0,0,0,3.72-2.49,11.83,11.83,0,0,0,2.46-3.67,11.31,11.31,0,0,0,.9-4.48A11.43,11.43,0,0,0,194.4,28.73ZM191.7,39.3a5.88,5.88,0,0,1-1.29,2,6.53,6.53,0,0,1-1.93,1.31,6,6,0,0,1-4.76,0,6.34,6.34,0,0,1-1.93-1.31,6.06,6.06,0,0,1-1.3-2,6.48,6.48,0,0,1,0-4.86,5.76,5.76,0,0,1,1.3-2,6.08,6.08,0,0,1,1.93-1.32,6,6,0,0,1,4.76,0,6.37,6.37,0,0,1,1.93,1.32,5.73,5.73,0,0,1,1.29,2A6.39,6.39,0,0,1,191.7,39.3Zm29.47-13.49h-6.65l-4.68,6.57-4.64-6.57h-6.74l7.84,10.8L198,48h6.82l5-6.94L214.89,48h6.86l-8.46-11.34Zm34,7.46a12.88,12.88,0,0,0-3.37-1.44c-1.25-.34-2.46-.63-3.63-.88l-3.08-.7a10.64,10.64,0,0,1-2.51-.86A4.54,4.54,0,0,1,240.87,28a3.61,3.61,0,0,1-.62-2.19,4.8,4.8,0,0,1,1.58-3.7c1.06-1,2.73-1.44,5-1.44a9.84,9.84,0,0,1,5.07,1.17,10.47,10.47,0,0,1,3.39,3.23l2.79-2.18A15.22,15.22,0,0,0,253.45,19a13.8,13.8,0,0,0-6.59-1.44,12.13,12.13,0,0,0-4.14.66A10.33,10.33,0,0,0,239.53,20a7.53,7.53,0,0,0-2.05,2.63,7.41,7.41,0,0,0-.72,3.24,6.7,6.7,0,0,0,.84,3.53,7.06,7.06,0,0,0,2.2,2.22A11.11,11.11,0,0,0,242.86,33c1.13.32,2.29.6,3.47.84l3.26.74a12.63,12.63,0,0,1,2.8,1,5.86,5.86,0,0,1,2,1.56,3.88,3.88,0,0,1,.74,2.42,5.2,5.2,0,0,1-1.81,4.09A7.83,7.83,0,0,1,248,45.2a11,11,0,0,1-9.89-5.38l-3,2.34a15.86,15.86,0,0,0,5.23,4.54,16.06,16.06,0,0,0,7.7,1.7,12.58,12.58,0,0,0,4.38-.72,10.14,10.14,0,0,0,3.3-2,8.79,8.79,0,0,0,2.1-2.85,8.09,8.09,0,0,0,.74-3.39,6.94,6.94,0,0,0-1-3.8,7.71,7.71,0,0,0-2.42-2.37Zm27.51-4.72a10.53,10.53,0,0,0-3.58-2.34,11.89,11.89,0,0,0-4.49-.84,11.6,11.6,0,0,0-4.62.9,11.35,11.35,0,0,0-3.66,2.46A11.84,11.84,0,0,0,263,37a12.21,12.21,0,0,0,.82,4.51,10.53,10.53,0,0,0,2.36,3.64,11.24,11.24,0,0,0,3.7,2.42,12.41,12.41,0,0,0,4.82.88A11.68,11.68,0,0,0,280.82,47,12.84,12.84,0,0,0,285,42.82l-2.88-1.69a7.85,7.85,0,0,1-7.43,4.27,9,9,0,0,1-3.22-.53,8.21,8.21,0,0,1-2.55-1.5,8,8,0,0,1-1.78-2.28,7.79,7.79,0,0,1-.87-2.91h19.59V36.66a11.75,11.75,0,0,0-.86-4.54,10.92,10.92,0,0,0-2.35-3.57ZM266.4,35.22a8.88,8.88,0,0,1,1-2.73,8.55,8.55,0,0,1,1.79-2.18,8,8,0,0,1,2.44-1.43,8.31,8.31,0,0,1,3-.52,7.45,7.45,0,0,1,7.84,6.86ZM308.82,28a8.11,8.11,0,0,0-3-2,10.89,10.89,0,0,0-3.92-.67,9.06,9.06,0,0,0-4.58,1.14,8.76,8.76,0,0,0-3.14,3V25.82h-3.29V48h3.37V35.67a7.92,7.92,0,0,1,.53-2.93,7,7,0,0,1,1.48-2.3,6.46,6.46,0,0,1,2.22-1.5,7,7,0,0,1,2.75-.54,6.33,6.33,0,0,1,5,1.93A7.46,7.46,0,0,1,308,35.51V48h3.41V35.34a12.46,12.46,0,0,0-.66-4.19A8.68,8.68,0,0,0,308.82,28Zm27-12.42v14.1a8.14,8.14,0,0,0-1.58-1.83,10.08,10.08,0,0,0-2-1.36,10.39,10.39,0,0,0-2.3-.84,10.22,10.22,0,0,0-2.4-.28,11.63,11.63,0,0,0-4.4.84,11.09,11.09,0,0,0-3.59,2.38,11.3,11.3,0,0,0-2.42,3.65,12.81,12.81,0,0,0,0,9.32,11.56,11.56,0,0,0,2.4,3.66,10.58,10.58,0,0,0,3.59,2.38,11.77,11.77,0,0,0,4.42.84,9.69,9.69,0,0,0,2.4-.31,11,11,0,0,0,2.3-.86,9.72,9.72,0,0,0,2-1.37,8.75,8.75,0,0,0,1.58-1.85v4h3.33V15.59Zm-.37,24.58a8.3,8.3,0,0,1-10.85,4.47h0a7.68,7.68,0,0,1-2.6-1.76,7.88,7.88,0,0,1-1.73-2.67,8.93,8.93,0,0,1-.62-3.35,8.67,8.67,0,0,1,.62-3.3A8,8,0,0,1,322,30.89a8.17,8.17,0,0,1,2.6-1.79,8.27,8.27,0,0,1,6.51,0,8.64,8.64,0,0,1,2.63,1.81,7.85,7.85,0,0,1,1.72,2.67,8.67,8.67,0,0,1,.62,3.26,8.86,8.86,0,0,1-.65,3.33Z" fill="currentColor"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<use xlink:href="#logo"/>
|
<use xlink:href="#logo"/>
|
||||||
|
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
|
@ -2,4 +2,5 @@ last 2 chrome versions
|
||||||
last 2 firefox versions
|
last 2 firefox versions
|
||||||
last 2 safari versions
|
last 2 safari versions
|
||||||
last 2 edge versions
|
last 2 edge versions
|
||||||
|
edge 18
|
||||||
firefox esr
|
firefox esr
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
31
package.json
31
package.json
|
@ -23,11 +23,11 @@
|
||||||
"release": "npm-run-all contributors changelog",
|
"release": "npm-run-all contributors changelog",
|
||||||
"test": "npm-run-all test:*",
|
"test": "npm-run-all test:*",
|
||||||
"test:backend": "nyc --reporter=lcovonly mocha --reporter=min test/backend",
|
"test:backend": "nyc --reporter=lcovonly mocha --reporter=min test/backend",
|
||||||
"test:frontend": "cross-env NODE_ENV=development node test/frontend/runner.js",
|
"test:frontend": "cross-env NODE_ENV=development FXA_REQUIRED=false node test/frontend/runner.js",
|
||||||
"test:report": "nyc report --reporter=html",
|
"test:report": "nyc report --reporter=html",
|
||||||
"test-integration": "cross-env NODE_ENV=development wdio test/wdio.docker.conf.js",
|
"test-integration": "cross-env NODE_ENV=development wdio test/wdio.docker.conf.js",
|
||||||
"circleci-test-integration": "echo 'webdriverio tests need to be updated to node 12'",
|
"circleci-test-integration": "echo 'webdriverio tests need to be updated to node 12'",
|
||||||
"start": "npm run clean && cross-env NODE_ENV=development L10N_DEV=true FXA_CLIENT_ID=fced6b5e3f4c66b9 BASE_URL=http://localhost:8080 webpack-dev-server --mode=development",
|
"start": "npm run clean && cross-env NODE_ENV=development L10N_DEV=true FXA_CLIENT_ID=fced6b5e3f4c66b9 BASE_URL=http://localhost:1337 webpack-dev-server --port=1337 --mode=development",
|
||||||
"android": "cross-env ANDROID=1 npm start",
|
"android": "cross-env ANDROID=1 npm start",
|
||||||
"prod": "node server/bin/prod.js"
|
"prod": "node server/bin/prod.js"
|
||||||
},
|
},
|
||||||
|
@ -61,14 +61,14 @@
|
||||||
"node": "^12.16.3"
|
"node": "^12.16.3"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.7.2",
|
"@babel/core": "^7.10.5",
|
||||||
"@babel/plugin-proposal-class-properties": "^7.7.0",
|
"@babel/plugin-proposal-class-properties": "^7.10.4",
|
||||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||||
"@babel/preset-env": "^7.7.1",
|
"@babel/preset-env": "^7.10.4",
|
||||||
"@dannycoates/webcrypto-liner": "^0.1.37",
|
"@dannycoates/webcrypto-liner": "^0.1.37",
|
||||||
"@fullhuman/postcss-purgecss": "^1.3.0",
|
"@fullhuman/postcss-purgecss": "^1.3.0",
|
||||||
"@mattiasbuelens/web-streams-polyfill": "0.2.1",
|
"@mattiasbuelens/web-streams-polyfill": "0.2.1",
|
||||||
"@sentry/browser": "^5.8.0",
|
"@sentry/browser": "^5.20.1",
|
||||||
"asmcrypto.js": "^0.22.0",
|
"asmcrypto.js": "^0.22.0",
|
||||||
"babel-loader": "^8.0.6",
|
"babel-loader": "^8.0.6",
|
||||||
"babel-plugin-istanbul": "^5.2.0",
|
"babel-plugin-istanbul": "^5.2.0",
|
||||||
|
@ -76,7 +76,6 @@
|
||||||
"content-disposition": "^0.5.3",
|
"content-disposition": "^0.5.3",
|
||||||
"copy-webpack-plugin": "^5.0.5",
|
"copy-webpack-plugin": "^5.0.5",
|
||||||
"core-js": "^3.4.0",
|
"core-js": "^3.4.0",
|
||||||
"crc": "^3.8.0",
|
|
||||||
"cross-env": "^6.0.3",
|
"cross-env": "^6.0.3",
|
||||||
"css-loader": "^3.2.0",
|
"css-loader": "^3.2.0",
|
||||||
"css-mqpacker": "^7.0.0",
|
"css-mqpacker": "^7.0.0",
|
||||||
|
@ -89,7 +88,7 @@
|
||||||
"expose-loader": "^0.7.5",
|
"expose-loader": "^0.7.5",
|
||||||
"extract-loader": "^3.1.0",
|
"extract-loader": "^3.1.0",
|
||||||
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||||
"fast-text-encoding": "^1.0.0",
|
"fast-text-encoding": "^1.0.3",
|
||||||
"file-loader": "^4.2.0",
|
"file-loader": "^4.2.0",
|
||||||
"git-rev-sync": "^1.12.0",
|
"git-rev-sync": "^1.12.0",
|
||||||
"html-loader": "^0.5.5",
|
"html-loader": "^0.5.5",
|
||||||
|
@ -123,9 +122,9 @@
|
||||||
"tailwindcss": "^1.1.3",
|
"tailwindcss": "^1.1.3",
|
||||||
"val-loader": "^1.1.1",
|
"val-loader": "^1.1.1",
|
||||||
"webpack": "4.38.0",
|
"webpack": "4.38.0",
|
||||||
"webpack-cli": "^3.3.10",
|
"webpack-cli": "^3.3.12",
|
||||||
"webpack-dev-middleware": "^3.7.2",
|
"webpack-dev-middleware": "^3.7.2",
|
||||||
"webpack-dev-server": "^3.9.0",
|
"webpack-dev-server": "^3.11.0",
|
||||||
"webpack-manifest-plugin": "^2.2.0",
|
"webpack-manifest-plugin": "^2.2.0",
|
||||||
"webpack-unassert-loader": "^1.2.0"
|
"webpack-unassert-loader": "^1.2.0"
|
||||||
},
|
},
|
||||||
|
@ -133,8 +132,9 @@
|
||||||
"@dannycoates/express-ws": "^5.0.3",
|
"@dannycoates/express-ws": "^5.0.3",
|
||||||
"@fluent/bundle": "^0.13.0",
|
"@fluent/bundle": "^0.13.0",
|
||||||
"@fluent/langneg": "^0.3.0",
|
"@fluent/langneg": "^0.3.0",
|
||||||
"@google-cloud/storage": "^4.1.1",
|
"@google-cloud/storage": "^5.1.2",
|
||||||
"@sentry/node": "^5.8.0",
|
"@peculiar/webcrypto": "^1.1.1",
|
||||||
|
"@sentry/node": "^5.20.1",
|
||||||
"aws-sdk": "^2.568.0",
|
"aws-sdk": "^2.568.0",
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
"choo": "^7.0.0",
|
"choo": "^7.0.0",
|
||||||
|
@ -142,14 +142,13 @@
|
||||||
"configstore": "github:dannycoates/configstore#master",
|
"configstore": "github:dannycoates/configstore#master",
|
||||||
"convict": "^5.2.0",
|
"convict": "^5.2.0",
|
||||||
"express": "^4.17.1",
|
"express": "^4.17.1",
|
||||||
"fxa-geodb": "^1.0.4",
|
"helmet": "^3.23.3",
|
||||||
"helmet": "^3.21.2",
|
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"mozlog": "^2.2.0",
|
"mozlog": "^2.2.0",
|
||||||
"node-fetch": "^2.6.0",
|
"node-fetch": "^2.6.0",
|
||||||
"redis": "^2.8.0",
|
"redis": "^3.0.2",
|
||||||
"selenium-standalone": "^6.15.6",
|
"selenium-standalone": "^6.15.6",
|
||||||
"ua-parser-js": "^0.7.20"
|
"ua-parser-js": "^0.7.21"
|
||||||
},
|
},
|
||||||
"availableLanguages": [
|
"availableLanguages": [
|
||||||
"en-US",
|
"en-US",
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Comentarios
|
|
||||||
importingFile = Se ye importando…
|
importingFile = Se ye importando…
|
||||||
encryptingFile = Se ye cifrando…
|
encryptingFile = Se ye cifrando…
|
||||||
decryptingFile = Se ye descifrando…
|
decryptingFile = Se ye descifrando…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versió 1.0, con data d'o 12 de marzo de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
||||||
addFilesButton = Triar los fichers a cargar
|
addFilesButton = Triar los fichers a cargar
|
||||||
|
trustWarningMessage = Asegura-te de que confías en o destinatario quan compartas datos confidencials.
|
||||||
uploadButton = Cargar
|
uploadButton = Cargar
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arrociega y suelta los fichers
|
dragAndDropFiles = Arrociega y suelta los fichers
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Compartir lo vinclo
|
||||||
shareMessage = Baixa-te «{ $name }» con { -send-brand }: compartición de fiches simpla y segura
|
shareMessage = Baixa-te «{ $name }» con { -send-brand }: compartición de fiches simpla y segura
|
||||||
trailheadPromo = I hai una manera de protecher la tuya privacidat. Une-te a Firefox.
|
trailheadPromo = I hai una manera de protecher la tuya privacidat. Une-te a Firefox.
|
||||||
learnMore = Mas información
|
learnMore = Mas información
|
||||||
|
downloadFlagged = Este vinclo s'ha desactivau per violar las condiciones d'uso.
|
||||||
|
downloadConfirmTitle = Una coseta mas
|
||||||
|
downloadConfirmDescription = Asegura-te de que confías en a persona que t'ha ninviau este fichero, perque no podemos verificar que no danyará lo tuyo dispositivo.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Confío en a persona que ha ninviau este fichero
|
||||||
|
*[other] Confío en a persona que ha ninviau estes fichers
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Sinyalar este fichero como sospeitoso
|
||||||
|
*[other] Sinyalar estes fichers como sospeitoso
|
||||||
|
}
|
||||||
|
reportDescription = Aduya-nos a comprender qué ha pasau. Quál creyes que ye lo problema con estes fichers?
|
||||||
|
reportUnknownDescription = Vest ta la URL d'o vinclo que quiers sinyalar y fe clic en « { reportFile } ».
|
||||||
|
reportButton = Informar
|
||||||
|
reportReasonMalware = Estes fichers contienen malware u fan parte d'un ataque de phishing.
|
||||||
|
reportReasonPii = Estes fichers contienen información personal identificable sobre yo.
|
||||||
|
reportReasonAbuse = Estes fichers contienen conteniu ilegal u abusivo.
|
||||||
|
reportReasonCopyright = Pa informar sobre una violación de dreitos d'autor u de marca, sigue lo procedimiento descrito en <a>esta pachina</a>.
|
||||||
|
reportedTitle = Fichers sinyalaus
|
||||||
|
reportedDescription = Gracias. Hemos recibiu lo tuyo informe sobre estes fichers.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Comentarios
|
|
||||||
importingFile = Importando...
|
importingFile = Importando...
|
||||||
encryptingFile = Cifrando...
|
encryptingFile = Cifrando...
|
||||||
decryptingFile = Descifrando...
|
decryptingFile = Descifrando...
|
||||||
|
@ -99,23 +98,24 @@ trySendDescription = Prueba { -send-brand } pa una compartición de ficheros cen
|
||||||
# count will always be > 10
|
# count will always be > 10
|
||||||
tooManyFiles =
|
tooManyFiles =
|
||||||
{ $count ->
|
{ $count ->
|
||||||
[one] Namái pue xubise 1 ficheru al empar.
|
[one] Namás pue xubise 1 ficheru al empar.
|
||||||
*[other] Namái puen xubise { $count } ficheros al empar.
|
*[other] Namás puen xubise { $count } ficheros al empar.
|
||||||
}
|
}
|
||||||
# count will always be > 10
|
# count will always be > 10
|
||||||
tooManyArchives =
|
tooManyArchives =
|
||||||
{ $count ->
|
{ $count ->
|
||||||
[one] Namái se permite 1 archivu
|
[one] Namás se permite 1 archivu
|
||||||
*[other] Namái se permiten { $count } archivos
|
*[other] Namás se permiten { $count } archivos
|
||||||
}
|
}
|
||||||
expiredTitle = Esti enllaz caducó.
|
expiredTitle = Esti enllaz caducó.
|
||||||
notSupportedDescription = { -send-brand } nun va funcionar con esti restolador. { -send-short-brand } funciona meyor cola versión última de { -firefox } y cola versión actual de la mayoría de restoladores.
|
notSupportedDescription = { -send-brand } nun va funcionar con esti restolador. { -send-short-brand } funciona meyor cola última versión de { -firefox } y l'actual de la mayoría de restoladores.
|
||||||
downloadFirefox = Baxar { -firefox }
|
downloadFirefox = Baxar { -firefox }
|
||||||
legalTitle = Avisu de privacidá de { -send-short-brand }
|
legalTitle = Avisu de privacidá de { -send-short-brand }
|
||||||
legalDateStamp = Versión 1.0, con data del 12 de marzu de 2019
|
legalDateStamp = Versión 1.0, con data del 12 de marzu de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Esbillar los ficheros a unviar
|
addFilesButton = Esbillar los ficheros a unviar
|
||||||
|
trustWarningMessage = Asegúrate de que t'enfotes nel destinatariu al compartir datos sensibles.
|
||||||
uploadButton = Xubir
|
uploadButton = Xubir
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arrastra y suelta ficheros
|
dragAndDropFiles = Arrastra y suelta ficheros
|
||||||
|
@ -133,8 +133,8 @@ accountBenefitLargeFiles = Comparti ficheros d'hasta { $size }
|
||||||
accountBenefitDownloadCount = Comparti ficheros con más xente
|
accountBenefitDownloadCount = Comparti ficheros con más xente
|
||||||
accountBenefitTimeLimit =
|
accountBenefitTimeLimit =
|
||||||
{ $count ->
|
{ $count ->
|
||||||
[one] Caltén activos los enllaces demientres 1 día
|
[one] Caltién activos los enllaces demientres 1 día
|
||||||
*[other] Caltén activos los enllaces demientres { $count } díes
|
*[other] Caltién activos los enllaces demientres { $count } díes
|
||||||
}
|
}
|
||||||
accountBenefitSync = Xestiona los ficheros compartíos dende cualesquier preséu
|
accountBenefitSync = Xestiona los ficheros compartíos dende cualesquier preséu
|
||||||
accountBenefitMoz = Deprendi más tocante a otros servicios de { -mozilla }
|
accountBenefitMoz = Deprendi más tocante a otros servicios de { -mozilla }
|
||||||
|
@ -144,3 +144,9 @@ downloadingTitle = Baxando
|
||||||
noStreamsWarning = Esti restolador quiciabes nun seya a descifrar un ficheru d'esti tamañu.
|
noStreamsWarning = Esti restolador quiciabes nun seya a descifrar un ficheru d'esti tamañu.
|
||||||
trailheadPromo = Hai un mou de protexer la to privacidá. Xúnite a Firefox.
|
trailheadPromo = Hai un mou de protexer la to privacidá. Xúnite a Firefox.
|
||||||
learnMore = Deprender más.
|
learnMore = Deprender más.
|
||||||
|
downloadFlagged = Esti enllaz desactivóse por violar los términos del serviciu.
|
||||||
|
downloadConfirmTitle = Una cosa más
|
||||||
|
reportReasonMalware = Estos ficheros contienen malware o son parte d'un ataque de phishing
|
||||||
|
reportReasonPii = Estos ficheros contienen información que m'identifica.
|
||||||
|
reportReasonAbuse = Estos ficheros contienen conteníu illegal o abusivu.
|
||||||
|
reportedDescription = Gracies. Recibiemos l'informe tocante a estos ficheros.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Водгук
|
|
||||||
importingFile = Імпартаванне...
|
importingFile = Імпартаванне...
|
||||||
encryptingFile = Зашыфроўка...
|
encryptingFile = Зашыфроўка...
|
||||||
decryptingFile = Расшыфроўка...
|
decryptingFile = Расшыфроўка...
|
||||||
|
@ -124,6 +123,7 @@ legalDateStamp = Версія 1.0 ад 12 сакавіка 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } д. { $hours } г. { $minutes } хв.
|
expiresDaysHoursMinutes = { $days } д. { $hours } г. { $minutes } хв.
|
||||||
addFilesButton = Выберыце файлы для загрузкі
|
addFilesButton = Выберыце файлы для загрузкі
|
||||||
|
trustWarningMessage = Пераканайцеся, што давяраеце атрымальніку, калі дзеліцеся канфідэнцыяльнымі звесткамі.
|
||||||
uploadButton = Загрузіць
|
uploadButton = Загрузіць
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Перацягніце файлы сюды
|
dragAndDropFiles = Перацягніце файлы сюды
|
||||||
|
@ -162,3 +162,35 @@ shareLinkButton = Падзяліцца спасылкай
|
||||||
shareMessage = Сцягніце «{ $name }» з { -send-brand }: простага і бяспечнага файлаабменніка
|
shareMessage = Сцягніце «{ $name }» з { -send-brand }: простага і бяспечнага файлаабменніка
|
||||||
trailheadPromo = Ёсць спосаб абараніць вашу прыватнасць. Далучайцеся да Firefox.
|
trailheadPromo = Ёсць спосаб абараніць вашу прыватнасць. Далучайцеся да Firefox.
|
||||||
learnMore = Падрабязней.
|
learnMore = Падрабязней.
|
||||||
|
downloadFlagged = Гэта спасылка адключана за парушэнне ўмоў прадастаўлення паслуг.
|
||||||
|
downloadConfirmTitle = Яшчэ адна рэч
|
||||||
|
downloadConfirmDescription = Пераканайцеся, што давяраеце адпраўніку гэтага файла, бо мы не можам пераканацца, што ён не нашкодзіць Вашай прыладзе.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Я давяраю адпраўніку гэтага файла
|
||||||
|
[few] Я давяраю адпраўніку гэтых файлаў
|
||||||
|
*[many] Я давяраю адпраўніку гэтых файлаў
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Паведаміць, што гэты файл падазроныя
|
||||||
|
[few] Паведаміць, што гэтыя файлы падазроныя
|
||||||
|
*[many] Паведаміць, што гэтыя файлы падазроныя
|
||||||
|
}
|
||||||
|
reportDescription = Дапамажыце нам зразумець, што адбываецца. Як вы лічыце, што не так з гэтымі файламі?
|
||||||
|
reportUnknownDescription = Калі ласка, перайдзіце да адрасу спасылкі, пра якую хочаце паведаміць, і націсніце “{ reportFile }”.
|
||||||
|
reportButton = Паведаміць
|
||||||
|
reportReasonMalware = Гэтыя файлы ўтрымліваюць шкоднасныя праграмы альбо з'яўляюцца часткай фішынг-атакі.
|
||||||
|
reportReasonPii = Гэтыя файлы ўтрымліваюць асабістую інфармацыю пра мяне.
|
||||||
|
reportReasonAbuse = Гэтыя файлы ўтрымліваюць незаконнае альбо абразлівае змесціва.
|
||||||
|
reportReasonCopyright = Каб паведаміць аб парушэнні аўтарскіх правоў або гандлёвых марак, скарыстайцеся алгарытмам, апісаным на <a>гэтай старонцы</a>.
|
||||||
|
reportedTitle = Пра файлы паведамлена
|
||||||
|
reportedDescription = Дзякуй. Мы атрымалі Вашу заяву наконт гэтых файлаў.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Roit hoc'h ali
|
|
||||||
importingFile = Oc'h enporzhiañ …
|
importingFile = Oc'h enporzhiañ …
|
||||||
encryptingFile = Oc'h enrinegañ..
|
encryptingFile = Oc'h enrinegañ..
|
||||||
decryptingFile = Oc'h ezrinegañ...
|
decryptingFile = Oc'h ezrinegañ...
|
||||||
|
@ -140,6 +139,7 @@ legalDateStamp = Handelv 1.0, d'an 12 a viz Meurzh 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }e { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }e { $minutes }m
|
||||||
addFilesButton = Diuzit ur restr da bellgas
|
addFilesButton = Diuzit ur restr da bellgas
|
||||||
|
trustWarningMessage = Bezit sur ho peus fiziañs en ho tegemerer pa rannit roadennoù kizidik.
|
||||||
uploadButton = Pellgas
|
uploadButton = Pellgas
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Riklit ha laoskit restroù
|
dragAndDropFiles = Riklit ha laoskit restroù
|
||||||
|
@ -180,3 +180,6 @@ shareLinkButton = Rannañ an ere
|
||||||
shareMessage = Pellgargañ "{ $name }" gant { -send-brand }: rannañ restroù en un doare eeun ha prevez
|
shareMessage = Pellgargañ "{ $name }" gant { -send-brand }: rannañ restroù en un doare eeun ha prevez
|
||||||
trailheadPromo = Un doare a zo da wareziñ ho puhez prevez. Tremenit da Firefox.
|
trailheadPromo = Un doare a zo da wareziñ ho puhez prevez. Tremenit da Firefox.
|
||||||
learnMore = Gouzout hiroc'h.
|
learnMore = Gouzout hiroc'h.
|
||||||
|
downloadFlagged = Diweredekaet eo bet an ere-se dre ma ne zouje ket ouzh an divizoù arver.
|
||||||
|
downloadConfirmTitle = Un draig ouzhpenn
|
||||||
|
downloadConfirmDescription = Bezit sur ho peus fiziañs en deus en deus kaset ar restr-mañ dre ma n'haller ket gwiriañ ne freuzo ket ho trevnad.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Comentaris
|
|
||||||
importingFile = S'està important…
|
importingFile = S'està important…
|
||||||
encryptingFile = S'està xifrant…
|
encryptingFile = S'està xifrant…
|
||||||
decryptingFile = S'està desxifrant…
|
decryptingFile = S'està desxifrant…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versió 1.0, amb data del 12 de març de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
||||||
addFilesButton = Seleccioneu els fitxers que voleu pujar
|
addFilesButton = Seleccioneu els fitxers que voleu pujar
|
||||||
|
trustWarningMessage = Assegureu-vos que confieu en el destinatari quan compartiu dades confidencials.
|
||||||
uploadButton = Puja
|
uploadButton = Puja
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arrossegueu i deixeu anar els fitxers
|
dragAndDropFiles = Arrossegueu i deixeu anar els fitxers
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Comparteix l'enllaç
|
||||||
shareMessage = Baixeu «{ $name }» amb el { -send-brand }: compartició de fitxers senzilla i segura
|
shareMessage = Baixeu «{ $name }» amb el { -send-brand }: compartició de fitxers senzilla i segura
|
||||||
trailheadPromo = Hi ha una manera de protegir la vostra privadesa. Uniu-vos al Firefox.
|
trailheadPromo = Hi ha una manera de protegir la vostra privadesa. Uniu-vos al Firefox.
|
||||||
learnMore = Més informació.
|
learnMore = Més informació.
|
||||||
|
downloadFlagged = Aquest enllaç s'ha desactivat per infringir les condicions del servei.
|
||||||
|
downloadConfirmTitle = Una cosa més
|
||||||
|
downloadConfirmDescription = Assegureu-vos que confieu en la persona que us ha enviat aquest fitxer, perquè nosaltres no podem verificar que no malmeti el vostre dispositiu.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Confio en la persona que ha enviat aquest fitxer
|
||||||
|
*[other] Confio en la persona que ha enviat aquests fitxers
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Informa que aquest fitxer és sospitós
|
||||||
|
*[other] Informa que aquests fitxers són sospitos
|
||||||
|
}
|
||||||
|
reportDescription = Ajudeu-nos a entendre què passa. Quin problema creieu que tenen aquests fitxers?
|
||||||
|
reportUnknownDescription = Aneu a l'URL de l'enllaç sobre el qual voleu informar i feu clic a «{ reportFile }».
|
||||||
|
reportButton = Informa
|
||||||
|
reportReasonMalware = Aquests fitxers contenen programari maliciós o formen part d'un atac de pesca electrònica.
|
||||||
|
reportReasonPii = Aquests fitxers contenen informació d'identificació personal meva.
|
||||||
|
reportReasonAbuse = Aquests fitxers inclouen contingut il·legal o abusiu.
|
||||||
|
reportReasonCopyright = Per informar sobre una infracció de drets d’autor o de marca comercial, utilitzeu el procés descrit en <a>aquesta pàgina</a>.
|
||||||
|
reportedTitle = S'ha informat d'aquests fitxers
|
||||||
|
reportedDescription = Gràcies. Hem rebut el vostre informe sobre aquests fitxers.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Zpětná vazba
|
|
||||||
importingFile = Probíhá import…
|
importingFile = Probíhá import…
|
||||||
encryptingFile = Probíhá šifrování…
|
encryptingFile = Probíhá šifrování…
|
||||||
decryptingFile = Probíhá dešifrování…
|
decryptingFile = Probíhá dešifrování…
|
||||||
|
@ -160,6 +159,7 @@ legalDateStamp = Verze 1.0, 12. března 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Vyberte soubory k nahrání
|
addFilesButton = Vyberte soubory k nahrání
|
||||||
|
trustWarningMessage = Ujistěte se, že adresátovi důvěřujete pro sdílení vašich důvěrných dat.
|
||||||
uploadButton = Nahrát
|
uploadButton = Nahrát
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Přetažením myší nebo kliknutím sem
|
dragAndDropFiles = Přetažením myší nebo kliknutím sem
|
||||||
|
@ -198,3 +198,35 @@ shareLinkButton = Sdílet odkaz
|
||||||
shareMessage = Stáhněte si soubor „{ $name }“ s { -send-brand(case: "ins") } - jednoduché a bezpečné sdílení souborů
|
shareMessage = Stáhněte si soubor „{ $name }“ s { -send-brand(case: "ins") } - jednoduché a bezpečné sdílení souborů
|
||||||
trailheadPromo = Existuje způsob, jak ochránit své soukromí. Používejte Firefox.
|
trailheadPromo = Existuje způsob, jak ochránit své soukromí. Používejte Firefox.
|
||||||
learnMore = Zjistit více.
|
learnMore = Zjistit více.
|
||||||
|
downloadFlagged = Tento odkaz byl pro porušení podmínek používání služby deaktivován.
|
||||||
|
downloadConfirmTitle = Ještě jedna věc
|
||||||
|
downloadConfirmDescription = Ujistěte se, že opravdu důvěřujete odesílateli tohoto souboru, protože nemůžeme potvrdit bezpečnost jeho otevření na vašem zařízení.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Odesílateli tohoto souboru důvěřuji
|
||||||
|
[few] Odesílateli těchto souborů důvěřuji
|
||||||
|
*[other] Odesílateli těchto souborů důvěřuji
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Nahlásit tento soubor jako podezřelý
|
||||||
|
[few] Nahlásit tyto soubory jako podezřelé
|
||||||
|
*[other] Nahlásit tyto soubory jako podezřelé
|
||||||
|
}
|
||||||
|
reportDescription = Pomozte nám. Co si myslíte, že je s těmito soubory špatně?
|
||||||
|
reportUnknownDescription = Otevřete odkaz, který chcete nahlásit, a klepněte na „{ reportFile }“.
|
||||||
|
reportButton = Nahlásit
|
||||||
|
reportReasonMalware = Tyto soubory obsahují malware nebo jsou součástí phishingového útoku.
|
||||||
|
reportReasonPii = Tyto soubory obsahují mé osobní údaje.
|
||||||
|
reportReasonAbuse = Tyto soubory obsahují nelegální nebo urážlivý obsah.
|
||||||
|
reportReasonCopyright = Chcete-li nahlásit porušení autorských práv nebo ochranných známek, použijte postup popsaný na <a>této stránce</a>.
|
||||||
|
reportedTitle = Soubory byly nahlášeny
|
||||||
|
reportedDescription = Děkujeme vám za zaslané hlášení ohledně těchto souborů.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Adborth
|
|
||||||
importingFile = Mewnforio…
|
importingFile = Mewnforio…
|
||||||
encryptingFile = Wrthi'n amgryptio…
|
encryptingFile = Wrthi'n amgryptio…
|
||||||
decryptingFile = Wrthi'n dadgryptio…
|
decryptingFile = Wrthi'n dadgryptio…
|
||||||
|
@ -148,6 +147,7 @@ legalDateStamp = Fersiwn 1.0, dyddiedig Mawrth 12, 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } d { $hours } a { $minutes } m
|
expiresDaysHoursMinutes = { $days } d { $hours } a { $minutes } m
|
||||||
addFilesButton = Dewis ffeiliau i'w llwytho i fyny
|
addFilesButton = Dewis ffeiliau i'w llwytho i fyny
|
||||||
|
trustWarningMessage = Gwnewch yn siŵr eich bod yn ymddiried yn eich derbynnydd pan yn rhannu data sensitif.
|
||||||
uploadButton = Llwytho i fyny
|
uploadButton = Llwytho i fyny
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Llusgo a gollwng ffeiliau
|
dragAndDropFiles = Llusgo a gollwng ffeiliau
|
||||||
|
@ -189,3 +189,41 @@ shareLinkButton = Rhannu'r ddolen
|
||||||
shareMessage = Llwytho i lawr “{ $name }” gyda { -send-brand }: rhannu ffeiliau syml a diogel
|
shareMessage = Llwytho i lawr “{ $name }” gyda { -send-brand }: rhannu ffeiliau syml a diogel
|
||||||
trailheadPromo = Mae ffordd o ddiogelu eich preifatrwydd. Ymunwch â Firefox.
|
trailheadPromo = Mae ffordd o ddiogelu eich preifatrwydd. Ymunwch â Firefox.
|
||||||
learnMore = Dysgu rhagor.
|
learnMore = Dysgu rhagor.
|
||||||
|
downloadFlagged = Mae'r ddolen wedi'i analluogi am fynd yn groes i'r telerau gwasanaeth.
|
||||||
|
downloadConfirmTitle = Un peth arall
|
||||||
|
downloadConfirmDescription = Gwnewch yn siŵr eich bod yn ymddiried yn y person a anfonodd y ffeil hon atoch oherwydd nid ydym yn gallu gwirio na fydd yn niweidio'ch dyfais.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[zero] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
|
||||||
|
[one] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
|
||||||
|
[two] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
|
||||||
|
[few] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
|
||||||
|
[many] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
|
||||||
|
*[other] Rwy'n ymddiried yn y person anfonodd yr { $count } ffeil yma
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[zero] Adrodd y { $count } ffeil yma fel rhai amheus
|
||||||
|
[one] Adrodd y { $count } ffeil yma fel un amheus
|
||||||
|
[two] Adrodd y { $count } ffeil yma fel rhai amheus
|
||||||
|
[few] Adrodd y { $count } ffeil yma fel rhai amheus
|
||||||
|
[many] Adrodd y { $count } ffeil yma fel rhai amheus
|
||||||
|
*[other] Adrodd y { $count } ffeil yma fel rhai amheus
|
||||||
|
}
|
||||||
|
reportDescription = Helpwch ni i ddeall beth sy'n digwydd. Beth ydych chi'n meddwl sydd o'i le gyda'r ffeiliau hyn?
|
||||||
|
reportUnknownDescription = Ewch i url y ddolen rydych am adrodd amdani a chlicio “{ reportFile }”.
|
||||||
|
reportButton = Adrodd
|
||||||
|
reportReasonMalware = Mae'r ffeiliau hyn yn cynnwys meddalwedd maleisus neu'n rhan o ymosodiad gwe-rwydo.
|
||||||
|
reportReasonPii = Mae'r ffeiliau hyn yn cynnwys gwybodaeth bersonol adnabyddadwy amdanaf i.
|
||||||
|
reportReasonAbuse = Mae'r ffeiliau hyn yn cynnwys deunydd anghyfreithlon neu ymosodol.
|
||||||
|
reportReasonCopyright = I adrodd ar dorri hawlfraint neu nod masnach, defnyddiwch y broses sy'n cael ei ddisgrifio yn y <a>dudalen hon</a>.
|
||||||
|
reportedTitle = Ffeiliau Adroddwyd Amdanynt
|
||||||
|
reportedDescription = Diolch. Rydym wedi derbyn eich adroddiad ar y ffeiliau hyn.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = Importerer…
|
importingFile = Importerer…
|
||||||
encryptingFile = Krypterer…
|
encryptingFile = Krypterer…
|
||||||
decryptingFile = Dekrypterer…
|
decryptingFile = Dekrypterer…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, udsendt d. 12. marts 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } d. { $hours } t. { $minutes } m.
|
expiresDaysHoursMinutes = { $days } d. { $hours } t. { $minutes } m.
|
||||||
addFilesButton = Vælg filer, der skal uploades
|
addFilesButton = Vælg filer, der skal uploades
|
||||||
|
trustWarningMessage = Vær sikker på, at du stoler på modtageren, når du deler følsomme data.
|
||||||
uploadButton = Upload
|
uploadButton = Upload
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Træk og slip filer
|
dragAndDropFiles = Træk og slip filer
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Del link
|
||||||
shareMessage = Hent { $name } med { -send-brand } - simpel og sikker fildeling
|
shareMessage = Hent { $name } med { -send-brand } - simpel og sikker fildeling
|
||||||
trailheadPromo = Beskyt dine digitale rettigheder. Slut dig til Firefox.
|
trailheadPromo = Beskyt dine digitale rettigheder. Slut dig til Firefox.
|
||||||
learnMore = Læs mere.
|
learnMore = Læs mere.
|
||||||
|
downloadFlagged = Dette link er blevet deaktiveret for overtrædelse af tjenestevilkårene.
|
||||||
|
downloadConfirmTitle = En ting til
|
||||||
|
downloadConfirmDescription = Vær sikker på, at du stoler på afsenderen af denne fil, da vi ikke kan garantere, at den ikke vil skade din enhed.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Jeg stoler på personen, som sendte denne fil
|
||||||
|
*[other] Jeg stoler på personen, som sendte disse filer
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Rapportér denne fil som mistænkelig
|
||||||
|
*[other] Rapportér disse filer som mistænkelige
|
||||||
|
}
|
||||||
|
reportDescription = Hjælp os med at forstå, hvad der foregår. Hvad er der i vejen med disse filer?
|
||||||
|
reportUnknownDescription = Gå til adressen på det link, du vil rapportere, og klik på “{ reportFile }”.
|
||||||
|
reportButton = Rapportér
|
||||||
|
reportReasonMalware = Disse filer indeholder malware eller er en del af et phishing-angreb.
|
||||||
|
reportReasonPii = Disse filer indeholder oplysninger om mig, der er personligt identificerbare.
|
||||||
|
reportReasonAbuse = Disse filer indeholder ulovligt eller voldeligt indhold.
|
||||||
|
reportReasonCopyright = Hvis du vil rapportere overtrædelse af ophavsrettigheder eller varemærker, skal du bruge processen, som er beskrevet på <a>denne side</a>.
|
||||||
|
reportedTitle = Rapporterede filer
|
||||||
|
reportedDescription = Tak. Vi har modtaget din rapport om disse filer.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = Wird importiert…
|
importingFile = Wird importiert…
|
||||||
encryptingFile = Wird verschlüsselt…
|
encryptingFile = Wird verschlüsselt…
|
||||||
decryptingFile = Wird entschlüsselt…
|
decryptingFile = Wird entschlüsselt…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, Stand 12. März 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Dateien zum Hochladen auswählen
|
addFilesButton = Dateien zum Hochladen auswählen
|
||||||
|
trustWarningMessage = Sie sollten dem Empfänger vertrauen, wenn Sie vertrauliche Daten weitergeben.
|
||||||
uploadButton = Hochladen
|
uploadButton = Hochladen
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Dateien per Drag & Drop einfügen
|
dragAndDropFiles = Dateien per Drag & Drop einfügen
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Link teilen
|
||||||
shareMessage = Laden Sie „{ $name }“ mit { -send-brand } herunter: einfaches, sicheres Teilen von Dateien
|
shareMessage = Laden Sie „{ $name }“ mit { -send-brand } herunter: einfaches, sicheres Teilen von Dateien
|
||||||
trailheadPromo = Es gibt einen Weg, deine Privatsphäre zu schützen. Komm zu Firefox.
|
trailheadPromo = Es gibt einen Weg, deine Privatsphäre zu schützen. Komm zu Firefox.
|
||||||
learnMore = Mehr erfahren.
|
learnMore = Mehr erfahren.
|
||||||
|
downloadFlagged = Dieser Link wurde wegen Verstoßes gegen die Nutzungsbedingungen deaktiviert.
|
||||||
|
downloadConfirmTitle = Eine Sache noch
|
||||||
|
downloadConfirmDescription = Sie sollten dem Absender dieser Datei vertrauen, da wir nicht überprüfen können, ob Ihr Gerät dadurch beschädigt wird.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Ich vertraue der Person, die diese Datei gesendet hat
|
||||||
|
*[other] Ich vertraue der Person, die diese Dateien gesendet hat
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Diese Datei als verdächtig melden
|
||||||
|
*[other] Diese Dateien als verdächtig melden
|
||||||
|
}
|
||||||
|
reportDescription = Helfen Sie uns mit weiteren Informationen. Wo liegt das Problem bei diesen Dateien?
|
||||||
|
reportUnknownDescription = Bitte besuchen Sie die Adresse des Links, den Sie melden möchten, und klicken Sie auf „{ reportFile }“.
|
||||||
|
reportButton = Melden
|
||||||
|
reportReasonMalware = Diese Dateien enthalten Malware oder sind Teil eines Phishing-Angriffs.
|
||||||
|
reportReasonPii = Diese Dateien enthalten personenbezogene Daten über mich.
|
||||||
|
reportReasonAbuse = Diese Dateien enthalten illegale oder missbräuchliche Inhalte.
|
||||||
|
reportReasonCopyright = Um Urheber- oder Markenrechtsverletzungen zu melden, nutzen Sie bitte das auf <a>dieser Seite</a> beschriebene Verfahren.
|
||||||
|
reportedTitle = Dateien gemeldet
|
||||||
|
reportedDescription = Vielen Dank. Wir haben Ihren Bericht über diese Dateien erhalten.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Komentar
|
|
||||||
importingFile = Importěrujo se...
|
importingFile = Importěrujo se...
|
||||||
encryptingFile = Koděrujo se...
|
encryptingFile = Koděrujo se...
|
||||||
decryptingFile = Dešifrěrujo se...
|
decryptingFile = Dešifrěrujo se...
|
||||||
|
@ -132,6 +131,7 @@ legalDateStamp = Wersija 1.0 wót 12. měrca 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }ź { $hours }g { $minutes }m
|
expiresDaysHoursMinutes = { $days }ź { $hours }g { $minutes }m
|
||||||
addFilesButton = Dataje za nagrawanje wubraś
|
addFilesButton = Dataje za nagrawanje wubraś
|
||||||
|
trustWarningMessage = Wy měł dostawarjeju dowěriś, gaž sensibelne daty źěliśo.
|
||||||
uploadButton = Nagraś
|
uploadButton = Nagraś
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Śěgniśo a wótpołožćo dataje
|
dragAndDropFiles = Śěgniśo a wótpołožćo dataje
|
||||||
|
@ -171,3 +171,37 @@ shareLinkButton = Wótkaz źěliś
|
||||||
shareMessage = Ześěgniśo „{ $name }“ z { -send-brand }: jadnore, wěste źělenje datajow
|
shareMessage = Ześěgniśo „{ $name }“ z { -send-brand }: jadnore, wěste źělenje datajow
|
||||||
trailheadPromo = Jo móžnosć, wašu priwatnosć šćitaś. Pśiźćo k Firefox.
|
trailheadPromo = Jo móžnosć, wašu priwatnosć šćitaś. Pśiźćo k Firefox.
|
||||||
learnMore = Dalšne informacije.
|
learnMore = Dalšne informacije.
|
||||||
|
downloadFlagged = Toś ten wótkaz jo se znjemóžnił pśestupjenja wužywańskich wuměnjenjow dla.
|
||||||
|
downloadConfirmTitle = Jadna wěc hyšći
|
||||||
|
downloadConfirmDescription = Wy měł wótpósłarjeju toś teje dataje dowěriś, dokulaž njamóžomy pśeglědaś, lěc to waš rěd kazy.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Dowěrim wósobje, kótaraž jo pósłała toś tu dataju
|
||||||
|
[two] Dowěrim wósobje, kótaraž jo pósłała toś tej dataji
|
||||||
|
[few] Dowěrim wósobje, kótaraž jo pósłała toś te dataje
|
||||||
|
*[other] Dowěrim wósobje, kótaraž jo pósłała toś te dataje
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Toś tu dataju ako suspektnu k wěsći daś
|
||||||
|
[two] Toś tej dataji ako suspektnej k wěsći daś
|
||||||
|
[few] Toś te dataje ako suspektne k wěsći daś
|
||||||
|
*[other] Toś te dataje ako suspektne k wěsći daś
|
||||||
|
}
|
||||||
|
reportDescription = Pomagajśo nam rozumić, co se stawa. Co pó wašom měnjenju njejo w pórědku z toś tymi datajami?
|
||||||
|
reportUnknownDescription = Źiśo pšosym k URL wótkaza, kótaryž cośo k wěsći daś a klikniśo na „{ reportFile }“.
|
||||||
|
reportButton = K wěsći daś
|
||||||
|
reportReasonMalware = Toś te dataje škódnu softwaru wopśimuju abo su źěl napada kšadnjenja datow.
|
||||||
|
reportReasonPii = Toś te dataje wósobinske informacije wó mnje, kótarež mógu mě identificěrowaś.
|
||||||
|
reportReasonAbuse = Toś te dataje njedowólone abo ranjece wopśimjeśe wopśimuju.
|
||||||
|
reportReasonCopyright = Aby pśestupjenje awtorskego pšawa abo pšawa wikowwych markow k wěsći dał, wužywajśo póstupowanje, kótarež se na <a>toś tom boku</a> wopisujo.
|
||||||
|
reportedTitle = Dataje k wěsći dane
|
||||||
|
reportedDescription = Wjeliki źěk. Smy dostali wašu rozpšawu wó toś tych datajach.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Σχόλια
|
|
||||||
importingFile = Εισαγωγή…
|
importingFile = Εισαγωγή…
|
||||||
encryptingFile = Κρυπτογράφηση…
|
encryptingFile = Κρυπτογράφηση…
|
||||||
decryptingFile = Αποκρυπτογράφηση…
|
decryptingFile = Αποκρυπτογράφηση…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Έκδοση 1.0, από 12 Μαρτίου 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }η { $hours }ώ { $minutes }λ
|
expiresDaysHoursMinutes = { $days }η { $hours }ώ { $minutes }λ
|
||||||
addFilesButton = Επιλέξτε αρχεία για μεταφόρτωση
|
addFilesButton = Επιλέξτε αρχεία για μεταφόρτωση
|
||||||
|
trustWarningMessage = Βεβαιωθείτε ότι ο παραλήπτης είναι έμπιστος πριν μοιραστείτε ευαίσθητα δεδομένα.
|
||||||
uploadButton = Μεταφόρτωση
|
uploadButton = Μεταφόρτωση
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Σύρετε και εναποθέστε αρχεία
|
dragAndDropFiles = Σύρετε και εναποθέστε αρχεία
|
||||||
|
@ -140,7 +140,7 @@ accountBenefitSync = Διαχειριστείτε τα διαμοιρασμέν
|
||||||
accountBenefitMoz = Μάθετε για τις άλλες υπηρεσίες της { -mozilla }
|
accountBenefitMoz = Μάθετε για τις άλλες υπηρεσίες της { -mozilla }
|
||||||
signOut = Αποσύνδεση
|
signOut = Αποσύνδεση
|
||||||
okButton = OK
|
okButton = OK
|
||||||
downloadingTitle = Λήψη
|
downloadingTitle = Γίνεται λήψη
|
||||||
noStreamsWarning = Αυτό το πρόγραμμα περιήγησης ενδέχεται να μην μπορέσει να αποκρυπτογραφήσει αρχεία αυτού του μεγέθους.
|
noStreamsWarning = Αυτό το πρόγραμμα περιήγησης ενδέχεται να μην μπορέσει να αποκρυπτογραφήσει αρχεία αυτού του μεγέθους.
|
||||||
noStreamsOptionCopy = Αντιγράψτε το σύνδεσμο για άνοιγμα σε άλλο πρόγραμμα περιήγησης
|
noStreamsOptionCopy = Αντιγράψτε το σύνδεσμο για άνοιγμα σε άλλο πρόγραμμα περιήγησης
|
||||||
noStreamsOptionFirefox = Δοκιμάστε το αγαπημένο μας πρόγραμμα περιήγησης
|
noStreamsOptionFirefox = Δοκιμάστε το αγαπημένο μας πρόγραμμα περιήγησης
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Κοινή χρήση συνδέσμου
|
||||||
shareMessage = Λήψη του “{ $name }” με το { -send-brand }: απλός και ασφαλής διαμοιρασμός αρχείων
|
shareMessage = Λήψη του “{ $name }” με το { -send-brand }: απλός και ασφαλής διαμοιρασμός αρχείων
|
||||||
trailheadPromo = Υπάρχει τρόπος να προστατέψετε το απόρρητό σας. Γίνετε μέλος του Firefox.
|
trailheadPromo = Υπάρχει τρόπος να προστατέψετε το απόρρητό σας. Γίνετε μέλος του Firefox.
|
||||||
learnMore = Μάθετε περισσότερα.
|
learnMore = Μάθετε περισσότερα.
|
||||||
|
downloadFlagged = Αυτός ο σύνδεσμος έχει απενεργοποιηθεί λόγω παραβίασης των όρων υπηρεσίας.
|
||||||
|
downloadConfirmTitle = Κάτι ακόμα
|
||||||
|
downloadConfirmDescription = Βεβαιωθείτε ότι το αρχείο προέρχεται από έμπιστο άτομο, καθώς δεν μπορούμε να επαληθεύσουμε ότι δεν θα βλάψει τη συσκευή σας.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Εμπιστεύομαι το άτομο που έστειλε το αρχείο
|
||||||
|
*[other] Εμπιστεύομαι το άτομο που έστειλε τα αρχεία
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Αναφορά ύποπτου αρχείου
|
||||||
|
*[other] Αναφορά ύποπτων αρχείων
|
||||||
|
}
|
||||||
|
reportDescription = Βοηθήστε μας να καταλάβουμε τι συμβαίνει. Τι νομίζετε ότι δεν πάει καλά με αυτά τα αρχεία;
|
||||||
|
reportUnknownDescription = Παρακαλούμε μεταβείτε στο URL του συνδέσμου που θέλετε να αναφέρετε και κάντε κλικ στο "{ reportFile }".
|
||||||
|
reportButton = Αναφορά
|
||||||
|
reportReasonMalware = Αυτά τα αρχεία περιέχουν κακόβουλο λογισμικό ή αποτελούν μέρος μιας επίθεσης ηλεκτρονικού ψαρέματος.
|
||||||
|
reportReasonPii = Αυτά τα αρχεία περιέχουν προσωπικές μου πληροφορίες ταυτοποίησης.
|
||||||
|
reportReasonAbuse = Αυτά τα αρχεία περιέχουν παράνομο ή καταχρηστικό περιεχόμενο.
|
||||||
|
reportReasonCopyright = Για να αναφέρετε παραβίαση πνευματικών δικαιωμάτων ή εμπορικών σημάτων, χρησιμοποιήστε τη διαδικασία που περιγράφεται σε <a>αυτή τη σελίδα</a>.
|
||||||
|
reportedTitle = Έγινε αναφορά των αρχείων
|
||||||
|
reportedDescription = Σας ευχαριστούμε. Λάβαμε την αναφορά σας για τα αρχεία.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = Importing…
|
importingFile = Importing…
|
||||||
encryptingFile = Encrypting…
|
encryptingFile = Encrypting…
|
||||||
decryptingFile = Decrypting…
|
decryptingFile = Decrypting…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, dated March 12, 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Select files to upload
|
addFilesButton = Select files to upload
|
||||||
|
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
|
||||||
uploadButton = Upload
|
uploadButton = Upload
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Drag and drop files
|
dragAndDropFiles = Drag and drop files
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Share link
|
||||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||||
learnMore = Learn more.
|
learnMore = Learn more.
|
||||||
|
downloadFlagged = This link has been disabled for violating the terms of service.
|
||||||
|
downloadConfirmTitle = One more thing
|
||||||
|
downloadConfirmDescription = Make sure you trust the person who sent you this file because we can’t verify that it will not harm your device.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] I trust the person who sent this file
|
||||||
|
*[other] I trust the person who sent these files
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Report this file as suspicious
|
||||||
|
*[other] Report these files as suspicious
|
||||||
|
}
|
||||||
|
reportDescription = Help us understand what’s going on. What do you think is wrong with these files?
|
||||||
|
reportUnknownDescription = Please go to the URL of the link you wish to report and click “{ reportFile }”.
|
||||||
|
reportButton = Report
|
||||||
|
reportReasonMalware = These files contain malware or are part of a phishing attack.
|
||||||
|
reportReasonPii = These files contain personally identifiable information about me.
|
||||||
|
reportReasonAbuse = These files contain illegal or abusive content.
|
||||||
|
reportReasonCopyright = To report copyright or trademark infringement, use the process described at <a>this page</a>.
|
||||||
|
reportedTitle = Files Reported
|
||||||
|
reportedDescription = Thank you. We have received your report on these files.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = Importing…
|
importingFile = Importing…
|
||||||
encryptingFile = Encrypting…
|
encryptingFile = Encrypting…
|
||||||
decryptingFile = Decrypting…
|
decryptingFile = Decrypting…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, dated March 12, 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Select files to upload
|
addFilesButton = Select files to upload
|
||||||
|
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
|
||||||
uploadButton = Upload
|
uploadButton = Upload
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Drag and drop files
|
dragAndDropFiles = Drag and drop files
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Share link
|
||||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||||
learnMore = Learn more.
|
learnMore = Learn more.
|
||||||
|
downloadFlagged = This link has been disabled for violating the terms of service.
|
||||||
|
downloadConfirmTitle = One more thing
|
||||||
|
downloadConfirmDescription = Make sure you trust the person who sent you this file because we can’t verify that it will not harm your device.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] I trust the person who sent this file
|
||||||
|
*[other] I trust the person who sent these files
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Report this file as suspicious
|
||||||
|
*[other] Report these files as suspicious
|
||||||
|
}
|
||||||
|
reportDescription = Help us understand what’s going on. What do you think is wrong with these files?
|
||||||
|
reportUnknownDescription = Please go to the url of the link you wish to report and click “{ reportFile }”.
|
||||||
|
reportButton = Report
|
||||||
|
reportReasonMalware = These files contain malware or are part of a phishing attack.
|
||||||
|
reportReasonPii = These files contain personally identifiable information about me.
|
||||||
|
reportReasonAbuse = These files contain illegal or abusive content.
|
||||||
|
reportReasonCopyright = To report copyright or trademark infringement, use the process described at <a>this page</a>.
|
||||||
|
reportedTitle = Files Reported
|
||||||
|
reportedDescription = Thank you. We have received your report on these files.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = Importing…
|
importingFile = Importing…
|
||||||
encryptingFile = Encrypting…
|
encryptingFile = Encrypting…
|
||||||
decryptingFile = Decrypting…
|
decryptingFile = Decrypting…
|
||||||
|
@ -109,6 +108,7 @@ legalDateStamp = Version 1.0, dated March 12, 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Select files to upload
|
addFilesButton = Select files to upload
|
||||||
|
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
|
||||||
uploadButton = Upload
|
uploadButton = Upload
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Drag and drop files
|
dragAndDropFiles = Drag and drop files
|
||||||
|
@ -145,3 +145,33 @@ shareLinkButton = Share link
|
||||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||||
learnMore = Learn more.
|
learnMore = Learn more.
|
||||||
|
downloadFlagged = This link has been disabled for violating the terms of service.
|
||||||
|
downloadConfirmTitle = One more thing
|
||||||
|
downloadConfirmDescription = Make sure you trust the person who sent you this file because we can’t verify that it will not harm your device.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] I trust the person who sent this file
|
||||||
|
*[other] I trust the person who sent these files
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Report this file as suspicious
|
||||||
|
*[other] Report these files as suspicious
|
||||||
|
}
|
||||||
|
reportDescription = Help us understand what’s going on. What do you think is wrong with these files?
|
||||||
|
reportUnknownDescription = Please go to the url of the link you wish to report and click “{ reportFile }”.
|
||||||
|
reportButton = Report
|
||||||
|
reportReasonMalware = These files contain malware or are part of a phishing attack.
|
||||||
|
reportReasonPii = These files contain personally identifiable information about me.
|
||||||
|
reportReasonAbuse = These files contain illegal or abusive content.
|
||||||
|
reportReasonCopyright = To report copyright or trademark infringement, use the process described at <a>this page</a>.
|
||||||
|
reportedTitle = Files Reported
|
||||||
|
reportedDescription = Thank you. We have received your report on these files.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Opinión
|
|
||||||
importingFile = Importando…
|
importingFile = Importando…
|
||||||
encryptingFile = Cifrando…
|
encryptingFile = Cifrando…
|
||||||
decryptingFile = Descifrando…
|
decryptingFile = Descifrando…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versión 1.0, con fecha 12 de marzo de 2019.
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Seleccionar archivos para subir
|
addFilesButton = Seleccionar archivos para subir
|
||||||
|
trustWarningMessage = Asegurate de que confiás en tu destinatario cuando compartís datos confidenciales.
|
||||||
uploadButton = Subir
|
uploadButton = Subir
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arrastrar y soltar archivos
|
dragAndDropFiles = Arrastrar y soltar archivos
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Compartir el enlace
|
||||||
shareMessage = Descargar "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
|
shareMessage = Descargar "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
|
||||||
trailheadPromo = Hay una forma de proteger tu privacidad. Unite a Firefox.
|
trailheadPromo = Hay una forma de proteger tu privacidad. Unite a Firefox.
|
||||||
learnMore = Conocer más.
|
learnMore = Conocer más.
|
||||||
|
downloadFlagged = Este enlace fue deshabilitado por violar los términos del servicio.
|
||||||
|
downloadConfirmTitle = Una cosa más
|
||||||
|
downloadConfirmDescription = Asegurate de confiar en la persona que te envió este archivo porque no podemos verificar que no va a dañar tu dispositivo.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Confío en la persona que envió este archivo
|
||||||
|
*[other] Confío en la persona que envió estos archivos
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Denunciar este archivo como sospechoso
|
||||||
|
*[other] Denunciar estos archivos como sospechosos
|
||||||
|
}
|
||||||
|
reportDescription = Ayudanos a entender lo que está pasando. ¿Qué creés que está mal con estos archivos?
|
||||||
|
reportUnknownDescription = Navegá a la url del enlace que querés denunciar y hacé clic en "{ reportFile }".
|
||||||
|
reportButton = Denunciar
|
||||||
|
reportReasonMalware = Estos archivos contienen programas dañinos o son parte de un fraude electrónico.
|
||||||
|
reportReasonPii = Estos archivos contienen información personal que me puede identificar.
|
||||||
|
reportReasonAbuse = Estos archivos contienen contenido ilegal o abusivo.
|
||||||
|
reportReasonCopyright = Para denunciar una infracción de derechos de autor o de marca registrada, seguí el proceso descrito en <a>esta página</a>.
|
||||||
|
reportedTitle = Archivos denunciados
|
||||||
|
reportedDescription = Gracias. Recibimos tu denuncia sobre estos archivos.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Comentarios
|
|
||||||
importingFile = Importando…
|
importingFile = Importando…
|
||||||
encryptingFile = Cifrando…
|
encryptingFile = Cifrando…
|
||||||
decryptingFile = Descifrando…
|
decryptingFile = Descifrando…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versión 1.0 del 12 de marzo de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Selecciona los archivos a subir
|
addFilesButton = Selecciona los archivos a subir
|
||||||
|
trustWarningMessage = Asegúrate de que confías en tu destinatario cuando compartas datos sensibles.
|
||||||
uploadButton = Subir
|
uploadButton = Subir
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arrastra y suelta archivos
|
dragAndDropFiles = Arrastra y suelta archivos
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Compartir enlace
|
||||||
shareMessage = Baja "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
|
shareMessage = Baja "{ $name }" con { -send-brand }: compartir archivos de forma simple y segura
|
||||||
trailheadPromo = Hay una forma de proteger tu privacidad. Únete a Firefox.
|
trailheadPromo = Hay una forma de proteger tu privacidad. Únete a Firefox.
|
||||||
learnMore = Aprender más.
|
learnMore = Aprender más.
|
||||||
|
downloadFlagged = Este enlace ha sido deshabilitado por violar los términos del servicio.
|
||||||
|
downloadConfirmTitle = Una cosa más
|
||||||
|
downloadConfirmDescription = Asegúrate de confiar en la persona que te envió este archivo porque no podemos verificar que no dañará tu dispositivo.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Confío en la persona que envió es archivo
|
||||||
|
*[other] Confío en la persona que envió estos archivos
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Reportar este archivo como sospechoso
|
||||||
|
*[other] Reportar estos archivos como sospechosos
|
||||||
|
}
|
||||||
|
reportDescription = Ayúdanos a entender lo que está pasando. ¿Qué crees que está mal con estos archivos?
|
||||||
|
reportUnknownDescription = Por favor, ve a la url del enlace que quieres reportar y haz clic en "{ reportFile }".
|
||||||
|
reportButton = Reportar
|
||||||
|
reportReasonMalware = Estos archivos contienen malware o son parte de un ataque de phishing.
|
||||||
|
reportReasonPii = Estos archivos contienen información personal identificable sobre mí.
|
||||||
|
reportReasonAbuse = Estos archivos contienen contenido ilegal o abusivo.
|
||||||
|
reportReasonCopyright = Para denunciar una infracción de derechos de autor o de marca registrada, sigue el proceso descrito en <a>esta página</a>.
|
||||||
|
reportedTitle = Archivos reportados
|
||||||
|
reportedDescription = Gracias. Hemos recibido tu reporte sobre estos archivos.
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
# 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 = Comentario
|
|
||||||
importingFile = Importando...
|
importingFile = Importando...
|
||||||
encryptingFile = Encriptando...
|
encryptingFile = Cifrando...
|
||||||
decryptingFile = Desencriptando...
|
decryptingFile = Descifrando...
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 descarga
|
[one] 1 descarga
|
||||||
|
@ -21,11 +20,11 @@ downloadButtonLabel = Descargar
|
||||||
downloadFinish = Descarga completa
|
downloadFinish = Descarga completa
|
||||||
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
||||||
sendYourFilesLink = Prueba Firefox Send
|
sendYourFilesLink = Prueba Firefox Send
|
||||||
errorPageHeader = ¡Se produjo un error!
|
errorPageHeader = ¡Se ha producido un error!
|
||||||
fileTooBig = Ese archivo es muy grande. Debería ocupar menos de { $size }.
|
fileTooBig = Ese archivo es muy grande. Debería ocupar menos de { $size }.
|
||||||
linkExpiredAlt = Enlace caducado
|
linkExpiredAlt = Enlace caducado
|
||||||
notSupportedHeader = Tu navegador no está admitido.
|
notSupportedHeader = Tu navegador no es compatible.
|
||||||
notSupportedLink = ¿Por qué no se admite mi navegador?
|
notSupportedLink = ¿Por qué mi navegador no es compatible?
|
||||||
notSupportedOutdatedDetail = Lamentablemente, esta versión de Firefox no admite la tecnología web que impulsa Firefox Send. Tendrás que actualizar tu navegador.
|
notSupportedOutdatedDetail = Lamentablemente, esta versión de Firefox no admite la tecnología web que impulsa Firefox Send. Tendrás que actualizar tu navegador.
|
||||||
updateFirefox = Actualizar Firefox
|
updateFirefox = Actualizar Firefox
|
||||||
deletePopupCancel = Cancelar
|
deletePopupCancel = Cancelar
|
||||||
|
@ -33,7 +32,7 @@ deleteButtonHover = Eliminar
|
||||||
footerLinkLegal = Legal
|
footerLinkLegal = Legal
|
||||||
footerLinkPrivacy = Privacidad
|
footerLinkPrivacy = Privacidad
|
||||||
footerLinkCookies = Cookies
|
footerLinkCookies = Cookies
|
||||||
passwordTryAgain = Contraseña incorrecta. Inténtelo de nuevo.
|
passwordTryAgain = Contraseña incorrecta. Inténtalo de nuevo.
|
||||||
javascriptRequired = Firefox Send requiere JavaScript
|
javascriptRequired = Firefox Send requiere JavaScript
|
||||||
whyJavascript = ¿Por qué Firefox Send requiere JavaScript?
|
whyJavascript = ¿Por qué Firefox Send requiere JavaScript?
|
||||||
enableJavascript = Por favor, activa JavaScript y vuelve a intentarlo.
|
enableJavascript = Por favor, activa JavaScript y vuelve a intentarlo.
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versión 1.0 del 12 de marzo de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Seleccionar archivos para subir
|
addFilesButton = Seleccionar archivos para subir
|
||||||
|
trustWarningMessage = Asegúrate de que confías en tu destinatario cuando compartas datos sensibles.
|
||||||
uploadButton = Subir
|
uploadButton = Subir
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arrastrar y soltar archivos
|
dragAndDropFiles = Arrastrar y soltar archivos
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Compartir enlace
|
||||||
shareMessage = Descargar “{ $name }” con { -send-brand }: comparte archivos de forma segura y sencilla
|
shareMessage = Descargar “{ $name }” con { -send-brand }: comparte archivos de forma segura y sencilla
|
||||||
trailheadPromo = Existe la forma de proteger tu privacidad. Únete a Firefox.
|
trailheadPromo = Existe la forma de proteger tu privacidad. Únete a Firefox.
|
||||||
learnMore = Saber más.
|
learnMore = Saber más.
|
||||||
|
downloadFlagged = Este enlace ha sido desactivado por violar los términos del servicio.
|
||||||
|
downloadConfirmTitle = Una cosa más
|
||||||
|
downloadConfirmDescription = Asegúrate de confiar en la persona que te envió este archivo porque no podemos verificar que no va a dañar tu dispositivo.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Confío en la persona que envió este archivo
|
||||||
|
*[other] Confío en la persona que envió estos archivos
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Denunciar este archivo como sospechoso
|
||||||
|
*[other] Denunciar estos archivos como sospechosos
|
||||||
|
}
|
||||||
|
reportDescription = Ayúdanos a entender lo que está pasando. ¿Qué crees que está mal con estos archivos?
|
||||||
|
reportUnknownDescription = Por favor, ve a la url del enlace que quieres denunciar y haz clic en “{ reportFile }”.
|
||||||
|
reportButton = Denunciar
|
||||||
|
reportReasonMalware = Estos archivos contienen malware o son parte de un ataque de phishing.
|
||||||
|
reportReasonPii = Estos archivos contienen información personal identificable sobre mí.
|
||||||
|
reportReasonAbuse = Estos archivos tienen contenido ilegal o abusivo.
|
||||||
|
reportReasonCopyright = Para denunciar una infracción de derechos de autor o marca registrada, sigue el proceso descrito en <a>esta página</a>.
|
||||||
|
reportedTitle = Archivos denunciados
|
||||||
|
reportedDescription = Gracias. Hemos recibido tu denuncia sobre estos archivos.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Palaute
|
|
||||||
importingFile = Tuodaan…
|
importingFile = Tuodaan…
|
||||||
encryptingFile = Salataan...
|
encryptingFile = Salataan...
|
||||||
decryptingFile = Puretaan salausta...
|
decryptingFile = Puretaan salausta...
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versio 1.0, päivätty 13. maaliskuuta 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } pv { $hours } t { $minutes } min
|
expiresDaysHoursMinutes = { $days } pv { $hours } t { $minutes } min
|
||||||
addFilesButton = Valitse lähetettävät tiedostot
|
addFilesButton = Valitse lähetettävät tiedostot
|
||||||
|
trustWarningMessage = Varmista, että luotat vastaanottajaan jakaessasi arkaluontoisia tietoja.
|
||||||
uploadButton = Lähetä
|
uploadButton = Lähetä
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Vedä ja pudota tiedostot
|
dragAndDropFiles = Vedä ja pudota tiedostot
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Jaa linkki
|
||||||
shareMessage = Lataa tiedosto ”{ $name }” { -send-brand } -palvelusta: yksinkertaista ja turvallista tiedostonjakoa
|
shareMessage = Lataa tiedosto ”{ $name }” { -send-brand } -palvelusta: yksinkertaista ja turvallista tiedostonjakoa
|
||||||
trailheadPromo = On tapa suojata yksityisyyttään. Liity Firefoxiin.
|
trailheadPromo = On tapa suojata yksityisyyttään. Liity Firefoxiin.
|
||||||
learnMore = Lue lisää.
|
learnMore = Lue lisää.
|
||||||
|
downloadFlagged = Tämä linkki on poistettu käytöstä palvelun käyttöehtojen rikkomisen vuoksi.
|
||||||
|
downloadConfirmTitle = Vielä yksi asia
|
||||||
|
downloadConfirmDescription = Varmista, että luotat sinulle tämän tiedoston lähettäneeseen henkilöön, koska emme voi vahvistaa, ettei kyseinen tiedosto vahingoita laitettasi.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Luotan henkilöön, joka lähetti tämän tiedoston
|
||||||
|
*[other] Luotan henkilöön, joka lähetti nämä tiedostot
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Ilmoita tämä tiedosto epäilyttävänä
|
||||||
|
*[other] Ilmoita nämä tiedostot epäilyttävinä
|
||||||
|
}
|
||||||
|
reportDescription = Auta meitä ymmärtämään mitä tapahtuu. Mikä on mielestäsi vialla näissä tiedostoissa?
|
||||||
|
reportUnknownDescription = Siirry sen linkin osoitteeseen, josta haluat tehdä ilmoituksen, ja napsauta “{ reportFile }”.
|
||||||
|
reportButton = Ilmoita
|
||||||
|
reportReasonMalware = Nämä tiedostot sisältävät haittaohjelmia tai ovat osa tietojenkalasteluhyökkäystä.
|
||||||
|
reportReasonPii = Nämä tiedostot sisältävät henkilökohtaisia tietoja minusta.
|
||||||
|
reportReasonAbuse = Nämä tiedostot sisältävät laitonta tai loukkaavaa sisältöä.
|
||||||
|
reportReasonCopyright = Ilmoita tekijänoikeuksien tai tavaramerkkien loukkauksista <a>tällä sivulla</a> kuvatun prosessin mukaisesti.
|
||||||
|
reportedTitle = Tiedostot ilmoitettu
|
||||||
|
reportedDescription = Kiitos. Olemme vastaanottaneet raporttisi näistä tiedostoista.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Votre avis
|
|
||||||
importingFile = Importation…
|
importingFile = Importation…
|
||||||
encryptingFile = Chiffrement…
|
encryptingFile = Chiffrement…
|
||||||
decryptingFile = Déchiffrement…
|
decryptingFile = Déchiffrement…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0 du 12 mars 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
|
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
|
||||||
addFilesButton = Sélectionnez des fichiers à envoyer
|
addFilesButton = Sélectionnez des fichiers à envoyer
|
||||||
|
trustWarningMessage = Assurez-vous de faire confiance au destinataire lorsque vous partagez des données sensibles.
|
||||||
uploadButton = Envoyer
|
uploadButton = Envoyer
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Glissez-déposez des fichiers
|
dragAndDropFiles = Glissez-déposez des fichiers
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Partager le lien
|
||||||
shareMessage = Télécharger « { $name } » avec { -send-brand } : un moyen simple et sûr de partager des fichiers
|
shareMessage = Télécharger « { $name } » avec { -send-brand } : un moyen simple et sûr de partager des fichiers
|
||||||
trailheadPromo = Il existe un moyen de protéger votre vie privée. Rejoignez Firefox.
|
trailheadPromo = Il existe un moyen de protéger votre vie privée. Rejoignez Firefox.
|
||||||
learnMore = En savoir plus.
|
learnMore = En savoir plus.
|
||||||
|
downloadFlagged = Ce lien a été désactivé en raison d’une violation des conditions d’utilisation.
|
||||||
|
downloadConfirmTitle = Une dernière chose
|
||||||
|
downloadConfirmDescription = Assurez-vous de faire confiance à la personne qui vous a envoyé ce fichier, car nous ne pouvons pas vérifier qu’il n’endommagera pas votre appareil.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Je fais confiance à la personne qui a envoyé ce fichier
|
||||||
|
*[other] Je fais confiance à la personne qui a envoyé ces fichiers
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Signaler ce fichier comme suspect
|
||||||
|
*[other] Signaler ces fichiers comme suspects
|
||||||
|
}
|
||||||
|
reportDescription = Aidez-nous à comprendre ce qui se passe. Selon vous, quel est le problème avec ces fichiers ?
|
||||||
|
reportUnknownDescription = Accédez à l’adresse du lien que vous souhaitez signaler et cliquez sur « { reportFile } ».
|
||||||
|
reportButton = Signaler
|
||||||
|
reportReasonMalware = Ces fichiers contiennent des logiciels malveillants ou contribuent à une attaque de hameçonnage.
|
||||||
|
reportReasonPii = Ces fichiers contiennent des informations personnelles qui me concernent.
|
||||||
|
reportReasonAbuse = Ces fichiers contiennent du contenu illégal ou abusif.
|
||||||
|
reportReasonCopyright = Pour signaler une violation de droit d’auteur ou de marque, suivez la procédure décrite sur <a>cette page</a>.
|
||||||
|
reportedTitle = Fichiers signalés
|
||||||
|
reportedDescription = Merci, nous avons reçu votre signalement relatif à ces fichiers.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Kommentaar
|
|
||||||
importingFile = Ymportearje…
|
importingFile = Ymportearje…
|
||||||
encryptingFile = Fersiferje…
|
encryptingFile = Fersiferje…
|
||||||
decryptingFile = Untsiferje…
|
decryptingFile = Untsiferje…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Ferzje 1.0, datearre 12 maart 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }o { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }o { $minutes }m
|
||||||
addFilesButton = Bestannen selektearje om op te laden
|
addFilesButton = Bestannen selektearje om op te laden
|
||||||
|
trustWarningMessage = Soargje derfoar dat jo jo ûntfanger fertrouwe wannear't jo gefoelige gegevens diele.
|
||||||
uploadButton = Oplade
|
uploadButton = Oplade
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Sleep en pleats bestannen
|
dragAndDropFiles = Sleep en pleats bestannen
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Keppeling diele
|
||||||
shareMessage = Download ‘{ $name }’ mei { -send-brand }: ienfâldich, feilich bestannen diele
|
shareMessage = Download ‘{ $name }’ mei { -send-brand }: ienfâldich, feilich bestannen diele
|
||||||
trailheadPromo = Der is in manier om jo privacy te beskermjen. Doch mei mei Firefox.
|
trailheadPromo = Der is in manier om jo privacy te beskermjen. Doch mei mei Firefox.
|
||||||
learnMore = Mear ynfo.
|
learnMore = Mear ynfo.
|
||||||
|
downloadFlagged = Dizze keppeling is útskeakele fanwegen skeining fan de servicebetingsten.
|
||||||
|
downloadConfirmTitle = Noch ien ding
|
||||||
|
downloadConfirmDescription = Soargje derfoar dat jo de persoan fertrouwe dy't jo dit bestân stjoerd hat, omdat wy net ferifiearje kinne dat it jo apparaat net skansearje sil.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Ik fertrou de persoan dy't dit bestân stjoerd hat
|
||||||
|
*[other] Ik fertrou de persoan dy't dizze bestannen stjoerd hat
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Dit bestân as fertocht rapportearje
|
||||||
|
*[other] Dizze bestannen as fertocht rapportearje
|
||||||
|
}
|
||||||
|
reportDescription = Help ús te begripen wat der oan de hân is. Wat is der neffens jo mis mei dizze bestannen?
|
||||||
|
reportUnknownDescription = Gean nei de URL fan de keppeling dy't jo melde wolle en klik op ‘{ reportFile }’.
|
||||||
|
reportButton = Rapportearje
|
||||||
|
reportReasonMalware = Dizze bestannen befetsje malware of binne part fan in phishingoanfal.
|
||||||
|
reportReasonPii = Dizze bestannen befetsje persoanlik identifisearjende ynformaasje oer my.
|
||||||
|
reportReasonAbuse = Dizze bestannen befetsje yllegale of beledigjende ynhâld.
|
||||||
|
reportReasonCopyright = Brûk de proseduere op <a>dizze side</a> om ynbreuk op auteursrjochten of hannelsmerken te melden.
|
||||||
|
reportedTitle = Bestannen rapportearre
|
||||||
|
reportedDescription = Tank. Wy hawwe jo rapport oer dizze bestannen ûntfongen.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Je’ejey
|
|
||||||
importingFile = Ojegueruhína…
|
importingFile = Ojegueruhína…
|
||||||
encryptingFile = Mo’ãmby…
|
encryptingFile = Mo’ãmby…
|
||||||
decryptingFile = Ñemo’ã’o…
|
decryptingFile = Ñemo’ã’o…
|
||||||
|
@ -53,7 +52,7 @@ passwordSetError = Ndaikatúi oikóvo ko ñe’ẽñemi
|
||||||
-send-short-brand = Send
|
-send-short-brand = Send
|
||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
introTitle = Marandurenda ñemoambue hasy'ỹ ha ñemiguáva
|
introTitle = Marandurenda ñemoambue hasy’ỹ ha ñemiguáva
|
||||||
introDescription = { -send-brand } omoherakuãkuaa marandurenda papapýpe ñepyrũ guive opa peve ha juajuha opareíva ijehegui. Ikatu oreko ñemihápe emoherakuãva ha ehecháta mba’éicha ne mba’ekuéra noĩri ñandutípe opa ára.
|
introDescription = { -send-brand } omoherakuãkuaa marandurenda papapýpe ñepyrũ guive opa peve ha juajuha opareíva ijehegui. Ikatu oreko ñemihápe emoherakuãva ha ehecháta mba’éicha ne mba’ekuéra noĩri ñandutípe opa ára.
|
||||||
notifyUploadEncryptDone = Ne marandurenda oñemo’ã ha ikatúma emondo
|
notifyUploadEncryptDone = Ne marandurenda oñemo’ã ha ikatúma emondo
|
||||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Mba’epyahu 1.0, 12 jasyapy 2019 peguare
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Eiporavo marandurenda ehupi hag̃ua
|
addFilesButton = Eiporavo marandurenda ehupi hag̃ua
|
||||||
|
trustWarningMessage = Ejerovia añetépa emondotaháre emoherakuãvo mba’ekuaarã kañyguáva.
|
||||||
uploadButton = Hupi
|
uploadButton = Hupi
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Embosyryry ha epoi marandurenda
|
dragAndDropFiles = Embosyryry ha epoi marandurenda
|
||||||
|
@ -137,7 +137,7 @@ accountBenefitTimeLimit =
|
||||||
*[other] Eguereko juajuha hendyhápe { $count } ára
|
*[other] Eguereko juajuha hendyhápe { $count } ára
|
||||||
}
|
}
|
||||||
accountBenefitSync = Eñangareko marandurenda moherakuãmbyrére oimeraẽ mba’e’oka guive.
|
accountBenefitSync = Eñangareko marandurenda moherakuãmbyrére oimeraẽ mba’e’oka guive.
|
||||||
accountBenefitMoz = Eikuaa ambue { -mozilla } mba'epytyvõrã
|
accountBenefitMoz = Eikuaa ambue { -mozilla } mba’epytyvõrã
|
||||||
signOut = Emboty tembiapo
|
signOut = Emboty tembiapo
|
||||||
okButton = OK
|
okButton = OK
|
||||||
downloadingTitle = Oñemboguejyhína
|
downloadingTitle = Oñemboguejyhína
|
||||||
|
@ -150,6 +150,36 @@ downloadFirefoxPromo = Ipyahúva { -firefox } ome’ẽse ndéve { -send-short-b
|
||||||
shareLinkDescription = Emoherakuã juajuha ne mba’e’oka ndive:
|
shareLinkDescription = Emoherakuã juajuha ne mba’e’oka ndive:
|
||||||
shareLinkButton = Emoherakuã juajuha
|
shareLinkButton = Emoherakuã juajuha
|
||||||
# $name is the name of the file
|
# $name is the name of the file
|
||||||
shareMessage = Emboguejy “{ $name }” { -send-brand } ndive: emoherakuã marandurenda tasy'ỹ ha tekorosãme
|
shareMessage = Emboguejy “{ $name }” { -send-brand } ndive: emoherakuã marandurenda tasy’ỹ ha tekorosãme
|
||||||
trailheadPromo = Mba’éichapa emo’ãta ne ñemigua. Eipuru Firefox.
|
trailheadPromo = Mba’éichapa emo’ãta ne ñemigua. Eipuru Firefox.
|
||||||
learnMore = Kuaave.
|
learnMore = Kuaave.
|
||||||
|
downloadFlagged = Ko juajuha ojepe’áma ombyai rupi mba’epytyvõrã ñemboguata.
|
||||||
|
downloadConfirmTitle = Peteĩ mba’eve
|
||||||
|
downloadConfirmDescription = Ejerovia añetépa pe tapicha oguerukáva ndéve ko marandurenda ndaikatúire rohechajey ne mba’e’oka.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Ajerovia tapicháre orukáva ko marandurenda
|
||||||
|
*[other] Ajerovia umi tapicha orukáva ko’ã marandurenda
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Ehechauka ko marandurenda imarãkuaávarõ
|
||||||
|
*[other] Ehechauka ko’ã marandurenda imarãkuaávarõ
|
||||||
|
}
|
||||||
|
reportDescription = Orepytyvõ roikumbývo mba’épa oiko. ¿Mba’épa ere oĩvaiha ko’ã marandurenda ndive?
|
||||||
|
reportUnknownDescription = Eikundaha pe url juajuha ekoroiseha ndive ha eikutu “{ reportFile }”.
|
||||||
|
reportButton = Ekorói
|
||||||
|
reportReasonMalware = Ko’ã marandurenda oreko tembiaporape imarãva térã oñembyaikuaáva.
|
||||||
|
reportReasonPii = Ko’ã marandurenda oreko marandu nemba’etéva che kuaaukakuaáva.
|
||||||
|
reportReasonAbuse = Ko’ã marandurenda oreko tetepy ivai térã imbaretéva.
|
||||||
|
reportReasonCopyright = Ekoróitarõ derécho ñembyaíre térã marca registrada, ehecha jehaipyre <a>ko kuatiaroguépe</a>.
|
||||||
|
reportedTitle = Marandurenda jekoroihague
|
||||||
|
reportedDescription = Aguyje. Og̃uahẽ nde jekorói ko’ã marandurenda rehegua.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = משוב
|
|
||||||
importingFile = מתבצע ייבוא…
|
importingFile = מתבצע ייבוא…
|
||||||
encryptingFile = מתבצעת הצפנה...
|
encryptingFile = מתבצעת הצפנה...
|
||||||
decryptingFile = מתבצע פענוח...
|
decryptingFile = מתבצע פענוח...
|
||||||
|
@ -119,6 +118,7 @@ legalDateStamp = גרסה 1.0, בתאריך 12 במרץ 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } ימים { $hours } שעות { $minutes } דקות
|
expiresDaysHoursMinutes = { $days } ימים { $hours } שעות { $minutes } דקות
|
||||||
addFilesButton = בחירת קבצים להעלאה
|
addFilesButton = בחירת קבצים להעלאה
|
||||||
|
trustWarningMessage = עליך לוודא שבעת שיתוף מידע רגיש הנמענים שלך הם מהימנים.
|
||||||
uploadButton = העלאה
|
uploadButton = העלאה
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = גרירה והשלכת קבצים
|
dragAndDropFiles = גרירה והשלכת קבצים
|
||||||
|
@ -156,3 +156,31 @@ shareLinkButton = שיתוף קישור
|
||||||
shareMessage = הורדת ״{ $name }״ עם { -send-brand }: שיתוף קבצים פשוט ובטוח
|
shareMessage = הורדת ״{ $name }״ עם { -send-brand }: שיתוף קבצים פשוט ובטוח
|
||||||
trailheadPromo = ישנן דרכים נוספות להגן על הפרטיות שלכם. הצטרפו אל Firefox.
|
trailheadPromo = ישנן דרכים נוספות להגן על הפרטיות שלכם. הצטרפו אל Firefox.
|
||||||
learnMore = מידע נוסף.
|
learnMore = מידע נוסף.
|
||||||
|
downloadFlagged = קישור זה הושבת מכיוון שהפר את תנאי השירות.
|
||||||
|
downloadConfirmTitle = דבר אחד אחרון
|
||||||
|
downloadConfirmDescription = נא לוודא שמי ששלח לך את הקובץ הזה מהימן כיוון שאין לנו אפשרות לוודא שהוא לא יפגע במכשיר שלך.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] שולח הקובץ הזה מהימן
|
||||||
|
*[other] שולח הקבצים האלו מהימן
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] דיווח על קובץ זה כחשוד
|
||||||
|
*[other] דיווח על קבצים אלו כחשודים
|
||||||
|
}
|
||||||
|
reportUnknownDescription = נא לגשת אל כתובת הקישור עליו ברצונך לדווח וללחוץ על ״{ reportFile }״.
|
||||||
|
reportButton = דיווח
|
||||||
|
reportReasonMalware = קבצים אלה מכילים תוכנה זדונית או שהינם חלק מהתקפת דיוג.
|
||||||
|
reportReasonAbuse = קבצים אלה מכילים תוכן בלתי חוקי או פוגע.
|
||||||
|
reportReasonCopyright = כדי לדווח על הפרה של זכויות יוצרים או סימני מסחר, יש להשתמש בתהליך המתואר ב<a>דף זה</a>.
|
||||||
|
reportedTitle = קבצים שדווחו
|
||||||
|
reportedDescription = תודה. קיבלנו את הדיווח שלך על קבצים אלה.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Povratne informacije
|
|
||||||
importingFile = Uvoz…
|
importingFile = Uvoz…
|
||||||
encryptingFile = Šifriranje …
|
encryptingFile = Šifriranje …
|
||||||
decryptingFile = Dešifriranje …
|
decryptingFile = Dešifriranje …
|
||||||
|
@ -124,6 +123,7 @@ legalDateStamp = Verzija 1.0, od 12. ožujka 2019. godine
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }s { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }s { $minutes }m
|
||||||
addFilesButton = Odaberi datoteke za prijenos
|
addFilesButton = Odaberi datoteke za prijenos
|
||||||
|
trustWarningMessage = Budite sigurni da vjerujete primatelju prije dijeljenja osjetljivih podataka.
|
||||||
uploadButton = Prijenos
|
uploadButton = Prijenos
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Povuci i ispusti datoteke
|
dragAndDropFiles = Povuci i ispusti datoteke
|
||||||
|
@ -162,3 +162,35 @@ shareLinkButton = Dijeli poveznicu
|
||||||
shareMessage = Preuzmi „{ $name }” pomoću { -send-brand }: jednostavno i sigurno dijeljenje datoteka
|
shareMessage = Preuzmi „{ $name }” pomoću { -send-brand }: jednostavno i sigurno dijeljenje datoteka
|
||||||
trailheadPromo = Postoji način, kako zaštititi vlastitu privatnost. Pridruži se Firefoxu.
|
trailheadPromo = Postoji način, kako zaštititi vlastitu privatnost. Pridruži se Firefoxu.
|
||||||
learnMore = Saznaj više.
|
learnMore = Saznaj više.
|
||||||
|
downloadFlagged = Poveznica je onemogućena zbog kršenja uvjeta pružanja usluge.
|
||||||
|
downloadConfirmTitle = Još jedna stvar
|
||||||
|
downloadConfirmDescription = Budite sigurni da vjerujete osobi koja vam je poslala ovu datoteku, zato što mi ne možemo provjeriti da li će ova datoteka naštetiti vašem uređaju.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Vjerujem osobi koja je poslala ove datoteke
|
||||||
|
[few] Vjerujem osobi koja je poslala ove datoteke
|
||||||
|
*[other] Vjerujem osobi koja je poslala ove datoteke
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Prijavi ove datoteke kao sumnjive
|
||||||
|
[few] Prijavi ove datoteke kao sumnjive
|
||||||
|
*[other] Prijavi ove datoteke kao sumnjive
|
||||||
|
}
|
||||||
|
reportDescription = Pomozite nam da shvatimo što se dešava. Zašto mislite da nešto nije u redu s ovim datotekama?
|
||||||
|
reportUnknownDescription = Idite na poveznicu koju želite prijaviti i kliknite “{ reportFile }”.
|
||||||
|
reportButton = Prijavi datoteku
|
||||||
|
reportReasonMalware = Ove datoteke sadrže zlonamjerni softver ili su dio napada za krađu identiteta.
|
||||||
|
reportReasonPii = Ove datoteke sadrže moje osobne podatke.
|
||||||
|
reportReasonAbuse = Ove datoteke sadrže ilegalni ili nasilni sadržaj.
|
||||||
|
reportReasonCopyright = Kako biste prijavili kršenje autorskih prava, koristite proces opisan na <a>ovoj stranici</a>.
|
||||||
|
reportedTitle = Datoteke prijavljene
|
||||||
|
reportedDescription = Hvala vam. Primili smo vašu prijavu za ove datoteke.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Komentar
|
|
||||||
importingFile = Importuje so...
|
importingFile = Importuje so...
|
||||||
encryptingFile = Zaklučuje so...
|
encryptingFile = Zaklučuje so...
|
||||||
decryptingFile = Dešifruje so...
|
decryptingFile = Dešifruje so...
|
||||||
|
@ -132,6 +131,7 @@ legalDateStamp = Wersija 1.0 wot 12. měrca 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Dataje za nahrawanje wubrać
|
addFilesButton = Dataje za nahrawanje wubrać
|
||||||
|
trustWarningMessage = Wy měł přijimarjej dowěrić, hdyž sensibelne daty dźěliće.
|
||||||
uploadButton = Nahrać
|
uploadButton = Nahrać
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Ćehńće a wotkładźće dataje
|
dragAndDropFiles = Ćehńće a wotkładźće dataje
|
||||||
|
@ -171,3 +171,37 @@ shareLinkButton = Wotkaz dźělić
|
||||||
shareMessage = Sćehńće „{ $name }“ z { -send-brand }: jednore, wěste dźělenje datajow
|
shareMessage = Sćehńće „{ $name }“ z { -send-brand }: jednore, wěste dźělenje datajow
|
||||||
trailheadPromo = Je móžnosć, wašu priwatnosć škitać. Přińdźće k Firefox.
|
trailheadPromo = Je móžnosć, wašu priwatnosć škitać. Přińdźće k Firefox.
|
||||||
learnMore = Dalše informacije.
|
learnMore = Dalše informacije.
|
||||||
|
downloadFlagged = Tutón wotkaz je so přestupjenja wužiwanskich wuměnjenjow dla znjemóžnił.
|
||||||
|
downloadConfirmTitle = Jedna wěc hišće
|
||||||
|
downloadConfirmDescription = Wy měł wotpósłarjej tuteje dataje dowěrić, dokelž njemóžemy přepruwować, hač to wašemu gratej wadźi.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Dowěrju wosobje, kotraž je tutu dataju pósłała
|
||||||
|
[two] Dowěrju wosobje, kotraž je tutej dataji pósłała
|
||||||
|
[few] Dowěrju wosobje, kotraž je tute dataje pósłała
|
||||||
|
*[other] Dowěrju wosobje, kotraž je tute dataje pósłała
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Tutu dataju jako podhladnu zdźělić
|
||||||
|
[two] Tutej dataji jako podhladnej zdźělić
|
||||||
|
[few] Tute dataje jako podhladne zdźělić
|
||||||
|
*[other] Tute dataje jako podhladne zdźělić
|
||||||
|
}
|
||||||
|
reportDescription = Pomhajće nam rozumić, što so stawa. Što po wašim zdaću z tutymi datajemi w porjadku njeje?
|
||||||
|
reportUnknownDescription = Dźiće prošu k URL wotkaza, kotryž chceće zdźělić a klikńće na „{ reportFile }“.
|
||||||
|
reportButton = Zdźělić
|
||||||
|
reportReasonMalware = Tute dataje škódnu softwaru wobsahuja abo su dźěl nadpada kradnjenja datow.
|
||||||
|
reportReasonPii = Tute dataje wosobinske informacije wo mni, kotrež móža mje identifikować.
|
||||||
|
reportReasonAbuse = Tute dataje njedowoleny abo ranjacy wobsah wobsahuja.
|
||||||
|
reportReasonCopyright = Zo byšće zranjenje awtorskeho prawa abo prawa wikowanskich znamjenjow zdźělił, wužiwajće postupowanje, kotrež so na <a>tutej stronje</a> wopisuje.
|
||||||
|
reportedTitle = Dataje su zdźělene
|
||||||
|
reportedDescription = Wulki dźak. Smy wašu rozprawu wo tutych datajach dóstali.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Visszajelzés
|
|
||||||
importingFile = Importálás…
|
importingFile = Importálás…
|
||||||
encryptingFile = Titkosítás…
|
encryptingFile = Titkosítás…
|
||||||
decryptingFile = Visszafejtés…
|
decryptingFile = Visszafejtés…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = 1.0-s verzió, kelt 2019. március 12-én
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }n { $hours }ó { $minutes }p
|
expiresDaysHoursMinutes = { $days }n { $hours }ó { $minutes }p
|
||||||
addFilesButton = Válassza ki a feltöltendő fájlokat
|
addFilesButton = Válassza ki a feltöltendő fájlokat
|
||||||
|
trustWarningMessage = Érzékeny adatok megosztásakor győződjön meg róla, hogy megbízik-e a címzettben.
|
||||||
uploadButton = Feltöltés
|
uploadButton = Feltöltés
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Húzza ide a fájlokat
|
dragAndDropFiles = Húzza ide a fájlokat
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Hivatkozás megosztása
|
||||||
shareMessage = „{ $name }” letöltése a { -send-brand } segítségével: egyszerű, biztonságos fájlmegosztás
|
shareMessage = „{ $name }” letöltése a { -send-brand } segítségével: egyszerű, biztonságos fájlmegosztás
|
||||||
trailheadPromo = Védje meg a magánszféráját. Csatlakozzon a Firefoxhoz.
|
trailheadPromo = Védje meg a magánszféráját. Csatlakozzon a Firefoxhoz.
|
||||||
learnMore = További tudnivalók.
|
learnMore = További tudnivalók.
|
||||||
|
downloadFlagged = Ezt a hivatkozást a szolgáltatási feltételek megsértése miatt letiltottuk.
|
||||||
|
downloadConfirmTitle = Még egy dolog
|
||||||
|
downloadConfirmDescription = Győződjön meg arról, hogy megbízik-e abban, aki küldte a fájlt, mert nem tudjuk ellenőrizni, hogy nem okoz-e kárt az eszközén.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Megbízom abban a személyben, aki elküldte ezt a fájlt
|
||||||
|
*[other] Megbízom abban a személyben, aki elküldte ezeket a fájlokat
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Fájl jelentése gyanúsként
|
||||||
|
*[other] Fájlok jelentése gyanúsként
|
||||||
|
}
|
||||||
|
reportDescription = Segítsen megérteni, hogy mi a helyzet. Ön szerint mi a baj ezekkel a fájlokkal?
|
||||||
|
reportUnknownDescription = Ugorjon a jelentendő hivatkozás URL-jéhez, és kattintson a „{ reportFile }” gombra.
|
||||||
|
reportButton = Jelentés
|
||||||
|
reportReasonMalware = Ezek a fájlok rosszindulatú programokat tartalmaznak, vagy adathalász támadás részét képezik.
|
||||||
|
reportReasonPii = Ezek a fájlok személyesen azonosítható információkat tartalmaznak rólam.
|
||||||
|
reportReasonAbuse = Ezek a fájlok illegális vagy visszaélésszerű tartalmúak.
|
||||||
|
reportReasonCopyright = A szerzői jogok vagy védjegyek megsértésének jelentéséhez használja az <a>ezen az oldalon</a> írt folyamatot.
|
||||||
|
reportedTitle = Fájlok jelentve
|
||||||
|
reportedDescription = Köszönjük. Megkaptuk a jelentését ezekről a fájlokról.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Reaction
|
|
||||||
importingFile = Importation…
|
importingFile = Importation…
|
||||||
encryptingFile = Cryptation...
|
encryptingFile = Cryptation...
|
||||||
decryptingFile = Decryptation…
|
decryptingFile = Decryptation…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0 del 12 martio 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Selige le files a incargar
|
addFilesButton = Selige le files a incargar
|
||||||
|
trustWarningMessage = Verifica que tu te fide a tu destinatario quando tu comparti datos sensibile.
|
||||||
uploadButton = Incargar
|
uploadButton = Incargar
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Traher e deponer files
|
dragAndDropFiles = Traher e deponer files
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Condivide ligamine
|
||||||
shareMessage = Discarga “{ $name }” con { -send-brand }: condivide files in modo simple e secur
|
shareMessage = Discarga “{ $name }” con { -send-brand }: condivide files in modo simple e secur
|
||||||
trailheadPromo = Il ha un via pro proteger tu confidentialitate. Junge te a Firefox!
|
trailheadPromo = Il ha un via pro proteger tu confidentialitate. Junge te a Firefox!
|
||||||
learnMore = Saper plus.
|
learnMore = Saper plus.
|
||||||
|
downloadFlagged = Iste ligamine ha essite disactivate per violation del terminos de servicio.
|
||||||
|
downloadConfirmTitle = Un altere cosa
|
||||||
|
downloadConfirmDescription = Verifica que tu te fide al persona qui te inviava iste file, perque nos non pote verificar que illo non violara tu apparato.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Io me fide al persona qui inviava iste file
|
||||||
|
*[other] Io me fide al persona qui inviava iste files
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] reportar iste file como suspecte
|
||||||
|
*[other] reportar iste files como suspecte
|
||||||
|
}
|
||||||
|
reportDescription = Adjuta nos a comprender lo que eveni. Que pensa tu es problematic con iste files?
|
||||||
|
reportUnknownDescription = Va al URL del ligamine que tu desira signalar e clicca “{ reportFile }”.
|
||||||
|
reportButton = Reportar
|
||||||
|
reportReasonMalware = Iste files contine malware o es parte de un attacco fraudulente.
|
||||||
|
reportReasonPii = Iste files contine informationes personal identificabile re me.
|
||||||
|
reportReasonAbuse = Iste files contine contento illegal o abusive.
|
||||||
|
reportReasonCopyright = Pro signalar violation de derectos de autor o marca de fabrica, usa le procedura describite a <a>iste pagina</a>.
|
||||||
|
reportedTitle = Files reportate
|
||||||
|
reportedDescription = Gratias. Nos ha recipite tu reporto sur iste files.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Saran
|
|
||||||
importingFile = Mengimpor…
|
importingFile = Mengimpor…
|
||||||
encryptingFile = Mengenkripsi...
|
encryptingFile = Mengenkripsi...
|
||||||
decryptingFile = Mendekripsi...
|
decryptingFile = Mendekripsi...
|
||||||
|
@ -108,6 +107,7 @@ legalDateStamp = Versi 1.0, tertanggal 12 Maret 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }h { $hours }j { $minutes }m
|
expiresDaysHoursMinutes = { $days }h { $hours }j { $minutes }m
|
||||||
addFilesButton = Pilih berkas untuk diunggah
|
addFilesButton = Pilih berkas untuk diunggah
|
||||||
|
trustWarningMessage = Pastikan Anda mempercayai penerima Anda saat berbagi data sensitif.
|
||||||
uploadButton = Unggah
|
uploadButton = Unggah
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Seret dan jatuhkan berkas
|
dragAndDropFiles = Seret dan jatuhkan berkas
|
||||||
|
@ -144,3 +144,31 @@ shareLinkButton = Bagikan tautan
|
||||||
shareMessage = Unduh "{ $name }" dengan { -send-brand }: berbagi berkas dengan sederhana dan aman
|
shareMessage = Unduh "{ $name }" dengan { -send-brand }: berbagi berkas dengan sederhana dan aman
|
||||||
trailheadPromo = Ada cara untuk melindungi privasi Anda. Bergabunglah dengan Firefox.
|
trailheadPromo = Ada cara untuk melindungi privasi Anda. Bergabunglah dengan Firefox.
|
||||||
learnMore = Pelajari lebih lanjut.
|
learnMore = Pelajari lebih lanjut.
|
||||||
|
downloadFlagged = Tautan ini telah dinonaktifkan karena melanggar persyaratan layanan.
|
||||||
|
downloadConfirmTitle = Satu hal lagi
|
||||||
|
downloadConfirmDescription = Pastikan Anda memercayai orang yang mengirimi Anda file ini karena kami tidak dapat memverifikasi bahwa hal itu tidak akan merusak perangkat Anda.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
*[other] Saya percaya orang yang mengirim file-file ini
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
*[other] Laporkan file-file ini karena mencurigakan
|
||||||
|
}
|
||||||
|
reportDescription = Bantu kami memahami apa yang sedang terjadi. Apa yang menurut Anda salah dengan file-file ini?
|
||||||
|
reportUnknownDescription = Buka url tautan yang ingin Anda laporkan dan klik “{ reportFile }”.
|
||||||
|
reportButton = Melaporkan
|
||||||
|
reportReasonMalware = File-file ini mengandung malware atau merupakan bagian dari serangan phishing.
|
||||||
|
reportReasonPii = File-file ini mengandung informasi pribadi tentang saya.
|
||||||
|
reportReasonAbuse = File-file ini mengandung konten ilegal atau kasar.
|
||||||
|
reportReasonCopyright = Untuk melaporkan pelanggaran hak cipta atau merek dagang, gunakan proses yang dijelaskan di <a> laman ini </a>.
|
||||||
|
reportedTitle = File Dilaporkan
|
||||||
|
reportedDescription = Terima kasih. Kami telah menerima laporan Anda tentang file-file ini.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# Firefox Send is a brand name and should not be localized.
|
# Firefox Send is a brand name and should not be localized.
|
||||||
title = Firefox Zipu
|
title = Firefox Zipu
|
||||||
siteFeedback = Nzaghachi
|
|
||||||
importingFile = Mbubata…
|
importingFile = Mbubata…
|
||||||
encryptingFile = ezoro ezo...
|
encryptingFile = ezoro ezo...
|
||||||
decryptingFile = Kpebie
|
decryptingFile = Kpebie
|
||||||
|
@ -30,6 +29,11 @@ notSupportedOutdatedDetail = Ọ dị nwute na ụdị Firefox a anaghị akwado
|
||||||
updateFirefox = Melite Firefox
|
updateFirefox = Melite Firefox
|
||||||
deletePopupCancel = Kagbuo
|
deletePopupCancel = Kagbuo
|
||||||
deleteButtonHover = Hichapụ
|
deleteButtonHover = Hichapụ
|
||||||
|
footerLinkLegal = n'Iwu
|
||||||
|
footerLinkPrivacy = nzuzo
|
||||||
|
footerLinkCookies = Kuki ga
|
||||||
|
passwordTryAgain = okwuntughe ezighi ezi.Nwaa ọzọ
|
||||||
|
javascriptRequired = Firefox Zipu chọrọ
|
||||||
whyJavascript = Kedu ihe kpatara Firefox Send jiri chọ JavaScript?
|
whyJavascript = Kedu ihe kpatara Firefox Send jiri chọ JavaScript?
|
||||||
enableJavascript = Biko họrọ JavaScript ma nwaa ọzọ
|
enableJavascript = Biko họrọ JavaScript ma nwaa ọzọ
|
||||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||||
|
@ -49,6 +53,7 @@ passwordSetError = Enweghị ike ịtọ paswọọdụ a
|
||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
introTitle = Mfe, nkekọrịta faịlụ nkeonwe
|
introTitle = Mfe, nkekọrịta faịlụ nkeonwe
|
||||||
|
introDescription = na-ahapu gị ịkekọrịta faịlụ na izo ya na njedebe na njedebe na-akwụsị na akpaghị aka. Yabụ ị nwere ike idobe ihe ị na -eche ma hụ na ngwongwo gị agaghị adị n'ịntanetị ruo mgbe ebighi ebi.
|
||||||
notifyUploadEncryptDone = Failu gi zoro ezo ma di njikere iziga
|
notifyUploadEncryptDone = Failu gi zoro ezo ma di njikere iziga
|
||||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
archiveExpiryInfo = Ọ ga-agwu mgbe { $downloadCount } ma ọ bụ { $timespan } gasịrị
|
archiveExpiryInfo = Ọ ga-agwu mgbe { $downloadCount } ma ọ bụ { $timespan } gasịrị
|
||||||
|
@ -62,4 +67,27 @@ timespanWeeks =
|
||||||
[one] 1 izu
|
[one] 1 izu
|
||||||
*[other] izu { $num }
|
*[other] izu { $num }
|
||||||
}
|
}
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = KB
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = MB
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = GB
|
||||||
|
# localized number and byte abbreviation. example "2.5MB"
|
||||||
|
fileSize = { $Number } { $nkeji }
|
||||||
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
|
totalSize = { $nha }
|
||||||
|
# the next line after the colon contains a file name
|
||||||
|
copyLinkDescription = Detuo njikọ ahụ iji kee faịlụ gị
|
||||||
|
copyLinkButton = Detuo njikọ
|
||||||
|
downloadTitle = Budata faịlụ gasi
|
||||||
|
downloadDescription = Nkekọrịta faịlụ a site na site na iji zoo njedebe na-njedebe yana otu njikọ na-akwụsị na-akpaghị aka.
|
||||||
|
trySendDescription = Gbalịa maka nyefe faịlụ dị mfe.
|
||||||
|
expiredTitle = Njikọ a emebiela.
|
||||||
|
notSupportedDescription = agaghị eji ihe nchọgharị a rụọ ọrụ. na arụ ọrụ kacha mma na ụdị nke , ọ ga-arụkwa ụdị nke ihe nchọgharị ka ugbu a.
|
||||||
|
downloadFirefox = Budata
|
||||||
|
legalTitle = Nkwupụta Nzuzo
|
||||||
|
legalDateStamp = 1.dị 1.0, akara ụbọchị Maachi 12, 2019
|
||||||
okButton = O
|
okButton = O
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = Importazione in corso…
|
importingFile = Importazione in corso…
|
||||||
encryptingFile = Crittazione in corso…
|
encryptingFile = Crittazione in corso…
|
||||||
decryptingFile = Decrittazione in corso…
|
decryptingFile = Decrittazione in corso…
|
||||||
|
@ -108,6 +107,7 @@ legalDateStamp = Versione 1.0 del 12 marzo 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }g { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }g { $hours }h { $minutes }m
|
||||||
addFilesButton = Seleziona i file da caricare
|
addFilesButton = Seleziona i file da caricare
|
||||||
|
trustWarningMessage = Assicurati che il destinatario sia affidabile quando condividi dati sensibili.
|
||||||
uploadButton = Carica
|
uploadButton = Carica
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Trascina e rilascia i file
|
dragAndDropFiles = Trascina e rilascia i file
|
||||||
|
@ -145,3 +145,33 @@ shareLinkButton = Condividi link
|
||||||
shareMessage = Scarica “{ $name }” con { -send-brand }: condivisione di file semplice e sicura
|
shareMessage = Scarica “{ $name }” con { -send-brand }: condivisione di file semplice e sicura
|
||||||
trailheadPromo = C’è un modo per proteggere la tua privacy. Entra in Firefox.
|
trailheadPromo = C’è un modo per proteggere la tua privacy. Entra in Firefox.
|
||||||
learnMore = Ulteriori informazioni.
|
learnMore = Ulteriori informazioni.
|
||||||
|
downloadFlagged = Questo link è stato disattivato perché vìola i termini di servizio.
|
||||||
|
downloadConfirmTitle = Un’ultima cosa
|
||||||
|
downloadConfirmDescription = Assicurati che la persona che ti ha inviato questo file sia affidabile perché non possiamo garantire che non sia in grado di danneggiare il tuo dispositivo.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Considero affidabile la persona che ha inviato questo file
|
||||||
|
*[other] Considero affidabile la persona che ha inviato questi file
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Segnala questo file come sospetto
|
||||||
|
*[other] Segnala questi file come sospetti
|
||||||
|
}
|
||||||
|
reportDescription = Aiutaci a capire che cosa è successo. Qual è il problema con questi file?
|
||||||
|
reportUnknownDescription = Vai all’indirizzo del link che vuoi segnalare e fai clic su “{ reportFile }”.
|
||||||
|
reportButton = Segnala
|
||||||
|
reportReasonMalware = Questi file contengono malware o fanno parte di un attacco phishing.
|
||||||
|
reportReasonPii = Questi file contengono informazioni personali identificabili che mi riguardano.
|
||||||
|
reportReasonAbuse = Questi file contengono contenuti illegali o offensivi.
|
||||||
|
reportReasonCopyright = Per segnalare violazioni del copyright o abusi di marchi registrati, utilizzare la procedura descritta in <a>questa pagina</a>.
|
||||||
|
reportedTitle = File segnalati
|
||||||
|
reportedDescription = Grazie, abbiamo ricevuto la tua segnalazione relativa a questi file.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = フィードバック
|
|
||||||
importingFile = インポート中...
|
importingFile = インポート中...
|
||||||
encryptingFile = 暗号化中...
|
encryptingFile = 暗号化中...
|
||||||
decryptingFile = 復号化中...
|
decryptingFile = 復号化中...
|
||||||
|
@ -108,6 +107,7 @@ legalDateStamp = バージョン 1.0, 2019年3月12日時点
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } 日 { $hours } 時 { $minutes } 分
|
expiresDaysHoursMinutes = { $days } 日 { $hours } 時 { $minutes } 分
|
||||||
addFilesButton = アップロードするファイルを選択
|
addFilesButton = アップロードするファイルを選択
|
||||||
|
trustWarningMessage = 機密データを共有する場合は、受信者が信頼できる相手であることを確認してください。
|
||||||
uploadButton = アップロード
|
uploadButton = アップロード
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = ファイルをドラッグ&ドロップ
|
dragAndDropFiles = ファイルをドラッグ&ドロップ
|
||||||
|
@ -144,3 +144,31 @@ shareLinkButton = リンクを共有
|
||||||
shareMessage = { -send-brand } で "{ $name }" をダウンロード: シンプルで安全なファイル共有
|
shareMessage = { -send-brand } で "{ $name }" をダウンロード: シンプルで安全なファイル共有
|
||||||
trailheadPromo = プライバシーを保護する方法があります。Firefox を試してください。
|
trailheadPromo = プライバシーを保護する方法があります。Firefox を試してください。
|
||||||
learnMore = 詳細情報
|
learnMore = 詳細情報
|
||||||
|
downloadFlagged = サービス利用規約に違反しているため、このリンクは無効になっています。
|
||||||
|
downloadConfirmTitle = さらにもう一つ
|
||||||
|
downloadConfirmDescription = このファイルが端末に悪影響を及ぼさないことを確かめられないため、送信者が信頼できる相手であることを確認してください。
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
*[other] ファイルの送信者を信頼します
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
*[other] 疑わしいファイルとして報告する
|
||||||
|
}
|
||||||
|
reportDescription = 詳しく調べるためにお知らせください。これらのファイルの何が問題だと思われますか?
|
||||||
|
reportUnknownDescription = 報告したい内容のリンクの URL にアクセスし、“{ reportFile }” をクリックしてください。
|
||||||
|
reportButton = 問題を報告
|
||||||
|
reportReasonMalware = これらのファイルにはマルウェアが含まれているか、フィッシング詐欺攻撃の一部です。
|
||||||
|
reportReasonPii = これらのファイルには私に関する個人情報が含まれています。
|
||||||
|
reportReasonAbuse = これらのファイルには違法または虐待的なコンテンツが含まれています。
|
||||||
|
reportReasonCopyright = 著作権または商標の侵害を報告するには、<a>このページ</a> に記載された手続きに従ってください。
|
||||||
|
reportedTitle = ファイルを報告しました
|
||||||
|
reportedDescription = ご協力ありがとうございました。これらのファイルに関する報告を受け取りました。
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = გამოხმაურება
|
|
||||||
importingFile = გადმოტანა...
|
importingFile = გადმოტანა...
|
||||||
encryptingFile = დაშიფვრა...
|
encryptingFile = დაშიფვრა...
|
||||||
decryptingFile = გაშიფვრა...
|
decryptingFile = გაშიფვრა...
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = ვერსია 1.0, დათარიღებული 12
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } დღე { $hours } სთ { $minutes } წთ
|
expiresDaysHoursMinutes = { $days } დღე { $hours } სთ { $minutes } წთ
|
||||||
addFilesButton = ფაილების შერჩევა ასატვირთად
|
addFilesButton = ფაილების შერჩევა ასატვირთად
|
||||||
|
trustWarningMessage = დარწმუნდით, რომ ენდობით მიმღებს, სანამ მნიშვნელოვან მონაცემებს გაუზიარებთ.
|
||||||
uploadButton = ატვირთვა
|
uploadButton = ატვირთვა
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = გადმოიტანეთ და მოათავსეთ ფაილები
|
dragAndDropFiles = გადმოიტანეთ და მოათავსეთ ფაილები
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = ბმულის გაზიარება
|
||||||
shareMessage = ჩამოტვირთეთ „{ $name }“ { -send-brand }-ით: ფაილების გაზიარება მარტივად, უსაფრთხოდ
|
shareMessage = ჩამოტვირთეთ „{ $name }“ { -send-brand }-ით: ფაილების გაზიარება მარტივად, უსაფრთხოდ
|
||||||
trailheadPromo = გზა, თქვენი პირადულობის დასაცავად. შემოუერთდით Firefox-ს.
|
trailheadPromo = გზა, თქვენი პირადულობის დასაცავად. შემოუერთდით Firefox-ს.
|
||||||
learnMore = იხილეთ ვრცლად.
|
learnMore = იხილეთ ვრცლად.
|
||||||
|
downloadFlagged = ბმული გაუქმებულია, მომსახურების პირობების დარღვევის გამო.
|
||||||
|
downloadConfirmTitle = კიდევ ერთი რამ
|
||||||
|
downloadConfirmDescription = დარწმუნდით, რომ სანდოა პირი, ვინც ეს ფაილი გამოგიგზავნათ, რადგან ჩვენ ვერ დაგპირდებით, რომ არ დააზიანებს თქვენს მოწყობილობას.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] ვენდობი პირს, რომელმაც ეს ფაილი გამომიგზავნა
|
||||||
|
*[other] ვენდობი პირს, რომელმაც ეს ფაილები გამომიგზავნა
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] მოხსენება, საეჭვო ფაილზე
|
||||||
|
*[other] მოხსენება, საეჭვო ფაილებზე
|
||||||
|
}
|
||||||
|
reportDescription = დაგვეხმარეთ გარკვევაში. თქვენი აზრით, რა ფაილებია?
|
||||||
|
reportUnknownDescription = გთხოვთ გადახვიდეთ ბმულზე, რომლზეც გსურთ გვაცნობოთ და დაწკაპეთ „{ reportFile }“.
|
||||||
|
reportButton = მოხსენება
|
||||||
|
reportReasonMalware = ეს ფაილები შეიცავს მავნე კოდს ან თაღლითური შეტევის ნაწილია.
|
||||||
|
reportReasonPii = ეს ფაილები შეიცავს ვინაობის ამსახველ მასალას ჩემზე.
|
||||||
|
reportReasonAbuse = ეს ფაილები შეიცავს უკანონო ან შეურაცხმყოფელ მასალას.
|
||||||
|
reportReasonCopyright = საავტორო უფლებებთან ან სავაჭრო ნიშნებთან დაკავშირებულ დარღვევებზე მოხსენებისთვის, გთხოვთ იხილოთ განმარტებითი მითითებები <a>ამ გვერდზე</a>.
|
||||||
|
reportedTitle = ფაილებზე მოხსენება გაგზავნილია
|
||||||
|
reportedDescription = გმადლობთ. მივიღეთ თქვენი მოხსენება, ამ ფაილებზე.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Tikti
|
|
||||||
importingFile = Akter...
|
importingFile = Akter...
|
||||||
encryptingFile = Awgelhen...
|
encryptingFile = Awgelhen...
|
||||||
decryptingFile = Azmek...
|
decryptingFile = Azmek...
|
||||||
|
@ -76,7 +75,7 @@ timespanWeeks =
|
||||||
fileCount =
|
fileCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 n ufaylu
|
[one] 1 n ufaylu
|
||||||
*[other] { $num } n ifuyla
|
*[other] { $num } n yifuyla
|
||||||
}
|
}
|
||||||
# byte abbreviation
|
# byte abbreviation
|
||||||
bytes = B
|
bytes = B
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Lqem 1.0, azemz n 12 Meɣres 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } ass { $hours } srg { $minutes } tsd
|
expiresDaysHoursMinutes = { $days } ass { $hours } srg { $minutes } tsd
|
||||||
addFilesButton = Fren ifuyla ad tessaliḍ
|
addFilesButton = Fren ifuyla ad tessaliḍ
|
||||||
|
trustWarningMessage = Ḍmen d akken tumneḍ anermis ticki tebḍiḍ isefka n tbadnit.
|
||||||
uploadButton = Sali
|
uploadButton = Sali
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Ẓuɣer sakin sers ifuyla
|
dragAndDropFiles = Ẓuɣer sakin sers ifuyla
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Bḍu aseɣwen
|
||||||
shareMessage = Sider "{ $name }" s { -send-brand }: d fessas, d aɣelsan i beṭṭu n yifuyla.
|
shareMessage = Sider "{ $name }" s { -send-brand }: d fessas, d aɣelsan i beṭṭu n yifuyla.
|
||||||
trailheadPromo = Yella wallal n ummesten n tudert-ik tusligt. Ddu ɣer Firefox.
|
trailheadPromo = Yella wallal n ummesten n tudert-ik tusligt. Ddu ɣer Firefox.
|
||||||
learnMore = Issin ugar.
|
learnMore = Issin ugar.
|
||||||
|
downloadFlagged = Aseɣwen-a yensa acku ur iquder ara tiwtilin n useqdec.
|
||||||
|
downloadConfirmTitle = Taɣawsa-nniḍen
|
||||||
|
downloadConfirmDescription = Ḍmen d akken tumneḍ amdan i ak-d-yuznen afaylu-a acku ur nezmir ara ad nwali ma yella ur iṭuṛṛu ara ibenk-ik.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Umneɣ amdan i yi-d-yuznen afaylu-a.
|
||||||
|
*[other] Umneɣ amdan i yi-d-yuznen ifuyla-a.
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Mmel-d afaylu-a ma tkukraḍ
|
||||||
|
*[other] Mmel-d ifuyla-a ma tkukraḍ
|
||||||
|
}
|
||||||
|
reportDescription = Mudd-aɣ-d afus n tallalt akken ad negzu acu i la iḍerrun. Acu twalaḍ cwiya-t kan deg yifuyla-a?
|
||||||
|
reportUnknownDescription = Ttxil-k·m rzu ɣer url n useɣwen i tebɣiḍ ad t-tceggreḍ syen sit ɣef “{ reportFile }”.
|
||||||
|
reportButton = Aneqqis
|
||||||
|
reportReasonMalware = Ifuyla-a deg-sen yir iseɣzanen neɣ d aḥric seg uẓdam n ṣṣyada.
|
||||||
|
reportReasonPii = Ifuyla-a deg-sen talɣut tudmawant yettwassnen i yi-yeɛnan.
|
||||||
|
reportReasonAbuse = Ifuyla-a deg-sen agbur arusḍif neɣ anaffal.
|
||||||
|
reportReasonCopyright = I ucegger n tkerḍa n yizerfan n umeskar neɣ n tecraḍ, seqdec asesfer i d-yettwagelmen ɣef <a>usebter-a</a>.
|
||||||
|
reportedTitle = Ifuyla i d-yettwaceqqren
|
||||||
|
reportedDescription = Tanemmirt. Nermes-d aneqqis-ik·im ɣef yifuyla-a.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = 사용자 의견
|
|
||||||
importingFile = 가져오는 중…
|
importingFile = 가져오는 중…
|
||||||
encryptingFile = 암호화 중…
|
encryptingFile = 암호화 중…
|
||||||
decryptingFile = 복호화 중…
|
decryptingFile = 복호화 중…
|
||||||
|
@ -97,11 +96,12 @@ tooManyArchives =
|
||||||
expiredTitle = 이 링크는 만료되었습니다.
|
expiredTitle = 이 링크는 만료되었습니다.
|
||||||
notSupportedDescription = { -send-brand }는 이 브라우저와 작동하지 않습니다. { -send-short-brand }는 최신 { -firefox }와 가장 잘 작동하며, 대부분의 최신 웹 브라우저와도 잘 작동합니다.
|
notSupportedDescription = { -send-brand }는 이 브라우저와 작동하지 않습니다. { -send-short-brand }는 최신 { -firefox }와 가장 잘 작동하며, 대부분의 최신 웹 브라우저와도 잘 작동합니다.
|
||||||
downloadFirefox = { -firefox } 다운로드
|
downloadFirefox = { -firefox } 다운로드
|
||||||
legalTitle = { -send-short-brand } 개인정보 보호 공지
|
legalTitle = { -send-short-brand } 개인정보처리방침
|
||||||
legalDateStamp = 버전 1.0, 2019년 3월 12일자
|
legalDateStamp = 버전 1.0, 2019년 3월 12일자
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }일 { $hours }시간 { $minutes }분
|
expiresDaysHoursMinutes = { $days }일 { $hours }시간 { $minutes }분
|
||||||
addFilesButton = 업로드할 파일들을 선택하세요
|
addFilesButton = 업로드할 파일들을 선택하세요
|
||||||
|
trustWarningMessage = 중요한 정보를 공유할 때는 수신자들이 모두 믿을 만한 사람들인지를 꼭 확인하세요.
|
||||||
uploadButton = 업로드
|
uploadButton = 업로드
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = 파일들을 여기에 끌어서 놓으세요
|
dragAndDropFiles = 파일들을 여기에 끌어서 놓으세요
|
||||||
|
@ -138,3 +138,31 @@ shareLinkButton = 링크 공유
|
||||||
shareMessage = { -send-brand }으로 “{ $name }” 파일을 내려받으세요: 쉽고 안전한 파일 공유입니다.
|
shareMessage = { -send-brand }으로 “{ $name }” 파일을 내려받으세요: 쉽고 안전한 파일 공유입니다.
|
||||||
trailheadPromo = 개인 정보를 보호하는 방법이 있습니다. Firefox에 가입하세요.
|
trailheadPromo = 개인 정보를 보호하는 방법이 있습니다. Firefox에 가입하세요.
|
||||||
learnMore = 더 알아보기.
|
learnMore = 더 알아보기.
|
||||||
|
downloadFlagged = 서비스 약관 위반으로 인해 비활성화된 링크입니다.
|
||||||
|
downloadConfirmTitle = 한 가지 더
|
||||||
|
downloadConfirmDescription = 이 파일이 기기에 해를 끼치지 않는 다는 점을 확인하지 못했기 때문에 이 파일을 보낸 사람을 신뢰할 수 있는지 확인하세요.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
*[other] 이 파일을 보낸 사람을 신뢰함
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
*[other] 이 파일을 의심스러운 것으로 신고
|
||||||
|
}
|
||||||
|
reportDescription = 어떤 일이 발생했는지 알려 주세요. 이 파일의 어느 부분이 문제인 것 같나요?
|
||||||
|
reportUnknownDescription = 신고하려는 링크의 URL로 가서 “{ reportFile }”를 클릭하세요.
|
||||||
|
reportButton = 신고
|
||||||
|
reportReasonMalware = 이 파일은 악성 코드를 포함하고 있거나 피싱 공격의 일부입니다.
|
||||||
|
reportReasonPii = 이 파일에는 본인에 대한 개인 식별 정보가 포함되어 있습니다.
|
||||||
|
reportReasonAbuse = 이 파일에는 불법적이거나 모욕적인 내용이 들어 있습니다.
|
||||||
|
reportReasonCopyright = 저작권 또는 상표권 침해를 신고하려면 <a>이 페이지</a>에 설명된 절차를 따르십시오.
|
||||||
|
reportedTitle = 파일 신고됨
|
||||||
|
reportedDescription = 파일에 대한 신고를 접수했습니다. 감사합니다.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Pateikti atsiliepimą
|
|
||||||
importingFile = Importuojama…
|
importingFile = Importuojama…
|
||||||
encryptingFile = Šifruojama…
|
encryptingFile = Šifruojama…
|
||||||
decryptingFile = Iššifruojama…
|
decryptingFile = Iššifruojama…
|
||||||
|
@ -132,6 +131,7 @@ legalDateStamp = 1.0 versija, 2019 m. kovo 12 d
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } d. { $hours } val. { $minutes } min.
|
expiresDaysHoursMinutes = { $days } d. { $hours } val. { $minutes } min.
|
||||||
addFilesButton = Rinktis failus įkėlimui
|
addFilesButton = Rinktis failus įkėlimui
|
||||||
|
trustWarningMessage = Dalindamiesi svarbiais duomenimis įsitikinkite, kad pasitikite gavėju.
|
||||||
uploadButton = Įkelti
|
uploadButton = Įkelti
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Užtempkite ir numeskite failus čia
|
dragAndDropFiles = Užtempkite ir numeskite failus čia
|
||||||
|
@ -170,3 +170,35 @@ shareLinkButton = Dalintis saitu
|
||||||
shareMessage = Atsisiųskite „{ $name }“ su „{ -send-brand }“: paprastas, saugus dalinimasis failais
|
shareMessage = Atsisiųskite „{ $name }“ su „{ -send-brand }“: paprastas, saugus dalinimasis failais
|
||||||
trailheadPromo = Yra būdas apsaugoti jūsų privatumą. Naudokite „Firefox“.
|
trailheadPromo = Yra būdas apsaugoti jūsų privatumą. Naudokite „Firefox“.
|
||||||
learnMore = Sužinoti daugiau.
|
learnMore = Sužinoti daugiau.
|
||||||
|
downloadFlagged = Šis saitas panaikintas dėl paslaugos teikimo nuostatų pažeidimo.
|
||||||
|
downloadConfirmTitle = Dar vienas dalykas
|
||||||
|
downloadConfirmDescription = Įsitikinkite, kad pasitikite asmeniu, atsiuntusiu šį failą, nes mes negalime užtikrinti, kad jis nepakenks jūsų įrenginiui.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Aš pasitikiu asmeniu, atsiuntusiu šį failą
|
||||||
|
[few] Aš pasitikiu asmeniu, atsiuntusiu šiuos failus
|
||||||
|
*[other] Aš pasitikiu asmeniu, atsiuntusiu šiuos failus
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Pranešti apie įtartiną failą
|
||||||
|
[few] Pranešti apie įtartinus failus
|
||||||
|
*[other] Pranešti apie įtartinus failus
|
||||||
|
}
|
||||||
|
reportDescription = Padėkite mums suprasti situaciją. Kas jūsų nuomone negerai su šiais failais?
|
||||||
|
reportUnknownDescription = Atverkite saitą, apie kurį norite pranešti, ir spustelėkite „{ reportFile }“.
|
||||||
|
reportButton = Pranešti
|
||||||
|
reportReasonMalware = Šiuose failuose yra kenkėjiškos programinės įrangos, arba jie yra dalis sukčiavimo atakos.
|
||||||
|
reportReasonPii = Šiuose failuose yra mano asmeninės informacijos.
|
||||||
|
reportReasonAbuse = Šiuose failuose yra nelegalaus arba neteisėto turinio.
|
||||||
|
reportReasonCopyright = Norėdami pranešti apie autorių teisių ar prekės ženklo pažeidimus, vadovaukitės <a>šiame puslapyje</a> aprašytu procesu.
|
||||||
|
reportedTitle = Apie failus pranešta
|
||||||
|
reportedDescription = Ačiū. Mes gavome jūsų pranešimą apie šiuos failus.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Tu'un meu
|
|
||||||
importingFile = Ndakiin…
|
importingFile = Ndakiin…
|
||||||
encryptingFile = Ndasami tu'un…
|
encryptingFile = Ndasami tu'un…
|
||||||
decryptingFile = Nchiko tu'un…
|
decryptingFile = Nchiko tu'un…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versión 1.0 del 12 de marzo de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Katsi tutu ku skau
|
addFilesButton = Katsi tutu ku skau
|
||||||
|
trustWarningMessage = Kunche'e a va'a nu ku ntachuún ña.
|
||||||
uploadButton = Skaa
|
uploadButton = Skaa
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Xita cha sia kue tutu
|
dragAndDropFiles = Xita cha sia kue tutu
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Stucha Enlace
|
||||||
shareMessage = Snuu «{ $name }» tsi { -send-brand }: kue nchichi
|
shareMessage = Snuu «{ $name }» tsi { -send-brand }: kue nchichi
|
||||||
trailheadPromo = Ku china vau ña chau. Kita'an tsi Firefox.
|
trailheadPromo = Ku china vau ña chau. Kita'an tsi Firefox.
|
||||||
learnMore = Skua'a kuakaa.
|
learnMore = Skua'a kuakaa.
|
||||||
|
downloadFlagged = Va'á enlace yo.
|
||||||
|
downloadConfirmTitle = Una cosa más
|
||||||
|
downloadConfirmDescription = A tsinu nivo tachu'un tutu yo takua ma stivia kàa ndusu ku.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Va'a nivi ntachu'un tutu yo
|
||||||
|
*[other] Va'a nivi ntachu'un tutu yo
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Katu'un ña va'á tutu yo
|
||||||
|
*[other] Katu'un ña va'á kue tutu yo
|
||||||
|
}
|
||||||
|
reportDescription = Chinche kue yu na kunikue ña yee. ¿A va'á kue tutu yo?
|
||||||
|
reportUnknownDescription = Sa'a ña mani kuncheu, url ña enlace ña va'á cha katavi “{ reportFile }”.
|
||||||
|
reportButton = Ka tu'un
|
||||||
|
reportReasonMalware = Inka ña va'á nu kue tutu yo.
|
||||||
|
reportReasonPii = Inka kue tu'un me nu kue tutu yo.
|
||||||
|
reportReasonAbuse = Yee ña va'á nu kue tutu yo.
|
||||||
|
reportReasonCopyright = Tatu ye ña va'á nu derechos de autor a marca registrada, kavi tutu yo <a>esta página</a>.
|
||||||
|
reportedTitle = Ku ncheé tutu
|
||||||
|
reportedDescription = Ti tsavu. tsa kumikue tu'un tsa'a tutuku.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Tilbakemelding
|
|
||||||
importingFile = Importerer…
|
importingFile = Importerer…
|
||||||
encryptingFile = Krypterer...
|
encryptingFile = Krypterer...
|
||||||
decryptingFile = Dekrypterer...
|
decryptingFile = Dekrypterer...
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versjon 1.0, datert den 12. mars 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
||||||
addFilesButton = Velg filer du vil laste opp
|
addFilesButton = Velg filer du vil laste opp
|
||||||
|
trustWarningMessage = Forsikre deg om at du stoler på mottakeren din når du deler sensitive data.
|
||||||
uploadButton = Last opp
|
uploadButton = Last opp
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Dra og slipp filer
|
dragAndDropFiles = Dra og slipp filer
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Del lenke
|
||||||
shareMessage = Last ned ‹{ $name }› med { -send-brand }: enkel, trygg fildeling
|
shareMessage = Last ned ‹{ $name }› med { -send-brand }: enkel, trygg fildeling
|
||||||
trailheadPromo = Det finnes en måte å ta vare på personvernet ditt. Bruk Firefox.
|
trailheadPromo = Det finnes en måte å ta vare på personvernet ditt. Bruk Firefox.
|
||||||
learnMore = Les mer.
|
learnMore = Les mer.
|
||||||
|
downloadFlagged = Denne koblingen er deaktivert på grunn av brudd på vilkårene for tjenesten.
|
||||||
|
downloadConfirmTitle = En ting til
|
||||||
|
downloadConfirmDescription = Forsikre deg om at du stoler på personen som sendte deg denne filen, fordi vi ikke kan bekrefte at den ikke vil skade enheten din.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Jeg stoler på personen som sendte denne filen
|
||||||
|
*[other] Jeg stoler på personen som sendte disse filene
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Rapporter denne filen som mistenkelig
|
||||||
|
*[other] Rapporter disse filene som mistenkelige
|
||||||
|
}
|
||||||
|
reportDescription = Hjelp oss å forstå hva som skjer. Hva tror du er galt med disse filene?
|
||||||
|
reportUnknownDescription = Gå til adressen til lenken du ønsker å rapportere, og klikk «{ reportFile }».
|
||||||
|
reportButton = Rapporter
|
||||||
|
reportReasonMalware = Disse filene inneholder skadelig programvare eller er del av et nettfiskingsangrep (phishing-angrep).
|
||||||
|
reportReasonPii = Disse filene inneholder personlig identifiserbar informasjon om meg.
|
||||||
|
reportReasonAbuse = Disse filene inneholder ulovlig eller voldelig innhold.
|
||||||
|
reportReasonCopyright = For å rapportere brudd på opphavsrett eller varemerke, bruk prosessen som er beskrevet på <a>denne siden</a>.
|
||||||
|
reportedTitle = Filer rapportert
|
||||||
|
reportedDescription = Takk skal du ha. Vi har mottatt rapporten din om disse filene.
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
# 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
|
|
||||||
importingFile = Importeren…
|
importingFile = Importeren…
|
||||||
encryptingFile = Versleutelen…
|
encryptingFile = Versleutelen…
|
||||||
decryptingFile = Ontcijferen…
|
decryptingFile = Ontsleutelen…
|
||||||
downloadCount =
|
downloadCount =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 download
|
[one] 1 download
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versie 1.0 d.d. 12 maart 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }u { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }u { $minutes }m
|
||||||
addFilesButton = Selecteer te uploaden bestanden
|
addFilesButton = Selecteer te uploaden bestanden
|
||||||
|
trustWarningMessage = Zorg ervoor dat u uw ontvanger vertrouwt wanneer u gevoelige gegevens deelt.
|
||||||
uploadButton = Uploaden
|
uploadButton = Uploaden
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Versleep bestanden
|
dragAndDropFiles = Versleep bestanden
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Koppeling delen
|
||||||
shareMessage = Download ‘{ $name }’ met { -send-brand }: eenvoudig, veilig bestanden delen
|
shareMessage = Download ‘{ $name }’ met { -send-brand }: eenvoudig, veilig bestanden delen
|
||||||
trailheadPromo = Er is een manier om uw privacy te beschermen. Doe mee met Firefox.
|
trailheadPromo = Er is een manier om uw privacy te beschermen. Doe mee met Firefox.
|
||||||
learnMore = Meer info.
|
learnMore = Meer info.
|
||||||
|
downloadFlagged = Deze koppeling is uitgeschakeld wegens schending van de servicevoorwaarden.
|
||||||
|
downloadConfirmTitle = Nog een ding
|
||||||
|
downloadConfirmDescription = Zorg ervoor dat u de persoon vertrouwt die u dit bestand heeft gestuurd, omdat we niet kunnen verifiëren dat het uw apparaat niet zal schaden.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Ik vertrouw de persoon die dit bestand heeft verzonden
|
||||||
|
*[other] Ik vertrouw de persoon die deze bestanden heeft verzonden
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Dit bestand als verdacht rapporteren
|
||||||
|
*[other] Deze bestanden als verdacht rapporteren
|
||||||
|
}
|
||||||
|
reportDescription = Help ons te begrijpen wat er aan de hand is. Wat is er volgens u mis met deze bestanden?
|
||||||
|
reportUnknownDescription = Ga naar de URL van de koppeling die u wilt melden en klik op ‘{ reportFile }’.
|
||||||
|
reportButton = Rapporteren
|
||||||
|
reportReasonMalware = Deze bestanden bevatten malware of zijn onderdeel van een phishingaanval.
|
||||||
|
reportReasonPii = Deze bestanden bevatten persoonlijk identificeerbare informatie over mij.
|
||||||
|
reportReasonAbuse = Deze bestanden bevatten illegale of beledigende inhoud.
|
||||||
|
reportReasonCopyright = Gebruik de procedure op <a>deze pagina</a> om inbreuk op auteursrechten of handelsmerken te melden.
|
||||||
|
reportedTitle = Bestanden gerapporteerd
|
||||||
|
reportedDescription = Dank u. We hebben uw rapport over deze bestanden ontvangen.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Tilbakemelding
|
|
||||||
importingFile = Importerer…
|
importingFile = Importerer…
|
||||||
encryptingFile = Krypterer…
|
encryptingFile = Krypterer…
|
||||||
decryptingFile = Dekrypterer...
|
decryptingFile = Dekrypterer...
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versjon 1.0, datert den 12 mars 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
||||||
addFilesButton = Vel filer som skal lastast opp
|
addFilesButton = Vel filer som skal lastast opp
|
||||||
|
trustWarningMessage = Forsikre deg om at du stolar på mottakaren din når du deler sensitive data.
|
||||||
uploadButton = Last opp
|
uploadButton = Last opp
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Dra og slepp filer
|
dragAndDropFiles = Dra og slepp filer
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Del lenke
|
||||||
shareMessage = Last ned "{ $name }" med { -send-brand }: enkel, trygg fildelning
|
shareMessage = Last ned "{ $name }" med { -send-brand }: enkel, trygg fildelning
|
||||||
trailheadPromo = Det finst ein måte å ta vare på personvernet ditt. Ver med Firefox på ferda.
|
trailheadPromo = Det finst ein måte å ta vare på personvernet ditt. Ver med Firefox på ferda.
|
||||||
learnMore = Les meir.
|
learnMore = Les meir.
|
||||||
|
downloadFlagged = Denne koplinga er deaktivert på grunn av brot på vilkåra for tenesta.
|
||||||
|
downloadConfirmTitle = Ein ting til
|
||||||
|
downloadConfirmDescription = Forsikre deg om at du stolar på personen som sende deg denne fila fordi, vi ikkje kan stadfeste at ho ikkje vil skade eininga di.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Eg stolar på personen som sende denne fila
|
||||||
|
*[other] Eg stolar på personen som sende desse filene
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Rapporter denne fila som mistenkjeleg
|
||||||
|
*[other] Rapporter desse filene som mistenkjelege
|
||||||
|
}
|
||||||
|
reportDescription = Hjelp oss å forstå kva som skjer. Kva trur du er gale med desse filene?
|
||||||
|
reportUnknownDescription = Gå til lenkeadressa du ønskjer å rapportere, og klikk «{ reportFile }».
|
||||||
|
reportButton = Rapporter
|
||||||
|
reportReasonMalware = Desse filene inneheld skadeleg programvare eller er del av eit nettfiskingsangrep (phishing-angrep).
|
||||||
|
reportReasonPii = Desse filene inneheld personleg identifiserbar informasjon om meg.
|
||||||
|
reportReasonAbuse = Desse filene inneheld ulovleg eller valdeleg innhald.
|
||||||
|
reportReasonCopyright = For å rapportere brot på opphavsrett eller varemerke, bruk prosessen som er beskriven på <a>denne sida</a>.
|
||||||
|
reportedTitle = Rapporterte filer
|
||||||
|
reportedDescription = Takk skal du ha. Vi har fått rapporten din om desse filene.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Comentaris
|
|
||||||
importingFile = Importacion…
|
importingFile = Importacion…
|
||||||
encryptingFile = Chiframent…
|
encryptingFile = Chiframent…
|
||||||
decryptingFile = Deschiframent…
|
decryptingFile = Deschiframent…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0 del 12 de març de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
|
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
|
||||||
addFilesButton = Seleccionatz los fichièrs de mandar
|
addFilesButton = Seleccionatz los fichièrs de mandar
|
||||||
|
trustWarningMessage = Asseguratz-vos que vos fisatz del destinari quand partejatz de donadas confidencialas.
|
||||||
uploadButton = Enviar
|
uploadButton = Enviar
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Lisatz-depausatz de fichièrs
|
dragAndDropFiles = Lisatz-depausatz de fichièrs
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Partejar lo ligam
|
||||||
shareMessage = Telecargar « { $name } » amb { -send-brand } : un biais simple e segur de partejar de fichièrs.
|
shareMessage = Telecargar « { $name } » amb { -send-brand } : un biais simple e segur de partejar de fichièrs.
|
||||||
trailheadPromo = Existís un biais de protegir vòstra vida privada. Rejonhètz Firefox.
|
trailheadPromo = Existís un biais de protegir vòstra vida privada. Rejonhètz Firefox.
|
||||||
learnMore = Ne saber mai.
|
learnMore = Ne saber mai.
|
||||||
|
downloadFlagged = Aqueste ligam foguèt desactivat a causa d’una infraccions a las condicions d’utilizacion.
|
||||||
|
downloadConfirmTitle = Un quicomet mai
|
||||||
|
downloadConfirmDescription = Asseguratz-vos que la persona que vos mandèt aqueste fichièr perque podèm pas verificar qu’es pas malfasent per vòstre periferic
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Me fisi de la persona que me mandèt lo fichièr
|
||||||
|
*[other] Me fisi de la persona que me mandèt los fichièrs
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Senhalar aqueste fichièr coma suspècte
|
||||||
|
*[other] Senhalar aquestes fichièrs coma suspèctes
|
||||||
|
}
|
||||||
|
reportDescription = Ajudatz-nos a comprendre qué passa. Qué vos fa pensar que quicòm truca amb aquestes fichièrs ?
|
||||||
|
reportUnknownDescription = Anatz a l’URL del ligam que volètz senhalar e clicatz « { reportFile } ».
|
||||||
|
reportButton = Senhalar
|
||||||
|
reportReasonMalware = Aquestes fichièrs contenon de logicials malvolents o forman part d’un atac de pesca electronica.
|
||||||
|
reportReasonPii = Aquestes fichièrs contenon d’informacions d’identificacion personala que me concernisson.
|
||||||
|
reportReasonAbuse = Aquestes fichièrs contenon de contengut illegal o abusiu.
|
||||||
|
reportReasonCopyright = Per senhalar una violacion de drech d’autor o de marca, seguissètz la procedura descricha sus <a>aquesta pagina</a>.
|
||||||
|
reportedTitle = Fichièrs senhalats
|
||||||
|
reportedDescription = Mercés. Avèm recebut vòstre senhalament d’aquestes fichièrs.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = ਸੁਝਾਅ
|
|
||||||
importingFile = ...ਦਰਾਮਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
importingFile = ...ਦਰਾਮਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||||
encryptingFile = ...ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
encryptingFile = ...ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||||
decryptingFile = ...ਡਿਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
decryptingFile = ...ਡਿਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||||
|
@ -153,3 +152,4 @@ shareLinkButton = ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ
|
||||||
shareMessage = { -send-brand } ਨਾਲ "{ $name }" ਡਾਊਨਲੋਡ ਕਰੋ: ਸੌਖਾ, ਸੁਰੱਖਿਅਤ ਫਾਇਲ ਸਾਂਝਾ ਕਰਨਾ
|
shareMessage = { -send-brand } ਨਾਲ "{ $name }" ਡਾਊਨਲੋਡ ਕਰੋ: ਸੌਖਾ, ਸੁਰੱਖਿਅਤ ਫਾਇਲ ਸਾਂਝਾ ਕਰਨਾ
|
||||||
trailheadPromo = ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਦਾ ਢੰਗ ਹੈ। ਫਾਇਰਫਾਕਸ ਨਾਲ ਜੁੜੋ।
|
trailheadPromo = ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਦਾ ਢੰਗ ਹੈ। ਫਾਇਰਫਾਕਸ ਨਾਲ ਜੁੜੋ।
|
||||||
learnMore = ਹੋਰ ਸਿੱਖੋ
|
learnMore = ਹੋਰ ਸਿੱਖੋ
|
||||||
|
downloadConfirmTitle = ਇੱਕ ਗੱਲ ਹੋਰ
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Wyślij opinię
|
|
||||||
importingFile = Importowanie…
|
importingFile = Importowanie…
|
||||||
encryptingFile = Szyfrowanie…
|
encryptingFile = Szyfrowanie…
|
||||||
decryptingFile = Odszyfrowywanie…
|
decryptingFile = Odszyfrowywanie…
|
||||||
|
@ -124,6 +123,7 @@ legalDateStamp = Wersja 1.0 z 12 marca 2019 r.
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } d. { $hours } godz. { $minutes } min
|
expiresDaysHoursMinutes = { $days } d. { $hours } godz. { $minutes } min
|
||||||
addFilesButton = Wybierz pliki do wysłania
|
addFilesButton = Wybierz pliki do wysłania
|
||||||
|
trustWarningMessage = Upewnij się, że ufasz odbiorcy, kiedy udostępniasz prywatne dane.
|
||||||
uploadButton = Wyślij
|
uploadButton = Wyślij
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Przeciągnij pliki
|
dragAndDropFiles = Przeciągnij pliki
|
||||||
|
@ -162,3 +162,35 @@ shareLinkButton = Udostępnij odnośnik
|
||||||
shareMessage = Pobierz „{ $name }” za pomocą { -send-brand }: prostego i bezpiecznego udostępniania plików
|
shareMessage = Pobierz „{ $name }” za pomocą { -send-brand }: prostego i bezpiecznego udostępniania plików
|
||||||
trailheadPromo = Jest sposób na ochronę swojej prywatności. Dołącz do Firefoksa.
|
trailheadPromo = Jest sposób na ochronę swojej prywatności. Dołącz do Firefoksa.
|
||||||
learnMore = Więcej informacji.
|
learnMore = Więcej informacji.
|
||||||
|
downloadFlagged = Ten odnośnik został wyłączony z powodu naruszenia warunków korzystania z usługi.
|
||||||
|
downloadConfirmTitle = Jeszcze jedna rzecz
|
||||||
|
downloadConfirmDescription = Upewnij się, że ufasz osobie, która wysłała Ci ten plik, ponieważ nie możemy zweryfikować, czy nie spowoduje on uszkodzenia Twojego urządzenia.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Ufam osobie, która wysłała ten plik
|
||||||
|
[few] Ufam osobie, która wysłała te pliki
|
||||||
|
*[many] Ufam osobie, która wysłała te pliki
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Zgłoś ten plik jako podejrzany
|
||||||
|
[few] Zgłoś te pliki jako podejrzane
|
||||||
|
*[many] Zgłoś te pliki jako podejrzane
|
||||||
|
}
|
||||||
|
reportDescription = Pomóż nam zrozumieć, co się stało. Co według Ciebie jest nie tak z tymi plikami?
|
||||||
|
reportUnknownDescription = Przejdź do adresu odnośnika, który chcesz zgłosić, i kliknij „{ reportFile }”.
|
||||||
|
reportButton = Zgłoś
|
||||||
|
reportReasonMalware = Te pliki zawierają złośliwe oprogramowanie lub są częścią próby oszustwa.
|
||||||
|
reportReasonPii = Te pliki zawierają informacje umożliwiające identyfikację mojej osoby.
|
||||||
|
reportReasonAbuse = Te pliki zawierają nielegalne lub obraźliwe treści.
|
||||||
|
reportReasonCopyright = Aby zgłosić naruszenie praw autorskich lub znaków towarowych, skorzystaj z procedury opisanej na <a>ten stronie</a>.
|
||||||
|
reportedTitle = Pliki zostały zgłoszone
|
||||||
|
reportedDescription = Dziękujemy. Otrzymaliśmy Twoje zgłoszenie dotyczące tych plików.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Opinião
|
|
||||||
importingFile = Importando…
|
importingFile = Importando…
|
||||||
encryptingFile = Criptografando…
|
encryptingFile = Criptografando…
|
||||||
decryptingFile = Descriptografando…
|
decryptingFile = Descriptografando…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versão 1.0, de 12 de março de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Selecionar arquivos para enviar
|
addFilesButton = Selecionar arquivos para enviar
|
||||||
|
trustWarningMessage = Certifique-se de que confia no destinatário ao compartilhar dados sensíveis.
|
||||||
uploadButton = Enviar
|
uploadButton = Enviar
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arraste e solte arquivos aqui
|
dragAndDropFiles = Arraste e solte arquivos aqui
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Compartilhar link
|
||||||
shareMessage = Baixe "{ $name }" com o { -send-brand }: compartilhamento de arquivos simples e seguro
|
shareMessage = Baixe "{ $name }" com o { -send-brand }: compartilhamento de arquivos simples e seguro
|
||||||
trailheadPromo = Existe um meio de proteger sua privacidade. Use o Firefox.
|
trailheadPromo = Existe um meio de proteger sua privacidade. Use o Firefox.
|
||||||
learnMore = Saiba mais.
|
learnMore = Saiba mais.
|
||||||
|
downloadFlagged = Este link foi desativado por violar os termos do serviço.
|
||||||
|
downloadConfirmTitle = Mais uma coisa
|
||||||
|
downloadConfirmDescription = Certifique-se de que confia na pessoa que enviou este arquivo, pois não podemos conferir se não prejudicará seu dispositivo.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Eu confio na pessoa que enviou este arquivo
|
||||||
|
*[other] Eu confio na pessoa que enviou estes arquivos
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Denunciar este arquivo como suspeito
|
||||||
|
*[other] Denunciar estes arquivos como suspeitos
|
||||||
|
}
|
||||||
|
reportDescription = Ajude-nos a entender o que está acontecendo. O que você acha que há de errado com estes arquivos?
|
||||||
|
reportUnknownDescription = Acesse o endereço do link que deseja denunciar e clique em “{ reportFile }”.
|
||||||
|
reportButton = Denunciar
|
||||||
|
reportReasonMalware = Estes arquivos contêm malware (código malicioso) ou fazem parte de um ataque de phishing (fraude).
|
||||||
|
reportReasonPii = Estes arquivos contêm informações de identificação pessoal sobre mim.
|
||||||
|
reportReasonAbuse = Estes arquivos contêm conteúdo ilegal ou abusivo.
|
||||||
|
reportReasonCopyright = Para denunciar violação de direitos autorais ou de marca, siga o procedimento descrito <a>nesta página</a>.
|
||||||
|
reportedTitle = Arquivos denunciados
|
||||||
|
reportedDescription = Obrigado. Recebemos sua denúncia sobre estes arquivos.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = A importar...
|
importingFile = A importar...
|
||||||
encryptingFile = A encriptar...
|
encryptingFile = A encriptar...
|
||||||
decryptingFile = A desencriptar...
|
decryptingFile = A desencriptar...
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Versão 1.0, de 12 de março de 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Selecionar ficheiros para carregar
|
addFilesButton = Selecionar ficheiros para carregar
|
||||||
|
trustWarningMessage = Tenha a certeza que confia no destinatário ao partilhar dados sensíveis.
|
||||||
uploadButton = Carregar
|
uploadButton = Carregar
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Arraste e largue ficheiros
|
dragAndDropFiles = Arraste e largue ficheiros
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Partilhar ligação
|
||||||
shareMessage = Transferir “{ $name }“ com o { -send-brand }: partilha de ficheiros simples e segura
|
shareMessage = Transferir “{ $name }“ com o { -send-brand }: partilha de ficheiros simples e segura
|
||||||
trailheadPromo = Existe um modo para proteger a sua privacidade. Adira ao Firefox.
|
trailheadPromo = Existe um modo para proteger a sua privacidade. Adira ao Firefox.
|
||||||
learnMore = Saiba mais.
|
learnMore = Saiba mais.
|
||||||
|
downloadFlagged = Esta ligação foi desativada por violar os termos do serviço.
|
||||||
|
downloadConfirmTitle = Mais uma coisa
|
||||||
|
downloadConfirmDescription = Tenha a certeza que confia na pessoa que lhe enviou este ficheiro, pois não podemos garantir que o mesmo não irá danificar o seu dispositivo.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Eu confio na pessoa que enviou este ficheiro
|
||||||
|
*[other] Eu confio na pessoa que enviou estes ficheiros
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Denunciar este ficheiro como suspeito
|
||||||
|
*[other] Denunciar estes ficheiros como suspeitos
|
||||||
|
}
|
||||||
|
reportDescription = Ajude-nos a compreender o que está a acontecer. O que acha que está errado com estes ficheiros?
|
||||||
|
reportUnknownDescription = Por favor, aceda ao endereço da ligação que pretende denunciar e clique em “{ reportFile }”.
|
||||||
|
reportButton = Denunciar
|
||||||
|
reportReasonMalware = Estes ficheiros contêm software malicioso ou fazem parte de um ataque de phishing.
|
||||||
|
reportReasonPii = Estes ficheiros contêm dados pessoais sobre mim.
|
||||||
|
reportReasonAbuse = Estes ficheiros contêm conteúdo ilegal ou abusivo.
|
||||||
|
reportReasonCopyright = Para denunciar violação de direitos de autor ou de marca comercial, utilize o procedimento descrito <a>nesta página</a>.
|
||||||
|
reportedTitle = Ficheiros denunciados
|
||||||
|
reportedDescription = Obrigado. Recebemos a sua denúncia sobre estes ficheiros.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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
|
|
||||||
importingFile = Se importă…
|
importingFile = Se importă…
|
||||||
encryptingFile = Se criptează…
|
encryptingFile = Se criptează…
|
||||||
decryptingFile = Se decriptează…
|
decryptingFile = Se decriptează…
|
||||||
|
@ -119,11 +118,12 @@ tooManyArchives =
|
||||||
expiredTitle = Acest link a expirat.
|
expiredTitle = Acest link a expirat.
|
||||||
notSupportedDescription = { -send-brand } nu va funcționa pe acest browser. { -send-short-brand } funcționează cel mai bine cu ultima versiune de { -firefox } și va funcționa cu versiunea curentă a majorității browserelor.
|
notSupportedDescription = { -send-brand } nu va funcționa pe acest browser. { -send-short-brand } funcționează cel mai bine cu ultima versiune de { -firefox } și va funcționa cu versiunea curentă a majorității browserelor.
|
||||||
downloadFirefox = Descarcă { -firefox }
|
downloadFirefox = Descarcă { -firefox }
|
||||||
legalTitle = Declarație de confidențialitate { -send-short-brand }
|
legalTitle = Notificare privind confidențialitatea { -send-short-brand }
|
||||||
legalDateStamp = Versiunea 1.0 din data de 12 martie 2019
|
legalDateStamp = Versiunea 1.0 din data de 12 martie 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }z { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }z { $hours }h { $minutes }m
|
||||||
addFilesButton = Selectează fișierele pentru încărcare
|
addFilesButton = Selectează fișierele pentru încărcare
|
||||||
|
trustWarningMessage = Asigură-te că destinatarul este de încredere când partajezi date sensibile.
|
||||||
uploadButton = Încarcă
|
uploadButton = Încarcă
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Trage și plasează fișierele
|
dragAndDropFiles = Trage și plasează fișierele
|
||||||
|
@ -160,5 +160,37 @@ shareLinkDescription = Partajează linkul către fișier:
|
||||||
shareLinkButton = Partajează linkul
|
shareLinkButton = Partajează linkul
|
||||||
# $name is the name of the file
|
# $name is the name of the file
|
||||||
shareMessage = Descarcă „{ $name }” cu { -send-brand }: partajare simplă și sigură a fișierelor
|
shareMessage = Descarcă „{ $name }” cu { -send-brand }: partajare simplă și sigură a fișierelor
|
||||||
trailheadPromo = Există o modalitate de a-ți proteja viața privată. Alătură-te Firefox.
|
trailheadPromo = Există o modalitate de a-ți proteja viața privată. Folosește Firefox.
|
||||||
learnMore = Află mai multe.
|
learnMore = Află mai multe.
|
||||||
|
downloadFlagged = Acest link a fost dezactivat pentru că încalcă termenii de utilizare a serviciului.
|
||||||
|
downloadConfirmTitle = Încă ceva
|
||||||
|
downloadConfirmDescription = Asigură-te că persoana care ți-a trimis acest fișier este de încredere pentru că noi nu putem verifica dacă nu cumva îți va afecta dispozitivul.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Am încredere în persoana care a trimis acest fișier
|
||||||
|
[few] Am încredere în persoana care a trimis aceste fișiere
|
||||||
|
*[other] Am încredere în persoana care a trimis aceste fișiere
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Raportează acest fișier ca suspect
|
||||||
|
[few] Raportează aceste fișiere ca suspecte
|
||||||
|
*[other] Raportează aceste fișiere ca suspecte
|
||||||
|
}
|
||||||
|
reportDescription = Ajută-ne să înțelegem ce se întâmplă. Ce crezi că e în neregulă cu aceste fișiere?
|
||||||
|
reportUnknownDescription = Intră pe URL-ul linkului pe care vrei să îl raportezi și dă clic pe „{ reportFile }”.
|
||||||
|
reportButton = Raportează
|
||||||
|
reportReasonMalware = Aceste fișiere conțin cod rău-intenționat sau fac parte dintr-un atac de înșelăciune.
|
||||||
|
reportReasonPii = Aceste fișiere conțin date cu caracter personal identificabile despre mine.
|
||||||
|
reportReasonAbuse = Aceste fișiere au un conținut ilegal sau ofensator.
|
||||||
|
reportReasonCopyright = Pentru a raporta o încălcare a drepturilor de reproducere sau a mărcilor comerciale, folosește procedura descrisă <a>aici</a>.
|
||||||
|
reportedTitle = Fișiere raportate
|
||||||
|
reportedDescription = Îți mulțumim. Am primit raportarea ta despre aceste fișiere.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Отзывы
|
|
||||||
importingFile = Импортирование...
|
importingFile = Импортирование...
|
||||||
encryptingFile = Шифрование...
|
encryptingFile = Шифрование...
|
||||||
decryptingFile = Расшифровка...
|
decryptingFile = Расшифровка...
|
||||||
|
@ -119,11 +118,12 @@ tooManyArchives =
|
||||||
expiredTitle = Срок действия этой ссылки истёк.
|
expiredTitle = Срок действия этой ссылки истёк.
|
||||||
notSupportedDescription = { -send-brand } не будет работать в этом браузере. { -send-short-brand } лучше всего работает с последней версией { -firefox }, и будет работать с последними версиями популярных браузеров.
|
notSupportedDescription = { -send-brand } не будет работать в этом браузере. { -send-short-brand } лучше всего работает с последней версией { -firefox }, и будет работать с последними версиями популярных браузеров.
|
||||||
downloadFirefox = Загрузить { -firefox }
|
downloadFirefox = Загрузить { -firefox }
|
||||||
legalTitle = Политика приватности { -send-short-brand }
|
legalTitle = Уведомление о конфиденциальности { -send-short-brand }
|
||||||
legalDateStamp = Версия 1.0, от 12 марта 2019 года
|
legalDateStamp = Версия 1.0, от 12 марта 2019 года
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } дн. { $hours } ч. { $minutes } мин.
|
expiresDaysHoursMinutes = { $days } дн. { $hours } ч. { $minutes } мин.
|
||||||
addFilesButton = Выберите файлы для выгрузки
|
addFilesButton = Выберите файлы для выгрузки
|
||||||
|
trustWarningMessage = Убедитесь, что вы доверяете своему получателю при обмене конфиденциальными данными.
|
||||||
uploadButton = Выгрузить
|
uploadButton = Выгрузить
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Перетащите файлы сюда
|
dragAndDropFiles = Перетащите файлы сюда
|
||||||
|
@ -162,3 +162,35 @@ shareLinkButton = Поделиться ссылкой
|
||||||
shareMessage = Загрузите «{ $name }» с { -send-brand }: простой и безопасный обмен файлами
|
shareMessage = Загрузите «{ $name }» с { -send-brand }: простой и безопасный обмен файлами
|
||||||
trailheadPromo = Существует способ защитить вашу приватность. Присоединяйтесь к Firefox.
|
trailheadPromo = Существует способ защитить вашу приватность. Присоединяйтесь к Firefox.
|
||||||
learnMore = Подробнее.
|
learnMore = Подробнее.
|
||||||
|
downloadFlagged = Эта ссылка была отключена за нарушение условий использования.
|
||||||
|
downloadConfirmTitle = Ещё один совет
|
||||||
|
downloadConfirmDescription = Убедитесь, что вы доверяете человеку, который отправил вам этот файл, потому что мы не знаем, не повредит ли файл вашему устройству.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Я доверяю человеку, который отправил этот файл
|
||||||
|
[few] Я доверяю человеку, который отправил эти файлы
|
||||||
|
*[many] Я доверяю человеку, который отправил эти файлы
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Сообщить об этом файле как о подозрительном
|
||||||
|
[few] Сообщить об этих файлах как о подозрительных
|
||||||
|
*[many] Сообщить об этих файлах как о подозрительных
|
||||||
|
}
|
||||||
|
reportDescription = Помогите нам понять, что происходит. Что по вашему мнению не так с этими файлами?
|
||||||
|
reportUnknownDescription = Перейдите к адресу ссылки, о которой хотите сообщить, и щёлкните «{ reportFile }».
|
||||||
|
reportButton = Сообщить
|
||||||
|
reportReasonMalware = Эти файлы содержат вредоносные программы или являются частью фишинговой атаки.
|
||||||
|
reportReasonPii = Эти файлы содержат мои личные данные.
|
||||||
|
reportReasonAbuse = Эти файлы содержат незаконный или оскорбительный контент.
|
||||||
|
reportReasonCopyright = Чтобы сообщить о нарушении авторских прав или товарных знаков, используйте процедуру, описанную на <a>этой странице</a>.
|
||||||
|
reportedTitle = О файлах сообщено
|
||||||
|
reportedDescription = Спасибо. Мы получили вашу жалобу на эти файлы.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Spätná väzba
|
|
||||||
importingFile = Importuje sa…
|
importingFile = Importuje sa…
|
||||||
encryptingFile = Šifruje sa…
|
encryptingFile = Šifruje sa…
|
||||||
decryptingFile = Dešifruje sa…
|
decryptingFile = Dešifruje sa…
|
||||||
|
@ -124,6 +123,7 @@ legalDateStamp = Verzia 1.0, z 12. marca 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
||||||
addFilesButton = Vyberte súbory pre nahratie
|
addFilesButton = Vyberte súbory pre nahratie
|
||||||
|
trustWarningMessage = Uistite sa, že pri zdieľaní citlivých údajov dôverujete adresátovi.
|
||||||
uploadButton = Nahrať
|
uploadButton = Nahrať
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Pretiahnutím súboru alebo kliknutím sem
|
dragAndDropFiles = Pretiahnutím súboru alebo kliknutím sem
|
||||||
|
@ -162,3 +162,35 @@ shareLinkButton = Zdieľať odkaz
|
||||||
shareMessage = Prevezmite si súbor „{ $name }“ so službou { -send-brand } - jednoduché a bezpečné zdieľanie súborov
|
shareMessage = Prevezmite si súbor „{ $name }“ so službou { -send-brand } - jednoduché a bezpečné zdieľanie súborov
|
||||||
trailheadPromo = Existuje spôsob, ako chrániť vaše súkromie. Prihláste sa do Firefoxu.
|
trailheadPromo = Existuje spôsob, ako chrániť vaše súkromie. Prihláste sa do Firefoxu.
|
||||||
learnMore = Ďalšie informácie.
|
learnMore = Ďalšie informácie.
|
||||||
|
downloadFlagged = Tento odkaz bol pre porušenie podmienok používania služby deaktivovaný.
|
||||||
|
downloadConfirmTitle = Ešte jedna vec
|
||||||
|
downloadConfirmDescription = Uistite sa, že naozaj dôverujete odosielateľovi tohto súboru, pretože nemôžeme overiť jeho bezpečnosť.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Dôverujem odosielateľovi tohto súboru
|
||||||
|
[few] Dôverujem odosielateľovi týchto súborov
|
||||||
|
*[other] Dôverujem odosielateľovi týchto súborov
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Nahlásiť tento súbor ako podozrivý
|
||||||
|
[few] Nahlásiť tieto súbory ako podozrivé
|
||||||
|
*[other] Nahlásiť tieto súbory ako podozrivé
|
||||||
|
}
|
||||||
|
reportDescription = Pomôžte nám pochopiť, čo sa deje. Čo si myslíte, že s týmito súbormi nie je v poriadku?
|
||||||
|
reportUnknownDescription = Otvorte odkaz, ktorý chcete nahlásiť, a kliknite na „{ reportFile }“.
|
||||||
|
reportButton = Nahlásiť
|
||||||
|
reportReasonMalware = Tieto súbory obsahujú malvér alebo sú súčasťou pshishingového útoku.
|
||||||
|
reportReasonPii = Tieto súbory obsahujú moje osobné údaje.
|
||||||
|
reportReasonAbuse = Tieto súbory obsahujú nelegálny alebo urážlivý obsah.
|
||||||
|
reportReasonCopyright = Ak chcete nahlásiť porušenie autorských práv alebo zneužitie ochranných známok, použite postup popísaný na <a>tejto stránke</a>.
|
||||||
|
reportedTitle = Súbory boli nahlásené
|
||||||
|
reportedDescription = Ďakujeme vám za nahlásenie týchto súborov.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Povratne informacije
|
|
||||||
importingFile = Uvažanje …
|
importingFile = Uvažanje …
|
||||||
encryptingFile = Šifriranje ...
|
encryptingFile = Šifriranje ...
|
||||||
decryptingFile = Dešifriranje ...
|
decryptingFile = Dešifriranje ...
|
||||||
|
@ -148,6 +147,7 @@ legalDateStamp = Različica 1.0, v veljavi od 12. marca 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Izberite datoteke za nalaganje
|
addFilesButton = Izberite datoteke za nalaganje
|
||||||
|
trustWarningMessage = Pri deljenju občutljivih podatkov bodite prepričani, da zaupate prejemniku.
|
||||||
uploadButton = Naloži
|
uploadButton = Naloži
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Povlecite in spustite datoteke
|
dragAndDropFiles = Povlecite in spustite datoteke
|
||||||
|
@ -187,3 +187,37 @@ shareLinkButton = Deli povezavo
|
||||||
shareMessage = Prenesite "{ $name }" s { -send-brand }om: enostavno in varno deljenje datotek
|
shareMessage = Prenesite "{ $name }" s { -send-brand }om: enostavno in varno deljenje datotek
|
||||||
trailheadPromo = Vašo zasebnost lahko zaščitite. Pridružite se Firefoxu.
|
trailheadPromo = Vašo zasebnost lahko zaščitite. Pridružite se Firefoxu.
|
||||||
learnMore = Več o tem.
|
learnMore = Več o tem.
|
||||||
|
downloadFlagged = Ta povezava je bila onemogočena, ker je kršila pogoje storitve.
|
||||||
|
downloadConfirmTitle = Še to
|
||||||
|
downloadConfirmDescription = Bodite prepričani, da zaupate osebi, ki vam je poslala to datoteko, ker ne moremo preveriti, da ne bo škodovala vaši napravi.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Zaupam pošiljatelju te datoteke
|
||||||
|
[two] Zaupam pošiljatelju teh datotek
|
||||||
|
[few] Zaupam pošiljatelju teh datotek
|
||||||
|
*[other] Zaupam pošiljatelju teh datotek
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Prijavi sumljivo datoteko
|
||||||
|
[two] Prijavi sumljivi datoteki
|
||||||
|
[few] Prijavi sumljive datoteke
|
||||||
|
*[other] Prijavi sumljive datoteke
|
||||||
|
}
|
||||||
|
reportDescription = Pomagajte nam razumeti, kaj se dogaja. Kaj mislite, da je s temi datotekami narobe?
|
||||||
|
reportUnknownDescription = Obiščite naslov povezave, ki jo želite prijaviti, in kliknite »{ reportFile }«.
|
||||||
|
reportButton = Prijavi
|
||||||
|
reportReasonMalware = Te datoteke vsebujejo zlonamerno programsko opremo ali so del napada lažnega predstavljanja.
|
||||||
|
reportReasonPii = Te datoteke vsebujejo osebne podatke o meni.
|
||||||
|
reportReasonAbuse = Te datoteke vsebujejo nezakonito ali nasilno vsebino.
|
||||||
|
reportReasonCopyright = Za prijavo kršitve avtorskih pravic ali blagovne znamke sledite postopku, opisanem na <a>tej strani</a>.
|
||||||
|
reportedTitle = Datoteke prijavljene
|
||||||
|
reportedDescription = Hvala. Prejeli smo vašo prijavo teh datotek.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Përshtypje
|
|
||||||
importingFile = Po importohet…
|
importingFile = Po importohet…
|
||||||
encryptingFile = Po fshehtëzohet…
|
encryptingFile = Po fshehtëzohet…
|
||||||
decryptingFile = Po shfshehtëzohet…
|
decryptingFile = Po shfshehtëzohet…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, daton 12 mars, 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||||
addFilesButton = Përzgjidhni kartela për ngarkim
|
addFilesButton = Përzgjidhni kartela për ngarkim
|
||||||
|
trustWarningMessage = Sigurohuni se i besoni marrësit tuaj, kur ndani me të të dhëna rezervat.
|
||||||
uploadButton = Ngarkoje
|
uploadButton = Ngarkoje
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Tërhiqni dhe lini kartela
|
dragAndDropFiles = Tërhiqni dhe lini kartela
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Ndani me të tjerët lidhjen
|
||||||
shareMessage = Shkarkojeni “{ $name }” me { -send-brand }: shkëmbim kartelash dhe thjesht dhe pa rrezik
|
shareMessage = Shkarkojeni “{ $name }” me { -send-brand }: shkëmbim kartelash dhe thjesht dhe pa rrezik
|
||||||
trailheadPromo = Ka një rrugë për të mbrojtur privatësinë tuaj. Bëhuni pjesë e Firefox-it.
|
trailheadPromo = Ka një rrugë për të mbrojtur privatësinë tuaj. Bëhuni pjesë e Firefox-it.
|
||||||
learnMore = Mësoni më tepër.
|
learnMore = Mësoni më tepër.
|
||||||
|
downloadFlagged = Kjo lidhje është çaktivizuar, ngaqë cenon kushtet e shërbimit.
|
||||||
|
downloadConfirmTitle = Edhe një gjë të fundit
|
||||||
|
downloadConfirmDescription = Sigurohuni se i besoni personit që ju dërgoi këtë kartelë, ngaqë s’mund të verifikojmë se nuk do të vërë në rrezik pajisjen tuaj.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] I besoj personit që dërgoi këtë kartelë
|
||||||
|
*[other] I besoj personit që dërgoi këto kartela
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Raportojeni këtë kartelë si të dyshimtë
|
||||||
|
*[other] Raportojeni këto kartela si të dyshimta
|
||||||
|
}
|
||||||
|
reportDescription = Ndihmonani të kuptojmë ç’po ndodh. Çfarë mendoni se është gabim me këto kartela?
|
||||||
|
reportUnknownDescription = Ju lutemi, shkoni te url-ja e lidhjes që doni të raportoni dhe klikoni mbi “{ reportFile }”.
|
||||||
|
reportButton = Raportoje
|
||||||
|
reportReasonMalware = Këto kartela përmbajnë <em>malware</em> ose janë pjesë e një sulmi karremëzimi.
|
||||||
|
reportReasonPii = Këto kartela përmbajnë të dhëna personalisht të identifikueshme rreth meje.
|
||||||
|
reportReasonAbuse = Këto kartela përmbajnë lëndë të paligjshme ose abuzive.
|
||||||
|
reportReasonCopyright = Për të raportuar cenim të drejtash kopjimi ose shenjash tregtare, përdorni procesin e përshkruar në <a>këtë faqe</a>.
|
||||||
|
reportedTitle = Kartela të Raportuara
|
||||||
|
reportedDescription = Faleminderit. E kemimarrë raportin tuaj rreth këtyre kartelave.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Повратне информације
|
|
||||||
importingFile = Увозим…
|
importingFile = Увозим…
|
||||||
encryptingFile = Шифрујем…
|
encryptingFile = Шифрујем…
|
||||||
decryptingFile = Дешифрујем…
|
decryptingFile = Дешифрујем…
|
||||||
|
@ -124,6 +123,7 @@ legalDateStamp = Издање 1.0, датум објављивања 12. мар
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }д { $hours }ч { $minutes }м
|
expiresDaysHoursMinutes = { $days }д { $hours }ч { $minutes }м
|
||||||
addFilesButton = Изаберите датотеке за отпремање
|
addFilesButton = Изаберите датотеке за отпремање
|
||||||
|
trustWarningMessage = Будите сигурни да верујете примаоцу пре дељења осетљивих података.
|
||||||
uploadButton = Отпреми
|
uploadButton = Отпреми
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Превуците и пустите датотеке
|
dragAndDropFiles = Превуците и пустите датотеке
|
||||||
|
@ -162,3 +162,35 @@ shareLinkButton = Поделите везу
|
||||||
shareMessage = Преузмите „{ $name }“ помоћу програма { -send-brand }: једноставно и безбедно дељење датотека
|
shareMessage = Преузмите „{ $name }“ помоћу програма { -send-brand }: једноставно и безбедно дељење датотека
|
||||||
trailheadPromo = Постоји начин да заштитите вашу приватност. Придружите се Firefox-у.
|
trailheadPromo = Постоји начин да заштитите вашу приватност. Придружите се Firefox-у.
|
||||||
learnMore = Сазнајте више.
|
learnMore = Сазнајте више.
|
||||||
|
downloadFlagged = Ова веза је онемогућена због кршења услова услуге.
|
||||||
|
downloadConfirmTitle = Још једна ствар
|
||||||
|
downloadConfirmDescription = Будите сигурни да верујете особи која вам је послала ову датотеку, јер не можемо обећати да неће оштетити ваш уређа.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Верујем особи која је послала ову датотеку
|
||||||
|
[few] Верујем особи која је послала ове датотеке
|
||||||
|
*[other] Верујем особама које су послале ове датотеке
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Пријави ову датотеку као сумњиву
|
||||||
|
[few] Пријави ове датотеке као сумњиве
|
||||||
|
*[other] Пријави ове датотеке као сумњиве
|
||||||
|
}
|
||||||
|
reportDescription = Помозите нам да схватимо шта се дешава. Шта мислите да није у реду са овим датотекама?
|
||||||
|
reportUnknownDescription = Идите на адресу везе коју желите да пријавите и изаберите “{ reportFile }”.
|
||||||
|
reportButton = Пријави
|
||||||
|
reportReasonMalware = Ове датотеке садрже злонамеран софтвер или су део напада за крађу идентитета.
|
||||||
|
reportReasonPii = Ове датотеке садрже моје личне податке.
|
||||||
|
reportReasonAbuse = Ове датотеке садрже илегални или насилни садржај.
|
||||||
|
reportReasonCopyright = Да бисте пријавили кршење ауторских права или заштитног знака, следите кораке на <a>овој страници</a>.
|
||||||
|
reportedTitle = Датотеке су пријављене
|
||||||
|
reportedDescription = Хвала вам. Примили смо вашу пријаву ових датотека.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Pangdeudeul
|
|
||||||
importingFile = Ngimpor...
|
importingFile = Ngimpor...
|
||||||
encryptingFile = Ngénkripsi...
|
encryptingFile = Ngénkripsi...
|
||||||
decryptingFile = Ngadékripsi...
|
decryptingFile = Ngadékripsi...
|
||||||
|
@ -114,6 +113,7 @@ legalDateStamp = Versi 1.0, kaping 12 Maret 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }p { $hours }j { $minutes }m
|
expiresDaysHoursMinutes = { $days }p { $hours }j { $minutes }m
|
||||||
addFilesButton = Pilih koropak unjalkeuneun
|
addFilesButton = Pilih koropak unjalkeuneun
|
||||||
|
trustWarningMessage = Sing yakin yén anjeun percaya nalika ngabagi data sénsitip ka nu nampa.
|
||||||
uploadButton = Unjal
|
uploadButton = Unjal
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Ésérkeun sarta ésotkeun koropak
|
dragAndDropFiles = Ésérkeun sarta ésotkeun koropak
|
||||||
|
@ -151,3 +151,31 @@ shareLinkButton = Bagikeun tutumbu
|
||||||
shareMessage = Undeur "{ $name }" ku { -send-brand }: simpel, babagi koropak aman
|
shareMessage = Undeur "{ $name }" ku { -send-brand }: simpel, babagi koropak aman
|
||||||
trailheadPromo = Aya cara pikeun ngamankeun privasi anjeun. Jabung jeung Firefox.
|
trailheadPromo = Aya cara pikeun ngamankeun privasi anjeun. Jabung jeung Firefox.
|
||||||
learnMore = Lenyepan.
|
learnMore = Lenyepan.
|
||||||
|
downloadFlagged = Ieu tutumbu ditumpurkeun alatan ngarumpak katangtuan layanan.
|
||||||
|
downloadConfirmTitle = Hiji deui
|
||||||
|
downloadConfirmDescription = Sing yakin yén anjeun percaya ka jalma nu ngirim ieu berkas kusabab kami teu bisa mariksa kaamanan ieu berkas.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
*[other] Kami percaya ka jalma nu ngirim ieu berkas
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
*[other] Laporkeun ieu berkas salaku picurigaeun
|
||||||
|
}
|
||||||
|
reportDescription = Béjakeun ka kami masalahna. Naon anu sakirana salah dina ieu berkas?
|
||||||
|
reportUnknownDescription = Mangga buka url tutumbu anu rék dilaporkeun sarta klik “{ reportFile }”.
|
||||||
|
reportButton = Laporkeun
|
||||||
|
reportReasonMalware = Ieu berkas ngandung malwér atawa bagian ti tarajang pising.
|
||||||
|
reportReasonPii = Ieu berkas ngandung émbaran pribadi kami.
|
||||||
|
reportReasonAbuse = Ieu berkas ngandung kontén ilégal atawa panyalahgunaan.
|
||||||
|
reportReasonCopyright = Pikeun ngalaporkeun rumpakan hak cipta atawa mérk dagang, paké prosés anu diécéskeun <a>di dieu</a>.
|
||||||
|
reportedTitle = Berkas Dilaporkeun
|
||||||
|
reportedDescription = Nuhun. Laporan anjeun ngeunaan ieu berkas geus katampa.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Återkoppling
|
|
||||||
importingFile = Importerar…
|
importingFile = Importerar…
|
||||||
encryptingFile = Krypterar…
|
encryptingFile = Krypterar…
|
||||||
decryptingFile = Avkodar…
|
decryptingFile = Avkodar…
|
||||||
|
@ -116,6 +115,7 @@ legalDateStamp = Version 1.0, daterad den 12 mars 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
||||||
addFilesButton = Välj filer som ska laddas upp
|
addFilesButton = Välj filer som ska laddas upp
|
||||||
|
trustWarningMessage = Se till att du litar på din mottagare när du delar känslig information.
|
||||||
uploadButton = Ladda upp
|
uploadButton = Ladda upp
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Dra och släpp filer
|
dragAndDropFiles = Dra och släpp filer
|
||||||
|
@ -153,3 +153,33 @@ shareLinkButton = Dela länk
|
||||||
shareMessage = Ladda ner "{ $name }" med { -send-brand }: enkel, säker fildelning
|
shareMessage = Ladda ner "{ $name }" med { -send-brand }: enkel, säker fildelning
|
||||||
trailheadPromo = Det finns ett sätt att skydda din integritet. Gå med i Firefox.
|
trailheadPromo = Det finns ett sätt att skydda din integritet. Gå med i Firefox.
|
||||||
learnMore = Läs mer.
|
learnMore = Läs mer.
|
||||||
|
downloadFlagged = Den här länken har inaktiverats pga brott mot användarvillkoren.
|
||||||
|
downloadConfirmTitle = En sak till
|
||||||
|
downloadConfirmDescription = Se till att du litar på personen som skickade dig den här filen eftersom vi inte kan verifiera att den inte skadar din enhet.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Jag litar på personen som skickade denna filen
|
||||||
|
*[other] Jag litar på personen som skickade dessa filer
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Rapportera denna filen som misstänkt
|
||||||
|
*[other] Rapportera dessa filer som misstänkta
|
||||||
|
}
|
||||||
|
reportDescription = Hjälp oss att förstå vad som händer. Vad tycker du är fel med dessa filer?
|
||||||
|
reportUnknownDescription = Gå till den url till länken du vill rapportera och klicka på "{ reportFile }".
|
||||||
|
reportButton = Rapportera
|
||||||
|
reportReasonMalware = Dessa filer innehåller skadlig kod eller är en del av en nätfiskeattack.
|
||||||
|
reportReasonPii = Dessa filer innehåller personlig identifierbar information om mig.
|
||||||
|
reportReasonAbuse = Dessa filer innehåller olagligt eller våldsamt innehåll.
|
||||||
|
reportReasonCopyright = För att rapportera intrång i upphovsrätt eller varumärke, använd processen som beskrivs på <a>den här sidan</a>.
|
||||||
|
reportedTitle = Rapporterade filer
|
||||||
|
reportedDescription = Tack. Vi har fått din rapport om dessa filer.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = అభిప్రాయం
|
|
||||||
importingFile = దిగుమతవుతోంది...
|
importingFile = దిగుమతవుతోంది...
|
||||||
encryptingFile = గుప్తీకరిస్తోంది...
|
encryptingFile = గుప్తీకరిస్తోంది...
|
||||||
decryptingFile = వ్యక్తపరుస్తోంది...
|
decryptingFile = వ్యక్తపరుస్తోంది...
|
||||||
|
@ -53,6 +52,9 @@ passwordSetError = ఈ సంకేతపదం పెట్టలేకపో
|
||||||
-send-short-brand = పంపించు
|
-send-short-brand = పంపించు
|
||||||
-firefox = Firefox
|
-firefox = Firefox
|
||||||
-mozilla = Mozilla
|
-mozilla = Mozilla
|
||||||
|
notifyUploadEncryptDone = మీ ఫైలు గుప్తీకరించబడింది, పంపడానికి సిద్ధంగా ఉంది
|
||||||
|
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||||
|
archiveExpiryInfo = { $downloadCount } లేదా { $timespan } తర్వాత కాలంచెల్లుతుంది
|
||||||
timespanMinutes =
|
timespanMinutes =
|
||||||
{ $num ->
|
{ $num ->
|
||||||
[one] 1 నిమిషం
|
[one] 1 నిమిషం
|
||||||
|
@ -111,6 +113,10 @@ accountBenefitTitle = ఒక { -firefox } ఖాతాని సృష్టి
|
||||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||||
accountBenefitLargeFiles = { $size } పరిమాణం ఫైళ్ళ వరకు పంచుకోండి
|
accountBenefitLargeFiles = { $size } పరిమాణం ఫైళ్ళ వరకు పంచుకోండి
|
||||||
accountBenefitDownloadCount = ఫైళ్లను ఎక్కువ మందితో పంచుకోండి
|
accountBenefitDownloadCount = ఫైళ్లను ఎక్కువ మందితో పంచుకోండి
|
||||||
|
accountBenefitTimeLimit =
|
||||||
|
{ $count ->
|
||||||
|
*[other] లంకెలను { $count } రోజుల వరకు చేతనంగా ఉంచు
|
||||||
|
}
|
||||||
accountBenefitSync = ఏదైనా పరికరం నుండి పంచుకున్న ఫైళ్ళను నిర్వహించండి
|
accountBenefitSync = ఏదైనా పరికరం నుండి పంచుకున్న ఫైళ్ళను నిర్వహించండి
|
||||||
accountBenefitMoz = ఇతర { -mozilla } సేవల గురించి తెలుసుకోండి
|
accountBenefitMoz = ఇతర { -mozilla } సేవల గురించి తెలుసుకోండి
|
||||||
signOut = నిష్క్రమించు
|
signOut = నిష్క్రమించు
|
||||||
|
@ -124,4 +130,7 @@ downloadFirefoxPromo = { -send-short-brand } క్రొత్త { -firefox }
|
||||||
# the next line after the colon contains a file name
|
# the next line after the colon contains a file name
|
||||||
shareLinkDescription = మీ ఫైలుకు లంకెను పంచుకోండి:
|
shareLinkDescription = మీ ఫైలుకు లంకెను పంచుకోండి:
|
||||||
shareLinkButton = లంకెను పంచుకోండి
|
shareLinkButton = లంకెను పంచుకోండి
|
||||||
|
# $name is the name of the file
|
||||||
|
shareMessage = “{ $name }”ని { -send-brand }తో దించుకోండి: తేలికైన, సురక్షితమైన ఫైలు పంచుకోలు సేవ
|
||||||
|
trailheadPromo = మీ అంతరంగికతను కాపాడుకోడానికి ఓ మార్గం ఉంది. Firefoxతో చేరండి.
|
||||||
learnMore = ఇంకా తెలుసుకోండి.
|
learnMore = ఇంకా తెలుసుకోండి.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = ข้อคิดเห็น
|
|
||||||
importingFile = กำลังนำเข้า…
|
importingFile = กำลังนำเข้า…
|
||||||
encryptingFile = กำลังเข้ารหัส…
|
encryptingFile = กำลังเข้ารหัส…
|
||||||
decryptingFile = กำลังถอดรหัส…
|
decryptingFile = กำลังถอดรหัส…
|
||||||
|
@ -108,6 +107,7 @@ legalDateStamp = รุ่น 1.0 วันที่ 12 มีนาคม 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } วัน { $hours } ชม. { $minutes } นาที
|
expiresDaysHoursMinutes = { $days } วัน { $hours } ชม. { $minutes } นาที
|
||||||
addFilesButton = เลือกไฟล์ที่จะอัปโหลด
|
addFilesButton = เลือกไฟล์ที่จะอัปโหลด
|
||||||
|
trustWarningMessage = ตรวจสอบให้แน่ใจว่าคุณเชื่อใจผู้รับของคุณขณะที่คุณแบ่งปันข้อมูลที่ละเอียดอ่อน
|
||||||
uploadButton = อัปโหลด
|
uploadButton = อัปโหลด
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = ลากแล้วปล่อยไฟล์
|
dragAndDropFiles = ลากแล้วปล่อยไฟล์
|
||||||
|
@ -144,3 +144,31 @@ shareLinkButton = แบ่งปันลิงก์
|
||||||
shareMessage = ดาวน์โหลด “{ $name }” ด้วย { -send-brand }: การแบ่งปันไฟล์ที่ง่ายและเป็นส่วนตัว
|
shareMessage = ดาวน์โหลด “{ $name }” ด้วย { -send-brand }: การแบ่งปันไฟล์ที่ง่ายและเป็นส่วนตัว
|
||||||
trailheadPromo = มีวิธีปกป้องความเป็นส่วนตัวของคุณ เข้าร่วม Firefox
|
trailheadPromo = มีวิธีปกป้องความเป็นส่วนตัวของคุณ เข้าร่วม Firefox
|
||||||
learnMore = เรียนรู้เพิ่มเติม
|
learnMore = เรียนรู้เพิ่มเติม
|
||||||
|
downloadFlagged = ลิงก์นี้ถูกปิดการใช้งานเนื่องจากละเมิดข้อกำหนดในการให้บริการ
|
||||||
|
downloadConfirmTitle = อีกหนึ่งอย่าง
|
||||||
|
downloadConfirmDescription = ตรวจสอบให้แน่ใจว่าคุณเชื่อถือคนที่ส่งไฟล์นี้ให้คุณ เพราะเราไม่สามารถยืนยันได้ว่าไฟล์นี้จะไม่เป็นอันตรายต่ออุปกรณ์ของคุณ
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
*[other] ฉันเชื่อใจคนที่ส่งไฟล์เหล่านี้
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
*[other] รายงานไฟล์เหล่านี้ว่าน่าสงสัย
|
||||||
|
}
|
||||||
|
reportDescription = ช่วยให้เราเข้าใจสิ่งที่เกิดขึ้น คุณคิดอย่างไรว่าไฟล์เหล่านี้ผิดปกติ?
|
||||||
|
reportUnknownDescription = โปรดไปที่ URL ของลิงก์ที่คุณต้องการรายงานและคลิก “{ reportFile }”
|
||||||
|
reportButton = รายงาน
|
||||||
|
reportReasonMalware = ไฟล์เหล่านี้มีมัลแวร์หรือเป็นส่วนหนึ่งของการโจมตีแบบฟิชชิ่ง
|
||||||
|
reportReasonPii = ไฟล์เหล่านี้มีข้อมูลที่สามารถระบุตัวบุคคลได้เกี่ยวกับฉัน
|
||||||
|
reportReasonAbuse = ไฟล์เหล่านี้มีเนื้อหาที่ผิดกฎหมายหรือไม่เหมาะสม
|
||||||
|
reportReasonCopyright = หากต้องการรายงานการละเมิดลิขสิทธิ์หรือเครื่องหมายการค้าให้ใช้กระบวนการที่อธิบายไว้ใน <a> หน้านี้ </a>
|
||||||
|
reportedTitle = ไฟล์ถูกรายงานแล้ว
|
||||||
|
reportedDescription = ขอบคุณ เราได้รับรายงานของคุณเกี่ยวกับไฟล์เหล่านี้แล้ว
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Görüş bildir
|
|
||||||
importingFile = İçe aktarılıyor…
|
importingFile = İçe aktarılıyor…
|
||||||
encryptingFile = Şifreleniyor…
|
encryptingFile = Şifreleniyor…
|
||||||
decryptingFile = Şifre çözülüyor…
|
decryptingFile = Şifre çözülüyor…
|
||||||
|
@ -112,6 +111,7 @@ legalDateStamp = Sürüm 1.0, 12 Mart 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } g { $hours } sa { $minutes } dk
|
expiresDaysHoursMinutes = { $days } g { $hours } sa { $minutes } dk
|
||||||
addFilesButton = Yüklenecek dosyaları seçin
|
addFilesButton = Yüklenecek dosyaları seçin
|
||||||
|
trustWarningMessage = Hassas verileri paylaşırken alıcıya güvendiğinizden emin olun.
|
||||||
uploadButton = Yükle
|
uploadButton = Yükle
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Dosyaları sürükleyip bırakarak
|
dragAndDropFiles = Dosyaları sürükleyip bırakarak
|
||||||
|
@ -149,3 +149,33 @@ shareLinkButton = Bağlantıyı paylaş
|
||||||
shareMessage = “{ $name }” dosyasını { -send-brand } ile indirin: basit ve güvenli dosya paylaşımı
|
shareMessage = “{ $name }” dosyasını { -send-brand } ile indirin: basit ve güvenli dosya paylaşımı
|
||||||
trailheadPromo = Gizliliğinizi korumanın bir yolu var. Firefox’a katılın.
|
trailheadPromo = Gizliliğinizi korumanın bir yolu var. Firefox’a katılın.
|
||||||
learnMore = Daha fazla bilgi alın.
|
learnMore = Daha fazla bilgi alın.
|
||||||
|
downloadFlagged = Bu bağlantı hizmet koşullarımızı ihlal ettiği için devre dışı bırakıldı.
|
||||||
|
downloadConfirmTitle = Bir şey daha
|
||||||
|
downloadConfirmDescription = Bu dosyayı gönderen kişiye güvendiğinizden emin olun. Dosyanın cihazınıza zarar vermeyeceğini garanti edemeyiz.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Bu dosyayı gönderen kişiye güveniyorum
|
||||||
|
*[other] Bu dosyaları gönderen kişiye güveniyorum
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Bu dosyanın şüpheli olduğunu bildir
|
||||||
|
*[other] Bu dosyaların şüpheli olduğunu bildir
|
||||||
|
}
|
||||||
|
reportDescription = Meseleyi anlamamıza yardımcı olun. Bu dosyalardaki sorun nedir?
|
||||||
|
reportUnknownDescription = Lütfen rapor etmek istediğiniz bağlantının adresine girip “{ reportFile }” bağlantısına tıklayın.
|
||||||
|
reportButton = Şikâyet et
|
||||||
|
reportReasonMalware = Bu dosyalar kötü amaçlı yazılım içeriyor veya kimlik avı saldırında kullanılıyor.
|
||||||
|
reportReasonPii = Bu dosyalar benim hakkımda kişisel bilgiler içeriyor.
|
||||||
|
reportReasonAbuse = Bu dosyalar yasa dışı veya istismar amaçlı içerik içeriyor.
|
||||||
|
reportReasonCopyright = Telif hakkı veya ticari marka ihlallerini bildirmek için <a>bu sayfadaki</a> adımları izlemelisiniz.
|
||||||
|
reportedTitle = Dosyalar rapor edildi
|
||||||
|
reportedDescription = Teşekkür ederiz. Bu dosyalarla ilgili şikâyetinizi aldık.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Nuguan' tàj doj
|
|
||||||
importingFile = Hìaj a'nïn huan'ānj…
|
importingFile = Hìaj a'nïn huan'ānj…
|
||||||
encryptingFile = Nagi'iaj hùij…
|
encryptingFile = Nagi'iaj hùij…
|
||||||
decryptingFile = Hìaj nâ'nïn…
|
decryptingFile = Hìaj nâ'nïn…
|
||||||
|
@ -96,6 +95,12 @@ copyLinkButton = Guxûn lînk
|
||||||
downloadTitle = Nadunïnj nej archîbo
|
downloadTitle = Nadunïnj nej archîbo
|
||||||
downloadFirefox = Nadunïnj { -firefox }
|
downloadFirefox = Nadunïnj { -firefox }
|
||||||
legalTitle = Nuguan huì nikāj { -send-short-brand }
|
legalTitle = Nuguan huì nikāj { -send-short-brand }
|
||||||
|
uploadButton = Nādusîj
|
||||||
|
addPassword = Dugumî da’nga’ huìi man
|
||||||
|
emailPlaceholder = Gāchrūn si korreot
|
||||||
|
signInOnlyButton = Gāyi'ì sēsiûn
|
||||||
signOut = Narun' sesiôn
|
signOut = Narun' sesiôn
|
||||||
okButton = Ga'ue
|
okButton = Ga'ue
|
||||||
|
downloadingTitle = Hìaj nadunīnj man
|
||||||
shareLinkButton = Duguachîn enlâse
|
shareLinkButton = Duguachîn enlâse
|
||||||
|
learnMore = Gāhuin chrūn doj.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Відгуки
|
|
||||||
importingFile = Імпортуємо...
|
importingFile = Імпортуємо...
|
||||||
encryptingFile = Шифруємо...
|
encryptingFile = Шифруємо...
|
||||||
decryptingFile = Розшифровуємо...
|
decryptingFile = Розшифровуємо...
|
||||||
|
@ -124,6 +123,7 @@ legalDateStamp = Версія 1.0 від 12 березня 2019 року
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days }д { $hours }г { $minutes }хв
|
expiresDaysHoursMinutes = { $days }д { $hours }г { $minutes }хв
|
||||||
addFilesButton = Оберіть файли для вивантаження
|
addFilesButton = Оберіть файли для вивантаження
|
||||||
|
trustWarningMessage = Переконайтеся, що довіряєте одержувачу коли ділитеся вразливими даними.
|
||||||
uploadButton = Вивантажити
|
uploadButton = Вивантажити
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Перетягуйте файли
|
dragAndDropFiles = Перетягуйте файли
|
||||||
|
@ -162,3 +162,35 @@ shareLinkButton = Поділитись посиланням
|
||||||
shareMessage = Завантажте “{ $name }” з { -send-brand }: простий та безпечний обмін файлами
|
shareMessage = Завантажте “{ $name }” з { -send-brand }: простий та безпечний обмін файлами
|
||||||
trailheadPromo = Існує спосіб захистити вашу приватність. Приєднуйтесь до Firefox.
|
trailheadPromo = Існує спосіб захистити вашу приватність. Приєднуйтесь до Firefox.
|
||||||
learnMore = Докладніше.
|
learnMore = Докладніше.
|
||||||
|
downloadFlagged = Це посилання вимкнено через порушення умов надання послуг.
|
||||||
|
downloadConfirmTitle = Ще порада
|
||||||
|
downloadConfirmDescription = Переконайтеся, що довіряєте відправнику цього файлу, оскільки ми не можемо перевірити, чи він не зашкодить вашому пристрою.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] Я довіряю відправнику цього файлу
|
||||||
|
[few] Я довіряю відправнику цих файлів
|
||||||
|
*[many] Я довіряю відправнику цих файлів
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] Повідомити, що цей файл є підозрілим
|
||||||
|
[few] Повідомити, що ці файли є підозрілими
|
||||||
|
*[many] Повідомити, що ці файли є підозрілими
|
||||||
|
}
|
||||||
|
reportDescription = Допоможіть нам зрозуміти, що відбувається. Що, на вашу думку, з цими файлами не так?
|
||||||
|
reportUnknownDescription = Перейдіть до url-адреси посилання, про яке хочете надіслати звіт, та натисніть “{ reportFile }”.
|
||||||
|
reportButton = Надіслати звіт
|
||||||
|
reportReasonMalware = Ці файли містять зловмисне програмне забезпечення або є частиною фішинг-атаки.
|
||||||
|
reportReasonPii = Ці файли містять мої особисті дані.
|
||||||
|
reportReasonAbuse = Ці файли містять незаконний або образливий вміст.
|
||||||
|
reportReasonCopyright = Щоб повідомити про порушення авторських прав або торговельних марок, скористайтеся настановами з <a>цієї сторінки</a>.
|
||||||
|
reportedTitle = Звіт про файли надіслано
|
||||||
|
reportedDescription = Дякуємо. Ми отримали ваш звіт про ці файли.
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = Phản hồi
|
|
||||||
importingFile = Đang nhập...
|
importingFile = Đang nhập...
|
||||||
encryptingFile = Đang mã hóa...
|
encryptingFile = Đang mã hóa...
|
||||||
decryptingFile = Đang giải mã...
|
decryptingFile = Đang giải mã...
|
||||||
|
@ -108,6 +107,7 @@ legalDateStamp = Phiên bản 1.0, ngày 12 tháng 3 năm 2019
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } ngày { $hours } giờ { $minutes } phút
|
expiresDaysHoursMinutes = { $days } ngày { $hours } giờ { $minutes } phút
|
||||||
addFilesButton = Chọn tập tin để tải lên
|
addFilesButton = Chọn tập tin để tải lên
|
||||||
|
trustWarningMessage = Hãy chắc chắn rằng bạn tin tưởng người nhận khi chia sẻ dữ liệu nhạy cảm.
|
||||||
uploadButton = Tải lên
|
uploadButton = Tải lên
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = Kéo và thả tập tin
|
dragAndDropFiles = Kéo và thả tập tin
|
||||||
|
@ -144,3 +144,31 @@ shareLinkButton = Chia sẻ liên kết
|
||||||
shareMessage = Tải xuống “{ $name }“ với { -send-brand }: chia sẻ tập tin đơn giản, an toàn
|
shareMessage = Tải xuống “{ $name }“ với { -send-brand }: chia sẻ tập tin đơn giản, an toàn
|
||||||
trailheadPromo = Đây là một cách để bảo vệ sự riêng tư của bạn. Tham gia Firefox.
|
trailheadPromo = Đây là một cách để bảo vệ sự riêng tư của bạn. Tham gia Firefox.
|
||||||
learnMore = Tìm hiểu thêm.
|
learnMore = Tìm hiểu thêm.
|
||||||
|
downloadFlagged = Liên kết này đã bị vô hiệu hóa do vi phạm các điều khoản dịch vụ.
|
||||||
|
downloadConfirmTitle = Một điều nữa
|
||||||
|
downloadConfirmDescription = Hãy chắc chắn rằng bạn tin tưởng người đã gửi cho bạn tập tin này vì chúng tôi không thể xác minh rằng nó sẽ không gây hại cho thiết bị của bạn.
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
*[other] Tôi tin tưởng người đã gửi những tập tin này
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
*[other] Báo cáo các tập tin này là đáng ngờ
|
||||||
|
}
|
||||||
|
reportDescription = Hãy giúp chúng tôi hiểu những gì đang diễn ra. Bạn nghĩ gì có gì không đúng với những tập tin này?
|
||||||
|
reportUnknownDescription = Vui lòng truy cập url của liên kết bạn muốn báo cáo và nhấp vào “{ reportFile }”.
|
||||||
|
reportButton = Báo cáo
|
||||||
|
reportReasonMalware = Những tập tin này chứa phần mềm độc hại hoặc là một phần của cuộc tấn công lừa đảo.
|
||||||
|
reportReasonPii = Những tập tin này chứa thông tin cá nhân về tôi.
|
||||||
|
reportReasonAbuse = Những tập tin này chứa nội dung bất hợp pháp hoặc lạm dụng.
|
||||||
|
reportReasonCopyright = Để báo cáo vi phạm bản quyền hoặc nhãn hiệu, hãy sử dụng quy trình được mô tả tại <a>trang này</a>.
|
||||||
|
reportedTitle = Đã báo cáo tập tin
|
||||||
|
reportedDescription = Cảm ơn bạn. Chúng tôi đã nhận được báo cáo của bạn về các tập tin này.
|
||||||
|
|
|
@ -1,9 +1,18 @@
|
||||||
# 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 je oruko ile-ise kan, kò sì ye ki a so di ibile.
|
title = Firefox Send je oruko ile-ise kan, kò sì ye ki a so di ibile.
|
||||||
siteFeedback = abo
|
|
||||||
importingFile = akowọle…
|
importingFile = akowọle…
|
||||||
encryptingFile = Fifi ọrọ ṣiṣẹ…
|
encryptingFile = Fifi ọrọ ṣiṣẹ…
|
||||||
decryptingFile = Ti nkọ nkan…
|
decryptingFile = Ti nkọ nkan…
|
||||||
|
downloadCount =
|
||||||
|
{ $num ->
|
||||||
|
[one] ìsíwá kan…
|
||||||
|
*[other] ọ̀pọ̀ ìsíwá…
|
||||||
|
}
|
||||||
|
timespanHours =
|
||||||
|
{ $num ->
|
||||||
|
[one] Wákàtí kan
|
||||||
|
*[other] Ọ̀pọ wákàtí
|
||||||
|
}
|
||||||
copiedUrl = dakọ
|
copiedUrl = dakọ
|
||||||
unlockInputPlaceholder =
|
unlockInputPlaceholder =
|
||||||
aṣínà
|
aṣínà
|
||||||
|
@ -87,3 +96,23 @@ passwordSetError =
|
||||||
introTitle =
|
introTitle =
|
||||||
Fáìlì pípín níkọ̀kọ̀ tó dẹrùn
|
Fáìlì pípín níkọ̀kọ̀ tó dẹrùn
|
||||||
Fáìlì pípín níkọ̀kọ̀ onírọ̀rùn
|
Fáìlì pípín níkọ̀kọ̀ onírọ̀rùn
|
||||||
|
# byte abbreviation
|
||||||
|
bytes = B
|
||||||
|
# kibibyte abbreviation
|
||||||
|
kb = Kilobaiti
|
||||||
|
# mebibyte abbreviation
|
||||||
|
mb = Megabaiti
|
||||||
|
# gibibyte abbreviation
|
||||||
|
gb = Gigabaiti
|
||||||
|
downloadTitle = Se igabisile faili
|
||||||
|
addFilesButton = E yan awon faili lati gbasoke
|
||||||
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
|
dragAndDropFiles = E mu awon faili ki ede ju si bi
|
||||||
|
emailPlaceholder = E fi imeli si
|
||||||
|
accountBenefitDownloadCount = E pin faili pelu awon eyan si
|
||||||
|
okButton = O DA
|
||||||
|
downloadingTitle = N se igabsile
|
||||||
|
noStreamsOptionFirefox = E gbiyanju asawakiri to je ayanfe wa
|
||||||
|
noStreamsOptionDownload = Tesiwaju pelu aṣàwákiri yi
|
||||||
|
trailheadPromo = Ona wa lati dabobo ipamo re. Darapo mo Firefox
|
||||||
|
learnMore = Keeko si
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = 反馈
|
|
||||||
importingFile = 正在导入…
|
importingFile = 正在导入…
|
||||||
encryptingFile = 正在加密…
|
encryptingFile = 正在加密…
|
||||||
decryptingFile = 正在解密…
|
decryptingFile = 正在解密…
|
||||||
|
@ -113,6 +112,7 @@ legalDateStamp = 版本 1.0,于 2019年3月12日
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } 天 { $hours } 小时 { $minutes } 分钟
|
expiresDaysHoursMinutes = { $days } 天 { $hours } 小时 { $minutes } 分钟
|
||||||
addFilesButton = 选择要上传的文件
|
addFilesButton = 选择要上传的文件
|
||||||
|
trustWarningMessage = 分享敏感数据时,请确保您信任接收人。
|
||||||
uploadButton = 上传
|
uploadButton = 上传
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = 拖放文件
|
dragAndDropFiles = 拖放文件
|
||||||
|
@ -150,3 +150,33 @@ shareLinkButton = 分享链接
|
||||||
shareMessage = 使用 { -send-brand } 下载“{ $name }”:简单、安全的文件分享服务
|
shareMessage = 使用 { -send-brand } 下载“{ $name }”:简单、安全的文件分享服务
|
||||||
trailheadPromo = 捍卫隐私不是幻想。加入 Firefox 一同抗争。
|
trailheadPromo = 捍卫隐私不是幻想。加入 Firefox 一同抗争。
|
||||||
learnMore = 详细了解。
|
learnMore = 详细了解。
|
||||||
|
downloadFlagged = 由于违反服务条款,此链接已被禁用。
|
||||||
|
downloadConfirmTitle = 除此之外
|
||||||
|
downloadConfirmDescription = 请确保您信任发送此文件的人,因为我们无法验证该文件是否会损坏您的设备。
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
[one] 我信任发送此文件的人
|
||||||
|
*[other] 我信任发送这些文件的人
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
[one] 举报此可疑文件
|
||||||
|
*[other] 举报这些可疑文件
|
||||||
|
}
|
||||||
|
reportDescription = 帮助我们了解发生了什么。您认为这些文件存在什么问题?
|
||||||
|
reportUnknownDescription = 请转至您要举报的链接 URL,然后点击 “{ reportFile }”。
|
||||||
|
reportButton = 举报
|
||||||
|
reportReasonMalware = 这些文件包含恶意软件或是网络钓鱼攻击的一环。
|
||||||
|
reportReasonPii = 这些文件包含我的个人身份信息。
|
||||||
|
reportReasonAbuse = 这些文件包含非法或滥用内容。
|
||||||
|
reportReasonCopyright = 要举报版权或商标侵权,请按照<a>此页面</a>中所述步骤。
|
||||||
|
reportedTitle = 文件已举报
|
||||||
|
reportedDescription = 感谢,我们已收到您关于这些文件的举报。
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
# 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 = 意見回饋
|
|
||||||
importingFile = 匯入中…
|
importingFile = 匯入中…
|
||||||
encryptingFile = 加密中…
|
encryptingFile = 加密中…
|
||||||
decryptingFile = 解密中…
|
decryptingFile = 解密中…
|
||||||
|
@ -108,6 +107,7 @@ legalDateStamp = 1.0 版,2019 年 3 月 12 日生效
|
||||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||||
expiresDaysHoursMinutes = { $days } 天 { $hours } 小時 { $minutes } 分鐘
|
expiresDaysHoursMinutes = { $days } 天 { $hours } 小時 { $minutes } 分鐘
|
||||||
addFilesButton = 選擇要上傳的檔案
|
addFilesButton = 選擇要上傳的檔案
|
||||||
|
trustWarningMessage = 分享敏感資料時,請務必確認收件者是可信任的人。
|
||||||
uploadButton = 上傳
|
uploadButton = 上傳
|
||||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||||
dragAndDropFiles = 拖放檔案到此處
|
dragAndDropFiles = 拖放檔案到此處
|
||||||
|
@ -144,3 +144,31 @@ shareLinkButton = 分享鏈結
|
||||||
shareMessage = 使用 { -send-brand } 下載「{ $name }」: 簡單安全的檔案分享機制
|
shareMessage = 使用 { -send-brand } 下載「{ $name }」: 簡單安全的檔案分享機制
|
||||||
trailheadPromo = 有種方法可以保護您的隱私,加入 Firefox。
|
trailheadPromo = 有種方法可以保護您的隱私,加入 Firefox。
|
||||||
learnMore = 了解更多。
|
learnMore = 了解更多。
|
||||||
|
downloadFlagged = 由於違反了服務條款,已停用此鏈結。
|
||||||
|
downloadConfirmTitle = 還有一件事
|
||||||
|
downloadConfirmDescription = 因為我們無法檢查此檔案是否會傷害您的裝置,請務必確認發送者是否可受信任。
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
downloadTrustCheckbox =
|
||||||
|
{ $count ->
|
||||||
|
*[other] 我信任傳送檔案給我的人
|
||||||
|
}
|
||||||
|
# This string has a special case for '1' and [other] (default). If necessary for
|
||||||
|
# your language, you can add {$count} to your translations and use the
|
||||||
|
# standard CLDR forms, or only use the form for [other] if both strings should
|
||||||
|
# be identical.
|
||||||
|
reportFile =
|
||||||
|
{ $count ->
|
||||||
|
*[other] 回報檔案為可疑檔案
|
||||||
|
}
|
||||||
|
reportDescription = 請幫助我們釐清發生了什麼事。您覺得這些檔案有什麼問題?
|
||||||
|
reportUnknownDescription = 請到想要回報的鏈結網址點擊「{ reportFile }」。
|
||||||
|
reportButton = 回報
|
||||||
|
reportReasonMalware = 這些檔案包含惡意軟體,或是釣魚攻擊的一部分。
|
||||||
|
reportReasonPii = 這些檔案包含我的個人資訊。
|
||||||
|
reportReasonAbuse = 這些檔案包含非法或濫用內容。
|
||||||
|
reportReasonCopyright = 若檔案內容侵犯了著作權或商標,請根據<a>此頁面</a>當中描述的方式進行回報。
|
||||||
|
reportedTitle = 已回報檔案問題
|
||||||
|
reportedDescription = 感謝您。我們已經收到您對這些檔案的問題回報。
|
||||||
|
|
|
@ -3,10 +3,6 @@ const fetch = require('node-fetch');
|
||||||
const config = require('./config');
|
const config = require('./config');
|
||||||
const pkg = require('../package.json');
|
const pkg = require('../package.json');
|
||||||
|
|
||||||
const geoip = config.ip_db
|
|
||||||
? require('fxa-geodb')({ dbPath: config.ip_db })
|
|
||||||
: () => ({});
|
|
||||||
|
|
||||||
const HOUR = 1000 * 60 * 60;
|
const HOUR = 1000 * 60 * 60;
|
||||||
|
|
||||||
function truncateToHour(timestamp) {
|
function truncateToHour(timestamp) {
|
||||||
|
@ -24,20 +20,11 @@ function userId(fileId, ownerId) {
|
||||||
return hash.digest('hex').substring(32);
|
return hash.digest('hex').substring(32);
|
||||||
}
|
}
|
||||||
|
|
||||||
function location(ip) {
|
|
||||||
try {
|
|
||||||
return geoip(ip);
|
|
||||||
} catch (e) {
|
|
||||||
return {};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function statUploadEvent(data) {
|
function statUploadEvent(data) {
|
||||||
const loc = location(data.ip);
|
|
||||||
const event = {
|
const event = {
|
||||||
session_id: -1,
|
session_id: -1,
|
||||||
country: loc.country,
|
country: data.country,
|
||||||
region: loc.state,
|
region: data.state,
|
||||||
user_id: userId(data.id, data.owner),
|
user_id: userId(data.id, data.owner),
|
||||||
app_version: pkg.version,
|
app_version: pkg.version,
|
||||||
time: truncateToHour(Date.now()),
|
time: truncateToHour(Date.now()),
|
||||||
|
@ -57,11 +44,10 @@ function statUploadEvent(data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function statDownloadEvent(data) {
|
function statDownloadEvent(data) {
|
||||||
const loc = location(data.ip);
|
|
||||||
const event = {
|
const event = {
|
||||||
session_id: -1,
|
session_id: -1,
|
||||||
country: loc.country,
|
country: data.country,
|
||||||
region: loc.state,
|
region: data.state,
|
||||||
user_id: userId(data.id, data.owner),
|
user_id: userId(data.id, data.owner),
|
||||||
app_version: pkg.version,
|
app_version: pkg.version,
|
||||||
time: truncateToHour(Date.now()),
|
time: truncateToHour(Date.now()),
|
||||||
|
@ -77,11 +63,10 @@ function statDownloadEvent(data) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function statDeleteEvent(data) {
|
function statDeleteEvent(data) {
|
||||||
const loc = location(data.ip);
|
|
||||||
const event = {
|
const event = {
|
||||||
session_id: -1,
|
session_id: -1,
|
||||||
country: loc.country,
|
country: data.country,
|
||||||
region: loc.state,
|
region: data.state,
|
||||||
user_id: userId(data.id, data.owner),
|
user_id: userId(data.id, data.owner),
|
||||||
app_version: pkg.version,
|
app_version: pkg.version,
|
||||||
time: truncateToHour(Date.now()),
|
time: truncateToHour(Date.now()),
|
||||||
|
@ -96,8 +81,37 @@ function statDeleteEvent(data) {
|
||||||
return sendBatch([event]);
|
return sendBatch([event]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function clientEvent(event, ua, language, session_id, deltaT, platform, ip) {
|
function statReportEvent(data) {
|
||||||
const loc = location(ip);
|
const event = {
|
||||||
|
session_id: -1,
|
||||||
|
country: data.country,
|
||||||
|
region: data.state,
|
||||||
|
user_id: userId(data.id, data.owner),
|
||||||
|
app_version: pkg.version,
|
||||||
|
time: truncateToHour(Date.now()),
|
||||||
|
event_type: 'server_report',
|
||||||
|
event_properties: {
|
||||||
|
reason: data.reason,
|
||||||
|
agent: data.agent,
|
||||||
|
download_limit: data.dlimit,
|
||||||
|
download_count: data.download_count,
|
||||||
|
ttl: data.ttl
|
||||||
|
},
|
||||||
|
event_id: data.download_count + 1
|
||||||
|
};
|
||||||
|
return sendBatch([event]);
|
||||||
|
}
|
||||||
|
|
||||||
|
function clientEvent(
|
||||||
|
event,
|
||||||
|
ua,
|
||||||
|
language,
|
||||||
|
session_id,
|
||||||
|
deltaT,
|
||||||
|
platform,
|
||||||
|
country,
|
||||||
|
state
|
||||||
|
) {
|
||||||
const ep = event.event_properties || {};
|
const ep = event.event_properties || {};
|
||||||
const up = event.user_properties || {};
|
const up = event.user_properties || {};
|
||||||
const event_properties = {
|
const event_properties = {
|
||||||
|
@ -133,7 +147,7 @@ function clientEvent(event, ua, language, session_id, deltaT, platform, ip) {
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
app_version: pkg.version,
|
app_version: pkg.version,
|
||||||
country: loc.country,
|
country: country,
|
||||||
device_id: event.device_id,
|
device_id: event.device_id,
|
||||||
event_properties,
|
event_properties,
|
||||||
event_type: event.event_type,
|
event_type: event.event_type,
|
||||||
|
@ -141,7 +155,7 @@ function clientEvent(event, ua, language, session_id, deltaT, platform, ip) {
|
||||||
os_name: ua.os.name,
|
os_name: ua.os.name,
|
||||||
os_version: ua.os.version,
|
os_version: ua.os.version,
|
||||||
platform,
|
platform,
|
||||||
region: loc.state,
|
region: state,
|
||||||
session_id,
|
session_id,
|
||||||
time: event.time + deltaT,
|
time: event.time + deltaT,
|
||||||
user_id: event.user_id,
|
user_id: event.user_id,
|
||||||
|
@ -173,6 +187,7 @@ module.exports = {
|
||||||
statUploadEvent,
|
statUploadEvent,
|
||||||
statDownloadEvent,
|
statDownloadEvent,
|
||||||
statDeleteEvent,
|
statDeleteEvent,
|
||||||
|
statReportEvent,
|
||||||
clientEvent,
|
clientEvent,
|
||||||
sendBatch
|
sendBatch
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,7 +14,7 @@ module.exports = function(app, devServer) {
|
||||||
expressWs(wsapp, null, { perMessageDeflate: false });
|
expressWs(wsapp, null, { perMessageDeflate: false });
|
||||||
routes(wsapp);
|
routes(wsapp);
|
||||||
wsapp.ws('/api/ws', require('../routes/ws'));
|
wsapp.ws('/api/ws', require('../routes/ws'));
|
||||||
wsapp.listen(8081, config.listen_address);
|
wsapp.listen(1338, config.listen_address);
|
||||||
|
|
||||||
assets.setMiddleware(devServer.middleware);
|
assets.setMiddleware(devServer.middleware);
|
||||||
app.use(morgan('dev', { stream: process.stderr }));
|
app.use(morgan('dev', { stream: process.stderr }));
|
||||||
|
|
|
@ -71,7 +71,7 @@ const conf = convict({
|
||||||
},
|
},
|
||||||
redis_host: {
|
redis_host: {
|
||||||
format: String,
|
format: String,
|
||||||
default: 'localhost',
|
default: 'mock',
|
||||||
env: 'REDIS_HOST'
|
env: 'REDIS_HOST'
|
||||||
},
|
},
|
||||||
redis_event_expire: {
|
redis_event_expire: {
|
||||||
|
@ -120,6 +120,11 @@ const conf = convict({
|
||||||
default: '',
|
default: '',
|
||||||
env: 'SENTRY_DSN'
|
env: 'SENTRY_DSN'
|
||||||
},
|
},
|
||||||
|
sentry_host: {
|
||||||
|
format: String,
|
||||||
|
default: 'https://sentry.prod.mozaws.net',
|
||||||
|
env: 'SENTRY_HOST'
|
||||||
|
},
|
||||||
env: {
|
env: {
|
||||||
format: ['production', 'development', 'test'],
|
format: ['production', 'development', 'test'],
|
||||||
default: 'development',
|
default: 'development',
|
||||||
|
@ -150,9 +155,14 @@ const conf = convict({
|
||||||
default: `${tmpdir()}${path.sep}send-${randomBytes(4).toString('hex')}`,
|
default: `${tmpdir()}${path.sep}send-${randomBytes(4).toString('hex')}`,
|
||||||
env: 'FILE_DIR'
|
env: 'FILE_DIR'
|
||||||
},
|
},
|
||||||
|
fxa_required: {
|
||||||
|
format: Boolean,
|
||||||
|
default: true,
|
||||||
|
env: 'FXA_REQUIRED'
|
||||||
|
},
|
||||||
fxa_url: {
|
fxa_url: {
|
||||||
format: 'url',
|
format: 'url',
|
||||||
default: 'https://send-fxa.dev.lcip.org',
|
default: 'http://localhost:3030',
|
||||||
env: 'FXA_URL'
|
env: 'FXA_URL'
|
||||||
},
|
},
|
||||||
fxa_client_id: {
|
fxa_client_id: {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue