mirror of
https://gitlab.com/timvisee/send.git
synced 2025-12-06 22:20:55 +03:00
Compare commits
306 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5d3d9339b8 | ||
|
|
94e826e1e2 | ||
|
|
11319080a8 | ||
|
|
0aefdc18da | ||
|
|
2be2b6f410 | ||
|
|
d4c42c8ab1 | ||
|
|
b9a329fa34 | ||
|
|
f84a5f1b18 | ||
|
|
9f64e08b93 | ||
|
|
48a11cd33b | ||
|
|
32b9fb8aa6 | ||
|
|
f0bbf822c1 | ||
|
|
3abaa58a1b | ||
|
|
b0ad17d3b7 | ||
|
|
4597ecf4e1 | ||
|
|
571b6f4003 | ||
|
|
0152a440b4 | ||
|
|
0886352a09 | ||
|
|
98444d68d3 | ||
|
|
d38ea6a3fa | ||
|
|
e75478af8d | ||
|
|
d8e117e61a | ||
|
|
15c9593e18 | ||
|
|
df0644a9da | ||
|
|
b22b8f089d | ||
|
|
032fddff64 | ||
|
|
46bc3d4713 | ||
|
|
d0844ae811 | ||
|
|
740ab457de | ||
|
|
41865f9fc2 | ||
|
|
915d6c2abd | ||
|
|
fc07069900 | ||
|
|
98819744af | ||
|
|
c6ddbe1b66 | ||
|
|
3c4f502eac | ||
|
|
320b4cc9f1 | ||
|
|
e20798e0aa | ||
|
|
d23eb376f8 | ||
|
|
7654210dbb | ||
|
|
decc44620b | ||
|
|
246e2c8db0 | ||
|
|
fbc4107262 | ||
|
|
dc912678fe | ||
|
|
1ec2b995b0 | ||
|
|
fc8673b87a | ||
|
|
27bc7de7d0 | ||
|
|
0abcd8ac3b | ||
|
|
604a17a19d | ||
|
|
97efdc572a | ||
|
|
d023a53b74 | ||
|
|
06daba9ce0 | ||
|
|
deb5c6e5d1 | ||
|
|
d2cdff5975 | ||
|
|
0eb35c048c | ||
|
|
028a6c4311 | ||
|
|
2356d0fb64 | ||
|
|
ab63a34938 | ||
|
|
4f03be590a | ||
|
|
9bd96a9ec0 | ||
|
|
dd59605f3e | ||
|
|
e2425cd6c9 | ||
|
|
81e9d81dab | ||
|
|
87d46f7ef5 | ||
|
|
2f503c91e4 | ||
|
|
3c27656444 | ||
|
|
1cd33282dd | ||
|
|
db6358abed | ||
|
|
a08333d2b4 | ||
|
|
8869e34ca5 | ||
|
|
a05c0e16b7 | ||
|
|
192d45f77c | ||
|
|
8ad4597114 | ||
|
|
4d96274f79 | ||
|
|
437f712a4d | ||
|
|
7d35e8f61f | ||
|
|
7130c2e7b0 | ||
|
|
72d2d6ef31 | ||
|
|
eadf223e8d | ||
|
|
196099b194 | ||
|
|
f0a116d0e4 | ||
|
|
571049e597 | ||
|
|
f637f2f3bc | ||
|
|
fe892fdcc1 | ||
|
|
f792482478 | ||
|
|
5277730e7c | ||
|
|
696b3f7c05 | ||
|
|
18eebd1ce2 | ||
|
|
86326e4e6d | ||
|
|
4c02a2ecf7 | ||
|
|
c00e552f80 | ||
|
|
bcefd4f1cb | ||
|
|
82a91f4117 | ||
|
|
6539da2c53 | ||
|
|
c6152cfcb4 | ||
|
|
9f8e1051b1 | ||
|
|
a2db84e44e | ||
|
|
6f967e984f | ||
|
|
6bc0b780be | ||
|
|
a88acee8ee | ||
|
|
92759a1f08 | ||
|
|
59c4032176 | ||
|
|
5e9edec93a | ||
|
|
dfb81409c6 | ||
|
|
5ef569fa71 | ||
|
|
bfff47641a | ||
|
|
7abe664e79 | ||
|
|
b30ac5605d | ||
|
|
0f289202bc | ||
|
|
7223956f01 | ||
|
|
e972c9f723 | ||
|
|
8147d34857 | ||
|
|
f1c73fcf8d | ||
|
|
9fa012c04d | ||
|
|
75bd771812 | ||
|
|
b98761e08a | ||
|
|
93638aa291 | ||
|
|
acb73e1dab | ||
|
|
2235414620 | ||
|
|
1aa0fbb712 | ||
|
|
d66d5d65b2 | ||
|
|
207a27215c | ||
|
|
2790b4ca4b | ||
|
|
f653838bf4 | ||
|
|
a0770d9b86 | ||
|
|
ec1f32fb65 | ||
|
|
ca0a05e6dc | ||
|
|
0687ec877c | ||
|
|
14209baf55 | ||
|
|
75938febfa | ||
|
|
a9e9902468 | ||
|
|
91cd7684c4 | ||
|
|
8bf8c8d95a | ||
|
|
594916a59d | ||
|
|
6213762d96 | ||
|
|
d9cbe058ab | ||
|
|
2f6119e2f1 | ||
|
|
21d1839818 | ||
|
|
95cde415f6 | ||
|
|
2e6d1abac2 | ||
|
|
3a36a718d2 | ||
|
|
04b1623f15 | ||
|
|
10ffa1d785 | ||
|
|
93e98b9c30 | ||
|
|
618e169895 | ||
|
|
91584649c5 | ||
|
|
31805031ca | ||
|
|
58ffcb171d | ||
|
|
55df061567 | ||
|
|
8fb770a4ea | ||
|
|
83cae687c8 | ||
|
|
75444ead46 | ||
|
|
df62189346 | ||
|
|
b1e25ed40c | ||
|
|
abef9d9b7f | ||
|
|
748d9b48ff | ||
|
|
10f60dd2dd | ||
|
|
1882ce5708 | ||
|
|
20db9ee6fd | ||
|
|
069efcd257 | ||
|
|
446e993420 | ||
|
|
588c793b98 | ||
|
|
3c6f45464b | ||
|
|
76ecbbecc6 | ||
|
|
ab1802a371 | ||
|
|
15f4f386fb | ||
|
|
84e9e9f654 | ||
|
|
e1e7887237 | ||
|
|
0c274139ed | ||
|
|
1dbf7c7b2a | ||
|
|
0bec884397 | ||
|
|
58095ac676 | ||
|
|
b680d20bca | ||
|
|
5eab9703af | ||
|
|
5c5853c645 | ||
|
|
4674666807 | ||
|
|
5626e128f2 | ||
|
|
1fa714924e | ||
|
|
89bfa74bb8 | ||
|
|
12d6c029ff | ||
|
|
c580282a27 | ||
|
|
f3a1fde07f | ||
|
|
ce507c557f | ||
|
|
6c984fa127 | ||
|
|
359d5d6bdd | ||
|
|
7698564a4d | ||
|
|
546b58d4d5 | ||
|
|
813a2d2f25 | ||
|
|
f8d61479d2 | ||
|
|
afcc06ad14 | ||
|
|
84b3796710 | ||
|
|
8fd0a4cb01 | ||
|
|
2a947a031d | ||
|
|
0a8663aa51 | ||
|
|
17057e725d | ||
|
|
9891d1f0ba | ||
|
|
3e9be67641 | ||
|
|
402c8351bd | ||
|
|
ccbcb69666 | ||
|
|
e6ff9e486b | ||
|
|
17afd6ad58 | ||
|
|
7dd1fcca9b | ||
|
|
d5319f4fcf | ||
|
|
a3d880fc4f | ||
|
|
8a9a823842 | ||
|
|
3195ee7d16 | ||
|
|
f565954a54 | ||
|
|
4abfd7dd6e | ||
|
|
e930275042 | ||
|
|
960e29f800 | ||
|
|
7e637ae453 | ||
|
|
cca6b470b0 | ||
|
|
829d10f77f | ||
|
|
b7d7bb885d | ||
|
|
31e2e00b24 | ||
|
|
0ab2ec6a5c | ||
|
|
369b0b2614 | ||
|
|
b064152955 | ||
|
|
438b36dd28 | ||
|
|
a429b89322 | ||
|
|
bd0117628f | ||
|
|
c4299d05a1 | ||
|
|
e3027d2c59 | ||
|
|
be055ff7ba | ||
|
|
5a53eb85fb | ||
|
|
c249f26b4a | ||
|
|
b229547057 | ||
|
|
334f225f3d | ||
|
|
e8f3379ddb | ||
|
|
3dd3fa9808 | ||
|
|
9459e4bca8 | ||
|
|
888e99841e | ||
|
|
949dcce5d7 | ||
|
|
0c47991de6 | ||
|
|
63b96310d3 | ||
|
|
da37b9d96f | ||
|
|
931cfd108d | ||
|
|
cc7ea99ca9 | ||
|
|
996a7e4184 | ||
|
|
e5627698c4 | ||
|
|
1fdccd4dde | ||
|
|
b8c26aee06 | ||
|
|
b7d65517b3 | ||
|
|
4f5b804b5d | ||
|
|
a74491af40 | ||
|
|
09955a0231 | ||
|
|
301f6e87f6 | ||
|
|
8c0f1fbe3b | ||
|
|
b81535c820 | ||
|
|
f5f0a430eb | ||
|
|
ca55dedad4 | ||
|
|
76a3d6fc03 | ||
|
|
f9b5cadf17 | ||
|
|
458ef649f3 | ||
|
|
de063f75e5 | ||
|
|
e2876b119d | ||
|
|
25d41073b7 | ||
|
|
5fb9e395d5 | ||
|
|
c73ddcd464 | ||
|
|
3a98c295e0 | ||
|
|
899f921da3 | ||
|
|
97b9d24134 | ||
|
|
ab9dbecbd6 | ||
|
|
0cf77d94cb | ||
|
|
bfe3a4067d | ||
|
|
0226483c30 | ||
|
|
a6dbb9a58f | ||
|
|
c9e691bdc2 | ||
|
|
e88bfb597c | ||
|
|
190ded1ba7 | ||
|
|
7b7f1f3223 | ||
|
|
1f4473c278 | ||
|
|
27e86640be | ||
|
|
74d151d12c | ||
|
|
a370f01908 | ||
|
|
3078e1f90c | ||
|
|
d90830b285 | ||
|
|
74288cdba6 | ||
|
|
a37e59cdb3 | ||
|
|
ee5f63e11c | ||
|
|
b02f2768d3 | ||
|
|
da3a7c1e98 | ||
|
|
8180406467 | ||
|
|
be595de148 | ||
|
|
395b6518ee | ||
|
|
49243506cb | ||
|
|
69948f4a4a | ||
|
|
85aaeb9892 | ||
|
|
95098d5828 | ||
|
|
eb4aa04f7e | ||
|
|
5afb940718 | ||
|
|
b6e956e086 | ||
|
|
681ca8197c | ||
|
|
21e312dac3 | ||
|
|
5a02e32aec | ||
|
|
dfe3631bcd | ||
|
|
b7c53bf8e2 | ||
|
|
9bdf9c4416 | ||
|
|
7116c1c06e | ||
|
|
f210394d84 | ||
|
|
0679a29cdc | ||
|
|
7aead375d8 | ||
|
|
5a70362b79 | ||
|
|
97deb78de6 | ||
|
|
2d22573588 | ||
|
|
5ff6266a5e | ||
|
|
30d7ec50f3 |
@@ -16,13 +16,12 @@ RUN set -x \
|
||||
--home /app \
|
||||
--uid 10001 \
|
||||
app
|
||||
RUN npm i -g npm
|
||||
COPY --chown=app:app . /app
|
||||
USER app
|
||||
WORKDIR /app
|
||||
RUN set -x \
|
||||
# Build
|
||||
&& npm ci \
|
||||
&& PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm ci \
|
||||
&& npm run build
|
||||
|
||||
|
||||
|
||||
10
README.md
10
README.md
@@ -30,22 +30,22 @@ A file sharing experiment which allows you to send encrypted files to other user
|
||||
|
||||
## Requirements
|
||||
|
||||
- [Node.js 10.x](https://nodejs.org/)
|
||||
- [Node.js 12.x](https://nodejs.org/)
|
||||
- [Redis server](https://redis.io/) (optional for development)
|
||||
- [AWS S3](https://aws.amazon.com/s3/) or compatible service. (optional)
|
||||
- [AWS S3](https://aws.amazon.com/s3/) or compatible service (optional)
|
||||
|
||||
---
|
||||
|
||||
## Development
|
||||
|
||||
To start an ephemeral development server run:
|
||||
To start an ephemeral development server, run:
|
||||
|
||||
```sh
|
||||
npm install
|
||||
npm start
|
||||
```
|
||||
|
||||
Then browse to http://localhost:8080
|
||||
Then, browse to http://localhost:1337
|
||||
|
||||
---
|
||||
|
||||
@@ -100,7 +100,7 @@ see also [docs/deployment.md](docs/deployment.md)
|
||||
|
||||
## Android
|
||||
|
||||
The android implementation is contained in the `android` directory, and can be viewed locally for easy testing and editing by running `ANDROID=1 npm start` and then visiting <http://localhost:8080>. CSS and image files are located in the `android/app/src/main/assets` directory.
|
||||
The android implementation is contained in the `android` directory, and can be viewed locally for easy testing and editing by running `ANDROID=1 npm start` and then visiting <http://localhost:1337>. CSS and image files are located in the `android/app/src/main/assets` directory.
|
||||
|
||||
---
|
||||
|
||||
|
||||
90
app/api.js
90
app/api.js
@@ -61,7 +61,10 @@ async function fetchWithAuth(url, params, keychain) {
|
||||
const result = {};
|
||||
params = params || {};
|
||||
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);
|
||||
result.response = response;
|
||||
result.ok = response.ok;
|
||||
@@ -127,10 +130,10 @@ export async function metadata(id, keychain) {
|
||||
return {
|
||||
size: meta.size,
|
||||
ttl: data.ttl,
|
||||
iv: meta.iv,
|
||||
name: meta.name,
|
||||
type: meta.type,
|
||||
manifest: meta.manifest
|
||||
manifest: meta.manifest,
|
||||
flagged: data.flagged
|
||||
};
|
||||
}
|
||||
throw new Error(result.response.status);
|
||||
@@ -289,20 +292,13 @@ export function uploadWs(
|
||||
|
||||
////////////////////////
|
||||
|
||||
async function downloadS(id, keychain, signal) {
|
||||
const auth = await keychain.authHeader();
|
||||
|
||||
async function _downloadStream(id, dlToken, signal) {
|
||||
const response = await fetch(getApiUrl(`/api/download/${id}`), {
|
||||
signal: signal,
|
||||
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) {
|
||||
throw new Error(response.status);
|
||||
}
|
||||
@@ -310,13 +306,13 @@ async function downloadS(id, keychain, signal) {
|
||||
return response.body;
|
||||
}
|
||||
|
||||
async function tryDownloadStream(id, keychain, signal, tries = 2) {
|
||||
async function tryDownloadStream(id, dlToken, signal, tries = 2) {
|
||||
try {
|
||||
const result = await downloadS(id, keychain, signal);
|
||||
const result = await _downloadStream(id, dlToken, signal);
|
||||
return result;
|
||||
} catch (e) {
|
||||
if (e.message === '401' && --tries > 0) {
|
||||
return tryDownloadStream(id, keychain, signal, tries);
|
||||
return tryDownloadStream(id, dlToken, signal, tries);
|
||||
}
|
||||
if (e.name === 'AbortError') {
|
||||
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();
|
||||
function cancel() {
|
||||
controller.abort();
|
||||
}
|
||||
return {
|
||||
cancel,
|
||||
result: tryDownloadStream(id, keychain, controller.signal)
|
||||
result: tryDownloadStream(id, dlToken, controller.signal)
|
||||
};
|
||||
}
|
||||
|
||||
//////////////////
|
||||
|
||||
async function download(id, keychain, onprogress, canceller) {
|
||||
const auth = await keychain.authHeader();
|
||||
async function download(id, dlToken, onprogress, canceller) {
|
||||
const xhr = new XMLHttpRequest();
|
||||
canceller.oncancel = function() {
|
||||
xhr.abort();
|
||||
@@ -347,10 +342,6 @@ async function download(id, keychain, onprogress, canceller) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
xhr.addEventListener('loadend', function() {
|
||||
canceller.oncancel = function() {};
|
||||
const authHeader = xhr.getResponseHeader('WWW-Authenticate');
|
||||
if (authHeader) {
|
||||
keychain.nonce = parseNonce(authHeader);
|
||||
}
|
||||
if (xhr.status !== 200) {
|
||||
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.setRequestHeader('Authorization', auth);
|
||||
xhr.setRequestHeader('Authorization', `Bearer ${dlToken}`);
|
||||
xhr.responseType = 'blob';
|
||||
xhr.send();
|
||||
onprogress(0);
|
||||
});
|
||||
}
|
||||
|
||||
async function tryDownload(id, keychain, onprogress, canceller, tries = 2) {
|
||||
async function tryDownload(id, dlToken, onprogress, canceller, tries = 2) {
|
||||
try {
|
||||
const result = await download(id, keychain, onprogress, canceller);
|
||||
const result = await download(id, dlToken, onprogress, canceller);
|
||||
return result;
|
||||
} catch (e) {
|
||||
if (e.message === '401' && --tries > 0) {
|
||||
return tryDownload(id, keychain, onprogress, canceller, tries);
|
||||
return tryDownload(id, dlToken, onprogress, canceller, tries);
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
}
|
||||
|
||||
export function downloadFile(id, keychain, onprogress) {
|
||||
export function downloadFile(id, dlToken, onprogress) {
|
||||
const canceller = {
|
||||
oncancel: function() {} // download() sets this
|
||||
};
|
||||
@@ -393,7 +384,7 @@ export function downloadFile(id, keychain, onprogress) {
|
||||
}
|
||||
return {
|
||||
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);
|
||||
}
|
||||
|
||||
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() {
|
||||
const browser = browserName();
|
||||
const isMobile = /mobi|android/i.test(navigator.userAgent);
|
||||
const serviceWorker = 'serviceWorker' in navigator && browser !== 'edge';
|
||||
let crypto = await checkCrypto();
|
||||
const nativeStreams = checkStreams();
|
||||
@@ -91,14 +92,15 @@ export default async function getCapabilities() {
|
||||
account = false;
|
||||
}
|
||||
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 =
|
||||
window.matchMedia('(display-mode: standalone)').matches ||
|
||||
navigator.standalone;
|
||||
|
||||
const mobileFirefox =
|
||||
browser === 'firefox' && /mobile/i.test(navigator.userAgent);
|
||||
const mobileFirefox = browser === 'firefox' && isMobile;
|
||||
|
||||
return {
|
||||
account,
|
||||
|
||||
@@ -49,8 +49,8 @@ export default function(state, emitter) {
|
||||
state.user.login(email);
|
||||
});
|
||||
|
||||
emitter.on('logout', () => {
|
||||
state.user.logout();
|
||||
emitter.on('logout', async () => {
|
||||
await state.user.logout();
|
||||
metrics.loggedOut({ trigger: 'button' });
|
||||
emitter.emit('pushState', '/');
|
||||
});
|
||||
@@ -178,6 +178,12 @@ export default function(state, emitter) {
|
||||
//cancelled. do nothing
|
||||
metrics.cancelledUpload(archive, err.duration);
|
||||
render();
|
||||
} else if (err.message === '401') {
|
||||
const refreshed = await state.user.refresh();
|
||||
if (refreshed) {
|
||||
return emitter.emit('upload');
|
||||
}
|
||||
emitter.emit('pushState', '/error');
|
||||
} else {
|
||||
// eslint-disable-next-line no-console
|
||||
console.error(err);
|
||||
@@ -226,9 +232,10 @@ export default function(state, emitter) {
|
||||
} catch (e) {
|
||||
if (e.message === '401' || e.message === '404') {
|
||||
file.password = null;
|
||||
if (!file.requiresPassword) {
|
||||
return emitter.emit('pushState', '/404');
|
||||
}
|
||||
file.dead = e.message === '404';
|
||||
} else {
|
||||
console.error(e);
|
||||
return emitter.emit('pushState', '/error');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,7 +251,8 @@ export default function(state, emitter) {
|
||||
const start = Date.now();
|
||||
try {
|
||||
const dl = state.transfer.download({
|
||||
stream: state.capabilities.streamDownload
|
||||
stream: state.capabilities.streamDownload,
|
||||
storage: state.storage
|
||||
});
|
||||
render();
|
||||
await dl;
|
||||
@@ -263,7 +271,9 @@ export default function(state, emitter) {
|
||||
} else {
|
||||
// eslint-disable-next-line no-console
|
||||
state.transfer = null;
|
||||
const location = err.message === '404' ? '/404' : '/error';
|
||||
const location = ['404', '403'].includes(err.message)
|
||||
? '/404'
|
||||
: '/error';
|
||||
if (location === '/error') {
|
||||
state.sentry.withScope(scope => {
|
||||
scope.setExtra('duration', err.duration);
|
||||
@@ -306,6 +316,21 @@ export default function(state, emitter) {
|
||||
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(() => {
|
||||
// poll for updates of the upload list
|
||||
if (!state.modal && state.route === '/') {
|
||||
|
||||
266
app/crc32.js
Normal file
266
app/crc32.js
Normal file
@@ -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 { concat } from './utils';
|
||||
|
||||
const NONCE_LENGTH = 12;
|
||||
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) {
|
||||
if (seq > 0xffffffff) {
|
||||
throw new Error('record sequence number exceeds limit');
|
||||
}
|
||||
const nonce = Buffer.from(this.nonceBase);
|
||||
const m = nonce.readUIntBE(nonce.length - 4, 4);
|
||||
const nonce = new DataView(this.nonceBase.slice());
|
||||
const m = nonce.getUint32(nonce.byteLength - 4);
|
||||
const xor = (m ^ seq) >>> 0; //forces unsigned int xor
|
||||
nonce.writeUIntBE(xor, nonce.length - 4, 4);
|
||||
|
||||
return nonce;
|
||||
nonce.setUint32(nonce.byteLength - 4, xor);
|
||||
return new Uint8Array(nonce.buffer);
|
||||
}
|
||||
|
||||
pad(data, isLast) {
|
||||
@@ -103,14 +102,11 @@ class ECETransformer {
|
||||
}
|
||||
|
||||
if (isLast) {
|
||||
const padding = Buffer.alloc(1);
|
||||
padding.writeUInt8(2, 0);
|
||||
return Buffer.concat([data, padding]);
|
||||
return concat(data, Uint8Array.of(2));
|
||||
} else {
|
||||
const padding = Buffer.alloc(this.rs - len - TAG_LENGTH);
|
||||
padding.fill(0);
|
||||
padding.writeUInt8(1, 0);
|
||||
return Buffer.concat([data, padding]);
|
||||
const padding = new Uint8Array(this.rs - len - TAG_LENGTH);
|
||||
padding[0] = 1;
|
||||
return concat(data, padding);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -133,10 +129,9 @@ class ECETransformer {
|
||||
}
|
||||
|
||||
createHeader() {
|
||||
const nums = Buffer.alloc(5);
|
||||
nums.writeUIntBE(this.rs, 0, 4);
|
||||
nums.writeUIntBE(0, 4, 1);
|
||||
return Buffer.concat([Buffer.from(this.salt), nums]);
|
||||
const nums = new DataView(new ArrayBuffer(5));
|
||||
nums.setUint32(0, this.rs);
|
||||
return concat(new Uint8Array(this.salt), new Uint8Array(nums.buffer));
|
||||
}
|
||||
|
||||
readHeader(buffer) {
|
||||
@@ -144,9 +139,10 @@ class ECETransformer {
|
||||
throw new Error('chunk too small for reading header');
|
||||
}
|
||||
const header = {};
|
||||
header.salt = buffer.buffer.slice(0, KEY_LENGTH);
|
||||
header.rs = buffer.readUIntBE(KEY_LENGTH, 4);
|
||||
const idlen = buffer.readUInt8(KEY_LENGTH + 4);
|
||||
const dv = new DataView(buffer.buffer);
|
||||
header.salt = buffer.slice(0, KEY_LENGTH);
|
||||
header.rs = dv.getUint32(KEY_LENGTH);
|
||||
const idlen = dv.getUint8(KEY_LENGTH + 4);
|
||||
header.length = idlen + KEY_LENGTH + 5;
|
||||
return header;
|
||||
}
|
||||
@@ -158,7 +154,7 @@ class ECETransformer {
|
||||
this.key,
|
||||
this.pad(buffer, isLast)
|
||||
);
|
||||
return Buffer.from(encrypted);
|
||||
return new Uint8Array(encrypted);
|
||||
}
|
||||
|
||||
async decryptRecord(buffer, seq, isLast) {
|
||||
@@ -173,7 +169,7 @@ class ECETransformer {
|
||||
buffer
|
||||
);
|
||||
|
||||
return this.unpad(Buffer.from(data), isLast);
|
||||
return this.unpad(new Uint8Array(data), isLast);
|
||||
}
|
||||
|
||||
async start(controller) {
|
||||
@@ -214,7 +210,7 @@ class ECETransformer {
|
||||
await this.transformPrevChunk(false, controller);
|
||||
}
|
||||
this.firstchunk = false;
|
||||
this.prevChunk = Buffer.from(chunk.buffer);
|
||||
this.prevChunk = new Uint8Array(chunk.buffer);
|
||||
}
|
||||
|
||||
async flush(controller) {
|
||||
|
||||
@@ -1,7 +1,14 @@
|
||||
import Nanobus from 'nanobus';
|
||||
import Keychain from './keychain';
|
||||
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 Zip from './zip';
|
||||
|
||||
@@ -13,9 +20,14 @@ export default class FileReceiver extends Nanobus {
|
||||
this.keychain.setPassword(fileInfo.password, fileInfo.url);
|
||||
}
|
||||
this.fileInfo = fileInfo;
|
||||
this.dlToken = null;
|
||||
this.reset();
|
||||
}
|
||||
|
||||
get id() {
|
||||
return this.fileInfo.id;
|
||||
}
|
||||
|
||||
get progressRatio() {
|
||||
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);
|
||||
this.fileInfo.name = meta.name;
|
||||
this.fileInfo.type = meta.type;
|
||||
this.fileInfo.iv = meta.iv;
|
||||
this.fileInfo.size = +meta.size;
|
||||
this.fileInfo.manifest = meta.manifest;
|
||||
this.fileInfo.flagged = meta.flagged;
|
||||
this.state = 'ready';
|
||||
}
|
||||
|
||||
async reportLink(reason) {
|
||||
await reportLink(this.fileInfo.id, this.keychain, reason);
|
||||
}
|
||||
|
||||
sendMessageToSw(msg) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const channel = new MessageChannel();
|
||||
@@ -75,7 +91,7 @@ export default class FileReceiver extends Nanobus {
|
||||
this.state = 'downloading';
|
||||
this.downloadRequest = await downloadFile(
|
||||
this.fileInfo.id,
|
||||
this.keychain,
|
||||
this.dlToken,
|
||||
p => {
|
||||
this.progress = [p, this.fileInfo.size];
|
||||
this.emit('progress');
|
||||
@@ -139,6 +155,7 @@ export default class FileReceiver extends Nanobus {
|
||||
url: this.fileInfo.url,
|
||||
size: this.fileInfo.size,
|
||||
nonce: this.keychain.nonce,
|
||||
dlToken: this.dlToken,
|
||||
noSave
|
||||
};
|
||||
await this.sendMessageToSw(info);
|
||||
@@ -204,11 +221,19 @@ export default class FileReceiver extends Nanobus {
|
||||
}
|
||||
}
|
||||
|
||||
download(options) {
|
||||
if (options.stream) {
|
||||
return this.downloadStream(options.noSave);
|
||||
async download({ stream, storage, noSave }) {
|
||||
this.dlToken = storage.getDownloadToken(this.id);
|
||||
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 */
|
||||
import { arrayToB64, b64ToArray } from './utils';
|
||||
import { arrayToB64, b64ToArray, concat } from './utils';
|
||||
|
||||
const encoder = new TextEncoder();
|
||||
const decoder = new TextDecoder();
|
||||
@@ -23,13 +23,6 @@ function getOtherInfo(enc) {
|
||||
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) {
|
||||
if (key.length !== 32) {
|
||||
throw new Error('unsupported key length');
|
||||
|
||||
76
app/main.css
76
app/main.css
@@ -55,6 +55,12 @@ body {
|
||||
@apply bg-blue-70;
|
||||
}
|
||||
|
||||
.btn:disabled {
|
||||
@apply bg-grey-transparent;
|
||||
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.checkbox {
|
||||
@apply leading-normal;
|
||||
@apply select-none;
|
||||
@@ -138,21 +144,6 @@ footer li:hover {
|
||||
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 {
|
||||
@apply text-blue-60;
|
||||
}
|
||||
@@ -175,6 +166,10 @@ footer li:hover {
|
||||
height: unset;
|
||||
}
|
||||
|
||||
.dl-bg {
|
||||
filter: grayscale(1) opacity(0.15);
|
||||
}
|
||||
|
||||
.main {
|
||||
display: flex;
|
||||
position: relative;
|
||||
@@ -296,7 +291,7 @@ select {
|
||||
@apply m-auto;
|
||||
@apply py-8;
|
||||
|
||||
min-height: 36rem;
|
||||
min-height: 42rem;
|
||||
max-height: 42rem;
|
||||
width: calc(100% - 3rem);
|
||||
}
|
||||
@@ -322,6 +317,10 @@ select {
|
||||
@apply bg-blue-50;
|
||||
}
|
||||
|
||||
.btn:disabled {
|
||||
@apply bg-grey-80;
|
||||
}
|
||||
|
||||
.link-blue {
|
||||
@apply text-blue-40;
|
||||
}
|
||||
@@ -392,48 +391,3 @@ select {
|
||||
.signin:hover:active {
|
||||
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) {
|
||||
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')));
|
||||
return app;
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@ import contentDisposition from 'content-disposition';
|
||||
let noSave = false;
|
||||
const map = new Map();
|
||||
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 FONT = /\.woff2?$/;
|
||||
|
||||
@@ -34,7 +34,7 @@ async function decryptStream(id) {
|
||||
keychain.setPassword(file.password, file.url);
|
||||
}
|
||||
|
||||
file.download = downloadStream(id, keychain);
|
||||
file.download = downloadStream(id, file.dlToken);
|
||||
|
||||
const body = await file.download.result;
|
||||
|
||||
@@ -146,6 +146,7 @@ self.onmessage = event => {
|
||||
type: event.data.type,
|
||||
manifest: event.data.manifest,
|
||||
size: event.data.size,
|
||||
dlToken: event.data.dlToken,
|
||||
progress: 0
|
||||
};
|
||||
map.set(event.data.id, info);
|
||||
|
||||
@@ -35,6 +35,7 @@ class Storage {
|
||||
this.engine = new Mem();
|
||||
}
|
||||
this._files = this.loadFiles();
|
||||
this.pruneTokens();
|
||||
}
|
||||
|
||||
loadFiles() {
|
||||
@@ -180,6 +181,48 @@ class Storage {
|
||||
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();
|
||||
|
||||
@@ -54,12 +54,17 @@ class Account extends Component {
|
||||
createElement() {
|
||||
if (!this.enabled) {
|
||||
return html`
|
||||
<div></div>
|
||||
<send-account></send-account>
|
||||
`;
|
||||
}
|
||||
const user = this.state.user;
|
||||
const translate = this.state.translate;
|
||||
this.setLocal();
|
||||
if (user.loginRequired && !this.local.loggedIn) {
|
||||
return html`
|
||||
<send-account></send-account>
|
||||
`;
|
||||
}
|
||||
if (!this.local.loggedIn) {
|
||||
return html`
|
||||
<send-account>
|
||||
|
||||
@@ -30,6 +30,12 @@ function password(state) {
|
||||
|
||||
return html`
|
||||
<div class="mb-2 px-1">
|
||||
<input
|
||||
id="autocomplete-decoy"
|
||||
class="hidden"
|
||||
type="password"
|
||||
value="lol"
|
||||
/>
|
||||
<div class="checkbox inline-block mr-3">
|
||||
<input
|
||||
id="add-password"
|
||||
@@ -482,6 +488,11 @@ module.exports.empty = function(state, emit) {
|
||||
>
|
||||
${state.translate('addFilesButton')}
|
||||
</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}
|
||||
</send-upload-area>
|
||||
`;
|
||||
@@ -517,13 +528,27 @@ module.exports.preview = function(state, emit) {
|
||||
`;
|
||||
return html`
|
||||
<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}
|
||||
</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
|
||||
id="download-btn"
|
||||
disabled
|
||||
class="btn rounded-lg mt-4 w-full flex-shrink-0 focus:outline"
|
||||
title="${state.translate('downloadButtonLabel')}"
|
||||
onclick=${download}
|
||||
@@ -533,6 +558,13 @@ module.exports.preview = function(state, emit) {
|
||||
</send-archive>
|
||||
`;
|
||||
|
||||
function toggleDownloadEnabled(event) {
|
||||
event.stopPropagation();
|
||||
const checked = event.target.checked;
|
||||
const btn = document.getElementById('download-btn');
|
||||
btn.disabled = !checked;
|
||||
}
|
||||
|
||||
function download(event) {
|
||||
event.preventDefault();
|
||||
event.target.disabled = true;
|
||||
|
||||
@@ -10,11 +10,9 @@ module.exports = function(name, url) {
|
||||
<h1 class="text-3xl font-bold my-4">
|
||||
${state.translate('notifyUploadEncryptDone')}
|
||||
</h1>
|
||||
<p
|
||||
class="font-normal leading-normal text-grey-80 word-break-all dark:text-grey-40"
|
||||
>
|
||||
<p class="font-normal leading-normal text-grey-80 dark:text-grey-40">
|
||||
${state.translate('copyLinkDescription')} <br />
|
||||
${name}
|
||||
<span class="word-break-all">${name}</span>
|
||||
</p>
|
||||
<input
|
||||
type="text"
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/* global downloadMetadata */
|
||||
const html = require('choo/html');
|
||||
const assets = require('../../common/assets');
|
||||
const archiveTile = require('./archiveTile');
|
||||
const modal = require('./modal');
|
||||
const noStreams = require('./noStreams');
|
||||
@@ -31,22 +32,51 @@ function downloading(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) {
|
||||
return noStreams(state, emit);
|
||||
}
|
||||
return html`
|
||||
<div
|
||||
class="flex flex-col w-full max-w-md h-full mx-auto items-center justify-center"
|
||||
>
|
||||
<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"
|
||||
<div class="w-full md:flex md:flex-row items-stretch md:flex-1">
|
||||
<div
|
||||
class="px-2 w-full md:px-0 flex-half md:flex md:flex-col mt-12 md:pr-8 pb-4"
|
||||
>
|
||||
${state.translate('downloadDescription')}
|
||||
</p>
|
||||
${archiveTile.preview(state, emit)}
|
||||
<h1 class="text-3xl font-bold mb-4 text-center md:text-left">
|
||||
${state.translate('downloadTitle')}
|
||||
</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>
|
||||
`;
|
||||
}
|
||||
@@ -55,9 +85,17 @@ module.exports = function(state, emit) {
|
||||
let content = '';
|
||||
if (!state.fileInfo) {
|
||||
state.fileInfo = createFileInfo(state);
|
||||
if (!state.fileInfo.nonce) {
|
||||
if (downloadMetadata.status === 404) {
|
||||
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) {
|
||||
@@ -83,7 +121,7 @@ module.exports = function(state, emit) {
|
||||
<main class="main">
|
||||
${state.modal && modal(state, emit)}
|
||||
<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}
|
||||
</section>
|
||||
|
||||
@@ -2,6 +2,7 @@ const html = require('choo/html');
|
||||
const assets = require('../../common/assets');
|
||||
|
||||
module.exports = function(state) {
|
||||
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
|
||||
return html`
|
||||
<div
|
||||
id="download-complete"
|
||||
@@ -10,15 +11,23 @@ module.exports = function(state) {
|
||||
<h1 class="text-center text-3xl font-bold my-2">
|
||||
${state.translate('downloadFinish')}
|
||||
</h1>
|
||||
<img src="${assets.get('completed.svg')}" class="my-12 h-48" />
|
||||
<p class="text-grey-80 leading-normal dark:text-grey-40">
|
||||
<img src="${assets.get('completed.svg')}" class="my-8 h-48" />
|
||||
<p
|
||||
class="text-grey-80 leading-normal dark:text-grey-40 ${state.user
|
||||
.loggedIn
|
||||
? 'hidden'
|
||||
: ''}"
|
||||
>
|
||||
${state.translate('trySendDescription')}
|
||||
</p>
|
||||
<p class="my-5">
|
||||
<a href="/" class="btn rounded-lg flex items-center mt-4" role="button"
|
||||
>${state.translate('sendYourFilesLink')}</a
|
||||
>${state.translate(btnText)}</a
|
||||
>
|
||||
</p>
|
||||
<p class="">
|
||||
<a href="/report" class="link-blue">${state.translate('reportFile')}</a>
|
||||
</p>
|
||||
</div>
|
||||
`;
|
||||
};
|
||||
|
||||
58
app/ui/downloadDialog.js
Normal file
58
app/ui/downloadDialog.js
Normal file
@@ -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}"
|
||||
data-no-csrf
|
||||
>
|
||||
<input
|
||||
id="autocomplete-decoy"
|
||||
class="hidden"
|
||||
type="password"
|
||||
value="lol"
|
||||
/>
|
||||
<input
|
||||
id="password-input"
|
||||
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 btn = document.getElementById('password-btn');
|
||||
label.classList.add('invisible');
|
||||
input.classList.remove('border-red');
|
||||
btn.classList.remove('bg-red', 'hover:bg-red', 'focus:bg-red');
|
||||
input.classList.remove('border-red', 'dark:border-red-40');
|
||||
btn.classList.remove(
|
||||
'bg-red',
|
||||
'hover:bg-red',
|
||||
'focus:bg-red',
|
||||
'dark:bg-red-40'
|
||||
);
|
||||
}
|
||||
|
||||
function checkPassword(event) {
|
||||
|
||||
@@ -3,6 +3,7 @@ const assets = require('../../common/assets');
|
||||
const modal = require('./modal');
|
||||
|
||||
module.exports = function(state, emit) {
|
||||
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
|
||||
return html`
|
||||
<main class="main">
|
||||
${state.modal && modal(state, emit)}
|
||||
@@ -13,12 +14,17 @@ module.exports = function(state, emit) {
|
||||
${state.translate('errorPageHeader')}
|
||||
</h1>
|
||||
<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')}
|
||||
</p>
|
||||
<p class="my-5">
|
||||
<a href="/" class="btn rounded-lg flex items-center" role="button"
|
||||
>${state.translate('sendYourFilesLink')}</a
|
||||
>${state.translate(btnText)}</a
|
||||
>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
const html = require('choo/html');
|
||||
const Component = require('choo/component');
|
||||
const version = require('../../package.json').version;
|
||||
const { browserName } = require('../utils');
|
||||
|
||||
class Footer extends Component {
|
||||
constructor(name, state) {
|
||||
@@ -15,8 +13,6 @@ class Footer extends Component {
|
||||
|
||||
createElement() {
|
||||
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`
|
||||
<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"
|
||||
@@ -43,17 +39,6 @@ class Footer extends Component {
|
||||
<li class="m-2">
|
||||
<a href="https://github.com/mozilla/send">GitHub </a>
|
||||
</li>
|
||||
<li class="m-2">
|
||||
<a
|
||||
href="${feedbackUrl}"
|
||||
rel="noreferrer noopener"
|
||||
class="feedback-link"
|
||||
alt="Feedback"
|
||||
target="_blank"
|
||||
>
|
||||
${translate('siteFeedback')}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</footer>
|
||||
`;
|
||||
|
||||
@@ -33,7 +33,7 @@ class Header extends Component {
|
||||
alt="${this.state.translate('title')}"
|
||||
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" />
|
||||
</svg>
|
||||
</a>
|
||||
|
||||
@@ -5,6 +5,9 @@ const modal = require('./modal');
|
||||
const intro = require('./intro');
|
||||
|
||||
module.exports = function(state, emit) {
|
||||
if (state.user.loginRequired && !state.user.loggedIn) {
|
||||
emit('signup-cta', 'required');
|
||||
}
|
||||
const archives = state.storage.files
|
||||
.filter(archive => !archive.expired)
|
||||
.map(archive => archiveTile(state, emit, archive));
|
||||
|
||||
@@ -2,6 +2,7 @@ const html = require('choo/html');
|
||||
const modal = require('./modal');
|
||||
|
||||
module.exports = function(state, emit) {
|
||||
state.modal = null;
|
||||
return html`
|
||||
<main class="main">
|
||||
${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"
|
||||
>
|
||||
<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">
|
||||
${state.modal(state, emit, close)}
|
||||
|
||||
@@ -19,9 +19,9 @@ module.exports = function(state, emit) {
|
||||
<form class="md:w-128" onsubmit=${submit}>
|
||||
<fieldset class="border rounded p-4 my-4" onchange=${optionChanged}>
|
||||
<div class="flex items-center mb-2">
|
||||
<img class="mr-3 flex-shrink-0" src="${assets.get(
|
||||
'blue_file.svg'
|
||||
)}"/>
|
||||
<svg class="h-8 w-6 mr-3 flex-shrink-0 text-white dark:text-grey-90">
|
||||
<use xlink:href="${assets.get('blue_file.svg')}#icon"/>
|
||||
</svg>
|
||||
<p class="flex-grow">
|
||||
<h1 class="text-base font-medium word-break-all">${
|
||||
archive.name
|
||||
@@ -55,6 +55,11 @@ module.exports = function(state, emit) {
|
||||
value="${state.translate('copyLinkButton')}"
|
||||
title="${state.translate('copyLinkButton')}"
|
||||
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>
|
||||
</div>
|
||||
`;
|
||||
@@ -64,6 +69,7 @@ module.exports = function(state, emit) {
|
||||
const choice = event.target.value;
|
||||
const button = event.currentTarget.nextElementSibling;
|
||||
let title = button.title;
|
||||
console.error(choice, title);
|
||||
switch (choice) {
|
||||
case 'copy':
|
||||
title = state.translate('copyLinkButton');
|
||||
|
||||
@@ -3,6 +3,7 @@ const assets = require('../../common/assets');
|
||||
const modal = require('./modal');
|
||||
|
||||
module.exports = function(state, emit) {
|
||||
const btnText = state.user.loggedIn ? 'okButton' : 'sendYourFilesLink';
|
||||
return html`
|
||||
<main class="main">
|
||||
${state.modal && modal(state, emit)}
|
||||
@@ -13,12 +14,22 @@ module.exports = function(state, emit) {
|
||||
${state.translate('expiredTitle')}
|
||||
</h1>
|
||||
<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')}
|
||||
</p>
|
||||
<p class="my-5">
|
||||
<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>
|
||||
</section>
|
||||
|
||||
@@ -27,7 +27,7 @@ class Promo extends Component {
|
||||
${`Like Firefox Send? You'll love our new full-device VPN. `}
|
||||
<a
|
||||
class="underline link-blue"
|
||||
href="https://fpn.firefox.com/?utm_source=send.firefox.com&utm_medium=referral&utm_content=Try+Firefox+Private+Network&utm_campaign=top-bar"
|
||||
href="https://vpn.mozilla.org/?utm_source=send.firefox.com&utm_medium=referral&utm_content=Try+Firefox+Private+Network&utm_campaign=top-bar"
|
||||
>${`Get it today`}</a
|
||||
>
|
||||
</span>
|
||||
|
||||
139
app/ui/report.js
Normal file
139
app/ui/report.js
Normal file
@@ -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">
|
||||
${state.translate('notifyUploadEncryptDone')}
|
||||
</h1>
|
||||
<p
|
||||
class="font-normal leading-normal text-grey-80 word-break-all dark:text-grey-40"
|
||||
>
|
||||
<p class="font-normal leading-normal text-grey-80 dark:text-grey-40">
|
||||
${state.translate('shareLinkDescription')}<br />
|
||||
${name}
|
||||
<span class="word-break-all">${name}</span>
|
||||
</p>
|
||||
<input
|
||||
type="text"
|
||||
|
||||
@@ -1,22 +1,19 @@
|
||||
const html = require('choo/html');
|
||||
const assets = require('../../common/assets');
|
||||
const { bytes, platform } = require('../utils');
|
||||
const { bytes } = require('../utils');
|
||||
const { canceledSignup, submittedSignup } = require('../metrics');
|
||||
|
||||
module.exports = function(trigger) {
|
||||
return function(state, emit, close) {
|
||||
const DAYS = Math.floor(state.LIMITS.MAX_EXPIRE_SECONDS / 86400);
|
||||
const hidden = platform() === 'android' ? 'hidden' : '';
|
||||
let submitting = false;
|
||||
return html`
|
||||
<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" />
|
||||
<section
|
||||
class="flex flex-col flex-shrink-0 self-center lg:mx-6 lg:max-w-xs"
|
||||
>
|
||||
<h1 class="text-3xl font-bold text-center lg:text-left">
|
||||
<section class="flex flex-col flex-shrink-0 self-center">
|
||||
<h1 class="text-3xl font-bold text-center">
|
||||
${state.translate('accountBenefitTitle')}
|
||||
</h1>
|
||||
<ul
|
||||
@@ -32,17 +29,14 @@ module.exports = function(trigger) {
|
||||
${state.translate('accountBenefitTimeLimit', { count: DAYS })}
|
||||
</li>
|
||||
<li>${state.translate('accountBenefitSync')}</li>
|
||||
<li>${state.translate('accountBenefitMoz')}</li>
|
||||
</ul>
|
||||
</section>
|
||||
<section
|
||||
class="flex flex-col flex-grow m-4 md:self-center md:w-128 lg:max-w-xs"
|
||||
>
|
||||
<section class="flex flex-col flex-grow m-4 md:self-center md:w-128">
|
||||
<form onsubmit=${submitEmail} data-no-csrf>
|
||||
<input
|
||||
id="email-input"
|
||||
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')}
|
||||
/>
|
||||
<input
|
||||
@@ -53,13 +47,17 @@ module.exports = function(trigger) {
|
||||
type="submit"
|
||||
/>
|
||||
</form>
|
||||
<button
|
||||
class="my-3 link-blue font-medium"
|
||||
title="${state.translate('deletePopupCancel')}"
|
||||
onclick=${cancel}
|
||||
>
|
||||
${state.translate('deletePopupCancel')}
|
||||
</button>
|
||||
${state.user.loginRequired
|
||||
? ''
|
||||
: html`
|
||||
<button
|
||||
class="my-3 link-blue font-medium"
|
||||
title="${state.translate('deletePopupCancel')}"
|
||||
onclick=${cancel}
|
||||
>
|
||||
${state.translate('deletePopupCancel')}
|
||||
</button>
|
||||
`}
|
||||
</section>
|
||||
</send-signup-dialog>
|
||||
`;
|
||||
|
||||
83
app/user.js
83
app/user.js
@@ -76,6 +76,10 @@ export default class User {
|
||||
return this.info.access_token;
|
||||
}
|
||||
|
||||
get refreshToken() {
|
||||
return this.info.refresh_token;
|
||||
}
|
||||
|
||||
get maxSize() {
|
||||
return this.loggedIn
|
||||
? this.limits.MAX_FILE_SIZE
|
||||
@@ -94,6 +98,10 @@ export default class User {
|
||||
: this.limits.ANON.MAX_DOWNLOADS;
|
||||
}
|
||||
|
||||
get loginRequired() {
|
||||
return this.authConfig && this.authConfig.fxa_required;
|
||||
}
|
||||
|
||||
async metricId() {
|
||||
return this.loggedIn ? hashId(this.info.uid) : undefined;
|
||||
}
|
||||
@@ -135,6 +143,7 @@ export default class User {
|
||||
const code_challenge = await preparePkce(this.storage);
|
||||
const options = {
|
||||
action: 'email',
|
||||
access_type: 'offline',
|
||||
client_id: this.authConfig.client_id,
|
||||
code_challenge,
|
||||
code_challenge_method: 'S256',
|
||||
@@ -192,12 +201,69 @@ export default class User {
|
||||
});
|
||||
const userInfo = await infoResponse.json();
|
||||
userInfo.access_token = auth.access_token;
|
||||
userInfo.refresh_token = auth.refresh_token;
|
||||
userInfo.fileListKey = await getFileListKey(this.storage, auth.keys_jwe);
|
||||
this.info = userInfo;
|
||||
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.info = {};
|
||||
}
|
||||
@@ -211,6 +277,14 @@ export default class User {
|
||||
const key = b64ToArray(this.info.fileListKey);
|
||||
const sha = await crypto.subtle.digest('SHA-256', key);
|
||||
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 {
|
||||
const encrypted = await getFileList(this.bearerToken, kid);
|
||||
const decrypted = await streamToArrayBuffer(
|
||||
@@ -219,8 +293,7 @@ export default class User {
|
||||
list = JSON.parse(textDecoder.decode(decrypted));
|
||||
} catch (e) {
|
||||
if (e.message === '401') {
|
||||
this.logout();
|
||||
return { incoming: true };
|
||||
return retry(e);
|
||||
}
|
||||
}
|
||||
changes = await this.storage.merge(list);
|
||||
@@ -236,7 +309,9 @@ export default class User {
|
||||
);
|
||||
await setFileList(this.bearerToken, kid, encrypted);
|
||||
} catch (e) {
|
||||
//
|
||||
if (e.message === '401') {
|
||||
return retry(e);
|
||||
}
|
||||
}
|
||||
return changes;
|
||||
}
|
||||
|
||||
12
app/utils.js
12
app/utils.js
@@ -142,12 +142,16 @@ function openLinksInNewTab(links, should = true) {
|
||||
|
||||
function browserName() {
|
||||
try {
|
||||
// order of these matters
|
||||
if (/firefox/i.test(navigator.userAgent)) {
|
||||
return 'firefox';
|
||||
}
|
||||
if (/edge/i.test(navigator.userAgent)) {
|
||||
return 'edge';
|
||||
}
|
||||
if (/edg/i.test(navigator.userAgent)) {
|
||||
return 'edgium';
|
||||
}
|
||||
if (/trident/i.test(navigator.userAgent)) {
|
||||
return 'ie';
|
||||
}
|
||||
@@ -272,7 +276,15 @@ function setTranslate(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 = {
|
||||
concat,
|
||||
locale,
|
||||
fadeOut,
|
||||
delay,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import crc32 from 'crc/crc32';
|
||||
import crc32 from './crc32';
|
||||
|
||||
const encoder = new TextEncoder();
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<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"/>
|
||||
</symbol>
|
||||
<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 safari versions
|
||||
last 2 edge versions
|
||||
edge 18
|
||||
firefox esr
|
||||
|
||||
@@ -2,7 +2,7 @@ Send has two build configurations, development and production. Both can be run v
|
||||
|
||||
# Development
|
||||
|
||||
`npm start` launches a `webpack-dev-server` on port 8080 that compiles the assets and watches files for changes. It also serves the backend API and frontend unit tests via the `server/bin/dev.js` entrypoint. The frontend tests can be run in the browser by navigating to http://localhost:8080/test and will rerun automatically as the watched files are saved with changes.
|
||||
`npm start` launches a `webpack-dev-server` on port 1337 that compiles the assets and watches files for changes. It also serves the backend API and frontend unit tests via the `server/bin/dev.js` entrypoint. The frontend tests can be run in the browser by navigating to http://localhost:8080/test and will rerun automatically as the watched files are saved with changes.
|
||||
|
||||
# Production
|
||||
|
||||
@@ -19,4 +19,4 @@ Send has two build configurations, development and production. Both can be run v
|
||||
|
||||
# Custom Loaders
|
||||
|
||||
The `build/` directory contains custom webpack loaders specific to Send. See [build/readme.md](../build/readme.md) for details on each loader.
|
||||
The `build/` directory contains custom webpack loaders specific to Send. See [build/readme.md](../build/readme.md) for details on each loader.
|
||||
|
||||
@@ -13,6 +13,7 @@ Run `docker build -t send:latest .` to create an image or `docker-compose up` to
|
||||
| `SENTRY_DSN` | Sentry DSN
|
||||
| `MAX_FILE_SIZE` | in bytes (defaults to 2147483648)
|
||||
| `NODE_ENV` | "production"
|
||||
| `BASE_URL` | The HTTPS URL where traffic will be served (e.g. `https://send.firefox.com`)
|
||||
|
||||
## Example:
|
||||
|
||||
@@ -22,5 +23,6 @@ $ docker run --net=host -e 'NODE_ENV=production' \
|
||||
-e 'REDIS_HOST=dyf9s2r4vo3.bolxr4.0001.usw2.cache.amazonaws.com' \
|
||||
-e 'SENTRY_CLIENT=https://51e23d7263e348a7a3b90a5357c61cb2@sentry.prod.mozaws.net/168' \
|
||||
-e 'SENTRY_DSN=https://51e23d7263e348a7a3b90a5357c61cb2:65e23d7263e348a7a3b90a5357c61c44@sentry.prod.mozaws.net/168' \
|
||||
-e 'BASE_URL=https://send.firefox.com' \
|
||||
mozilla/send:latest
|
||||
```
|
||||
|
||||
5407
package-lock.json
generated
5407
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
49
package.json
49
package.json
@@ -23,11 +23,11 @@
|
||||
"release": "npm-run-all contributors changelog",
|
||||
"test": "npm-run-all test:*",
|
||||
"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-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'",
|
||||
"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",
|
||||
"prod": "node server/bin/prod.js"
|
||||
},
|
||||
@@ -61,41 +61,40 @@
|
||||
"node": "^12.16.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.7.2",
|
||||
"@babel/plugin-proposal-class-properties": "^7.7.0",
|
||||
"@babel/core": "^7.12.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.10.4",
|
||||
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
|
||||
"@babel/preset-env": "^7.7.1",
|
||||
"@babel/preset-env": "^7.12.0",
|
||||
"@dannycoates/webcrypto-liner": "^0.1.37",
|
||||
"@fullhuman/postcss-purgecss": "^1.3.0",
|
||||
"@mattiasbuelens/web-streams-polyfill": "0.2.1",
|
||||
"@sentry/browser": "^5.8.0",
|
||||
"@sentry/browser": "^5.26.0",
|
||||
"asmcrypto.js": "^0.22.0",
|
||||
"babel-loader": "^8.0.6",
|
||||
"babel-plugin-istanbul": "^5.2.0",
|
||||
"base64-js": "^1.3.1",
|
||||
"content-disposition": "^0.5.3",
|
||||
"copy-webpack-plugin": "^5.0.5",
|
||||
"copy-webpack-plugin": "^5.1.2",
|
||||
"core-js": "^3.4.0",
|
||||
"crc": "^3.8.0",
|
||||
"cross-env": "^6.0.3",
|
||||
"css-loader": "^3.2.0",
|
||||
"css-loader": "^3.6.0",
|
||||
"css-mqpacker": "^7.0.0",
|
||||
"cssnano": "^4.1.10",
|
||||
"eslint": "^6.6.0",
|
||||
"eslint-config-prettier": "^6.5.0",
|
||||
"eslint-config-prettier": "^6.12.0",
|
||||
"eslint-plugin-mocha": "^6.2.1",
|
||||
"eslint-plugin-node": "^10.0.0",
|
||||
"eslint-plugin-security": "^1.4.0",
|
||||
"expose-loader": "^0.7.5",
|
||||
"extract-loader": "^3.1.0",
|
||||
"extract-loader": "^3.2.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",
|
||||
"git-rev-sync": "^1.12.0",
|
||||
"html-loader": "^0.5.5",
|
||||
"http_ece": "^1.1.0",
|
||||
"husky": "^3.0.9",
|
||||
"intl-pluralrules": "^1.1.1",
|
||||
"intl-pluralrules": "^1.2.2",
|
||||
"lint-staged": "^9.4.2",
|
||||
"mocha": "^6.2.2",
|
||||
"morgan": "^1.9.1",
|
||||
@@ -120,12 +119,12 @@
|
||||
"stylelint-no-unsupported-browser-features": "^3.0.2",
|
||||
"svgo": "^1.3.2",
|
||||
"svgo-loader": "^2.2.1",
|
||||
"tailwindcss": "^1.1.3",
|
||||
"tailwindcss": "^1.9.2",
|
||||
"val-loader": "^1.1.1",
|
||||
"webpack": "4.38.0",
|
||||
"webpack-cli": "^3.3.10",
|
||||
"webpack-cli": "^3.3.12",
|
||||
"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-unassert-loader": "^1.2.0"
|
||||
},
|
||||
@@ -133,23 +132,23 @@
|
||||
"@dannycoates/express-ws": "^5.0.3",
|
||||
"@fluent/bundle": "^0.13.0",
|
||||
"@fluent/langneg": "^0.3.0",
|
||||
"@google-cloud/storage": "^4.1.1",
|
||||
"@sentry/node": "^5.8.0",
|
||||
"aws-sdk": "^2.568.0",
|
||||
"@google-cloud/storage": "^5.3.0",
|
||||
"@peculiar/webcrypto": "^1.1.3",
|
||||
"@sentry/node": "^5.26.0",
|
||||
"aws-sdk": "^2.771.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"choo": "^7.0.0",
|
||||
"cldr-core": "^35.1.0",
|
||||
"configstore": "github:dannycoates/configstore#master",
|
||||
"convict": "^5.2.0",
|
||||
"express": "^4.17.1",
|
||||
"fxa-geodb": "^1.0.4",
|
||||
"helmet": "^3.21.2",
|
||||
"helmet": "^3.23.3",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mozlog": "^2.2.0",
|
||||
"node-fetch": "^2.6.0",
|
||||
"redis": "^2.8.0",
|
||||
"selenium-standalone": "^6.15.6",
|
||||
"ua-parser-js": "^0.7.20"
|
||||
"node-fetch": "^2.6.1",
|
||||
"redis": "^3.0.2",
|
||||
"selenium-standalone": "^6.20.1",
|
||||
"ua-parser-js": "^0.7.22"
|
||||
},
|
||||
"availableLanguages": [
|
||||
"en-US",
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Comentarios
|
||||
importingFile = Se ye importando…
|
||||
encryptingFile = Se ye cifrando…
|
||||
decryptingFile = Se ye descifrando…
|
||||
@@ -12,7 +11,7 @@ downloadCount =
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] hora
|
||||
*[other] horas
|
||||
*[other] { $num } horas
|
||||
}
|
||||
copiedUrl = Copiau!
|
||||
unlockInputPlaceholder = Clau
|
||||
@@ -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"
|
||||
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
||||
addFilesButton = Triar los fichers a cargar
|
||||
trustWarningMessage = Asegura-te de que confías en o destinatario quan compartas datos confidencials.
|
||||
uploadButton = Cargar
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = I hai una manera de protecher la tuya privacidat. Une-te a Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Comentarios
|
||||
importingFile = Importando...
|
||||
encryptingFile = Cifrando...
|
||||
decryptingFile = Descifrando...
|
||||
@@ -99,23 +98,24 @@ trySendDescription = Prueba { -send-brand } pa una compartición de ficheros cen
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Namái pue xubise 1 ficheru al empar.
|
||||
*[other] Namái puen xubise { $count } ficheros al empar.
|
||||
[one] Namás pue xubise 1 ficheru al empar.
|
||||
*[other] Namás puen xubise { $count } ficheros al empar.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Namái se permite 1 archivu
|
||||
*[other] Namái se permiten { $count } archivos
|
||||
[one] Namás se permite 1 archivu
|
||||
*[other] Namás se permiten { $count } archivos
|
||||
}
|
||||
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 }
|
||||
legalTitle = Avisu de privacidá de { -send-short-brand }
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Esbillar los ficheros a unviar
|
||||
trustWarningMessage = Asegúrate de que t'enfotes nel destinatariu al compartir datos sensibles.
|
||||
uploadButton = Xubir
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Arrastra y suelta ficheros
|
||||
@@ -133,8 +133,8 @@ accountBenefitLargeFiles = Comparti ficheros d'hasta { $size }
|
||||
accountBenefitDownloadCount = Comparti ficheros con más xente
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] Caltén activos los enllaces demientres 1 día
|
||||
*[other] Caltén activos los enllaces demientres 1 díes
|
||||
[one] Caltién activos los enllaces demientres 1 día
|
||||
*[other] Caltién activos los enllaces demientres { $count } díes
|
||||
}
|
||||
accountBenefitSync = Xestiona los ficheros compartíos dende cualesquier preséu
|
||||
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.
|
||||
trailheadPromo = Hai un mou de protexer la to privacidá. Xúnite a Firefox.
|
||||
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.
|
||||
|
||||
@@ -93,12 +93,12 @@ trySendDescription = Xikejeko { -send-brand } ijkon amo ouij uelis tikinpanoltil
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
*[undefined] Sayoj { 1 } tajkuilol archivo uelis tiktejkoltis saj. / Sayoj { $count } tajkuilolmej archivos uelis tikolochtejkoltis saj.
|
||||
*[other] Sayoj { $count } tajkuilolmej archivos uelis tikolochtejkoltis saj.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
*[undefined] Sayoj { 1 } tajkuilol archivo uelis moajsis saj. / Sayoj { $count } tajkuilolmej archivos uelis moajsiskej saj.
|
||||
*[other] Sayoj { $count } tajkuilolmej archivos uelis moajsiskej saj.
|
||||
}
|
||||
expiredTitle = Nejin tein tikpatskilij amo tekititos ok.
|
||||
notSupportedDescription = { -send-brand } amo tekiti ika nejin navegador. { -send-short-brand } okachi kuali tekiti tein ika okachi yankuik { -firefox }, uan no tekitis tein ika okachi yankuikej tel miak navegadores.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Водгук
|
||||
importingFile = Імпартаванне...
|
||||
encryptingFile = Зашыфроўка...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } д. { $hours } г. { $minutes } хв.
|
||||
addFilesButton = Выберыце файлы для загрузкі
|
||||
trustWarningMessage = Пераканайцеся, што давяраеце атрымальніку, калі дзеліцеся канфідэнцыяльнымі звесткамі.
|
||||
uploadButton = Загрузіць
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Перацягніце файлы сюды
|
||||
@@ -162,3 +162,35 @@ shareLinkButton = Падзяліцца спасылкай
|
||||
shareMessage = Сцягніце «{ $name }» з { -send-brand }: простага і бяспечнага файлаабменніка
|
||||
trailheadPromo = Ёсць спосаб абараніць вашу прыватнасць. Далучайцеся да Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Roit hoc'h ali
|
||||
importingFile = Oc'h enporzhiañ …
|
||||
encryptingFile = Oc'h enrinegañ..
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }e { $minutes }m
|
||||
addFilesButton = Diuzit ur restr da bellgas
|
||||
trustWarningMessage = Bezit sur ho peus fiziañs en ho tegemerer pa rannit roadennoù kizidik.
|
||||
uploadButton = Pellgas
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Un doare a zo da wareziñ ho puhez prevez. Tremenit da Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Comentaris
|
||||
importingFile = S'està important…
|
||||
encryptingFile = S'està xifrant…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
||||
addFilesButton = Seleccioneu els fitxers que voleu pujar
|
||||
trustWarningMessage = Assegureu-vos que confieu en el destinatari quan compartiu dades confidencials.
|
||||
uploadButton = Puja
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Hi ha una manera de protegir la vostra privadesa. Uniu-vos al Firefox.
|
||||
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.
|
||||
|
||||
155
public/locales/ckb/send.ftl
Normal file
155
public/locales/ckb/send.ftl
Normal file
@@ -0,0 +1,155 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = ڕەخنەوپێشنیار
|
||||
importingFile = هاوردەکردن...
|
||||
encryptingFile = بەهێماکردن...
|
||||
decryptingFile = هێمالابردن...
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 داگرتن
|
||||
*[other] { $num } داگرتن
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 کاژێر
|
||||
*[other] { $num } کاژێر
|
||||
}
|
||||
copiedUrl = لەبەرگیرا!
|
||||
unlockInputPlaceholder = وشەی تێپەڕبوون
|
||||
unlockButtonLabel = کردنەوە
|
||||
downloadButtonLabel = داگرتن
|
||||
downloadFinish = داگرتن تەواو بوو
|
||||
fileSizeProgress = ({ $partialSize } لە { $totalSize })
|
||||
sendYourFilesLink = Firefox ناردن تاقیبکەرەوە
|
||||
errorPageHeader = هەڵەیەک ڕوویدا
|
||||
fileTooBig = ئەم پەڕگەیە زۆر گەورەیە بۆ بارکردن. پێویستە لە { $size } بچووک تر بێت
|
||||
linkExpiredAlt = بەستەر بەسەرچووە
|
||||
notSupportedHeader = وێبگەڕەکەت پشتگیری ناکرێت
|
||||
notSupportedLink = بۆ وێبگەڕەکەم پشتگیری ناکرێت؟
|
||||
notSupportedOutdatedDetail = بەداخەوە ئەم وەشانەی Firefox پشتگیری ئەو جۆرە تەکنەلۆژییە ناکات کە پێویستە بۆ Firefox Send. پێویستە وێبگەڕەکەت نوێبکەیتەوە.
|
||||
updateFirefox = فاەرفۆکس نوێبکەرەوە
|
||||
deletePopupCancel = پاشگەزبوونەوە
|
||||
deleteButtonHover = سڕینەوە
|
||||
footerLinkLegal = یاسایی
|
||||
footerLinkPrivacy = تایبەتیی
|
||||
footerLinkCookies = شەکرۆکە
|
||||
passwordTryAgain = وشەی تێپەڕبوون هەڵەیە. هەوڵ بدەرەوە.
|
||||
javascriptRequired = فارفۆکسی ناردن پێویستە بە JavaScript هەیە
|
||||
whyJavascript = بۆچی پێویستی بە JavaScript هەیە؟
|
||||
enableJavascript = تکایە JavaScript چالاک بکە وهەوڵ بدەرەوە.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }ک { $minutes }خ
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }خ
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = زۆرترین درێژی وشەی تێپەڕی ڕێگەپێدراو: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = ناتوانرێت وشەی تێپەڕ دابنرێت
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||
-send-brand = Firefox Send
|
||||
-send-short-brand = Send
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = سانا، بڵاوکەرەوەی پەڕگەی تایبەتیی
|
||||
introDescription = { -send-brand } ڕێگەت دەدات پەڕگەکان بڵاوبکەیتەوە بە شێوەی هێما کردنی کۆتا-بۆ-کۆتا و بەستەرێک کە خۆکارانە بەسەردەچێت. بۆیە دەتوانیت ئاگاداری ئەوە بیت کە چ پەڕگەیەک بە تایبەتی بڵاودەکەیتەوە و دڵنیادەبیتەوە کە شتەکانت بە سەرهێڵی نامێننەوە هەتا کۆتایی.
|
||||
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 =
|
||||
{ $num ->
|
||||
[one] 1 خولەک
|
||||
*[other] { $num } خولەک
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] 1 ڕؤژ
|
||||
*[other] { $num } ڕۆژ
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] 1 هەفتە
|
||||
*[other] { $num } هەفتە
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] 1 پەڕگە
|
||||
*[other] { $num } پەڕگە
|
||||
}
|
||||
# byte abbreviation
|
||||
bytes = بایت
|
||||
# kibibyte abbreviation
|
||||
kb = ک.بایت
|
||||
# mebibyte abbreviation
|
||||
mb = م.بایت
|
||||
# gibibyte abbreviation
|
||||
gb = گ.بایت
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = قەبارەی گشتی: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = بەستەر لەبەربگرەوە بۆ بڵاوکردنەوەی پەڕگە:
|
||||
copyLinkButton = بەستەر لەبەربگرەوە
|
||||
downloadTitle = پەڕگەکان دابگرە
|
||||
downloadDescription = ئەم پەڕگەیە لە لایەن { -send-brand } بلاوکراوەتەوە کە بەهێماکراوە بە شێوەی کۆتا-بۆ-کۆتا بە بەستەرێک کە خۆکارانە بەسەردەچێت.
|
||||
trySendDescription = { -send-brand } تاقیبکەرەوە بۆ سانایی، پارێزراو لە بڵاوکردنەوەی پەڕگە.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] تەنها 1 پەڕگە دەتوانیت باربکەیت لەم کاتەدا.
|
||||
*[other] تەنها { $count } پەڕگە دەتوانی باربکەیت لەم کاتەدا.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] تەنها 1 ئەرشیف ڕێپێدراوە.
|
||||
*[other] تەنها { $count } ئەرشیف ڕێپێدراوە.
|
||||
}
|
||||
expiredTitle = بەستەر بەسەرچووە.
|
||||
notSupportedDescription = { -send-brand } کارنکات لەگەڵ ئەم وێبگەڕە. { -send-short-brand } باش کاردەکات لەگەڵ کۆتا وەشانی { -firefox }، وکاردەکات لەگەڵ زۆربەی وەشانی ئێستای وێبگەڕەکان.
|
||||
downloadFirefox = { -firefox } دابگرە
|
||||
legalTitle = تێبینی تایبەتیی { -send-short-brand }
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } ڕ { $hours } ک{ $minutes } خ
|
||||
addFilesButton = پەڕگەکان هەڵبژێرە بۆ بارکردن
|
||||
uploadButton = بارکردن
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = ڕاکێشان و دانانی پەڕگەکان
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = یان کرتە بکە بۆ ناردنی قەبارەی تاوەکوو { $size }
|
||||
addPassword = بپارێزە لەگەڵ وشەی تێپەڕ
|
||||
emailPlaceholder = پۆستی ئەلکترۆنی بنووسە
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = بچۆژوورەوە بۆ ناردنی قەبارەی تاوەکوو { $size }
|
||||
signInOnlyButton = بچۆژوورەوە
|
||||
accountBenefitTitle = هەژماری { -firefox } درووست بکە یان بچۆژوورەوە
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = پەڕگە بڵاوبکەرەوە تاوەکوو قەبارەی { $size }
|
||||
accountBenefitDownloadCount = پەڕگەکان لەگەڵ خەڵکی زیاتر بڵاوبکەرەوە
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] بەستەرەکان بەکارایی بهێڵەوە تا 1 ڕۆژ
|
||||
*[other] بەستەرەکان بەکارایی بهێڵەوە تا { $count } ڕۆژ
|
||||
}
|
||||
accountBenefitSync = پەڕگە بڵآوکراوەکان بەڕێوەبەرە لەهەر ئامێرێکەوە
|
||||
accountBenefitMoz = زیاتر بزانە دەربارەی خزمەتگوزارییەکانی تری { -mozilla }
|
||||
signOut = بچۆ دەرەوە
|
||||
okButton = باشە
|
||||
downloadingTitle = دادەگیرێت...
|
||||
noStreamsWarning = لەوانەیە ئەم وێبگەڕە نەتوانێت پەڕگەی وا گەورە بە هێما بکات.
|
||||
noStreamsOptionCopy = بەستەر لەبەربگرەوە بۆ کردنەوەی لە وێبگەڕێکی تر
|
||||
noStreamsOptionFirefox = وێبگەڕی دڵخوازی ئێمە تاقیبکەرەوە
|
||||
noStreamsOptionDownload = بەردەوام بە لەگەڵ ئەم وێبگەڕە
|
||||
downloadFirefoxPromo = { -send-short-brand } پیشکەش کراوە بە تۆ لە لایەن { -firefox }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = بەستەر بڵاوبکەرەوە بۆ پەڕگەکەت:
|
||||
shareLinkButton = بەستەر بڵاوبکەرەوە
|
||||
# $name is the name of the file
|
||||
shareMessage = “{ $name }” دابگرە لەگەڵ { -send-brand }: سانا، پاریزراو لە بڵاوکردنەوەی پەڕگە
|
||||
trailheadPromo = ڕێگەیەک هەیە بۆ پارێزگاریکردنی تایبەتێتی خۆت. بەشدار بە لە فایەرفۆکس.
|
||||
learnMore = زیاتر بزانە
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Zpětná vazba
|
||||
importingFile = Probíhá import…
|
||||
encryptingFile = Probíhá š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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
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
|
||||
# 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
|
||||
@@ -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ů
|
||||
trailheadPromo = Existuje způsob, jak ochránit své soukromí. Používejte Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Adborth
|
||||
importingFile = Mewnforio…
|
||||
encryptingFile = Wrthi'n amgryptio…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } d { $hours } a { $minutes } m
|
||||
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
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Mae ffordd o ddiogelu eich preifatrwydd. Ymunwch â Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Importerer…
|
||||
encryptingFile = Krypterer…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } d. { $hours } t. { $minutes } m.
|
||||
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
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Træk og slip filer
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Del link
|
||||
shareMessage = Hent { $name } med { -send-brand } - simpel og sikker fildeling
|
||||
trailheadPromo = Beskyt dine digitale rettigheder. Slut dig til Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Wird importiert…
|
||||
encryptingFile = Wird verschlü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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Dateien zum Hochladen auswählen
|
||||
trustWarningMessage = Sie sollten dem Empfänger vertrauen, wenn Sie vertrauliche Daten weitergeben.
|
||||
uploadButton = Hochladen
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Es gibt einen Weg, deine Privatsphäre zu schützen. Komm zu Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Komentar
|
||||
importingFile = Importěrujo se...
|
||||
encryptingFile = Kodě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"
|
||||
expiresDaysHoursMinutes = { $days }ź { $hours }g { $minutes }m
|
||||
addFilesButton = Dataje za nagrawanje wubraś
|
||||
trustWarningMessage = Wy měł dostawarjeju dowěriś, gaž sensibelne daty źěliśo.
|
||||
uploadButton = Nagraś
|
||||
# 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
|
||||
@@ -171,3 +171,37 @@ shareLinkButton = Wótkaz źěliś
|
||||
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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Σχόλια
|
||||
importingFile = Εισαγωγή…
|
||||
encryptingFile = Κρυπτογράφηση…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }η { $hours }ώ { $minutes }λ
|
||||
addFilesButton = Επιλέξτε αρχεία για μεταφόρτωση
|
||||
trustWarningMessage = Βεβαιωθείτε ότι ο παραλήπτης είναι έμπιστος πριν μοιραστείτε ευαίσθητα δεδομένα.
|
||||
uploadButton = Μεταφόρτωση
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Σύρετε και εναποθέστε αρχεία
|
||||
@@ -140,7 +140,7 @@ accountBenefitSync = Διαχειριστείτε τα διαμοιρασμέν
|
||||
accountBenefitMoz = Μάθετε για τις άλλες υπηρεσίες της { -mozilla }
|
||||
signOut = Αποσύνδεση
|
||||
okButton = OK
|
||||
downloadingTitle = Λήψη
|
||||
downloadingTitle = Γίνεται λήψη
|
||||
noStreamsWarning = Αυτό το πρόγραμμα περιήγησης ενδέχεται να μην μπορέσει να αποκρυπτογραφήσει αρχεία αυτού του μεγέθους.
|
||||
noStreamsOptionCopy = Αντιγράψτε το σύνδεσμο για άνοιγμα σε άλλο πρόγραμμα περιήγησης
|
||||
noStreamsOptionFirefox = Δοκιμάστε το αγαπημένο μας πρόγραμμα περιήγησης
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Κοινή χρήση συνδέσμου
|
||||
shareMessage = Λήψη του “{ $name }” με το { -send-brand }: απλός και ασφαλής διαμοιρασμός αρχείων
|
||||
trailheadPromo = Υπάρχει τρόπος να προστατέψετε το απόρρητό σας. Γίνετε μέλος του Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Importing…
|
||||
encryptingFile = Encrypting…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Select files to upload
|
||||
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
|
||||
uploadButton = Upload
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Drag and drop files
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Share link
|
||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Importing…
|
||||
encryptingFile = Encrypting…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Select files to upload
|
||||
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
|
||||
uploadButton = Upload
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Drag and drop files
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Share link
|
||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Importing…
|
||||
encryptingFile = Encrypting…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Select files to upload
|
||||
trustWarningMessage = Make sure you trust your recipient when sharing sensitive data.
|
||||
uploadButton = Upload
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Drag and drop files
|
||||
@@ -145,3 +145,33 @@ shareLinkButton = Share link
|
||||
shareMessage = Download “{ $name }” with { -send-brand }: simple, safe file sharing
|
||||
trailheadPromo = There is a way to protect your privacy. Join Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Opinión
|
||||
importingFile = Importando…
|
||||
encryptingFile = Cifrando…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Seleccionar archivos para subir
|
||||
trustWarningMessage = Asegurate de que confiás en tu destinatario cuando compartís datos confidenciales.
|
||||
uploadButton = Subir
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Hay una forma de proteger tu privacidad. Unite a Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Comentarios
|
||||
importingFile = Importando…
|
||||
encryptingFile = Cifrando…
|
||||
decryptingFile = Descifrando…
|
||||
@@ -53,7 +52,7 @@ passwordSetError = Esta contraseña no pudo ser establecida
|
||||
-send-short-brand = Send
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Intercambio de archivos sencillo y privado
|
||||
introTitle = Intercambio de archivos simple y privado
|
||||
introDescription = { -send-brand } te permite compartir archivos con cifrado de extremo a extremo y un enlace que expira automáticamente. Así puedes mantener lo que compartes en privado y asegurarte de que tus cosas no permanezcan en línea para siempre.
|
||||
notifyUploadEncryptDone = Tu archivo está cifrado y listo para enviar
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
@@ -95,7 +94,7 @@ copyLinkDescription = Copiar el enlace para compartir el archivo:
|
||||
copyLinkButton = Copiar enlace
|
||||
downloadTitle = Bajando archivos
|
||||
downloadDescription = Este archivo fue compartido a través de { -send-brand } con cifrado de punto a punto y un enlace que expira automáticamente.
|
||||
trySendDescription = Prueba { -send-brand } para compartir archivos de forma sencilla y segura.
|
||||
trySendDescription = Prueba { -send-brand } para compartir archivos de forma simple y segura.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
@@ -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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Selecciona los archivos a subir
|
||||
trustWarningMessage = Asegúrate de que confías en tu destinatario cuando compartas datos sensibles.
|
||||
uploadButton = Subir
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Hay una forma de proteger tu privacidad. Únete a Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Comentario
|
||||
importingFile = Importando...
|
||||
encryptingFile = Encriptando...
|
||||
decryptingFile = Desencriptando...
|
||||
encryptingFile = Cifrando...
|
||||
decryptingFile = Descifrando...
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 descarga
|
||||
@@ -21,11 +20,11 @@ downloadButtonLabel = Descargar
|
||||
downloadFinish = Descarga completa
|
||||
fileSizeProgress = ({ $partialSize } de { $totalSize })
|
||||
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 }.
|
||||
linkExpiredAlt = Enlace caducado
|
||||
notSupportedHeader = Tu navegador no está admitido.
|
||||
notSupportedLink = ¿Por qué no se admite mi navegador?
|
||||
notSupportedHeader = Tu navegador no es compatible.
|
||||
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.
|
||||
updateFirefox = Actualizar Firefox
|
||||
deletePopupCancel = Cancelar
|
||||
@@ -33,7 +32,7 @@ deleteButtonHover = Eliminar
|
||||
footerLinkLegal = Legal
|
||||
footerLinkPrivacy = Privacidad
|
||||
footerLinkCookies = Cookies
|
||||
passwordTryAgain = Contraseña incorrecta. Inténtelo de nuevo.
|
||||
passwordTryAgain = Contraseña incorrecta. Inténtalo de nuevo.
|
||||
javascriptRequired = Firefox Send requiere JavaScript
|
||||
whyJavascript = ¿Por qué Firefox Send requiere JavaScript?
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Seleccionar archivos para subir
|
||||
trustWarningMessage = Asegúrate de que confías en tu destinatario cuando compartas datos sensibles.
|
||||
uploadButton = Subir
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Existe la forma de proteger tu privacidad. Únete a Firefox.
|
||||
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.
|
||||
|
||||
@@ -21,11 +21,11 @@ downloadButtonLabel = بارگیری
|
||||
downloadFinish = بارگیری کامل شد
|
||||
fileSizeProgress = ({ $partialSize } از { $totalSize })
|
||||
sendYourFilesLink = Firefox Send را امتحان کنید
|
||||
errorPageHeader = چیزی دچار اشکال شده است!
|
||||
errorPageHeader = خطایی رخ داد!
|
||||
fileTooBig = این پرونده بسیار حجیم است. حجم آن میبایستی کم تر { $size } باشد.
|
||||
linkExpiredAlt = پیوند منقضی شده است
|
||||
notSupportedHeader = مرورگر شما پشتیبانی نمیکند.
|
||||
notSupportedLink = چرا مرورگر من پشتیبانی نمیکند؟
|
||||
notSupportedHeader = مرورگر شما پشتیبانی نمیشود.
|
||||
notSupportedLink = چرا از مرورگر من پشتیبانی نمیشود؟
|
||||
notSupportedOutdatedDetail = متاسفانه این نسخه از فایرفاکس این تکنولوژی وب که به Firefox Send قدرت میبخشد را پشتیبانی نمیکند. شما نیاز دارید تا مرورگر خود را بروز کنید.
|
||||
updateFirefox = بروزرسانی فایرفاکس
|
||||
deletePopupCancel = انصراف
|
||||
@@ -79,13 +79,13 @@ fileCount =
|
||||
*[other] { $num } پرونده
|
||||
}
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
bytes = بایت
|
||||
# kibibyte abbreviation
|
||||
kb = KB
|
||||
kb = کیلوبایت
|
||||
# mebibyte abbreviation
|
||||
mb = MB
|
||||
mb = مگابایت
|
||||
# gibibyte abbreviation
|
||||
gb = GB
|
||||
gb = گیگابایت
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Palaute
|
||||
importingFile = Tuodaan…
|
||||
encryptingFile = Salataan...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } pv { $hours } t { $minutes } min
|
||||
addFilesButton = Valitse lähetettävät tiedostot
|
||||
trustWarningMessage = Varmista, että luotat vastaanottajaan jakaessasi arkaluontoisia tietoja.
|
||||
uploadButton = Lähetä
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Vedä ja pudota tiedostot
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Jaa linkki
|
||||
shareMessage = Lataa tiedosto ”{ $name }” { -send-brand } -palvelusta: yksinkertaista ja turvallista tiedostonjakoa
|
||||
trailheadPromo = On tapa suojata yksityisyyttään. Liity Firefoxiin.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Votre avis
|
||||
importingFile = Importation…
|
||||
encryptingFile = 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"
|
||||
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
|
||||
addFilesButton = Sélectionnez des fichiers à envoyer
|
||||
trustWarningMessage = Assurez-vous de faire confiance au destinataire lorsque vous partagez des données sensibles.
|
||||
uploadButton = Envoyer
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Il existe un moyen de protéger votre vie privée. Rejoignez Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Kommentaar
|
||||
importingFile = Ymportearje…
|
||||
encryptingFile = Fersiferje…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }o { $minutes }m
|
||||
addFilesButton = Bestannen selektearje om op te laden
|
||||
trustWarningMessage = Soargje derfoar dat jo jo ûntfanger fertrouwe wannear't jo gefoelige gegevens diele.
|
||||
uploadButton = Oplade
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Sleep en pleats bestannen
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Keppeling 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.
|
||||
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,9 +1,8 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Je'ejey
|
||||
importingFile = Ojegueruhína…
|
||||
encryptingFile = Mo'ãmby…
|
||||
decryptingFile = Ñemo'ã'o…
|
||||
encryptingFile = Mo’ãmby…
|
||||
decryptingFile = Ñemo’ã’o…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 mboguejy
|
||||
@@ -15,7 +14,7 @@ timespanHours =
|
||||
*[other] { $num } aravo
|
||||
}
|
||||
copiedUrl = Monguatiapyre!
|
||||
unlockInputPlaceholder = Ñe'ẽñemi
|
||||
unlockInputPlaceholder = Ñe’ẽñemi
|
||||
unlockButtonLabel = Mbojera
|
||||
downloadButtonLabel = Mboguejy
|
||||
downloadFinish = Oguejypáma
|
||||
@@ -33,7 +32,7 @@ deleteButtonHover = Mboguete
|
||||
footerLinkLegal = Añetegua
|
||||
footerLinkPrivacy = Ñemigua
|
||||
footerLinkCookies = Kookie
|
||||
passwordTryAgain = Ñe'ẽñemi ndoikóiva. Eha'ãjey.
|
||||
passwordTryAgain = Ñe’ẽñemi ndoikóiva. Eha’ãjey.
|
||||
javascriptRequired = Firefox Send oikotevẽ JavaScript
|
||||
whyJavascript = ¿Mba’ére Firefox Send oikotevẽ JavaScript?
|
||||
enableJavascript = Ikatúpa embojuruja JavaScript ha eha’ãjey uperire.
|
||||
@@ -44,7 +43,7 @@ expiresMinutes = { $minutes } m
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Ñe’ẽñemi pukukue: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Ndaikatúi oikóvo ko ñe'ẽñemi
|
||||
passwordSetError = Ndaikatúi oikóvo ko ñe’ẽñemi
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
@@ -53,15 +52,15 @@ passwordSetError = Ndaikatúi oikóvo ko ñe'ẽñemi
|
||||
-send-short-brand = Send
|
||||
-firefox = Firefox
|
||||
-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.
|
||||
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'
|
||||
archiveExpiryInfo = Opáta { $downloadCount } rire térã { $timespan }
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
[one] 1 aravo'i
|
||||
*[other] { $num } aravo'i
|
||||
[one] 1 aravo’i
|
||||
*[other] { $num } aravo’i
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
@@ -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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Eiporavo marandurenda ehupi hag̃ua
|
||||
trustWarningMessage = Ejerovia añetépa emondotaháre emoherakuãvo mba’ekuaarã kañyguáva.
|
||||
uploadButton = Hupi
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Embosyryry ha epoi marandurenda
|
||||
@@ -137,7 +137,7 @@ accountBenefitTimeLimit =
|
||||
*[other] Eguereko juajuha hendyhápe { $count } ára
|
||||
}
|
||||
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
|
||||
okButton = OK
|
||||
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:
|
||||
shareLinkButton = Emoherakuã juajuha
|
||||
# $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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = משוב
|
||||
importingFile = מתבצע ייבוא…
|
||||
encryptingFile = מתבצעת הצפנה...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } ימים { $hours } שעות { $minutes } דקות
|
||||
addFilesButton = בחירת קבצים להעלאה
|
||||
trustWarningMessage = עליך לוודא שבעת שיתוף מידע רגיש הנמענים שלך הם מהימנים.
|
||||
uploadButton = העלאה
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = גרירה והשלכת קבצים
|
||||
@@ -156,3 +156,31 @@ shareLinkButton = שיתוף קישור
|
||||
shareMessage = הורדת ״{ $name }״ עם { -send-brand }: שיתוף קבצים פשוט ובטוח
|
||||
trailheadPromo = ישנן דרכים נוספות להגן על הפרטיות שלכם. הצטרפו אל Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Povratne informacije
|
||||
importingFile = Uvoz…
|
||||
encryptingFile = Š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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }s { $minutes }m
|
||||
addFilesButton = Odaberi datoteke za prijenos
|
||||
trustWarningMessage = Budite sigurni da vjerujete primatelju prije dijeljenja osjetljivih podataka.
|
||||
uploadButton = Prijenos
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Povuci i ispusti datoteke
|
||||
@@ -162,3 +162,35 @@ shareLinkButton = Dijeli poveznicu
|
||||
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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Komentar
|
||||
importingFile = Importuje so...
|
||||
encryptingFile = Zaklučuje 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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Dataje za nahrawanje wubrać
|
||||
trustWarningMessage = Wy měł přijimarjej dowěrić, hdyž sensibelne daty dźěliće.
|
||||
uploadButton = Nahrać
|
||||
# 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
|
||||
@@ -171,3 +171,37 @@ shareLinkButton = Wotkaz dźělić
|
||||
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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Visszajelzés
|
||||
importingFile = Importálás…
|
||||
encryptingFile = Titkosítá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"
|
||||
expiresDaysHoursMinutes = { $days }n { $hours }ó { $minutes }p
|
||||
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
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Védje meg a magánszféráját. Csatlakozzon a Firefoxhoz.
|
||||
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,18 +1,17 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Reaction
|
||||
importingFile = Importation…
|
||||
encryptingFile = Cryptation...
|
||||
decryptingFile = Decryptation…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] discargamento
|
||||
*[other] discargamentos
|
||||
[one] { $num } discargamento
|
||||
*[other] { $num } discargamentos
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] hora
|
||||
*[other] horas
|
||||
[one] { $num } hora
|
||||
*[other] { $num } horas
|
||||
}
|
||||
copiedUrl = Copiate!
|
||||
unlockInputPlaceholder = Contrasigno
|
||||
@@ -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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Selige le files a incargar
|
||||
trustWarningMessage = Verifica que tu te fide a tu destinatario quando tu comparti datos sensibile.
|
||||
uploadButton = Incargar
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Il ha un via pro proteger tu confidentialitate. Junge te a Firefox!
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Saran
|
||||
importingFile = Mengimpor…
|
||||
encryptingFile = Mengenkripsi...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }h { $hours }j { $minutes }m
|
||||
addFilesButton = Pilih berkas untuk diunggah
|
||||
trustWarningMessage = Pastikan Anda mempercayai penerima Anda saat berbagi data sensitif.
|
||||
uploadButton = Unggah
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Seret dan jatuhkan berkas
|
||||
@@ -144,3 +144,31 @@ shareLinkButton = Bagikan tautan
|
||||
shareMessage = Unduh "{ $name }" dengan { -send-brand }: berbagi berkas dengan sederhana dan aman
|
||||
trailheadPromo = Ada cara untuk melindungi privasi Anda. Bergabunglah dengan Firefox.
|
||||
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.
|
||||
|
||||
93
public/locales/ig/send.ftl
Normal file
93
public/locales/ig/send.ftl
Normal file
@@ -0,0 +1,93 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Zipu
|
||||
importingFile = Mbubata…
|
||||
encryptingFile = ezoro ezo...
|
||||
decryptingFile = Kpebie
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] ụbọchị { $num }
|
||||
*[other] Abuọ
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] { $num } otu
|
||||
*[other] { $num } abụọ
|
||||
}
|
||||
copiedUrl = edepụtachaghiri
|
||||
unlockInputPlaceholder = okwuntughe
|
||||
unlockButtonLabel = imeghe
|
||||
downloadButtonLabel = budata
|
||||
downloadFinish = Mbudata zuru ezu
|
||||
fileSizeProgress = ({ $partialSize } nke { $totalSize })
|
||||
sendYourFilesLink = Firefox Zipu
|
||||
errorPageHeader = Onwere ihe na-adighi mma
|
||||
fileTooBig = Failu a ebuka ibulite. Ọ kwẹsịghi ịkalị { $size }
|
||||
linkExpiredAlt = Njiko jedebe
|
||||
notSupportedHeader = Adighi akwado ihe nchogharị gị
|
||||
notSupportedLink = Gịnị kpatara na akwadoghị ihe nchọgharị m?
|
||||
notSupportedOutdatedDetail = Ọ dị nwute na ụdị Firefox a anaghị akwado teknụzụ weebụ na-eji Firefox Zipụ. Ikwesiri imelite ihe nchọgharị gị.
|
||||
updateFirefox = Melite Firefox
|
||||
deletePopupCancel = Kagbuo
|
||||
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?
|
||||
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"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Oke okwuntughe kachasị: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Enweghị ike ịtọ paswọọdụ a
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||
-send-brand = Firefox Send
|
||||
-send-short-brand = Zipu, Ziga
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
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
|
||||
# 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ị
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] 1 ụbọchị
|
||||
*[other] ụbọchị { $num }
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] 1 izu
|
||||
*[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
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Importazione in corso…
|
||||
encryptingFile = Crittazione 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"
|
||||
expiresDaysHoursMinutes = { $days }g { $hours }h { $minutes }m
|
||||
addFilesButton = Seleziona i file da caricare
|
||||
trustWarningMessage = Assicurati che il destinatario sia affidabile quando condividi dati sensibili.
|
||||
uploadButton = Carica
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Trascina e rilascia i file
|
||||
@@ -143,5 +143,35 @@ shareLinkDescription = Condividi il link al tuo file:
|
||||
shareLinkButton = Condividi link
|
||||
# $name is the name of the file
|
||||
shareMessage = Scarica “{ $name }” con { -send-brand }: condivisione di file semplice e sicura
|
||||
trailheadPromo = C’è un modo per proteggere la tua privacy. Entra a far parte di Firefox.
|
||||
trailheadPromo = C’è un modo per proteggere la tua privacy. Entra in Firefox.
|
||||
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.
|
||||
|
||||
@@ -21,6 +21,38 @@ downloadButtonLabel = Eq'o ku'tzan
|
||||
downloadFinish = Eq'o ku'tzan kaajayil
|
||||
fileSizeProgress = ({ $partialSize }tetz{ $totalSize })
|
||||
sendYourFilesLink = B'anb'e ve't u Firefox Send
|
||||
errorPageHeader = At ma'l kam valexh kat eli!
|
||||
notSupportedHeader = U chukb'al aq'one' ye' ni toleb'e'.
|
||||
notSupportedLink = Kam q'ii uve' ye' kuxh ni toleb' u chukb'al vaq'one'?
|
||||
updateFirefox = Tz'ajsa tatine' Firefox
|
||||
deletePopupCancel = Ya'samal
|
||||
deleteButtonHover = Sojsa
|
||||
footerLinkPrivacy = Tetz kuxhtu'
|
||||
footerLinkCookies = Cookies
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
# Firefox Send, Send, Firefox, Mozilla are proper names and should not be localized
|
||||
-send-brand = Firefox Send
|
||||
-send-short-brand = Aq'b'en
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
# 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 = { $num }{ $units }
|
||||
# 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
|
||||
emailPlaceholder = Aq'ku' a correo
|
||||
shareLinkButton = La jatxb'en u vaa'
|
||||
learnMore = Ootzi ka'te.
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = フィードバック
|
||||
importingFile = インポート中...
|
||||
encryptingFile = 暗号化中...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } 日 { $hours } 時 { $minutes } 分
|
||||
addFilesButton = アップロードするファイルを選択
|
||||
trustWarningMessage = 機密データを共有する場合は、受信者が信頼できる相手であることを確認してください。
|
||||
uploadButton = アップロード
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = ファイルをドラッグ&ドロップ
|
||||
@@ -134,6 +134,7 @@ okButton = OK
|
||||
downloadingTitle = ダウンロード中
|
||||
noStreamsWarning = このブラウザーは、この大きさのファイルを復号化できません。
|
||||
noStreamsOptionCopy = リンクをコピーして他のブラウザーで開いてください
|
||||
noStreamsOptionFirefox = Firefox を試してみる
|
||||
noStreamsOptionDownload = このブラウザーで続ける
|
||||
downloadFirefoxPromo = { -send-short-brand } はすべてが新しくなった { -firefox } により提供されています。
|
||||
# the next line after the colon contains a file name
|
||||
@@ -143,3 +144,31 @@ shareLinkButton = リンクを共有
|
||||
shareMessage = { -send-brand } で "{ $name }" をダウンロード: シンプルで安全なファイル共有
|
||||
trailheadPromo = プライバシーを保護する方法があります。Firefox を試してください。
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = გამოხმაურება
|
||||
importingFile = გადმოტანა...
|
||||
encryptingFile = დაშიფვრა...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } დღე { $hours } სთ { $minutes } წთ
|
||||
addFilesButton = ფაილების შერჩევა ასატვირთად
|
||||
trustWarningMessage = დარწმუნდით, რომ ენდობით მიმღებს, სანამ მნიშვნელოვან მონაცემებს გაუზიარებთ.
|
||||
uploadButton = ატვირთვა
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = გადმოიტანეთ და მოათავსეთ ფაილები
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = ბმულის გაზიარება
|
||||
shareMessage = ჩამოტვირთეთ „{ $name }“ { -send-brand }-ით: ფაილების გაზიარება მარტივად, უსაფრთხოდ
|
||||
trailheadPromo = გზა, თქვენი პირადულობის დასაცავად. შემოუერთდით Firefox-ს.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Tikti
|
||||
importingFile = Akter...
|
||||
encryptingFile = Awgelhen...
|
||||
decryptingFile = Azmek...
|
||||
@@ -54,7 +53,7 @@ passwordSetError = Awal-agi uffir ur izmir ara ad ittwabaded
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Afessas, beṭṭu n ifuyla s wudem uslig
|
||||
introDescription = { -send-brand } ad k(kem)-yeǧǧ ad tebḍuḍ ifuyla iwgelhanen si ṭṭerf ɣer ṭṭerf akked useɣwen ara yemmten s wudem awurman. Daɣen, ad tizmireḍ ad tḥerzeḍ ayen i tbeṭṭuḍ s wudem uslig daɣen ad tamneḍ imi agbur-ik ur yettɣimi ara i lebda.
|
||||
introDescription = { -send-brand } ad k·kem-yeǧǧ ad tebḍuḍ ifuyla iwgelhanen si ṭṭerf ɣer ṭṭerf akked useɣwen ara yemmten s wudem awurman. Daɣen, ad tizmireḍ ad tḥerzeḍ ayen i tbeṭṭuḍ s wudem uslig daɣen ad tamneḍ imi agbur-ik·im ur yettɣimi ara i lebda.
|
||||
notifyUploadEncryptDone = Afaylu-ik yewgelhen daɣen ihegga i tuzna
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Ad yemmet deffir { $downloadCount } neɣ { $timespan }
|
||||
@@ -76,7 +75,7 @@ timespanWeeks =
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] 1 n ufaylu
|
||||
*[other] { $num } n ifuyla
|
||||
*[other] { $num } n yifuyla
|
||||
}
|
||||
# byte abbreviation
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } ass { $hours } srg { $minutes } tsd
|
||||
addFilesButton = Fren ifuyla ad tessaliḍ
|
||||
trustWarningMessage = Ḍmen d akken tumneḍ anermis ticki tebḍiḍ isefka n tbadnit.
|
||||
uploadButton = Sali
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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.
|
||||
trailheadPromo = Yella wallal n ummesten n tudert-ik tusligt. Ddu ɣer Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = 사용자 의견
|
||||
importingFile = 가져오는 중…
|
||||
encryptingFile = 암호화 중…
|
||||
decryptingFile = 복호화 중…
|
||||
@@ -97,11 +96,12 @@ tooManyArchives =
|
||||
expiredTitle = 이 링크는 만료되었습니다.
|
||||
notSupportedDescription = { -send-brand }는 이 브라우저와 작동하지 않습니다. { -send-short-brand }는 최신 { -firefox }와 가장 잘 작동하며, 대부분의 최신 웹 브라우저와도 잘 작동합니다.
|
||||
downloadFirefox = { -firefox } 다운로드
|
||||
legalTitle = { -send-short-brand } 개인정보 보호 공지
|
||||
legalTitle = { -send-short-brand } 개인정보처리방침
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }일 { $hours }시간 { $minutes }분
|
||||
addFilesButton = 업로드할 파일들을 선택하세요
|
||||
trustWarningMessage = 중요한 정보를 공유할 때는 수신자들이 모두 믿을 만한 사람들인지를 꼭 확인하세요.
|
||||
uploadButton = 업로드
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = 파일들을 여기에 끌어서 놓으세요
|
||||
@@ -138,3 +138,31 @@ shareLinkButton = 링크 공유
|
||||
shareMessage = { -send-brand }으로 “{ $name }” 파일을 내려받으세요: 쉽고 안전한 파일 공유입니다.
|
||||
trailheadPromo = 개인 정보를 보호하는 방법이 있습니다. Firefox에 가입하세요.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Pateikti atsiliepimą
|
||||
importingFile = Importuojama…
|
||||
encryptingFile = Š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"
|
||||
expiresDaysHoursMinutes = { $days } d. { $hours } val. { $minutes } min.
|
||||
addFilesButton = Rinktis failus įkėlimui
|
||||
trustWarningMessage = Dalindamiesi svarbiais duomenimis įsitikinkite, kad pasitikite gavėju.
|
||||
uploadButton = Įkelti
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Yra būdas apsaugoti jūsų privatumą. Naudokite „Firefox“.
|
||||
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.
|
||||
|
||||
5
public/locales/lus/send.ftl
Normal file
5
public/locales/lus/send.ftl
Normal file
@@ -0,0 +1,5 @@
|
||||
encryptingFile = Encrypting...
|
||||
decryptingFile = Decrypting
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Tu'un meu
|
||||
importingFile = Ndakiin…
|
||||
encryptingFile = Ndasami 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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Katsi tutu ku skau
|
||||
trustWarningMessage = Kunche'e a va'a nu ku ntachuún ña.
|
||||
uploadButton = Skaa
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Xita cha sia kue tutu
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Stucha Enlace
|
||||
shareMessage = Snuu «{ $name }» tsi { -send-brand }: kue nchichi
|
||||
trailheadPromo = Ku china vau ña chau. Kita'an tsi Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Tilbakemelding
|
||||
importingFile = Importerer…
|
||||
encryptingFile = Krypterer...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
||||
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
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Dra og slipp filer
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Del lenke
|
||||
shareMessage = Last ned ‹{ $name }› med { -send-brand }: enkel, trygg fildeling
|
||||
trailheadPromo = Det finnes en måte å ta vare på personvernet ditt. Bruk Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Importeren…
|
||||
encryptingFile = Versleutelen…
|
||||
decryptingFile = Ontcijferen…
|
||||
decryptingFile = Ontsleutelen…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }u { $minutes }m
|
||||
addFilesButton = Selecteer te uploaden bestanden
|
||||
trustWarningMessage = Zorg ervoor dat u uw ontvanger vertrouwt wanneer u gevoelige gegevens deelt.
|
||||
uploadButton = Uploaden
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Versleep bestanden
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Koppeling 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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Tilbakemelding
|
||||
importingFile = Importerer…
|
||||
encryptingFile = Krypterer…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
||||
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
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Dra og slepp filer
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Del lenke
|
||||
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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Comentaris
|
||||
importingFile = Importacion…
|
||||
encryptingFile = Chiframent…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } j { $hours } h { $minutes } min
|
||||
addFilesButton = Seleccionatz los fichièrs de mandar
|
||||
trustWarningMessage = Asseguratz-vos que vos fisatz del destinari quand partejatz de donadas confidencialas.
|
||||
uploadButton = Enviar
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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.
|
||||
trailheadPromo = Existís un biais de protegir vòstra vida privada. Rejonhètz Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = ਸੁਝਾਅ
|
||||
importingFile = ...ਦਰਾਮਦ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||
encryptingFile = ...ਇੰਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||
decryptingFile = ...ਡਿਕ੍ਰਿਪਟ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
|
||||
@@ -153,3 +152,4 @@ shareLinkButton = ਲਿੰਕ ਸਾਂਝਾ ਕਰੋ
|
||||
shareMessage = { -send-brand } ਨਾਲ "{ $name }" ਡਾਊਨਲੋਡ ਕਰੋ: ਸੌਖਾ, ਸੁਰੱਖਿਅਤ ਫਾਇਲ ਸਾਂਝਾ ਕਰਨਾ
|
||||
trailheadPromo = ਤੁਹਾਡੀ ਪਰਦੇਦਾਰੀ ਦੀ ਸੁਰੱਖਿਆ ਦਾ ਢੰਗ ਹੈ। ਫਾਇਰਫਾਕਸ ਨਾਲ ਜੁੜੋ।
|
||||
learnMore = ਹੋਰ ਸਿੱਖੋ
|
||||
downloadConfirmTitle = ਇੱਕ ਗੱਲ ਹੋਰ
|
||||
|
||||
4
public/locales/pai/send.ftl
Normal file
4
public/locales/pai/send.ftl
Normal file
@@ -0,0 +1,4 @@
|
||||
siteFeedback = Tkweek uk kabyuwuha
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Wyślij opinię
|
||||
importingFile = Importowanie…
|
||||
encryptingFile = Szyfrowanie…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } d. { $hours } godz. { $minutes } min
|
||||
addFilesButton = Wybierz pliki do wysłania
|
||||
trustWarningMessage = Upewnij się, że ufasz odbiorcy, kiedy udostępniasz prywatne dane.
|
||||
uploadButton = Wyślij
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Jest sposób na ochronę swojej prywatności. Dołącz do Firefoksa.
|
||||
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,9 +1,9 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Tay tina ipanpa?
|
||||
siteFeedback = Shitechnawati
|
||||
importingFile = Mukalaktia nemi…
|
||||
encryptingFile = Tiksenihnayat tiknemit…
|
||||
decryptingFile = Kiajsimati nemi…
|
||||
encryptingFile = Tikichtakawiat tinemit…
|
||||
decryptingFile = Tikichtakapuat tinemit…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] temultijtuk
|
||||
@@ -15,36 +15,36 @@ timespanHours =
|
||||
*[other] { $num } oraj
|
||||
}
|
||||
copiedUrl = Muishkupintuk!
|
||||
unlockInputPlaceholder = Taketzalis ichtaka
|
||||
unlockButtonLabel = Shikchululti
|
||||
unlockInputPlaceholder = Ichtakatajkwilul
|
||||
unlockButtonLabel = Shiktapua
|
||||
downloadButtonLabel = Shiktemulti
|
||||
downloadFinish = Shiktemulti muchi
|
||||
downloadFinish = Senkiska mutemultij
|
||||
fileSizeProgress = ({ $partialSize } ipal { $totalSize })
|
||||
sendYourFilesLink = Shikwi Firefox Send
|
||||
errorPageHeader = Se teyek panuk!
|
||||
fileTooBig = Ne tajkwilul sea wey pal tiktejkultia. Shiktemulti { $size } ush chupiuk chikitik.
|
||||
linkExpiredAlt = Ilpika teuk yek
|
||||
notSupportedHeader = Te tikishmatit ne taiwan titajtachia.
|
||||
notSupportedLink = Taika te ankishmatit ne taiwan nitajtachia?
|
||||
notSupportedOutdatedDetail = Ini versión ipal Firefox tesu kipalewia ne tecnologíaj web kiyulitia Firefox Send. Nemi pal tikyankwilia ne taiwan titajtachia.
|
||||
sendYourFilesLink = Shikejeku Firefox Send
|
||||
errorPageHeader = IJtakawtuk!
|
||||
fileTooBig = Ini tajkwilul sujsul etek pal tiktejkultia. Ma nemi san { $size }.
|
||||
linkExpiredAlt = Ne ilpika pulijtuk
|
||||
notSupportedHeader = Te tikishmatit ne mutachialuni.
|
||||
notSupportedLink = Taika te ankishmatit nutachialuni?
|
||||
notSupportedOutdatedDetail = Ini tamakalis ipal Firefox tesu kimati ne tzawaltekitilis ne kiyulitia Firefox Send. Nemi pal tikyankwilia ne mutachialuni.
|
||||
updateFirefox = Shikyankwili Firefox
|
||||
deletePopupCancel = Shilwi tesu
|
||||
deletePopupCancel = Shikilwi tesu
|
||||
deleteButtonHover = Shikpulu
|
||||
footerLinkLegal = Ipanpa ne tajtuli
|
||||
footerLinkPrivacy = Tay ichtaka nemi
|
||||
footerLinkPrivacy = Teichtakayu
|
||||
footerLinkCookies = Cookies
|
||||
passwordTryAgain = Ne taketzalis ichtaka tesu yek. Shikejeku uksenpa.
|
||||
javascriptRequired = Firefox Send kineki JavaScript
|
||||
whyJavascript = Taika Firefox kineki JavaScript?
|
||||
passwordTryAgain = Ne ichtakatajkwilul tesu yek. Shikejeku uksenpa.
|
||||
javascriptRequired = Firefox Send muneki JavaScript
|
||||
whyJavascript = Taika Firefox Send muneki JavaScript?
|
||||
enableJavascript = Shichiwa ma JavaScript tekiti wan shikejeku uksenpa.
|
||||
# A short representation of a countdown timer containing the number of hours and minutes remaining as digits, example "13h 47m"
|
||||
expiresHoursMinutes = { $hours }h { $minutes }m
|
||||
# A short representation of a countdown timer containing the number of minutes remaining as digits, example "56m"
|
||||
expiresMinutes = { $minutes }m
|
||||
# A short status message shown when the user enters a long password
|
||||
maxPasswordLength = Keski weyak ne taketzalis-ichtaka: { $length }
|
||||
maxPasswordLength = Ne iweyaka ne ichtakatajkwilul muneki: { $length }
|
||||
# A short status message shown when there was an error setting the password
|
||||
passwordSetError = Te welit tiktaliat ini taketzalis ichtaka.
|
||||
passwordSetError = Te tiweliket tiktaliat ini ichtakataketzalis
|
||||
|
||||
## Send version 2 strings
|
||||
|
||||
@@ -53,30 +53,30 @@ passwordSetError = Te welit tiktaliat ini taketzalis ichtaka.
|
||||
-send-short-brand = Shiktitani
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Te uij wan ichtaka tikmajmaka se tajkwilul.
|
||||
introDescription = { -send-brand } metzpalewia tiktakulia se tajkwilul iwan ichtakatajkwilulis wan se ilpika ka puliwi nemanha. Ijkiuni nemi ichtaka tay tikmajmaka wan tesu naka senpa tik matapan tay mupal.
|
||||
notifyUploadEncryptDone = Ne mutajkwilul nemi ichtakatajkwilujtuk wan weli tiktitania
|
||||
introTitle = Shikmajmaka se tajkwilul, te uij wan ichtaka
|
||||
introDescription = { -send-brand } metzpalewia tikmajmaka se tajkwilul iwan taichtakawilis wan se ilpika puliwi nemanha. Yajika, tikpia muichtakayu pal tikmajmaka wan tesu naka senpa mutajtatka tik matapan.
|
||||
notifyUploadEncryptDone = Ne archivoj nemi ichtakawijtuk wan weli tiktitania
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Puliwi kwak tikajsi { $downloadCount } ush { $timespan }
|
||||
archiveExpiryInfo = Puliwi kwak ajsi { $downloadCount } ush { $timespan }
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
[one] minutoj
|
||||
*[other] minutoj
|
||||
[one] { $num } minutoj
|
||||
*[other] { $num } minutoj
|
||||
}
|
||||
timespanDays =
|
||||
{ $num ->
|
||||
[one] tunal
|
||||
*[other] tunal
|
||||
[one] { $num } tunal
|
||||
*[other] { $num } tunal
|
||||
}
|
||||
timespanWeeks =
|
||||
{ $num ->
|
||||
[one] semanaj
|
||||
*[other] semanaj
|
||||
[one] { $num } semanaj
|
||||
*[other] { $num } semanaj
|
||||
}
|
||||
fileCount =
|
||||
{ $num ->
|
||||
[one] tajkwilul
|
||||
*[other] tajkwilul
|
||||
[one] { $num } tajkwilul
|
||||
*[other] { $num } tajkwilul
|
||||
}
|
||||
# byte abbreviation
|
||||
bytes = B
|
||||
@@ -89,40 +89,40 @@ gb = GB
|
||||
# localized number and byte abbreviation. example "2.5MB"
|
||||
fileSize = { $num }{ $units }
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
totalSize = Keski itamachiwka: { $size }
|
||||
totalSize = Itamachiwka: { $size }
|
||||
# the next line after the colon contains a file name
|
||||
copyLinkDescription = Shikupina ne ilpika pal tiktakulia mutajkwilul:
|
||||
copyLinkButton = Shikupina ne ilpika
|
||||
downloadTitle = Shiktemulti tajtajkwilul
|
||||
downloadDescription = Ini tajkwilul kitakulijket iwan { -send-brand } iwan ichtakatajkwilulis wan se ilpika ka puliwi nemanha.
|
||||
copyLinkDescription = Shikishkupina ne ilpika pal tikmajmaka mutajkwilul:
|
||||
copyLinkButton = Shikishkupina ne ilpika
|
||||
downloadTitle = Shiktemulti tajkwilul
|
||||
downloadDescription = Ini tajkwilul kiski itech { -send-brand } iwan taichtakawilis wan se ilpika ka puliwi nemanha.
|
||||
trySendDescription = Shikejeku { -send-brand } wan shiktakuli ichtaka wan te uij.
|
||||
# count will always be > 10
|
||||
tooManyFiles =
|
||||
{ $count ->
|
||||
[one] Semaya se tajkwilul tiweli tiktejkultia sansepa.
|
||||
*[other] Semaya { $count } tajkwilul tiweli tiktejkultia sansepa.
|
||||
[one] Semaya se tajkwilul weli pal tiktejkultia sansepa.
|
||||
*[other] Semaya { $count } tajkwilul weli pal tiktejkultia sansepa.
|
||||
}
|
||||
# count will always be > 10
|
||||
tooManyArchives =
|
||||
{ $count ->
|
||||
[one] Semaya se amapial weli nemi.
|
||||
*[other] Semaya { $count } ajamapial welit nemit.
|
||||
[one] Semaya se amapial weli mutitania.
|
||||
*[other] Semaya { $count } amapial weli mutitania.
|
||||
}
|
||||
expiredTitle = Ne ilpika pulijtuk.
|
||||
notSupportedDescription = { -send-brand } tesu yawi tekiti iwan ne tay titajtachia. { -send-short-brand } tekiti sujsul yek iwan ne tipan versión ipal { -firefox }, wan nusan yawi tekiti iwan ne tipan versión ipal achka muchi ne taiwan titajtachia.
|
||||
expiredTitle = Ne ilpika puliwik.
|
||||
notSupportedDescription = { -send-brand } tesu yawi tekiti iwan ini tachialuni. { -send-short-brand } tekiti sujsul yek iwan ne tipan tamakalis ipal { -firefox }, wan nusan iwan ne tipan tamakalis ipal miak tachialuni.
|
||||
downloadFirefox = Shiktemulti { -firefox }
|
||||
legalTitle = { -send-short-brand } Tanawatilis ipal mupal ichtaka
|
||||
legalDateStamp = Versión 1.0, tik marzoj 12, 2019
|
||||
legalTitle = { -send-short-brand } Tanawatilis ipanpa teichtakayu
|
||||
legalDateStamp = Tamakalis 1.0, tik marzoj 12, 2019
|
||||
# A short representation of a countdown timer containing the number of days, hours, and minutes remaining as digits, example "2d 11h 56m"
|
||||
expiresDaysHoursMinutes = { $days } t { $hours } h { $minutes } m
|
||||
addFilesButton = Shikpejpena ne tajkwilul pal tiktejkultia
|
||||
uploadButton = Shiktejkulti
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Shiktilana wan shikmaka ne tajkwilul
|
||||
dragAndDropFiles = Shiktilana wan shikmayawi ne tajkwilul
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = u shikpachu pal tiktitania { $size }
|
||||
addPassword = Shiktajpia iwan se taketzalis ichtaka
|
||||
addPassword = Shiktajpia iwan ichtakatajkwilul
|
||||
emailPlaceholder = Shiktali mutepusamaw
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
signInSizeBump = Shiktali mutukay pal tiktitania { $size }
|
||||
@@ -130,26 +130,26 @@ signInOnlyButton = Shiktali mutukay
|
||||
accountBenefitTitle = Shikchiwa se mutapujka tik { -firefox } ush shiktali mutukay
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = Shiktakuli tajtajkwilul ka { $size }
|
||||
accountBenefitDownloadCount = Shiktakuli ne tajkwilul iwan seki
|
||||
accountBenefitDownloadCount = Shiktakuli tajtajkwilul iwan seuk
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
[one] Shikpia ne ilpika tatatuk 1 tunal
|
||||
*[other] Shikpia ne ilpika tatatuk { $count } tunal
|
||||
[one] Shikpia ne ilpika tapujtuk 1 tunal
|
||||
*[other] Shikpia ne ilpika tapujtuk { $count } tunal
|
||||
}
|
||||
accountBenefitSync = Shiktajpia ne tajtajkwilul ka tiktakulijtuk
|
||||
accountBenefitMoz = Shikmati ipanpa seuk itakil { -mozilla }
|
||||
accountBenefitSync = Shiktajpia ne tajkwilul takulijtuk ka kanaj
|
||||
accountBenefitMoz = Shikmati ipanpa ukse { -mozilla } tayekultilis
|
||||
signOut = Shikisa
|
||||
okButton = Yek
|
||||
downloadingTitle = Kitemultia nemi
|
||||
noStreamsWarning = Ne taiwan titachia te weli kineshtia ini wey tajkwilul
|
||||
noStreamsOptionCopy = Shikishkupina ne ilpika pal tiktapua tik ukse taiwan titajtachia
|
||||
noStreamsOptionFirefox = Shikejeku ne taiwan tachia tikishwelitat
|
||||
noStreamsOptionDownload = Ma ninemi senpa iwan ini taiwan nitachia
|
||||
noStreamsWarning = Ini tachialuni anka te weli kichtakapua ini tajkwilul wey.
|
||||
noStreamsOptionCopy = Shikishkupina ne ilpika pal tiktapua tik ukse tachialuni
|
||||
noStreamsOptionFirefox = Shikejeku ne tachialuni tikishwelitat
|
||||
noStreamsOptionDownload = Ma ninemi senpa iwan ini tachialuni
|
||||
downloadFirefoxPromo = Ne yankwik { -firefox } metzwikilia { -send-short-brand }.
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = Shiktakuli ne ilpika ipal ne mutajkwilul:
|
||||
shareLinkDescription = Shiktakuli ne ilpika ipal mutajkwilul:
|
||||
shareLinkButton = Shiktakuli ne ilpika
|
||||
# $name is the name of the file
|
||||
shareMessage = Shiktemulti “{ $name }” iwan { -send-brand }: ichtaka wan te uij
|
||||
trailheadPromo = Nemi ken tiktajpia ne tay mupal. Shimusentali iwan Firefox.
|
||||
trailheadPromo = Nemi ken pal tiktajpia ne muichtakayu. Shimuishtuka iwan Firefox.
|
||||
learnMore = Shimumachti ukchupi.
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Opinião
|
||||
importingFile = Importando…
|
||||
encryptingFile = Criptografando…
|
||||
decryptingFile = Descriptografando…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] 1 download
|
||||
*[other] { $num } downloads
|
||||
[one] baixar 1 vez
|
||||
*[other] baixar { $num } vezes
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
@@ -23,7 +22,7 @@ fileSizeProgress = ({ $partialSize } de { $totalSize })
|
||||
sendYourFilesLink = Experimente o Firefox Send
|
||||
errorPageHeader = Oops, ocorreu um erro!
|
||||
fileTooBig = Esse arquivo ou grupo de arquivos é grande demais para ser enviado. Deve ser menor que { $size }.
|
||||
linkExpiredAlt = Link expirou
|
||||
linkExpiredAlt = Link expirado
|
||||
notSupportedHeader = Seu navegador não é suportado.
|
||||
notSupportedLink = Por que meu navegador não é suportado?
|
||||
notSupportedOutdatedDetail = Infelizmente essa versão do Firefox não suporta a tecnologia web que faz o Firefox Send funcionar. Você precisa atualizar o seu navegador.
|
||||
@@ -54,10 +53,10 @@ passwordSetError = Essa senha não pôde ser definida
|
||||
-firefox = Firefox
|
||||
-mozilla = Mozilla
|
||||
introTitle = Compartilhamento de arquivos fácil e privativo
|
||||
introDescription = O { -send-brand } permite compartilhar arquivos com criptografia de ponta a ponta e um link que expira automaticamente. Assim você pode manter o que compartilha privativo e ter certeza que suas coisas não ficarão online para sempre.
|
||||
introDescription = O { -send-brand } permite compartilhar arquivos com criptografia de ponta a ponta através de um link que expira automaticamente. Assim você pode proteger o que compartilha e ter certeza que suas coisas não ficarão online para sempre.
|
||||
notifyUploadEncryptDone = Seu arquivo foi criptografado e está pronto para ser enviado
|
||||
# downloadCount is from the downloadCount string and timespan is a timespanMinutes string. ex. 'Expires after 2 downloads or 25 minutes'
|
||||
archiveExpiryInfo = Expirar após { $downloadCount } ou { $timespan }
|
||||
archiveExpiryInfo = Expira após { $downloadCount } ou { $timespan }
|
||||
timespanMinutes =
|
||||
{ $num ->
|
||||
[one] 1 minuto
|
||||
@@ -116,9 +115,10 @@ 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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Selecionar arquivos para enviar
|
||||
trustWarningMessage = Certifique-se de que confia no destinatário ao compartilhar dados sensíveis.
|
||||
uploadButton = Enviar
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Arraste e solte arquivos
|
||||
dragAndDropFiles = Arraste e solte arquivos aqui
|
||||
# the second part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
orClickWithSize = ou clique para enviar até { $size }
|
||||
@@ -153,3 +153,33 @@ shareLinkButton = Compartilhar link
|
||||
shareMessage = Baixe "{ $name }" com o { -send-brand }: compartilhamento de arquivos simples e seguro
|
||||
trailheadPromo = Existe um meio de proteger sua privacidade. Use o Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = A importar...
|
||||
encryptingFile = A encriptar...
|
||||
decryptingFile = A desencriptar...
|
||||
@@ -9,7 +8,11 @@ downloadCount =
|
||||
[one] 1 transferência
|
||||
*[other] { $num } transferências
|
||||
}
|
||||
timespanHours = 1 hora
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] 1 hora
|
||||
*[other] { $num } horas
|
||||
}
|
||||
copiedUrl = Copiado!
|
||||
unlockInputPlaceholder = Palavra-passe
|
||||
unlockButtonLabel = Desbloquear
|
||||
@@ -112,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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Selecionar ficheiros para carregar
|
||||
trustWarningMessage = Tenha a certeza que confia no destinatário ao partilhar dados sensíveis.
|
||||
uploadButton = Carregar
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Arraste e largue ficheiros
|
||||
@@ -149,3 +153,33 @@ shareLinkButton = Partilhar ligação
|
||||
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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Feedback
|
||||
importingFile = Se importă…
|
||||
encryptingFile = Se criptează…
|
||||
decryptingFile = Se decriptează…
|
||||
@@ -119,11 +118,12 @@ tooManyArchives =
|
||||
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.
|
||||
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
|
||||
# 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
|
||||
addFilesButton = Selectează fișierele pentru încărcare
|
||||
trustWarningMessage = Asigură-te că destinatarul este de încredere când partajezi date sensibile.
|
||||
uploadButton = Încarcă
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Trage și plasează fișierele
|
||||
@@ -160,5 +160,37 @@ shareLinkDescription = Partajează linkul către fișier:
|
||||
shareLinkButton = Partajează linkul
|
||||
# $name is the name of the file
|
||||
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.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Отзывы
|
||||
importingFile = Импортирование...
|
||||
encryptingFile = Шифрование...
|
||||
decryptingFile = Расшифровка...
|
||||
@@ -119,11 +118,12 @@ tooManyArchives =
|
||||
expiredTitle = Срок действия этой ссылки истёк.
|
||||
notSupportedDescription = { -send-brand } не будет работать в этом браузере. { -send-short-brand } лучше всего работает с последней версией { -firefox }, и будет работать с последними версиями популярных браузеров.
|
||||
downloadFirefox = Загрузить { -firefox }
|
||||
legalTitle = Политика приватности { -send-short-brand }
|
||||
legalTitle = Уведомление о конфиденциальности { -send-short-brand }
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days } дн. { $hours } ч. { $minutes } мин.
|
||||
addFilesButton = Выберите файлы для выгрузки
|
||||
trustWarningMessage = Убедитесь, что вы доверяете своему получателю при обмене конфиденциальными данными.
|
||||
uploadButton = Выгрузить
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Перетащите файлы сюда
|
||||
@@ -162,3 +162,35 @@ shareLinkButton = Поделиться ссылкой
|
||||
shareMessage = Загрузите «{ $name }» с { -send-brand }: простой и безопасный обмен файлами
|
||||
trailheadPromo = Существует способ защитить вашу приватность. Присоединяйтесь к Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Spätná väzba
|
||||
importingFile = Importuje sa…
|
||||
encryptingFile = Š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"
|
||||
expiresDaysHoursMinutes = { $days } d { $hours } h { $minutes } min
|
||||
addFilesButton = Vyberte súbory pre nahratie
|
||||
trustWarningMessage = Uistite sa, že pri zdieľaní citlivých údajov dôverujete adresátovi.
|
||||
uploadButton = Nahrať
|
||||
# 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
|
||||
@@ -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
|
||||
trailheadPromo = Existuje spôsob, ako chrániť vaše súkromie. Prihláste sa do Firefoxu.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Povratne informacije
|
||||
importingFile = Uvažanje …
|
||||
encryptingFile = Š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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
addFilesButton = Izberite datoteke za nalaganje
|
||||
trustWarningMessage = Pri deljenju občutljivih podatkov bodite prepričani, da zaupate prejemniku.
|
||||
uploadButton = Naloži
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Povlecite in spustite datoteke
|
||||
@@ -187,3 +187,37 @@ shareLinkButton = Deli povezavo
|
||||
shareMessage = Prenesite "{ $name }" s { -send-brand }om: enostavno in varno deljenje datotek
|
||||
trailheadPromo = Vašo zasebnost lahko zaščitite. Pridružite se Firefoxu.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Përshtypje
|
||||
importingFile = Po importohet…
|
||||
encryptingFile = Po fshehtë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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }h { $minutes }m
|
||||
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
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Ka një rrugë për të mbrojtur privatësinë tuaj. Bëhuni pjesë e Firefox-it.
|
||||
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,20 +1,19 @@
|
||||
# Firefox Send is a brand name and should not be localized.
|
||||
title = Firefox Send
|
||||
siteFeedback = Повратне информације
|
||||
importingFile = Увозим…
|
||||
encryptingFile = Шифрујем…
|
||||
decryptingFile = Дешифрујем…
|
||||
downloadCount =
|
||||
{ $num ->
|
||||
[one] преузимања
|
||||
[few] преузимања
|
||||
*[other] преузимања
|
||||
[one] { $num } преузимања
|
||||
[few] { $num } преузимања
|
||||
*[other] { $num } преузимања
|
||||
}
|
||||
timespanHours =
|
||||
{ $num ->
|
||||
[one] сата
|
||||
[few] сата
|
||||
*[other] сати
|
||||
[one] { $num } сата
|
||||
[few] { $num } сата
|
||||
*[other] { $num } сати
|
||||
}
|
||||
copiedUrl = Ископирано!
|
||||
unlockInputPlaceholder = Лозинка
|
||||
@@ -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"
|
||||
expiresDaysHoursMinutes = { $days }д { $hours }ч { $minutes }м
|
||||
addFilesButton = Изаберите датотеке за отпремање
|
||||
trustWarningMessage = Будите сигурни да верујете примаоцу пре дељења осетљивих података.
|
||||
uploadButton = Отпреми
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Превуците и пустите датотеке
|
||||
@@ -162,3 +162,35 @@ shareLinkButton = Поделите везу
|
||||
shareMessage = Преузмите „{ $name }“ помоћу програма { -send-brand }: једноставно и безбедно дељење датотека
|
||||
trailheadPromo = Постоји начин да заштитите вашу приватност. Придружите се Firefox-у.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Pangdeudeul
|
||||
importingFile = Ngimpor...
|
||||
encryptingFile = Ngénkripsi...
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }p { $hours }j { $minutes }m
|
||||
addFilesButton = Pilih koropak unjalkeuneun
|
||||
trustWarningMessage = Sing yakin yén anjeun percaya nalika ngabagi data sénsitip ka nu nampa.
|
||||
uploadButton = Unjal
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
dragAndDropFiles = Ésérkeun sarta ésotkeun koropak
|
||||
@@ -151,3 +151,31 @@ shareLinkButton = Bagikeun tutumbu
|
||||
shareMessage = Undeur "{ $name }" ku { -send-brand }: simpel, babagi koropak aman
|
||||
trailheadPromo = Aya cara pikeun ngamankeun privasi anjeun. Jabung jeung Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = Återkoppling
|
||||
importingFile = Importerar…
|
||||
encryptingFile = Krypterar…
|
||||
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"
|
||||
expiresDaysHoursMinutes = { $days }d { $hours }t { $minutes }m
|
||||
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
|
||||
# the first part of the string 'Drag and drop files or click to send up to 1GB'
|
||||
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
|
||||
trailheadPromo = Det finns ett sätt att skydda din integritet. Gå med i Firefox.
|
||||
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.
|
||||
title = Firefox Send
|
||||
siteFeedback = అభిప్రాయం
|
||||
importingFile = దిగుమతవుతోంది...
|
||||
encryptingFile = గుప్తీకరిస్తోంది...
|
||||
decryptingFile = వ్యక్తపరుస్తోంది...
|
||||
@@ -53,6 +52,9 @@ passwordSetError = ఈ సంకేతపదం పెట్టలేకపో
|
||||
-send-short-brand = పంపించు
|
||||
-firefox = Firefox
|
||||
-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 =
|
||||
{ $num ->
|
||||
[one] 1 నిమిషం
|
||||
@@ -111,7 +113,12 @@ accountBenefitTitle = ఒక { -firefox } ఖాతాని సృష్టి
|
||||
# $size is the size of the file, displayed using the fileSize message as format (e.g. "2.5MB")
|
||||
accountBenefitLargeFiles = { $size } పరిమాణం ఫైళ్ళ వరకు పంచుకోండి
|
||||
accountBenefitDownloadCount = ఫైళ్లను ఎక్కువ మందితో పంచుకోండి
|
||||
accountBenefitTimeLimit =
|
||||
{ $count ->
|
||||
*[other] లంకెలను { $count } రోజుల వరకు చేతనంగా ఉంచు
|
||||
}
|
||||
accountBenefitSync = ఏదైనా పరికరం నుండి పంచుకున్న ఫైళ్ళను నిర్వహించండి
|
||||
accountBenefitMoz = ఇతర { -mozilla } సేవల గురించి తెలుసుకోండి
|
||||
signOut = నిష్క్రమించు
|
||||
okButton = సరే
|
||||
downloadingTitle = దింపుకుంటోంది
|
||||
@@ -123,4 +130,7 @@ downloadFirefoxPromo = { -send-short-brand } క్రొత్త { -firefox }
|
||||
# the next line after the colon contains a file name
|
||||
shareLinkDescription = మీ ఫైలుకు లంకెను పంచుకోండి:
|
||||
shareLinkButton = లంకెను పంచుకోండి
|
||||
# $name is the name of the file
|
||||
shareMessage = “{ $name }”ని { -send-brand }తో దించుకోండి: తేలికైన, సురక్షితమైన ఫైలు పంచుకోలు సేవ
|
||||
trailheadPromo = మీ అంతరంగికతను కాపాడుకోడానికి ఓ మార్గం ఉంది. Firefoxతో చేరండి.
|
||||
learnMore = ఇంకా తెలుసుకోండి.
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user