Merge pull request #1034 from matrix-org/luke/ilag-i18n

Merge develop, add i18n for SetMxIdDialog
This commit is contained in:
Luke Barnard 2017-06-05 20:30:01 +01:00 committed by GitHub
commit ad74075346
80 changed files with 3958 additions and 593 deletions

View file

@ -5,5 +5,6 @@ install:
- npm install
- (cd node_modules/matrix-js-sdk && npm install)
script:
- npm run test
- ./.travis-test-riot.sh
# don't run the riot tests unless the react-sdk tests pass, otherwise
# the output is confusing.
- npm run test && ./.travis-test-riot.sh

View file

@ -1,3 +1,178 @@
Changes in [0.9.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.1) (2017-06-02)
===================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.0...v0.9.1)
* Update from Weblate.
[\#1012](https://github.com/matrix-org/matrix-react-sdk/pull/1012)
* typo, missing import and mis-casing
[\#1014](https://github.com/matrix-org/matrix-react-sdk/pull/1014)
* Update from Weblate.
[\#1010](https://github.com/matrix-org/matrix-react-sdk/pull/1010)
Changes in [0.9.0](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.0) (2017-06-02)
===================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.0-rc.2...v0.9.0)
* sync pt with pt_BR
[\#1009](https://github.com/matrix-org/matrix-react-sdk/pull/1009)
* Update from Weblate.
[\#1008](https://github.com/matrix-org/matrix-react-sdk/pull/1008)
* Update from Weblate.
[\#1003](https://github.com/matrix-org/matrix-react-sdk/pull/1003)
* allow hiding redactions, restoring old behaviour
[\#1004](https://github.com/matrix-org/matrix-react-sdk/pull/1004)
* Add missing translations
[\#1005](https://github.com/matrix-org/matrix-react-sdk/pull/1005)
Changes in [0.9.0-rc.2](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.0-rc.2) (2017-06-02)
=============================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.9.0-rc.1...v0.9.0-rc.2)
* Update from Weblate.
[\#1002](https://github.com/matrix-org/matrix-react-sdk/pull/1002)
* webrtc config electron
[\#850](https://github.com/matrix-org/matrix-react-sdk/pull/850)
* enable useCompactLayout user setting an add a class when it's enabled
[\#986](https://github.com/matrix-org/matrix-react-sdk/pull/986)
* Update from Weblate.
[\#987](https://github.com/matrix-org/matrix-react-sdk/pull/987)
* Translation fixes for everything but src/components
[\#990](https://github.com/matrix-org/matrix-react-sdk/pull/990)
* Fix tests
[\#1001](https://github.com/matrix-org/matrix-react-sdk/pull/1001)
* Fix tests for PR #989
[\#999](https://github.com/matrix-org/matrix-react-sdk/pull/999)
* Revert "Revert "add labels to language picker""
[\#1000](https://github.com/matrix-org/matrix-react-sdk/pull/1000)
* maybe fixxy [Electron] external thing?
[\#997](https://github.com/matrix-org/matrix-react-sdk/pull/997)
* travisci: Don't run the riot-web tests if the react-sdk tests fail
[\#992](https://github.com/matrix-org/matrix-react-sdk/pull/992)
* Support 12hr time on DateSeparator
[\#991](https://github.com/matrix-org/matrix-react-sdk/pull/991)
* Revert "add labels to language picker"
[\#994](https://github.com/matrix-org/matrix-react-sdk/pull/994)
* Call MatrixClient.clearStores on logout
[\#983](https://github.com/matrix-org/matrix-react-sdk/pull/983)
* Matthew/room avatar event
[\#988](https://github.com/matrix-org/matrix-react-sdk/pull/988)
* add labels to language picker
[\#989](https://github.com/matrix-org/matrix-react-sdk/pull/989)
* Update from Weblate.
[\#981](https://github.com/matrix-org/matrix-react-sdk/pull/981)
Changes in [0.9.0-rc.1](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.9.0-rc.1) (2017-06-01)
=============================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.8.9...v0.9.0-rc.1)
* Fix rare case where presence duration is undefined
[\#982](https://github.com/matrix-org/matrix-react-sdk/pull/982)
* add concept of platform handling loudNotifications (bings/pings/whatHaveYou)
[\#985](https://github.com/matrix-org/matrix-react-sdk/pull/985)
* Fixes to i18n code
[\#984](https://github.com/matrix-org/matrix-react-sdk/pull/984)
* Update from Weblate.
[\#978](https://github.com/matrix-org/matrix-react-sdk/pull/978)
* Add partial support for RTL languages
[\#955](https://github.com/matrix-org/matrix-react-sdk/pull/955)
* Added two strings to translate
[\#975](https://github.com/matrix-org/matrix-react-sdk/pull/975)
* Update from Weblate.
[\#976](https://github.com/matrix-org/matrix-react-sdk/pull/976)
* Update from Weblate.
[\#974](https://github.com/matrix-org/matrix-react-sdk/pull/974)
* Initial Electron Settings - for Auto Launch
[\#920](https://github.com/matrix-org/matrix-react-sdk/pull/920)
* Fix missing string in the room settings
[\#973](https://github.com/matrix-org/matrix-react-sdk/pull/973)
* fix error in i18n string
[\#972](https://github.com/matrix-org/matrix-react-sdk/pull/972)
* Update from Weblate.
[\#970](https://github.com/matrix-org/matrix-react-sdk/pull/970)
* Support 12hr time in full date
[\#971](https://github.com/matrix-org/matrix-react-sdk/pull/971)
* Add _tJsx()
[\#968](https://github.com/matrix-org/matrix-react-sdk/pull/968)
* Update from Weblate.
[\#966](https://github.com/matrix-org/matrix-react-sdk/pull/966)
* Remove space between time and AM/PM
[\#969](https://github.com/matrix-org/matrix-react-sdk/pull/969)
* Piwik Analytics
[\#948](https://github.com/matrix-org/matrix-react-sdk/pull/948)
* Update from Weblate.
[\#965](https://github.com/matrix-org/matrix-react-sdk/pull/965)
* Improve ChatInviteDialog perf by ditching fuse, using indexOf and
lastActiveTs()
[\#960](https://github.com/matrix-org/matrix-react-sdk/pull/960)
* Say "X removed the room name" instead of showing nothing
[\#958](https://github.com/matrix-org/matrix-react-sdk/pull/958)
* roomview/roomheader fixes
[\#959](https://github.com/matrix-org/matrix-react-sdk/pull/959)
* Update from Weblate.
[\#953](https://github.com/matrix-org/matrix-react-sdk/pull/953)
* fix i18n in a situation where navigator.languages=[]
[\#956](https://github.com/matrix-org/matrix-react-sdk/pull/956)
* `t_` -> `_t` fix typo
[\#957](https://github.com/matrix-org/matrix-react-sdk/pull/957)
* Change redact -> remove for clarity
[\#831](https://github.com/matrix-org/matrix-react-sdk/pull/831)
* Update from Weblate.
[\#950](https://github.com/matrix-org/matrix-react-sdk/pull/950)
* fix mis-linting - missed it in code review :(
[\#952](https://github.com/matrix-org/matrix-react-sdk/pull/952)
* i18n fixes
[\#951](https://github.com/matrix-org/matrix-react-sdk/pull/951)
* Message Forwarding
[\#812](https://github.com/matrix-org/matrix-react-sdk/pull/812)
* don't focus_composer on window focus
[\#944](https://github.com/matrix-org/matrix-react-sdk/pull/944)
* Fix vector-im/riot-web#4042
[\#947](https://github.com/matrix-org/matrix-react-sdk/pull/947)
* import _t, drop two unused imports
[\#946](https://github.com/matrix-org/matrix-react-sdk/pull/946)
* Fix punctuation in TextForEvent to be i18n'd consistently
[\#945](https://github.com/matrix-org/matrix-react-sdk/pull/945)
* actually wire up alwaysShowTimestamps
[\#940](https://github.com/matrix-org/matrix-react-sdk/pull/940)
* Update from Weblate.
[\#943](https://github.com/matrix-org/matrix-react-sdk/pull/943)
* Update from Weblate.
[\#942](https://github.com/matrix-org/matrix-react-sdk/pull/942)
* Update from Weblate.
[\#941](https://github.com/matrix-org/matrix-react-sdk/pull/941)
* Update from Weblate.
[\#938](https://github.com/matrix-org/matrix-react-sdk/pull/938)
* Fix PM being AM
[\#939](https://github.com/matrix-org/matrix-react-sdk/pull/939)
* pass call state through dispatcher, for poor electron
[\#918](https://github.com/matrix-org/matrix-react-sdk/pull/918)
* Translations!
[\#934](https://github.com/matrix-org/matrix-react-sdk/pull/934)
* Remove suffix and prefix from login input username
[\#906](https://github.com/matrix-org/matrix-react-sdk/pull/906)
* Kierangould/12hourtimestamp
[\#903](https://github.com/matrix-org/matrix-react-sdk/pull/903)
* Don't include src in the test resolve root
[\#931](https://github.com/matrix-org/matrix-react-sdk/pull/931)
* Make the linked versions open a new tab, turt2live complained :P
[\#910](https://github.com/matrix-org/matrix-react-sdk/pull/910)
* Fix lint errors in SlashCommands
[\#919](https://github.com/matrix-org/matrix-react-sdk/pull/919)
* autoFocus input box
[\#911](https://github.com/matrix-org/matrix-react-sdk/pull/911)
* Make travis test against riot-web new-guest-access
[\#917](https://github.com/matrix-org/matrix-react-sdk/pull/917)
* Add right-branch logic to travis test script
[\#916](https://github.com/matrix-org/matrix-react-sdk/pull/916)
* Group e2e keys into blocks of 4 characters
[\#914](https://github.com/matrix-org/matrix-react-sdk/pull/914)
* Factor out DeviceVerifyDialog
[\#913](https://github.com/matrix-org/matrix-react-sdk/pull/913)
* Fix 'missing page_type' error
[\#909](https://github.com/matrix-org/matrix-react-sdk/pull/909)
* code style update
[\#904](https://github.com/matrix-org/matrix-react-sdk/pull/904)
Changes in [0.8.9](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.8.9) (2017-05-22)
===================================================================================================
[Full Changelog](https://github.com/matrix-org/matrix-react-sdk/compare/v0.8.9-rc.1...v0.8.9)

View file

@ -177,6 +177,11 @@ module.exports = function (config) {
],
},
devtool: 'inline-source-map',
externals: {
// Don't try to bundle electron: leave it as a commonjs dependency
// (the 'commonjs' here means it will output a 'require')
"electron": "commonjs electron",
},
},
webpackMiddleware: {

View file

@ -1,6 +1,6 @@
{
"name": "matrix-react-sdk",
"version": "0.8.9",
"version": "0.9.1",
"description": "SDK for matrix.org using React",
"author": "matrix.org",
"repository": {
@ -64,7 +64,7 @@
"isomorphic-fetch": "^2.2.1",
"linkifyjs": "^2.1.3",
"lodash": "^4.13.1",
"matrix-js-sdk": "matrix-org/matrix-js-sdk#develop",
"matrix-js-sdk": "0.7.10",
"optimist": "^0.6.1",
"prop-types": "^15.5.8",
"q": "^1.4.1",

View file

@ -178,12 +178,12 @@ sub read_src_strings {
$src =~ s/"\s*\+\s*"//g;
$file =~ s/^.*\/src/src/;
while ($src =~ /_t\(\s*'(.*?[^\\])'/sg) {
while ($src =~ /_t(?:Jsx)?\(\s*'(.*?[^\\])'/sg) {
my $s = $1;
$s =~ s/\\'/'/g;
push @$strings, [$s, $file];
}
while ($src =~ /_t\(\s*"(.*?[^\\])"/sg) {
while ($src =~ /_t(?:Jsx)?\(\s*"(.*?[^\\])"/sg) {
push @$strings, [$1, $file];
}
}

View file

@ -48,6 +48,19 @@ Guests can't use labs features. Please register.
A new password must be entered.
Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.
Guests cannot join this room even if explicitly invited.
Guest users can't invite users. Please register to invite.
This room is inaccessible to guests. You may be able to join if you register.
delete the alias.
remove %(name)s from the directory.
Conference call failed.
Conference calling is in development and may not be reliable.
Guest users can't create new rooms. Please register to create room and start a chat.
Server may be unavailable, overloaded, or you hit a bug.
Server unavailable, overloaded, or something else went wrong.
You are already in a call.
You cannot place VoIP calls in this browser.
You cannot place a call with yourself.
Your email address does not appear to be associated with a Matrix ID on this Homeserver.
EOT
)];
}

View file

@ -19,8 +19,10 @@ import MatrixClientPeg from './MatrixClientPeg';
import PlatformPeg from './PlatformPeg';
import SdkConfig from './SdkConfig';
function redact(str) {
return str.replace(/#\/(room|user)\/(.+)/, "#/$1/<redacted>");
function getRedactedUrl() {
const base = window.location.pathname.split('/').slice(-2).join('/');
const redactedHash = window.location.hash.replace(/#\/(room|user)\/(.+)/, "#/$1/<redacted>");
return base + redactedHash;
}
const customVariables = {
@ -108,7 +110,7 @@ class Analytics {
this.firstPage = false;
return;
}
this._paq.push(['setCustomUrl', redact(window.location.href)]);
this._paq.push(['setCustomUrl', getRedactedUrl()]);
this._paq.push(['trackPageView']);
}

View file

@ -71,11 +71,14 @@ export default class BasePlatform {
displayNotification(title: string, msg: string, avatarUrl: string, room: Object) {
}
loudNotification(ev: Event, room: Object) {
}
/**
* Returns a promise that resolves to a string representing
* the current version of the application.
*/
getAppVersion() {
getAppVersion(): Promise<string> {
throw new Error("getAppVersion not implemented!");
}
@ -84,10 +87,12 @@ export default class BasePlatform {
* with getUserMedia, return a string explaining why not.
* Otherwise, return null.
*/
screenCaptureErrorString() {
screenCaptureErrorString(): string {
return "Not implemented";
}
isElectron(): boolean { return false; }
/**
* Restarts the application, without neccessarily reloading
* any application code

View file

@ -226,7 +226,7 @@ function _onAction(payload) {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createDialog(ErrorDialog, {
title: _t('Existing Call'),
description: _t('You are already in a call') + '.',
description: _t('You are already in a call.'),
});
return; // don't allow >1 call to be placed.
}
@ -236,7 +236,7 @@ function _onAction(payload) {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createDialog(ErrorDialog, {
title: _t('VoIP is unsupported'),
description: _t('You cannot place VoIP calls in this browser') + '.',
description: _t('You cannot place VoIP calls in this browser.'),
});
return;
}
@ -251,7 +251,7 @@ function _onAction(payload) {
if (members.length <= 1) {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createDialog(ErrorDialog, {
description: _t('You cannot place a call with yourself') + '.',
description: _t('You cannot place a call with yourself.'),
});
return;
}
@ -284,7 +284,7 @@ function _onAction(payload) {
const ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createDialog(ErrorDialog, {
title: _t('VoIP is unsupported'),
description: _t('You cannot place VoIP calls in this browser') + '.',
description: _t('You cannot place VoIP calls in this browser.'),
});
}
else if (MatrixClientPeg.get().isRoomEncrypted(payload.room_id)) {
@ -303,7 +303,7 @@ function _onAction(payload) {
var QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
Modal.createDialog(QuestionDialog, {
title: _t('Warning!'),
description: _t('Conference calling is in development and may not be reliable') + '.',
description: _t('Conference calling is in development and may not be reliable.'),
onFinished: confirm=>{
if (confirm) {
ConferenceHandler.createNewMatrixCall(
@ -315,7 +315,7 @@ function _onAction(payload) {
console.error("Conference call failed: " + err);
Modal.createDialog(ErrorDialog, {
title: _t('Failed to set up conference call'),
description: _t('Conference call failed') + '. ' + ((err && err.message) ? err.message : ''),
description: _t('Conference call failed.') + ' ' + ((err && err.message) ? err.message : ''),
});
});
}

65
src/CallMediaHandler.js Normal file
View file

@ -0,0 +1,65 @@
/*
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import UserSettingsStore from './UserSettingsStore';
import * as Matrix from 'matrix-js-sdk';
import q from 'q';
export default {
getDevices: function() {
// Only needed for Electron atm, though should work in modern browsers
// once permission has been granted to the webapp
return navigator.mediaDevices.enumerateDevices().then(function(devices) {
const audioIn = [];
const videoIn = [];
if (devices.some((device) => !device.label)) return false;
devices.forEach((device) => {
switch (device.kind) {
case 'audioinput': audioIn.push(device); break;
case 'videoinput': videoIn.push(device); break;
}
});
// console.log("Loaded WebRTC Devices", mediaDevices);
return {
audioinput: audioIn,
videoinput: videoIn,
};
}, (error) => { console.log('Unable to refresh WebRTC Devices: ', error); });
},
loadDevices: function() {
// this.getDevices().then((devices) => {
const localSettings = UserSettingsStore.getLocalSettings();
// // if deviceId is not found, automatic fallback is in spec
// // recall previously stored inputs if any
Matrix.setMatrixCallAudioInput(localSettings['webrtc_audioinput']);
Matrix.setMatrixCallVideoInput(localSettings['webrtc_videoinput']);
// });
},
setAudioInput: function(deviceId) {
UserSettingsStore.setLocalSetting('webrtc_audioinput', deviceId);
Matrix.setMatrixCallAudioInput(deviceId);
},
setVideoInput: function(deviceId) {
UserSettingsStore.setLocalSetting('webrtc_videoinput', deviceId);
Matrix.setMatrixCallVideoInput(deviceId);
},
};

View file

@ -360,7 +360,7 @@ export function bodyToHtml(content, highlights, opts) {
'mx_EventTile_bigEmoji': emojiBody,
'markdown-body': isHtml,
});
return <span className={className} dangerouslySetInnerHTML={{ __html: safeBody }} />;
return <span className={className} dangerouslySetInnerHTML={{ __html: safeBody }} dir="auto" />;
}
export function emojifyText(text) {

View file

@ -240,7 +240,9 @@ function _handleRestoreFailure(e) {
let msg = e.message;
if (msg == "OLM.BAD_LEGACY_ACCOUNT_PICKLE") {
msg = _t(
'You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.'
'You need to log back in to generate end-to-end encryption keys'
+ ' for this device and submit the public key to your homeserver.'
+ ' This is a once off; sorry for the inconvenience.',
);
_clearLocalStorage();

View file

@ -16,6 +16,7 @@ limitations under the License.
*/
import Matrix from "matrix-js-sdk";
import { _t } from "./languageHandler";
import q from 'q';
import url from 'url';
@ -97,9 +98,9 @@ export default class Login {
};
}, (error) => {
if (error.httpStatus === 403) {
error.friendlyText = "Guest access is disabled on this Home Server.";
error.friendlyText = _t("Guest access is disabled on this Home Server.");
} else {
error.friendlyText = "Failed to register as guest: " + error.data;
error.friendlyText = _t("Failed to register as guest:") + ' ' + error.data;
}
throw error;
});
@ -158,12 +159,12 @@ export default class Login {
}, function(error) {
if (error.httpStatus == 400 && loginParams.medium) {
error.friendlyText = (
'This Home Server does not support login using email address.'
_t('This Home Server does not support login using email address.')
);
}
else if (error.httpStatus === 403) {
error.friendlyText = (
'Incorrect username and/or password.'
_t('Incorrect username and/or password.')
);
if (self._fallbackHsUrl) {
var fbClient = Matrix.createClient({
@ -187,7 +188,7 @@ export default class Login {
}
else {
error.friendlyText = (
'There was a problem logging in. (HTTP ' + error.httpStatus + ")"
_t("There was a problem logging in.") + ' (HTTP ' + error.httpStatus + ")"
);
}
throw error;

View file

@ -250,6 +250,7 @@ const Notifier = {
this._displayPopupNotification(ev, room);
}
if (actions.tweaks.sound && this.isAudioEnabled()) {
PlatformPeg.get().loudNotification(ev, room);
this._playAudioNotification(ev, room);
}
}

View file

@ -82,7 +82,7 @@ class PasswordReset {
err.message = _t('Failed to verify email address: make sure you clicked the link in the email');
}
else if (err.httpStatus === 404) {
err.message = _t('Your email address does not appear to be associated with a Matrix ID on this Homeserver') + '.';
err.message = _t('Your email address does not appear to be associated with a Matrix ID on this Homeserver.');
}
else if (err.httpStatus) {
err.message += ` (Status ${err.httpStatus})`;

View file

@ -23,22 +23,28 @@ class Skinner {
if (this.components === null) {
throw new Error(
"Attempted to get a component before a skin has been loaded."+
"This is probably because either:"+
" This is probably because either:"+
" a) Your app has not called sdk.loadSkin(), or"+
" b) A component has called getComponent at the root level"
" b) A component has called getComponent at the root level",
);
}
var comp = this.components[name];
if (comp) {
return comp;
}
let comp = this.components[name];
// XXX: Temporarily also try 'views.' as we're currently
// leaving the 'views.' off views.
var comp = this.components['views.'+name];
if (comp) {
return comp;
if (!comp) {
comp = this.components['views.'+name];
}
throw new Error("No such component: "+name);
if (!comp) {
throw new Error("No such component: "+name);
}
// components have to be functions.
const validType = typeof comp === 'function';
if (!validType) {
throw new Error(`Not a valid component: ${name}.`);
}
return comp;
}
load(skinObject) {

View file

@ -186,7 +186,7 @@ const commands = {
if (targetRoomId) { break; }
}
if (!targetRoomId) {
return reject("Unrecognised room alias: " + roomAlias);
return reject(_t("Unrecognised room alias:") + ' ' + roomAlias);
}
}
}
@ -303,14 +303,14 @@ const commands = {
const device = MatrixClientPeg.get().getStoredDevice(userId, deviceId);
if (!device) {
return reject(`Unknown (user, device) pair: (${userId}, ${deviceId})`);
return reject(_t(`Unknown (user, device) pair:`) + ` (${userId}, ${deviceId})`);
}
if (device.isVerified()) {
if (device.getFingerprint() === fingerprint) {
return reject(`Device already verified!`);
return reject(_t(`Device already verified!`));
} else {
return reject(`WARNING: Device already verified, but keys do NOT MATCH!`);
return reject(_t(`WARNING: Device already verified, but keys do NOT MATCH!`));
}
}
@ -322,12 +322,15 @@ const commands = {
// Tell the user we verified everything!
const QuestionDialog = sdk.getComponent("dialogs.QuestionDialog");
Modal.createDialog(QuestionDialog, {
title: "Verified key",
title: _t("Verified key"),
description: (
<div>
<p>
The signing key you provided matches the signing key you received
from { userId }'s device { deviceId }. Device marked as verified.
{
_t("The signing key you provided matches the signing key you received " +
"from %(userId)s's device %(deviceId)s. Device marked as verified.",
{userId: userId, deviceId: deviceId})
}
</p>
</div>
),
@ -336,9 +339,13 @@ const commands = {
return success();
} else {
return reject(`WARNING: KEY VERIFICATION FAILED! The signing key for ${userId} and device
${deviceId} is "${device.getFingerprint()}" which does not match the provided key
"${fingerprint}". This could mean your communications are being intercepted!`);
const fprint = device.getFingerprint();
return reject(
_t('WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device' +
' %(deviceId)s is "%(fprint)s" which does not match the provided key' +
' "%(fingerprint)s". This could mean your communications are being intercepted!',
{deviceId: deviceId, fprint: fprint, userId: userId, fingerprint: fingerprint})
);
}
}
}
@ -383,7 +390,7 @@ module.exports = {
if (commands[cmd]) {
return commands[cmd].run(roomId, args);
} else {
return reject("Unrecognised command: " + input);
return reject(_t("Unrecognised command:") + ' ' + input);
}
}
return null; // not a command

View file

@ -17,24 +17,26 @@ limitations under the License.
import q from 'q';
import MatrixClientPeg from './MatrixClientPeg';
import Notifier from './Notifier';
import { _t } from './languageHandler';
/*
* TODO: Make things use this. This is all WIP - see UserSettings.js for usage.
*/
/*
* TODO: Find a way to translate the names of LABS_FEATURES. In other words, guarantee that languages were already loaded before building this array.
*/
export default {
LABS_FEATURES: [
{
name: "New Composer & Autocomplete",
name: "-",
id: 'rich_text_editor',
default: false,
},
],
// horrible but it works. The locality makes this somewhat more palatable.
doTranslations: function() {
this.LABS_FEATURES[0].name = _t("New Composer & Autocomplete");
},
loadProfileInfo: function() {
const cli = MatrixClientPeg.get();
return cli.getProfileInfo(cli.credentials.userId);

View file

@ -166,11 +166,11 @@ export default React.createClass({
</div>
</div>
<div className='mx_Dialog_buttons'>
<input className='mx_Dialog_primary' type='submit' value='Export'
<input className='mx_Dialog_primary' type='submit' value={_t('Export')}
disabled={disableForm}
/>
<button onClick={this._onCancelClick} disabled={disableForm}>
Cancel
{_t("Cancel")}
</button>
</div>
</form>

View file

@ -164,11 +164,11 @@ export default React.createClass({
</div>
</div>
<div className='mx_Dialog_buttons'>
<input className='mx_Dialog_primary' type='submit' value='Import'
<input className='mx_Dialog_primary' type='submit' value={_t('Import')}
disabled={!this.state.enableSubmit || disableForm}
/>
<button onClick={this._onCancelClick} disabled={disableForm}>
Cancel
{_t("Cancel")}
</button>
</div>
</form>

View file

@ -1,3 +1,20 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import type {Completion, SelectionRange} from './Autocompleter';

View file

@ -1,3 +1,19 @@
/*
Copyright 2016 Aviral Dasgupta
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// @flow
import type {Component} from 'react';

View file

@ -1,3 +1,20 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { _t } from '../languageHandler';
import AutocompleteProvider from './AutocompleteProvider';

View file

@ -1,3 +1,19 @@
/*
Copyright 2016 Aviral Dasgupta
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import ReactDOM from 'react-dom';
import classNames from 'classnames';

View file

@ -1,4 +1,22 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { _t } from '../languageHandler';
import AutocompleteProvider from './AutocompleteProvider';
import 'whatwg-fetch';
@ -75,7 +93,7 @@ export default class DuckDuckGoProvider extends AutocompleteProvider {
}
getName() {
return '🔍 Results from DuckDuckGo';
return '🔍 ' + _t('Results from DuckDuckGo');
}
static getInstance(): DuckDuckGoProvider {

View file

@ -1,3 +1,20 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { _t } from '../languageHandler';
import AutocompleteProvider from './AutocompleteProvider';

View file

@ -1,3 +1,20 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { _t } from '../languageHandler';
import AutocompleteProvider from './AutocompleteProvider';

View file

@ -1,3 +1,20 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import { _t } from '../languageHandler';
import AutocompleteProvider from './AutocompleteProvider';

View file

@ -18,9 +18,11 @@ limitations under the License.
import * as Matrix from 'matrix-js-sdk';
import React from 'react';
import UserSettingsStore from '../../UserSettingsStore';
import KeyCode from '../../KeyCode';
import Notifier from '../../Notifier';
import PageTypes from '../../PageTypes';
import CallMediaHandler from '../../CallMediaHandler';
import sdk from '../../index';
import dis from '../../dispatcher';
import sessionStore from '../../stores/SessionStore';
@ -68,6 +70,13 @@ export default React.createClass({
};
},
getInitialState: function() {
return {
// use compact timeline view
useCompactLayout: UserSettingsStore.getSyncedSetting('useCompactLayout'),
};
},
componentWillMount: function() {
// stash the MatrixClient in case we log out before we are unmounted
this._matrixClient = this.props.matrixClient;
@ -76,6 +85,8 @@ export default React.createClass({
// RoomView.getScrollState()
this._scrollStateMap = {};
CallMediaHandler.loadDevices();
document.addEventListener('keydown', this._onKeyDown);
this._sessionStore = sessionStore;
@ -83,10 +94,13 @@ export default React.createClass({
this._setStateFromSessionStore,
);
this._setStateFromSessionStore();
this._matrixClient.on("accountData", this.onAccountData);
},
componentWillUnmount: function() {
document.removeEventListener('keydown', this._onKeyDown);
this._matrixClient.removeListener("accountData", this.onAccountData);
if (this._sessionStoreToken) {
this._sessionStoreToken.remove();
}
@ -119,6 +133,14 @@ export default React.createClass({
});
},
onAccountData: function(event) {
if (event.getType() === "im.vector.web.settings") {
this.setState({
useCompactLayout: event.getContent().useCompactLayout,
});
}
},
_onKeyDown: function(ev) {
/*
// Remove this for now as ctrl+alt = alt-gr so this breaks keyboards which rely on alt-gr for numbers
@ -279,6 +301,9 @@ export default React.createClass({
if (topBar) {
bodyClasses += ' mx_MatrixChat_toolbarShowing';
}
if (this.state.useCompactLayout) {
bodyClasses += ' mx_MatrixChat_useCompactLayout';
}
return (
<div className='mx_MatrixChat_wrapper'>

View file

@ -41,7 +41,7 @@ import PageTypes from '../../PageTypes';
import createRoom from "../../createRoom";
import * as UDEHandler from '../../UnknownDeviceErrorHandler';
import { _t } from '../../languageHandler';
import { _t, getCurrentLanguage } from '../../languageHandler';
module.exports = React.createClass({
displayName: 'MatrixChat',
@ -403,7 +403,7 @@ module.exports = React.createClass({
}, (err) => {
modal.close();
Modal.createDialog(ErrorDialog, {
title: _t('Failed to reject invitation'),
title: _t('Failed to reject invitation'),
description: err.toString(),
});
});
@ -597,39 +597,44 @@ module.exports = React.createClass({
// switch view to the given room
//
// @param {Object} room_info Object containing data about the room to be joined
// @param {string=} room_info.room_id ID of the room to join. One of room_id or room_alias must be given.
// @param {string=} room_info.room_alias Alias of the room to join. One of room_id or room_alias must be given.
// @param {boolean=} room_info.auto_join If true, automatically attempt to join the room if not already a member.
// @param {boolean=} room_info.show_settings Makes RoomView show the room settings dialog.
// @param {string=} room_info.event_id ID of the event in this room to show: this will cause a switch to the
// @param {Object} roomInfo Object containing data about the room to be joined
// @param {string=} roomInfo.room_id ID of the room to join. One of room_id or room_alias must be given.
// @param {string=} roomInfo.room_alias Alias of the room to join. One of room_id or room_alias must be given.
// @param {boolean=} roomInfo.auto_join If true, automatically attempt to join the room if not already a member.
// @param {boolean=} roomInfo.show_settings Makes RoomView show the room settings dialog.
// @param {string=} roomInfo.event_id ID of the event in this room to show: this will cause a switch to the
// context of that particular event.
// @param {Object=} room_info.third_party_invite Object containing data about the third party
// @param {Object=} roomInfo.third_party_invite Object containing data about the third party
// we received to join the room, if any.
// @param {string=} room_info.third_party_invite.inviteSignUrl 3pid invite sign URL
// @param {string=} room_info.third_party_invite.invitedEmail The email address the invite was sent to
// @param {Object=} room_info.oob_data Object of additional data about the room
// @param {string=} roomInfo.third_party_invite.inviteSignUrl 3pid invite sign URL
// @param {string=} roomInfo.third_party_invite.invitedEmail The email address the invite was sent to
// @param {Object=} roomInfo.oob_data Object of additional data about the room
// that has been passed out-of-band (eg.
// room name and avatar from an invite email)
_viewRoom: function(room_info) {
_viewRoom: function(roomInfo) {
this.focusComposer = true;
const newState = {
initialEventId: room_info.event_id,
highlightedEventId: room_info.event_id,
initialEventId: roomInfo.event_id,
highlightedEventId: roomInfo.event_id,
initialEventPixelOffset: undefined,
page_type: PageTypes.RoomView,
thirdPartyInvite: room_info.third_party_invite,
roomOobData: room_info.oob_data,
autoJoin: room_info.auto_join,
thirdPartyInvite: roomInfo.third_party_invite,
roomOobData: roomInfo.oob_data,
currentRoomAlias: roomInfo.room_alias,
autoJoin: roomInfo.auto_join,
};
if (!roomInfo.room_alias) {
newState.currentRoomId = roomInfo.room_id;
}
// if we aren't given an explicit event id, look for one in the
// scrollStateMap.
//
// TODO: do this in RoomView rather than here
if (!room_info.event_id && this.refs.loggedInView) {
const scrollState = this.refs.loggedInView.getScrollStateForRoom(room_info.room_id);
if (!roomInfo.event_id && this.refs.loggedInView) {
const scrollState = this.refs.loggedInView.getScrollStateForRoom(roomInfo.room_id);
if (scrollState) {
newState.initialEventId = scrollState.focussedEvent;
newState.initialEventPixelOffset = scrollState.pixelOffset;
@ -641,15 +646,15 @@ module.exports = React.createClass({
let waitFor = q(null);
if (!this.firstSyncComplete) {
if (!this.firstSyncPromise) {
console.warn('Cannot view a room before first sync. room_id:', room_info.room_id);
console.warn('Cannot view a room before first sync. room_id:', roomInfo.room_id);
return;
}
waitFor = this.firstSyncPromise.promise;
}
waitFor.done(() => {
let presentedId = room_info.room_alias || room_info.room_id;
const room = MatrixClientPeg.get().getRoom(room_info.room_id);
let presentedId = roomInfo.room_alias || roomInfo.room_id;
const room = MatrixClientPeg.get().getRoom(roomInfo.room_id);
if (room) {
const theAlias = Rooms.getDisplayAliasForRoom(room);
if (theAlias) presentedId = theAlias;
@ -661,8 +666,8 @@ module.exports = React.createClass({
}
}
if (room_info.event_id) {
presentedId += "/" + room_info.event_id;
if (roomInfo.event_id) {
presentedId += "/" + roomInfo.event_id;
}
this.notifyNewScreen('room/' + presentedId);
newState.ready = true;
@ -707,7 +712,7 @@ module.exports = React.createClass({
title: _t('Start a chat'),
description: _t("Who would you like to communicate with?"),
placeholder: _t("Email, name or matrix ID"),
button: _t("Start Chat")
button: _t("Start Chat"),
});
},
@ -803,8 +808,12 @@ module.exports = React.createClass({
const roomToLeave = MatrixClientPeg.get().getRoom(roomId);
Modal.createDialog(QuestionDialog, {
title: "Leave room",
description: <span>Are you sure you want to leave the room <i>{roomToLeave.name}</i>?</span>,
title: _t("Leave room"),
description: (
<span>
{_t("Are you sure you want to leave the room '%(roomName)s'?", {roomName: roomToLeave.name})}
</span>
),
onFinished: (shouldLeave) => {
if (shouldLeave) {
const d = MatrixClientPeg.get().leave(roomId);
@ -917,7 +926,7 @@ module.exports = React.createClass({
MatrixClientPeg.get().getUserIdLocalpart(),
);
if (this.props.config.welcomeUserId) {
if (this.props.config.welcomeUserId && getCurrentLanguage().startsWith("en")) {
createRoom({
dmUserId: this.props.config.welcomeUserId,
// Only view the welcome user if we're NOT looking at a room

View file

@ -90,6 +90,9 @@ module.exports = React.createClass({
// show timestamps always
alwaysShowTimestamps: React.PropTypes.bool,
// hide redacted events as per old behaviour
hideRedactions: React.PropTypes.bool,
},
componentWillMount: function() {
@ -316,7 +319,7 @@ module.exports = React.createClass({
const key = "membereventlistsummary-" + (prevEvent ? mxEv.getId() : "initial");
if (this._wantsDateSeparator(prevEvent, mxEv.getDate())) {
let dateSeparator = <li key={ts1+'~'}><DateSeparator key={ts1+'~'} ts={ts1}/></li>;
let dateSeparator = <li key={ts1+'~'}><DateSeparator key={ts1+'~'} ts={ts1} showTwelveHour={this.props.isTwelveHour}/></li>;
ret.push(dateSeparator);
}
@ -458,11 +461,13 @@ module.exports = React.createClass({
// do we need a date separator since the last event?
if (this._wantsDateSeparator(prevEvent, eventDate)) {
var dateSeparator = <li key={ts1}><DateSeparator key={ts1} ts={ts1}/></li>;
var dateSeparator = <li key={ts1}><DateSeparator key={ts1} ts={ts1} showTwelveHour={this.props.isTwelveHour}/></li>;
ret.push(dateSeparator);
continuation = false;
}
if (mxEv.isRedacted() && this.props.hideRedactions) return ret;
var eventId = mxEv.getId();
var highlight = (eventId == this.props.highlightedEventId);

View file

@ -131,6 +131,8 @@ var TimelinePanel = React.createClass({
}
}
const syncedSettings = UserSettingsStore.getSyncedSettings();
return {
events: [],
timelineLoading: true, // track whether our room timeline is loading
@ -175,10 +177,13 @@ var TimelinePanel = React.createClass({
clientSyncState: MatrixClientPeg.get().getSyncState(),
// should the event tiles have twelve hour times
isTwelveHour: UserSettingsStore.getSyncedSetting('showTwelveHourTimestamps'),
isTwelveHour: syncedSettings.showTwelveHourTimestamps,
// always show timestamps on event tiles?
alwaysShowTimestamps: UserSettingsStore.getSyncedSetting('alwaysShowTimestamps'),
alwaysShowTimestamps: syncedSettings.alwaysShowTimestamps,
// hide redacted events as per old behaviour
hideRedactions: syncedSettings.hideRedactions,
};
},
@ -1113,26 +1118,27 @@ var TimelinePanel = React.createClass({
);
return (
<MessagePanel ref="messagePanel"
hidden={ this.props.hidden }
backPaginating={ this.state.backPaginating }
forwardPaginating={ forwardPaginating }
events={ this.state.events }
highlightedEventId={ this.props.highlightedEventId }
readMarkerEventId={ this.state.readMarkerEventId }
readMarkerVisible={ this.state.readMarkerVisible }
suppressFirstDateSeparator={ this.state.canBackPaginate }
showUrlPreview = { this.props.showUrlPreview }
manageReadReceipts = { this.props.manageReadReceipts }
ourUserId={ MatrixClientPeg.get().credentials.userId }
stickyBottom={ stickyBottom }
onScroll={ this.onMessageListScroll }
onFillRequest={ this.onMessageListFillRequest }
onUnfillRequest={ this.onMessageListUnfillRequest }
opacity={ this.props.opacity }
isTwelveHour={ this.state.isTwelveHour }
alwaysShowTimestamps={ this.state.alwaysShowTimestamps }
className={ this.props.className }
tileShape={ this.props.tileShape }
hidden={ this.props.hidden }
hideRedactions={ this.state.hideRedactions }
backPaginating={ this.state.backPaginating }
forwardPaginating={ forwardPaginating }
events={ this.state.events }
highlightedEventId={ this.props.highlightedEventId }
readMarkerEventId={ this.state.readMarkerEventId }
readMarkerVisible={ this.state.readMarkerVisible }
suppressFirstDateSeparator={ this.state.canBackPaginate }
showUrlPreview = { this.props.showUrlPreview }
manageReadReceipts = { this.props.manageReadReceipts }
ourUserId={ MatrixClientPeg.get().credentials.userId }
stickyBottom={ stickyBottom }
onScroll={ this.onMessageListScroll }
onFillRequest={ this.onMessageListFillRequest }
onUnfillRequest={ this.onMessageListUnfillRequest }
opacity={ this.props.opacity }
isTwelveHour={ this.state.isTwelveHour }
alwaysShowTimestamps={ this.state.alwaysShowTimestamps }
className={ this.props.className }
tileShape={ this.props.tileShape }
/>
);
},

View file

@ -24,6 +24,7 @@ const dis = require("../../dispatcher");
const q = require('q');
const packageJson = require('../../../package.json');
const UserSettingsStore = require('../../UserSettingsStore');
const CallMediaHandler = require('../../CallMediaHandler');
const GeminiScrollbar = require('react-gemini-scrollbar');
const Email = require('../../email');
const AddThreepid = require('../../AddThreepid');
@ -79,11 +80,15 @@ const SETTINGS_LABELS = [
id: 'showTwelveHourTimestamps',
label: 'Show timestamps in 12 hour format (e.g. 2:30pm)',
},
/*
{
id: 'useCompactLayout',
label: 'Use compact timeline layout',
},
{
id: 'hideRedactions',
label: 'Hide removed messages',
},
/*
{
id: 'useFixedWidthFont',
label: 'Use fixed width font',
@ -176,6 +181,7 @@ module.exports = React.createClass({
email_add_pending: false,
vectorVersion: undefined,
rejectingInvites: false,
mediaDevices: null,
};
},
@ -196,6 +202,8 @@ module.exports = React.createClass({
});
}
this._refreshMediaDevices();
// Bulk rejecting invites:
// /sync won't have had time to return when UserSettings re-renders from state changes, so getRooms()
// will still return rooms with invites. To get around this, add a listener for
@ -217,6 +225,13 @@ module.exports = React.createClass({
this._localSettings = UserSettingsStore.getLocalSettings();
if (PlatformPeg.get().isElectron()) {
const {ipcRenderer} = require('electron');
ipcRenderer.on('settings', this._electronSettings);
ipcRenderer.send('settings_get');
}
this.setState({
language: languageHandler.getCurrentLanguage(),
});
@ -239,6 +254,29 @@ module.exports = React.createClass({
if (cli) {
cli.removeListener("RoomMember.membership", this._onInviteStateChange);
}
if (PlatformPeg.get().isElectron()) {
const {ipcRenderer} = require('electron');
ipcRenderer.removeListener('settings', this._electronSettings);
}
},
_electronSettings: function(ev, settings) {
this.setState({ electron_settings: settings });
},
_refreshMediaDevices: function() {
q().then(() => {
return CallMediaHandler.getDevices();
}).then((mediaDevices) => {
// console.log("got mediaDevices", mediaDevices, this._unmounted);
if (this._unmounted) return;
this.setState({
mediaDevices,
activeAudioInput: this._localSettings['webrtc_audioinput'],
activeVideoInput: this._localSettings['webrtc_videoinput'],
});
});
},
_refreshFromServer: function() {
@ -678,8 +716,8 @@ module.exports = React.createClass({
<h3>{ _t("Cryptography") }</h3>
<div className="mx_UserSettings_section mx_UserSettings_cryptoSection">
<ul>
<li><label>Device ID:</label> <span><code>{deviceId}</code></span></li>
<li><label>Device key:</label> <span><code><b>{identityKey}</b></code></span></li>
<li><label>{_t("Device ID:")}</label> <span><code>{deviceId}</code></span></li>
<li><label>{_t("Device key:")}</label> <span><code><b>{identityKey}</b></code></span></li>
</ul>
{ importExportButtons }
</div>
@ -736,6 +774,8 @@ module.exports = React.createClass({
},
_renderAnalyticsControl: function() {
if (!SdkConfig.get().piwik) return <div/>;
return <div>
<h3>{ _t('Analytics') }</h3>
<div className="mx_UserSettings_section">
@ -748,6 +788,7 @@ module.exports = React.createClass({
_renderLabs: function() {
// default to enabled if undefined
if (this.props.enableLabs === false) return null;
UserSettingsStore.doTranslations();
const features = UserSettingsStore.LABS_FEATURES.map((feature) => (
<div key={feature.id} className="mx_UserSettings_toggle">
@ -836,6 +877,133 @@ module.exports = React.createClass({
</div>;
},
_renderElectronSettings: function() {
const settings = this.state.electron_settings;
if (!settings) return;
const {ipcRenderer} = require('electron');
return <div>
<h3>{ _t('Desktop specific') }</h3>
<div className="mx_UserSettings_section">
<div className="mx_UserSettings_toggle">
<input type="checkbox"
name="auto-launch"
defaultChecked={settings['auto-launch']}
onChange={(e) => {
ipcRenderer.send('settings_set', 'auto-launch', e.target.checked);
}}
/>
<label htmlFor="auto-launch">{_t('Start automatically after system login')}</label>
</div>
</div>
</div>;
},
_mapWebRtcDevicesToSpans: function(devices) {
return devices.map((device) => <span key={device.deviceId}>{device.label}</span>);
},
_setAudioInput: function(deviceId) {
this.setState({activeAudioInput: deviceId});
CallMediaHandler.setAudioInput(deviceId);
},
_setVideoInput: function(deviceId) {
this.setState({activeVideoInput: deviceId});
CallMediaHandler.setVideoInput(deviceId);
},
_requestMediaPermissions: function(event) {
const getUserMedia = (
window.navigator.getUserMedia || window.navigator.webkitGetUserMedia || window.navigator.mozGetUserMedia
);
if (getUserMedia) {
return getUserMedia.apply(window.navigator, [
{ video: true, audio: true },
this._refreshMediaDevices,
function() {
const ErrorDialog = sdk.getComponent('dialogs.ErrorDialog');
Modal.createDialog(ErrorDialog, {
title: _t('No media permissions'),
description: _t('You may need to manually permit Riot to access your microphone/webcam'),
});
},
]);
}
},
_renderWebRtcSettings: function() {
if (this.state.mediaDevices === false) {
return <div>
<h3>{_t('VoIP')}</h3>
<div className="mx_UserSettings_section">
<p className="mx_UserSettings_link" onClick={this._requestMediaPermissions}>
{_t('Missing Media Permissions, click here to request.')}
</p>
</div>
</div>;
} else if (!this.state.mediaDevices) return;
const Dropdown = sdk.getComponent('elements.Dropdown');
let microphoneDropdown = <p>{_t('No Microphones detected')}</p>;
let webcamDropdown = <p>{_t('No Webcams detected')}</p>;
const defaultOption = {
deviceId: '',
label: _t('Default Device'),
};
const audioInputs = this.state.mediaDevices.audioinput.slice(0);
if (audioInputs.length > 0) {
let defaultInput = '';
if (!audioInputs.some((input) => input.deviceId === 'default')) {
audioInputs.unshift(defaultOption);
} else {
defaultInput = 'default';
}
microphoneDropdown = <div>
<h4>{_t('Microphone')}</h4>
<Dropdown
className="mx_UserSettings_webRtcDevices_dropdown"
value={this.state.activeAudioInput || defaultInput}
onOptionChange={this._setAudioInput}>
{this._mapWebRtcDevicesToSpans(audioInputs)}
</Dropdown>
</div>;
}
const videoInputs = this.state.mediaDevices.videoinput.slice(0);
if (videoInputs.length > 0) {
let defaultInput = '';
if (!videoInputs.some((input) => input.deviceId === 'default')) {
videoInputs.unshift(defaultOption);
} else {
defaultInput = 'default';
}
webcamDropdown = <div>
<h4>{_t('Camera')}</h4>
<Dropdown
className="mx_UserSettings_webRtcDevices_dropdown"
value={this.state.activeVideoInput || defaultInput}
onOptionChange={this._setVideoInput}>
{this._mapWebRtcDevicesToSpans(videoInputs)}
</Dropdown>
</div>;
}
return <div>
<h3>{_t('VoIP')}</h3>
<div className="mx_UserSettings_section">
{microphoneDropdown}
{webcamDropdown}
</div>
</div>;
},
_showSpoiler: function(event) {
const target = event.target;
target.innerHTML = target.getAttribute('data-spoiler');
@ -1033,11 +1201,14 @@ module.exports = React.createClass({
{this._renderUserInterfaceSettings()}
{this._renderLabs()}
{this._renderWebRtcSettings()}
{this._renderDevicesPanel()}
{this._renderCryptoInfo()}
{this._renderBulkOptions()}
{this._renderBugReport()}
{PlatformPeg.get().isElectron() && this._renderElectronSettings()}
{this._renderAnalyticsControl()}
<h3>{ _t("Advanced") }</h3>

View file

@ -229,7 +229,7 @@ module.exports = React.createClass({
<div className="mx_Login_error">
</div>
<a className="mx_Login_create" onClick={this.props.onLoginClick} href="#">
Return to login
{_t('Return to login screen')}
</a>
<a className="mx_Login_create" onClick={this.props.onRegisterClick} href="#">
{ _t('Create an account') }

View file

@ -18,7 +18,7 @@ limitations under the License.
'use strict';
import React from 'react';
import { _t } from '../../../languageHandler';
import { _t, _tJsx } from '../../../languageHandler';
import ReactDOM from 'react-dom';
import sdk from '../../../index';
import Login from '../../../Login';
@ -222,17 +222,20 @@ module.exports = React.createClass({
(this.state.enteredHomeserverUrl.startsWith("http:") ||
!this.state.enteredHomeserverUrl.startsWith("http")))
{
const urlStart = <a href='https://www.google.com/search?&q=enable%20unsafe%20scripts'>;
const urlEnd = </a>;
errorText = <span>
{ _t('Can\'t connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s', {urlStart: urlStart, urlEnd: urlEnd})}
{ _tJsx("Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. " +
"Either use HTTPS or <a>enable unsafe scripts</a>.",
/<a>(.*?)<\/a>/,
(sub) => { return <a href="https://www.google.com/search?&q=enable%20unsafe%20scripts">{ sub }</a>; }
)}
</span>;
}
else {
const urlStart = <a href={this.state.enteredHomeserverUrl}>;
const urlEnd = </a>;
errorText = <span>
{ _t('Can\'t connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver\'s SSL certificate %(urlEnd)s is trusted', {urlStart: urlStart, urlEnd: urlEnd})}
{ _tJsx("Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.",
/<a>(.*?)<\/a>/,
(sub) => { return <a href={this.state.enteredHomeserverUrl}>{ sub }</a>; }
)}
</span>;
}
}

View file

@ -266,7 +266,7 @@ module.exports = React.createClass({
errMsg = _t('Passwords don\'t match.');
break;
case "RegistrationForm.ERR_PASSWORD_LENGTH":
errMsg = _t('Password too short (min %(MIN_PASSWORD_LENGTH)s).', {MIN_PASSWORD_LENGTH: $MIN_PASSWORD_LENGTH})
errMsg = _t('Password too short (min %(MIN_PASSWORD_LENGTH)s).', {MIN_PASSWORD_LENGTH: MIN_PASSWORD_LENGTH});
break;
case "RegistrationForm.ERR_EMAIL_INVALID":
errMsg = _t('This doesn\'t look like a valid email address.');

View file

@ -16,15 +16,12 @@ limitations under the License.
import React from 'react';
import sdk from '../../../index';
import dis from '../../../dispatcher';
import MatrixClientPeg from '../../../MatrixClientPeg';
import { _t } from '../../../languageHandler';
import MatrixClientPeg from '../../../MatrixClientPeg';
import DMRoomMap from '../../../utils/DMRoomMap';
import AccessibleButton from '../elements/AccessibleButton';
import Unread from '../../../Unread';
import classNames from 'classnames';
import createRoom from '../../../createRoom';
import { RoomMember } from "matrix-js-sdk";
export default class ChatCreateOrReuseDialog extends React.Component {

View file

@ -495,7 +495,7 @@ module.exports = React.createClass({
var error;
var addressSelector;
if (this.state.error) {
error = <div className="mx_ChatInviteDialog_error">You have entered an invalid contact. Try using their Matrix ID or email address.</div>;
error = <div className="mx_ChatInviteDialog_error">{_t("You have entered an invalid contact. Try using their Matrix ID or email address.")}</div>;
} else {
const addressSelectorHeader = <div className="mx_ChatInviteDialog_addressSelectHeader">
Searching known users

View file

@ -60,10 +60,10 @@ module.exports = React.createClass({
</div>
<div className="mx_Dialog_buttons">
<button className="mx_Dialog_primary" onClick={this.props.onFinished} autoFocus={true}>
Cancel
{_t("Cancel")}
</button>
<button onClick={this.onRegisterClicked}>
Register
{_t("Register")}
</button>
</div>
</BaseDialog>

View file

@ -51,7 +51,7 @@ export default React.createClass({
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
const cancelButton = this.props.hasCancelButton ? (
<button onClick={this.onCancel}>
Cancel
{_t("Cancel")}
</button>
) : null;
return (

View file

@ -21,6 +21,7 @@ import sdk from '../../../index';
import MatrixClientPeg from '../../../MatrixClientPeg';
import classnames from 'classnames';
import KeyCode from '../../../KeyCode';
import { _t, _tJsx } from '../../../languageHandler';
// The amount of time to wait for further changes to the input username before
// sending a request to the server
@ -120,10 +121,13 @@ export default React.createClass({
console.error('Error whilst checking username availability: ', err);
switch (err.errcode) {
case "M_USER_IN_USE":
newState.usernameError = 'Username not available';
newState.usernameError = _t('Username not available');
break;
case "M_INVALID_USERNAME":
newState.usernameError = 'Username invalid: ' + err.message;
newState.usernameError = _t(
'Username invalid: %(errMessage)',
{ errMessage: err.message},
);
break;
case "M_UNRECOGNIZED":
// This homeserver doesn't support username checking, assume it's
@ -131,10 +135,13 @@ export default React.createClass({
newState.usernameError = '';
break;
case undefined:
newState.usernameError = 'Something went wrong!';
newState.usernameError = _t('Something went wrong!');
break;
default:
newState.usernameError = 'An error occurred: ' + err.message;
newState.usernameError = _t(
'An error occurred: %(errMessage)',
{ errMessage: err.message },
);
break;
}
this.setState(newState);
@ -218,7 +225,7 @@ export default React.createClass({
"success": usernameAvailable,
});
usernameIndicator = <div className={usernameIndicatorClasses}>
{ usernameAvailable ? 'Username available' : this.state.usernameError }
{ usernameAvailable ? _t('Username available') : this.state.usernameError }
</div>;
}
@ -250,15 +257,25 @@ export default React.createClass({
</div>
{ usernameIndicator }
<p>
This will be your account name on
the {this.props.homeserverUrl} homeserver,
or you can pick a&nbsp;
<a href="#" onClick={this.props.onDifferentServerClicked}>
different server
</a>.
{ _tJsx(
'This will be your account name on the <span></span> ' +
'homeserver, or you can pick a <a>different server</a>.',
[
/<span><\/span>/,
/<a>(.*?)<\/a>/,
],
[
(sub) => <span>{this.props.homeserverUrl}</span>,
(sub) => <a href="#" onClick={this.props.onDifferentServerClicked}>{sub}</a>,
],
)}
</p>
<p>
If you already have a Matrix account you can <a href="#" onClick={this.props.onLoginClick}>log in</a> instead.
{ _tJsx(
'If you already have a Matrix account you can <a>log in</a> instead.',
/<a>(.*?)<\/a>/,
[(sub) => <a href="#" onClick={this.props.onLoginClick}>{sub}</a>],
)}
</p>
{ auth }
{ authErrorIndicator }
@ -266,7 +283,7 @@ export default React.createClass({
<div className="mx_Dialog_buttons">
<input className="mx_Dialog_primary"
type="submit"
value="Continue"
value={_t("Continue")}
onClick={this.onSubmit}
disabled={!canContinue}
/>

View file

@ -40,14 +40,7 @@ export default class LanguageDropdown extends React.Component {
}
componentWillMount() {
languageHandler.getAllLanguageKeysFromJson().then((langKeys) => {
const langs = [];
langKeys.forEach((languageKey) => {
langs.push({
value: languageKey,
label: _t(languageKey)
});
});
languageHandler.getAllLanguagesFromJson().then((langs) => {
langs.sort(function(a, b){
if(a.label < b.label) return -1;
if(a.label > b.label) return 1;

View file

@ -18,6 +18,7 @@ limitations under the License.
import React from 'react';
import * as Roles from '../../../Roles';
import { _t } from '../../../languageHandler';
var LEVEL_ROLE_MAP = {};
var reverseRoles = {};
@ -116,9 +117,9 @@ module.exports = React.createClass({
text: Roles.textualPowerLevel(level, 0),
}
});
options.push({ value: "Custom", text: "Custom level" });
options.push({ value: "Custom", text: _t("Custom level") });
options = options.map((op) => {
return <option value={op.value}>{op.text}</option>;
return <option value={op.value} key={op.value}>{op.text}</option>;
});
select =

View file

@ -129,8 +129,8 @@ export const PasswordAuthEntry = React.createClass({
return (
<div>
<p>To continue, please enter your password.</p>
<p>Password:</p>
<p>{_t("To continue, please enter your password.")}</p>
<p>{_t("Password:")}</p>
<form onSubmit={this._onSubmit}>
<input
ref="passwordField"
@ -380,7 +380,7 @@ export const MsisdnAuthEntry = React.createClass({
onChange={this._onTokenChange}
/>
<br />
<input type="submit" value="Submit"
<input type="submit" value={_t("Submit")}
className={submitClasses}
disabled={!enableSubmit}
/>

View file

@ -150,7 +150,7 @@ class PasswordLogin extends React.Component {
type="text"
name="phoneNumber"
onChange={this.onPhoneNumberChanged}
placeholder="Mobile phone number"
placeholder={_t("Mobile phone number")}
value={this.state.phoneNumber}
autoFocus
/>
@ -182,7 +182,7 @@ class PasswordLogin extends React.Component {
<div>
<form onSubmit={this.onSubmitForm}>
<div className="mx_Login_type_container">
<label className="mx_Login_type_label">{ _t('I want to sign in with') }</label>
<label className="mx_Login_type_label">{ _t('Sign in with') }</label>
<Dropdown
className="mx_Login_type_dropdown"
value={this.state.loginType}

View file

@ -282,7 +282,7 @@ module.exports = React.createClass({
const emailSection = (
<div>
<input type="text" ref="email"
autoFocus={true} placeholder="Email address (optional)"
autoFocus={true} placeholder={_t("Email address (optional)")}
defaultValue={this.props.defaultEmail}
className={this._classForField(FIELD_EMAIL, 'mx_Login_field')}
onBlur={function() {self.validateField(FIELD_EMAIL);}}
@ -321,7 +321,7 @@ module.exports = React.createClass({
showPrefix={true}
/>
<input type="text" ref="phoneNumber"
placeholder="Mobile phone number (optional)"
placeholder={_t("Mobile phone number (optional)")}
defaultValue={this.props.defaultPhoneNumber}
className={this._classForField(
FIELD_PHONE_NUMBER,
@ -339,9 +339,9 @@ module.exports = React.createClass({
<input className="mx_Login_submit" type="submit" value="Register" />
);
let placeholderUserName = "User name";
let placeholderUserName = _t("User name");
if (this.props.guestUsername) {
placeholderUserName += " (default: " + this.props.guestUsername + ")";
placeholderUserName += " " + _t("(default: %(userName)s)", {userName: this.props.guestUsername});
}
return (
@ -356,15 +356,15 @@ module.exports = React.createClass({
onBlur={function() {self.validateField(FIELD_USERNAME);}} />
<br />
{ this.props.guestUsername ?
<div className="mx_Login_fieldLabel">Setting a user name will create a fresh account</div> : null
<div className="mx_Login_fieldLabel">{_t("Setting a user name will create a fresh account")}</div> : null
}
<input type="password" ref="password"
className={this._classForField(FIELD_PASSWORD, 'mx_Login_field')}
onBlur={function() {self.validateField(FIELD_PASSWORD);}}
placeholder="Password" defaultValue={this.props.defaultPassword} />
placeholder={_t("Password")} defaultValue={this.props.defaultPassword} />
<br />
<input type="password" ref="passwordConfirm"
placeholder="Confirm password"
placeholder={_t("Confirm password")}
className={this._classForField(FIELD_PASSWORD_CONFIRM, 'mx_Login_field')}
onBlur={function() {self.validateField(FIELD_PASSWORD_CONFIRM);}}
defaultValue={this.props.defaultPassword} />

View file

@ -132,7 +132,7 @@ module.exports = React.createClass({
var toggleButton;
if (this.props.withToggleButton) {
toggleButton = (
<div style={{ textAlign: 'center' }}>
<div className="mx_ServerConfig_selector">
<input className="mx_Login_radio" id="basic" name="configVisible" type="radio"
checked={!this.state.configVisible}
onChange={this.onServerConfigVisibleChange.bind(this, false)} />

View file

@ -0,0 +1,92 @@
/*
Copyright 2017 Vector Creations Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import React from 'react';
import MatrixClientPeg from '../../../MatrixClientPeg';
import { ContentRepo } from 'matrix-js-sdk';
import { _t, _tJsx } from '../../../languageHandler';
import sdk from '../../../index';
import Modal from '../../../Modal';
import AccessibleButton from '../elements/AccessibleButton';
module.exports = React.createClass({
displayName: 'RoomAvatarEvent',
propTypes: {
/* the MatrixEvent to show */
mxEvent: React.PropTypes.object.isRequired,
},
onAvatarClick: function(name) {
var httpUrl = MatrixClientPeg.get().mxcUrlToHttp(this.props.mxEvent.getContent().url);
var ImageView = sdk.getComponent("elements.ImageView");
var params = {
src: httpUrl,
name: name,
};
Modal.createDialog(ImageView, params, "mx_Dialog_lightbox");
},
render: function() {
var ev = this.props.mxEvent;
var senderDisplayName = ev.sender && ev.sender.name ? ev.sender.name : ev.getSender();
var BaseAvatar = sdk.getComponent("avatars.BaseAvatar");
var room = MatrixClientPeg.get().getRoom(this.props.mxEvent.getRoomId());
var name = _t('%(senderDisplayName)s changed the avatar for %(roomName)s', {
senderDisplayName: senderDisplayName,
roomName: room ? room.name : '',
});
if (!ev.getContent().url || ev.getContent().url.trim().length === 0) {
return (
<div className="mx_TextualEvent">
{ _t('%(senderDisplayName)s removed the room avatar.', {senderDisplayName: senderDisplayName}) }
</div>
);
}
var url = ContentRepo.getHttpUriForMxc(
MatrixClientPeg.get().getHomeserverUrl(),
ev.getContent().url,
14 * window.devicePixelRatio,
14 * window.devicePixelRatio,
'crop'
);
// it sucks that _tJsx doesn't support normal _t substitutions :((
return (
<div className="mx_RoomAvatarEvent">
{ _tJsx('$senderDisplayName changed the room avatar to <img/>',
[
/\$senderDisplayName/,
/<img\/>/,
],
[
(sub) => senderDisplayName,
(sub) =>
<AccessibleButton key="avatar" className="mx_RoomAvatarEvent_avatar"
onClick={ this.onAvatarClick.bind(this, name) }>
<BaseAvatar width={14} height={14} url={ url }
name={ name } />
</AccessibleButton>,
]
)
}
</div>
);
},
});

View file

@ -24,6 +24,11 @@ import sdk from '../../../index';
module.exports = React.createClass({
displayName: 'TextualEvent',
propTypes: {
/* the MatrixEvent to show */
mxEvent: React.PropTypes.object.isRequired,
},
render: function() {
const EmojiText = sdk.getComponent('elements.EmojiText');
var text = TextForEvent.textForEvent(this.props.mxEvent);

View file

@ -230,7 +230,7 @@ module.exports = React.createClass({
remote_aliases_section = (
<div>
<div className="mx_RoomSettings_aliasLabel">
Remote addresses for this room:
{_t("Remote addresses for this room:")}
</div>
<div className="mx_RoomSettings_aliasesTable">
{ this.state.remoteDomains.map((domain, i) => {

View file

@ -20,7 +20,7 @@ var MatrixClientPeg = require('../../../MatrixClientPeg');
var sdk = require("../../../index");
var Modal = require("../../../Modal");
var UserSettingsStore = require('../../../UserSettingsStore');
import { _t } from '../../../languageHandler';
import { _t, _tJsx } from '../../../languageHandler';
module.exports = React.createClass({
@ -131,12 +131,24 @@ module.exports = React.createClass({
</label>;
}
let urlPreviewText = null;
if (UserSettingsStore.getUrlPreviewsDisabled()) {
urlPreviewText = (
_tJsx("You have <a>disabled</a> URL previews by default.", /<a>(.*?)<\/a>/, (sub)=><a href="#/settings">{sub}</a>)
);
}
else {
urlPreviewText = (
_tJsx("You have <a>enabled</a> URL previews by default.", /<a>(.*?)<\/a>/, (sub)=><a href="#/settings">{sub}</a>)
);
}
return (
<div className="mx_RoomSettings_toggles">
<h3>{_t("URL Previews")}</h3>
<label>
You have <a href="#/settings">{ UserSettingsStore.getUrlPreviewsDisabled() ? 'disabled' : 'enabled' }</a> URL previews by default.
{urlPreviewText}
</label>
{ disableRoomPreviewUrls }
<label>

View file

@ -38,6 +38,7 @@ var eventTileTypes = {
'm.call.answer' : 'messages.TextualEvent',
'm.call.hangup' : 'messages.TextualEvent',
'm.room.name' : 'messages.TextualEvent',
'm.room.avatar' : 'messages.RoomAvatarEvent',
'm.room.topic' : 'messages.TextualEvent',
'm.room.third_party_invite' : 'messages.TextualEvent',
'm.room.history_visibility' : 'messages.TextualEvent',
@ -481,7 +482,7 @@ module.exports = WithMatrixClient(React.createClass({
}
const editButton = (
<span className="mx_EventTile_editButton" title="Options" onClick={this.onEditClicked} />
<span className="mx_EventTile_editButton" title={ _t("Options") } onClick={this.onEditClicked} />
);
let e2e;
// cosmetic padlocks:

View file

@ -16,6 +16,7 @@ limitations under the License.
import React from 'react';
import sdk from '../../../index';
import { _t } from '../../../languageHandler';
export default class MemberDeviceInfo extends React.Component {
render() {
@ -49,7 +50,7 @@ export default class MemberDeviceInfo extends React.Component {
// add the deviceId as a titletext to help with debugging
return (
<div className="mx_MemberDeviceInfo"
title={"device id: " + this.props.device.deviceId} >
title={_t("device id: ") + this.props.device.deviceId} >
<div className="mx_MemberDeviceInfo_deviceInfo">
<div className="mx_MemberDeviceInfo_deviceId">
{deviceName}

View file

@ -28,12 +28,6 @@ var CallHandler = require("../../../CallHandler");
var Invite = require("../../../Invite");
var INITIAL_LOAD_NUM_MEMBERS = 30;
var SHARE_HISTORY_WARNING =
<span>
Newly invited users will see the history of this room. <br/>
If you'd prefer invited users not to see messages that were sent before they joined, <br/>
turn off, 'Share message history with new users' in the settings for this room.
</span>;
module.exports = React.createClass({
displayName: 'MemberList',
@ -355,7 +349,7 @@ module.exports = React.createClass({
if (invitedMemberTiles.length > 0) {
invitedSection = (
<div className="mx_MemberList_invited">
<h2>Invited</h2>
<h2>{ _t("Invited") }</h2>
<div className="mx_MemberList_wrapper">
{invitedMemberTiles}
</div>

View file

@ -506,7 +506,7 @@ export default class MessageComposerInput extends React.Component {
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createDialog(ErrorDialog, {
title: _t("Server error"),
description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong") + "."),
description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong.")),
});
});
}

View file

@ -316,7 +316,7 @@ export default React.createClass({
var ErrorDialog = sdk.getComponent("dialogs.ErrorDialog");
Modal.createDialog(ErrorDialog, {
title: _t("Server error"),
description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong") + "."),
description: ((err && err.message) ? err.message : _t("Server unavailable, overloaded, or something else went wrong.")),
});
});
}

View file

@ -55,17 +55,17 @@ module.exports = React.createClass({
var d = parseInt(t / (60 * 60 * 24));
if (t < 60) {
if (t < 0) {
return "0s";
return _t("for %(amount)ss", {amount: 0});
}
return s + "s";
return _t("for %(amount)ss", {amount: s});
}
if (t < 60 * 60) {
return m + "m";
return _t("for %(amount)sm", {amount: m});
}
if (t < 24 * 60 * 60) {
return h + "h";
return _t("for %(amount)sh", {amount: h});
}
return d + "d ";
return _t("for %(amount)sd", {amount: d});
},
getPrettyPresence: function(presence) {
@ -77,9 +77,8 @@ module.exports = React.createClass({
render: function() {
if (this.props.activeAgo >= 0) {
var ago = this.props.currentlyActive ? "" : "for " + (this.getDuration(this.props.activeAgo));
// var ago = this.getDuration(this.props.activeAgo) + " ago";
// if (this.props.currentlyActive) ago += " (now?)";
let duration = this.getDuration(this.props.activeAgo);
let ago = this.props.currentlyActive || !duration ? "" : duration;
return (
<div className="mx_PresenceLabel">
{ this.getPrettyPresence(this.props.presenceState) } { ago }

View file

@ -188,7 +188,11 @@ module.exports = React.createClass({
'm.room.name', user_id
);
save_button = <AccessibleButton className="mx_RoomHeader_textButton" onClick={this.props.onSaveClick}>Save</AccessibleButton>;
save_button = (
<AccessibleButton className="mx_RoomHeader_textButton" onClick={this.props.onSaveClick}>
{_t("Save")}
</AccessibleButton>
);
}
if (this.props.onCancelClick) {

View file

@ -726,7 +726,7 @@ module.exports = React.createClass({
if (canSetTag || self.state.tags) {
var tagsSection =
<div className="mx_RoomSettings_tags">
Tagged as: { canSetTag ?
{_t("Tagged as: ")}{ canSetTag ?
(tags.map(function(tag, i) {
return (<label key={ i }>
<input type="checkbox"
@ -844,7 +844,7 @@ module.exports = React.createClass({
<input type="checkbox" disabled={ !roomState.mayClientSendStateEvent("m.room.aliases", cli) }
onChange={ this._onToggle.bind(this, "isRoomPublished", true, false)}
checked={this.state.isRoomPublished}/>
List this room in { MatrixClientPeg.get().getDomain() }'s room directory?
{_t("List this room in %(domain)s's room directory?", { domain: MatrixClientPeg.get().getDomain() })}
</label>
</div>
<div className="mx_RoomSettings_settings">
@ -854,7 +854,7 @@ module.exports = React.createClass({
disabled={ !roomState.mayClientSendStateEvent("m.room.history_visibility", cli) }
checked={historyVisibility === "world_readable"}
onChange={this._onHistoryRadioToggle} />
Anyone
{_t("Anyone")}
</label>
<label>
<input type="radio" name="historyVis" value="shared"

View file

@ -18,6 +18,7 @@ limitations under the License.
var React = require('react');
var sdk = require('../../../index');
import { _t } from "../../../languageHandler";
module.exports = React.createClass({
displayName: 'RoomTopicEditor',
@ -43,7 +44,7 @@ module.exports = React.createClass({
<EditableText ref="editor"
className="mx_RoomHeader_topic mx_RoomHeader_editable"
placeholderClassName="mx_RoomHeader_placeholder"
placeholder="Add a topic"
placeholder={_t("Add a topic")}
blurToCancel={ false }
initialValue={ this._initialTopic }/>
);

View file

@ -37,7 +37,7 @@ module.exports = React.createClass({
<img src="img/scrollto.svg" width="24" height="24"
alt={ _t('Scroll to unread messages') }
title={ _t('Scroll to unread messages') }/>
Jump to first unread message.
{ _t("Jump to first unread message.") }
</div>
<img className="mx_TopUnreadMessagesBar_close mx_filterFlipColor"
src="img/cancel.svg" width="18" height="18"

View file

@ -107,7 +107,7 @@ function createRoom(opts) {
console.error("Failed to create room " + roomId + " " + err);
Modal.createDialog(ErrorDialog, {
title: _t("Failure to create room"),
description: _t("Server may be unavailable, overloaded, or you hit a bug") + ".",
description: _t("Server may be unavailable, overloaded, or you hit a bug."),
});
return null;
});

View file

@ -40,7 +40,6 @@
"Searches DuckDuckGo for results": "Søger DuckDuckGo for resultater",
"Commands": "kommandoer",
"Emoji": "Emoji",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar.": "Kan ikke oprette forbindelse til hjemmeserver via HTTP, når en HTTPS-URL er i din browserbjælke.",
"Sorry, this homeserver is using a login which is not recognised ": "Beklager, denne homeerver bruger et login, der ikke kan genkendes ",
"Login as guest": "Log ind som gæst",
"Return to app": "Tilbage til app",

View file

@ -1,5 +1,5 @@
{
"Filter room members": "Raum Benutzer filtern",
"Filter room members": "Raum-Benutzer filtern",
"You have no visible notifications": "Du hast keine sichtbaren Benachrichtigungen",
"Invites": "Einladungen",
"Favourites": "Favoriten",
@ -16,10 +16,10 @@
"Blacklisted": "Blockiert",
"verified": "verifiziert",
"Name": "Name",
"Device ID": "Geräte ID",
"Device ID": "Geräte-ID",
"Verification": "Verifizierung",
"Ed25519 fingerprint": "Ed25519 Fingerprint",
"User ID": "Benutzer ID",
"Ed25519 fingerprint": "Ed25519-Fingerprint",
"User ID": "Benutzer-ID",
"Curve25519 identity key": "Curve25519-Identitäts-Schlüssel",
"Claimed Ed25519 fingerprint key": "Geforderter Ed25519 Fingerprint Schlüssel",
"none": "keiner",
@ -28,25 +28,25 @@
"Decryption error": "Entschlüsselungs Fehler",
"Session ID": "Sitzungs-ID",
"End-to-end encryption information": "Ende-zu-Ende-Verschlüsselungs-Informationen",
"Event information": "Ereignis Informationen",
"Event information": "Ereignis-Informationen",
"Sender device information": "Absender Geräte Informationen",
"Displays action": "Zeigt Aktionen an",
"Bans user with given id": "Sperrt Benutzer mit der angegebenen ID",
"Deops user with given id": "Entfernt OP beim Benutzer mit der angegebenen ID",
"Invites user with given id to current room": "Lädt Benutzer mit der angegebenen ID in den aktuellen Raum ein",
"Invites user with given id to current room": "Lädt den Benutzer mit der angegebenen ID in den aktuellen Raum ein",
"Joins room with given alias": "Betrete Raum mit angegebenen Alias",
"Kicks user with given id": "Kickt Benutzer mit angegebener ID",
"Changes your display nickname": "Ändert deinen angezeigten Nicknamen",
"Change Password": "Passwort ändern",
"Searches DuckDuckGo for results": "Suche in DuckDuckGo nach Ergebnissen",
"Searches DuckDuckGo for results": "Verwendet DuckDuckGo für Suchergebnisse",
"Commands": "Kommandos",
"Emoji": "Smileys",
"Sorry, this homeserver is using a login which is not recognised ": "Entschuldigung, dieser homeserver nutzt eine Anmeldetechnik die nicht bekannt ist ",
"Emoji": "Emoji",
"Sorry, this homeserver is using a login which is not recognised ": "Entschuldigung, dieser Homeserver nutzt eine Anmeldetechnik, die nicht bekannt ist ",
"Login as guest": "Anmelden als Gast",
"Return to app": "Zurück zur Anwendung",
"Sign in": "Anmelden",
"Create a new account": "Erstelle einen neuen Benutzer",
"Send an encrypted message": "Sende eine verschlüsselte Nachricht",
"Send an encrypted message": "Eine verschlüsselte Nachricht senden",
"Send a message (unencrypted)": "Sende eine Nachricht (unverschlüsselt)",
"Warning!": "Warnung!",
"Direct Chat": "Privater Chat",
@ -54,17 +54,17 @@
"accept": "akzeptiere",
"accepted an invitation": "Einladung akzeptieren",
"accepted the invitation for": "Akzeptierte die Einladung für",
"Add email address": "Füge E-Mail-Adresse hinzu",
"Add email address": "E-Mail-Adresse hinzufügen",
"Advanced": "Erweitert",
"all room members, from the point they joined": "Alle Raum-Mitglieder - seitdem sie beigetreten sind",
"all room members, from the point they joined": "Alle Raum-Mitglieder, ab dem Zeitpunkt, an dem sie beigetreten sind",
"and": "und",
"An email has been sent to": "Eine E-Mail wurde gesendet an",
"anyone": "Jeder",
"Anyone who knows the room's link, apart from guests": "Jeder der den Raum-Link kennt - abgesehen von Gästen",
"Anyone who knows the room's link, apart from guests": "Alle, denen der Raum-Link bekannt ist, ausgenommen Gäste",
"Anyone who knows the room's link, including guests": "Jeder der den Raum-Link kennt - auch Gäste",
"Are you sure you want to leave the room?": "Bist du sicher, dass du den Raum verlassen willst?",
"Are you sure you want to reject the invitation?": "Bist du sicher, dass die die Einladung ablehnen willst?",
"Are you sure you want to upload the following files?": "Bist du sicher, dass du die folgenden Dateien hochladen willst?",
"Are you sure you want to upload the following files?": "Bist du sicher, dass du die folgenden Dateien hochladen möchtest?",
"banned": "gebannt",
"Banned users": "Gebannte Nutzer",
"Bug Report": "Fehlerbericht",
@ -73,18 +73,18 @@
"changed their profile picture": "änderte sein Profilbild",
"changed the room name to": "änderte den Raumnamen zu",
"changed the topic to": "änderte das Thema zu",
"Changes to who can read history will only apply to future messages in this room": "Änderungen bzgl. wer die Historie lesen kann betrifft nur zukünftige Nachrichten in diesem Raum",
"Clear Cache and Reload": "Leere Cache und lade neu",
"Changes to who can read history will only apply to future messages in this room": "Änderungen, die bestimmen, wer den Chatverlauf lesen kann, gelten nur für zukünftige Nachrichten in diesem Raum",
"Clear Cache and Reload": "Cache leeren und neu laden",
"Click here": "Klicke hier",
"Confirm your new password": "Bestätige dein neues Passwort",
"Confirm your new password": "Neues Passwort bestätigen",
"Continue": "Fortfahren",
"Create an account": "Erstelle einen Account",
"Create Room": "Erstelle Raum",
"Cryptography": "Kryptografie",
"Deactivate Account": "Deaktiviere Account",
"Deactivate my account": "Deaktiviere meinen Account",
"Create Room": "Raum erstellen",
"Cryptography": "Verschlüsselung",
"Deactivate Account": "Account deaktivieren",
"Deactivate my account": "Meinen Account deaktivieren",
"decline": "Ablehnen",
"Devices will not yet be able to decrypt history from before they joined the room": "Geräte werden nicht in der Lage sein, die Historie vor dem Beitritt in den Raum zu entschlüsseln",
"Devices will not yet be able to decrypt history from before they joined the room": "Geräte werden nicht in der Lage sein, den Chatverlauf vor dem Betreten des Raumes zu entschlüsseln",
"Display name": "Anzeigename",
"Email Address": "E-Mail-Adresse",
"Email, name or matrix ID": "E-Mail, Name oder Matrix-ID",
@ -93,7 +93,7 @@
"Encryption is enabled in this room": "Verschlüsselung ist in diesem Raum aktiviert",
"Encryption is not enabled in this room": "Verschlüsselung ist in diesem Raum nicht aktiviert",
"ended the call.": "beendete den Anruf.",
"End-to-end encryption is in beta and may not be reliable": "Ende-zu-Ende-Verschlüsselung ist im Beta-Status und ist evtl. nicht zuverlässig",
"End-to-end encryption is in beta and may not be reliable": "Die Ende-zu-Ende-Verschlüsselung befindet sich aktuell im Beta-Stadium und ist eventuell noch nicht hundertprozentig zuverlässig",
"Failed to send email": "Fehler beim Senden der E-Mail",
"Account": "Konto",
"Add phone number": "Füge Telefonnummer hinzu",
@ -102,31 +102,31 @@
"all room members": "Alle Raum-Mitglieder",
"all room members, from the point they are invited": "Alle Raum-Mitglieder, ab dem Zeitpunkt, an dem sie eingeladen werden",
"answered the call.": "beantwortete den Anruf.",
"Can't load user settings": "Kann Nutzereinstellungen nicht laden",
"Can't load user settings": "Benutzereinstellungen können nicht geladen werden",
"changed name": "änderte Namen",
"changed the power level of": "änderte Berechtigungslevel von",
"Clear Cache": "Leere Cache",
"Click here to fix": "Klicke hier zum reparieren",
"Click here to fix": "Zum reparieren hier klicken",
"*️⃣ Commands": "*️⃣ Befehle",
"Default": "Standard",
"demote": "Zum zurückstufen",
"Export E2E room keys": "Exportiere E2E-Raum-Schlüssel",
"demote": "Berechtigungslevel herabstufen",
"Export E2E room keys": "E2E-Raum-Schlüssel exportieren",
"Failed to change password. Is your password correct?": "Passwort-Änderung schlug fehl. Ist dein Passwort korrekt?",
"Failed to forget room": "Vergessen des Raums schlug fehl",
"Failed to leave room": "Verlassen des Raums fehlgeschlagen",
"Failed to reject invitation": "Fehler beim Abweisen der Einladung",
"Failed to set avatar.": "Fehler beim Setzen des Avatars.",
"Failed to set avatar.": "Fehler beim Setzen des Profilbilds.",
"Failed to unban": "Entbannen fehlgeschlagen",
"Failed to upload file": "Dateiupload fehlgeschlagen",
"Failed to upload file": "Datei-Upload fehlgeschlagen",
"Favourite": "Favorit",
"favourite": "Favoriten",
"favourite": "Als Favorit setzen",
"Forget room": "Raum vergessen",
"Forgot your password?": "Passwort vergessen?",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Aus Sicherheitsgründen werden beim Ausloggen alle Ende-zu-Ende-Verschlüsselungsschlüssel von diesem Browser gelöscht. Wenn du in späteren Riot-Sitzungen die Konversationshistorie entschlüsseln möchtest, exportiere bitte deine Schlüssel zur sicheren Verwahrung.",
"For security, this session has been signed out. Please sign in again.": "Zur Sicherheit wurde diese Sitzung abgemeldet. Bitte melde dich erneut an.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Aus Sicherheitsgründen werden beim Ausloggen alle Ende-zu-Ende-Verschlüsselungs-Schlüssel in diesem Browser gelöscht. Wenn du in späteren Riot-Sitzungen den bisherigen Chatverlauf entschlüsseln möchtest, exportiere bitte deine Schlüssel zur sicheren Aufbewahrung.",
"For security, this session has been signed out. Please sign in again.": "Aus Sicherheitsgründen wurde diese Sitzung beendet. Bitte melde dich erneut an.",
"Found a bug?": "Fehler gefunden?",
"Guests cannot join this room even if explicitly invited.": "Gäste können diesem Raum nicht beitreten auch wenn sie explizit eingeladen werden.",
"Guests can't set avatars. Please register.": "Gäste können keine Avatare setzen. Bitte registriere dich.",
"Guests cannot join this room even if explicitly invited.": "Gäste können diesem Raum nicht beitreten, auch wenn sie explizit eingeladen wurden.",
"Guests can't set avatars. Please register.": "Gäste können kein Profilbild setzen. Bitte registrieren.",
"Guest users can't upload files. Please register to upload.": "Gäste können keine Dateien hochladen. Bitte registrieren um hochzuladen.",
"had": "hatte",
"Hangup": "Auflegen",
@ -136,10 +136,10 @@
"Import E2E room keys": "E2E-Raum-Schlüssel importieren",
"Invalid Email Address": "Ungültige E-Mail-Adresse",
"invited": "eingeladen",
"Invite new room members": "Lade neue Raum-Mitglieder ein",
"Invite new room members": "Neue Raum-Mitglieder einladen",
"is a": "ist ein",
"is trusted": "wird vertraut",
"I want to sign in with": "Ich möchte mich anmelden mit",
"Sign in with": "Ich möchte mich anmelden mit",
"joined and left": "trat bei und ging",
"joined": "trat bei",
"joined the room": "trat dem Raum bei",
@ -150,9 +150,9 @@
"Logged in as": "Angemeldet als",
"Logout": "Abmelden",
"made future room history visible to": "mache kommende Raum-Historie sichtbar für",
"Manage Integrations": "Verwalte Integrationen",
"Manage Integrations": "Integrationen verwalten",
"Members only": "Nur Mitglieder",
"Mobile phone number": "Mobile Telefonnummer",
"Mobile phone number": "Mobiltelefonnummer",
"Moderator": "Moderator",
"my Matrix ID": "Meine Matrix-ID",
"Never send encrypted messages to unverified devices from this device": "Niemals verschlüsselte Nachrichten an unverifizierte Geräte von diesem Gerät aus versenden",
@ -161,10 +161,10 @@
"Notifications": "Benachrichtigungen",
" (not supported by this browser)": " (von diesem Browser nicht unterstützt)",
"<not supported>": "<nicht unterstützt>",
"No users have specific privileges in this room": "Keine Nutzer haben in diesem Raum besondere Berechtigungen",
"No users have specific privileges in this room": "Kein Benutzer hat in diesem Raum besondere Berechtigungen",
"olm version": "OLM-Version",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Sobald Verschlüsselung für einen Raum aktiviert wird, kann diese (aktuell noch) nicht wieder deaktiviert werden",
"Only people who have been invited": "Nur Personen die eingeladen wurden",
"Only people who have been invited": "Nur Personen, die eingeladen wurden",
"or": "oder",
"other": "weiteres",
"others": "andere",
@ -178,76 +178,75 @@
"Privileged Users": "Privilegierte Nutzer",
"Profile": "Profil",
"Refer a friend to Riot:": "Freunde zu Riot einladen:",
"rejected": "abgeleht",
"Once you&#39;ve followed the link it contains, click below": "Nachdem du dem Link gefolgt bist, klicke unten",
"rejected": "abgelehnt",
"Once you&#39;ve followed the link it contains, click below": "Nachdem du dem darin enthaltenen Link gefolgt bist, klicke unten",
"rejected the invitation.": "lehnte die Einladung ab.",
"Reject invitation": "Einladung ablehnen",
"Remove Contact Information?": "Lösche Kontakt-Informationen?",
"Remove Contact Information?": "Kontakt-Informationen löschen?",
"removed their display name": "löschte den eigenen Anzeigenamen",
"Remove": "Entfernen",
"requested a VoIP conference": "hat eine VoIP-Konferenz angefordert",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Eine Passwortänderung sorgt aktuell dafür, dass alle Ende-zu-Ende-Schlüssel von allen Geräten zurückgesetzt werden. Dadurch wird die verschlüsselte Chat-Historie unlesbar, es sei denn Sie exportieren vorher Ihre Raum-Schlüssel und importieren sie nachher wieder. In Zukunft wird dies verbessert.",
"restore": "Zum zurücksetzen",
"Return to login screen": "Zur Anmeldung zurückkehren",
"Return to login screen": "Zur Anmeldemaske zurückkehren",
"Room Colour": "Raumfarbe",
"Room name (optional)": "Raumname (optional)",
"Scroll to unread messages": "Scrolle zu ungelesenen Nachrichten",
"Send Invites": "Sende Einladungen",
"Send Reset Email": "Sende Rücksetz-E-mail",
"sent an image": "sandte ein Bild",
"Send Invites": "Einladungen senden",
"Send Reset Email": "E-Mail für das Zurücksetzen senden",
"sent an image": "hat ein Bild gesendet",
"sent an invitation to": "sandte eine Einladung an",
"sent a video": "sandte ein Video",
"Server may be unavailable or overloaded": "Server könnte nicht verfügbar oder überlastet sein",
"sent a video": "hat ein Video gesendet",
"Server may be unavailable or overloaded": "Server ist eventuell nicht verfügbar oder überlastet",
"set a profile picture": "setzte ein Profilbild",
"set their display name to": "setzte den Anzeigenamen auf",
"Settings": "Einstellungen",
"Signed Out": "Abgemeldet",
"Sign out": "Abmelden",
"since the point in time of selecting this option": "seitdem diese Option gewählt wird",
"since the point in time of selecting this option": "ab dem Zeitpunkt, an dem diese Option gewählt wird",
"since they joined": "seitdem sie beitraten",
"since they were invited": "seitdem sie eingeladen wurden",
"Someone": "Jemand",
"Start a chat": "Starte einen Chat",
"Start Chat": "Starte Chat",
"Start Chat": "Chat beginnen",
"Success": "Erfolg",
"tag direct chat": "Zum kennzeichnen als direkten Chat",
"The default role for new room members is": "Die Standard-Rolle für neue Raum-Mitglieder ist",
"their invitations": "ihre Einladungen",
"their invitation": "ihre Einladung",
"These are experimental features that may break in unexpected ways. Use with caution": "Dies sind experimentelle Funktionen die in unerwarteter Weise Fehler verursachen können. Mit Vorsicht benutzen",
"The visibility of existing history will be unchanged": "Die Sichtbarkeit der existenten Historie bleibt unverändert",
"This doesn't appear to be a valid email address": "Die scheint keine valide E-Mail-Adresse zu sein",
"The visibility of existing history will be unchanged": "Die Sichtbarkeit der bereits vorhandenen Chat-Historie bleibt unverändert",
"This doesn't appear to be a valid email address": "Dies scheint keine gültige E-Mail-Adresse zu sein",
"this invitation?": "diese Einladung?",
"This is a preview of this room. Room interactions have been disabled": "Dies ist eine Vorschau dieses Raumes. Raum-Interaktionen wurden deaktiviert",
"This room is not accessible by remote Matrix servers": "Dieser Raum ist über entfernte Matrix-Server nicht zugreifbar",
"This room is not accessible by remote Matrix servers": "Andere Matrix-Server können auf diesen Raum nicht zugreifen",
"This room's internal ID is": "Die interne ID dieses Raumes ist",
"To ban users": "Zum Nutzer bannen",
"To configure the room": "Zum Raum konfigurieren",
"To invite users into the room": "Zum Nutzer in den Raum einladen",
"to join the discussion": "Zum mitdiskutieren",
"To kick users": "Zum Nutzer kicken",
"To configure the room": "Um den Raum zu konfigurieren",
"To invite users into the room": "Um Nutzer in den Raum einzuladen",
"to join the discussion": "um an der Diskussion teilzunehmen",
"To kick users": "Um Nutzer zu entfernen",
"Admin": "Administrator",
"Server may be unavailable, overloaded, or you hit a bug": "Server könnte nicht verfügbar oder überlastet sein oder du bist auf einen Fehler gestoßen",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar": "Verbindung zum Homeserver ist über HTTP nicht möglich, wenn HTTPS in deiner Browserleiste steht",
"Could not connect to the integration server": "Konnte keine Verbindung zum Integrations-Server herstellen",
"Disable inline URL previews by default": "Deaktiviere URL-Vorschau im Chat standardmäßig",
"Disable inline URL previews by default": "URL-Vorschau im Chat standardmäßig deaktivieren",
"Guests can't use labs features. Please register.": "Gäste können keine Labor-Funktionen nutzen. Bitte registrieren.",
"Labs": "Labor",
"Show panel": "Zeige Panel",
"To redact messages": "Zum Nachrichten verbergen",
"Can't connect to homeserver - please check your connectivity and ensure your": "Die Verbindung mit dem Homeserver ist fehlgeschlagen. Bitte überprüfe deine Verbindung und stelle sicher, dass dein(e) ",
"tag as": "kennzeichne als",
"To reset your password, enter the email address linked to your account": "Um dein Passwort zurückzusetzen, gebe deine E-Mail-Adresse, die mit deinem Account verbunden ist, ein",
"To reset your password, enter the email address linked to your account": "Um dein Passwort zurückzusetzen, gib bitte die mit deinem Account verknüpfte E-Mail-Adresse ein",
"To send messages": "Zum Nachrichten senden",
"turned on end-to-end encryption (algorithm": "aktivierte Ende-zu-Ende-Verschlüsselung (Algorithmus",
"Unable to add email address": "Unfähig die E-Mail-Adresse hinzuzufügen",
"Unable to add email address": "E-Mail-Adresse konnte nicht hinzugefügt werden",
"Unable to remove contact information": "Unfähig die Kontakt-Informationen zu löschen",
"Unable to verify email address.": "Unfähig die E-Mail-Adresse zu verifizieren.",
"Unban": "Entbannen",
"Unencrypted room": "Unverschlüsselter Raum",
"unknown error code": "Unbekannter Fehlercode",
"unknown": "unbekannt",
"Upload avatar": "Avatar hochladen",
"Upload avatar": "Profilbild hochladen",
"uploaded a file": "lud eine Datei hoch",
"Upload Files": "Dateien hochladen",
"Upload file": "Datei hochladen",
@ -256,25 +255,24 @@
"Users": "Nutzer",
"User": "Nutzer",
"Verification Pending": "Verifizierung ausstehend",
"Video call": "Videoanruf",
"Video call": "Video-Anruf",
"Voice call": "Sprachanruf",
"VoIP conference finished.": "VoIP-Konferenz beendet.",
"VoIP conference finished.": "VoIP-Konferenz wurde beendet.",
"VoIP conference started.": "VoIP-Konferenz gestartet.",
"(warning: cannot be disabled again!)": "(Warnung: Kann nicht wieder deaktiviert werden!)",
"was banned": "wurde gebannt",
"was banned": "wurde aus dem Raum verbannt",
"was invited": "wurde eingeladen",
"was kicked": "wurde gekickt",
"was unbanned": "wurde entbannt",
"was": "wurde",
"Who can access this room?": "Wer hat Zugang zu diesem Raum?",
"Who can read history?": "Wer kann die Historie lesen?",
"Who can read history?": "Wer kann die Chat-Historie lesen?",
"Who would you like to add to this room?": "Wen möchtest du zu diesem Raum hinzufügen?",
"Who would you like to communicate with?": "Mit wem möchtest du kommunizieren?",
"Would you like to": "Möchtest du",
"You are trying to access": "Du möchtest Zugang zu %(sth)s bekommen",
"You do not have permission to post to this room": "Du hast keine Berechtigung an diesen Raum etwas zu senden",
"You have been invited to join this room by %(inviterName)s": "Du wurdest in diesen Raum eingeladen von %(inviterName)s",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Du wurdest von allen Geräten ausgeloggt und wirst keine Push-Benachrichtigungen mehr bekommen. Um Benachrichtigungen zu reaktivieren melde dich auf jedem Gerät neu an",
"You have been invited to join this room by %(inviterName)s": "Du wurdest von %(inviterName)s in diesen Raum eingeladen",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Du wurdest auf allen Geräten abgemeldet und wirst keine Push-Benachrichtigungen mehr erhalten. Um die Benachrichtigungen zu reaktivieren, musst du dich auf jedem Gerät neu anmelden",
"you must be a": "nötige Rolle",
"Your password has been reset": "Dein Passwort wurde zurückgesetzt",
"You should not yet trust it to secure data": "Du solltest nicht darauf vertrauen um deine Daten abzusichern",
@ -284,26 +282,26 @@
"Call Timeout": "Anruf-Timeout",
"Conference call failed": "Konferenzgespräch fehlgeschlagen",
"Conference calling is in development and may not be reliable": "Konferenzgespräche sind in Entwicklung und evtl. nicht zuverlässig",
"Conference calls are not supported in encrypted rooms": "Konferenzgespräche sind in verschlüsselten Räumen nicht unterstützt",
"Conference calls are not supported in this client": "Konferenzgespräche sind in diesem Client nicht unterstützt",
"Existing Call": "Existierender Anruf",
"Failed to set up conference call": "Aufbau des Konferenzgesprächs fehlgeschlagen",
"Failed to verify email address: make sure you clicked the link in the email": "Verifizierung der E-Mail-Adresse fehlgeschlagen: Bitte stelle sicher, dass du den Link in der E-Mail anklickt hast",
"Conference calls are not supported in encrypted rooms": "Konferenzgespräche werden in verschlüsselten Räumen nicht unterstützt",
"Conference calls are not supported in this client": "Konferenzgespräche werden von diesem Client nicht unterstützt",
"Existing Call": "Bereits bestehender Anruf",
"Failed to set up conference call": "Konferenzgespräch konnte nicht gestartet werden",
"Failed to verify email address: make sure you clicked the link in the email": "Verifizierung der E-Mail-Adresse fehlgeschlagen: Bitte stelle sicher, dass du den Link in der E-Mail angeklickt hast",
"Failure to create room": "Raumerstellung fehlgeschlagen",
"Guest users can't create new rooms. Please register to create room and start a chat": "Gäste können keine neuen Räume erstellen. Bitte registrieren um einen Raum zu erstellen und einen Chat zu starten",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot hat keine Berechtigung Benachrichtigungen zu senden - bitte prüfe deine Browser-Einstellungen",
"Riot was not given permission to send notifications - please try again": "Riot hat das Recht nicht bekommen Benachrichtigungen zu senden. Bitte erneut probieren",
"This email address is already in use": "Diese E-Mail-Adresse wird bereits verwendet",
"This email address was not found": "Diese E-Mail-Adresse wurde nicht gefunden",
"This email address was not found": "Diese E-Mail-Adresse konnte nicht gefunden werden",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "Die Datei '%(fileName)s' überschreitet das Größen-Limit für Uploads auf diesem Homeserver",
"The file '%(fileName)s' failed to upload": "Das Hochladen der Datei '%(fileName)s' schlug fehl",
"The remote side failed to pick up": "Die Gegenstelle konnte nicht abheben",
"This phone number is already in use": "Diese Telefonnummer wird bereits verwendet",
"Unable to restore previous session": "Frühere Sitzung nicht wiederherstellbar",
"Unable to restore previous session": "Die vorherige Sitzung konnte nicht wiederhergestellt werden",
"Unable to capture screen": "Unfähig den Bildschirm aufzunehmen",
"Unable to enable Notifications": "Unfähig Benachrichtigungen zu aktivieren",
"Unable to enable Notifications": "Benachrichtigungen konnten nicht aktiviert werden",
"Upload Failed": "Upload fehlgeschlagen",
"VoIP is unsupported": "VoIP ist nicht unterstützt",
"VoIP is unsupported": "VoIP wird nicht unterstützt",
"You are already in a call": "Du bist bereits bei einem Anruf",
"You cannot place a call with yourself": "Du kannst keinen Anruf mit dir selbst starten",
"You cannot place VoIP calls in this browser": "Du kannst kein VoIP-Gespräch in diesem Browser starten",
@ -330,8 +328,8 @@
"Dec": "Dez",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(day)s. %(monthName)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Setze einen Anzeigenamen:",
"Upload an avatar:": "Lade einen Avatar hoch:",
"Set a display name:": "Anzeigename eingeben:",
"Upload an avatar:": "Profilbild hochladen:",
"This server does not support authentication with a phone number.": "Dieser Server unterstützt keine Authentifizierung mittels Telefonnummer.",
"Missing password.": "Fehlendes Passwort.",
"Passwords don't match.": "Passwörter stimmen nicht überein.",
@ -344,66 +342,66 @@
"An error occured: %(error_string)s": "Ein Fehler trat auf: %(error_string)s",
"Topic": "Thema",
"Make this room private": "Mache diesen Raum privat",
"Share message history with new users": "Teile Nachrichtenhistorie mit neuen Nutzern",
"Encrypt room": "Entschlüssele Raum",
"Share message history with new users": "Nachrichtenhistorie mit neuen Nutzern teilen",
"Encrypt room": "Raum verschlüsseln",
"To send events of type": "Zum Senden von Ereignissen mit Typ",
"%(names)s and %(lastPerson)s are typing": "%(names)s und %(lastPerson)s schreiben",
"%(targetName)s accepted an invitation.": "%(targetName)s akzeptierte eine Einladung.",
"%(targetName)s accepted an invitation.": "%(targetName)s hat eine Einladung angenommen.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s akzeptierte die Einladung für %(displayName)s.",
"%(names)s and one other are typing": "%(names)s und eine weitere Person tippen",
"%(names)s and %(count)s others are typing": "%(names)s und %(count)s weitere Personen tippen",
"%(senderName)s answered the call.": "%(senderName)s beantwortete den Anruf.",
"%(senderName)s banned %(targetName)s.": "%(senderName)s bannte %(targetName)s.",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s änderte den Anzeigenamen von %(oldDisplayName)s zu %(displayName)s.",
"%(senderName)s changed their profile picture.": "%(senderName)s änderte das Profilbild.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s änderte das Berechtigungslevel von %(powerLevelDiffText)s.",
"%(names)s and %(count)s others are typing": "%(names)s und %(count)s weitere Personen schreiben",
"%(senderName)s answered the call.": "%(senderName)s hat den Anruf angenommen.",
"%(senderName)s banned %(targetName)s.": "%(senderName)s hat %(targetName)s aus dem Raum verbannt.",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s hat den Anzeigenamen von %(oldDisplayName)s auf %(displayName)s geändert.",
"%(senderName)s changed their profile picture.": "%(senderName)s hat das Profilbild geändert.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s hat das Berechtigungslevel von %(powerLevelDiffText)s geändert.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s änderte den Raumnamen zu %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s änderte das Thema zu \"%(topic)s\".",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s hat das Thema geändert in \"%(topic)s\".",
"/ddg is not a command": "/ddg ist kein Kommando",
"%(senderName)s ended the call.": "%(senderName)s beendete den Anruf.",
"%(senderName)s ended the call.": "%(senderName)s hat den Anruf beendet.",
"Failed to lookup current room": "Aktuellen Raum nachzuschlagen schlug fehl",
"Failed to send request.": "Anfrage zu senden schlug fehl.",
"Failed to send request.": "Anfrage konnte nicht gesendet werden.",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s von %(fromPowerLevel)s zu %(toPowerLevel)s",
"%(senderName)s invited %(targetName)s.": "%(senderName)s lud %(targetName)s ein.",
"%(displayName)s is typing": "%(displayName)s tippt",
"%(senderName)s invited %(targetName)s.": "%(senderName)s hat %(targetName)s eingeladen.",
"%(displayName)s is typing": "%(displayName)s schreibt",
"%(targetName)s joined the room.": "%(targetName)s trat dem Raum bei.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s kickte %(targetName)s.",
"%(targetName)s left the room.": "%(targetName)s verließ den Raum.",
"%(targetName)s left the room.": "%(targetName)s hat den Raum verlassen.",
"%(senderName)s made future room history visible to": "%(senderName)s machte die zukünftige Raumhistorie sichtbar für",
"Missing room_id in request": "Fehlende room_id in Anfrage",
"Missing user_id in request": "Fehlende user_id in Anfrage",
"Must be viewing a room": "Muss einen Raum ansehen",
"New Composer & Autocomplete": "Neuer Eingabeverarbeiter & Autovervollständigung",
"(not supported by this browser)": "(nicht von diesem Browser unterstützt)",
"(not supported by this browser)": "(wird von diesem Browser nicht unterstützt)",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s startete einen %(callType)s-Anruf.",
"Power level must be positive integer.": "Berechtigungslevel muss eine positive ganze Zahl sein.",
"Reason": "Grund",
"%(targetName)s rejected the invitation.": "%(targetName)s lehnte die Einladung ab.",
"%(targetName)s rejected the invitation.": "%(targetName)s hat die Einladung abgelehnt.",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s löschte den Anzeigenamen (%(oldDisplayName)s).",
"%(senderName)s removed their profile picture.": "%(senderName)s löschte das Profilbild.",
"%(senderName)s requested a VoIP conference.": "%(senderName)s fragte nach einer VoIP-Konferenz.",
"%(senderName)s requested a VoIP conference.": "%(senderName)s möchte eine VoIP-Konferenz beginnen.",
"Room %(roomId)s not visible": "Raum %(roomId)s ist nicht sichtbar",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s hat ein Bild gesendet.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sandte eine Einladung an %(targetDisplayName)s um diesem Raum beizutreten.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s hat %(targetDisplayName)s in diesen Raum eingeladen.",
"%(senderName)s set a profile picture.": "%(senderName)s setzte ein Profilbild.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s setzte den Anzeigenamen zu %(displayName)s.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s hat den Anzeigenamen geändert in %(displayName)s.",
"This room is not recognised.": "Dieser Raum wurde nicht erkannt.",
"These are experimental features that may break in unexpected ways": "Dies sind experimentelle Funktionen, die in unerwarteter Weise Fehler verursachen können",
"To use it, just wait for autocomplete results to load and tab through them.": "Um dies zu nutzen, warte auf die Autovervollständigungsergebnisse und benutze die TAB Taste.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s schaltete Ende-zu-Ende-Verschlüsselung ein (Algorithmus: %(algorithm)s).",
"To use it, just wait for autocomplete results to load and tab through them.": "Um diese Funktion zu nutzen, warte einfach auf die Autovervollständigungsergebnisse und benutze dann die TAB-Taste zum durchblättern.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s hat die Ende-zu-Ende-Verschlüsselung aktiviert (Algorithmus: %(algorithm)s).",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s zog Bann für %(targetName)s zurück.",
"Usage": "Verwendung",
"Use with caution": "Mit Vorsicht benutzen",
"Use with caution": "Mit Vorsicht zu verwenden",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s zog die Einladung für %(targetName)s zurück.",
"You need to be able to invite users to do that.": "Du musst in der Lage sein Nutzer einzuladen um dies zu tun.",
"You need to be able to invite users to do that.": "Du musst die Berechtigung haben, Nutzer einzuladen, um diese Aktion ausführen zu können.",
"You need to be logged in.": "Du musst angemeldet sein.",
"There are no visible files in this room": "Es gibt keine sichtbaren Dateien in diesem Raum",
"Error changing language": "Fehler beim Ändern der Sprache",
"Riot was unable to find the correct Data for the selected Language.": "Riot war nicht in der Lage die korrekten Daten für die ausgewählte Sprache zu finden.",
"Connectivity to the server has been lost.": "Verbindung zum Server untergebrochen.",
"Sent messages will be stored until your connection has returned.": "Gesendete Nachrichten werden gespeichert bis die Verbindung wiederhergestellt wurde.",
"Sent messages will be stored until your connection has returned.": "Gesendete Nachrichten werden gespeichert, bis die Internetverbindung wiederhergestellt wurde.",
"Auto-complete": "Autovervollständigung",
"Resend all": "Alles erneut senden",
"Resend all": "Alle erneut senden",
"cancel all": "alles abbrechen",
"now. You can also select individual messages to resend or cancel.": "jetzt. Du kannst auch einzelne Nachrichten zum erneuten Senden oder Abbrechen auswählen.",
"Active call": "Aktiver Anruf",
@ -415,11 +413,11 @@
"de": "Deutsch",
"da": "Dänisch",
"ru": "Russisch",
"Drop here %(toAction)s": "Hierher ziehen: %(toAction)s",
"Drop here to tag %(section)s": "Hierher ziehen: %(section)s taggen",
"Drop here %(toAction)s": "Hierher ziehen: %(toAction)s",
"Drop here to tag %(section)s": "Hierher ziehen: %(section)s taggen",
"Press": "Drücke",
"tag as %(tagName)s": "als %(tagName)s taggen",
"to browse the directory": "um das Verzeichnis anzusehen",
"to browse the directory": "um das Raum-Verzeichnis zu durchsuchen",
"to demote": "um die Priorität herabzusetzen",
"to favourite": "zum Favorisieren",
"to make a room or": "um einen Raum zu erstellen, oder",
@ -428,12 +426,12 @@
"to tag direct chat": "als direkten Chat markieren",
"You're not in any rooms yet! Press": "Du bist noch keinem Raum beigetreten! Drücke",
"click to reveal": "Klicke zum anzeigen",
"To remove other users' messages": "Um Nachrichten anderer zu verbergen",
"To remove other users' messages": "Um Nachrichten anderer Nutzer zu verbergen",
"You are trying to access %(roomName)s": "Du versuchst auf %(roomName)s zuzugreifen",
"af": "Afrikaans",
"ar-ae": "Arabisch (U.A.E.)",
"ar-ae": "Arabisch (VAE)",
"ar-bh": "Arabisch (Bahrain)",
"ar-dz": "Arabisch (Algeria)",
"ar-dz": "Arabisch (Algerien)",
"ar-eg": "Arabisch (Ägypten)",
"ar-iq": "Arabisch (Irak)",
"ar-jo": "Arabisch (Jordanien)",
@ -442,11 +440,11 @@
"ar-ly": "Arabisch (Lybien)",
"ar-ma": "Arabisch (Marokko)",
"ar-om": "Arabisch (Oman)",
"ar-qa": "Arabisch (Qatar)",
"ar-qa": "Arabisch (Katar)",
"ar-sa": "Arabisch (Saudi Arabien)",
"ar-sy": "Arabisch (Syrien)",
"ar-tn": "Arabisch (Tunesien)",
"ar-ye": "Arabisch (Yemen)",
"ar-ye": "Arabisch (Jemen)",
"be": "Weißrussisch",
"bg": "Bulgarisch",
"cs": "Tschechisch",
@ -454,7 +452,7 @@
"de-ch": "Deutsch (Schweiz)",
"de-li": "Deutsch (Liechtenstein)",
"de-lu": "Deutsch (Luxemburg)",
"el": "Griechisch",
"el": "Neugriechisch",
"en-au": "Englisch (Australien)",
"en-bz": "Englisch (Belize)",
"en-ca": "Englisch (Kanada)",
@ -464,17 +462,17 @@
"en-nz": "Englisch (Neuseeland)",
"en-tt": "Englisch (Trinidad)",
"en-us": "Englisch (Vereinigte Staaten)",
"en-za": "Englisch (Süd-Afrika)",
"en-za": "Englisch (Südafrika)",
"es-ar": "Spanisch (Argentinien)",
"es-bo": "Spanisch (Bolivien)",
"es-cl": "Spanisch (Chile)",
"es-co": "Spanisch (Kolombien)",
"es-co": "Spanisch (Kolumbien)",
"es-cr": "Spanisch (Costa Rica)",
"es-do": "Spanisch (Dominikanische Republik)",
"es-ec": "Spanisch (Ecuador)",
"es-gt": "Spanisch (Guatemala)",
"es-hn": "Spanisch (Honduras)",
"es-mx": "Spanisch (Mexico)",
"es-mx": "Spanisch (Mexiko)",
"es-ni": "Spanisch (Nicaragua)",
"es-pa": "Spanisch (Panama)",
"es-pe": "Spanisch (Peru)",
@ -514,9 +512,9 @@
"pl": "Polnisch",
"pt": "Portugiesisch",
"rm": "Rätoromanisch",
"ro-mo": "Rumänisch (Republik von Moldavien)",
"ro": "Romanian",
"ru-mo": "Russisch",
"ro-mo": "Rumänisch (Republik Moldau/Moldawien)",
"ro": "Rumänisch",
"ru-mo": "Russisch (Republik Moldau/Moldawien)",
"sb": "Sorbisch",
"sk": "Slowakisch",
"sl": "Slowenisch",
@ -525,7 +523,7 @@
"sv-fi": "Schwedisch (Finnland)",
"sv": "Schwedisch",
"sx": "Sutu",
"sz": "Samisch (Lappish)",
"sz": "Samisch (Lappisch)",
"th": "Thailändisch",
"tn": "Setswana",
"tr": "Türkisch",
@ -534,7 +532,7 @@
"ur": "Urdu",
"ve": "Tshivenda",
"vi": "Vietnamesisch",
"zh-cn": "Chinesisch (PRC)",
"zh-cn": "Chinesisch (Volksrepublik China)",
"zh-hk": "Chinesisch (Hong Kong SAR)",
"zh-sg": "Chinesisch (Singapur)",
"zh-tw": "Chinesisch (Taiwan)",
@ -559,38 +557,38 @@
"and one other...": "und ein(e) weitere(r)...",
"Are you sure?": "Bist du sicher?",
"Attachment": "Anhang",
"Ban": "Banne",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Kann nicht zum Heimserver verbinden - bitte checke eine Verbindung und stelle sicher, dass dem %(urlStart)s SSL-Zertifikat deines Heimservers %(urlEnd)s vertraut wird",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Kann nicht zum Heimserver via HTTP verbinden, wenn eine HTTPS-Url in deiner Adresszeile steht. Nutzer HTTPS oder %(urlStart)s aktiviere unsichere Skripte %(urlEnd)s",
"Ban": "Verbannen",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Kann nicht zum Heimserver verbinden - bitte checke eine Verbindung und stelle sicher, dass dem <a>SSL-Zertifikat deines Heimservers</a> vertraut wird.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Kann nicht zum Heimserver via HTTP verbinden, wenn eine HTTPS-Url in deiner Adresszeile steht. Nutzer HTTPS oder <a>aktiviere unsichere Skripte</a>.",
"changing room on a RoomView is not supported": "Das Ändern eines Raumes in einer RaumAnsicht wird nicht unterstützt",
"Click to mute audio": "Klicke um den Ton stumm zu stellen",
"Click to mute video": "Klicke um das Video stumm zu stellen",
"Click to mute video": "Klicken, um das Video stummzuschalten",
"Command error": "Befehlsfehler",
"Decrypt %(text)s": "Entschlüssele %(text)s",
"Delete": "Lösche",
"Delete": "Löschen",
"Devices": "Geräte",
"Direct chats": "Direkte Chats",
"Disinvite": "Ausladen",
"Disinvite": "Einladung zurückziehen",
"Download %(text)s": "%(text)s herunterladen",
"Enter Code": "Code eingeben",
"Failed to ban user": "Bannen des Nutzers fehlgeschlagen",
"Failed to change power level": "Ändern des Berechtigungslevels fehlgeschlagen",
"Failed to delete device": "Löschen des Geräts fehlgeschlagen",
"Failed to join room": "Raumbeitritt fehlgeschlagen",
"Failed to join room": "Betreten des Raumes ist fehlgeschlagen",
"Failed to kick": "Kicken fehlgeschlagen",
"Failed to mute user": "Nutzer lautlos zu stellen fehlgeschlagen",
"Failed to reject invite": "Einladung abzulehnen fehlgeschlagen",
"Failed to save settings": "Einstellungen speichern fehlgeschlagen",
"Failed to set display name": "Anzeigenamen zu ändern fehlgeschlagen",
"Failed to mute user": "Stummschalten des Nutzers fehlgeschlagen",
"Failed to reject invite": "Ablehnen der Einladung ist fehlgeschlagen",
"Failed to save settings": "Einstellungen konnten nicht gespeichert werden",
"Failed to set display name": "Anzeigename konnte nicht gesetzt werden",
"Fill screen": "Fülle Bildschirm",
"Guest users can't upload files. Please register to upload": "Gäste können keine Dateien hochladen. Bitte zunächst registrieren",
"Hide Text Formatting Toolbar": "Verberge Text-Formatierungs-Toolbar",
"Incorrect verification code": "Verifikationscode inkorrekt",
"Incorrect verification code": "Falscher Verifizierungscode",
"Invalid alias format": "Ungültiges Alias-Format",
"Invalid address format": "Ungültiges Adressformat",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' ist kein valides Adressformat",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' ist kein gültiges Adressformat",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' hat kein valides Aliasformat",
"Join Room": "Raum beitreten",
"Join Room": "Dem Raum beitreten",
"Kick": "Kicke",
"Level": "Level",
"Local addresses for this room:": "Lokale Adressen dieses Raumes:",
@ -600,29 +598,29 @@
"New address (e.g. #foo:%(localDomain)s)": "Neue Adresse (z.B. #foo:%(localDomain)s)",
"not set": "nicht gesetzt",
"not specified": "nicht spezifiziert",
"No devices with registered encryption keys": "Keine Geräte mit registrierten Verschlüsselungsschlüsseln",
"No devices with registered encryption keys": "Keine Geräte mit registrierten Verschlüsselungs-Schlüsseln",
"No more results": "Keine weiteren Ergebnisse",
"No results": "Keine Ergebnisse",
"OK": "OK",
"Revoke Moderator": "Moderator zurückziehen",
"Search": "Suche",
"Search failed": "Suche fehlgeschlagen",
"Server error": "Serverfehler",
"Server may be unavailable, overloaded, or search timed out :(": "Server ist entweder nicht verfügbar, überlastet oder die Suchezeit ist abgelaufen :(",
"Search": "Suchen",
"Search failed": "Suche ist fehlgeschlagen",
"Server error": "Server-Fehler",
"Server may be unavailable, overloaded, or search timed out :(": "Der Server ist entweder nicht verfügbar, überlastet oder die Suche wurde wegen Zeitüberschreitung abgebrochen :(",
"Server may be unavailable, overloaded, or the file too big": "Server ist entweder nicht verfügbar, überlastet oder die Datei ist zu groß",
"Server unavailable, overloaded, or something else went wrong": "Server ist entweder nicht verfügbar, überlastet oder etwas anderes schlug fehl",
"Server unavailable, overloaded, or something else went wrong": "Der Server ist entweder nicht verfügbar, überlastet oder es liegt ein anderweitiger Fehler vor",
"Some of your messages have not been sent": "Einige deiner Nachrichten wurden noch nicht gesendet",
"Submit": "Absenden",
"The main address for this room is: %(canonical_alias_section)s": "Die Hauptadresse für diesen Raum ist: %(canonical_alias_section)s",
"This action cannot be performed by a guest user. Please register to be able to do this": "Diese Aktion kann nicht von einem Gast ausgeführt werden. Bitte registriere dich um dies zu tun",
"%(actionVerb)s this person?": "Diese Person %(actionVerb)s?",
"This room has no local addresses": "Dieser Raum hat keine lokale Adresse",
"This room is private or inaccessible to guests. You may be able to join if you register": "Dieser Raum ist privat oder für Gäste nicht zugreifbar. Du kannst evtl. zugreifen, wenn du dich registrierst",
"This room is private or inaccessible to guests. You may be able to join if you register": "Dieser Raum ist privat oder für Gäste nicht zugänglich. Du kannst jedoch eventuell beitreten, wenn du dich registrierst",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question": "Versuchte einen spezifischen Punkt in der Raum-Chronik zu laden, aber du hast keine Berechtigung die angeforderte Nachricht anzuzeigen",
"Tried to load a specific point in this room's timeline, but was unable to find it": "Versuchte einen spezifischen Punkt in der Raum-Chronik zu laden, aber er konnte nicht gefunden werden",
"Tried to load a specific point in this room's timeline, but was unable to find it": "Der Versuch, einen spezifischen Punkt im Chatverlauf zu laden, ist fehlgeschlagen. Der Punkt konnte nicht gefunden werden",
"Turn Markdown off": "Markdown abschalten",
"Turn Markdown on": "Markdown einschalten",
"Unable to load device list": "Laden der Geräteliste nicht möglich",
"Unable to load device list": "Geräteliste konnte nicht geladen werden",
"Unknown command": "Unbekannter Befehl",
"Unknown room %(roomId)s": "Unbekannter Raum %(roomId)s",
"Usage: /markdown on|off": "Verwendung: /markdown on|off",
@ -640,25 +638,25 @@
"code": "Code",
"quote": "Zitat",
"bullet": "Aufzählung",
"Click to unmute video": "Klicke um Video zu reaktivieren",
"Click to unmute audio": "Klicke um Ton zu reaktivieren",
"Click to unmute video": "Klicken, um die Video-Stummschaltung zu deaktivieren",
"Click to unmute audio": "Klicken, um den Ton wieder einzuschalten",
"Failed to load timeline position": "Laden der Position im Zeitstrahl fehlgeschlagen",
"Failed to toggle moderator status": "Umschalten des Moderatorstatus fehlgeschlagen",
"Failed to toggle moderator status": "Umschalten des Moderator-Status fehlgeschlagen",
"Enable encryption": "Verschlüsselung aktivieren",
"The main address for this room is": "Die Hauptadresse für diesen Raum ist",
"Autoplay GIFs and videos": "Automatisch GIF's und Videos abspielen",
"Don't send typing notifications": "Nicht senden, wenn ich tippe",
"Hide read receipts": "Verberge Lesebestätigungen",
"Autoplay GIFs and videos": "GIF-Dateien und Videos automatisch abspielen",
"Don't send typing notifications": "Schreibbenachrichtigungen unterdrücken",
"Hide read receipts": "Lesebestätigungen verbergen",
"Never send encrypted messages to unverified devices in this room": "In diesem Raum keine verschlüsselten Nachrichten an unverifizierte Geräte senden",
"numbullet": "Nummerierung",
"%(items)s and %(remaining)s others": "%(items)s und %(remaining)s weitere",
"%(items)s and one other": "%(items)s und ein(e) weitere(r)",
"%(items)s and %(lastItem)s": "%(items)s und %(lastItem)s",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)strat(en) %(repeats)s mal bei",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)ssind dem Raum %(repeats)s mal beigetreten",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)strat %(repeats)s mal bei",
"%(severalUsers)sjoined": "%(severalUsers)straten bei",
"%(oneUser)sjoined": "%(oneUser)strat bei",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sgingen %(repeats)s mal",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sverließen %(repeats)s mal den Raum",
"%(oneUser)sleft %(repeats)s times": "%(oneUser)sging %(repeats)s mal",
"%(severalUsers)sleft": "%(severalUsers)shaben den Raum verlassen",
"%(oneUser)sleft": "%(oneUser)sging",
@ -671,7 +669,7 @@
"%(severalUsers)sleft and rejoined": "%(severalUsers)s gingen und traten erneut bei",
"%(oneUser)sleft left and rejoined": "%(oneUser)sging und trat erneut bei",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)s lehnten %(repeats)s mal ihre Einladung ab",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)s lehnte seine/ihre Einladung %(repeats)s mal ab",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)shat die Einladung %(repeats)s mal abgelehnt",
"%(severalUsers)srejected their invitations": "%(severalUsers)slehnten ihre Einladung ab",
"%(oneUser)srejected their invitation": "%(oneUser)slehnte seine/ihre Einladung ab",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)szogen ihre Einladungen %(repeats)s mal zurück",
@ -681,44 +679,44 @@
"were invited %(repeats)s times": "wurden %(repeats)s mal eingeladen",
"was invited %(repeats)s times": "wurde %(repeats)s mal eingeladen",
"were invited": "wurden eingeladen",
"were banned %(repeats)s times": "wurden %(repeats)s mal gebannt",
"was banned %(repeats)s times": "wurde %(repeats)s mal gebannt",
"were banned": "wurden gebannt",
"were banned %(repeats)s times": "wurden %(repeats)s mal aus dem Raum ausgeschlossen",
"was banned %(repeats)s times": "wurde %(repeats)s mal aus dem Raum ausgeschlossen",
"were banned": "wurden aus dem Raum ausgeschlossen",
"were unbanned %(repeats)s times": "wurden %(repeats)s mal entbannt",
"was unbanned %(repeats)s times": "wurde %(repeats)s mal entbannt",
"were unbanned": "wurden entbannt",
"were kicked %(repeats)s times": "wurden %(repeats)s mal gekickt",
"was kicked %(repeats)s times": "wurde %(repeats)s mal gekickt",
"were kicked": "wurden gekickt",
"were kicked": "wurden aus dem Raum entfernt",
"%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)sänderten %(repeats)s mal ihre Namen",
"%(oneUser)schanged their name %(repeats)s times": "%(oneUser)sänderte %(repeats)s mal seinen/ihren Namen",
"%(severalUsers)schanged their name": "%(severalUsers)sänderten ihre Namen",
"%(severalUsers)schanged their name": "%(severalUsers)shaben ihre Namen geändert",
"%(oneUser)schanged their name": "%(oneUser)sänderte seinen/ihren Namen",
"%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)sänderten %(repeats)s mal ihren Avatar",
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)sänderte %(repeats)s mal seinen/ihren Avatar",
"%(severalUsers)schanged their avatar": "%(severalUsers)sänderten ihre Avatare",
"%(oneUser)schanged their avatar": "%(oneUser)sänderte seinen/ihren Avatar",
"%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)shaben %(repeats)s mal ihr Profilbild geändert",
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)shat %(repeats)s mal das Profilbild geändert",
"%(severalUsers)schanged their avatar": "%(severalUsers)shaben ihr Profilbild geändert",
"%(oneUser)schanged their avatar": "%(oneUser)shat das Profilbild geändert",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(day)s. %(monthName)s %(fullYear)s %(time)s",
"%(oneUser)sleft and rejoined": "%(oneUser)s ging und trat erneut bei",
"%(oneUser)sleft and rejoined": "%(oneUser)sverließ den Raum und trat erneut bei",
"A registered account is required for this action": "Für diese Aktion ist ein registrierter Account notwendig",
"Access Token:": "Zugangs-Token:",
"Always show message timestamps": "Immer Nachrichten-Zeitstempel anzeigen",
"Authentication": "Authentifikation",
"An error has occurred.": "Ein Fehler passierte.",
"Always show message timestamps": "Nachrichten-Zeitstempel immer anzeigen",
"Authentication": "Authentifizierung",
"An error has occurred.": "Ein Fehler ist aufgetreten.",
"Confirm password": "Passwort bestätigen",
"Current password": "Aktuelles Passwort",
"Email": "E-Mail",
"Interface Language": "Oberflächen-Sprache",
"Logged in as:": "Angemeldet als:",
"matrix-react-sdk version:": "Version von matrix-react-sdk:",
"New passwords don't match": "Neue Passwörter nicht gleich",
"New passwords don't match": "Die neuen Passwörter stimmen nicht überein",
"olm version:": "Version von olm:",
"Passwords can't be empty": "Passwörter dürfen nicht leer sein",
"Registration required": "Registrierung benötigt",
"Report it": "Melde es",
"Passwords can't be empty": "Passwortfelder dürfen nicht leer sein",
"Registration required": "Registrierung erforderlich",
"Report it": "Melde ihn",
"riot-web version:": "Version von riot-web:",
"Scroll to bottom of page": "Zum Ende der Seite springen",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Zeige Zeitstempel im 12-Stunden-Format (z. B. 2:30pm)",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Zeitstempel im 12-Stunden-Format anzeigen (z. B. 2:30pm)",
"to tag as %(tagName)s": "um als \"%(tagName)s\" zu markieren",
"Email address": "E-Mail-Adresse",
"Error decrypting attachment": "Fehler beim Entschlüsseln des Anhangs",
@ -733,13 +731,13 @@
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s löschte den Raumnamen.",
"Passphrases must match": "Passphrase muss übereinstimmen",
"Passphrase must not be empty": "Passphrase darf nicht leer sein",
"Export room keys": "Exportiere Raum-Schlüssel",
"Enter passphrase": "Gebe Passphrase ein",
"Export room keys": "Raum-Schlüssel exportieren",
"Enter passphrase": "Passphrase eingeben",
"Confirm passphrase": "Bestätige Passphrase",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Die Export-Datei wird mit einer Passphrase geschützt sein. Du solltest die Passphrase hier eingeben um die Datei zu entschlüsseln.",
"You must join the room to see its files": "Du musst dem Raum beitreten um seine Dateien zu sehen",
"You must join the room to see its files": "Du musst dem Raum beitreten, um die Raum-Dateien sehen zu können",
"Server may be unavailable, overloaded, or you hit a bug.": "Server ist nicht verfügbar, überlastet oder du bist auf einen Fehler gestoßen.",
"Reject all %(invitedRooms)s invites": "Lehne alle %(invitedRooms)s Einladungen ab",
"Reject all %(invitedRooms)s invites": "Alle %(invitedRooms)s Einladungen ablehnen",
"Start new Chat": "Starte neuen Chat",
"Guest users can't invite users. Please register.": "Gäste können keine Nutzer einladen. Bitte registrieren.",
"Failed to invite": "Einladen fehlgeschlagen",
@ -747,26 +745,26 @@
"Confirm Removal": "Entfernen bestätigen",
"Unknown error": "Unbekannter Fehler",
"Incorrect password": "Inkorrektes Passwort",
"This action is irreversible.": "Diese Aktion ist irreversibel.",
"This action is irreversible.": "Diese Aktion kann nicht rückgängig gemacht werden.",
"To continue, please enter your password.": "Zum fortfahren bitte Passwort eingeben.",
"Device name": "Geräte-Name",
"Device key": "Geräte-Schlüssel",
"In future this verification process will be more sophisticated.": "In Zukunft wird der Verifikationsprozess eleganter.",
"In future this verification process will be more sophisticated.": "Zukünftig wird dieser Verifizierungsprozess technisch ausgereifter und eleganter gestaltet werden.",
"Verify device": "Gerät verifizieren",
"I verify that the keys match": "Ich bestätige, dass die Schlüssel passen",
"Unable to restore session": "Sitzungswiederherstellung fehlgeschlagen",
"Continue anyway": "Fahre trotzdem fort",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Dein Anzeigename ist dein Name der anderen gezeigt wird, wenn du in Räumen sprichst. Wie möchtest du ihn haben?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Do blockst aktuell unverifizierte Geräte. Um Nachrichten an diese Geräte zu senden must du sie verifizieren",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" enthält Geräte die du noch nicht gesehen hast.",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Dein Anzeigename ist der Name, der anderen Nutzern angezeigt wird, wenn du in Räumen sprichst. Welchen Anzeigenamen möchtest du wählen?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Do blockst aktuell unverifizierte Geräte. Um Nachrichten an diese Geräte zu senden musst du sie verifizieren.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" enthält Geräte, die du bislang noch nicht gesehen hast.",
"Unknown devices": "Unbekannte Geräte",
"Unknown Address": "Unbekannte Adresse",
"Verify...": "Verifizieren...",
"ex. @bob:example.com": "z.B. @bob:example.com",
"ex. @bob:example.com": "z. B. @bob:example.com",
"Add User": "Nutzer hinzufügen",
"Sign in with CAS": "Mit CAS anmelden",
"Custom Server Options": "Erweiterte Server-Optionen",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Du kannst die erweiterten Server-Optionen nutzen um dich an anderen Matrix-Servern anzumelden indem die eine andere Heimserver-URL angibst.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Du kannst die erweiterten Server-Optionen nutzen, um dich an anderen Matrix-Servern anzumelden, indem du eine andere Heimserver-URL angibst.",
"This allows you to use this app with an existing Matrix account on a different home server.": "Dies erlaubt dir diese App mit einem existierenden Matrix-Konto auf einem anderen Heimserver zu verwenden.",
"Dismiss": "Ablehnen",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Du kannst auch einen angepassten Idantitätsserver angeben aber dies wird typischerweise Interaktionen mit anderen Nutzern auf Basis der E-Mail-Adresse verhindern.",
@ -781,7 +779,7 @@
"Custom server": "Angepasster Server",
"Home server URL": "Heimserver-URL",
"Identity server URL": "Identitätsserver-URL",
"What does this mean?": "Was bedeutet es?",
"What does this mean?": "Was bedeutet das?",
"Error decrypting audio": "Audio-Entschlüsselung fehlgeschlagen",
"Error decrypting image": "Bild-Entschlüsselung fehlgeschlagen",
"Image '%(Body)s' cannot be displayed.": "Das Bild '%(Body)s' kann nicht angezeigt werden.",
@ -789,16 +787,16 @@
"Error decrypting video": "Video-Entschlüsselung fehlgeschlagen",
"Import room keys": "Importiere Raum-Schlüssel",
"File to import": "Datei zum Importieren",
"Failed to invite the following users to the %(roomName)s room:": "Einladen folgender Nutzer in den Raum \"%(roomName)s\" schlug fehl:",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Bist du sicher, dass du dieses Ereignis löschen willst? Wenn du einen Raum-Namen- oder Themen-Änderung löscht, kann dies die Änderung rückgängig machen.",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Dieser Prozess erlaubt dir die Schlüssel für in verschlüsselten Räumen empfangene Nachrichten in eine lokale Datei zu exportieren. In Zukunft wirst du diese Datei in einen anderen Matrix-Client importieren können, sodass dieser Client ebenfalls diese Nachrichten entschlüsseln kann.",
"Failed to invite the following users to the %(roomName)s room:": "Das Einladen der folgenden Nutzer in den Raum \"%(roomName)s\" ist fehlgeschlagen:",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Bist du sicher, dass du dieses Ereignis entfernen (löschen) möchtest? Wenn du die Änderung eines Raum-Namens oder eines Raum-Themas löscht, kann dies dazu führen, dass die ursprüngliche Änderung rückgängig gemacht wird.",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Dieser Prozess erlaubt es dir, die Schlüssel für in verschlüsselten Räumen empfangene Nachrichten in eine lokale Datei zu exportieren. In Zukunft wird es möglich sein, diese Datei in einen anderen Matrix-Client zu importieren, sodass dieser Client ebenfalls diese Nachrichten entschlüsseln kann.",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "Die exportierte Datei erlaubt jedem, der diese lesen kann, jede verschlüsselte Nachricht zu entschlüsseln die du sehen kannst. Du solltest sie also sicher verwahren. Um dabei zu helfen, solltest du unten eine Passphrase eingeben, die dazu verwendet wird, die exportierten Daten zu verschlüsseln. Anschließend ist es nur möglich die Daten zu lesen, wenn dieselbe Passphrase verwendet wird.",
"Analytics": "Analyse",
"Opt out of analytics": "Zustimmung zur Analyse verweigern",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot sammeln anonyme Daten damit wir die Anwendung verbessern können.",
"Analytics": "Anonymisierte Analysedaten",
"Opt out of analytics": "Zustimmung zur Übermittlung von anonymisierten Analysedaten verweigern",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot sammelt anonymisierte Analysedaten, um die Anwendung kontinuierlich verbessern zu können.",
"Add an Integration": "Eine Integration hinzufügen",
"Removed or unknown message type": "Gelöschte oder unbekannter Nachrichten-Typ",
"Disable URL previews by default for participants in this room": "Deaktiviere standardmäßig die URL-Vorschau für Teilnehmer dieses Raumes",
"Disable URL previews by default for participants in this room": "URL-Vorschau für Teilnehmer dieses Raumes standardmäßig deaktivieren",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL-Vorschau ist standardmäßig %(globalDisableUrlPreview)s für Teilnehmer dieses Raumes.",
"URL Previews": "URL-Vorschau",
"Enable URL previews for this room (affects only you)": "Aktiviere die URL-Vorschau in diesem Raum (betrifft nur dich)",
@ -807,17 +805,88 @@
" (unsupported)": " (nicht unterstützt)",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Diese Vorgehensweise erlaubt es dir, die zuvor von einem anderen Matrix-Client exportierten Verschlüsselungs-Schlüssel zu importieren. Danach kannst du alle Nachrichten entschlüsseln, die auch bereits auf dem anderen Client entschlüsselt werden konnten.",
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Dies wird dein Konto permanent unbenutzbar machen. Du wirst dich nicht mit derselben Nutzer-ID erneut registrieren können.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Um zu bestätigen, dass diesem Gerät vertraut werden kann, kontaktiere bitte den Eigentümer über einen anderen Weg (z.B. Telefon-Anruf) und frage, ob der Schlüssel, den sie in den Nutzer-Einstellungen für dieses Gerät sehen dem folgenden gleicht:",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Um sicherzustellen, dass diesem Gerät vertraut werden kann, kontaktiere bitte den Eigentümer des Geräts über ein anderes Kommunikationsmittel (z.B. im persönlichen Gespräch oder durch einen Telefon-Anruf) und vergewissere dich, dass der Schlüssel, den der Eigentümer in den Nutzer-Einstellungen für dieses Gerät sieht, mit dem folgenden Schlüssel identisch ist:",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Wenn er passt, betätige den Bestätigen-Button unten. Wenn nicht, fängt jemand anderes dieses Gerät ab und du möchtest wahrscheinlich lieber den Blacklist-Button betätigen.",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Wir sind auf einen Fehler gestoßen während wir deine vorherige Sitzung wiederherstellen wollten. Wenn du fortfährst, wirst du dich erneut anmelden müssen und die verschlüsselte Chat-Historie wir unlesbar sein.",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Wenn du vorher eine aktuellere Version von Riot verwendet hast, ist deine Sitzung wohlmöglich inkompatibel mit dieser Version. Schließe dieses Fenster und kehre zur aktuelleren Version zurück.",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Bei der Wiederherstellung deiner vorherigen Sitzung ist ein Fehler aufgetreten. Um fortzufahren, musst du dich erneut anmelden. Eine zuvor verschlüsselte Chat-Historie wird in der Folge nicht mehr lesbar sein.",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Wenn du zuvor eine aktuellere Version von Riot verwendet hast, ist deine Sitzung eventuell inkompatibel mit dieser Version. Bitte schließe dieses Fenster und kehre zur aktuelleren Version zurück.",
"Blacklist": "Blockieren",
"Unblacklist": "Entblockieren",
"Unverify": "Entverifizieren",
"This Home Server would like to make sure you are not a robot": "Dieser Heimserver möchte sicherstellen, dass du kein Roboter bist",
"Drop file here to upload": "Datei hier loslassen zum hochladen",
"Idle": "inaktiv",
"Idle": "Untätig",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Wir empfehlen dir für jedes Gerät durch den Verifizierungsprozess zu gehen um zu bestätigen, dass sie ihrem legitimierten Besitzer gehören, aber du kannst die Nachrichten ohne Verifizierung erneut senden, wenn du es vorziehst.",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Laufendes Konferenzgespräch%(supportedText)s. %(joinText)s",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Du wirst jetzt auf eine Drittanbieter-Website weitergeleitet, damit du dein Konto authentifizieren kannst für die Verwendung mit %(integrationsUrl)s. Möchtest du fortfahren?"
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Du wirst jetzt auf die Website eines Drittanbieters weitergeleitet, damit du dein Konto für die Verwendung von %(integrationsUrl)s authentifizieren kannst. Möchtest du fortfahren?",
"Disable URL previews for this room (affects only you)": "URL-Vorschau für diesen Raum deaktivieren (betrifft nur dich)",
"Start automatically after system login": "Starte automatisch nach System-Login",
"Desktop specific": "Desktopspezifisch",
"Jump to first unread message.": "Zur ersten ungelesenen Nachricht springen.",
"Options": "Optionen",
"disabled": "deaktiviert",
"enabled": "aktiviert",
"Invited": "Eingeladen",
"Set a Display Name": "Setze einen Anzeigenamen",
"for %(amount)ss": "für %(amount)ss",
"for %(amount)sm": "für %(amount)sm",
"for %(amount)sh": "für %(amount)sh",
"for %(amount)sd": "für %(amount)sd",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s hat das Raum-Bild entfernt.",
"VoIP": "VoIP",
"No Webcams detected": "Keine Webcam erkannt",
"Missing Media Permissions, click here to request.": "Fehlende Medienberechtigungen. Klicke hier um anzufragen.",
"No Microphones detected": "Keine Mikrofone erkannt",
"No media permissions": "Keine Medienberechtigungen",
"You may need to manually permit Riot to access your microphone/webcam": "Gegebenenfalls kann es notwendig sein, dass du Riot manuell den Zugriff auf dein Mikrofon bzw. deine Webcam gewähren musst",
"Default Device": "Standard-Gerät",
"Microphone": "Mikrofon",
"Camera": "Kamera",
"Conference call failed.": "Konferenzgespräch fehlgeschlagen.",
"Conference calling is in development and may not be reliable.": "Konferenzgespräche befinden sich noch in der Entwicklungsphase und sind möglicherweise nicht zuverlässig nutzbar.",
"Device already verified!": "Gerät bereits verifiziert!",
"Export": "Export",
"Failed to register as guest:": "Registrieren als Gast schlug fehl:",
"Guest access is disabled on this Home Server.": "Gastzugang ist auf diesem Heimserver deaktivert.",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Gastnutzer können keine neuen Räume erstellen. Bitte registriere dich um Räume zu erstellen und Chats zu starten.",
"Import": "Import",
"Incorrect username and/or password.": "Inkorrekter Nutzername und/oder Passwort.",
"Results from DuckDuckGo": "Ergebnisse von DuckDuckGo",
"Server unavailable, overloaded, or something else went wrong.": "Server nicht verfügbar, überlastet oder etwas anderes lief falsch.",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Den Signaturschlüssel den du bereitstellst stimmt mit dem Schlüssel den du von %(userId)s's Gerät %(deviceId)s empfangen hast überein. Gerät als verifiziert markiert.",
"Add a topic": "Thema hinzufügen",
"Anyone": "Jeder",
"Are you sure you want to leave the room '%(roomName)s'?": "Bist du sicher, dass du den Raum '%(roomName)s' verlassen willst?",
"Custom level": "Benutzerdefiniertes Berechtigungslevel",
"(default: %(userName)s)": "(Standard: %(userName)s)",
"Device ID:": "Geräte-ID:",
"device id: ": "Geräte-ID: ",
"Device key:": "Geräte-Schlüssel:",
"Email address (optional)": "E-Mail-Adresse (optional)",
"List this room in %(domain)s's room directory?": "Liste diesen Raum in %(domain)s's Raumverzeichnis?",
"Mobile phone number (optional)": "Handynummer (optional)",
"Password:": "Passwort:",
"Register": "Registrieren",
"Save": "Speichern",
"Setting a user name will create a fresh account": "Die Eingabe eines Benutzernamens wird ein neues Konto erzeugen",
"Tagged as: ": "Getaggt als: ",
"This Home Server does not support login using email address.": "Dieser Heimserver unterstützt den Login mittels E-Mail-Adresse nicht.",
"There was a problem logging in.": "Es gab ein Problem beim anmelden.",
"Unknown (user, device) pair:": "Unbekanntes (Nutzer-/Gerät-)Paar:",
"Remote addresses for this room:": "Entfernte Raum-Adressen für diesen Raum:",
"Unrecognised command:": "Unbekannter Befehl:",
"Unrecognised room alias:": "Unbekannter Raum-Alias:",
"Use compact timeline layout": "Nutze kompaktes Zeitstrahl-Layout",
"Verified key": "Verifizierter Schlüssel",
"WARNING: Device already verified, but keys do NOT MATCH!": "WARNUNG: Gerät bereits verifiziert, aber Schlüssel sind NICHT GLEICH!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "WARNUNG: SCHLÜSSEL-VERIFIZIERUNG FEHLGESCHLAGEN! Der Signatur-Schlüssel für %(userId)s und Gerät %(deviceId)s ist \"%(fprint)s\" welche nicht dem bereitgestellten Schlüssel \"%(fingerprint)s\" übereinstimmen. Dies kann bedeuten, dass deine Kommunikation abgefangen wird!",
"You are already in a call.": "Du bist bereits in einem Gespräch.",
"You cannot place a call with yourself.": "Du kannst keinen Anruf mit dir selbst starten.",
"You cannot place VoIP calls in this browser.": "Du kannst keine VoIP-Gespräche in diesem Browser starten.",
"You have <a>disabled</a> URL previews by default.": "Du hast die URL-Vorschau standardmäßig <a>deaktiviert</a>.",
"You have <a>enabled</a> URL previews by default.": "Du hast die URL-Vorschau standardmäßig <a>aktiviert</a>.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "Du hast einen ungültigen Kontakt eingegeben. Versuche es mit der Matrix-ID oder der E-Mail-Adresse.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Deine E-Mail-Adresse scheint nicht mit einer Matrix-ID auf diesem Heimserver verbunden zu sein.",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName hat das Raum-Bild geändert zu <img/>",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s hat das Raum-Bild für %(roomName)s geändert",
"Hide removed messages": "Gelöschte Nachrichten verbergen"
}

386
src/i18n/strings/el.json Normal file
View file

@ -0,0 +1,386 @@
{
"af": "Αφρικάνικα",
"Error": "Σφάλμα",
"Failed to forget room %(errCode)s": "Δεν ήταν δυνατή η διαγραφή του δωματίου",
"Failed to join the room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο",
"Mute": "Σίγαση",
"Notifications": "Ειδοποιήσεις",
"Operation failed": "Η λειτουργία απέτυχε",
"Please Register": "Παρακαλώ εγγραφείτε",
"Remove": "Αφαίρεσε",
"Search": "Αναζήτηση",
"Settings": "Ρυθμίσεις",
"unknown error code": "άγνωστος κωδικός σφάλματος",
"Sunday": "Κυριακή",
"ar-ae": "Αραβικά (Η.Α.Ε)",
"ar-bh": "Αραβικά (Μπαχρέιν)",
"ar-dz": "Αραβικά (Αλγερία)",
"ar-eg": "Αραβικά (Αίγυπτος)",
"ar-iq": "Αραβικά (Ιράκ)",
"ar-jo": "Αραβικά (Ιορδανία)",
"ar-kw": "Αραβικά (Κουβέιτ)",
"ar-lb": "Αραβικά (Λίβανος)",
"ar-ly": "Αραβικά (Λιβύη)",
"ar-ma": "Αραβικά (Μαρόκο)",
"ar-om": "Αραβικά (Ομάν)",
"ar-qa": "Αραβικά (Κατάρ)",
"ar-sa": "Αραβικά (Σαουδική Αραβία)",
"ar-sy": "Αραβικά (Συρία)",
"ar-tn": "Αραβικά (Τυνισία)",
"ar-ye": "Αραβικά (Υεμένη)",
"accept": "αποδοχή",
"%(targetName)s accepted an invitation.": "%(targetName)s δέχτηκε την πρόσκληση.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s δέχτηκες την πρόσκληση για %(displayName)s.",
"Account": "Λογαριασμός",
"Add a topic": "Πρόσθεσε μια περιγραφή",
"Add email address": "Πρόσθεσε ένα email",
"Add phone number": "Πρόσθεσε έναν αριθμό τηλεφώνου",
"Admin": "Διαχειριστής",
"VoIP": "VoIP",
"No Microphones detected": "Δεν εντοπίστηκε μικρόφωνο",
"No Webcams detected": "Δεν εντοπίστηκε κάμερα",
"Default Device": "Προεπιλεγμένη Συσκευή",
"Microphone": "Μικρόφωνο",
"Camera": "Κάμερα",
"Advanced": "Προχωρημένα",
"Algorithm": "Αλγόριθμος",
"Hide removed messages": "Κρύψε διαγραμμένα μηνύματα",
"Authentication": "Πιστοποίηση",
"and": "και",
"An email has been sent to": "Ένα email στάλθηκε σε",
"A new password must be entered.": "Ο νέος κωδικός πρέπει να εισαχθεί",
"%(senderName)s answered the call.": "Ο χρήστης %(senderName)s απάντησε.",
"An error has occurred.": "Ένα σφάλμα προέκυψε",
"Anyone": "Oποιοσδήποτε",
"Are you sure?": "Είσαι σίγουρος;",
"Are you sure you want to leave the room '%(roomName)s'?": "Είσαι σίγουρος οτι θές να φύγεις από το δωμάτιο '%(roomName)s';",
"Are you sure you want to reject the invitation?": "Είσαι σίγουρος οτι θες να απορρίψεις την πρόσκληση;",
"Are you sure you want to upload the following files?": "Είσαι σίγουρος οτι θές να ανεβάσεις τα ακόλουθα αρχεία;",
"Attachment": "Επισύναψη",
"%(senderName)s banned %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.",
"Autoplay GIFs and videos": "Αυτόματη αναπαραγωγή GIFs και βίντεο",
"Bug Report": "Αναφορά Σφάλματος",
"anyone": "οποιοσδήποτε",
"Anyone who knows the room's link, apart from guests": "Oποιοσδήποτε",
"all room members, from the point they joined": "όλα τα μέλη του δωματίου, από τη στιγμή που συνδέθηκαν",
"%(items)s and %(lastItem)s": "%(items)s %(lastItem)s",
"be": "Λευκορώσικα",
"bg": "Βουλγάρικα",
"ca": "Καταλανικά",
"cs": "Τσέχικα",
"da": "Δανέζικα",
"de-at": "Γερμανικά (Αυστρία)",
"de-ch": "Γερμανικά (Ελβετία)",
"de": "Γερμανικά",
"de-li": "Γερμανικά (Λιχτενστάιν)",
"de-lu": "Γερμανικά (Λουξεμβούργο)",
"el": "Ελληνικά",
"en-au": "Αγγλικά (Αυστραλία)",
"en-bz": "Αγγλικά (Μπελίζε)",
"en-ca": "Αγγλικά (Καναδάς)",
"en": "Αγγλικά",
"en-gb": "Αγγλικά (Ηνωμένο Βασίλειο)",
"en-ie": "Αγγλικά (Ιρλανδία)",
"en-jm": "Αγγλικά (Τζαμάικα)",
"en-nz": "Αγγλικά (Νέα Ζηλανδία)",
"en-tt": "Αγγλικά (Τρινιντάντ)",
"en-us": "Αγγλικά (Ηνωμένες Πολιτείες)",
"en-za": "Αγγλικά (Νότια Αφρική)",
"es-ar": "Ισπανικά (Αργεντινή)",
"es-bo": "Ισπανικά (Βολιβία)",
"es-cl": "Ισπανικά (Χιλή)",
"es-co": "Ισπανικά (Κολομβία)",
"es-cr": "Ισπανικά (Κόστα Ρίκα)",
"es-do": "Ισπανικά (Δομινικανή Δημοκρατία)",
"es-ec": "Ισπανικά (Ισημερινός)",
"es-gt": "Ισπανικά (Γουατεμάλα)",
"es-hn": "Ισπανικά (Ονδούρα)",
"es-mx": "Ισπανικά (Μεξικό)",
"es-ni": "Ισπανικά (Νικαράγουα)",
"es-pa": "Ισπανικά (Παναμάς)",
"es-pe": "Ισπανικά (Περού)",
"es-pr": "Ισπανικά (Πουέρτο Ρίκο)",
"es-py": "Ισπανικά (Παραγουάη)",
"es": "Ισπανικά (Ισπανία)",
"es-sv": "Ισπανικά (Ελ Σαλβαδόρ)",
"es-uy": "Ισπανικά (Ουρουγουάη)",
"es-ve": "Ισπανικά (Βενεζουέλα)",
"et": "Εσθονικά",
"eu": "Βασκική (βασκική)",
"fa": "Φάρσι",
"fi": "Φινλανδικά",
"fo": "Φαρόε",
"fr-be": "Γαλλικά (Βέλγιο)",
"fr-ca": "Γαλλικά (Καναδάς)",
"fr-ch": "Γαλλικά (Ελβετία)",
"fr": "Γαλλικά",
"fr-lu": "Γαλλικά (Λουξεμβούργο)",
"ga": "Ιρλανδικά",
"gd": "Γαελική (Σκωτία)",
"he": "Εβραϊκά",
"hi": "Χίντι",
"hr": "Κροατικά",
"hu": "Ουγγρικά",
"is": "Ισλανδικά",
"it-ch": "Ιταλικά (Ελβετία)",
"it": "Ιταλικά",
"ja": "Ιαπωνικά",
"ji": "Γίντις",
"ko": "Κορεάτικα",
"lt": "Λιθουανικά",
"mk": "Μακεδονική (ΠΓΔΜ)",
"ms": "Μαλαισίας",
"mt": "Μαλτέζικα",
"nl-be": "Ολλανδικά (Βέλγιο)",
"nl": "Ολλανδικά",
"no": "Νορβηγικά",
"pl": "Πολωνέζικα",
"pt-br": "Πορτογαλικά Βραζιλίας",
"pt": "Πορτογαλικά",
"rm": "Ραιτορωμαϊκά",
"ro-mo": "Ρουμάνικα (Δημοκρατία της Μολδαβίας)",
"ro": "Ρουμάνικα",
"ru-mo": "Ρώσικα (Δημοκρατία της Μολδαβίας)",
"ru": "Ρώσικα",
"sb": "Σορβικά",
"sk": "Σλοβάκικα",
"sl": "Σλοβενικά",
"sq": "Αλβανικά",
"sr": "Σερβικά",
"sv-fi": "Σουηδικά (Φινλανδία)",
"sv": "Σουηδικά",
"sx": "Σούτου",
"sz": "Σάμη (Λαπωνικά)",
"th": "Ταϊλανδέζικα",
"tn": "Τσουάνα",
"tr": "Τουρκικά",
"ts": "Τσονγκά",
"uk": "Ουκρανικά",
"ur": "Ουρντού",
"ve": "Venda",
"vi": "Βιετναμέζικα",
"xh": "Xhosa",
"zh-cn": "Κινέζικα (ΛΔΚ)",
"zh-hk": "Κινέζικα (ΕΔΠ Χονγκ Κονγκ)",
"zh-sg": "Κινέζικα (Σιγκαπούρη)",
"zh-tw": "Κινέζικα (Ταϊβάν)",
"zu": "Ζουλού",
"id": "Ινδονησιακά",
"lv": "Λετονικά",
"A registered account is required for this action": "Ένας εγγεγραμμένος λογαριασμός απαιτείται για αυτή την ενέργεια",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ένα μήνυμα στάλθηκε στο +%(msisdn)s. Παρακαλώ γράψε τον κωδικό επαλήθευσης που περιέχει",
"Access Token:": "Κωδικός Πρόσβασης:",
"Always show message timestamps": "Δείχνε πάντα ένδειξη ώρας στα μηνύματα",
"all room members": "όλα τα μέλη του δωματίου",
"all room members, from the point they are invited": "όλα τα μέλη του δωματίου, από τη στιγμή που προσκλήθηκαν",
"an address": "μία διεύθηνση",
"%(items)s and %(remaining)s others": "%(items)s και %(remaining)s ακόμα",
"%(items)s and one other": "%(items)s και ένας ακόμα",
"and %(overflowCount)s others...": "και %(overflowCount)s άλλοι...",
"and one other...": "και ένας ακόμα...",
"%(names)s and %(lastPerson)s are typing": "%(names)s και %(lastPerson)s γράφουν",
"%(names)s and one other are typing": "%(names)s και ένας ακόμα γράφουν",
"%(names)s and %(count)s others are typing": "%(names)s και %(count)s άλλοι γράφουν",
"Anyone who knows the room's link, including guests": "Οποιοσδήποτε γνωρίζει τον σύνδεδμο του δωματίου, συμπεριλαμβάνωντας τους επισκέπτες",
"Blacklisted": "Στη μαύρη λίστα",
"Can't load user settings": "Δεν είναι δυνατή η φόρτωση των ρυθμίσεων χρήστη",
"Change Password": "Αλλαγή Κωδικού",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "ο χρήστης %(senderName)s άλλαξε το όνομά του από %(oldDisplayName)s σε %(displayName)s.",
"%(senderName)s changed their profile picture.": "ο χρήστης %(senderName)s άλλαξε τη φωτογραφία του προφίλ του.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "Ο χρήστης %(senderDisplayName)s άλλαξε το όνομα του δωματίου σε %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "Ο χρήστης %(senderDisplayName)s άλλαξε το θέμα σε \"%(topic)s\".",
"Clear Cache and Reload": "Καθάρισε την μνήμη και Ανανέωσε",
"Clear Cache": "Καθάρισε την μνήμη",
"Bans user with given id": "Διώχνει τον χρήστη με το συγκεκριμένο id",
"%(senderDisplayName)s removed the room name.": "Ο χρήστης %(senderDisplayName)s διέγραψε το όνομα του δωματίου.",
"Changes your display nickname": "Αλλάζει το όνομα χρήστη",
"Click here": "Κάνε κλικ εδώ",
"Drop here %(toAction)s": "Σύρε εδώ %(toAction)s",
"Conference call failed.": "Η κλήση συνδιάσκεψης απέτυχε.",
"powered by Matrix": "βασισμένο στο πρωτόκολλο Matrix",
"Confirm password": "Επιβεβαίωση κωδικού",
"Confirm your new password": "Επιβεβαίωση του νέου κωδικού",
"Continue": "Συνέχεια",
"Create an account": "Δημιουργία λογαριασμού",
"Create Room": "Δημιουργία Δωματίου",
"Cryptography": "Κρυπτογραφία",
"Current password": "Τωρινός κωδικός",
"Curve25519 identity key": "Κλειδί ταυτότητας Curve25519",
"Custom level": "Προσαρμοσμένο επίπεδο",
"/ddg is not a command": "/ddg δεν αναγνωρίζεται ως εντολή",
"Deactivate Account": "Απενεργοποίηση Λογαριασμού",
"Deactivate my account": "Απενεργοποίηση του λογαριασμού μου",
"decline": "απόρριψη",
"Decrypt %(text)s": "Αποκρυπτογράφησε %(text)s",
"Decryption error": "Σφάλμα αποκρυπτογράφησης",
"(default: %(userName)s)": "(προεπιλογή: %(userName)s)",
"Delete": "Διαγραφή",
"Default": "Προεπιλογή",
"Device already verified!": "Η συσκευή έχει ήδη επαληθευτεί!",
"Device ID": "ID Συσκευής",
"Device ID:": "ID Συσκευής:",
"device id: ": "id συσκευής: ",
"Device key:": "Κλειδί Συσκευής:",
"Devices": "Συσκευές",
"Direct Chat": "Απευθείας Συνομιλία",
"Direct chats": "Απευθείας συνομιλίες",
"disabled": "ανενεργό",
"Disinvite": "Ανακάλεσε πρόσκληση",
"Display name": "Όνομα χρήστη",
"Download %(text)s": "Κατέβασε %(text)s",
"Ed25519 fingerprint": "Αποτύπωμα Ed25519",
"Email": "Ηλ. Αλληλογραφία",
"Email address": "Διεύθυνση email",
"Email address (optional)": "Διεύθυνση email (προαιρετικό)",
"Email, name or matrix ID": "Email, όνομα ή matrix ID",
"Emoji": "Εικονίδια",
"enabled": "ενεργό",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Τα κρυπτογραφημένα μηνύματα δεν θα είναι ορατά σε εφαρμογές που δεν παρέχουν τη δυνατότητα κρυπτογράφησης",
"Encrypted room": "Κρυπτογραφημένο δωμάτιο",
"%(senderName)s ended the call.": "%(senderName)s τερμάτισε την κλήση.",
"End-to-end encryption information": "Πληροφορίες σχετικά με τη κρυπτογράφηση από άκρο σε άκρο (End-to-end encryption)",
"Error decrypting attachment": "Σφάλμα κατά την αποκρυπτογράφηση της επισύναψης",
"Event information": "Πληροφορίες μηνύματος",
"Existing Call": "Υπάρχουσα Κλήση",
"Export": "Εξαγωγή",
"Export E2E room keys": "Εξαγωγή κλειδιών κρυπτογραφίας για το δωμάτιο",
"Failed to change password. Is your password correct?": "Δεν ήταν δυνατή η αλλαγή του κωδικού. Είναι ο κωδικός σωστός;",
"Failed to delete device": "Δεν ήταν δυνατή η διαγραφή της συσκευής",
"Failed to join room": "Δεν ήταν δυνατή η σύνδεση στο δωμάτιο",
"Failed to leave room": "Δεν ήταν δυνατή η αποχώρηση από το δωμάτιο",
"Failed to mute user": "Δεν ήταν δυνατή η σίγαση του χρήστη",
"Failed to register as guest:": "Δεν ήταν δυνατή η εγγραφή ως επισκέπτης:",
"Failed to reject invite": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης",
"Failed to reject invitation": "Δεν ήταν δυνατή η απόρριψη της πρόσκλησης",
"Failed to save settings": "Δεν ήταν δυνατή η αποθήκευση των ρυθμίσεων",
"Failed to send email": "Δεν ήταν δυνατή η απστολή email",
"Failed to verify email address: make sure you clicked the link in the email": "Δεν ήταν δυνατή η επαλήθευση του email: βεβαιωθείτε οτι κάνατε κλικ στον σύνδεσμο που σας στάλθηκε",
"Favourite": "Αγαπημένο",
"favourite": "αγαπημένο",
"Favourites": "Αγαπημένα",
"Fill screen": "Γέμισε την οθόνη",
"Filter room members": "Φίλτραρε τα μέλη",
"Forget room": "Διέγραψε το δωμάτιο",
"Forgot your password?": "Ξέχασες τον κωδικό σου;",
"For security, this session has been signed out. Please sign in again.": "Για λόγους ασφαλείας, αυτή η συνεδρία έχει τερματιστεί. Παρακαλώ συνδεθείτε ξανά.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Για λόγους ασφαλείας, τα κλειδιά κρυπτογράφησης θα διαγράφονται από τον φυλλομετρητή κατά την αποσύνδεση σας. Εάν επιθυμείτε να αποκρυπτογραφήσετε τις συνομιλίες σας στο μέλλον, εξάγετε τα κλειδιά σας και κρατήστε τα ασφαλή.",
"Found a bug?": "Βρήκατε κάποιο πρόβλημα;",
"Guest users can't upload files. Please register to upload": "Οι επισκέπτες δεν μπορούν να ανεβάσουν αρχεία. Παρακαλώ εγγραφείτε πρώτα",
"had": "είχε",
"Hangup": "Κλείσε",
"Historical": "Ιστορικό",
"Homeserver is": "Ο διακομιστής είναι",
"Identity Server is": "Διακομιστής Ταυτοποίησης",
"I have verified my email address": "Έχω επαληθεύσει το email μου",
"Import": "Εισαγωγή",
"Import E2E room keys": "Εισαγωγή κλειδιών κρυπτογράφησης",
"Incorrect username and/or password.": "Λανθασμένο όνομα χρήστη και/ή κωδικός.",
"Incorrect verification code": "Λανθασμένος κωδικός επαλήθευσης",
"Interface Language": "Γλώσσα Διεπαφής",
"Invalid Email Address": "Μη έγκυρο email",
"Invite new room members": "Προσκάλεσε νέα μέλη",
"Invited": "Προσκλήθηκε",
"Invites": "Προσκλήσεις",
"is a": "είναι ένα",
"%(displayName)s is typing": "ο χρήστης %(displayName)s γράφει",
"Sign in with": "Συνδέσου με",
"joined and left": "μπήκε και βγήκε",
"joined": "μπήκε",
"%(targetName)s joined the room.": "ο χρήστης %(targetName)s συνδέθηκε στο δωμάτιο.",
"Jump to first unread message.": "Πήγαινε στο πρώτο μη αναγνωσμένο μήνυμα.",
"%(senderName)s kicked %(targetName)s.": "Ο χρήστης %(senderName)s έδιωξε τον χρήστη %(targetName)s.",
"Kick": "Διώξε",
"Kicks user with given id": "Διώχνει χρήστες με το συγκεκριμένο id",
"Labs": "Πειραματικά",
"Leave room": "Φύγε από το δωμάτιο",
"left and rejoined": "έφυγε και ξανασυνδέθηκε",
"left": "έφυγε",
"%(targetName)s left the room.": "Ο χρήστης %(targetName)s έφυγε από το δωμάτιο.",
"Level": "Επίπεδο",
"List this room in %(domain)s's room directory?": "Να εμφανίζεται το δωμάτιο στο γενικό ευρετήριο του διακομιστή %(domain)s;",
"Local addresses for this room:": "Τοπική διεύθυνση για το δωμάτιο:",
"Logged in as:": "Συνδέθηκες ως:",
"Login as guest": "Συνδέσου ως επισκέπτης",
"Logout": "Αποσύνδεση",
"Low priority": "Χαμηλής προτεραιότητας",
"matrix-react-sdk version:": "έκδοση matrix-react-sdk:",
"Members only": "Μέλη μόνο",
"Message not sent due to unknown devices being present": "Το μήνυμα δεν στάλθηκε γιατί υπάρχουν άγνωστες συσκευές",
"Mobile phone number": "Αριθμός κινητού τηλεφώνου",
"Click here to fix": "Κάνε κλικ εδώ για διόρθωση",
"Command error": "Σφάλμα εντολής",
"Commands": "Εντολές",
"Conference calls are not supported in encrypted rooms": "Οι κλήσεις συνδιάσκεψης δεν είναι υποστηρίζονται σε κρυπτογραφημένα δωμάτια",
"Conference calls are not supported in this client": "Οι κλήσεις συνδιάσκεψης δεν είναι υποστηρίζονται από την εφαρμογή",
"Enable encryption": "Ενεργοποίηση κρυπτογραφίας",
"Enter Code": "Κωδικός",
"Failed to send request.": "Δεν ήταν δυνατή η αποστολή αιτήματος.",
"Failed to upload file": "Δεν ήταν δυνατό το ανέβασμα αρχείου",
"Failure to create room": "Δεν ήταν δυνατή η δημιουργία δωματίου",
"Join Room": "Συνδέσου",
"Moderator": "Συντονιστής",
"my Matrix ID": "το Matrix ID μου",
"Name": "Όνομα",
"New address (e.g. #foo:%(localDomain)s)": "Νέα διεύθυνση (e.g. #όνομα:%(localDomain)s)",
"New password": "Νέος κωδικός",
"New passwords don't match": "Οι νέοι κωδικοί είναι διαφορετικοί",
"New passwords must match each other.": "Οι νέοι κωδικόι πρέπει να ταιριάζουν.",
"none": "κανένα",
"(not supported by this browser)": "(δεν υποστηρίζεται από τον browser)",
"<not supported>": "<δεν υποστηρίζεται>",
"No more results": "Δεν υπάρχουν άλλα αποτελέσματα",
"No results": "Κανένα αποτέλεσμα",
"OK": "ΟΚ",
"olm version:": "έκδοση olm:",
"Password": "Κωδικός",
"Password:": "Κωδικός:",
"Passwords can't be empty": "",
"People": "Άτομα",
"Phone": "Τηλέφωνο",
"Register": "Εγγραφή",
"riot-web version:": "έκδοση riot-web:",
"Room Colour": "Χρώμα Δωματίου",
"Room name (optional)": "Όνομα Δωματίου (προαιρετικό)",
"Rooms": "Δωμάτια",
"Save": "Αποθήκευση",
"Search failed": "Η αναζήτηση απέτυχε",
"Send an encrypted message": "Στείλε ένα κρυπτογραφημένο μήνυμα",
"Send a message (unencrypted)": "Στείλε ένα μήνυμα (απλό)",
"sent an image": "έστειλε μια εικόνα",
"sent a video": "έστειλε ένα βίντεο",
"Server error": "Σφάλμα διακομιστή",
"Signed Out": "Αποσυνδέθηκες",
"Sign in": "Συνδέση",
"Sign out": "Αποσύνδεση",
"since they joined": "από τη στιγμή που συνδέθηκαν",
"since they were invited": "από τη στιγμή που προσκλήθηκαν",
"Someone": "Κάποιος",
"Start a chat": "Ξεκίνα μια συνομιλία",
"This email address is already in use": "Το email χρησιμοποιείται",
"This email address was not found": "Η διεύθηνση email δεν βρέθηκε",
"Success": "Επιτυχία",
"Start Chat": "Συνομιλία",
"Cancel": "Ακύρωση",
"cancel all": "ακύρωση όλων",
"or": "ή",
"Custom Server Options": "Προσαρμοσμένες ρυθμίσεις διακομιστή",
"Dismiss": "Αγνόησε",
"Monday": "Δευτέρα",
"Tuesday": "Τρίτη",
"Wednesday": "Τετάρτη",
"Thursday": "Πέμπτη",
"Friday": "Παρασκευή",
"Saturday": "Σάββατο",
"bold": "έντονα",
"italic": "πλάγια",
"underline": "υπογράμμιση",
"code": "κώδικας",
"quote": "αναφορά",
"%(oneUser)sleft %(repeats)s times": "%(oneUser)s έφυγε %(repeats)s φορές",
"%(severalUsers)sleft": "%(severalUsers)s έφυγαν",
"%(oneUser)sleft": "%(oneUser)s έφυγε",
"%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)s συνδέθηκαν και έφυγαν %(repeats)s φορές",
"%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)s συνδέθηκε και έφυγε %(repeats)s φορές",
"%(severalUsers)sjoined and left": "%(severalUsers)s συνδέθηκαν και έφυγαν",
"%(oneUser)sjoined and left": "%(oneUser)s συνδέθηκε και έφυγε"
}

View file

@ -126,11 +126,22 @@
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.",
"Account": "Account",
"Access Token:": "Access Token:",
"Add a topic": "Add a topic",
"Add email address": "Add email address",
"Add phone number": "Add phone number",
"Admin": "Admin",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Missing Media Permissions, click here to request.",
"No Microphones detected": "No Microphones detected",
"No Webcams detected": "No Webcams detected",
"No media permissions": "No media permissions",
"You may need to manually permit Riot to access your microphone/webcam": "You may need to manually permit Riot to access your microphone/webcam",
"Default Device": "Default Device",
"Microphone": "Microphone",
"Camera": "Camera",
"Advanced": "Advanced",
"Algorithm": "Algorithm",
"Hide removed messages": "Hide removed messages",
"Always show message timestamps": "Always show message timestamps",
"Authentication": "Authentication",
"all room members": "all room members",
@ -151,9 +162,11 @@
"%(senderName)s answered the call.": "%(senderName)s answered the call.",
"anyone": "anyone",
"An error has occurred.": "An error has occurred.",
"Anyone": "Anyone",
"Anyone who knows the room's link, apart from guests": "Anyone who knows the room's link, apart from guests",
"Anyone who knows the room's link, including guests": "Anyone who knows the room's link, including guests",
"Are you sure?": "Are you sure?",
"Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
"Are you sure you want to reject the invitation?": "Are you sure you want to reject the invitation?",
"Are you sure you want to upload the following files?": "Are you sure you want to upload the following files?",
"Attachment": "Attachment",
@ -166,8 +179,8 @@
"Bug Report": "Bug Report",
"Bulk Options": "Bulk Options",
"Call Timeout": "Call Timeout",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.",
"Can't load user settings": "Can't load user settings",
"Change Password": "Change Password",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.",
@ -192,8 +205,8 @@
"Click to unmute audio": "Click to unmute audio",
"Command error": "Command error",
"Commands": "Commands",
"Conference call failed": "Conference call failed",
"Conference calling is in development and may not be reliable": "Conference calling is in development and may not be reliable",
"Conference call failed.": "Conference call failed.",
"Conference calling is in development and may not be reliable.": "Conference calling is in development and may not be reliable.",
"Conference calls are not supported in encrypted rooms": "Conference calls are not supported in encrypted rooms",
"Conference calls are not supported in this client": "Conference calls are not supported in this client",
"Confirm password": "Confirm password",
@ -205,21 +218,28 @@
"Cryptography": "Cryptography",
"Current password": "Current password",
"Curve25519 identity key": "Curve25519 identity key",
"Custom level": "Custom level",
"/ddg is not a command": "/ddg is not a command",
"Deactivate Account": "Deactivate Account",
"Deactivate my account": "Deactivate my account",
"decline": "decline",
"Decrypt %(text)s": "Decrypt %(text)s",
"Decryption error": "Decryption error",
"(default: %(userName)s)": "(default: %(userName)s)",
"Delete": "Delete",
"demote": "demote",
"Deops user with given id": "Deops user with given id",
"Default": "Default",
"Device already verified!": "Device already verified!",
"Device ID": "Device ID",
"Device ID:": "Device ID:",
"device id: ": "device id: ",
"Device key:": "Device key:",
"Devices": "Devices",
"Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room",
"Direct Chat": "Direct Chat",
"Direct chats": "Direct chats",
"disabled": "disabled",
"Disable inline URL previews by default": "Disable inline URL previews by default",
"Disinvite": "Disinvite",
"Display name": "Display name",
@ -231,9 +251,11 @@
"Ed25519 fingerprint": "Ed25519 fingerprint",
"Email": "Email",
"Email address": "Email address",
"Email address (optional)": "Email address (optional)",
"Email, name or matrix ID": "Email, name or matrix ID",
"Emoji": "Emoji",
"Enable encryption": "Enable encryption",
"enabled": "enabled",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Encrypted messages will not be visible on clients that do not yet implement encryption",
"Encrypted room": "Encrypted room",
"%(senderName)s ended the call.": "%(senderName)s ended the call.",
@ -244,6 +266,7 @@
"Error decrypting attachment": "Error decrypting attachment",
"Event information": "Event information",
"Existing Call": "Existing Call",
"Export": "Export",
"Export E2E room keys": "Export E2E room keys",
"Failed to ban user": "Failed to ban user",
"Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
@ -257,6 +280,7 @@
"Failed to load timeline position": "Failed to load timeline position",
"Failed to lookup current room": "Failed to lookup current room",
"Failed to mute user": "Failed to mute user",
"Failed to register as guest:": "Failed to register as guest:",
"Failed to reject invite": "Failed to reject invite",
"Failed to reject invitation": "Failed to reject invitation",
"Failed to save settings": "Failed to save settings",
@ -281,8 +305,9 @@
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.",
"Found a bug?": "Found a bug?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
"Guest access is disabled on this Home Server.": "Guest access is disabled on this Home Server.",
"Guests can't set avatars. Please register.": "Guests can't set avatars. Please register.",
"Guest users can't create new rooms. Please register to create room and start a chat": "Guest users can't create new rooms. Please register to create room and start a chat",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Guest users can't create new rooms. Please register to create room and start a chat.",
"Guest users can't upload files. Please register to upload": "Guest users can't upload files. Please register to upload",
"Guests can't use labs features. Please register.": "Guests can't use labs features. Please register.",
"Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.",
@ -294,7 +319,9 @@
"Homeserver is": "Homeserver is",
"Identity Server is": "Identity Server is",
"I have verified my email address": "I have verified my email address",
"Import": "Import",
"Import E2E room keys": "Import E2E room keys",
"Incorrect username and/or password.": "Incorrect username and/or password.",
"Incorrect verification code": "Incorrect verification code",
"Interface Language": "Interface Language",
"Invalid alias format": "Invalid alias format",
@ -303,18 +330,20 @@
"Invalid file%(extra)s": "Invalid file%(extra)s",
"%(senderName)s invited %(targetName)s.": "%(senderName)s invited %(targetName)s.",
"Invite new room members": "Invite new room members",
"Invited": "Invited",
"Invites": "Invites",
"Invites user with given id to current room": "Invites user with given id to current room",
"is a": "is a",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' is not a valid format for an address",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' is not a valid format for an alias",
"%(displayName)s is typing": "%(displayName)s is typing",
"I want to sign in with": "I want to sign in with",
"Sign in with": "Sign in with",
"Join Room": "Join Room",
"joined and left": "joined and left",
"joined": "joined",
"%(targetName)s joined the room.": "%(targetName)s joined the room.",
"Joins room with given alias": "Joins room with given alias",
"Jump to first unread message.": "Jump to first unread message.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s kicked %(targetName)s.",
"Kick": "Kick",
"Kicks user with given id": "Kicks user with given id",
@ -324,6 +353,7 @@
"left": "left",
"%(targetName)s left the room.": "%(targetName)s left the room.",
"Level": "Level",
"List this room in %(domain)s's room directory?": "List this room in %(domain)s's room directory?",
"Local addresses for this room:": "Local addresses for this room:",
"Logged in as:": "Logged in as:",
"Login as guest": "Login as guest",
@ -339,6 +369,7 @@
"Missing room_id in request": "Missing room_id in request",
"Missing user_id in request": "Missing user_id in request",
"Mobile phone number": "Mobile phone number",
"Mobile phone number (optional)": "Mobile phone number (optional)",
"Moderator": "Moderator",
"Must be viewing a room": "Must be viewing a room",
"Mute": "Mute",
@ -370,6 +401,7 @@
"Only people who have been invited": "Only people who have been invited",
"Operation failed": "Operation failed",
"Password": "Password",
"Password:": "Password:",
"Passwords can't be empty": "Passwords can't be empty",
"People": "People",
"Permissions": "Permissions",
@ -385,10 +417,12 @@
"Reason": "Reason",
"Revoke Moderator": "Revoke Moderator",
"Refer a friend to Riot:": "Refer a friend to Riot:",
"Register": "Register",
"Registration required": "Registration required",
"rejected": "rejected",
"%(targetName)s rejected the invitation.": "%(targetName)s rejected the invitation.",
"Reject invitation": "Reject invitation",
"Remote addresses for this room:": "Remote addresses for this room:",
"Remove Contact Information?": "Remove Contact Information?",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removed their display name (%(oldDisplayName)s).",
"%(senderName)s removed their profile picture.": "%(senderName)s removed their profile picture.",
@ -398,6 +432,7 @@
"Report it": "Report it",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
"restore": "restore",
"Results from DuckDuckGo": "Results from DuckDuckGo",
"Return to app": "Return to app",
"Return to login screen": "Return to login screen",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot does not have permission to send you notifications - please check your browser settings",
@ -407,6 +442,7 @@
"Room Colour": "Room Colour",
"Room name (optional)": "Room name (optional)",
"Rooms": "Rooms",
"Save": "Save",
"Scroll to bottom of page": "Scroll to bottom of page",
"Scroll to unread messages": "Scroll to unread messages",
"Search": "Search",
@ -425,11 +461,12 @@
"Server may be unavailable or overloaded": "Server may be unavailable or overloaded",
"Server may be unavailable, overloaded, or search timed out :(": "Server may be unavailable, overloaded, or search timed out :(",
"Server may be unavailable, overloaded, or the file too big": "Server may be unavailable, overloaded, or the file too big",
"Server may be unavailable, overloaded, or you hit a bug": "Server may be unavailable, overloaded, or you hit a bug",
"Server unavailable, overloaded, or something else went wrong": "Server unavailable, overloaded, or something else went wrong",
"Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
"Server unavailable, overloaded, or something else went wrong.": "Server unavailable, overloaded, or something else went wrong.",
"Session ID": "Session ID",
"%(senderName)s set a profile picture.": "%(senderName)s set a profile picture.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s set their display name to %(displayName)s.",
"Setting a user name will create a fresh account": "Setting a user name will create a fresh account",
"Settings": "Settings",
"Show panel": "Show panel",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Show timestamps in 12 hour format (e.g. 2:30pm)",
@ -448,8 +485,10 @@
"Success": "Success",
"tag as %(tagName)s": "tag as %(tagName)s",
"tag direct chat": "tag direct chat",
"Tagged as: ": "Tagged as: ",
"The default role for new room members is": "The default role for new room members is",
"The main address for this room is": "The main address for this room is",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.",
"This action cannot be performed by a guest user. Please register to be able to do this": "This action cannot be performed by a guest user. Please register to be able to do this",
"This email address is already in use": "This email address is already in use",
"This email address was not found": "This email address was not found",
@ -458,6 +497,8 @@
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "The file '%(fileName)s' exceeds this home server's size limit for uploads",
"The file '%(fileName)s' failed to upload": "The file '%(fileName)s' failed to upload",
"The remote side failed to pick up": "The remote side failed to pick up",
"This Home Server does not support login using email address.": "This Home Server does not support login using email address.",
"There was a problem logging in.": "There was a problem logging in.",
"This room has no local addresses": "This room has no local addresses",
"This room is not recognised.": "This room is not recognised.",
"This room is private or inaccessible to guests. You may be able to join if you register": "This room is private or inaccessible to guests. You may be able to join if you register",
@ -509,14 +550,18 @@
"unknown device": "unknown device",
"unknown error code": "unknown error code",
"Unknown room %(roomId)s": "Unknown room %(roomId)s",
"Unknown (user, device) pair:": "Unknown (user, device) pair:",
"unknown": "unknown",
"Unmute": "Unmute",
"Unrecognised command:": "Unrecognised command:",
"Unrecognised room alias:": "Unrecognised room alias:",
"uploaded a file": "uploaded a file",
"Upload avatar": "Upload avatar",
"Upload Failed": "Upload Failed",
"Upload Files": "Upload Files",
"Upload file": "Upload file",
"Usage": "Usage",
"Use compact timeline layout": "Use compact timeline layout",
"Use with caution": "Use with caution",
"User ID": "User ID",
"User Interface": "User Interface",
@ -526,6 +571,7 @@
"Verification Pending": "Verification Pending",
"Verification": "Verification",
"verified": "verified",
"Verified key": "Verified key",
"Video call": "Video call",
"Voice call": "Voice call",
"VoIP conference finished.": "VoIP conference finished.",
@ -533,27 +579,32 @@
"VoIP is unsupported": "VoIP is unsupported",
"(warning: cannot be disabled again!)": "(warning: cannot be disabled again!)",
"Warning!": "Warning!",
"WARNING: Device already verified, but keys do NOT MATCH!": "WARNING: Device already verified, but keys do NOT MATCH!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!",
"Who can access this room?": "Who can access this room?",
"Who can read history?": "Who can read history?",
"Who would you like to add to this room?": "Who would you like to add to this room?",
"Who would you like to communicate with?": "Who would you like to communicate with?",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s withdrew %(targetName)s's invitation.",
"Would you like to": "Would you like to",
"You are already in a call": "You are already in a call",
"You are already in a call.": "You are already in a call.",
"You're not in any rooms yet! Press": "You're not in any rooms yet! Press",
"You are trying to access %(roomName)s": "You are trying to access %(roomName)s",
"You cannot place a call with yourself": "You cannot place a call with yourself",
"You cannot place VoIP calls in this browser": "You cannot place VoIP calls in this browser",
"You cannot place a call with yourself.": "You cannot place a call with yourself.",
"You cannot place VoIP calls in this browser.": "You cannot place VoIP calls in this browser.",
"You do not have permission to post to this room": "You do not have permission to post to this room",
"You have been invited to join this room by %(inviterName)s": "You have been invited to join this room by %(inviterName)s",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device",
"You have <a>disabled</a> URL previews by default.": "You have <a>disabled</a> URL previews by default.",
"You have <a>enabled</a> URL previews by default.": "You have <a>enabled</a> URL previews by default.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "You have entered an invalid contact. Try using their Matrix ID or email address.",
"You have no visible notifications": "You have no visible notifications",
"you must be a": "you must be a",
"You need to be able to invite users to do that.": "You need to be able to invite users to do that.",
"You need to be logged in.": "You need to be logged in.",
"You need to enter a user name.": "You need to enter a user name.",
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Your email address does not appear to be associated with a Matrix ID on this Homeserver",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Your email address does not appear to be associated with a Matrix ID on this Homeserver.",
"Your password has been reset": "Your password has been reset",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them",
"You seem to be in a call, are you sure you want to quit?": "You seem to be in a call, are you sure you want to quit?",
@ -583,6 +634,7 @@
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Set a display name:",
"Set a Display Name": "Set a Display Name",
"Upload an avatar:": "Upload an avatar:",
"This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
"Missing password.": "Missing password.",
@ -680,8 +732,11 @@
"Room directory": "Room directory",
"Start chat": "Start chat",
"New Password": "New Password",
"Start automatically after system login": "Start automatically after system login",
"Desktop specific": "Desktop specific",
"Analytics": "Analytics",
"Opt out of analytics": "Opt out of analytics",
"Options": "Options",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
"Passphrases must match": "Passphrases must match",
"Passphrase must not be empty": "Passphrase must not be empty",
@ -689,7 +744,6 @@
"Confirm passphrase": "Confirm passphrase",
"Import room keys": "Import room keys",
"File to import": "File to import",
"Enter passphrase": "Enter passphrase",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
@ -697,7 +751,7 @@
"You must join the room to see its files": "You must join the room to see its files",
"Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
"Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
"Start new Chat": "Start new Chat",
"Start new chat": "Start new chat",
"Guest users can't invite users. Please register.": "Guest users can't invite users. Please register.",
"Failed to invite": "Failed to invite",
"Failed to invite user": "Failed to invite user",
@ -767,6 +821,10 @@
"Drop file here to upload": "Drop file here to upload",
" (unsupported)": " (unsupported)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Ongoing conference call%(supportedText)s. %(joinText)s",
"for %(amount)ss": "for %(amount)ss",
"for %(amount)sm": "for %(amount)sm",
"for %(amount)sh": "for %(amount)sh",
"for %(amount)sd": "for %(amount)sd",
"Online": "Online",
"Idle": "Idle",
"Offline": "Offline",
@ -777,5 +835,14 @@
"Click on the button below to start chatting!": "Click on the button below to start chatting!",
"Create a new chat or reuse an existing one": "Create a new chat or reuse an existing one",
"You already have existing direct chats with this user:": "You already have existing direct chats with this user:",
"Start new chat": "Start new chat"
"Start new chat": "Start new chat",
"Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName changed the room avatar to <img/>",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s",
"Username available": "Username available",
"Username not available": "Username not available",
"Something went wrong!": "Something went wrong!",
"This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.": "This will be your account name on the <span></span> homeserver, or you can pick a <a>different server</a>.",
"If you already have a Matrix account you can <a>log in</a> instead.": "If you already have a Matrix account you can <a>log in</a> instead."
}

829
src/i18n/strings/en_US.json Normal file
View file

@ -0,0 +1,829 @@
{
"af": "Afrikaans",
"ar-ae": "Arabic (U.A.E.)",
"ar-bh": "Arabic (Bahrain)",
"ar-dz": "Arabic (Algeria)",
"ar-eg": "Arabic (Egypt)",
"ar-iq": "Arabic (Iraq)",
"ar-jo": "Arabic (Jordan)",
"ar-kw": "Arabic (Kuwait)",
"ar-lb": "Arabic (Lebanon)",
"ar-ly": "Arabic (Libya)",
"ar-ma": "Arabic (Morocco)",
"ar-om": "Arabic (Oman)",
"ar-qa": "Arabic (Qatar)",
"ar-sa": "Arabic (Saudi Arabia)",
"ar-sy": "Arabic (Syria)",
"ar-tn": "Arabic (Tunisia)",
"ar-ye": "Arabic (Yemen)",
"be": "Belarusian",
"bg": "Bulgarian",
"ca": "Catalan",
"cs": "Czech",
"da": "Danish",
"de-at": "German (Austria)",
"de-ch": "German (Switzerland)",
"de": "German",
"de-li": "German (Liechtenstein)",
"de-lu": "German (Luxembourg)",
"el": "Greek",
"en-au": "English (Australia)",
"en-bz": "English (Belize)",
"en-ca": "English (Canada)",
"en": "English",
"en-gb": "English (United Kingdom)",
"en-ie": "English (Ireland)",
"en-jm": "English (Jamaica)",
"en-nz": "English (New Zealand)",
"en-tt": "English (Trinidad)",
"en-us": "English (United States)",
"en-za": "English (South Africa)",
"es-ar": "Spanish (Argentina)",
"es-bo": "Spanish (Bolivia)",
"es-cl": "Spanish (Chile)",
"es-co": "Spanish (Colombia)",
"es-cr": "Spanish (Costa Rica)",
"es-do": "Spanish (Dominican Republic)",
"es-ec": "Spanish (Ecuador)",
"es-gt": "Spanish (Guatemala)",
"es-hn": "Spanish (Honduras)",
"es-mx": "Spanish (Mexico)",
"es-ni": "Spanish (Nicaragua)",
"es-pa": "Spanish (Panama)",
"es-pe": "Spanish (Peru)",
"es-pr": "Spanish (Puerto Rico)",
"es-py": "Spanish (Paraguay)",
"es": "Spanish (Spain)",
"es-sv": "Spanish (El Salvador)",
"es-uy": "Spanish (Uruguay)",
"es-ve": "Spanish (Venezuela)",
"et": "Estonian",
"eu": "Basque (Basque)",
"fa": "Farsi",
"fi": "Finnish",
"fo": "Faeroese",
"fr-be": "French (Belgium)",
"fr-ca": "French (Canada)",
"fr-ch": "French (Switzerland)",
"fr": "French",
"fr-lu": "French (Luxembourg)",
"ga": "Irish",
"gd": "Gaelic (Scotland)",
"he": "Hebrew",
"hi": "Hindi",
"hr": "Croatian",
"hu": "Hungarian",
"id": "Indonesian",
"is": "Icelandic",
"it-ch": "Italian (Switzerland)",
"it": "Italian",
"ja": "Japanese",
"ji": "Yiddish",
"ko": "Korean",
"lt": "Lithuanian",
"lv": "Latvian",
"mk": "Macedonian (FYROM)",
"ms": "Malaysian",
"mt": "Maltese",
"nl-be": "Dutch (Belgium)",
"nl": "Dutch",
"no": "Norwegian",
"pl": "Polish",
"pt-br": "Brazilian Portuguese",
"pt": "Portuguese",
"rm": "Rhaeto-Romanic",
"ro-mo": "Romanian (Republic of Moldova)",
"ro": "Romanian",
"ru-mo": "Russian (Republic of Moldova)",
"ru": "Russian",
"sb": "Sorbian",
"sk": "Slovak",
"sl": "Slovenian",
"sq": "Albanian",
"sr": "Serbian",
"sv-fi": "Swedish (Finland)",
"sv": "Swedish",
"sx": "Sutu",
"sz": "Sami (Lappish)",
"th": "Thai",
"tn": "Tswana",
"tr": "Turkish",
"ts": "Tsonga",
"uk": "Ukrainian",
"ur": "Urdu",
"ve": "Venda",
"vi": "Vietnamese",
"xh": "Xhosa",
"zh-cn": "Chinese (PRC)",
"zh-hk": "Chinese (Hong Kong SAR)",
"zh-sg": "Chinese (Singapore)",
"zh-tw": "Chinese (Taiwan)",
"zu": "Zulu",
"A registered account is required for this action": "A registered account is required for this action",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "A text message has been sent to +%(msisdn)s. Please enter the verification code it contains",
"accept": "accept",
"%(targetName)s accepted an invitation.": "%(targetName)s accepted an invitation.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepted the invitation for %(displayName)s.",
"Account": "Account",
"Access Token:": "Access Token:",
"Add a topic": "Add a topic",
"Add email address": "Add email address",
"Add phone number": "Add phone number",
"Admin": "Admin",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Missing Media Permissions, click here to request.",
"No Microphones detected": "No Microphones detected",
"No Webcams detected": "No Webcams detected",
"No media permissions": "No media permissions",
"You may need to manually permit Riot to access your microphone/webcam": "You may need to manually permit Riot to access your microphone/webcam",
"Default Device": "Default Device",
"Microphone": "Microphone",
"Camera": "Camera",
"Advanced": "Advanced",
"Algorithm": "Algorithm",
"Hide removed messages": "Hide removed messages",
"Always show message timestamps": "Always show message timestamps",
"Authentication": "Authentication",
"all room members": "all room members",
"all room members, from the point they are invited": "all room members, from the point they are invited",
"all room members, from the point they joined": "all room members, from the point they joined",
"an address": "an address",
"and": "and",
"%(items)s and %(remaining)s others": "%(items)s and %(remaining)s others",
"%(items)s and one other": "%(items)s and one other",
"%(items)s and %(lastItem)s": "%(items)s and %(lastItem)s",
"and %(overflowCount)s others...": "and %(overflowCount)s others...",
"and one other...": "and one other...",
"%(names)s and %(lastPerson)s are typing": "%(names)s and %(lastPerson)s are typing",
"%(names)s and one other are typing": "%(names)s and one other are typing",
"%(names)s and %(count)s others are typing": "%(names)s and %(count)s others are typing",
"An email has been sent to": "An email has been sent to",
"A new password must be entered.": "A new password must be entered.",
"%(senderName)s answered the call.": "%(senderName)s answered the call.",
"anyone": "anyone",
"An error has occurred.": "An error has occurred.",
"Anyone": "Anyone",
"Anyone who knows the room's link, apart from guests": "Anyone who knows the room's link, apart from guests",
"Anyone who knows the room's link, including guests": "Anyone who knows the room's link, including guests",
"Are you sure?": "Are you sure?",
"Are you sure you want to leave the room '%(roomName)s'?": "Are you sure you want to leave the room '%(roomName)s'?",
"Are you sure you want to reject the invitation?": "Are you sure you want to reject the invitation?",
"Are you sure you want to upload the following files?": "Are you sure you want to upload the following files?",
"Attachment": "Attachment",
"Autoplay GIFs and videos": "Autoplay GIFs and videos",
"%(senderName)s banned %(targetName)s.": "%(senderName)s banned %(targetName)s.",
"Ban": "Ban",
"Banned users": "Banned users",
"Bans user with given id": "Bans user with given id",
"Blacklisted": "Blacklisted",
"Bug Report": "Bug Report",
"Bulk Options": "Bulk Options",
"Call Timeout": "Call Timeout",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.",
"Can't load user settings": "Can't load user settings",
"Change Password": "Change Password",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.",
"%(senderName)s changed their profile picture.": "%(senderName)s changed their profile picture.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s changed the power level of %(powerLevelDiffText)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s changed the room name to %(roomName)s.",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s removed the room name.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s changed the topic to \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "Changes to who can read history will only apply to future messages in this room",
"Changes your display nickname": "Changes your display nickname",
"changing room on a RoomView is not supported": "changing room on a RoomView is not supported",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
"Claimed Ed25519 fingerprint key": "Claimed Ed25519 fingerprint key",
"Clear Cache and Reload": "Clear Cache and Reload",
"Clear Cache": "Clear Cache",
"Click here": "Click here",
"Click here to fix": "Click here to fix",
"Click to mute audio": "Click to mute audio",
"Click to mute video": "Click to mute video",
"click to reveal": "click to reveal",
"Click to unmute video": "Click to unmute video",
"Click to unmute audio": "Click to unmute audio",
"Command error": "Command error",
"Commands": "Commands",
"Conference call failed.": "Conference call failed.",
"Conference calling is in development and may not be reliable.": "Conference calling is in development and may not be reliable.",
"Conference calls are not supported in encrypted rooms": "Conference calls are not supported in encrypted rooms",
"Conference calls are not supported in this client": "Conference calls are not supported in this client",
"Confirm password": "Confirm password",
"Confirm your new password": "Confirm your new password",
"Continue": "Continue",
"Could not connect to the integration server": "Could not connect to the integration server",
"Create an account": "Create an account",
"Create Room": "Create Room",
"Cryptography": "Cryptography",
"Current password": "Current password",
"Curve25519 identity key": "Curve25519 identity key",
"Custom level": "Custom level",
"/ddg is not a command": "/ddg is not a command",
"Deactivate Account": "Deactivate Account",
"Deactivate my account": "Deactivate my account",
"decline": "decline",
"Decrypt %(text)s": "Decrypt %(text)s",
"Decryption error": "Decryption error",
"(default: %(userName)s)": "(default: %(userName)s)",
"Delete": "Delete",
"demote": "demote",
"Deops user with given id": "Deops user with given id",
"Default": "Default",
"Device already verified!": "Device already verified!",
"Device ID": "Device ID",
"Device ID:": "Device ID:",
"device id: ": "device id: ",
"Device key:": "Device key:",
"Devices": "Devices",
"Devices will not yet be able to decrypt history from before they joined the room": "Devices will not yet be able to decrypt history from before they joined the room",
"Direct Chat": "Direct Chat",
"Direct chats": "Direct chats",
"disabled": "disabled",
"Disable inline URL previews by default": "Disable inline URL previews by default",
"Disinvite": "Disinvite",
"Display name": "Display name",
"Displays action": "Displays action",
"Don't send typing notifications": "Don't send typing notifications",
"Download %(text)s": "Download %(text)s",
"Drop here %(toAction)s": "Drop here %(toAction)s",
"Drop here to tag %(section)s": "Drop here to tag %(section)s",
"Ed25519 fingerprint": "Ed25519 fingerprint",
"Email": "Email",
"Email address": "Email address",
"Email address (optional)": "Email address (optional)",
"Email, name or matrix ID": "Email, name or matrix ID",
"Emoji": "Emoji",
"Enable encryption": "Enable encryption",
"enabled": "enabled",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Encrypted messages will not be visible on clients that do not yet implement encryption",
"Encrypted room": "Encrypted room",
"%(senderName)s ended the call.": "%(senderName)s ended the call.",
"End-to-end encryption information": "End-to-end encryption information",
"End-to-end encryption is in beta and may not be reliable": "End-to-end encryption is in beta and may not be reliable",
"Enter Code": "Enter Code",
"Error": "Error",
"Error decrypting attachment": "Error decrypting attachment",
"Event information": "Event information",
"Existing Call": "Existing Call",
"Export": "Export",
"Export E2E room keys": "Export E2E room keys",
"Failed to ban user": "Failed to ban user",
"Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
"Failed to change power level": "Failed to change power level",
"Failed to delete device": "Failed to delete device",
"Failed to forget room %(errCode)s": "Failed to forget room %(errCode)s",
"Failed to join room": "Failed to join room",
"Failed to join the room": "Failed to join the room",
"Failed to kick": "Failed to kick",
"Failed to leave room": "Failed to leave room",
"Failed to load timeline position": "Failed to load timeline position",
"Failed to lookup current room": "Failed to lookup current room",
"Failed to mute user": "Failed to mute user",
"Failed to register as guest:": "Failed to register as guest:",
"Failed to reject invite": "Failed to reject invite",
"Failed to reject invitation": "Failed to reject invitation",
"Failed to save settings": "Failed to save settings",
"Failed to send email": "Failed to send email",
"Failed to send request.": "Failed to send request.",
"Failed to set avatar.": "Failed to set avatar.",
"Failed to set display name": "Failed to set display name",
"Failed to set up conference call": "Failed to set up conference call",
"Failed to toggle moderator status": "Failed to toggle moderator status",
"Failed to unban": "Failed to unban",
"Failed to upload file": "Failed to upload file",
"Failed to verify email address: make sure you clicked the link in the email": "Failed to verify email address: make sure you clicked the link in the email",
"Failure to create room": "Failure to create room",
"Favourite": "Favorite",
"favourite": "favorite",
"Favourites": "Favorites",
"Fill screen": "Fill screen",
"Filter room members": "Filter room members",
"Forget room": "Forget room",
"Forgot your password?": "Forgot your password?",
"For security, this session has been signed out. Please sign in again.": "For security, this session has been signed out. Please sign in again.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.",
"Found a bug?": "Found a bug?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s",
"Guest access is disabled on this Home Server.": "Guest access is disabled on this Home Server.",
"Guests can't set avatars. Please register.": "Guests can't set avatars. Please register.",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Guest users can't create new rooms. Please register to create room and start a chat.",
"Guest users can't upload files. Please register to upload": "Guest users can't upload files. Please register to upload",
"Guests can't use labs features. Please register.": "Guests can't use labs features. Please register.",
"Guests cannot join this room even if explicitly invited.": "Guests cannot join this room even if explicitly invited.",
"had": "had",
"Hangup": "Hangup",
"Hide read receipts": "Hide read receipts",
"Hide Text Formatting Toolbar": "Hide Text Formatting Toolbar",
"Historical": "Historical",
"Homeserver is": "Homeserver is",
"Identity Server is": "Identity Server is",
"I have verified my email address": "I have verified my email address",
"Import": "Import",
"Import E2E room keys": "Import E2E room keys",
"Incorrect username and/or password.": "Incorrect username and/or password.",
"Incorrect verification code": "Incorrect verification code",
"Interface Language": "Interface Language",
"Invalid alias format": "Invalid alias format",
"Invalid address format": "Invalid address format",
"Invalid Email Address": "Invalid Email Address",
"Invalid file%(extra)s": "Invalid file%(extra)s",
"%(senderName)s invited %(targetName)s.": "%(senderName)s invited %(targetName)s.",
"Invite new room members": "Invite new room members",
"Invited": "Invited",
"Invites": "Invites",
"Invites user with given id to current room": "Invites user with given id to current room",
"is a": "is a",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' is not a valid format for an address",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' is not a valid format for an alias",
"%(displayName)s is typing": "%(displayName)s is typing",
"Sign in with": "Sign in with",
"Join Room": "Join Room",
"joined and left": "joined and left",
"joined": "joined",
"%(targetName)s joined the room.": "%(targetName)s joined the room.",
"Joins room with given alias": "Joins room with given alias",
"Jump to first unread message.": "Jump to first unread message.",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s kicked %(targetName)s.",
"Kick": "Kick",
"Kicks user with given id": "Kicks user with given id",
"Labs": "Labs",
"Leave room": "Leave room",
"left and rejoined": "left and rejoined",
"left": "left",
"%(targetName)s left the room.": "%(targetName)s left the room.",
"Level": "Level",
"List this room in %(domain)s's room directory?": "List this room in %(domain)s's room directory?",
"Local addresses for this room:": "Local addresses for this room:",
"Logged in as:": "Logged in as:",
"Login as guest": "Login as guest",
"Logout": "Logout",
"Low priority": "Low priority",
"%(senderName)s made future room history visible to": "%(senderName)s made future room history visible to",
"Manage Integrations": "Manage Integrations",
"Markdown is disabled": "Markdown is disabled",
"Markdown is enabled": "Markdown is enabled",
"matrix-react-sdk version:": "matrix-react-sdk version:",
"Members only": "Members only",
"Message not sent due to unknown devices being present": "Message not sent due to unknown devices being present",
"Missing room_id in request": "Missing room_id in request",
"Missing user_id in request": "Missing user_id in request",
"Mobile phone number": "Mobile phone number",
"Mobile phone number (optional)": "Mobile phone number (optional)",
"Moderator": "Moderator",
"Must be viewing a room": "Must be viewing a room",
"Mute": "Mute",
"my Matrix ID": "my Matrix ID",
"Name": "Name",
"Never send encrypted messages to unverified devices from this device": "Never send encrypted messages to unverified devices from this device",
"Never send encrypted messages to unverified devices in this room": "Never send encrypted messages to unverified devices in this room",
"Never send encrypted messages to unverified devices in this room from this device": "Never send encrypted messages to unverified devices in this room from this device",
"New address (e.g. #foo:%(localDomain)s)": "New address (e.g. #foo:%(localDomain)s)",
"New Composer & Autocomplete": "New Composer & Autocomplete",
"New password": "New password",
"New passwords don't match": "New passwords don't match",
"New passwords must match each other.": "New passwords must match each other.",
"none": "none",
"not set": "not set",
"not specified": "not specified",
"Notifications": "Notifications",
"(not supported by this browser)": "(not supported by this browser)",
"<not supported>": "<not supported>",
"NOT verified": "NOT verified",
"No devices with registered encryption keys": "No devices with registered encryption keys",
"No more results": "No more results",
"No results": "No results",
"No users have specific privileges in this room": "No users have specific privileges in this room",
"OK": "OK",
"olm version:": "olm version:",
"Once encryption is enabled for a room it cannot be turned off again (for now)": "Once encryption is enabled for a room it cannot be turned off again (for now)",
"Once you&#39;ve followed the link it contains, click below": "Once you&#39;ve followed the link it contains, click below",
"Only people who have been invited": "Only people who have been invited",
"Operation failed": "Operation failed",
"Password": "Password",
"Password:": "Password:",
"Passwords can't be empty": "Passwords can't be empty",
"People": "People",
"Permissions": "Permissions",
"Phone": "Phone",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s placed a %(callType)s call.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Please check your email and click on the link it contains. Once this is done, click continue.",
"Please Register": "Please Register",
"Power level must be positive integer.": "Power level must be positive integer.",
"Press": "Press",
"Privacy warning": "Privacy warning",
"Privileged Users": "Privileged Users",
"Profile": "Profile",
"Reason": "Reason",
"Revoke Moderator": "Revoke Moderator",
"Refer a friend to Riot:": "Refer a friend to Riot:",
"Register": "Register",
"Registration required": "Registration required",
"rejected": "rejected",
"%(targetName)s rejected the invitation.": "%(targetName)s rejected the invitation.",
"Reject invitation": "Reject invitation",
"Remote addresses for this room:": "Remote addresses for this room:",
"Remove Contact Information?": "Remove Contact Information?",
"%(senderName)s removed their display name (%(oldDisplayName)s).": "%(senderName)s removed their display name (%(oldDisplayName)s).",
"%(senderName)s removed their profile picture.": "%(senderName)s removed their profile picture.",
"Remove": "Remove",
"Remove %(threePid)s?": "Remove %(threePid)s?",
"%(senderName)s requested a VoIP conference.": "%(senderName)s requested a VoIP conference.",
"Report it": "Report it",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.",
"restore": "restore",
"Results from DuckDuckGo": "Results from DuckDuckGo",
"Return to app": "Return to app",
"Return to login screen": "Return to login screen",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot does not have permission to send you notifications - please check your browser settings",
"Riot was not given permission to send notifications - please try again": "Riot was not given permission to send notifications - please try again",
"riot-web version:": "riot-web version:",
"Room %(roomId)s not visible": "Room %(roomId)s not visible",
"Room Colour": "Room Color",
"Room name (optional)": "Room name (optional)",
"Rooms": "Rooms",
"Save": "Save",
"Scroll to bottom of page": "Scroll to bottom of page",
"Scroll to unread messages": "Scroll to unread messages",
"Search": "Search",
"Search failed": "Search failed",
"Searches DuckDuckGo for results": "Searches DuckDuckGo for results",
"Send a message (unencrypted)": "Send a message (unencrypted)",
"Send an encrypted message": "Send an encrypted message",
"Sender device information": "Sender device information",
"Send Invites": "Send Invites",
"Send Reset Email": "Send Reset Email",
"sent an image": "sent an image",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s sent an image.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.",
"sent a video": "sent a video",
"Server error": "Server error",
"Server may be unavailable or overloaded": "Server may be unavailable or overloaded",
"Server may be unavailable, overloaded, or search timed out :(": "Server may be unavailable, overloaded, or search timed out :(",
"Server may be unavailable, overloaded, or the file too big": "Server may be unavailable, overloaded, or the file too big",
"Server may be unavailable, overloaded, or you hit a bug.": "Server may be unavailable, overloaded, or you hit a bug.",
"Server unavailable, overloaded, or something else went wrong.": "Server unavailable, overloaded, or something else went wrong.",
"Session ID": "Session ID",
"%(senderName)s set a profile picture.": "%(senderName)s set a profile picture.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s set their display name to %(displayName)s.",
"Setting a user name will create a fresh account": "Setting a user name will create a fresh account",
"Settings": "Settings",
"Show panel": "Show panel",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Show timestamps in 12 hour format (e.g. 2:30pm)",
"Signed Out": "Signed Out",
"Sign in": "Sign in",
"Sign out": "Sign out",
"since the point in time of selecting this option": "since the point in time of selecting this option",
"since they joined": "since they joined",
"since they were invited": "since they were invited",
"Some of your messages have not been sent": "Some of your messages have not been sent",
"Someone": "Someone",
"Sorry, this homeserver is using a login which is not recognised ": "Sorry, this homeserver is using a login which is not recognized ",
"Start a chat": "Start a chat",
"Start Chat": "Start Chat",
"Submit": "Submit",
"Success": "Success",
"tag as %(tagName)s": "tag as %(tagName)s",
"tag direct chat": "tag direct chat",
"Tagged as: ": "Tagged as: ",
"The default role for new room members is": "The default role for new room members is",
"The main address for this room is": "The main address for this room is",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.",
"This action cannot be performed by a guest user. Please register to be able to do this": "This action cannot be performed by a guest user. Please register to be able to do this",
"This email address is already in use": "This email address is already in use",
"This email address was not found": "This email address was not found",
"%(actionVerb)s this person?": "%(actionVerb)s this person?",
"The email address linked to your account must be entered.": "The email address linked to your account must be entered.",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "The file '%(fileName)s' exceeds this home server's size limit for uploads",
"The file '%(fileName)s' failed to upload": "The file '%(fileName)s' failed to upload",
"The remote side failed to pick up": "The remote side failed to pick up",
"This Home Server does not support login using email address.": "This Home Server does not support login using email address.",
"There was a problem logging in.": "There was a problem logging in.",
"This room has no local addresses": "This room has no local addresses",
"This room is not recognised.": "This room is not recognized.",
"This room is private or inaccessible to guests. You may be able to join if you register": "This room is private or inaccessible to guests. You may be able to join if you register",
"These are experimental features that may break in unexpected ways": "These are experimental features that may break in unexpected ways",
"The visibility of existing history will be unchanged": "The visibility of existing history will be unchanged",
"This doesn't appear to be a valid email address": "This doesn't appear to be a valid email address",
"this invitation?": "this invitation?",
"This is a preview of this room. Room interactions have been disabled": "This is a preview of this room. Room interactions have been disabled",
"This phone number is already in use": "This phone number is already in use",
"This room is not accessible by remote Matrix servers": "This room is not accessible by remote Matrix servers",
"This room's internal ID is": "This room's internal ID is",
"times": "times",
"To ban users": "To ban users",
"to browse the directory": "to browse the directory",
"To configure the room": "To configure the room",
"to demote": "to demote",
"to favourite": "to favorite",
"To invite users into the room": "To invite users into the room",
"to join the discussion": "to join the discussion",
"To kick users": "To kick users",
"To link to a room it must have": "To link to a room it must have",
"to make a room or": "to make a room or",
"To remove other users' messages": "To remove other users' messages",
"To reset your password, enter the email address linked to your account": "To reset your password, enter the email address linked to your account",
"to restore": "to restore",
"To send events of type": "To send events of type",
"To send messages": "To send messages",
"to start a chat with someone": "to start a chat with someone",
"to tag as %(tagName)s": "to tag as %(tagName)s",
"to tag direct chat": "to tag direct chat",
"To use it, just wait for autocomplete results to load and tab through them.": "To use it, just wait for autocomplete results to load and tab through them.",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question": "Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question",
"Tried to load a specific point in this room's timeline, but was unable to find it": "Tried to load a specific point in this room's timeline, but was unable to find it",
"Turn Markdown off": "Turn Markdown off",
"Turn Markdown on": "Turn Markdown on",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).",
"Unable to add email address": "Unable to add email address",
"Unable to remove contact information": "Unable to remove contact information",
"Unable to restore previous session": "Unable to restore previous session",
"Unable to verify email address.": "Unable to verify email address.",
"Unban": "Unban",
"%(senderName)s unbanned %(targetName)s.": "%(senderName)s unbanned %(targetName)s.",
"Unable to capture screen": "Unable to capture screen",
"Unable to enable Notifications": "Unable to enable Notifications",
"Unable to load device list": "Unable to load device list",
"Unencrypted room": "Unencrypted room",
"unencrypted": "unencrypted",
"Unknown command": "Unknown command",
"unknown device": "unknown device",
"unknown error code": "unknown error code",
"Unknown room %(roomId)s": "Unknown room %(roomId)s",
"Unknown (user, device) pair:": "Unknown (user, device) pair:",
"unknown": "unknown",
"Unmute": "Unmute",
"Unrecognised command:": "Unrecognized command:",
"Unrecognised room alias:": "Unrecognized room alias:",
"uploaded a file": "uploaded a file",
"Upload avatar": "Upload avatar",
"Upload Failed": "Upload Failed",
"Upload Files": "Upload Files",
"Upload file": "Upload file",
"Usage": "Usage",
"Use compact timeline layout": "Use compact timeline layout",
"Use with caution": "Use with caution",
"User ID": "User ID",
"User Interface": "User Interface",
"User name": "User name",
"Users": "Users",
"User": "User",
"Verification Pending": "Verification Pending",
"Verification": "Verification",
"verified": "verified",
"Verified key": "Verified key",
"Video call": "Video call",
"Voice call": "Voice call",
"VoIP conference finished.": "VoIP conference finished.",
"VoIP conference started.": "VoIP conference started.",
"VoIP is unsupported": "VoIP is unsupported",
"(warning: cannot be disabled again!)": "(warning: cannot be disabled again!)",
"Warning!": "Warning!",
"WARNING: Device already verified, but keys do NOT MATCH!": "WARNING: Device already verified, but keys do NOT MATCH!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!",
"Who can access this room?": "Who can access this room?",
"Who can read history?": "Who can read history?",
"Who would you like to add to this room?": "Who would you like to add to this room?",
"Who would you like to communicate with?": "Who would you like to communicate with?",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s withdrew %(targetName)s's invitation.",
"Would you like to": "Would you like to",
"You are already in a call.": "You are already in a call.",
"You're not in any rooms yet! Press": "You're not in any rooms yet! Press",
"You are trying to access %(roomName)s": "You are trying to access %(roomName)s",
"You cannot place a call with yourself.": "You cannot place a call with yourself.",
"You cannot place VoIP calls in this browser.": "You cannot place VoIP calls in this browser.",
"You do not have permission to post to this room": "You do not have permission to post to this room",
"You have been invited to join this room by %(inviterName)s": "You have been invited to join this room by %(inviterName)s",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device",
"You have <a>disabled</a> URL previews by default.": "You have <a>disabled</a> URL previews by default.",
"You have <a>enabled</a> URL previews by default.": "You have <a>enabled</a> URL previews by default.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "You have entered an invalid contact. Try using their Matrix ID or email address.",
"You have no visible notifications": "You have no visible notifications",
"you must be a": "you must be a",
"You need to be able to invite users to do that.": "You need to be able to invite users to do that.",
"You need to be logged in.": "You need to be logged in.",
"You need to enter a user name.": "You need to enter a user name.",
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a one-off; sorry for the inconvenience.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Your email address does not appear to be associated with a Matrix ID on this Homeserver.",
"Your password has been reset": "Your password has been reset",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them",
"You seem to be in a call, are you sure you want to quit?": "You seem to be in a call, are you sure you want to quit?",
"You seem to be uploading files, are you sure you want to quit?": "You seem to be uploading files, are you sure you want to quit?",
"You should not yet trust it to secure data": "You should not yet trust it to secure data",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself": "You will not be able to undo this change as you are promoting the user to have the same power level as yourself",
"Sun": "Sun",
"Mon": "Mon",
"Tue": "Tue",
"Wed": "Wed",
"Thu": "Thu",
"Fri": "Fri",
"Sat": "Sat",
"Jan": "Jan",
"Feb": "Feb",
"Mar": "Mar",
"Apr": "Apr",
"May": "May",
"Jun": "Jun",
"Jul": "Jul",
"Aug": "Aug",
"Sep": "Sep",
"Oct": "Oct",
"Nov": "Nov",
"Dec": "Dec",
"%(weekDayName)s, %(monthName)s %(day)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(time)s",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s",
"%(weekDayName)s %(time)s": "%(weekDayName)s %(time)s",
"Set a display name:": "Set a display name:",
"Set a Display Name": "Set a Display Name",
"Upload an avatar:": "Upload an avatar:",
"This server does not support authentication with a phone number.": "This server does not support authentication with a phone number.",
"Missing password.": "Missing password.",
"Passwords don't match.": "Passwords don't match.",
"Password too short (min %(MIN_PASSWORD_LENGTH)s).": "Password too short (min %(MIN_PASSWORD_LENGTH)s).",
"This doesn't look like a valid email address.": "This doesn't look like a valid email address.",
"This doesn't look like a valid phone number.": "This doesn't look like a valid phone number.",
"User names may only contain letters, numbers, dots, hyphens and underscores.": "User names may only contain letters, numbers, dots, hyphens and underscores.",
"An unknown error occurred.": "An unknown error occurred.",
"I already have an account": "I already have an account",
"An error occured: %(error_string)s": "An error occured: %(error_string)s",
"Topic": "Topic",
"Make Moderator": "Make Moderator",
"Make this room private": "Make this room private",
"Share message history with new users": "Share message history with new users",
"Encrypt room": "Encrypt room",
"There are no visible files in this room": "There are no visible files in this room",
"Room": "Room",
"Connectivity to the server has been lost.": "Connectivity to the server has been lost.",
"Sent messages will be stored until your connection has returned.": "Sent messages will be stored until your connection has returned.",
"Auto-complete": "Auto-complete",
"Resend all": "Resend all",
"(~%(searchCount)s results)": "(~%(searchCount)s results)",
"Cancel": "Cancel",
"cancel all": "cancel all",
"or": "or",
"now. You can also select individual messages to resend or cancel.": "now. You can also select individual messages to resend or cancel.",
"Active call": "Active call",
"Monday": "Monday",
"Tuesday": "Tuesday",
"Wednesday": "Wednesday",
"Thursday": "Thursday",
"Friday": "Friday",
"Saturday": "Saturday",
"Sunday": "Sunday",
"bold": "bold",
"italic": "italic",
"strike": "strike",
"underline": "underline",
"code": "code",
"quote": "quote",
"bullet": "bullet",
"numbullet": "numbullet",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)sjoined %(repeats)s times",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)sjoined %(repeats)s times",
"%(severalUsers)sjoined": "%(severalUsers)sjoined",
"%(oneUser)sjoined": "%(oneUser)sjoined",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)sleft %(repeats)s times",
"%(oneUser)sleft %(repeats)s times": "%(oneUser)sleft %(repeats)s times",
"%(severalUsers)sleft": "%(severalUsers)sleft",
"%(oneUser)sleft": "%(oneUser)sleft",
"%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)sjoined and left %(repeats)s times",
"%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)sjoined and left %(repeats)s times",
"%(severalUsers)sjoined and left": "%(severalUsers)sjoined and left",
"%(oneUser)sjoined and left": "%(oneUser)sjoined and left",
"%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)sleft and rejoined %(repeats)s times",
"%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)sleft and rejoined %(repeats)s times",
"%(severalUsers)sleft and rejoined": "%(severalUsers)sleft and rejoined",
"%(oneUser)sleft and rejoined": "%(oneUser)sleft and rejoined",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)srejected their invitations %(repeats)s times",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)srejected their invitation %(repeats)s times",
"%(severalUsers)srejected their invitations": "%(severalUsers)srejected their invitations",
"%(oneUser)srejected their invitation": "%(oneUser)srejected their invitation",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)shad their invitations withdrawn %(repeats)s times",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)shad their invitation withdrawn %(repeats)s times",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)shad their invitations withdrawn",
"%(oneUser)shad their invitation withdrawn": "%(oneUser)shad their invitation withdrawn",
"were invited %(repeats)s times": "were invited %(repeats)s times",
"was invited %(repeats)s times": "was invited %(repeats)s times",
"were invited": "were invited",
"was invited": "was invited",
"were banned %(repeats)s times": "were banned %(repeats)s times",
"was banned %(repeats)s times": "was banned %(repeats)s times",
"were banned": "were banned",
"was banned": "was banned",
"were unbanned %(repeats)s times": "were unbanned %(repeats)s times",
"was unbanned %(repeats)s times": "was unbanned %(repeats)s times",
"were unbanned": "were unbanned",
"was unbanned": "was unbanned",
"were kicked %(repeats)s times": "were kicked %(repeats)s times",
"was kicked %(repeats)s times": "was kicked %(repeats)s times",
"were kicked": "were kicked",
"was kicked": "was kicked",
"%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)schanged their name %(repeats)s times",
"%(oneUser)schanged their name %(repeats)s times": "%(oneUser)schanged their name %(repeats)s times",
"%(severalUsers)schanged their name": "%(severalUsers)schanged their name",
"%(oneUser)schanged their name": "%(oneUser)schanged their name",
"%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)schanged their avatar %(repeats)s times",
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)schanged their avatar %(repeats)s times",
"%(severalUsers)schanged their avatar": "%(severalUsers)schanged their avatar",
"%(oneUser)schanged their avatar": "%(oneUser)schanged their avatar",
"Please select the destination room for this message": "Please select the destination room for this message",
"Start automatically after system login": "Start automatically after system login",
"Desktop specific": "Desktop specific",
"Analytics": "Analytics",
"Opt out of analytics": "Opt out of analytics",
"Options": "Options",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot collects anonymous analytics to allow us to improve the application.",
"Passphrases must match": "Passphrases must match",
"Passphrase must not be empty": "Passphrase must not be empty",
"Export room keys": "Export room keys",
"Enter passphrase": "Enter passphrase",
"Confirm passphrase": "Confirm passphrase",
"Import room keys": "Import room keys",
"File to import": "File to import",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.",
"You must join the room to see its files": "You must join the room to see its files",
"Reject all %(invitedRooms)s invites": "Reject all %(invitedRooms)s invites",
"Start new chat": "Start new chat",
"Guest users can't invite users. Please register.": "Guest users can't invite users. Please register.",
"Failed to invite": "Failed to invite",
"Failed to invite user": "Failed to invite user",
"Failed to invite the following users to the %(roomName)s room:": "Failed to invite the following users to the %(roomName)s room:",
"Confirm Removal": "Confirm Removal",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.",
"Unknown error": "Unknown error",
"Incorrect password": "Incorrect password",
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "This will make your account permanently unusable. You will not be able to re-register the same user ID.",
"This action is irreversible.": "This action is irreversible.",
"To continue, please enter your password.": "To continue, please enter your password.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:",
"Device name": "Device name",
"Device key": "Device key",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.",
"In future this verification process will be more sophisticated.": "In future this verification process will be more sophisticated.",
"Verify device": "Verify device",
"I verify that the keys match": "I verify that the keys match",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.",
"Unable to restore session": "Unable to restore session",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.",
"Continue anyway": "Continue anyway",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "You are currently blacklisting unverified devices; to send messages to these devices you must verify them.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contains devices that you haven't seen before.",
"Unknown devices": "Unknown devices",
"Unknown Address": "Unknown Address",
"Unblacklist": "Unblacklist",
"Blacklist": "Blacklist",
"Unverify": "Unverify",
"Verify...": "Verify...",
"ex. @bob:example.com": "ex. @bob:example.com",
"Add User": "Add User",
"This Home Server would like to make sure you are not a robot": "This Home Server would like to make sure you are not a robot",
"Sign in with CAS": "Sign in with CAS",
"Custom Server Options": "Custom Server Options",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.",
"This allows you to use this app with an existing Matrix account on a different home server.": "This allows you to use this app with an existing Matrix account on a different home server.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "You can also set a custom identity server but this will typically prevent interaction with users based on email address.",
"Dismiss": "Dismiss",
"Please check your email to continue registration.": "Please check your email to continue registration.",
"Token incorrect": "Token incorrect",
"A text message has been sent to": "A text message has been sent to",
"Please enter the code it contains:": "Please enter the code it contains:",
"powered by Matrix": "powered by Matrix",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "If you don't specify an email address, you won't be able to reset your password. Are you sure?",
"You are registering with %(SelectedTeamName)s": "You are registering with %(SelectedTeamName)s",
"Default server": "Default server",
"Custom server": "Custom server",
"Home server URL": "Home server URL",
"Identity server URL": "Identity server URL",
"What does this mean?": "What does this mean?",
"Error decrypting audio": "Error decrypting audio",
"Error decrypting image": "Error decrypting image",
"Image '%(Body)s' cannot be displayed.": "Image '%(Body)s' cannot be displayed.",
"This image cannot be displayed.": "This image cannot be displayed.",
"Error decrypting video": "Error decrypting video",
"Add an Integration": "Add an Integration",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?",
"Removed or unknown message type": "Removed or unknown message type",
"Disable URL previews by default for participants in this room": "Disable URL previews by default for participants in this room",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "URL previews are %(globalDisableUrlPreview)s by default for participants in this room.",
"URL Previews": "URL Previews",
"Enable URL previews for this room (affects only you)": "Enable URL previews for this room (affects only you)",
"Drop file here to upload": "Drop file here to upload",
" (unsupported)": " (unsupported)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Ongoing conference call%(supportedText)s. %(joinText)s",
"for %(amount)ss": "for %(amount)ss",
"for %(amount)sm": "for %(amount)sm",
"for %(amount)sh": "for %(amount)sh",
"for %(amount)sd": "for %(amount)sd",
"Online": "Online",
"Idle": "Idle",
"Offline": "Offline",
"Disable URL previews for this room (affects only you)": "Disable URL previews for this room (affects only you)",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName changed the room avatar to <img/>",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removed the room avatar.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s changed the avatar for %(roomName)s"
}

View file

@ -166,8 +166,8 @@
"Bug Report": "Reporte de error",
"Bulk Options": "Opciones masivas",
"Call Timeout": "Tiempo de espera de la llamada",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "No se puede conectar con el servidor - Por favor verifique su conexión y asegúrese de que su %(urlStart)s certificado SSL del servidor %(urlEnd)s sea confiable",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "No se puede conectar al servidor via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o %(urlStart)s habilitando los scripts inseguros %(urlEnd)s",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "No se puede conectar con el servidor - Por favor verifique su conexión y asegúrese de que su <a>certificado SSL del servidor</a> sea confiable.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "No se puede conectar al servidor via HTTP, cuando es necesario un enlace HTTPS en la barra de direcciones de tu navegador. Ya sea usando HTTPS o <a>habilitando los scripts inseguros</a>.",
"Can't load user settings": "No se puede cargar las configuraciones del usuario",
"Change Password": "Cambiar clave",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s ha cambiado su nombre de %(oldDisplayName)s a %(displayName)s.",
@ -191,8 +191,8 @@
"Click to unmute audio": "Haz clic para activar sonido de audio",
"Command error": "Error de comando",
"Commands": "Comandos",
"Conference call failed": "La llamada de conferencia falló",
"Conference calling is in development and may not be reliable": "La llamada en conferencia esta en desarrollo y no podría ser segura",
"Conference call failed.": "La llamada de conferencia falló.",
"Conference calling is in development and may not be reliable.": "La llamada en conferencia esta en desarrollo y no podría ser segura.",
"Conference calls are not supported in encrypted rooms": "Las llamadas en conferencia no son soportadas en salas encriptadas",
"Conference calls are not supported in this client": "Las llamadas en conferencia no son soportadas en este navegador",
"Confirm password": "Confirmar clave",
@ -225,7 +225,7 @@
"Displays action": "Mostrar acción",
"Don't send typing notifications": "No enviar notificaciones cuando se escribe",
"Download %(text)s": "Descargar %(text)s",
"Drop here %(toAction)s": "Suelta aquí para %(toAction)s",
"Drop here %(toAction)s": "Suelta aquí %(toAction)s",
"Drop here to tag %(section)s": "Suelta aquí para etiquetar %(section)s",
"Ed25519 fingerprint": "Clave de cifrado Ed25519",
"Email": "Correo electrónico",
@ -281,7 +281,7 @@
"Found a bug?": "¿Encontraste un error?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s a %(toPowerLevel)s",
"Guests can't set avatars. Please register.": "Invitados no puedes establecer avatares. Por favor regístrate.",
"Guest users can't create new rooms. Please register to create room and start a chat": "Usuarios invitados no pueden crear nuevas salas. Por favor regístrate para crear la sala y iniciar la conversación",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Usuarios invitados no pueden crear nuevas salas. Por favor regístrate para crear la sala y iniciar la conversación.",
"Guest users can't upload files. Please register to upload": "Usuarios invitados no puedes subir archivos. Por favor regístrate para subir tus archivos",
"Guests can't use labs features. Please register.": "Invitados no puedes usar las características en desarrollo. Por favor regístrate.",
"Guests cannot join this room even if explicitly invited.": "Invitados no pueden unirse a esta sala aun cuando han sido invitados explícitamente.",
@ -308,7 +308,7 @@
"'%(alias)s' is not a valid format for an address": "'%(alias)s' no es un formato válido para una dirección",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' no es un formato válido para un alias",
"%(displayName)s is typing": "%(displayName)s esta escribiendo",
"I want to sign in with": "Quiero iniciar sesión con",
"Sign in with": "Quiero iniciar sesión con",
"Join Room": "Unirte a la sala",
"joined and left": "unido y dejado",
"joined": "unido",

View file

@ -79,7 +79,7 @@
"it": "Italian",
"ja": "Japanese",
"ji": "Yiddish",
"ko": "Korean (Johab)",
"ko": "Coréen",
"lt": "Lithuanian",
"lv": "Latvian",
"mk": "Macedonian (FYROM)",
@ -100,7 +100,7 @@
"sk": "Slovak",
"sl": "Slovenian",
"sq": "Albanian",
"sr": "Serbian (Latin)",
"sr": "Serbe",
"sv-fi": "Swedish (Finland)",
"sv": "Swedish",
"sx": "Sutu",
@ -119,7 +119,7 @@
"zh-sg": "Chinese (Singapore)",
"zh-tw": "Chinese (Taiwan)",
"zu": "Zulu",
"anyone": "anyone",
"anyone": "n'importe qui",
"Direct Chat": "Conversation Directe",
"Direct chats": "Conversations directes",
"Disable inline URL previews by default": "Désactiver laperçu des URLs",
@ -132,7 +132,7 @@
"Drop here to tag %(section)s": "Déposer ici pour marque comme %(section)s",
"Ed25519 fingerprint": "Empreinte Ed25519",
"Email Address": "Adresse e-mail",
"Email, name or matrix ID": "E-mail, nom or identifiant Matrix",
"Email, name or matrix ID": "E-mail, nom ou identifiant Matrix",
"Emoji": "Emoticône",
"Enable encryption": "Activer l'encryption",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "Les messages encryptés ne seront pas visibles dans les clients qui nimplémentent pas encore lencryption",
@ -142,14 +142,14 @@
"End-to-end encryption is in beta and may not be reliable": "Lencryption bout-en-bout est en bêta et risque de ne pas être fiable",
"Enter Code": "Entrer le code",
"Error": "Erreur",
"Event information": "Event information",
"Existing Call": "Existing Call",
"Export E2E room keys": "Export E2E room keys",
"Failed to ban user": "Failed to ban user",
"Failed to change password. Is your password correct?": "Failed to change password. Is your password correct?",
"Failed to change power level": "Failed to change power level",
"Failed to delete device": "Failed to delete device",
"Failed to forget room %(errCode)s": "Echec lors de l'oublie du salon %(errCode)s",
"Event information": "Information de l'événement",
"Existing Call": "Appel en cours",
"Export E2E room keys": "Exporter les clés d'encryption du salon",
"Failed to ban user": "Échec lors du bannissement de l'utilisateur",
"Failed to change password. Is your password correct?": "Échec du changement de mot de passe. Votre mot de passe est-il correct ?",
"Failed to change power level": "Échec du changement de niveau d'autorité",
"Failed to delete device": "Échec de la suppression de l'appareil",
"Failed to forget room %(errCode)s": "Échec lors de l'oubli du salon %(errCode)s",
"Please Register": "Veuillez vous enregistrer",
"Remove": "Supprimer",
"was banned": "a été banni(e)",
@ -176,7 +176,7 @@
"%(targetName)s accepted an invitation.": "%(targetName)s a accepté une invitation.",
"Account": "Compte",
"Add email address": "Ajouter une adresse e-mail",
"Add phone number": "Ajouter un numéro de téléphone",
"Add phone number": "Ajouter un numéro",
"Admin": "Admin",
"Advanced": "Avancé",
"Algorithm": "Algorithme",
@ -209,8 +209,8 @@
"Blacklisted": "Sur liste noire",
"Bug Report": "Rapport d'erreur",
"Call Timeout": "Délai dappel expiré",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Connexion au Home Server impossible - merci de vérifier votre connectivité et que le %(urlStart)s certificat SSL de votre Home Server %(urlEnd)s est de confiance",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Impossible de se connecter au homeserver en HTTP si l'URL dans la barre de votre explorateur est en HTTPS. Utilisez HTTPS ou %(urlStart)s activez le support des scripts non-vérifiés %(urlEnd)s",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Connexion au Home Server impossible - merci de vérifier votre connectivité et que le <a>certificat SSL de votre Home Server</a> est de confiance.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Impossible de se connecter au homeserver en HTTP si l'URL dans la barre de votre explorateur est en HTTPS. Utilisez HTTPS ou <a>activez le support des scripts non-vérifiés</a>.",
"Can't load user settings": "Impossible de charger les paramètres utilisateur",
"Change Password": "Changer le mot de passe",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s a changé son nom daffichage de %(oldDisplayName)s en %(displayName)s.",
@ -232,8 +232,8 @@
"Click to unmute audio": "Cliquer pour rétablir le son",
"Command error": "Erreur de commande",
"Commands": "Commandes",
"Conference call failed": "Échec de la conférence",
"Conference calling is in development and may not be reliable": "Les appels en conférence sont encore en développement et sont potentiellement peu fiables",
"Conference call failed.": "Échec de la conférence.",
"Conference calling is in development and may not be reliable.": "Les appels en conférence sont encore en développement et sont potentiellement peu fiables.",
"Conference calls are not supported in encrypted rooms": "Les appels en conférence ne sont pas supportés dans les salons encryptés",
"Conference calls are not supported in this client": "Les appels en conférence ne sont pas supportés avec ce client",
"Confirm password": "Confirmer le mot de passe",
@ -246,15 +246,15 @@
"Current password": "Mot de passe actuel",
"Curve25519 identity key": "Clé didentité Curve25519",
"/ddg is not a command": "/ddg n'est pas une commande",
"Deactivate Account": "Désactiver le compte",
"Deactivate my account": "Désactiver mon compte",
"Deactivate Account": "Supprimer le compte",
"Deactivate my account": "Supprimer mon compte",
"decline": "décliner",
"Decrypt %(text)s": "Décrypter %(text)s",
"Decryption error": "Erreur de décryptage",
"Delete": "Supprimer",
"demote": "rétrograder",
"Deops user with given id": "Retire les privilèges dopérateur dun utilisateur avec un ID donné",
"Device ID": "ID de l'appareil",
"Device ID": "Identifiant de l'appareil",
"Devices": "Appareils",
"Devices will not yet be able to decrypt history from before they joined the room": "Les appareils ne seront pas capables de décrypter lhistorique précédant leur adhésion au salon",
"ml": "Malayalam",
@ -293,7 +293,7 @@
"For security, this session has been signed out. Please sign in again.": "Par sécurité, la session a expiré. Merci de vous authentifer à nouveau.",
"Found a bug?": "Trouvé un problème ?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s à %(toPowerLevel)s",
"Guest users can't create new rooms. Please register to create room and start a chat": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Les visiteurs ne peuvent créer de nouveaux salons. Merci de vous enregistrer pour commencer une discussion.",
"Guest users can't upload files. Please register to upload": "Les visiteurs ne peuvent telécharger de fichiers. Merci de vous enregistrer pour télécharger",
"had": "avait",
"Hangup": "Raccrocher",
@ -311,13 +311,14 @@
"Invalid Email Address": "Adresse e-mail invalide",
"%(senderName)s invited %(targetName)s.": "%(senderName)s a invité %(targetName)s.",
"Invite new room members": "Inviter de nouveaux membres",
"Invited": "Invités",
"Invites": "Invitations",
"Invites user with given id to current room": "Inviter lutilisateur avec un ID donné dans le salon actuel",
"is a": "est un",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' n'est pas un format valide pour une adresse",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' n'est pas un format valide pour un alias",
"%(displayName)s is typing": "%(displayName)s est en train de taper",
"I want to sign in with": "Je veux m'identifier avec",
"Sign in with": "Je veux m'identifier avec",
"Join Room": "Rejoindre le salon",
"joined and left": "a joint et quitté",
"joined": "a joint",
@ -379,7 +380,7 @@
"Permissions": "Permissions",
"Phone": "Numéro de téléphone",
"Operation failed": "L'opération a échoué",
"Bulk Options": "Option en vrac",
"Bulk Options": "Options de masse",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Changer le mot de passe actuellement réinitialise les clés dencryption sur tous les appareils, rendant lhistorique encrypté illisible, à moins dexporter les clés du salon en avance de phase puis de les ré-importer. Ceci sera amélioré prochainement.",
"Default": "Défaut",
"Email address": "Adresse e-mail",
@ -392,13 +393,13 @@
"Invalid file%(extra)s": "Fichier %(extra)s invalide",
"Mute": "Couper le son",
"No users have specific privileges in this room": "Aucun utilisateur na de privilège spécifique dans ce salon",
"olm version:": "Version de olm :",
"olm version:": "version de olm :",
"Once you&#39;ve followed the link it contains, click below": "Une fois que vous aurez suivi le lien quil contient, cliquez ci-dessous",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s a placé un appel %(callType)s.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Merci de vérifier vos e-mail et cliquer sur le lien quil contient. Une fois que cela est fait, cliquez sur continuer.",
"Power level must be positive integer.": "Le niveau de pouvoir doit être un entier positif.",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Veuillez vérifier vos e-mails et cliquer sur le lien que vous avez reçu. Puis cliquez sur continuer.",
"Power level must be positive integer.": "Le niveau d'autorité doit être un entier positif.",
"Press": "Cliquer",
"Privacy warning": "Alerte vie privée",
"Privacy warning": "Alerte de confidentialité",
"Privileged Users": "Utilisateur Privilégié",
"Profile": "Profil",
"Reason": "Raison",
@ -425,8 +426,8 @@
"Room Colour": "Couleur du salon",
"Room name (optional)": "Nom du salon (optionnel)",
"Rooms": "Salons",
"Scroll to bottom of page": "Défiler jusquau bas de la page",
"Scroll to unread messages": "Défiler jusquaux messages non-lus",
"Scroll to bottom of page": "Aller en bas de la page",
"Scroll to unread messages": "Aller aux messages non-lus",
"Search": "Rechercher",
"Search failed": "Erreur lors de la recherche",
"Searches DuckDuckGo for results": "Recherche des résultats dans DuckDuckGo",
@ -435,7 +436,7 @@
"Sender device information": "Information de l'appareil de l'expéditeur",
"Send Invites": "Envoyer les invitations",
"Send Reset Email": "Envoyer l'e-mail de réinitialisation",
"sent an image": "envoyer une image",
"sent an image": "a envoyé une image",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s a envoyé une image.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s a invité %(targetDisplayName)s à rejoindre le salon.",
"sent a video": "a envoyé une vidéo",
@ -443,8 +444,8 @@
"Server may be unavailable or overloaded": "Le serveur semble être inaccessible ou surchargé",
"Server may be unavailable, overloaded, or search timed out :(": "Le serveur semble être inaccessible, surchargé ou la recherche a expiré :(",
"Server may be unavailable, overloaded, or the file too big": "Le serveur semble être inaccessible, surchargé ou le fichier trop important",
"Server may be unavailable, overloaded, or you hit a bug": "Le serveur semble être inaccessible, surchargé ou vous avez rencontré un problème",
"Server unavailable, overloaded, or something else went wrong": "Le serveur semble être inaccessible, surchargé ou quelque chose s'est mal passé",
"Server may be unavailable, overloaded, or you hit a bug.": "Le serveur semble être indisponible, surchargé, ou vous avez rencontré un problème.",
"Server unavailable, overloaded, or something else went wrong.": "Le serveur semble être inaccessible, surchargé ou quelque chose s'est mal passé.",
"Session ID": "Identifiant de session",
"%(senderName)s set a profile picture.": "%(senderName)s a défini une photo de profil.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s a défini son nom daffichage comme %(displayName)s.",
@ -531,7 +532,7 @@
"Upload avatar": "Télécharger une photo de profil",
"Upload Failed": "Erreur lors du téléchargement",
"Upload Files": "Télécharger les fichiers",
"Upload file": "Télécharger le fichier",
"Upload file": "Télécharger un fichier",
"Usage": "Utilisation",
"Use with caution": "Utiliser avec prudence",
"User ID": "Identifiant d'utilisateur",
@ -555,11 +556,11 @@
"Who would you like to communicate with?": "Avec qui voulez-vous communiquer ?",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s a révoqué linvitation de %(targetName)s.",
"Would you like to": "Voulez-vous",
"You are already in a call": "Vous êtes déjà dans un appel",
"You are already in a call.": "Vous êtes déjà dans un appel.",
"You're not in any rooms yet! Press": "Vous nêtes dans aucun salon ! Cliquez",
"You are trying to access %(roomName)s": "Vous essayez d'accéder à %(roomName)s",
"You cannot place a call with yourself": "Vous ne pouvez pas passer d'appel avec vous-même",
"You cannot place VoIP calls in this browser": "Vous ne pouvez pas passer d'appel voix dans cet explorateur",
"You cannot place a call with yourself.": "Vous ne pouvez pas passer d'appel avec vous-même.",
"You cannot place VoIP calls in this browser.": "Vous ne pouvez pas passer d'appel voix dans cet explorateur.",
"You do not have permission to post to this room": "Vous navez pas la permission de poster dans ce salon",
"You have been invited to join this room by %(inviterName)s": "Vous avez été invité à joindre ce salon par %(inviterName)s",
"You have been logged out of all devices and will no longer receive push notifications. To re-enable notifications, sign in again on each device": "Vous avez été déconnecté de tous vos appareils et ne recevrez plus de notifications. Pour réactiver les notificationsm identifiez vous à nouveau sur tous les appareils",
@ -569,7 +570,7 @@
"You need to be logged in.": "Vous devez être connecté.",
"You need to enter a user name.": "Vous devez entrer un nom dutilisateur.",
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Vous devez vous connecter à nouveau pour générer les clés dencryption pour cet appareil, et soumettre la clé publique à votre homeserver. Cette action ne se reproduira pas; veuillez nous excuser pour la gêne occasionnée.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Votre adresse e-mail ne semble pas associée à un identifiant Matrix sur ce homeserver",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Votre adresse e-mail ne semble pas associée à un identifiant Matrix sur ce homeserver.",
"Your password has been reset": "Votre mot de passe a été réinitialisé",
"Your password was successfully changed. You will not receive push notifications on other devices until you log back in to them": "Votre mot de passe a été mis à jour avec succès. Vous ne recevrez plus de notification sur vos appareils jusquà ce que vous vous identifiez à nouveau",
"You seem to be in a call, are you sure you want to quit?": "Vous semblez avoir un appel en cours, êtes-vous sûr(e) de vouloir quitter ?",
@ -678,7 +679,7 @@
"Please select the destination room for this message": "Merci de sélectionner un salon de destination pour ce message",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s a supprimé le nom du salon.",
"Analytics": "Outils d'analyse",
"Opt out of analytics": "Refus de participation",
"Opt out of analytics": "Refuser de participer",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot recueille des données anonymes qui nous permettent danalyser et améliorer lapplication.",
"Passphrases must match": "Les phrases secrètes doivent être identiques",
"Passphrase must not be empty": "La phrase secrète ne doit pas être vide",
@ -692,9 +693,8 @@
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Ce processus vous permet dimporter les clés dencryption que vous avez précédemment exportées depuis un autre client Matrix. Vous serez alors capable de décrypter nimporte quel messages que lautre client peut décrypter.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "Le fichier exporté est protégé par une phrase secrète. Vous devez entrer cette phrase secrète ici pour décrypter le fichier.",
"You must join the room to see its files": "Vous devez joindre le salon pour voir ses fichiers",
"Server may be unavailable, overloaded, or you hit a bug.": "Le serveur semble être indisponible, surchargé, ou vous avez rencontré un problème.",
"Reject all %(invitedRooms)s invites": "Rejeter la totalité des %(invitedRooms)s invitations",
"Start new Chat": "Démarrer une nouvelle conversation",
"Start new chat": "Démarrer une nouvelle conversation",
"Guest users can't invite users. Please register.": "Les visiteurs ne peuvent inviter dautres utilisateurs. Merci de vous enregistrer.",
"Failed to invite": "Echec de l'invitation",
"Failed to invite user": "Echec lors de l'invitation de l'utilisateur",
@ -703,5 +703,129 @@
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Êtes vous sûr de vouloir supprimer cet événement ? Notez que si vous supprimez le changement de nom dun salon ou la mise a jour du sujet dun salon, il est possible que le changement soit annulé.",
"Unknown error": "Erreur inconnue",
"Incorrect password": "Mot de passe incorrect",
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Ceci rendra votre compte inutilisable de manière permanente. Vous ne pourrez pas enregistrer à nouveau le même identifiant utilisateur."
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Ceci rendra votre compte inutilisable de manière permanente. Vous ne pourrez pas enregistrer à nouveau le même identifiant utilisateur.",
"This action is irreversible.": "Cette action est irreversible.",
"To continue, please enter your password.": "Pour continuer, merci d'entrer votre mot de passe.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Pour vérifier que vous pouvez faire confiance à cet appareil, merci de contacter son propriétaire par un autre moyen (par ex. en personne ou par téléphone) et demandez lui si la clé quil/elle voit dans ses Paramètres Utilisateur pour cet appareil correspond à la clé ci-dessous :",
"Device name": "Nom de l'appareil",
"Device key": "Clé de l'appareil",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Si les clés correspondent, cliquer sur le bouton Vérifier ci-dessous. Si non, alors quelquun dautre est en train dintercepter cet appareil et vous devriez certainement cliquer sur le bouton Blacklister' (Ajouter à la liste noire) à la place.",
"In future this verification process will be more sophisticated.": "À lavenir ce processus de vérification sera simplifié et plus sophistiqué.",
"Verify device": "Vérifier cet appareil",
"I verify that the keys match": "Jai vérifié que les clés correspondaient",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Nous avons rencontré une erreur en essayant de rétablir votre session précédente. Si vous continuez, vous devrez vous identifier à nouveau et lhistorique encrypté de vos conversations sera illisible.",
"Unable to restore session": "Impossible de restaurer la session",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Si vous avez utilisé une version plus récente de Riot précédemment, votre session risque dêtre incompatible avec cette version. Fermez cette fenêtre et retournez à la version plus récente.",
"Continue anyway": "Continuer quand même",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "Votre nom daffichage est la manière dont vous allez apparaître pour les autres quand vous parlerez dans les salons. Que voulez-vous quil soit ?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Vous êtes en train dajouter à la liste noire des appareils non-vérifiés ; pour envoyer des messages à ces appareils vous devez les vérifier.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nous vous recommandons deffectuer le process de vérification pour tous les appareils afin de confirmer quils appartiennent à leurs propriétaires légitimes, mais vous pouvez renvoyer le(s) message(s) sans vérifier si vous préférez.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contient des appareils que vous n'avez encore jamais vus.",
"Unknown devices": "Appareils inconnus",
"Unknown Address": "Adresse inconnue",
"Unblacklist": "Réhabiliter",
"Blacklist": "Blacklister",
"Unverify": "Non-vérifié",
"Verify...": "Vérifier...",
"ex. @bob:example.com": "ex. @bob:exemple.com",
"Add User": "Ajouter l'utilisateur",
"This Home Server would like to make sure you are not a robot": "Ce homeserver veut vérifier que vous nêtes pas un robot",
"Sign in with CAS": "S'identifier avec CAS",
"Custom Server Options": "Options de serveur personnalisées",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Vous pouvez utiliser les options de serveur personnalisées pour vous identifier auprès dun autre serveur Matrix en spécifiant lURL dun homeserver différent.",
"This allows you to use this app with an existing Matrix account on a different home server.": "Cela vous permet dutiliser lapplication avec un compte Matrix existant sur un homeserver différent.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Vous pouvez également configurer un serveur didentité différent mais cela risque entre autres dempêcher les interactions par e-mail avec les autres utilisateurs.",
"Dismiss": "Ignorer",
"Please check your email to continue registration.": "Merci de vérifier votre e-mail afin de continuer votre inscription.",
"Token incorrect": "Jeton incorrect",
"A text message has been sent to": "Un message texte a été envoyé au",
"Please enter the code it contains:": "Merci d'entre le code qu'il contient :",
"powered by Matrix": "propulsé par Matrix",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Si vous nentrez pas dadresse e-mail, vous ne pourrez pas réinitialiser votre mot de passe. Êtes vous sûr ?",
"You are registering with %(SelectedTeamName)s": "Vous vous enregistrez auprès de %(SelectedTeamName)s",
"Default server": "Serveur par défaut",
"Custom server": "Serveur personnalisé",
"Home server URL": "URL du homeserver",
"Identity server URL": "URL du serveur didentité",
"What does this mean?": "Quest ce que cela signifie ?",
"Error decrypting audio": "Erreur lors de la décryption de laudio",
"Error decrypting image": "Erreur lors de la décryption de limage",
"Image '%(Body)s' cannot be displayed.": "L'image '%(Body)s' ne peut être affichée.",
"This image cannot be displayed.": "Cette image ne peut être affichée.",
"Error decrypting video": "Erreur lors de la décryption de la vidéo",
"Add an Integration": "Ajouter une intégration",
"URL Previews": "Aperçus d'URL",
"Disable URL previews by default for participants in this room": "Désactiver les aperçus d'URL par défaut pour les participants de ce salon",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "Les aperçus d'URL sont %(globalDisableUrlPreview)s par défaut pour les participants de ce salon.",
"Enable URL previews for this room (affects only you)": "Activer les aperçus d'URL pour ce salon (n'affecte que vous)",
"Drop file here to upload": "Déposer le fichier ici pour le télécharger",
" (unsupported)": " (non supporté)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Appel conférence en cours%(supportedText)s. %(joinText)s",
"Online": "En ligne",
"Offline": "Déconnecté",
"Disable URL previews for this room (affects only you)": "Désactiver les aperçus d'URL pour ce salon (n'affecte que vous)",
"Desktop specific": "Spécifique à l'application de bureau",
"Start automatically after system login": "Démarrer automatiquement après la phase d'authentification du système",
"Idle": "Inactif",
"Jump to first unread message.": "Aller au premier message non-lu.",
"Options": "Options",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Vous êtes sur le point daccéder à un site tiers afin de pouvoir vous identifier pour utiliser %(integrationsUrl)s. Voulez vous continuer ?",
"Removed or unknown message type": "Type de message inconnu ou supprimé",
"disabled": "désactivé",
"enabled": "activé",
"Set a Display Name": "Définir un nom daffichage",
"for %(amount)ss": "depuis %(amount)ss",
"for %(amount)sm": "depuis %(amount)sm",
"for %(amount)sh": "depuis %(amount)sh",
"for %(amount)sd": "depuis %(amount)sj",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName a changé limage de profil du salon en <img/>",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s a supprimé limage de profil du salon.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s a changé limage de profil de %(roomName)s",
"Device already verified!": "Appareil déjà vérifié !",
"Export": "Exporter",
"Failed to register as guest:": "Échec de linscription en tant que visiteur :",
"Guest access is disabled on this Home Server.": "Laccès en tant que visiteur est désactivé sur ce serveur.",
"Import": "Importer",
"Incorrect username and/or password.": "Nom dutilisateur et/ou mot de passe incorrect.",
"Results from DuckDuckGo": "Résultats de DuckDuckGo",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "Les clés de signature que vous avez transmises correspondent aux clés que vous avez reçues de lappareil %(deviceId)s de %(userId)s. Lappareil est vérifié.",
"This Home Server does not support login using email address.": "Ce serveur ne supporte pas lidentification par e-mail.",
"There was a problem logging in.": "Un problème a été rencontré lors de lidentification.",
"Unknown (user, device) pair:": "Couple (utilisateur, appareil) inconnu :",
"Unrecognised command:": "Commande non-reconnue :",
"Unrecognised room alias:": "Alias de salon non-reconnu :",
"Use compact timeline layout": "Utiliser l'affichage compact",
"Verified key": "Clé vérifiée",
"WARNING: Device already verified, but keys do NOT MATCH!": "ATTENTION : Appareil déjà vérifié mais les clés NE CORRESPONDENT PAS !",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATTENTION : ERREUR DE VÉRIFICATION DES CLÉS ! La clé de signature pour %(userId)s et l'appareil %(deviceId)s est “%(fprint)s” et ne correspond pas à la clé “%(fingerprint)s” qui a été fournie. Cela peut signifier que vos communications sont interceptées !",
"VoIP": "Voix sur IP",
"Missing Media Permissions, click here to request.": "Manque de permission pour les médias, cliquer ici pour les demander.",
"No Microphones detected": "Aucun micro détecté",
"No Webcams detected": "Aucune webcam détectée",
"No media permissions": "Pas de permission pour les médias",
"You may need to manually permit Riot to access your microphone/webcam": "Il est possible que vous deviez manuellement permettre à Riot daccéder à votre micro/webcam",
"Default Device": "Appareil par défaut",
"Microphone": "Micro",
"Camera": "Caméra",
"Add a topic": "Ajouter un sujet",
"Anyone": "N'importe qui",
"Are you sure you want to leave the room '%(roomName)s'?": "Êtes-vous sûr de vouloir quitter le salon '%(roomName)s' ?",
"Custom level": "Niveau personnalisé",
"(default: %(userName)s)": "(défaut : %(userName)s)",
"Device ID:": "Identifiant de l'appareil :",
"device id: ": "Identifiant appareil : ",
"Device key:": "Clé de lappareil :",
"Email address (optional)": "Adresse e-mail (facultatif)",
"List this room in %(domain)s's room directory?": "Lister ce salon dans le répertoire de %(domain)s ?",
"Mobile phone number (optional)": "Numéro de téléphone (facultatif)",
"Password:": "Mot de passe :",
"Register": "S'inscrire",
"Remote addresses for this room:": "Supprimer l'adresse pour ce salon :",
"Save": "Enregistrer",
"Setting a user name will create a fresh account": "Définir un nouveau nom dutilisateur va créer un nouveau compte",
"Tagged as: ": "Étiquetter comme : ",
"You have <a>disabled</a> URL previews by default.": "Vous avez <a>désactivé</a> les aperçus dURL par défaut.",
"You have <a>enabled</a> URL previews by default.": "Vous avez <a>activé</a> les aperçus dURL par défaut.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "Vous avez entré un contact invalide. Essayez dutiliser leur identifiant Matrix ou leur adresse email.",
"Hide removed messages": "Cacher les messages supprimés"
}

1
src/i18n/strings/hu.json Normal file
View file

@ -0,0 +1 @@
{}

View file

@ -167,8 +167,8 @@
"Bug Report": "Bug report",
"Bulk Options": "Bulk opties",
"Call Timeout": "Gesprek time-out",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Kan niet met de homeserver verbinden - controleer alsjeblieft je verbinding en wees zeker dat je %(urlStart)s homeserver's SSL certificaat %(urlEnd)s vertrouwd wordt",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Kan niet met de homeserver verbinden via HTTP wanneer er een HTTPS URL in je browser balk staat. Gebruik HTTPS of %(urlStart)s activeer onveilige scripts %(urlEnd)s",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Kan niet met de homeserver verbinden - controleer alsjeblieft je verbinding en wees zeker dat je <a>homeserver's SSL certificaat</a> vertrouwd wordt.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Kan niet met de homeserver verbinden via HTTP wanneer er een HTTPS URL in je browser balk staat. Gebruik HTTPS of <a>activeer onveilige scripts</a>.",
"Can't load user settings": "Kan de gebruiker instellingen niet laden",
"Change Password": "Wachtwoord veranderen",
"%(senderName)s changed their display name from %(oldDisplayName)s to %(displayName)s.": "%(senderName)s heeft zijn of haar weergave naam veranderd van %(oldDisplayName)s naar %(displayName)s.",
@ -191,12 +191,13 @@
"Click to unmute audio": "Klik om het dempen van het geluid op te heffen",
"Command error": "Opdracht fout",
"Commands": "Opdrachten",
"Conference call failed": "Conferentie gesprek mislukt",
"Conference calling is in development and may not be reliable": "Conferentie gesprekken zijn nog in ontwikkelingen en kunnen onbetrouwbaar zijn",
"Conference call failed.": "Conferentie gesprek mislukt.",
"Conference calling is in development and may not be reliable.": "Conferentie gesprekken zijn nog in ontwikkelingen en kunnen onbetrouwbaar zijn.",
"Conference calls are not supported in encrypted rooms": "Conferentie gesprekken worden niet ondersteunt in versleutelde kamers",
"Conference calls are not supported in this client": "Conferentie gesprekken worden niet ondersteunt in deze client",
"Confirm password": "Bevestigen wachtwoord",
"Confirm your new password": "Bevestig je nieuwe wachtwoord",
"Continue": "Doorgaan",
"Could not connect to the integration server": "Mislukt om te verbinden met de integratie server"
"Could not connect to the integration server": "Mislukt om te verbinden met de integratie server",
"Cancel": "Annuleer"
}

View file

@ -10,10 +10,11 @@
"Algorithm": "Algoritmo",
"all room members, from the point they are invited.": "todos os membros da sala, a partir de quando foram convidados",
"all room members, from the point they joined.": "todos os membros da sala, a partir de quando entraram",
"all room members": "todos os membros da sala",
"all room members": "todas as pessoas da sala",
"an address": "um endereço",
"and": "e",
"An email has been sent to": "Um email foi enviado para",
"New passwords don't match": "As novas senhas não conferem",
"A new password must be entered.": "Uma nova senha precisa ser informada.",
"answered the call.": "respondeu à chamada.",
"Anyone who knows the room's link, apart from guests": "Qualquer pessoa que tenha o link da sala, exceto visitantes",
@ -34,7 +35,7 @@
"changed their profile picture": "alterou sua foto de perfil",
"changed the power level of": "mudou o nível de permissões de",
"changed the room name to": "mudou o nome da sala para",
"changed the topic to": "mudou o tópico para",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s mudou o tópico para \"%(topic)s\".",
"Changes to who can read history will only apply to future messages in this room": "As mudanças sobre quem pode ler o histórico da sala só serão aplicadas às mensagens futuras nesta sala",
"Changes your display nickname": "Troca o seu apelido",
"Claimed Ed25519 fingerprint key": "Chave reivindicada da Impressão Digital Ed25519",
@ -43,6 +44,7 @@
"Click here": "Clique aqui",
"Click here to fix": "Clique aqui para resolver isso",
"Commands": "Comandos",
"Confirm password": "Confirme a nova senha",
"Confirm your new password": "Confirme a nova senha",
"Continue": "Continuar",
"Could not connect to the integration server": "Não foi possível conectar ao servidor de integrações",
@ -50,6 +52,7 @@
"Create a new account": "Criar uma conta",
"Create Room": "Criar Sala",
"Cryptography": "Criptografia",
"Current password": "Senha atual",
"Curve25519 identity key": "Chave de Indetificação Curve25519",
"Deactivate Account": "Desativar conta",
"Deactivate my account": "Desativar minha conta",
@ -89,7 +92,7 @@
"favourite": "favoritar",
"Favourite": "Favorito",
"Favourites": "Favoritos",
"Filter room members": "Filtrar membros de sala",
"Filter room members": "Filtrar integrantes da sala",
"Forget room": "Esquecer sala",
"Forgot your password?": "Esqueceu sua senha?",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "Por segurança, deslogar irá remover qualquer chave de criptografia ponta-a-ponta deste navegador. Caso deseje descriptografar o histórico das suas conversas E2E em sessões Riot futuras, por favor exporte as chaves da sala para sua garantia.",
@ -108,11 +111,11 @@
"Import E2E room keys": "Importar chave de criptografia ponta-a-ponta (E2E) da sala",
"Invalid Email Address": "Endereço de email inválido",
"invited": "convidou",
"Invite new room members": "Convidar novo membros para sala",
"Invite new room members": "Convidar novas pessoas para ingressar na sala",
"Invites": "Convidar",
"Invites user with given id to current room": "Convidar usuários com um dado identificador para esta sala",
"is a": "é um(a)",
"I want to sign in with": "Quero entrar",
"Sign in with": "Quero entrar",
"joined and left": "entrou e saiu",
"joined": "entrou",
"joined the room": "entrou na sala",
@ -152,12 +155,13 @@
"other": "outro",
"others": "outros",
"Password": "Senha",
"Passwords can't be empty": "As senhas não podem estar em branco",
"People": "Pessoas",
"Permissions": "Permissões",
"Phone": "Telefone",
"placed a": "iniciou uma",
"Please check your email and click on the link it contains. Once this is done, click continue.": "Por favor verifique seu email e clique no link enviado. Quando finalizar este processo, clique para continuar.",
"Please Register": "Por favor, cadastre-se",
"Please Register": "Por favor registe-se",
"Privacy warning": "Alerta sobre privacidade",
"Privileged Users": "Usuárias/os privilegiadas/os",
"Profile": "Perfil",
@ -177,6 +181,7 @@
"Room Colour": "Cores da sala",
"Room name (optional)": "Título da Sala (opcional)",
"Rooms": "Salas",
"Scroll to bottom of page": "Ir para o fim da página",
"Scroll to unread messages": "Rolar para baixo para ver as mensagens não lidas",
"Searches DuckDuckGo for results": "Buscar por resultados no buscador DuckDuckGo",
"Send a message (unencrypted)": "Enviar uma mensagem",
@ -188,7 +193,7 @@
"sent an invitation to": "enviou um convite para",
"sent a video": "enviou um vídeo",
"Server may be unavailable or overloaded": "Servidor pode estar indisponível ou sobrecarregado",
"Server may be unavailable, overloaded, or you hit a bug": "Servidor pode estar indisponível, sobrecarregado ou aconteceu um erro de execução",
"Server may be unavailable, overloaded, or you hit a bug.": "O servidor pode estar indisponível ou sobrecarregado, ou então você encontrou uma falha no sistema.",
"Session ID": "Identificador de sessão",
"set a profile picture": "colocou uma foto de perfil",
"set their display name to": "configurou seu nome para",
@ -256,7 +261,7 @@
"VoIP conference finished.": "Conferência VoIP encerrada.",
"VoIP conference started.": "Conferência VoIP iniciada.",
"(warning: cannot be disabled again!)": "(atenção: esta operação não poderá ser desfeita depois!)",
"Warning!": "Atenção!",
"Warning": "Atenção!",
"was banned": "banida/o",
"was invited": "convidada/o",
"was kicked": "retirada/o da sala",
@ -265,7 +270,7 @@
"were": "foram",
"Who can access this room?": "Quem pode acessar esta sala?",
"Who can read history?": "Quem pode ler o histórico da sala?",
"Who would you like to add to this room?": "Quem Você gostaria que fosse adicionado a esta sala?",
"Who would you like to add to this room?": "Quais pessoas você gostaria de adicionar a esta sala?",
"Who would you like to communicate with?": "Com quem você gostaria de se comunicar?",
"withdrawn": "retirado",
"Would you like to": "Você gostaria de",
@ -318,14 +323,13 @@
"%(senderName)s changed their profile picture.": "%(senderName)s alterou sua imagem de perfil.",
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s alterou o nível de permissões de %(powerLevelDiffText)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s alterou o tópico para \"%(topic)s\".",
"click to reveal": "clique para ver",
"Conference call failed": "Chamada de conferência falhou",
"Conference calling is in development and may not be reliable": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar",
"Conference call failed.": "Chamada de conferência falhou.",
"Conference calling is in development and may not be reliable.": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar.",
"Conference calls are not supported in encrypted rooms": "Chamadas de conferência não são possíveis em salas criptografadas",
"Conference calls are not supported in this client": "Chamadas de conferência não são possíveis neste navegador",
"/ddg is not a command": "/ddg não é um comando",
"Drop here %(toAction)s": "Arraste aqui %(toAction)s",
"Drop here %(toAction)s": "Arraste aqui para %(toAction)s",
"Drop here to tag %(section)s": "Arraste aqui para marcar como %(section)s",
"%(senderName)s ended the call.": "%(senderName)s finalizou a chamada.",
"Existing Call": "Chamada em andamento",
@ -336,7 +340,7 @@
"Failed to verify email address: make sure you clicked the link in the email": "Não foi possível verificar o endereço de email: verifique se você realmente clicou no link que está no seu email",
"Failure to create room": "Não foi possível criar a sala",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s para %(toPowerLevel)s",
"Guest users can't create new rooms. Please register to create room and start a chat": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa.",
"%(senderName)s invited %(targetName)s.": "%(senderName)s convidou %(targetName)s.",
"%(displayName)s is typing": "%(displayName)s está escrevendo",
"%(targetName)s joined the room.": "%(targetName)s entrou na sala.",
@ -380,6 +384,7 @@
"To remove other users' messages": "Para apagar mensagens de outras pessoas",
"to restore": "para restaurar",
"to start a chat with someone": "para iniciar uma conversa com alguém",
"to tag as %(tagName)s": "para marcar como %(tagName)s",
"to tag direct chat": "para marcar a conversa como pessoal",
"To use it, just wait for autocomplete results to load and tab through them.": "Para usar esta funcionalidade, espere o carregamento dos resultados de autocompletar e então escolha entre as opções.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s ativou criptografia ponta a ponta (algoritmo %(algorithm)s).",
@ -391,16 +396,16 @@
"Usage": "Uso",
"Use with caution": "Use com cautela",
"VoIP is unsupported": "Chamada de voz não permitida",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s's.",
"You are already in a call": "Você já está em uma chamada",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s.",
"You are already in a call.": "Você já está em uma chamada.",
"You're not in any rooms yet! Press": "Você ainda não está em nenhuma sala! Pressione",
"You are trying to access %(roomName)s": "Você está tentando acessar a sala %(roomName)s",
"You cannot place a call with yourself": "Você não pode iniciar uma chamada",
"You cannot place VoIP calls in this browser": "Você não pode fazer chamadas de voz neste navegador",
"You cannot place a call with yourself.": "Você não pode iniciar uma chamada.",
"You cannot place VoIP calls in this browser.": "Você não pode fazer chamadas de voz neste navegador.",
"You need to be able to invite users to do that.": "Para fazer isso, você tem que ter permissão para convidar outras pessoas.",
"You need to be logged in.": "Você tem que estar logado.",
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor.",
"Set a display name:": "Defina um nome público para você:",
"Upload an avatar:": "Envie uma imagem de perfil para identificar você:",
"This server does not support authentication with a phone number.": "Este servidor não permite a autenticação através de números de telefone.",
@ -428,27 +433,28 @@
"now. You can also select individual messages to resend or cancel.": "agora. Você também pode escolher mensagens individuais e definir se vai reenviar ou cancelar o envio.",
"Active call": "Chamada ativa",
"af": "Afrikaans",
"ar-ae": "Árabe (U.A.E.)",
"ar-ae": "Árabe (E.A.U.)",
"ar-bh": "Árabe (Bahrain)",
"ar-dz": "Árabe (Algéria)",
"ar-eg": "Árabe (Egipto)",
"ar-tn": "Árabe (Tunisia)",
"be": "Bielorusso",
"ar-dz": "Árabe (Argélia)",
"Sunday": "Domingo",
"Monday": "Segunda-feira",
"ar-eg": "Árabe (Egito)",
"ar-tn": "Árabe (Tunísia)",
"be": "Bielorrusso",
"bg": "Búlgaro",
"ca": "Catalão",
"cs": "Checo",
"de-at": "Alemao (Austria)",
"el": "Grego",
"en-au": "Inglês (Austrália)",
"en-ca": "Inglês (Canadá)",
"en-gb": "Inglês (Reino Unido)",
"en-ie": "Inglês (Irlanda)",
"en-nz": "Inglês (Nova Zelândia)",
"en-us": "Inglês (Estados Unidos)",
"es-ar": "Espanhol (Argentina)",
"es-mx": "Espanhol (Mexico)",
"es-py": "Espanhol (Paraguai)",
"es": "Espanhol (Espanha)",
"et": "Estoniano",
"et": "Estônia",
"fa": "Farsi",
"fi": "Finlandês",
"fr-be": "Francês (Bélgica)",
@ -457,45 +463,418 @@
"fr": "Francês",
"ga": "Irlandês",
"he": "Hebreu",
"hi": "Hindi",
"hr": "Croata",
"hu": "Húngaro",
"hi": "Hindu",
"hr": "Croácia",
"hu": "Hungria",
"id": "Indonésio",
"is": "Islandês",
"it": "Italiano",
"ja": "Japonês",
"ji": "diche",
"lt": "Lituano",
"ji": "Ídiche",
"lt": "Lituânia",
"lv": "Letão",
"ms": "Malaio",
"mt": "Maltês",
"nl-be": "Holandês (Bélgica)",
"nl": "Holandês",
"no": "Norueguês",
"pl": "Polaco",
"pt": "Português",
"pl": "Polonês",
"pt": "Português (Portugal)",
"rm": "Romanche",
"ro": "Romeno",
"sk": "Eslovaco",
"sl": "Esloveno",
"sq": "Albanês",
"sr": "Sérvio (Latim)",
"sv": "Sueco",
"sr": "Sérvio",
"sv": "Suécia",
"th": "Tailandês",
"tn": "tswana",
"tr": "Turco",
"ts": "tsonga",
"tn": "Tsuana",
"tr": "Turquia",
"ts": "Tsonga",
"uk": "Ucraniano",
"ur": "urdu",
"ve": "venda",
"ur": "Urdu",
"vi": "Vietnamita",
"xh": "xosa",
"zu": "zulu",
"xh": "Xhosa",
"zu": "Zulu",
"Failed to forget room %(errCode)s": "Falha ao esquecer a sala %(errCode)s",
"Failed to join the room": "Falha ao entrar na sala",
"Sunday": "Domingo",
"Monday": "Segunda",
"Tuesday": "Terça",
"Wednesday": "Quarta",
"Thursday": "Quinta",
"Friday": "Sexta",
"Saturday": "Sábado"
"Tuesday": "Terça-feira",
"Wednesday": "Quarta-feira",
"Thursday": "Quinta-feira",
"Friday": "Sexta-feira",
"Saturday": "Sábado",
"ar-iq": "Árabe (Iraque)",
"ar-jo": "Árabe (Jordânia)",
"ar-kw": "Árabe (Kuwait)",
"ar-lb": "Árabe (Líbano)",
"ar-ly": "Árabe (Líbia)",
"ar-ma": "Árabe (Marrocos)",
"ar-om": "Árabe (Omã)",
"ar-qa": "Árabe (Catar)",
"ar-sa": "Árabe (Arábia Saudita)",
"ar-sy": "Árabe (Síria)",
"ar-ye": "Árabe (Iémen)",
"de-at": "Alemão (Áustria)",
"de-ch": "Alemão (Suíça)",
"de-li": "Alemão (Liechtenstein)",
"de-lu": "Alemão (Luxemburgo)",
"en-bz": "Inglês (Belize)",
"en-jm": "Inglês (Jamaica)",
"en-tt": "Inglês (Trindade)",
"en-za": "English (África do Sul)",
"es-bo": "Espanhol (Bolívia)",
"es-cl": "Espanhol (Chile)",
"es-co": "Espanhol (Colômbia)",
"es-cr": "Espanhol (Costa Rica)",
"es-do": "Espanhol (República Dominicana)",
"es-ec": "Espanhol (Equador)",
"es-gt": "Espanhol (Guatemala)",
"es-hn": "Espanhol (Honduras)",
"es-mx": "Espanhol (México)",
"es-ni": "Espanhol (Nicarágua)",
"es-pa": "Espanhol (Panamá)",
"%(oneUser)schanged their avatar": "%(oneUser)salterou sua imagem pública",
"es-pe": "Espanhol (Peru)",
"es-pr": "Espanhol (Porto Rico)",
"es-sv": "Espanhol (El Salvador)",
"es-uy": "Espanhol (Uruguai)",
"es-ve": "Espanhol (Venezuela)",
"eu": "Basco (Basco)",
"fr-lu": "Francês (Luxemburgo)",
"gd": "Galês (Escócia)",
"it-ch": "Italiano (Suíça)",
"ko": "Coreano",
"mk": "Macedônio (República da Macedônia)",
"ro-mo": "Romano (Moldávia)",
"ru-mo": "Russo (Moldávia)",
"sb": "Sorábio",
"sv-fi": "Sueco (Finlândia)",
"zh-cn": "Chinês (República Popular da China)",
"zh-hk": "Chinês (Hong Kong SAR)",
"zh-sg": "Chinês (Singapura)",
"zh-tw": "Chinês (Taiwan)",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Uma mensagem de texto foi enviada para +%(msisdn)s. Gentileza entrar com o código de verificação que contém",
"%(items)s and %(remaining)s others": "%(items)s e %(remaining)s outros",
"%(items)s and one other": "%(items)s e um outro",
"%(items)s and %(lastItem)s": "%(items)s e %(lastItem)s",
"and %(overflowCount)s others...": "e %(overflowCount)s outros...",
"and one other...": "e um outro...",
"Are you sure?": "Você tem certeza?",
"Attachment": "Anexo",
"Autoplay GIFs and videos": "Reproduzir automaticamente GIFs e videos",
"%(weekDayName)s, %(monthName)s %(day)s %(fullYear)s %(time)s": "%(weekDayName)s, %(day)s de %(monthName)s de %(fullYear)s às %(time)s",
"fo": "Feroês",
"sx": "Sutu",
"sz": "Sami (Lappish)",
"ve": "Venda",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Não consigo conectar ao servidor padrão - favor checar sua conexão à internet e verificar se o certificado SSL do seu <a>servidor padrão</a> é confiável.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Não consigo conectar ao servidor padrão através de HTTP quando uma URL HTTPS está na barra de endereços do seu navegador. Use HTTPS ou então <a>habilite scripts não seguros no seu navegador</a>.",
"Change Password": "Alterar senha",
"changing room on a RoomView is not supported": "mudar a sala em uma 'RoomView' não é permitido",
"Click to mute audio": "Clique para colocar o áudio no mudo",
"Click to mute video": "Clique para desabilitar imagens de vídeo",
"Click to unmute video": "Clique para voltar a mostrar imagens de vídeo",
"Click to unmute audio": "Clique para retirar áudio do mudo",
"Command error": "Erro de comando",
"Decrypt %(text)s": "Descriptografar %(text)s",
"Delete": "Apagar",
"Devices": "Dispositivos",
"Direct chats": "Conversas pessoais",
"Disinvite": "Desconvidar",
"Don't send typing notifications": "Não enviar notificação de estar digitando",
"Download %(text)s": "Baixar %(text)s",
"Enable encryption": "Habilitar criptografia",
"Enter Code": "Entre com o código",
"Failed to ban user": "Não foi possível banir o/a usuário/a",
"Failed to change power level": "Não foi possível mudar o nível de permissões",
"Failed to delete device": "Não foi possível remover o dispositivo",
"Failed to join room": "Não foi possível ingressar na sala",
"Failed to kick": "Não foi possível remover usuária/o",
"Failed to load timeline position": "Não foi possível carregar a posição na linha do tempo",
"Failed to mute user": "Não foi possível remover notificações da/do usuária/o",
"Failed to reject invite": "Não foi possível rejeitar o convite",
"Failed to save settings": "Não foi possível salvar as configurações",
"Failed to set display name": "Houve falha ao definir o nome público",
"Failed to toggle moderator status": "Houve falha ao alterar o status de moderador/a",
"Fill screen": "Tela cheia",
"Hide read receipts": "Ocultar recebimentos de leitura",
"Hide Text Formatting Toolbar": "Ocultar a barra de formatação de texto",
"Incorrect verification code": "Código de verificação incorreto",
"Invalid alias format": "Formato de alias é inválido",
"Invalid address format": "Formato de endereço é inválido",
"'%(alias)s' is not a valid format for an address": "'%(alias)s' não é um formato válido para um endereço",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' não é um formato válido para um alias",
"Join Room": "Ingressar na sala",
"Jump to first unread message.": "Ir diretamente para a primeira das mensagens não lidas.",
"Kick": "Remover",
"Level": "Nível",
"Local addresses for this room:": "Endereço local desta sala:",
"Markdown is disabled": "A formatação 'Markdown' está desabilitada",
"Markdown is enabled": "A formatação 'Markdown' está habilitada",
"Message not sent due to unknown devices being present": "A mensagem não foi enviada por causa da presença de dispositivos desconhecidos",
"Never send encrypted messages to unverified devices in this room": "Nunca envie mensagens criptografadas para dispositivos não verificados nesta sala",
"New address (e.g. #foo:%(localDomain)s)": "Novo endereço (p.ex: #algo:%(localDomain)s)",
"not set": "não definido",
"not specified": "não especificado",
"No devices with registered encryption keys": "Não há dispositivos com chaves de criptografia registradas",
"No more results": "Não há mais resultados",
"No results": "Sem resultados",
"OK": "Ok",
"Revoke Moderator": "Retirar status de moderador",
"Search": "Pesquisar",
"Search failed": "Busca falhou",
"Server error": "Erro no servidor",
"Server may be unavailable, overloaded, or search timed out :(": "O servidor pode estar indisponível, sobrecarregado, ou a busca ultrapassou o tempo limite :(",
"Server may be unavailable, overloaded, or the file too big": "O servidor pode estar indisponível, sobrecarregado, ou o arquivo é muito grande",
"Server unavailable, overloaded, or something else went wrong.": "O servidor pode estar indisponível, sobrecarregado, ou alguma outra coisa não funcionou.",
"Some of your messages have not been sent": "Algumas das suas mensagens não foram enviadas",
"Submit": "Enviar",
"The main address for this room is": "O endereço principal desta sala é",
"This action cannot be performed by a guest user. Please register to be able to do this": "Esta ação não pode ser realizada por um/a usuário/a visitante. Por favor, registre-se para poder fazer isso",
"%(actionVerb)s this person?": "%(actionVerb)s esta pessoa?",
"This room has no local addresses": "Esta sala não tem endereços locais",
"This room is private or inaccessible to guests. You may be able to join if you register": "Esta sala é privada ou inacessível para visitantes. Você poderá ingressar nela se registrar-se",
"Tried to load a specific point in this room's timeline, but you do not have permission to view the message in question": "Tentei carregar um ponto específico na linha do tempo desta sala, mas parece que você não tem permissões para ver a mensagem em questão",
"Tried to load a specific point in this room's timeline, but was unable to find it": "Tentei carregar um ponto específico na linha do tempo desta sala, mas não o encontrei",
"Turn Markdown off": "Desabilitar a formatação 'Markdown'",
"Turn Markdown on": "Habilitar a marcação 'Markdown'",
"Unable to load device list": "Não foi possível carregar a lista de dispositivos",
"Unknown command": "Comando desconhecido",
"Unknown room %(roomId)s": "A sala %(roomId)s é desconhecida",
"You have been invited to join this room by %(inviterName)s": "Você foi convidada/o por %(inviterName)s a ingressar nesta sala",
"You seem to be in a call, are you sure you want to quit?": "Parece que você está em uma chamada. Tem certeza que quer sair?",
"You seem to be uploading files, are you sure you want to quit?": "Parece que você está enviando arquivos. Tem certeza que quer sair?",
"You will not be able to undo this change as you are promoting the user to have the same power level as yourself": "Você não poderá desfazer esta mudança, pois estará dando a este(a) usuário(a) o mesmo nível de permissões que você",
"Make Moderator": "Tornar moderador(a)",
"Room": "Sala",
"(~%(searchCount)s results)": "(±%(searchCount)s resultados)",
"Cancel": "Cancelar",
"bold": "negrito",
"italic": "itálico",
"strike": "tachado",
"underline": "sublinhado",
"code": "código de programação",
"quote": "citação",
"bullet": "marcador de lista",
"numbullet": "marcador de numeração",
"%(severalUsers)sjoined %(repeats)s times": "%(severalUsers)singressaram %(repeats)s vezes",
"%(oneUser)sjoined %(repeats)s times": "%(oneUser)singressou %(repeats)s vezes",
"%(severalUsers)sjoined": "%(severalUsers)singressaram",
"%(oneUser)sjoined": "%(oneUser)singressou",
"%(severalUsers)sleft %(repeats)s times": "%(severalUsers)ssaíram %(repeats)s vezes",
"%(oneUser)sleft %(repeats)s times": "%(oneUser)ssaiu %(repeats)s vezes",
"%(severalUsers)sleft": "%(severalUsers)ssaíram",
"%(oneUser)sleft": "%(oneUser)ssaiu",
"%(severalUsers)sjoined and left %(repeats)s times": "%(severalUsers)singressaram e saíram %(repeats)s vezes",
"%(oneUser)sjoined and left %(repeats)s times": "%(oneUser)singressou e saiu %(repeats)s vezes",
"%(severalUsers)sjoined and left": "%(severalUsers)singressaram e saíram",
"%(oneUser)sjoined and left": "%(oneUser)singressou e saiu",
"%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)ssaíram e entraram novamente %(repeats)s vezes",
"%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)ssaiu e entrou novamente %(repeats)s vezes",
"%(severalUsers)sleft and rejoined": "%(severalUsers)ssaíram e entraram novamente",
"%(oneUser)sleft and rejoined": "%(oneUser)ssaiu e entrou novamente",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)srejeitaram seus convites %(repeats)s vezes",
"%(oneUser)srejected their invitation %(repeats)s times": "%(oneUser)srejeitou seu convite %(repeats)s vezes",
"%(severalUsers)srejected their invitations": "%(severalUsers)srejeitaram seus convites",
"%(oneUser)srejected their invitation": "%(oneUser)srejeitou seu convite",
"%(severalUsers)shad their invitations withdrawn %(repeats)s times": "%(severalUsers)stiveram seus convites desfeitos %(repeats)s vezes",
"%(oneUser)shad their invitation withdrawn %(repeats)s times": "%(oneUser)steve seu convite desfeito %(repeats)s vezes",
"%(severalUsers)shad their invitations withdrawn": "%(severalUsers)stiveram seus convites desfeitos",
"%(oneUser)shad their invitation withdrawn": "%(oneUser)steve seu convite desfeito",
"were invited %(repeats)s times": "foram convidadas(os) %(repeats)s vezes",
"was invited %(repeats)s times": "foi convidada(o) %(repeats)s vezes",
"were invited": "foram convidadas(os)",
"were banned %(repeats)s times": "foram banidas(os) %(repeats)s vezes",
"was banned %(repeats)s times": "foi banida(o) %(repeats)s vezes",
"were banned": "foram banidas(os)",
"were unbanned %(repeats)s times": "tiveram banimento desfeito %(repeats)s vezes",
"was unbanned %(repeats)s times": "teve banimento desfeito %(repeats)s vezes",
"were unbanned": "tiveram banimento desfeito",
"were kicked %(repeats)s times": "foram expulsas(os) %(repeats)s vezes",
"was kicked %(repeats)s times": "foi expulsa(o) %(repeats)s vezes",
"were kicked": "foram expulsas(os)",
"%(severalUsers)schanged their name %(repeats)s times": "%(severalUsers)salteraram seu nome %(repeats)s vezes",
"%(oneUser)schanged their name %(repeats)s times": "%(oneUser)salterou seu nome %(repeats)s vezes",
"%(severalUsers)schanged their name": "%(severalUsers)salteraram seus nomes",
"%(oneUser)schanged their name": "%(oneUser)salterou seu nome",
"%(severalUsers)schanged their avatar %(repeats)s times": "%(severalUsers)salteraram sua imagem pública %(repeats)s vezes",
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)salterou sua imagem pública %(repeats)s vezes",
"%(severalUsers)schanged their avatar": "%(severalUsers)salteraram sua imagem pública",
"Ban": "Banir",
"A registered account is required for this action": "Uma conta registrada é necessária para esta ação",
"Access Token:": "Token de acesso:",
"Always show message timestamps": "Sempre mostrar as datas das mensagens",
"Authentication": "Autenticação",
"An error has occurred.": "Ocorreu um erro.",
"Changing password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "Alterar a senha irá atualmente apagar todas as chaves de criptografia ponta-a-ponta em todos os dispositivos, fazendo com que o histórico da conversa fique ilegível, a não ser que você exporte antes as chaves de sala e então as reimporte depois. No futuro, isso vai melhorar.",
"Email": "Email",
"Email address": "Endereço de email",
"Error decrypting attachment": "Erro ao descriptografar o anexo",
"Interface Language": "Idioma da interface",
"Invalid file%(extra)s": "Arquivo inválido %(extra)s",
"Logged in as:": "Logado como:",
"matrix-react-sdk version:": "versão do matrix-react-sdk:",
"Mute": "Silenciar",
"olm version:": "versão do olm:",
"Operation failed": "A operação falhou",
"Registration required": "Registro obrigatório",
"Remove %(threePid)s?": "Remover %(threePid)s?",
"Report it": "Reportar",
"riot-web version:": "versão do riot-web:",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Mostrar os horários em formato de 12h (p.ex: 2:30pm)",
"Unmute": "Tirar do mudo",
"Warning!": "Atenção!",
"You need to enter a user name.": "Você precisa inserir um nome de usuária(o).",
"Please select the destination room for this message": "Por favor, escolha a sala para onde quer encaminhar esta mensagem",
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s apagou o nome da sala.",
"Analytics": "Análise",
"Opt out of analytics": "Sair da ferramenta de análise",
"Options": "Opções",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot coleta informações anônimas de uso para nos permitir melhorar o sistema.",
"Passphrases must match": "As senhas têm que ser iguais",
"Passphrase must not be empty": "A senha não pode estar vazia",
"Export room keys": "Exportar chaves de sala",
"Enter passphrase": "Entre com a senha",
"Confirm passphrase": "Confirme a senha",
"Import room keys": "Importar chaves de sala",
"File to import": "Arquivo para importar",
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Este processo permite que você exporte as chaves para mensagens que você recebeu em salas criptografadas para um arquivo local. Você poderá então importar o arquivo para outro cliente Matrix no futuro, de modo que este cliente também poderá descriptografar suas mensagens.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "O arquivo exportado será protegido com uma senha. Você deverá inserir a senha aqui para poder descriptografar o arquivo futuramente.",
"You must join the room to see its files": "Você precisa ingressar na sala para ver seus arquivos",
"Reject all %(invitedRooms)s invites": "Rejeitar todos os %(invitedRooms)s convites",
"Start new chat": "Iniciar nova conversa",
"Guest users can't invite users. Please register.": "Visitantes não podem convidar usuárias(os) registradas(os). Favor registrar.",
"Failed to invite": "Falha ao enviar o convite",
"Failed to invite user": "Falha ao convidar a(o) usuária(o)",
"Failed to invite the following users to the %(roomName)s room:": "Falha ao convidar as(os) seguintes usuárias(os) para a sala %(roomName)s:",
"Confirm Removal": "Confirmar a remoção",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Você tem certeza que quer apagar este evento? Note que se você apaga o nome de uma sala ou uma mudança de tópico, esta ação não poderá ser desfeita.",
"Unknown error": "Erro desconhecido",
"Incorrect password": "Senha incorreta",
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Isso tornará a sua conta permanentemente inusável. Você não será capaz de registrar novamente o mesmo ID de usuário.",
"This action is irreversible.": "Esta ação é irreversível.",
"To continue, please enter your password.": "Para continuar, por favor insira a sua senha.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Para verificar que este dispositivo é confiável, por favor entre em contato com a(o) sua(seu) dona(o) usando outros meios, como por exemplo pessoalmente ou por uma chamada telefônica, e pergunte a esta pessoa se a chave que ela está vendo nas suas configurações de usuário para este dispositivo é igual a esta:",
"Device name": "Nome do dispositivo",
"Device key": "Chave do dispositivo",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Se a chave for a mesma, clique no botão \"verificar\" abaixo. Se não for a mesma, então alguma outra pessoa está interceptando este dispositivo e você provavelmente vai querer clicar no botão \"colocar na lista negra\".",
"In future this verification process will be more sophisticated.": "No futuro, este processo de verificação será mais sofisticado.",
"Verify device": "Verificar o dispositivo",
"I verify that the keys match": "Eu confirmo que as chaves são iguais",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Encontramos um erro tentando restaurar sua sessão anterior. Se você continuar, terá que fazer login novamente, e o histórico da conversa criptografada se tornará ilegível.",
"Unable to restore session": "Não foi possível restaurar a sessão",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Se você já usou antes uma versão mais recente do Riot, a sua sessão pode ser incompatível com esta versão. Feche esta janela e tente abrir com a versão mais recente.",
"Continue anyway": "Continuar de qualquer maneira",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "O seu nome público é como você aparecerá para as outras pessoas quando conversar nas salas. Qual nome público você deseja ter?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Você está atualmente bloqueando dispositivos não verificados. Para enviar mensagens para estes dispositivos, você necessita antes verificá-los.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nós recomendamos que você passe pelo processo de verificação para cada dispositivo para confirmar que eles pertencem às pessoas que efetivamente são suas donas, mas você pode reenviar a mensagem sem verificar isso, se assim o desejar.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contém dispositivos que você não viu antes.",
"Unknown devices": "Dispositivos desconhecidos",
"Unknown Address": "Endereço desconhecido",
"Unblacklist": "Tirar da lista de bloqueados",
"Blacklist": "Colocar na lista de bloqueados",
"Unverify": "Des-verificar",
"Verify...": "Verificar...",
"ex. @bob:example.com": "p.ex: @joao:exemplo.com",
"Add User": "Adicionar usuária(o)",
"This Home Server would like to make sure you are not a robot": "Este Servidor de Base gostaria de confirmar que você não é um robô",
"Sign in with CAS": "Assinar com CAS",
"Custom Server Options": "Opções para Servidor Personalizado",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Você pode usar as opções de servidor personalizado para entrar em outros servidores Matrix ao especificar uma URL de um Servidor de Base diferente.",
"This allows you to use this app with an existing Matrix account on a different home server.": "Isso permite que você use este aplicativo com uma conta Matrix existente em um servidor de base diferente.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Você também pode definir um servidor de identidades personalizado, mas isso vai impedir a sua interação com outros usuários a partir do endereço de email.",
"Dismiss": "Descartar",
"Please check your email to continue registration.": "Por favor, verifique o seu e-mail para continuar o processo de registro.",
"Token incorrect": "Token incorreto",
"A text message has been sent to": "Uma mensagem de texto foi enviada para",
"Please enter the code it contains:": "Por favor, entre com o código que está na mensagem:",
"powered by Matrix": "rodando a partir do Matrix",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Se não especificar um endereço de e-mail, você não poderá redefinir sua senha. Tem certeza?",
"You are registering with %(SelectedTeamName)s": "Você está se registrando com %(SelectedTeamName)s",
"Default server": "Servidor padrão",
"Custom server": "Servidor personalizado",
"Home server URL": "URL do servidor de base",
"Identity server URL": "URL do servidor de identidades",
"What does this mean?": "O que isso significa?",
"Error decrypting audio": "Erro ao descriptografar o áudio",
"Error decrypting image": "Erro ao descriptografar a imagem",
"Image '%(Body)s' cannot be displayed.": "A imagem '%(Body)s' não pode ser exibida.",
"This image cannot be displayed.": "Esta imagem não pode ser exibida.",
"Error decrypting video": "Erro ao descriptografar o vídeo",
"Add an Integration": "Adicionar uma integração",
"Removed or unknown message type": "Mensagem removida ou de tipo desconhecido",
"Disable URL previews by default for participants in this room": "Desabilitar as pré-visualizações de links por padrão para participantes desta sala",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "As pré-visualizações estão %(globalDisableUrlPreview)s por padrão para integrantes desta sala.",
"URL Previews": "Pré-visualização de links",
"Enable URL previews for this room (affects only you)": "Habilitar pré-visualizações de links para esta sala (afeta somente a você)",
"Drop file here to upload": "Arraste um arquivo aqui para enviar",
" (unsupported)": " (não suportado)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Conferência%(supportedText)s em andamento. %(joinText)s",
"Online": "Online",
"Idle": "Ocioso",
"Offline": "Offline",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "O arquivo exportado irá permitir a qualquer pessoa que o acesse a descriptografar qualquer uma das mensagens criptografadas que você veja, portanto seja bastante cuidadosa(o) em manter este arquivo seguro. Para deixar este arquivo mais protegido, recomendamos que você insira uma senha abaixo, que será usada para criptografar o arquivo. Só será possível importar os dados usando exatamente a mesma senha.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Este processo faz com que você possa importar as chaves de criptografia que tinha previamente exportado de outro cliente Matrix. Você poderá então descriptografar todas as mensagens que o outro cliente pôde criptografar.",
"You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": "",
"Start automatically after system login": "Iniciar automaticamente ao iniciar o sistema",
"Desktop specific": "Específico para o app de computadores desktop",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Você será levado agora a um site de terceiros para poder autenticar a sua conta para uso com o serviço %(integrationsUrl)s. Você quer continuar?",
"Disable URL previews for this room (affects only you)": "Desabilitar as pré-visualizações de sites para esta sala (afeta apenas a você)",
"Device already verified!": "Dispositivo já verificado!",
"disabled": "desabilitado",
"enabled": "habilitado",
"Export": "Exportar",
"Failed to register as guest:": "Falha ao se registrar como visitante:",
"Guest access is disabled on this Home Server.": "O acesso para visitantes está desabilitado neste Servidor de Base.",
"Import": "Importar",
"Incorrect username and/or password.": "Nome de usuária(o) e/ou senha incorreto.",
"Invited": "Convidada(o)",
"Results from DuckDuckGo": "Resultados de DuckDuckGo",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "A chave de assinatura que você forneceu é a mesma que a chave de assinatura que você recebeu do dispositivo %(deviceId)s de %(userId)s . O dispositivo foi portanto marcado como verificado.",
"This Home Server does not support login using email address.": "Este Servidor de Base não permite login usando endereço de e-mail.",
"There was a problem logging in.": "Houve um problema ao fazer login.",
"Unknown (user, device) pair:": "Par usuária(o)-dispositivo desconhecido:",
"Unrecognised command:": "Comando não reconhecido:",
"Unrecognised room alias:": "Apelido de sala não reconhecido:",
"Use compact timeline layout": "Usar o layout de linha do tempo compacta",
"Verified key": "Chave verificada",
"WARNING: Device already verified, but keys do NOT MATCH!": "ATENÇÃO: O dispositivo já foi verificado, mas as chaves NÃO SÃO IGUAIS!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATENÇÃO: VERIFICAÇÃO DE CHAVE FALHOU! A chave de assinatura para a(o) usuária(o) %(userId)s e dispositivo %(deviceId)s é \"%(fprint)s\", que não é igual à chave fornecida \"%(fingerprint)s\". Isso pode significar que suas comunicações estão sendo interceptadas!",
"Set a Display Name": "Definir seu nome público",
"for %(amount)ss": "por %(amount)ss",
"for %(amount)sm": "por %(amount)sm",
"for %(amount)sh": "por %(amount)sh",
"for %(amount)sd": "por %(amount)sd",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removeu a imagem da sala.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s alterou a imagem da sala %(roomName)s",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName alterou a imagem da sala para <img/>",
"Missing Media Permissions, click here to request.": "Faltam permissões para uso de mídia no seu computador. Clique aqui para solicitá-las.",
"No Microphones detected": "Não foi detectado nenhum microfone",
"No Webcams detected": "Não foi detectada nenhuma Webcam",
"No media permissions": "Não há permissões de uso de vídeo/áudio no seu navegador",
"You may need to manually permit Riot to access your microphone/webcam": "Você talvez precise autorizar manualmente que o Riot acesse seu microfone e webcam",
"Default Device": "Dispositivo padrão",
"Microphone": "Microfone",
"Camera": "Câmera de vídeo",
"Add a topic": "Adicionar um tópico",
"VoIP": "VoIP",
"Anyone": "Qualquer pessoa",
"Are you sure you want to leave the room '%(roomName)s'?": "Você tem certeza que deseja sair da sala '%(roomName)s'?",
"Custom level": "Nível personalizado",
"(default: %(userName)s)": "(padrão: %(userName)s)",
"Device ID:": "ID do dispositivo:",
"device id: ": "id do dispositivo: ",
"Device key:": "Chave do dispositivo:",
"Email address (optional)": "Endereço de e-mail (opcional)",
"List this room in %(domain)s's room directory?": "Deseja listar esta sala na lista pública de salas de %(domain)s?",
"Mobile phone number (optional)": "Número de telefone celular (opcional)",
"Password:": "Senha:",
"Register": "Registre-se",
"Remote addresses for this room:": "Endereços remotos para esta sala:",
"Save": "Salvar",
"Setting a user name will create a fresh account": "Definir um nome de usuária(o) vai criar uma conta nova",
"Tagged as: ": "Marcado como: ",
"You have <a>disabled</a> URL previews by default.": "Você <a>desabilitou</a> pré-visualizações de links por padrão.",
"You have <a>enabled</a> URL previews by default.": "Você <a>habilitou</a> pré-visualizações de links por padrão.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando."
}

View file

@ -115,7 +115,7 @@
"Invites": "Convidar",
"Invites user with given id to current room": "Convidar usuários com um dado identificador para esta sala",
"is a": "é um(a)",
"I want to sign in with": "Quero entrar",
"Sign in with": "Quero entrar",
"joined and left": "entrou e saiu",
"joined": "entrou",
"joined the room": "entrou na sala",
@ -193,7 +193,7 @@
"sent an invitation to": "enviou um convite para",
"sent a video": "enviou um vídeo",
"Server may be unavailable or overloaded": "Servidor pode estar indisponível ou sobrecarregado",
"Server may be unavailable, overloaded, or you hit a bug": "Servidor pode estar indisponível, sobrecarregado ou aconteceu um erro de execução",
"Server may be unavailable, overloaded, or you hit a bug.": "O servidor pode estar indisponível ou sobrecarregado, ou então você encontrou uma falha no sistema.",
"Session ID": "Identificador de sessão",
"set a profile picture": "colocou uma foto de perfil",
"set their display name to": "configurou seu nome para",
@ -324,8 +324,8 @@
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s alterou o nível de permissões de %(powerLevelDiffText)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s alterou o nome da sala para %(roomName)s.",
"click to reveal": "clique para ver",
"Conference call failed": "Chamada de conferência falhou",
"Conference calling is in development and may not be reliable": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar",
"Conference call failed.": "Chamada de conferência falhou.",
"Conference calling is in development and may not be reliable.": "Chamadas de conferência estão em desenvolvimento e portanto podem não funcionar.",
"Conference calls are not supported in encrypted rooms": "Chamadas de conferência não são possíveis em salas criptografadas",
"Conference calls are not supported in this client": "Chamadas de conferência não são possíveis neste navegador",
"/ddg is not a command": "/ddg não é um comando",
@ -340,7 +340,7 @@
"Failed to verify email address: make sure you clicked the link in the email": "Não foi possível verificar o endereço de email: verifique se você realmente clicou no link que está no seu email",
"Failure to create room": "Não foi possível criar a sala",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s de %(fromPowerLevel)s para %(toPowerLevel)s",
"Guest users can't create new rooms. Please register to create room and start a chat": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Visitantes não podem criar novas salas. Por favor, registre-se para criar uma sala e iniciar uma conversa.",
"%(senderName)s invited %(targetName)s.": "%(senderName)s convidou %(targetName)s.",
"%(displayName)s is typing": "%(displayName)s está escrevendo",
"%(targetName)s joined the room.": "%(targetName)s entrou na sala.",
@ -397,15 +397,15 @@
"Use with caution": "Use com cautela",
"VoIP is unsupported": "Chamada de voz não permitida",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s desfez o convite a %(targetName)s.",
"You are already in a call": "Você já está em uma chamada",
"You are already in a call.": "Você já está em uma chamada.",
"You're not in any rooms yet! Press": "Você ainda não está em nenhuma sala! Pressione",
"You are trying to access %(roomName)s": "Você está tentando acessar a sala %(roomName)s",
"You cannot place a call with yourself": "Você não pode iniciar uma chamada",
"You cannot place VoIP calls in this browser": "Você não pode fazer chamadas de voz neste navegador",
"You cannot place a call with yourself.": "Você não pode iniciar uma chamada.",
"You cannot place VoIP calls in this browser.": "Você não pode fazer chamadas de voz neste navegador.",
"You need to be able to invite users to do that.": "Para fazer isso, você tem que ter permissão para convidar outras pessoas.",
"You need to be logged in.": "Você tem que estar logado.",
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "É necessário que você faça login novamente para poder gerar as chaves de criptografia ponta-a-ponta para este dispositivo e então enviar sua chave pública para o servidor. Pedimos desculpas pela inconveniência, é preciso fazer isso apenas única uma vez.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "O seu endereço de email não parece estar associado a uma conta de usuária/o Matrix neste servidor.",
"Set a display name:": "Defina um nome público para você:",
"Upload an avatar:": "Envie uma imagem de perfil para identificar você:",
"This server does not support authentication with a phone number.": "Este servidor não permite a autenticação através de números de telefone.",
@ -485,7 +485,7 @@
"sk": "Eslovaco",
"sl": "Esloveno",
"sq": "Albanês",
"sr": "Sérvio (latino)",
"sr": "Sérvio",
"sv": "Suécia",
"th": "Tailandês",
"tn": "Tsuana",
@ -543,7 +543,7 @@
"fr-lu": "Francês (Luxemburgo)",
"gd": "Galês (Escócia)",
"it-ch": "Italiano (Suíça)",
"ko": "Coreano (Johab)",
"ko": "Coreano",
"mk": "Macedônio (República da Macedônia)",
"ro-mo": "Romano (Moldávia)",
"ru-mo": "Russo (Moldávia)",
@ -567,8 +567,8 @@
"sx": "Sutu",
"sz": "Sami (Lappish)",
"ve": "Venda",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Não consigo conectar ao servidor padrão - favor checar sua conexão à internet e verificar se o certificado SSL do seu %(urlStart)s servidor padrão %(urlEnd)s é confiável",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Não consigo conectar ao servidor padrão através de HTTP quando uma URL HTTPS está na barra de endereços do seu navegador. Use HTTPS ou então %(urlStart)s habilite scripts não seguros no seu navegador %(urlEnd)s",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Não consigo conectar ao servidor padrão - favor checar sua conexão à internet e verificar se o certificado SSL do seu <a>servidor padrão</a> é confiável.",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Não consigo conectar ao servidor padrão através de HTTP quando uma URL HTTPS está na barra de endereços do seu navegador. Use HTTPS ou então <a>habilite scripts não seguros no seu navegador</a>.",
"Change Password": "Alterar senha",
"changing room on a RoomView is not supported": "mudar a sala em uma 'RoomView' não é permitido",
"Click to mute audio": "Clique para colocar o áudio no mudo",
@ -605,6 +605,7 @@
"'%(alias)s' is not a valid format for an address": "'%(alias)s' não é um formato válido para um endereço",
"'%(alias)s' is not a valid format for an alias": "'%(alias)s' não é um formato válido para um alias",
"Join Room": "Ingressar na sala",
"Jump to first unread message.": "Ir diretamente para a primeira das mensagens não lidas.",
"Kick": "Remover",
"Level": "Nível",
"Local addresses for this room:": "Endereço local desta sala:",
@ -618,14 +619,14 @@
"No devices with registered encryption keys": "Não há dispositivos com chaves de criptografia registradas",
"No more results": "Não há mais resultados",
"No results": "Sem resultados",
"OK": "OK",
"OK": "Ok",
"Revoke Moderator": "Retirar status de moderador",
"Search": "Localizar",
"Search": "Buscar",
"Search failed": "Busca falhou",
"Server error": "Erro no servidor",
"Server may be unavailable, overloaded, or search timed out :(": "O servidor pode estar indisponível, sobrecarregado, ou a busca ultrapassou o tempo limite :(",
"Server may be unavailable, overloaded, or the file too big": "O servidor pode estar indisponível, sobrecarregado, ou o arquivo é muito grande",
"Server unavailable, overloaded, or something else went wrong": "O servidor pode estar indisponível, sobrecarregado, ou alguma outra coisa não funcionou",
"Server unavailable, overloaded, or something else went wrong.": "O servidor pode estar indisponível, sobrecarregado, ou alguma outra coisa não funcionou.",
"Some of your messages have not been sent": "Algumas das suas mensagens não foram enviadas",
"Submit": "Enviar",
"The main address for this room is": "O endereço principal desta sala é",
@ -728,6 +729,7 @@
"%(senderDisplayName)s removed the room name.": "%(senderDisplayName)s apagou o nome da sala.",
"Analytics": "Análise",
"Opt out of analytics": "Sair da ferramenta de análise",
"Options": "Opções",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot coleta informações anônimas de uso para nos permitir melhorar o sistema.",
"Passphrases must match": "As senhas têm que ser iguais",
"Passphrase must not be empty": "A senha não pode estar vazia",
@ -739,12 +741,141 @@
"This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "Este processo permite que você exporte as chaves para mensagens que você recebeu em salas criptografadas para um arquivo local. Você poderá então importar o arquivo para outro cliente Matrix no futuro, de modo que este cliente também poderá descriptografar suas mensagens.",
"The export file will be protected with a passphrase. You should enter the passphrase here, to decrypt the file.": "O arquivo exportado será protegido com uma senha. Você deverá inserir a senha aqui para poder descriptografar o arquivo futuramente.",
"You must join the room to see its files": "Você precisa ingressar na sala para ver seus arquivos",
"Server may be unavailable, overloaded, or you hit a bug.": "O servidor pode estar indisponível ou sobrecarregado, ou então você encontrou uma falha no sistema.",
"Reject all %(invitedRooms)s invites": "Rejeitar todos os %(invitedRoom)s convites",
"Start new Chat": "Iniciar nova conversa",
"Reject all %(invitedRooms)s invites": "Rejeitar todos os %(invitedRooms)s convites",
"Start new chat": "Iniciar nova conversa",
"Guest users can't invite users. Please register.": "Visitantes não podem convidar usuárias(os) registradas(os). Favor registrar.",
"Failed to invite": "Falha ao enviar o convite",
"Failed to invite user": "Falha ao convidar a(o) usuária(o)",
"Failed to invite the following users to the %(roomName)s room:": "Falha ao convidar as(os) seguintes usuárias(os) para a sala %(roomName)s:",
"Confirm Removal": "Confirmar a remoção"
"Confirm Removal": "Confirmar a remoção",
"Are you sure you wish to remove (delete) this event? Note that if you delete a room name or topic change, it could undo the change.": "Você tem certeza que quer apagar este evento? Note que se você apaga o nome de uma sala ou uma mudança de tópico, esta ação não poderá ser desfeita.",
"Unknown error": "Erro desconhecido",
"Incorrect password": "Senha incorreta",
"This will make your account permanently unusable. You will not be able to re-register the same user ID.": "Isso tornará a sua conta permanentemente inusável. Você não será capaz de registrar novamente o mesmo ID de usuário.",
"This action is irreversible.": "Esta ação é irreversível.",
"To continue, please enter your password.": "Para continuar, por favor insira a sua senha.",
"To verify that this device can be trusted, please contact its owner using some other means (e.g. in person or a phone call) and ask them whether the key they see in their User Settings for this device matches the key below:": "Para verificar que este dispositivo é confiável, por favor entre em contato com a(o) sua(seu) dona(o) usando outros meios, como por exemplo pessoalmente ou por uma chamada telefônica, e pergunte a esta pessoa se a chave que ela está vendo nas suas configurações de usuário para este dispositivo é igual a esta:",
"Device name": "Nome do dispositivo",
"Device key": "Chave do dispositivo",
"If it matches, press the verify button below. If it doesn't, then someone else is intercepting this device and you probably want to press the blacklist button instead.": "Se a chave for a mesma, clique no botão \"verificar\" abaixo. Se não for a mesma, então alguma outra pessoa está interceptando este dispositivo e você provavelmente vai querer clicar no botão \"colocar na lista negra\".",
"In future this verification process will be more sophisticated.": "No futuro, este processo de verificação será mais sofisticado.",
"Verify device": "Verificar o dispositivo",
"I verify that the keys match": "Eu confirmo que as chaves são iguais",
"We encountered an error trying to restore your previous session. If you continue, you will need to log in again, and encrypted chat history will be unreadable.": "Encontramos um erro tentando restaurar sua sessão anterior. Se você continuar, terá que fazer login novamente, e o histórico da conversa criptografada se tornará ilegível.",
"Unable to restore session": "Não foi possível restaurar a sessão",
"If you have previously used a more recent version of Riot, your session may be incompatible with this version. Close this window and return to the more recent version.": "Se você já usou antes uma versão mais recente do Riot, a sua sessão pode ser incompatível com esta versão. Feche esta janela e tente abrir com a versão mais recente.",
"Continue anyway": "Continuar de qualquer maneira",
"Your display name is how you'll appear to others when you speak in rooms. What would you like it to be?": "O seu nome público é como você aparecerá para as outras pessoas quando conversar nas salas. Qual nome público você deseja ter?",
"You are currently blacklisting unverified devices; to send messages to these devices you must verify them.": "Você está atualmente bloqueando dispositivos não verificados. Para enviar mensagens para estes dispositivos, você necessita antes verificá-los.",
"We recommend you go through the verification process for each device to confirm they belong to their legitimate owner, but you can resend the message without verifying if you prefer.": "Nós recomendamos que você passe pelo processo de verificação para cada dispositivo para confirmar que eles pertencem às pessoas que efetivamente são suas donas, mas você pode reenviar a mensagem sem verificar isso, se assim o desejar.",
"\"%(RoomName)s\" contains devices that you haven't seen before.": "\"%(RoomName)s\" contém dispositivos que você não viu antes.",
"Unknown devices": "Dispositivos desconhecidos",
"Unknown Address": "Endereço desconhecido",
"Unblacklist": "Tirar da lista de bloqueados",
"Blacklist": "Colocar na lista de bloqueados",
"Unverify": "Des-verificar",
"Verify...": "Verificar...",
"ex. @bob:example.com": "p.ex: @joao:exemplo.com",
"Add User": "Adicionar usuária(o)",
"This Home Server would like to make sure you are not a robot": "Este Servidor de Base gostaria de confirmar que você não é um robô",
"Sign in with CAS": "Assinar com CAS",
"Custom Server Options": "Opções para Servidor Personalizado",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.": "Você pode usar as opções de servidor personalizado para entrar em outros servidores Matrix ao especificar uma URL de um Servidor de Base diferente.",
"This allows you to use this app with an existing Matrix account on a different home server.": "Isso permite que você use este aplicativo com uma conta Matrix existente em um servidor de base diferente.",
"You can also set a custom identity server but this will typically prevent interaction with users based on email address.": "Você também pode definir um servidor de identidades personalizado, mas isso vai impedir a sua interação com outros usuários a partir do endereço de email.",
"Dismiss": "Descartar",
"Please check your email to continue registration.": "Por favor, verifique o seu e-mail para continuar o processo de registro.",
"Token incorrect": "Token incorreto",
"A text message has been sent to": "Uma mensagem de texto foi enviada para",
"Please enter the code it contains:": "Por favor, entre com o código que está na mensagem:",
"powered by Matrix": "rodando a partir do Matrix",
"If you don't specify an email address, you won't be able to reset your password. Are you sure?": "Se não especificar um endereço de e-mail, você não poderá redefinir sua senha. Tem certeza?",
"You are registering with %(SelectedTeamName)s": "Você está se registrando com %(SelectedTeamName)s",
"Default server": "Servidor padrão",
"Custom server": "Servidor personalizado",
"Home server URL": "URL do servidor de base",
"Identity server URL": "URL do servidor de identidades",
"What does this mean?": "O que isso significa?",
"Error decrypting audio": "Erro ao descriptografar o áudio",
"Error decrypting image": "Erro ao descriptografar a imagem",
"Image '%(Body)s' cannot be displayed.": "A imagem '%(Body)s' não pode ser exibida.",
"This image cannot be displayed.": "Esta imagem não pode ser exibida.",
"Error decrypting video": "Erro ao descriptografar o vídeo",
"Add an Integration": "Adicionar uma integração",
"Removed or unknown message type": "Mensagem removida ou de tipo desconhecido",
"Disable URL previews by default for participants in this room": "Desabilitar as pré-visualizações de links por padrão para participantes desta sala",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "As pré-visualizações estão %(globalDisableUrlPreview)s por padrão para integrantes desta sala.",
"URL Previews": "Pré-visualização de links",
"Enable URL previews for this room (affects only you)": "Habilitar pré-visualizações de links para esta sala (afeta somente a você)",
"Drop file here to upload": "Arraste um arquivo aqui para enviar",
" (unsupported)": " (não suportado)",
"Ongoing conference call%(supportedText)s. %(joinText)s": "Conferência%(supportedText)s em andamento. %(joinText)s",
"Online": "Online",
"Idle": "Ocioso",
"Offline": "Offline",
"The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "O arquivo exportado irá permitir a qualquer pessoa que o acesse a descriptografar qualquer uma das mensagens criptografadas que você veja, portanto seja bastante cuidadosa(o) em manter este arquivo seguro. Para deixar este arquivo mais protegido, recomendamos que você insira uma senha abaixo, que será usada para criptografar o arquivo. Só será possível importar os dados usando exatamente a mesma senha.",
"This process allows you to import encryption keys that you had previously exported from another Matrix client. You will then be able to decrypt any messages that the other client could decrypt.": "Este processo faz com que você possa importar as chaves de criptografia que tinha previamente exportado de outro cliente Matrix. Você poderá então descriptografar todas as mensagens que o outro cliente pôde criptografar.",
"You are about to be taken to a third-party site so you can authenticate your account for use with {integrationsUrl}. Do you wish to continue?": "",
"Start automatically after system login": "Iniciar automaticamente ao iniciar o sistema",
"Desktop specific": "Específico para o app de computadores desktop",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "Você será levado agora a um site de terceiros para poder autenticar a sua conta para uso com o serviço %(integrationsUrl)s. Você quer continuar?",
"Disable URL previews for this room (affects only you)": "Desabilitar as pré-visualizações de sites para esta sala (afeta apenas a você)",
"Device already verified!": "Dispositivo já verificado!",
"disabled": "desabilitado",
"enabled": "habilitado",
"Export": "Exportar",
"Failed to register as guest:": "Falha ao se registrar como visitante:",
"Guest access is disabled on this Home Server.": "O acesso para visitantes está desabilitado neste Servidor de Base.",
"Import": "Importar",
"Incorrect username and/or password.": "Nome de usuária(o) e/ou senha incorreto.",
"Invited": "Convidada(o)",
"Results from DuckDuckGo": "Resultados de DuckDuckGo",
"The signing key you provided matches the signing key you received from %(userId)s's device %(deviceId)s. Device marked as verified.": "A chave de assinatura que você forneceu é a mesma que a chave de assinatura que você recebeu do dispositivo %(deviceId)s de %(userId)s . O dispositivo foi portanto marcado como verificado.",
"This Home Server does not support login using email address.": "Este Servidor de Base não permite login usando endereço de e-mail.",
"There was a problem logging in.": "Houve um problema ao fazer login.",
"Unknown (user, device) pair:": "Par usuária(o)-dispositivo desconhecido:",
"Unrecognised command:": "Comando não reconhecido:",
"Unrecognised room alias:": "Apelido de sala não reconhecido:",
"Use compact timeline layout": "Usar o layout de linha do tempo compacta",
"Verified key": "Chave verificada",
"WARNING: Device already verified, but keys do NOT MATCH!": "ATENÇÃO: O dispositivo já foi verificado, mas as chaves NÃO SÃO IGUAIS!",
"WARNING: KEY VERIFICATION FAILED! The signing key for %(userId)s and device %(deviceId)s is \"%(fprint)s\" which does not match the provided key \"%(fingerprint)s\". This could mean your communications are being intercepted!": "ATENÇÃO: VERIFICAÇÃO DE CHAVE FALHOU! A chave de assinatura para a(o) usuária(o) %(userId)s e dispositivo %(deviceId)s é \"%(fprint)s\", que não é igual à chave fornecida \"%(fingerprint)s\". Isso pode significar que suas comunicações estão sendo interceptadas!",
"Set a Display Name": "Definir seu nome público",
"for %(amount)ss": "por %(amount)ss",
"for %(amount)sm": "por %(amount)sm",
"for %(amount)sh": "por %(amount)sh",
"for %(amount)sd": "por %(amount)sd",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s removeu a imagem da sala.",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s alterou a imagem da sala %(roomName)s",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName alterou a imagem da sala para <img/>",
"Missing Media Permissions, click here to request.": "Faltam permissões para uso de mídia no seu computador. Clique aqui para solicitá-las.",
"No Microphones detected": "Não foi detectado nenhum microfone",
"No Webcams detected": "Não foi detectada nenhuma Webcam",
"No media permissions": "Não há permissões de uso de vídeo/áudio no seu navegador",
"You may need to manually permit Riot to access your microphone/webcam": "Você talvez precise autorizar manualmente que o Riot acesse seu microfone e webcam",
"Default Device": "Dispositivo padrão",
"Microphone": "Microfone",
"Camera": "Câmera de vídeo",
"Add a topic": "Adicionar um tópico",
"VoIP": "VoIP",
"Anyone": "Qualquer pessoa",
"Are you sure you want to leave the room '%(roomName)s'?": "Você tem certeza que deseja sair da sala '%(roomName)s'?",
"Custom level": "Nível personalizado",
"(default: %(userName)s)": "(padrão: %(userName)s)",
"Device ID:": "ID do dispositivo:",
"device id: ": "id do dispositivo: ",
"Device key:": "Chave do dispositivo:",
"Email address (optional)": "Endereço de e-mail (opcional)",
"List this room in %(domain)s's room directory?": "Deseja listar esta sala na lista pública de salas de %(domain)s?",
"Mobile phone number (optional)": "Número de telefone celular (opcional)",
"Password:": "Senha:",
"Register": "Registre-se",
"Remote addresses for this room:": "Endereços remotos para esta sala:",
"Save": "Salvar",
"Setting a user name will create a fresh account": "Definir um nome de usuária(o) vai criar uma conta nova",
"Tagged as: ": "Marcado como: ",
"You have <a>disabled</a> URL previews by default.": "Você <a>desabilitou</a> pré-visualizações de links por padrão.",
"You have <a>enabled</a> URL previews by default.": "Você <a>habilitou</a> pré-visualizações de links por padrão.",
"You have entered an invalid contact. Try using their Matrix ID or email address.": "Você inseriu um contato inválido. Tente usar o ID Matrix ou endereço de e-mail da pessoa que está buscando.",
"Hide removed messages": "Ocultar mensagens removidas"
}

View file

@ -94,7 +94,7 @@
"Hangup": "Отключение",
"Historical": "Исторический",
"Homeserver is": "Домашний сервер является",
"Identity Server is": "Регистрационный Сервер является",
"Identity Server is": "Регистрационный сервер",
"I have verified my email address": "Я проверил мой адрес электронной почты",
"Import E2E room keys": "Импортировать E2E ключ комнаты",
"Invalid Email Address": "Недействительный адрес электронной почты",
@ -103,7 +103,7 @@
"Invites": "Приглашать",
"Invites user with given id to current room": "Пригласить пользователя с данным id в текущую комнату",
"is a": "является",
"I want to sign in with": "Я хочу регистрироваться с",
"Sign in with": "Я хочу регистрироваться с",
"joined and left": "присоединенный и оставленный",
"joined": "присоединенный",
"joined the room": "joined the room",
@ -232,12 +232,12 @@
"%(senderName)s changed the power level of %(powerLevelDiffText)s.": "%(senderName)s уровень мощности изменен на %(powerLevelDiffText)s.",
"%(senderDisplayName)s changed the room name to %(roomName)s.": "%(senderDisplayName)s имя комнаты измененно на %(roomName)s.",
"%(senderDisplayName)s changed the topic to \"%(topic)s\".": "%(senderDisplayName)s измененная тема на %(topic)s.",
"Conference call failed": "Конференц-вызов прервался",
"Conference calling is in development and may not be reliable": "Конференц-вызов находится в процессе и может не быть надежным",
"Conference call failed.": "Конференц-вызов прервался.",
"Conference calling is in development and may not be reliable.": "Конференц-вызов находится в процессе и может не быть надежным.",
"Conference calls are not supported in encrypted rooms": "Конференц-вызовы не поддерживаются в зашифрованных комнатах",
"Conference calls are not supported in this client": "Конференц-вызовы не поддерживаются в этом клиенте",
"/ddg is not a command": "/ddg не команда",
"Drop here %(toAction)s": "Вставить здесь %(toAction)s",
"Drop here %(toAction)s": "Вставить сюда: %(toAction)s",
"Drop here to tag %(section)s": "Вставить здесь для тега %(section)s",
"%(senderName)s ended the call.": "%(senderName)s прекратил звонок.",
"Existing Call": "Существующий вызов",
@ -247,7 +247,7 @@
"Failed to verify email address: make sure you clicked the link in the email": "Не удалось подтвердить email-адрес: убедитесь что вы щелкнули по ссылке электронной почты",
"Failure to create room": "Не удалось создать комнату",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s из %(fromPowerLevel)s до %(toPowerLevel)s",
"Guest users can't create new rooms. Please register to create room and start a chat": "Гостевые пользователи не могут создавать новые комнаты. Зарегистрируйтесь для создания комнаты и чата",
"Guest users can't create new rooms. Please register to create room and start a chat.": "Гостевые пользователи не могут создавать новые комнаты. Зарегистрируйтесь для создания комнаты и чата.",
"click to reveal": "нажать для открытия",
"%(senderName)s invited %(targetName)s.": "%(senderName)s приглашает %(targetName)s.",
"%(displayName)s is typing": "%(displayName)s вводит текст",
@ -258,7 +258,7 @@
"Missing room_id in request": "Отсутствует room_id в запросе",
"Missing user_id in request": "Отсутствует user_id в запросе",
"Must be viewing a room": "Комната должна быть посищена",
"New Composer & Autocomplete": "Новые Компонист & Автозаполнение",
"New Composer & Autocomplete": "Новый едитор & Автозаполнение",
"(not supported by this browser)": "(не поддерживаемый этим браузером)",
"af": "Африкаанс",
"ar-ae": "Арабский (О.А.Е)",
@ -359,11 +359,11 @@
"Upload an avatar:": "Загрузить аватар",
"You need to be logged in.": "Вы должны быть зарегистрированы",
"You need to be able to invite users to do that.": "Вам необходимо пригласить пользователей чтобы сделать это.",
"You cannot place VoIP calls in this browser": "Вы не можете сделать вызовы VoIP с этим браузером",
"You are already in a call": "Вы уже находитесь в разговоре",
"You cannot place VoIP calls in this browser.": "Вы не можете сделать вызовы VoIP с этим браузером.",
"You are already in a call.": "Вы уже находитесь в разговоре.",
"You're not in any rooms yet! Press": "Вы еще не находитесь ни в каких комнатах! Нажать",
"You are trying to access %(roomName)s": "Вы пытаетесь получить доступ %(roomName)s",
"You cannot place a call with yourself": "Вы не можете позвонить самим себе",
"You cannot place a call with yourself.": "Вы не можете позвонить самим себе.",
"%(senderName)s withdrew %(targetName)s's invitation.": "%(senderName)s анулировал %(targetName)s's преглашение.",
"Sep": "Сен.",
"Jan": "Янв.",
@ -386,9 +386,9 @@
"Fri": "Пя",
"Sat": "Сб",
"You need to log back in to generate end-to-end encryption keys for this device and submit the public key to your homeserver. This is a once off; sorry for the inconvenience.": "Вам необходимо снова войти в генерировать сквозное шифрование (е2е) ключей для этого устройства и предоставить публичный ключ Вашему домашнему серверу. Это после выключения; приносим извинения за причиненные неудобства.",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver": "Ваш адрес электронной почты, кажется, не связан с Matrix ID на этом Homeserver",
"Your email address does not appear to be associated with a Matrix ID on this Homeserver.": "Ваш адрес электронной почты, кажется, не связан с Matrix ID на этом Homeserver.",
"to start a chat with someone": "Начать чат с кем-то",
"to tag direct chat": "Пометить прямой чат",
"to tag direct chat": "отометить прямой чат",
"To use it, just wait for autocomplete results to load and tab through them.": "Для его использования, просто подождите результатов автозаполнения для загрузки на вкладке и через них.",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s включил сквозное шифрование (algorithm %(algorithm)s).",
"Unable to restore previous session": "Невозможно востановить предыдущий сеанс",
@ -397,7 +397,7 @@
"Unable to enable Notifications": "Невозможно включить уведомления",
"Upload Failed": "Неудавшаяся загрузка",
"Usage": "Использование",
"Use with caution": "Используйте с осторожностью",
"Use with caution": "Использовать осторожно",
"VoIP is unsupported": "VoIP не поддерживается",
"es-pr": "Испанский (Пуэрто-Рико)",
"es-py": "Испанский язык (Парагвай)",
@ -426,7 +426,7 @@
"sk": "Словацкий",
"sl": "Словенский",
"sq": "Албанский",
"sr": "Сербский (Латиница)",
"sr": "Сербский",
"sv-fi": "Шведский (Финляндия)",
"sz": "Саами (лопарский)",
"tn": "Тсвана",
@ -443,7 +443,7 @@
"fr-lu": "Французский (Люксембург)",
"gd": "Гэльский (Шотландия)",
"it-ch": "Итальянский (Швейцария)",
"ko": "Корейский (Johab)",
"ko": "Корейский",
"mk": "Македонский (FYROM)",
"ro-mo": "Румынский (Республика Молдова)",
"sx": "Суту",
@ -452,7 +452,7 @@
"and %(overflowCount)s others...": "и %(overflowCount)s других...",
"Are you sure?": "Вы уверены?",
"Autoplay GIFs and videos": "Проигрывать GIF и видео автоматически",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "Невозможно соединиться с домашним сервером - проверьте своё соединение и убедитесь, что %(urlStart)s SSL-сертификат вашего домашнего сервера %(urlEnd)s включён в доверяемые",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "Невозможно соединиться с домашним сервером - проверьте своё соединение и убедитесь, что <a>SSL-сертификат вашего домашнего сервера</a> включён в доверяемые.",
"changing room on a RoomView is not supported": "изменение комнаты в RoomView не поддерживается",
"Click to mute audio": "Выключить звук",
"Click to mute video": "Выключить звук у видео",
@ -522,7 +522,7 @@
"No devices with registered encryption keys": "Нет устройств с записанными ключами шифрования",
"No more results": "Нет больше результатов",
"No results": "Нет результатов",
"OK": "Да",
"OK": "ОК",
"Only people who have been invited": "Только приглашённые люди",
"Passwords can't be empty": "Пароли не могут быть пустыми",
"%(senderName)s placed a %(callType)s call.": "%(senderName)s выполнил %(callType)s вызов.",
@ -584,7 +584,7 @@
"This room has no local addresses": "Эта комната не имеет местного адреса",
"This room is not recognised.": "Эта комната не опознана.",
"This room is private or inaccessible to guests. You may be able to join if you register": "Эта комната личная или недоступна для гостей. Мы может быть войдёте, если зарегистрируйтесь",
"These are experimental features that may break in unexpected ways": "Это экспериментальные возможности, которые могут сломаться неожиданным образом",
"These are experimental features that may break in unexpected ways": "Это экспериментальные функции, которые могут неожиданным образом вызывать ошибки",
"This doesn't appear to be a valid email address": "Не похоже, что это правильный адрес электронной почты",
"This is a preview of this room. Room interactions have been disabled": "Это просмотр данной комнаты. Взаимодействия с ней были отключены.",
"This phone number is already in use": "Этот телефонный номер уже используется",
@ -624,7 +624,7 @@
"%(severalUsers)sjoined and left": "%(severalUsers)sвошли и ушли",
"%(oneUser)sjoined and left": "%(oneUser)sвошёл и ушёл",
"%(severalUsers)sleft and rejoined %(repeats)s times": "%(severalUsers)sушли и перезашли %(repeats)s раз",
"%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)sушёл и перезашёл %(repeats)s раз",
"%(oneUser)sleft and rejoined %(repeats)s times": "%(oneUser)s ушёл и перезашёл %(repeats)s раз",
"%(severalUsers)sleft and rejoined": "%(severalUsers)sушли и перезашли",
"%(oneUser)sleft and rejoined": "%(oneUser)sушёл и перезашёл",
"%(severalUsers)srejected their invitations %(repeats)s times": "%(severalUsers)sотклонили приглашения %(repeats)s раз",
@ -651,5 +651,24 @@
"%(oneUser)schanged their avatar %(repeats)s times": "%(oneUser)sизменил своё изображение %(repeats)s раз",
"%(severalUsers)schanged their avatar": "%(severalUsers)sизменили своё изображение",
"%(oneUser)schanged their avatar": "%(oneUser)sизменил своё изображение",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "Не возможно подключиться к серверу через HTTP, когда в строке браузера HTTPS. Используйте HTTPS или %(urlStart) включив небезопасные скрипты %(urlEnd)"
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "Не возможно подключиться к серверу через HTTP, когда в строке браузера HTTPS. Используйте HTTPS или <a>включив небезопасные скрипты</a>.",
"Dismiss": "Отказ",
"Custom Server Options": "Расширенные настройки сервера",
"Mute": "Беззвучный",
"Operation failed": "Действие не удалось",
"powered by Matrix": "управляемый с Matrix",
"Add a topic": "Добавить тему",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "Времея отображать в 12 часовом формате (напр. 2:30pm)",
"Use compact timeline layout": "Используйте компактным указанием времени",
"Hide removed messages": "Скрыть удаленное сообщение",
"No Microphones detected": "Микрофоны не обнаружены",
"Unknown devices": "Незнакомое устройство",
"Camera": "Камера",
"Microphone": "Микрофон",
"Desktop specific": "Специфический десктоп",
"Start automatically after system login": "Автостарт после входа в систему",
"Analytics": "Аналитика",
"Riot collects anonymous analytics to allow us to improve the application.": "Riot собирет анонимные данные, чтобы улутшыть эту програму.",
"Opt out of analytics": "Подтвердить отказ передачи аналитических данных",
"Logged in as:": "Зарегестрирован как:"
}

180
src/i18n/strings/sv.json Normal file
View file

@ -0,0 +1,180 @@
{
"af": "Afrikaans",
"ar-ae": "Arabiska (U.A.E.)",
"ar-bh": "Arabiska (Bahrain)",
"ar-dz": "Arabiska (Algeriet)",
"ar-eg": "Arabiska (Egypten)",
"ar-iq": "Arabiska (Irak)",
"ar-jo": "Arabiska (Jordanien)",
"ar-kw": "Arabiska (Kuwait)",
"ar-lb": "Arabiska (Libanon)",
"ar-ly": "Arabiska (Libyen)",
"ar-ma": "Arabiska (Marocko)",
"ar-om": "Arabiska (Oman)",
"ar-qa": "Arabiska (Qatar)",
"ar-sa": "Arabiska (Saudiarabien)",
"ar-sy": "Arabiska (Syrien)",
"ar-tn": "Arabiska (Tunisien)",
"ar-ye": "Arabiska (Yemen)",
"be": "Vitryska",
"bg": "Bulgariska",
"ca": "Katalanska",
"cs": "Tjeckiska",
"da": "Danska",
"de-at": "Tyska (Österrike)",
"de-ch": "Tyska (Schweiz)",
"de": "Tyska",
"de-li": "Tyska (Liechtenstein)",
"de-lu": "Tyska (Luxembourg)",
"el": "Grekiska",
"en-au": "Engelska (Australien)",
"en-bz": "Engelska (Belize)",
"en-ca": "Engelska (Kanada)",
"en": "Engelska",
"en-gb": "Engelska (Förenta kungariket)",
"en-ie": "Engelska (Irland)",
"en-jm": "Engelska (Jamaica)",
"en-nz": "Engelska (Nya Zeeland)",
"en-tt": "Engelska (Trinidad)",
"en-us": "Engelska (Förenta staterna)",
"en-za": "Engelska (Sydafrika)",
"es-ar": "Spanska (Argentina)",
"es-bo": "Spanska (Bolivia)",
"es-cl": "Spanska (Chile)",
"es-co": "Spanska (Colombia)",
"es-cr": "Spanska (Costa Rica)",
"es-do": "Spanska (Dominikanska republiken)",
"es-ec": "Spanska (Ecuador)",
"es-gt": "Spanska (Guatemala)",
"es-hn": "Spanska (Honduras)",
"es-mx": "Spanska (Mexico)",
"es-ni": "Spanska (Nicaragua)",
"es-pa": "Spanska (Panama)",
"es-pe": "Spanska (Peru)",
"es-pr": "Spanska (Puerto Rico)",
"es-py": "Spanska (Paraguay)",
"es": "Spanska (Spanien)",
"es-sv": "Spanska (El Salvador)",
"es-uy": "Spanska (Uruguay)",
"es-ve": "Spanska (Venezuela)",
"et": "Estniska",
"eu": "Baskiska",
"fa": "Persiska",
"fi": "Finska",
"fo": "Färöiska",
"fr-be": "Franska (Belgien)",
"fr-ca": "Franska (Kanada)",
"fr-ch": "Franska (Schweiz)",
"fr": "Franska",
"fr-lu": "Franska (Luxembourg)",
"ga": "Irländska",
"gd": "Gaeliska (Skottland)",
"he": "Hebreiska",
"hi": "Hindi",
"hr": "Kroatiska",
"hu": "Ungerska",
"id": "Indonesiska",
"is": "Isländska",
"it-ch": "Italienska (Schweiz)",
"it": "Italienska",
"ja": "Japanska",
"ji": "Jiddisch",
"ko": "Koreanska",
"lt": "Litauiska",
"lv": "Lettiska",
"mk": "Makedonska (FYROM)",
"ms": "Malaysiska",
"mt": "Maltesiska",
"nl-be": "Nederländska (Belgien)",
"nl": "Nederländska",
"no": "Norska",
"pl": "Polska",
"pt-br": "Brasiliansk portugisiska",
"pt": "Portugisiska",
"rm": "Rätoromanska",
"ro-mo": "Rumänska (Republiken Moldavien)",
"ro": "Rumänska",
"ru-mo": "Ryska (Republiken Moldavien)",
"ru": "Ryska",
"sb": "Sorbiska",
"sk": "Slovakiska",
"sl": "Slovenska",
"sq": "Albanska",
"sr": "Serbiska",
"sv-fi": "Svenska (Finland)",
"sv": "Svenska",
"sx": "Sutu",
"sz": "Samiska",
"th": "Thailändska",
"tn": "Tswana",
"tr": "Turkiska",
"ts": "Tsonga",
"uk": "Ukrainska",
"ur": "Urdu",
"ve": "Venda",
"vi": "Vietnamesiska",
"xh": "Xhosa",
"zh-cn": "Kinesiska (Folkrepubliken Kina)",
"zh-hk": "Kinesiska (Hongkong SAR)",
"zh-sg": "Kinesiska (Singapore)",
"zh-tw": "Kinesiska (Taiwan)",
"zu": "Zulu",
"A registered account is required for this action": "Ett registrerat konto behövs för den här handlingen",
"A text message has been sent to +%(msisdn)s. Please enter the verification code it contains": "Ett SMS har skickats till +%(msisdn)s. Vänligen ange verifieringskoden ur meddelandet",
"accept": "acceptera",
"%(targetName)s accepted an invitation.": "%(targetName)s accepterade en inbjudan.",
"%(targetName)s accepted the invitation for %(displayName)s.": "%(targetName)s accepterade inbjudan för %(displayName)s.",
"Account": "Konto",
"Add a topic": "Lägg till ett ämne",
"Add email address": "Lägg till en epostadress",
"Add phone number": "Lägg till ett telefonnummer",
"Admin": "Administratör",
"VoIP": "VoIP",
"Missing Media Permissions, click here to request.": "Saknar mediebehörigheter, klicka för att begära.",
"No Microphones detected": "Ingen mikrofon hittades",
"No Webcams detected": "Ingen kamera hittades",
"No media permissions": "Inga mediebehörigheter",
"You may need to manually permit Riot to access your microphone/webcam": "Du måste manuellt tillåta Riot att komma åt din mikrofon/kamera",
"Default Device": "Standardenhet",
"Microphone": "Mikrofon",
"Camera": "Kamera",
"Advanced": "Avancerad",
"Algorithm": "Algoritm",
"Always show message timestamps": "Visa alltid tidsstämpel för meddelanden",
"Hide removed messages": "Göm raderade meddelanden",
"Authentication": "Autentisering",
"all room members": "alla rumsmedlemmar",
"all room members, from the point they are invited": "alla rumsmedlemmar fr.o.m att de bjöds in",
"all room members, from the point they joined": "alla rumsmedlemmar fr.o.m. att de gick med som medlem",
"an address": "en address",
"and": "och",
"%(items)s and %(remaining)s others": "%(items)s och %(remaining)s andra",
"%(items)s and one other": "%(items)s och en annan",
"%(items)s and %(lastItem)s": "%(items)s och %(lastItem)s",
"and %(overflowCount)s others...": "och %(overflowCount)s andra...",
"and one other...": "och en annan...",
"%(names)s and %(lastPerson)s are typing": "%(names)s och %(lastPerson)s skriver",
"%(names)s and one other are typing": "%(names)s och en annan skriver",
"%(names)s and %(count)s others are typing": "%(names)s och %(count)s andra skriver",
"An email has been sent to": "Ett epostmeddelande har sänts till",
"A new password must be entered.": "Ett nytt lösenord måste anges.",
"%(senderName)s answered the call.": "%(senderName)s svarade på samtalet.",
"Anyone who knows the room's link, including guests": "Alla som har rummets adress, inklusive gäster",
"anyone": "vem som helst",
"Anyone": "Vem som helst",
"Anyone who knows the room's link, apart from guests": "Alla som har rummets adress, förutom gäster",
"An error has occurred.": "Ett fel har inträffat.",
"Are you sure?": "Är du säker?",
"Are you sure you want to leave the room '%(roomName)s'?": "Vill du lämna rummet '%(roomName)s'?",
"Are you sure you want to upload the following files?": "Vill du ladda upp följande filer?",
"Autoplay GIFs and videos": "Spela automatiskt upp GIFar och videor",
"Are you sure you want to reject the invitation?": "Vill du avvisa inbjudan?",
"Bulk Options": "Volymhandlingar",
"Bug Report": "Buggrapport",
"Blacklisted": "Svartlistad",
"%(senderName)s banned %(targetName)s.": "%(senderName)s bannade %(targetName)s.",
"Banned users": "Bannade användare",
"Bans user with given id": "Bannar användaren med givet ID",
"Ban": "Banna",
"Attachment": "Bilaga"
}

24
src/i18n/strings/th.json Normal file
View file

@ -0,0 +1,24 @@
{
"de": "เยอร์มัน",
"en-us": "อังกฤษ (สหรัฐอเมริกา)",
"en": "อังกฤษ",
"en-ca": "อังกฤษ(แคนาดา)",
"ja": "ญี่ปุ่น",
"fr": "ฝรั่งเศส",
"ko": "เกาหลี",
"th": "ไทย",
"vi": "เวียดนาม",
"accept": "ยอมรับ",
"Account": "บัญชี",
"Add phone number": "เพิ่มหมายเลขโทรศัพท์",
"Microphone": "ไมโครโฟน",
"No Microphones detected": "ไม่พบไมโครโฟน",
"Camera": "กล้อง",
"Advanced": "ขึ้นสูง",
"and": "และ",
"Ban": "แบน",
"Bug Report": "รายงานจุดบกพร่อง",
"Change Password": "เปลี่ยนรหัสผ่าน",
"Create Room": "สรัางห้อง",
"Delete": "ลบ"
}

View file

@ -30,7 +30,7 @@
"Enable encryption": "启用加密",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "不支持加密的客户端将看不到加密的消息",
"Encrypted room": "加密聊天室",
"%(senderName)s ended the call.": "%(senderName)s 结束了通话。",
"%(senderName)s ended the call.": "%(senderName)s 结束了通话。.",
"End-to-end encryption information": "端到端加密信息",
"End-to-end encryption is in beta and may not be reliable": "端到端加密现为测试版,不一定可靠",
"Enter Code": "输入代码",
@ -55,7 +55,7 @@
"Failed to save settings": "保存设置失败",
"Failed to send email": "发送邮件失败",
"Failed to send request.": "发送请求失败。",
"Failed to set avatar.": "设置头像失败。",
"Failed to set avatar.": "设置头像失败。.",
"Failed to set display name": "设置昵称失败",
"Failed to set up conference call": "无法启动群组通话",
"Failed to toggle moderator status": "无法切换管理员权限",
@ -70,15 +70,15 @@
"Filter room members": "过滤聊天室成员",
"Forget room": "忘记聊天室",
"Forgot your password?": "忘记密码?",
"For security, this session has been signed out. Please sign in again.": "出于安全考虑,此会话已被注销。请重新登录。",
"For security, this session has been signed out. Please sign in again.": "出于安全考虑,此会话已被注销。请重新登录。.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "出于安全考虑,用户注销时会清除浏览器里的端到端加密密钥。如果你想要下次登录 Riot 时能解密过去的聊天记录,请导出你的聊天室密钥。",
"Found a bug?": "发现漏洞?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s 从 %(fromPowerLevel)s 变为 %(toPowerLevel)s",
"Guests can't set avatars. Please register.": "游客不能设置头像。请注册。",
"Guest users can't create new rooms. Please register to create room and start a chat": "游客不能创建聊天室。请注册以创建聊天室和聊天",
"Guests can't set avatars. Please register.": "游客不能设置头像。请注册。.",
"Guest users can't create new rooms. Please register to create room and start a chat.": "游客不能创建聊天室。请注册以创建聊天室和聊天.",
"Guest users can't upload files. Please register to upload": "游客不能上传文件。请注册以上传文件",
"Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。",
"Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主动邀请。",
"Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。.",
"Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主动邀请。.",
"had": "已经",
"Hangup": "挂断",
"Hide read receipts": "隐藏已读回执",
@ -95,7 +95,7 @@
"Invalid Email Address": "邮箱地址格式错误",
"Invalid file%(extra)s": "非法文件%(extra)s",
"Report it": "报告",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "重设密码会导致所有设备上的端到端加密密钥被重置,使得加密的聊天记录不可读,除非你事先导出密钥,修改密码后再导入。此问题将来会得到改善。",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "重设密码会导致所有设备上的端到端加密密钥被重置,使得加密的聊天记录不可读,除非你事先导出密钥,修改密码后再导入。此问题将来会得到改善。.",
"restore": "恢复",
"Return to app": "返回 App",
"Return to login screen": "返回登录页面",
@ -117,18 +117,18 @@
"Send Invites": "发送邀请",
"Send Reset Email": "发送密码重设邮件",
"sent an image": "发了一张图片",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s 发了一张图片。",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s 向 %(targetDisplayName)s 发了加入聊天室的邀请。",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s 发了一张图片。.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s 向 %(targetDisplayName)s 发了加入聊天室的邀请。.",
"sent a video": "发了一个视频",
"Server error": "服务器错误",
"Server may be unavailable or overloaded": "服务器可能不可用或者超载",
"Server may be unavailable, overloaded, or search timed out :(": "服务器可能不可用、超载,或者搜索超时 :(",
"Server may be unavailable, overloaded, or the file too big": "服务器可能不可用、超载,或者文件过大",
"Server may be unavailable, overloaded, or you hit a bug": "服务器可能不可用、超载,或者你遇到了一个漏洞",
"Server unavailable, overloaded, or something else went wrong": "服务器可能不可用、超载,或者其他东西出错了",
"Server may be unavailable, overloaded, or you hit a bug.": "服务器可能不可用、超载,或者你遇到了一个漏洞.",
"Server unavailable, overloaded, or something else went wrong.": "服务器可能不可用、超载,或者其他东西出错了.",
"Session ID": "会话 ID",
"%(senderName)s set a profile picture.": "%(senderName)s 设置了头像。",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s 将昵称改为了 %(displayName)s。",
"%(senderName)s set a profile picture.": "%(senderName)s 设置了头像。.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s 将昵称改为了 %(displayName)s。.",
"Settings": "设置",
"Show panel": "显示侧边栏",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "用12小时制显示时间戳 (如:下午 2:30",
@ -154,5 +154,56 @@
"The email address linked to your account must be entered.": "必须输入和你账号关联的邮箱地址。",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "文件 '%(fileName)s' 超过了此主服务器的上传大小限制",
"The file '%(fileName)s' failed to upload": "文件 '%(fileName)s' 上传失败",
"Guests can't use labs features. Please register.": "游客不能使用实验性功能。请注册。"
"Disable URL previews for this room (affects only you)": "在这个房间禁止URL预览只影响你",
"af": "南非荷兰语",
"ca": "加泰罗尼亚语",
"cs": "捷克语",
"da": "丹麦语",
"de-at": "德语(奥地利)",
"de-ch": "德语(瑞士)",
"de": "德语",
"de-lu": "德语(卢森堡)",
"el": "希腊语",
"en-au": "英语(澳大利亚)",
"en": "英语",
"zh-cn": "中文(中国)",
"zh-hk": "中文(香港)",
"zh-sg": "中文(新加坡)",
"zh-tw": "中国(台湾)",
"Add email address": "添加邮件地址",
"Add phone number": "添加电话号码",
"Advanced": "高级",
"Algorithm": "算法",
"Always show message timestamps": "总是显示消息时间戳",
"all room members": "所有聊天室成员",
"all room members, from the point they are invited": "所有聊天室成员,从他们被邀请开始",
"all room members, from the point they joined": "所有聊天室成员,从他们加入开始",
"an address": "一个地址",
"and": "和",
"%(names)s and %(lastPerson)s are typing": "%(names)s 和 %(lastPerson)s 正在打字",
"%(names)s and %(count)s others are typing": "%(names)s 和另外 %(count)s 个人正在打字",
"An email has been sent to": "一封邮件已经被发送到",
"A new password must be entered.": "一个新的密码必须被输入。.",
"%(senderName)s answered the call.": "%(senderName)s 接了通话。.",
"An error has occurred.": "一个错误出现了。",
"Attachment": "附件",
"Autoplay GIFs and videos": "自动播放GIF和视频",
"%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s.",
"Ban": "封禁",
"Banned users": "被封禁的用户",
"Click here": "点击这里",
"Click here to fix": "点击这里修复",
"Confirm password": "确认密码",
"Confirm your new password": "确认你的新密码",
"Continue": "继续",
"Ed25519 fingerprint": "Ed25519指纹",
"Invite new room members": "邀请新的聊天室成员",
"Join Room": "加入聊天室",
"joined": "加入了",
"%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。.",
"Jump to first unread message.": "跳到第一条未读消息。",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。.",
"Leave room": "离开聊天室",
"Login as guest": "以游客的身份登录",
"New password": "新密码"
}

View file

@ -1,24 +1,365 @@
{
"An email has been sent to": "電郵已經發送至",
"A new password must be entered.": "必須輸入新密碼。",
"An email has been sent to": "一封郵件已經被發送到",
"A new password must be entered.": "一個新的密碼必須輸入。.",
"anyone": "任何人",
"An error has occurred.": "發生了一個錯誤。",
"An error has occurred.": "一個錯誤出現了。",
"Anyone who knows the room's link, apart from guests": "任何知道房間連結的人,但訪客除外",
"Anyone who knows the room's link, including guests": "任何知道房間連結的人,包括訪客",
"Are you sure?": "您確認嗎?",
"Are you sure?": "你確定嗎?",
"Are you sure you want to reject the invitation?": "您確認要謝絕邀請嗎?",
"Are you sure you want to upload the following files?": "您確認要上傳以下文件嗎?",
"Attachment": "附件",
"Autoplay GIFs and videos": "自動播放GIF和影片",
"%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s",
"Autoplay GIFs and videos": "自動播放GIF和視頻",
"%(senderName)s banned %(targetName)s.": "%(senderName)s 封禁了 %(targetName)s.",
"Ban": "封禁",
"Banned users": "已被封禁的使用者",
"Banned users": "被封禁的用戶",
"Blacklisted": "已列入黑名單",
"Bug Report": "錯誤報告",
"Bug Report": "臭蟲回報",
"Call Timeout": "通話超時",
"Can't connect to homeserver - please check your connectivity and ensure your %(urlStart)s homeserver's SSL certificate %(urlEnd)s is trusted": "無法連結主伺服器 - 請檢查網路狀況並確保您的 %(urlStart)s 主伺服器 SSL 證書 %(urlEnd)s 得到信任",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or %(urlStart)s enable unsafe scripts %(urlEnd)s": "當瀏覽器網址列里有 HTTPS URL 時,不能使用 HTTP 連結主伺服器。請採用 HTTPS 或者%(urlStart)s 允許不安全的腳本 %(urlEnd)s",
"Can't connect to homeserver - please check your connectivity and ensure your <a>homeserver's SSL certificate</a> is trusted.": "無法連結主伺服器 - 請檢查網路狀況並確保您的 <a>主伺服器 SSL 證書</a> 得到信任",
"Can't connect to homeserver via HTTP when an HTTPS URL is in your browser bar. Either use HTTPS or <a>enable unsafe scripts</a>.": "當瀏覽器網址列里有 HTTPS URL 時,不能使用 HTTP 連結主伺服器。請採用 HTTPS 或者 <a>允許不安全的腳本</a>",
"Can't load user settings": "無法載入使用者設定",
"Change Password": "變更密碼",
"%(targetName)s left the room.": "%(targetName)s 離開了聊天室。"
"%(targetName)s left the room.": "%(targetName)s 離開了聊天室。.",
"af": "南非荷蘭語",
"ar-ae": "阿拉伯語 (U.A.E.)",
"ar-bh": "阿拉伯語 (巴林)",
"ar-dz": "阿拉伯語 (阿爾吉利亞)",
"ar-eg": "阿拉伯語 (埃及)",
"ar-iq": "阿拉伯語 (伊拉克)",
"ar-jo": "阿拉伯語 (約旦)",
"ar-kw": "阿拉伯語 (科威特)",
"ar-lb": "阿拉伯語 (黎巴嫩)",
"ar-ly": "阿拉伯語 (利比亞)",
"ar-ma": "阿拉伯語 (摩洛哥)",
"ar-om": "阿拉伯語 (阿曼)",
"ar-qa": "阿拉伯語 (卡達)",
"ar-sa": "阿拉伯語 (沙烏地阿拉伯)",
"ar-sy": "阿拉伯語 (敍利亞)",
"ar-tn": "阿拉伯語 (突尼斯)",
"ar-ye": "阿拉伯語 (葉門)",
"be": "白俄羅斯語",
"bg": "保加利亞",
"ca": "加泰羅尼亞語",
"cs": "捷克語",
"da": "丹麥語",
"de-at": "德語(奧地利)",
"de-ch": "德語(瑞士)",
"de": "德語",
"de-lu": "德語(盧森堡)",
"el": "希臘語",
"en-au": "英語(澳大利亞)",
"en-bz": "英語 (貝里茲)",
"en-ca": "英語 (加拿大)",
"en": "英語",
"en-gb": "英語 (英國)",
"en-ie": "英語 (愛爾蘭)",
"en-jm": "英語 (牙買加)",
"en-nz": "英語 (新西蘭)",
"en-tt": "英語 (千里達)",
"en-us": "英語 (美國)",
"en-za": "英語 (南非)",
"es-ar": "西班牙語 (阿根廷)",
"es-bo": "西班牙語 (波利維亞)",
"es-cl": "西班牙語 (智利)",
"es-co": "西班牙語 (哥倫比亞)",
"es-cr": "西班牙語 (哥斯大黎加)",
"es-do": "西班牙語 (多明尼加共和國)",
"es-ec": "西班牙語 (厄瓜多)",
"es-gt": "西班牙語 (瓜地馬拉)",
"es-hn": "西班牙語 (宏都拉斯)",
"es-mx": "西班牙語 (墨西哥)",
"es-ni": "西班牙語 (尼加拉瓜)",
"es-pa": "西班牙語 (巴拿馬)",
"es-pe": "西班牙語 (祕魯)",
"es-pr": "西班牙語 (波多黎各)",
"es-py": "西班牙語 (巴拉圭)",
"es": "西班牙語 (西班牙)",
"es-sv": "西班牙語 (薩爾瓦多)",
"es-uy": "西班牙語 (烏拉圭)",
"es-ve": "西班牙語 (委內瑞拉)",
"fr-be": "法語 (比利時)",
"fr-ca": "法語 (加拿大)",
"fr-ch": "法語 (瑞士)",
"fr": "法語 (法國)",
"fr-lu": "法語 (慮森堡)",
"zh-cn": "中文(中國)",
"zh-hk": "中文(香港)",
"zh-sg": "中文(新加坡)",
"zh-tw": "中文(台灣)",
"zu": "祖魯語",
"accept": "接受",
"Account": "帳號",
"Access Token:": "取用令牌:",
"Add email address": "添加郵件地址",
"Add phone number": "添加電話號碼",
"Admin": "管理者",
"Advanced": "高級",
"Algorithm": "算法",
"Always show message timestamps": "總是顯示消息時間戳",
"Authentication": "授權",
"all room members": "所有聊天室成員",
"all room members, from the point they are invited": "所有聊天室成員,從他們被邀請開始",
"all room members, from the point they joined": "所有聊天室成員,從他們加入開始",
"an address": "一個地址",
"and": "和",
"%(items)s and %(remaining)s others": "%(items)s 和 %(remaining)s 其它",
"%(items)s and one other": "%(items)s 和其它",
"%(items)s and %(lastItem)s": "%(items)s 和 %(lastItem)s",
"and one other...": "與另一個...",
"%(names)s and %(lastPerson)s are typing": "%(names)s 和 %(lastPerson)s 正在打字",
"%(names)s and %(count)s others are typing": "%(names)s 和另外 %(count)s 個人正在打字",
"%(senderName)s answered the call.": "%(senderName)s 接了通話。.",
"Clear Cache": "清理緩存",
"Click here": "點擊這里",
"Click here to fix": "點擊這里修復",
"Confirm password": "確認密碼",
"Confirm your new password": "確認你的新密碼",
"Continue": "繼續",
"Create an account": "創建新帳號",
"Create Room": "創建聊天室",
"Cryptography": "加密",
"Current password": "當前密碼",
"/ddg is not a command": "/ddg 不是一個命令",
"Deactivate Account": "銷毀賬號",
"Deactivate my account": "銷毀我的帳號",
"decline": "拒絕",
"Decrypt %(text)s": "解密 %(text)s",
"Decryption error": "解密出錯",
"Delete": "刪除",
"Default": "默認",
"Device ID": "設備識別碼",
"Devices": "設備列表",
"Devices will not yet be able to decrypt history from before they joined the room": "新加入聊天室的設備不能解密加入之前的聊天記錄",
"Direct Chat": "私聊",
"Direct chats": "私聊",
"Disable inline URL previews by default": "默認禁用自動網址預覽",
"Disinvite": "取消邀請",
"Display name": "顯示名稱",
"Displays action": "顯示操作",
"Don't send typing notifications": "不要發送我的打字狀態",
"Download %(text)s": "下載 %(text)s",
"Drop here %(toAction)s": "拖拽到這里 %(toAction)s",
"Ed25519 fingerprint": "Ed25519指紋",
"Email": "電子郵箱",
"Email address": "電子郵箱地址",
"Email, name or matrix ID": "電子郵箱姓名或者matrix ID",
"Emoji": "Emoji",
"Enable encryption": "啟用加密",
"Encrypted messages will not be visible on clients that do not yet implement encryption": "不支持加密的客戶端將看不到加密的消息",
"Encrypted room": "加密聊天室",
"%(senderName)s ended the call.": "%(senderName)s 結束了通話。.",
"End-to-end encryption information": "端到端加密信息",
"End-to-end encryption is in beta and may not be reliable": "端到端加密現為測試版,不一定可靠",
"Enter Code": "輸入代碼",
"Error": "錯誤",
"Error decrypting attachment": "解密附件時出錯",
"Event information": "事件信息",
"Existing Call": "現有通話",
"Export E2E room keys": "導出聊天室的端到端加密密鑰",
"Failed to ban user": "封禁用戶失敗",
"Failed to change password. Is your password correct?": "修改密碼失敗。確認原密碼輸入正確嗎?",
"Failed to delete device": "刪除設備失敗",
"Failed to forget room %(errCode)s": "無法忘記聊天室 %(errCode)s",
"Failed to join room": "無法加入聊天室",
"Failed to join the room": "無法加入此聊天室",
"Failed to kick": "踢人失敗",
"Failed to leave room": "無法離開聊天室",
"Failed to load timeline position": "無法加載時間軸位置",
"Failed to lookup current room": "找不到當前聊天室",
"Failed to mute user": "禁言用戶失敗",
"Failed to reject invite": "拒絕邀請失敗",
"Failed to reject invitation": "拒絕邀請失敗",
"Failed to save settings": "保存設置失敗",
"Failed to send email": "發送郵件失敗",
"Failed to send request.": "發送請求失敗。",
"Failed to set avatar.": "設置頭像失敗。.",
"Failed to set display name": "設置暱稱失敗",
"Failed to set up conference call": "無法啟動群組通話",
"Failed to toggle moderator status": "無法切換管理員權限",
"Failed to unban": "解除封禁失敗",
"Failed to upload file": "上傳文件失敗",
"Failed to verify email address: make sure you clicked the link in the email": "郵箱驗證失敗: 請確保你已點擊郵件中的鏈接",
"Failure to create room": "創建聊天室失敗",
"Favourite": "收藏",
"favourite": "收藏",
"Favourites": "收藏夾",
"Fill screen": "全螢幕顯示",
"Filter room members": "過濾聊天室成員",
"Forget room": "忘記聊天室",
"Forgot your password?": "忘記密碼?",
"For security, this session has been signed out. Please sign in again.": "出於安全考慮,此會話已被注銷。請重新登錄。.",
"For security, logging out will delete any end-to-end encryption keys from this browser. If you want to be able to decrypt your conversation history from future Riot sessions, please export your room keys for safe-keeping.": "出於安全考慮,用戶注銷時會清除瀏覽器里的端到端加密密鑰。如果你想要下次登錄 Riot 時能解密過去的聊天記錄,請導出你的聊天室密鑰。",
"Found a bug?": "發現漏洞?",
"%(userId)s from %(fromPowerLevel)s to %(toPowerLevel)s": "%(userId)s 從 %(fromPowerLevel)s 變為 %(toPowerLevel)s",
"Guests can't set avatars. Please register.": "游客不能設置頭像。請注冊。.",
"Guest users can't create new rooms. Please register to create room and start a chat.": "游客不能創建聊天室。請注冊以創建聊天室和聊天.",
"Guest users can't upload files. Please register to upload": "游客不能上傳文件。請注冊以上傳文件",
"Guests can't use labs features. Please register.": "游客不能使用實驗性功能。請注冊。.",
"Guests cannot join this room even if explicitly invited.": "游客不能加入此聊天室,即使有人主動邀請。.",
"had": "已經",
"Hangup": "掛斷",
"Hide read receipts": "隱藏已讀回執",
"Hide Text Formatting Toolbar": "隱藏格式工具欄",
"Historical": "曆史",
"Homeserver is": "主服務器是",
"Identity Server is": "身份認證服務器是",
"I have verified my email address": "我已經驗證了我的郵箱地址",
"Import E2E room keys": "導入聊天室端對端加密密鑰",
"Incorrect verification code": "驗證碼錯誤",
"Interface Language": "界面語言",
"Invalid alias format": "別名格式錯誤",
"Invalid address format": "地址格式錯誤",
"Invalid Email Address": "郵箱地址格式錯誤",
"Invalid file%(extra)s": "非法文件%(extra)s",
"Invite new room members": "邀請新的聊天室成員",
"Join Room": "加入聊天室",
"joined": "加入了",
"%(targetName)s joined the room.": "%(targetName)s 加入了聊天室。.",
"Jump to first unread message.": "跳到第一條未讀消息。",
"%(senderName)s kicked %(targetName)s.": "%(senderName)s 把 %(targetName)s 踢出了聊天室。.",
"Leave room": "離開聊天室",
"Login as guest": "以游客的身份登錄",
"New password": "新密碼",
"Report it": "報告",
"Resetting password will currently reset any end-to-end encryption keys on all devices, making encrypted chat history unreadable, unless you first export your room keys and re-import them afterwards. In future this will be improved.": "重設密碼會導致所有設備上的端到端加密密鑰被重置,使得加密的聊天記錄不可讀,除非你事先導出密鑰,修改密碼后再導入。此問題將來會得到改善。.",
"restore": "恢復",
"Return to app": "返回 App",
"Return to login screen": "返回登錄頁面",
"Riot does not have permission to send you notifications - please check your browser settings": "Riot 未被允許向你推送消息 - 請檢查瀏覽器設置",
"Riot was not given permission to send notifications - please try again": "Riot 未被允許推送消息通知 - 請重試",
"riot-web version:": "riot-網頁版:",
"Room %(roomId)s not visible": "聊天室 %(roomId)s 已隱藏",
"Room Colour": "聊天室顏色",
"Room name (optional)": "聊天室名稱 (可選)",
"Rooms": "聊天室",
"Scroll to bottom of page": "滾動到頁面底部",
"Scroll to unread messages": "滾動到未讀消息",
"Search": "搜索",
"Search failed": "搜索失敗",
"Searches DuckDuckGo for results": "搜索 DuckDuckGo",
"Send a message (unencrypted)": "發送消息 (非加密)",
"Send an encrypted message": "發送加密消息",
"Sender device information": "發送者的設備信息",
"Send Invites": "發送邀請",
"Send Reset Email": "發送密碼重設郵件",
"sent an image": "發了一張圖片",
"%(senderDisplayName)s sent an image.": "%(senderDisplayName)s 發了一張圖片。.",
"%(senderName)s sent an invitation to %(targetDisplayName)s to join the room.": "%(senderName)s 向 %(targetDisplayName)s 發了加入聊天室的邀請。.",
"sent a video": "發了一個視頻",
"Server error": "伺服器錯誤",
"Server may be unavailable or overloaded": "服務器可能不可用或者超載",
"Server may be unavailable, overloaded, or search timed out :(": "服務器可能不可用、超載,或者搜索超時 :(",
"Server may be unavailable, overloaded, or the file too big": "服務器可能不可用、超載,或者文件過大",
"Server may be unavailable, overloaded, or you hit a bug.": "服務器可能不可用、超載,或者你遇到了一個漏洞.",
"Server unavailable, overloaded, or something else went wrong.": "伺服器可能不可用、超載,或者其他東西出錯了.",
"Session ID": "會話 ID",
"%(senderName)s set a profile picture.": "%(senderName)s 設置了頭像。.",
"%(senderName)s set their display name to %(displayName)s.": "%(senderName)s 將暱稱改為了 %(displayName)s。.",
"Settings": "設置",
"Show panel": "顯示側邊欄",
"Show timestamps in 12 hour format (e.g. 2:30pm)": "用12小時制顯示時間戳 (如:下午 2:30",
"Signed Out": "已退出登錄",
"Sign in": "登錄",
"Sign out": "注銷",
"since the point in time of selecting this option": "從選擇此選項起",
"since they joined": "從他們加入時起",
"since they were invited": "從他們被邀請時起",
"Some of your messages have not been sent": "部分消息發送失敗",
"Someone": "某個用戶",
"Sorry, this homeserver is using a login which is not recognised ": "很抱歉,無法識別此主伺服器使用的登錄方式 ",
"Start a chat": "創建聊天",
"Start Chat": "開始聊天",
"Submit": "提交",
"Success": "成功",
"The default role for new room members is": "此聊天室新成員的默認角色是",
"The main address for this room is": "此聊天室的主要地址是",
"This action cannot be performed by a guest user. Please register to be able to do this": "訪客不能進行此操作。請注冊",
"This email address is already in use": "此郵箱地址已經被使用",
"This email address was not found": "未找到此郵箱地址",
"%(actionVerb)s this person?": "%(actionVerb)s 這個用戶?",
"The email address linked to your account must be entered.": "必須輸入和你帳號關聯的郵箱地址。",
"The file '%(fileName)s' exceeds this home server's size limit for uploads": "文件 '%(fileName)s' 超過了此主伺服器的上傳大小限制",
"The file '%(fileName)s' failed to upload": "文件 '%(fileName)s' 上傳失敗",
"Turn Markdown off": "關閉Markdown 語法",
"Turn Markdown on": "啟用Markdown 語法",
"%(senderName)s turned on end-to-end encryption (algorithm %(algorithm)s).": "%(senderName)s 啟用端對端加密 (algorithm %(algorithm)s).",
"Unable to add email address": "無法加入電郵地址",
"Unable to capture screen": "無法截取畫面",
"Unable to enable Notifications": "無法啟用通知功能",
"Would you like to": "你要",
"You are already in a call.": "你已在電話通話中",
"You're not in any rooms yet! Press": "你尚未加入任何聊天室!請按",
"You are trying to access %(roomName)s": "你將進入 %(roomName)聊天室",
"You cannot place a call with yourself.": "你不能打電話給自已",
"You cannot place VoIP calls in this browser.": "在此瀏覽器下無法置入網路電話通話",
"Sun": "星期日",
"Mon": "星期一",
"Tue": "星期二",
"%(severalUsers)sleft": "%(severalUsers)s離開",
"%(oneUser)sleft": "%(oneUser)s離開",
"%(severalUsers)sjoined and left": "%(severalUsers)s加入與離開",
"%(oneUser)sleft and rejoined": "%(oneUser)s離開再重新加入",
"for %(amount)sh": " %(amount)sh",
"for %(amount)sd": " %(amount)sd",
"Online": "在線",
"Idle": "閒置",
"Offline": "下線",
"Disable URL previews for this room (affects only you)": "在這個房間禁止URL預覽只影響你",
"$senderDisplayName changed the room avatar to <img/>": "$senderDisplayName 更改了聊天室的圖像為 <img/>",
"%(senderDisplayName)s removed the room avatar.": "%(senderDisplayName)s 移除了聊天室圖像",
"%(senderDisplayName)s changed the avatar for %(roomName)s": "%(senderDisplayName)s 更改了聊天室 %(roomName)s 圖像",
"Cancel": "取消",
"Custom Server Options": "自定伺服器選項",
"Dismiss": "無視",
"Mute": "靜音",
"Notifications": "通知",
"Operation failed": "操作失敗",
"powered by Matrix": "由Matrix架設",
"Remove": "移除",
"unknown error code": "未知的錯誤代碼",
"Sunday": "星期日",
"Monday": "星期一",
"Tuesday": "星期二",
"Wednesday": "星期三",
"Thursday": "星期四",
"Friday": "星期五",
"Saturday": "星期六",
"OK": "OK",
"Please Register": "請註冊",
"Add a topic": "新增標題",
"VoIP": "VoIP",
"Default Device": "默認裝置",
"Microphone": "麥克風",
"Camera": "攝影機",
"Anyone": "任何人",
"Bulk Options": "批次選項",
"Command error": "指令出錯",
"Commands": "指令",
"Device ID:": "裝置 ID:",
"device id: ": "裝置 id:",
"Reason": "原因",
"Register": "注冊",
"Registration required": "要求註冊",
"rejected": "拒絕",
"Default server": "默認的伺服器",
"Custom server": "自定的伺服器",
"Home server URL": "自家伺服器網址",
"Identity server URL": "識別伺服器網址",
"What does this mean?": "它代表什麼意思?",
"Error decrypting audio": "解密音檔出錯",
"Error decrypting image": "解密圖片出錯",
"Image '%(Body)s' cannot be displayed.": "圖片 '%(Body)s' 無法顯示",
"This image cannot be displayed.": "這張圖片無法顯示",
"Error decrypting video": "解密影片出錯",
"Add an Integration": "新增整合器",
"Ongoing conference call%(supportedText)s. %(joinText)s": "%(supportedText)s. %(joinText)s 正在進行電話會議",
" (unsupported)": " (不支持)",
"URL Previews": "網址預覽",
"Enable URL previews for this room (affects only you)": "啟用此房間的網址預覽(僅影響您)",
"Drop file here to upload": "把文件放在這裡上傳",
"Disable URL previews by default for participants in this room": "默認情況下,此房間的參與者禁用網址預覽",
"URL previews are %(globalDisableUrlPreview)s by default for participants in this room.": "默認情況下,這個房間的參與者的網址預覽是%(globalDisableUrlPreview)。",
"Removed or unknown message type": "已刪除或未知的信息類型",
"You are about to be taken to a third-party site so you can authenticate your account for use with %(integrationsUrl)s. Do you wish to continue?": "您即將被帶到第三方網站,以便您可以驗證您的帳戶以使用%(integrationsUrl)。你想繼續嗎?"
}

View file

@ -83,14 +83,8 @@ export function _tJsx(jsxText, patterns, subs) {
}
}
// tJsxText may be unsafe if malicious translators try to inject HTML.
// Run this through sanitize-html and bail if the output isn't identical
// The translation returns text so there's no XSS vector here (no unsafe HTML, no code execution)
const tJsxText = _t(jsxText);
const sanitized = sanitizeHtml(tJsxText, { allowedTags: sanitizeHtml.defaults.allowedTags.concat([ 'span' ]) });
if (tJsxText !== sanitized) {
throw new Error(`_tJsx: translator error. untrusted HTML supplied. '${tJsxText}' != '${sanitized}'`);
}
let output = [tJsxText];
for (let i = 0; i < patterns.length; i++) {
// convert the last element in 'output' into 3 elements (pre-text, sub function, post-text).
@ -113,7 +107,7 @@ export function _tJsx(jsxText, patterns, subs) {
}
// Allow overriding the text displayed when no translation exists
// Currently only use din unit tests to avoid having to load
// Currently only used in unit tests to avoid having to load
// the translations in riot-web
export function setMissingEntryGenerator(f) {
counterpart.setMissingEntryGenerator(f);
@ -136,10 +130,12 @@ export function setLanguage(preferredLangs) {
}
}
if (!langToUse) {
throw new Error("Unable to find an appropriate language");
// Fallback to en_EN if none is found
langToUse = 'en'
console.error("Unable to find an appropriate language");
}
return getLanguage(i18nFolder + availLangs[langToUse]);
return getLanguage(i18nFolder + availLangs[langToUse].fileName);
}).then((langData) => {
counterpart.registerTranslations(langToUse, langData);
counterpart.setLocale(langToUse);
@ -148,16 +144,25 @@ export function setLanguage(preferredLangs) {
// Set 'en' as fallback language:
if (langToUse != "en") {
return getLanguage(i18nFolder + availLangs['en']);
return getLanguage(i18nFolder + availLangs['en'].fileName);
}
}).then((langData) => {
if (langData) counterpart.registerTranslations('en', langData);
});
};
export function getAllLanguageKeysFromJson() {
return getLangsJson().then((langs) => {
return Object.keys(langs);
export function getAllLanguagesFromJson() {
return getLangsJson().then((langsObject) => {
var langs = [];
for (var langKey in langsObject) {
if (langsObject.hasOwnProperty(langKey)) {
langs.push({
'value': langKey,
'label': langsObject[langKey].label
});
}
}
return langs;
});
}

View file

@ -1,3 +1,6 @@
{
"en": "en_EN.json"
"en": {
"fileName": "en_EN.json",
"label": "English"
}
}